From 5c115897041e804a49c07bae810fe444186a28b4 Mon Sep 17 00:00:00 2001 From: Grace Hall Date: Sun, 10 Sep 2023 13:02:09 +1000 Subject: [PATCH 01/32] Moved some stuff away from galaxy --- .../ingestion/galaxy/gxtool/parsing/inputs.py | 22 +- .../ingestion/galaxy/gxtool/parsing/main.py | 8 +- .../galaxy/gxtool/parsing/nogx/GXTool.py | 2188 +++++++++++++++++ .../galaxy/gxtool/parsing/nogx/__init__.py | 3 + .../galaxy/gxtool/parsing/nogx/encoding.py | 41 + .../galaxy/gxtool/parsing/nogx/main.py | 375 +++ .../galaxy/gxtool/parsing/outputs.py | 45 +- .../galaxy/gxtool/text/cheetah/blocks.py | 3 +- janis_core/tests/test_ingestion_galaxy.py | 32 +- notes.txt | 126 + 10 files changed, 2801 insertions(+), 42 deletions(-) create mode 100644 janis_core/ingestion/galaxy/gxtool/parsing/nogx/GXTool.py create mode 100644 janis_core/ingestion/galaxy/gxtool/parsing/nogx/__init__.py create mode 100644 janis_core/ingestion/galaxy/gxtool/parsing/nogx/encoding.py create mode 100644 janis_core/ingestion/galaxy/gxtool/parsing/nogx/main.py diff --git a/janis_core/ingestion/galaxy/gxtool/parsing/inputs.py b/janis_core/ingestion/galaxy/gxtool/parsing/inputs.py index aea5cc6da..8b244963e 100644 --- a/janis_core/ingestion/galaxy/gxtool/parsing/inputs.py +++ b/janis_core/ingestion/galaxy/gxtool/parsing/inputs.py @@ -1,6 +1,6 @@ -from galaxy.tools.parameters.basic import ToolParameter as GalaxyParam +from typing import Any from janis_core.ingestion.galaxy.runtime.exceptions import ParamNotSupportedError from ..model import ( @@ -17,12 +17,12 @@ ) -def parse_input_param(gxparam: GalaxyParam) -> XMLParam: +def parse_input_param(gxparam: Any) -> XMLParam: factory = XMLInputParamFactory() return factory.produce(gxparam) class XMLInputParamFactory: - def produce(self, gxparam: GalaxyParam) -> XMLParam: + def produce(self, gxparam: Any) -> XMLParam: match gxparam.type: # type: ignore case 'text': param = self.parse_text_param(gxparam) @@ -49,19 +49,19 @@ def produce(self, gxparam: GalaxyParam) -> XMLParam: param = self.map_common_fields(gxparam, param) return param - def map_common_fields(self, gxparam: GalaxyParam, param: XMLInputParam) -> XMLInputParam: + def map_common_fields(self, gxparam: Any, param: XMLInputParam) -> XMLInputParam: param.label = str(gxparam.label) param.helptext = str(gxparam.help) param.argument = gxparam.argument param.set_optionality(bool(gxparam.optional)) return param - def parse_text_param(self, gxparam: GalaxyParam) -> XMLTextParam: + def parse_text_param(self, gxparam: Any) -> XMLTextParam: param = XMLTextParam(str(gxparam.flat_name)) param.value = gxparam.value return param - def parse_int_param(self, gxparam: GalaxyParam) -> XMLIntegerParam: + def parse_int_param(self, gxparam: Any) -> XMLIntegerParam: param = XMLIntegerParam(str(gxparam.flat_name)) if hasattr(gxparam, 'value'): param.value = gxparam.value @@ -71,21 +71,21 @@ def parse_int_param(self, gxparam: GalaxyParam) -> XMLIntegerParam: param.max = gxparam.max return param - def parse_float_param(self, gxparam: GalaxyParam) -> XMLFloatParam: + def parse_float_param(self, gxparam: Any) -> XMLFloatParam: param = XMLFloatParam(str(gxparam.flat_name)) param.value = gxparam.value param.min = gxparam.min param.max = gxparam.max return param - def parse_bool_param(self, gxparam: GalaxyParam) -> XMLBoolParam: + def parse_bool_param(self, gxparam: Any) -> XMLBoolParam: param = XMLBoolParam(str(gxparam.flat_name)) param.checked = bool(gxparam.checked) param.truevalue = str(gxparam.truevalue) param.falsevalue = str(gxparam.falsevalue) return param - def parse_select_param(self, gxparam: GalaxyParam) -> XMLSelectParam: + def parse_select_param(self, gxparam: Any) -> XMLSelectParam: # TODO this could be dynamic options! param = XMLSelectParam(str(gxparam.flat_name)) param.multiple = bool(gxparam.multiple) @@ -95,13 +95,13 @@ def parse_select_param(self, gxparam: GalaxyParam) -> XMLSelectParam: param.options.append(option) return param - def parse_data_param(self, gxparam: GalaxyParam) -> XMLDataParam: + def parse_data_param(self, gxparam: Any) -> XMLDataParam: param = XMLDataParam(str(gxparam.flat_name)) param.formats = gxparam.extensions param.multiple = bool(gxparam.multiple) return param - def parse_data_collection_param(self, gxparam: GalaxyParam) -> XMLDataCollectionParam: + def parse_data_collection_param(self, gxparam: Any) -> XMLDataCollectionParam: name = str(gxparam.flat_name) collection_type = gxparam.collection_types[0] param = XMLDataCollectionParam(name, collection_type) diff --git a/janis_core/ingestion/galaxy/gxtool/parsing/main.py b/janis_core/ingestion/galaxy/gxtool/parsing/main.py index 69cc4af83..d788c5584 100644 --- a/janis_core/ingestion/galaxy/gxtool/parsing/main.py +++ b/janis_core/ingestion/galaxy/gxtool/parsing/main.py @@ -5,13 +5,11 @@ from typing import Any, Optional from galaxy.tools import Tool as GxTool -from galaxy.tool_util.parser import get_tool_source from galaxy.tools import create_tool_from_source -from galaxy.model import History - -from galaxy.tools import Tool as GxTool from galaxy.tools.parameters.basic import ToolParameter +from galaxy.tool_util.parser import get_tool_source from galaxy.tool_util.parser.output_objects import ToolOutput +from galaxy.model import History from ..model import XMLDataParam from ..model import XMLConfigfile @@ -48,6 +46,8 @@ def _load_galaxy_tool(path: str) -> GxTool: tool.assert_finalized() return tool + + def _get_app() -> MockApp: # basic details app = MockApp() diff --git a/janis_core/ingestion/galaxy/gxtool/parsing/nogx/GXTool.py b/janis_core/ingestion/galaxy/gxtool/parsing/nogx/GXTool.py new file mode 100644 index 000000000..88f5eb8f2 --- /dev/null +++ b/janis_core/ingestion/galaxy/gxtool/parsing/nogx/GXTool.py @@ -0,0 +1,2188 @@ + +import itertools +import math +import os +import re +import tarfile +import tempfile +import threading +from pathlib import Path +from typing import ( + Any, + cast, + Dict, + List, + Optional, + Set, + Tuple, + Union, +) +from urllib.parse import unquote_plus + +import packaging.version +import webob.exc +from mako.template import Template +from webob.compat import cgi_FieldStorage + +from galaxy import ( + exceptions, + model +) +from galaxy.exceptions import ToolInputsNotReadyException +from galaxy.job_execution import output_collect +from galaxy.tool_shed.util.repository_util import get_installed_repository +from galaxy.tool_shed.util.shed_util_common import set_image_paths +from galaxy.tool_util.deps import ( + CachedDependencyManager, +) +from galaxy.tool_util.loader import ( + imported_macro_paths, + raw_tool_xml_tree, + template_macro_params +) +from galaxy.tool_util.parser import ( + RequiredFiles, + ToolOutputCollectionPart +) +from galaxy.tool_util.parser.xml import XmlPageSource +from galaxy.tool_util.provided_metadata import parse_tool_provided_metadata +from galaxy.tools import expressions +from galaxy.tools.actions import DefaultToolAction, ToolAction +from galaxy.tools.evaluation import global_tool_errors +from galaxy.tools.parameters import ( + check_param, + params_from_strings, + params_to_incoming, + params_to_strings, + populate_state, + visit_input_values +) +from galaxy.tools.parameters.basic import ( + BaseURLToolParameter, + DataCollectionToolParameter, + DataToolParameter, + HiddenToolParameter, + ImplicitConversionRequired, + SelectToolParameter, + ToolParameter, + workflow_building_modes, +) +from galaxy.tools.parameters.dataset_matcher import ( + set_dataset_matcher_factory, + unset_dataset_matcher_factory, +) +from galaxy.tools.parameters.grouping import Conditional, ConditionalWhen, Repeat, Section, UploadDataset +from galaxy.tools.parameters.input_translation import ToolInputTranslator +from galaxy.tools.parameters.meta import expand_meta_parameters +from galaxy.tools.test import parse_tests +from galaxy.util import ( + in_directory, + Params, + parse_xml_string, + rst_to_html, + string_as_bool, + unicodify, + XML, +) +from galaxy.util.expressions import ExpressionContext +from galaxy.util.template import ( + fill_template, + refactoring_tool, +) +from galaxy.util.tool_shed.common_util import ( + get_tool_shed_repository_url, + get_tool_shed_url_from_tool_shed_registry, +) +from galaxy.version import VERSION_MAJOR +from galaxy.work.context import proxy_work_context_for_history + + +HELP_UNINITIALIZED = threading.Lock() + +REQUIRE_FULL_DIRECTORY = { + "includes": [{"path": "**", "path_type": "glob"}], +} +IMPLICITLY_REQUIRED_TOOL_FILES: Dict[str, Dict] = { + "deseq2": {"version": packaging.version.parse("2.11.40.6"), "required": {"includes": [{"path": "*.R", "path_type": "glob"}]}}, + # minimum example: + # "foobar": {"required": REQUIRE_FULL_DIRECTORY} + # if no version is specified, all versions without explicit RequiredFiles will be selected + "circos": {"required": REQUIRE_FULL_DIRECTORY}, + "cp_image_math": {"required": {"includes": [{"path": "*.py", "path_type": "glob"}]}}, + "enumerate_charges": {"required": REQUIRE_FULL_DIRECTORY}, + "fasta_compute_length": {"required": {"includes": [{"path": "utils/*", "path_type": "glob"}]}}, + "fasta_concatenate0": {"required": {"includes": [{"path": "utils/*", "path_type": "glob"}]}}, + "filter_tabular": {"required": {"includes": [{"path": "*.py", "path_type": "glob"}]}}, + "flanking_features_1": {"required": {"includes": [{"path": "utils/*", "path_type": "glob"}]}}, + "gops_intersect_1": {"required": {"includes": [{"path": "utils/*", "path_type": "glob"}]}}, + "gops_subtract_1": {"required": {"includes": [{"path": "utils/*", "path_type": "glob"}]}}, + "maxquant": {"required": {"includes": [{"path": "*.py", "path_type": "glob"}]}}, + "maxquant_mqpar": {"required": {"includes": [{"path": "*.py", "path_type": "glob"}]}}, + "query_tabular": {"required": {"includes": [{"path": "*.py", "path_type": "glob"}]}}, + "shasta": {"required": {"includes": [{"path": "configs/*", "path_type": "glob"}]}}, + "sqlite_to_tabular": {"required": {"includes": [{"path": "*.py", "path_type": "glob"}]}}, + "sucos_max_score": {"required": {"includes": [{"path": "*.py", "path_type": "glob"}]}}, +} + +from galaxy.datatypes.registry import Registry + + +class App: + + def __init__(self) -> None: + self.datatypes_registry = Registry() + self.datatypes_registry.load_datatypes() + + +class GXTool: + """ + Represents a computational tool that can be executed through Galaxy. + """ + + tool_type = 'default' + requires_setting_metadata = True + produces_entry_points = False + default_tool_action = DefaultToolAction + tool_action: ToolAction + tool_type_local = False + dict_collection_visible_keys = ['id', 'name', 'version', 'description', 'labels'] + __help: Optional[threading.Lock] + __help_by_page: Union[threading.Lock, List[str]] + job_search: 'JobSearch' + version: str + + def __init__(self, config_file, tool_source, guid=None, repository_id=None, tool_shed_repository=None, allow_code_files=True, dynamic=False, tool_dir=None): + """Load a tool from the config named by `config_file`""" + # Determine the full path of the directory where the tool config is + if config_file is not None: + self.config_file = config_file + self.tool_dir = tool_dir or os.path.dirname(config_file) + else: + self.config_file = None + self.tool_dir = tool_dir + + # self.app = app + self.repository_id = repository_id + self._allow_code_files = allow_code_files + # setup initial attribute values + self.stdio_exit_codes = list() + self.stdio_regexes = list() + self.inputs_by_page = list() + self.display_by_page = list() + self.action: Union[str, Tuple[str, str]] = "/tool_runner/index" + self.target = "galaxy_main" + self.method = "post" + self.labels = [] + self.check_values = True + self.nginx_upload = False + self.input_required = False + self.display_interface = True + self.require_login = False + self.rerun = False + # This will be non-None for tools loaded from the database (DynamicTool objects). + self.dynamic_tool = None + # Define a place to keep track of all input These + # differ from the inputs dictionary in that inputs can be page + # elements like conditionals, but input_params are basic form + # parameters like SelectField objects. This enables us to more + # easily ensure that parameter dependencies like index files or + # tool_data_table_conf.xml entries exist. + self.input_params = [] + # Attributes of tools installed from Galaxy tool sheds. + self.tool_shed = None + self.repository_name = None + self.repository_owner = None + self.changeset_revision = None + self.installed_changeset_revision = None + self.sharable_url = None + # The tool.id value will be the value of guid, but we'll keep the + # guid attribute since it is useful to have. + self.guid = guid + self.old_id = None + self.python_template_version = None + self._lineage = None + self.dependencies = [] + # populate toolshed repository info, if available + self.populate_tool_shed_info(tool_shed_repository) + # add tool resource parameters + # self.populate_resource_parameters(tool_source) + self.tool_errors = None + # Parse XML element containing configuration + self.tool_source = tool_source + self._is_workflow_compatible = None + self.finalized = False + try: + self.parse(tool_source, guid=guid, dynamic=dynamic) + except Exception as e: + global_tool_errors.add_error(config_file, "Tool Loading", e) + raise e + # # The job search is only relevant in a galaxy context, and breaks + # # loading tools into the toolshed for validation. + # if self.app.name == 'galaxy': + # self.job_search = self.app.job_search + + def __getattr__(self, name): + lazy_attributes = { + 'action', + 'check_values', + 'display_by_page', + 'enctype', + 'has_multiple_pages', + 'inputs', + 'inputs_by_page', + 'last_page', + 'method', + 'npages', + 'nginx_upload', + 'target', + 'template_macro_params', + 'outputs', + 'output_collections' + } + if name in lazy_attributes: + self.assert_finalized() + return getattr(self, name) + raise AttributeError(name) + + def assert_finalized(self, raise_if_invalid=False): + if self.finalized is False: + try: + self.parse_inputs(self.tool_source) + self.parse_outputs(self.tool_source) + self.finalized = True + except Exception as e: + toolbox = getattr(self.app, 'toolbox', None) + if toolbox: + toolbox.remove_tool_by_id(self.id) + if raise_if_invalid: + raise + else: + print("An error occured while parsing the tool wrapper xml, the tool is not functional") + + def remove_from_cache(self): + source_path = self.tool_source._source_path + if source_path: + for region in self.app.toolbox.cache_regions.values(): + region.delete(source_path) + + @property + def history_manager(self): + return self.app.history_manager + + @property + def _view(self): + return self.app.dependency_resolvers_view + + @property + def version_object(self): + return packaging.version.parse(self.version) + + @property + def sa_session(self): + """Returns a SQLAlchemy session""" + return self.app.model.context + + @property + def lineage(self): + """Return ToolLineage for this tool.""" + return self._lineage + + @property + def tool_versions(self): + # If we have versions, return them. + if self.lineage: + return list(self.lineage.tool_versions) + else: + return [] + + @property + def is_latest_version(self): + tool_versions = self.tool_versions + return not tool_versions or self.version == self.tool_versions[-1] + + @property + def latest_version(self): + if self.is_latest_version: + return self + else: + return self.app.tool_cache.get_tool_by_id(self.lineage.get_versions()[-1].id) + + @property + def is_datatype_converter(self): + return self in self.app.datatypes_registry.converter_tools + + @property + def tool_shed_repository(self): + # If this tool is included in an installed tool shed repository, return it. + if self.tool_shed: + return get_installed_repository(self.app, + tool_shed=self.tool_shed, + name=self.repository_name, + owner=self.repository_owner, + installed_changeset_revision=self.installed_changeset_revision, + from_cache=True) + + @property + def produces_collections_with_unknown_structure(self): + + def output_is_dynamic(output): + if not output.collection: + return False + return output.dynamic_structure + + return any(map(output_is_dynamic, self.outputs.values())) + + @property + def valid_input_states(self): + return model.Dataset.valid_input_states + + @property + def requires_galaxy_python_environment(self): + """Indicates this tool's runtime requires Galaxy's Python environment.""" + # All special tool types (data source, history import/export, etc...) + # seem to require Galaxy's Python. + # FIXME: the (instantiated) tool class should emit this behavior, and not + # use inspection by string check + if self.tool_type not in ["default", "manage_data", "interactive", "data_source"]: + return True + + if self.tool_type == "manage_data" and self.profile < 18.09: + return True + + if self.tool_type == "data_source" and self.profile < 21.09: + return True + + config = self.app.config + preserve_python_environment = config.preserve_python_environment + if preserve_python_environment == "always": + return True + elif preserve_python_environment == "legacy_and_local" and self.tool_shed is None: + return True + else: + unversioned_legacy_tool = self.old_id in GALAXY_LIB_TOOLS_UNVERSIONED + versioned_legacy_tool = self.old_id in GALAXY_LIB_TOOLS_VERSIONED + legacy_tool = unversioned_legacy_tool or ( + versioned_legacy_tool + and self.old_id + and self.version_object < GALAXY_LIB_TOOLS_VERSIONED[self.old_id] + ) + return legacy_tool + + def __get_job_tool_configuration(self, job_params=None): + """Generalized method for getting this tool's job configuration. + + :type job_params: dict or None + :returns: `galaxy.jobs.JobToolConfiguration` -- JobToolConfiguration that matches this `Tool` and the given `job_params` + """ + rval = None + if len(self.job_tool_configurations) == 1: + # If there's only one config, use it rather than wasting time on comparisons + rval = self.job_tool_configurations[0] + elif job_params is None: + for job_tool_config in self.job_tool_configurations: + if not job_tool_config.params: + rval = job_tool_config + break + else: + for job_tool_config in self.job_tool_configurations: + if job_tool_config.params: + # There are job params and this config has params defined + for param, value in job_params.items(): + if param not in job_tool_config.params or job_tool_config.params[param] != value: + break + else: + # All params match, use this config + rval = job_tool_config + break + else: + rval = job_tool_config + assert rval is not None, f'Could not get a job tool configuration for Tool {self.id} with job_params {job_params}, this is a bug' + return rval + + def get_configured_job_handler(self, job_params=None): + """Get the configured job handler for this `Tool` given the provided `job_params`. + + Unlike the former ``get_job_handler()`` method, this does not perform "preassignment" (random selection of + a configured handler ID from a tag). + + :param job_params: Any params specific to this job (e.g. the job source) + :type job_params: dict or None + + :returns: str or None -- The configured handler for a job run of this `Tool` + """ + return self.__get_job_tool_configuration(job_params=job_params).handler + + def get_job_destination(self, job_params=None): + """ + :returns: galaxy.jobs.JobDestination -- The destination definition and runner parameters. + """ + return self.app.job_config.get_destination(self.__get_job_tool_configuration(job_params=job_params).destination) + + def get_panel_section(self): + return self.app.toolbox.get_section_for_tool(self) + + def allow_user_access(self, user, attempting_access=True): + """ + :returns: bool -- Whether the user is allowed to access the tool. + """ + if self.require_login and user is None: + return False + return True + + def parse(self, tool_source, guid=None, dynamic=False): + """ + Read tool configuration from the element `root` and fill in `self`. + """ + self.profile = float(tool_source.parse_profile()) + # Get the UNIQUE id for the tool + self.old_id = tool_source.parse_id() + self.id = self.old_id # added + # if guid is None: + # self.id = self.old_id + # else: + # self.id = guid + + # if not dynamic and not self.id: + # raise Exception(f"Missing tool 'id' for tool at '{tool_source}'") + + # profile = packaging.version.parse(str(self.profile)) + # if self.app.name == 'galaxy' and profile >= packaging.version.parse("16.04") and packaging.version.parse(VERSION_MAJOR) < profile: + # message = f"The tool [{self.id}] targets version {self.profile} of Galaxy, you should upgrade Galaxy to ensure proper functioning of this tool." + # raise Exception(message) + + # self.python_template_version = tool_source.parse_python_template_version() + # if self.python_template_version is None: + # # If python_template_version not specified we assume tools with profile versions >= 19.05 are python 3 ready + # if self.profile >= 19.05: + # self.python_template_version = packaging.version.parse('3.5') + # else: + # self.python_template_version = packaging.version.parse('2.7') + + # Get the (user visible) name of the tool + self.name = tool_source.parse_name() + if not self.name: + raise RuntimeError + # if not self.name and dynamic: + # self.name = self.id + # if not dynamic and not self.name: + # raise Exception(f"Missing tool 'name' for tool with id '{self.id}' at '{tool_source}'") + + self.version = tool_source.parse_version() + if not self.version: + raise RuntimeError + # if self.profile < 16.04: + # # For backward compatibility, some tools may not have versions yet. + # self.version = "1.0.0" + # else: + # raise Exception(f"Missing tool 'version' for tool with id '{self.id}' at '{tool_source}'") + + # Legacy feature, ignored by UI. + self.force_history_refresh = False + + self.display_interface = False # added + # self.display_interface = tool_source.parse_display_interface(default=self.display_interface) + + self.require_login = False # added + # self.require_login = tool_source.parse_require_login(self.require_login) + + self.input_translator = None # added + # request_param_translation_elem = tool_source.parse_request_param_translation_elem() + # if request_param_translation_elem is not None: + # # Load input translator, used by datasource tools to change names/values of incoming parameters + # self.input_translator = ToolInputTranslator.from_element(request_param_translation_elem) + # else: + # self.input_translator = None + + self.parse_command(tool_source) + self.environment_variables = self.parse_environment_variables(tool_source) + self.tmp_directory_vars = tool_source.parse_tmp_directory_vars() + + self.home_target = None # added + self.tmp_target = None # added + + # home_target = tool_source.parse_home_target() + # tmp_target = tool_source.parse_tmp_target() + # # If a tool explicitly sets one of these variables just respect that and turn off + # # explicit processing by Galaxy. + # for environment_variable in self.environment_variables: + # if environment_variable.get("name") == "HOME": + # home_target = None + # continue + # for tmp_directory_var in self.tmp_directory_vars: + # if environment_variable.get("name") == tmp_directory_var: + # tmp_target = None + # break + # self.home_target = home_target + # self.tmp_target = tmp_target + self.docker_env_pass_through = [] # added + # self.docker_env_pass_through = tool_source.parse_docker_env_pass_through() + # if self.environment_variables: + # if not self.docker_env_pass_through: + # self.docker_env_pass_through = [] + # self.docker_env_pass_through.extend(map(lambda x: x['name'], self.environment_variables)) + + # Parameters used to build URL for redirection to external app + self.redirect_url_params = '' # added + # redirect_url_params = tool_source.parse_redirect_url_params_elem() + # if redirect_url_params is not None and redirect_url_params.text is not None: + # # get rid of leading / trailing white space + # redirect_url_params = redirect_url_params.text.strip() + # # Replace remaining white space with something we can safely split on later + # # when we are building the params + # self.redirect_url_params = redirect_url_params.replace(' ', '**^**') + # else: + # self.redirect_url_params = '' + + # Short description of the tool + self.description = tool_source.parse_description() + + # Versioning for tools + self.version_string_cmd = None + # version_command = tool_source.parse_version_command() + # if version_command is not None: + # self.version_string_cmd = version_command.strip() + + # version_cmd_interpreter = tool_source.parse_version_command_interpreter() + # if version_cmd_interpreter: + # executable = self.version_string_cmd.split()[0] + # abs_executable = os.path.abspath(os.path.join(self.tool_dir, executable)) + # command_line = self.version_string_cmd.replace(executable, abs_executable, 1) + # self.version_string_cmd = f"{version_cmd_interpreter} {command_line}" + + # Parallelism for tasks, read from tool config. + self.parallelism = None # added + # self.parallelism = tool_source.parse_parallelism() + + self.all_ids = [] # added + # # Get JobToolConfiguration(s) valid for this particular Tool. At least + # # a 'default' will be provided that uses the 'default' handler and + # # 'default' destination. I thought about moving this to the + # # job_config, but it makes more sense to store here. -nate + # if self.id: + # self_ids = [self.id.lower()] + # if self.old_id != self.id: + # # Handle toolshed guids + # self_ids = [self.id.lower(), self.id.lower().rsplit('/', 1)[0], self.old_id.lower()] + # else: + # self_ids = [] + # self.all_ids = self_ids + + # In the toolshed context, there is no job config. + self.job_tool_configurations = None # added + # if hasattr(self.app, 'job_config'): + # # Order of this list must match documentation in job_conf.sample_advanced.yml + # tool_classes = [] + # if self.tool_type_local: + # tool_classes.append("local") + # elif self.old_id in ['upload1', '__DATA_FETCH__']: + # tool_classes.append("local") + # if self.requires_galaxy_python_environment: + # tool_classes.append("requires_galaxy") + + # self.job_tool_configurations = self.app.job_config.get_job_tool_configurations(self_ids, tool_classes) + + # Is this a 'hidden' tool (hidden in tool menu) + self.hidden = tool_source.parse_hidden() + self.license = tool_source.parse_license() + self.creator = tool_source.parse_creator() + + self.__parse_legacy_features(tool_source) + + # Load any tool specific options (optional) + self.options = None # added + # self.options = _Options( + # **dict( + # sanitize=tool_source.parse_sanitize(), + # refresh=tool_source.parse_refresh(), + # ) + # ) + + # Read in name of galaxy.json metadata file and how to parse it. + self.provided_metadata_file = tool_source.parse_provided_metadata_file() + self.provided_metadata_style = tool_source.parse_provided_metadata_style() + + # Parse tool help + self.parse_help(tool_source) + + # Parse result handling for tool exit codes and stdout/stderr messages: + self.parse_stdio(tool_source) + + self.strict_shell = tool_source.parse_strict_shell() + + # Any extra generated config files for the tool + self.__parse_config_files(tool_source) + # Action + self.tool_action = self.default_tool_action() # added + # action = tool_source.parse_action_module() + # if action is None: + # self.tool_action = self.default_tool_action() + # else: + # module, cls = action + # mod = __import__(module, globals(), locals(), [cls]) + # self.tool_action = getattr(mod, cls)() + # if getattr(self.tool_action, "requires_js_runtime", False): + # try: + # expressions.find_engine(self.app.config) + # except Exception: + # message = REQUIRES_JS_RUNTIME_MESSAGE % self.tool_id or self.tool_uuid + # raise Exception(message) + # Tests + self.__parse_tests(tool_source) + + # Requirements (dependencies) + requirements, containers = tool_source.parse_requirements_and_containers() + self.requirements = requirements + self.containers = containers + + required_files = tool_source.parse_required_files() + if required_files is None: + old_id = self.old_id + if old_id in IMPLICITLY_REQUIRED_TOOL_FILES: + lineage_requirement = IMPLICITLY_REQUIRED_TOOL_FILES[old_id] + lineage_requirement_until = lineage_requirement.get("version") + if lineage_requirement_until is None or self.version_object < lineage_requirement_until: + required_files = RequiredFiles.from_dict(lineage_requirement["required"]) + self.required_files = required_files + + self.citations = [] # added + # self.citations = self._parse_citations(tool_source) + xrefs = tool_source.parse_xrefs() + has_biotools_reference = any(x["reftype"] == "bio.tools" for x in xrefs) + if not has_biotools_reference: + legacy_biotools_ref = self.legacy_biotools_external_reference + if legacy_biotools_ref is not None: + xrefs.append({"value": legacy_biotools_ref, "reftype": "bio.tools"}) + self.xrefs = xrefs + + + self.edam_operations = [] # added + self.edam_topics = [] # added + # edam_operations = tool_source.parse_edam_operations() + # edam_topics = tool_source.parse_edam_topics() + + # has_missing_data = len(edam_operations) == 0 or len(edam_topics) == 0 + # if has_missing_data: + # biotools_reference = self.biotools_reference + # metadata_source = self.app.biotools_metadata_source + # if biotools_reference and metadata_source: + # biotools_entry = metadata_source.get_biotools_metadata(biotools_reference) + # if biotools_entry: + # edam_info = biotools_entry.edam_info + # if len(edam_operations) == 0: + # edam_operations = edam_info.edam_operations + # if len(edam_topics) == 0: + # edam_topics = edam_info.edam_topics + + # self.edam_operations = edam_operations + # self.edam_topics = edam_topics + + self.__parse_trackster_conf(tool_source) + # Record macro paths so we can reload a tool if any of its macro has changes + self._macro_paths = tool_source.macro_paths + self.ports = tool_source.parse_interactivetool() + + def __parse_legacy_features(self, tool_source): + self.code_namespace: Dict[str, str] = {} + self.hook_map: Dict[str, str] = {} + self.uihints: Dict[str, str] = {} + + if not hasattr(tool_source, 'root'): + return + + # TODO: Move following logic into XmlToolSource. + root = tool_source.root + # Load any tool specific code (optional) Edit: INS 5/29/2007, + # allow code files to have access to the individual tool's + # "module" if it has one. Allows us to reuse code files, etc. + for code_elem in root.findall("code"): + for hook_elem in code_elem.findall("hook"): + for key, value in hook_elem.items(): + # map hook to function + self.hook_map[key] = value + file_name = code_elem.get("file") + code_path = os.path.join(self.tool_dir, file_name) + if self._allow_code_files: + with open(code_path) as f: + code_string = f.read() + try: + compiled_code = compile(code_string, code_path, 'exec') + exec(compiled_code, self.code_namespace) + except Exception: + if ( + refactoring_tool + and self.python_template_version + and self.python_template_version.release[0] < 3 + ): + # Could be a code file that uses python 2 syntax + translated_code = str(refactoring_tool.refactor_string(code_string, name='auto_translated_code_file')) + compiled_code = compile(translated_code, f"futurized_{code_path}", 'exec') + exec(compiled_code, self.code_namespace) + else: + raise + + # User interface hints + uihints_elem = root.find("uihints") + if uihints_elem is not None: + for key, value in uihints_elem.attrib.items(): + self.uihints[key] = value + + def __parse_tests(self, tool_source): + self.__tests_source = tool_source + self.__tests_populated = False + + def __parse_config_files(self, tool_source): + self.config_files = [] + if not hasattr(tool_source, 'root'): + return + + root = tool_source.root + conf_parent_elem = root.find("configfiles") + if conf_parent_elem is not None: + inputs_elem = conf_parent_elem.find("inputs") + if inputs_elem is not None: + name = inputs_elem.get("name") + filename = inputs_elem.get("filename", None) + format = inputs_elem.get("format", "json") + data_style = inputs_elem.get("data_style", "skip") + content = dict(format=format, handle_files=data_style, type="inputs") + self.config_files.append((name, filename, content)) + file_sources_elem = conf_parent_elem.find("file_sources") + if file_sources_elem is not None: + name = file_sources_elem.get("name") + filename = file_sources_elem.get("filename", None) + content = dict(type="files") + self.config_files.append((name, filename, content)) + for conf_elem in conf_parent_elem.findall("configfile"): + name = conf_elem.get("name") + filename = conf_elem.get("filename", None) + content = conf_elem.text + self.config_files.append((name, filename, content)) + + def __parse_trackster_conf(self, tool_source): + self.trackster_conf = None + if not hasattr(tool_source, 'root'): + return + + # Trackster configuration. + trackster_conf = tool_source.root.find("trackster_conf") + if trackster_conf is not None: + self.trackster_conf = TracksterConfig.parse(trackster_conf) + + @property + def tests(self): + self.assert_finalized() + if not self.__tests_populated: + tests_source = self.__tests_source + if tests_source: + try: + self.__tests = parse_tests(self, tests_source) + except Exception: + self.__tests = None + log.exception("Failed to parse tool tests for tool '%s'", self.id) + else: + self.__tests = None + self.__tests_populated = True + return self.__tests + + @property + def _repository_dir(self): + """If tool shed installed tool, the base directory of the repository installed.""" + repository_base_dir = None + + if getattr(self, 'tool_shed', None): + tool_dir = Path(self.tool_dir) + for repo_dir in itertools.chain([tool_dir], tool_dir.parents): + if repo_dir.name == self.repository_name: + return str(repo_dir) + else: + log.error(f"Problem finding repository dir for tool '{self.id}'") + + return repository_base_dir + + def test_data_path(self, filename): + repository_dir = self._repository_dir + test_data = None + if repository_dir: + test_data = self.__walk_test_data(dir=repository_dir, filename=filename) + else: + if self.tool_dir: + tool_dir = self.tool_dir + if isinstance(self, DataManagerTool): + tool_dir = os.path.dirname(self.tool_dir) + test_data = self.__walk_test_data(tool_dir, filename=filename) + if not test_data: + # Fallback to Galaxy test data directory for builtin tools, tools + # under development, and some older ToolShed published tools that + # used stock test data. + test_data = self.app.test_data_resolver.get_filename(filename) + return test_data + + def __walk_test_data(self, dir, filename): + for root, dirs, _ in os.walk(dir): + if '.hg' in dirs: + dirs.remove('.hg') + if 'test-data' in dirs: + test_data_dir = os.path.join(root, 'test-data') + result = os.path.abspath(os.path.join(test_data_dir, filename)) + if not in_directory(result, test_data_dir): + # Don't raise an explicit exception and reveal details about what + # files are or are not on the path, simply return None and let the + # API raise a 404. + return None + else: + if os.path.exists(result): + return result + + def tool_provided_metadata(self, job_wrapper): + meta_file = os.path.join(job_wrapper.tool_working_directory, self.provided_metadata_file) + return parse_tool_provided_metadata(meta_file, provided_metadata_style=self.provided_metadata_style, job_wrapper=job_wrapper) + + def parse_command(self, tool_source): + """ + """ + # Command line (template). Optional for tools that do not invoke a local program + command = tool_source.parse_command() + if command is not None: + self.command = command.lstrip() # get rid of leading whitespace + # Must pre-pend this AFTER processing the cheetah command template + self.interpreter = tool_source.parse_interpreter() + else: + self.command = '' + self.interpreter = None + + def parse_environment_variables(self, tool_source): + return tool_source.parse_environment_variables() + + def parse_inputs(self, tool_source): + """ + Parse the "" element and create appropriate `ToolParameter` s. + This implementation supports multiple pages and grouping constructs. + """ + # Load parameters (optional) + self.inputs = {} + pages = tool_source.parse_input_pages() + enctypes: Set[str] = set() + if pages.inputs_defined: + if hasattr(pages, "input_elem"): + input_elem = pages.input_elem + # Handle properties of the input form + self.check_values = string_as_bool(input_elem.get("check_values", self.check_values)) + self.nginx_upload = string_as_bool(input_elem.get("nginx_upload", self.nginx_upload)) + self.action = input_elem.get('action', self.action) + # If we have an nginx upload, save the action as a tuple instead of + # a string. The actual action needs to get url_for run to add any + # prefixes, and we want to avoid adding the prefix to the + # nginx_upload_path. + # if ( + # self.nginx_upload + # and self.app.config.nginx_upload_path + # and not isinstance(self.action, tuple) + # ): + # if "?" in unquote_plus(self.action): + # raise Exception( + # "URL parameters in a non-default tool action can not be used " + # "in conjunction with nginx upload. Please convert them to " + # "hidden POST parameters" + # ) + # self.action = ( + # f"{self.app.config.nginx_upload_path}?nginx_redir=", + # unquote_plus(self.action), + # ) + self.target = input_elem.get("target", self.target) + self.method = input_elem.get("method", self.method) + # Parse the actual parameters + # Handle multiple page case + for page_source in pages.page_sources: + inputs = self.parse_input_elem(page_source, enctypes) + display = page_source.parse_display() + self.inputs_by_page.append(inputs) + self.inputs.update(inputs) + self.display_by_page.append(display) + else: + self.inputs_by_page.append(self.inputs) + self.display_by_page.append(None) + self.display = self.display_by_page[0] + self.npages = len(self.inputs_by_page) + self.last_page = len(self.inputs_by_page) - 1 + self.has_multiple_pages = bool(self.last_page) + # Determine the needed enctype for the form + if len(enctypes) == 0: + self.enctype = "application/x-www-form-urlencoded" + elif len(enctypes) == 1: + self.enctype = enctypes.pop() + else: + raise Exception(f"Conflicting required enctypes: {str(enctypes)}") + # Check if the tool either has no parameters or only hidden (and + # thus hardcoded) FIXME: hidden parameters aren't + # parameters at all really, and should be passed in a different + # way, making this check easier. + template_macros = {} + if hasattr(tool_source, 'root'): + template_macros = template_macro_params(tool_source.root) + self.template_macro_params = template_macros + for param in self.inputs.values(): + if not isinstance(param, (HiddenToolParameter, BaseURLToolParameter)): + self.input_required = True + break + + def parse_help(self, tool_source): + """ + Parse the help text for the tool. Formatted in reStructuredText, but + stored as Mako to allow for dynamic image paths. + This implementation supports multiple pages. + """ + # TODO: Allow raw HTML or an external link. + self.__help = HELP_UNINITIALIZED + self.__help_by_page = HELP_UNINITIALIZED + self.__help_source = tool_source + + def parse_outputs(self, tool_source): + """ + Parse elements and fill in self.outputs (keyed by name) + """ + self.outputs, self.output_collections = tool_source.parse_outputs(self) + + # TODO: Include the tool's name in any parsing warnings. + def parse_stdio(self, tool_source): + """ + Parse element(s) and fill in self.return_codes, + self.stderr_rules, and self.stdout_rules. Return codes have a range + and an error type (fault or warning). Stderr and stdout rules have + a regular expression and an error level (fault or warning). + """ + exit_codes, regexes = tool_source.parse_stdio() + self.stdio_exit_codes = exit_codes + self.stdio_regexes = regexes + + def _parse_citations(self, tool_source): + # TODO: Move following logic into ToolSource abstraction. + if not hasattr(tool_source, 'root'): + return [] + + root = tool_source.root + citations: List[str] = [] + citations_elem = root.find("citations") + if citations_elem is None: + return citations + + for citation_elem in citations_elem: + if citation_elem.tag != "citation": + pass + if hasattr(self.app, 'citations_manager'): + citation = self.app.citations_manager.parse_citation(citation_elem) + if citation: + citations.append(citation) + return citations + + def parse_input_elem(self, page_source, enctypes, context=None): + """ + Parse a parent element whose children are inputs -- these could be + groups (repeat, conditional) or param elements. Groups will be parsed + recursively. + """ + rval: Dict[str, Any] = {} + context = ExpressionContext(rval, context) + for input_source in page_source.parse_input_sources(): + # Repeat group + input_type = input_source.parse_input_type() + if input_type == "repeat": + group_r = Repeat() + group_r.name = input_source.get("name") + group_r.title = input_source.get("title") + group_r.help = input_source.get("help", None) + page_source = input_source.parse_nested_inputs_source() + group_r.inputs = self.parse_input_elem(page_source, enctypes, context) + group_r.default = int(input_source.get("default", 0)) + group_r.min = int(input_source.get("min", 0)) + # Use float instead of int so that math.inf can be used for no max + group_r.max = float(input_source.get("max", math.inf)) + assert group_r.min <= group_r.max, ValueError( + f"Tool with id '{self.id}': min repeat count must be less-than-or-equal to the max." + ) + # Force default to be within min-max range + group_r.default = cast( + int, min(max(group_r.default, group_r.min), group_r.max) + ) + rval[group_r.name] = group_r + elif input_type == "conditional": + group_c = Conditional() + group_c.name = input_source.get("name") + group_c.value_ref = input_source.get("value_ref", None) + group_c.value_ref_in_group = input_source.get_bool( + "value_ref_in_group", True + ) + value_from = input_source.get("value_from", None) + if value_from: + value_from = value_from.split(':') + temp_value_from = locals().get(value_from[0]) + group_c.test_param = rval[group_c.value_ref] + group_c.test_param.refresh_on_change = True + for attr in value_from[1].split('.'): + temp_value_from = getattr(temp_value_from, attr) + group_c.value_from = temp_value_from # type: ignore[assignment] + # ^^ due to https://github.com/python/mypy/issues/2427 + assert group_c.value_from + for case_value, case_inputs in group_c.value_from( + context, group_c, self + ).items(): + # TODO move this to attribute check to remove galaxy class imports + case = ConditionalWhen() + case.value = case_value + if case_inputs: + page_source = XmlPageSource(XML(f"{case_inputs}")) + case.inputs = self.parse_input_elem(page_source, enctypes, context) + else: + case.inputs = {} + group_c.cases.append(case) + else: + # Should have one child "input" which determines the case + test_param_input_source = input_source.parse_test_input_source() + group_c.test_param = self.parse_param_elem( + test_param_input_source, enctypes, context + ) + if group_c.test_param.optional: + log.debug(f"Tool with id '{self.id}': declares a conditional test parameter as optional, this is invalid and will be ignored.") + group_c.test_param.optional = False + possible_cases = list( + group_c.test_param.legal_values + ) # store possible cases, undefined whens will have no inputs + # Must refresh when test_param changes + group_c.test_param.refresh_on_change = True + # And a set of possible cases + for (value, case_inputs_source) in input_source.parse_when_input_sources(): + # TODO move this to attribute check to remove galaxy class imports + case = ConditionalWhen() + case.value = value + case.inputs = self.parse_input_elem(case_inputs_source, enctypes, context) + group_c.cases.append(case) + try: + possible_cases.remove(case.value) + except Exception: + log.debug( + "Tool with id '%s': a when tag has been defined for '%s (%s) --> %s', but does not appear to be selectable." + % ( + self.id, + group_c.name, + group_c.test_param.name, + case.value, + ) + ) + for unspecified_case in possible_cases: + log.warning( + "Tool with id '%s': a when tag has not been defined for '%s (%s) --> %s', assuming empty inputs." + % ( + self.id, + group_c.name, + group_c.test_param.name, + unspecified_case, + ) + ) + # TODO move this to attribute check to remove galaxy class imports + case = ConditionalWhen() + case.value = unspecified_case + case.inputs = {} + group_c.cases.append(case) + rval[group_c.name] = group_c + elif input_type == "section": + group_s = Section() + group_s.name = input_source.get("name") + group_s.title = input_source.get("title") + group_s.help = input_source.get("help", None) + group_s.expanded = input_source.get_bool("expanded", False) + page_source = input_source.parse_nested_inputs_source() + group_s.inputs = self.parse_input_elem(page_source, enctypes, context) + rval[group_s.name] = group_s + elif input_type == "upload_dataset": + elem = input_source.elem() + group_u = UploadDataset() + group_u.name = elem.get("name") + group_u.title = elem.get("title") + group_u.file_type_name = elem.get( + "file_type_name", group_u.file_type_name + ) + group_u.default_file_type = elem.get( + "default_file_type", group_u.default_file_type + ) + group_u.metadata_ref = elem.get("metadata_ref", group_u.metadata_ref) + try: + rval[group_u.file_type_name].refresh_on_change = True + except KeyError: + pass + group_page_source = XmlPageSource(elem) + group_u.inputs = self.parse_input_elem( + group_page_source, enctypes, context + ) + rval[group_u.name] = group_u + elif input_type == "param": + param = self.parse_param_elem(input_source, enctypes, context) + rval[param.name] = param + if hasattr(param, 'data_ref'): + param.ref_input = context[param.data_ref] + self.input_params.append(param) + return rval + + def parse_param_elem(self, input_source, enctypes, context): + """ + Parse a single "" element and return a ToolParameter instance. + Also, if the parameter has a 'required_enctype' add it to the set + enctypes. + """ + param = ToolParameter.build(self, input_source) + param_enctype = param.get_required_enctype() + if param_enctype: + enctypes.add(param_enctype) + # If parameter depends on any other paramters, we must refresh the + # form when it changes + for name in param.get_dependencies(): + # Let it throw exception, but give some hint what the problem might be + if name not in context: + log.error(f"Tool with id '{self.id}': Could not find dependency '{name}' of parameter '{param.name}'") + context[name].refresh_on_change = True + return param + + def populate_resource_parameters(self, tool_source): + root = getattr(tool_source, 'root', None) + if root is not None and hasattr(self.app, 'job_config') and hasattr(self.app.job_config, 'get_tool_resource_xml'): + resource_xml = self.app.job_config.get_tool_resource_xml(root.get('id', '').lower(), self.tool_type) + if resource_xml is not None: + inputs = root.find('inputs') + if inputs is None: + inputs = parse_xml_string('') + root.append(inputs) + inputs.append(resource_xml) + + def populate_tool_shed_info(self, tool_shed_repository): + if tool_shed_repository: + self.tool_shed = tool_shed_repository.tool_shed + self.repository_name = tool_shed_repository.name + self.repository_owner = tool_shed_repository.owner + self.changeset_revision = tool_shed_repository.changeset_revision + self.installed_changeset_revision = tool_shed_repository.installed_changeset_revision + self.sharable_url = get_tool_shed_repository_url( + self.app, self.tool_shed, self.repository_owner, self.repository_name + ) + + @property + def legacy_biotools_external_reference(self) -> Optional[str]: + """Return a bio.tools ID if any of tool's IDs are BIOTOOLS_MAPPING.""" + for tool_id in self.all_ids: + if tool_id in BIOTOOLS_MAPPING: + return BIOTOOLS_MAPPING[tool_id] + return None + + @property + def biotools_reference(self) -> Optional[str]: + """Return a bio.tools ID if external reference to it is found. + + If multiple bio.tools references are found, return just the first one. + """ + for xref in self.xrefs: + if xref["reftype"] == "bio.tools": + return xref["value"] + return None + + @property + def help(self): + if self.__help is HELP_UNINITIALIZED: + self.__ensure_help() + return self.__help + + @property + def help_by_page(self): + if self.__help_by_page is HELP_UNINITIALIZED: + self.__ensure_help() + return self.__help_by_page + + @property + def raw_help(self): + # may return rst (or Markdown in the future) + tool_source = self.__help_source + help_text = tool_source.parse_help() + return help_text + + def __ensure_help(self): + with HELP_UNINITIALIZED: + if self.__help is HELP_UNINITIALIZED: + self.__inititalize_help() + + def __inititalize_help(self): + tool_source = self.__help_source + self.__help = None + __help_by_page = [] + help_footer = "" + help_text = tool_source.parse_help() + if help_text is not None: + try: + if help_text.find('.. image:: ') >= 0 and (self.tool_shed_repository or self.repository_id): + help_text = set_image_paths( + self.app, help_text, encoded_repository_id=self.repository_id, tool_shed_repository=self.tool_shed_repository, tool_id=self.old_id, tool_version=self.version + ) + except Exception: + log.exception("Exception in parse_help, so images may not be properly displayed for tool with id '%s'", self.id) + try: + self.__help = Template(rst_to_html(help_text), input_encoding='utf-8', + default_filters=['decode.utf8'], + encoding_errors='replace') + except Exception: + log.exception("Exception while parsing help for tool with id '%s'", self.id) + + # Handle deprecated multi-page help text in XML case. + if hasattr(tool_source, "root"): + help_elem = tool_source.root.find("help") + help_header = help_text + help_pages = help_elem.findall("page") + # Multiple help page case + if help_pages: + for help_page in help_pages: + __help_by_page.append(help_page.text) + help_footer = help_footer + help_page.tail + # Each page has to rendered all-together because of backreferences allowed by rst + try: + __help_by_page = [ + Template( + rst_to_html(help_header + x + help_footer), + input_encoding="utf-8", + default_filters=["decode.utf8"], + encoding_errors="replace", + ) + for x in __help_by_page + ] + except Exception: + log.exception("Exception while parsing multi-page help for tool with id '%s'", self.id) + # Pad out help pages to match npages ... could this be done better? + while len(__help_by_page) < self.npages: + __help_by_page.append(self.__help) + self.__help_by_page = __help_by_page + + def find_output_def(self, name): + # name is JobToOutputDatasetAssociation name. + # TODO: to defensive, just throw IndexError and catch somewhere + # up that stack. + if ToolOutputCollectionPart.is_named_collection_part_name(name): + collection_name, part = ToolOutputCollectionPart.split_output_name(name) + collection_def = self.output_collections.get(collection_name, None) + if not collection_def: + return None + return collection_def.outputs.get(part, None) + else: + return self.outputs.get(name, None) + + @property + def is_workflow_compatible(self): + is_workflow_compatible = self._is_workflow_compatible + if is_workflow_compatible is None: + is_workflow_compatible = self.check_workflow_compatible(self.tool_source) + if self.finalized: + self._is_workflow_compatible = is_workflow_compatible + return is_workflow_compatible + + def check_workflow_compatible(self, tool_source): + """ + Determine if a tool can be used in workflows. External tools and the + upload tool are currently not supported by workflows. + """ + # Multiple page tools are not supported -- we're eliminating most + # of these anyway + if self.finalized and self.has_multiple_pages: + return False + # This is probably the best bet for detecting external web tools + # right now + if self.tool_type.startswith('data_source'): + return False + + if hasattr(tool_source, "root"): + root = tool_source.root + if not string_as_bool(root.get("workflow_compatible", "True")): + return False + + # TODO: Anyway to capture tools that dynamically change their own + # outputs? + return True + + def new_state(self, trans): + """ + Create a new `DefaultToolState` for this tool. It will be initialized + with default values for inputs. Grouping elements are filled in recursively. + """ + state = DefaultToolState() + state.initialize(trans, self) + return state + + def get_param(self, key): + """ + Returns the parameter named `key` or None if there is no such + parameter. + """ + return self.inputs.get(key, None) + + def get_hook(self, name): + """ + Returns an object from the code file referenced by `code_namespace` + (this will normally be a callable object) + """ + if self.code_namespace: + # Try to look up hook in self.hook_map, otherwise resort to default + if name in self.hook_map and self.hook_map[name] in self.code_namespace: + return self.code_namespace[self.hook_map[name]] + elif name in self.code_namespace: + return self.code_namespace[name] + return None + + def visit_inputs(self, values, callback): + """ + Call the function `callback` on each parameter of this tool. Visits + grouping parameters recursively and constructs unique prefixes for + each nested set of The callback method is then called as: + + `callback( level_prefix, parameter, parameter_value )` + """ + # HACK: Yet another hack around check_values -- WHY HERE? + if self.check_values: + visit_input_values(self.inputs, values, callback) + + def expand_incoming(self, trans, incoming, request_context, input_format='legacy'): + rerun_remap_job_id = None + if 'rerun_remap_job_id' in incoming: + try: + rerun_remap_job_id = trans.app.security.decode_id(incoming['rerun_remap_job_id']) + except Exception as exception: + log.error(str(exception)) + raise exceptions.MessageException("Failure executing tool with id '%s' (attempting to rerun invalid job).", self.id) + + set_dataset_matcher_factory(request_context, self) + + # Fixed set of input parameters may correspond to any number of jobs. + # Expand these out to individual parameters for given jobs (tool executions). + expanded_incomings, collection_info = expand_meta_parameters(trans, self, incoming) + + # Remapping a single job to many jobs doesn't make sense, so disable + # remap if multi-runs of tools are being used. + if rerun_remap_job_id and len(expanded_incomings) > 1: + raise exceptions.MessageException( + "Failure executing tool with id '%s' (cannot create multiple jobs when remapping existing job).", self.id) + + # Process incoming data + validation_timer = self.app.execution_timer_factory.get_timer( + 'internals.galaxy.tools.validation', + 'Validated and populated state for tool request', + ) + all_errors = [] + all_params = [] + for expanded_incoming in expanded_incomings: + params = {} + errors: Dict[str, str] = {} + if self.input_translator: + self.input_translator.translate(expanded_incoming) + if not self.check_values: + # If `self.check_values` is false we don't do any checking or + # processing on input This is used to pass raw values + # through to/from external sites. + params = expanded_incoming + else: + # Update state for all inputs on the current page taking new + # values from `incoming`. + populate_state(request_context, self.inputs, expanded_incoming, params, errors, simple_errors=False, input_format=input_format) + # If the tool provides a `validate_input` hook, call it. + validate_input = self.get_hook('validate_input') + if validate_input: + validate_input(request_context, errors, params, self.inputs) + all_errors.append(errors) + all_params.append(params) + unset_dataset_matcher_factory(request_context) + + log.info(validation_timer) + return all_params, all_errors, rerun_remap_job_id, collection_info + + def handle_input(self, trans, incoming, history=None, use_cached_job=False, input_format='legacy'): + """ + Process incoming parameters for this tool from the dict `incoming`, + update the tool state (or create if none existed), and either return + to the form or execute the tool (only if 'execute' was clicked and + there were no errors). + """ + request_context = proxy_work_context_for_history(trans, history=history) + all_params, all_errors, rerun_remap_job_id, collection_info = self.expand_incoming(trans=trans, incoming=incoming, request_context=request_context, input_format=input_format) + # If there were errors, we stay on the same page and display them + if any(all_errors): + # simple param_key -> message string for tool form. + err_data = {key: unicodify(value) for d in all_errors for (key, value) in d.items()} + param_errors = {} + for d in all_errors: + for key, value in d.items(): + if hasattr(value, 'to_dict'): + value_obj = value.to_dict() + else: + value_obj = {"message": unicodify(value)} + param_errors[key] = value_obj + raise exceptions.RequestParameterInvalidException(', '.join(msg for msg in err_data.values()), err_data=err_data, param_errors=param_errors) + else: + mapping_params = MappingParameters(incoming, all_params) + completed_jobs = {} + for i, param in enumerate(all_params): + if use_cached_job: + completed_jobs[i] = self.job_search.by_tool_input( + trans=trans, + tool_id=self.id, + tool_version=self.version, + param=param, + param_dump=self.params_to_strings(param, self.app, nested=True), + job_state=None, + ) + else: + completed_jobs[i] = None + execution_tracker = execute_job(trans, self, mapping_params, history=request_context.history, rerun_remap_job_id=rerun_remap_job_id, collection_info=collection_info, completed_jobs=completed_jobs) + # Raise an exception if there were jobs to execute and none of them were submitted, + # if at least one is submitted or there are no jobs to execute - return aggregate + # information including per-job errors. Arguably we should just always return the + # aggregate information - we just haven't done that historically. + raise_execution_exception = not execution_tracker.successful_jobs and len(all_params) > 0 + + if raise_execution_exception: + raise exceptions.MessageException(execution_tracker.execution_errors[0]) + + return dict(out_data=execution_tracker.output_datasets, + num_jobs=len(execution_tracker.successful_jobs), + job_errors=execution_tracker.execution_errors, + jobs=execution_tracker.successful_jobs, + output_collections=execution_tracker.output_collections, + implicit_collections=execution_tracker.implicit_collections) + + def handle_single_execution(self, trans, rerun_remap_job_id, execution_slice, history, execution_cache=None, completed_job=None, collection_info=None, job_callback=None, flush_job=True): + """ + Return a pair with whether execution is successful as well as either + resulting output data or an error message indicating the problem. + """ + try: + rval = self.execute( + trans, + incoming=execution_slice.param_combination, + history=history, + rerun_remap_job_id=rerun_remap_job_id, + execution_cache=execution_cache, + dataset_collection_elements=execution_slice.dataset_collection_elements, + completed_job=completed_job, + collection_info=collection_info, + job_callback=job_callback, + flush_job=flush_job, + ) + job = rval[0] + out_data = rval[1] + if len(rval) > 2: + execution_slice.history = rval[2] + except (webob.exc.HTTPFound, exceptions.MessageException) as e: + # if it's a webob redirect exception, pass it up the stack + raise e + except ToolInputsNotReadyException as e: + return False, e + except Exception as e: + log.exception("Exception caught while attempting to execute tool with id '%s':", self.id) + message = f"Error executing tool with id '{self.id}': {unicodify(e)}" + return False, message + if isinstance(out_data, dict): + return job, list(out_data.items()) + else: + if isinstance(out_data, str): + message = out_data + else: + message = f"Failure executing tool with id '{self.id}' (invalid data returned from tool execution)" + return False, message + + def find_fieldstorage(self, x): + if isinstance(x, cgi_FieldStorage): + raise InterruptedUpload(None) + elif isinstance(x, dict): + [self.find_fieldstorage(y) for y in x.values()] + elif isinstance(x, list): + [self.find_fieldstorage(y) for y in x] + + @property + def params_with_missing_data_table_entry(self): + """ + Return all parameters that are dynamically generated select lists whose + options require an entry not currently in the tool_data_table_conf.xml file. + """ + params = [] + for input_param in self.input_params: + if isinstance(input_param, SelectToolParameter) and input_param.is_dynamic: + options = input_param.options + if options and options.missing_tool_data_table_name and input_param not in params: + params.append(input_param) + return params + + @property + def params_with_missing_index_file(self): + """ + Return all parameters that are dynamically generated + select lists whose options refer to a missing .loc file. + """ + params = [] + for input_param in self.input_params: + if isinstance(input_param, SelectToolParameter) and input_param.is_dynamic: + options = input_param.options + if options and options.tool_data_table and options.tool_data_table.missing_index_file and input_param not in params: + params.append(input_param) + return params + + def get_static_param_values(self, trans): + """ + Returns a map of parameter names and values if the tool does not + require any user input. Will raise an exception if any parameter + does require input. + """ + args = dict() + for key, param in self.inputs.items(): + # BaseURLToolParameter is now a subclass of HiddenToolParameter, so + # we must check if param is a BaseURLToolParameter first + if isinstance(param, BaseURLToolParameter): + args[key] = param.get_initial_value(trans, None) + elif isinstance(param, HiddenToolParameter): + args[key] = model.User.expand_user_properties(trans.user, param.value) + else: + args[key] = param.get_initial_value(trans, None) + return args + + def execute(self, trans, incoming=None, set_output_hid=True, history=None, **kwargs): + """ + Execute the tool using parameter values in `incoming`. This just + dispatches to the `ToolAction` instance specified by + `self.tool_action`. In general this will create a `Job` that + when run will build the tool's outputs, e.g. `DefaultToolAction`. + """ + if incoming is None: + incoming = {} + try: + return self.tool_action.execute(self, trans, incoming=incoming, set_output_hid=set_output_hid, history=history, **kwargs) + except exceptions.ToolExecutionError as exc: + job = exc.job + job_id = 'unknown' + if job is not None: + job.mark_failed(info=exc.err_msg, blurb=exc.err_code.default_error_message) + job_id = job.id + log.error("Tool execution failed for job: %s", job_id) + raise + + def params_to_strings(self, params, app, nested=False): + return params_to_strings(self.inputs, params, app, nested) + + def params_from_strings(self, params, app, ignore_errors=False): + return params_from_strings(self.inputs, params, app, ignore_errors) + + def check_and_update_param_values(self, values, trans, update_values=True, workflow_building_mode=False): + """ + Check that all parameters have values, and fill in with default + values where necessary. This could be called after loading values + from a database in case new parameters have been added. + """ + messages = {} + request_context = proxy_work_context_for_history(trans, workflow_building_mode=workflow_building_mode) + + def validate_inputs(input, value, error, parent, context, prefixed_name, prefixed_label, **kwargs): + if not error: + value, error = check_param(request_context, input, value, context) + if error: + if update_values and not hasattr(input, 'data_ref'): + try: + previous_value = value + value = input.get_initial_value(request_context, context) + if not prefixed_name.startswith('__'): + messages[prefixed_name] = error if previous_value == value else f'{error} Using default: \'{value}\'.' + parent[input.name] = value + except Exception: + messages[prefixed_name] = 'Attempt to replace invalid value for \'%s\' failed.' % (prefixed_label) + else: + messages[prefixed_name] = error + + visit_input_values(self.inputs, values, validate_inputs) + return messages + + def build_dependency_cache(self, **kwds): + if isinstance(self.app.toolbox.dependency_manager, CachedDependencyManager): + self.app.toolbox.dependency_manager.build_cache( + requirements=self.requirements, + installed_tool_dependencies=self.installed_tool_dependencies, + tool_dir=self.tool_dir, + job_directory=None, + metadata=False, + tool_instance=self, + **kwds + ) + + def build_dependency_shell_commands(self, job_directory=None, metadata=False): + """ + Return a list of commands to be run to populate the current environment to include this tools requirements. + """ + return self.app.toolbox.dependency_manager.dependency_shell_commands( + requirements=self.requirements, + installed_tool_dependencies=self.installed_tool_dependencies, + tool_dir=self.tool_dir, + job_directory=job_directory, + preserve_python_environment=self.requires_galaxy_python_environment, + metadata=metadata, + tool_instance=self + ) + + @property + def installed_tool_dependencies(self): + if self.tool_shed_repository: + installed_tool_dependencies = self.tool_shed_repository.tool_dependencies_installed_or_in_error + else: + installed_tool_dependencies = None + return installed_tool_dependencies + + @property + def tool_requirements(self): + """ + Return all requiremens of type package + """ + return self.requirements.packages + + @property + def tool_requirements_status(self): + """ + Return a list of dictionaries for all tool dependencies with their associated status + """ + return self._view.get_requirements_status({self.id: self.tool_requirements}, self.installed_tool_dependencies) + + @property + def output_discover_patterns(self): + # patterns to collect for remote job execution + patterns = [] + for output in self.outputs.values(): + patterns.extend(output.output_discover_patterns) + return patterns + + def build_redirect_url_params(self, param_dict): + """ + Substitute parameter values into self.redirect_url_params + """ + if not self.redirect_url_params: + return + redirect_url_params = None + # Substituting parameter values into the url params + redirect_url_params = fill_template(self.redirect_url_params, context=param_dict) + # Remove newlines + redirect_url_params = redirect_url_params.replace("\n", " ").replace("\r", " ") + return redirect_url_params + + def parse_redirect_url(self, data, param_dict): + """ + Parse the REDIRECT_URL tool param. Tools that send data to an external + application via a redirect must include the following 3 tool params: + + 1) REDIRECT_URL - the url to which the data is being sent + + 2) DATA_URL - the url to which the receiving application will send an + http post to retrieve the Galaxy data + + 3) GALAXY_URL - the url to which the external application may post + data as a response + """ + redirect_url = param_dict.get('REDIRECT_URL') + redirect_url_params = self.build_redirect_url_params(param_dict) + # Add the parameters to the redirect url. We're splitting the param + # string on '**^**' because the self.parse() method replaced white + # space with that separator. + params = redirect_url_params.split('**^**') + rup_dict = {} + for param in params: + p_list = param.split('=') + p_name = p_list[0] + p_val = p_list[1] + rup_dict[p_name] = p_val + DATA_URL = param_dict.get('DATA_URL', None) + assert DATA_URL is not None, "DATA_URL parameter missing in tool config." + DATA_URL += f"/{str(data.id)}/display" + redirect_url += f"?DATA_URL={DATA_URL}" + # Add the redirect_url_params to redirect_url + for p_name in rup_dict: + redirect_url += f"&{p_name}={rup_dict[p_name]}" + # Add the current user email to redirect_url + if data.history.user: + USERNAME = str(data.history.user.email) + else: + USERNAME = 'Anonymous' + redirect_url += f"&USERNAME={USERNAME}" + return redirect_url + + def call_hook(self, hook_name, *args, **kwargs): + """ + Call the custom code hook function identified by 'hook_name' if any, + and return the results + """ + try: + code = self.get_hook(hook_name) + if code: + return code(*args, **kwargs) + except Exception as e: + original_message = '' + if len(e.args): + original_message = e.args[0] + e.args = (f"Error in '{self.name}' hook '{hook_name}', original message: {original_message}", ) + raise + + def exec_before_job(self, app, inp_data, out_data, param_dict=None): + pass + + def exec_after_process(self, app, inp_data, out_data, param_dict, job=None, **kwds): + pass + + def job_failed(self, job_wrapper, message, exception=False): + """ + Called when a job has failed + """ + + def discover_outputs(self, out_data, out_collections, tool_provided_metadata, tool_working_directory, job, input_ext, input_dbkey, inp_data=None, final_job_state='ok'): + """ + Find any additional datasets generated by a tool and attach (for + cases where number of outputs is not known in advance). + """ + # given the job_execution import is the only one, probably makes sense to refactor this out + # into job_wrapper. + tool = self + permission_provider = output_collect.PermissionProvider(inp_data, tool.app.security_agent, job) + metadata_source_provider = output_collect.MetadataSourceProvider(inp_data) + job_context = output_collect.JobContext( + tool, + tool_provided_metadata, + job, + tool_working_directory, + permission_provider, + metadata_source_provider, + input_dbkey, + object_store=tool.app.object_store, + final_job_state=final_job_state, + flush_per_n_datasets=tool.app.config.flush_per_n_datasets, + max_discovered_files=tool.app.config.max_discovered_files, + ) + collected = output_collect.collect_primary_datasets( + job_context, + out_data, + input_ext, + ) + output_collect.collect_dynamic_outputs( + job_context, + out_collections, + ) + # Return value only used in unit tests. Probably should be returning number of collected + # bytes instead? + return collected + + def to_archive(self): + tool = self + tarball_files = [] + temp_files = [] + with open(os.path.abspath(tool.config_file)) as fh1: + tool_xml = fh1.read() + # Retrieve tool help images and rewrite the tool's xml into a temporary file with the path + # modified to be relative to the repository root. + image_found = False + if tool.help is not None: + tool_help = tool.help._source + # Check each line of the rendered tool help for an image tag that points to a location under static/ + for help_line in tool_help.split('\n'): + image_regex = re.compile(r'img alt="[^"]+" src="\${static_path}/([^"]+)"') + matches = re.search(image_regex, help_line) + if matches is not None: + tool_help_image = matches.group(1) + tarball_path = tool_help_image + filesystem_path = os.path.abspath(os.path.join(self.app.config.root, 'static', tool_help_image)) + if os.path.exists(filesystem_path): + tarball_files.append((filesystem_path, tarball_path)) + image_found = True + tool_xml = tool_xml.replace('${static_path}/%s' % tarball_path, tarball_path) + # If one or more tool help images were found, add the modified tool XML to the tarball instead of the original. + if image_found: + with tempfile.NamedTemporaryFile( + mode="w", suffix=".xml", delete=False + ) as fh2: + new_tool_config = fh2.name + fh2.write(tool_xml) + tool_tup = (new_tool_config, os.path.split(tool.config_file)[-1]) + temp_files.append(new_tool_config) + else: + tool_tup = (os.path.abspath(tool.config_file), os.path.split(tool.config_file)[-1]) + tarball_files.append(tool_tup) + # TODO: This feels hacky. + tool_command = tool.command.strip().split()[0] + tool_path = os.path.dirname(os.path.abspath(tool.config_file)) + # Add the tool XML to the tuple that will be used to populate the tarball. + if os.path.exists(os.path.join(tool_path, tool_command)): + tarball_files.append((os.path.join(tool_path, tool_command), tool_command)) + # Find and add macros and code files. + for external_file in tool.get_externally_referenced_paths(os.path.abspath(tool.config_file)): + external_file_abspath = os.path.abspath(os.path.join(tool_path, external_file)) + tarball_files.append((external_file_abspath, external_file)) + if os.path.exists(os.path.join(tool_path, "Dockerfile")): + tarball_files.append((os.path.join(tool_path, "Dockerfile"), "Dockerfile")) + # Find tests, and check them for test data. + tests = tool.tests + if tests is not None: + for test in tests: + # Add input file tuples to the list. + for input in test.inputs: + for input_value in test.inputs[input]: + input_filename = str(input_value) + input_path = os.path.abspath(os.path.join('test-data', input_filename)) + if os.path.exists(input_path): + td_tup = (input_path, os.path.join('test-data', input_filename)) + tarball_files.append(td_tup) + # And add output file tuples to the list. + for _, filename, _ in test.outputs: + output_filepath = os.path.abspath(os.path.join('test-data', filename)) + if os.path.exists(output_filepath): + td_tup = (output_filepath, os.path.join('test-data', filename)) + tarball_files.append(td_tup) + for param in tool.input_params: + # Check for tool data table definitions. + if hasattr(param, 'options'): + if hasattr(param.options, 'tool_data_table'): + data_table = param.options.tool_data_table + if hasattr(data_table, 'filenames'): + data_table_definitions = [] + for data_table_filename in data_table.filenames: + # FIXME: from_shed_config seems to always be False. + if not data_table.filenames[data_table_filename]['from_shed_config']: + tar_file = f"{data_table.filenames[data_table_filename]['filename']}.sample" + sample_file = os.path.join(data_table.filenames[data_table_filename]['tool_data_path'], + tar_file) + # Use the .sample file, if one exists. If not, skip this data table. + if os.path.exists(sample_file): + tarfile_path, tarfile_name = os.path.split(tar_file) + tarfile_path = os.path.join('tool-data', tarfile_name) + tarball_files.append((sample_file, tarfile_path)) + data_table_definitions.append(data_table.xml_string) + if len(data_table_definitions) > 0: + # Put the data table definition XML in a temporary file. + table_definition = '\n\n %s' + table_definition = table_definition % "\n".join( + data_table_definitions + ) + with tempfile.NamedTemporaryFile( + mode="w", delete=False + ) as fh3: + table_conf = fh3.name + fh3.write(table_definition) + tarball_files.append((table_conf, os.path.join('tool-data', 'tool_data_table_conf.xml.sample'))) + temp_files.append(table_conf) + # Create the tarball. + with tempfile.NamedTemporaryFile(suffix=".tgz", delete=False) as fh4: + tarball_archive = fh4.name + tarball = tarfile.open(name=tarball_archive, mode='w:gz') + # Add the files from the previously generated list. + for fspath, tarpath in tarball_files: + tarball.add(fspath, arcname=tarpath) + tarball.close() + # Delete any temporary files that were generated. + for temp_file in temp_files: + os.remove(temp_file) + return tarball_archive + + def to_dict(self, trans, link_details=False, io_details=False, tool_help=False): + """ Returns dict of tool. """ + + # Basic information + tool_dict = super().to_dict() + + tool_dict["edam_operations"] = self.edam_operations + tool_dict["edam_topics"] = self.edam_topics + tool_dict["hidden"] = self.hidden + tool_dict["is_workflow_compatible"] = self.is_workflow_compatible + tool_dict["xrefs"] = self.xrefs + + # Fill in ToolShedRepository info + if hasattr(self, 'tool_shed') and self.tool_shed: + tool_dict['tool_shed_repository'] = { + 'name': self.repository_name, + 'owner': self.repository_owner, + 'changeset_revision': self.changeset_revision, + 'tool_shed': self.tool_shed + } + + # If an admin user, expose the path to the actual tool config XML file. + if trans.user_is_admin: + config_file = None if not self.config_file else os.path.abspath(self.config_file) + tool_dict['config_file'] = config_file + + # Add link details. + if link_details: + # Add details for creating a hyperlink to the tool. + if not isinstance(self, DataSourceTool): + link = self.app.url_for(controller='tool_runner', tool_id=self.id) + else: + link = self.app.url_for(controller='tool_runner', action='data_source_redirect', tool_id=self.id) + + # Basic information + tool_dict.update({'link': link, + 'min_width': self.uihints.get('minwidth', -1), + 'target': self.target}) + + # Add input and output details. + if io_details: + tool_dict['inputs'] = [input.to_dict(trans) for input in self.inputs.values()] + tool_dict['outputs'] = [output.to_dict(app=self.app) for output in self.outputs.values()] + + tool_dict['panel_section_id'], tool_dict['panel_section_name'] = self.get_panel_section() + + tool_class = self.__class__ + # FIXME: the Tool class should declare directly, instead of ad hoc inspection + regular_form = tool_class == Tool or isinstance(self, (DatabaseOperationTool, InteractiveTool)) + tool_dict["form_style"] = "regular" if regular_form else "special" + if tool_help: + # create tool help + help_txt = '' + if self.help: + help_txt = self.help.render(static_path=self.app.url_for('/static'), host_url=self.app.url_for('/', qualified=True)) + help_txt = unicodify(help_txt) + tool_dict['help'] = help_txt + + return tool_dict + + def to_json(self, trans, kwd=None, job=None, workflow_building_mode=False, history=None): + """ + Recursively creates a tool dictionary containing repeats, dynamic options and updated states. + """ + if kwd is None: + kwd = {} + if workflow_building_mode is workflow_building_modes.USE_HISTORY or workflow_building_mode is workflow_building_modes.DISABLED: + # We don't need a history when exporting a workflow for the workflow editor or when downloading a workflow + history = history or trans.get_history() + if history is None and job is not None: + history = self.history_manager.get_owned(job.history.id, trans.user, current_history=trans.history) + if history is None: + raise exceptions.MessageException('History unavailable. Please specify a valid history id') + + # build request context + request_context = proxy_work_context_for_history(trans, history, workflow_building_mode=workflow_building_mode) + + # load job parameters into incoming + tool_message = '' + tool_warnings = '' + if job: + try: + job_params = job.get_param_values(self.app, ignore_errors=True) + tool_warnings = self.check_and_update_param_values(job_params, request_context, update_values=True) + self._map_source_to_history(request_context, self.inputs, job_params) + tool_message = self._compare_tool_version(job) + params_to_incoming(kwd, self.inputs, job_params, self.app) + except Exception as e: + raise exceptions.MessageException(unicodify(e)) + + # create parameter object + params = Params(kwd, sanitize=False) + + # expand incoming parameters (parameters might trigger multiple tool executions, + # here we select the first execution only in order to resolve dynamic parameters) + expanded_incomings, _ = expand_meta_parameters(trans, self, params.__dict__) + if expanded_incomings: + params.__dict__ = expanded_incomings[0] + + # do param translation here, used by datasource tools + if self.input_translator: + self.input_translator.translate(params) + + set_dataset_matcher_factory(request_context, self) + # create tool state + state_inputs: Dict[str, str] = {} + state_errors: Dict[str, str] = {} + populate_state(request_context, self.inputs, params.__dict__, state_inputs, state_errors) + + # create tool model + tool_model = self.to_dict(request_context) + tool_model['inputs'] = [] + self.populate_model(request_context, self.inputs, state_inputs, tool_model['inputs']) + unset_dataset_matcher_factory(request_context) + + # create tool help + tool_help = '' + if self.help: + tool_help = self.help.render(static_path=self.app.url_for('/static'), host_url=self.app.url_for('/', qualified=True)) + tool_help = unicodify(tool_help, 'utf-8') + + if isinstance(self.action, tuple): + action = self.action[0] + self.app.url_for(self.action[1]) + else: + action = self.app.url_for(self.action) + + # update tool model + tool_model.update({ + 'id': self.id, + 'help': tool_help, + 'citations': bool(self.citations), + 'sharable_url': self.sharable_url, + 'message': tool_message, + 'warnings': tool_warnings, + 'versions': self.tool_versions, + 'requirements': [{'name': r.name, 'version': r.version} for r in self.requirements], + 'errors': state_errors, + 'tool_errors': self.tool_errors, + 'state_inputs': params_to_strings(self.inputs, state_inputs, self.app, use_security=True, nested=True), + 'job_id': trans.security.encode_id(job.id) if job else None, + 'job_remap': job.remappable() if job else None, + 'history_id': trans.security.encode_id(history.id) if history else None, + 'display': self.display_interface, + 'action': action, + 'license': self.license, + 'creator': self.creator, + 'method': self.method, + 'enctype': self.enctype + }) + return tool_model + + def populate_model(self, request_context, inputs, state_inputs, group_inputs, other_values=None): + """ + Populates the tool model consumed by the client form builder. + """ + other_values = ExpressionContext(state_inputs, other_values) + for input_index, input in enumerate(inputs.values()): + tool_dict = None + group_state = state_inputs.get(input.name, {}) + if input.type == 'repeat': + tool_dict = input.to_dict(request_context) + group_size = len(group_state) + tool_dict["cache"] = [None] * group_size + group_cache: List[List[str]] = tool_dict["cache"] + for i in range(group_size): + group_cache[i] = [] + self.populate_model(request_context, input.inputs, group_state[i], group_cache[i], other_values) + elif input.type == 'conditional': + tool_dict = input.to_dict(request_context) + if 'test_param' in tool_dict: + test_param = tool_dict['test_param'] + test_param['value'] = input.test_param.value_to_basic(group_state.get(test_param['name'], input.test_param.get_initial_value(request_context, other_values)), self.app) + test_param['text_value'] = input.test_param.value_to_display_text(test_param['value']) + for i in range(len(tool_dict['cases'])): + current_state = {} + if i == group_state.get('__current_case__'): + current_state = group_state + self.populate_model(request_context, input.cases[i].inputs, current_state, tool_dict['cases'][i]['inputs'], other_values) + elif input.type == 'section': + tool_dict = input.to_dict(request_context) + self.populate_model(request_context, input.inputs, group_state, tool_dict['inputs'], other_values) + else: + try: + initial_value = input.get_initial_value(request_context, other_values) + tool_dict = input.to_dict(request_context, other_values=other_values) + tool_dict['value'] = input.value_to_basic(state_inputs.get(input.name, initial_value), self.app, use_security=True) + tool_dict['default_value'] = input.value_to_basic(initial_value, self.app, use_security=True) + tool_dict['text_value'] = input.value_to_display_text(tool_dict['value']) + except ImplicitConversionRequired: + tool_dict = input.to_dict(request_context) + # This hack leads client to display a text field + tool_dict['textable'] = True + except Exception: + tool_dict = input.to_dict(request_context) + log.exception("tools::to_json() - Skipping parameter expansion '%s'", input.name) + if input_index >= len(group_inputs): + group_inputs.append(tool_dict) + else: + group_inputs[input_index] = tool_dict + + def _map_source_to_history(self, trans, tool_inputs, params): + # Need to remap dataset parameters. Job parameters point to original + # dataset used; parameter should be the analygous dataset in the + # current history. + history = trans.history + + # Create index for hdas. + hda_source_dict = {} + for hda in history.datasets: + key = f'{hda.hid}_{hda.dataset.id}' + hda_source_dict[hda.dataset.id] = hda_source_dict[key] = hda + + # Ditto for dataset collections. + hdca_source_dict = {} + for hdca in history.dataset_collections: + key = f'{hdca.hid}_{hdca.collection.id}' + hdca_source_dict[hdca.collection.id] = hdca_source_dict[key] = hdca + + # Map dataset or collection to current history + def map_to_history(value): + id = None + source = None + if isinstance(value, self.app.model.HistoryDatasetAssociation): + id = value.dataset.id + source = hda_source_dict + elif isinstance(value, self.app.model.HistoryDatasetCollectionAssociation): + id = value.collection.id + source = hdca_source_dict + else: + return None + key = f'{value.hid}_{id}' + if key in source: + return source[key] + elif id in source: + return source[id] + else: + return None + + def mapping_callback(input, value, **kwargs): + if isinstance(input, DataToolParameter): + if isinstance(value, list): + values = [] + for val in value: + new_val = map_to_history(val) + if new_val: + values.append(new_val) + else: + values.append(val) + return values + else: + return map_to_history(value) + elif isinstance(input, DataCollectionToolParameter): + return map_to_history(value) + visit_input_values(tool_inputs, params, mapping_callback) + + def _compare_tool_version(self, job): + """ + Compares a tool version with the tool version from a job (from ToolRunner). + """ + tool_id = job.tool_id + tool_version = job.tool_version + message = '' + try: + select_field, tools, tool = self.app.toolbox.get_tool_components(tool_id, tool_version=tool_version, get_loaded_tools_by_lineage=False, set_selected=True) + if tool is None: + raise exceptions.MessageException('This dataset was created by an obsolete tool (%s). Can\'t re-run.' % tool_id) + if (self.id != tool_id and self.old_id != tool_id) or self.version != tool_version: + if self.id == tool_id: + if tool_version: + message = f'This job was run with tool version "{tool_version}", which is not available. ' + if len(tools) > 1: + message += 'You can re-run the job with the selected tool or choose another version of the tool. ' + else: + message += 'You can re-run the job with this tool version, which is a different version of the original tool. ' + else: + new_tool_shed_url = f'{tool.sharable_url}/{tool.changeset_revision}/' + old_tool_shed_url = get_tool_shed_url_from_tool_shed_registry(self.app, tool_id.split('/repos/')[0]) + old_tool_shed_url = f'{old_tool_shed_url}/view/{tool.repository_owner}/{tool.repository_name}/' + message = f'This job was run with tool id \"{tool_id}\", version "{tool_version}", which is not available. ' + if len(tools) > 1: + message += f'You can re-run the job with the selected tool id \"{self.id}\" or choose another derivation of the tool. ' + else: + message += f'You can re-run the job with tool id \"{self.id}\", which is a derivation of the original tool. ' + if not self.is_latest_version: + message += 'There is a newer version of this tool available.' + except Exception as e: + raise exceptions.MessageException(unicodify(e)) + return message + + def get_default_history_by_trans(self, trans, create=False): + return trans.get_history(create=create) + + @classmethod + def get_externally_referenced_paths(self, path): + """ Return relative paths to externally referenced files by the tool + described by file at `path`. External components should not assume things + about the structure of tool xml files (this is the tool's responsibility). + """ + tree = raw_tool_xml_tree(path) + root = tree.getroot() + external_paths = [] + for code_elem in root.findall('code'): + external_path = code_elem.get('file') + if external_path: + external_paths.append(external_path) + external_paths.extend(imported_macro_paths(root)) + # May also need to load external citation files as well at some point. + return external_paths + diff --git a/janis_core/ingestion/galaxy/gxtool/parsing/nogx/__init__.py b/janis_core/ingestion/galaxy/gxtool/parsing/nogx/__init__.py new file mode 100644 index 000000000..df2322306 --- /dev/null +++ b/janis_core/ingestion/galaxy/gxtool/parsing/nogx/__init__.py @@ -0,0 +1,3 @@ + + +from .encoding import unicodify \ No newline at end of file diff --git a/janis_core/ingestion/galaxy/gxtool/parsing/nogx/encoding.py b/janis_core/ingestion/galaxy/gxtool/parsing/nogx/encoding.py new file mode 100644 index 000000000..677057c25 --- /dev/null +++ b/janis_core/ingestion/galaxy/gxtool/parsing/nogx/encoding.py @@ -0,0 +1,41 @@ + + +import os + +DEFAULT_ENCODING = os.environ.get('GALAXY_DEFAULT_ENCODING', 'utf-8') + + +# taken from galaxy.util +def unicodify(value, encoding=DEFAULT_ENCODING, error='replace', strip_null=False, log_exception=True): + """ + Returns a Unicode string or None. + + >>> assert unicodify(None) is None + >>> assert unicodify('simple string') == 'simple string' + >>> assert unicodify(3) == '3' + >>> assert unicodify(bytearray([115, 116, 114, 196, 169, 195, 177, 103])) == 'strĩñg' + >>> assert unicodify(Exception('strĩñg')) == 'strĩñg' + >>> assert unicodify('cómplǐcḁtëd strĩñg') == 'cómplǐcḁtëd strĩñg' + >>> s = 'cómplǐcḁtëd strĩñg'; assert unicodify(s) == s + >>> s = 'lâtín strìñg'; assert unicodify(s.encode('latin-1'), 'latin-1') == s + >>> s = 'lâtín strìñg'; assert unicodify(s.encode('latin-1')) == 'l\ufffdt\ufffdn str\ufffd\ufffdg' + >>> s = 'lâtín strìñg'; assert unicodify(s.encode('latin-1'), error='ignore') == 'ltn strg' + """ + if value is None: + return value + try: + if isinstance(value, bytearray): + value = bytes(value) + elif not isinstance(value, (str, bytes)): + value = str(value) + # Now value is an instance of bytes or str + if not isinstance(value, str): + value = str(value, encoding, error) + except Exception as e: + raise e + # if log_exception: + # msg = f"Value '{repr(value)}' could not be coerced to Unicode: {type(e).__name__}('{e}')" + # log.exception(msg) + if strip_null: + return value.replace('\0', '') + return value \ No newline at end of file diff --git a/janis_core/ingestion/galaxy/gxtool/parsing/nogx/main.py b/janis_core/ingestion/galaxy/gxtool/parsing/nogx/main.py new file mode 100644 index 000000000..49017fed1 --- /dev/null +++ b/janis_core/ingestion/galaxy/gxtool/parsing/nogx/main.py @@ -0,0 +1,375 @@ + + + +import os +import regex as re +from typing import Any + +from galaxy.tools import Tool as GxTool +from galaxy.tools.parameters.basic import ToolParameter +from galaxy.tool_util.parser import get_tool_source +from galaxy.tool_util.parser.xml import XmlToolSource +from galaxy.tool_util.parser.output_objects import ToolOutput + +from ...model import XMLDataParam +from ...model import XMLConfigfile +from ...model import XMLScript +from ...model import XMLTool +from ...model import XMLMetadata +from ...model import XMLCitation +from ...model import XMLParamRegister +from ...model import XMLCondaRequirement +from ...model import XMLContainerRequirement +from ...model import XMLTest +from ...model import XMLTestRegister + +from ....expressions.patterns import GX_TOOL_SCRIPT +from ....expressions.matches import get_matches + +from ..param_flattener import XMLParamFlattener +from ..outputs import parse_output_param +from ..inputs import parse_input_param + +Requirement = XMLContainerRequirement | XMLCondaRequirement + +from .GXTool import GXTool + + +def load_xmltool_new(path: str) -> XMLTool: + tool_source = get_tool_source(path) + assert(isinstance(tool_source, XmlToolSource)) + config_file = None + gxtool = GXTool(config_file, tool_source) + gxtool.assert_finalized() + factory = GalaxyToolFactory(gxtool, path) + return factory.create() + + + +class GalaxyToolFactory: + def __init__(self, gxtool: GXTool, xmlpath: str): + self.gxtool = gxtool + self.xmlpath = xmlpath + self.scripts: list[XMLScript] = [] + self.configfiles: list[XMLConfigfile] = [] + self.inputs = self.parse_inputs() + self.parse_scripts() + self.parse_configfiles() + self.outputs = self.parse_outputs() + + # TODO remove script references in command parsing etc + # scripts / configfiles treated as gxparam XMLInputParams. + # still need way to set default value? + + def create(self) -> XMLTool: + return XMLTool( + metadata=self.parse_metadata(), + raw_command=self.parse_command(), + configfiles=self.configfiles, + scripts=self.scripts, + inputs=self.inputs, + outputs=self.outputs, + tests=self.parse_tests() + ) + + def parse_inputs(self) -> XMLParamRegister: + """returns a an InputRegister by reformatting the galaxy tool representation's params.""" + register = XMLParamRegister() + g_in_params = self.flatten_params() + + # removing duplicates + fingerprints = set() + unique_params = [] + for g_param in g_in_params: + items = [g_param.flat_name, g_param.label, g_param.type] + items = [x for x in items if isinstance(x, str)] + fingerprint = ''.join(items) + if fingerprint not in fingerprints: + unique_params.append(g_param) + fingerprints.add(fingerprint) + + # parsing individual params + for g_param in unique_params: + i_param = parse_input_param(g_param) + register.add(i_param) + + return register + + def flatten_params(self) -> list[ToolParameter]: + pf = XMLParamFlattener(self.gxtool.inputs) + return pf.flatten() + + def parse_outputs(self) -> XMLParamRegister: + """returns a formatted list of outputs using the representation""" + register = XMLParamRegister() + g_out_params: list[ToolOutput] = list(self.gxtool.outputs.values()) + for g_param in g_out_params: + t_params = parse_output_param(g_param, self.inputs) + for param in t_params: + register.add(param) + return register + + def parse_metadata(self) -> XMLMetadata: + """returns a formatted Metadata using the representation""" + requirements: list[Requirement] = self.get_requirements() + citations: list[XMLCitation] = self.get_citations() + return XMLMetadata( + name=str(self.gxtool.name), #type: ignore + id=str(self.gxtool.id), #type: ignore + version=str(self.gxtool.version).split('+galaxy')[0], #type: ignore + description=str(self.gxtool.description), #type: ignore + help=str(self.gxtool.raw_help), #type: ignore + requirements=requirements, + citations=citations, + creator=self.gxtool.creator #type: ignore + ) + + def get_requirements(self) -> list[Requirement]: + """returns a formatted list of Requirements using the representation""" + reqs: list[Requirement] = [] + reqs += self.get_conda_requirements() + reqs += self.get_container_requirements() + return reqs + + def get_conda_requirements(self) -> list[XMLCondaRequirement]: + packages: list[dict[str, str]] = self.gxtool.requirements.to_list() # type: ignore + return [XMLCondaRequirement(p['name'], p['version']) for p in packages] + + def get_container_requirements(self) -> list[XMLContainerRequirement]: + containers: list[ContainerDescription] = self.gxtool.containers # type: ignore + return [XMLContainerRequirement(c.identifier) for c in containers] # type: ignore + + def get_citations(self) -> list[XMLCitation]: + citations: list[XMLCitation] = [] + citations += self.get_biotools_citations() + citations += self.get_doi_citations() + #citations += self.get_bibtex_citations() + return citations + + def get_biotools_citations(self) -> list[XMLCitation]: + out: list[XMLCitation] = [] + for ref in self.gxtool.xrefs: + citation = XMLCitation( + type='biotools', + text=f"https://bio.tools/{ref['value']}" + ) + out.append(citation) + return out + + def get_doi_citations(self) -> list[XMLCitation]: + out: list[XMLCitation] = [] + for elem in self.gxtool.tool_source.xml_tree.findall('citations'): + for ref in elem.findall('citation'): + if ref.attrib['type'] == 'doi': + citation = XMLCitation( + type='doi', + text=f"https://doi.org/{ref.text}" + ) + out.append(citation) + return out + + def get_bibtex_citations(self) -> list[XMLCitation]: + out: list[XMLCitation] = [] + for elem in self.gxtool.tool_source.xml_tree.findall('citations'): + for ref in elem.findall('citation'): + if ref.attrib['type'] == 'bibtex': + citation = XMLCitation( + type='bibtex', + text=self.parse_bibtex(ref.text) + ) + out.append(citation) + return out + + def parse_bibtex(self, bibtex_citation: dict[str, str]) -> str: + # define and parse using biblib + bp = bib.Parser() + data = bp.parse(bibtex_citation).get_entries() # type: ignore + # get each citation key: value pair + entry = list(data.values())[0] # type: ignore + if 'url' in entry: + return f"{entry['url']}" # type: ignore + elif 'author' in entry and 'title' in entry: + return f"{entry['author']}. {entry['title']}" + return '' + + def parse_command(self) -> str: + """returns the tool xml command""" + return str(self.gxtool.command) # type: ignore + + def parse_configfiles(self) -> None: + """ + parses tool configfiles & adds to XMLTool.configfiles. + Additionally: + Adds a XMLDataParam for the configfile. + Do not need to replace the configfile in the command, as is already a reference. + This way, configfile will be treated as ToolInputs which is desired behaviour. + + Need to add a Workflow InputNode for the configfile. + Need to link this InputNode to the extracted ToolInput in the step call. + These happen later, in ingestion.galaxy.gx.gxworkflow.values.scripts + (called from janis_core.ingestion.galaxy.ingest) + """ + for name, _, contents in self.gxtool.config_files: # type: ignore + if isinstance(contents, str): + # parse into XMLConfigfile & add to XMLTool + configfile = XMLConfigfile(name, contents) # type: ignore + self.configfiles.append(configfile) + + # add param for XMLConfigfile + param = XMLDataParam(name=configfile.varname) + param.formats = ['file'] + param.helptext = 'galaxy script needed to run tool' + self.inputs.add(param) + + def parse_scripts(self) -> None: + """ + parses local tool scripts & adds to XMLTool.scripts. + (ie $__tool_directory__/my_script.py) + Additionally: + Adds a XMLDataParam for the script. + Replaces the script in the command with a reference to the param. + This way, scripts will be treated as ToolInputs which is desired behaviour. + + Need to add a Workflow InputNode for the script file. + Need to link this InputNode to the extracted ToolInput in the step call. + These happen later, in ingestion.galaxy.gx.gxworkflow.values.scripts + (called from janis_core.ingestion.galaxy.ingest) + """ + while get_matches(self.gxtool.command, GX_TOOL_SCRIPT): + # get the match + match = get_matches(self.gxtool.command, GX_TOOL_SCRIPT)[0] + + # parse match into script & add to XMLTool + script = self.parse_script(match) + self.scripts.append(script) + + # add param for script + param = XMLDataParam(name=script.varname) + param.formats = ['file'] + param.helptext = 'galaxy script needed to run tool' + self.inputs.add(param) + + # modify command to replace script with param + print(self.gxtool.command) + self.replace_script_in_command(match, param) + print(self.gxtool.command) + print() + + def parse_script(self, match: re.Match[str]) -> XMLScript: + filename = match.group(1) + varname = filename.rsplit('.', 1)[0] + if not varname.endswith('_script'): + varname = f'{varname}_script' + script_contents = self.read_script_contents(filename) + return XMLScript(varname, filename, script_contents) + + def read_script_contents(self, filename: str) -> str: + xmldir = os.path.dirname(self.xmlpath) + filepath = os.path.join(xmldir, filename) + with open(filepath, 'r') as f: + script_contents = f.read() + return script_contents + + def replace_script_in_command(self, match: re.Match[str], param: XMLDataParam) -> None: + self.gxtool.command = self.gxtool.command.replace(match.group(0), f'${param.name}') + + def parse_tests(self) -> XMLTestRegister: + """ + returns a formatted list of tests using the representation + needs to be properly fleshed out later! + """ + xmltests: list[XMLTest] = [] + if self.gxtool.tests: + for test in self.gxtool.tests: + inputs_dict = to_inputs_dict(test.inputs) + xmltest = XMLTest(test.name, inputs_dict) + xmltests.append(xmltest) + return XMLTestRegister(xmltests) + + + +### HELPER FUNCTIONS ### + +class RepeatSection(dict): + def __init__(self): + super().__init__() + +def to_inputs_dict(gxinputs: dict[str, Any]) -> dict[str, Any]: + inputs_dict: dict[str, Any] = {} + for longname, value in gxinputs.items(): + inputs_dict = generate_structure(inputs_dict, longname) + inputs_dict = inject_value(inputs_dict, longname, value) + inputs_dict = collapse_repeats(inputs_dict) + return inputs_dict + +def generate_structure(inputs_dict: dict[str, Any], longname: str) -> dict[str, Any]: + REPEAT_MATCHER = r'_\d+$' + longname = longname.replace('|', '.') + heirarchy = longname.split('.') + + if len(heirarchy) >= 1: + heirarchy = heirarchy[:-1] # don't care about leaf nodes + node = inputs_dict + # prepare dict structure & inject value at leaf + for label in heirarchy: + # if internal repeat section, handle + if re.search(REPEAT_MATCHER, label): + label, elem = label.rsplit('_', 1) + if label not in node: + node[label] = RepeatSection() + if elem not in node[label]: + node[label][elem] = {} + node = node[label][elem] + + # if internal generic node, handle + elif label not in node: + node[label] = {} + node = node[label] + + else: + node = node[label] + + return inputs_dict + +def inject_value(inputs_dict: dict[str, Any], longname: str, value: Any) -> dict[str, Any]: + REPEAT_MATCHER = r'_\d+$' + longname = longname.replace('|', '.') + heirarchy = longname.split('.') + node = inputs_dict + + for i, label in enumerate(heirarchy): + # inject value if leaf node + if i == len(heirarchy) - 1: + # TODO get gxparam, check if it expects list or single + # value rather than the logic below + if isinstance(value, list) and len(value) == 1: + value = value[0] + node[label] = value + break + + # if internal repeat section, go to next level + elif re.search(REPEAT_MATCHER, label): + label, elem = label.rsplit('_', 1) + node = node[label][elem] + + # if internal generic node, go to next level + else: + node = node[label] + + return inputs_dict + +def collapse_repeats(node: dict[str, Any]) -> dict[str, Any]: + for key, value in node.items(): + # if repeat, do collapse + if isinstance(value, RepeatSection): + repeat = value + num_elems = len(repeat) + the_list = [None for _ in range(num_elems)] + for elem, subdict in repeat.items(): + the_list[int(elem)] = collapse_repeats(subdict) # type: ignore + node[key] = the_list + # if normal dict, descend + elif isinstance(value, dict): + node[key] = collapse_repeats(value) + return node + diff --git a/janis_core/ingestion/galaxy/gxtool/parsing/outputs.py b/janis_core/ingestion/galaxy/gxtool/parsing/outputs.py index 009d36858..836afec5f 100644 --- a/janis_core/ingestion/galaxy/gxtool/parsing/outputs.py +++ b/janis_core/ingestion/galaxy/gxtool/parsing/outputs.py @@ -1,8 +1,7 @@ from abc import ABC, abstractmethod -from typing import Optional -from galaxy.tool_util.parser.output_objects import ToolOutput as GxOutput +from typing import Optional, Any from ... import regex_to_glob from ..model import XMLParamRegister @@ -18,12 +17,12 @@ class Factory(ABC): @abstractmethod - def create(self, gxout: GxOutput, inputs: XMLParamRegister) -> XMLOutputParam: + def create(self, gxout: Any, inputs: XMLParamRegister) -> XMLOutputParam: """parses galaxy output to return an XMLOutputParam""" ... class DataOutputFactory(Factory): - def create(self, gxout: GxOutput, inputs: XMLParamRegister) -> XMLOutputParam: + def create(self, gxout: Any, inputs: XMLParamRegister) -> XMLOutputParam: param = XMLDataOutputParam(gxout.name) param.label = str(gxout.label).rsplit('}', 1)[-1].strip(': ') param.formats = fetch_format(gxout, inputs) @@ -32,7 +31,7 @@ def create(self, gxout: GxOutput, inputs: XMLParamRegister) -> XMLOutputParam: return param class CollectionOutputFactory(Factory): - def create(self, gxout: GxOutput, inputs: XMLParamRegister) -> XMLOutputParam: + def create(self, gxout: Any, inputs: XMLParamRegister) -> XMLOutputParam: param = XMLCollectionOutputParam(gxout.name) param.label = str(gxout.label).rsplit('}', 1)[-1].strip(': ') if gxout.structure.collection_type != '': @@ -41,13 +40,13 @@ def create(self, gxout: GxOutput, inputs: XMLParamRegister) -> XMLOutputParam: param.discover_pattern = get_discover_pattern(gxout) return param -def get_from_workdir_pattern(gxout: GxOutput) -> Optional[str]: +def get_from_workdir_pattern(gxout: Any) -> Optional[str]: # from_work_dir is a glob pattern if has_from_workdir(gxout): return gxout.from_work_dir return None -def get_discover_pattern(gxout: GxOutput) -> Optional[str]: +def get_discover_pattern(gxout: Any) -> Optional[str]: # dataset_collectors are regex patterns if not has_dataset_collector(gxout): return None @@ -83,8 +82,8 @@ def remove_pattern_capture_groups(pattern: str) -> str: 'collection': CollectionOutputFactory } -def parse_output_param(gxout: GxOutput, inputs: XMLParamRegister) -> list[XMLOutputParam]: - galaxy_params: list[GxOutput] = [] +def parse_output_param(gxout: Any, inputs: XMLParamRegister) -> list[XMLOutputParam]: + galaxy_params: list[Any] = [] internal_params: list[XMLOutputParam] = [] # split collection of defined outputs to list @@ -103,40 +102,40 @@ def parse_output_param(gxout: GxOutput, inputs: XMLParamRegister) -> list[XMLOut internal_params.append(i_param) return internal_params -def is_defined_collection(gxout: GxOutput) -> bool: +def is_defined_collection(gxout: Any) -> bool: if hasattr(gxout, 'outputs') and len(gxout.outputs) > 0: # type: ignore return True return False -def fetch_format(gxout: GxOutput, inputs: XMLParamRegister) -> list[str]: +def fetch_format(gxout: Any, inputs: XMLParamRegister) -> list[str]: strategy: FetchStrategy = select_fetcher(gxout) return strategy.fetch(gxout, inputs) -def has_format(gxout: GxOutput) -> bool: +def has_format(gxout: Any) -> bool: if hasattr(gxout, 'format'): if gxout.format and gxout.format != 'data': return True return False -def has_default_format(gxout: GxOutput) -> bool: +def has_default_format(gxout: Any) -> bool: if hasattr(gxout, 'default_format'): if gxout.default_format and gxout.default_format != 'data': return True return False -def has_format_source(gxout: GxOutput) -> bool: +def has_format_source(gxout: Any) -> bool: if hasattr(gxout, 'format_source'): if gxout.format_source: return True return False -def has_from_workdir(gxout: GxOutput) -> bool: +def has_from_workdir(gxout: Any) -> bool: if gxout.output_type == 'data': # type: ignore if hasattr(gxout, 'from_work_dir') and gxout.from_work_dir: # type: ignore return True return False -def has_dataset_collector(gxout: GxOutput) -> bool: +def has_dataset_collector(gxout: Any) -> bool: if hasattr(gxout, 'dynamic_structure') and gxout.dynamic_structure: # type: ignore if hasattr(gxout, 'dataset_collector_descriptions'): return True @@ -145,37 +144,37 @@ def has_dataset_collector(gxout: GxOutput) -> bool: # helper classes class FetchStrategy(ABC): @abstractmethod - def fetch(self, gxout: GxOutput, inputs: XMLParamRegister) -> list[str]: + def fetch(self, gxout: Any, inputs: XMLParamRegister) -> list[str]: """gets the galaxy datatype formats for this galaxy output""" ... class FormatFetchStrategy(FetchStrategy): - def fetch(self, gxout: GxOutput, inputs: XMLParamRegister) -> list[str]: + def fetch(self, gxout: Any, inputs: XMLParamRegister) -> list[str]: return str(gxout.format).split(',') class DefaultFormatFetchStrategy(FetchStrategy): - def fetch(self, gxout: GxOutput, inputs: XMLParamRegister) -> list[str]: + def fetch(self, gxout: Any, inputs: XMLParamRegister) -> list[str]: return str(gxout.default_format).split(',') class FormatSourceFetchStrategy(FetchStrategy): - def fetch(self, gxout: GxOutput, inputs: XMLParamRegister) -> list[str]: + def fetch(self, gxout: Any, inputs: XMLParamRegister) -> list[str]: param = inputs.get(gxout.format_source, strategy='lca') if param: return param.formats return [] class CollectorFetchStrategy(FetchStrategy): - def fetch(self, gxout: GxOutput, inputs: XMLParamRegister) -> list[str]: + def fetch(self, gxout: Any, inputs: XMLParamRegister) -> list[str]: coll = gxout.dataset_collector_descriptions[0] if coll.default_ext: return str(coll.default_ext).split(',') return [] class FallbackFetchStrategy(FetchStrategy): - def fetch(self, gxout: GxOutput, inputs: XMLParamRegister) -> list[str]: + def fetch(self, gxout: Any, inputs: XMLParamRegister) -> list[str]: return [] -def select_fetcher(gxout: GxOutput) -> FetchStrategy: +def select_fetcher(gxout: Any) -> FetchStrategy: if has_format(gxout): return FormatFetchStrategy() elif has_default_format(gxout): diff --git a/janis_core/ingestion/galaxy/gxtool/text/cheetah/blocks.py b/janis_core/ingestion/galaxy/gxtool/text/cheetah/blocks.py index 32e990157..082ba4acc 100644 --- a/janis_core/ingestion/galaxy/gxtool/text/cheetah/blocks.py +++ b/janis_core/ingestion/galaxy/gxtool/text/cheetah/blocks.py @@ -7,9 +7,10 @@ from uuid import uuid4 from enum import Enum, auto from Cheetah.Template import Template -from galaxy.util import unicodify +# from galaxy.util import unicodify from .. import utils +from janis_core.ingestion.galaxy.gxtool.parsing.nogx import unicodify from janis_core.ingestion.galaxy.gxtool.command.cmdstr import constructs from janis_core.ingestion.galaxy import expressions diff --git a/janis_core/tests/test_ingestion_galaxy.py b/janis_core/tests/test_ingestion_galaxy.py index fa02a9978..f9dba202d 100644 --- a/janis_core/tests/test_ingestion_galaxy.py +++ b/janis_core/tests/test_ingestion_galaxy.py @@ -4,16 +4,15 @@ import os import json import xml.etree.ElementTree as et +import pytest from janis_core.ingestion.main import ingest_galaxy -from janis_core.ingestion.galaxy.gxtool.text.simplification.aliases import resolve_aliases from janis_core.ingestion.galaxy.gxtool.text.simplification.main_statement import mark_main_statement - from janis_core.ingestion.galaxy import runtime from janis_core.ingestion.galaxy.gxworkflow import load_tool_state -from janis_core.ingestion.galaxy.gxtool.text.cheetah.evaluation import sectional_evaluate from janis_core.ingestion.galaxy.gxtool.parsing import load_xmltool +from janis_core.ingestion.galaxy.gxtool.parsing.nogx.main import load_xmltool_new from janis_core.ingestion.galaxy.gxtool.text.simplification.simplify import simplify_cmd from janis_core.ingestion.galaxy.gxworkflow.parsing.tool_step.metadata import parse_step_metadata @@ -164,6 +163,33 @@ def _docker_not_running() -> bool: ### test classes ### + +class TestLoadXMLTool(unittest.TestCase): + + def setUp(self) -> None: + _reset_global_settings() + + def test_fastqc(self) -> None: + filepath = f'{GALAXY_TESTDATA_PATH}/fastqc-5ec9f6bceaee/rgFastQC.xml' + runtime.tool.tool_path = filepath + tool = load_xmltool(filepath) + print() + + @unittest.skip('requires moving to new parser') + def test_fastqc2(self) -> None: + filepath = f'{GALAXY_TESTDATA_PATH}/fastqc-5ec9f6bceaee/rgFastQC.xml' + tool = load_xmltool_new(filepath) + print() + + @unittest.skip('requires moving to new parser') + def test_hisat2(self) -> None: + filepath = f'{GALAXY_TESTDATA_PATH}/fastqc-5ec9f6bceaee/hisat2.xml' + tool = load_xmltool(filepath) + print() + + + +@pytest.mark.basic class TestRegexToGlob(unittest.TestCase): def setUp(self) -> None: diff --git a/notes.txt b/notes.txt index 83e02f12b..fbe909894 100644 --- a/notes.txt +++ b/notes.txt @@ -1,5 +1,131 @@ +------------------------------------ +--- GENERAL RUNTIME IMPROVEMENTS --- +------------------------------------ + +REMOVE QUAY.IO API CALLS +- biocontainers uri can be directly calculated for single requirement tools + eg. + - samtools + -> quay.io/biocontainers/samtools:3.1 + +- mulled-hash can be used to calculate hash for tools + - galaxy.tool_util.deps.mulled.util.v1_image_name() + - galaxy.tool_util.deps.mulled.util.v2_image_name() + eg + - samtools + - bowtie2 + - v2_image_name([build_target("samtools", version="1.3.1"), build_target("bowtie2", version="1.1")]) + - -> mulled-v2-ad09g8sag8dhw908gdwhw9a08dawjcaskfffsfa + - quay.io/biocontainers/mulled-v2-ad09g8sag8dhw908gdwhw9a08dawjcaskfffsfa + +can toolshed api calls be reduced / removed? +- may be able to reduce using cached wrappers for popular tools +- may be able to reduce (to almost zero) by knowing direct mapping of location to tool uris + +migrate galaxy tool xml parsing into janis +- few days work +- looks doable + + +---------------------------------- +--- REDUCING TEST SUITE WEIGHT --- +---------------------------------- + +REDUCING TEST SUITE WEIGHT + +general +- it's all galaxy +- all tools needed for workflow tests could be stored locally as package data. +- need to reduce the amount of times tools are loaded. +- reinstate cache with pickle + +test_ingestion_galaxy.py (galaxy) +- most tests do full ingest(). +- could store these on the class, then tests just check attributes on the janis entities. + +test_janis_translate.py (galaxy) +- can have basic group, and extended group (CI) +- basic group just 2 tests: single tool, single workflow + +pytest +- `@pytest.mark.` to mark tests +- `pytest -m -v` to run tests in group (change pytest command in github actions) +- "publish" github action stays the same +- "unit_tests" github action changed to using test group +- tried locally, works + + + + +---------------------------- +--- GALAXY DEPENDENCIES --- +---------------------------- + +GALAXY DEPENDENCIES +- creating MockApp +- from galaxy.util import unicodify + + +gxtool.inputs +gxtool.outputs +gxtool.name +gxtool.id +gxtool.version +gxtool.description +gxtool.raw_help +gxtool.creator +gxtool.requirements +gxtool.containers +gxtool.xrefs +gxtool.tool_source.xml_tree.findall('citations') +gxtool.command +gxtool.config_files +gxtool.tests + + +self.profile = float(tool_source.parse_profile()) +self.id = tool_source.parse_id() + + + + + + +app = _get_app() +tool_source = get_tool_source(path) + - tree, macro_paths = load_tool_with_refereces(xml_path) + - XmlToolSource(tree, source_path=xml_path, macro_paths=macro_paths) + - look at imports at top of file +tool = create_tool_from_source(app, tool_source) + - Tool(config_file, tool_source, app, **kwds) +tool.assert_finalized() # may be unnecessary + + + +Files with Galaxy dependencies +- [✓] janis_core.ingestion.galaxy.gxtool.mock +- [✓] janis_core.ingestion.galaxy.gxtool.parsing.main +- [✓] janis_core.ingestion.galaxy.gxtool.parsing.param_flattener + - used to check type of param (isinstance / case). + - can probably just change this to check attributes. + +Files which have been migrated to janis versions of galaxy code +- [✓] janis_core.ingestion.galaxy.gxtool.text.cheetah.blocks + +Files which just used type hints which have been changed +- [x] janis_core.ingestion.galaxy.gxtool.parsing.inputs +- [x] janis_core.ingestion.galaxy.gxtool.parsing.outputs + +remove these: +- [x] janis_core.ingestion.galaxy.gxtool.parsing.tests.custom_ops +- [x] janis_core.ingestion.galaxy.gxtool.parsing.tests.TestFactoryOld +- [x] janis_core.ingestion.galaxy.gxwrappers.scraping.wrappers + + + + SMALL BUGS - get_execution_paths() is returning 2 paths, when it should return 1 - annoying final UNKNOWN token end of cmdstmt From f36a31debed419c9efd2a0e4b1e16c09bd8944b0 Mon Sep 17 00:00:00 2001 From: Grace Hall Date: Sun, 10 Sep 2023 15:23:47 +1000 Subject: [PATCH 02/32] improvements to runtime - pytest markers - reduced calls to galaxy load_xmltool() - added all test data locally (no more downloading using toolshed api) --- .github/workflows/unit_tests.yml | 2 +- .../galaxy/gxtool/command/loading.py | 9 +- .../ingestion/galaxy/gxtool/command/main.py | 7 +- .../ingestion/galaxy/gxtool/parsing/main.py | 2 +- .../galaxy/gxtool/parsing/param_flattener.py | 1 + .../gxworkflow/parsing/tool_step/prepost.py | 48 - .../galaxy/gxworkflow/tool_state/load.py | 3 +- .../galaxy/gxworkflow/values/runtime.py | 5 +- .../galaxy/gxworkflow/values/static.py | 14 +- .../galaxy/gxwrappers/scraping/__init__.py | 0 .../gxwrappers/scraping/repositories.py | 30 - .../galaxy/gxwrappers/scraping/revisions.py | 90 - .../galaxy/gxwrappers/scraping/scraping.py | 35 - .../galaxy/gxwrappers/scraping/single.py | 46 - .../galaxy/gxwrappers/scraping/utils.py | 45 - .../galaxy/gxwrappers/scraping/wrappers.py | 129 - janis_core/ingestion/galaxy/ingest.py | 2 - .../galaxy/internal_model/tool/generate.py | 3 +- .../galaxy/internal_model/tool/tool.py | 2 + janis_core/ingestion/main.py | 2 +- .../tests/data/galaxy/abricate/.shed.yml | 9 - .../galaxy/abricate/test-data/Acetobacter.fna | 2784 -- .../galaxy/abricate/test-data/MRSA0252.fna | 41467 ---------------- .../abricate/test-data/output_db-card.txt | 17 - .../abricate/test-data/output_db-megares.txt | 28 - .../galaxy/abricate/test-data/output_gbk.txt | 1 - .../galaxy/abricate/test-data/output_list.txt | 10 - .../abricate/test-data/output_mincov100.txt | 8 - .../abricate/test-data/output_minid100.txt | 6 - .../galaxy/abricate/test-data/output_mrsa.txt | 8 - .../abricate/test-data/output_noheader.txt | 7 - .../abricate/test-data/output_noresults.txt | 1 - .../abricate/test-data/output_summary.txt | 3 - .../data/galaxy/abricate/test-data/test.gbk | 72 - .../fastqc-5ec9f6bceaee/.hg_archival.txt | 6 - .../hisat2-6c19daec423d/.hg_archival.txt | 6 - .../nanoplot-edbb6c5028f5/.hg_archival.txt | 6 - .../.hg_archival.txt | 6 - .../{ => workflows}/annotate-my-ids-wf.ga | 0 .../galaxy/{ => workflows}/cutadapt_wf.ga | 0 .../data/galaxy/{ => workflows}/fastqc_wf.ga | 0 .../data/galaxy/{ => workflows}/goseq_wf.ga | 0 .../data/galaxy/{ => workflows}/hisat2_wf.ga | 0 .../galaxy/{ => workflows}/limma_voom_wf.ga | 0 .../galaxy/{ => workflows}/nanoplot_wf.ga | 0 .../rna_seq_counts_to_genes.ga | 0 .../rna_seq_genes_to_pathways.ga | 0 .../rna_seq_reads_to_counts.ga | 0 .../{ => workflows}/unicycler_assembly.ga | 0 .../galaxy/{ => workflows}/wf_abricate.ga | 0 .../{ => workflows}/wf_featurecounts.ga | 0 .../{ => workflows}/wf_mark_duplicates.ga | 0 .../{ => workflows}/wf_samtools_idxstats.ga | 0 .../abricate-c2ef298da409}/abricate.xml | 1 - .../abricate-c2ef298da409}/abricate_list.xml | 0 .../abricate_summary.xml | 0 .../abricate-c2ef298da409}/macros.xml | 0 .../annotateMyIDs.xml | 299 + .../annotateMyIDs.xml | 238 + .../wrappers/busco-41030a6c03b7/busco.xml | 305 + .../wrappers/busco-41030a6c03b7/macros.xml | 271 + .../tests/data/galaxy/wrappers/cache.json | 1 + .../collection_column_join.xml | 163 + .../column_maker-02026300aa45/column_maker.py | 162 + .../column_maker.xml | 177 + .../cutadapt-135b80fb1ac2/cutadapt.xml | 1378 + .../wrappers/cutadapt-135b80fb1ac2/macros.xml | 393 + .../static/images/adapters.svg | 259 + .../tool-data/adapters.loc.sample | 14 + .../tool_data_table_conf.xml.sample | 7 + .../tool_data_table_conf.xml.test | 6 + .../cutadapt-660cffd8d92a/cutadapt.xml | 579 + .../wrappers/cutadapt-660cffd8d92a/macros.xml | 303 + .../static/images/adapters.svg | 259 + .../tool-data/adapters.loc.sample | 14 + .../tool_data_table_conf.xml.sample | 7 + .../tool_data_table_conf.xml.test | 6 + .../wrappers/egsea-fba1660fb717/egsea.R | 215 + .../wrappers/egsea-fba1660fb717/egsea.xml | 694 + .../wrappers/fastqc-3d0c7bdf12f5/rgFastQC.xml | 220 + .../fastqc-5ec9f6bceaee/rgFastQC.xml | 0 .../wrappers/fastqc-9da02be9c6cc/rgFastQC.xml | 168 + .../featurecounts-38b6d12edc68/README.rst | 25 + .../featurecounts.xml | 629 + .../tool-data/featurecounts_anno.loc.sample | 11 + .../tool-data/gene_sets.loc.sample | 14 + .../tool_data_table_conf.xml.sample | 12 + .../tool_data_table_conf.xml.test | 10 + .../featurecounts-6f66ae7c5f7a/README.rst | 25 + .../featurecounts.xml | 640 + .../tool-data/featurecounts_anno.loc.sample | 11 + .../tool-data/gene_sets.loc.sample | 14 + .../tool_data_table_conf.xml.sample | 12 + .../tool_data_table_conf.xml.test | 10 + .../wrappers/fgsea-17eb1e0d711f/fgsea.R | 90 + .../wrappers/fgsea-17eb1e0d711f/fgsea.xml | 138 + .../wrappers/goseq-602de62d995b/goseq.r | 211 + .../wrappers/goseq-602de62d995b/goseq.xml | 529 + .../wrappers/goseq-ef2ad746b589/goseq.r | 211 + .../wrappers/goseq-ef2ad746b589/goseq.xml | 526 + .../hisat2-6c19daec423d/hisat2.xml | 0 .../hisat2-6c19daec423d/hisat2_macros.xml | 0 .../tool-data/hisat2_indexes.loc.sample | 0 .../tool_data_table_conf.xml.sample | 0 .../tool_data_table_conf.xml.test | 0 .../wrappers/hisat2-f4af63aaf57a/hisat2.xml | 1367 + .../hisat2-f4af63aaf57a/hisat2_macros.xml | 60 + .../tool-data/hisat2_indexes.loc.sample | 39 + .../tool_data_table_conf.xml.sample | 7 + .../tool_data_table_conf.xml.test | 7 + .../limma_voom-d5a940112511/limma_voom.R | 1272 + .../limma_voom-d5a940112511/limma_voom.xml | 914 + .../limma_voom-d6f5fa4ee473/limma_voom.R | 1352 + .../limma_voom-d6f5fa4ee473/limma_voom.xml | 1028 + .../generate_test_data.sh | 201 + .../wrappers/multiqc-1c2db0054039/multiqc.xml | 1227 + .../wrappers/multiqc-1c2db0054039/readme.rst | 21 + .../nanoplot-0f1c34698076/nanoplot.xml | 533 + .../nanoplot-edbb6c5028f5/nanoplot.xml | 0 .../picard_AddCommentsToBam.xml | 65 + .../picard_AddOrReplaceReadGroups.xml | 112 + .../picard_BedToIntervalList.xml | 103 + .../picard-585027e65f3b/picard_CleanSam.xml | 58 + .../picard_CollectAlignmentSummaryMetrics.xml | 126 + .../picard_CollectBaseDistributionByCycle.xml | 109 + .../picard_CollectGcBiasMetrics.xml | 110 + .../picard_CollectHsMetrics.xml | 92 + .../picard_CollectInsertSizeMetrics.xml | 134 + .../picard_CollectRnaSeqMetrics.xml | 270 + ...card_CollectSequencingArtifactsMetrics.xml | 149 + .../picard_CollectWgsMetrics.xml | 102 + .../picard_DownsampleSam.xml | 75 + .../picard_EstimateLibraryComplexity.xml | 126 + .../picard-585027e65f3b/picard_FastqToSam.xml | 242 + .../picard_FilterSamReads.xml | 129 + .../picard_FixMateInformation.xml | 78 + .../picard_MarkDuplicates.xml | 158 + .../picard_MarkDuplicatesWithMateCigar.xml | 154 + .../picard_MeanQualityByCycle.xml | 105 + .../picard_MergeBamAlignment.xml | 315 + .../picard_MergeSamFiles.xml | 89 + .../picard_NormalizeFasta.xml | 67 + .../picard_QualityScoreDistribution.xml | 110 + .../picard-585027e65f3b/picard_ReorderSam.xml | 122 + .../picard_ReplaceSamHeader.xml | 64 + ...rtOriginalBaseQualitiesAndAddMateCigar.xml | 72 + .../picard-585027e65f3b/picard_RevertSam.xml | 133 + .../picard-585027e65f3b/picard_SamToFastq.xml | 229 + .../picard-585027e65f3b/picard_SortSam.xml | 87 + .../picard_ValidateSamFile.xml | 227 + .../picard-585027e65f3b/picard_macros.xml | 134 + .../picard-585027e65f3b/read_group_macros.xml | 294 + .../tool-data/picard_index.loc.sample | 26 + .../tool_data_table_conf.xml.sample | 8 + .../tool_data_table_conf.xml.test | 7 + .../picard_AddCommentsToBam.xml | 65 + .../picard_AddOrReplaceReadGroups.xml | 112 + .../picard_BedToIntervalList.xml | 103 + .../picard-b9fbec5ac6b2/picard_CleanSam.xml | 58 + .../picard_CollectAlignmentSummaryMetrics.xml | 124 + .../picard_CollectBaseDistributionByCycle.xml | 109 + .../picard_CollectGcBiasMetrics.xml | 110 + .../picard_CollectHsMetrics.xml | 92 + .../picard_CollectInsertSizeMetrics.xml | 134 + .../picard_CollectRnaSeqMetrics.xml | 258 + ...card_CollectSequencingArtifactsMetrics.xml | 148 + .../picard_CollectWgsMetrics.xml | 102 + .../picard_DownsampleSam.xml | 75 + .../picard_EstimateLibraryComplexity.xml | 126 + .../picard-b9fbec5ac6b2/picard_FastqToSam.xml | 221 + .../picard_FilterSamReads.xml | 129 + .../picard_FixMateInformation.xml | 78 + .../picard_MarkDuplicates.xml | 146 + .../picard_MarkDuplicatesWithMateCigar.xml | 154 + .../picard_MeanQualityByCycle.xml | 105 + .../picard_MergeBamAlignment.xml | 315 + .../picard_MergeSamFiles.xml | 89 + .../picard_NormalizeFasta.xml | 67 + .../picard_QualityScoreDistribution.xml | 110 + .../picard-b9fbec5ac6b2/picard_ReorderSam.xml | 119 + .../picard_ReplaceSamHeader.xml | 61 + ...rtOriginalBaseQualitiesAndAddMateCigar.xml | 72 + .../picard-b9fbec5ac6b2/picard_RevertSam.xml | 133 + .../picard-b9fbec5ac6b2/picard_SamToFastq.xml | 195 + .../picard-b9fbec5ac6b2/picard_SortSam.xml | 87 + .../picard_ValidateSamFile.xml | 226 + .../picard-b9fbec5ac6b2/picard_macros.xml | 134 + .../picard-b9fbec5ac6b2/read_group_macros.xml | 294 + .../tool-data/picard_index.loc.sample | 26 + .../tool_data_table_conf.xml.sample | 8 + .../tool_data_table_conf.xml.test | 7 + .../quast-675488238c96/macros.xml | 0 .../quast-675488238c96/quast.xml | 0 .../static/images/Align_view.png | Bin 0 -> 42122 bytes .../static/images/contig_view_noR.png | Bin 0 -> 44240 bytes .../rseqc-dbedfc5f5a3c/FPKM_count.xml | 132 + .../wrappers/rseqc-dbedfc5f5a3c/README.txt | 23 + .../rseqc-dbedfc5f5a3c/RNA_fragment_size.xml | 87 + .../rseqc-dbedfc5f5a3c/RPKM_saturation.xml | 168 + .../wrappers/rseqc-dbedfc5f5a3c/bam2wig.xml | 155 + .../wrappers/rseqc-dbedfc5f5a3c/bam_stat.xml | 71 + .../rseqc-dbedfc5f5a3c/clipping_profile.xml | 85 + .../rseqc-dbedfc5f5a3c/deletion_profile.xml | 87 + .../rseqc-dbedfc5f5a3c/geneBody_coverage.xml | 144 + .../rseqc-dbedfc5f5a3c/geneBody_coverage2.xml | 80 + .../rseqc-dbedfc5f5a3c/infer_experiment.xml | 141 + .../rseqc-dbedfc5f5a3c/inner_distance.xml | 113 + .../rseqc-dbedfc5f5a3c/insertion_profile.xml | 88 + .../junction_annotation.xml | 113 + .../junction_saturation.xml | 129 + .../rseqc-dbedfc5f5a3c/mismatch_profile.xml | 89 + .../wrappers/rseqc-dbedfc5f5a3c/read_GC.xml | 74 + .../wrappers/rseqc-dbedfc5f5a3c/read_NVC.xml | 91 + .../rseqc-dbedfc5f5a3c/read_distribution.xml | 96 + .../rseqc-dbedfc5f5a3c/read_duplication.xml | 82 + .../rseqc-dbedfc5f5a3c/read_hexamer.xml | 137 + .../rseqc-dbedfc5f5a3c/read_quality.xml | 98 + .../rseqc-dbedfc5f5a3c/rseqc_macros.xml | 160 + .../static/images/36mer.qual.heatmap.png | Bin 0 -> 19158 bytes .../static/images/36mer.qual.plot.png | Bin 0 -> 29673 bytes .../images/Aug_26.geneBodyCoverage.curves.png | Bin 0 -> 68495 bytes .../Aug_26.geneBodyCoverage.heatMap.png | Bin 0 -> 22704 bytes .../static/images/NVC_plot.png | Bin 0 -> 43556 bytes .../static/images/RelativeError.png | Bin 0 -> 25301 bytes .../static/images/clipping_good.png | Bin 0 -> 28391 bytes .../static/images/duplicate.png | Bin 0 -> 38931 bytes .../static/images/geneBody_coverage.png | Bin 0 -> 19474 bytes .../static/images/geneBody_workflow.png | Bin 0 -> 147686 bytes .../static/images/inner_distance.png | Bin 0 -> 25119 bytes .../static/images/junction.png | Bin 0 -> 331183 bytes .../static/images/junction_saturation.png | Bin 0 -> 32059 bytes .../rseqc-dbedfc5f5a3c/static/images/logo.png | Bin 0 -> 7341 bytes .../static/images/mismatch_profile.png | Bin 0 -> 381543 bytes .../static/images/out.deletion_profile.png | Bin 0 -> 28190 bytes .../images/out.insertion_profile.R1.png | Bin 0 -> 24574 bytes .../images/out.insertion_profile.R2.png | Bin 0 -> 24713 bytes .../static/images/read_gc.png | Bin 0 -> 14955 bytes .../static/images/saturation.png | Bin 0 -> 103585 bytes .../static/images/saturation_eg.png | Bin 0 -> 20393 bytes .../wrappers/rseqc-dbedfc5f5a3c/tin.xml | 149 + .../samtools_flagstat-fe34990e5ce7/macros.xml | 223 + .../samtools_flagstat.xml | 77 + .../samtools_idxstats-7def34e6cf4d/macros.xml | 223 + .../samtools_idxstats.xml | 73 + .../samtools_idxstats-811fc2d75ad4/macros.xml | 172 + .../samtools_idxstats.xml | 70 + .../ansi2html.sh | 0 .../text_processing-74a8bef53a00/awk.xml | 125 + .../text_processing-74a8bef53a00/cat.xml | 93 + .../text_processing-74a8bef53a00/cut.xml | 260 + .../text_processing-74a8bef53a00}/easyjoin | 0 .../text_processing-74a8bef53a00/easyjoin.xml | 116 + .../find_and_replace | 202 + .../find_and_replace.xml | 182 + .../text_processing-74a8bef53a00}/grep.xml | 0 .../text_processing-74a8bef53a00}/head.xml | 0 .../text_processing-74a8bef53a00}/macros.xml | 0 .../text_processing-74a8bef53a00}/multijoin | 0 .../multijoin.xml | 0 .../text_processing-74a8bef53a00}/readme.rst | 0 .../recurring_lines.xml | 0 .../replace_text_in_column.xml | 137 + .../replace_text_in_line.xml | 146 + .../text_processing-74a8bef53a00}/sed.xml | 0 .../text_processing-74a8bef53a00}/sort-header | 0 .../text_processing-74a8bef53a00}/sort.xml | 0 .../sort_rows.xml | 38 + .../sorted_uniq.xml | 0 .../text_processing-74a8bef53a00}/tac.xml | 0 .../text_processing-74a8bef53a00}/tail.xml | 0 .../unfold_column.py | 19 + .../unfold_column.xml | 0 .../unsorted_uniq.xml | 0 .../text_processing-d698c222f354/ansi2html.sh | 331 + .../text_processing-d698c222f354/awk.xml | 0 .../text_processing-d698c222f354/cat.xml | 0 .../text_processing-d698c222f354/cut.xml | 0 .../text_processing-d698c222f354/easyjoin | 308 + .../text_processing-d698c222f354/easyjoin.xml | 0 .../find_and_replace | 0 .../find_and_replace.xml | 0 .../text_processing-d698c222f354/grep.xml | 194 + .../text_processing-d698c222f354/head.xml | 63 + .../text_processing-d698c222f354/macros.xml | 37 + .../text_processing-d698c222f354/multijoin | 320 + .../multijoin.xml | 133 + .../text_processing-d698c222f354/readme.rst | 123 + .../recurring_lines.xml | 79 + .../replace_text_in_column.xml | 0 .../replace_text_in_line.xml | 0 .../text_processing-d698c222f354/sed.xml | 133 + .../text_processing-d698c222f354/sort-header | 281 + .../text_processing-d698c222f354/sort.xml | 177 + .../sort_rows.xml | 0 .../sorted_uniq.xml | 106 + .../text_processing-d698c222f354/tac.xml | 92 + .../text_processing-d698c222f354/tail.xml | 68 + .../unfold_column.py | 0 .../unfold_column.xml | 67 + .../unsorted_uniq.xml | 94 + .../unicycler-9e3e80cc4ad4/unicycler.xml | 572 + janis_core/tests/mock/mock_entities.py | 4 +- janis_core/tests/mock/mock_tool.py | 1 + janis_core/tests/test_ingestion_galaxy.py | 428 +- janis_core/tests/test_janis_translate.py | 262 +- .../common/preprocessing/prune/tools.py | 2 - notes.txt | 103 +- 307 files changed, 34498 insertions(+), 45306 deletions(-) delete mode 100644 janis_core/ingestion/galaxy/gxworkflow/parsing/tool_step/prepost.py delete mode 100644 janis_core/ingestion/galaxy/gxwrappers/scraping/__init__.py delete mode 100644 janis_core/ingestion/galaxy/gxwrappers/scraping/repositories.py delete mode 100644 janis_core/ingestion/galaxy/gxwrappers/scraping/revisions.py delete mode 100644 janis_core/ingestion/galaxy/gxwrappers/scraping/scraping.py delete mode 100644 janis_core/ingestion/galaxy/gxwrappers/scraping/single.py delete mode 100644 janis_core/ingestion/galaxy/gxwrappers/scraping/utils.py delete mode 100644 janis_core/ingestion/galaxy/gxwrappers/scraping/wrappers.py delete mode 100644 janis_core/tests/data/galaxy/abricate/.shed.yml delete mode 100644 janis_core/tests/data/galaxy/abricate/test-data/Acetobacter.fna delete mode 100644 janis_core/tests/data/galaxy/abricate/test-data/MRSA0252.fna delete mode 100644 janis_core/tests/data/galaxy/abricate/test-data/output_db-card.txt delete mode 100644 janis_core/tests/data/galaxy/abricate/test-data/output_db-megares.txt delete mode 100644 janis_core/tests/data/galaxy/abricate/test-data/output_gbk.txt delete mode 100644 janis_core/tests/data/galaxy/abricate/test-data/output_list.txt delete mode 100644 janis_core/tests/data/galaxy/abricate/test-data/output_mincov100.txt delete mode 100644 janis_core/tests/data/galaxy/abricate/test-data/output_minid100.txt delete mode 100644 janis_core/tests/data/galaxy/abricate/test-data/output_mrsa.txt delete mode 100644 janis_core/tests/data/galaxy/abricate/test-data/output_noheader.txt delete mode 100644 janis_core/tests/data/galaxy/abricate/test-data/output_noresults.txt delete mode 100644 janis_core/tests/data/galaxy/abricate/test-data/output_summary.txt delete mode 100644 janis_core/tests/data/galaxy/abricate/test-data/test.gbk delete mode 100644 janis_core/tests/data/galaxy/fastqc-5ec9f6bceaee/.hg_archival.txt delete mode 100644 janis_core/tests/data/galaxy/hisat2-6c19daec423d/.hg_archival.txt delete mode 100644 janis_core/tests/data/galaxy/nanoplot-edbb6c5028f5/.hg_archival.txt delete mode 100644 janis_core/tests/data/galaxy/text_processing-d698c222f354/.hg_archival.txt rename janis_core/tests/data/galaxy/{ => workflows}/annotate-my-ids-wf.ga (100%) rename janis_core/tests/data/galaxy/{ => workflows}/cutadapt_wf.ga (100%) rename janis_core/tests/data/galaxy/{ => workflows}/fastqc_wf.ga (100%) rename janis_core/tests/data/galaxy/{ => workflows}/goseq_wf.ga (100%) rename janis_core/tests/data/galaxy/{ => workflows}/hisat2_wf.ga (100%) rename janis_core/tests/data/galaxy/{ => workflows}/limma_voom_wf.ga (100%) rename janis_core/tests/data/galaxy/{ => workflows}/nanoplot_wf.ga (100%) rename janis_core/tests/data/galaxy/{ => workflows}/rna_seq_counts_to_genes.ga (100%) rename janis_core/tests/data/galaxy/{ => workflows}/rna_seq_genes_to_pathways.ga (100%) rename janis_core/tests/data/galaxy/{ => workflows}/rna_seq_reads_to_counts.ga (100%) rename janis_core/tests/data/galaxy/{ => workflows}/unicycler_assembly.ga (100%) rename janis_core/tests/data/galaxy/{ => workflows}/wf_abricate.ga (100%) rename janis_core/tests/data/galaxy/{ => workflows}/wf_featurecounts.ga (100%) rename janis_core/tests/data/galaxy/{ => workflows}/wf_mark_duplicates.ga (100%) rename janis_core/tests/data/galaxy/{ => workflows}/wf_samtools_idxstats.ga (100%) rename janis_core/tests/data/galaxy/{abricate => wrappers/abricate-c2ef298da409}/abricate.xml (99%) rename janis_core/tests/data/galaxy/{abricate => wrappers/abricate-c2ef298da409}/abricate_list.xml (100%) rename janis_core/tests/data/galaxy/{abricate => wrappers/abricate-c2ef298da409}/abricate_summary.xml (100%) rename janis_core/tests/data/galaxy/{abricate => wrappers/abricate-c2ef298da409}/macros.xml (100%) create mode 100755 janis_core/tests/data/galaxy/wrappers/annotatemyids-133f36c29579/annotateMyIDs.xml create mode 100755 janis_core/tests/data/galaxy/wrappers/annotatemyids-1a125daea0d8/annotateMyIDs.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/busco-41030a6c03b7/busco.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/busco-41030a6c03b7/macros.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/cache.json create mode 100644 janis_core/tests/data/galaxy/wrappers/collection_column_join-3ddd99c7efee/collection_column_join.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/column_maker-02026300aa45/column_maker.py create mode 100644 janis_core/tests/data/galaxy/wrappers/column_maker-02026300aa45/column_maker.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/cutadapt-135b80fb1ac2/cutadapt.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/cutadapt-135b80fb1ac2/macros.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/cutadapt-135b80fb1ac2/static/images/adapters.svg create mode 100644 janis_core/tests/data/galaxy/wrappers/cutadapt-135b80fb1ac2/tool-data/adapters.loc.sample create mode 100644 janis_core/tests/data/galaxy/wrappers/cutadapt-135b80fb1ac2/tool_data_table_conf.xml.sample create mode 100644 janis_core/tests/data/galaxy/wrappers/cutadapt-135b80fb1ac2/tool_data_table_conf.xml.test create mode 100644 janis_core/tests/data/galaxy/wrappers/cutadapt-660cffd8d92a/cutadapt.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/cutadapt-660cffd8d92a/macros.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/cutadapt-660cffd8d92a/static/images/adapters.svg create mode 100644 janis_core/tests/data/galaxy/wrappers/cutadapt-660cffd8d92a/tool-data/adapters.loc.sample create mode 100644 janis_core/tests/data/galaxy/wrappers/cutadapt-660cffd8d92a/tool_data_table_conf.xml.sample create mode 100644 janis_core/tests/data/galaxy/wrappers/cutadapt-660cffd8d92a/tool_data_table_conf.xml.test create mode 100644 janis_core/tests/data/galaxy/wrappers/egsea-fba1660fb717/egsea.R create mode 100644 janis_core/tests/data/galaxy/wrappers/egsea-fba1660fb717/egsea.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/fastqc-3d0c7bdf12f5/rgFastQC.xml rename janis_core/tests/data/galaxy/{ => wrappers}/fastqc-5ec9f6bceaee/rgFastQC.xml (100%) create mode 100644 janis_core/tests/data/galaxy/wrappers/fastqc-9da02be9c6cc/rgFastQC.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/featurecounts-38b6d12edc68/README.rst create mode 100644 janis_core/tests/data/galaxy/wrappers/featurecounts-38b6d12edc68/featurecounts.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/featurecounts-38b6d12edc68/tool-data/featurecounts_anno.loc.sample create mode 100644 janis_core/tests/data/galaxy/wrappers/featurecounts-38b6d12edc68/tool-data/gene_sets.loc.sample create mode 100644 janis_core/tests/data/galaxy/wrappers/featurecounts-38b6d12edc68/tool_data_table_conf.xml.sample create mode 100644 janis_core/tests/data/galaxy/wrappers/featurecounts-38b6d12edc68/tool_data_table_conf.xml.test create mode 100644 janis_core/tests/data/galaxy/wrappers/featurecounts-6f66ae7c5f7a/README.rst create mode 100644 janis_core/tests/data/galaxy/wrappers/featurecounts-6f66ae7c5f7a/featurecounts.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/featurecounts-6f66ae7c5f7a/tool-data/featurecounts_anno.loc.sample create mode 100644 janis_core/tests/data/galaxy/wrappers/featurecounts-6f66ae7c5f7a/tool-data/gene_sets.loc.sample create mode 100644 janis_core/tests/data/galaxy/wrappers/featurecounts-6f66ae7c5f7a/tool_data_table_conf.xml.sample create mode 100644 janis_core/tests/data/galaxy/wrappers/featurecounts-6f66ae7c5f7a/tool_data_table_conf.xml.test create mode 100644 janis_core/tests/data/galaxy/wrappers/fgsea-17eb1e0d711f/fgsea.R create mode 100755 janis_core/tests/data/galaxy/wrappers/fgsea-17eb1e0d711f/fgsea.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/goseq-602de62d995b/goseq.r create mode 100644 janis_core/tests/data/galaxy/wrappers/goseq-602de62d995b/goseq.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/goseq-ef2ad746b589/goseq.r create mode 100644 janis_core/tests/data/galaxy/wrappers/goseq-ef2ad746b589/goseq.xml rename janis_core/tests/data/galaxy/{ => wrappers}/hisat2-6c19daec423d/hisat2.xml (100%) rename janis_core/tests/data/galaxy/{ => wrappers}/hisat2-6c19daec423d/hisat2_macros.xml (100%) rename janis_core/tests/data/galaxy/{ => wrappers}/hisat2-6c19daec423d/tool-data/hisat2_indexes.loc.sample (100%) rename janis_core/tests/data/galaxy/{ => wrappers}/hisat2-6c19daec423d/tool_data_table_conf.xml.sample (100%) rename janis_core/tests/data/galaxy/{ => wrappers}/hisat2-6c19daec423d/tool_data_table_conf.xml.test (100%) create mode 100644 janis_core/tests/data/galaxy/wrappers/hisat2-f4af63aaf57a/hisat2.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/hisat2-f4af63aaf57a/hisat2_macros.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/hisat2-f4af63aaf57a/tool-data/hisat2_indexes.loc.sample create mode 100644 janis_core/tests/data/galaxy/wrappers/hisat2-f4af63aaf57a/tool_data_table_conf.xml.sample create mode 100755 janis_core/tests/data/galaxy/wrappers/hisat2-f4af63aaf57a/tool_data_table_conf.xml.test create mode 100644 janis_core/tests/data/galaxy/wrappers/limma_voom-d5a940112511/limma_voom.R create mode 100644 janis_core/tests/data/galaxy/wrappers/limma_voom-d5a940112511/limma_voom.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/limma_voom-d6f5fa4ee473/limma_voom.R create mode 100644 janis_core/tests/data/galaxy/wrappers/limma_voom-d6f5fa4ee473/limma_voom.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/multiqc-1c2db0054039/generate_test_data.sh create mode 100644 janis_core/tests/data/galaxy/wrappers/multiqc-1c2db0054039/multiqc.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/multiqc-1c2db0054039/readme.rst create mode 100644 janis_core/tests/data/galaxy/wrappers/nanoplot-0f1c34698076/nanoplot.xml rename janis_core/tests/data/galaxy/{ => wrappers}/nanoplot-edbb6c5028f5/nanoplot.xml (100%) create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_AddCommentsToBam.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_AddOrReplaceReadGroups.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_BedToIntervalList.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CleanSam.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CollectAlignmentSummaryMetrics.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CollectBaseDistributionByCycle.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CollectGcBiasMetrics.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CollectHsMetrics.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CollectInsertSizeMetrics.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CollectRnaSeqMetrics.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CollectSequencingArtifactsMetrics.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CollectWgsMetrics.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_DownsampleSam.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_EstimateLibraryComplexity.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_FastqToSam.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_FilterSamReads.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_FixMateInformation.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_MarkDuplicates.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_MarkDuplicatesWithMateCigar.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_MeanQualityByCycle.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_MergeBamAlignment.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_MergeSamFiles.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_NormalizeFasta.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_QualityScoreDistribution.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_ReorderSam.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_ReplaceSamHeader.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_RevertOriginalBaseQualitiesAndAddMateCigar.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_RevertSam.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_SamToFastq.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_SortSam.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_ValidateSamFile.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_macros.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/read_group_macros.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/tool-data/picard_index.loc.sample create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/tool_data_table_conf.xml.sample create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/tool_data_table_conf.xml.test create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_AddCommentsToBam.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_AddOrReplaceReadGroups.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_BedToIntervalList.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CleanSam.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CollectAlignmentSummaryMetrics.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CollectBaseDistributionByCycle.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CollectGcBiasMetrics.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CollectHsMetrics.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CollectInsertSizeMetrics.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CollectRnaSeqMetrics.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CollectSequencingArtifactsMetrics.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CollectWgsMetrics.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_DownsampleSam.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_EstimateLibraryComplexity.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_FastqToSam.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_FilterSamReads.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_FixMateInformation.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_MarkDuplicates.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_MarkDuplicatesWithMateCigar.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_MeanQualityByCycle.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_MergeBamAlignment.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_MergeSamFiles.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_NormalizeFasta.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_QualityScoreDistribution.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_ReorderSam.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_ReplaceSamHeader.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_RevertOriginalBaseQualitiesAndAddMateCigar.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_RevertSam.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_SamToFastq.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_SortSam.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_ValidateSamFile.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_macros.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/read_group_macros.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/tool-data/picard_index.loc.sample create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/tool_data_table_conf.xml.sample create mode 100644 janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/tool_data_table_conf.xml.test rename janis_core/tests/data/galaxy/{ => wrappers}/quast-675488238c96/macros.xml (100%) rename janis_core/tests/data/galaxy/{ => wrappers}/quast-675488238c96/quast.xml (100%) create mode 100644 janis_core/tests/data/galaxy/wrappers/quast-675488238c96/static/images/Align_view.png create mode 100644 janis_core/tests/data/galaxy/wrappers/quast-675488238c96/static/images/contig_view_noR.png create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/FPKM_count.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/README.txt create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/RNA_fragment_size.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/RPKM_saturation.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/bam2wig.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/bam_stat.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/clipping_profile.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/deletion_profile.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/geneBody_coverage.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/geneBody_coverage2.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/infer_experiment.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/inner_distance.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/insertion_profile.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/junction_annotation.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/junction_saturation.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/mismatch_profile.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/read_GC.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/read_NVC.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/read_distribution.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/read_duplication.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/read_hexamer.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/read_quality.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/rseqc_macros.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/36mer.qual.heatmap.png create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/36mer.qual.plot.png create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/Aug_26.geneBodyCoverage.curves.png create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/Aug_26.geneBodyCoverage.heatMap.png create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/NVC_plot.png create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/RelativeError.png create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/clipping_good.png create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/duplicate.png create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/geneBody_coverage.png create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/geneBody_workflow.png create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/inner_distance.png create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/junction.png create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/junction_saturation.png create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/logo.png create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/mismatch_profile.png create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/out.deletion_profile.png create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/out.insertion_profile.R1.png create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/out.insertion_profile.R2.png create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/read_gc.png create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/saturation.png create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/saturation_eg.png create mode 100644 janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/tin.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/samtools_flagstat-fe34990e5ce7/macros.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/samtools_flagstat-fe34990e5ce7/samtools_flagstat.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/samtools_idxstats-7def34e6cf4d/macros.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/samtools_idxstats-7def34e6cf4d/samtools_idxstats.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/samtools_idxstats-811fc2d75ad4/macros.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/samtools_idxstats-811fc2d75ad4/samtools_idxstats.xml rename janis_core/tests/data/galaxy/{text_processing-d698c222f354 => wrappers/text_processing-74a8bef53a00}/ansi2html.sh (100%) create mode 100644 janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/awk.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/cat.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/cut.xml rename janis_core/tests/data/galaxy/{text_processing-d698c222f354 => wrappers/text_processing-74a8bef53a00}/easyjoin (100%) create mode 100644 janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/easyjoin.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/find_and_replace create mode 100644 janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/find_and_replace.xml rename janis_core/tests/data/galaxy/{text_processing-d698c222f354 => wrappers/text_processing-74a8bef53a00}/grep.xml (100%) rename janis_core/tests/data/galaxy/{text_processing-d698c222f354 => wrappers/text_processing-74a8bef53a00}/head.xml (100%) rename janis_core/tests/data/galaxy/{text_processing-d698c222f354 => wrappers/text_processing-74a8bef53a00}/macros.xml (100%) rename janis_core/tests/data/galaxy/{text_processing-d698c222f354 => wrappers/text_processing-74a8bef53a00}/multijoin (100%) rename janis_core/tests/data/galaxy/{text_processing-d698c222f354 => wrappers/text_processing-74a8bef53a00}/multijoin.xml (100%) rename janis_core/tests/data/galaxy/{text_processing-d698c222f354 => wrappers/text_processing-74a8bef53a00}/readme.rst (100%) rename janis_core/tests/data/galaxy/{text_processing-d698c222f354 => wrappers/text_processing-74a8bef53a00}/recurring_lines.xml (100%) create mode 100644 janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/replace_text_in_column.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/replace_text_in_line.xml rename janis_core/tests/data/galaxy/{text_processing-d698c222f354 => wrappers/text_processing-74a8bef53a00}/sed.xml (100%) rename janis_core/tests/data/galaxy/{text_processing-d698c222f354 => wrappers/text_processing-74a8bef53a00}/sort-header (100%) rename janis_core/tests/data/galaxy/{text_processing-d698c222f354 => wrappers/text_processing-74a8bef53a00}/sort.xml (100%) create mode 100644 janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/sort_rows.xml rename janis_core/tests/data/galaxy/{text_processing-d698c222f354 => wrappers/text_processing-74a8bef53a00}/sorted_uniq.xml (100%) rename janis_core/tests/data/galaxy/{text_processing-d698c222f354 => wrappers/text_processing-74a8bef53a00}/tac.xml (100%) rename janis_core/tests/data/galaxy/{text_processing-d698c222f354 => wrappers/text_processing-74a8bef53a00}/tail.xml (100%) create mode 100644 janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/unfold_column.py rename janis_core/tests/data/galaxy/{text_processing-d698c222f354 => wrappers/text_processing-74a8bef53a00}/unfold_column.xml (100%) rename janis_core/tests/data/galaxy/{text_processing-d698c222f354 => wrappers/text_processing-74a8bef53a00}/unsorted_uniq.xml (100%) create mode 100755 janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/ansi2html.sh rename janis_core/tests/data/galaxy/{ => wrappers}/text_processing-d698c222f354/awk.xml (100%) rename janis_core/tests/data/galaxy/{ => wrappers}/text_processing-d698c222f354/cat.xml (100%) rename janis_core/tests/data/galaxy/{ => wrappers}/text_processing-d698c222f354/cut.xml (100%) create mode 100644 janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/easyjoin rename janis_core/tests/data/galaxy/{ => wrappers}/text_processing-d698c222f354/easyjoin.xml (100%) rename janis_core/tests/data/galaxy/{ => wrappers}/text_processing-d698c222f354/find_and_replace (100%) rename janis_core/tests/data/galaxy/{ => wrappers}/text_processing-d698c222f354/find_and_replace.xml (100%) create mode 100644 janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/grep.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/head.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/macros.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/multijoin create mode 100644 janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/multijoin.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/readme.rst create mode 100644 janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/recurring_lines.xml rename janis_core/tests/data/galaxy/{ => wrappers}/text_processing-d698c222f354/replace_text_in_column.xml (100%) rename janis_core/tests/data/galaxy/{ => wrappers}/text_processing-d698c222f354/replace_text_in_line.xml (100%) create mode 100644 janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/sed.xml create mode 100755 janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/sort-header create mode 100644 janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/sort.xml rename janis_core/tests/data/galaxy/{ => wrappers}/text_processing-d698c222f354/sort_rows.xml (100%) create mode 100644 janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/sorted_uniq.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/tac.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/tail.xml rename janis_core/tests/data/galaxy/{ => wrappers}/text_processing-d698c222f354/unfold_column.py (100%) create mode 100644 janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/unfold_column.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/unsorted_uniq.xml create mode 100644 janis_core/tests/data/galaxy/wrappers/unicycler-9e3e80cc4ad4/unicycler.xml diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index 1c60722a8..0c3b53709 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -21,5 +21,5 @@ jobs: pip install -r requirements/tests.txt - name: Test with pytest run: | - PYTHONPATH=. pytest janis_core/tests/test_*.py + PYTHONPATH=. pytest janis_core/tests/test_*.py -m "not release" - uses: codecov/codecov-action@v2 diff --git a/janis_core/ingestion/galaxy/gxtool/command/loading.py b/janis_core/ingestion/galaxy/gxtool/command/loading.py index 7c181cf7c..8f1c29d6d 100644 --- a/janis_core/ingestion/galaxy/gxtool/command/loading.py +++ b/janis_core/ingestion/galaxy/gxtool/command/loading.py @@ -2,22 +2,20 @@ from typing import Any -from ..parsing.main import load_xmltool from ..text.simplification.aliases import resolve_aliases from ..text.simplification.main_statement import mark_main_statement from ..text.cheetah.evaluation import sectional_evaluate from ..text.simplification.simplify import simplify_cmd -from janis_core.ingestion.galaxy import runtime +from janis_core.ingestion.galaxy.gxtool.model import XMLTool -def load_vanilla_command_str() -> str: +def load_vanilla_command_str(xmltool: XMLTool) -> str: """ loads section of the active tool's XML for analysis. simplifies the command (removing cheetah comments, standardising galaxy dynamic vars) resolves aliases (temporary variables) back to original params """ - xmltool = load_xmltool(runtime.tool.tool_path) text = xmltool.raw_command text = simplify_cmd(text, 'main_statement') text = mark_main_statement(text, xmltool) @@ -25,13 +23,12 @@ def load_vanilla_command_str() -> str: text = resolve_aliases(text) return text -def load_templated_command_str(inputs_dict: dict[str, Any]) -> str: +def load_templated_command_str(xmltool: XMLTool, inputs_dict: dict[str, Any]) -> str: """ loads section of the active tool's XML for analysis. as above, except performs cheetah eval to simplify command. omits some simplification steps (e.g. cheetah comments) as many of these are handled during templating. """ - xmltool = load_xmltool(runtime.tool.tool_path) text = xmltool.raw_command text = simplify_cmd(text, 'main_statement') text = mark_main_statement(text, xmltool) diff --git a/janis_core/ingestion/galaxy/gxtool/command/main.py b/janis_core/ingestion/galaxy/gxtool/command/main.py index 58be6c9b4..2512e5318 100644 --- a/janis_core/ingestion/galaxy/gxtool/command/main.py +++ b/janis_core/ingestion/galaxy/gxtool/command/main.py @@ -59,7 +59,7 @@ def create(self) -> Command: # remove post # all annotators except Local/GlobalCmdstrAnnotator - supply main as text # Local/GlobalCmdstrAnnotator - supply supply pre & main, only start greedy search from main - cmdtext = load_vanilla_command_str() + cmdtext = load_vanilla_command_str(self.xmltool) mainstmt_text = cmdtext.split('__JANIS_MAIN__')[1] if 'SimpleInlineBoolAnnotator' in self.annotators: @@ -83,6 +83,7 @@ def get_dynamic_statements(self) -> list[DynamicCommandStatement]: # cheetah templating if galaxy step tool state present if self.gxstep: inputs_dict = load_tool_state( + self.xmltool, self.gxstep, additional_filters=[ 'ReplaceNullWithVarname', @@ -91,14 +92,14 @@ def get_dynamic_statements(self) -> list[DynamicCommandStatement]: 'ReplaceRuntimeWithVarname', ] ) - cmdtext = load_templated_command_str(inputs_dict) + cmdtext = load_templated_command_str(self.xmltool, inputs_dict) mainstmt_text = cmdtext.split('__JANIS_MAIN__')[1] mainstmt_tokens = tokenise_text(mainstmt_text, self.xmltool) mainstmt_dynamic = DynamicCommandStatement(mainstmt_text, mainstmt_tokens) stmts_dynamic.append(mainstmt_dynamic) # vanilla xml - cmdtext = load_vanilla_command_str() + cmdtext = load_vanilla_command_str(self.xmltool) mainstmt_text = cmdtext.split('__JANIS_MAIN__')[1] mainstmt_tokens = tokenise_text(mainstmt_text, self.xmltool) mainstmt_dynamic = DynamicCommandStatement(mainstmt_text, mainstmt_tokens) diff --git a/janis_core/ingestion/galaxy/gxtool/parsing/main.py b/janis_core/ingestion/galaxy/gxtool/parsing/main.py index d788c5584..b1dd1e923 100644 --- a/janis_core/ingestion/galaxy/gxtool/parsing/main.py +++ b/janis_core/ingestion/galaxy/gxtool/parsing/main.py @@ -2,7 +2,7 @@ import os import tempfile import regex as re -from typing import Any, Optional +from typing import Any from galaxy.tools import Tool as GxTool from galaxy.tools import create_tool_from_source diff --git a/janis_core/ingestion/galaxy/gxtool/parsing/param_flattener.py b/janis_core/ingestion/galaxy/gxtool/parsing/param_flattener.py index 70daf9235..036a13501 100644 --- a/janis_core/ingestion/galaxy/gxtool/parsing/param_flattener.py +++ b/janis_core/ingestion/galaxy/gxtool/parsing/param_flattener.py @@ -22,6 +22,7 @@ def flatten(self) -> list[ToolParameter]: def explore_node(self, node: XmlNode, heirarchy: list[str]) -> None: heirarchy = deepcopy(heirarchy) + # TODO move these to check attributes to remove galaxy class imports match node: case HiddenToolParameter(): pass diff --git a/janis_core/ingestion/galaxy/gxworkflow/parsing/tool_step/prepost.py b/janis_core/ingestion/galaxy/gxworkflow/parsing/tool_step/prepost.py deleted file mode 100644 index c406ea802..000000000 --- a/janis_core/ingestion/galaxy/gxworkflow/parsing/tool_step/prepost.py +++ /dev/null @@ -1,48 +0,0 @@ - - - -from typing import Any, Optional -from janis_core.ingestion.galaxy.gxtool.command.cmdstr.DynamicCommandStatement import DynamicCommandStatement -from janis_core.ingestion.galaxy.gxtool.command.cmdstr.generate import gen_command_string -from janis_core.ingestion.galaxy.gxtool.command.cmdstr.CommandString import CommandStringSource -from janis_core.ingestion.galaxy.internal_model.workflow.workflow import Workflow - -from janis_core.ingestion.galaxy.gxtool.parsing import load_xmltool -from janis_core.ingestion.galaxy.gxworkflow import load_tool_state -from janis_core.ingestion.galaxy.gxtool.command import load_templated_command_str - -from janis_core.ingestion.galaxy import internal_mapping -from janis_core.ingestion.galaxy import runtime - - -def ingest_workflow_steps_prepost(janis: Workflow, galaxy: dict[str, Any]) -> None: - for g_step in galaxy['steps'].values(): - if g_step['type'] == 'tool': - ingest_prepost(g_step, janis, galaxy) - -def ingest_prepost(g_step: dict[str, Any], janis: Workflow, galaxy: dict[str, Any]): - # get janis step & update settings - j_step = internal_mapping.step(g_step['id'], janis, galaxy) - runtime.tool.set(from_wrapper=j_step.metadata.wrapper) - - xmltool = load_xmltool(runtime.tool.tool_path) - tool_state = load_tool_state( - g_step, - additional_filters=[ - 'ReplaceBoolWithValue', - 'ReplaceNullWithVarname', - 'ReplaceConnectedWithVarname', - 'ReplaceRuntimeWithVarname', - ] - ) - command = load_templated_command_str(inputs_dict=tool_state) - cmdstr = gen_command_string(source=CommandStringSource.XML, text=command, xmltool=xmltool) - j_step.preprocessing = extract_cmdline(cmdstr.preprocessing) - j_step.postprocessing = extract_cmdline(cmdstr.postprocessing) - -def extract_cmdline(statements: list[DynamicCommandStatement]) -> Optional[str]: - if not statements: - return None - cmdlines = [x.cmdline for x in statements] - return ' &&'.join(cmdlines) - diff --git a/janis_core/ingestion/galaxy/gxworkflow/tool_state/load.py b/janis_core/ingestion/galaxy/gxworkflow/tool_state/load.py index 54503e3a2..e7c50ec73 100644 --- a/janis_core/ingestion/galaxy/gxworkflow/tool_state/load.py +++ b/janis_core/ingestion/galaxy/gxworkflow/tool_state/load.py @@ -23,6 +23,7 @@ # MODULE ENTRY def load_tool_state( + xmltool: XMLTool, step: dict[str, Any], additional_filters: list[str]=[], ) -> dict[str, Any]: @@ -32,7 +33,7 @@ def load_tool_state( """ local_filters = get_local_filters_to_apply(additional_filters) global_filters = get_global_filters_to_apply(additional_filters) - xmltool = load_xmltool(runtime.tool.tool_path) + # xmltool = load_xmltool(runtime.tool.tool_path) tool_state = json.loads(step['tool_state']) tool_state = apply_local_filters(local_filters, tool_state, xmltool) tool_state = apply_global_filters(global_filters, tool_state, xmltool) diff --git a/janis_core/ingestion/galaxy/gxworkflow/values/runtime.py b/janis_core/ingestion/galaxy/gxworkflow/values/runtime.py index eaa3acc0e..948c82fbf 100644 --- a/janis_core/ingestion/galaxy/gxworkflow/values/runtime.py +++ b/janis_core/ingestion/galaxy/gxworkflow/values/runtime.py @@ -38,8 +38,9 @@ def ingest(self) -> None: def ingest_runtime(self, g_step: dict[str, Any]) -> None: j_step = internal_mapping.step(g_step['id'], self.janis, self.galaxy) - runtime.tool.set(from_wrapper=j_step.metadata.wrapper) - tool_state = load_tool_state(g_step, additional_filters=['Flatten', 'DeNestClass']) + xmltool = j_step.tool.xmltool + # runtime.tool.set(from_wrapper=j_step.metadata.wrapper) + tool_state = load_tool_state(xmltool, g_step, additional_filters=['Flatten', 'DeNestClass']) g_targets = [key for key, val in tool_state.items() if val == 'RuntimeValue'] for g_target in g_targets: diff --git a/janis_core/ingestion/galaxy/gxworkflow/values/static.py b/janis_core/ingestion/galaxy/gxworkflow/values/static.py index 7ee902b00..c12acde0e 100644 --- a/janis_core/ingestion/galaxy/gxworkflow/values/static.py +++ b/janis_core/ingestion/galaxy/gxworkflow/values/static.py @@ -8,18 +8,14 @@ from janis_core.ingestion.galaxy.internal_model.workflow import WorkflowInput -from janis_core.ingestion.galaxy.gxtool.parsing import load_xmltool from janis_core.ingestion.galaxy.gxworkflow import load_tool_state -from janis_core.ingestion.galaxy.gxtool.command.cmdstr import gen_command_string -from janis_core.ingestion.galaxy.gxtool.command.cmdstr.CommandString import CommandStringSource from janis_core.ingestion.galaxy.gxtool.command.components import Flag from janis_core.ingestion.galaxy.gxtool.command.components import InputComponent from janis_core.ingestion.galaxy.gxtool.command.components import Option from janis_core.ingestion.galaxy.gxtool.command import load_templated_command_str from . import factory -from janis_core.ingestion.galaxy.internal_model.workflow import InputValue from janis_core.ingestion.galaxy import internal_mapping from janis_core.ingestion.galaxy import datatypes @@ -83,7 +79,9 @@ def ingest(self) -> None: def prepare_command(self) -> str: # xmltool = load_xmltool(runtime.tool.tool_path) + xmltool = self.i_step.tool.xmltool tool_state = load_tool_state( + xmltool, self.g_step, additional_filters=[ 'ReplaceBoolWithValue', @@ -92,7 +90,7 @@ def prepare_command(self) -> str: 'ReplaceRuntimeWithVarname', ] ) - cmdtext = load_templated_command_str(inputs_dict=tool_state) + cmdtext = load_templated_command_str(xmltool, tool_state) return cmdtext.split('__JANIS_MAIN__')[1] # cmdstr = gen_command_string(source=CommandStringSource.TOOL_STATE, text=command, xmltool=xmltool) # stmtstr = cmdstr.main.cmdline @@ -183,7 +181,11 @@ def __init__(self, g_step: dict[str, Any], i_step: WorkflowStep, i_workflow: Wor self.g_step = g_step self.i_step = i_step self.i_workflow = i_workflow - self.tool_state = load_tool_state(self.g_step, additional_filters=['Flatten', 'DeNestClass']) + self.tool_state = load_tool_state( + self.i_step.tool.xmltool, + self.g_step, + additional_filters=['Flatten', 'DeNestClass'] + ) def ingest(self) -> None: for component in self.get_linkable_components(): diff --git a/janis_core/ingestion/galaxy/gxwrappers/scraping/__init__.py b/janis_core/ingestion/galaxy/gxwrappers/scraping/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/janis_core/ingestion/galaxy/gxwrappers/scraping/repositories.py b/janis_core/ingestion/galaxy/gxwrappers/scraping/repositories.py deleted file mode 100644 index df58d43d1..000000000 --- a/janis_core/ingestion/galaxy/gxwrappers/scraping/repositories.py +++ /dev/null @@ -1,30 +0,0 @@ - - -from bs4 import Tag -from collections import defaultdict -from . import utils - - - -def scrape_repos() -> None: - """ - only single thread possible - returns list of urls, where each url is a repo - consists of all repos in the toolshed - """ - URL = 'https://toolshed.g2.bx.psu.edu/repos' - page = utils.get_soup(URL) - table = utils.get_table(page) - elems = utils.get_table_col(table, 0) - repo_data = extract_repo_information(elems) - utils.save_data(utils.REPO_DATA_PATH, repo_data) - -def extract_repo_information(elems: list[Tag]) -> dict[str, list[str]]: - out: dict[str, list[str]] = defaultdict(list) - for elem in elems: - path = elem.find('a').attrs['href'].split('/') # type: ignore - owner, repo = path[2], path[3] - out[owner].append(repo) # type: ignore - return out - - diff --git a/janis_core/ingestion/galaxy/gxwrappers/scraping/revisions.py b/janis_core/ingestion/galaxy/gxwrappers/scraping/revisions.py deleted file mode 100644 index d61757180..000000000 --- a/janis_core/ingestion/galaxy/gxwrappers/scraping/revisions.py +++ /dev/null @@ -1,90 +0,0 @@ - - -from datetime import datetime -from typing import Any, Tuple - -from bs4 import Tag - -from janis_core.ingestion.galaxy.runtime.dates import TOOLSHED_DATE_FMT, JANIS_DATE_FMT -from . import utils - -NEW_REPOS_ONLY = True -THREADS = 10 - -def scrape_revisions() -> None: - scraper = RevisionScraper() - scraper.scrape() - -def get_revisions_in_repo(owner: str, repo: str) -> list[dict[str, str]]: - URL = format_repo_url(owner, repo) - page = utils.get_soup(URL) - table = utils.get_table(page) - ages = utils.get_table_col(table, 0) - links = utils.get_table_col(table, 2) - return extract_revisions_info(ages, links) - -def format_repo_url(owner: str, repo: str) -> str: - return f'https://toolshed.g2.bx.psu.edu/repos/{owner}/{repo}/' - -def extract_revisions_info(ages: list[Tag], links: list[Tag]) -> list[dict[str, str]]: - out: list[dict[str, str]] = [] - for age, link in zip(ages, links): - revision: str = link.find('a').attrs['href'].rsplit('/', 1)[-1] # type: ignore - date_created = datetime.strptime(age.text, TOOLSHED_DATE_FMT) # type: ignore - date_string: str = date_created.strftime(JANIS_DATE_FMT) # TODO does this mess up the time since no UTC offset? - out.append({ - 'revision': revision, - 'date_created': date_string, - }) - return out - - -class RevisionScraper: - """ - coordinates the scraping process - handles file loading, updating saving - """ - def __init__(self): - self.local_data: dict[str, Any] = utils.load_data(utils.REVISION_DATA_PATH) - self.total_count: int = 0 - self.scraped_count: int = 0 - - @property - def percentage_complete(self) -> float: - return (self.scraped_count / self.total_count) * 100 - - def scrape(self) -> None: - owners_repos = self.get_scrapable_repos() - self.total_count = len(owners_repos) - print(f'repos to scrape: {self.total_count}') - for owner, repo in owners_repos: - self.try_scrape_repo_revisions(owner, repo) - self.scraped_count += 1 - print(f'\r{self.percentage_complete:0.1f}%', end='') - - def get_scrapable_repos(self) -> list[Tuple[str, str]]: - repo_data = utils.load_data(utils.REPO_DATA_PATH) - out: list[Tuple[str, str]] = [] - for owner, repo_list in repo_data.items(): - for repo in repo_list: - if self.should_scrape_repo_revisions(owner, repo): - out.append((owner, repo)) - return out - - def should_scrape_repo_revisions(self, owner: str, repo: str) -> bool: - # if we only want new repos, don't scrape existing repos - if NEW_REPOS_ONLY: - if owner in self.local_data: - if repo in self.local_data[owner]: - return False - return True - - def try_scrape_repo_revisions(self, owner: str, repo: str) -> None: - if owner not in self.local_data: - self.local_data[owner] = {} - try: - self.local_data[owner][repo] = get_revisions_in_repo(owner, repo) # takes time - do threaded - utils.save_data(utils.REVISION_DATA_PATH, self.local_data) # save - except Exception as e: - print(e) - diff --git a/janis_core/ingestion/galaxy/gxwrappers/scraping/scraping.py b/janis_core/ingestion/galaxy/gxwrappers/scraping/scraping.py deleted file mode 100644 index 9f2fc6158..000000000 --- a/janis_core/ingestion/galaxy/gxwrappers/scraping/scraping.py +++ /dev/null @@ -1,35 +0,0 @@ - - -""" - -module info - -main calls and operations here using ToolshedScraper etc - -""" - -import sys -sys.path.append('./src') - -from janis_core.ingestion.galaxy.gxwrappers.scraping.repositories import scrape_repos -from janis_core.ingestion.galaxy.gxwrappers.scraping.revisions import scrape_revisions -from janis_core.ingestion.galaxy.gxwrappers.scraping.wrappers import scrape_wrappers - - -def main(argv: list[str]): - mode = argv[0] - match mode: - case 'repos': - scrape_repos() - case 'revisions': - scrape_revisions() - case 'wrappers': - scrape_wrappers() - case _: - print(f'invalid mode {mode}') - sys.exit() - - -if __name__ == '__main__': - main(sys.argv[1:]) - diff --git a/janis_core/ingestion/galaxy/gxwrappers/scraping/single.py b/janis_core/ingestion/galaxy/gxwrappers/scraping/single.py deleted file mode 100644 index 5180610fe..000000000 --- a/janis_core/ingestion/galaxy/gxwrappers/scraping/single.py +++ /dev/null @@ -1,46 +0,0 @@ - - - -from typing import Iterable -from janis_core.ingestion.galaxy.gxwrappers.scraping.revisions import get_revisions_in_repo -from janis_core.ingestion.galaxy.gxwrappers.scraping.wrappers import Revision -from ..wrappers.WrapperCache import WrapperCache -from . import utils - - -# SCRAPING -def scrape_single_repo(owner: str, repo: str) -> None: - print(f'scraping toolshed for {repo} wrappers') - do_revisions_scrape(owner, repo) - do_wrappers_scrape(owner, repo) - -def do_revisions_scrape(owner: str, repo: str) -> None: - revisions_data = utils.load_data(utils.REVISION_DATA_PATH) # load - revisions_data[owner][repo] = get_revisions_in_repo(owner, repo) # alter - utils.save_data(utils.REVISION_DATA_PATH, revisions_data) # save - -def do_wrappers_scrape(owner: str, repo: str) -> None: - cache = WrapperCache() # load - - for revision in scrapable_revisions(owner, repo): - wrappers = revision.get_wrappers() - for wrapper in wrappers: - cache.add(wrapper) # save - -def scrapable_revisions(owner: str, repo: str) -> Iterable[Revision]: - revision_data = utils.load_data(utils.REVISION_DATA_PATH) - for revision in revision_data[owner][repo]: # should never have key errors - yield Revision( - owner=owner, - repo=repo, - revision=revision['revision'], - date_created=revision['date_created'], - ) - - - - - - - - \ No newline at end of file diff --git a/janis_core/ingestion/galaxy/gxwrappers/scraping/utils.py b/janis_core/ingestion/galaxy/gxwrappers/scraping/utils.py deleted file mode 100644 index e12862510..000000000 --- a/janis_core/ingestion/galaxy/gxwrappers/scraping/utils.py +++ /dev/null @@ -1,45 +0,0 @@ - - -import os -import json -import requests -from typing import Any -from bs4 import BeautifulSoup, Tag - -# FILE IO - - -def load_data(path: str) -> dict[str, Any]: - """lockfile?""" - if not os.path.exists(path): - return {} - with open(path, 'r') as fp: - return json.load(fp) - -def save_data(path: str, data: dict[str, Any]) -> None: - """lockfile?""" - with open(path, 'w') as fp: - json.dump(data, fp) - - -# REQUESTS / HTML PARSING -def get_soup(url: str) -> BeautifulSoup: - response = requests.get(url) - return BeautifulSoup(response.content, "html.parser") - -def get_table(page: BeautifulSoup) -> Tag: - table = page.find(name='table') - if not isinstance(table, Tag): - raise RuntimeError() - return table - -def get_table_col(table: Tag, col: int) -> list[Tag]: - rows = table.find_all('tr') - rows = [row for row in rows if row.parent.name == 'tbody'] - elems = [row.find_all('td')[col] for row in rows] - return elems - -def format_iframe_url(iframe_elem: Tag) -> str: - return f'https://toolshed.g2.bx.psu.edu/{iframe_elem.attrs["src"]}' - - diff --git a/janis_core/ingestion/galaxy/gxwrappers/scraping/wrappers.py b/janis_core/ingestion/galaxy/gxwrappers/scraping/wrappers.py deleted file mode 100644 index 81de71f84..000000000 --- a/janis_core/ingestion/galaxy/gxwrappers/scraping/wrappers.py +++ /dev/null @@ -1,129 +0,0 @@ - - -from abc import ABC, abstractmethod -import requests -import tarfile -import shutil -import os -from dataclasses import dataclass -from typing import Any, Optional -from xml.etree import ElementTree as et - -from galaxy.tool_util.parser import get_tool_source -from janis_core.ingestion.galaxy.gxwrappers import Wrapper - -from ..wrappers.WrapperCache import WrapperCache -from . import utils - - -THREADS = 10 - - -def scrape_wrappers() -> None: - scraper = WrapperScraper() - scraper.scrape() - -class ScrapeStrategy(ABC): - def __init__(self, owner: str, repo: str, revision: str): - self.owner = owner - self.repo = repo - self.revision = revision - - @abstractmethod - def scrape(self) -> None: - raise NotImplementedError() - - -@dataclass -class Revision: - owner: str - repo: str - revision: str - date_created: str - download_folder: str = 'temp' - - @property - def url(self) -> str: - return f'https://toolshed.g2.bx.psu.edu/repos/{self.owner}/{self.repo}/archive/{self.revision}.tar.gz' - - def get_tar(self) -> tarfile.TarFile: - response = requests.get(self.url, stream=True) - tar = tarfile.open(fileobj=response.raw, mode='r:gz') - tar.extractall(path=self.download_folder) - return tar - - def get_wrappers(self) -> list[Wrapper]: - tar = self.get_tar() - folder = os.path.commonprefix(tar.getnames()) - xmlpaths = [os.path.join(self.download_folder, x) for x in tar.getnames() if x.endswith('.xml')] - wrappers = self.extract_wrapper_info(xmlpaths) - shutil.rmtree(os.path.join(self.download_folder, folder)) - return wrappers - - def extract_wrapper_info(self, xmlpaths: list[str]) -> list[Wrapper]: - out: list[Wrapper] = [] - for path in xmlpaths: - info = self.get_info(path) - if info: - info['owner'] = self.owner - info['repo'] = self.repo - info['revision'] = self.revision - info['date_created'] = self.date_created - info['requirements'] = [] - raise NotImplementedError() - out.append(Wrapper(info)) - return out - - def get_info(self, path: str) -> Optional[dict[str, Any]]: - tree = et.parse(path) - root = tree.getroot() - if root.tag == 'tool': - tool_source = get_tool_source(path) # TODO macro paths???? - return { - 'tool_id': tool_source.parse_id(), # type: ignore - 'tool_build': tool_source.parse_version() # type: ignore - } - return None - - - -class WrapperScraper: - - def __init__(self): - self.cache = WrapperCache() - self.total_count: int = 0 - self.scraped_count: int = 0 - - @property - def percentage_complete(self) -> float: - return (self.scraped_count / self.total_count) * 100 - - def scrape(self) -> None: - revisions = self.get_scrapable_revisions() - self.total_count = len(revisions) - print(f'revisions to scrape: {self.total_count}') - for revision in revisions: - try: - self.scraped_count += 1 - print(f'\r{self.percentage_complete:0.1f}%', end='') - wrappers = revision.get_wrappers() - for wrapper in wrappers: - self.cache.add(wrapper) - except Exception as e: - print(e) - - def get_scrapable_revisions(self) -> list[Revision]: - revision_data = utils.load_data(utils.REVISION_DATA_PATH) - out: list[Revision] = [] - for owner, repo_data in revision_data.items(): - for repo, revision_list in repo_data.items(): - for revision in revision_list: - if not self.cache.get(revision=revision['revision']): - new_revision = Revision( - owner=owner, - repo=repo, - revision=revision['revision'], - date_created=revision['date_created'], - ) - out.append(new_revision) - return out diff --git a/janis_core/ingestion/galaxy/ingest.py b/janis_core/ingestion/galaxy/ingest.py index e2a94e085..2794b2dd3 100644 --- a/janis_core/ingestion/galaxy/ingest.py +++ b/janis_core/ingestion/galaxy/ingest.py @@ -21,7 +21,6 @@ from janis_core.ingestion.galaxy.gxworkflow.parsing.metadata import ingest_metadata from janis_core.ingestion.galaxy.gxworkflow.parsing.inputs import ingest_workflow_inputs from janis_core.ingestion.galaxy.gxworkflow.parsing.step import ingest_workflow_steps -from janis_core.ingestion.galaxy.gxworkflow.parsing.tool_step.prepost import ingest_workflow_steps_prepost from janis_core.ingestion.galaxy.gxworkflow.parsing.tool_step.outputs import ingest_workflow_steps_outputs from janis_core.ingestion.galaxy.gxwrappers import request_single_wrapper @@ -116,7 +115,6 @@ def ingest_workflow(path: str) -> Workflow: ingest_workflow_inputs(internal, galaxy) ingest_workflow_steps(internal, galaxy) # creates steps, but only the metadata ingest_workflow_tools(internal, galaxy) # has to happen after ingesting step metadata, but before step inputs / outputs - # ingest_workflow_steps_prepost(internal, galaxy) ingest_workflow_steps_outputs(internal, galaxy) # assigning step input values diff --git a/janis_core/ingestion/galaxy/internal_model/tool/generate.py b/janis_core/ingestion/galaxy/internal_model/tool/generate.py index 73baacd4f..f5f3a08f2 100644 --- a/janis_core/ingestion/galaxy/internal_model/tool/generate.py +++ b/janis_core/ingestion/galaxy/internal_model/tool/generate.py @@ -57,6 +57,7 @@ def __init__( def create(self) -> ITool: tool = ITool( + xmltool=self.xmltool, metadata=self.xmltool.metadata, container=self.container, base_command=self.get_base_command(), @@ -130,7 +131,7 @@ def add_uncaptured_inputs(self) -> None: unlinked_params: list[XMLParam] = [] uncaptured_inputs: list[InputComponent] = [] - tool_state = load_tool_state(self.gxstep, additional_filters=['Flatten', 'DeNestClass']) + tool_state = load_tool_state(self.xmltool, self.gxstep, additional_filters=['Flatten', 'DeNestClass']) for pname, pvalue in tool_state.items(): param = self.xmltool.inputs.get(pname) if param: diff --git a/janis_core/ingestion/galaxy/internal_model/tool/tool.py b/janis_core/ingestion/galaxy/internal_model/tool/tool.py index d20c0ac6a..5208115e3 100644 --- a/janis_core/ingestion/galaxy/internal_model/tool/tool.py +++ b/janis_core/ingestion/galaxy/internal_model/tool/tool.py @@ -7,6 +7,7 @@ from uuid import uuid4 from janis_core.ingestion.galaxy import tags +from janis_core.ingestion.galaxy.gxtool.model import XMLTool from janis_core.ingestion.galaxy.gxtool.model import XMLConfigfile from janis_core.ingestion.galaxy.gxtool.model import XMLScript from janis_core.ingestion.galaxy.gxtool.model import XMLMetadata @@ -21,6 +22,7 @@ class ITool: a Tool() is the final representation of the software tool a galaxy XML wrapper is running. Includes metadata, inputs, outputs, a container to execute the tool, base command etc. """ + xmltool: XMLTool metadata: XMLMetadata configfiles: list[XMLConfigfile] scripts: list[XMLScript] diff --git a/janis_core/ingestion/main.py b/janis_core/ingestion/main.py index 83e8c54a7..b2a8c19ee 100644 --- a/janis_core/ingestion/main.py +++ b/janis_core/ingestion/main.py @@ -5,11 +5,11 @@ from janis_core.messages import configure_logging from .SupportedIngestion import SupportedIngestion -from .galaxy import parse_galaxy from .cwl import parse as parse_cwl from .wdl import WdlParser def ingest_galaxy(uri: str) -> Tool: + from .galaxy import parse_galaxy return parse_galaxy(uri) def ingest_cwl(path: str) -> Tool: diff --git a/janis_core/tests/data/galaxy/abricate/.shed.yml b/janis_core/tests/data/galaxy/abricate/.shed.yml deleted file mode 100644 index a4d6ccdec..000000000 --- a/janis_core/tests/data/galaxy/abricate/.shed.yml +++ /dev/null @@ -1,9 +0,0 @@ -categories: [Sequence Analysis] -description: Mass screening of contigs for antiobiotic resistance genes -long_description: | - Mass screening of contigs for antimicrobial resistance or virulence genes. It comes bundled with - multiple databases: NCBI, CARD, ARG-ANNOT, Resfinder, NCBI, EcOH, PlasmidFinder, Ecoli_VF and VFDB. -homepage_url: https://github.com/tseemann/abricate -name: abricate -owner: iuc -remote_repository_url: https://github.com/galaxyproject/tools-iuc/tree/master/tools/abricate/ diff --git a/janis_core/tests/data/galaxy/abricate/test-data/Acetobacter.fna b/janis_core/tests/data/galaxy/abricate/test-data/Acetobacter.fna deleted file mode 100644 index b439f68f5..000000000 --- a/janis_core/tests/data/galaxy/abricate/test-data/Acetobacter.fna +++ /dev/null @@ -1,2784 +0,0 @@ ->gi|529218539|ref|NC_021976.1| Acetobacter pasteurianus 386B plasmid Apa386Bp1, complete sequence -GAAGGAAGCTTGGATCAGCTTCGTGTTTCCCGTGTGCCCCATTTCATTATGCAGTTCCTGAAGAGATCAT -CGTGGTTAGGTTGAGTCTCCGATCCGCCATGAGGGAACGTGTAGAATGTAGCGAGTGTCATGAACCATGA -CGAACATCGGGAAGAGCGGTAACCGCCAAGGACTGATGAGGTGTGAAGCCAACAGGCTGGTACCATACAG -CACATTACGATGTAGACGCTCGTGATCCGGCGATGAGGATATCGACAAGGCGCTTTGCACTAGTTTCCCA -ACCGGGGCCAGCCGCATAGTTGGAAACACCAGCCAGAGCACGAAGTAGGTCGAGTGGTTCGATCTCTGTG -CTGATATCTCTACTGGCAACTGCGGCTGCTACAAGTTTCTCAATCGCGTTCTGTAGAACCGTGCCAGACT -GGGCATAAAGTGCGCTCGTTCCTCCCATCAGCCCATTGAGGGCGGGGGCAATTACCTGCTTGGCAGCAAT -ATAATCTACAAACAGTCGCATCCATGCACGCAGTGCCTCCACGGGCGGATGCTGTGTGGCAAGAACTGGT -GCCGCGTCGGCTAGGCGGTCCAGTTCAGCGCGATAGACCGCCTCGATCAGAGCATCGCGATTAGGAAAAT -GGCGGTAAAGTGTTCCAATTCCAACTGCCGCACGACGGGCAACTTCATCCAAAGGGATATCGATTTCCCC -CGCCGTGAACGCGGCTTTGGCCACTTTAAGCAGGTTTTCCCTGTTACGTTGTCCATCGCTGCGCGGTCGG -CGGCGCGGCTTTTTTTCGTCGGTCACCGGTTTTCCTCTTGTTAAACGGAGTATGTCTCCGCATATACAAG -ACGGAGCCATGCTCCATATAACACTCCGAATGCCGCTTCGGCAAAAAACGGATGATCCTTTCAAGGAGTT -CCACCCATGACACAGACTTTTGGCGCGCGTTCGACGACAGAAGATGTCCTTTCCAGCGTGTCCCTAAAGG -GCAAACGTGTTCTCGTAACTGGCGTTTCTGCTGGTCTGGGGGTTGAAACCGCGCGTGCCCTTGCGGCTCA -TGGTGCCCAGGTAGTGGGGGCCGCGCGTAACCTGACAAAAGCAGAACACGCCACCGGACAGGTCCGTGCA -GATGCTGAACGTGGGGGAGGGACGTTTGAACTGATCGCCCTAGACCTCGCGGATCTGACCAGTGTCCGCG -CCTGCGCTGACCAATTGAACGCAACCGGTTTGCCTTTCGATCTGGTTATTGCCAATGCGGGTGTGATGGC -TACACCATTTAGTCATACGAAGGACGGATTTGAGACGCAGTTCGGCACCAACCACCTAGGGCACTTTGTT -CTTGTCAACCAGATAGCGGGGCTGATGCGCCCCGGTGCCCGACTGGTCAATGTCTCCTCGGCCGGACATC -GCTTTGCAGATGTTGATCTGAAAGACCCGAATTTCGAGCATACACCATACGATCCATTCATCGCTTATGG -ACGTTCTAAAACAGCCAATATCCTTTTTGCCGTTGCGTTTGACGCACGACATCGTACACGTGGTGTGCGT -GCTACAGCAGTGCATCCGGGTGGGATCATGACCGAACTGCCGCGCTATATGCAGGCAGGTGCCATTGAGG -CAATGGTGGCGGGGATCAATGAACAGGCTGCTGCAGAAGGAAAGCCACCATTTCAGTTTAAGACCATTCC -ACAAGGTGCAGCCACATCGGTCTGGGCAGGCGTGGTGGCGGAAGCTGATGCGGTCGGTGGGCATTACAGC -GAAGACTGCCATGTAAGCCCGGTTATTCCTGATGATCAGCTTCTTAGCTTGGTCAGTGAAGGTGTGCGGG -CCTACGCGGTTGATCCTGTGCATGCCGAGGCGCTGTGGGCAAAAAGTGAGGAAATGGTTGGAGAAACATT -TTCCTGAAACATCCACATCCTTGTTTCTGGCATAACGGATAAGCCCGACATCCAGACAGACATTTTGCCG -ATATGTGTAGCTTGAGCGCAGGGGACGGAAAACGTTTTTCCTGCGCTTTTCGTGCAAGGATATTGATTGT -AGTGCGCCTTGTTGTTTTTGGTTTGCCTCTTCTTGTTGTGATCCTGAATTGGCTGTGGCCATTACCGCTG -CCTTTGGGCCTGAAGATGTTTGCAGCCGTTCTGATGATCATGGCCGCACTTTACCACTACTGGTCTCGGC -TTTCTTCGGGGTCCGTTTTCACCCCGGAATTCCCCCGGCCTGTTATCATCCTGTTTAATTGGGCGTTCGG -GGCCATCCTGTTTCTTACGCTGCTCCAGATTGCGCTGGATTTCGGTGCACTACTGGTTGTGCTGATGACG -TGGCAGCCAGTGCATATTCCAGTAGGTGCGCGGGGGGCTGCTGGAGGTATTGCTGGGGTGCTGGCCGCAA -TTGGCGTTGCCAATGCGCTACGTGTGCCACCGGTCAGGAACGTGGCAGTGACCATTCCCGGCCTGTCGCC -AGCGTTTGACGGGTATCGACTGGTCCAATTGACCGATCTGCATATTAGTCGGCTGTTTCCCGCCAACTGG -GCAAGGGCAGTTGTGGACCGTACCAATGCGATCGGTGCTGATATGATTGTCGTGACGGGTGATTTCATTG -ACGGCTCAGTAGCCATGCGCCGCGCGGACGTGGCTCCACTTGCACAATTACACGCGCCAGACGGTGTTTT -GGCTATCCCGGGCAATCATGAATATTACTTTGATTATACCGACTGGATGCGTCATCTGAAGGAATTGGGC -TTTCACATGCTACTGAACCGTCACACAGTCATCTCAAGGGGAGGGGCTGAGTTGGTCATTGCAGGTGTTA -CTGATCGGTCCGCACCTAGGCATGGACAGGCTGGCCCCAATCTGGCCGCGGCTCTCACAGATAGTCCCGA -AGGGGCCCCGATTGTGCTGCTTGATCACCAACCCGGTGATGCGCGTGCGGCGGCTACCCAAGGTATTGCT -CTTCAGTTGTCGGGACATACACATGGCGGGATGATCCTCGGTCTCGACCGTCTTGTTGCGCGCGGGAATA -ACGGATTTGTATCCGGGCGCTACGATGTGAATGGCATGACGCTTTACGTCAATAACGGTACCGGGCTGTG -GCCAGGCTTTGCGCTTCGGCTGGGCATACCGCCTGAGATCACCTGCTTTAGTTTGCGTGCGGGATAATAC -TGGGGTTTTATCAAGTGCTTCTTATAGCACATCTCGCCGCAACCGTGTTCCTTCTCATTTCTTGAGTTAT -AGCTTCCTGTAATCACGTGGGCTAACACCTGTTTCCCTGCGAAACACCTGTGCAAAATGGCTTGGGCTCT -TATAACCAATGGTCAGGGCGATCTCGATGATGGATTGGTCGCTCTGGCACAAAAGTTCCTTCGCATGTTC -AACACGTCGCCGCACAAACCAGCGTGACGGGCTTTGCCCCATGGTGTTGTGAAATGATCGGCTGAAATGA -AACCGGCCCATCCCGCACAAATCGGCCAGAACATCCAGATCAAATGGTTCGGCGAGATGTGCCTCCATAT -GATCAAGTGCCTTGCGAAGTTTCCAAGCTGGGAGCTGTGCAGGTTTGGGCGTGCGTATCACATGTATATT -TGCATAATTGCGCAAAAGGTGGATGGTCAGACTTTCCAAAAGTCCGTTCACAAATAAAGGACTGGCCAAC -AGAGGCTTCTGTAGCTCAGCCGTCAGACCTGTCAGAACGCCAGATATAAATGTATCCTGAACACCGGAAA -TATCATGCATACGGAGCCGCAATGGGTTAAGCCCCAAAGATCGGGCAGCGCGGTTCACCAAAGTCAGCCC -CAGATAGAGATGCAGGACTTCAAACGGATGTTCCGGACGGGCCTGCCAGCGCATGAAATAAGGCGCGTCG -GTTTGTGTCAGGAAGAATGATCCGGTTCTGGCCTCATTTTTCGTCCATTCACCTGTCAGTTCGCGTTCTT -CAATTCGCGCATTTCCAGAAATCACCCACACAAGCAAAGGCTCGGCGACGGCAGGAACCAGTACCTCATC -TTCCTGCTGCGCCCGGCGGAATATCTGTGCCTCAGCCTCTTTCCAGGCATCCCCCTGGCTTTGCCCGATT -TTCCGTCCCGGAATGCGATCCTCCAGGGCATAACTGGCAGCACGAAGGGAAGAATGCTGCGGGTGAAGCA -TCCGGTTTGCCTTTCAGGCATGTTGCGAGTTAACCCGATTATCTCATGGAAGCGCAAAATCACAATGGTT -TCAGCAAAAGGGCGAGAGAAGCCTTCGTCCGTAGTCTCTACATCTTTTCCCTGTCATTTTTAAACGGAAC -ATGTGGAGATTATCATGAGCATCAGAGGTAAGGTTGCCCTTGTTACAGGAGCCTCCAGTGGAATTGGTGC -TGCAACAGCACGCAAACTTGCGACAGAAGGCGTTGTCGTCGGTCTGGCGGCACGGCGCAAGGAGCGTCTG -GACGCATTAGCGGCGGAAATTACCGGAGCAGGGCGCAAAGCCGTCGCCCTTCCAGCTGACGTAACGGATC -CTGCATCATGCAAAGCCGCGGCTGATGCGCTTATCACTCAATTCGGCAGGATTGATGTGCTGATTAACAA -TGCGGGTCTGATGCCTTTGTCCAGCGTTGACAGCCTGAGGGTAGATGAATGGAAGCGCATGGTGGACGTG -AATATATCAGGAGTTCTCAATGCAACGGCAGCGGTACTCCCGCAGATGATCGCACAGCATTCGGGCCATA -TCTTCAACATGTCCTCAATCGCGGGCCGGAAAGTTTTTGCTGGTCTGGCCGTTTATTGTGCCACCAAGGC -CGCTGTCACGGCGTTTTCCGATGGGCTTCGGATGGAAATCGGGCCAAAGCACAATATCCGCGTGACCTGT -ATCCAGCCGGGCACGGTGAAGTCCGAACTGTACGAGCAGATTACAGATGCCTCCTACCGCAAGCAGATGG -ATGATCTGGCAGCATCCATGACCTATCTGGATGGTGAGGACATTGCTGACACGATCCTGTTTGCACTGAA -AGCCCCTTCTCGGATGGATGTTGCAGAACTGTTCGTTCTGCCCACTGAACAGGGGTGGTGATTACACAAA -CATGAGCTGCGGGAAGCTTTCTGTTGTAATCGACGAGAGACTTCCCCAATTCATAAGAACCGCGTCTTTA -TAGGAAGGATCTGTCATGCCCAGCCTGTTTGAGCCGATTAAACTGGGAAGCATTTACGCCAAAAACAGAA -TTCTTATGGCGCCGCTGACGCGCGGCAGAGCAACCCGTGAGCATGTTCCGACACCTATCATGGCCGAATA -TTATGCGCAGCGTGCCAGCGCAGGCCTGATTATTTCGGAAGCAACCGGCATCAGCCAGGAAGGTCTTGGA -TGGCCCTATGCGCCGGGCCTGTGGTCGCAAGACCAGGTGGAAGCCTGGAAGCCAGTTACAGCAGCAGTAC -ATGCAAAGAGCGGAAAGATTGTGGCCCAGCTTTGGCATATGGGGCGCATGGTGCATTCCAGTGTGACGGG -CCAGCAACCAGTTTCCTCATCGGCGACAAAAGCGCCTGAGCCATTGCATACTTACGAGGGCAAGCAGGCG -CCCGAAATTGCTCGTCCCCTTACCAAGGATGACATCGCCCGTATCCTTAACGATTACGAAAAAGCTGCAC -GTAATGCGCTTCAGGCTGGCTTTGATGGCGTTCAGATTCATGCAGCCAATGGTTATCTGATTGATGAATT -CCTGCGGGACGGCACCAATCATCGTTCCGATGAATATGGTGGGTCTCCTGAAAACCGGATACGCTTCTTG -CGTGAAGTTACGGAACGGGTAATCGCCACGATTGGCGCAGACAGAACGTCAGTAAGACTTTCTCCCAATG -GTGACACACAGGGTTGTATAGACAGTCACCCGGAGCAGATTTTTGTGCCCGCTGCAAAGCTTCTGAACGA -TCTCGATATTGCTTTTCTCGAACTGCGTGAACCCGGGCCTAATGGCACATTCGGCAAGACCGATCAGCCG -AAGCTGCATGGTCCGATCCGCAAAGTCTTTACGAAACCGCTGGTTCTGAATCAGGATTACACACGGGAGG -AAGCGATTGACGCAGTTGCAACCGGTGTGGCTGACGCCATTGCCTTCGGGCGGCCTTTCCTCGCCAATCC -CGATCTGGTGCATCGTCTGGAAGATAACCTTCCTCTGAACAAAGATGATATGCGCACTTGGTACACGCAG -GGGACAGAAGGCTATACAGATTATCCTCGCGCACCATAACATCCCATTATTTTTCGAAAGCTCTTTTTAT -TTAAAGGAAAATCTCACTCTCGTTATGAAAGAGTCTTGGAAGAACTCTACTTATAAAAACATTGGACTTA -GCCTAAATTTTGTAAGGAAAGCGCAATTATGGAGAAAGGGCAGGCGCTTTCCGTGAAAGAAAAGATAGCC -TACGGCTGTGGTGATGCTGCCTCCAACATGATGTGGGGCATGACGTCATCCTATCTGATGTATTATTACA -CAGATATCTACGGCCTGCCGCTGGTGGCTGTCTCGTGGATACTGCTCGTGGCCCGTGTTGTGGATGCGTT -CTGCGACCCGGCCATCGGCTATGTTGTTGACCGTATCGGCGGGGTGATCGTGCCACGTCTGATCCGCTCC -CTTGCCATTCCCTTCGGCCTGACGGGTTTTCTGTGCTTTCTGGCTCTACCGCTTTCGCCTACGGGGAAAG -TTGTGTGGGCTGGAGCAACCTATATCGTGTTTGGTGCCATCTATTCGTGCATCAATACGCCATATGGTGC -GCTGGCCGTCATGATGAGCCGCTCCGCTTCACAGCGCATTGGTCTCAATGCATTCCGCATGATGGGCTGT -CAGGCAGGATCACTACTTGTGGCGAAAGTGCGGCGCAGTACCGGTATGGCATGGCGGTCTATGTGCTGGC -TCTGTCGGTTCTGGGCAGTATCCTATGGCTGTGCGTGGCGCGCGGCTGCACCGTAAGACATCCGCCAGCA -TCCGTCCGGCAGAATCTTTTGGTCATACTGCGCCATCTTCTGGGAAACCGGCGATGGGTGCTGAGCAATC -TACTCGCGTTTTTCTATTTCGTGGGGCAGGCGGCTCTGTTCGGGTTTGCCCTGTATTATGCCCGCATTGT -TCTTGGCGGCACGGAGCAACTGGGCGCCAATATCATTACTTTTGTCACTGTTCTGCTGTTTGCGGGTGTG -CCCGCGTGTCTACCGCTTGCCAGACGTATGGGAACAGTTGGCGCCGGGATTATATGCCTGATCGTGCAGG -GCATAGCCTATCTGGCGATGGCTGTGGCGAGCGCATCCATAACAGGTTTTTTCCTGTCCATAGCTCTTCT -GGCGCTGGCTCAGGGCGTGATGTCTCCGCTGTATTATACCTTCTTGGCGGAAGCCGTGGATGATGGAGAT -TCGCGAACATCGACCGGATCTGCTGGTCTGGCATATTCGATCAACACATGGGTTACGAAGCTGGCAATGG -GTCTGACCGGCTTTGTTCTGGCGCAGTTCCTGTCACAAGGTCATTACGTTGAAGGAGGAACCACACAATC -ATCAGACCTATCATTCTGGATTACGGCCGGATTTGTCTGGGGGTCGTATGTCTACAAGTTTTCTGCCTTC -TGGCATGGCCGGACAAAAAATAAACATACTGCCGATGTTGTAATTGAAAGAGCAATGTATCTTGCTAGGT -TGTTAGAGCGTGTCGTCAGTTATCCGATCTTACTGGCTCTCATTCAAACCATATCATCGCATTCCCATCT -CTCCCGATCCCCAAAAACAGGGAGGAAAGACCAGAGGTCAAGTGGGAGTACAAGCGTTACTCAGCCATGT -ACCAACTGACGAAACGCTCTAGAGAATCTGCAAAATATCTATCATTACACATTGAGTATTTATTATTTAC -TCAGGTTATATTCTGTTTCATCTTTGACTGCATCAGTGTAAAGACAATAATTGATGATCCTAATGCGAAA -ATTGATGCCACAAGAAGTGCTACGGCAAAACCATAAGAGAAAGCGTGATGTGCATGCTGAATGGCGATTT -CTTGACTGGAACCCTCTAAACCGGAAATAGCACTGGGTAGATCACCGGCAACGATGGCATCGGCGAAGTC -TGATGGATGATGGCAACCAGTGCCACATCCAAAGGCGGCAACCCATTTCCTTACCATTGTTGCGAGTATG -CCGCTAAGCATCGCAAAACCAAGCAAAATCCCGGAAAATCGTGATGTCGTACTGATCCCTGACGCCATGC -CAGATCGTTCTTTTGGCACAACACTCATGATAGCTTTTTGTGTTTCCCCATTGAGAAGGCCACCCCCACT -TCCAATGACGACCATGCCAGCCATAACAATGATCCATGATCCGACATATGCTCCCCATGCTGTTATTCCA -TTGCCAATGGCGACGCATGACATACCACCGGCTAGAATACCGCTCGAAGAGATATGGCGTTCCAGAAGAC -GTCCAATATGTGGGAAAATCAACATTGCCAGGGCAAAAGGCAACATGGCGAAGCCGGCCTGAAGTGCTGA -GCGGCCTAAGCCGTTTTGGAGAAATAGCGGAAGCATCGAGGCCATAACCTGAGCGGATGCTGCATAAGCA -AACATCGCCCAGACAGCTCCCAGAAAACGGGGATTGGAGAATAGGCCAAGATCTAACATCGGACGTGATT -GGGCACGTTCAGATGCTATGAAAATGCCTAAGGAGATACTTCCTCCAATAAAACCATTCAGGGCGTTCCA -TGAGGTCCAGCCGCTTGCCTGACCGTTAATCATTCCCCACGTCAGACCGAACATGAATGCAGCAAAAAAT -ATAATCCCGGCCGGATCCAGTCTTCGGGCATCAGTATCACGTGATTCTTTGACCAGAATAAAGACTGCGC -CAGCAAGTAGGACGCAGATTGGAATATTGATATAAAACGCCCACCGCCAACCGAGCGCATAGGCAATAAT -ACCACCAATAATAGGAGCAAGAACCATGGTAAGGCCCATGATACTTCCCCAAATGGCCCATGCGCGGTTC -CGTTCATCTGGATTATGAAAAGTATGTCCGATGATCGCTAAAGCAGGTGCTAACAAAAACGCAGCACTTA -CGCCCTGTAAAGCACGGGCCAGATATAGTGCTGTGGCAGACGGGGCGGCTCCGCAAAACAACGAGGTAAG -GGCAAATGTCGTAATTCCAATCAGATAGATGCGACGGCGTTCATACCGATCTGCAATGGCTCCAGCGGGC -AACAGGAGAGATGCGAAGCACAGAACATATGTGCTGATAACCCATTCAATATCCGCGAAACTTGCACGAA -ACTCGCGAGCGATGGTTGGCAGGATGATTGCCACCACATTGGTATCAAGCACAGTCAAGGCACAGCCAGT -TGAAGCCGCCAGAAGGACAAATAACGGATTGGTTACGCGCGAGGATGTCATCGGTGTCCTCACCGCTTCA -CGATAGTATTAGAAATTCCGATAATCAGTTCATCATGATTGGCTTGAAAGAGTTGTGTCATGGCGATGTT -CCGTTGCAGAGCGCGTTAGTCTGTAACGCTACGTCATGCCTTGGTTCTCGTCATTGGTGGTTATTTTCGT -TATTATTAGGTTTTGCCTAATAATGCGGGGAGGGGGATAGAGGAATGGAACTGAGACATCTCCGCTATTT -TGTGGTCTTGGCGGAAGAACTTCATTTTACACGGGCGGCAGAACGGCTGAATATTTCCCCGCCCACTCTG -ACTGTGCAGATACAGGAAATTGAGCGCACATTATCAGCTCAACTTCTCAACCGAACAAAGCGTTCTGTGA -CGCTTACATCTGCGGGAGAGGTTTTCCTTTCTGAAGCACGGCGCGTGCTCAAACAATTTGCAACAGCCGA -GAACGCCGGTCGTCGTGCTGGGCGCGGTGAATTGGGTCGGATAGAGATTGGTTATGTTGCGTCAGCTGCG -TATACGGGGATACTGCAAGACCAGATGAACCAATTTACGCAGAGTTATCCAGACGTGCTTTTAAAAGTGC -GTGAATTCCCTATGGATAAACTGCCTCAACTGGTTGCGGACGGTGACGTAGATATCGGTTTTGTAAGGCT -GCCTATGGCGATGCCACAGCTATTGAGTCACCATGTGTTGATCCGCGATCACTTTTGCCTGGCACTTTCC -GTGATTCCTGGTGTCGAAGAAAAGTCGGAAGGCCCGGTTACGCCGCACGAAATTGCCAACGCATCTTTTA -TATTGCCCGAGCAGGCTTTCGGCACATTCCAGGTCGCAAGTCGAGGTGGATTTACGCCCCGTATTGTTTC -TACGCCAGGGAGTTTGCTGGCTGTGTTGACACAGGTCTCAATTGGCAATGGTATTTCGGTTATTCCCAGT -GCTTTACGAAGTGTTGTCAATTTGCCGGGCGTTGTTTTCCGCGATATTGCGGGAGAACCAATCGTTTCAG -AAATTGCCGCCATTTTTCGCTCAGATGAGGTTGCACCAGCCGTACGTCATCTGATTTCTCAGATTCAAAC -AACAATAACCTGAAGATTATCGGGATTTGGCATCCAGCCACGCACTGACTTTGTCGACGACATCATTTTC -AATGCCAAAATACCCATGAGGTGTTAAGGAGCCACAATTCTTTTTTGATTTTGTTATTCCACCAGAAACC -ATGAACACGCGCACTTCAGGGCTTGCTGTCATGGCGGAAGCAATCTGTTGGGCGGCTTGAGGCGGTGCGG -CATCGCATCGATCATCTTGGTTGGCCACAATAAGAACAGGTACTGTCACTTTTTGCGGGGTTGCACTAAA -AACAGTTTCTTTGCTGCCCCCCATGACTGATACAGATTCACTGAGCACGACACCTGCAATAGTTCCTGAG -GCTGCATGCGCGGCACCGTTTACGGCAGCGATTGCGCCTTGGCTGGTTCCAAAAAGAAACACAGGCACTG -TTGCCTCTTCATGTGCAAAAGCAATGATACTTTGGATCAGTCCTGCATAGGTCGCGGAACTGCGCTGTCC -TCTTAGATTAATATGATTGATTGTATCTGAAATAATGACTGCGTAACCCTGTCTGTTCCATAGCCTGCGT -GTTCGGACAACAAAGTTATGATCGTATCGGATTACGCCATTTTTCCCAAGGCCAATATCACCAGAACCGC -CAGGAAACATGATGATTGTTCCTCGGTGGGTTGCCGGGACGCAAAAGAGCACTCTTACGTAACCAGCTTC -TCTAAAAGGTATGCTGTAAACCTGTTCATTTATATCAGAATGTATGGTGCTGACAGCGTGTGACTGCTCA -GGACGAGCATAAGCTGTCGTGCAAGGTATTATTAAAAAAATAATTGATACTAAAAAGACATATAAATATT -CAAGCATTGCTCAGCCACAACGGAATAAGTTTCTTCATTTTTCTTACTTGTTCTAAAACAGATTTGCCAC -AAGGCAATAAAGTCTGAACTTGCGTGTTGTGCACAATGCTATGAGTTAAATCGTAGCATTGTGGAGACAA -TTGTTCTCACAGATAAGCGGCTGCGCTATGCTTTGCATGGATTGTATGGGATGTAGTGCAATACAATCTT -GTCGAATATATGGAAGCCGCCACGCATGTCAGCCTATCCTTATCTGGCTCACTGGAAAGAAGAAATTAGT -CAAAGCCCGAATGCCATTTACCTGACACTTGCTGATGCCTTGGCTCTTTCCATCCGGAGAGGTGATTTGC -GGGAAGGGGATAAACTTCCCCCGCAAAGAACGATTGCAGATTATCTTGGTACCAATCTGACAACTGTAAC -GCGTGCATTTACCGAGGCAAGGCGTCGTGGTCTCATTGATGCAACTGTAGGGCGGGGAACCTTTGTGCGC -GTCGGTGCCGGTGAAAGCCATTGGCGCCATACCGGACCTGCGGTGGTTGATCTTACCATGAATCTGCCGC -CTATTCCTCAGGATCCACCGCTCCAGCGTATTATTCAGAGTGATATCTCCGCTATCTTGAAGCAACAGGA -TTTGAATAGTCTCATGTCCTACAGGGTAACTGGGGGCACGATTGAGGAGCGTCAGCTTGGCGCAAAATGG -ATAGCACCTGTTATCGGTCAGCGGCGCATAGAAGAAGTTCTGGTTTCTCCCGGTGCGCAAAGCGCATTAG -CAGCAATCGTCAGCACGCATACCCAACCAGGAGACGTGATTGTAACGGACCGTATTGCCTACCCAGGGAT -CCGAACCATTGCAGCGCAATTTGATCTTATTCTGGTTGGTGTAGACAGTGATGCTGAAGGCATGATGCCA -GATCAGCTAGACCGAGTGTGTTCGCAACATCATCCACGACTACTCTACTGTATTCCTACCATTCATAATC -CCACTACAGCGACAATGTCACTGCAAAGGCGCAAGGATATTCTCGCAGTGGCGCAGCGTCATCATTTGCA -CATTGCCGAAGACGATCCTTACAGCCTGTTGATGGATGAGCCACTGCCAGCGTTGGCAGCTCTGGATCAT -AGTCGGGTCAGTTATATTGCTACGCTTGCCAAAACATTGAGCCCAGGCCTGCGCACAGCCTACGTCGCTT -TGCCGAATGCAGATATGACCCGGCGTGTGACAGCTGCCATTCGGGCGATCGCTCTGACAAATGCAGGTTT -ATTGAGCGCGCTTACTGCGCGGTGGATGCAAACGGGGCAAGCGGAAACAATTCTTCATGCCATCCGCAAA -GAACTTCGCCTGCGGCAATCCATTGCGCGAAAGGTTCTAGGGGAAGGACACTGCATGAATCCGAACGGTC -CACATGTCTGGCTGAAATTGCCTGACTGGTGGGGCAGTGCGGACTTTGTCGCTTATGCACGCCGACGTGG -TCTTGCTCTGGTCCCCAGCACAGTTTTTACAATCAGCGGTGAGCCACCACAGCGCGCGCGTATCGCGCTT -GGCAGCGCACCAGATGCAGCAAGTCTTGAAGAATCTTTAAATGGTGTGGTGTCCGTTCTTCAGCATAAGC -GTTCTCCCGGTTTCGCCGATATTGTATGACATGGTTTTGGGTTTGGGACTCAACGGACTCATTTGATTTC -GTTGAGTCTCGCCTGAACGTCCGAAAAACAAAAAAGTGCATCATTCACGAATGCGTGATTAAAAAATAAT -GATAAAACAGATAGTTACGCGCGTTATTTGGAATTGTATGTCTTGAATATTATTTTTGTATGTTTCTGTA -TGCCTTTTCAAGACAATAAACTGTTAAGATTGTTTTGTTTGTACTTATTTCTAAGTGCATACAATATTTT -GTCATTTGGTTATCCCGTGTCACGTTTACTTCGGCACAGCGGTCAGTTCCGGTTTCTGGCTGGAGATCGC -ATCACACGGGAGAGATATCATGCCAAAAGTCGAACATGCACCATATCAGGATGGTGATTGCTTCGTTAAT -TATGAAAACAAGGTTTTTGAAGACGTCAAAGCCAAACCAGGCGAAAAAGCTCTTATTACTTTTCATACCG -TCGCCAATGAAGGTTCGGTTGGGTTTGTAAATCTGCTTCAGGCCACACGTCTGATCCGCAAAGGCTTTGA -AACATCCGTTCTACTGTACGGACCAGGTGTTACTCTTGGCGTGCAGCGCGGTTTCCCACGTCTGGGTGAT -GAAGCCTTTCCAGGGCACATGAACTGCAACAAGCAGATTTCAAAAATTATGGAAGAGGGCGGCAAAGTCT -ATGCCTGCCGTTTCGCGCTTCAGGCGCTCTACGGATACGGTGAGCAGAACCTGATCCCAGGCATCACGCC -GATCAATCCGCAAGACGTGCTCGACATTATCCTCCTTGCGCGTCGTGACAACGCTTTCATCCTCAATACC -TGGACTCTCTAAAGGCCAAAGGAAGGACCGCAAGCCATGTCACGTATCGTTCGCGCTGCTGCCATCCAGA -TCAGTCCCGTCCTCGGCGATGACGGTTTGGGGACAGTCCGGAAAGTCTGTCAGGCCATCCGTGAAGCCGC -CGAAAAAGGTGTGAAGCTGGCGGTCTTTCCTGAAACCTTCGTGCCCTATTACCCCTATTTCTCGTTCATC -CAGCCAGCTTTCCGTTTCGGCGGCGAACATCTGGAACTTTATGAACGCGCCGTCATCATTCCTGGTCCGG -TGACGGACATGGTGGCCGAAACCGCACGTGATACCGGCATGGTCGTCGTGCTGGGCGTGAATGAGCGGGA -TTTTGGCACACTCTATAACACGCAGATCGTCTTCGACGCGACAGGTGAGATCCTTATCAAGCGTCGCAAG -ATCACCCCAACTTATCATGAGCGCATGGTCTGGGGGCAGGGTGACGGGTCAGGGCTCAAAGTGGTGGAAA -GTGCCGCTGGCCGCATCGGGGCATTGGCCTGCTGGGAGCATTACAATCCCTTGGCGCGCTACGCGCTGAT -GACCCAGCATGAAGAAATCCACTGCGCCCAGTTTCCCGGTTCACTGGTGGGGCAGATCTTCGCCGATCAG -ATGGAAGTCACCATCCGTCATCACGCTCTGGAATCCGGCTGTTTCGTTGTGAATGCCACGGGTTGGCTGA -CGGAAGATCAGATCAAGGATATTGCGCGAGACCCTGCACTTGAAGGGCCGCTGCGAGGAGGCTGCTTTAC -CGCCATCGTCTCTCCCGAAGGTAAGCTTCTGGCCCCGCCTTTGACGGAAGGTGAGGGGATGGTGATTGCC -GATCTTGATTTCGCTCTTATCACCAAGCGCAAACGGATGATGGACTCTGTAGGGCATTATGCACGGCCTG -AACTGCTTAGTCTGCTTCAGGATCGGCGGCCTGCCCGTACCGTTCATTACGTTGGTGAAGCTGATCCGGT -TTCCACATCTACAGATGAGGCTGCGTCATGACCATTCCGACGCTCGGTACACTTTCTGGTCGCAAGCTCG -TTACCGATCTCCAGTCCTTCGGACTGCAGATCGGCGAGCAGACCGGCGGCATTGCCCGCAAGGGAGGCGC -TGGTCCTTCGGATCACAAGACGATCACCATTGCGGGCCAGACCGTCATGGTTCCGGTCTATACGTCTGGC -GCGCAGCATTCACCGTTTCAGGCCAGCCCGCCAGACCAGCACGGGACCAGCATGCTGCTACGCGATGGGC -GGGCAGTAGGTACGATCCATTTCCCGGCTGCCCCGCGCTTTTACGGGCTGAGCACGGCAGACGGTATTCC -CTACTGGAAGATCGCGCTACTGCATGGCCGTGACACGCTGGCGACCACGGTGCACCAGACCTGCATCCGC -TATGCAGACCGGCGCACATCCTGCCAGTTTTGCGCCATTGGCCAATCGCTGGAGGCGGACCGGACGATCG -CTTACAAGACACCGGCGCAGCTTGCCGAAGTTGCCAAAGCTGCTGTGGAACTAGACGGCGTGCGCGACAT -GGTGCTGACGACCGGCACGCCCAATGTGGTTGATCGGGGTGCTGCCGTGCTGGCGGAGACAGCCCGTGCC -ATCAAGGCGGCGGTGGATCTGCCGCTTCAGGTTCAGTGCGAGCCGCCACGTGATCACGGCTGGTTCCAGC -GTTTGCGGGAAGCTGGAGCCGATAGTCTGGGTATGCATCTCGAAGCCGCCACGCAGGCAGTGCGTGAGAA -GATCATGCCGGGCAAGGCCACGGTCAGCGTCGATCGCTACATGGACGCTTTCGCCAGCGCCGTGCCGATC -TTCGGTCGTGGGCAGGTCAATACCTACATTCTGGCCGGTCTTGGCGACAGCCCCGAGGACATTCTGGCTC -TTGCCGAGCGTCTGATTGCGCTGGGGGTCTATCCCTTCGTGGTGCCGTTTGTGCCCATTTCCGGCTCCCC -GCTGGAAAATCATGTTCCGCCTTCAGCCGAGTTTATGAAATCCGTGCTGGCACCGCTTGGGCGGATGCTC -CGGGAAGCGAACATGAAATCCACCGATATCCGGGCCGGGTGTGGACGTTGTGGCGCCTGTTCCTCGCTTT -CGGCGTACGAACAATGAGCACGATCCTCGAAGGCATGGAAGACCGGCCGTTCATTCCGACGGAATATGTT -GTGCGCCTTGCCCGCACGCCATGGGAGCGTGCCGGTTATCATGCGCTTCGCCGTGAAGTGTTCTGCAGTG -AACAGCATGTTTTTGTAGAGGATGACCGCGACGCGATTGATGAGGTCGCCATTCCCATCATCGCGGCCTG -CTGCATGGCGGGGATGCCGGACCGGATCGTGGGAGCAGTGCGCATTCATGAAGCAGAGCTAGCTGTGTGG -CGCGGTTCCCGGTTGGCCGTGCATGCTGATCACCGCAAGCTGGGGCGGATCGGGGCGGAACTCATCCGCA -TGGCCGTCAGTACGGCACACGGCCTGGGGGCTACACGGTTTTTGGCCCAGGTGCAGGAACAGAATGTGCT -GTTTTTCCGTCGCCTGCACTGGAAAAGTCTCGGCGTCATTACGCTGCATGGCCTGCCGCATCACGACATG -GAGGCTGATCTGTCACGCTATCCGGCGCACGGTCTCGATCAGACCTGGCTGCTGCGTCCGCAACCCCGGA -TACGACAGGTGGCGTGATGGCACATGAACTCACCACACTCCTGCGCACGCTCCGTATGGGGCGCTCTCTT -GTGGCTAAGCAGGACATTGCAGAAGTTAGCGCGATTTTAGGGACAGGTGCCAAAGCTATCCGTCTTGGGG -ATGACTGCGCCGCGATCCCGGATGGCGATGGCTATCTCCTGCTGGCCAGTGAGGGCTTTCAGGACAGCTT -TGTCAGCTCAATGCCATGGTTTGCCGGGTATTGCGGCGTGATGGTCAATGTCAGCGACATCGCGGCGATG -GGCGGCCGTCCCGTGGCGGTGGTGGATGTTTTGTGGAGCGATACGTCCGAGGCGGCCGCGTCCATCCTGA -CGGGTCTCCATGACGGTGCGAACACCTACGGTGTGCCGGTTGTTGGTGGACACACCAACATGCGCAGCAC -CCATAATTCGCTCTCAGTGGCAATCCTTGGTCGTGCCCGTCATCTGCTAACCAGCTTCGACGCCCAACCG -GGCGAGGTGCTGATCGCAGCCATTGATCTGCGCGGTCGCTGGCACGATCCGCACCCGTTCTGGGATGCCA -GTTCCGGGCTGTGCGGCACAGAGGGAGCGGCCCGGTTGCGTGGGGACATCGAACTTCTGCCCACTATTGC -CGAAGATGGCCTGAGTCGTGCTGCCAAGGACATCAGCATGGCCGGTCTGCTGGGGACCGCTCTCATGCTG -GCCGAATGTTCAGGCATCGGCATGACCATTATGCTCGATGACATTCCACGGCCTGAGGATGCTCCGATGG -AGCGCTGGCTGTCTGCATTCCCAAGCTACGGATACCTGCTGACAGCGCGTCCCGAAGATGCCCACGCGAT -CATGGCCCGGTTTCGTGGACGTGGCATTACTGCTTCTGTCATCGGGCGGTGTGAGAGCACGCAGCGGCTG -GATGTCATATGGGCGGACGAGAAAGAAACCTTCTGGGATCTCGCCCGGTCCTCACTCATGGGATTTGCGC -CATGAGTCTGTCCATTGGCATTCTGACCCATTCGACCAATCCGCGTGGCGGCGTGGTGCACGGCATGGCG -CTAGCGGAAACTCTGTGTGACGCGGGCCACGACGCAACGCTGATCGCACCGGACGTGACAGGATCGGGTT -TCTTCCGCAAACCCCGTTGCGCGACCTGGTGCATCCCAGCCGCGTCTGTACCTGATCTGCCGACACTGGT -GGAGCGTCGTATTGGCGAAATCAGAGACGCATTGCGCGGACAGCATTTTGACGTGCTGCATGCGCAGGAT -CCGATCAGCGCCAATGCTTTGGCCGATCTGGTGCAGGAAGGGCGGATACCGGGCTTTGCCCGCACGGTCC -ACCATCTTGACCATTTCACGCACCCGGTCCTTGCCGCGCGGCAGGAACGGGGGATCAGGGCGGCGGCCGA -ACTGTTTACCGTCAGCACAATGTGGGAAGATGTCCTGCGCAACGGCCATGGCCGCGAAGCTCCGGTCGTG -GGCAACGGGGTTGATCCCGTGCGCTTTTCACCCGTAGCAACCGCGCACGATGCCGCGTTGCGAGCGCGGT -ATCATCTGCCTGCCGGTCAGCACCTGATCCTGTCCGTGGGCGGGATCGAGCAGCGCAAGAACACGCTGCA -CTTGCTCGACGCATTTCTGGCCCTTCGTTGCGAACAGCCTGATGTGCATCTGATTGTGGCAGGCGGGGCC -TCGCTGCTGGATCATTCTGCCTACCGCACCCGATTCATGGAGCGTCTGCGCGAAAGCGGTGCGGCCGATC -ATGTCACCATCACCGGGCCAGTTGCTGATGAAGACATGCCTTCATTCTACCGGCAGGCGGACGTGTTGGC -CTATCCATCCGTAACCGAGGGGTTCGGACTGTGCCCGCTGGAAGCCCTGGCTTGTGGAATCCCCGTGGTG -GTGCCAGCCGCGCTACCTTTCACGGAACATTTTTCGGTAACGGATGCGCTGTGGTGCCAACCGGCGCACC -CCGACACCTTGTTCATGGCGTTGCGCGACGCCCTGCGCGTCGAAAGCCGTGACCATTTCCGGCTCAGCGG -CCCCGCAACAGCCCGCCGTTTCGACTGGGACAGCGTCGCCAGTCGGCATCTCCCCGCATATCGGCGTCTT -GCGGCATTACAGCACGCTGACGTCCCGGCTTCAGGAGTTTTGTCACCATGCCCGAAATGACCTTTCGCGT -GCGTTGGCCCGATGGGAACGAGACCGACTGTTACTCCCCATCGCTGGTCATAAGGGACCACTTCACACCC -GGTCAGGATTATCCGGTCCGGGAGTTTCTTGAAAAGGCGGACACGGCTCTGACCCAGGCGAGCGAACGGG -TTCGTGCCCGTTACGGCTTTCCGTGCAGTCGCGCCCTTGGCCAGCTGCACGTCATTCAGCAGAGCAGTGC -GCCTTTCCTTAATCGACCCGATGCGCAGGTGCGCGTCCTGTCTTTCAGATACTGAGACGAAAAGAACGAC -CATGACACAGAACGAAAAAAGCATTCCTGTTATCATCGTGGGCGGCGGACAGGCTGGCCTCTCCCTGAGC -TGGTATCTCTGTCGCGAAAAAGTGGATCATATCGTTTTTGAATCCAAGACTGCCTGTCACTCATGGGACG -ATGAGCGCTGGGACAACTTCTGCCTGGTCACACCGAATTGGCAATGTGAACTCCCCGGGCACCCATACAA -GGGAAAAGATCCACACGGCTTCATGGTGAAGCAGGAAATCATTGAATACGTCAAAGGCTTTGTTAACTCG -TTCAATCCCCCGCTGCGTGAACACACAGCCGTCACCTCCATCACACGTCATGAGGCCGGTGGCTATCGTG -TGGTGGCGGGCGGTGAGACCTGGCACACAAAGCATGTGGTCATCGCCTCGGGAGCGTACCAGGATGCGGT -GATCCCCGGATATGCGAGTGCTATCGATCCATCAATCTTTCAGGTTCACTCGCAGGATTACCGCAATGCG -GCCCAGTTGCCTGAAGGGGCTGTCCTGGTCGTGGGCAGCGGTCAGTCCGGTGCACAGATCGTCGAGGACC -TGTTCCTTGAAAAACGCAAGGTCCATCTGTGTGTCGGCTCCGCCCCGCGTGTCTCACGCTTTTACCGTGG -CCGTGACGTTGTGGACTGGCTGGCGGATATGCACTTCTATGATCTGACGGTGGATAATCACCCCTTACGG -GAAGGGGCGCGGGATAAGACCAACCATTATGTCACCGGCCGCAATGGGGGGCATGACCTTGATCTGCGTC -TTTTTGCAAAAGAAGGGATAGGATTGCATGGTACGCTTGAGACAATCCGTGATGAGGTTGCGCATTTTCT -TCCAGATCTAAAGCAACATCTCGACGATGCGGACAAGACCAATGCAGACATTAAGAAATCCATTGATGCC -TATATTGCTCGCGAAAACATCAATGCACCGACGGAAGCGCCTTACGTACCTGTCTGGCAGCCTGATGGAA -GCAACACGCCGCTCGATCTGAAGGCCGCTGGAATCACATCGATCGTCTGGTGCATCGGCTTCCGTCCGAA -CTACCGCTGGATCGATGTGCCCGTCTTCAACGGTGCTAACAAGCCGGTCTGGCATCGGGGCGTGACGGAT -GCGCCGGGCTTTTATTTTCTTGGTCTGCCATGGCTGCATACATGGGGCTCCGGGCGGTTTTCCGGCATTT -CCCGTGATGCTGCGTGGCTGGCCAGCCAGATCACCGGCAAAGACGTGCCCATAGCCTGATCGGAGTATGC -GCCATGCTTCCATGGACAACTTATGAAGCGATGTATGATGCGGCACTGAACCAGCCAGAGGAATTCTGGC -TCAGTGCGGCGCAGCGTATCACATGGAAGCAGGAGCCTGCGATGGCCTGCCGGGAGCGAACAGACGGTTG -GCATGACTGGTTCCCTGACGGCACGCTCAATACCTGCCACAATGCCGTAGACCGGCATGTGGAGAATGGT -CGCGGTGAGCAGGTAGCGTTGATCTGGCATTCTTGCGCCACCAAGGAACAGCAGGTCGTGACCTATTGCG -AACTGCAGGACAGGGTGGCCGGATTTGCCGGCGGCCTACGCCTGCTCGGAGTGGAGAAAGGCGACCGCGT -TCTGATTGCCATGCCGACCATGATCGAGACAGCCATAGCTATGTTGGCATGTGCGCGGATAGGGGCTGTG -CATGTTGTGGTTTTTGCCGGTTATGCCGGACCGGAGTTGGCACGACGGATTGATGATGTGGCTCCGAAAG -TCATTATCATTGCCAGTTGCAGCTTTCAGGGACAGACGCCTATTCCGTCTGCCCCTGCTCTGAATGATGC -ACTTGCTTTGGCAGCGTACCGGCCACAGGCTTGCGTGATTGTGCAACGCGCAGCATGTCGGACATCATTC -ATGCCACTGCGGGATCATGATTTCCATACGCTGGAACAGTCCGCGCCTGTAGAGCCCGTCGTGCTACGCT -CCGAAGATCCACTCTATATTCTTCACACATCTGGCACGACGGGGCACGCAAAAGGCATTGTGCGTGATAA -TGGCGGCCATGCTGTGGTTCTCGCCTTGTCCATGGACGTGATCTACGGCTGCGAACCCGGTGATACCTTC -TTTACTACATCGGACCTTGGCTGGGTTGTTGGTCATTCCTATGGTGTTTATGCGCCGCTGATCAGCGGCT -GTACCAGCGTCATCGTCGAAGGCGGTGCATCTGCTTCCGCCATTCGCACGCTCTGTCATGAGCATGGAGT -GAAATGCCTGTTTACCACGCCCACTCAGATGCGTCTCATGCGACAGGAGAGCCGTCATCTGTCAGAGGTG -ATCCTGCCCGCTCTTGCCCGTGTTTTCGTAGCAGGAGAGTATGCGGATCCGACGTTGCTGGAGTGGGCTC -GATCCTACTTTCGCACACCTGTGGTCAATCACTGGTGGCAAACGGAAACGGGATGGAGCATCACCGCGCA -TTTCTTCGGTCTACCCGAGCGTGAGCCAGTTTCTCTCATGAATGACATCGGGCGACCTGCGCCGGGATTT -CGTCCGGCCATCGTGTCCTCCATACCCGGTGAGCAGTGCGGGGAGATCGTTCTTTCGCTGCCGTTACCGC -CTGGGTGTCTCGCTGGAATATGGAAGAATGGGGCTATCCGTGTTCCGTCCGCTTATCTTGATGAAACGCG -CAGATATTACCGCACCTTCGATGAAGGCATGATTCAGGCCAACCGCGCAGTTCATATGCTCGGACGTTCC -GATGATGTCATCAAGGTTGCAGGAAGGCGTATTTCCGGCGTGCAGATCGAAAAGATCATCGCTACCCATC -CTGCCGTTCACGCGTGTGCCGTGGTCGCAATTCCAGATGAACTGAGAGGGCAGCGACCTATCGCTTATGT -CGTCCTTGATTCCGAGGCGGAATGTATGCCTTCTTCCGAGGAAATCGTTGCGCGGATCAACGAAGTCCTC -GGGCGTTGGGTTGGTCTGAAAGAAGTCCGCTTCGTCGGGCGATTGCCAACCACCGTATCCGGAAAAATTA -CGCGAAAACGCTTGCTGGTGTCCTAATGGTACCAACATGGCCTTCTGTGTAAGGGGCGACCAGATCTTAG -ATGGCCTGACCACCGGAGACTTCAATCCGTTGTGCATTCACCCAGCGATTGTCCTCGGAGAGCAGCGATG -CGATCATGGGGCCGATATCGTCTGGCAGTCCTGGACGTCCAAGCGCGGTTACTTCCGCGATGTGGTGAGC -AATCTCGGGGTTATCGCGTACCATACCTCCTGAGAAATCTGTCTGAATTGCACCTGGCGCTACTGTGTTA -ACAGCAATGCGGCGCGGTCCGAGTTCCTTGGCCATGTAATGCGTCATGACTTCCACGGCGCCTTTCATAG -CAGCGTACGCAATCCAGCCAGGATAGGCAAAGCGTGTCAGTCCAGATGAGATGTTCACGATCCGGCCACC -GTTCGCGATCAGCGGCAAAAGTGTCTGCGTCAGGAAAAATGGACCCTTGGCATGTATGCGGTAGGCAGCA -TCGAAATCTTCTTCTGTCACCTCGCCGAATAGCCCGCTATGGGACGTACCTGCCATGTTGACCAGATAAT -TGAAACGTTCGCTTCCCCATTCGCGCAGCACGCGCCGGACTTCGTCGGCAAAGGCAGGAAAGGCGTGCGT -ATCGCCAGTATCGAGTTGCAGAGCGACTGCACGGGCTCCGCTGTGCTGGACACTTTTGACCACTTCATCA -GCTGCGGATTTGTTGGTGTGATAGGTAAAGAGAGATGAAACGCCGCGTTGGGCGAGAGCTTCAACGGTTG -CGCGGCCCAGTCCACGGCTTCCGCCCGTGACAATCGCAATGGTGTGTGCTTCTGGCATGGATATCTCCAT -CTGTTGAGAAACCTATCTTGGCCATAACGTTGTCTGTTCGATAAGAGCACTCTTTCCGTCAGCATTGTTT -TGCTCCATGGAACAATCCTATGGACAGGTTTGCGACACTTAATCTCTTTTTGCGCATTGTTGATCGTGGC -AGTTTCACTGCTGCCGCTGCGGACTGCGGTATTTCGCGTCCGGTAGCGACTGCAGCGATCAAAACATTGG -AACAAAGACTTGGCACGCGGTTGCTACATCGCTCAACACGTCATGTTCGACCTACCGAGGAAGGCGCTAC -CTACTATCGCCGGTGTGTGGCGATCCTGGCGGATCTTGAGGATGCAGATCGTGGCGCGAGTGGTGCTGTA -GCAGGTCTGTTGCGGGCCCATGTGATTGGGCGTCTGGCGCGGATGATCCTGCTACCAGCGCTTCCAGATT -TTATGACAAGGCATCCGGCATTGACCGTTCATCTCGGTGAGGGCGAACGGTTTGTTGATCTGGTGCGCGA -AGGGGTGGACTGCGTTGTACGGGCTGGAAGCCTGCCGGACAGCGACATGATCGTCCGGCCTCTCGGCGTG -ATGGAGGAGGTGACGCTCGCCAGCCCAACCTATCTGGCGCGGCACGGAATGCCTGCCTCTCCTGACGATC -TCGAGGGGCATCAGATGATCGGCTTCGTATCCTCACGTACCGGCCAGCCCCTGCCATTGGAGTTTACGCG -CGGAGAGGAGGTGATTGAGAGATCACTCCCTACACGTTTGTTGGTCGGGGGCGTGGATACCTATGCTGAA -GCAGCCAGGCTCGGTTTTGGCATCGTGCAGGTTCCACGCTATGGCTTTGCCGATGACCTTGCAAATGGCA -CCTTGGTCGAGGTTCTCCCGGATTTCCCTCCAATGCCAACGCCGGTTTCAGTGCTTTATCCGAGTAACAG -GCAGCTTTCTCCACGTGTGCGGGTGTTCGTGGACTGGCTGGTGGAGATTATTGGTCCGAGACTTTGTCAA -AATGCCGATGAGCGTTCCTACGCGGGTGCAAAGGCGAGGTAGAGCGAGATTGTTGCAATCGAGAATACGG -TGGAGGCAAGGACCACCCGTCCGGTAAGGGCTGCCTCACGATCATAGAATTCCGCCAGCATGAACGAGCC -CGTTCCCGTTGGAAGTGCGGCAAGAAGCACGGCAATGTGCGTCATCGCAGGGGGCAGATGGAGCACTGGT -GCTGCAATAATCCATGTCACCAGAGGCTGGGCGATCAGCTTCAGGCCAACAAGAATGGCCGCTGTCGACG -GGCGCGCGGATGCGGCACCGGCCGAATTTCCGGCGAGGAACAGACCGAGGGCGATCAGGGCGCAGGGCGA -TGCGGCTCCGCCGAGAAGCTTCAGAAAAGCATGCACGGGTCCTGGCAGGTGGCCACCAGATACCATGACC -AGGCCACCAAGTGCTGGTGCCACCAGTAAAGGATTTTTCACTAAAGAAAAAAGGGTTTTTGCGACGATAT -CACGCGGCCGTGCTTCGGTTTGCAGTCCAGCCTCGATTAAAATGATTGCTATGACAAACAGCACACAGAC -CGTTACGATCGTGGCAATGAGAGTGGGGGCCATGCCGATATTGCCAACAAGAGACAGGACGAGCGGGAAA -CCGACAAACCCTGTATTGGCGTAACTTGCGTTCAGTCCGTCAATGGCGGCATCGGCAAGGTGATGTCCTG -TTGAAACCCGCCAGCACAGCGTCCCGGCAAACACGATAAAACAGCCAAACGTGAACGCCGCAATAAATCC -CGGTTCCCACAGATCGGTCATTTTTGCATTTGCCACGATGTCGAACAGCACTGCAGGCAGCGCAAGATAG -ACCACGAGCCGATTGACTTCGCGCGTGGCATTGGGACCCAGCGCGCCCGATTTGCGTGCGATCCATCCGG -TGAGAATGAGGGCAAAGATAGGCAGGACGATCAGTAGATTGTTCAGAATCAAGGACCTCTGGAACTTACC -AAAGGCGTGACGGTAACGGAGGCTATCGATATAATCCAATACTCATATGGTTTACGATCAATGCTTTCAG -GGTATCAGATGGACACGCGGCATATGCGGTTTTTCATGGCTTTGGCCGAGACGCTTCATTTCGGGCGGGC -CGCCGAGCGAATGAACATGAGCCAACCGCCGTTCAGTCGTCAGATTGCGATGATTGAGCGTACGTTGGGC -GTGAAGCTGTTTGAGCGAAACTCGCGCAGCGTGGCTCTCACCCCAGCCGGGAAACACTTCATGGAAGACT -GTCGAAATGTGCTGGGGCAGTTTGAAGACGCCTGTCGAGATGTCAGGCTTGTTGCCAGCGGCATGAAAGG -CGAATTGCGCTTTGGATTCATGATGCATGCTGCTCACAGTGTCGTGCCGGAACTTGTGCAGCTTTATGCA -AAGGCAAGGCCTGATGTTCGCCTTGTCCTTGATGAACGCACGCCGACAGAGATCGATGAGATGCTGGTGG -CTGGAACACTGGATGCGGCTGTAACATTTGATTGCGGATATGCGCCACACCTGCAGACAGTGCTGTTGGC -CAGAGAACGGTTACGCATTATCATGAGGGAAGACCATCCTCTTGCCACGGTCGGGCAGATCTATCCTGAG -AAACTCCGCGAGGAGAAAGTCATCGCGGCACCCGCCGCGACAGCGCCGGCTCTGCGATCTGCAATTAACA -GCTATTTTTCGGCCAAGGGAATTGTCCTGCATGTCGTGCTTGAACCGCGGTTGCAGCACACGATTATCCA -GCTTGTTGCAAAAGGACTGGGCGTAGCCCTTATCCCTGCATCACTGTGTACCGGAATGGGGACAGGGCTG -ATATCACGGACTTTGACAGACGCTCCCCAGCTTGATGTTGTTCTTCGTGCGCCGATGACTACAAAAAACC -CCGCAGTCTCGGCATTCATGGAAATCGGGAAATCGATACAGCGGACTTCACTCTAAACTCACAAGATCTG -TGAAATAGAGCCTGTTTCCAATTTCTTTGCTTTCCATACTCCTTCGTCAAGAGTGGAATAATTTTATGAT -GTCTTCTGACGCCAGACCCAGACCAAGCAGGATAATGATCGCTCCAGATATATAGCTTGTTACAATGGAC -GCTCTGGGGCGGCTGCTTAATGTTGTCCGTGCCCCAAATCCGACCATCAGATAGATGGACACGCAGTTTA -TTGTATGAACGCAGCCCAATATCGCGATCTGTAAAAAGATCGGCAATGATGACCTCGGATTTGTAAATTG -GGGTAGAAGGGCAAGAAAAAACAGAAGAGCCTTGGGGTTCAGGCCGCTGATGGCAAATCCTTTGGTAATC -CAGCGCCGAGCGCTTGTTTCGCGTTCATGTCCTTCTTTCGGTAGGGGAGGATGGCGCAAAAGGGAAATGC -CCAGTTTTATCAGGTAGGCTGCACCTGCAAACGTCAGAAGGGTGACCGCGAGCGGCATGCCAGCGACAAG -CGCACCGATACCACCTGCGACCGTTCCGGTAATGGCAATATATCCGAGGAACAGACCGAACACAGCAGGC -ACGACTGCGGCATGATCACGTATTCCGGCGGAAATGACATACGCCCAGTCAGCACCAGGGGTTGCGGCAA -GGAGGATGGAAAGCGTCCAGAAAGCAAGAAGCGTATGCAAATTCATCAAACACGCATCGCTTTAGAAGAA -AATTTACAAAGTTCCACGGCGTTTTCATGTGCTTCAATTATGTTCCTGATCGCCATCCATATGATGCGAG -AGAAGGTAGGATAGCGTAGATCTGCAGACATGAGGTTGCGTTTATGCCAACTGACCCGTTGATATTTGGC -ATTTGATTGCGTCGATATGATTATTTCTGATATAATATGTTAATGAAACTGGATGCGATTGATCGGCGTA -TTCTTCGTGTTCTTCAAGAAGATGGCCGCTGCCCCAACAATGAACTTGCGAGGCGCGTTGGGCTCTCTCC -ATCCCCGTGCCTGCGCCGGGTGCGGATGCTGGAAGAAAGTGGTGTTATCGAAGGGTATGTCGCCGTTGTG -AATCCCGTAAAAGCCGGGTTCGGCGTGACAGCGTTTGTCAGGATATGGCTGACGGGAGAAGACGAGAGAC -AGTCCGAGCATTTCATCAAGGAAATCGGAAAACTTCCGCAGGTGACGGAAGCATACGTCCTTGCAGGAGA -CTGTGATTTCCTGTTGCGCGTCGTTGCGGAAGACCTTCCAGGATTACGACGTTTTCAGAGTGAACAGCTT -GCACGCATCAAAGGTGTGCGGAGCATGAAAACGGACATCCCGCTCGTGAAGGTCAAGAACGCAAACTTTA -CGTAGTTTCTAAAATAACTGCGTTTTGATCCATTGATTGCGTTCCGTGCATACATTGTCACCATATGCAG -TAAAGAATAGGCGTATTCACCGCATATCATGCGGTTATTGCTTTGTTGTTTGCGGCGATTAGCCGTCCAG -ATACGCACACCATTCACCTTGATATCCCGCCAAGTAAAGCCCGACAATAAATTGGGAAATTTCCTGATTG -TGGTCATGTTTTTACCTGCTTTGGTCCAGTGGACACACGGCAAAAAAGCAGAATATCAGGAAACCATTGT -TTCCGTGATGAAGACCTGTTGATTATCTCCCTGCCACGACGGACAACGGCGTCACTGAGTAGATCAGTTG -GGACAATCATCAACACGGGCTCTATCGTGGCTCTTTGGGAAAAAGGACCGCAGACGCTCCATTTGTTCGT -TCGTCAGCCAAAACAGGTCGCTCATCTCCAGTCACTTCACTGAGCCTGAATCAGATTTCCGCAATCAAAT -CATTAGGTCCTGATCCCAGGCATGACCATCTTGACAAAGTAAGGGAATTTCCTTACTTATGAAGAAAGTT -AAAACTGGAGTTAAGCCATGGTCGACTTGCTGAAAGCAGAAAGCACTATCACCGCTAAGGGTCAGACGAC -TATTCCCAAGAGCGTCCGGAAGGCTTTAGGTGTAGACTATGGTGGGCGTATTGCGTTCGTCGTGGACGAT -CAGCGCCGTGTTCATGTCGAGAAGGCCACAGAAGAGACAAGCGACCCAGTCGTTGAGCGCTTCCTCGAAT -TTCTGGAGAAGGACATGCTCGACCATTCCCGTCCACGCCTTGTCAACCTCCCTGCCAGTTTGCCTGATCG -CGTAGCCGCGCTCGTCGCGAATATGGACGTTGATCTCGATGATGAGATTGAAGGTGATGTGGCGCTCTGA -CTATGCTGACGATTAATGGCTGGACCATCCTCGCGCATCCGCTCTTTCTCGATCAGTTGGAAAAGCTCAT -CGGCGCTGTTGAGGAGTTGAAGGAAAAAAAGCCCCACGAATATCAAAAGAAACCGAGCACGAAGTTATTG -GCCGCCTTGAACAAGCTGCTCTTCCAGTCAATCCCTGCCGATCCGACAGCAGCCGTCTATAGACAAGGCG -GAACGCTTGGTGAAGCGCACAAGCATTGGTTTAGGGCAAAGTTCGGGAATGGTCGCTTTCGCCTGTTCTT -CCGCTATAGTTCGGCCGAAAAAATCATCATCTTCGCTTGGGTGAACGATGAGACGAAATTGCGCACCTAT -GGTTCAAGGACTGACGCCTACAAAGTTTTTAAGGCGATGCTACAGAAGGGCAACCCGCCAGACGATTGGG -ACGCTCTTTGTGCGGCCGCGTCCGATCAGGCTACAGTTGACCGGCTGGGTAAGTCCTCTCCTCCGAATTC -GTGACGAATGCAGTTTAACGTTACAGCATTGCATATTGTCCTTTGGATCGGACTGTGGGCTGCGCCTGAA -CCACGCTAAGGATGCGTTTTCGCCATTAGGCTTAAATCCAATAGCGCAATGGCGGTTGGGGACACACGAA -GCCTCGACCGTAAATCACGTTGGCAGCATGCTAACTAGTTTTGACGGTTAGGCATCAAGCGCGATGATAG -CAGGACTATATCGCGCTGATTACTTCGGATATCCATCAGTTTAATCACGCCTGAATGTCATCAGGAAATG -GCAAAGCCGACCATTTACTTTACTTAAACTTACTTGACTTCAAACTCCGCCCTCTTCCCTATACCTACCT -GCGATAATATCAAATCCCGCTAAACCATTATGAAGATGTGCTAAACGAACAGGAATAACGGGATATGTGG -GCATTGATGATGCGGTATTAATCTGTCTGTTTTTGTTTGGAAATCTCGCCAAGGTGCTCAAGGATTGCCA -GCAAAATGCGCGGTGCACCACGATAGCCTTCGTCTCCTTCCGTTTCCTTAATGTTAACCATGGCATCAAA -CAGGCGATAAGCTGGGCTATCCCTATTTGAGATAACTTCTTCAATCGCATCTAGGTCTAATTCGAGAGTT -TTTTGTCCAGCGTTCCGTAGGGCAGTATATTTATCAAGCGCATCCACGAAATAAGGATCTGATGACCAAT -GTCTCGACATTCTGATGTGGGCCTTATTGTTCAAGTTTGAAACCATAGTACATATGCTCTTTTATATCAG -CCGAAATAATCTGTTCGTAAAGATGAGAAAGAACTTTCGCGCAGACAGAAATTCATTGCAAACTGACATT -CTAGTGGTCGCTATTTCTATAACAGAATAATTATTTCGCATGTAAAATCGAGATGGTGTTTTAATATGTA -GAAAATATTTTCGACAGGTGCGTGCGCAGAAGAATACACTTGCGTTGCCTTCTGAACGTCATCCAGCGCC -AACCGTATCAAGTAGGGCCAAACTTCGATGCGTCATAATCAGCATGCGTTGCAGATTTGAAGGACGTGTT -GCAGGTAAACACGCGTGTATCTTCCGAAGCATCTCAAGACGCGTAAAGGAATGCTGGATTTCGACTTTGT -CGAGGGGTAGGGAATTCGTGTTAATTCTGTTATCAGCCCCTCATGAGACGTCTAGCCTTGATATTTCTCT -GCGTCTTTTACGCAGGCCCCCTTCATGCAGAAGAAGATAACTGCAACGATTTTGGGGCGAATAGCCATCT -ACCAAAGATTGTAAATTCCAAGCTAAGCGCAGGCGCTAACTTACTGTGCAACAAAGGCTATGCGGCCTTA -GCTTCCTCTATTTCGCATGGCCCTCTCTGGTCTGCCGAACATCTCTGGTCGGATGATGTAGAGGCAGCGG -AAAGGCTAAAAAGGGCAGGCCATTTCTATGCAGACACTCGGTTTGCGGGCAGCGCGGATTTACAAGACTA -TTATAACTCCATTTATGACCGTGGACATATGGCACCGAGTGGTGACCAACCTACAGAAGCATCCCAGGCA -GAGACTTACGCACTCTCAAATGTGGTGCCTCAGACTGCTAGTCTGAATGAAGGCATCTGGTCGCGTGTGG -AGCGACGTGTGCGTGATATGGCAGATGATGAAGGAGAGCTGTATGTAGTGACAGGCCCTGCTTTTCATTT -GCGCCCTATTCAGACCATGGGGCATGACCGCGTGTACGTGCCGTCCTCAACGTGGAAAGCAGTCTATTCT -CCCAGCAAGAACAAAGCATCGGCATATGTGTGTAAAAACGCGCAACAGCATCCACACTGCACGCAGGTTA -CAGTCGCAACACTCATACGGAATGTCGGGATTGACCCGTTTCCAGCTGTGTCAGCGCAGATTAAGGCGCA -AGCATGGAAGTTGCCCGCACCTTAATCGGATTTAAAGCTGCTGGATTTCGTTATGGAATCAACCGTTTCA -ATCAATGATATTCCAGATATCTCGTGTTTTATCTATCGTCTTTTTAACTACATTGAAAAACTGAATTCTA -ACAAAAACCGAATGCATATTACTTTTAGTAAACGATTTACTATTTATAATTTTTTTCTTATGTTGATACA -TTTATCTTGTTATGAAGAAGATATTCCAAAGGATATGAAAAATTATGGAACATAATAAACACGAAGATAA -TTATTTGCATCATTTGACATGTGATATTGTCGTTGCTTATTTGTCTGGAAATACCATACCATTTTCCGAT -GTAACTTTACTGATACAACAGATTTATCGTGCTCTTGCGGGCGTTGAAATGGACGTAAGTGATGATAAAG -AACTAGTTCCTGCTGTGCCCATTAAGAAATCGGTGTTTCCTGATTATATTATCTGTTTAGAAGATGGGAA -AAAGGTGAAAATGCTCAAACGCCATCTGATGTCAGCGTTTGGCCTCACCCCTTCAGCTTATCGTCAAAAA -TGGGGATTGCCGGCTAATTATCCGATGGTCGCGCCAGCTTATTCAGAACAACGATCACGTTTGGCGCGAT -CCTTAGGATTGGGGAATAACAAGTCACAAGAGATTACCGAGCTACAGCACGAAAAATCAGAAGAAGATGC -CATTGTGACACGTTTACCTGAGGTCAAAAGGAGACGTAAAAAGAAACTCGGTTGATTAAGGATTTTTTTC -CTGCCCCATGACGATCTCGCGTTGCTTCGTCAACTGGCAATAGATCTTCATGGGGTTGGTGACTGGTCGG -TTTCCATTGTCTTGACTTAAAAAAGTGACGGTTGAATCTGGCCGGGCTGACACAGTGATAGGTCTGCTGG -AAAGATATAAAGGGTAAATCCCGTAGACCAATCAAATTCTTATTTTACGATTATATTTCCATAAGTTGAT -GGGATAAACTGCGGGAATCGAACCCACTGAAGTAAATCGCACAATTCATAACATATTGTTTTTAAACAAT -ATTCTGAACGCTTGTGTAACAGTTTGTGTAAGACTTTGTGTGAAATCGGTCAAGGTTTTTAAGGGAGGCG -AATGCTGTGACACAAAAGCTGACTTTTGGGTATGGATGATGCCAGAAGATTTGTTTTCTGTTTGTAAACA -ACGGGGTAAACAGTTTCTACATGACAAGCTCATTCGTAGCTATGTCTGCATCAACATTAATGGGCAAATC -ATAACAGTTTAGAATTCGGTAGATATGAGTTTTTGATATCCCTGTTTGTCTCATAATTTCCGCGACACCC -AAGCCGTTGGTTTTGAGCTGTTTGACGTGCTCATGGTCATAAGATTGCTTTCTACCTTTGTAGACACCTT -CCGCTTTGGCTTTGGCGATACCTTCAAGCTGGCGTTCCTTTCTCAGTTCAGTCTCAAATTGAGCAAACAC -ACCAAGCAGATTCAGGAACATTTTCCCTACAGCGTTGGATGTATCTATGGGTTGCTGAGTGCAAATCAAT -AATACCTTTTTATCTTCCAGATATCTGACAATATCCTGCAAATCGCTGATTGATCTGGCGAGCCTGTCTA -TTCGGGTGACAACAAGAGAATCACCTTCACGTAAAAACTGGAGTAAATTATCCAGTTCCTTTCTGCCTTC -TCGGCTGGTTCCTGAAACCTTTTCACCCCGGATAATTTCACATCCTGCTTTTTGGAGAGCTGTTTCCTGT -ATGGTCAGGTCTTGGTCTGATGTGCTTACTCGTGCATATCCGTATTTCATACCTTTCGTTCCTTATGGGT -TATAGAGATGGCGGGACTAACCGCTCCCTAATTCCATTATAGACCCAAAAGGCACATAATGCCGGGTAGG -GGGCTATGTCCCTTTAGGGACTACCTAAAAAGAACGCAGAAAATAATTTTTGTGATTCACATATTCTTAT -TACGATTATTGTTTTTGACATAAATGGTTCAAGTATGAGATTATTGAAAAATCGACTGTGAATTCTTTGT -TCTGAACGTCGGTATATGTGGTGTGTTTCTCAAAGTGGATATCGGTTGAGACGCAGGCAGTTTGTATGAG -CCAAAACGGCGAGACGATTGCCTCTCGACAGTTGGACGCCAAGAGGTTCAAGATATCAGACGGAGCAAAC -CCGTCTGGAAGGTTGTGTCGCTCGTCGGGGCTGATATGAGGCGAGTGACAGCAACAATCATTTCACTAAG -GCTATAATTAGTGTCTGAGAATGCTTTAAGTCGTTTAGCGACACTGTCCAATTTAGAATGTATATGGAAA -TCAGTAGCTCAAAAAGCTGGAGCGAAGACTACTCCAGGTGTTGATGGCATTACTGTTCCTTTATTTGACG -CTCAAAAAAATAATTATCTTAAAGATATCAGAGCAAACCTCTTGCATGGTTATACTTTTAGTAAATTACG -AGGTGTTGCTGTTCCCAAAACAGATGTTACAAAATATCGTTTGATTTGTGTCCCAACATTAGCAGATAGA -ATTGTTCAACGTGCATTATTGGTAGAAATGGAGAAGAAGGGAAAACAGCTTGGAGTTTTGAATGATGTAA -GTCACGGCTTTATAGCTGGTGGAGCAAGAACTGTTAGTTCAGCACAGAAATCTGTTTGTAGAATTCGGTC -TGAAAAGCCTTGGATATTAAAAGCAGATATTTCGAAATTTTTTGATAGGATAGACAGAGACAGTTTGTTT -GATACGTTTTCTAAGAAGTTTCGGTTTTCTACGCTACATCCTTTGATTAAAGGAGCTATTCAATCAGAGG -TGGAAGTTAAGGGTGAAAGAGTAGAGCTGGCGATTAGGCAAAATGGTATCATAAAAGGTAAAGGATTAAG -GCAGGGTATGCCAATTTCGCCATTTATGAGCAATTTTGCATTAAGTGGATTCGATAAAATTATTTCATCA -AAATATTCTATTGTAAGATATGCGGATGATTTGATTGTTCTTGGAAAAAATGAGGATGAATGCAAAAGAG -CGAAGGAAGATATAGAGTGTGAATTGTATAAAATCGGCCAAACACTAAACGAAGACAAAACGTATATAAG -AGCACCTAATGAGAGTGTTGAGTTTCTCGGTCTTGAATTGCGTCTTTGTGAGGATGGTTTATATAGGTTA -CTGGTTTCGAAAGATCAGTTAAAAGCTATTAAGCATAACTTTCGTGAGTATCACGATGTTCATATTATAG -TTTCAAAAGGATTGAATTCTTACACGTTATTTAAAAAAATAAAGCAGATGCAGAGCGGTTATTTATCAGC -GTATGCATGTGCTTCGAATTTTAAGCGTTTAGAGGAAAGTCTTGAGCAATGTACTAAAAATTGTGCCGAA -AAAGTATATGGCTCTATTTTTGGAAAAGACAAGATAAAGGAACTTACAACCGAACATCGTAAGTTCCTGA -TGTTGCCTTAATTATCCAAGATATCTAACATCGGTAGGCTCTTCACAATCTTAATTGTTTCCAGACTGAT -AGTAATCACACGCAGGAACAGCTCCAGCGGATAGCGTGGATTATCCATGGTCTCGATAGCCCAGTCATTG -GCATCATTGACGATACCGCTGGCCTTGTCGGTCTTCACGCACTGACGTTCGACAACCCAGTCCAGAGCAG -ATTTACCATTTACCACGTAGTCATAGGCTTCCAGAGGAATGGCTGTGACGGTGATGCGGTCATTATAATG -TAGGATGCTTTTGTCTTTACCCTTGCCGTATTTCATCTTTTCAACCCGGAAGGCTTCAGGTGTCAGCGGT -CCTTTGCCGTAATCGACCTTGACGCCTTCATAGATGGGCTGGCTGTCGAAATTGACATGCATCTCACCAA -GTCTGCGACCAGCATCAGAGAACGCTTTGAAAGCCTTATATGTCTTCACGCGAGGGATGCGGGGCAGTTC -CTTCCGCAGAGTGTCGGCATAGCGTTCCCGATACTCAGGGGAGTGTAGAATGCCGTAGACATAATAGAAT -AGGTCTTGCTTGCTGATGGTCTTACCAGGATAGGCGTCTTGGAAATGTTTCAGCCCTTCATCGGTGATGG -CTTCGCGTCGCACAAGTCGTGGTTGAGAAGGTGTCTGTTCAAATAGACTGCCTTGAGAGGTAGTCATTGA -TTGTCCTCCGTTTCGTAAAGAAACATCGGAAAACATTGACCGCCGTGCAAAAGATGAAGGTCTGGATTGG -AGGACATCATCATTGTCGAGAATGGTCGGTCCTCCCCGGAACCGGATATGCAAATTACAAGATTTTTCTC -TTGTACTTCTGTTATCTGGCGAGTATAATTGTCCTGTCCTGTCCTGTCCTGTCCTGTCCTGTCCTGTCCT -GTCCTGTCCTGTCCTGTCCTGTCCTGTCCTGTCCTGTCCTGTCCTGTCCTGTCCTGTTCTTCGTATGAAT -ATTCAGAAAAGCATTGCGTCCCCCCATCGCTTTGTAAGTCTGAGGCGTATTTACTCATCAGTGCGAATTG -ACTGTTATCAGGCTGGCGTTGTTTGATCATAATCATTCTATTATCTGCTTTTGCATCAGGAAATAGTCGA -GGCATCTGGTAGACACGATTGTTCAGGTCACGATTAAAGTACAAATACTGTCTGAAAAAAGGACGATAAA -TAGCGGTGGTGATGTCGTCCGTTTCATAAGTTATCTTTTTGTTGCGGATGACATCCTGTTTTAAATTGAC -CGACCAGCTAATTCTAGTCGGATCTGACGTAACAAAACCGTCCAGTTGTTTTTCACGCTCTTTGCGGTTT -AATGATGGAAAAGCATCATTAAATTGCTGACGTTCTCTTTCATAGGTAGAAATCATAGTTTTGATATTAG -TTTCTAGAGTGGAGCGGGAGGAATTGAAGCACCAAGCATCCCGTGCGGTTTCAACCCCACGGGAAAACAG -GTCGAACAGAACTAGGGCCTGTTAGATCTTGAATTTCTTCCCATATTGTAGGGATGGAAGAAGGAGACAG -AACTGGCACCTTTACGGACGAGACATGGGCGATCTGGGAACCTCTGATTGAGGAGGTTCGCCCGAGGGGC -AAGACGCCGCCACATGATCTGCGGCGGACGATAGCAGCGATTTTCTGGCGTCATGAGAATGGCGCGAAAT -GGCGGAGTATCCCCGCTGAACTGGGTCCGTGGTGGCGGGCTGCGCAGCTTTTCATCCGCTGGGCGAAGCT -CGGCGTATGGGAGCGGCTGCTCGCACTGGTTCAGGAACGACAGGGAGTGGCATTCGGAATGACTTTTCTG -GATGGCACGAACATCAGGGCTCACCACAAAGCGGCGGGAGCCCAAAAAAAGGGGCCTCTTTCGAAGAGCG -AGACCATCGTGAAGCACTTGGCCGCTCTCGCGGCGGCTATGGCACAAAAGTCTGCGTGATCGCTGATGGA -CATGGAAAAGCCTTCGGTTTTGCGCTGGCCCCTGGACAGGCTCATGAACTGCCTCTGGCACCAGCCATGC -TCGACAGCCTTCCCGCCACTCCCCTGTGGGTAGTGGCGGACAAGGGCTACGCGTCGAACGCCCTTCGTGA -ACGGATATGGGACATGGGAGCACGGCCAGCCATTCCCGCGAAACGACGCGATGGCCCGGTCGCCTGCCCC -AAATGGGCCTATCGGTGTCGGCATCTCGTTGAGAACCTCTGGGCTCGCCTCAAGGAGTGGCGCGCTGTCG -CAACCAGATATGAAAAAACAGCAACGTCGTTCCTCGCGGTCATCCACATCGCTGCCGCAGCAGACTGGAT -CAAGCTCTAACAGGCCCTAGCCCGGCATCCTTCTCTTTACTTCCAATAGCGATAAATTTCCCGAAGCTGT -CATCCCTCTGTCTGAGCCAGTCCCCATGTTCGTCGGGCGTGACAGTCTGCCACAGTCCAGCGTCCGTGAG -CCCATTGACGCTGGCCAGTTCCTGAATGCGTTTCAGCTTGTGCTCACGGGAGGCTTTGTTGCGCAAATAC -GTGGAAGGGATTCCCTGTTTGAATCCTGTTTGTTAGCTGGTTTTCATGAGCAAGCCGCCCCCCACGCGCT -ACCGCACGACGAACTGGTCCTCCTACAACGCAGCTCTGAAGAAGCGTGGCTCTCTGACGGTGTGGTTTGA -CCCTTCCATGAATTGGGAGGGTCTTCCGACGGGACGCCGTGGCCGTCAGCCGGGTTACAGCGATGCTGCG -ATCCAGACCTGTCTGACGCTGAAGGTTCTGTTCGGTTTTGCGCTGCGACAGACGACGGGTTTTGTCGAAA -GTCTCCTGCGTCTGGCCGGACTTGCGTGGTCCGTGCCGGATTTCAGCACGCTGAGCCGCCGGCAGAAATC -CCTGACGGTCGATATTCCCTATCGCGCTTCGGACGGTCCGCTCCATCTTCTGATCGACAGCAGCGGAATC -AAGGTCGAGGGAGAAGGTGAATGGCACAGACGTAAGCACGGCGGTTCGAAACGTCGTATCTGGCGTAAAC -TTCATATCGGGGTCGACGAAGAATCTCTGGAAATCAGGGCTGTTGAAATCACGAAAAACGATGTCGGTGA -TGCTCCGGTTCTGCCGGTGCTTCTGGGGCAGATCCCCGATGAGGAGGACGTCGCCAGTGTCACGGCTGAT -GGCGCCTATGACACGAGGAGATCCCATGAAGCCATTGCCGAACGTGGTGCTCAGGCTGTCATACCTCCTC -GAAAAAACGCAAAGCCATGGAGCCCCACATCAGCGGGAGCCATTGCCCGAAACGAAACTCTGCGGGCCTG -CAGGCATCTCGGACGGGCTATCTGGAGACGGTGGAGCGGTTATCATCGACGAAGCCGCGTCGAGACGAAG -ATGCACTGCATCAAACTGCTGGGCCAGCGTCTGACAGCACGCGATTTCGACCGCCAGATCACCGAAGTTC -ACATCCGTGTTGCTATCCTGAACCGCTTCACAGCGCTCGGAACCCCAATCACCCAGACACTCCCGTAACG -GAAAATTCTATAACGGCATCGTCACGCCGATAGACTGAATTGTGCAACAGAGCCATCTGTATGACAAACC -CGAAGCCGTTGGTCCAGCACTGGAAAAACTGGTACCGTTTTTCAGGGCGCACCTTGGAGATAGCGTTTCG -GCATAAGAATTATGGTTTGTCCGTTCTCGCCATCTACCACATTGAGAGCGGACAGGCCGTTCGCCCCCCT -AAACTGTCTGTCGGCTCAGCAGAAACAGAGCAGACAGGCGGTAGTCGCCTTCATCTCGGTCATTAGAACG -ATCGCAAAGCGGACGTTGCGTCCTGATCTATTTATTAATCCTAGAGTAGATTGTTACGCAGTTTTTGTGC -TCTACATTTGGGCCACCCCTCAGATGGTTATCGTCACTTCCGTCCTTTCAGGCTGCTATTTGATTCCATT -AGAAAATATCGCCTGAAATCAACTTTCGATGCATGATGCATCCTCTACGCGTAAGGCGTGCGGCCGCACT -GCCCCACCGCGTGGAAAATCCGGCAGCCACATATCCCATCAATATCAATGATGCGCGAATGCTGCCTCGG -TCCGTTTCAGGCATGCCGTACTCGCCACTTATCGGAAGGGAGAGAATAAAGCGGCACTGCTCTTTAGTGA -GATTTTTTGCCCCCAGATAGGATCTGGCGGCCCCGCTTTGAACGGGATAATTCACGATGTTATTCAAGAG -CCGTCTCCTCTAGTCCTATGCACGACAATACATGCTCATTGCTGCTTTCTGCGCGCCGATCAGATTCTGA -ACCGCAATATAGGCTTGCGCATAATGCGTCCCGGATGTGTTTTCTTGCATGTCGGGCAACGCCATTAGCA -TCTCCATGGCCGCATTCAGTAGCGGCCTGAAATGTGCTTCCAGATGGTTGCCGCGTTCCCGATGTACTGT -TGGTAAATCGGCAACCATCATCTGGAACAGCTCACACCCATTCTGCTGCAATTGTTCCTCTTCGGGTAAA -AAGTCATTCTGCCCCAGGAAAGCAAGAACGCAGTTGCGGCCGGGTGCGAGGAGAATAATTTTTTCAAGCA -AAGGATGGAGAACAAGGGAAGGCGGTCGGATAAATGGCGATCTCATGGCACTGCCTTCCCCGCGCCATCC -GGCACCTAACCACATCGTCTGAGCAGATCACGAAGTTGATTGATAACCGGAAAGACTTCCTGATTGTGAT -CTCCACCAAGATCTTGCCAAGCCGCCTGTTCCAGCTCGACAATCTCACGATCTTCATAGAAGACACGCTC -CGTGAACGCGACCAGGATTGGCCAGGCTAGATCAAGTAAAAAAGGCACTTGCAATCGTTTGATCGATAAC -AGCCCGAAAACACGATTGGTCAACTCGTCACGGTCCTGCGGGACGTACGAGATCCACAATTCCATCACGG -GCTCCTCTACCCCCTGCGTTTCAATACGCAGGGTCTGATAGGGATATTGTGTCCTGATGGTCATGACGTC -ACGATAGGCAAAATCCCGGCCGTCGCGACGTCGCTGACCGTAGATCAGAGCTTCACTCAAAGGCTGTTTG -CCGCTAGTTCGTGCAAAGGTGTAGCGAGCCTCAACAAAATCATCACCGTGATCCATTCCCAGAAATCGAG -GCTTCATTTTGCCGACAAGCCGACTGTGCAGAACCTGGTGATTCATATCCATCAGGTTTTCATGCATGAA -ACTGTAATGACAGTTCACGACCTGACCAAAGCGGCGCGTGCGGTAACGCCTGTCCCTTACTCTTGGAAAG -TCAGGAAGCGGAGTCTTGTCCGCAAGAGACTGCTCCCCCATGAAAACAAAAATGAGCCCATCTTTTTCCC -GGCAGGCCCAGATTTTGAGACGCAGGCATTGCGATTCGGCAGAGACATCGGATGAAACACACTGGCCGTC -CCGGTTGAATCTCAGGCCGTGAGCGATGCAGCTTATTGCGTCACGATGCACGTCGCCTTTGCCCAAAAGA -ACCTGCCGATGAGGGCATAAGCCGTCCAACGCGTAAGGCTTGCCGCTCTTTGGACGAACAACAACAATAT -GACGTCCGGCAAACCGGACATCGATTGCTTTCTCCCGTCTCAATTCACGGGACCATGCAACGGGATACCA -GAAGTCAGGATTGGTTCTGATACGCCTTAAATCGGTGTGTTCTGCGCACACAGGATGTTCTGAAGTTTGA -TGAAATTCGTTTTCCATTGCCTCGGCATTTCATCCGGCTCAGACTAGGGCGAAAGGACGTAACGCTCTAG -TATGGAGTGCCGTCCCGTCTCTCACATTTTGTCTGAGCAATCGTAACCGTTATCATTACCGGACAAGACG -CGTGATTGCCCGGTTCCTGGACCAGAAGTGCTTAACGGCCAGGGGCTTTCAGCTGCACGAACATGTGTCG -CGCATATCGGTCAGATCTGACGAGGCAAGGGACTGTGGTCTGAAAAAATCCGGTTAACCGATTCAGCAGG -AATGGTGGAAGCACGAGGCAGACTGACATAGACTTCTCTCCTCCCTTCGGTCATCCCGCCCGACGGTTGG -TGGCTGAACGATGGCAGGTCTCCTGGCTCACGGATCATGGCCGACTGGTTCCAACCTTCCCGCCCCCTAT -GGGAACAGTGGTCCACGTTCAGGGTGAACGAACCAGCAGCATACCGCCTACAGTTGCGGGAGCAGCCACC -GACTATGCCTCTGGACGGTCATCTGCCCAGTGCGTGACGGTATTCCCTATTAACCCGCTCGCGCGGGACC -ATCGAAGCGTTTGCCCTTGCACCATGCCGCCAGATGCACATAGCGCGCAAGACGGAACATAATGGAACGG -CGGAAGGCAGATATCAGTTTTTCGCATGTAGAACGTGCGTCTGATTGATCTGCTGCCCTGAAAACAAACA -ATACACTGATCAGCCTTTGATAATGTTTTTCCTGAGGTAAGGCTGCCACATTAGTATATGAACAATATTG -ATGTATTTATGAAATCAAATCATTTTTGCTCACAGGTTCGTTCAGGCATAAAGCTGCCATGATGATGACC -ACAACCGCCTGAAAAACTCAGAGACTAAAACTGGAGACGCTTTGCATCATCAGTGTTCGCATTCTGGTTT -GAGGTGGCAAAAGGGACGTAGGACAACAATGATTCAGGACTCGACATTCAGTATCCATCGGCTCCGCTTC -GATGAGAACTATCACCCTTCAGACAGAACGCGCCTTACGACCAATTTTGCCAATCTGGCGAGAGGGGAAA -GCCGTCAGGAAAATCTGCGCAACGTCCTGCGTATGATCGACAATCGGTTCAATGATCTGGCGCACTGGGA -TAATGCCAACAGAGACCGCTACACTCTTGAACTTGAAATCGTATCTGTCGAGATGGATCTCGCCTTTGCA -GGCAAAAGCGGAAGCTTTCCTTTGATCGAAGTCCTCTACACAACAATTGTTGATAAGAACGCCAACAAAC -GGATAGAGGGTCTCGCTGGGAACAGTTTTTCCTCTTACGTGCGGGATTACGACTTCAGCGTGTTGTTACC -GGCTTACAATAAAGAAAAAGCCGAATTCAGTGTCCCCCATAATTATGGAGACCTGCATGGCAATCTCTTT -AAAAGCGTCATGAACTCGACAGCTTACAAGCAGAATTTCAAAAAACTGCCTGTCATCTGCCTCAGTGTCT -CAACCAATCGCACCTATCATCGGACGGAAAATCAGCATCCTGTTCTCGGTGTTGAATATGAGCAGCGTGA -ATTTTCTCTGACAGACCAGTATTTTAAAAAAATGGGAATGCAGGTTCGTTATTTTATGCCGCGTAATAGT -GCTGCGCCATTGGCTTTCTATTTTTTTGGCGATCTGCTTTCTGATTACTCTCCCCTTGAGCTTATCAGCA -CCATCAGCGTGATGGAGTCTTTTCAGAAGGTCTACCGTCCTGAAATTTACAATGCCAATTCTGCTGCGGC -TGACTGTTATCAGCCGAGCCTGAAATATCAGGATTATTCCAACACCCGCATTGTCTACGACCGTGAGGAG -CGTACACAGCTCGCGATTTCACAAGGGAAGTATACAGACGAGCATTTCATCAAGCCATATCACGATATTC -TCGAAAAATGGTCTGCCGGTTACACCGCTTGAGCTATCAGAAACACAAGGTCATCTCTCATGAAAACACT -GCTCCCCACCTCAACGGCTGGTAGTCTGCCCAAACCCTCGTGGCTCGCACAGCCTGAAACACTCTGGTCC -CCTTGGAAATTGCAGGGGGAAGAACTCGTCGAAGGCAAACAGGATGCGCTTCGCCTGACGCTGAACGATC -AGGATCGTGCTGGCATTGATATCGTCAGTGATGGCGAGCAGACGCGTCAGCATTTCGTCACGACCTTTAT -TGAGCATCTCAGTGGTGTCGATTTCGAGAACCGTCAGACGGTTAAAATTCGCAACCGCTACGATGCGAGC -GTACCATCCGTTGTGGGCGCCGTAGCGCGCGAGAAACCGGTTTTTGTCCAGGATGCGAAGTTTTTGCGCA -CTCTGACAAAGAAGCCCATCAAATGGGCGCTTCCTGGTCCCATGACCATTATCGACACGCTTTATGACGG -CCATTACAAAAGCCGCGAAAAACTGGCGTGGGAATTTGCCAAAATCCTCAATCAGGAAGCGAGGGAACTG -GAAGCCGCTGGCGTCGATATCATCCAGTTCGATGAACCTGCCTTCAATGTTTTCTTTGATGAGGTGAATG -ACTGGGGCATCGCCACTTTGGAGCGGGCTATTGAAGGGCTGAAATGCGAAACTGCCGTCCATATCTGCTA -TGGTTATGGTATCAAAGCCAATATCGACTGGAAAAATGCTCTTGGGGAAGAGTGGCGTCAGTATGAAGAG -ATTTTCCCCCAATTGCAGAAATCCAACATAGACTTGGTCTCTCTGGAATGTCAGAATTCCCGTGTTCCGA -TGGATCTGATCGAACTCATTCGCGGGAAAAAGGTGATGGTCGGCGCCATTGATGTGGCCATCAGAACCAT -TGAGACACCAGAAAAAGTCGCTGATATCCTGCGAAAGGCGCTTCAGTTTGTCGATGCCGACAAGCTTTAT -CCCTGCACCAACTGCGGGATGGCTCCTTTGTCGCGCGACGTGGCGCGGGGCAAGCTCAATGCCCTGGGTG -CGGGTGCGGAAATCGTTCGCAGAGAACTTTCGGCCTGACAAGCTGCCGTAGCTGGACACCAAAAGAGGGA -GAAACGCAGAGGCGACCATGTCGATGCGGTCTTCCCAGAGCAAGCAGGAGACGCTTCGTGTCAGTGGCAA -GAAAACACAGTCTCCGGACCTTTCCCTGCATGTTTCATGCAGGAGGTCGAATTTGTATTCAGATTCAGTG -CCCAAGAGGTCACGATTATTGGTCGGGATGATGGAAAGCTGTCCCAAAAGAATCATGTAAACCATCATGA -TAAAATTTTATGAGAGTGAACTAAAATGATATGTTTTTATGATTATATAAATCTTGTGCCTTTGCGAGGT -AGACCATGGGTGTTCTGGAGCGCAGTCATCTGACAATTATTCGGGAAGTCGCGCGAGAAGGCTCTTTGAC -GGCAGCGGGGATGCGTCTGAACCTAACCCAGCCGGCGCTCAGTCACGCCATCCGCAAGATTGAACAGCAG -CTTGGCGTAAAGATATGGCGGCGGGAGGGACGCTCCCTTGTGCTCAATCAGGCAGGCGAATGGCTACTTG -CTTTGGCGAACCGCCTGCTTCCTCAATTTGAGCTGGCGGAAAGCCGCCTTGAAGAGTTCGCAAATGGCGG -GCGTGGCACACTCCGCATCGGCATGGAGTGTCATCCCTGCTATCAGTGGCTTCTGAAAGTCGTCTCCCCG -TATCTGGAGCGATGGCCCAAAGTTGACGTGGATGTACGGCAGAAGTTCCAGTTTGGCGGTATTGGCGCGT -TGTTCAGTAATGAGATTGACATCGTGGTCACCCCTGATCCGCTTTACAAACCCGGCCTGAAATTCACACC -GGTCTTCGATTATGAACTCGTTCTGGCCGTTGGCCCTGAACATCCTCTTCGGAATGAGAAGTTCGTCTTG -CCGGAACAGCTTGCTGGCGAAACATTGATCACCTATCCTGTTCCGTCCGAGCGGCTGGATATCTATACGC -AGTTTCTGCAGCCTTCTGGTATTGGCCCACGACAGCAGAAACAGATTGAAACCACGGATATCATGCTGGT -GATGGTGGCGCATGGAAGGGGCGTTGCAGCACTTCCACGCTGGCTTGTTGAAGAGTATGCCCCATGCTTT -GACCTTTACCCAGTGAAGCTTGGTAAAAAGGGCATTGCAAAGCAGATATTTCTTGGTTGTCGCGAAACAG -ATGAAGAGGTCCGATATCTGCAGGACTTTATCGAATTCGCTGCTTTACCTTGACTTTGGTAACTTAAGTA -TTTTTCCAAAATTCACGCTTGGAATCTCCTCGTGTTTTTCTTTTTCAATGTCCGATTTCTCGGTTTTACT -TTCGACACCGGACATTCCGCTTTCCTGAAGGGTTTCGGGCGCCGCGAGGCGTACGAAAGTCTGGGAAGAC -CGAACCCGCGACACCGGGACTCAGTTATGGGGAATTTGCAACTGGCGCTCCCCCGGAGGAGAGCCTGAGC -CAGAGCATACAGGTGCGTTTGTGGAACTGGAACGGGTTTTTGTGACCGGATCTGCATGACGCGATGACAG -AACTGGCAGTGTAGGCAGCGATTTTCCCGGGTTTTCCAGTGATGCGTACAGGAGCCCCGGTTTGCCGGGG -CGGAGCCACTCCGGCATCGGGATCGGTCATGCTGTGGTCTCTGCGGGTTGTCATGGTGATCCCCCGGTCG -GATCACTTGCCCGTGGCGGCCCTCGGGGCTGGCACCATCGGGGAAGGATCTGGATGACGGCCATCGGACC -ACCACAGCATGGACACGGCGGTGGCATGGCCGGTTCGGCTTCCGGGACTTCTGGCGCTGGTGTGGATACG -ACATTCAGCAGTTCCCGCACCCGGGCGAGGCTGGCCTTGCGACTGGAACTGGCCAGCAGGCCATAATGGC -GGATGCGATGAAATCCCCGTGGCAGGACATGCAGCATGAAGCGGCGGATGAACTCATCCGTGGCGAGTGT -CATGACCTGCTGCTGGTGGGCCGTGTCTCGCCGGTAGTCCTTGTAGCGGAACGTCACGCCGTTTTCGTTG -AACGCCAGGAGGCGGCGGTTTGATATGGCGACACGGTGGGTATAGCGCGACAGATAGGCCAGCACTGCTT -TAGGACCGGCAAAAGGCGGTTTGGCGTAGACGACCCAGCGCGTGCTGCGCACAGGGGCCAGATACCGCAT -AAAGGCACGGCGGTCTGCCAGAGGGGCAAGACGGCCCCGAAAGGCCAGCCGGTCGGCATCGAAAAGTGCG -CGCAGTGAATTGCCCCGGGTTTTGTGGAGACAGAACGACCCGAGAGGTAAGAAGGATTCATGAGCAACAA -ATCGAAGCGTTTTCCGCCTGAATTTCGTGAACGTGCAGCCCGCATGGTTCTGGAGGAAGAGAAGAACCAT -CCATCACGCTGGTCCGCAGTGATGATGATCGCTCCAAAGCTGGATATTCACCCTGACACGCTGTCAAAAT -GGACCCGTCTGCACGAACGGGCCAATGCGCCTGCTGTGAGTGATCTTCCTGATCGGGAGAAGATCAGGAA -ACTGGAGCGAGAGAACCGCGAATTGCGGCAGGCCAATGAAATCCTGCGCAAGGCGTCAGCATATTTTGCC -CAGGCGGAACTCGACCGCATCTTCAAGCCATGACACGCTTCATTGAGGAGCATCGGCAGACATATGGTGT -CGGGTCAATCTGCAGGGTTCTGTCGGTTGCACCATCTGCCTATTATGCTTATCGGGCGAGACAGAAAAAT -CCCTGTGTGCGCAGCCAGAAAGACAAAGAGCTGTGCGATGACATCTGTAGAGTGTGGAATGATAATTTCT -GCGTCTATGGAGCGCGCAAGGTCTGGCATCAGCTCAAACGCGAGGGCAGGACTATCGCCCGTTGCACGGT -AGAGCGGCTGATGCGCCAGATGGGACTGAAAGGCGTCATGCGTGGCAAGGGGGTCAGAACCACACGGCCC -GATCCGGCACGGCCCTGTCCACAGGATCTGGTGCAGCGACAGTTTCATGCACCAGCCCCCAGCTGCACCA -GATCCTGTGGAATAGACTCTGGGTTTCGGATTTCACGTATGTTTCCACCTGGCAGGGCTTTGTTTATGTC -GCCTTTATCATTGATGTATTCGCACGGGTTATTGTGGGTTGGCGTGTCTCCTCAACGGCTCATACCGACT -TCGTGCTGGATGCCCTCGAGCAGGCTCTGTGCCAGAGGCGGCCTGAGGGAAAAGTGACCCACCATTCCGA -CCGCGGCTGTCAATATGTGTCCATTCGCTACACGCAAAGACTGGCTGAAGCGGGCCTTGTTGCTTCTGTC -GGAAGTGTTGGGGATTCCTATGATAACGCCCTGGCGGAGACCATCAACGGACTTTATAAAACCGAACTCA -TCTATCGGCAGGGACCATGGAAAAACAGGGAAGCTGTTGAACTGGCAACACTTAAATGGGTCGACTGGTT -CAATAATCGGCGGCTCCTGTCCTCCATTGAAAACATCCCGCCAGCAGAAGCCGAAGCACGCTTTTATGCA -CAACAGAAATCACATGCTTTAGCCGCTTAAATCAGATAAAAAACGTCTCCACAAAACCCGGGGCAATTCA -GTATTGCAGCACAGACAGGTATCGAGAAGTTGTCCGAATGCTTTTTGATTGGCGTGATTTTCATAGATGC -CGGGAATCCGTAGCTTCGGCTTCCACAGGAACGCATGATCCGCACCCTTGAAAATCTGACGCTGCTCCGC -AATCGAATGAACAACCGTTTCCAGCGAAGAGCCACGATAGGCGACCCCGAATGTGTCCTCGGCAATCTCG -GCAACGACTTGCTGCAGACCGCGGCGGATAGAGCGGAAATTCTTGAGGCGTTCATCCCACAAAAACCAAC -TCTGATAAGTCCCTGCCGGATCGTCCCGCCAGCGGAAAATGAGGTCTCGAATAAGGTCGGTCATCAGTCC -AAAAACTAAAATTACATTCGCTTCTGACTCTGATTGTAACAGCGTCTCACGTCAATGCGGATAGTCGCAA -GACCTGGCGAGGTTTGAGATCCTCATGTCCACTTTCCGGAAAGTCAAATAGCTCAGCTTATGACCGACAT -GAGGCGTAAGCAGACTGTCCCCTCACAAAAATTTCGATGCAATCTTTAACATAATTAAAGATACTTTTCG -CATTAATAAGGTATATTCGTCTAATTAAGGGAATCAATAACGTGCTGAAATACCGGAGTATTGACTAACT -TAATTAAGGAATTCCGACAGCCGTGTCGAAAACCCTTAATTAGGAGAATTCCGGCTTCCACGCCGATCTT -GCCTCTAAAAAGTATCCTTATTTAGGTTACAAGATGTCCCTTAATTAGGTGACAGGCCGCCCGTTTCATG -CAGGCCTATATCGTGACAAAAATCCGTTCGATGTCAGGTTTGGGAGGGAAAGCGGAATGTCCGCAATGGA -ATAGAACGAGGTGAACAGCGGACATAATGGCAGCCCTAGAGGAAAGACCAACCCCTTTCCTGGTCGGATG -TCATCACTCTTCCAGCCGATGTTATCGGAAAATGCGATGCGAATAATGCCGCGTTGTGTTCGACAGCATA -ATCCAAAGCCCATTTGCGCGATATGATGGCTATCTGAGGATCTGCATCAAAAACGGCACTCCACTCCGGA -ATACACACCTGAATGGGGTGATGCATGACATCACCTGTGAAGAGCGCACGCTCCATACCTGATTTCAGCA -CAAGAGACGCGTGATGGGGCGTATGCCCAGGTGTGGGGTGAAAGGAAATTCCTTCAAAAACTTCGGATCC -GTCTACGTCAATTTGATCCGCAAGACCTGCCGAGACAATCGGATCAACGCTATCAATGCGTGTCATGAAG -CTGGTTTTATTACGGGCACTATCATGAGCTGGATTGCTGAAAAAATCATATTCGGCTCTAGAAAAGACAT -ATCGGGCATTCGGGAAGGTCGGAACCCAGATGCCATTTTGCAGGCGTGTGTTCCACCCGACATGATCGAC -ATGCAGATGGGTAAGAAGAACAAAATCGATATCTTCTGGCCGGACGCCAGCGCGCATCAGATTTTCAAGC -CACACAGTCTGCAAGTGATCGAAATACAGAGCAACAGGTCGAGCCTTGCTATTCCCGGCCCCCGTATCCA -CAAGCATGTTCCGACCGCGATCCTTGATGAGCCAGCTATGAACGCTCAAAAGAGCTTTCGTTTCTGAAGC -ATCCTGCGTTTCAGACAGATCAGGATAGGCCTGAAGTGCCGTTGCATCATCCCAGTCAGGCAGCAACTGT -TCTGGAGTGAGTGCTGGCAGCGTCAGATCCTGTATTTTTAGTATGCGGGCATCTCCTACAGCATACCACT -GAAGATCGTTCATAATCCCAAGGCTCTCTTTTCGTTTTTATTTCTCAAAAAACACAGCGCTGTCGTCATG -AAGGGAAAAGAGACTTCAATTCTTGCGGGAGTTTGCCTGTTGCATGGTTTGACAGGCACCCGAATAGTGG -GTCCCATTCTTCAATGCGCAGATCACAAATCAAACCTTCGGATGCAAAGGGATCACCGGCAATCATCGCG -TCAATCTCCTGCCGATTGGCGCCTTTCATAATCAGAAAGCCGGAGCGCAATGGGGTCCCTTTCAACGGAC -CGGAGGCCAGCAGGCTGCCTTCCTGAATAAGGCGCCTGAGATACAACACGTGTGCGGCGACATGCTGTCC -CCATCCCTCGCCGTCAGGGTGGTCCATGCGCACAAGATAAACAGGCATTTCGAAAGTCTCCACCAGAACT -AAACTTGCCAATCACTCGAAGACTTCAGCATATTCCTCTTTTTCGCTGGATAAATTGTCGATATGAGACA -TCAGTCACAACTGAGGATGATGAATGCTTGACCGGTTAACCAGCATGAAGATTTTTATCAAGGTCGTGGA -ATTAGGGTCCTTTGCTGCGGCCTCCCAGCATCTGACTTTGTCGCCGCAGATGGTAGCCAAGCATATAGAG -ACTCTGGAGCATCACCTTGGTGCTCGCCTGTTGCATCGAACGACACGTCGGCAAAGTCTGACTGAAACAG -GACGGCTCTATTGCGAGCAATGTCGGCTTGTTCTGCAGGCTGCTGAACGAGCTGACAGTCTGGCAGCCAA -TACTCTTGGCACACCCCGCGGCACATTATCTGTCAGTGTACCCGTCACTTTCGGGCGAACAGTATTGCTG -CCATTTGTTCACAATTTTCAAAAAAGATATCCAGAAATTCAAGTCCACTTGTCCCTGACAGACCAACTGG -TTCACCCCACAATGGACGGTCATGAGGCTGTGATCCGAATTGGTGAACTGGAGACGAACCTTACAGTGGT -CAGTCGTCCTTTGACGGCCTATCGTCGGGTCATTTGCGCGGCTCAGACCTATCTGGAAAAACACGGTTTT -CCAGGGCAGCCCGAAGATCTGATGCGCCACGAGTGTCTCGTGTATGAAAATTCCGGCGGCCCTGTAACGA -CCTGGCACTTTTCTCAAGGCAGCGTTACGCGGCCAGTCACCGTTTCCGGGAGGATAATCAGTAATGATTC -AAGTGTTCTGCATTCTGCAGCACTTGCTGGCGATGGTATTCTGCTGGGATATGAGCAGGCCCTGCTTTCT -GATATTAAAAACAAACGGCTTGTCCGGCTTATGCCCAAGTGGACAGCTCCGGACAGGCCCATGCACCTGC -TCTATAACGCAGGTCCAGTTATGACACCAAAGCTGCGGGTCTTTGTGACCGAGCTTCAAGAGGCTTTCCA -GCCTTAAGCCTCTTTTCGACAGTAGGGTGCCTGACTCCTAAGTTCAGTTGACGATCAGTTTCTGTTCACC -ATCCCTGTTCAGTCGGAAGCACAAACAGTTCTGCAACATCCATACGTGCAGGTGATTTCAAAGCAAAAAG -GATACTGTCTGCTATGTCCTCGCCTTCGAGAAAGGTCATGGACGCTGCAAGGTCATCCATCTGTTTGCGG -GAATCAGCATCTGTAATGTGATCGTAAAGCTCTGATTTTACGGCTCCCGGCTGAATGCAGGTAACGCGGA -TATTATGCTTTGGTCCGATCTCCATTCTGAGGCCGTCTGAAAACGCTGTTACCGCAGCCTTGGTGGCGCA -ATAAACGGCGAGACCCGTAAAGACTTTCCGGCCTGCAATCGAGGACATGTTGAAAATATGACCCGAATGC -TGTGCGATCATCTGCGGAAGAACGGCTGCCGTTGCATTGAGAACACCGGATATATTGACGTCCACCATCT -GCTGCCATTCGTCCACTTTCAGGCTGTCAACGCTGGATAGGGGCATCAGGCCTGCATTGTTGACCAGAAC -ATCAATCCTTCCAAACTGGGCGATCAAGCTTTTTGCCGCTTCTTGACACGAGACAAGATCAGTAACGTCC -GTCACCAGAGGAATGGCTCGACCGCCAGCCTTGGTAATTTCACTAACAAGCGTCTCCAGGCGATCATGAC -GACGTGCCGCCAGGCCGACTGTCATTCCTTCTGCTGCAAGTTTGCGCGCTGTTGCCGCACCAATGCCACT -GGATGCTCCGGTCACCAGAGCAATTTTTCCTGCAATATTCATAATCTTCTCCACACAACGAGCCTTTAAT -GGGCCTTAATTGTCGAAGGAGGTGTAAATTATGCCAGAAGATATCTCGCTTGGCTTCTTGCTGAAACTAT -TGCGATTTTGCGCTATAGATAGTCGCGCATGGAAATGAGAGAGTGTAGCTGATGGTTTTGTCCTGCCTTC -CTTCTCGGCGTGCTGCCAGTTTGGCACTGGAGCAACTTCTGCCCGGGAAGAAAGTCGCGCAAAGTAAAGG -GGATGTCTGGAAGGATGTTGACGTCCAGATATTCACTCGCCCGGTACAAGAAGACGAAATTCTTGTACCT -GCCGTCGCAGAACCCTTGCTTGTTTGGGTTATCCGCGGAGAAGCAAATGTCGAAGAGCGGGAACTGACAG -GGTCTTGGGAACAGAGCAAGGCAAGAGCAGGAACATTTTACCTCACGCAGACGGACACACCCTATCTGAT -GCGGTGGCAGGGCAAGGGAGACACTTGTTTTGAAGTGTTGCATCTCTATCTTGGACTTGAGCTTGTCGAT -CGAGCCGCCATGTCATTAAATCTGAATTCATCCCGTATTCGAATGCGGGATATTTCGGGCGGGGAAGATG -CTTTCATATCAGGAATTTTAAGTGGCCTGATAGCTGAAATGCAATCTTCCGTTATTGCAAATCCCTTATT -TTTAAATGGCCTTCTGGAAAGTCTGACAGTTCATCTTTTAAGACAGTATGCTGATGCCAGACTTAAGATA -AAGCGACTATCCACTCTCTTGCCCACATGGAAACTGCGTAGAGTTCTTGATCATATGGAAGCACATCTGG -CTGAACCATTTGATTTGGATTGTCTTTCTGCTTTGTGTGGCATGAGCCGTTTTCACTTCAGTCGCTCATT -CCGTACAACCACGGGACAAACTCCCTCTGGTTGGTTCATGCAGCGCCGCGTCCAGAAGGCATCAGAAATG -CTTCGTAAGACCAATGTTCCTATTATCGAGATTGCCTTGGAGATCGGCTACGAAAGCCCAAGCCACTTTG -CTCAGGTCTTCCGCAGAGTGACGGGTGTCAGTCCTCGTGATTATAGAAAAATGTAATCAGTATATGAATA -AGGTTTCAGCAAAGACCTTGGTAAAAAAGTTCACCTAAATACAGGCCAATTCCGAAGACCGCATGAGCAC -TGATGCTGAGAAATAGTCCTTTTCCAGGATTGGAAGCCCTAAGCCCGAAAAAACCGCCGCCCAGAGCAGG -TTTCATAAACAGAAAAGGCGCTAAAAGGGTAACAAGTCCGAAGAGCAAACCATTTAACAATGTGGGGACT -GTCTTTGCTATGACCGCCACAAAACTGAGGTACAGTGCAGCATAAACAGCACCAATCAGATAATGAAATA -CCCAGCCGACAACTGCCTCTCCTTTCAGGGAGGGTCTTTTTCCAATCATTGGGTCATAGATCCTGCCGTC -ACACCACCCTATGACCCAGCGGCCGGTGACAGGCCAGTTGGCTGCAGGAATTCCAGTCAATGGTTTCTGG -GCCTGTTGCCAGATATCGGATGCAGCAGTCGCCACGACGCCGACTGTCAGAATTTCGAGCAAATTCATAC -AGCATGTCCTCGAAGTAAGGGTGTTCGCACACACTTTCATGTCACTTTTCGAGTTTCATGATATACTGAC -GAAATCGCACTCTAGCAACACATGAAGTTACATGAGACAAGATAACAGATTATCCTGTGTGCTCCACGTA -CTCCTGCACATGGCAGAAGCAGGTGGTCCCATGACGTCAGAAGCCCTGGCTCGCGCCCTTAACACAAACC -CCGTGGTTGTGCGACGTCTTATGGGCGGTCTGCGTGAGCATGGATATGTGCACTCCGAAAAAGGACATGG -CGGCGGGTGGACGCTTTCATGCCAGTTGGATCGGGTAACGCTGCGAGATATTTACGAGGCTCTTGATGCC -CCAAGATTATTCGCCATAGGGAACCGGAGTGAAAAGACTGAATGCCTTGTTGAGGAAGCCGTTAACGATG -CAATGAGTAGCGTCCTAGCCGATGTTAAGGCCCAACTTCTCGCGCGTTTTGGCCAGATTACACTTGCAGC -ACTTCATGCCGACTTCCATCAGCGCTTGACAGGGCGTTTCTCAGATTGATTAGCTTGAGAAACGCTGGTG -AATTTTCCAAATTGTTGTATGGAATGACTTTGAATACAGCCTTTTAATACCATCTCATTGACGGCCTATC -CATTACCAGCGGTAACCGACCGTAACCTGCCCGGTGCGACGCTCTCCATACCAGCATCATCCAGCAGATG -TGCCTGATGTCATGCAGTTGGTAACGTAACGCGTGCCAGCGAGATTCCGCATGCTCGCCCGAATACTTAA -CTCCTACAGAATGTGCAAACTTCTTTACAGCGTCTGGATATGAGCCAGATTGAGAGGAAAACAATCTAGA -ACCCTCCAATTGTATTGTCCTTATATATTTTCTAGGTTATGTAATTTAATGTTAATCTTATTTTACTCAT -GAATTTATGCCACTATTAGAATAAGAGTCCGATTCCCGATGTCTTTTTCCTTCATTCACTCGTCTAAAAC -GAAAAATGCTGAACATCAAACCAGCCGAATAAAACGCAAAATCCTATTAAAAAAACGTCAATGGAAAGAC -TTAGTTATATATTGGGTTGGCGCTATATTAGTGGGAATAATTGCGGTTTTATTTGCCAAATTAGGTGATT -ATGCAGCATGTATTCGCAACCATCTAATTTATATTAGTCCATACATCATGTTGTGTGTGGCTCCATTAGG -AATGGCAATTATTACATGGCTAACTCGAGCCATATTCAATGGCGCTCAAGGTTCTGGCATTCCTCAAACA -ATAGCAACATTACACATTCATAATTTTGAATTAATTGATAAAATTTTATCAATAAAAATAACAATTGGTA -AAATATTAATGACATCATTAGGTTTGATTTGCGGAGCATCAATAGGTCGCGAGGGGCCTAGTGTACAAAT -CGGTGCATCTATCATGCATGCTTTTTCACGATTGATCGGCAAAAATGGGGAAATAACACGGCATGGTATG -ATACTTGCGGGTGGTGCCGCAGGGATGGCCGCAGCTTTTAATACACCATTAGCCGGTATAGTTTTTGCCA -TTGAGGAATTGGCTCATTCCTTCGAACAAAAAGCATCAGGACGAACGCTAGCAATCATAATATTTTCTGG -AGTTACATCAATAGCATTTTTAGGAAACTATACTTATTTCGGACGTTCGAACACCGCAATCCCATTAGGA -TCAGCATGGATAGCCGTTGGAGTTTGCGGCGTATTGGGTGGTGCTGCTGGAGGTATATTTTCGCGCACCG -TGCTTGCTATATCTGAAGGAAGATTTTTTTCAATTTCGGCATTGCAACAAGATAGGCCAATTATTTTTGC -TGGTTGCTGTGGTTTTGTCCTTGCCATGTTAGGTTTGGAATCACACGGAGCAACCTATGGTACAGGATAT -TTACAGGCCAATGGAATTGTAAATGGTTATCTTCATTATCCTGCCTCATTTTTCATAATGAAATACATTT -CTATACTGGTTACTTTTGCTTCTGGTATCCCCGGAGGCATGTTCGCACCCTCTCTAGCTATCGGCGCTGG -CTTGGGAGGGTGGATTAGTCCATTTCTTCCTCATACTACTCCATCTGGAGTAGTCTTATTAGGAATGGCC -GCGTATTTCTGTGGAGTTGCGCAGTCTCCTCTAACAGCAACTATCATTGTTATGGAAATCTGTGATAATC -AGCAAATTACACTTGCCTTATTATCAACATCTTTCCTCGCGTATGTTGTTTCTCGTATCATATGTCCAAC -TCCATTATACACAGCCCTTGCAAAAAAATTTGAACGGAAACAACTTGATGATGCTATAAAGTTGGAGAGT -TCGAAGAGCCATTGACTGCTTTCCCTTGCGCCTGATTGCAGGTTTTTGGTGTGTTGATTTCTGGTTCTAG -GTCCTGATTTCACTCTGCGTTTTGAACAGAGAGGGTTTCATGCTCCGGTATTGCTACGCGGTGGCTTTAA -TCCCTCTAGGCTCAGGACCCATTGATTTTTGTAGGGAATTTTGATTCAGGCTCTGCAAGGAGACTGAAGA -TGAGCGACCTGTTTTGGCTGACGGACGATCAGATGGAGCGCCTGCGACCGTTTTTTCCCAAGAGCCACGG -CAAACCTCGTGTTGATGACCGCCGCGTGCTGAGCGGCATCATTTTCGTGAACCGCAATGGTCTGCGCTGG -CGGGATGCGCCCCGGGAATACGGCCCACACAAGACGCTCTACAACCGTTGGAAACGTTGGGGCGACATGG -GCATTTTCATGCGGATGATGGATGGCCTGTCTGCCGAAAAAGCAGAGCCTCAGACCATTATGATTGATGC -AACCTATCTCAAAGCACATCGCACGGCTTCAAGCCTGCGGCTAAAAAAGGGGATCCAGGGCGTCTGATCG -GACGGACAAAAGGTGGTATGAATACGAAGCTGCATGCCGTCACCGACCGGAACGGACGTCCGCTCGACTT -CTTCATGACAACAGGTCAGGTCAGTGATTATACTGGTGCCGCTGCCCTTCTGGACAGTCTCCCATCAGCC -GAATGGATGCTGGCAGATCGGGGCTATGACGCTGACTGGTTCAGAGAGGCCCTGGAGGAGAAAGGGATCA -AACCCTGTATTCCTGGTCGAAAATCTCGCGCAAAACCGGTCAAATACGACAAACGGAAATACAAAAGACG -CAACCGTATCGAGATCATGTTCGGCAGGCTCAAGGACTGGAGACGGGTCGCAACACGCTACGACAGATGC -CCGACCGTCTTCTTCTCCGCAGTCTGCCTCGCCGCAACCGTCTTGTTCTGGCTATGAGTCCTGAGCCTAA -GCTGAGTTATACCTATGATAATTGAATTGCCCCGGGGTTTGTGGAGACGTTTTTTATCTGATTTAAGCGG -CTAATGCATGCGATTTCTGTTGTGCATAAAAGCGTGCTTCGGCTTCTGCTGGCGGGATGTTTTCAATGGA -GGACAGGAGCCGCCGATTATTGAACCAGTCGACCCATTTAAGTGTTGCCAGTTCAACAGCTTCCCTGTTT -TTCCATGGTCCCTGCCGATAGATGAGTTCGGTTTTATAAAGTCCGTTGATGGTCTCCGCCAGGGCGTTAT -CATAGGAGTCTCCAACGCTTCCGACAGAAGCAACAAGGCCCGCTTCAGCCAGTCTTTGCGTGTAGCGAAT -GGACACATATTGACAGCCGCGGTCGGAATGGTGGGTCACTTTTTCCTCAGGCCGCCTCTGGCACAGAGCC -TGATCGAGGGCATCCAGCACGAAGTCGGTATGAGCCGTTGAGGAGACACGCCAGCCCACAATAACCCGTG -CGAATACATCAATGATGAAGGCCACATACACAAAGCCCTGCCAGGTGGAAACGTAAGTAAAATCCGAAAC -CCATAGCCTGTTAGGGGCTGGTGCATGGAACTGACGCCGCACCAGATCCTGTGGACAGGGCCGCGCCGGA -TCTGGCCGTGTGGTTCTGACACCCTTGCCACGCATGACGCCTTTCAGTCCCATCTGGCGCATCAGCCGCT -CTACCGTGCAACGGGCGATAGTCCTGCCCTCGCGTTTGAGCTGATGCCAGACCTTGCGCGCTCCATAGAC -GCAGAAATTATCATTCCACACTCTACAGATGTCATCGCACAGCTCTTTGTCTTTCTGGCTGCGCACACAG -GGATTTTTCTGTCTCGCCCGATAAGCATAATAGGCAGATGGTGCAACCGACAGAACCCTGCAGATTGACC -CGACACCATATGTCTGCCGATGCTCCTCAATGAAGCGTGTCATGGCTTGAAGATGCGGTCGAGTTCCGCC -TGGGCAAAATATGCTGACGCCTTGCGCAGGATTTCATTGGCCTGCCGCAATTCGCGGTTCTCTCGCTCCA -GTTTCCTGATCTTCTCCCGATCAGGAAGATCACTCACAGCAGGCGCATTGGCCCGTTCGTGCAGACGGGT -CCATTTTGACAGCGTGTCAGGGTGAATATCCAGCTTTGGAGCGATCATCATCACTGCGGACCAGCGTGAT -GGATGGTTCTTCTCTTCCTCCAGAACCATGCGGGCTGCACGTTCACGAAACTCAGGCGGAAAACGCTTCG -ATTTGTTGCTCATGAATCCTTCTTACCTCTCGGGTCGTTCTGTCTCCACAAAACCCGGGGCAATTCACTG -TCAGCACAGGCGAGGACCCTGATGGAAGATCCAGACAATGTTCTGGTCTTCAGTGCGGCCAGTCTCTGGG -AGATCACCATTAAGCCCGGGCTGGGCCGTGCAGACTTCCAGATCGATCCCTATCTGTTGCGGCGCGGCCT -GATCGAAAATGGCTATGAGGAGTTATCGATCACCAGCCAGCATGCTCTGGCAGTAGGACGACTGCCAGAT -GTGCATCGGGATCCTTTTGATCGCATTCTTGTAGCTCAGGCGATGGTGGAAGGGCTGCTTCTGCTGACCC -ATGATCCTCTCGTGCAGGCTTATCCGGGTCCTATCGAAGCTGTTTGAACGATATTCGTCCTGGCTGTCAT -CATGACAGGCATATTACCCGTCTGATCATCAAGGGCGACCTCGATCCTGGCGAAGCGGTCTTTCCATGCA -CCGGAACCCGGCGGTCCTACGAATATTACTGGTAATCTTCAATGTGGGAATGAGAAATTGTTCCCGAATT -TTTCCATCATCTGGAATAAAAATTCTATAAAATTTCAAAATAATGAAATAATAAAAATTAAATAACAATA -AAACACCGAAATTTTGGCAAAATAAAATCATTATTACTTAGTTTTTTACTTAAGTTATCAATGATTTGGA -ATAACAGAAAAATGTCGGATCTTTTCTCAAACATTTCCCCTTCGCATTCTGGACCACTTACTGTGTTTCA -AGCACAGTTAAAAACTTATCGGCAGCAGAACTGGTCCGAGGTTTTCAAGGGGTATTCTGCTTTACGTGCG -ATTACCTTTTCAAGTTCTCTGGAATTTTTGCTCGATCTGACAGAACAGTTTAAAGATATCGAAATTGTTT -TTGGCTCTGAGCATATTCTAACCAAAACCCATATTGCTTTGGCTCAAGCCAGTCAGCTTTTTGAAGACTA -CGGGTTTAAGGACTGTCTCACAGATCAAAAATCTCTTGTAGAAAGCTTACGTCAACTTCTTGGGTTACGC -AGCAGTCTCTTTCTTCCGCGTTTGCAAAATGGTACCTTGCGTTTCAGGCTTCTGACTGGCCGTCCAAGTC -ATGAAAAACTTTATTTGCTATCAGGTTCCAACGGTCAACGCGTTATCACAGGATCCGCTAATCTCAGTAT -AGCGGCTTTCCATGGGCATCAACATGAAGTCATCATCACTTTTGATGATTTAGCAGCGTGGGATGCTTTT -GATGAATATTACCAACGTGACTACAAAAAAAGTGTTGCAATCGAAAGGGATATTCTGATCAGCGTGTCTT -CTGACGGCAAGAATAAACAGCCTGATATCTCTACAACATCCCTTCCTTACGAGGATGTTCCCATCGTGCG -TGCGATACGGGCCGGGCTGGTTCATGTCGAACAGGGTGGTATGTCGATTTCAGAGGGAATAACCATTGAT -ACGTTACGAAAGGCTCAACGCCTACGGCAGGAACTTGAAACAATTTCTCTGCCGATGAGCCGCAAGGGAG -TCACGCTGGTCACTCCCAAAATCGTTTCAACTTTTCTGCAGGCACGCGATAATCTGCCTGCTGTGAACTG -TCCGAAAGATGAAATTCTACGGGCCTCCCTCTCTGTTCGGACGGGTGAGGTTTTTCTCAATAATCAGTTA -TGGCTTTCTGAAAAAGATACCATTTCAGAACATGACATTGCCCGAGATGTGCACCTGCTTGTGAATTATA -TCAGCAGTTTTTCGGCATTTTATGGAAATAGCCAAAGTGCCATCTCCTCCTACTGGGCATTTCTGGTCTG -GCTTTACATGGCACCTTTTGCACCCTTTTTAAGACAGGGAGCCGTTAGTCATCATATCGATCCGTGGCTT -TATCCTCCTTACGCGGTTTTGTATGGCCGCTCCAGTGGTGGGAAAACCCTGTTTACGCAGATTATTGCAC -AATCCATGTTCGGGGTTGTCAAAAGTATTCAGTCATCGATTTTCACGGCACAACGTGCTTTGGGCTTACG -CCAGCAATTAGGGGCTATTCCTCTGTTGATTGATGACGTGACACCAGATCGAATGAGTAAATATGTGCCT -GACATGGTGCGTACTGATCGGGATATGGCCGAATGCTACGCGCCTATCGTCCTGACGACCAACAAGGATG -TGACAAGCATTTCAGCTGATCTGACCAAACGGATGGTGACATGTCATATTGATGCTTCTCTTCCGGATAG -TCGAGCGCTTCAGACGGAAAGCCCCCGTCGTTTGCAAAAAGAAATCGGGACAGCTTTATACCGGCGTTAT -CTGACACTCATGTTTCCTCGTGTTCGGGATATGCGGATCGAGATGGATCAGAGTGAGGGGAAACAGATTC -CAGATGTCTTTACGGTGTCCTCTCATCTCTTGTTATCGTTGATAGAACAACACCTTCCTGTAAAGCCCGA -CTGGGTCTGTCCTCTTTCTTATCGGACCTATCAGGCCATGCGGGCCGTTCAGTTCCAACGTGTGCTTGTT -GAAATGATCAGAAGTCATCCAGAAAACATCGCTCTGTCGCGAGACAAGCGCTTTATGCAGGTACGCTTTG -GTGGAGATATTCGCCAAGCCATGGCATTTGAAAAATCTGTACCAGAATTTGTTTCCAAAGGGCGCATTGC -AGATGCCGTCAAGCTGGATATTCAAGCAATGGAAAATGAGCTGGGATTTGCTCCAATACCTCATAGTTCA -CTCGTTAAGCGGCTTATGAAAGTTTGGAAGAAACGTAAGTAATTCACCCATCAAAATCTAAATTGGGCAT -TTATCCCGTAGACAGACTGGATAAATGCCCTTTCTGCACAATGATCATCCAGACCTGTCCTTGAAGTATT -TATGTTCCTCAAAACACTTTGAAATTTGAACTTGATGATTGAAAAATGGACAGGCAATGACGACAATGCT -GTCATTGCTTAATGGAGGTTCCCGTGGCCGTCATGACTATCCGTAATATCGACGACAGTCTCAAGCAGCG -GCTTCGTCTGCGCGCAGCACAGCATGGGCGTTCCATGGAAGAAGAGGTGCGCGATATCCTGCGCTCCGCT -CTTTCTGCTGAAGTGTCCCAGAGGGTAGATGCCGGTCAGGCCATCCACCAGCGTTTTGCCAGGCTGGGAG -GGGTAGATCTGCCTGCCGTGTCCCGTGAGTCCATCAGGGACGTGGATTTCGGGGCGTGATCGTTCTCGAC -ACCAACATCCTTTCCGAACTGATGCGCTCCGAGTCTGACAGGACAGTGCTGGTCTGGATGTCCCGTCAAT -CCATGATGACCCTCTTCATCACGGCCATTACTCAGGCCGAGATCCTGTATGGGCTGGCGCTGCTACCAGA -AGGACGGCGGTGGGATCTGCTGATCGCAGCTGCCCGTGCCATGTTCGAAGAGGATTTCTCCGGACGTATC -CTGCCTTTCGACGGAGAAGCAGCTCGTGTTTATGCCGAAATCGCCTCCCGACGCCGGCAAGCTGGAGAAC -CCATCAGTCAGTTCGATGCACAGATCGCGGCCATCACGCAGTCCCGTGGTGCATCCCTTGCAACACGGAA -TACACGCGATTTCCTCAACTGCGGTATCACCCTTATCAATCCGTGGGACGAGGCGTAGGGAGGGCGTCAA -TCGCGGCTTGAATCTGGATCAGATTAGCGTCCAGACGATCATTGTCTCTGATCTGCCCCTTTCGCTCCAA -AAGTGCTTTGGCACAAGCAGGCGTGGTCCGTGTCGCCCGTGTGGAAAAATACCGTTCCGCTTTTGCCAGA -CCACCAAGCCGGGCCGCGACACCGTGGACAACCAGCCCGATTGAAGGACAGATCAGCCGACTGAAAATGA -TCAAGCGCACCATGTTCGGAAGAGCATGGCTTTCAGCGTCTCAGGGCTCGTGTCCTCCAGACCGCATAAT -CAAAAATATCATCACGAAAAGTGCGGAAGAGCCGAGATTTGACCCATGCCTTCACACTCCCTGGCAGCAT -CTGCTGGGGGGTTGAGGAATGATTGACATGGAGCTTCTGAGTGTGATCCGTCGGTGGCGCTGCCGGGATC -ATCTTCCAATCCACGAGATCGAACGCCGGGATCAAACATCTAAAGATGTGTAAGCCACGTTTCGTCATCA -TGTCCATGGACCTGTGGAGTCTTGCAAAATCATACTTATGTAACTACAATTACGTAACTACTGGAGTGGA -TTGTGACCATATGGGTATGGGATCCTGAAAAGGATGCAACAAACAGGACGAAGCATAAGCTGCCTCTCGC -AGTCGGCAGGCTCGTTCTTGATGATGATCCGCTCGCGTTGTCTGTCCCCGATCCCCACCCCGACGGGGAT -CGGTGGAGAACCATAGGAAAGGTGCAAGGCGTCACAACTCTCTTCGTCGTTCATACAGAACCTGTGGAAG -ACGAGGACGATGGTGAAGAATACGGTCGTATTATCAGCGTAAGAAAGGCAACAGCCCATGAGCGCGAAGC -ATATGAAAACGGACCCTGATCTGCTGAAGGCACTACGGGCTGTAGAAGCGATGCCTGACGATCAGATTGT -GACAGACGATGAAGCACCAGAAATTCACGACTGGTCACATGCGGAACGGGGACGTTTCTATCGTCCTCGT -AAAATACAGAAAACGGTGCGGTTTGATGCCGATGTCGTGGCTTTCTTCGAGAAAGGTGGACCCGGCTATC -AGACACGCATGAATAACGCGCTGCGTGAAATTATGAATCGTGCCCTACGCAGCGTACCCACGAAAACAGG -TTCAAAATCTGAGCGGCCTCCACGGCGCGGAAAGAGCGTGCACATATAAGGACGGTTTTGGCTTTCCTAT -GCTTACTTGCGTGCCCCAGATGGCTGATAACCAGAACAGAGGAGATCGGGCGATGTAGTTACGCTCGGAA -ATCATTCCGCGCGTCATGGAGGGAAAGCTCCCCATGTCTCGCACCTATCATCACAGCCGCAGACACGGCC -GAGATCATCGCTTGGCCAACCGACCGGATCGCTGTGGCTATGGAGGCTCACGTGAAGCCTCTGAATCCCC -CAACTGGTACAGCCATCTGCACGATATTCGTCCAGGTCGTCATCATGACAGGCATGTTGTCCGCCTGATC -ATCAAGGGCGACCTTGATCCTGTCGAGGCGGTCTTTCCGTATACCGGAACCAGACGCCCCCACGAATATT -ACTGGTAACCTTTAGCGCGGGAATGAGAGATCGTTCCCGCGTGCTGTTTCCGTCTGGGTTCTCATGCCTG -TTTTGGTCTACGTCCGCGTTTCTTCTTCGGTATGTGCGTGACGGGCACCTGATCTTCAGCGGGTTTGGCC -ACGTCCGGTGCGGTCCTGATGGCCTGCCCCAGTCCAATTTTCTGCGCCAGAGCGGAGCGCTGTGTCGAGT -AGGATGGAGCCACCATCGGGTAGCGTTCAGGCAGGCTCCATTTTTCCCGATACTGTTTTGGTGTCATGCC -ATAGGCGGACTGGAGATGCCGCTTGAGCACCTTCAGCTTTTTCCCGTCCTCCAGGCAGACGATGTAATCC -GGAAAGACCGATTTCTTCACAGGCACGGCCGGCAGCAGATCCGGTATTCCGGTCGTCGTCTGTCCCAGGC -TATCGAGCGCCTGAAACACTGTGCCGATGAGGCCGGGCAGGGTGTCGGCTGGAACTGGGTTGCTGCTTGA -ATTGCCCCGGGTTTTGTGGAGACGTTTTTTATCTGATTTAAGCGGCTAATGCCTGTGATTTCTGTTGTGC -ATAAAAGCGTGCTTCGGCTTCTGCTGGCGGGATGTTTCCAATGGAGGACAGGAGCCGCCGATTATTGAAC -CAGTCGACCCATTTAAGTGTTGCCAGTTCAACAGCTTCCCTGTTTTTCCACGGCCCCTGCCGGTAGCCGG -TAGATCAATTCGGTTTTGTAAAGTCCGTTAATGGTCTCTGCCAGGACGTTATCATAGGAATCCCCAACAC -TACCGACAGAAGCAACAAGGCCCGCTTCAGCCAGTCTTTGCGTGTAGCGAATGGACACATATTGACAGCC -GCGGTCGGAATGGTGGGTCACTTCAAAGGTGGCGATCAGTGCAAGATAATGACGAAGCATTTTAATAGAC -TAAGCCACACTAACTTTCAGAGCCAATATCTTTCGTTATTGAGTCTGTTTTTTCTGGTGTATTTAGCCGT -TTCCCTGGAGGGAGAGAGGAATGTGGAAACTGAAACGGCGGTGGGGACTGATGCAGACTGCCATTACAGC -CTTCTCTGCGAGGGGGCAGGCCATGCCGGTTAAATTCCTAACACCGGAAGAGGTTGTGCGCGGGTTTCTG -GACAATGTCCGGTCAGGACGCAATCTGGAAGCTGCGGCGATTTACATGGCGCCTCAGGTGCAAGCACATC -AGCTTCAGTCGGAGCAGGAAGAAACCCTCATCCGGACACCGGAGGATTATGCTGCTCATGTTCGAGAGTT -CCAACGCGCTTTCGGCCCTTTTACGTTCACTGTCGAGGCTCTGATTGCTCAGGGTGATCTTGTCTCAGTT -CGCTGGCGGCAGATGGGCCATCATCTCCAGTCACTGAATGGGGAAGTTCCCACGGGAGCAGAACTGATAG -AATTGACCTCGGTTGTTTATCGCGTAGCGGACGGAAAAATCGTCGAATACTGGCTCCAGACTGACCGGAA -AGGGATGGACCTTCAACTTGAGAAGGTCAACAATCACCTGCATTAAGTGGATACTGCAGCCACTATTGAG -GATTATGAAGTTCCAATGATGTTCAGGCGGAAATTTTTGGCTGGAAGCGCTCTTGCCTTGGCAGTGCCAG -CACGTGCTGCATCGCGGATGATATCGATCACGTCCTCTTATGAAAACGCAACTGATGGCCATATCGGTGT -CTTTGCCCAAAATCTGGCAACCGGACAGCGTTTGACCTGGCGGGAAAACGAGCGATTTGTCATGTGCAGC -ACGTTCAAGGCGTCGCTTGCGGCTCTGACGTTGCTCCGGGTGGATCAGGGCAAAGAAAGCCTTGAAACAT -TCGTCCCGTATACTGCCTCCGACCTAGGTGACACTTATGCTCCTATAGCCAAGGCTAATGTTGGAGCCGG -TGGTTTATCCGTCAGGGCTATGTGTGAGGGTGCGGTGGAGTGGAGCGACAATGTCTGTGCCAATCTGCTT -CTGGCCCGTGTTGGCGGCCCCGCTGTCCTGACGCGGTTCTGGCGGTCTCTCGGTGATCATGAAACACGCC -TCGATGACTGGGAGCCCGCCCTGAACAGAACCCCTCCCGGTGGTCGCCGTAACACGACGACACCGGCAGC -AATGGCTGGCATACTCCGACAGTTGGTTTTTGGTCATGTGTTGTCTGAAACATCCTGTTCATTGCTGACG -GGTTGGCTGAAAAACTGTCACACCGGCGGCAGCAGATTACGTGCAGGCTTTCCCTCGACTTGGGCTGCGG -GTGACAAAACCGGCAACAATGGTAAGGATGCGGCTGGCGATATAGCCGTTGCGTGGCCAAAGCCGGAAGC -GCCGCTCATTGTCTGCGCTTATACCCGCGGCGGTCACCCTGACGAAAAGCAGTTTTTTGAGGTATTTTCC -GAGATCGGGCGCATTGCAGCAGAGACGTTATGCCCTGAGTAGAACAGACTTCGATAAGAAAAGAGAACAC -TATGTCTGAGTTCAATACCTATCTTAAAACGCAGAAAGATAGTGATGCAGTCAATGCGATATCGACTTTT -CTCGCCCTCAACGACATGCCTCGGGCTGATAGTGCTTCAGTGGATCTGGTGATCCACGCCGGAAATGCCA -TTCTTGAGACGGCTCATGCAGCCTGCAAAGCAGCACGGGAAGCCAACTGTCCCCTGCTTTTTTCAGGGGG -TATCGGGCACTCGACCACTCTTCTGATGGAGACTGTCAAAGCAGAAAATCTGCTACCAGAGGCATATCTG -GAAAACAGATCCGAAGCCGAGATTTTTGGTGTGTTAGCTTCGGAAGTTTAGAAATTTCCTAAAGAAAAAC -TAATCTTGGAAACACGCTCCACCAATTGTGGTGAGAACGCAACCTTTACGAAAATACGCCTCACGGAATT -GGGACTGGAACCTCGAACTACTGTCCTCTTTCAGGATCCGGCCATGCAATTACGAACCTTTGTGACTTTC -CAGAAGGTCTGGCAAGATGCTTCCTGCGCAACGGTTTTTTATAGCTGCCCGACTTTTGTGCCCCGCCTCG -AAAGGCGAGACGGGATCGTGACCTATGCTGCGGAACTTCCTTCGGGGCTATGGAGCCCGGAGCGGTTTCT -TTCTCTGATCATGGGAGAAATTCTCCGGCTACGAGACGATCAGAACGGTTACGGTCCCCGAGGACGGGGT -TTCATCCCGCATGTTGAAATCTCTTCCGACATTGGGGCTGCGTATCAGCATGTTTGTGAGCTTTTAAAAA -ATCATGGAAACGCGAAGGATCGTGTTCTTGCATGAGACGTCTGAAGTCTGATTGAAATGGACAGCGCGGG -AGCAAGTAGATGACGCAGCAGCCTGTCGAGCAATACGTAATAATTCACGGATATATGGCAAACCCTCAGG -CGCACTGGTTTCCATGGCTGGCAACAGAACTGAAGAAGACAGGTGCAGCCGTCACTGTTCCGGCCATGCC -CTCACCATTCGAACCCAAATTGGATGAATGGCTGGCGACCGTAAAAGCAACAGTCTCGCCTCTAAAGGGT -AAAGTTACCCTCATAGGGCATAGTCTTGGGTGTATAACGCTACTCCGCCATCTCATGTCGTGTCCTGAAA -CAGAAAAAATTTCTGGTTATGTTCTCGTTTCTGGCTTTGACAGAACGCTGTCTACTTTACCTGCTTTGAG -TTCATTTACTGAAGAAACACTGGATTACGATGCATTGCGCAATCGGTTCCCGTTTCGCGTTTCACTCTTC -TCAGACAATGATTCTATTGTGTACCCAAAGGTGTCACGCGATCTGGCTGTGTCTTTCGACACAGAACAAA -TTGAAATTCCGGCAGGTGGGCACTTCCTCGATAGGGAGGGGTTTACCCAATTGCCCGCGTTGCTCAAGGT -AATCCAGGGACGAAAATAGGTTCTGTATCTACAGCATAAAGCCTTTATAGCTGGAAACGACTGAGACTAT -TTCGAACCCATTTTATGGTTCGTCTTACCATAGCTCTTGTCCGCTATACGATGATGCTTTTCAAACCGTC -TACGTCTGGAACGAGGGCGACTGCTGCCTGTCTGCTTCTGTATCACTGAGCAGACAGGCAGATTAGGGGG -GGGAGAACGGAAGGTCGGCTTTATGTTTGAAGGCAATAAAAAGCGGCCATGGAAATTGAAAAGAAATGTC -TTGCTGTCGTCCGACGTACTGTTTGCTACGATGGCGCGATGACTCGCAAGAAACCCATAAAAATTGCATT -AACCAAGCAAGTCCCTCTTTCGAGACGACAGGAGTGGAAAAGATATTTCCTCTTCTTTGTATCATAATGT -TCCTGTTTTCTGGGGCTGTGGGACTAAGAATATTTCTGACGTCGTAGCAGCATACACAGATTGGCGGGCC -TTACACTCTGGTTAATGGCCATGCGCAGACCGTCAATCAGGCGGCTTTTGAGGGACGTTATACGCTTCTG -TATTTTGGTTATACACACTGTGTGGATGTCTGCCCGTTGACACTAGCGACCGTGTCAGCCGCTCTTGATG -AGCTTGGTAAGCGGGGACAAAACATTATTCCCGTGTTCATTTCAGTTGATCCCGAACGTGATACTCCTGC -AGTGTTACAAGAGTATGTTGAACGTTTCTCCACTCATATTGTCGGCCTGACTGGCTCCGAAAGACAGCTT -CAGCCAGTTATGAAGGCATTTCATGTCTCAGCACGACGTCGTGCCCCCAATGGTTCAGGCTATCTCGTCG -ATCATAGTTCGCTCCTTTACCTCATGGACGGACAAAACCATCTGGTTGGCATGATCCCCGTTGATGCCAG -TGCCCATCAGATTGCAAGCGAACTCAGACGGCTTTTACCACCTTCCTGAGGTCAGGTCGGACCTCATCTC -GCAAACATCCGGTTTGCAAGAACCAGAACAAGTAATGCGACCCCCAATTCTGGTAGAAGCAGCCCCAGGA -TGACAAGGGTCGTCATACCAACAATTCCATATTTCTGAGAGTGTAAGGCGGGTGGAGCCCCCAAGGAACC -CACAGGTTTGCGTTTAAGCCACAACACTGTTGCTGCACTGCTCATCATCAGTAAGCCGACTGCCACTAAA -AGGTTGATAGCCTGATTTATTCCTCCAAAAAGTTGGCCCTCATGCGCAGCAACACCGTAGCCAATGATCC -GATCCATAAAGCCTTTCTGGGCAAACGTTTCCTGTGTCATCACATGGCCATCGGGTGTTACCGTCACACT -TTCCCGCAAAGGTCGGTTTTGCGTGTCGGAACGCACGCTCCACAGAGAGCCAGAAGCTGTAATGATTACC -GGAGCTGGCAGGGAAAGAGTGCTCGCAGTCTGTACAACAGTATCCAGACTGCTTAACAAGTCTCCTTCAG -GAAAAGAGGGGGAGGCGGCTGGCATGTCCATACCGGGCATTCCCATACTGTCTTTTACGGGAAGGCTATG -TGGTTGTCCGACCGGGTGCCCGGCAATGAAAGTGGCGGCGGGCACAGCGCCAATTTCCCAGTCCTTGACA -GAGGTCAGACGACCAACCGTGTTTTCGACCGATTGCAGGGTATGTCCCCAGACAAAGGACCACGGTAGAC -CGGATACCAGAAACAGCACCAGAAACACTGATGCCCACACGCCAGTGACGGCATGGAGATCCCGCCACCG -GGTTCGTCCCTTTATGCCAAGGCGTGGATAAACAACGCCTGCCAGTCCATTCTGACCGCGAGGCCACCAG -AGCAGTAGGCCTGTCACAATGAGCACAATGGTCCATGATGCAACCATTTCCATAATGACAGAACCCATAT -TGCCCAGCAGCAACTGACCGTGCAACCGAAAAACCAGACGCTCAAATCTGTTCTCTTCCAGAACAGTTTT -CAGAACAGTGTGGGTGTTCCTGTCCACATAGACCCGCACGGCCTCTCCTTCTGGTCTGCTGACCAGAATA -CGTGCGGCACTCTGCGAAGTCCGCGGAAGTTCATAAGCCAGGAAAGCCCCCTGCGGCACTGCTGATAAAG -CAGCCTGAACGTCACGCTTGGGAGAGGGCGACTGAACTGTGAGCAGATGGTCATATCGCCAGTCAATCCA -GTCATCAATCTGGGGTTTGAAGAGATAAACCGCTCCGGTCAGAGAGAGAAAAGCCACAAAAGGCAGGCAG -AACAGCCCTGCGAAGAAATGCCAGCGCCAGAGCGTGCGGCGGTCTGGCCAGAGAGTGGCAATGTGTATGG -TCATGGCACTATCCCTCAAAACCTGATCCGCATGCCGCCAAAATACGCACGGGGCGAACCTGCATAGATG -GAGCCTGTGCTGTTCATGAGTGTCGTGGCACCGGCCTGCTGACCATTGGCTTGCAGTTTATCGCTGATGT -TTGTGGCCCCTGCGATATAGGTCTGGTTGGCGACGTTCTGTACCTCGAAATACCAGTGCAAACGATGTGC -CCAGCCAAACCGGGCGGGGGGATCATAATGTATTTCAAGATTAAGCAGCGCATACCCCGGCGCTTTCAGG -CGATTGGCGTTATCTAGCCAGTAAGAATCACGCCACGTGACTTCCGCGTATCCGCCCAGCCCTTCCAGTA -AACCGTCAGGCTGGTCATAAAGAAAGCGGGCATTAAGAAAATTGGGAATGACCCCGGGGATATAATGCCC -TTTACGGCTGAAGCTGTGTGAGAGCGTGCTGTTGGAAAGAACTTCGGTATAATTGGTATAAATCTGGTTA -TCATAGGTGTAGCTCAGTTTAACCCGACCGCCGGGAAGCATTTTGGGCAACGGCTTCCACGCCACACCCA -GAACAACACCACGATGTTCGGACGCGGGTGCGTTAAAAGTGTAGGAACCAACGGTGTTGACACCGGCAGA -CTGGCTGACCAGTTCGTTCTTATAAAACTCGTAAAAACCTGTTGCCTGAATGCTGATCGTCGAAGAGGGA -TGCCAGTCAGCGCCCAGATCAATGCCGACACTTGTCTGGCTTTTCAGTTGTGTATTGTTCCCGTATTCCC -CCTGTGGCGTAATGAAAAGATTGGAAGAGGATGGGGTGCCATAGGCTGTGCCAACACGGGTATGAAGCGT -CCAGTCTTTTGATGGCGTATAAATCAACGCGCCTTCTGGCGCGAGATTGAAATAGAAACGATTGGCTGTG -ATGGCCCGCTGGGTGTTGAGCGTTGCGGAGTAGCCATAGAGTGTTTCGGTTGCGCCAATATCGGAATATG -TGCCGCCAAGCCCGGCGACAATGTGCCAGTCGGGTGCAAAATGCCAGCCTTCCTGAAAGCGCGCTCCGAG -ATTCCACTGGTGCCCGTAGCTTTCGGAATTCATGGCCCCTCGTGTTGCACCGCCCAGGGGCATGATGTTG -TAAGTCTGTGAACCAAAATCGAGATAATCAAAATTCACGCCAGCAAATGTTTCCAACGCTCTGCCCGCAA -GTTGCGCATGGTTGGTTATGTCGCTGCTTACATTATAGGAATTATAAGGACCGACATACGCCATAGGGGA -CGTTGGCTGGTCGATATGGCGCTGATCGTATGTAAACTGGTTTCGCCATGTTGTGTGGCTGTTGAAATCA -TGCTCCCAGCGCAGGCCAACCACCGTGCGCCGATCAAAGCGCCCCAACCCTGCCTCTTCAGGGCTCATGG -CAACCTTCGCGCCATAGCGGCCATTGACCAACAGATTGACAGATGCGCAGCCAGTTGCTGCGCTGGACGC -ATTGGCGCACCCTTGCTGGTAAGGATTGGCCCGATACTGGTTGAGTGACAATCTTGCTGGCAAAAACGCA -TCCGTGACGTTGTTGACAAATTTCAGGATAAGACGATCAGCAGACGTCAGATTGACACGCAGCCGCACAT -TTTCTGTCGAGGTATTATAACGACTATTGGCAATGAAGCCGTTTCCACGCACATCGCTGCCAAAGATCAT -CAGATCGTAGTGTCTGTTGCCAAAGCCGAGGGTGGCATAGTTGTTGAACATCCCGAAACTGCCGAAATCG -GAGCCCAGTTCCAGTCCGTGGATATCTGCTCCCTTCCGGGTGCGGAAATTGATGGCACCGTTGATGGCAT -AATTACCATACAGAGTGGAGGCTGGTCCCTCGAAAACATCGACGCCCTGATAGGCATGAGGGTCAATCAG -ATCGGCCCGGGCTGTCCCATCCGGTTGGGTCATGGGGAACGCATCTTCCAGCACCTGAAGATTTTTCAGG -CCATAGGACTGGCGATCTCCCGACCCCCGGACGGAGACCACAGTATCACGGGGGCCATTCCCCTGAGTAA -AGCTGACACCGGGAATAGTCACAACCATATCGGCAACACTCTGACCAACCTGGTTCGCGAAATTACTTCT -GTCGGAACTATAAGTTGTCTGGCCTGCCGGACGTGTAAGGGCAGAGGATCGACTTAATCCCGTTACAAGA -ATCTGCTCAGTTTTGACGGGATTTTTTTTGGTTCTGGACGCAGGAAGAACACGGTTGCTCAAAGGTGGGC -GAGGCTTCTCTGTGCCGACGGCAGCGTAGGTAGTGGTAGCCGAGAAAATGGCGGCAGCGACCATTGTCCC -GTAAAACGGGAGTGAAAAATAAACAGTACGAAACATGTGAAGGAACCTGAAGAGACAGCACAAAATGCTC -ACCTGCATGGCAGGTGAGCGGCTCTTTCAATTCAGATCAGGCAGGAGGTCCCTGCGGGCAGAGAGAAGTC -CGTTTTGGTGTTGGCGGCCCCCGGATGAATGTGAACATCCATGACTGACGAATGGCAGCAACACATAATC -CCACAAAAAGACAGAAAACGATGCCTACAACGAGCAGGTCCAATGCTTCGGACAGAAGAAAGCCGTCATC -ATCGGGGGCAGTTGAGCGATGGTGCTGTCCGTCTGGATCAGACGAAGTGCTTAGATCGTCGCAAAGAATG -CTCAGCTTTGTAAGGGTGTTGAGGGGATCGTCGATTAGTGTCGCAGGGGAAGCAATTCCGCCAAATGTCA -GGCGTGCAATCAGTGCAAGCAATACGAGAGGCCAGAAGGCCAGCAGGTAAGTTGGACTGTGAGCACGTGG -AGTCATGTGTCACCGTTACATCAAGTTCTCTCTGTTAACCAGTCCATACCGATCGCTTCAATCCTACCAT -TCAATGACGACATCTCTGATCTTTGAGCAGCATTGCATGTCTGATTCCGGATAGAAGGAGCAGAAAGCTG -TCAGCTGATTTTACAGTTTGAAAGATGCCCCTAACAGATTTCATCTCCACTCAAAGCCAGAAAATTCCGG -ATGCAAAAAACTCACAATCTATTCATCGTAGTTTACTCACGAAATATCTGAGATGATCTGCAATAAAACT -GGCTACAAAATAATAGCTATGATCGTAATCAGGACGAAGATTCAGAATGAGTTCCTGCCCTGCGTTCTGT -GCGGCTGCCTGGAACAGTTGTGGCCTGAGATGTTCTTTCAGAAATTGATCTGCCAAACCCTGATCTATCA -GGACAGGCAGTCTTTCCGTCGCTGTCCGCACAAGTTCAAGCGGATCATAGGCCGCCCAACTGGCACGATC -TGGACCAAGATAAGCGCTGAACGCTTTTTCACCCCATGGTACCTGCGTTGGCGCCACAATGGGTGAAAAG -GCTGACACAGAACGATAGCGACCAGGATTACGCAGCGCGATCATGATGGCGCCAAATCCACCCATCGAAT -GTCCCACAATACCTCGCTGTTGCGTAACCGGAAAATTCGCTTCAATCAGCGCAGGAAGTTCCGTGACGAC -GTAATCATACATTCGATAATGTGCCGCCCACGGTTCCTGCGTCGCATTGATGTAAAATCCAGCGCCCTGA -CCAAGATCGTAAGCATCGTCATCAGCCACCTCCACACCCCGTGGACTGGTATCTGGCGTGACAATGGCGA -TGCCCAGTTCCGCAGCCACGCGTTGCGCGCCAGCCTTGCCAATGAAATTCTGCTCCGTGCATGTCAGGCC -AGAGAGCCAGTAAAGAACAGGAACCTTTTCAGTTTTTGCCTGCGGAGGCAGGTAAATCGCGAAGTTTGCT -TCCACACCCAACGACACGGCATTGTGTCGCCAGACTTCCTGCACGCCCCCGAAAGAGGCGTGCGTTTCTT -TGCGTTCCATGGCTTTCACGGCCTTTTGCGCATGTCAGTTACCGTCCGTGAAGGTATAACTGCATATCTT -GTTACCTGCCGGATCCCGGAGATAGGCGGCATAAGCGCCCGGTAGATGGCTTCGCGGGCCGGGTGCGCCT -TCATCGTTTCCTCCATTGGCGAGACCTGCGGCATGAAAAGCATCCACTTCGGCGGGTGTCGCTGCCGCAA -AACCGATGGTGACACCGTTGCTTGAGGGCACTTCACCGTTGCCAGGACGCGCAATGATGAACGCTGGTTT -CTCGCGGCCATACAGAATCCACCCATGCCCGAACGGCCCCAGGTTTTTTATGCCCAGAGCCGCAAGCGCG -GCATCATAGAATTTCGCGGATACCGCAGTATCCACTGCCCCAAGAAAAACGTGAGAGAAAACACCGTCAC -CGGAAATAACTGCCATGATCGTTCTCCTGTAATTTCCAACCATTGGAAATGATGTTGCGCGGTGAGACGT -AGACCTTAGAAATGAATGACGGAACGGATGGATTTTCCTTCATGCATCAGATCGAAGGCCGTATTGATGT -CTTCGAGCGGCATGGTGTGCGTTACGAAAGGCGCAAGCTCGATATCGCCGCGCATGGCGTCTTCGACCAT -TCCGGGAAGTTGGCTGCGCCCCTTGACACCACCAAAAGCCGTGCCGCGCCACGAACGACCCGTGACAAGC -TGGAAGGGCCGGGTTGATATCTCCTGACCAGCCCCAGCCACACCGATGACGATCGACTGCCCCCACCCAC -GATGGGCGGCTTCCAGCGCCGCGCGCATGACATTGACGTTGCCGATACATTCAAAGGTATGATCAATGCC -CCAGCTGGTCATTTCCACCAGAACCTGTTGGATCGGTTTGTCATAGTCCTTCGGATTAAGGAACTCCGTG -GCGCCGAACGCCCTGGCAAGTTCAAATTTTTCCGGATTGGTATCAATAGCGAAAATCCGGCCAGCCTTTG -CTTGTCGCGCTCCCTGAATCACCGCCAGACCGATCCCGCCCAGTCCGAAGACGGCAACCGTATCTCCCGG -CTGTACCTTGGCCGTGTTGTGTACCGCACCGATCCCGGTGGTGACGCCACATCCCAGCAAACAGACATGC -TCTGGATTGGATGCGGGATTGATTTTAGCCAAAGAAACCTCGGCGACAACCGTGTATTCGCTAAACGTCG -AACACCCCATGTAATGATGGATCGGCTGACCTTTGTAGGAAAAACGCGTCGTACCATCCGGCATCACACC -CTTACCCTGTGTGGCGCGCACTGAAATGCAGAGATTGGTTTTTCCAGACTTACAGAACAGACATTCACCA -CATTCAGCCGTGTAAAGCGGAATGACGTGGTCGCCGGGGGCAACGCTGGTCACCCCTTCCCCGACCTCGA -TCACAATTCCCGCGCCTTCGTGACCCAAAACGACCGGGAACAGTCCTTCGGGATCATCCCCTGACAGAGT -AAACGCATCGGTGTGGCAGACACCCGTATGTGTGATCTGCACGAGCACCTCACCCGCACGAGGAGGCGCT -ACGTCGATCTCGACAATCTCAAGGGGCTTACCCGCCTCGAAAGCAACTGCGGCCCGTGATTTCATGATTT -TTTCTCCAAATAACCTGTCAGTCAGCGTCGTGAGCATTACCGGAGATAGGATCGAACGAGTGACACCACA -TTCTCGATCGAACCACTGGCAGCATCACGATCACCGGCGCATTCAACAAATTCTTCCCGCAGGTGGCTTT -CAAGAACACCGGCCATTAATCCGTTGATCGCTCCTCGGATAGCCGCCACCTGTTGCAGTACCGGACCGCA -ATCAGCCCCCTTCTCCAGAGCCTGTTCCAGCGCATCAAGTTGCCCGCGAATACGGCGCACGCGGGTCAGA -ACGCGCTTTTTCTCAGCTGGTGTGTGCGGCACGAACGCTTACTCCCGAATATACTACCCTTGAGTATCCT -TGTCATACTGTGGGGTAGTATAGCAAGGAGATAAGGACGTGCTTGTCATATGATCCGATCACAATTCCGT -ATCGCTGAAATTTTCATCGCAACGTCCATGGGTTGCCCGTCTGTGTCTTGGGATCATTCAAGAGGTACAA -TTAGTGAGATCCAGACAATCTCTGCAACGAGGCTTTGAAGCGCTGATGTCCGCTATTTGGCAAACAACCT -TGTGGTCCAAACGACCGACATGAGGCGAAATTGTCGATACCAGGACATTCCCTTTAACTCGTATGGATCG -AAAAAACATTCACTTGATTTGAATAAGATCCGCAACAATCTCAATTCACACAGACACCCCTGAGACGATA -CTTCTCACCCTAAACTTCTTGTCCCCAGCCAGCGGACTTTCTCCGGATCGCGGTGATCGAAGAAACTGCT -GGCTTTCTGGTCAAGCGTGGCAATTGCCTCAACATCAGCATCGTCCAACATAAAGTCGAAAATAGCGAAG -TTTTCGGCCATACGTTCTTTGCGTACTGACTTGGGGATTGCGACAATTCCGCGCAGGTTCAACCAACGCA -GCACAACCTGAGCGATGGTCTTGCCATGCTTCTGCGCAATTGACTGAAGCAGATCATTCGAGAACAGTCC -GTTTCGTCCCTCTGCAAACGGTCCCCAGGCTTCAGCCTGAACATCGTATTGCTTCAGGATTTTCAGCGCA -TCGTCCTGTTGATGAAAAGGATGGAACTCAATCTGATTGATCGCTGGTGGGATTTCGTTGTGCAGCACGA -AATCCACCAGTCGGTCAGGATAGAAGTTGCTGACGCCGATCGCGCGGATACGGCCCGCACGATACAGTTC -TTCCATTGCGCGCCATGCCCCATAGACGTCCCCGTATGGTTGATGGATCAACCAGAGATCGAGATAGTCC -GTCTGAAGTTTGTTCAACGAGCGCTCAAAAGCAGCCTTGGCTCCCTCATAGCTAGCATCTTCAATCCAAA -GTTTGGTAGTGACGAATAAATCGCTACGGTCGATCCCGTGGTTGCGAATCGCATGACCGACTGCTTCCTC -GTTGCCATAGGACGTTGCTGTATCGAGAAGCCGATAACCGACATCAATGGCGTCCCGAACACTGCGTTCA -CACTCGGCAGGGTCAGGAACCTGAAATACGCCGAAGCCAAGAGAGGGTATCTGGATCCCATTGTTCAGCA -TCACGGCAGGAGTGGTGATTGTCATAACTATTCTCTCCGCGGTCGTGGCTCAGCGATTGATCAGGTTCTG -ATATGAAGCAGGATAACGAGCCCCTTGAAGCGGGATGTCATTGAGGGACCGTTCAATGCGGTCCAGATCA -TCCTGCGTCAGAATGACATCAGCCCCTCCCAGATTTTCTTCTAGGCGGTGAAGTTTGGTTGTACCGGGGA -TGGGAACAATCCAGGGCTTCTGAGCCAAAAGCCACGCCAAGGCGATCTGCGCAGGCGTGCAGGATTTTTC -AGATGCGATGGCTTTGACAAGATCAACAAGAGCCTGGTTCGCGGCCAGTGCCTCAGCCTGGAAACGAGGA -ACGGTGCTGCGGAAATCATCCTTGGGAAACACGGTTTTCGGGTCGAGTTTTCCAGTCAGAAATCCTTTGC -CAAGAGGCGCAAATGGCACGAAGCCGATACCCAGTTCCTCAAGAAGCGGCAGGATTTCCAGTTCAGGTTC -GCGCCAGAACATCGAATATTCACTCTGGAGAGCGGCAACCGGCTGTACGGCGTGTGCACGACGGATTGAA -TCCGTCCCGGCTTCAGACATGCCAAAATGCTTGACCTTGCCTGCTGCGATAAGGTCTTTCACCGTTCCGG -CAACATCTTCGACCGGCACGTTTGGATCGACGCGATGTTGGTAAAAGAGATCAATTCTGTCAGTCCGCAG -GCGCTTCAGGGCTTCATCTGCAACCTGTCGAATACGCTCCGGCCGACTATCCAATCCCTGTGCTGGCACG -CCGTTTACAAAACCAAACTTGGTGGCAATCACGACCTGATCACGAACCGGCTCTAGCGCCTCCCCAACTA -CTTCTTCATTAATGCCAGGTCCATAAGCTTCGGCAGTATCGAAGAAAGTGACCCCACGTTCATATGCTGC -GCGGATCAGGGCAATAGCATCCTTGCGATCGGTGGCAGGGCCATAGCCATAGCTCAGGCCCATGCAGCCG -AACCCAAGCGCTAATACTTCCAGACCACTCTGGCCTAACAGACGTTCCTGCATGTTTCTTGATCCCGCGT -GTTTTATCCTTGGGCGTCTGCCAAGGCTCTGAACACGCCAATCATAAGCCCAGACTTATAAATCGATTAG -ACAAGGTAAATTTCTTGGGTCTATGACTTTTAGTCATGAAACCTGTGAGAAGGCCTGAGCATAATGCGGC -GTGAAGAGCTTGGAAGTCTGGCTATGTTCATGGCAGTTGCTGATGAAGGCAGTTTTACCAAGGCCGCAGG -CAAGCTTGGCATTTCACAATCTGCGCTCAGTCATTCTCTTCGGCGGCTCGAAGCCAGATTGGGCCTCCGG -CTCCTTACACGTACAACCAGGAGTGTCGCACCTACATTGGCTGGTGAGCGCCTTATAGAAACACTACGTC -CTGCCCTTGAGGAGATTGATCAGAAGCTTGCCGCTCTGACCGAGTTGCGGGACCGCCCGGCTGGTAACAT -TCGGATCACAGCAAGTGCTCATGCGGCGCGCGCAGTGCTCTGGCCAGCTATTGATCGTCTCACTGCCGAA -AATCCTGACATCAATGTAGAAATCAATATCGAAGGAGGCCTCGTCGACATCGTGGCTGAACGATATGACG -CCGGGATAAGGCTTGGAGAAAGACTGGAGCAGGACATGATTGCGATACCAATCAGCCCACGTCTTCGGAT -GGCTGCTGTGGTCTCCCCATCATATCTGAGCGGAAAGAGCATTCCGGAAACGCCGTACGATCTGGCGCAA -CATAACTGCATCAATCTGCGCTTGCCGACTGCTGGTGGATTATACGCTTGGGAGTTTGAGCGCGATGGCA -AAGATATCCGGGTTAAAACACGAGGACAGCTTGTGTTCAATGATATCAAGCTGATTATGGAAGCCGCCCT -CACCGGGCACGGCATTGCTTTCATGCTTGAGGATCATGTCAAAGATCACCTTTCTTCCGGAAGCCTGGTG -CGAATTCTTGAAGAGTGGTGCGAGCCATTCGACGGCTATTATCTATATTACCCAAGCAGGCGTCAGCCCT -CGCCAGCATTTAGCCTTGTTCTGGATGCTTTGCGTTACAAGGGATGAATAAGCTTTGTCAGAGACGACAG -TCCCACGTTCCGTCTGTCGCGCTTCGCGTAACAATGTCCGCTTTCGGGCAACCACTATAAACGCTCAAAT -GACCGAGATGAGGCGATTGCTGCCTGTCTGACCCCGCATCGTAAATCAGACAGGCAGTTCAGGTTACTCA -GCCGCTCACGCCGGACATTATTGTGGATTTCCTTGATACGCTTCTACGGGCCGAACCGACGTTAATGTCG -TGATTTCAATGAAATAGCCCCCCTTCGCTCTAAAGTAGAAAGACCACGCGCCATGCGCGTCGCGTGGAGC -CTGCACCTGCCAGCCATCCGCGCTTAGGCGCTGATGGAGAGTATTAACGTCCTCACGAGACTTCTGGATG -AAGCCAATATGCAGGATGTCGAATTGCTCGGGATAATCGAAGCCTTCGAGTTTGTTGTCGAAATGGTTGA -CGATCAGCACCAGCCCATCATCGTCCTGCATGATGGACATTCTGGTTCCACGCACAACGAGAGTGCGCAG -GCCGAAATACTGTTCGAACATTGCGCGATCAGCCTCAGTATTGTGGCTGTAGAGGTTGATATGATTCAGC -TTCATGACTGTGTCTTTCCGTTGGTGAGACGGACACGAGCCGATCGCAACATGGACAACGACGACCGACC -ACGGACGAGGTCAATCCTCGTCGTGTCCGGCCATGGTCAAGAGCGGTTTTACTCGCTCAAGCGTGACTGT -CTTTGAAGAGACCACAGGTTGTCACCATACCTGCATCGCTGTCTTTTTAGGCAAAATCGACTTTGCTGAC -GCCAGCAGTCGCGGTCAAACGGCATCTTCAGTCATCTCCGCTTCGTAGACACTTATTGGATAACGAAAAT -GACCAATAGACGGCTGAAGCTACTTGCCTACTAATCCTTTGCAGTAATTAGCTTATTGTCTTATTCAGTC -GGGACAAGACCAAGTTGCTGCAATGCCGTGAGAGCACCTTCCTGGCCGAGTTCATTCACGATCTTACCGT -CTCTGACTTCCAGCCAGCTTGTGCCCGTGAAACGGATGACTTTACCCGTGTTCGCCTTAGTCAGAGCGCC -TACGGGCAGATCATCAAAAGCTGGCCCTGTATGGGTGCCACCGCCGTCCCAACGGGCTACCACAACATCA -CCTTCGGCAATCATGTCTCCGACACCCCAGAAATTCAGATCCGGGAAGGCTTCACGGAATTCGGCCATGA -ATTTCTTGACTGCCGCCTTGCCCTTCCGTGGGCCGTGCATGGGGTAGAAGACCGTCAGATCGTCCGCACC -AAGCTCATCGATTACGGTCTCATCATAGGGATTCCCCCAAAATCTCTTGAACCATTCGGCGACAATGGCC -TTGTTTCGGGCTTCTTTCGACATGGGAAACTCCTATATTTTGATTTCATATGTCCTTGTATATTTTGTCG -AAAATGCTCAAAAAAACACTCCGGTTCATGACCTTAAATTCTAACGGCTGTTATGAATTTAGAATTTGAA -AGCAAGAAACAGAGCGTGCCGAGAAGCGTTCAACGGCATGGTGGCGGCATGACGAACTCTGACAAAAACT -CTCAGCCCACAGCACACGACCCTCGCTGGCAGCGGATTGTGGCCCGTGACAAAATGGCAGATGGACAGTT -CTGGTATTCGGTCGCCACGACCGGTATCTACTGCCGCCCGTCCTGTCCGTCCCGCACACCGAAGCCGGAC -AACGTGACGTTGCACGACACGTTGGAAAGTGCCCGAAGCAGTGGCTGTCGCCCGTGCAAACGGTGTAATC -CCGACGGATGTTCAACAGAGGCCGCGAATGCTGCTCTGATTGAACAGGCCTGCCGTTTGATCGAGATGTC -CGAGACACCTCCTTCTCTGGACGAACTGGCACAGGCGGTCGAACTCAGTCCAGGCTATTTCCATCGTCTT -TTCAAAGCCCAGACGGGTCTGACACCGAAGTCCTATGCTACCGCCCATCGGGCTCGCAAGGTTCGCGACG -GTCTGTCGCACGGTTCAAAGGTTACTGATGCCATGTATGACGCCGGATTTAATTCCAATGGCCGTTTCTA -TGCTCAGTCCTCGGCCATGCTGGGCATGACCCCCAGGCATTATCGGGACGGGGGACTTCACGAAGTGCTG -CACTTTGCAGTTGCCGAATGTTCTCTCGGCTCTGTTCTGGTCGCTTCAAGCGAAAAAGGAGTGGCGTCCA -TCCTGATTGGGGACGACGCGGAGGCTCTGGTGCGGGATCTGCAGGATCGTTTTCCCAAAGCGGAGCTTGT -GGGAGCGGATGCCGATTACGAGCAGAGCATCGCAAAGGTCATTGGCTTCATCGAAGATCCCAACCGGGGA -CTGGATCTGCCTCTGGATGTGCGTGGGACGGCGTTTCAACAGCGGGTGTGGCAGGCGTTACGCCAGATCC -CGGCCGGTGAAACCGCAACATACGCCGAAGTGGCCCAAAGAATTGGTCAACCGACAGCAACACGGGCTGT -CGCAGGCGCTTGTGCCGCCAATCATATCGCGGTGGCCATTCCATGCCATCGTGTCATTCGCAATGATGGT -TCTCTTTCAGGTTACCGGTGGGGTGTTGACCGTAAACGGAGCCTTCTGTTGCGCGAGGCCGGGACGAAAT -GACAGAAGCCTCTCTCCGGCATCTTCCTTCGCTTATTCAGGATCGCTTTGAGGCATCTGACTGGAGAACG -ATCCAGTCAGATATGAACCGGCAGGGCTGGGCTGTCCTGTCTGGCTTGCTGTCTCTCGAAGAAACAGCTT -CGCTCGCGCTTTTGTGGAACGAGGCTCAATTCCGGTCTCGAATTATTATGGAGCGTTACGCGTTTGGTCG -AGGAGAATATCGGTATTTTTCCTATCCCTTGCCATCGCCGGTTCAGGCTCTCCGGTCAGCGCTGTATCCA -CATCTGGCAACGATCGCAAACCGCTGGAATGACATGCTGGGTCTCAGGCATGCCTATCCTGTTGAGCATG -CGAGTTTTCTTGCACACTGTCATGCTGTGGGTCAGCAGCGTCCAACGCCTTTGATGCTGAATTATGGTCC -GGGCGATTATTGCTGCCTGCATCAGGATCTGTATGGATCCCTGAATTTTCCAATCCAGGCTGTCGTTATG -CTGGAAGATGCATTTACCGGCGGCGAATTTATGCTGACCCATCAGGGACGAAATGAAGCACGCGCAGACG -TGGTCCCTCTCCAGCGAGGCGACATTGTTCTGTTTGCGGTCAACGAACGGCCAGAGCGAGGGCAACGCGG -ATTTGTCCGAACCAAAATGCGTCATGGCGTCAGTGAAATCCGATCCGGTCATCGTCGCACTCTGGGCCTG -ATTTTTCACGACGCACGTTAATGCAAGATGCATTCAATGCTCAGCGAGACGGCTTTGAAACTGCGCTGTG -ATGGGTGTGTATAAGGAGGCGACCTGTCGGTCGATCACCATGAACTCTCAACTTGATTGTTTGCGAAGCC -GTATTGGCGCTTATGACTGGGCCAAGATTTTTGAACAGATGGATCGGGACGGTTGGGCTGTCCTGCCCGG -TCTGCTCGAAAAGGAAGACTGCTCGTCGTTAGCCCGGCTTTACGGTCCAACAGAAACCTTTCGCAGTCAT -ATTCACATGGCGCGTCACGGCTTTGGACGGGGAGAATACCGGTATTTCTCCTATCCACTCCCGCCGCTAG -TAGAGACCGCGCGATCCGCGTTGTACCCACGTCTCGTTCCCCTTGCCAATCAATGGTCCGAGCGGATGAA -GCAAGACGTGCGCTTTCCGGAGAAGCTTGAGACCTTTCTGGAGCGTTGCCATGATGCGGGTCAGAAGAGG -CCCACTCCTCTTCTTCTGGAATATCGGCAAGGGGATTATAACTGCCTGCATCAGGATCTTTACGGCGATC -ACATCTTTCCAATGCAGGTTGCAGTTCTTTTGTCTGAGCCGGGAGCTGATTTTACGGGAGGGGAATTCGT -CCTGACCGAACAGAGACCCCGTATGCAGTCGCGCGCTGCCGTTGTACCACTCCAGAAAGGCGATGGTGTT -GTCTTCGCCGTCAACTCACGACCCCATCGAGGCGCGAGAGGAGATTATCGGGTCACCATGCGCCATGGGG -TCAGCACCGTGCGGTCGGGTATCCGCCATACACTTGGACTGATTTTTCATGATGCTCTTTGATCTGTTCG -AAGGAGAACGATCCCGCCTAACGCTTGGCGTGGGAGCGGCTCTGTTGGGAGGTTTTGCCAGAGAGAGGGC -AGACGAGCTGATTTCCCATATTCATGACCTATCCGCACAGGCCCCGTTCCGTCATATGGAGACACGGGGT -GGCAAGCGCATGTCAGTGGCCATGCTGAATTGTGGTCCTCTGGGATGGGTCTCTGATCGATCCGGTTACC -GCTACACAGCTTCTGATCCTCTCACGGGGAAAGCATGGCCTGCGTTTCCGCCGCTGTTTCTCGATCTCGC -AGCGCGAGCCGCACAGGAGATGGGATTTCAGGACTTCGTGCCGGATGCGTGCCTGATAAACCGATACCAG -CCGGGAGCACGCCTTTCCCTGCATCAGGATATGGACGAACAGGATCACGTGGCACCGATTGTCTCCGTCT -CCCTCGGCCTTCCAGCCACCTTTTTATGGGGAGGGTTGCATCGCAACATGCGTCCGGCACGTCATCAGGT -TTTTCATGGCGACGTCGTGGTCTGGGGAGGTCCGTCCCGCATGATTTTCCACGGCGTCGATGTTCTGAAA -GACGGCTTTCATCCTGCAACCGGGACTGTCCGATTTAATCTGACGTTTCGGAAAGTGCGATGACAGAGCC -TGTGCATCGTTGTCGGTGGGCACAGACTGACCCCGTCATGCAGAACTACCACGACACGGAATGGGGCGTT -CCGGTGCGCGATAGTCGCGCATTATGGGAAAAGCTTATTCTCGATGGTTTTCAGGCAGGGCTTTCCTGGC -GGACGATCCTGTTGAAGCGTGAGGCTTTTCGGGAAGCCTTCGACGGTTTTGTCCCTGACCGTATAGCCGA -GTATGGCGAAGCGGATATTGAGCGTTTGCTGGGTAACGCGGGCATCGTCCGCTCGCGCATGAAAATACGG -GCCACCATACAGAATGCCAGGGCTTATGTGTCGATGCACAAGAACGGTGAGGATTTCAGTGCGTTTGTAT -GGAAGGCAGTCACTGATCAGTCCTTGATAGGAGATGGAACAGGACTTGCGACGCGATCGGCCGTAGGAGA -CCATCTTTCAAAAGAGCTTAAAAAACGTGGTTTCAGTTTTGTGGGGCCAGTGATTGTTCACGCGTGGTTG -CAGGCCACGGGTGTCATTAACGATCATGAAGCACAGTGTTTTCGCCGAGACAAACATGTCACGGTATGAG -GAGAAAAGACACCGACGCTTAGTCTCTGTCTATCGAACCTTCCAAATCAAGCATGTCTGCTTGCGGGTAG -TGACATACTTCAGATTCACGTCCGACATGAGGCGTAAGCAGCCTGTTCAGTGTAAAATATTCTTGAGGCA -ACGGAATAAGGCGAAGTGTTCGTTCCAGGGAAATTCTATATAGAATCAAGAGTGTCAGAACCGAACACTT -ACTGCGGCATGATCGAGTGCTCTCAACGGCAAGGAGGCGGATTGTGGGCTGCTACGGAAGGAAAGGTGAG -GCCGAGGCGCTCGGCGCGGACTAATAAGTGCTTGACCGAGGAAGGATGCCAGCGCGTACCGCCGCGCGGA -GTTCTTTCGTGCATGGCTTCGAGCTGCGTCGCAATTTGCTGCAAGGTGCGATCGGGCGCTGCCGCTTTGA -TCCCGGCGACCAGACGAATCAGCCGATCATCGCCATGCCGCGGTTGGGCGCGGTCCAATAGGCCGTTCTC -CACAATTCCCTCATTGACCAGTCGCTGGACCGTTCGACGCAATCGTTCGGCGGTCCATGGTTTTCCCGAA -GTGTGAGGCGAGGAGCTAAGGTGTCCACGATTCAGGACACGCACGACATCACCCCAAGGGTGGCTTGGGC -GCATTCGCCGCACGATCGGTAACCAAGTGTCGAGGCGTGCAAGAACAGCGTCGAGATACGCGGCGTTGCG -ACTTTGCCGGATTTTGCGGATGGCATTTGGGTCGCGAGCCCGCAGACCCGGATTGCCACCGACGCGCCCA -CGGCTTCGGGCTGCACATAGTCCGGCTTTGGTGCGTTCGGAAATCAGCGCCCGCTCGAGCTGAGCAACGG -CGCCGAGCACCTGCAGCGAGAACATACCCTGCGGGGTCGTAGTGTTGATGGGGTCACCCAAACTACGGAA -ATGCGCGCCAACATAATCCAGTTGCTCGATAACGGCGAGTAGGTGGCTGACCGAGCGGGCCAGACGATCG -AGCCGGACCACGACCAAGGTATCACCAGCGTTCATATCCCTTAGCAGGCGTATAAGCACAGGGCGGTTCC -GGTCGGCACCCGAGGCATGTTCCTCGAAAATCATCGTGCAACCAGCGGCGCGTAGCTTGTTCAACTGTGC -GTCGGTGCCCTGATCGTCTGTGGAGACACGAGCGTAGCCGATAAAACGGCCGCCAACGGGTATTTTTCGA -GGTTTGGGTGGCACCAGGGCGACAAAGCTCCTTCTGAGTCGATTTTTATAATTCAAGAAGACATTCGTAA -ACGTTCGTTTGCAAAGGTGGCCAAGCCACCTGCGCGTGCCAACGGTCGTTCGTATAGATTCAAGTGCAAT -CAACCAGGGTATTTTTTGTCAGGAATGAGGGAACATTTTGCAGCCAATTAAGCTTCAAAAAACGGCCCGA -AGCAGCGTCAATGTGATTTTTGTCATCATTGTCGAAATTCCTTAATTATGTTAGTCAATATTCTGAAATT -TCAGCACGTTATTAATTCCCTTAATTATGCGAATCTCCCTTAATTATGCGAAAAAAGCCCTTAATTAGGT -TACAAATTGCGATGGTATTTTATCAACGTATGGGTTTGCTTACGCCTTGATGCCAATCATTGCGGTTTGT -TGAAAATGTTCCCAATAGCAGACATTCTGGAAACGACCTTCGAATGCCCATTAAACGGTGATTTGCTGGA -CAGTCTTTGCAAGGGGTGGTTTGGCCTGTCCAAAGTGCTGTCCGTCTGTTAAAATCGTTGTCAACTTTTT -AACGTCCAGCAAACATGCTTTGCTGGACATTTTTCTGTCTGGAAGGTGGGTATCGACCAATGGACCAGCG -CATTGGGTACACCTACGCGAGATTTTGGCGCTGTGCTCTGCAGGTCAATCCTGTCGGTTACAACGGCACT -TACAGGGGAGCCAATCACGGGCTAGATGAGGACGGCTACAACCAAGCACTGCTTCAAAAGTGTCTTGATC -TGAGCATCAAGGTTGTCGGTTTGGCTGACCACGGCAGCGTGACCAGCGTCGATGCTCTACGTCAGGTGCT -ACAGCCGCATGGGATCGTGGTGTTTCCAGGTTTCGAGATCGCATCGAACGACAAGACGCATTACGTTTGT -CTCTTCCCCGAGGATACCACGGTGCAGCAGCTTGATCGCTACCTTGGCAACCTCAAGCTCCATGACCCAA -CGGATGGCATCCGGCCTTCTCGGCTGAGTTCGGAAGAGTTGATCGAAGAGGTCGATTTACTGGGCGGGTT -CATCTACGCTGCACATTGCACGCAGGACAGTGGGCTGCTGAAAAATCGCCTGAACCACGTATGGAAGCAC -CCCAAGCTGCGCGCAGCCCAGATTCCGGGGTCGATAGATGACCTCACGAGCATCGAGGGGGATTTCTATC -GCAAGGTGTTGTTGAATAAGGACGACAGCTACCGGCGTGCGCGCCCTATGGCAGCGATCAATGCCAAGGA -TGTTGCCAAGCCTGATGACTTGGAGCAGCCGAGCGCAACGTGCTTCATCAAGATGACAAGGCCCACTTTC -GCTGCATTCAAGGTGGCCTTCCTCGATCCGGGATCGCGTGTCCGGCTCAACTCGCAGCAAGCCCAAAGCC -CAATTGGTAAGGTGGCATGCATGACGGTGGTAGGTGGTTACCTTGATGGCGTCAGGGTGGATTTTTCAGA -CCATCTCAACACGGTGATCGGCGGCCGTGGAACGGGTAAGTCAACCTTGCTCGAATGCCTGCGCTTCGCC -TTGGATCTGCCACCCAAAGGCAAACAAGCACAAAAGCTCCACCAAGAGATCATCAAGGAAAATCTTGGTC -GCTCGGCCGGTCGGATTGAGCTAACAGTAGTGTCCTCTTCCCAGAACGGTAAGCATTACATCATTTCGCG -CCGTTATAGCGAACCGCCGATGGTGCGTGACGTGAATGGCAACGTCTCGACCCTGCTCCCGCGCGACTTG -CTGCCGGGCATCGATATTTATGGTCAGAACGAGATTTACGAGCTGGCCCAAGATGAAACCAGCCGGTTGC -AGTTGCTGGCTCGCTTCCTTCCTCAAAACGGAGAGTACGACGCCAAGAGTGCCGACGTGCGTAGGCGCCT -GAAGGACAACCAGCAGAAGCTTACGAAGTCCCTGAGCGATCTCGACGAGCTGAATGCACAGGTTGAGCGC -TTGCCCAAGCTGGAGGAGCAGCTTCGCGGTTTTGAAGAGCTGGGGGTCAAGGAGAAGCTTGCCAAGACCT -CATTGCTCGCGCGTGAGCGAGAGATTGCAAAGACCGCGACCGAGGGCGTACAGAGCTTTCGCGACGCGAT -TACAGACTTGCGGAACAGCTTTCCTGACCTTGACTTCATCGATGATGAGGCGCTCGAGGGCTTGCCTGAT -ACTGCCCAGTTGCTTGCCATGCGCACGACGCTGGATGAACTCAAGCAGGGATTCACCGGCCATCTGACCG -CCATGCAGGCCTTACTTGATGACAAGGCAGGACAGTTCACCACTCAGCATGCCGTATGGCAGCAGGCGAT -TCAGGCGCACGATGTCGAGTTGGAAAAGGCGCTGCGCACATTACCCGCCACTGCTGGAAAGAGCGGGCAG -GAGGTCGGTGTTGCCTACCAGAAGTTGATGGAGGAGATCGAGCGCATCAAGCCCATGAAGTCGCGGGCGA -CGACGCATGAGTCTCAGCGCGACACCTTGCGTCAAGAACGGCAAAACCTGTTGGCCGAACTGTCCGATTT -GCGTGGGCAGCGCATACAGGCGTTGCAGAAAGCCGCGAAGAGGCTAAACAAGCGACTTGAGGGTAAGCTG -AAAGTGGAAATCGTACCGGAAGCTTACCGCATGCCTTTGATGGCGTTCCTGCTTGGATGCAAGTTAGATG -GCGTGGGCGAAAAGCGGCTTGCGTTCATTGAGGATGCTGAGACGATCAGCCCGCTGTCGCTGGCTCAGTC -GATCCAGAAAGGGACTGCCGATATTCAACTCGATTGGGGTGTCTCACAGATGGTGGCTGACGCACTCACC -AAGCTCCAGTCGTCTCAGCTCATGGAGTTGGAAGCCTTGGAGTTGGAAGCCTTGGAGTTGGGGCATCGCG -TAGACATCTTTTTGAATGTCGCGCACAGCCAAGCCGATGGGGTATTCCGGCCTCTGAACAAGCTCTCTAC -GGGTCAGCAGTGCACTGCAATTCTGCACATGCTACTGCTTGAGAACGTTGATCCTCTTCTCATGGATCAG -CCGGAGGACAACCTTGACAACGCCTTCATCGCAGATCGGATCGTCGCCGAGTTGAGGGAGGCAAAGACTA -GTCGGCAGTTTTTGTTCGCGACACACAATGCCAACATCCCGGTGTTCGGTGATGCTGAGTGGATTGGTGT -GTTCACGGCCGCTGAGAACCAAGGGTGTCTCGGGCTGGAAGCACAAGGCTCGATCGATGTTCCCGTGATA -CGGGATCAGGTGGCCAGCATTCTGGAAGGTGGGCGGGACGCCTTCATCCAGCGCAAAGAGAAGTACGAGT -TCTAATCGGCCATGGAGTAGGGTCCGGAACTATATTATTTATCATGGCATTCTGCATGGTATTGATAGAA -AAAACAGAATAATCTGTTAATTTGTCACAATAAAATACTAAAAACTACAATCGAGTGCGATTGTGGCTGC -GATTATTTCGCGATCTTGAAGGTCCGGTTTTTCAAGTTTCCATCCGAAACCGGACGGTCGGTTTGTCCCC -AGAAAAAAACGTCAATAACATCTCGTAATCTGACATTACATTAGGTCATACAACGTTATTATTTTGTCTT -TCATATCCTGAATTTGAATTGCAATTTGATGAAAAAAATCTACGCAAAATAGTGGCAATTGTGGTAGCAG -TGCGTAGTAACTTCCGTACATTACTCGGTTTCTTTTCACACGAGAAATGCGATGCGACAGACAAAACCGT -TAATCACTTCTGTTAGTGAAGATGTTTGGTCAAGAGCATCCCATCGACATGCACTGCTGCGTGGATTGTT -AGAGGAAAATCAAAGAAATCATCTTTCAGTCAAATTAGTTGCAAGCGACCTGGGTATCAGTGTTCAGCAC -ACTTACCGCCTTCTGAAAAAATTACGTGAGGAACAAACTACAGCGAGTTTGCTCCCATTACCCCGTGGGC -CTCGTGTTGGGAACAGACGATTAGCCGTAAATATAGAAAAAATAATCGAAGAAGTGATAAAGAAGATATA -TTTTAAACGTGAAAAACCGACACTGAAACAGGTCCATCGATATATAGAGTGTGAATGCCAAAAATCAGGT -TTCAATGTGCCGTCCATGAAAGCTGTTCGATCACGCGTTGCGGCTTGCAATTCAAAAACACTTATCAGGA -AACGCGAAGGAAAAGCGGCGACTGAAGCTGCGTTCCACCAGATTCAGGGAAGTCTCGAAGCAGATAGGCC -GCTGGAGATCGTGCAGATTGACCACACCAAAGTTGACCTGATGCTGGTTGACGATGTTACTCGTGCGAGC -ATCGGTAGGCCTTGGTTGACGTTGGTGATGGATATTCACACGCGTATGGTTCTCGGGTTCCTTCTGTCTC -TTGAAGCTCCCAGCACCACTTCAGTCGCGCTTGCCCTTACACAGGCGGTTCTCCCCAAAGATTCCTGGCG -TGCGGAGCGCCTAATCGAAAACAGCTGGCCAACGTGTGGGCTCCCTCGCTGTGTTCATGTCGATAATGGA -GCGGAGTTCCATAGCCGTGCGTTCGAGCGTGGTTGTGAGCAACACGGCATTCAGATTGCTTATAGACCGC -CCGCCACTCCACGTTATGGTGGACACATAGAACGTTTGATGGGCACGCTGATGCACCGCATTCAGGCATT -ACCAGGCACCACATTTTCGAATGTTGTGGAGAGAGGGGATTATCGCTCCGAAGAACGTGCATGCCTGTCA -TTTCGAGAGTTTGAACGCATATTGGCGCTGGAAGTGCTTGGTCCGTATCATAATGAAATTCATCGTGGTC -TTGGCCAGCCTCCTATAGCAAAATGGACGTCGAGCATCGAAACAGCTGCTTCCCGATATCCTTTGGATGC -CCAGGCCTTTCTTCTTGATTTTCTTCCCTATGAAACACGGGTGATACGACGCGATGGTGTTCGGTTATTC -AATATCCAATACCAAGATGGAGGCCTTGCACATCTGCTTGGGCGTCCCGATACGCGTTTGCGAGTGAAAT -ACGATCCCCGTAATCTTTCCTCTGTTTATGTCGAACTGCCTGATGGCGACCATGTCAGAGTTCCATACGC -AGATTTACGTCGCGAACCTATTACTCTGTGGGAACATCGTACGGCGGTTCGCCGTCTGAAAGATGAGGGG -CGTCGCAGTGTAGATGAAACCTCAATTTTTACCGCCATTCGGGAACAACGCGCTATTCTTGAGGAAGCGC -GCGGTCAGAGCCGTGAGGCACGCAGGAGTGTCGTTCGTCGTGAAGTGGCCCACAGACATGCTGGCAGTGC -ACCAGAACCATTTCCTGCTGGGGCAACAGAAGAGGATGCAGACCGTATCCCGATGCCGCCACCAGGCGCT -CATAGCGGTGTGGAGATCTGGTAATCATGTGCCCTGCAGAATGGTTGCATCTTCCAGAAGACGTAAGACC -ACTTGCTGCATTGGGGAGCGAAGAGAGGATCCGCCATATCCGCGCCAAGCGTTGGGTGGATTACCCCCAT -GCTGACCGCGTAATGAGGCGCCTCAATGAGATTTACGCCCAACCACGATCAGAGCGTATGGAAAATATGC -TTCTGATCGGCCATAGTGGCATGGGGAAAACGACGCTTGTCCGGAAGTTCGAACGTACCCACACTGTCAG -AGTTGGGAATAGCGGGACATGCCGCCTACATCCCATAGTCGTCATGCTAATGCCACATGACCCAACAGGA -CCTCGCTTTTTTGCACAGTTGCTCAAAGCAATCGGCGTTCCCACAATCGACAGCTTCGAGAGAACAGCCC -CACGCGAGTCAACGGTTCTGCGTGTGTTGGCCGAAGTGCAGGCTAAAGTCATTGTTATTGACGAGATGAA -TTCTGTTTTAGCGGGTACGGCCCGTCAGCAACGATTGTTTCTGCAATTGCTGCGCTGGCTGTCGAACGAG -TTACGGGTTGCTCTGGTGGGGATTGGTGTACCGGAAACCCGGCACGCTTTGCTTTCTGATGATCAATTAC -GAAACCGTTTTATGAATTTGGAACTTCCTGCATGGGAAAATGGTGAGGACTTCAGTCATTTCGTGACAAG -GTTGGTATGGAGCCTGCCGTTACGAGAACCGTCGCCTGTCGACTCCCGACGGTTAATGAAGATGCTGATC -GGGCGCACAGGAGGTATTACTCTCGGCACATGCAAGGCGATTGAACGTGCCGCCATCATGGCTATTCGTT -CTGGAGCAGAACGTCTGGATTATCAGGCTTTCGAGCACGCAGAAGTTTGGGACGGTATTGAAGCACCTGT -GTTGATGGCGGGACATCGAAGGAAATCTCGCCTTGGCTAAAGAGGGAACACCGTCATCCCTCCCAATCAT -TCCGTTTCCACACAGAGCAGAAGTGTTTTCCTCGTGGCTAGCCAGACTGGCTGCCCGCTACGATCTCCGT -GCCGATCACCTTGCTGTTCATGCCGGATATCCTCTCCGAGGGGCAAGGGAACTGGACTGTTATCTGCTGA -ACCAGGCGGATCGTGCCCTTGTAGACATGACAGGTCTATCTCATCGCTCAATCAAGACGATGCGATGTGC -TAGGCCACAAGCACGTCTATGGGTTCGAGATCATCCCGTATGGTGTCGGCAGTGTGTACGGGAAGATCTG -CTAAAGGGAGATGAGCCCTGGGAGCGGCGGGTGTGGCGAACAGGGGCGACTGTGTTCTGCGAGCATCATC -GACGACTTCTGGAAGAGGTCTGTCCACGATGCAACAAGATAGATAAGGGGTGTCTTTTTCTCAGTGACAA -AGGACGGATGCAGCCGCTGTGCGCTGTCAAAGGTGACAAAATTAGTTTGTGGGGAAGAGCACCAGATGAT -CAGCTTCCTTGGGGTCTGACAGCAGACAGAACAATGTTACGGTGCGTGAAAGCTCTGAGCATGGATCTCA -GTCGCAGCCTTGTTGGGCAGACACTTCGCGCACAATGGCGTGGTGTCAGCAGAGAACGCTGTCTGACGAC -AATTGTTGAAGAACTTACGCTGATGATACTGATCACGATCAATCATCTTCCAAAACCTCAACCGCCGCTT -TGCTGGATGCTGGAGCAGCCGGACTGGAAAGCCTCGTTCCGTTATACACCGGCCATGCTGCCAGTTTCTC -TGGCAGCCAGCATTATCGTGCTTGCTTCGGTAATATTGTCCGACCACCAGTTTCTTGAAGAACGCATTTT -CTGGGATCCTTCAGGATGTCAGATTGCCTGCGAACTACTTACGCCGGAGAGCTATGTGATGTGGCTGCAT -CCGAAAGTAAGATCATGGGGCCGACAGATCGTCACTGCACCGTTTGGCTTGTAACTTAATTAAGGAATTT -TTTCACCTAATTAAGGTTACTTTTGGTGTGGTTTGGCGGCGTGGAAGCCGGGATTCACCTAATTAAGGAA -TTTCGACAAACCCTTGCTTTTCCGTGTGCCCGCCTACTTGCGATAAATGGTATTAACGCAAGTATGTATG -GGGAAGGGGGCTGTTTTTCATAAAAAGACGGGGTTTGAAGCTATATGTTATATAGGGTAAATCGTTCTTA -TAGTTGGTGTTATATCAGTGGTGCCCTCAGGCCAAGGATTCGTTGTTGTTGTGGACAACGACAACATCCT -AAATTATAATCCAGTCTATGACGAAAGCCCGTTCCATCATGAAAGAGAAAATCACCCTTTCAGAACGGGT -GTTTATCGAATTGGTGGTCTGGGAGGTTCCTTCTCCCTTGAGAGGCAGTTTGCACCACTACAAGTATCGT -CTGGCTCTGATATCGGATGGCAAATGCGTTCTGCGATATGACAATGAGTCAGGAAAAGGAGACCATAAGC -ACATAGGAGCCGTAGAAGTTTCTTACACATTTCAAGATTTGCAGACCTTAAAAGATGATTTTTTGGAGGA -TGTGAGAGAATGGTTGAAATGAAAGACGTTCTGCGTAGCCAGAAGAAGAAAGAAATTCTTCTGATTGGTT -TCGATGGTTTGGATGAAGTGGGCAAACGACTGGCTGCAGCGTTTGAAGGTAAAAAACAGGAGCCCCGTCA -TACATTCATAACGCTTGATCTCATGTGGAGAACACTGACACCACGTCGTCAGGAGTTGTTGCAGGTGATG -TCAGGCCGAAAGCCCATGTCGATAAGAGGTCTGAGTAAGCTCATTGGACGGGACGTGAAAGCTACTCATG -GTGATATTCAAGTCTTGTTGGCAGCAGGTCTGCTTGAAAAGATCGGAGATAAAGTCGTATTCCCTTACGA -TGGGTTCCATGTGGACTATGAATTGAAAGCCGTAGCTTAAATTATCAGGATTGATGAGGTTTAGGATGCC -TTATGACTTGTCATGGAGCGAAAAAAGACTTCTCGTATGGAATATTCCTGCCGTCATCAGTGGTCTGATT -GCAGCATGGTGTGTATTTACCAGCGATCTGGAATGGTCTTTGGTGTGGGAATGGCCGCTTCTGGTTGTAA -TGTGTGTCATGAGCATCAGCATGATGCTGTTTATGGTCGATTTGGACGGTGACACACCAATCCTCGATCG -GTTGAGGCTGGTCTGTACTGACCGCATTTATGCTCCCTTTTTTGGAAGCATTTCGTTCGCATGGTTGTGG -AATGTGTTTGCGCAAGGCTTTGCTTTCTGGAAGATCCAAACCACGCTTCCCCCGCCGGTCATCAGACAGA -TCACCAGTCTGGATTCAAAATTTCTGCATGACCCACTATGGGGCGATCTGAGCTGGTGGGCGTCTGATGC -CTTCATGAAATCCCCTATTTACGCAGTTTTCGGGATTTTGGCGCTACATGTGGGCTATAGGCTGTATAAT -TATCAGAGATAGTCTCACAATGGTCTCTGATCAGGACGGTCCCTGTCGTTTTCCATGGGAACGACAGGAA -CGCAGCCCTTATTCATTTGCCTTTACAAACGTAAAGGCACAAACAGATGATGTGTTTGTTGGAGGACACA -TCATGGCTTCAATTAACCTGCGCATCGATGACAGTCTGAAGAAAGCGGCCTACGATCGTCTGTCAGAACT -CGGCGTGACACCCTCAGATCTCATCCGCCAGACCTTTGAATATGTCGTCGCTACTGGCAAGCTCCCTGTC -CGGCGCACTGTTGTATCGGATGACGGTCTGGAGCTCCTTGGCGTCGTTCGAGAGCGTCTTGTCTCGCCTG -AACCGTCTCTTCCGGTTTCATTGGACGATCTGTGAGCTGCTATAAAATCAAACGTCGAGCTTCCGGATAC -CGGCTGGTGTATCAGGTTCATGAGGGGAAACTCATAGTGCTGGTTGTTGCGATTGGACGCAGGGATGCCA -ATGAGGTTTACGACGATGCAACCCGCCGCGTCTGAGCATGTTCCGGACAGCCTCAGTTCAATCTTCTGAC -GGAAAGTTATACGAAAGCCTCACCCAGACGGCACTGGCTTTCGGCAGACTTGATCAGCGCCTGCATCATC -ATCCTCTCCTCCCTGCAATCCTGTTTCGGGAGCGGCTGGAAGCTGCAAGAGCCTGTGCAGCAGTTGATGG -CCATCTCATAGATCCGTGGCGGTTAGCGGCAGAACTGGAAGGTTTGAGATCAGTACCACTCGGATGTGAT -ATTTATGAACGCGGAACGTCTGTGGACGCTCTCCACGCTGCGTTTGAGCAATATCAGTGGTTGGTTAGGC -CAACAGATACGCAACGCAACGCCATAGAAGAGGCTTCAGGTTGGCTCAGCAAGTATCGTGTCAGATCAGG -CCCTCTTCTTGGCTCTGCCCACGCCTTTCATGCCTGGATAGAAGCAGGACATGCTCGTGCCCCGATGCGC -GCCGCTTTGATCCGCCACTGGCGCCTGACCAATGTTCTTCATTTTCCGCTTCCCCTTGTTGGAGCCAGAT -CCTTCGTACCGGAAGCACCTTGGAGCCCTTCAGAATGGCTCCCTTTTTTCCTGAACTGTCTGAATGAAGA -GATCGCGGCCGTTGAGGACCGCACACGGACTCTGGAACAAAGCTGGCGTCAGGCCAGATCAAAATCGGGT -GGCCAACGTCGCACCTCGCGCGCTGACAAGGTGATAGATCTGCTCACAGCCTATCCAGTGGTCTCGGCAA -CACGCCTCTCAGCCGAGCTCGGCCTGTCGCTCAAAGCTGCCTACATCTATCTGGAACGTTTTCTAGAAGA -AGGGCTGATTGTTGAAGTCACGCATCGCGCGGCGCGACGTCTGTTCGCACTAAAAGATATGGAACCTCTC -CGCGAGATCGTTCGTCCTCCCAAAAGATCCCAACCAGGCAGAAAACGTGGGCGACCGAGAAAAAAAGAAA -GTCAGGAAACCTGTCCTCCAGATGAGAACGTGGACATCCGGCCGGTAGAGCCGGCGCCCACGTTTGCTCC -CATTAATTATGAGGAACTGGAGCGTGCGATAGATCACGCAGAACGTCTCATCAGCCGCCATCGGCCGGCT -CTGTTGCAAAGTTTTGAGCGATCTGAGGATCCGCCTCAAAACCAATAGCAGTTTCAGATATGAAACCAAA -CTTTGCAACCGAGCACTCAAGGGCGTACCATTGCGGCGCGACACCGGCCTATGGCGGGATCACCGTTGCG -TTTTCATGGCCTGTCCTTCAGTATGCTGGCATGATGCGTTCACTCGTCCCCCTTTCCGTTCCAGGTCTTC -TCCTGCTGTCGCTGCTCTCATCTGAACAGGCATACGCCGTCTGCATGGACATTCCGGGCCGTTATGATGC -TGAGACCCGCCGTCTGGACGAGGCTCTTCAGGACTTTGCCCACAATTCCGGCTGTTTCGTGCATGTTCTG -CCAGATCAGGAGCGCACCCAGTCTGCTCACTGGATCCATGGCCGTTACCGTCCCGCCGATGCTCTCGCAG -CCCTTCTCGAGGGAACGTCTCTGAGGGCTGTCCGCACATCCGAAGGCTTTCGGCTTGAGTCCGTCACGCC -AACTGGCACGTCATCCGATCAGGACGCGCGCAAACCCGCCCAGACAGACGGCTCCAAAGCGCAGCCAACG -TCGCACCTCGTGCGCTGACAAGGTGATAGATCTGCTCGCAGCCCTATTCAGTGGTCTCGGCAACACGCCT -CTCAGCCGAGCTCGGCCTGTCGCTCAAAGCTGCCTACATCTATCTGGAACGTTTTCTGGAAGAGGGGCTG -ATTGTTGAAGTCACGCATCGCGCGGCGCGACGTCTGTTCGCCCTGAAAGATCTGGAACCTCTCCGCGAGA -TCGTCCGTCCTCCCAAAAGGCCTCAACCTGGCAGGAAACGTGGGCGACCGGGGAAAAAAGAAAGTCAGGA -AACCTGTCCTCCAGATGAGAACGTGGACATCCGGCCGGTAGAGCCGGCGCCCACGTTTGCTCCCATCAAT -TATGAGGAACAGGAGCGTGCGATAGATCACGCAGAACGTCTCATCAGACGCCATCGGCCTGATTAAGTTC -AGCAGGAACTAGCCAAACTGCGGGCCACGTGATTTTGGGCTATTTGGCTGAGGGGGTGTTTCTTCCGGCC -CAGAAAGTTTCTGGCTGGCCCGATTGAACCACGATGCTGGGGATCGTGTCTGTTCGGCACTCATACCTTG -CACTGCTCGTTGATCGTCCTGCAAGTCAAGACTACGCACGGCAGCCCGCCCGATGGCATAAATGGCGTCA -CGTGCAGAACCGTCGCGGCCGGGGAGAACGGTCAGCTTTTCAATGCCCGCCTTTTGGGCTTGATCGATAT -GACGCAGAACGGCGCCAACCTGCGTGTCGCTTGCCAAAGCTTTCAGTTCTCCCCGTAAGCCCCTGAGTTC -TTTCAACGTGGCACTATCTGCCTGGCCTGCGTTCAGTGTTCTGGTGGCCGCATCAATCCCGGATTGCAGT -TCCTGGCGTGCTGGATCACGGAGCGACAGAGCTTCACGACGTGCCTGGTCGGGCGTCATTGTTCGGCCAG -ACTTAAATAACGTTGCGATGGCATGCATCATAAGACGCTCGTCATTGACTGCCGCTTTGCCGCAGGCTCT -GTTCCATTGATCGTGATCGAGTTGGCTGAGGTCAAAATTATGGCCGGCGTTCCGAGCAAGGTGTGAGAGA -TGAAGCAGGGTGACCTGCTGGTTTCCTTGCCGAAAAGGCAGGATTTTATCCAAAGCGGCAATATGGGTGG -CAGCTCCCCGCGCAAAACGGTCGGAAGAGAGATCCCGCAAACCATTATTGGCTTTCAGGTTTTGGAATAC -GCCTTGAACTGACTGGGAAATCCGGTCTGGATGAAGACCTTTCCGACCATCAACAGCGAGATCGCACGTC -CGGTATTGACCGGCCCAGTCGTAGACATCCTGAAAGAGATGGTGATGCAAATCCTTAAGGGCGGACGTCG -CGTTGGTATCCGTGGGCATGGTTATCGCACGGCTGAGATACCGGGTTGTTTCAAAAATGCGAAGGCGTTC -AGCATTCTGATAGCCCTTCTTGTTCACGAGAACTTCCGTGCCAGGATAGAGATAAGGGTCGGTGACGGGC -ATCATTCATCTCCTTCCGTAGGGCGGATTGGTTCATCCAGTTCCTCATGAAGGCGTTGAAGAAAATCCAT -GAAAATTTCCACCGGTACGCATGCCTCAATAAGTAGGGTTGTAAGAGAGCTTATTTCGGCTATCTGACTG -CGATCTGGCCTATCAAGTTCGCTCATGACGCACATCGCGTCCCGGATCAGGACCTTATAGAAAGACGTCA -TATCCGCAGAAACTGGCTCAAACGTCAGATTTGCTAATTCCTCTCGGTAACGCTCGACACGTGGAAAGCG -TGTTGGTTCAAGCATGGTGCCCTCGGTCCTCCCGGTTGTGCCGAGCGAAGGGGGAAACATATCCCTTATC -GTCTGCATCGTATGATCTCCTACGATCACGACTCAGCCAGAGCATGATGCGACCAAAAACACATTTTTTG -CTTGAACTTGAAACCACCTGGTTGACGCTTACTGCACGACAGTCGGACCGTTTTTCAGCTTCTCCGCCAG -CCCGTAGAGTGTACGATCCAGTGCGAGTTGACCCGACAGGTAGCGCGAAATCATGGCACGGAGCAGTCCT -CCCGGTGAACGGACTTCTCCAGCATCTGTCCGTGCGGCAATTGCTGCGATCACCACTGCATTCGGATAGT -CCCCAAAAACAGCTTGCCCCTGTGCCCAAGCATGTCTGGAAATTCCCAGCTGTTCGCACGCGTAGAGCGC -TGCCTGGATGATCTGCGTCTCGGCCGGCCTATCGGAAGTGCAATACTGACGGAAAATCGGGGCAATATGC -AGCACGAATGTCGGCTTGGCCCGGAATCCCCTCAATGGATCTGCCGCAGAAGGGGGTGGTGTCTGGTGTT -CTGCAACACGGGAAGACGAGGACGGCCGACTACGCGTAGCTTCAATGCAATTTTCGGCGGAGCCGTCTGC -TTTTACAGTAGCTTTAGCTAATATGGATGGGTTTGTATTAGTATATTGGGGTCGCTCAGGTGACCCCATG -GGGTCACTTTCCACAGATAAAAGAGACGAAGCTTTGATCTCATCAGGTTGATGTTCTAGCTCTTGAAGAT -ACGAAATGTCCCTCTCCAGCTGATCGTGAAGTTGGCGTAGCTCCTGACATATGGGGTCAAGCCACTGAGG -ATCGCGATCTGTCCCACGCTGACCGACCAACGCAGAGGTGCGAGCGAGTATCTGTTGTCTGTCTTTTACC -GTGAGCCCTGCCTCATCAGCCGTCTGGAAAAGGGCATAGATAGTCCTGGCAATCATCGTGACTTCGCGAT -GCAGACGGCGACCTTCCTGTTGCCGCCACAGTGCCGTTTGTGCTGCGCGTTCCAAATCCTCAAATCGGCG -GGCGAGCGGAGAAAGATCAAACCCGTAAGCCTGCTGTCCCCTTGGAGCAAACGGGCCTGATCGCCTGTAT -CGCTGTCCGTTGGGACTATCCCGGTAGAGAAGCCACCCAGCTTCGGCAAGTTCGCGCAACAGAGTTTTGA -CGCGGGTGCGGCCGAGGTCAAAGCGTTGCTGGATATCCAGATTGGAAGCCGTCGAGACGGGCAGAACATC -GTCCTCACCTGACCAGTCGGCAGGTTGGGTAAATGCGATCAGATAACAGAGCAGTTCTGTCTGCTGGCAT -GTCAGGCCGAGAATCGACCGTCCTTGACGCAAATAGCGATAAAGGTCGCTCATTTCCACAGCCTGCAGCG -GTAGGGCCTCAGCTGTTGCGCGCGCCGCAACCATGGCAGGCGTGATTTTCCTGATACCCGCAGAACGGGC -ATAATCTTCTGTTATCATTATTCTTTTTGTCCGACGAATGGGTTCAAAACCCCCGTCGCGCTCCTGACCC -GCAGGACAAACGTCCCCTATGGCAAGAAAAGACTTGCAATTTTACGGCAAATGTCGGAGAAAAATTGTCG -CCAAACTATTTTCATCCGACATCCCCTAGGGAATGTTTTTTGTGTCTGCAGGCCTCGCGAAAGCGGGGCC -TCAGTCGTTTTTGGGGGAAACTATGTCATGGCTCATTCTTCCTCTCAGTCATACTGACGAACCAGGCCGC -ATTAGCTGCCCTATCCATCGCCTCTTACATATTCCTCACTGCACGATCTTTTCCTTTCAATAGGAAAAAC -CGATGCACACGAGACCTTTGGTTGGCGCACCCACTATGTGCTCGTCATGCGACAGGATGCACAATCAAGA -TGCGACCAACCACAAGGGCATAAATGTTTGAGACTGATTCCACAACAAACAGCACCACTATTTGTACAAA -AACAAACACTTATGCCCAGAAAACTGAGACTGGACGGATACCGAAAGGGAGTCGTGAAATAACAAATTCC -ACCCCCCGGATTCTTGCAAGATGGTTTCCGAAAATTCACAAATCAAACATGCTGGTCAAAACCAGAAATG -GCGGTACAGTCGCGGTTTTCAGCCACAATGGTTATCGCAGGATCAGTTCCTTGCATGAGTTTTAGCTCCG -CGATGGCCGTATTAGTGGTCAGGTTGCTATATTGAGGATTAATCCACTCAGTTAGCCATGGTCTGTCTCC -TAAAGATCGGCCAGAATTTCGCCAGGCAGGTCGTTGGAGAGTGTTTCCCTCGGTTGATAGTACATGACAG -AACGAATGACCTCCCCCGATGTAGAAGATTAAATGCCGTATTGATCCAGTCATGCGTCATGTTGTGGGCG -ATATAGGGATCGACGCTGAATTTTCCCGCCAGCCATTCATCGACCATGCCGGGTAACGGCGAACACCCTT -TTACCCTCCAAGGCCGTACCCCGGCAACACCGATGACCGTGCATTTCCCCCAGCCTTTATGGCCGCGCTT -AAGGGCAGCGCGCATGACATCAACGCGACCGATCGCTTCGAAGGAATAATCCACTCCGCCGCCCATCATC -TCGATGATCACCTTCTGGATCGGATCAGTATGATCGGTCGGTTTAACAAGATCGGTCGCTCGCAGATTTC -GAGCCTTGGAAATCAACCAGATCAATCTCCAAGCCATATTGGGTTCTCACGCGATAACAGCTCGTATTTT -CATAAGAAAGTCACTTTACGTAGATGCATCGCAATCACCCCTTCAAGCGTGCTCAAGATTTTCCGACTGG -CGACGCCAGACCGGAAAAGGATCGGGCAGTCGTGCGTAGCGTAACGGCTCAAAAGGGGTATCTCCAAGAT -CCGGCACAAGACAAGCGTCAAGATCCCGGCGCAGTCCTGCTTCATCCATCTCCGCCGTGCCGATGAAGAC -GATTTCCTGCCGCCGGTCGCCATAGACGGAATCCCAGTTTCCCAGAACAAAATCCCGCCATTGATCGCTG -TCTGGCCACTGGTTTTTCGGTATCGCGGCCCACCACAACCCCATTGCTTCGCTCCGCACAAGGGCTCCGG -CCTGACTCATTTCTCCTACCCAGTCCGGGCGCGTGGCCAACCAGAAATGACCTTTGGCACGCACGACACC -CGGCCAGTTCCGGTCAAGAAAAGCCTGGAATTTTGCGGGCTCGAACGGACGCCGCGCCCGGTAGACAAAA -TTATGGATGCCATATTCGTCCGTTTCGGGAACATGATTGGCAAACCCATAAAGTTCCTTGAACCACAACG -GATGCTGGTGCGCCTTGTCGTAATCGAAGCGACCGGTATTCAGGATCCGTTCAACAGGAACCCGTCCCAT -ATCGGTCTCGATGATGTCGGCGTCCGCATTCAGCGCGCGAATGATCTTCCGCGCCGCGTCCACCTGATCT -GGCGTGGCGGTGGAAACCTTGTTGATGACCACGACATCGGCAAACTCGATTTGCTGGACAAGCAGATCGA -CCAGAGCACGCTCGTCGTCTTCCCCGGCTGTTTCGCCCCGATCCTTCAGAAAATCGCTGGAGGAATAGTC -GCGCAGGAGATTGACCGCGTCCACGACCGTCACCATCGTATCCAACCGTGCGATATCGCTCAGGCTGACG -TCATTCTCGTCACGGAACTCGAACGTCGCGGCGACTGGCAGCGGCTCTGCGATGCCTGTGGATTCAATGA -GCAGATAATCGAATTTCCGTTCCTCTGCGAGCCGCCGAACTTCCTGCAACAGATCATCGCGCAGGGTGCA -GCAGATGCAGCCATTGGTCATTTCGACCAGCTTCTCATCGGTGCGCGACAGATTGCTGCCACCATCGCGC -ACCAGATCGGCGTCGATATTGACCTCGCTCATGTCATTTACGATCACCGCGACCTTATAGCCTTGGCGGT -TATTTAGCACATGATTGAGTAGGGTCGTCTTGCCCGCGCCCAGAAAGCCGGACAGCACGGTGACGGGAAG -TCTGTTGTCCATGGTTTTTTCTCCTCTAAAGCTGTGTTGGGTTCGGAACGTCGCCATAGACAGCGACTGG -ATCGAAGGTCTTGTGCGTTTCGCAAAAGACGAGTTCAGCGGATGACGCCGAAACGACTTCATCAGCAGTG -AGATCGACACGCCGGTAAAAACAGCTTCGATAACCCACATGGCAGTTCGCTCCTGTGCCCGCGGTGCGCA -CCCGCAACCAGACCGCGTCCTGATCGTCATCAATCCGCATTTCGATGACATGCTGGATCAGCCCGCTCGT -GGCGCCTTTCCGCCAGAGACACTGGCGGCTCCGGCTCCAGTAATGCGCCTCGCGGGTTTCGATGGTACGG -GCGAGCGCTTCGGCGTTCATGACGCCGACCATCATGACATCCCCGCTCTCCGCGTCCGTCGTGACCACGC -TCAGCAATCCGCTAGCGTCAAAACGCGGGGCAAGATCGGTTCCTTCCTCGACCTGCTCGATAGAGACACG -AGGCTGGAACGCTGTTGATGCAGAGGGGAAAGTTTCGCCCATCATACGCCCCCTATTCCCACCATAGCGA -AGAACTGGCGACGCAAAGGTTCCGAGGTCTTGAACTCGCCTAACAGGCGACTGGTGACCATGCTCACGCC -CGGCTTACGCACCCCACGTGTGGTCATGCACTGGTGCGCCGCGTCGATCACCACCGCAACGCCGCGCGGC -TGCAGAACACTCTGGATTGTGTCGGCGACCTGGGCTGTCAGTTTTTCCTGAATCTGGAGGCGATGGGCAA -AGACGTCCACGAGCCGCGCCAGCTTGCTGATGCCGACTACCCGCCTGTCGGGCAGGTAAGCCACATGCGC -CTTGCCAATCAGTGGAATGATATGATGTTCACAATGGGATTCCAGCCGGATGTCGCGCAGCACCACCATT -TCATTGTAGTTTCCGGTTTCTTCGAAAGTCCGCTCCAGAAGGGCGACCGGATCGTCCTGATATCCCTCGA -AAAACTCTTCATAGGCCCGCACCACACGGCCGGGCGTGCCGACCAGTCCCTCACGATCAGGATCGTCACC -GGTCCAGGCGAGCAGAGTCCGCACGGCTTCTTCCGCCTGAGCCCGTGTCGGTCGCACCCGGATTTTTCGG -GGCGTTTCAATCAATGTGTCCATTCAGTCCTCGTCCCGGCATTGACTATGTTATGTTATAATATAACATT -ATGAACATCGCCCACTTCTCGTCAAGCGCCGGAGCCATGCCGTCTTCCACACAGCAACATCCCGTCTCGA -TGAACATGCCCCCGTCAGCGCGTGCGCCGCAGGAGAGTCCCGGTGTCATGCTGTTCATGGAGAGTTGGCC -CGCAGCGAAAGTCGATACACCAGAAGACGCCGCTCTTGGCTGTCCCGCACCGCATGTAGTCGCCTGTGCC -CACGCGGCCGTTGTGATGGATCTGCAACGGCCAGATGTTGATATGGTCGTATGGGGCCGCAGAGTTCCAG -CAGCTTGGGAGAAGTCGGTCACAGGCTGGTCGGGCTCCCCGTCTCCTCTCACTCTCTCCGGCATGCCTTC -GGAGATCGCGGATTACCTTGCAACCCCGGCTGTGCTTCAGGATTGGCCTCCCGTCATTCTGACGGATGTC -GTGGATCTATCCTCTCTGTTCGCTGCTTTGACGGGAGGCATCCGACAGCACATCCGACTGATGGCCTCCC -TCAGTAGTGATGCAATATTCGAACTTCCTCCTGATGCGCTCAGGCTGATCTGCGGCTATGGACGCACCGG -GGCGGAATGGTGCAGCAATCAGGACCCGAAGAGCGGCATCGTTAGTACCCTGTCGCCTTTCGCCGTTGCG -TTTATCAAGGGAGCTGCTGAAGGCGAACCTGGCTGCCTCCATCGTCTCCCGGCCAGTGACCCAAACGGTG -CGATTCCGGGGCCAATCCTTGTGATGGATACGGTTTCCCGATGAAAGAACATGTCACGCATCCTTCTCGC -GGCGTCCATCAGGTTTCCAATACCCGAAATGGCCGGACCACCTCTTTGCTGAGTGATGTGCTCGACGCGC -TGACTAAGACAGATTTGCCGTTATCGGCTTATGATATCCTCCGGTGTGTCAGTCATCCAGATCGCCGCCG -AGTTGCCCCGCCTACAATTTATCGAGCCCTGGAAAAGCTGATCGCTGACGGGCTCGTCGGGCGGCTCGAA -AGTCGAAATGCCTTCGTGCGGATCCGGACAGGCGATCCGTCGCGCCTCGTCTACTGTATCTGCGACCGAT -GTGGCGCCGCACAGGCGGTGGAAACCACGTCATCGTGCCAGCAGATCGACAGCGCAGCCGAGACCCTTGG -ATTCCAGGTCAGGCACCGGGTGATGGAAGTGCAGGGCGTCTGCGCTCAGTGCAGTACCTGTCCTTCTTTC -TCGTCCGCGTTGCAACGCCCCCAACAGAACGATCTTCCGACACGCGCCCCCAAATGAGCCGCTGCCCTCT -CATCGCCCTTCTTCGTCAAGGTTCTTCAATGTCATCGACCACCATCGCGTCCTGTTCCGCATCACATTCC -CCAAAGGACGTTCTCGCCCGGCGTGTGGACGGCGCTCTCTCCGATCTTTCGGCAATCATGTCAGGTGACC -GACCTTCTGAGCCTGTTTTCCGGTCAGACGCCGATGCACTTTCCCTGGTCCGGCACGACACGGCCCATGT -TCTGGCACAGGCCGTCAGTGAACTGTTTCCCGGCACCGCGCTTGCGACAGGGCCCGCCACGGAGCAGGGA -TTTTTCTACGATTTCGCGGCTGAGCGCGCTTTCACGGATGATGATCTCGTTCGGATCGAAGCCCGCATGC -ACGAGATTGTCGATCGGGACGAAGCGATCATCCGGGAAGAATGGACGCGTGAGAGCGCCCTTGCCTGGTG -TAAGGAGAACGGACAGCCCTACAAGGCGGAGATCATCCGGTCCCTGCCTGTTGATGCTATCCTGAGCTTT -TACCGACAGGGCAGCTTCGTCGATCTCTGCCGGGGGCCACATCTCGCCAGCACCGGGCAGATCGGACACG -CCTTTCGGCTTCTCGGCACAGCCGGGGCCTACTGGAAGGGCGACCGGAACAACCCGATGCTACAAAGGAT -TCACGGCACGGCCTGTCGTGATGCCGACGAACTGGCGGCGTGGGAGCGACGTCAGGAAGAAGCGGCACGC -CGCGATCATCGCCGACTTGGACGCGAGATGGATCTATTCCATTTCCAGCCTGAAGCACCGGGAGCGGTCT -TCTGGCATCCAAATGGCTGGACGCTGTTCCAGACGCTTCTCGCCTATCTACGCACGCGCCAACAGGCCGA -GAACTATGTAGAGATCAATACGCCCGACATTATGGATCTGTCTCTCTGGCAAGCTTCCGGCCATTGGGAA -AAATTCGGGGAGAACATGTTCACCACCGAGACCGAAGGCCGCACCTACGCCCTCAAGCCCATGAACTGTC -CCGGTGGCGTGCAGGTTTTCCGTCATGGCCTGAAGAGTTATCGTGACCTGCCCCTGCGGATGGCTGAATT -CGGCAAGGTCCATCGCTTCGAACCGTCAGGAGCGCTGCATGGCCTCATGCGCGTGCGCGCATTCACGCAG -GATGACGCGCATATTTTCTGCACGCCGGAGCAGATGGAAGCTGAGACGCAGCGGATCTGCCATCTTGTGC -TCTCAATCTATAAGGATTTTGGCTTCGACGATGTCCGTATCAAATTCTCTGACCGACCCGAAAAACGTGT -CGGATCGGACGAGATCTGGGATCGCTCAGAGGACGCGTTACGGCGCGGGGTCGAAGCTTCGTGCCTTTCC -TACACGCGCAATCCGGGGGAAGGTGCTTTTTACGGTCCCAAGCTGGAATTCGTACTGCGTGATGCAATCG -GACGAGACTGGCAGTGCGGTACCGTGCAGGTCGATCTCAATCTGCCTCAGCGTCTGGACGCGCATTATGT -CGGCGCGGATGGGGACAAGCATCCGCCCGTCATGCTGCACCGCGCCCTGTTCGGTTCGCTGGAACGTTTC -ATCGGCATTCTCCTTGAACACCATGCCGGCCATCTGCCCTTCTGGCTCGCTCCCGTTCAGGTCGTTGTGG -CGACAATCACCGCCGCCGCAGACGAGTACGCGGACGATCTGATCAAAGCACTCCGCCAGCGTGGCATCCG -CGTGGCACCCGATCTCCGTAACGAGAAAATCGCCTACAAAATCCGCGAACACAGTCTCGCGAAAGTGCCT -GTGCTGCTGATTGTCGGAAAGAAAGAAGCACAGGCGGGAACCGTCTCCATCCGGGAGTATGGAAACCCGG -ATGCACCAACAATGACAATGGAAACAGCCATCGACCTGCTGGCTGACGCCTCCCGCTTCCGCCTGCCAAA -GGTCTTTGGCGCATGAAGGGACTACGCGCTGCTCTCGCGGATCTCTGGTATCTGAGCCGACCCTATTTCA -CCTCGGCGGAACGCAAATCGGCCTGGACTTTGCTTGGCGTCGTACTGGGGCTGACCCTTCTGCTTGTGGG -GGCGGATGTGCTGCAATCGTTTTCGCGTAACATTTTCTATACCGCTCTACAGCAGCGGGACGTCACATCC -TTCCTGCGTGGTCTGTTCTGGTTCGTTCACACCCCGACGATGCCGATCCCCGGCTTCTTCATCATCGCAG -TTCCTTCCCTGCTGGCGGCGGTATACGCCACCTACCTGCAACAATTACTGCAACTGCGCTGGCGGCGCTG -GCTCACACATCGCATGGTCAGTCAGTGGCTTGACCAGAACGTCGCTTTCCGGATTGCCATAGAGGAAACC -GGTCTGACCGCTGTTGGCGATAATCCCGATCAGCGTATCCAGGAAGATATCGACGGCTTCGTGCGGAACA -CGTTATCGCAGTTCCTCGACATCGTGTCACGGCTTGTCACTTTGTTCAGCTATGTCGGCCTACTCTGGGT -GCTGTCGGGTGCGATCTCGATATTCGGCGTACGTATCCCAGGATATTTCCTGTGGATAGCTCTTCTTTAT -TCACTCTTTGCATCGGTCGTCACGCATCTGACGGGTCGTCGCCTGATTCCACTGCGGATCGCCCAGCAGA -AAGCGGAAGCTGACTTCCGGTACAGTCTGGTTCATATCCGCGATCACGCGGCTAGCATCGCTCTCAGTGA -TGGGGCCGATCATGAGAAGCGTCTTCTGATCGGGAAATTCGACGTCATCTACGACAACTTCCTCGGGATT -ATGAAACGCGCCAAATGGCTTGGTTTCCTGACGGATGGTCTGGGAACATTATCAGGAAATTTTGCTCTTC -TCGTCGGATCAATCCGCTATTTCGCTGGCAAGATCACCTTCGGTACGCTGATGCAGCTTGTGCAGGCTTT -TTCCCGCGTTGAGGACGCACTCGGATGGATCTGGTCCTCCTACGCGTCACTTACTGAGTGGCGGGCCAAT -GTTGCTCGTCTGGCTACTTTCCAGCGCACGATGGATCGTGCGTCTGTCGGCACCGGGAAAACCACGCGCG -AAATTAAGCCGACCGTGTGCGACATTGTGACTGATCATCTGGATATATACCGTCCGGATGGTTCGGTGCT -TCTGTCGTCGGTAAACATAACATTGCCCAGAGGGCATGATATTGTCCTGATCGGGCCATCAGGTCTCGGA -AAATCGACGCTTCTACGCACGCTCGCCGGTATCTGGCCGTTCACCAGCGGCACAATACGACTGCCTGCGG -AGGAGATGATGTTCGTTCCGCAGCGTCCCTACCTTCCTCTTGGAACTCTGCGCGCCACCCTATGCTATCC -CCGCGCCCCCGAGACCGTTTCCGATGATCGTCTTTGCACCGTCCTCGCGCAGGTCGGCCTGTCGGCCCTG -ATCGACGATCGGGATACTGAGGGCAGATGGACGGAACGGCTGTCGCCGGGAGAGCAGCAACGCCTGATGT -TTGGTCGCGTTCTGCTCAATCAGCCGGCATGGGTGTTTCTGGATGAATCGACATCGAATCTTGATACCGC -CTCTGAAAACCAGCTCTATGACCTCCTGCGCGACCATATCCCGTCAGTAACGATCGTGTCCGTCACGCAT -CGGACCACGCTACAGGAACGCCATCCGGTGACGATTGATCTTCAGGTTTTCGCTCCATCACAGTAAGCCA -CGTCGTACGTCGTAACTTCCTGCCTCCTGCCAGCATTCCTATGAGAAAAATGGACTTGTCTTGACCCAAA -GTGCGATCAGCAAAGCTAAAAACAGAAGAATGGTACTGACCGACACCAAACACACCGCCGACACTGAACA -TCAAGCCACCCACGGTAGCACCTACCGCAATGGCGCGACCACCTTCCCGCTGGCGCTTTCGGCCTGATCG -GGAACTGCATAAGCAACCCAATTCAACCACACCCAAGGACGCCCCTAACCCTCTCCGCATAGCAAACATT -ATCTGCGGCATGTGTGCGTTGCACTTCCGGCGCTGATATTATCTAGTTCGCAAAAAGAATTTGATATAAT -TGTCTTCACATGCTCTCTCGCACTCACAGTTCAACCTACCTGCTGGCCTTCTGGCCTCTCGTATTGCTTG -CGCTGATTGCACGCCTGACATTTGGCGGAATTGCTTCCCCAACAGCACTGATCGACGATCCCCTCAAAAC -TTTTACACAGCTGAGCATTCTTTGCGATGCTCAGAACACATCGTCTGATCCAGACGGACAGAACCATCAC -TCAACCGCTCCCGACGATGACGGCTTTCTTCTGTCCGAGGCATTGGATCTGCTTATTGTAAGCATCGTTT -TCTGTCTTTTTATAGGATTGTGTGTTGCTGGCATTCGCCAGACATGGATGTTCACAGCCATCCGGGGGCC -GCCAACACCGAAACGGACTTCTCTCTGCCCTCAGGGACCTCCTGTCTGATCTGAATTGAAAGAGCCGCTC -ACCTAATCATGTAGGTGAGCTTTTTGTGCTGTCTCTTCAGGTTCCTTCACATGTTTCGTACTGTTTATTT -TTCACTCCCGTTTTACGGGACAATGATCGCTGGTGCCATTTTCTCGGCCACCACGACGCACGCTGCCATC -GGTGCAGAGAAGCCTCGTCCATCTTTGAGTAAGCGTGTTCTTCCTACGCCCAGAACCAAAAAAACTCCCG -CCAAAAACGAACAGATTCTTGTAACGGGATTAAGCCGATCTTCAGCCCTTACTCGACCTGCAGGCCAGAC -GACTTATAGTTCCGATCGAAGTAATTTCGCGAACCAGGTTGGACAGAGTGTTGCAGACATGGTGGTCACC -ATTCCCGGTGTCAGCTTCACTCAGGGGAATGGCCCTCGCGATACAAACGTTTCCATTCGTGGGTCGGGAG -ATCGTCAATCATGGGGACTTAAAAATATTCAGGTGCTGGAAGATGGGTTCCCCATGACCCAGCCTGATGG -GACAGCTCGGGCCGACTTGATCGACCCTCATGCCTATCAGGGTGTCGATGTTTTCGAGGGGCCAGCCTCA -ACCCTGTATGGTAATTATGCCATCAACGGCGCCATCAATTTCCGCACCCGGAAGGGAGCAGATATTCACG -GACTGGAACTGGGCTCCGATTTCGGCAGTTTCGGGATGTTCAACAACTATGCCACCCTCGGCTTTGGCAA -CAGACACTACGATCTGATGATCTTTGGCAGCGATGTGCGTGGAAACGGCTTCATTGCCAATAGTCGTTAT -AATACCTCGACAGAAAATGTGCGGCTGCGTGTCAATCTGACGTCTGCTGATCGTCTTATCCTGAAATTTG -TCAACAACGTCACGGATGCGTTTTTGCCAGCAAGATTGTCACTCAACCAGTATCGGGCCAATCCTTACCA -GCAAGGGTGCGCCAATGCGTCCAGCGCAGCAACTGGCTGCGCATCTGTCAATCTGTTGGTCAATGGCCGC -TATGGCGCGAAGGTTGCCATGAGCCCTGAAGAGGCAGGGTTGGGGCGCTTTGATCGGCGCACGGTGGTTG -GCCTGCGCTGGGAGCATGATTTCAACAGCCACACAACATGGCGAAACCAGTTTACATACGATCAGCGCCA -TATCGACCAGCCAACGTCCCCTATGGCGTATGTCGGTCCTTATAATTCCTATAATGTAAGCAGCGACATA -ACCAACCATGCGCAACTTGCGGGCAGAGCGTTGGAAACATTTGCTGGCGTGAATTTTGATTATCTCGATT -TTGGTTCACAGACTTACAACATCATGCCCCTGGGCGGTGCAACACGAGGGGCCATGAATTCCGAAAGCTA -CGGGCACCAGTGGAATCTCGGAGCGCGCTTTCAGGAAGGCTGGCATTTTGCACCCGACTGGCACATTGTC -GCCGGGCTTGGCGGCACATATTCCGATATTGGCGCAACCGAAACACTCTATGGCTACTCCGCAACGCTCA -ACACCCAGCGGGCCATCACAGCCAATCGTTTCTATTTCAATCTCGCGCCAGAAGGCGCGTTGATTTATAC -GCCATCAAAAGACTGGACGCTTCATACCCGTGTTGGCACAGCCTATGGCACCCCATCCTCTTCCAATCTT -TTCATTACGCCACAGGGGGAATACGGGAACAATACACAACTGAAAAGCCAGACAAGTGTCGGCATTGATC -TGGGCGCTGACTGGCATCCCTCTTCGACGATCAGCATTCAGGCAACAGGTTTTTACGAGTTTTATAAGAA -CGAACTGGTCAGCCAGTCTGCCGGTGTCAACACCGTTGGTTCCTACACTTTTAACGCACCCGCGTCCGAA -CATCGTGGTGTTGTTCTGGGTGTGGCGTGGAAGCCGTTGCCCAAAATGCTTCCCGGCGGTCGGGTTAAAC -TGAGCTACACCTATGATAACCAGATTTATACCAATTATACCGAAGTTCTTTCCAACAGCACGCTCTCACA -CAGCTTCAGCCGTAAAGGGCATTATATCCCCGGGGTCATTCCCAATTTTCTTAATGCCCGCTTTCTTTAT -GACCAGCCTGACGGTTTACTGGAAGGGCTGGGCGGATACGCGGAAGTCACGTGGCGTGATTCTTACTGGC -TAGATAACGCCAATCGCCTGAAAGCGCCGGGGTATGCGCTGCTTAATCTTGAAATACATTATGATCCCCC -CGCCCGGTTTGGCTGGGCACATCGTTTGCACTGGTATTTCGAGGTACAGAACGTCGCCAACCAGACCTAT -ATCGCAGGGGCCACAAACATCAGCGATAAACTGCAAGCCAATGGTCAGCAGGCCGGTGCCACGACACTCA -TGAACAGCACAGGCTCCATCTATGCAGGTTCGCCCCGTGCGTATTTTGGCGGCATGCGGATCAGGTTTTG -AGGGATAGTGCCATGACCATACACATTGCCACTCTCTGGCCAGACCGCCGCACGCTCTGGCGCTGGCATT -TCTTCGCAGGGCTGTTCTGCCTGCCTTTTGTGGCTTTTCTCTCTCTGACCGGAGCGGTTTATCTCTTCAA -ACCCCAGATTGATGACTGGATTGACTGGCGATATGACCATCTGCTCACAGTTCAGTCGCCCTCTCCCAAG -CGTGACGTTCAGGCTGCTTTATCAGCAGTGCCGCAGGGGGCTTTCCTGGCTTATGAACTTCCGCGGACTT -CGCAGAGTGCCGCACGTATTCTGGTCAGCAGACCAGAAGGAGAGGCCGTGCGGGTCTATGTGGACAGGAA -CACCCACACTGTTCTGAAAACTGTTCTGGAAGAGAACAGATTTGAGCGTCTGGTTTTTCGGTTGCACGGT -CAGTTGCTGCTGGGCAATATGGGTTCTGTCATTATGGAAATGGTTGCATCATGGACCATTGTGCTCATTG -TGACAGGCCTACTGCTCTGGTGGCCTCGCGGTCAGAATGGACTGGCAGGCGTTGTTTATCCACGCCTTGG -CATAAAGGGACGAACCCGGTGGCGGGATCTCCATGCCGTCACTGGCGTGTGGGCATCAGTGTTTCTGGTG -CTGTTTCTGGTATCCGGTCTACCGTGGTCCTTTGTCTGGGGACATACCCTGCAATCGGTCGAAAACACGG -TTGGTCGTCTGACCTCTGTCAAGGACTGGGAAATTGGCGCTGTGCCCGCCGCCACTTTCATTGCCGGGCA -CCCGGTCGGACAACCACAGAAGCAGCCTGCAACAGGCAGCATGGATATGCCCGGTATGGATATGCCAACC -GTCTCCACCTCTTTTCCTGAAGAGGACTTGGTAAGCAGTCTGGATACTGTTGTACAGACCGCGAGCACTC -TCTCCCTGCCCGCTCCGGTCATCATTACGCCATCTGGTTCTATGTGGACTGTACGTTCCGACACGCAAAA -CCGACCTTTGCGGGAAAGTGTGACGGTAACACCCGATGGCCATGTGATGACACAGGAAACGTTTGCCCAG -AAAGGCTTTATGGATCGGATCATTGGCTACGGTGTTGCTGCGCATGAGGGCCAACTTTTTGGAGGAATAA -ATCAGGCTATCAACCTTTTAGTGGCAGTCGGCTTACTGATGATGAGCAGTGCAGCAACAGTGTTGTGGCT -TAAACGCAAACCTGTGGGTTCCTTGGGGGCTCCACCCGCCTTACACTCTCAGAAATATGGAATTGTTGGT -ATGACGACCCTTGTCATCCTGGGGCTGCTTCTACCAGAATTGGGGGTCGCATTACTTGTTCTGGTTCTTG -CAAACCGGATGTTTGCGAGATGAGGTCCGACCTGACCTCAGGAAGGTGGTAAAAGCCGTCTGAGTTCGCT -TGCAATCTGATGGGCACTGGCATCAACGGGGATCATGCCAACCAGATGGTTTTGTCCGTCCATGAGGTAA -AGGAGCGAACTATGATCGACGAGATAGCCTGAACCATTGGGGGCACGACGTCGTGCTGAGACATGAAACT -CCCTCAAAACGAGGCTGAAGCTGAGGTTCCGATCCTATCAAACCAACAATGCGCGGGGAAAAACGTTCAA -TATACTCCTCTAAAACTTCAGGGGTATCACGTTCGGGATCAACTGAAATGAACACGGGAATAATGTTTTG -TCCCCGCTTACCAAGCCCCTCAAGAGCGGCTGACACAGTCACTAGTGTCAACGGGAAGACGTCCACACTG -AATTGTCTCGGGTTTTGTAGAGACGTTTTTTATCTGAACTAAGCGGCTAAAGCATGTAATTTCTGCTAAG -CATAAAAACAAGTCTTAGCTTCTGCTGGCGGGATATTTCCCATGGATGACAGAATGCGGCGATTATTGAA -CCAATCCATCCATTTGAGTGTGGCCAGTTCAACAGCGTCCCTATTTTTCCATAGCCCCTGCTGATAGATA -AGTTCAGTTTTGTAGAGCTCATTTATGGTCTCAGCCAGGGCGTTATCATAGGAATCCCCAACACTTCCGA -CAGAGGCAACGAGACCTGCTTCAGTCAGTCTTTGCGTGTAGCGAATGGACACATATTGACAGCCGCGGTC -GGAATGGTGGGTCACTTTTCCCTCTGGCCGCCTCTGGCACAGAGCCTGCTCAAGGGCATCCAGCACGAAG -TCAGTATGGGCCGTTGATGAGACACGCCGTGAGTAGGCCCTAGTTTTCTAGACGCCTTGATCATTCAAAG -TCTGCTGTTGTTCGAACTGCACGGGTGACAGCATCTCGTTCCTGACCCGCTTGCGCACCGGGTTATAGAA -CATTTCGATGTAGTCAAACACGTCCTGTCGGGCTTCCTGGCGCGTTTTGTAAGTTCGACGCCGGATGCGC -TCACGCTTGAGCGATGAGAAAAAACTTTCCGCTACAGCATTGTCGTGGCAATTGCCGCGGCGGCTCATCG -AGTGTTCCAGATTGTGAGCCCGTATGAAGGCAGTCCAGTCCATGCTGGTAAACTGACTGCCCTGATCGAG -CAGATCATCGTGCAGCTTACGGTAGCCATAAACCCTGCCACTGTCGTTCCAGGCCTGACGGATCAACGTG -GTCTGTCGGGCATCCTCGCAAGCCCGTCGGCTCAACGGCTCCTTCCGCCAGGCATAGTAGCCACTGGGCT -GCACGGCCAGACAGCGGCACATCGCCCGAACTCCAAAACGATCACGATGCTCGGTAATGAAGGCGTATCT -CACTTTGCATCCTTGGCGAAATACGCGGTGGCTTTCCTAAGAAACACCAGGCTCGGTGGCTACAGGGATG -GGATGCAGGACAAACCCTAATGACTGCGCACGTCGGTGGAGATTGGAGACGACACGTTTGCGATGGATTT -CATCGTCATGTCCCGCTCCGGGATCGGCATAAATCATGCCGTGCCTGAGGGTATTGTAAAACAGAACCGC -TATCTTCCGAGCCGTGGCGGTGACTGCCTTGGCTTTCCCGACCCGCGCTGATAAGCGTCTGTAAAAAGCC -CCCAACGCCGTATCGCTTCGCCCGAGCGTTGTGGCTGCCAGACGTAGCAGTGCTGCGGCCCGGCTTGAGG -ATCGGCGTGTGCGAGATGACAGAAGCTTTCCTCCGGAAATCTTGTTTCCCGGAGCAAGGCAGAGCCAGGA -CGTGAAATGTTTTGCACTTGGCCAGACGCGAAGGTCTGTGCCGCATTCTGCCACAAGCTTGAGTGCCAAG -GAAACACCGATGCCATGGATCTGCGTGAGATCCACGCCCAGCAAGCGATATAGAATGCCGCGGACGTCGA -AGGACGGAACACTCACCTGCTTTGTCTTGATCCGAGGCTTTGGGAGGTCTGCCGCAGGCTTTGCACTGCC -GTGGCTCAAAAGCAGTAACAGGCCTTCCATGCGGCGATCACAGGCCATGATCCGTTCCTGATAAATATCA -TAGAGCTCCAGTGCCTGCGTCAGAGCGAACACATGTTCATCTCTATAATTGCCCATCAGAGCTGCCGATA -TCACTTCTGCCGATGAGCGGCATCTGACGTCGCGCTTAGCGGCCAGCGTCTCTGGATCACGTTCACCGCC -GACAATTGCCCGGATAATCTGCATGCCTGTGACGCCAGTGATGTCGGAGACAACGTGATGGAGTTGCAGA -TTCATTTCCATCAGGGCTTTCTGCATGTGCTGGATATGTCCCGCAGCATACTCGACCAGACGTTCACGTT -GACGCAGGTAAGCCCGCAATGCGGCAATATCGGCCTGAGGCCGAAAGCTTCCACGCAGCAAGCCATAGGA -ATGAAGTTGCTGGAGCCATCCGGCATCGCTCACGTCCGTCTTGCGACCAGGTACATTCTTGGCGTAGCGC -GCGTTCACCAGAATGACGTCGAAACCATGCTGCTCAAGGATTTCATAAACCGGGATCCAGTAGACGCCTG -TAGATTCCATGGCGACACTGGTGACTTTGCAGTCTTTGAACCACTCAGCCAACGCATGCAGGTCGGACGT -AAATGTGCCAAAGGACCGGATTGGGTCCTTCGCAGCCTCAGGGGACACCGCCGCCATATGCATCCGTGAT -CCAATATCGATCGCAGCGGCTCCCTGAATATGGCGTGTGAGATCAAAGGACGCTTTTGCAGATTTTCGAG -GCATCGTAACATCTCCACACAGTGTGCTGGAGGAGGGTGTGGAACATGCCTATCAATCATCTTCCTAACC -GGGATCACCGCAAGGCGGTGTCACCATTCTCAAGTTCGCACAGTTCCATGGACCACGTTTTTTAACGGGG -ACGAACCCGCCAATAAGCGAACGGCCGCTACCCTCCTGTCCGGCACAATAGCATGGCCCGTTTCTATGCC -GCACAGGCGGACAAACGTCCGGGATCGTTTTTTAAGATATCGCGCTCCTCGGTGACCCGGGCTAGTTCGC -GCTTCAATTGCCGGATCTCGGCATCCTTGCCAGAATCGCCCGATACCACCTTCGCGAATTGCCGCTTTCA -CGCATACAGCGAATGTGTGCTGACCCCGAGCCGCTGCAAAACTTCCGCTACCGGATATCCCCGCTCGGTA -ATCTGCGTCACCGCATCACGCTTGAACTCATCACTGAAATTGGGCTTCCCCATCAACGCCTCCTGTCCTC -ATTTTTAGGAGCCAGGGCGTCCAGAAATCTAGGGCCTACTCACCGTAATTACTTCAGGAAGGTTTCTTGG -CGCGTTCTACCATCGTGAGTCGACCGACTTATGACCTCAATGTAGAACTCGAAATTCAATCTTTAGCCTG -ATCTTTTTACCTTTCAGGAGTTTAAATAATGTCTCTGAGTATAAAAACGCCCCTGCTTGAATCGTTGCCG -CTTGAACAGTTGAATGGAACGCAGGTCTGGATGAAAATGGAGGCGGCGCAGCCGTCAGGATCGTTCAAGA -TTCGCGGTATTGGTCATGCCTGCGAATATCACTATGGCAAAGGTGCGCGCCGCTTCATTTCATCTTCCGG -CGGCAATGCTGGACTGGCTGTTGCTTACGCCGGTCGTAAGCTAGGTGTCCCCGTCGTCGTCGTCGTTCCA -GAAACCACGTCCGAACGCGCCCGCCACCTGGAGGGTTCTAAAAACCCCCTGGTTTTGAGGTCTTCTGTAT -GATTCTATTTCTTCTGCGTTGATTGAGGGAATGGCGATATGAAGCAGTCTGGTTTCTTTGATGTTGAAGA -GCGTCTTGCCCGGCTGAGTGGGCTTGGCGATCAGCTCGAAGCGTTTTCCCGGACTGTGGATTTTGAAGCG -TTCCGTCCTGATCTGGACAAGGCCCTGGCGTATTCCGATGGAAGCAAGGGCGGACGACCGCCATTTGATC -CTGTGCTGATGTTCAAGATCCTGGTGATCCAGACGCTCAACAATTTGTCTGATGAGCGGACGGAATATCT -GATCAACGATCGCCTCTCCTTTATGCGTTTCCTTGGGCTGGGACTTTCAGATCGGGTGCCGGATGCCAAA -ACGGTCTGGCTGTTTCGCGAGCGTCTGACCCAGGCGGGTGCGATCGATGGGCTGTTCATCCGCTTTGATG -CGACCCTGCGTAACGCCGGGTATTTGCCGATGTCAGGCCAGATCCTGGATGCCACGCTGGTAGCGGCTCC -GAAGCAGCGGAACACCAATGCAGAGAAAGCGGATCTGCGAGCAGGCCGTATTCCTGAAGACTGGCAGGAC -AAACCCGCAAAGCTGTCGCACAAGGATCGTCATGCGCGCTGGACACTGAAGTTCACGAAGGCGAAGCGGC -AGGATGATGGAACCATGCCATCCAGCGATCTCGCCATCCCGTTCTTTGGCTATAAATCGCATGTTTCCAT -CGATCGGAAATACCGGTTCATCCGCAAATGGAAAACAACGCATGCCGCTGCCAGTGATGGCGCGCGATTG -AGAGAGGGGCTTCTGGATAAAACCAATACGGCCTCAAGTGTCTGGGCCGACACGGCCTATCGCTCAAAAG -ACAACGAAGACTTCATGGAAAAGCAGGGCTTTGTCTCCAAGGTTCATCGCAAAAAGCCGCATCTCAAGCC -TATGCCCCGGCATATCCAGAAATCAAATGCTGGAAAGTCGGTCATCCGCTCGCGTGTCGAGCATGTCTTT -GCCGATCAGAAGTCACAGACGGGGCTGTTTATCCGGACTGTCGGTATCAGTCGAGCCACCATGAGGATCG -GGCTCGCCAATATCGTCTACAATATGCGCCGCCTCCTCTTCCTCGAAAGATTGAACGCGAGCGCATAGCC -ATCCAGCGAGAGACAACTCCCAATCTGCTCAAAACGCAGACTGGACGCCATCGCAAAAACCGTCAATCAA -ATCGCCAAAACCCAGAAATTACCGGCCAAGCACATCAATCAAGGGTTCTTCGATCCCTCCAAATCGTATC -TGTTCACGAAAAACCCTATTTTTCAATTTATAAAAAACGGAACATCATCGAACAATTCTTCGCCAGCCCG -AAGCAGTTCAAAGGCACTGCAACACTCTATGACAAGCTGGAATCAACCTTCATCACAGCAGTGCAACTCG -TCTCCGTTATCATCGGAGATAACTGACGACACGCCCTAACGAATATGAAATCCGACCGGAATCCGCCCCA -CCATAGGTGTTGAAGCCGGTGCGACACAGTGCAACCCACGAGCAGCGGCCAGTGCTTGTGCATCCAGATC -ATCATAGCCAGTACTCTGCACCAGTCGAGTTGTAGCAATGGCTCCGTCTGCTGCCAAAGTGACCTCCACC -ACGCCTTCTCCTTCTTCGTGCAGATGCCGGGCCATGGGAGGATAATGCGTCTGCGGTGGGGAGCAAGTAA -GCGTGCGTGCCCCGCTCCCGTTGGCTACATGAGCCACCGATGCCGCCGCTGGTTGCGCAGCAGCAGAGTT -CTGTGCTGCAGGAGCCAACTGAATTTGACTGGCCGCAGTACGAGCAGAAGTGGAAACAGGAGGTGTCGCT -ACCTTCGGAGAATGCGAAGTCAAACTCGTCTTGGGTGTAGATGGTACTGCCGCCTTGCGAGGCATGGATA -TTTGAGAAGAGTGAGCTGAAGGCCGATGCTCATGTGCTGGAGCGGCCCGCTGTGTGGCAACAGGCGGAAA -GATATTTGTCATGCGCGGCACGGGTGGTGTATCCGCTGGCATGGGAGGCGCTCCCAGCGAGGAAGCAAGC -GCCTCGTCTGGCGGTGTTATCTCAGAGGACTGAGTGGCATAAAAGAGATTAGCCGTAGGAGGCACACTGA -GTGGTTCTACCTGCTCAGGAGTAGGAACCAGTTCCTGAGGCGGGGTTACAGAAGTGAGGTTCGCAGCGCT -GACGGGCTTGCTGACAGGAGATTCAAACACCATCTCCACAGCTTTCTGCCCCGGTGCTTTCGACGGATGC -CATGGATGAAATGTCACTAGCAGGCAGGCTGTAATTACCCCGTGCCCGACGACTGCTGCCAGAAGGGCCA -GATGCCACACCCGGCTAGTCCGGCTCTGTCGAGCAGAAAATACGCCCCCCTCTAACCGTGCACGCACGTC -TGGCGTTAGTGCATCGTCATCCTGCCCTAGTCTGCCGTGCGGTTTCACCCGTCCGCGTTCCTTCATCCTT -TGGTCCTGAACGGCCCATACCCACAACACAAGGCAGATACACCCAAGCACCCAAACAGCTGCGACGCCTT -GCCACTTATGCCGACCTGCACGCGTGCCTGCCTGTTTTCTGCGTGGTCTGTGTGGGCTTTTTCCCGTGAT -TTTATACCTCTCGCCGCCGCCTTCAATCAGAAAGATCACTTTTGCGGCAGTCATACGTTTGACACAAATC -CTCTCATAGATAAATAAAGCAAAGCCACGTCCCACCTTTGGTCCAACCCACCATGGCCCGCACAGACAGG -AGTTCCGGCTGCTCTGATGGCCCGCACCACCCACCCGTTGCATACGCTGCTGAAATTGTCGCTGGTGGTG -GTGACACTGGTAGGCTTTCTCAGCCTGCTCGCCCTTCAGAGCTTTGCGCAACCGGATGAACTGCCCCGCG -CCACCATAGCCCGCCTTCTGGGCGTGGATATTGCAGCTTCCCTCTCCGCACCCGATGAAGTCTTGGATGC -AACGTCCGCTGGCGCAGGGCAGAAGGGTTCTGGCCTTGCCTCGCCAGAAGGCGCGGTGGGCCTGCCCACC -AGAGTGGGCCCGACCCAGCACCATCATATGATGGCCGCACATGCCCATCACATGGCAGCGGCCATTGCGG -GTAAATCCACGCAGCCGCATTCCGGCCACCATCATGGGGTGGAGCAGTGCCCGCTTTGCCCGCTTCTTTC -GCTGCCAGCGGCGCTCCCCGTGGCCTTATTACTGGTGCCCCCGCCCATTCTGCGGTGGATGCGGCGCGGC -AGCAGCGCCTCCACCCCACGCGCACCGCCCAGCGTTCAGCTTGGCTTGCCGCCCTCACGTGGGCCTCCTG -CCTGAACAAAGCTTCTTCGTGCCCTTTTGGCCTCATGACCGAAGAAAAAAGGGTTCTGCACGCTTTGTTT -TCAGGATTGTTTTTATGATCACGCTTATCAACCGACGCCGCGTGCCGACGTGGGCGTGGGGCATTGCTGC -GGTGTGCGCGGCCCCCACCATCTCCGCTGCGCTGGCGCAAACAACGGCTGCGCAGGTCAGCGCCAGCCAG -AGCAACACGGCCTCTGGCAGTGCCGTTGTCACACTGCCCCGGCTGGATATCTCAACGGATGAGGAAGAGG -AAACCTCCCTCTCCGATGCCCCACTGACAGCGTCCTCGCCCGATGCCAGCTCACAGCGCATGTCCCGGCT -TTCCAGCCCGGATGTGTCCTCGCTGTTCCGTAACCAGCCGGGGTTCAGTTCCTATGGCGGCGGGCGGCTG -GCCAACCTGCCCGTGCTGAACGGCATGGCGGATGATCGCGTCGCCACTATTGTGGATGGCGTGCGCATCT -CTCCCGCCTGCCCCAACCACATGAACCCCACCCTCTCTTACATTGATCCAGACAGCGTGCAGACTGCCAC -CAGCATTGCGGGCCTGACCCCTGTCAGCAGCGGGGGCGACAGTCTGGGCGGCACCATTGATGTGGAACGG -GCAGACCCACGCTTTGCCCGCAAGGGCAAAATTCTTGTGACAGGCCGGGTGCGCGGCACCTACCGCAGCA -ATGGCGGGGCCTACGGGGCTTCTGGTTCTGTCACAGTTGCCAATCATCTGCTCAGCATCAGCTATACGGG -TTCTTATGATCAGTCCGGCAATTATCGGGGGGGGGCGGGCATGGGCACCGTGCACTCCACCAATTACCTG -ACCTATAATCACGCCGTAACGGTGGGCTTGCACAAGGACAACCATCTGGTGGCCATTACCGTGGGGCAGC -AGGACACCCCGCGTGAGGGCTTTGCCAACCAGTATATGGACATGACCAACAACCGCTCCACTTTTGTAAA -CGGCAAATATACTGGCTCGTTTGACTGGGGCACGTTTGAAGCCCGCGGCTACTGGCAGCGCATTACCCAC -GCCATGAACATGCTGGCGGACAAGGGCGGCCATTCAGCCACCACCGGCATGCCCATGAACAATGACTCCC -GTCTGGCGGGTTATTCGCTCAAGGCCACCATTCCGCTAGGGCATTTTCATACCCTCAAGCTGGGCAGCGG -GTTTGACCATGTGGGACTGAATGACTGGTGGCCACCGCTGCAAGGCAGCATGATGATGGGGCCGGACACC -TACCACAACATCAATAACGGCCACCGCGACCGGCTGGGCCACTATGCCGAGTGGGAAGCCCACTGGACGC -CGCGCGTTTCTACCCTGCTGGGGTTCCGCAATGATCTGATCATGATGAACACGGGAGCCGTGGCTCCCTA -TTCATGGACAGGCATGATGAACATGAAGGATGCCATGGCTGCCCGCGCCTTCAACGCCCACAACCGGGGG -CGGACGGATGTGAATTTTGATGTCACCGCCATGGCTCGCTGGAAGGTAACAGACAGCTTTACGCTGGAAG -GCGGCTACGCCCGTAAATCCCGCGCGCCCAACCTGTATGAACGCTATGCGTGGGGCCGTGGCACCATGTC -TTCCAGCATGATCGGCTGGTTTGGCGATGGCAACGGCTATGTGGGCAACATGGATCTGAAGTCAGAAATC -GCCAACACGGCCAGCGTGACGCTGGACTGGCATGACCCCACTGCCGCCAACCGCTGGGGTCTGACGGTCC -AGCCCTATTACAGTTACGTGCACAATTACATCAACGTGGTACAGTTGAGCACTTTCTCCAACGGGCACCA -TTTGCTGCAATTTGCCAATCACAATGCCCAGACCTACGGCATTAACGCATCCGGCCATTACACGCTGTGG -GACACAGCAAAATATGGCAAGGGTGAAGTCACCGGCGTCCTCAACTGGGTGCGTGGACAGGATGAGGTCA -CACATTCCGGCCTGTACCACATGATGCCGCTTAACGGCACGGTGGCTGTACATGAAACAGTGGGCCATTG -GACCGGTCGGGTGGAGATGAACTTTGTCAAACCCAAGGACACCGTGGACTGGCTGCGCGGCGAACCCCGC -ACCGCAGGCTATGCCCTGCTGAACCTTGGCGGCAGCTACACTTGGAAGATGCTGACGCTGGATGCCGGAA -TTGATAACGTGCTCAACCAGCCTTACTACTTGCCGCTGGGTGGTCTCTCTCTTGGTGATACACGTTATAT -CGGCACCACCCGCGCCTTGCCGGGCATGGGCCGTTCATTCAACGTGAGCCTTTCCGCCACGTTCTGAAGC -CTTACCTTTCCTGCCTGCGTGGAGAAATAGCCCGTAGGCAGAGAGTGAAACTGTCTTTATGGCAGTCCTG -CCTTGGTTCCGACTCAACCTGATATTGGGTGTTAAGCACTGTATCTCACCTATCTTCACTGTTTCGAACA -GTTGACGGTGGCCCGATTTCGGGACTGCGAAATCCAGTGGCTCAGCGTTGATTTGCTAATCCCCATATCC -GCCGCAACCCGTGTCCTGGACAAACCGCAGCTAAGTGCGATCCTGACCGCCTCGCGGCGAAACTCTTCTG -TCTGCTTCAATGCCATGGTCTCATGCCTTTCCTGTTAAATGTTGTAAACGCTCACTCAACCGGCTCAAAA -CCGTTACAAGTCCAGTTTTGAGACAGTCTAAAAGTGACCGCAAACTGGTCAACAGGGACGATCAGCTGGT -GTATCTCGGTCAAGATATGAGGGGATGACTGATCTGCTGAATAACCTTAACCGTAAGGTTTCTGGCAAAC -CTACTGCTCCGGAAACGACCAGCTCTGAGGAAGACGGTGGCATCCCAGACGAGCTGATGGGTATAATCTT -GGAAATCCTGCTACTGACACGCGCGAATTCAGATAGGTCTGAACTTCATCTCAACACATAAGGGGCGCGG -CGCGTACGAATATCGTTCAAACAGCTTCGACAGGACCTAGATAAGCCTGCACGAGAGGATCATGGGGGCA -GCAGAAGAAGCAGCTTCATGCCGAACCATCGAACAGAGAAATGATGTCCTCCTGTCCCATGCGATCAAAA -TCCTCTGGCACCCGGATTTTCCCTGTCAGAAAACCCAGACGCCGTTGCTGTTGTTCTTCAGGGGCCGTAA -TCGGGCTGACCCGCACCATCGGCCGACCGGCTTTGGCAATGATGAAACTTTCCCCTTTCATGGCCGCATC -AATCAGCCGAGACAGATGGGTCTTGGCTTCATGAATGTTGACTGTGCGCATAAGAGAAGCGTCATCATCT -TCTACCATAAAACTTAGCCATATGAGTTTAGTCTATCAAGAACTAAATTTTCTCTCTTCAGAAAATCTGA -GGGCGCCTTTGATGACAATATTCCGACTGGCGATACCGTGGTACCTCGCGTAAACGCGGAAACAATGGAG -AGTGATGAATATCGACCGTTCTGGCGACAGCCTAGCTTCGATACTGAACGGGAGCGACATAGCCCGCCAA -AGGCATCTGGCGGAAAGATACGTAAATCGCCCCTCATTCTATTTTCTTGAGTTCTTATCGTGGAAAAAGA -AGAAAAATCCCTGTCTGGCAAACCATCCAATCCACATAGATACACAATGGATGAACTTCTTGCCGTCTCG -GATTATTCCCAACCTCAACCTTTAGACGAACGAGAGTGGATTGACGCTCCTGCTATAGGACGGGAACTGG -TTTAAGTATTTCTTTCTGAGCAAATGATCTACCAACGAACAAACCCCGCCTTTCTGGCAGAGTTTGTTCG -TTGATAGACCTATGAATTTTGACGAATGTGATTGCTTTGAAAAAAATTATTTAATTACGCTTATATATTT -ATAAGTGGAGTTTTTTGGTAAATCTTCAAAAGGTTGTCCGTATTTGAGCTCTAATGTGCCTTTTCCTAAA -GAAATGGCCTTAAAAAAGAATTTTTCCACTCCACCGCAACCTAAATTATTACCGCAATTTTTGGATTGTA -TGTACTCCATACCTACTAAAGCGACGTTTTTTGGGAGACCTTTAATCATCCAACCGTATCCTGTAGTTGG -ATTTGATTCCAGTTCAAATGAAAATGTATCATTTAATTTTGATGTTACAGTATCATTACTTGGTTCTGCG -AAAGCATAGCAAGGAAACATGATAGCAATTAAAGAGATAAACTTTTTCATTTTCTTCCTTTCGAAGATGA -AGAATTTTATAGAACTGCGTTTTTAACTCCCTCGACCCCAATCATTATCACGTACACGAAATCGACTAAA -TGTTTTAGTCCGTTCCCATTGAGCCTTGACCGCTTGTTCTTGGAGTTTCTGGCGTAGCTACTGGGCCAGT -TTGACACATCCCTCGACTGAATTACCCTTGGTTTTGTGGGGACAGTTAGAATATGAGGCCATTCAGATCG -ATACCATTTACAGACGAGGAATACGAACTGTCCGTTAATACCCGATACCAAGATTATCTAAACGATGATA -GAATTCGAACATTCTTCGTTCATTCGTAATATCTTGATCATGCATTACATCATCCACAAAAGGGTCTGGA -TGTGGAACATGATCTGGCATGGGTGAATATGTTGCCCAAAATTTCTTTGCTTCACTCCAGCATGCCCATT -GTTCATCTTGATCTTGAATCGTTGGACAGTGACTTTCGTAATAATCGAAAATCTTGCTTTTCTGTTTCTT -AATCCGGCTATTGTAGTAATAATTTTGATCTGCGTCTGAGACATAATTTTCGTGCTGGATGCGTTCAACA -TGTGCAGATTCTTGTTCTGGGGTTTCTGTGGCACAGGCTGTTAATCCTAATATACCGCATACTAAAATTG -TCCTAACCAACATGAAGGGTTCTAAAAAACCCTCCTTTTTGCCGATATGAAAATCGTAAAACATTGATAT -TGCTACCTCTCTAAAATGCAAAATGAGGGTTTTTAGAATCCTCTACCTTGCAGGCTTGCCACAAATTCAG -GAAATGACGGGCTGACACGTGATAACATCAGTTATTACGTTTTGAACGTGTAGAGGACGCATCGCATGCT -TTTTATACGCTATTAGCGTATAAAATAATTTATGACAGATGGGCCGAAATTGTTCGAGTGGAATGATGTC -AAAAGCGGCGCCTGCTTTGAAGATCGCAGTTTTAGTTTTGTGAATACGTTAACAAGTCTACACGTATAAT -GATGGGCACTTTCCCTCAGGATCACGAATCTTTCTTTCTCCACAAAACCTGGGACAATTCACTTGTTAAG -TCGGATAGTAAAGTATAGGACTACCGTGTGATCATGACAGGGTCGCTGTGACTAGCTCATGTCGCATGGA -GCGGCTGGCCAAGTGTACGTATCGCCCTTGCGTTATGAGATTGAAGTTGAATAGCGGAAACCATGCCTAC -AGCATAGTTCCGATGCAGCTGACAGTCTGATTCAGACGGTAACAAGTATATAGTGTAACACTTTACAGTA -TTCGTCACGGATTCGAAGACGAGGCAATTTCCAGCCGGTCAACAGCAGCCTGATCGGACGCTTCTTTGCT -AAGCTCGGTCCAACCATCAGGCGGGTTGCCACCTTCTAGCATTCCTTGGAAAACTTTGTAGGCATCGGTC -TTTGCGCCATAAGTGCGCAAACTATTGTTATCGTTCACCCAGGCAAAGATGATGACTTTCGTGGCCGAAT -CATAGCGGAAGAACAGGCGGAAACGACCATTCCCGAACTTTGCCCTGAACCAATGCTTGTGCGCTTTCCC -TAGCGTCGTGCCCTGCCGATAAGCGGTTACAGTCGGATCAGCAGGGATTGACTGGAAGATCAGTTTGTTC -AAGGCAGCTAATAGCTTTGTGTTTGCATTCTTCTGGTATTCGTTAGGCTTTTTTTTCTTCAACTCCTCAA -CGGCGTCGGTGAGCTTTTCCAACTGATCGAGAAAGAGCGGATGCGCTAGGATGGTCCAGCCATTGATAGT -CAGCATAGTCAGAGCGCAACATCTCCCTCAATCTCGGCATCAAGGTCAACGTCCATGTTTCCGACAAGCG -CGGCTACGCGATCAGGCAGGCTGGCAGGCAGCTTGACGATGGAACTGTCGGGATGGTCGATCATGTCCTG -CTCCAGAAATTCGAGGAAGCGAAAAACGACGGGATCTCTTGTTCCTTCTGTAGCCTTCTTGACATGGATA -CGACGCTGGTCGTCCACGAAGAAGGTGATACGCCCACCATAGTCCACGCCCAAAGCCTGTCTGATGCTCT -TAGGAATGGTTGTTTGACCCTTCGCGGTGATAGTACTTTCTTCTTTCAGCAATGCGGCCATGTCTTGGCT -CCAATCTTGATTTCTTCTGAAAGGTAAGGAAAATTCCTTACGATGTCAAGCGGGTCATATCTACTTGTAC -AATTACATTTGTATCGTGTGTGAGCACGGATAACGATGGCCTGATATGTTCGTCGAAAGACGCACTATCT -GAGGATGTGAGCGATGGGTCCCTGTCGTTTTCCATGGGAACGACCTGGACGCAGCCTTTATTCATTTGCC -TTTACAAACGTAAAGGCACAAACAGATGATGTGTTTGTTGGAGGACACATCATGGCTTCAATTAACCTGC -GCATCGATGACAGTCTGAAGAAAGCGGCCTACGATCGTCTGTCAGAACTCGGCGTGACACCCTCAGATCT -CATCCGCCAGACCTTTGAATATGTCGTCGCTACTGGCAAGCTCCCTGTCCGGCGCACTGTTGTATCGGAT -GACGGTCTGGAGCTCCTTGGCGTCGTTCGAGAGCGTCTTGTCTCGCCTGAACCGTCTCTTCCGGTTTCAT -TGGACGATCTGTGAGCTGCTATAAAATCAAACGTCGAGCTTCCGGATACCGGCTGGTGTATCAGGTTCAT -GAGGGGAAACTCATAGTGCTGGTTGTTGCGATTGGACGCAGGGATGCCAATGAGGTTTACGACGATGCAA -CCCGCCGCGTCTGAGCATGTTCCGGACAGCCTCAGTTCAATCTTCTGACGGAAAGTTATACGAAAGCCTC -ACCCAGACGGCACTGGCTTTCGGCAGACTTGATCAGCGCCTGCATCATCATCCTCTCCTCCCTGCAATCC -TGTTTCGGGAGCAGCTGGAAGCTGCAAGAGCCTGCGCAGCAGTCGATGGCCATCTCATAGATCCGTGGCG -GTTGGCGGCAGAACTGGAAGGTTTGAGATCAGTACCACTCGGATGTGATATTTATGAACGCGGAACGTCT -GTGGACGCTCTCCACGCTGCATTTGAGCAATATCAATGGTTGGTTAGGCCAACGGATACGCAACGCAACG -CCATAGAAGAGGCTTCAGGTTGGCTCAGCAAGCATAGTGTCAGATTAGGCCCTCTTCTTGGCTCTGCCCG -GGCCTTTCATGCCTGGATAGAAGCAGGACATGTTCGTGCCCCGATGCGCGCCGCATTGATCCGCCACTGG -TGCCTGACCAATGTTCTTCATTTTCCGCTTCCCCTTGTTGGAGCCAGATCCTTCGTACCGGAAGCACCTT -GGAGCCCTTCAGAATGGCTCCCTTTTTTCCTGAACTGTCTGAATGAAGAGATCGCGGCCGTTGAGGACCG -CACACGGACTCTGGAACAAAGCTGGCGTCAGGCCAGATCAAAATCGGGTGGCCAACGTCGCACCTCGCGC -GCTGACAAGGTGATAGATCTGCTCACAGCCTATCCAGTGGTCTCGGCAACACGCCTCTCAGCCGAGCTCG -GCCTGTCGCTCAAAGCTGCCTACATCTATCTGGAACGTTTTCTAGAAGAAGGGCTGATTGTTGAAGTCAC -GCATCGCGCGGCGCGACGTCTGTTCGCACTAAAAGATATGGAACCTCTCCGCGAGATCGTTCGTCCTCCC -AAAAGATCCCAACCAGGCAGAAAACGTGGGCGACCGAGAAAAAAAGAAAGTCAGGAAACCTGTCCTCCAG -ATGAGAACGTGGACATCCGGCCGGTAGAGCCGGCGCCCACGTTTGCTCCCATTAATTATGAGGAACTGGA -GCGTGCGATAGATCACGCAGAACGTCTCATCAGCCGCCATCGGCCTGATTAGGTTCAGCAAGAACTAGCC -AAACTGCGGGCCACGTGATTTTGGGCTATTTGGCTGAGGGGGTGTTTCTTCCGGCGCAGAAAGCTTCTGA -CTGGCACGATTGAACCACGATGCTGGGGATTGTGTCTGTTGGGAATTCATACCCTGCACTGCTCGTTGAT -CGTCCTGCAAGTCAAGACTACGCACGGCAGCCCGCCCGATCGCATAAATGGCGTCACGCGCAGAACCGTC -GCGTCCTGGGAGCACGGTCAACTTTTCAATGCCCGCCTTTTGCGCTTGATCGATATGACGCAGAACGGCA -CCAACCTGCGTGTCGCTTTCCAAAGCTTTCAGTTCTCCCCGTAAGCCCCTGAGTTCTTTCAACGTGGCAC -TATCTGCCTGGCCTGCGTTCAGTGTTCTGGTGGCCGCATCAATCCCGGATTGCAGTTCCTGGCGTGCTGG -ATCACGGAGCGACAGAGCTTCACGACGAGCCTGGTCAGGCATCATTGTTCGGCCAGACTTAAATAACGTC -GCGATGGCATGCATCATAAGACGCTCGTCATTGACTGCCGCTTTGCCGCTGGCTCTATCTGAGTTGCTCC -GGGTCTTGCTGTCACCACAAAACTTGGGGCAATTCAATCTAGCCATCAGCTCCGACCAACAAAGCAATCT -GACGTCTGATTGCGAGTAACTGGTCAGGACGCACCTTGCTTCCGGTTACACGGAGACGATGCTTGGATGT -AGTTGTCAATAAGACGCTGACTGCCCAACATAGCTTTGAACAGCCATTATCAGCACTCGGATCAATCCGA -ACCGCCAGATCTGGAATAACGAGATTCTCGTCGTCGGTCAGAGGAATAAGCATGATGTTCGACCATTCAG -GTGGGAACTATTTATCTTCGACAACAACAGCAGATCGGAGTTTGTTCGGCTTCTGTTTGGCAAGGCATCA -CCACGTGAGAAACAATCGTTCTATGGGACTTATCTATGTCGCCCGGTTTTCTCTATTCTGACCGGAATAT -GCTTTACTACGTCTGCACGACAACGGTTTCCAGCAGGAACGCTGGAAGACAAGGGTAACCGCCTTGATTG -CGATTTCAAAAAACTTAAGGCCAAAAGCCAGACATACCAGTTCAGATCGGCAGTCATGGGGAAATCCTCA -GTTACTTTGTCACTGTGCCGCAAGGACATGGACAATCCAATTTGTCACGAAACAAACACCAGCTTCTGAT -GCGTTAATTACTTACGCTTCCTCCAAACTTTCATAAGCCTCTCAACCAGTGAACTATGATGAATTGGAGA -AAATCCCAGCTCATTTTCCATTGCTTGAATATCCAGCTTGACGGTATCTGCAATGCGCCCTTTGGAAACA -AATTCTGGTACAGATTTTTCAAATGCCATGGCTTGGCGAATATCTCCACCAAAGCACACTTGCATAAAGC -GCTTGTCTCGCGACAGAGCGATGTTTTCTGGATGACTTCTGATCATTTCAACAAGCACACGTTGGAACTG -AACGGCCCGCATGGCCTGATAGGTCCGATAAGAAAGAGGACAGACCCAGTCGGGCTTTACAGGAAGGTGT -TGTTCTATCAACGATAACAAGAGATGAGAGGACACCGTAAAGACATCTGGAATCTGTTTCCCCTCACTCT -GATCCATATCGATCCGCATATCTCGAACGCGAGGGAACATAAGAGTCAGATAACGCCGGTATAAAGCTGT -CCCGATTTCTTTTTGTAAACGACGGGGACTTTCCGTCTGAAGCGCTCGACTATCCGGGAGAGAGGCATCA -ATGTGACACGTCACCATCCGTTTGGTCAGATCAGCTGAAATGCTTGTCACGTCCTTGTTGGTCGTCAGGA -CGATAGGTGCGTAGCATTCGGCCATATCCCGATCAGTACGCACCATGTCAGGCACATATTTACTCATTCG -ATCTGGCGTCACGTCATCAATCAACAGAGGAATGGCCCCTAATTGCTGACGTAAGCCCAAAACACGTTGT -GCCGTAAACATTGATGACTGAATACTTTTGACAACCCCGAACATGGATTGTGCAATAATCTGCGTAAACA -GGGTTTTCCCACCACTGGAGCGGCCATATAAAACCGCGTACGGGGGATAAAGCCACGGATCGATATGATG -ACTAACGGCTCCTTGTCTTAAAAAGGGTGCAAAAGGTGCCATGTAAAGCCAGACTAGAAATGCCCAGTAG -GAAGCGATGGCACTTTGGCTATTTCCATAAAATGCCGAAAAACTGCTGATATAATTCACAAGCAGATGTA -CATCTCGGGCAACGTCATGTTCTGAAATGGTATCTTTTTCAGAAAGCCATAACTGATCATTGAGAAAAAT -CTCTCCTGTCCGAACAGAGAGGGAGGCTCGTGGAATTTCATCTTTCGGAGAGTCCACAGCAGGCAGATTA -TTGCGTGTCTGCAGAAAAGTTGAAACGATTGTGGGAGTGACCAACGTTACCCCCTTGCGGCTCATCGGCA -GAGAAATTGTTTCAAGTTCCTGCCGTAAGCGTTGAGCCTTTCGTAACGTATCAATGGTTATTCCCTCTGA -AATCGACATACCACCCTGTTCGACATGAACCAGCCCGGCCCGTATCGCACGCACGATGGGAACATCCTCG -TAAGGAAGGGATGTTGTAGAGATATCAGGCTGTTTATTCTTGCCGTCAGAAGACACGCTGATCAGAATAT -CCCTTTCGATTGCAACACTTTTTTTGTAGTCACGTTGGTAATATTCATCAAAAGCATCCCACGCTGCTAA -ATCATCAAAAGTGATGATGACTTCATGTTGATGCCCATGGAAAGCCGCTATACTGAGATTAGCGGATCCT -GTGATAACGCGTTGACCGTTGGAACCTGATAGCAAATAAAGTTTTTCATGACTTGGACGGCCAGTCAGAA -GCCTGAAACGCAAGGTACCATTTTGCAAACGCGGAAGAAAGAGACTGCTGCGTAACCCAAGAAGTTGACG -TAAGCTTTCTACAAGAGATTTTTGATCTGTGAGACAGTCCTTAAACCCGTAGTCTTCAAAAAGCTGACTG -GCTTGAGCCAAAGCAATATGGGTTTTGGTTAGAATATGCTCAGAGCCAAAAACAATTTCGATATCTTTAA -ACTGTTCTGTCAGATCGAGCAAAAATTCCAGAGAACTTGAAAAGGTAATCGCACGTAAAGCAGAATACCC -CTTGAAAACCTCGGACCAGTTCTGCTGCCGATAAGTTTTTAACTGTGCTTGAAACACAGTAAGTGGTCCA -GAATGCGAAGAAGAAATGTTTGAGAAAAGATCCGACATTTTTCCATTATTCCAAATCATTGATAACTTAA -GTAAAAAACTCAATAATAATGATTTTATTTTGCCAAAATTTCGAAATTTTATTGTTATTTAATTTTTAAA -ATTATTATATAATACAAAATAATATCTTATTACCGCGTTGAATATTACTGGTAATATTCGTGGGATCGTT -GAATCCCAGTGTAAAGAAAGAGCCCCCTAATGTTATGAGAATTTTTCCTCTCATACGGCTAGAACGTCAA -AATCTATCCACGTGTCCAGATCCAGCTCGAAATGCCCATTAAGAATTGACGTGGTTATAAATCAGCAACG -TGAGTCTGCGATAATCTTCTGGCATCATCCGGTGGGCTCATTGCTGTTTAACCAGAACGGTTTGGAGCAG -ACGTTCAGAAAAAATTGTCGTGTGATCCAACGAGAAATAGCCATAGGCTGCAAAGTTCAGGTTCCAGGGC -ATCACCATATCGGCTGCCGAAGATGCAGATTGCATTGTGCTACTTCCTGACTGAAAAAGCACGATCTGCA -TGAGATGCATCAATCAAAAATCCGCATTGTCGGTACGTTCCTCAACATGGCCAAAATCACAGCTTTGGGT -TCACCAAGCGCTATCTACCTCATGATGTACTGTAAGATTTGCGAGCTTTCTCGATTTTCCGACCATAATG -GTGATGGCTGTCTCTGCCACGAGCTAGGCGAGAGACAGTGCTTTCACTGATTCCAAATGCAGCAGCGATC -GATTTCAGGGACTCCCCCTCTTTTCGTCTTTCAATGATTTTATGCTTTTGTAAGTCTGTAATCTGAGATG -GTCTTCCCATGCGTTTGCCTTGCTTAATGGCACGTGCACGTCCTTCTGAGGTGCGTGTACGGATAAGATC -GCGCTCCACATCGGCCAAGCCACCAAGGACTGCAAGCATAAGCCGACCTGTACTTGTGTTGGTGTCAGTC -CAGGGTTCAGCTAAAGAGTAAAACTGAGCCTTACGATCAGTAATTGTCTTTACGATAGAGAAGAGATCAA -ATGTACTGCGTGCCAGTCGATCCAGACGGGTAACGACTACGGTTTGACCAGGCTTAAGGTTGGCAAGCAA -TTTACATAATTCAGGACGCGTAGCATCTGCACCACTTGCTTTTTCACGATAGATACGACGGCATCCGAAT -TCCTTCAGTGTTTTCAGTTGAAGTTCAAGAGTCTGCCCTACTGTGCTGACACGGGCATATCCAACTTTAC -GACGTGTTATTTCTGGTTGCATTCAGGTTTAAACGACTGAAAACGTTCAAAAGTTCCTTGCAAAAACCCT -GATTTGCGCAAATGCCATAACGGGCCTTTTGCGCCAGTGAACTTACGGTTTATGTTTATATAGGAAAAAC -AAAAAAGGCAACATCAAAATAAATAATGTCAGAAAAATCCTGTCTTGCAGGTTGTGCGCAAATCAGGAGT -TTAGAGAATGTCAAATGTAACGTGGATCGGTGCTGCGAGTGGAGACTGGAACGACCCCAAAAATTGGAGT -TCAAAAACTGTTCCTGGACAAAATGATACTGTTATTGTTAATAAAGGCAGTGTCTTAAATATTAATTCTA -GCATTTCGGCACAAAAAATCGAAAATGATGGCGGGACTATTACATTTTCTAGCGGTGCCTCAGCTAATAA -TATTACGTTAAACGTAAACTCAGGTACGACAACCGTTGCAAGTTCTAAGATTCAATTTAGCCAAGCTAAC -GTAACAAGCGCTTCTGGAACACTTGTAATTAGTGGCCTTACAAATTATTCTGTTAATAACCTGAATGTAA -GTGGCGGCACGTTTGAATTAGATCATAGTAGCCTTTCTGGTTTTAACGGAAGCAACGTGAAAAGCGGTGG -TCAAATCGTTTTGAACAACGGTTCGAGTATGACAGTGAGCAACCTACAGTCTAAGGTTACTGTTAATGGT -GGGTCTACCATTTCCCTAGATGGTAACTATAATTCTGGTTCCAGCGTTGTATCCGGCACTGGCACAGGTA -ATACAATCCTGATTTCTTCCTCTGCGGCTCAAACCAACCTTCCTATCTCGGGTATTTCGAAAGGAGATAT -GATCGGTGTCAATGGTTCAACGGTAGATACGGCCACCTATACCAATTCGAATGGGTCTGGTAGTGTCGTT -CTGAATGCTGGTGGCAAGAAATATACATATAATAGTGTTTCATACGATACTTCTAAAGACACTGGTGTTC -CTGAAGGAACGACAGTAGCCACAGGCACACAGGATGGTAATGCCATTATCTGCTTCCTTGCTGGTAGCAT -GATCCGTACCCCTGAAGGTGATGTTGCTGTCGAAGATATTCAGATCGGCGATCAAGTTATTGCCTTTGAC -TGGAAAAACAATGAGGACGTTACCCGCTCTGTTGTCTGGGTCGGTAAGGCCCGTGCTAGGGCCTGTTAGA -TCTTGAATTTCTTCCCATATTGTAGGGATGGAAGAAGGAGACAGAACTGGCACCTTTACGGACGAGACAT -GGGCGATCTGGGAACCTCTGATTGAGGAGGTTCGCCCGAGGGGCAAGACGCCGCCACATGATCTGCGGCG -GACGATAGCAGCGATTTTCTGGCGTCATGAGAATGGCGCGAAATGGCGGAGTATCCCCGCTGAACTGGGT -CCGTGGTGGCGGGCTGCGCAGCTTTTCATCCGCTGGGCGAAGCTCGGCGTATGGGAGCGGCTGCTCGCAC -TGGTTCAGGAACGACAGGGAGTGGCATTCGGAATGACTTTTCTGGATGGCACGAACATCAGGGCTCACCA -CAAAGCGGCGGGAGCCCAAAAAAAGGGGCCTCTTTCGAAGAGCGAGACCATCGTGAAGCACTTGGCCGCT -CTCGCGGCGGCTATGGCACAAAAGTCTGCGTGATCGCTGATGGACATGGAAAAGCCTTCGGTTTTGCGCT -GGCCCCTGGACAGGCTCATGAACTGCCTCTGGCACCAGCCATGCTCGACAGCCTTCCCGCCACTCCCCTG -TGGGTAGTGGCGGACAAGGGCTACGCGTCGAACGCCCTTCGTGAACGGATATGGGACATGGGAGCACGGC -CAGCCATTCCCGCGAAACGACGCGATGGCCCGGTCGCCTGCCCCAAATGGGCCTATCGGTGTCGGCATCT -CGTTGAGAACCTCTGGGCTCGCCTCAAGGAGTGGCGCGCTGTCGCAACCAGATATGAAAAAACAGCAACG -TCGTTCCTCGCGGTCATCCACATCGCTGCCGCAGCAGACTGGATCAAGCTCTAACAGGCCCTAATGTTCG -CCCAGAGCTTCGTGACGACGAAGCCGGTTGGCCAGTGCGTATCCTCAAAGACGCCATTGCCGATGGTGTG -CCTTATAAGGATATGCTGATTACCGCTGAACATTGCCTGTTCTTCAAAGATCGGTTTGTGCCAGTGCGGA -TGCTGGTCAATGGCGTGTCTATCTTCTACGATAAATCCATCACCTCCTACGACTACTATCATGTCGAAAC -TGAACAGCATTCTGTGATCACCGCCGATGGCATGCTGACCGAAAGCTATCTTGACACCGGTAATCGCTCT -TCTTTCCGTCAGGAAGGCAAGGTTGCTACTCTGCGAGGTGCAGTCAAAAGCTGGGAAAACGACGCTGGTG -CAACGTTGGGGGTAGATCGTTCTTTTGTGGAACCGCTGTTCCGAGCACTGGAATGGCGCGAAAACAGTGT -GATTGGTTGTCAGACATCCGGCCAGGCTACGACATTGACCAACGAGCCAGATCTGCATTTGGTAACAGAT -ACAGGAAGTATTGTGCGTCCGATGCGTAAGACAGCGCATCAGTATAGCTTCATGCTGCCGCCTGATACGC -AGTCTGTGCGTATTGTTTCACGCGCCAGCCGTCCATCTGATGTGATTGGTCCGTTTGTGGATGATCGCCG -TTATATGGGTGTCGCTGTTGCAGATGTGCGTTTGCAGTGCGCAAAACAGCATTTCGATATCACCTCTCAC -CTTCAGGCTGAAAAACCGGAAGGTTGGTATGAGACTGACTGGACAGATTGCGCATGGACGAATGGCAATG -CCGAACTGCCTTTAGGGGATCATCTGTCACACGGGAAAATGGGCATCCTGTCCATGACTGTTCGTGCTGC -TGGCCCATATGTTGTAGACAATCAGACAATGACAAAAACGGCAAAATCTGCTTAAAACTTTAGAAACTCT -TCCCCTCATCATCTGATGGGAGGGGAGAGTTTTCTCTCAGTATCCTGATTAAGGAGATTTTCCCATTCCG -AGGGAAACAATAAACTAACAAAACTATTATCTATCCTGCTTCTCTACCGGATAATCGAGAAATCGGTTTT -TTGCATGCATTAAGAACGAATAACTCATACCATGCTGTCATGAGAAAAAAGCTTTCTACTGTGCTTCTGG -CTTGAGGGCGATCACACAGGGCTTGGCTTGACCGGCTTGTATTGCGGGGATTTGACAGTCTCTGATTTTT -GGAAAGCCTATACCTGCTGGGTAGGTCTTTATTTTTTGAAACAACAGGAGTCATTTCATAAGCTAAAGTG -CAGCAAAACCGGTCCACACGTCAGGTCTGACAGAACATAAACACGAGAATGATCCTTCATTCCCGCGCTG -AAGTTTACCAGTAATATTCGTGGGGTCGTTGGATTCCGGTATACGGAAAGACCGCTTCGAGAGGATCAAG -GTCGCCCTTGATGATCAGGCGGGCAACATGCCTGTCATGATGACGGCCAGAACGAATATCATGCAGATGG -CTGTACCAGCTGGGGTTTCATAGGCTTACTTCAAAAAGAATCTCGCATTGTTTTCCGACATGAATTGAAT -TTGAAAAACAAAAAAGTTGTCATTCGGTAATCTCCCCACTTTATTACCTGGTGATAATCTAACACTAAAC -CCCAACCTTAATTCTCCTGATAAATAAGAAATTTAGCTATTTCCATCACAATGTAGATAGGCAAAAGAGA -AAGATATCAGTATTAAAATCTGGTTGGAAATTTAATTCTGAATATGGGAAATGCTAAATGCATATAAAAA -AAATAGCTTCTGTTTTTAGCTTAAGTGTTATGATGGCACTTTCTGCTTGTGGCTCTAGTGGCAATGTTTC -CATCAAAAACGAAACCGCTACCTCAGTTGATCAGAAGATCCATGACGGTGTAACCACCAGAGAAGAAGTT -CGCCAGATGTACGGCGACCCAGTAGCAACTGACTTCACCGATAGCGGCCATGAAAAATGGACATACACCT -TTTCAAACACACAAGCAGATGCCGCTAACTTCATCCCGGTTTATGGTGACTTGCGCCAGGGCCAACATGG -CACCGAAAAGCATCTGACCATTATCTTTGAAGGCGATAAAGTCTGGCACCACTCCATGAATAGTTCTGCG -GTGAAGGCTAAAAGCGGCCTGTTCTAAGTATCCCATTTTTTCTTTAGTGACCCTGTATGCAGCTCTAAGC -ATGCAGGTGGATATCCACTGGAAAAATGGAAACGGCCAGTTCCCGGTACGGGGCTGGCCGTACACGGTGT -GCTACTCACGGGAGCAGCATTGCGCTGACTTATCGGATTTTTGGAATATCCAAGAATTGCTTTCGCTACC -CTTCATCTTCTCCTGTTAGTCCCTCTGGCATAGAACGAGGAGACTTTTCCTCTGTCCTGCTTTTCGGCCT -GAATGGAAATCTAATAATTTTTCTATTCTTCCTTCAAAGTTGACGCTGTTTTCTGGCAGACAGTAATCCT -GTCCTTATTGACTTCAACGTAACTGGCATAAGTCTACACTACTCTGCTCGGGGAATTTCTGAGCATTGCG -GGGCAACTTCAGGGAAAAATGATACTGCTCCGACTGACCTGAAAACACGATGGAGACGCGCAGGGCTCCA -TGCTTTCGATGCAGGCTGAGATCATAATAGGATAACAGGTGGAAATGACCATGACTGATACAGTAACACC -ATCATCCAGACCCGACATGATACGCAATCTGACAGTACAGATTGTCTCTGCTTATATCAGCAACAACACT -CTGCCAGATAACGCGCTACCTGACCTCATCTCCACGGTTTTTCAGGCACTCAACAGCTTGGGACAGGGAA -CACTTATAACACAAAATCTCGTGCCGGCTGTGCCCATAAAAGAATCTGTCTTTCCAGATTACATTATCTG -CTTGGAAGACGGGAAAAAACTCAAGATACTCAAGCGTCATCTTCGATCCGTTTATAGCATAACACCAAAA -CAGTATCGGGAAAAATGGGGCTTGCCGGACAGCTACCCAATGGTCGCTCCATCCTACTCGGCACAGCGCT -CCGCTCTGGCACAGGAAACCGGACTAGGGCGGGCCATTAGGACCATACAGGACGTTGCCGAACCCGCTGA -AGATCAGGTGCCCGTCACGCACATACCCGAGAAAAAACGCGGACGCAGACCAAAATAGGCATGAGCATTC -AGGACAGATCGGACCTGTCGGAATCTACTTCGTATGGGCGTAGCGTTCTTCTTGGAACACTGGATGCGAT -TGAACGCGCAATTGATCCCAGACCTGGCATTGGCCGTAAGCAGGCGCTGCTGCTGCTTGGGGTACGCGAT -CGTGTGATTGACGCGCAAAAGCGCTACGAGGATGATATTTCCTCACCAATGGATCACAAGGAATTGGCAC -GTCAGATACATAAGCTTTCGAAAAGGCTCGTTGCATGAAGGATATTGTCGTTCTCCCTGGAGGAGAAGAA -CTGTCATTGGACTGGAAACTATCCGATCCGGAGCGATTTCAACTCCTGCTCAAGGAAAAGCATGCTGACA -ATGGCAAAGCGGGCCCGGGGGAAAAAGCACATTGCCTCTGTGTCCACCAAGGACGTTATCTGGAGCTTCA -GATCAGGGAGCTAGGTGAGAGTTATTATTTTGCTTGCATGCCAAATACAAGACCATACCACAGACCAACC -TGCCCATTTTACAAACCTAACCCCGAAAAAAGTGGACAGGCCGCCTATGTGGATGGCGTCATCAAGGAAG -ACACAGAGCACGACGAAGTTACTGTCAAACTAATTACCTCATTAAACCGAAACAGCCCTACGAGTTCGGA -AACTGCCGCTCTTTCGTCTGCTGGGACACGGTCAGGCGGAAAAACCCAGAGACGCATGACCACTCTTGGT -TTGCTGCATCTCGTATGGGAGCGTGCCGGTTTGCACTACTGGCGGCCACAGTTTGCTGGACACCGTACTG -ATCCAAAAGCGCTCAGGCGGGCTTACGCAACATCTCGCAACATCAAGGTCCACCGTGGCATCACACTGGA -TCAGGTGCTCTGCCCAGTCGTCTCCGGCGATCGGGGTATTCAGTATTTCACCCAACGAACAATCAAAAAC -CATTCAGAGAAATTAAGACTGTATGTGATTGGGCGTTTAAGTAGCGTTCAGGTCCATCCTTATGGAAAAG -GATACAATATCGAACTGTCTGGAATACGAGATGGATACCGAATGTTCATGTCGATTTCACAGGCCAAATG -GGAGCGATTGGAAAAATCGTATTCAAGAGAACTGGCAGAGTTTTCTCGGAGTGAGGAAGGGCTTGCAGTT -TTTGGATTATTCCTTGTCACCATAGATCCAATAAAAAAAGGAAAATATAGTAATTTTAGTACCGTTCAAA -TCGAAGATGCTGCTCTCATGACAACGACTGAGCAACTTATTCCAGTCGAAAGCCGCTATGAAGCAAAAAT -TGTAGAGTTATTAGTTCAAAAGGATAGGACCTTTATAAAGCCTCTCCGCTTTGATGCAGCACGAGAGCTT -GTCCGGCCTGACTTTATCTTGACTGATATGGGCAAAAAAGAAGGCTGCCCAATGGAAGTATTTGGGCTGA -CGGATGAAAAATATCTCGCACGCAAAGCAGAGAAAGAAAAATACTACGCGCGTGTTTTTGGAGTTGACGG -ATGGTGGTCATGGGACGCTGCCCATAACGCACCCATTCCGCCTTTTCCAAAGGTCTCACTCCCCTTAGTC -AATCATTCTTAGGGCTCAGACACATTCAGAGCCAGAAGCCGATGATCAAGTCTTGCGGCCACCCGGCTGC -GTCGAATGAGCTGGCAACTGACCGACGTGGTACGCCCCTGGTCGAAACACTAAGCTGGTGGACGAATACG -GCTTGTGCCGCGCCAATTTACCAGCAACTATTGTTTCAGCGCGACGACAGCGCCAGCTTGAGGCCGAAAG -CAACGAAGATCCCACCGGTCAGACGGTCGAGAACACAAACTGCGCCAGGACGCCGCAGGAACCGACCCAG -TGGCATGGTGGCCGCGATCAGCAGCGCGAACCACAGCATACCCAACACGACGTGGATGCTCACCAGGAAC -ATAGTGTAACGCGCCACACCCGCCGCCACCGGCACGAACTGCGGTAAAAAGGTCACGTAAAAGACACCGA -CCTTGGGATTAAGTATGTTGGTAAGGAAACCGCGCCAGAACGTGCCGCCGCTACGATTTGTTTCCTCGGT -CCCCTCCAACGCCTCGCGTGGGCTAATGATCAGCCTGACGCCTAGCCAAAGGAGGTACATCGCCCCGGCA -ACCTTAAGGATAGTATAAGCGAGTTCGGAGGCCCGCAGCAACGCACCCAACCCGAACGCCACCGACAGCC -CCCAGACTAAGCAGCCACACTGGATGCCGAACGCCGCCAGCACCGCCGAACGCCGACCATCGACGGTCGC -GCTGCGCAGGACCATCGCCGTATCTACGCCGGGTGTAATAGTCAGGACCGATGCTGCGGCCACGAACTCA -AGCAGAAGAGGAAGATTGATCATGATCCGCCGTTATCACAGGAGGCGTGGCACCGCCACCTTCCTCTTCT -GATTGAATTTGGACTCTAAGGTCTATATTAACTTATCTATCCACCTCGATCAGCTGATCGAATAGCATTG -AGACGTGGCGGGCTTACCGGCCAGATTTTCAACTTCACAGCGGTAACGGCCTTTAGGCGTCTCAATGATA -TAAATGCCTCCAGTTGCATCCATCATAGCAGCCTCCACATGACCCTCTTTCAAGAGGTCGGACATCGGTG -TTGAGACCGGATCATTTTTCGTTGAAACTTTTGGTGCTTCTGTTGTTGGCTGATCAGCCATTGCGTTAGG -TATCGTGGCACAAAACAAGGATGCTAGAGCCAAGGCAACGGGAATATTTTTTTTAAACATACTCAAACCT -TTCATGAACCAAAATTGGTTGAGAGTTTTATGAACCTTAATAAGAGATGCTATGTCTTATAACTTGACGA -ACCGGCCACCTGAATCGCGTTTAAAATGGACTCACGTGCTCTGGCATCTGCAGCAATATTTGCAAGATCA -GCTTGATGATCTAACTCCTCGGGAGACATATCGCGTCTTGGGAATGCCATAGCCCTAACGGCAGATCGCA -CGGGTGATGTCGCTACTGACGATACCGGATCCTCAATACGAGCAATTCTGCCCACCAGGCCGACAACCAG -GCCCACGAGCACCATAAAACCGACCAATACCAGAAAGAGCATGAGGGCTTCCTTTATGCTAAGTCTTGAA -TATCGGCATTATGACATTAGCAAAGCCTGTTGCAAGTTTCAGGACACAGAGGGAGATGACTGGCCAGAAG -GCGTCATTGTCACGATCTTTGCATATCGTTGGCGTATATCTTTTTCCTGACGGCTCATCACTTCAGGAGC -TTGTTCGAGTATTTTTTTCAATTCATTATCAAGCCGACTTATCAAGTCGGAATGTGCGGCGTTAATCTGA -CGGCCTCTAAGAGCCATCTGGTTCTCACGTCCAATATCCCGGCCCTCAATACGAGCCTTCTCTATTTTGC -GGCCGATATCAACAAGTTCACGGACTCTTTTATCCCGATCCTTTTTCTTCCGATAAGGCAAATCCATACC -CAGAGCCTTGTAAGGCTTATGCGCCATCTTTTTAGCAACATAGTCCCACAACTGGTCACTCGTGATTGGT -TCTTGATCTCCCAGAGCACGACCATTGCGAACCGCCTCAAAAGTTGCCCCATCTGAAATCATCGTCTAGG -TTGTACCCCGTGCACGACTTTCGGCAACATAGGTTGTAAACCCCGTCGCCAGATCCACACCGCGCGGCAT -GGCATTAATATGTTCATCAGAGGTCAGACCTTGGGCGGCATCAATTGTCATGGCATGACCAAATCCCAAC -AGAACACGATTTGAGCGTGGATCTGATAGCCGGCGCCATTCCACTTGTGCTTCCTTCCCATCCGCAAGCC -TCAATTTCAGCCCCTTGTCAGATGCACTGAGAACCTCACAGATATCTCCGTTATTCCCTACCCAGGTGTG -CTTATCTCCAACAAGACCCCAGACCCGACGATACAGGCGCACCTTGTCTCCAACAGCAAGAGCCATGTCA -TACTCTTCGCCACGCTGATCAATGGCTTTGATAATCTTCTGGTCTGCGCCAATATCTCCGCGTTTTTGTA -ACACCTGACGTACCGCCAGACTGAGATCCGCAGCATCCTTGTTCGTTAGCGCTGACATGGTGATCGTCTT -GAATGATCCGTCCGGCTTCGGGCCTTCAGCCTTCAGGGCATCTTTGCGGGACACATAATGTTGTGCGATG -GCCTCCAGAACATTCTGATGGTCTCCTGTCACCAGACTGATGCTGCCGTCCTGGCGCTTCATCTCGATAG -CCTGCCTAACCTCCTCAGTATGAAAACGGTTCCTCACGTCATCATCACGATTCGCGTCTGTCTCTGCTGC -AACTGCTTTGCCCTTCGTCTCAAGTGCCTTAAGCTGATCATCGCTTGGTTCTTCTCCACGAAAAAGAGCC -GCGATGTCACGATTACGCTTCGTTTTCTGGCGTACTGTTGACAGAAGCTCAGCCTGATCACTCGGCTCCA -GCACTCTCTTGATTATTTCAAGGGCATCACCCGCCTCGATAGCCTGAGCCTGTTCTCTGTCACCCATCAT -ACGCAGGGTCAGTCCCGTATCACGCTGCAGCTCAAGCAGTCGTAGCATCTGACGCGGCGCCACTTGCCCG -ACTTCGTCAAGAGCTATGACGGTATGCTCATCCAACGTGAGGTCGCCCCGATCAATACGGGCCAAAAATG -GAGAAAGCGCATAGGTTTCATCAATACCGGCATCTTTCATGGCATCGGCCTGGCGCCACGCATTGGCCAC -ACCAATGATGCGCCGTCCTGATGGGTTGGCCTCGGTATCATTGCGCCATGCGTCCACAAGAGGCTTGAGA -AGTGTGGTCTTGCCGGCACCAGCCACCCCCGTAAGCATCGCTATCCTGCCGCTCTGCCCCAAGGTATGAA -CGGCTTTACGCTGAGCCTGCCCATGCTCCGATGTAAAATCCAGACCTGAGCGGGCAATCGCATCCTCAAT -GGCTTCTTTTCCGAGAGCCCTGCTCCGATCAGATGCAGCACGAGCAATATGAATGGCAAGATCCTCTTCC -AGTCTGATTTGCTCAGTATGTGTGACCCTCTCACGCTCTCCTTTCATCTCAATAATGAGTTGCACCTTCT -GACCGCGCACCTCAATGCCCCGTTTTTCTGTCAACTCGACCACGGCATCTATGTCAGATATTCCGCCCTC -AATACCCGTCGCAATGAGACCTCGTGCAGCATAAGTCCGCAGTTTCTGGTGATCGATGACAGCGGCTGTT -TCAAACTCCTGACCAAGATGCCTAGCAACGAAACGCCACGCTTGATCAAGCCGCTGTTGGCGATCCAGGC -CGGTATCAATCTCCGGCCCCATAAGGCTTTGATCTACCCAACCCAACTCCTTAGCCTGACGCTTCCAAAT -ATCGTGGTCGTCAGCGTCCAGATCCTTACCCAATCGGGCGGCCAATCCCGCCATTGAAAGCATTTTCTGC -TTTCGTTCGATTGACAATCCCTCCCACTCCAGACCTTGTTCCGAGGCGTAGGACTGAGCAGCTTTCAGGA -CATTGCGGCGACCTTTGCTGAAAAAATCTGAAATCTCCTGTGGCACGGCAGAGATGACGGTTGCCTGTTC -ATTGGCGTCATACGTCTGGGCAATGCCAATTTTACGCAATTCCTGAGCGAGGATGGCTTGGAAGTAAGCG -CCAAACTCGTGAACTCGCGATCGAAGCTGTTTTGTATCCAAAGACCCGACATGACCATCATCTGTGACAA -CCATGTTGAACATCGTGTTGTGAAAATGGGCATGAGGATCACCACCAGCCGGCGTATCAATCAGGTAGGT -CTGATTGCTCTCGGGGTCTAACGCCTCGACTGTTGGCCGTGCTGTCGTGTGGCGGTATGTTACCCATGCA -ACATGCCCTTCTTCAGCACCGTCCTTCCCGCCCCGGCCCCGTCTAGCCAGTCCCAGTTTACGGGCCACAT -ACCGCATAGTCTCGTCGTTAGCGACCTGCATAGCATGCCAGATAGCGGCGCGTTCTGCGTCAGTTTCGGC -AAACTCTGCCGCAAGAGTCACAGACTTGTGAGGGGCCAATGTCAGATCATAGGCGCTGATTTTGCGCTGG -TGTGCTGACCATTCCTCGCCATTGTCAGCCCGTTTGGCTTCATAGAGACGGGAAAGCTGCTCTCGGGTGG -GAGGCTTGAAACGGTCGATGCCTAATGCCTCAGCAGCCCGCCACGGCATATCCGGACGCCAGGACGCACG -ACCATCACGACCGGTATAATAATTTGTCAAACGTGCACCGTCGCTGTCAGGCGTCTTTGTCGGATCCAGA -CGGCAGTCACTCTCCGGATCAGGAATATCCTGTAGGTAATAATTAGAGATGATCTGTCCTCTGCAGGCCG -CAGAGATTTTCCGGAAGGTCATCATTCCTCTGCGCCTTCTTCTCCCGTTGTATCCGGGTAAGAACGTGGT -GTACGTCCTTCAAGAAGATCCAGCGATGCGCCAGTGGTATGGTCAATGCGGCGAAGAACCGGTCTTTGGT -CGGCTATGAGGGTGACAATACGGGCCAGCAGATCATCCAGAGATGGGCCTTCCCGTTCTTCTGGGGTCAG -CAGTTCGAGTATGAGTGTCTGGCGTTGATGCAGAGCACGCAGTGATTCATGGATCGCATCAAACTGCTCA -TCAACGTGAGCACGCCATTCTGCCGTTGTTGGTTCTGGTAATTTTGTCATCACATTCTATCCTGCGAGCC -CTAAATGATGCTTCAGGATCAGGAATGATGATGCGACGAAAAAGGGGCGAGCGGAAAAAGAAAGAGGACT -TTCTCAATGAAGAGAAAGCCCTCTCACGTCTCATTTCACAAAAGATCGTTAAGCTGAACGCTTCTGCACA -TCAGACACGGCTTGATCTGACAGCAGATAAGAGCCAGCAGCCCGAACAGTCATGGACAGGATGCCCATTT -TCCCGTGTGACAGATGATCCCCTAAAGGCAGTTCGGCGTTACCATTTGTCCATGCACAATCTGTCCAATC -GGTCTCATACCAACCTTCCAGTTTTTCGGCCTGAAGGTGAGAGGTGATATCGAAATGCTGTTTTGCGCAC -TGCAAACGCACATCTGCAACAGCGACACCCATATAACGGCGATCATCCACAAACGGACCAATCACATCAG -ATGGACGGCTGGCGCGTGAAACAATACGCACAGACTGCGTATCAGGCGGCAGCATGAAGCTATACTGATG -CGCTGTCTTACGCATCGGACGCACAATACTTCCTGTATCTGTTACCAAATGCAGATCTGGCTCGTTGGTC -AATGTCGTAGCCTGGCCGGATGTCTGACAACCAATCACACTGTTTTCGCGCCATTCCAGTGCTCGGAACA -GCGGTTCCACAAAAGAACGATCTACCCCCAACGTTGCACCAGCGTCGTTTTCCCAGCTTTTGACTGCACC -TCGCAGAGTAGCAACCTTGCCTTCCTGACGGAAAGAAGAGCGATTACCGGTGTCAAGATAGCTTTCGGTC -AGCATGCCATCGGCGGTGATCACAGAATGCTGTTCAGTTTCGACATGATAGTAGTCGTAGGAGGTGATGG -ATTTATCGTAGAAGATAGACACGCCATTGACCAGCATCCGCACTGGCACAAACCGATCTTTGAAGAACAG -GCAATGTTCAGCGGTAATCAGCATATCCTTATAAGGCACACCATCGGCAATGGCGTCTTTGAGGATACGC -ACTGGCCAACCGGCTTCGTCATCATGAAGTTCAGGACGCACCACAGCTCGCGCCTTGCCCACCCAGACTA -CGGGACGGACGACATTCTTGTTGCTCTTCCAGTCGAATGCAACGATTTTGTCACCGATCTGGATATCTTC -TACAGCCACATCACCGTCCTGTGTACGGATCATGCTGCCTGAAAGAAAACAAGTGACCGTTAAAGTGTTT -CCCTCAAAGTGATAGTCTGAAGCCGTATAACCGGGGGCCAATGTCACATTGGCTTTGACTGTTCCAGCCT -GATCAAGAATTTGCGTTCCGTCAGAGCTTAAATGCAAAGATGACGTATTCCCATCAGCAAAAACAACTTT -ATCTTGCGGAGAAAGATTGCTTATTGTATTTATCTGAGCATTATTTGTTATTGTTAATGTATTGTAGAGA -CTTGAATCAGATGGCGAGGCACCAAATGCAATTGAAGCATTTAATGTGCCAACTGTTAACCCGCCACCAT -CAGAGATCGTAATTGTATTACCTGATGCTGTACCATTAACTGCAAAATTTGGATTCGTAATGGTCAGGCT -GCCATTATTTACCAGATTTCCACTATCTTTCAGGTATCCATTACCAGAAAGCGTCACGTTCCCGGTAATC -GTTAAAGAATTAACCCCAAAAGACGAGTTAGCGGTATCACCTTCTTTCCAGCTACCATAATCTACTGGGT -TAACCGCAAGTGTTATTCCAGACTTTCCCCCTGCAAGATTTACGTCTTTCCAATCAGAACTGCTTGTCCA -ATCACCACTGGTGTTAATCGTATATGTATTATCTGCCATTCCCCAAACTCCTGATTTGCGCATAACCTGC -AAGACAGGATTTTTCTGACATTATTTATTTTCATATTGCCTTCTTTGTTTTACCTATATAAACATCAAAT -ATATATTCACTGGTGCAAAAGGCCCGTTATGGCATTTGCGCAAATCAGGAATTGCGCACAAAAAGATCCC -GAGATAAGCATCCGTCTTTATGAATTCAGGATGGCGGCACATTGTCTCGGAAAGTTGGATATGCTCGCGT -GAGCACAGTCGGCCAGACGCTCGACGTACAGTTCCAATCTCTTCAAAACTATGGATGCGCCAAAATTTTC -CGCGAAAAGGCAAGTGGCGCGGATTCAGAACGCATCCAGCTTCAACGCCTACTTCGTAACCTCTCTGATG -GAGAGACTGTCGTCGTGACGCGAATTGATCGGTTAGCACGCAGTACCTTTGATCTTTTCGCAATCATTAA -AGAGATTACACAAAGAGGTGCGCAGTTTTTTTCTATTGCAGAGCCTTGGGCTGATACGACAACGAGCACT -GGCCGCCTGATGCTGGCGGTTTTAGGCGGTCTGGCTGATGTGGAACGTGACCTGATTAAAACCCGCACTG -CGGAAGGGCGCATACGCGCTGCCCGTTTAGGTGTAAAAATGGGGCGGCCTGCCAGGATCACAAAGCTACA -GCAACAGGAAATCAAGGACTTGCGTCAAAGTGGCGCAACACTGAAAGAACTTGCGTTGGAATACGAGATC -AGCACCAGCACGGTCTCAAGAATTGCAACAGGGACAGATAGTCACAGCAGCCGTAAACACCCTAAAAAGG -AAAATTGATACTTAAGTTCTCTCATCTATGCCACTACTCATGATCTTACAGCGTACCCCCGCTTGAGCTT -TTGACGTAATAGATGTGCCAGTTGATTAGCCGCAGCTCCTACATCAGGAAAAAGATCAAGCCTTACTTTT -CCGGGAGTTCCTATTCTTCCCCATCGTCGAATGAGTGCTGCGCCACCGAATAGATCTGGTTGGATTGAAA -GATCGTAATAGCGCCATGTGTTACGCGGCGGATAGACGCGCACCAGAGAAACGGCGTCCGGGAAAAGAGT -GAGTTGCAGAAAAGCCCCATCCCGCACTGAGAAATCATTCCGCCGCACTTCAAGGCGATCAGTAAACCCT -CATTGACCTGTCAAAGCATCCTTGACAGCTTTTGCTGGTGTATAAGCCAGTTTACGAGATGCGGGGATCA -CCAGATCCGCACCAGTTTGTGGATTGCGTCCTTTGCGCTCAGCCATCTGACGGACGACAAATTTGCCAAA -TCCTGAGATAGTCGTTTCGTCACCTTTCGTAGCGGCTTCAGTAATTGCTGCAAATACTGTTTCCAAGGCT -GCTTTGGCATCTTTTTTTGAAATATCCGTTACAGCAACAATACGTTCAATCAAGTCCTGGTTATTCATTT -AACGTTCCAACATGATCCAGTAGGGAATGGAAGGGTAATAGATTTTACACCACAACCACAAGGGTTTACC -TTCCACTCCCTCAATGATGGAACTTATGACCTCACTGGTGATACAGCGGAAACCGGCTCAAAGTAGGGGC -CAGTGCCAAGCTTATCATCCAACAGCCGCATAACCGTGGATAGACGGCACATATACTGGCGCATTTGATC -CGACCGCTCACTATTTTGTCCAAGAGCAAACCAACTGATTTGCACGAGCTTCACCAGATGAATGAGTTCC -AGAATATCCAGATCATAAGACCACGGACGTTTTGCTTCGCTTAACGCTCTTTCGACGGAGAATTTCCCGT -TCATCCGGGTCACCAGATGGCGAGTTGATTGATAGATATCACCTTCTTTCAACTCCGCAAGAAGACGCAG -ATCGGCCGCGCTAATATCGGGCTTGGACGCCCCCCTGTCGGTCTGCGCACCTGCATCAGGCCGGTATTCT -CCCGTGCGACGGATCTGCGGCAACACCTCATCTGTCACCCACCGCCGGAACCGCTTGGCTACGGGTTTCG -TCGATATAAATGTGAGATGGTACGCGCCACTCTCATTCACCAGATATGTGTCTTGGGGACCACCTTGTGT -CTGAACAGGCACTAATTTGCATTCATCATCATCCAAGCGCGTCACGGCATAGCGATGACGGCTAATACCT -AACAAATCGCATACTTCTTTGGCCAATACCCATCGCTGCCCACCAATGAGAACTGTTCCCAATTGTTGTG -TCTCGAAGGTTAAACCTGCAGGCACAACTGAATGTACATTTTGTCGGCTGTTCTGATTGTGTTCTTTTGC -TGTCATCGTCCGTATCTCCTGATAACCGTATGAACAGCTAATCTTCAGTAATCATGATGCGACGAGAAAG -ATTTTTTCTCTTCACACAAACCATGCACGACCCCAAAGGGAGCCAGAATCCTAGCTCCCTTTCTCCGCTT -GCCCAATCCTGGCGGCGCAGCCGCCGCACTGAGGGTGCAATGGTGTATGAAGGCCCTAAATTTGGTGGAA -CGGATGTGGGACTCATATGGGGCGGAAACGGAACGGAAACCCCACAGATATGGGACGCCATGAGGAACGG -AACCCCCACGGAAATGGAACAGAAAGCCCCACAATCGTGGAACGGAAAAGCGGATATCGTTTTCGGTCGC -ATCTTGGAAGCGCACCATCAGAGGACACTGAGGCCAAGAGAGAGACCCATGAAGTTCGCAAAACTGAAAG -AACGACTCAAAACGCAACCGCGCAAGCGCACGACAGGAAAACTCTATCAGTGGCTGTTTGAAAACCACGC -AGAACTGTTGGAAATGCGGCTACCTGGTGAAATGTGGTTGCCTTACATAGAACTCGCCATTGAGGACGGC -GTGCCTATCAAGACTGATACCAGGTCGATACAGCGTGTGCGCAAAACATGGCACCTCGTTTGTCGAGCCA -AAGCCAAACGGGCTCAAGCCCTTCCCACCTCAGACATGGAAAAGCCAAAGAATAATGAGAATAACGACAG -GCCCATCATGCCCAGCCGCTTACCCGCCGACTGGACGCCAGAGTTCGTTGATATTCCACAACCTGCCCCG -CCATCTGTTCAGCCAGTGCCTCAAAGCTCCTCTATGACCCTTAAAACCGAGACGGTTCCTGCAGGCGCCC -CCATGACGATGGAGCAAAAAATAGACAAAGCTCGTTTTACGCTGGGCCAGGCCAAGTTCGACCTCACGTT -GGCCAAGGAACAGATCAGGCGAAATGACAGTCAGGGCGCGCCGATGCTGATCAAGGAAGTAGAGGCAAAA -CTCCCTGAACTAAGAGAGATCATCAAGCAAAGGCGCGCCATCTATGATCGTCTGCTCGCAGGCGAGGATG -TTCCTGAGGCAGAACTGGAATTCAAATCACCTCGCGAGAGAGAGGAAGACCAGTATTCGGACTGAAGAGG -CTTTTTCATTTTTTTCTGGAGAAATCCTATCTGGTCGCATGATGACACGGTGAAATCCTTCTGAACGGCA -CCCTCATGATTGCGCGGTGCCGCACCAGAAAAGGATGATTCAATGACTGCAACCAGAACGGATCCAGCGA -AGACCCAACCTGCCAAGCCAGCCCGCACCAAACCCCCTGTGCTCCTGACCGCAGTCGGTCGGCAACGCAC -GGGCAAGACCGTTTTCCTCAATGCCCTGACTGAGACAGTCATGCGTCAAGGCGGTGATGTAGAAGTCTGG -AATACAGACCTCCTGAACGTCTCCCACTCCATCGCGCACTTCCACCCCAATACAAGGAAACCCGCTACGG -GCAATCTCAAGGAGCAGAAATCCTGGCTGGAACAGCAGATCGAAGGCATGGTGAAACGCCAGAAAGACGT -GATACTGGATATCGGCGGCGGCTGGACTGCCTTCCACGAAATCATCAATAGCACCCCTCTTGTGCCGCAA -CTGGCCAAGCTGGGGATCAAGGTTGTCGTGGTATATATGCTCGGCACGGAACTGGCCGATGCTGACTACC -TGCAGGATCTGCAAGAGAAACGGCGCTTCCTGCCCGGTCACAGCATCATCGTGATGAACCGTGGCTTGCT -GCCGCTTGGTTACTCAAACAACAGCCATTTCGACAAAATCCGTCAGACACCGGCCGTCATGAACGCCACG -GTAGATGCGTCAGATGACAATGGCGGAATTTACTTCTTGCCGGAACTGGACGGTATGGACGAAATCACGG -ATCGTCGGATGTCTTACGCAGACTTCATTGATGACAAGAACGTCGAGGGCCATCCCCCCAGCGGTCTTTT -TGACCGGATGCGCGCAGAAGTCTGGTTTCACCGCTCTTTCCCCGAGTTTCTTGCACAGATTGACCCTAGC -CTCCTTCCCGACATGCCCAAAGGTCTGCCTGTCCCGAAAGACTTTGAGTAGCCATGAGTCAGAAAAACGA -CAGACAGCCGGACAATCCACCCACTCCCGCGCAGGCGATTGAGGAGCTGAAGCATGCGCTTCAGCACTTC -ACTGTCAGGCCGGATACTGCGAACGGGCGTTTCTTCTTAGCGATACTGGCCGTGCTGGAAGCACAAAACC -GCACCCTTGAAGCTATGCCCAGATGCCTCGATGAGGCCCTCGTCTTGGTTAAGGCAGAACGTCGCTCAAT -CGAGCTTACATTGCAGGACGGTGTGGATGCAGCGAAGACGCTGAGCCAGATCAACGAACGGATGGTTGAG -CAACGTGTTCTGGATGTTGTCAGCAAGGTCTTCCAGTCGTTGAAACCTGAAATCGGGCGGCGGGCAAAAC -TGATTGCCGACCGGTATCAATGGCGCTCCACTGGGATCATCATCTTCTGGGGGATGGTTCTTGTTCTCAT -CGGTTTCGTGCTGGGGCGTCTTCCATGAAAGTGTGACCATAATGGACACACTTTCCCTGCCCGCTCTTTT -TTTAAACTCGTCGCATCATGATGAGGAAAAATCACCGCATCGCAACCAAAGGAGATGCTCGTGAAAAAGA -GACGAACCGCGTGGAAGGTCTGGCCTGTGCTTGCCTCTTCCTTCTTGGTTTATCCTGCATTGGCACAAAC -CGTCAATGTCCCGGCAGGTCTGCCGCCAACGGTCAATGCAACCTATCAGGAAGTTGGGATGGGCGGCTGG -ACACCACCGACCTCCACCACAACACGGCAGATTAGTGGAAGTGGGTCCGTAGTCTCTACAACCACAACAA -ACGGAAGCAGTACGGATGCTCTGCAATCGATGTATTCCCAATCATGGGGATATGCCGCGGCCCAAAATGC -CAGTGCCCTTGGGGTAACTCCAGATGCTCTGGCGGCAACGTGCGTTGTAGAGTCAGGATGTCGCAACGTT -TATACAGCAAACGGCAATTCATCCATAACAGGTGCATTTCAAATGTCGAACGGCACCTACAATGAAGCTC -TGCAAAAGGCGTTGGCCTCTAACCCCAGCCTTGCATCCAGTATCACCAACACGGGAATTTCTGGCCAGCA -AGATCCGGCCACACAGGCGGTTGCTGCGGCACAGTATCTCAAGGATGCTGCGACATCGCTTCAAAATGCA -GGGATAAGCAACCCGACCGCCCTAGACACGCGAGCCTATTACAATTTCGGCCCACAGCGAGGCGCGCAAA -TCGCTACTGCGAATGACAGCGCATTGATGTCCAGTTATGTTCCCAGTAACCAGCTTGCTAGCAACGGAAT -CTCATCAGGAGAAACAGTCGGTCAGTGGAAATCTTCCATCGCCGCAAAGATGGGCTCCGCCGCCAGTTCT -CCAATTCTCAGCTCGTAGGATAAGACAGCATGACACTGAAACATCTACGTCTCGCCTTAGGAATGGCGAT -CTTGCACATGACGCCTGTAATCGTGATGGCAGCAGAACATAAGCCTATCAAGCCGGTATCGGGATATGTC -TGTATGGCGCTTGATGCGCCTGATTCCGTCATGATGAATTTTGATCATCCCATCCCGCTCCAGACTGAGC -CTCGCGATGGAGCGCCGATGATAGCACCAGCGCTTGGTGTTCTACCCGTAACCACGAACGTTCCAGAAAC -GAATGGCTATGTTCAGAGCATGAACCTTGCATTCAAGACTGGATGGGTTCCAGCCAAATATGTCAAACCC -TATGCTAAGGTTCATCCGGGGAACACATGTACGCCCTACGTGATGGATGACGGGAAGCTCGGATTCATTT -TCGGACATTAGACCCACGCGGATATTCTTGCGTTACTGCTCCTGCCCTGTGTGGCGTCTGCTCTCATCTT -CACGGGTGGGCGGAAATATGAAGCCAGAAATAGCTCTATCCAACGCAGGCAAGCAGTCGGCCTCACCATA -GCTGGAGCAGTGACGTTGGGCATGGTGATTGCCAAAGCCTATCTCTCTGGACACTGAAAGCGTCTTCCGC -ATCAGTTCTGTCCCACAGAAAAGCCGCCATAAGGCGGCTTTTTTTGTGGATCAGCTGGCTGTGCTCAAAC -TGCGCTCTTGAAATGCCGGATCATGCAGTCGTTTTCGAGGAGATGGTCGCGCTAGAATTGCTGCTTCCAG -ATCGAGCAACCATGCCGAGAGATCAGGAGGCAATGACGATGTCCCAGCAATGGCGCGTCGAAACTGTGTG -CGATGCATATCGCATCTCTCGGCCGCGAGACGTTCCGTCCAGCCCAGCACCATGAGACACTGGAACAGTC -GGCGACCGGAGAGCCGTAGAGCCGGGCGTTCGGAAGAAGAGGGGGTGTCTGTCGTTTTCATAGTGTGATG -TTGGCTGGCCATGATGCGACCGGCCAACCTTCACTGTGTTTTATCCCTGAATCAGGAAGGCCCGGAGCAA -CCGCTTCCAGAATGGCACCCCTTCTGCCCTCCATGTCCGCTGGAGTTGCCTGTCTGCCGCAAGGCTATCC -CATAGCAAAGGCGAGACGGACAGCCTCTCTCGCCGGGTTGCCCCCTCTCTGCGTTGCCGTTTCCGCTCCT -TGCGGATCATGATCGCACGGGCAAGATTCATGACACACCTCTCTCGCAAGCTGAACTGCCGCTGTAGAGC -TTTTCCACGACGCCGATAACTTTTGACCCAGGCACTGTGACGGTCCAGTATGTTCCATTCCTGCCGACCT -TACTCACGTTGCACTCGTCAATCATCCAATGATTTTCCATGGCTGTCGCGGGTGTCACGAAGATGGCGCG -TCCGGCAGACAATTCCGTCTCCGGATGCCCTGACAGCCACAGAACGTCTGAACTGTCTTCGTGCTTCGAA -TCGTGAGGCTCAATCCCGGAAACCCTGGCGCCCAGTAAAGCCACTATTTTCAAGGATACATGATAGCATC -CTTCCAAGGACTTCGCATAACCCGCTGGTTTTTGCTCGACAGTAATGGTCAAAGGCAAAGAGGGATCGAA -ATTTTTTTCTCTCCGGACTGCTTTCATAAGACTGCCGAATTGTGCTTCAGCCTCATCATCCGCCACAGTC -ATGGAGACAATCGTCTCTGGCTGATAAACCTCTCTCTGTACCTGACGCTCCTGTGTCTGTAAACCGTCAT -CTTTTCAGACAGTCTGGTTAGGTCTTCTTGTTATACTGACCATTTGTTTCTTCTGGGGCAAAAGACAATC -ACGTCCCATCCTCCAGCCAGTTTTCAACCTTCAAGCCTCGGATGCACATAAACTCACGTGTGTTGTTCGT -CACCAGGGTCGCCTTGAGGGTGTAGGCGTGAGCCGCGATGAGCAGATCATTCATGCCGATCGTCTGCCCT -GCGGCTTCGAGTTCGGCGCGGATGCCACCGTATTCACAGTCGGCAGGAATATCGAGAGGCAGCACGGGGA -CAAACGCCAGCACGCTTTCAACCCGGTTTAACAGCTTTGCAGAGCCTTTTTTAGCACATCCATATCGTAA -CTCAGCGGCCACAATGATGCTGGTACAAAGGTCGGCGGGATTGATACGTTCGACGCGACGCGCACATGGG -CCGGAAGGATTTCGGACAAGATCACTGATGATATTGGTATCAAGGAGATAGGCGTTCACAGAATATCTTC -CGGTCTGGCGGCTACGTCCTGAATATCGGGAAAATCGTCTTCGGGGGCCAGCTGCGGCTCTTCGCGCCAT -GCCATGAGAAGCTCCTTCAACGTTGAAGGGGTTTTCACAGGCTCCAGAACGAGCTTGTCACCGTCACGGC -GGATCAACACGCGATCTCCAGGCATTTCAAATTCGACCGGAATACGCACAGCCTGACTGCGATTGTTCCG -AAAGAGTTTCACTTCGCGCGGTCGGGGAGTCATTTCAGGAACAGGCATTAGAGCCTCCTTTATGTATATC -CCTAATTGTATATGCCGAACATGCTGACCTCAAGGCTTTTTAATTGCCCATTAAAGGTGCCCGACAGTCA -CACCATCTCGCCCCCGCATGTAGTGCACCATATAATCGACGCCCGCTATGGACAGCGGCATAGCTACCCC -CTGCAACCCTTCCAGACGGGCTTCGTCTCGGCGTGAGGCGATAAAAGCCAGCGCACTCCCTCTTGAGAAA -GGCCTGAAGGATTCATCCTCGCGCAGCTGAAACCGTAACGGGACAAGGTCGGCCAGCCCGCGGGCGACAT -CATGTGGGGTGGGCTCCGGCTCTGGCACCTTGGATCGGAGCAACGAAGAGGCCACTCGGTCTTCCTGAAT -GGCCAGCAGCAGCCTTTCAAACCGCCTGAGTGTGTTGAGCCTGAGAAAGGAAGGTGTGGGCATTCCATTC -ACGATATGGAATGCCGTGCGCCCCAGCTCCTGAACAAGCTGTCTCATGCCGCCACTCTCCTGCGGATCAT -GCCAATGCGATCGAGAACCCGCGCATCACGGGCGGCGATTGCGACCAACCTTGCCTGTTTTGCTTCCTCT -TCGATTTCTGCCATGATCATCTGATTGAGTGCTATTCTGACAGCCTCTTCGTCCTCCTGGCTGTCCCATT -CCTCATTACCAGGCACTTCGCATCCTGCGGGGCAGCATCCGTATTCAATACCGTGGCAGCAGAAGCCCTC -AAGGTGGAAGTCATCGACATCCGGGGCATAGTCCCCTTTCTGTCTGGCATAGTCCTGCAGGGCTGCGGCC -TGATCGGGAGCGAGCCGAGAGGCAGTCTGATCAATCTCTCTTGTCAGTTTCTGAACATAGAGTTCATAAG -AGCAGCCACAGCCTTTGCTTGCTGCGGTATTGGCTGTTTCATACAGATCTGCGACAGTTGACATAGAGGT -TACTCTGGCTGGACTGGCCGGGGCACCTCCCCGGCCTTAGAGGAAAAAACTGGCACTCAGAACGGGATCT -CGTCATCGATACCAGCGTTTGACTGCGGCGCATCCCACCCACCGGCCTGACCGCCGTTATTGCGGGTGCC -AGAGTTCCGTGGGGCGTTGCTGTATCCGCCACTCTGTTCACCCTCCTCAGTGTGCCGCGTATCCAGAATG -GTCAGCTCGCCCCCAAAACGAGGCAGCACAATTTCGGTTGTGTAGTTGTCCTTGCCGTCCTGCCCCTGCC -ATTTCCGGGTCTGGAGTGAGCCTTCGAGATAGACCTTGCGGCCCTTGCGCAGGAAACGTTCCGCCACATC -TGCCAGACGTTCATTGAACACGACGATCTTGTGCCATTCAGTGCGCTCACGCCGTTCGCCAGACTGGCGG -TCGTTCTAGGTATCGGACGTGGCCAGAGAGAAAGAAACAATCTTCTGCCCGGACTGGGAGTGACGCACTT -CCGGGTCTTTGCCGAGGTTGCCGACAAGAATAACTTTATTAACGGAACCAGACACAACACTTCTCCTACC -CTGCTATACTTCATATGAAACCGGCTTTACTGGCCGTTGGCGGTATTGTTTCTTCCGTCTACAAGTAAAA -GATAGTACGTATACTGAAATAATGCAAGAAAAACGACAGGAAAACGCAAGAAAATATAAGTTTTTTCAAG -GAAATCCTAACCACACAAACCTTTCTTTTCCGAACTCACTTTATTTACTTACCAATTAATAAGTAAATGA -CAAGTATAGGAAAGAACGGCGGTGAGCATTAGCACGAAAGTGGCGAGACCCCGTTTAGGGGGCTCGACAT -CTCTTAGCGGCTATGCCGCTTAGAGATGCTGGGCGAACGCACCCCGAGAGGGGCGCCCCGGACACTGCAG -AAGATCACCCGCAAAAGCTGAAACAGATTGAAAAAAAGGAAGCAACCCGACAGGAAATCCAAGGCCATGC -CGGTCGAGACCAGAACGATTCAGGCTTACAGCCAAAAGCGTGAGAGGATCCAGAACGCCCTCCCCCGCAC -CCAGCCTCGTATGAAGAGGGAAAAAGGTGCAGTGATCCCCTTCATGAGCAGAGGCAATCGGAGCTAACGG -GGAACCTAAAGCGTCAGAGCGTGAGAACAGTCCAAGAGCTGCCGGGGCGCAAGAGAAAGGCGGCACTGAG -GCCGCCTGGTTGTCAGGAATGATGGGATGCCTGAGCGTCGAGCCTGTCGCGTAATTTGTTCAGTTGGCGC -AGGATTGGGCCGAGAGCAAACCCCACTACAAGGGTAATGATGCAGAACGGCACGACAATACCAATCATAT -TGACCGTAAAATTATCCATGACCGGTTTTCTCTTCGTCTGGAGGATATAGGGCCGTTGGGACAGCGGCAT -ACAAGCGGCCCTAGATATTATGGATTATGAGAAGTCTGTACTTCGAGCCTGTCGCGCAATTTGTTAAGAC -GGCGCAGGATTGGGCCAAGAGCGATGCCGAAGGCGAGAGTTCCAACGGCAAAGATTCCGTAAACCACCAC -CATGGTAACCGTAAAATTATCCATGACCGGTTTTCTCCTCGTCTGGAGGATATAGGGCCGTTGGGACAGC -GGCACACAAGCAGCCCTAGATATTTTATGGATTATGAGAAGTCTGTGCTTCGAGCCTATCGCGTAACCTG -TTCAGGCGACGCAGGATTGGGCCAAGAGCGAGACCAAAAATCAAAGTCCCGCCTAAGAAAGGCACAACAA -CCAGCAACATGTTAGAAATAAAATCATTCATGGCCTGAGTCCTCCTTTCCGTCTTCAGGATAACGGATAA -AGGTGAGAATTAGCAAGGAAATGGTTTCGACGATCAGAGCAATACAGCCCGCCAAGATCATACTGTGACC -ACTCACATGGACTTGCCCCGTAAAAAGTGGGGTGATGATACCTGCACCTGAAATACTGAGTGCTGTAGTT -TGGAAAGCCCCAGCAAGGGCCTTGAGCCGATCCTCCTGAGATTTCCGGGTCTGCCTTGGGGGCAGAATAG -CCCTGAGAAAGCGGCGCTCCCGGTCTGTAATCTGGTTCGTGTTCATCCAATACTCATCCGGCGTGAAGGA -AAAGAACCGGGCGGCGAAGCCGCCCGGCCGCTGTATCAGAAGCCCAGAGCGTCTGCCTGTGCATCGGCGA -TCTGACGATCAAGAGAGCGGGCGGAATTGCGGCTGTAGGGCTTCCACAGAAGAAACGCCCTCATCCGAGG -CATCTGCTTTGTAAAAAGGATATGATAAAGATGCTGACCATTCCGATTTCTGGCCTTATTTTCTCTTTCT -GTTTGGTCTCCAGTGGGTCATCGCGGCCATTCGTGAGCGAAACAACGCCAAGTTGCTCGGCACTCCTTTT -GCATTTTTCGATATCGCTACTGCGGGCATGGCGACGATGATGCTATGGCTTCGCCGCTCAACCCGCTACG -CTCTTTTCCTAGCTGTTCCGGTTACGGCGCTGTGCACTGTTCTCTCGCTCGGCCTCTATCTTCTGGGCCA -TGAGAAAGAGGCGCTCAGTGCTCTCCACGTGGCGCTGATGGCCGGATTTGGGGGCTGGCTTCTGGATCTT -CTCGCTTCAATGATCGAAGAAATCTAAGCGCTGGGGTTTTTTCGTCGGAGTCATACTGTGTGCCGGTATG -GAGGCCGGCCCGTATGACCCAAGCGCTGTCGGGAACAAGAAACTTGCAACTGGAAAAACCCAACCGGATA -TGAACTCTCTTCATAATTTTGATGAAGGTCTGTTTTTTCTATTCGGTCGCATCATGGCCTGACAGAAACG -CAGAACGGAATTTTATTATGTGGAAGGACAACAAGATGACATCTGAAGCACACCGCAAAAGCCCCTGGGC -CACACCCTGTATTATTGAGCTCACATCTGGCGAAAACCCCTTCTCTCTCTTTCCGCGAGAGCCATCCGAC -CATTTTACGCTCATAAGATCGAAAGCGGGTATGACCTCCTTCTGCGTCCTGACAGACCCAAGAAGTGACC -CGTCTCTCACGAAGAACACCCCGCCCGAAGATAGCCAGTGAGCGGCTCATGGTTTCTCCACGCTCCACGA -CGAAATACAAACCCCGCCAGCCGGATCTGTTTGGATATCGCAAGCCACGCGCACCACAGCGCTATCTGGC -ACACATGATTGATGTTGGAGATCACGGCTGTATTTACGAACCGGGCAATACATGCGTTGCCTTGTTTTCA -TGCGCCCGCTGTGGTTGGGAGAGTGGCTGGATTGAGCGTCAGAACAAAACACATGTTCTACGGGGCGTGG -CCTGTGCGAAGTGCAACGATCAACCCCAAGGATCGTTGGCGGGCTAAGTCCCCTCTATGCGATAGCAACA -ATACCTTGCCTATGATTTACGGCATGTTAAATGGGTTTTTCCGTTACAGGTCAGAGATTTAGTATTGAGA -CGACATTCAGACAACAGAAAGACAGGCACAATGGCAGCGTCCACATCCATTTACGAACCTGACACACAAA -AGGTGGAACAGACCGTTACAATCATATCAGCCTATGTAAGCCACAACACGGTCAGCACCGAAGCCCTCCC -AGATCTGATCAGATCTGTCTATGCGACACTCGATACACTCTCACTCTCCCAATCTGCTCCTAAAGCCCCT -GAGAAAGCCGTAACACCCGCAGTTGGTCCAGTTTCTGACGTGATACCTGAACCACCAGTTCCCGAAAAAA -GCGTGTCTCAAGAACACACACCGGCGGTACCCATCAAACGCTCGGTTTTCCCAGATTATATCGTCTGTCT -TGAGGACGGTAAGAAAACCAAGATGCTGAAATCCTACATTCAGAGACATTTCAACCTGACCCCTGAGGAT -TACCGCACACGCTGGGGATTGCCCCCGGAATATCCTATGGTGGCACCAAACTACTCTGCACAGCGGGCCG -CCATTGCCAAGCGCAACTCACTGGGGCGACGCGGCGATGACACCAATGCCACACTCTCATCAGGTGAATC -TCATATCGCGTCAAATCGTAAAGCACGTGGGCGCAAAACGAAATAAGTCTGACCATTCAATAATAAAGTC -CCTTTCTCGTTTTCGGTCGCATGACGATGGATGACACCTGAAGCATCGATACACAAATGGGAAACGAGAC -ATGGATAGCGATAGTGTTAGGGCCTGTTAGGGCTTGAAATTCTTCCTATATTACAGGGATGGGAGAATGC -GACGGAACTGGCACTGGCACCGGCCCTTTTACGGACGAGACATGGGCGATCTGGGAACCTCTGATTGAGG -CGGTTCGCCCAAGGGGCAAGACGCCGTCCCATGATCTGCAGCGCACGATAGCAGCGATCTTCTGGCGTCA -TGAGAATGGCGCGAAATGGCGGAGTATCTCCGCTGAACTCGGTCCCTTGGTGGCGGGCAGCACAACTTTT -CATCCGCTGGGCGAAACTGGGTGTGTGGGAACGCCTGCTCGACCTGGTTCAGGACCAACAGGTAGTGGCA -CTCGGCATGACTTTTCTGGATGGTACAAACATCAGGGCTCACCACAAAGCGGCGGGAGCCCAAAAAAGGG -GCCTCTTTCGAAGAGCGAGACCATCGTGAAGCACTTGGCCGTTCTCGCGGCGGCTATGGCACGAAAGTCT -GCGTGATCGCGGATGGGCATGGAAAAGCCTTCGGTTTTGCTTTGGCCCCCGGACAGGCTCACGAACTGTC -CCTGGCACCAGCCATGCTCGCCAGCCTCCCCGCCATTCCTGCGAAACGACACGATGGGGCGGTCGCCTGC -CCAAAATGGGTCTATCGGTGCCGGCATCTCGTTGAGAACCGCTGGGCTCGCCTCAAGGAGTGGCGCGCTG -TCGCAACCAGATGTGAAAAAACAGCAACGTCGTTCCTCGCCATCATCCACATCGCTGCCGCAGCAGACTG -GATCAAGCCATAACAGGCCCTAGCCAATATCGTCTATAATATGCGCTGCTTCCTCTTCCTGGAGCGGATC -GGCACCACAGCATAGCAATCCAGTGGGTAACAGCCCCCGATCTGCTCAAAACGCAGATCAAAAGCAACAC -AAAGAACCGTCAATCAAATCGCCAAAAGCCTGAAATCACGAGCCAGCCCCATCAACCAACAGTTCTTCGA -TCCCTCCACATGCGATGAGGCTGACAAGAGGGCGCACACTCTGACAGCAGTTTCACAAACACTGCCTCCA -CGTGATGGGGTAATGCTCTACTCATCAACCAGTCCGAAAAGAATACGGCATATTCAGCTTACCCCTAAAG -GGATGCGAACTGAGCCAAAATATCCTTGTCACGAATACGGTCATCGTTCAGCAGCATGATTATGCGTTGC -AGGATAAGGTCCAGCCGATCATCATCATGCAGAGGCTTGTAGGCAGATCCCTTTTGCCGCGCTGAGTTTG -ACAGAGTTGTGCTCAGAAAAAGATGACGAAGGTCGGGAAGAATCATGACATCAGCACTCCCCAGGTGAAG -CCGATACTGATGTCGTTTCCCTTCTATCATGATGTAAGGCCCCTCAAAGCGCAAACGATCATCGACTTTC -ATACTCTTAACGATGACTGCAATCTCATCGCGTCGTGATGCGGCAAGCGCTCCAAAGTGAGGCTCTTTAG -GCAAAGGAATGTCAGCCAGTCCGGCCTGACGCCGCCAGACACCCAGATCCGGAATCGCGTAGATCGTTTC -AGCATTAAAAGAGACGTCGCTGGCAGCGATCGAAATCATAAGATCAAGATCACGCATAATTTCGGAAAAA -ACAACGGGAGGAATGTCTCCCAGCCGCACCGGCGTCTGCATTTCTTTCAATTTACGCCCACCATCATACA -GCCAGTTCCCGCCATCTTCCAGAACGCAAAACCTTAACCTGTCTGTGATGATATGCGAAAATGTTCCCGC -ACCATGCGGCAAGTGATCAATCCCCACCCCACCGGTACGCCAATCGGCATAAATGCCATGAGCTGGCAGG -CTGAACGCCCACGGAGCACTTTCAGAAGAAGGCATATGAGGCGAGAGATTACGGATACGCCACCCTCTTT -TACGGCCTATTTCAACGACCTGAGCCTGATTGAGGATCCGTCTGGCATAACGATAAGATGCTGGTGAGCT -TTCTCGCTCCTCCTGCGTGAGTGTGTATGTCTCCCGCCATGCCTGACGGATAGGCTGTTCGATCTTCAGT -GCTTTAAGCTGTTGACGCCAGAGTGTAACGCAGGAGGACTCTGCACCATCCTGAACGCCGTTATGAAGAG -GATGCCAAAGGCTCAGAAGTAAGTCCCCATGCGGAACCGGGAGGCGCGTACCATCCGAACCGTAAAGCCC -GCCATCCTCTCCGATCATGCAAGTGAAGACAGTCAGGTCGGGATACGCTACGAGCCATATCTGGCGTCGT -GCAAGCCAGCTCAGGACGGGATGGGCAAGCCAGCGCTGCTGAAAAGCTGACCACGTCCAGCTCTGCCCTG -TCAGCCAAGATCGCTCGAGCCGCTGGCGATGGATGGCCATATCGGCTGTCAGCGATTTTGCATCAGCGCG -AAGGTCACGTAACGTTGTTTCGGACTGAGCGTCTGCTTTGATGGAGGCAGGAGGTTTGCTCAGCAGAGCA -CCAAGCGGATCGGCATAACGAATAACGGCCTGCCCCGAACCCGCCAGGGTCAGAGTCGCCGTAACCCCTC -CCACCAATGGCTCGACGCGGCAATGCTGCTCATCCAGGCCGTACGTCAGCGCTACGAGCTCCTCTGCTTC -AGCTGTCGTCAGACCGGAGCGCTCGGCGGCTTGAGCCAAAGCAACATTCAACTGTTTCAGCATGGTGGCG -TGACGGGTTTTTGCCCTAAGCCGTGCCAGCCCCCGGATAGCATCAGGAGAAGCAATTTCGCCTACCGTCG -TAACCAGACGGTTGAAGTGGGCAACATCTTCGTTCCTGAGAGCCTTCGCACACACTGGCAACAGCCAGGC -AACGTCCGCCGGGTCCCGTGCGGCCGCGATCATCCACAGACATCCGGGAAATATGCTGTCTGATAATTCC -GGTTTACGAATGACGCACCCTTCCTGCTTTTGGGCGACGGGTTTTGGATTTCTGTCTGGAAATTTTGTTC -TGAGTAAATGGAATCGACCAAGCTGCATGATTCCAGAACCCTGTGGCCGCCCGAGCTGGAAAGTGTAGAA -ACTCGGGTTCTGGATCAGAACTTCAGCAATAACTGAAACAGATCCGGCCTGTTTGAAGGCAACGTTGAGA -AGACGTATAAATCGCGGAAAAATAGCCGCACGATAGAGAGAGGGGATACCCAGTATACCGTAATAGGTCG -AATGATCATCCCCGATCCTGTCAAGCTCCTGAATGACGCCGCGAGCGAAGGCCAGGAACTTGCTCCCGTC -AGGTTCTTTCAGTTTATCCAAAAATCGTGCGAGAGTCTTTTTTGAAGGACGCGGTACCTCTGGCACCTGA -AAAAATTCGAGACGATCATCCATCGCCTCCAATGAAGAGGCCGGATCTTCACGAAAGACAAGTTCTCGAG -CAAGCCAGTAAAGATGCGGAAAACTGCGTGCCATTTCTTCTCTGTCGTGGCATGCCTGATCGAACCATGC -CTCATTCGGCAAACTATGAGCTGCACGGCTGAACAACCGAAAATAAGCATGCATACCACTTTTGGCATAA -GAGCGCTTCGGCTGCCCGGGGATATCACGTCCGCTCGTATCCGGATAAAGTTTTGATGTCGCAAACCCTA -GCGTATGACTGACATTTTCTCTGGCATATTTTCGCAACCAGCGAGGAGGTCGAGGAAGCTGACTGATCCC -AATCAGCGTCTCATCCATACACGCAGCGATAGGCATATGATTTTGAATCATGTAATCAGACAGAGAATGT -TCTGGAATCATATAGTAATCACGAATCTGCTTTTTATGGCGCTTAACCCAGGCAGCTTCCAAATTTGAGA -ATATCTGCGGATCAACCTTCTCCATCTCGCTCCTCCAGCGGATTAACTGCTCATCCATACGCCCAACATC -TGCCAGAATCATGCGAGCGATTGCGAGTTCCGTATCAAGAAGATCATGCTGTGCTGGTGTCATGTTGGTG -AACGTCCCGCTGTTCTCTCGTCTAACAATTCAGTAACAACTATAATAAGATAATATACAAATCGTTGATC -CTGTAAGAGAAGCCACCAACACTCAGTTTGCAACAGAGATCTTTTTTGAGGATGGCTTTGTCAGAACATT -TTAACGTTACTGATGCAACAGCTCCCGCGTTCTCATTTGTTGCGCTTCGATATAGGCTGTGGCGCTATGC -GCCATTTTAAGAGCCTGCAAAAGATGATGGTCCCGCAGCAACTGTGCTGAAACCCATGTGCCGCTGTCAT -TTTGTCCGTAATGACCGGCTTTTTGCACCTTTGACAGTAATCGGGCGATATTACCGCGAGAAACACGATA -ATGCTTTGCCATTGCACTGGCACTTCCAAGGTGAACGTAAACGCGTCCGTCATCTGAAGGCGTCTCTTTT -TGAGACCGTGTCATTTCGTTAAGGACCGAGATCTCGATTGTTGTATTAACCAGCGGTGCGATTGAAGGAA -GAGGTGCGTAATAGAGCGGGTCATGGAGCATACGTCGTGCAAAAATTGGATGCATACCTTCGCACGACCG -GAGCGCCGTGGCGGGGGCAAGAGCGGTGCGTCAGCACCGGGATCGGAGCCACGCACAGACCGCTTGCGGT -CGAGCATGGAGAGAACCCACCGTTTGCCTCAGCCTCCAGACTATGGCCCTTCTCTTTCAAATATTTCCTT -TTATTTTCTCAACTGTGTGAATGTTCTTTTGAATGATCAAAGGGTGTTACAAAAAAGCGATCCATAGAGA -CGGATCGCCTTATTACTGCTATCGAGCATACGAGGTTGATGGCAACCTGTCGAAATGGCTAAAAGTTCCG -GGATGCCCGTAGTTTTCACTTTACAGTAACTACGGGCATCCCGTATTATCGTCTCATGGATAACAGGTTT -GACCCCGCAAAAGACCTCGCCAACAAAAAAAGCACAAACTGTCTCTGGCCTTTGGCGACCGTATTTTCGA -GGACGATAATCACCTGATCTTGCCCACCATCCGCATTGAGGATGAGGAGGATCGCTACAAAGTGGTTGGC -GTCGTGGGCGAGAAGCTGTTCACCGGTGTGTTTGTCTGGCGGGACGATCTGCCCCGCTTTATTTCCGTGA -GAAGGAGTAACAAAGGTGAAGAGAGAGCATATCATTCTGCCTGCTGATCCGGCGGATTCCGAAGACCGCG -CAGTATCCATCGAAGGCATGGAACGTGGGCAAAGGGCACGGTTGATCCGTAAAACCCGTAACGATCTCGG -TCTGTCTCAGGTCGAGTTTGCCAGCCGTTTCCGCGTTCCTGTCGGCACGTTACGGGACTGGGAGCAGGCA -CGGGCGATGGCCCCCGACTTCGCTGTCGCCTACGTTCGGGTCATCGGACGGCACCCCGATATGGTAGCTC -AGGCGGTGGCCTGAGCTGCCTTCCCAACGAACCGGAGATTCAGCCCATCAACCCCAAATGCCGGATAGAC -CTTATTACTCAGACCATAATAACTTCAAGACGATCAGGCATCGCACGGGCCAGTTCTGTCAGTTCACTGG -GGATGCGTGGATCGTCGGGAATAGTAGCGTTATGCGCACTTTCATCACCATCAGACAGGCTCTCCTGATC -AGTCTGGCCTTCGTCTAGATCCACTCGCTCCTCACAGTTCTCATCCTCTTCACTGTCAGTTGTGACGTCA -GTATCAAAATCAGAATCACCTTCTTCTTCCTCCATCTGCGCCGCCAAACGTGCCCGAGCTTCCAGCCGCG -CAGCCTGGTTCTCTAACCTGGATTTCCATTCTGAGAGCCCCGCTGTAAATGTTGCAGGTTCCGGCACCCA -TCGTTTTTCGCCAATGTGAGCCATAAGTGCTTCGCGCATCGCTTTACCAGTGGGTTTTTCTTCCAGACCT -TCAGCCTCAACAGCTTTGGTAATTCCCGGTTTACTGTAACTTTTAAGAAAGTCTTCGAAGGCCATTGTGG -GCATATGCGCGTCTGCACCAAACAACACCCCAAGGATCTGGGCGGGCAAACCGCTACCGCTATGCTGACT -GAGGCCGCAATTCATGAACGTGCTAAGCACACCCAATGCTGCGTTTCTGAGAAGATCCGGGTCACGAACC -AACACACCTTCTGGGAAAATGCGTGCGACAGCCAGGTCACGCTCCGTAACACTCCCATAAGGCTCATATG -TATCATCACCGTGGATTTTTACGTTATTGGCACTCAAAGCCAGTATGAAAGCACCAACCAGATCCCAGGG -ATCTGCATTTTCTCGCGCTGCATCCAACGCCTGACGCAAAGCCTGTGTCCGAACATCCCCGATAATTTTA -AGCCCTGTGCCTGAAATATCGGGGCGCTCTTTAGGTTTTTCGGGTTTTTGGGCTGACGGTAAAGAAAGGG -AACCATTTTCTGTCCTGCGGGTGGACTGTTCTCCCAGTTCGCGAAGCCGTCCTTTTTGAATCTGCAGTGT -GCGTGGGTTAACCCAGATCGCCGGGATATCTTCGTCCCATTCCGCTTCCCATGCCCCCACCTTCCGGTAT -CCGTCTGGCGCAATTCCTTCCCCATATTCGTTGCTCTGGAGGTAAATGGTTCCTTCAGGTTTAGTTTTCT -CAGCCCAAATCTGCTGCGCCTTAAACATAGCGGCATATTGGGTGCAGTATCGATTATCTTCTCCACCCTG -CCCGAAGAGATCTTCTTCCCAGACGACACCAGCTTCTTTTGCAGTCTCGTCGTCAAACTCGTAGTTGCGA -GCATATAATTCGACCTGATCAAGATATCTTACAAATTCCGACCAATCGAAATGTGTGGCGTCTTCCCTAC -TCATCTCATAGTCGGCCGGATCTGCTCCTTCGTCAGCGCTTTCCGCCCAGATCTCGGCCCATACATCGCG -TTGGCGCTCCAGCGGAGTGCGCGCAATTGCGTTCCGGTCCGTATAGGAAGGCCCAATCCCACTATCGATT -GCCGCAATAATGGGCGGATGAATTTGGGACAACAGCATCAGGCCACGAAGATAGGCTGGTGTGACCATAA -AAGCCCGACTGATTTCCGTATCAGTAGCGCCCTTCGCGCGCATATCCAGCACACCACGCCATTGTTCGGA -TTCCGTCATATCGGCACGCACGACGTTCTCGGCGACAGCGGCCATCGTATCGCTTTTTTCATCACCAGAA -CGGACATGCACGTCAATTTCAGTCAATTTCGCCGCAATACAGGCCCGCACCCGCCTGTGACCAGCGACAA -TCATCAACCGACCGTCCTCAAGTTCCCGCACGCAGGGCGCATGTATCAGGCCCACTGTCTTGATATTCAG -CGCAAGCTGATGTTCCGCACGAGGATCTGGCTGGGTCTTACGTGGATTATTCGGGTTTGGTACGAGTGTT -TTGGGATCGACGCGGCGAAGTTCCGTCATGATACTCTCCTCACTTTCAGGGTCATGAGGTGTCATTTTCT -GACCTCATACCTTCGGCACGGTCACAGACGCCTACACGGGGCAAGGGCGAGCGTCAGCGAGGCCCCGGAA -CGGGGCATACCCTTGCGGCGTGTGGGCGGCCTGTGGCCCGCCCTTCCCTTTTCGGCTTTGTGCTCTTCTT -ATTTTCTTAGGCCACCTGTTCAATTTTCTCTGCAACAGCAGAAGCAGTATCATCATTTGCTGTGGCCGAT -TTCAGCGCAGCTTCTTTTTCCTTGCCTTCCGCTTCCAGCGCAGCATCCAATGCGGATAGCTCGGCACATT -TCGCCGTGAGATCGTCGGCTTCCGCAAAAGGAAGTCCTTCCCGTGCGCGATAAGCTGGCAGTCGGCGCTG -TGCCTCATCCAGACTGCGACGTGCTTCAGCCAGATCGCTGTCCAGACGTAAGGCTGCGTGCTCAATCCGT -GAAATCAGTCCCAGAGGCTTGGTCTCACGATCGGTCTCAACCTCGATTTCTCCTGCAGGTGTATCCAGAT -AGATGGAGGAGACGACTTCTGGTTTTCTCTTGTCGGACGTTCTGAACTGCTGTTCATGAGCTTCGCACAT -CACTTCAAAGCCGGCGATCCGACCCATGCTCCACTGCCCGGTCCGGCCTTCCCGTTCAGCAAGCCGCGCC -TGCGACAGTATCCATGCTCCAGCTTTTTCACTGCTCTCAACCACCTTGGTGTCACGGTGCAGCGCAAACG -CCTCGCCTTTCGTGGTGATACGCTGTGTGAGTGCCGCCTCAATTTTCGGGATCCGTGTCTGCGCTGTCCT -GATGTCGCGTTCAGCTCTCTGGATCTGGCGACGCACATTGAACTGATCATCGAAGTGTGCGGCCTGCAAA -CGCTCAAGACGCGCAATATCGGCTTCCAGACCTGCTTTCTGAATCAGACGCATATCACCTGATGCAAGCG -CCTTGGCCATTGCAAACTGATTGCCTTCACCACCCACATCCTCAATCCGACGAATGGTCCGATCTCCCGA -CATCGCAAGACCGATAAAACGCATCTTGCGTTCAAGCAGCTGCCAATTGGTGGCGTCTACAGATCCCTGC -TGCGCGTATGCGTAGATTTCCACTTCATCGTGCTGGTTGCCCTGACGCACAATCCGACCTTCACGTTGCA -TGATGTCAGCGACTAGCCATGGCACATCGAGATGATGCAGGGCTTTCAGGCGCTGCTGCGCATTCACTCC -CGTTCCCATTGTGGCTGTTGAACCAATCAGGATACGCTTGCGGCCTGCATTAAGATCACCAAACAGACGC -AGCTTGGCTGCTGCCTTGTCGTAATCCTGCATGAAGGCAATCTGCTCGGCCGGGACACCCATGCGGATCA -GCTCTGACCTGATCCAGTTATAAGCCGAGAACCCGCGCTTGCTCTGTGAGGTCTGCGTGCCGAGGTCGGA -AAAGATCATCTGCACCGCTCCCGGCAAATCATAGGCCCTGCCCGTTTCTGGATTGGTGTAGCGATTGGCA -GATGTCTCATGCCAGATCTCAAATACCTTCCGGATCATCACATTCAGCTTGGAGTGCGGGTCATTATCTG -CCCATGGCTTGATGAAACGTAGATCGATCGCACCAAAGCGGGCATCATTCATCACACTGAGAATTATGTC -GTCTCCCTTCTGTGGGCGGCCCGAACGGGCTTCAATCGCACGCATCCGTTCTGCGAGTGTCCGCTGGAAC -GCCCGAAAATCGTCTGTGCTTTCGGCTACCACAATCTGTCTGTTACCGCCCTTAACTGAGGGCAGCTTGA -CATAACGGGCCAACTCATCAGACTGAACGACATCAGCAAAATCACGATACATGGCCATCAGATCGGCCAC -ATTGACGAATTCGGTAAAGCGCGTGACCGGTTTGTAAAGACCGTTGGGCTGAAGCTCCAGTTCGGTACGT -GTTTCCCCAAAGTTGGCGGCCCACGCATCAAATTCATGCAGATTGCGTGCGACAAGAGCATCCAGATCCA -TGTACCGTCCGACATTCCACAATTCGGCAATGGTATTCGTGATAGGGGAGCCTGACGCCATAATCAGCGG -ACGTGTCGGATCCTTCTTCGCGAGGTAACGGGTTTTCACGAACAGATCCCATGCACGCTGAGAGCCATTG -GGATCGACACCTCGCAGATCGGACTGATTGGTGGCGTAGGACAGTTTCCGAAACAGTTGGGCTTCATCGA -CAAGGATCTGATCAATCCCGATTTCACCCATGTGCAGCAAATCATCCTTGCGGGCAGCCAACCCTTCCAG -CTTTGCTTCCATCCCTTCTTTCATGCGTTCGATCCGCTTGCGCGAGATACGGTCGTCACCATCAAGACCG -GAAAGAATGGTTTCGTAAGAGGCAATCTGATCCTCGATCATCTCGCGTTCAAATCCCGCCTCGACCGGTA -TGAACTTGAAAGCGTCATGCGTAATGATGATCGCGTCCCAGTTTTCTGTCGCCGCTCGGGCAATGAAACG -CTGGCGTTTGGCTTTGACGAAATTGGCTTCGTCGGCCACCATGATCCGTGCCGTGGGATAAAGCATGAGA -AACTCACGCGCCATCTGTGCAAGGCAATGACCTGGCACCACAATCACGGCCTTGCTGATCAGTCCAAGCC -GTTTCTGCTCCATGACGGCCGCGGCCATGGAGAATGTTTTCCCCGCTCCCACGGCATGCGCCATGTAGGT -GCGTCCTGAAGCGATAATCCGCCAAACCACGCGCTTCTGATGAGCACGCAGGGTAATCACACTGCTCGCT -CCAGGCAGATGCAGATGACTGCCATCAAAGGCACGCGGCACAAGGTTATTGTAGGTCTCGTTATAGAGCT -TTACGAGACGGTCCGAGCGCTCGGGATCCCCCCAGACCCATTTTTCGAACGCGCTCTTGATAGCCGCCAG -TTTTTCCTTGGCTGCCTCGGTTTCCTGCGTATTGAGTTTGCGCCGGTCATTGCCATTCTCATCGCGCCAG -TGATCCCAGATCTTGGGAATGGACTGGGACAGCGCGTCCTCCAGAAGTTCAGCCGCATTGCGTCGTTCCG -TGCCCCAGACAGATGTTGCTTCTGCGCGTGACAGGAATGGCGCACGGTTAACACTCCAGCATGCGACCTC -TGGGGTATGACGAATGGTCGTTTCAATCCCCATGACCTCGTGCACGAAGTCCTCAATGTCAGTGACGGGT -AACCAGGGCGCACCCAGACGGGCCCTAATTTCAGAGGGACGCAGATCCGGCGGCTGCACGCCTTCAAGGG -CGCTGACATTGCGTGCATACCGCTGATCATGATGTGCGGCCTCGCGTGCAAGAGCCAGTTTGGTTCGCAC -GGCGCCTGAGAGCATCTCATCAGACGTGATCCAGACGTCCCTGCCCAGCTCGCTGCGTTCGGGATCGAGG -TAAATGCTCTCCCCCAGTTCAGCCAAGGCATCGGCTTCACTCCGTCCCAGCAATTCGGCAATGAGAGGCA -GATCCACCCGGCCCGTTTCATGTAGCGATACAGCCAGTGCGTCATGGGCTCCGTGGATTTCCGGCTCTGT -TGGGGCATGAATGACACGCTCGGAGAAAATCGGCCCCATGCGCCCCGTATCCATGCGCTCGTCATACTCC -TCGATCGAAGCGACCAGCCAGACGTCAGGGTCATCCAGAAAGGGTTGCAGGTTTGGACGACGCTGGGTTT -CGCGTGTCTTGCCTGTTTCGGGGTTCTCGCGCAGCGTGGTGCGAGTATGATTGATCGGCCCAAATTCACG -CACGAAGCTCTGATAGGCCGTTTTCAGAGTGCGCTGCTGAGGACCGTAAGGCAGGTTCTGCATCTGCGCC -CGCAATACACTGCGCGCAGCATCACGGATGGGCACCAGCGCACGAATGATCCGCGCATGTTTGGCAAAAA -TCCCTTCTGTCTGTCCTGCCTTGCGGATCGGTACGATCTGGGCCTGTCCCTCAATGATCTGGTGCAGCAC -ACCCCGATCAACAAAGTAGCTTCCCTCCTTGAGATCAGCCCCACTTGCTGCAGTTCCAATAGTGACGCCC -TCACCGGCTGGTCGGACAATGCGGGCCTCGCGAGGGGGAAGGAAATGCACGTTGGGTGCGATCCGGTTCA -GGGCTTGCGGAAGAAGAAGATCAAGCTCTCTCTGCGCATGAGGCGCGCAGGTGTAGCCAGGACCAAACTG -CGTTGTAGTCCAGACATGTGTGCCAAGAACCTGGTCTGGGTGATCAAGGAAATACCGGTTTACGAGTAGC -GGACCATTCCCGTGGTCGCTCTCGGGAACTTCGGCTGTTTCAATCCAGTGTGCGCTGGAGGACACTTCTC -CAGGTTCACGTTTGCGGAATGCCAGCACATCGACTACGACATCAGTCCCGGCAGCGTCCCGCATTGCGCC -TTCAGGCAAGCGCACGGCGCCAAGAAGGTCAGCACTCTCGCCAATGATCCGTCGGGCTGTCGGATCAGTC -TTGTCCAGTGTGTAACGAGAGGTTACGAACAGGGCGATCCCGCCTGGACGCAGAACTTCGAGTGAACGGG -CGATGAAGAAATCATGGAGGCTCAGACCCTGCCTCTCCAGTCCCTCACGACCATGCACCGTGCGGTTACT -GAAGGGAGGGTTGCCAATCGCCAGATCATAGCCCTGTGGGAGCTGGGCACGCGTGAAGTCCTCACTGCGG -ATCCATTGGTTCGGGTAGAGCTTGCGCGCGATACGGGCAGTGATGGGGTCGTTCTCAATGCCGGTAAAAG -CGATCTTGCCGTCGAGTTTTTCTGGGAGAGCGGCGATGAAGAGCCCCGTGCCGCACCCCGGTTCAAGCAC -TGAACCGCCTCGAAACCCCATACGCAGGGCCATGTCCCACATCGAGTGAACGATCAGTTCGGGCGTATAA -TGGGCATACTGGGTAGCACGTTGCAGACCGGCGCGTTCTGTCTCCGACGTTAGATGTTCAAGTTCTGCAG -CAAGACTTTCCCATTCCTTGCGTACCTCTCTGCCTGTTGGCGGGAAAAGGCTGTTGGCCAGTTCACCAGC -GCCAAAGCCCGTAAAACGGGCCAGCACGTCCTGCTCTGCTGCTGTGGCGTTTCGATCCTCGCGTTCAAGT -GTCGCGAGCAGGGCGATCGCTGCGATGTTTGCTTCTGCACGCGCTTTCCAGCCTTGAGCCAGACCACGTA -CGCCATTCAGACGAAAATCCCGCTGCGGGATGCGGAAGGTCTGAGGGGAGGGGAGTGAGACTTCCGGTAT -GGGCTGGTCATCCTCCAGAGACCAGAGGGCTGCAAGTTCACCTGACAGCACTGTAGTATCGAACAGATTG -AGTTGCGAGGCAGACATGGACATGATGGCACGCTCCGTCCAAACGGCTTCGCCCGACACCTCTTCTGAGG -TTCGGGGGCCTGATTGCTGGGTTGGTCGGGATCAAGTGCAGAACGGGGAGTGTTTACTCTCTCCTTATTC -CTTCTTCTTGACACTTCCCCGACAACCGGGCCGGAGTGGGTGGCGCAAGTGCGGCGTCCTGCGCCGGGAG -CGGAGCCACGCACAGGCCGCGTAGCGGGCGAGCATGGCGAGCACCAACCACTTGCGCTACATGCTCAGGG -CTGGTGTATGGTATATTTGACCGCATTATTTTACGCCGTAAAATTTTTACGGCGTAAAAATTCTGGATAT -ATCCATCTGCCTGCGTTATGTTTTGCGGGTATACTGCAATTAGGTTACACGTTTTTAGCGTGTTTTTATC -TCATGATCTGAGGTCACAATGGTAAGGCCAAAAAACAATCACCGACAATCTATAATAATGCTCTCTTCTC -CCAAAGGAGGAGTAGGTAAGTCGTCCTTGTCACGAAATATCTTGGTTTTAGCTTCAAGGGCAGGGAAAAA -TGTACTCGGTCTTGATATGGATAAACAAGCAACTCTAGCCACCTGGGCAGAGCGACGTGAACGCGTCAGA -GCTGGAATCTCTGGCGTCTCGGAAATTCCAGTGCGTCGCGTAATGCTAGATGACTGGCGAGGCGCGTTGA -AAGAAGCGCGTAATTCTACAGCTGACTTTATTGTTATTGATACACCGCCATCAATAGAAATTAATATGAC -CGCGATTCTCGGACTGTGTGAAGGCGCTGATTTCGTTCTTGTACCTTGCCAACAGACCCAAGATGACTTT -GATAGTGTCGCTCCATGGATGCGACATCTGAAACAAAGTAATGTAAAAGCGGCTTTTATTATTAATCGAG -CTAATATACGTGCGCGTTCCTACGCGACTATTCGTTCAAAATTAATGAATGTAGGTCCAGTCTGCCCAAT -AGAAATATCACAAGCTGAAGAAATATCTTTAGCAAATGGTAAAGGGCTTGGAGTGATGGATCTAAGTAAA -CCGAAAAATGCTGAAGCTTTCGGTGCGTTGTGGGCATACCTAAAGCAGGAGTTGGATTTATGAGCAAAGC -AACTTCAAGGCGGGGCGTTTCTCTGCGAGCTCTACAGGATTTGGATGCAGATGAAGTGCCTGCATTCGAT -GCCCGTCCCCAAGAGTTACGGGAATTAACTATTGTATCATCGGAAACCTTAGAGACTATCAGTAGCGTTT -TTTCTGGCACTGAACTGGCAAATGATCAAGCACGTATTCGCGTTATTCTTGAAACTCAACGAGCCGTTAA -TGCTGCATGGGAAAGGGCTGCGCGTTCATTTTTGGAGATTGGACGGGCATTAAATACGCTCGATAACGTA -CTGTTTTCTCGAGAAGAAAAAAATCGACTTAAATCAAGCTTCGAAGAATTTTTCCCGTTTTCAGAACCTG -TTGCTTCTCAATTTAGACGCATTGCTCATGTCGTAGATAGCGGCCGTCTCGATGAGACTTCTTTGCCTGG -CTCATATAGTGCTGCCTATCAATTAAGTCTACTTGCACCGGAAGAGCTCGATATTGCTCGAGCGCAAGGT -CTTGTGGGTCCAAACACTTCAAGGTCAGCCATCATTGCTTTTCGTAAATCAATCAAACGGAATATTTCGC -ATGTTGATTTTGCTGCATTATCTACTGAGGCCCGGCGATTAAAATCTACCCGAAAGCATATGCTTGAGCA -GCTAATCGCGATAAGAACTCGTCTCAAAGAAATTCAAACATTACTTGATGAGGATTAATAAGCTCATTCA -TTTATTGCGAATAGAAAGCATAATTCTAGATAAATCCGCTACGTTTTGTAAGCGTATACATATTCATACA -AGTCGTAGCGGGAATTCAAATATTGTCTTACTGATGTCGGAGTATTTCCCATTAAATTAACAGGAGTAAT -CATCGTGACAAACTCCTTAGAAACTAACATTTGGAGGGATAGCAAGACTATTGTTTAGTGCTTTTGGCTT -CTCATTTCAGGTTTCTAACATACCATTCGATGGACTAAGGACTGTTTTTGGCGCTGCAACTTGAACAGCG -AGGATTTTGTGCTTTCTCTTGCGATCCGCAGGGCAAATTCTCTCGAGAAAAAGAGAAACGGTGCGCTATT -ATGGATAGTAAGAGCAAGCTGATCTTTATGGAAAGCCCGTTATGATAAGATGCGTGCGGATAAATAGTCA -TGCCTGTGGTTTCTGGCTAAAAAAGATGTATGTTAGCGCGGGATTGGATAATGGACTTTCCAATACTGAT -CTCCCCATTGTGGACAGAGTCCAAAAATAATTCAAAAATTAATGCTAATGTTTAAGTGTAACGAATGTTT -CTTAGAAATTGATCTTATTACGGTAAGAAATTTACGTTCGTAATAAGGATTGGACTCTGCCCACAAAGTT -TGCAAAAATTTTTAATTTGCGCTTATCGAAAAGTGGTTAATTTAAAATCTTCCTGCAATACTAATATATT -TTTTCTTATTAACATGTAAATTTACTTTCCAATTCGCTTTTCGGGAATTGGAGGTGGAGAAGGATAAAGA -ATGATTCCATATTTATCGTCCATTTGTACCTTAGCTTCCGGGTAGACTGAGAGAGCAATTTTAAGCGGGG -TAACAATATCTTTTTTAAAATATCGTAATTCTTTATATTCCGGGCCGAACTGATTTTTTAACGTATTCCA -ACTTAAAGTAAGCGGATCGTTAAGTACATGTAATCTGTACGCCAACCAGATATAAATATCGATAGCCTTA -GATTTATTAGATATTTGTCGAATTGCGATTTCACGAAGAGGAAGTGGATGTTCAATAAGGCTCTCATAAA -AGCCTTCATCTAATCTTACGGCTTCTTTCCAAAATGATAATTGGTTTCCATTTTCAGATTCAATTGGCAT -GATGGCGTCACGGACAAATGCACCGTTAGTTATAATTTCTGCACCAGCATTTATTCTAGTGAACGTCAAA -CGGCATCGACTAATACGATTAGCTTGATCTCTGACGGCAATATAGGTTTTGCCACCAACTGAAACACCCA -TTGCTTTTAACCAAGCATTCATACTGGATCCGAGCTCGACTTCTCTGGATCTGGTTCTTACAGCTTGTGT -TTGTAGATATAGAAGGATAAGTCTAGCCATTGCGCCAAATGGCACGCCTATGGCTTTATTTTCTTTATCT -AAGCCACTTTCTACCAGAAGTTGGATTGAACCTCCTTCGCGGCGCCAAATAGATTCTGAGATTTTTTTAT -GTGGTAAAGCGGCCATTGCAAATCCTGCATGAGCTATACCAATAGCCTGATCTTCATCAGACATTACTTC -ATGAGCAGCTTCGACACACAGGCGTTGCGTTTTATCCTCACGTGAGGCTAATCGCCGCATTTCTTCAACG -CCAAATCTGTCTAGTAAGCTATGAATCTGTCCCATACTTGAACAATGTCATAAGGAAAATTTGTTCGTCA -ATTTGGACTTTGTCCACGGGAAGGAATTTGGACTCTGTCCACGGTTCTTTGGACTCTGTCCGCAAAAGCT -ATTTGTTATTATTTGATTCTTTATTAGTTTATGTGTGGGCAAAGTCCAAGGGATAAGCCCATTATCGTGG -AGAGAGTCCAAACTTACCGCGGGTAGAGTCCAAAGGATAAGATCTGGTGCGTAAACTAGATTGTGGATAA -GTCCGCTTGATAAAAGTTGGACATCGTGGAAAGAGTCCAATGAAACCAAAGGGTCACGGATATATTTTAT -ACCCGTGGAGAGAGTCCAAATTACCTCCAATACGAGTCGGCTCCCAAAAAGCAGGAATTACTGTGAGTGT -AAAAATTCTTCATGCATCGATTTTAGATATCTGAATTTTGAAATATCAGGCGACGGCCTTTCTTCGTTTT -TGAGATTAGGAAATGCAGAATTAAGCCTATATCGATTCAAAACCGACTTTTTCCTGGATGTCGGGTTAGA -GCCTGATCATCCTCAATATAAGCTTCCAGGACTCGGTAATCCCGGTGACGCGAGAAACGCTTGAGCGCCA -TCAGATCGTAATTGTCTTGCGCCCCCGTCGTGATGGCCCCACGACGCAGACTATGTCCGCTAAAGTCTCC -TTCGAGGCCGGCGGCAAGGCATCGTTGTTTGATGATCTTGGCCACAGACCAGTCAGAGAGACTTTGTGTG -CCAATTTTCGGGAGAGGGGGTGACACACCTGGTTTCGAGGCCGCAGGAGACCAGATGCGTGGAAAGGCCG -CAGTTGTGGAATGGTCGTTTGCCGTTTTCTTGCGCGGTTTAAGACCTGATAGCCGTAACCACGTCTCCCA -CGCACGAACCGGACAAAAGCGCGTAATACCACGGGGAATGGCGACCACAGTGCCCTTGTTCTGCTTATCG -CCCTTGGATTGAGGGAGCGTAATCCGCATGCAGTCATCATCCAGAGTGACGTATTCAAGCTGAATAGACG -CCAACTCCGAGCGTCGTAACGCCCCACCATAGCCGATCAGGAGGATTGCTCGATCGCGTGCGTCTACCAA -TGTGGTCATCGGGATTGCATCAATCACTTCGCACATCATGTCCCATGTCAGACCTTTGACCTGCCGCGGC -ATTTCCTTGCCAGGAGATCGATGGATACCAGCCACTGTTTCCGTGACCAAAGCCTGAGCAGTCGGGATAG -GAAGTTGAGCGATGTGATGGAGGTAGCGAAGTGCTGCACGATGCAGTTCGATCGTCGTCGGCTTGCGACC -ACGGAGCGCAAGATCTGCGAGATAGGTCGCCACATCTGTGCTGCGTGCGGGCAGGGCAGGGAGACCATGA -CGGTTTGTCCAGGCACACCATCCCTTAATAGCTGAACGATAGGCGCGCCGCGTATTTGCGGACTTGCCAT -GTTGCACGAATGCTCCCACAGCTGCTTGCGATGTTTCAAGCCGCCCATCGTGCTCTGGTATATCGATTTC -GCACAATGCTGAAAACCAGCGTGTTACGTTGGCTGGAGCCTGCCCGATAGGTGCGGGAGGCAGAATCTTT -GAAGTGTCTTCTTTCTCGGCTCGTGGGCCATTGTTACTGCTGATCCTGGATGACACCAATGTGGCAACGA -ACGCCAGTTTTTCGCAGTCAATTTCCAACGCCAGTTCGATCTGATAGCCAGAAGGCAAAGTAGGAAAGGT -CGCCTTGACAGCTTCTCCTGCAGCGGCGGCATGTTCCGCATGGCGGGGCAATTCGGTATCTGGCAGGAAG -GATCCATCGGGAAGTGCACTGCCGGCGATCAACACAGGAAGCGGTGGGGAAAAATGTGCCGTCGAGAGAA -TAGGCCGCAAAACATCAATTGAGGCCTGGGGATCATTCAGACGTTGGCGGGTCAGACGATCAACCTGCTC -AAGAACATAAGAACGTAAAACCGGCCAGGAGCCAGTTATATGCAGGGTATCAAGCATGACTCGTTATTCT -AATGATCTTGGGAGATTAGACCAGAAGTAAACTTGTTTTCGAAGTTCTCTTTGAAACTTTGAGATTCAGA -AAATCTGTTCAAACAGTTTATTGTCTCTTCATCCGATAGCCTGTGATACCCTTGATATTCCTAGGTTGCT -CCATCCCCCGTATAATGAGGAAATTTCTATATTTCTGGACCACTTGACGAGGAAAAAATCCCTTCCAATC -TTAGGTGTGTCAGATGCCTTCGGGTCTGACCTTAAGCGTCCTGAGCTAAACGATTGAGATCCATGTTGCT -TTAATAGGAGGATATGGATGTCGAAACTGAAAAGACTCTATTTACGCTATCGCTGCTTCCTGCGTACGGT -TTCTCGGAAAAGGCGCAACCGATTGGATGGAGGCGTGTGATGGTAACATGTCCCATCTTTGGTGATGATG -TGCTGGAAGAGCGTGTCATCTCCTTGTTTCGCCGTCTGGGCCAAGATGGACGGGGCGTAACTCTGACATC -ACTCCAGACCTATACCGGCGTCCCTGGGACTAGACTTCGTGCCTTGCTGGCAAGTCTCGTCCAGAGGGGT -AAACTTGCCCCAGCTGGGTGCGATCCTCTGGCTTCTGATTTTGCGTTCCGTTTGTCATTATCTGCAAAAA -ACGTGCGATCGACATCGATAGCGGCGTAAAACGTAAACGTACATCCTATCTCAAAGATGCCGTTTTCGTC -TGGGTTTTTATTAAAACGAGAGGGCTGCGGGGCCTTTCATAAAAGGCCCCGTGTTTCGGAATATTGTATT -CAAGATAGAGGGAAAGGGAGATGTCGAGCATAATCCATTTGCTTAACCTCGTAGCACTCCGACAATATTG -GAATAATTACGATTTTGTATCGCATTCATTGGGAATGATAGAGCCATCATTATCGTTTCCTGAGAGAAAA -TACGGCTTGAGGGGCAGTCAACCCCTTAGGAGAGCACATGGGACTGCATGGAAATCGGTGCCCATATCAG -CCGGATCCAGAGGTTCGGCGAGTTTCTCCTTGTCAGGATCAACAGGTAATTTATCTGCATCTGAAGTCGA -CATTAGCCGTTAGCGTAGTCTCTTCTCGTAAGGAAAAGAGAGGTAACTCAAATAGTCAATAAGCGATCGT -GGTCCGGTTCATGTCCTGAGTGGGGACGCTCAAGATTATTGAAAGAAAAGCCAAACACTTAAAACTATAT -CAATTATCTGATGGGAAAACGGTTATGGAAGAAATCTCCATGAAACGTTCCTGGCACAGCAGGGACTGGT -CGCGTCTGGTCAAGCTGTTCAATGGTCTGACATTCTATGAACGCTTTGAACAGGCCATTATTCTGATACT -GATTGCCCTCATCATGCTTGTCACTGCCACAGCGACAGTTCATCTGATCAGCGCGGTCTGGCATCTGATC -GTTGACATCGGGATCGATCCCATCAAGCAGGAGATCTTTCAGGAAATTTTTGGTGCGATCTTTACCGTCA -TTATTGCCCTTGAATTTAAACATTCCCTGCTTGTCGTTCTGGCCCAGCACGAGAATGTTATCCGGGTGAG -AACCATCGTTCTGATCGCCCTTTTAGCAGTTGCCCGTAAATTCATCCTGCTGGATCTGAATAAGGTGTCC -GCCATGGAATTGTTCGCGCTCTCTGCCGCAGTTTTGGCCCTGGGCATCGTTTACTGGTTAGTTCGTGAGC -AGGACGCGCGTGTTGCTCATGATGTCAGAGAGCAGGCGCGCCTAGAAGGCAAAACTGCGTTCCACGGTTG -GACAAAAAAGACTTGATTCTGAGCAGGCAAGGTAAGGTGGCACTGTTTAAAGTGCTACCTTACTCTTGTC -CGAATTACATTGTGTGTGATGGAATCGTATTTTTCGTTGTTTGTGGTGCTAACGTGGTTATACGTTCCGT -GTCGATTGGTTTGAATGGTGGGATGGGTTGCCCTAGATAATAGGCTGACCCCTTATAGTTCTGGTCCAAC -TGGCTTTCGTTCAGTCGATCGATCAGCATGTCACCCGTGCCATCCGCGTAATGCGTGCCCGGCGTGGTTT -TTGGGTGGTTGGACGCTGAGTGTGCCATTTTCGTATCGAGCGTTGTCTGAGTTTTCGGTGCAACATACGC -CTGCGTATGCAGTTGATTGTTCCAATAACAGGCCAACCAAAATAGCACTCGAAAAAAATCTTTTCGTTCC -TTTCATGCTTATGACCTTTCGAGGATCTTCCTTGGTCAAATGGATAACCAAGGAGGCACTTTCGTTACGT -CATTAGACAGCTTCTTTGGGAGCTTCAAGCCGCGGCAAGGCTCTGTCCGCACGCTCAATGGACGAGGTAA -TCGCAATACGACGAGGTTTCATCGCTTCTGGTAACTCGCGTTTTAGAATAATGGATAAAAGTCCGTTTTC -GAAGCGCGCTTCGACCACCTTCATATGCTCGACCAGATCGAAGCAATGTTCAAATTCCCGGCCCGCAATG -CCTCGATGGGGATATTCAGCAGAACCTTGCTGCACCGATATTTTTTGTCCTCTCACAACAAGGATATTAT -GTTCCTGCGTGATCATGAGATCATTCTCGGCAAAGCCAGCGATAGCCATATCAATCCGGTAATTATCTTC -ACCAGTCTTGACGATATCATAAGGAGGCCAGTTATTGGCTATCGAAATCTTGTTGGAAGGATCGAGATTT -CTCAGAATTCTATCAATCCCCATGCTTGAACGGAACAGGGGAGAAAAATCAATAGCGGCTCTCATAGCCA -TATTCTCCTTTGAGCAACATGGATACAAGATTGAATGCAGTATTTAACTGCATGCTAACTTCTTTGTCAG -AGTTAGCTATCTTTATTTGGAGTATTTTTTAGGACATTCAAGAGGAATAAATGAAATAACGATGTGACCG -AAGAGACCCTCCATGGCGGAACTGAACACTTGAGCTTACTAAGCGCTGTATCACTATTCAATGGACTTTT -TGGGACTAAAATTGTGATGATCGGCGAAATATCATAAATCGCCTTTATGACAACAACCTCATGTTTTTCC -GGCTGCCAGTCTACTATGTGATACATAGATGATTTGCGTGGCCCACACACCGTCAGCGTATCTTTCCGCA -AAAGACTGTTACCGACCGTATAAACAATCCCATCAGACAACAACCATTATCCGTATGAGCCACACCATGT -GCTGGTTGGGAAAATGACCTCATTGTTACGTGTGATACTTCAATGGCAAATAACACATCACTTACAGACG -TACGATCATCAATAAGCATCCCAACAGAGGAATCCTGATTGCACGAGAAACGCTCTGTTACAGGTTTTGA -GAGCGGCTTTCGCGGATGTTGTGGGTCTTGGCCATATGCCGCTTGTGATGATGCGGAGTGTGTGCCGACA -ATGGCTGACGATAGCCGTTCATAAACGATGACACAGTAGTCAAGACCCAGAAACCCAGAAAACAGAGGAT -CATCAATCCGATGAGTCTCAAGCGGCGCCATAATCGCCACGCGGTATATTCCCTGCGGCACAGTCGATCG -AATTTATGTCGGGGAAGCCAGCCTTCCCGAGCTTTGCGTGGTTCTACCAGTGACCCAAAAAAACGGGAGC -GTCGAAATTCACCCATCCACCTACCCCTGAATAATGTTCAGACCGGGAAAAAGAAGCAGACATTGTAATT -TGCTCCTGCAGATGAAAATAGAAAAATTCCGATTTTTCCGCTTGTAATTTATAACAAATATGTCAGATGC -GCAGAAACTCCGGTAACAGACAAACAGATCCAGACATTCCTCTTACGCCATCATGTTGGTCATAAGCAGG -TCTATTCAAGTTTTCGGAATAGCGGACGGTGCCAAGAGCTTTTATTATCCTCAAATATTTTTATCCAGAC -TTCTGATTGCTGCATTTGCAGCTGATCAGAAGAAAATATCACGGAAAAGAAAACTCGTTTTCCATCGTCT -ACGTTAAAGGCACCCGCGCCTGGGGATGCAGGAAAAACGGTTGGCACCAAACGAGCGCTCAAAGAAAAGC -ACGTCTGGGCTATTCGGCTATGGCACGAGTGTGGATGCTTACCATCTGACCGCAGGCCCCGAAGACGGGT -CTGAGGCAACCAGTGCCATGTACGCGGCTCTGTACCAAGCAGGTATTGCGCCTGAGGCGGTCGGCCACAT -CGACGCCAGTTGGTGATCGTGGTAAACTGGCAGCCATCCGTTTCGTGTTCGGGAAGCATAATGGTCCGAT -CATCAGTGCCATCAAACCTGCGACAGGCTATCTTCTGGGGGCTGCAGGCGGGATCAAGGCAATCTTTACA -GCCCTCTCGCTGTACGATCAGGTTGCACCGCGGACCCTGAACCTGAATAATCCAGACCCGCTCTCGACAG -GGCTGGATCTGATCGCTTCCCAAGCGCGGCCTGCAAGCTTCGACTACGCCATCTCAAACGGGTTTGGTTT -TGGTGGCGTCAACGTATCCGTCATTTTGCGCTGCGGGCATCTCTGAACAGTTTTCGCTATTAGCGGGCCT -GAAATTCATAAGTACGCCAATGGCGAAAAGCCGTATAAACCGAGACAGATTGCGATTTATCGCAAGTGAA -GCACCGATCTGACAACTTTGATGATTTATCTGAAAAATAAGAATACTAGGTATACAAATATGAGAAATTA -TTCAATGTGAGGATGCAGGTTAACACAAGATGTTTGTAAGATTTTCATTTGAATATAAGTGGTTAATGGA -AGTTCCGTGATTTCACAAAGATACGTTCAGATTGTTGTTCCTGTTGCTTTATGCCAACGTCTTGAAGTGA -TCGGTTACTCACATCTACAAGTAACGCTGAAAGATCACTGATTTCCTTCGCGACCAGATGCACGACCTCT -CCTTCCTTCTGGAGCATGCCTGTCACTGCCAGCATCTGGCTACTCAGTACCACGCGTCGGTTGGCGTCAA -ATAGATCCGGCCAGATGATGACGTTCATGTTGGCCGTCTCGTCCTCCAGTGTCATGAATACCACGCCTTC -GACCGATCCTGGCCGCTGCCGGACCAGAACGATCCCGGCGACAGTCAGGCGTTTTCCGTCTTTTGCTGTC -AATGCTTGTCGACAGGTGACGATGTCCCGTTCTCGCATATCCCTGCGAAGGAATGCGAGGGGATGGTCCC -GTAGGCTCAGGCCAAGCCGGTTATAGTCCCGTACCACTTCTGCTCCATCACGCATGGGTTGGAGCAATAC -ATCTGGTTCCTCTGCTTCCCTGATGACCTGCGCTGCCGCAAATAGCGGCAACGGTTCATCGCGCAACGCT -TTGAGCGCCCACAGCGCCTCGCGCCGTGCCAGTCCGAGCGAAGGCCTGAACGCATCAGCTTCTGCCAGAT -GGATCAGGGCTGCCGCTTTCGCACCAGCCCGACGCCACAATTCGTCCACTGACATAAAAGGCTGACTGGC -ACGAGCCACAACAATCCGGGCGGCATCGTCATTGGCTAGTCCCTTTACCAGACTCATGCCCAAGCGCACG -GCAAATCGGCCATCGGGTTTTTCCGGTCCTTCCAGCGTGCTGTCCCAGCGTGAGGCGTTCACGCAGACAG -GCCGGATTTCCACCCCATGCTCACGTGCATCACGGACAAGCTGCGCTGGTGCGTAAAATCCCATTGGCTG -GGAATTCAGGAGAGAGACCAAAAACACGTCAGGATGGGTGCATTTCATCCACGATGACGAATAGGCCAGA -ATGGCAAAACTGGCTGCATGGCTTTCAGGAAACCCATAGGAGCCGAAGCCTTCCAATTGCTGATAGATCC -GTTCTGCAAATTCTTCATCATACCCATTGGCGCGCATGCCATCGATCAGGCGTGTCTGAAACTGTGAGAC -TGTACCGGTATTCTTGAAAGTTGCCATGGCCCGACGCAGTTGATCAGCCTCGGCGGCGGTAAAACCCGCA -CAGATCATGGCAACCTGCATCGCCTGCTCCTGAAACAACGGGATACCGAGTGTCTTTTTCAGAACCTTTT -CGAGTTTGGGCGTTGGATACTCTTCAGGTTCGATCCCTTCGCGCCTTCGGAGATATGGATGAACCATATC -GCCCTGAATCGGACCAGGCCGCACGATCGCGACTTCAATGACGAGATCATAAAAGACACGCGGCTTGAGC -CGTGGGAGCATGGACATCTGAGCTCTGCTCTCAATCTGAAACACACCGATGGTATCAGCTTTCCTGATCA -TGGCGTAGGTACGCGGATCCTCGGCTGGGATGGTCTGGAGCGTAAAGTGCTGCTGCTTATGTTTGGCCAG -CAGGTCCAGTCCCTTTCTCATGCAGGTCAGCATGCCAAGGGCCAGAATATCGACCTTCATGAATTTCAGG -GCGTCAATATCGTCCTTGTCCCATTCGATGATCTGGCGGGCATCCATCGAGGCGGGTTCGATGGGCACCA -GTTCATCCAGCCGGTCATGCGTCAGCACAAAGCCACCGGGGTGCTGCGACAGATGGCGAGGTACGCCAAT -CAGGCAACGAGCCAGATCAAGTGTTAGGCGGATGCGCCGATCAGACAGGTCAATGCCGGTGTCACCGAGA -GCCTCATCATCCAGCGTGCGCCCCCAACCCCATATCTGTCCAGAAAGGGTTCGGATCAGGTCGTCGGGGA -GGCCCATCACCTTGCCAACGTCACGCAATGCCCCTTTGACCCGATAGCGGATGACCACAGCAGTCAGAGC -GGCCCGGTCACGACCGTAATGTTCATAAATCCACTGGATGACTTGCTCGCGGCGGGCATGCTCGAAATCG -ACGTCGATATCTGGCGGCTCGCCCCGTTCTTCCGAGACGAAGCGTTCGAACAGCAGCGAGTTTCGCGCGG -GATCGATGGCGGTGATGCCAAGCACATAACAGACAGCGGAATTGGCAGCCGATCCACGCCCCTGACAGAG -AATGTCCTGAGAGCGGGCATAGCGGACGATACTGTTTACCGTGAGAAAATAGGGAGCATACTGCATTCGT -CCGATCAGAGCCAGTTCGTGCTTCAGACTCTGACAGACCTCTTTTGGGATCCCCTCGGGATAGGTCCGTT -CAGCGCCTTCCCAAGTCAACGTTTCCAGTGCCTGTTGGGGCGTTTGCCCGGGCATGGAGACTTCATCGGG -ATACTGATAGGCCAGGTCATCCAGAGAGAACTGACAGCATTCGACGATATCCATAGTGCGGGTAACCGCT -TCAGGGTAACGGCTGAACAGTCGAACCATTTCCTGAGGGGGCTTGAGATAGCGATCAGCATGACGTTCGC -GGACAAATCCCGCCTCATCAATGGTGGTGTTATGCCGGATGCAGGTGACGACATCCTGCAAGACACGCCG -CTCATGGGTATGGAACAGCACGTCATTGGTCACTATGGTCGACACCCGTGCCTGATGTGCCAGGTTGGCC -AGTTCGTAGAGCCGCATCTGGTCATTGGGGCGCCGTAGCAGGGTGAGGGCCAGATAGGTCCGATCGGCAA -AGGCGTCCTTCAGTTTGCGAAGATGCAAGCCGCAGGCATCGTTCGCCGTGTCCGGGATCATGATGACGAT -CAGGCCTTCGCCCCAGGTGACCAGATCGTCCCAGAGGAGATGGCATTTACCTTTCCCGGCCCGTGCTTTG -CCAATGGTGAGCAGACGACACAACCGGCCATAGGCGACCCGGTTTGTCGGATAAACGAGCACAGGTGGAA -AATCCGTCAGATCAAGTCGGCAGCCTATGACCAGCCGTAACCCGACCTGCTTTGCGGCTGCATGGGCCTG -CACCATGCCCGCCAGAGAATGACGGTCGCAGATCCCCAGTGCTTTTGCCTGCGTAAACAGCTCAATCGGC -GAAGATACGCCGCGCAGGAAGGAGAAATAGGTCGTGACCTGTAGTTCGGCGTAGGGCAGGGCATCGGCAC -TCATCCAAATATCCCATGCAGGAACCAGCCCTGTGAGCCGGTCTCACCATGCTCGCCGTCACCAGCCCGG -TAAAGCCAGAAGCGTTCACCGTTCGTGTCTTCCACGCGAAAGTAATCCCGGGCGATGGTCTGTTCCGCAT -CATTCTTCCACCATTCGCCAAACACCCGCTCCGGCCCATCAGCGCATTTCACCTTTCGCCGCACGCCCCG -CCAGATGAAGAATACGGGAGGCTGGTCGGGCAATTCCGCCATGGCCTGCACCGGCTCTGGATGCGCGAGC -AAGCGTGTGGGGCGTGGCCAGTGGTCTGGCCAGTCTTTCGTCTCATCGGGTGCCAGAGCGGGCACGCGGC -AGAAGGAGCGTTCAGGCAGGTCACTTTCCACTGGCGCGAAGCGATACAGCGCCTGTGTACCCACACGGTT -GGCCAGTGTGTCGATCAGGTCGGACACGTCTGTATCTTCCTCGGCAATCAGGGATGACACGGTCTGCCGC -CGGTCCATCGGCTCGGCCAGAGAGGCAATCAGCATCATGCTTTCGATGCCAAACCCTGGATTGATGATTT -CAATCTTCTCGCATAACAACCGGTTCAAACGTTTCATGTCACAGACCGGTAGGGCAGTAGCCACACGAAT -TGCCTCGGTACGGTTATCAACGCGATGCAGCAACAGGTCGAGACGACGCACGCCCTGTCCGCGCGCCTCC -AGCCCCTGACAGAGCAATGGCACTAGTTTACCAATATAGTGCGCAATGGTTTCCGCATTACCAATAGGTT -CGGCAAAATGGCGGCTGACCTCGACCGGATCAACAGGGCGGACTGGAGTGATCGCTTCACCAATACGCCC -AAACGCCTGATCCAGCCTGCGCGTGATGTCTGGACCGAACCGCAGGGTCAGCGGGGCGCGGGGCATGGTG -GCCAGCTGTCCGATACGTGACACGCCCAACGTGGTCAGTCCGTCAATAATTGTGTTCGGCAGGCGCAGCG -CCGCAATAGGCAGATCGGCCAGTGCGGAAGCGGTCTCGCCTGAGGACACAACGGCAATTGGTGGCCGACC -GTAGCGGGCAATGGCATGCGCAGCCCCCCAAGTGTCCGCCACTACGGCCCGGGCGCAAAAACCGGCGCCC -GCCATGCGATGAACCATGTTCTTGAGCATGGGAAGTTCACCACCGTGCAGATGATCAGCGCCCGTTGTGT -CCAGCCCCAGCCCATCTGGAGCATCAACCGCTACGATGGGCGCGATCCGGCGCTGAAACCACAGAGCCAG -CTTTTCCAGTCCCAGACGGTCGCCCTCGGGATCAGCGTCCATGACCACCAGATCAGGATACAACGCCTGG -GCCTTGGCGATGGGCATGCCGGGGTGCAGACCCAGCTTGCGTGCTGGCAGATCGACCGATAGCACACTCC -GTCGTCGTCCTTCACGCCCAACCAATGCCAGTGGCATCTCAGGTGCGGGCGCGTCTTTGCCCAACCGTTT -CCTGATCCGATCCGTTGGCCAGAGTGGCAGGTAAAGAGAGACGACCCTTCTCATCACAGGCCTCCACTTC -AAAGTCAGCACATTCGCCCGCACGGGCGCGGATCAGTTCGAGCAGCCAGCGCGGTCTTCCGACACCGGCA -ACAGGTAGCGGTATGGATGGTAGGACGGACACCCGCCAACGGGTGATTGAAGCTGTTGGCTGGCCAAAAT -CAGCCGCATCCGTCTGCCGCCGCCAACGCCTTATCGCAATGCCAAGAGAACCGGATGTCTCTGCTGCCAG -TTGCAGCCGGCGTGAGGCCGTCATGGACAGACGCGCCACCTCGGCGACAACTGCGCCGAGCGCTCCATGT -CGCAACCCCTCTTCGAAACAGGCCAGTACATCAATGTCCGAGCGCGCTTCGACATAGATCGTCCGCCGTG -CCGATAGTCCGACCTGTTTCAGAGAAGGCGCGAACATATCCTGGCGGGTGACGATCCACAGCACCTTGCC -ACGTGTGCGTGCGGCAATGCCGGCGCAGAACTGTCCGGCTGCCGCACTGTGCAGGGCATCGTTGCCGCCG -CCCGCCACTTCGTGCAGAGCGCCCAGCGCCAGACCGCCACCGGGCAGGCGGTTGTCGATCTCGCGCACGC -CAAAGGGCAGGACCTTGCGTCGACGGTCATTATGCCCTTCGAGACGACTGATCGCGGCTCGGAGTGTCTC -CAGAGCTGGCTTTTTGCGCGTGTTAGCAGTCATGTCACAACTCATTGTCCCTTGTGCGAGCAGATTTCAT -GATCATATGTTCATGATTTGTTCTTAATTGGCACTGGAAGTCAATGCCAATTCGCACCACCTTAGGCATG -ATGCAGAGCGCAAAAACTCTCGGAACAGTTGGTGAAGGCATTTTAGGGAATTGAGTTCAAAGGATTTTCA -TACACCAGGCGGTCATAATTACTTGTCTCGTCTGAATGATGCGCAGCGGCAGGCGGTCACGCACGGGATC -GGTTTCTCGCCAGGTCAAGCGGTTTCATCTCCGTTGCTGGTCATTGCCGGTGCCGGCTCTGGCAAAACCA -ACACGCTGGCGCACCGGGTGGCGCATCTGATCGCATCGGGCGCGGATCCGCGCCGGATCCTGCTGTTGAC -CTTTTCCCGGCGGGCCAGTGTGGAGATGATGAGACGGGTAGAGCGTATCTGCAAAACGGTACTTGGCGAC -AAGGCTGCTCCGTTGGCCGATGCGCTGGCCTGGACCGGAACGTTTCATGCAATTGGTGCGCGGCTCTTGA -GGGAATATGCCCAACAGATTGGCATGGATCCGGCCTTTTCGATCCATGACCGGGAGGATTCCGCCGATCT -GATGAATCTGATCCGGCATGATCTGGGATTTTCCAAAACCGAAGCGCGTTTTCCCGGTAAGGGGACATGT -CTTGCCATCTATTCCCGCGTTGTAAATTCTGGTGCGTCGCTCGCTGATGTGCTGCTGAAACATTATCCGT -GGTGCGCGGTCTGGGAAGCTCAGCTCAAACTGCTCTTCGCCAGTTATGTCACAGCCAAGCAGGAACAGGG -GGTTCTGGATTATGATGACCTGCTGCTGTGCTGGGCACAGATGATGAGTGATCCGTTACTGGCTGCTGAT -ATTGGCAGCAAATGGGATCATGTTCTGGTTGACGAATATCAGGACACAAATCGACTGCAGGCAAAGATCC -TTCTGGGCATGAAGCCGGATGGGCGCGGGCTGACTGTGGTGGGTGATGACGCGCAGAGCATTTACGCCTT -CCGGGCTGCGACTGTGCGCAACATTCTTGATTTTCCGGCATCCTTCGATCCCCCGGCACGTGTGGTGACG -CTGGATAGGAACTATCGTTCAACAAAACCCATTCTGGATGCGGCCAACGCGGTGATTGGCGAGGCAGCTG -AGAGGTTCACCAAGGATCTATGGACCGAGCGGATCTCAGAGGAAAAACCACGACTAGTTACAATCTGGGA -CGATACAGCCCAAGCGAACTATATTGCAGATCGGGTGCTGGAAGAGCGTGAGTCGGGCACGCCGATGAAG -CAGCAGGCCGTGCTGTTCCGGGCTTCACATCACAGTGGCACGCTGGAGGTGGAACTGACCCGGCGCAACA -TCCCGTTTGTGAAGTTTGGTGGCCTGAAATTTCTCGACAGTGCGCATGTAAAGGATGTGCTAGCCCTGCT -GCGTTTTGCGCAGAATCCGCGCGATCGTATTGCCGGATTCCGGGTGTTACAGCTTCTGCCTGGGGTAGGA -CCAACCTCGGCCCGGCGCGTGCTGGATATCATGGGCGAGAAAGCTTATCCCTTTGAGGCACTGAAGGAAG -TGAAAGCCCCGCAGCGTAGTGGCGAGGCCTGGTCGGGTTTTGTGAACCTTCTGACAGCTCTTGGCAGTCA -GCAGGTCGGTTGGCCCGGCGAAATCGCAGCTGTAAGATACTGGTACGAGCCGCATCTGGAGCGACTGCAT -GAGGATGCCTCCACCCGTTTGGCCGATCTGGTGCAACTGGAGCAGATCGCCAGTGGTTATCCCTCACGGG -AGAAATTTCTGACCGAACTGACGCTGGATCCGCCGGATGCCACGTCCGATCAGGCTGGTGTGCCGCTGCT -GGATGAGGATTATCTGATCCTCTCGACTATTCATTCCGCCAAGGGGCAGGAATGGAAGAATGTCTTCATC -ATGAATGCCGTCGATGGCTGCATTCCGTCTGACCTGGCAACAGGTGAGAAGGATGACATCGAGGAGGAAC -GTCGTCTGCTCTATGTCGCGATGACGCGAGCGAAGGACTCACTCGATATCATGGTACCGCAGCGCTTTTA -TGCGCATGGCCAGCATAGCCGGGGCGACCGGCATGTCTATGCGTCGCGCACTCGTTTTATCGACAAAGAC -ATGCTGTCCCTGTTTGAGGCTGTATCCTGGCCCGTTGTGAACCCAGAGGAACAGACCCGGCAGGACGCGG -TGAAGTCTGTGCGGATTGATATGGCAGCCCGCCTGCGCGACATGTGGTCGTAAGAAGAAAACCAGCGCAA -TTCTTAGGGCCTGTTAGATCTTGAATTTCTTCCCATATTGTAGGGATGGAAGAAGGAGACAGAACTGGCA -CCTTTACGGACGAGACATGGGCGATCTGGGAACCTCTGATTGAGGAGGTTCGCCCGAGGGGCAAGACGCC -GCCACATGATCTGCGGCGGACGATAGCAGCGATTTTCTGGCGTCATGAGAATGGCGCGAAATGGCGGAGT -ATCCCCGCTGAACTGGGTCCGTGGTGGCGGGCTGCGCAGCTTTTCATCCGCTGGGCGAAGCTCGGCGTAT -GGGAGCGGCTGCTCGCACTGGTTCAGGAACGACAGGGAGTGGCATTCGGAATGACTTTTCTGGATGGCAC -GAACATCAGGGCTCACCACAAAGCGGCGGGAGCCCAAAAAAAGGGGCCTCTTTCGAAGAGCGAGACCATC -GTGAAGCACTTGGCCGCTCTCGCGGCGGCTATGGCACAAAAGTCTGCGTGATCGCTGATGGACATGGAAA -AGCCTTCGGTTTTGCGCTGGCCCCTGGACAGGCTCATGAACTGCCTCTGGCACCAGCCATGCTCGACAGC -CTTCCCGCCACTCCCCTGTGGGTAGTGGCGGACAAGGGCTACGCGTCGAACGCCCTTCGTGAACGGATAT -GGGACATGGGAGCACGGCCAGCCATTCCCGCGAAACGACGCGATGGCCCGGTCGCCTGCCCCAAATGGGC -CTATCGGTGTCGGCATCTCGTTGAGAACCTCTGGGCTCGCCTCAAGGAGTGGCGCGCTGTCGCAACCAGA -TATGAAAAAACAGCAACGTCGTTCCTCGCGGTCATCCACATCGCTGCCGCAGCAGACTGGATCAAGCTCT -AACAGGCCCTAGCCCATGATTTTGAACTTACAGGTGATTTGGGAAACGGACCCGATCTCCCTGTAAGTCA -TGCTGATGATTTCCCACAAGCCTGCTAGCCAGCTTATCGAAAGCAGGTTGGTAAATCAGTGTGGGCATGC -GTGCTTGCATTGCGGCAGCATCGTCTGGATTAGCCTCAAATTGCCCTTTCCAGCGGATGAAGGTGCGCTC -TCCATCTGTAACCGGCAGGAGCTGGATGGTTGAACGATAGTTCCAGATTGGGAGCGCTGATTCAATGATC -GAAAATGTTACCGCGTGATCCGTATCGGATAGAGCCAGAAGCTGCTCACGAATAAGGCCGACATCGCCCA -TCTCAAGCCGCCGAATGGTACCGATCCGATCGTCCGGATCATCCCCTTCAATCTGGCAGCTTTTCACCCC -CGGCAACCATTGGCCGATGGAACCGAAATCCCGAACGAGGGGCCAGACGGATGCAATGGGTGCATTGAGA -ACACTACTGGCCATAACCTCTATCATCATATTTTCCTGATCTCTGCTAAGGCGTATCAAAGTGACTGACC -GCCAGTTACTTCGATACGCTGACCATTCACCCAGTGCATGTTGTCAGACAAAAGGGCGGCAACAGCGGCA -CCAATATCATCTGGTTGCCCGACACGTCCCAGAGGTGTGATCTCTGCCAGACTTTTGTTGACCTCAGAGT -TGTCTCGTACCAATCCACCGCCAAAGTCTGAGGCAATGGCGCCTGGTGCTACCGCATTGACGGTAATGCG -GCGTTCCCCCAGTTCCTTTGCCATGTACAGTGAGATTACTTCGGTAGCCCCTTTCATGGCGGAGTAGGGG -CCATGATCGGGCAGGTAAAAGCGTGTGGCTGCCGAAGTGATGTTGAGAATACGTCCACCATCGCAGATCA -GCGGCAGAAGGGCCACAGTTAACAGGTAAGGCCCCTTGAAATGAATGTTATATTGATTATCAAGCAGTTC -AGATGTCGCCGCGTCAAAGCGAGTGTGAATGATATTGCCAGCGTTTTGCACGATGTATTTTAACACAGAT -CCGGAAAATTCTTCATCCAGAAGGTTCCTGACCTGCGCAGTAAATGTCGCAAAAGTGGTGTAGTCTGAAA -TATCCAGTTTCAGCATGCGCAGTTTTGCGGTGTCGGTGCTGAGTGCCGTTTTAGCGGCCTGTGCTTCGGC -TTCGTTAGTGTAATAAGTGCCGATGACATCAATCCCTGCTGCAATCAGGTGTTTTGCAATACTATAGCCG -ATCCCACGATTGGCACCCGTAACAAGGGCCACGTATTTCTGGTTCATAATCGTTTCCCTTTGGTAGATTT -GTAAGAGGCGAAATGAGGTCGCTATACTTAAAGAACAATCGATACATAAATGGGGTGAGGTAGGTCGTCA -ATAAATTATGGATCGACCGATATATATAAATCCACGGAGAATGGCTGGTGATAAAATCAGGGCCGTTTAC -TGGTGGGAGGAAACGCTCTTGGGGCGCATCGCAAGACTATCCCAGATTTGCATGAGCGTTGTAATGGCTG -CATCCAGTTTCTTGGCCCTGTCACCATCTCTGGCTTCGCAGGCCATACCGTGAAGAAAGGTTGTGAACAA -AGTAGGGAGCGTCTCGATAGCGGGTGAGGGGGGCAATTCTCCACTTGCCACAGCTCGATCTACACAAGCT -TTCATGCCCTTTCTGGTGCGTGCGCGTTCGGCAGCCAAAAGGGTCTGCACAGACTGGTTTTCTGGTGAAC -AATTACTGGCACCCAGCACAATCAGGCATCCCGTAGGGTGAGAGCGCGTTGTCTGCATGCGGGCGGAGCG -TCGCAATGTCTGTTCAATAGCATCACATGGCGCGAGTGTTTCGTCCCATAGAGGCGCAGTAACTTGCCCA -TAGGTTTCTAGATAGCGCTGCACGACTTCACGGAACAGCGCTTCCTTGGAACCAAAGGCAGCATAGAAAC -TGGCAGGCGAAATATTTCCCATGCAGGCCTTGAGCTGGTTCAATGATGTCGGCTCATAACCCTGCATCCA -GAACAGCGTGAGCGCGGCATCCAGCGCCTTGTCCCGGTCAAACTCACGGGGCCGTCCTGTTCGGGCCATA -TCTTGTCTCCGTTCGTGTAAAAGTTTTTTATACTAATTGATACGGAAATGGATGGCTAGAATCACGCGCT -GAAACCCCCATCAATGGTCTGCATGGTCCCCGTAATACCGCGTGCTGCGTTGCTGGCCAGAAACGATACA -TAGGCTGCAACATCATCTGCCGAGCCATGTTCCTTGATAGCCATGACGCTGTGCATGAGATCGGCTTGCG -GGCCATTGGCCGGGTTCATATCCGTATCTGTTGGCCCCGGCTGGATGACGTTGACCGTGATATGGCGTTC -GCCAAAATCCCGCGTCAGCCACGCACCATGCTTTGCAGGGCTGATTTTGTCATGCTGTAAGCGGCCAGCC -CCTTGAAGGGCACGCGATTGGCGTTTGTGGAACCGATCAGGATAATCCGGCCTCCATCTGGCATGGAGCG -GGCCGCTTCAACTGCACAATGATAGGCGGCACGAATGTTGATATCTATCATGCAGTCAACGTCATCAGGG -TTGAGTGTTAGCGGGTCTCCGGCAATGCAAATTCCAGCATTAAAGACGAAAATGTCGATTGGGCCTGCAT -TTCGGACGACAGAAAGCATTTCTGAACGACTGGTTGCATCTGCCTGAATGGCTTCTGCTCCGGTCTGGCG -TGCAAGCTCTTCAGCTTTTGTGCGCGATCCGGCCCATGTGAAGCTTACGGATGCCCCATCGTGGGTCAAA -CGTTTGACAATTGCAGCTCCAATCCCTCGGCTACCGCCGATGACCAAGACCTTTTTGCCTGAAAACTCTG -CCATGTTGTGCTCCCCTTGGTTCTGTATCGATCACTACAGAACGAGAAAGCATTAGAGCGCAAGTTAATT -TTGTATCGAGTGATATGGAAATTTTGTTTCTGCCTCTTTTTTCAGACCAGTCTATCGTAGCAATGGGCTT -ATTAGGTGCCATTTCTGCCTTAATTTAAGAAGTCTATTTATATACCAACCAGTCCAGAAATTTGTTGCCG -GTAAAGCGTGTTGGCATATATCTGTATTATTCGTTCCACTTATGTGAGTTTCAGATGCCCAAAAATTCGT -CCTCATTGCCAGAAGACCGTCTTCCGGTTGCTGGCCTTCTGGCGCTCGCAATGACAGGGTTCCTCTGCAT -CATGACGGAGACACTTCCTGCAGGACTGCTGCCGGAAATAAGTGCTGGTCTGCGGGTATCTCCCGCTTAT -GCAGGACAGATGGTCACCGCCTATGCTGTAGGTTCCCTAAGTGCCGCCATTCCACTCACACTTGCTACAC -AAAGATGGCGGCGACGTACCGTGCTGCTTCTGGCCATCATTGGTTTTCTACTGTTCAATGCAGTTACTGC -GCTTTCACCCAATTATTGGCTGACACTCGCAGTCCGTTACAGTGCGGGCGCAGCAGCGGGATTGGCATGG -GCACTTCTGGCGGGATATGCGCGGCGCATGGTAACACGTACCCAGCAGGGGCGAGCGCTGGCTATTGCCA -TGGTTGGAACGCCAATCGCCTTATCCCTTGGTGTTCCTGCCGGAACCTGGTTGGGAGCCATTTTCGGATG -GCGGTTGGCATTTGGCATGATGTCAGTCTTTACATTTTTGCTGATTGGCTGGGTGCTGGTGACGGTTCCG -GATTTTTCGGGTTCTTTGCATACACAACGGCCAGCATTCCGACATGTTCTAACGACATCTGGCGTGCGAC -CCGTTCTGGGAGTGGTGATCCTCTGGATGCTCGCACATAATATCCTGTATACTTACATTGTACCTTTTCT -GATACCGGCAGGGCTGGCGGGGAAGGCTGATCTTGTGTTGCTGGTTTTTGGTGTTGCCGCATTGGGTGGT -ATTGCGCTGACAGGGCAACTGGTGGATCATGCCCTGCGTGAGGCAGTACTGGTCAGTCTGGCCGTGTTTG -CGGTGGTCTGTCTCGCTTTTATCATTGATGTGCACTCTCCAGTGGTTATCTGGGGAGGTGTGAGTATCTG -GGGCCTGACTTTTGGCGGTGCCGCAACGTTATTGCAGACGGCGCTGGCTGATTCAGCACAAGAAGGCGCA -GATGTCGCATTGTCCATGAATGTTGTGGCATGGAACAGCGCTATTGCAGGAGGCGGTCTATTGGGAGGTC -TTCTCCTGAACCTGTGGGGTGCAGCCTCTTTCCCATGGGTTATGATGGGTCTTCTGATCTGCGGTTTTGG -GATCGTATGGCATGCTCGCTCACACGGGTTTCCGCAAGGTCATCGACTTTTGCAATAGCATCAGCAAACC -CTGTGAACTTCAGCAATGGGGTGTCCGGGAAAGTCATTGTATTGTCAGCGGATCAGTCATCAACAGGTCT -TTATCAGGAATAAAGCCTATTTCCTGATAGCCTGCGTCTAGCTGCCGTGTATGGTCCAATAGGTTCAGGT -GTAATCATGAGCACGATCAGGACATTCCCGGAACTGTTACCTGGCTTTCAGTGGCAGGATATTGAGGTGG -AAGGTGTGCGGATCCGCACGGCCACAGGCGGGAAGGGGCCACCAGTGCTTCTGCTGCATGGTCATCCGCA -AATGCACCTGACATGGCACAAGGTTGCTCCTACACTGGCAGAACATTTTACCGTTGTAGCGCCGGATCTG -CGTGGCTATGGCGATAGCGCCAAGCCTGAAGGCGGGGCAGGTCACGCCAATTATTCCAAACGTGCGATGG -CTGCCGATCAGGTTGGCGTCATGAAGGTACTCGGGTTTGAACGGTTCAGGGTGGTCGGGCATGACCGGGG -AGGGCGGGTTGCGCATCGCATGGCGCTGGATACACCACAGGTAGTGGAAAAGCTGGTGCTGATTGATATT -GCACCAACAGCAACAATGTATGCCCACACCAATATGGAGTTTGCTCGACGCTATTTCTGGTGGTTTTTTC -TGATCCAGCCCTATCCTCTGCCAGAAAAGCTGATTGATGGCGACCCAGATTTCTTTCTGGAAAACCATAT -TGCAGGACAGATCAAAATCCCGAGGTCAGTCGATCCCCGCGTAATGGCTGAATACCGCCGCTGCTATGCT -GACCCGACAATGCGCCATGCAGCTTGTGAGGATTATCGGGCTGCGGCTGGTATAGACCTTGAGCATGATG -CAGCCGATGCCAACAAACGGGTTACAGCGCCGTTACTGGCATTATGGGGTGCACGCGGCACAGTGGGCGC -ACTTTATGATGTTGTGGAGACATGGCGCAAAAAAGCGACTGACGTGCAGGGCCACGCAATTGATTGCGGG -CATAGTCCACAGGAAGAAGCACCTGAAGAATTTCTGCATCAGCTTAAAGAGTTTCTTTGAAATGGATTCC -AAAATGTACAGTCTTTTGGCCAGATGAGTTCGGCATACGAATAATAGGGATTTTTATCTCTGCACATTAG -GGCCCGTGTAAAGAAAACGTACTGAAATATGATGGAAACACTATGGCGACAGACCTTCTATCCCAATAAT -CCCGCATTGTCGTAATTCTCAATAATCTGGTCAAAAAGGCTGACATTCGAGCGGCTTCTTGCCATGAGCT -GTGCTCCAGATACTGCAGCAAAGATGGCTCGTGCACGTTCTATGTTTTGGGATGATGCCGGGTTTATCCT -AGAGATGATCGTAGTCAGCCAGGTCACATTGATATCGGTAAATGTCTGTATTTCGTGTTTTACAGCATCA -GGCAGATCATCATATTCAGCACTCATGAAACTCCCTAGACACAGACGATTACCGTTTTCGAGTGAACGAC -GAAAGATTTCCGGATAACGACGCAAGCATGTCAGAGAATCTGGAGTTTCCATCTGCATACTTTCCAGATT -AGCCTTGGTATCTTCCCAATAGCGTCGCGCAACTGCCATTCCAAGATCGGCTTTACTGGGAAAGTGATAA -TAAATGCTTGCAGGCTTAATTCCGACTTCCTTGGCAAGTTCACGGAAGTTCAGGCCGTTGTAACCACGGG -TCTGTGCAGCCTTTCTGGCTGCTGCCAAGATAGCTTCTCTGGAACTCTCATGCGTTATGTTCATTGTATT -GCGACTGTCTCCCTATGTGTTGGTAGGTAAGCGTTGACGCCCTGAAAGGGAAGGCATAACAAAATATACC -TACCAAGTGGTAGGTAGGCACATGACAGGCGGTCCAAAACAGTTGTTTTCATTAGGGGTGAGGCAATTCT -TATGAAAATCTATGATTGGCCTACAGGGCCTTATCCGGCACGTGTGCGGATTGCTCTGGCGGAAAAGCAG -ATGCTGTCCAGGATAAAGTTTGTCCAGATCAATCTGTGGAAAGGCGAACATAAGACAGCGGACTTCCGAA -CCAAGAACTATTCAGGCACGGTGCCGGTTCTCGAACTTGATGACGGAACCTTTCTTGCCGAATGCACTGC -GATCACAGTTTATCTTGATACGCTTGACGGGATTCCAACATTGACTGGCAGAACGCCACGTGAAAAGGGC -GTGATCCAGATGATGACCAAACGCGCTGAAATCGAAATGCTCGATGCTATCAGCATTTATTTCCATCATG -CGACGCCAGGCCTTGGCCCTAAAGTAGAGCTTTACCAGAACAGGGAATGGGGCCTTTACCAGCGCGATAA -GGCTTTACGCGGCATGCATTACTTTGATGCTCTCCTTAAAAAACAGCCTTTTATCGCAGGGGAGAATTTT -TCTATGGCAGATATTGCCGTGATTGGAGGCTTTATATTCGCCGCAGTCGTGAAACTGCCTATTCCTCACG -AGTGCAGTGCCCTTCTGGCGTGGTATGCAAGAATGCAGGAACGTCCAAGCGTTCGGGATCAGCTGGCAAC -TGTCTCGCCATAACATTGAAACTCGTTGTGCTAAATGTAGCACGCAGCTTTTTTATGACTCTTAATGTGC -ACGCAGATGGACGTGAACTGCTAAATAAGGAGTGGAGGTA diff --git a/janis_core/tests/data/galaxy/abricate/test-data/MRSA0252.fna b/janis_core/tests/data/galaxy/abricate/test-data/MRSA0252.fna deleted file mode 100644 index ae42d299b..000000000 --- a/janis_core/tests/data/galaxy/abricate/test-data/MRSA0252.fna +++ /dev/null @@ -1,41467 +0,0 @@ ->gi|49482253|ref|NC_002952.2| Staphylococcus aureus subsp. aureus MRSA252 chromosome, complete genome -CGATTAAAGATAGAAATACACGATGCGAGCAATCAAATTTCATAACATCACCATGAGTTTGATCCAAAGC -ATGAGTGTTTACAATGTTTGAATACCTTATACAGTTCTTATACATACTTTATAAATTATTTCCCAAGCTG -TTTTGATACACACACTAACAGATACTCTATAGAAGGAAAAGTTATCCACTTATGCACACTTATACTTTTT -AGAATTGTGGATAATTAGAAATTACACACAAAGTTATACTATTTTTAGCAACATATTCACAGGTATTTGA -CATATAGAGAACTGAAAAAGTATAATTGTGTGGATAAGTCGTCCAACTCATGATTTTATAAGGATTTATT -TATTGATATTTACATAAAAATACTGTGCATAACTAATAAGCAGGATAAAGTTATCCACCGATTGTTATTA -ACTTGTGGATAATTATTAACATGGTGTGTTTAGAAGTTATCCACGGTTGTTATTTTTGTGTATAACTTAA -AAATTTAAGAAAGATGGAGTAAATTTATGTCGGAAAAAGAAATTTGGGAAAAAGTGCTTGAAATTGCTCA -AGAAAAATTATCAGCTGTAAGTTACTCAACTTTCCTAAAAGATACTGAGCTTTACACGATCAAAGATGGT -GAAGCTATCGTATTATCGAGTATTCCTTTTAATGCAAATTGGTTAAATCAACAATATGCTGAAATTATCC -AAGCAATCTTATTTGATGTTGTAGGCTATGAAGTAAAACCTCACTTTATTACTACTGAAGAATTAGCAAA -TTATAGTAATAATGAAACTGCTACTCCAAAAGAAGCAACAAAACCTTCTACTGAAACAACTGAGGATAAT -CATGTGCTTGGTAGAGAGCAATTCAATGCCCATAACACATTTGACACTTTTGTAATCGGACCTGGTAACC -GCTTCCCACATGCAGCGAGTTTAGCTGTGGCCGAAGCACCAGCCAAAGCGTACAATCCATTATTTATCTA -TGGAGGTGTTGGTTTAGGAAAAACCCATTTAATGCATGCCATTGGTCATCATGTTTTAGATAATAATCCA -GATGCCAAAGTGATTTACACATCAAGTGAAAAATTCACAAATGAATTTATTAAATCAATTCGTGATAACG -AAGGTGAAGCTTTCAGAGAAAGATATCGTAATATCGACGTCTTATTAATCGATGATATTCAGTTCATACA -AAATAAAGTACAAACACAAGAAGAATTTTTCTATACTTTTAATGAATTGCATCAGAATAACAAGCAAATA -GTTATTTCGAGTGATCGACCGCCAAAGGAAATTGCACAATTAGAAGATCGATTACGTTCGCGCTTTGAAT -GGGGGCTAATTGTTGATATTACGCCACCAGATTATGAAACTCGAATGGCAATTTTGCAGAAGAAAATTGA -AGAAGAAAAATTAGATATTCCACCAGAAGCTTTAAATTATATAGCAAATCAAATTCAATCTAATATTCGT -GAATTAGAAGGTGCATTAACACGTTTACTTGCATATTCACAATTATTAGGAAAACCAATTACAACTGAAT -TAACTGCTGAAGCTTTAAAAGATATCATTCAAGCACCAAAATCTAAAAAGATTACCATCCAAGATATTCA -AAAAATTGTAGGCCAGTACTATAATGTTAGAATTGAAGATTTCAGTGCAAAAAAACGTACAAAGTCAATT -GCATATCCACGTCAAATAGCTATGTACTTGTCTAGAGAGCTTACAGATTTCTCATTACCTAAAATTGGTG -AAGAATTTGGTGGGCGTGATCATACGACCGTCATTCATGCTCATGAAAAAATATCTAAAGATTTAAAAGA -AGATCCTATTTTTAAACAAGAAGTAGAGAATCTTGAAAAAGAAATAAGAAATGTATAAGTAGGAAACTTT -GGGAAATGTAATCTGTTATATAACAGTACTAATAATAACAATCATTTTTTACATTTCTATATGCTAATGT -GGCAAGATGAGCAAAACTCATTTTGTGGATAATGTTTAAAATTCATACACGCCATACACAAGTTATCAAC -ATGTGTATAACTTCGCCAAATCTATGTTTTTAAGACTTATCCACCAATCCACAGCACCTACTACTATTAC -TAAGAACTTAAAACCTATATAATTATATATAAACGACTGGAAGGAGTTTTAATTAATGATGGAATTCACT -ATTAAAAGAGATTATTTTATTACACAATTAAATGACACATTAAAAGCTATTTCACCAAGAACAACATTAC -CTATATTAACTGGTATCAAAATCGATGCAAAAGAACATGAAGTTATATTAACTGGTTCAGACTCTGAAAT -TTCAATAGAAATCACTATTCCTAAAACTGTAGATGGCGAAGATATTGTCAATATTTCAGAAACAGGCTCA -GTAGTACTTCCTGGACGATTCTTTGTTGATATTATAAAAAAATTACCTGGTAAAGATGTTAAATTATCTA -CAAATGAACAATTCCAGACATTAATTACATCAGGTCATTCTGAATTTAATTTAAGTGGCTTAGATCCAGA -TCAATATCCTTTATTACCTCAAGTTTCTAGAGATGACGCAATTCAATTGTCGGTAAAAGTGCTTAAAAAC -GTAATTGCACAAACGAATTTTGCAGTGTCCACCTCAGAAACACGCCCAGTACTAACTGGTGTGAACTGGC -TTATACAAGAAAATGAATTAATATGCACAGCGACTGACTCACACCGCTTGGCTGTAAGAAAGTTGCAGTT -AGAAGATGTTTCTGAAAACAAAAATGTCATCATTCCAGGTAAGGCTTTAGCTGAATTAAATAAAATTATG -TCTGACAATGAAGAAGACATTGATATCTTCTTTGCTTCAAACCAAGTTTTATTTAAAGTTGGAAATGTGA -ACTTTATTTCTCGATTATTAGAAGGACATTATCCTGATACAACACGTTTATTCCCTGAAAACTATGAAAT -TAAATTAAGTATAGACAATGGGGAGTTTTATCATGCGATTGATCGTGCATCTTTATTAGCACGTGAAGGT -GGTAATAACGTTATTAAATTAAGTACAGGTGATGACGTTGTTGAATTGTCTTCTACATCACCAGAAATTG -GTACTGTAAAAGAAGAAGTTGATGCAAACGATGTTGAAGGTGGTAGCCTGAAAATTTCATTCAACTCTAA -ATATATGATGGATGCTTTAAAAGCAATCGATAATGATGAGGTTGAAGTTGAATTCTTCGGTACAATGAAA -CCATTTATTCTAAAACCAAAAGGTGACGACTCGGTAACGCAATTAATTTTACCAATCAGAACTTACTAAA -AATAAATATAAATAAAGGATGACGTGATTAATTAAAACGTCATCCTTTATTTTTTGGCAAAAATAATTCT -AGATTCGTATGTAAAATAAATTTGACAGCATTTTAAACAGCAAATAAAAGACGCCAATTAAATTTATGAC -AAATGTATCCAGAATTTAATAAGTGTGCTTATATGCCCTTTAAATTCAAAATTTTAATAGTCAATAACAA -GTTGAATATAAAAGTTAAACGCCGTTAAATAGCGTTAAAAAATTGAAAATGACAGTATTGCCAAAAAATA -AGAATTAATTATTTATATGTAAACGGTTTCCACCTCTATTTTAAATGAAATTTGTGACAAAAAAAGGTAT -AATATATTAATGACATACAAAGAAATGGAGTGATTATTTTGGTTCAAGAAGTTGTAGTAGAAGGAGACAT -TAATTTAGGTCAATTTCTAAAAACAGAAGGGATTATTGAATCTGGTGGTCAAGCAAAATGGTTCTTGCAA -GACGTTGAAGTATTAATTAATGGAGTGCGTGAAACACGTCGCGGTAAAAAGTTAGAACATCAAGATCGTA -TAGATATCCCAGAATTACCTGAAGATGCTGGTTCTTTCTTAATCATTCATCAAGGTGAACAATGAAGTTA -AATACACTCCAATTAGAAAATTATCGTAACTATGATGAGGTTACGTTGAAATGTCATCCTGACGTGAATA -TCCTCATTGGAGAAAATGCACAAGGAAAGACAAATTTACTTGAATCAATTTATACCTTAGCTTTAGCAAA -AAGTCATAGAACGAGTAATGATAAGGAACTCATACGTTTTAATGCTGATTATGCTAAAATAGAAGGTGAG -CTTAGTTATAGACACGGCACGATGCCATTAACAATGTTTATAACTAAAAAAGGTAAACAAGTCAAAGTGA -ATCACTTAGAGCAAAGTCGTCTAACTCAATATATTGGACACCTCAATGTGGTTCTATTTGCGCCAGAAGA -TTTGAATATTGTAAAAGGCTCTCCTCAAATAAGACGACGCTTTATAGATATGGAGTTGGGCCAAATTTCT -GCTGTTTACTTAAATGATTTAGCTCAATACCAACGTATTTTAAAGCAAAAGAATAATTACTTAAAGCAGT -TACAATTAGGCCAAAAAAAGGACTTAACAATGTTGGAAGTATTAAATCAACAGTTTGCTGAATATGCAAT -GAAAGTAACTGATAAACGTGCACATTTTATTCAAGAGCTAGAGTCGTTAGCTAAACCGATTCATGCTGGT -ATCACAAATGATAAAGAAGCGTTGTCGCTGAATTATTTACCTAGTCTTAAATTTGATTATGCTCAAAATG -AAGCGGCACGACTTGAAGAAATTATGTCTATTCTTAGCGATAATATGCAAAGAGAAAAAGAACGAGGCAT -TAGCTTATTCGGACCACATCGAGATGATATAAGTTTTGATGTGAATGGCATGGATGCTCAAACATATGGT -TCTCAAGGACAGCAACGTACAACGGCTTTGTCCATTAAATTAGCTGAAATTGAGTTAATGAATATCGAAG -TTGGGGAATATCCCATCTTATTATTAGACGATGTACTCAGTGAATTAGATGATTCGCGTCAAACGCATTT -ATTAAGTACGATTCAGCATAAAGTACAAACATTTGTCACTACGACATCTGTAGATGGTATTGATCATGAA -ATCATGAATAACGCTAAATTGTATCGTATTAATCAAGGTGAAATTATAAAGTAACAGAAAGCGATGGTGA -CTGCATTGTCAGATGTAAACAACACGGATAATTATGGTGCTGGGCAAATACAAGTATTAGAAGGTTTAGA -AGCAGTACGTAAAAGACCAGGTATGTATATAGGATCGACTTCAGAGAGAGGTTTGCACCATTTAGTGTGG -GAAATTGTCGATAATAGTATCGATGAAGCATTAGCTGGTTATGCAAATCAAATTGAAGTTGTTATTGAAA -AAGATAACTGGATTAAAGTAACGGATAACGGACGTGGTATCCCAGTTGATATTCAAGAAAAAATGGGACG -TCCAGCTGTCGAAGTTATTTTAACTGTTTTACATGCTGGTGGTAAATTCGGCGGTGGCGGATACAAAGTA -TCTGGTGGTTTACATGGTGTTGGTTCATCAGTTGTAAACGCATTGTCACAAGACTTAGAAGTATATGTAC -ACAGAAATGAGACTATATATCATCAAGCATATAAAAAAGGTGTACCTCAATTTGACTTAAAAGAAGTTGG -CACAACTGATAAGACAGGTACTGTCATTCGTTTTAAAGCAGATGGAGAAATCTTCACAGAGACAACTGTA -TACAACTATGAAACATTACAGCAACGTATTAGAGAGCTTGCTTTCTTAAACAAAGGAATTCAAATCACAT -TAAGAGATGAACGTGATGAAGAAAACGTTAGAGAAGACTCCTATCACTATGAGGGCGGTATTAAATCTTA -TGTTGAGTTATTGAACGAAAATAAAGAACCTATTCATGATGAGCCGATTTATATTCATCAATCTAAAGAT -GATATTGAAGTAGAAATTGCGATTCAATATAACTCAGGATATGCCACAAATCTTTTAACTTACGCAAATA -ACATTCATACGTACGAAGGTGGTACGCATGAAGACGGATTCAAACGTGCATTAACGCGTGTCTTAAATAG -TTATGGTTTAAGTAGCAAGATTATGAAAGAAGACAAAGATAGACTTTCTGGTGAAGATACACGTGAAGGT -ATGACAGCAATTATATCTATCAAACATGGTGATCCTCAATTCGAAGGTCAAACGAAGACAAAATTAGGTA -ATTCTGAAGTGCGTCAAGTTGTAGATAAATTATTCTCAGAGCACTTTGAACGATTTTTATATGAAAATCC -ACAAGTCGCACGTACAGTGGTTGAAAAAGGTATTATGGCGGCACGTGCACGTGTTGCTGCGAAAAAAGCG -CGTGAAGTAACACGTCGTAAATCAGCGTTAGATGTAGCAAGTCTTCCAGGTAAATTAGCCGATTGCTCTA -GTAAAAGTCCTGAAGAATGTGAGATTTTCTTAGTCGAAGGGGACTCTGCCGGGGGGTCTACAAAATCTGG -TCGTGACTCTAGAACGCAGGCGATTTTACCATTACGAGGTAAGATATTAAATGTTGAAAAGGCACGATTA -GATAGAATTTTGAATAACAATGAAATTCGTCAAATGATCACAGCATTTGGTACAGGAATCGGTGGCGACT -TTGATCTAGCGAAAGCAAGATATCACAAAATCGTCATTATGACTGATGCCGATGTGGATGGAGCGCATAT -TAGAACATTGTTATTAACATTCTTCTATCGATTTATGAGACCGTTAATTGAAGCAGGCTATGTGTATATT -GCACAGCCACCGTTGTATAAACTGACACAAGGTAAACAAAAGTATTATGTATACAATGATAGGGAACTTG -ATAAACTTAAATCTGAATTGAATCCAACACCAAAATGGTCTATTGCACGATACAAAGGTCTTGGAGAAAT -GAATGCAGATCAATTATGGGAAACAACAATGAACCCTGAGCACCGCGCTCTTTTACAAGTAAAACTTGAA -GATGCGATTGAAGCGGACCAAACATTTGAAATGTTAATGGGTGACGTTGTAGAAAACCGTAGACAATTTA -TAGAAGATAATGCAGTTTATGCAAACTTAGACTTCTAAGCGCTGTGAACTGAACTTTTGAAGGAGGAACT -CTTGATGGCTGAATTACCTCAATCAAGAATAAATGAACGAAATATTACCAGTGAAATGCGTGAATCATTT -TTAGATTATGCGATGAGTGTTATCGTTGCTCGTGCATTGCCAGATGTTCGTGACGGTTTAAAACCAGTAC -ATCGTCGTATACTATATGGATTAAATGAACAAGGTATGACACCGGATAAATCATATAAAAAATCAGCACG -TATCGTTGGTGACGTAATGGGTAAATATCACCCTCATGGTGACTTATCTATCTATGAAGCAATGGTACGT -ATGGCTCAAGATTTCAGTTATCGTTATCCGCTTGTTGATGGCCAAGGTAACTTTGGTTCAATGGATGGAG -ATGGCGCAGCAGCAATGCGTTATACTGAAGCACGTATGACTAAAATCACACTTGAACTGTTACGTGATAT -TAATAAAGATACAATAGATTTTATCGATAACTATGATGGTAATGAAAGAGAGCCGTCAGTCTTACCTGCT -CGATTCCCTAACTTGTTAGCCAATGGTGCATCAGGTATCGCGGTAGGTATGGCAACGAATATTCCACCAC -ATAACTTAACAGAATTGATCAATGGTGTACTTAGCTTAAGTAAGAATCCTGATATTTCAATTGCTGAGTT -AATGGAAGATATTGAAGGTCCTGATTTCCCAACTGCTGGACTTATTTTAGGTAAGAGTGGTATTAGACGC -GCATATGAAACAGGTCGTGGTTCAATTCAAATGCGTTCTCGTGCAGTTATTGAAGAACGTGGAGGCGGAC -GTCAACGTATTGTTGTCACTGAAATTCCTTTCCAAGTGAATAAGGCTCGTATGATTGAAAAAATTGCAGA -GCTTGTTCGTGACAAGAAAATTGACGGTATTACTGATTTACGTGATGAAACAAGTTTACGTACTGGTGTG -CGTGTCGTTATTGATGTGCGTAAGGATGCCAATGCTAGTGTCATTTTAAATAACTTATACAAACAAACAC -CTCTTCAAACATCATTTGGTGTGAATATGATTGCTCTAGTGAATGGTAGACCGAAGCTGATTAATTTAAA -AGAAGCGTTAGTACATTATTTAGAGCATCAAAAGACAGTTGTTAGAAGACGTACGCAATACAACTTACGT -AAAGCTAAAGATCGTGCCCACATTTTAGAAGGGTTACGTATTGCGTTAGATCATATCGATGAAATTATTT -CAACGATTCGTGAATCAGAAACAGATAAAGTCGCAATGGAAAGTTTGCAACAACGCTTCAAACTTTCTGA -AAAACAAGCTCAAGCTATTTTAGACATGCGTTTAAGACGTCTAACAGGTTTAGAGAGAGACAAAATTGAA -GCTGAATATAATGAGTTATTAAATTATATTAGTGAATTAGAAGCAATCTTAGCTGATGAAGAAGTGTTAT -TACAGTTAGTTAGAGATGAATTGACTGAAATTAGAGATCGCTTCGGTGATGATCGTCGTACTGAAATTCA -ATTAGGTGGATTTGAAGACTTAGAGGACGAGGACTTAATTCCAGAAGAACAAATTGTAATTACTTTGAGC -CATAATAACTATATTAAACGTTTGCCGGTATCTACATATCGTGCTCAAAACCGTGGTGGTCGTGGTGTTC -AAGGTATGAATACATTGGAAGAAGATTTTGTCAGTCAATTGGTAACTTTAAGTACACATGACCATGTATT -GTTCTTTACTAACAAAGGTCGTGTATACAAACTAAAAGGTTATGAAGTGCCTGAGTTATCAAGACAGTCT -AAAGGTATTCCTGTAGTGAATGCTATTGAACTTGAAAATGATGAAATCATTAGTACAATGATTGCTGTTA -AAGACCTTGAAAGTGAAGATAACTTCTTAGTGTTTGCAACTAAACGTGGTGTCGTTAAACGTTCAGCATT -AAGTAACTTCTCAAGAATAAATAGAAATGGTAAGATTGCGATTTCGTTCAGAGAAGATGATGAGTTAATT -GCAGTTCGCTTAACAAGTGGTCAAGAAGATATCTTGATTGGTACATCACATGCATCATTAATTCGATTCC -CTGAATCAACATTACGTCCTTTAGGCCGTACAGCAACGGGTGTGAAAGGTATTACACTTCGTGAAGGTGA -CGAAGTTGTAGGGCTTGATGTAGCTCATGCAAACAGTGTTGATGAAGTATTAGTAGTTACTGAAAATGGT -TATGGTAAACGTACGCCAGTTAATGACTATCGTTTATCAAATCGTGGTGGTAAAGGTATTAAAACAGCTA -CGATTACTGAGCGTAATGGTAATGTTGTATGTATCACTACAGTAACTGGTGAAGAAGATTTAATGATTGT -TACTAATGCAGGTGTCATTATTCGACTAGATGTTGCAGATATTTCTCAAAATGGTCGTGCAGCACAAGGT -GTTCGCTTAATTCGCTTAGGCGATGATCAATTTGTTTCAACGGTTGCTAAAGTAAAAGAGGATGCAGACG -AAGAAAATGAAGATGAACAATCTACTGTATCTGAAGATGGTACTGAACAACAACGTGAAGCGGTTGTAAA -TGATGAAACACCAGGAAATGCAATTCATACTGAAGTGATTGATTCAGAAGTAAATGATGAAGATGGACGT -ATTGAAGTAAGACAAGATTTCATGGACCGTGTTGAAGAAGACATACAACAATCATCAGATGATGATGAAG -AATAATAAAAAAATAAGACTTCCCTATATGTAGGGGGGTCTTATTTTTATGCTAGAAAGTAATGCTATAC -TATATTCAATGATTAGTAATGACTAACTTTCTAATTGTTTCATTGCGTAAGGTATTTCATTGATAAGTCT -TGATGGTGGCACCACATACATATCTTTTGCAAGATTTTCGCCAATAAAACTATGTGTATATGTGGCACTC -ATAACCGCTTCTTTTAAGTTATCAAATTGACCAACAAAACTTGTAATCATACCAGCAAGTGTATCGCCCA -TACCACCAGTCGCCATTGCTGGGCTACCGATTGTCAATTTAAAGTCTTCATCTTTAAAGAAAATTTCAGT -ACCGTGTTTTTTAAGTACAACAGTTGCGCCTAAACGATCAACTGCTTCACGATTACGCTCATATGTCTGT -TCCTCAATAGGAATACCACTTAATCGTTCCCATTCTTTGAGATGCGGAGTAAAAATCACGCGACATGTAG -GTAATTGTGGTTTCAATTTACTAAAGATTGTGATGGCATCGCCGTCTACGATTAAATTTTGATGCGGTTG -TATATTTTGTAGTAGGAATGTAATGGCATTATTTCCTTTGAAATCAACGCCAAGACCTGGACCAATTAGT -ATACTGTCAGTCATTTCAATCATTTTCGTCAACATTTTCGTATCATTAATATCAATAACCATCGCTTCTG -GGCAACGAGAATGTAATGCTGAATGATTTGTTGGATGTGTAGCTACAGTGATTAAACCACTACCGCTAAA -TACACATGCACGAGCCGCTAACATAATGGCACCACCTAAGTTAGCAGATCCACCAATTAATAAAATTTTG -CCATAATCACCTTTATGTGAATCTTCTTTACGCTTAGGAATGTTAATAGAATTTAACGTTTCCATAGTGA -TATAACCTCCCATGTAAAAGCCTTTTCCGAATTTATTCAATTTTAAAAATATATAGTAACTTTTAACAAA -ATGTATTATAAATTTCTGAATTCATTATTATTTGTCGTTAAATACAATAGAAAATACTATACCTGTATAT -GCAATTCGTCAATAGATAAATTATTAAATATGCTTACAACAATCTTAATATCCTTTAACGCACTACAATA -GTGCTCTGATAATAGGTTATAAATGTACGTAAAACCATTGTTTCAATAAAAATGAAAACGTATACTTCAA -GAAGGATGGGTTACTTAATATAAACAAGGGGGTAACATATATGACTTTATATTTAGATGGTGAAACACTA -ACAATTGAGTATATTAAATCATTTTTACAACAACAATCAAAGATTGAAATTATTGATGATGCGTTAGAAC -GTGTCAAAAAAAGTAGAGCAGTAGTTGAACGTATTATTGAAAATGAGGAAACGGTTTACGGTATCACTAC -AGGTTTTGGGTTATTTAGTGATGTACGTATAGACCCGACGCAATATAACGAATTACAAATGAATCTGATA -CGCTCACATGCCTGTGGACTAGGTGAGCCATTTTCAAAAGAAGTAGCATTAGTCATGATGATTTTACGAT -TGAATACATTATTAAAAGGTCATTCAGGTGCCACTTTAGAATTAGTGAGACAATTACAATTTTTTATAAA -TGAACGTATTATACCGATAATCCCACAGCAAGGCTCTCTCGGTGCATCAGGAGATTTAGCGCCATTATCA -CATTTAGCATTAGCATTAATTGGTGAAGGGAAAGTATTGTACAGAGGTGAAGAAAAGGATAGTGACGATG -TATTAAGAGAATTAAATAGACAACCTTTGAACCTTCAGGCTAAAGAAGGTTTAGCATTGATTAATGGTAC -GCAAGCTATGACAGCTCAAGGTGTCATTAGTTATATAGAAGCAGAAGATTTAGGTTACCAATCTGAATGG -ATTGCTGCATTAACGCATCAGTCTCTTAATGGCATTATAGATGCATATCGACATGATGTGCACGCTGTTC -GTAATTTTCAAGAACAGATTAATGTGGCAGCGCGTATGCGTGATTGGTTAGAAGGATCAACATTAACGAC -GCGACAAGCAGAAATACGTGTACAAGATGCATATACATTGCGTTGTATACCACAAATCCATGGCGCGAGT -TTTCAAGTATTCAATTATGTTAAACAGCAATTAGAATTTGAAATGAATGCGGCTAATGATAATCCACTTA -TATTTGAGGAAGCAAATGCAACGTTTGTTATTTCGGGTGGTAACTTCCATGGACAACCTATTGCTTTTGC -ATTAGATCATCTTAAATTAGGTGTAAGTGAATTAGCAAACGTATCGGAACGTCGTCTAGAGCGACTAGTA -AATCCTCAATTAAATGGTGATTTACCAGCATTTCTTAGTCCAGAGCCAGGATTGCAAAGTGGCGCGATGA -TTATGCAATATGCTGCTGCAAGTCTCGTTTCTGAAAATAAAACTTTAGCGCATCCAGCGAGTGTTGATTC -TATCACTTCATCTGCGAACCAAGAAGATCACGTATCTATGGGAACTACAGCTGCTAGACATGGTTATCAA -ATTATTGAAAATGCAAGACGTGTGTTGGCAATCGAATGTGTTATTGCATTACAAGCAGCAGAGTTGAAAG -GTGTCGAAGGATTATCACCAAAAACACGTCGCAAGTATGATGAGTTTCGAAGTATCGTGCCATCCATTAC -ATATGACCGTCAATTTCATAAAGATATTGAAGCGGTTGCACAGTATTTAAAGCAATCAATTTATCAAACG -ACTGCATGTCACTAAATCGACATGATTGATGTTTGAAATCGTTACTTGAAAAAGCAAATATAGTTTGCTA -TATTAAAAATAACTTAATAAGACATTGTTCGTAGGACAAGTAATATATAGTGTTCGATATCAGAGAGCTT -GTGGTTAGTGTGAACAAGAATCAACATATATATGAATCTACCTACTTATTTAAAAGAACAATCGGTGATA -ACCGTTATTTTAGTGAAGTGCAATTTAGGTTTAGTGTATCTTTATAACTTAAATTGTTAAATAGGGTGGC -AACGCGTAGACCACGTCCCTTGTAGGGATGTGGTCTTTTTTTATTTTCTAAAAAATAAAGACGTGCGTCA -TTCCATAATAAATGATAATTATTTGGGAAAGGATGAAGGTTAATGTTAGACATTAGATTATTCAGAAATG -AGCCTGACACAGTTAAGAGCAAAATTGAATTACGCGGAGATGATCCAAAAGTTGTAGATGAAATTTTAGA -ATTGGATGAGCAACGACGTAAATTAATTAGTGCAACAGAAGAAATGAAAGCACGTCGTAATAAAGTAAGC -GAAGAAATCGCATTAAAAAAACGTAATAAAGAAAATGCTGATGATGTGATTGCTGAAATGCGCACATTAG -GTGACGATATTAAAGAAAAAGATAGTCAATTAAATGAAATTGATAGTAAAATGACAGGTATCCTTTGTCG -TATTCCAAATTTAATAAGTGATGATGTACCTCAAGGTGAATCTGATGAAGATAACGTTGAAGTTAAAAAG -TGGGGTACACCACGTGAGTTTTCATTTGAACCAAAAGCACATTGGGATATTGTAGAAGAATTGAAAATGG -CTGATTTTGATCGTGCAGCAAAAGTTTCAGGTGCGCGTTTTGTATATTTAACAAATGAAGGTGCGCAATT -AGAGCGTGCTTTAATGAACTATATGATTACAAAACATACAACACAACATGGTTATACAGAAATGATGGTA -CCACAGCTTGTAAACGCAGATACAATGTATGGTACAGGTCAATTACCTAAATTTGAAGAAGATTTATTTA -AAGTAGAAAAAGAAGGATTATATACAATTCCAACTGCTGAAGTACCATTAACGAATTTCTATCGTAATGA -AATTATTCAACCAGGTGTACTTCCTGAAAAATTCACTGGTCAATCTGCATGTTTCCGTAGTGAAGCAGGA -TCAGCAGGTAGAGATACAAGAGGATTAATTCGTTTACATCAATTCGATAAAGTGGAAATGGTACGTTTTG -AACAACCTGAAGATTCATGGAATGCTTTAGAAGAAATGACAACAAACGCAGAAGCAATTTTAGAAGAGTT -AGGTTTACCATACCGTCGTGTTATTTTATGTACAGGTGATATTGGATTTAGTGCAAGCAAAACATATGAT -TTAGAAGTTTGGTTACCAAGCTACAATGATTATAAAGAAATTAGTTCATGCTCAAACTGTACGGATTTCC -AAGCGCGTCGTGCTAACATCCGCTTCAAGCGTGACAAAGCAGCTAAACCAGAATTAGCACATACATTAAA -TGGTAGTGGTTTAGCAGTTGGACGTACATTTGCTGCTATTGTTGAAAATTACCAAAATGAAGATGGAACA -GTAACAATTCCAGAAGCATTAGTACCATTTATGGGTGGTAAAACACAAATTTCAAAACCAGTTAAATAAA -GACTTTAGCTACAAGCTTTAAAAAGTATATATCTACGTATACTTAAAGCAAGGCCAAGATACTTTAAATA -ATATTTTAAAAAGTGGTGACGAAGCTGTCGCCACTTTTTTTGTGCTGTAAAAGTATAATAGTGAGCCAAT -GCACATAACAACAATAAATTAAGTTTGTTGTTTAATGGGGTGAACGCATTTCATTATAGCAACAATACGG -GATAATTATGATGAACTAAAACAATCTAAAACGTAACAATTTTGAGCATCACTATTATGGGAAATTAAGT -GATAAAAAACTGATTTCGTTGATGTAGTATGAGTAATATCGATGCAGTAGGGTAGGGGGGATTATCGAAA -GTGTTAGAGACATGAATCAATATCCCAGACTCATCATTAGATATAAAAAATTATAAAATTAGTACTTAAA -AACAACTACAAACCCGTAGAAAATATGGAGGTAGTATTAAATAAAATATTGAAAATTCTCAAAACTAAAA -AGCTGATATGAAGCCGATTAAAGACTCCGGTATGTCTAACCTCAGACAAACCGGAGTCTAACGTTATTGC -TTGTCATATAGAACTATATTAGACTAGGTATATTATTTTTTCGTAATTATATAAATATAAAGTGAAAAAG -GAGGTAATTGAGATGACAACACATTTGAGTTTTAGACAAGGCGTGCAAGAGTGTATCCCAACATTATTGG -GTTATGCCGGTGTTGGTATTTCATTTGGTATCGTGGCTTCATCTCAAAACTTTAGTATTTTAGAAATTAT -CTTGTTATGTCTTGTTATATATGCCGGTGCTGCGCAATTTATTATGTGCGCGTTGTTTATAGCAGGTACA -CCGATATCAGCGATTGTACTAACTGTATTTATCGTAAATTCAAGAATGTTCCTTTTAAGTATGTCGCTTG -CACCAAACTTCAAGACATATGGGTTTTGGAACCGTGTTGGATTAGGTTCATTAGTAACTGACGAAACGTT -TGGTGTCGCCATTACACCTTATTTAAAAGGAGAAGCTATCAATGATCGTTGGATGCATGGTCTTAATATT -ACAGCATATTTATTTTGGGTAATTCCATGTGTAGCAGGTGCATTGTTTGGCGAGTATATTTCGAATCCAC -AAGCATTAGGATTAGATTTTGCTATCACGGCTATGTTTATCTTTTTAGCCATTGCACAATTTGAATCAAT -TACTAAATCGCGTTTAAGAATTTACATAGTACTCATTATTGCCGTCATAGTAATGATGTTATCGCTAAGT -ATGTTTATGCCTTCATATCTAGCAATATTAATTGCAGCCACAATTTCAGCAGCGTTAGGAGTGATGATGG -AACGATGATAACTCATATGAACATGTTAATACTTATTTTATTGTGTGGAATCGTAACGCTATTAATTCGA -ATTATACCTTTTATCATGATTTCAAAAGTGCAATTGCCTGATGTCGTGGTTCGATGGCTATCATTTATCC -CAATCACACTATTTACGGCACTTGTCATTGACAGCATTATTCAACAGACGCCTCATGGTGAGGGGTATAC -ATTAAACATCCCTTACATTATCGCGCTCATTCCGACGGTTATTTTATCTATAATCACGCGTAGTTTAACT -ATTACAATTATTAGTGGGATTGTTATCATGGCAGCATTACGATTTTTCTTTTAAAAATAACTGAAAATCA -TTGAACAGATATTTAAACTTAGGTAAACTGTTAGTAATCAGAAAATTCTGATATACAAATCATCTATGTT -AAGATTGGGAATCGTGTATACGTAAGCGATTTGGCTAACGCATGACAATGATAACAACATTTTAAATGAT -AAAAGTAATTCATCACTGAATCTCAACTAACACATAACAATTTCATATTTCTTATTGTGAGAAGTTGAGG -GACTTGGCCCTGTGATACTTCAGCAACCGACTTTATAGCACGGTGCTAAAACCAACGAGTTACTCGAATG -ATAAGTATAAAGACTTCTTACTTTTCAATAGGGTGAGAAGTTTTTTGTTTAAGGAGGAAAGAACAATGAC -AAATTACACAGTAGATACTTTAAATTTAGGGGAATTTATAACAGAATCTGGGGAAGTCATAGATAACTTG -CGTTTGAGATATGAGCATGTCGGTTATCATGGACAACCATTAGTTGTAGTTTGTCATGCATTAACTGGCA -ATCATTTAACATATGGAACAGATGATTATCCGGGGTGGTGGCGAGAAATTATTGATGGGGGATATGTGCC -TATTCATGACTATCAATTTTTAACATTTGATGTTATTGGTAGTCCTTTCGGTTCAAGTTCACCTTTAAAC -GACCCTCATTTTCCTAAAAAATTAACATTAAGAGATATTGTTAGAGCGAATGAACGAGGTATACAAGCGC -TTGGTTATGACAAAATTAATATTTTAATAGGGGGAAGTCTTGGAGGTATGCAAGCAATGGAACTACTTTA -CAATCGACAGTTTGAAGTAGATAAAGCCATTATTCTTGCTGCAACAAGTCGAACATCATCTTATAGTAGA -GCTTTCAATGAAATTGCGCGTCAGGCCATTCATCTTGGTGGTAAGGAAGGTCTAAGTATTGCACGCCAAT -TAGGTTTTTTGACATATCGATCATCGAAAAGTTATGATGAACGTTTCACACCGGATGAAGTAGTCGCATA -CCAGCAACATCAAGGTAATAAATTTAAAGAACGATTCGATTTGAATTGTTATCTGACACTGCTAGATGTA -TTGGATAGTCACAACATTGACCGAGGTCGCACAGACGTAACGCATGTTTTTAAAAATTTAGAAACGAAAG -TCTTAACAATGGGCTTTATAGATGATTTGCTATATCCGGATGATCAAGTTCGTGCTTTAGGTGAACGTTT -TAAATATCATCGTCATTTCTTTGTACCTGATAACGTTGGGCATGATGGATTCCTACTAAACTTTAGTACC -TGGGCACCTAACTTATATCATTTCTTAAATTTAAAGCATTTTAAGCGCAAGTAATAATGTATATATTTTC -AAAGAATGAAGCCACTAAATCACAGTTATCATATTCAAAAACATCTAGAGTACATGAGAGTGGAAATGAA -TTGTAAATCTAAATCAAGCTTGATTGCTATGTAGTGGGATTAAATAATCATGTTGAAAATGAAAGCACAC -AAAAGCGATTTAAATGAGTATGTTAATTACTTATAAAACATGAAAGTTATTATTCAATTAAATGAAATAG -AAGCATACAATCTATAAATTGTTAATTTCCATTAAAGAGGTTAAAATAATAGCTATAGTTAAAAATATGG -GAGTGGCTTATGTGTTTTCAAAAATACAACCTAAAGCAACAATGATTGCAACGATTACGTTGGTATTTGT -CGCTTTAGCTTTATATCTAGTGCCTGGTTTAGGACTAATATTTGCATTATTTGCAACCATACCAGGTATC -GTTTTATGGAATAAATCAATACAATCTTTCGGGATTAGTGCACTTATTACAGTAATTATAACAACTGTTT -TAGGTAATACTTTCGTTTTAAGTGCTATCATATTAGTCTTAATTGCAAGTTTAATTATTGGTCAATTGCT -CAAAGAAAGAACGTCTAAAGAAAGAATATTATACGTAACAACCGTAGCGATGAGCTTAATTTCATTAATC -GCCTTTATGTTACTACAAACATTCGGAAGAATTCCACCATCAGCGAGCATAGTAAAACCTTTCAAGCAAA -CATTACATGAAGCGATTACGATGAGCGGTGCCGATGCGAATATGACCCAAATATTAGAAGAAGGGTTTAG -ACAAGCGACCGTTCAATTACCAGGTTTCATCATTATCATTACATTTTTAATCGTCTTAATTAACTTAATC -GTTACATTTCCGATTTTACGAAAATTTAAAATCGCTACACCTGTATTTAAGCCACTTTTCGCGTGGCAAA -TGAGCGGTATTTTATTATGGATATACATTATTGTTATCATATGTTTATTATTTACAGGTCAACCGAGTGT -GTTCCAGAGCATTCTTTTAAATTTCCAACTTGTGTTATCATTAGTGATGTATATTCAAGGTTTAAGTGTT -ATTCATTTCTTTGGTAAAGCGAAAGGTTTGCCGAATGCAGTAACGATTTTACTATTGGTTATCGGTACAA -TACTGACACCTACGACGCATATTGTAGGACTACTTGGTGTTATCGATTTAAGTTTGAATTTGAAGCGAAT -CATGAAAAATAATTCTAAAAAGTGAATAGAGGTGGAATAATGAATCGGCAGTCCACTAAGAAAGCTTTAC -TAATACCATTTGTCATCATGATCATCACAGCAATTGTTTTAATGGGTGTATGGTTTATCTTTAATAGCCT -TATAGCATTAATTGCATCTATCGTTCTTGTCGTGATGATTATTGTTAGCATCGTTTTATTCAGACAAGCT -TTAATGAAAATGGATAGTTATGTAGATGGTTTGAGTGCTCAAATTTCAACAACAAATAATAAAGCAATCA -AACATTTACCAATTGGTATCATTGTTTTAGATGAAAATGATCACATCGAATGGGTTAACCAATTTATGAC -AGATCATATGGAAGCAAATGTCATTTCTGAATCTGTAAATGAAGTATTTCCAAACATTTTAAAGCAATTA -GATAGAGTGAAATCCGTTGAAATAGAATATAATCAGTATCATTTCCAAGTACGTTATTCTGAGAATGATC -ACTGCCTCTATTTCTTTGATATAACTGAACAAGTACAAACAAATGAACTATATGAAAATTCTAAACCAAT -CATTGCGACATTATTTTTAGACAACTACGATGAGATTACGCAAAATATGAATGATACGCAGCGTTCGGAG -ATCAATTCAATGGTAACGCGTGTCATTAGTCGATGGGCAACTGAGTATAATATATTCTTTAAAAGGTATA -GTTCCGATCAATTCGTAGCCTATTTAAATCAAAAAATATTAGCTGACTTAGAAGAATCTAAATTTGATAT -CTTGAGTCAATTACGTGAAAAAAGTGTTGGTTATCGTGCCCAATTAACATTAAGTATCGGTGTTGGTGAA -GGCACTGAAAATTTAATCGACTTAGATGAATTATCACAATCAGGCCTAGACTTAGCATTAGGACGTGGTG -GTGACCAAGTTGCAATTAAAAGTATTAATGGTAATGTGCGCTTCTATGGCGGTAAGACTGACCCGATGGA -GAAACGTACTCGTGTAAGAGCACGTGTTATCTCACATGCGTTAAAAGACATCCTTGCAGAGGGTGACAAA -GTCATTATCATGGGACATAAACGTCCTGACTTAGATGCAATTGGTGCAGCAATCGGTGTGTCTAGATTTG -CAATGATGAATAATTTAGAAGCATACATCGTATTAAATGAGACTGACATTGATCCAACATTACGACGCGT -GATGAACGAAATTGATAAAAAGCCAGAGTTAAGAGAGCGATTTATTACATCAGATGATGCTTGGGATATG -ATGACATCTAAGACAACCGTAGTGATTGTTGATACGCATAAACCGGAACTGGTTTTAGATGAAAATGTCT -TAAATAAAGCAAACCGTAAAGTTGTTATCGATCATCATAGACGTGGTGAAAGCTTCATCTCTAATCCATT -GTTGATATATATGGAACCATACGCAAGTTCAACAGCAGAACTTGTAACAGAATTACTGGAATATCAACCA -ACAGAACAACGTTTAACGCGTCTTGAATCAACAGTGATGTATGCAGGTATTATTGTAGATACAAGAAACT -TTACATTACGAACAGGATCAAGAACATTCGATGCAGCGAGTTATTTACGTGCACATGGTGCAGATACGAT -TTTAACGCAACATTTCTTAAAAGATGATGTGGATACTTACATTAATCGATCTGAATTAATTCGAACTGTA -AAAGTTGAAGATAATGGCATAGCCATTGCGCATGGTTCAGACGATAAAATTTATCATCCAGTAACAGTTG -CACAAGCAGCAGATGAACTGTTAAGTTTAGAAGGTATTGAAGCATCATATGTTGTTGCGAGACGTGAAGA -TAATCTGATTGGTATATCTGCGCGTTCACTCGGTTCAGTAAATGTCCAGTTAACAATGGAAGCACTTGGT -GGCGGTGGACATTTAACCAATGCTGCAACACAACTTAAAGGTGTGACAGTCGAAGAGGCGATAGCGCAAT -TACAACAAGCAATTACAGAACAATTAAGTAGGAGTGAAGATGCATGAAAGTAATTTTTACACAAGATGTT -AAAGGTAAAGGTAAAAAAGGTGAAGTTAAAGAAGTACCAGTAGGTTATGCAAATAACTTCTTATTGAAAA -AGAATTATGCTGTAGAAGCAACACCAGGTAACCTGAAACAATTAGAGTTACAGAAAAAACGTGCAAAACA -AGAACGCCAACAAGAAATTGAAGATGCTAAAGCATTAAAAGAAACTTTATCAAACATTGAAGTTGAAGTA -TCAGCAAAAACTGGTGAAGGTGGTAAATTGTTTGGATCAGTAAGCACAAAACAAATTGCCGAAGCACTAA -AAGCACAACATGATATTAAAATTGATAAACGTAAAATGGATTTACCAAATGGAATTCATTCCCTAGGATA -TACGAATGTACCTGTTAAATTAGATAAAGAAGTTGAAGGTACAATTCGCGTACACACAGTTGAACAATAA -AGTTGGATTGAAATAAGAGGTGTAACCATTCATGGATAGAATGTATGAGCAAAATCAAATGCCACATAAC -AATGAAGCTGAACAGTCTGTCTTAGGTTCAATTATTATAGATCCAGAATTGATTAATACTACTCAGGAAG -TGTTGCTTCCTGAGTCATTTTATAGGGGTGCCCATCAACATATTTTCCGTGCAATGATGCACTTAAATGA -AGATAATAAAGAAATTGATGTTGTAACATTGATGGATCAATTATCGACGGAAGGTACGTTGAATGAAGCG -GGTGGCCCGCAATATCTTGCAGAGTTATCTACAAATGTACCAACGACGCGAAATGTTCAGTATTATACTG -ATATCGTTTCTAAGCATGCATTAAAACGTAGATTAATTCAAACTGCAGATAGTATTGCCAATGATGGATA -TAATGATGAACTTGAACTAGATGCGATTTTAAGTGATGCAGAACGTCGAATTTTAGAGCTATCATCTTCT -CGTGAAAGCGATGGCTTTAAAGACATTCGAGACGTCTTAGGACAAGTATATGAAACAGCTGAAGAGCTTG -ATCAAAATAGTGGTCAAACACCAGGTATTCCTACAGGATATCGAGATTTAGACCAAATGACAGCAGGGTT -CAACCGAAATGATTTAATTATCCTTGCAGCGCGTCCATCTGTAGGTAAGACTGCGTTCGCACTTAATATT -GCACAAAAAGTTGCAACGCATGAAGATATGTATACAGTTGGTATTTTCTCACTAGAGATGGGTGCTGATC -AGTTAGCCACACGTATGATTTGTAGTTCTGGTAATGTTGACTCAAACCGCTTAAGAACCGGTACTATGAC -TGAGGAAGATTGGAGTCGTTTTACTATAGCGGTAGGTAAATTATCACGTACGAAGATTTTTATTGATGAT -ACACCGGGTATTCGAATTAATGATCTACGTTCTAAATGTCGTCGATTAAAGCAAGAACATGGCTTAGACA -TGATTGTGATTGACTACTTACAGTTGATTCAAGGTAGTGGTTCACGTGCGTCTGATAACAGACAACAGGA -AGTTTCTGAAATCTCTCGTACATTAAAAGCATTAGCCCGTGAATTAGAATGTCCAGTTATCGCATTAAGT -CAGTTATCTCGTGGTGTTGAACAACGACAAGATAAACGTCCAATGATGAGTGATATTCGTGAATCTGGTT -CGATTGAGCAAGATGCCGATATCGTTGCATTCTTATACCGTGATGATTACTATAACCGTGGTGGCGATGA -AGATGATGACGATGATGGTGGTTTCGAGCCGCAAACGAATGATGAAAACGGCGAAATTGAAATCATCATT -GCTAAGCAACGTAATGGTCCAACAGGCACAGTTAAGTTACACTTTATGAAACAATATAATAAATTTACAG -ATATCGATTATGCACATGCTGATATGATGTAAAAAAGTTTTTCCGTACAATAATCATTTTAGTGATAAAA -TTGTACGGTTTTTATTTTGTTCTGAACGGGTTGATATATGTTAAGTTTGTGTATTGGAAGTGATGAATTA -GTGCTGTCAAAGACTCTGTTAAAGGGTTTTGAGGACGTTGAAGACGATTTGTTAAAATGATTTTTCTTTT -AAAAAGGCTGAAAATCAATGTTCGATTTTTATTTGCATTATGGTCTCGATATTGGTAGAATATCAAATGG -TTAAATGAGAAAAACTTGGAGGTGCTCACATGTCATCAATCGTAGTAGTTGGGACACAATGGGGAGACGA -AGGAAAAGGAAAAATAACGGATTTCTTGGCAGAACAGTCAGATGTTATCGCGCGTTTTTCAGGTGGTAAT -AATGCAGGCCATACCATTCAATTTGGCGGAGAAACATATAAATTACATTTAGTACCATCTGGTATCTTTT -ACAAAGACAAATTAGCGGTAATCGGTAACGGAGTCGTTGTTGATCCAGTTGCACTATTGAAAGAATTAGA -CGGATTAAATGAACGTGGCATTCCTACAAGTAATTTACGTATATCTAATCGTGCGCAAGTGATTTTACCA -TATCACTTAGCACAAGATGAATATGAAGAACGTTTACGCGGTGATAATAAGATTGGTACAACTAAAAAAG -GTATCGGTCCAGCATATGTAGACAAAGTTCAACGTATCGGTATTCGTATGGCAGATTTACTTGAAAAAGA -AACATTCGAAAGATTATTAAAATCAAACATTGAATATAAACAAGCATATTTCAAAGGCATGTTTAACGAA -ACATGCCCATCATTTGATGATATCTTTGAAGAATATTATGCAGCAGGTCAACGTCTAAAAGAATTTGTAA -CAGACACATCAAAAATCTTAGACGATGCATTTGTAGCAGATGAAAAGGTACTTTTCGAAGGTGCGCAAGG -TGTAATGTTAGATATCGACCATGGTACATATCCATTCGTTACATCAAGTAATCCAATTGCAGGTAACGTT -ACTGTTGGTACAGGTGTAGGTCCTACATTCGTTTCAAAGGTAATTGGTGTATGTAAAGCTTATACATCAC -GTGTTGGTGATGGTCCATTCCCTACTGAATTATTCGATGAAGATGGACATCATATTAGAGAAGTTGGTCG -TGAATACGGTACAACAACAGGACGTCCACGTCGTGTAGGTTGGTTTGATTCAGTTGTATTACGTCACTCT -CGTCGTGTAAGTGGTATTACAGATTTATCTATTAACTCAATTGATGTTTTAACAGGCCTAGACACAGTGA -AAATCTGTACAGCTTATGAATTAGACGGTAAAGAAATTACTGAGTACCCAGCAAACTTAGATCAATTAAA -ACGTTGTAAACCAATCTTTGAAGAGCTACCAGGTTGGACAGAAGACGTAACAAGTGTGCGTACTTTAGAA -GAATTACCTGAAAATGCACGTAAATATTTAGAGCGTATTTCAGAATTATGTAATGTACAAATTTCTATCT -TCTCAGTTGGTCCAGATAGAGAACAAACAAATCTATTAAAAGAATTGTGGTAAAACTTTATATAAGTCAT -ACACAATGATTATAAATACATGAGCCTTCTATCTTTATTGGTAGGAGGCTTTTGTTATGTTTGCTTCTGT -ATCGATTCGATTATTTAGATAAAAAACACTAACGTAAAGGTGGTATTTGCTAGTCATAATTTAGAAGATT -AGATGATATTTAATGAAAATTAAGATAAAATACTTGAATGTAGGAAGTCTGATGTCGAAAATGACTATTA -AAATAGAGTAGACGTAAGTGTGAATGCAAGTATCTAAAATAGAAAAATTTCAAAAATAGCGTAATTATTA -TAATAAATAGACTGCCAATAAAATGCAATTTTTCACTTATAACATTCTTCAAAAAATAATAGCAAAATTA -TGTAAAAAATATCTTGTCATGGCAAGATTGGCTGTGCTATAATCTATCTTGTGCTTAAGAACGGCTCCTT -GGTCAAGCGGTTAAGACACCGCCCTTTCACGGCGGTAACACGGGTTCGAGTCCCGTAGGAGTCACCATTT -TTTAGGTCTCGTAGTGTAGCGGTTAACACGCCTGCCTGTCACGCAGGAGATCGCGGGTTCGATTCCCGTC -GAGACCGTACAAATGCCTATCCAAGAGGATAGGCATTTTTTGCGTTTAATATTATATTAATAAAAGACAT -ATGGACGAATGATAATCATATTGATTTATCTGTTCGTCCATTTTCTTTATAATGTATAAACTTCTGGTAA -TTCAGTTGCAATGTATTAAAGACAAATATAGAAAACAAATTTTTTAATTAGATTACCATGTGCCTTTATT -AACATACTTTTTCATAGTGATAGACCAAAAGAGCTCACTTAACATAAATATAATAGTATTTATTTTCCTC -ACATCCACACCAATAGGAATCCCGATTTTTTCGCACCTTTAATAATATAAAAATGATTTCGTGGTCATAT -TATAGGGAAAGACTAATCATTATCATAATCCGCCGTGAGAAATTAATAAAAAATATTAATATATAAGTTT -ATATTGGAAAATAGAATTAATAGCTTATAAATGGTAAATTATATAATAGGTTACTATACGTTATAAGACG -GAAAATGCGCACAATAACAAAAATAGTAAGCGACATCCTGTGATTTTTTACACAAACATAAACGATAAAG -AACAAAAAATGATAAAATAATATTAATGATTTAAGAAAAGAGGTTTATGCAAATGGCTAGAAAAGTTGTT -GTAGTTGATGATGAAAAACCGATTGCTGATATTTTAGAATTTAACTTAAAAAAAGAAGGATACGATGTGT -ACTGTGCATACGATGGTAATGATGCAGTCGACTTAATTTATGAAGAAGAACCAGACATCGTATTACTAGA -TATCATGTTACCTGGTCGTGATGGTATGGAAGTATGTCGTGAAGTGCGCAAAAAATACGAAATGCCAATT -ATAATGCTTACTGCTAAAGATTCAGAAATTGATAAAGTGCTTGGTTTAGAACTAGGTGCAGATGACTATG -TAACGAAACCGTTTAGTACGCGTGAATTAATCGCACGTGTGAAAGCGAACTTACGTCGTCATTACTCACA -ACCAGCACAAGACACTGGAAATGTAACGAATGAAATCACAATTAAAGATATTGTGATTTATCCAGACGCA -TATTCTATTAAAAAACGTGGCGAAGATATTGAATTAACACATCGTGAATTTGAATTGTTCCATTATTTGT -CAAAACATATGGGACAAGTAATGACACGTGAACATTTATTACAAACAGTATGGGGCTATGATTACTTTGG -CGATGTACGTACAGTCGATGTAACGATTCGTCGTTTACGTGAAAAGATTGAAGATGATCCGTCACATCCT -GAATATATTGTGACGCGTAGAGGCGTTGGATATTTCCTCCAACAACATGAGTAGAGGTCGAAACGAATGA -AGTGGCTAAAACAACTACAATCCCTTCATACTAAACTTGTAATTGTTTATGTATTACTGATTATCATTGG -TATGCAAATTATCGGGCTGTATTTTACAAATAACCTTGAAAAAGAGCTGCTTGATAATTTTAAGAAGAAT -ATTACGCAGTACGCTAAGCAATTAGAAATTAGTATTGAAAAAGTATATGACGAAAAGGGCTCCGTAAATG -CACAAAAAGATATTCAAAATTTATTAAGTGAGTATGCCAACCGTCAAGAAATTGGAGAAATTCGTTTTAT -AGATAAAGACCAAATTATTATTGCGACGACGAAGCAGTCTAACCGTAGTCTAATCAATCAAAAAGCGAAT -GATAGTTCTGTCCAAAAAGCACTATCACTAGGACAATCAAACGATCATTTAATTTTAAAAGATTATGGCG -GTGGTAAGGACCGTGTCTGGGTATATAATATCCCCGTTAAAGTCGATAAAAAGGTAATTGGTAATATTTA -TATCGAATCAAAAATTAATGACGTTTATAACCAATTAAATAATATAAATCAAATATTCATTGTTGGTACA -GCTATTTCATTATTAATCACAGTCATCCTAGGATTCTTTATAGCGCGAACGATTACCAAACCAATCACCG -ATATGCGTAACCAGACGGTTGAAATGTCCAGAGGTAACTATACGCAACGTGTGAAGATTTATGGTAATGA -TGAAATTGGCGAATTAGCTTTAGCATTTAATAACTTGTCTAAACGTGTACAAGAAGCGCAGGCTAATACT -GAAAGTGAGAAACGTAGACTGGACTCAGTTATCACCCATATGAGTGATGGTATTATTGCAACAGACCGTC -GTGGACGTATTCGTATTGTCAATGATATGGCACTTAAGATGCTTGGTATGGCGAAAGAAGACATCATCGG -ATATTACATGTTAAGTGTATTAAGTCTTGAAGATGAATTTAAACTTGAAGAAATTCAAGAGAATAATGAT -AGTTTCTTATTAGATTTAAATGAAGAAGAAGGTCTAATCGCACGTGTTAACTTTAGTACGATTGTGCAGG -AAACAGGATTTGTAACGGGTTATATCGCTGTGTTACATGACGTGACTGAACAACAACAAGTTGAACGTGA -GCGTCGTGAATTTGTTGCCAATGTATCACATGAGTTACGTACACCTTTAACTTCTATGAATAGTTACATT -GAAGCACTTGAAGAAGGTGCATGGAAAGATGAGGAACTTGCGCCACAATTTTTATCTGTTACCCGTGAAG -AAACAGAACGAATGATTCGACTGGTCAATGACTTGCTACAGTTATCTAAAATGGATAATGAGTCTGATCA -AATCAATAAAGAAATTATCGACTTTAACATGTTCATTAATAAAATTATTAATCGACATGAAATGTCTACG -AAAGATACAACATTTATTCGAGATATTCCGAAAAAGACGATTTTCACAGAATTTGATCCTGATAAAATGA -CGCAAGTATTTGATAATGTCATTACAAATGCGATGAAATATTCTAGAGGCGATAAACGTGTCGAGTTCCA -CGTGAAACAAAATCCACTTTATAATCGAATGACGATTCGTATTAAAGATAATGGCATCGGTATTCCTATC -AATAAAGTCGATAAGATATTCGACCGATTCTATCGTGTAGATAAGGCACGTACGCGTAAAATGGGTGGTA -CTGGATTAGGACTAGCCATTTCGAAAGAGATCGTGGAAGCTCACAATGGTCGTATTTGGGCAAACAGTGT -AGAAGGTCAAGGCACATCTATCTTTATCACACTTCCATGTGAAGTCATTGAAGACGGTGATTGGGATGAA -TAATAAGGAACATATTAAATCTGTCATTTTAGCGCTACTCGTCTTGATGAGTGTCGTATTGACATATATG -GTATGGAACTTTTCGCCTGATATTGCAAATGTCGACAATACAGATAGTAAGAAGAGTGAAACGAAACCTT -TAACGACACCTATGACAGCCAAAATGGATACAACTATTACGCCATTTCAGATTATTCATTCGAAAAATGA -TCATCCAGAAGGTACGATTGCGACGGTATCTAATGTAAATAAGCTGACGAAACCTTTAAAAAATAAAGAA -GTGAAGTCCGTGGAACATGTTCGTCGTGATCATAACTTGATGATTCCTGATTTGAGCAGTGATTTTACAT -TATTCGATTTTACGTATGATTTACCGTTATCAACATATCTTGGCCAAGTACTGAACATGAATGCGAAAGT -ACCAAATCATTTCAATTTCAATCGTTTGGTCATAGATCATGATGCTGATGATAATATCGTGCTTTATGCT -ATAAGCAAAGATCGCCACGATTACGTAAAATTAACAACTACAACGAAAAATGATCATTTTTTAGATGCAT -TAGCAACAGTGAAAAAAGATATGCAACCATACACAGATATCATCACAAACAAAGATACAATTGATCGTAC -GACGCATGTTTTTGCACCAAGTAAACCTGAAAAGTTAAAAACATATCGCATGGTATTTAACACGATTAGT -GTTGAGAAAATGAATGCTATACTATTTGACGATTCAACCATCGTTCGTAGTTCAAAGAGTGGTGTTACAA -CTTACAACAATAATACAGGTGTCGCAAACTATAACGATAAAAATGAAAAATACCATTATAAAAACTTGTC -CGAAGATGAAGCAAGTTCAAGCAAAATGGAAGAAACGATTCCAGGAACCTTTGATTTTATTAATGGTCAT -GGTGGTTTCTTAAACGAAGACTTCAGATTGTTTAGTACGAATAATCAGTCAGGCGAGCTAACATATCAAC -GTTTCCTTAATGGTTATCCAACGTTTAATAAAGAAGGCGCTAATCAAATTCAAGTCACTTGGGGTGAAAA -GGGCGTCTTTGATTATCGTCGTTCGTTACTGCGCACCGATGTTGTGTTAAATAGTGAGGATAATAAATCG -TTGCCGAAATTAGAGTCTGTACGTTCAAGCTTAGCGAACAATAGTGATATTAATTTTGAAAAAGTAACAA -ACATCGCTATCGGTTACGAAATGCAAGATAATCCGGATCATAATCACATTGAAGTGCAGATTAACAGTGA -ACTCGTACCGCGTTGGTATGTAGAATATGATGGCGAATGGTATGTTTATAACGATGGGAGGCTTGAATAA -ATGAACTGGAAACTGACGAAGACACTTTTCATTTTCGTGTTTATTCTTGTCAACATCGTATTAGTATCGA -TTTATGTTAATAAAGTCAATCGCTCACACATTAATGAAGTTGAGAGTAACAATGAAGTTAATTTTCAACA -AGAAGAAATCAAAGTACCGGCTAGTATTTTAAATAAATCAGTTAAAGGCATACAATTAGAACAAATTACG -GGGCGTTCAAAAGACTTTAGTTCTAAAGCTAAGGGCGATTCGGATTTGACCACATCAGATGGTGGAAAAT -TATTAAATGCAAACATTAGCCAATCGGTAAAGGTCAGTGACAATAACTTAAAAGATTTGAAAGATTATGT -TAACAAACGTGTGTTCAAAGGTTCAGAATATCAATTAAGTGAGATTAGTTCTGGTTCTGTAAAATACGAA -CAAACGTATGATAATTTCCCGATTTTGAATAATAGTAAAGCGATGTTGAACTTTAATATAGAAGATAATA -AAGCGACTAGTTATAAACAATCAATGATGGATGACATTAAGCCCACAGATGGTGCAGATAAGAAGCATCA -AGTGATTGGTGTGAGAAAAGCAATCGAGGCATTATATTATAATCGTTACTTGAAAAAAGGTGATGAAGTC -ATTAATGCTAGACTCGGTTACTACTCAGTCGTGAACGAAACGAATGTTCAATTGTTACAACCAAACTGGG -AAATTAAAGTGAAGCATGACGGTAAGGATAAAACGAATACTTACTATGTTGAAGCGACAAATAATAGCCC -TAAAATTATTAATCATTAATATGAATCGTAATAAGCTAGCATTGCAAGCTCATCATATGTGAGAAGCGGT -GCTAGCTTTTTGCTGGTATGGTTTATTATGGCTGACGTTTTTGCGTCCTAACATGCGCATTTATTCATAT -ATTAAGTAGAACCGCATTGTAAAATTAACGTAACTGCTATTTTAAAAACTTTAGTATTTGTCTAATCATT -GTTATAATAATTAGGACATTCATTGCACGTGATTATCAAAATTTAATTATAAGAGACCGGTCGATGAACT -AAAGTTACAGAATAGGAAAGGTATACAAAACAGCTAATATACTGATAGTTTCTGTAGGGAAAATCGTATA -TTTGCACTGATGTATATTGCAGTCATATAGAGAGATTGACTGCTTAAATAGAAAGGATGAGCCGCTTGAT -ACGCATGAGTGTATTAGCAAGTGGTAGTACAGGTAACGCCACTTTTGTAGAAAATGAAAAAGGTAGTCTA -TTAGTTGATGTTGGTTTGACTGGCAAGAAAATGGAAGAATTGTTTAGTCAAATTGACCGTAATATTCAAG -ATTTAAATGGTATTTTAGTAACCCATGAACATATTGATCATATTAAAGGATTAGGTGTTTTGGCGCGTAA -ATATCAATTGCCAATTTATGCGAATGAAAAGACTTGGCAGGCAATTGAAAAGAAAGATAGTCGCATCCCT -ATGGATCAGAAATTCATTTTTAATCCTTATGAAACGAAATCTATTGCAGGTTTCGATGTTGAATCGTTTA -ACGTGTCACATGATGCGATAGATCCGCAATTTTATATTTTCCATAATAACTATAAGAAGTTTACGATTTT -AACGGATACGGGTTACGTGTCTGATCGTATGAAAGGTATGATACGTGGCAGCGATGCGTTTATTTTTGAA -AGTAATCATGACGTCGATATGTTGAGAATGTGTCGTTATCCATGGAAGACGAAACAACGTATTTTAGGCG -ATATGGGTCATGTATCTAATGAGGATGCGGGTCATGCGATGACAGACGTGATTACAGGTAACACGAAACG -TATTTACCTATCGCATTTATCACAAGATAATAACATGAAAGATTTGGCGCGTATGAGTGTTGGCCAAGTA -TTGAACGAACACGATATTGATACGGAAAAAGAAGTATTGCTATGTGATACGGATAAAGCTATTCCAACGC -CAATATATACAATATAAATGAGAGTCACCCGATAAAGTTCCGCACTGCTGTGAAACGACTTTATCGGGTG -TTTTTTTATGTTGTTGGTGGGAAATGGCTGTTGTTGAGATTAAGGTTCTAGTTGAAACGCAAAAAATAAT -TCGATATTAAATGTAATTTATAAATAATTTACATAAAATCAATCATTTTAATATAAGGATTATGATAATA -TATTGGTGTATGACAGTTAATGGAGGGAACGAAATGAAAGCTTTATTACTTAAAACAAGTGTATGGCTCG -TTTTGCTTTTTAGTGCAATGGGATTATGGCAAGTCTCGAGCGCGGCTGAGCAACATACACCAATGAAAGC -ACATGCAGTAACAACGATAGACAAAGCAACAACAGATAAGCAACAAGTACCGCCAACAAAGGAAGCGGCT -CATCATTATGGTGAAGAAGCGGCAACCAACGTATCAGCATCAGCACAGGGAACAGCTGATGATACAAACA -ACAAAGTAACATCCAACGCACCATCTAACAAACCATCTACAGCAGTTTCAACAACAGTAAACGAAACGCG -CGATGTAGATACACAACAAGCCTCAACACAAAAACCAACTCGCACAGCAACATTCAAATTATCAAATGCT -AAAACAGCATCACTTTCACCACGAATGTTTGCTACCAATGTACCACAAACAACAACACATAAAATATTAC -ATACAAATGATATCCATGGCCGACTAGCCGAAGAAAAAGGGCGTGTCATCGGTATGGCTAAATTAAAAAC -AGTAAAAGAACAAGAAAAGCCTGATTTAATGTTAGACGCAGGAGACGCCTTCCAAGGTTTACCACTTTCA -AACCAGTCTAAAGGTGAAGAAATGGCTAAAGCGATGAATGCAGTAGGTTATGATGCTATGGCAGTCGGTA -ACCACGAATTTGACTTTGGATACGACCAGTTGAAAAAGTTAGAGGGTATGTTAGACTTCCCGATGTTAAG -TACTAACGTTTATAAAGATGGAAAACGCGCATTTAAACCTTCAACGATTGTAACGAAAAATGGTATTCGT -TATGGAATTATTGGCGTAACGACACCAGAAACAAAGACGAAAACAAGGCCTGAAGGCATTAAAGGTGTTG -AATTTAGAGATCCATTACAAAGTGTGACAGCAGAAATGATGCGTATTTATAAAGACGTAGATACATTTGT -TGTTATATCTCATTTAGGTATTGATCCTTCAACACAAGAAACATGGCGTGGCGATTACTTAGTGAAACAA -TTAAGTCAAAATCCACAATTGAAGAAACGTATTACAGTCATTGATGGTCATTCACATACCGTACTTCAAA -ATGGTCAAATTTATAACAATGATGCATTAGCACAAACAGGTACAGCACTTGCGAATATCGGTAAGATTAC -ATTTAATTACCGCAATGGAGAGGTATCAAATATTAAACCATCATTTATTAATGTTAAAGACGTTGAAAAT -GTAACACCGAACAAAGCATTAGCTGAACAAATTAATCAAGCTGATCAAACATTTAGAGCACAAACAGCAG -AGGTTATTATTCCAAATAATACGATTGATTTCAAAGGAGAAAGAGATGACGTTAGAACGCGTGAAACAAA -TTTAGGAAACGCGATTGCAGATGCTATGGAAGCATATGGCGTTAAGAATTTCTCTAAAAAGACTGACTTT -GCCGTGACAAATGGTGGAGGTATTCGTGCCTCTATCGCAAAAGGTAAGGTGACACGCTATGATTTAATTT -CAGTATTACCATTTGGAAATACGATTGCGCAAATTGATGTAAAAGGTTCAGACGTCTGGACGGCTTTTGA -ACATAGTTTAGGCGCACCAACAACACAAAAAGATGGTAAGACAGTATTAACAGCGAATGGCGGTTTACTA -CATATCTCTGATTCAATCCGTGTTTACTATGATATGAATAAACCGTCTGGCAAACGAATTAATGCTATTC -AAATTTTAAATAAAGAGACAGGTAAGTTTGAAAATATTGATTTAAAACGTGTATATCACGTAACGATGAA -TGACTTCACAGCATCAGGTGGCGACGGATATAGTATGTTCGGTGGCCCTAGAGAAGAAGGTATTTCATTA -GATCAAGTACTAGCAAGTTATTTAAAAACAGCTAACTTAGCTAAGTATGATACGACAGAACCACAACGTA -TGTTATTAGGTAAACCAGCAGTAAGTGAACAACCAGCTAAAGGACAACAAAGTAGCAAAGGTAGTGAGTC -TGGTAAAGATGCACAACCAATTGGTAAAGACAAAGTGATGGATCCAGCGAAACAACCAGCGCCAAGTAAA -GTTGTATTGTTGCCAGCGCATAGAGGAACTGTTAGTAGTGGTAGAGAAGGTTCTGATCGCGCATTGGAAG -GAACTGCTGTATCAAGTAAGAGCGGGAAACAATTGGCTAGCATGTCAGCGCCTAAAGGTAGCACACATGA -GAAGCAGTTACCAAAAACTGGAACTGATCAAAGTTCAAGCCCAGCAGCGATGTTTGTATTAGTAGCAGGT -ATAGGTTTAATTGCGACTGTACGACGTAGAAAAGCTAGCTAAAATATATTGAAAACAATACTACTGTATT -TCTTAAACAAGAGGTACGGTAGTGTTTTTTTATGAAAAAAAGCTATAACCGTTGATAAATATGGGATATA -AAAACGGGGATAAGTAATAAGACATCAAGGTATTTATCCACAGAAATGGGGATAGTTATCCAGAATTGTG -TACAATTTAAAGAGAAATACCCACAATGCCCACAGAGTTATCCACAAATACACAGGTTATACACTAAAAA -TTGGGCATGAATGTCAGAAAAATATCAAAAACTGCAAAGAATATTGGTATAATAAGAGGGAACAGTGTGA -ACAAGTTAATAACTTGTGGATAACTGGAAAGTTGATAACAATTTGGAGGACCAAACGACATGAAAATCAC -CATTTTAGCTGTAGGGAAACTAAAAGAGAAATATTGGAAGCAAGCCATAGCAGAATATGAAAAACGTTTA -GGCCCATACACCAAGATAGACATCATAGAAGTTCCAGACGAAAAAGCACCAGAAAATATGAGCGACAAAG -AAATTGAGCAAGTAAAAGAAAAAGAAGGCCAACGAATACTAGCCAAAATCAAACCACAATCAACAGTCAT -TACATTAGAAATACAAGGAAAGATGCTATCTTCCGAAGGATTGGCCCAAGAATTGAACCAACGCATGACC -CAAGGGCAAAGCGACTTTGTATTCGTCATTGGCGGATCAAACGGCCTGCACAAGGACGTCTTACAACGCA -GTAACTACGCACTATCATTCAGCAAAATGACATTCCCACATCAAATGATGCGGGTTGTGTTAATTGAACA -AGTGTACAGAGCATTTAAGATTATGCGTGGAGAAGCATATCATAAATGATGCGGTTTTTTCAGCCGCTTC -ATAAAGGGATTTTGAATGTATCAGAACATATGAGGTTTATGTGAATTGCTGTTATGTTTTTAAGAAGCTT -ATCATAAGTAATGAGGTTCATGATTTTTGACATAGTTAGCCTCCGCAGTCTTTCATTTCAAGTAAATAAT -AGCGAAATATTCTTTATACTGAATACTTATAGTGAAGCAAAGTTCTAGCTTTGAGAAAATTCTTTCTGCA -ACTAAATATAGTAAATTACGGTAAAATATAAATAAGTACATATTGAAGAAAATGAGACATAATATATTTT -ATAATAGGAGGGAATTTCAAATGATAGACAACTTTATGCAGGTCCTTAAATTAATTAAAGAGAAACGTAC -CAATAATGTAGTTAAAAAATCTGATTGGGATAAAGGTGATCTATATAAAACTTTAGTCCATGATAAGTTA -CCCAAGCAGTTAAAAGTGCATATAAAAGAAGATAAATATTCAGTTGTAGGGAAGGTTGCTACTGGGAACT -ATAGTAAAGTTCCTTGGATTTCAATATATGATGAGAATATAACAAAAGAAACAAAGGATGGATATTATTT -GGTATATCTTTTTCATCCGGAAGGAGAAGGCATATACTTATCTTTGAATCAAGGATGGTCAAAGATAAGT -GATATGTTTCCGCGGGATAAAAATGCTGCAAAACAAAGAGCATTAACTTTATCTTCCGAACTCAATAAAT -ATATTACATCAAATGAATTTAATACTGGAAGATTTTATTACGCAGAAAATAAAGATTCATCTTATGATTT -AAAAAATGATTATCCATCAGGATATTCTCATGGATCAATAAGATTCAAATATTATGATTTGAATGAAGGA -TTCACAGAAGAAGATATGCTAGAGGATTTAAAGAAATTTTTAGAACTATTTAATGAATTAGCTTCAAAAG -TTACAAAAACATCCTATGATAGCTTGGTCAATAGCATAGACGAAATACAGGAAGACAGCGAAATTGAAGA -AATTAGAACAGCACAAAAAGATAAGACACTCAAGGAAGTGGAAGCACCTAAAGGAATAATTCCAAAATAT -AAAAAAGGTGTATCAAAGACTACTAAAAATGATTCAGAAATTGAAAAATCAAATAAAGAGAATAAATTAA -CCGGTAAAGTTGGAGAAAAATTAGCGCTAAATTACTTTAATGAGCTAATTGATAATAAAATAGACGAAGA -TAAGAAAGAACAGTTTAGGAATATTTTAAATGATAATCCAGGCTCTCAACACGGTCATGGCTATGATTTA -GTAGCTTTTGATCCAACAAATACAGATAAAGCTGTAGAAAAATTTATTGAAATTAAAACATCTACATCTT -CTAGTATTGAGGAACCATTTTTTATGTCGCTAAATGAAATGTTTGCTATGAAAGAATATAAGCAGAAATA -TTTAATATTAAGAATATTTAATGTTTCCGGTAAAGAACCACAATTTTATTTTATAGATCCATATGCAAAT -TATTCTGAATTTAAAGATGTAGATGATCTCATTGACAAAGTATTTAATGTAGAAGCTATTCAGTATAAAG -TTTTTGGCGAAAAATGATTACTTGAACAAGAGCTAAAATAAAATTGTGATCTAATAAAAATAGAAACTGT -AATTTAAATAAAACTTTCTAAATAAGCTAACTGATAAAAAATCAGTTTGTCCACAGTCTGAAACAAGATT -CCTATATTCTTTAGGAATCTTGTTTTTTCTATTTTTATGGTGATAAAGAGCAGATAAGATAATGTGTAAT -AATCACAAAAAAGTTAAATATTTTAAGGCTTGTTTAATTATTAATGATTTTATATATAAAGAGCAGTATA -ATAAAGTTGTTAATATATTATGAATAATATTCAAGTAATTTTATTGTTTTTTAATTTGTCGATATTTAAG -TTGAGTTAAATTTAAAGGGTGTAATTTGTTTTACAATGATGAAGATAATTAGTCTATCAAAATAAAGGGG -TTGGGACTGTTATGAGTGATAATTTGTCATTATTCATTGACTATATCAATGATAATATAATCTATGGTAG -TGAAATCAAACGGGAGAAATTAGAGAATTTATTTAATCAATTTGCTATAAAAAATGTTGAAAAGAACATT -GTCTATGATGAACTGAAATCTTTAGATATTACAATCATTGAGTCACAGGATTCATATAAAAATAAATTGA -AGAGATTATTTTCGGTTCTGTTGCAAAGTAAAAAAATATAGCTAACCACTAATTTATCATGTCAGTGTTC -GCTTAACTTGCTAGCATGATGCTAATTTCGTGGCATGGCGAAAATCCGTAGATCTGAAGAGACCTGCGGT -TCTTTTTATATAGAGCGTAAATACATTCAATACCTTTTAAAGTATTCTTTGCTGTATTGATACTTTGATA -CCTTGTCTTTCTTACTTTAATATGACGGTGATCTTGCTCAATGAGGTTATTCAGATATTTCGATGTACAA -TGACAGTCAGGTTTAAGTTTAAAAGCTTTAATTACTTTAGCCATTGCTACCTTCGTTGAAGGTGCCTGAT -CTGTAATTACCTTTTGAGGTTTACCAAATTGTTTAATGAGACGTTTGATAAACGCATATGCTGAATGATT -ATCTCGTTGCTTACGCAACCAAATATCTAATGTATGTCCCTCTGCATCAATGGCACGATATAAATAGCTC -CATTTTCCTTTTATTTTGATGTACGTCTCATCAATACGCCATTTGTAATAAGCTTTTTTATGCTTTTTCT -TCCAAATTTGATACAAAATTGGGGCATATTCTTGAACCCAACGGTAGACCGTTGAATGATGAACGTTTAC -ACCACGTTCCCTTAATATTTCAGATATATCACGATAACTCAATGTATATCTTAGATAGTAGCCAACGGCT -ACAGTGATAACATCCTTGTTAAATTGTTTATATCTGAAATAGTTCATACAGAAGACTCCTTTTTGTTAAA -ATTATACTATAAATTCAACTTTGCAACAGAACCATCTAATCTTCAACAAACTGGCCCGTTTGTTGAACTA -CTCTTTAATAAAATAATTTTTCCGTTCCCAATTCCACATTGCAATAATAGAAAATCCATCTTCATCGGCT -TTTTCGTCATCATCTGTATGAATCAAATCGCCTTCTTCTGTGTCATCAAGGTTTAATTTTTTATGTATTT -CTTTTAACAAACCACCATAGGAGATTAACCTTTTACGGTGTAAACCTTCCTCCAAATCAGACAAACGTTA -CAAATTCTTTTCTTCATCATCGGTCATAAAATCCGTATCCTTTACAGGATATTTTGCAGTTTCGTCAATT -GCCGATTGTATATCCGATTTATATTTATTTTTCGGTCGAATCATTTGAACTTTTACATTTGGATCATAGT -CTAATTTCATTGCCTTTTTCCAAAATTGAATCCATTGTTTTTGATTCACGTAGTTTTCTGTATTCTTAAA -ATAAGTTGGTTCCACACATACCAATACATGCATGTGCTGATTATAAGAATTATCTTTATTATTTATTGTC -ACTTCCGTTGCACGCATAAAACCAACAAGATTTTTATTAATTTTTTTATATTGCATCATTCGGCGAAATC -CTTGAGCCATATCTGACAAACTCTTATTTAATTCTTCGCCATCATAAACATTTTTAACTGTTAATGTGAG -AAACAACCAACGAACTGTTGGCTTTTGTTTAATAACTTCAGCAACAACCTTTTGTGACTGAATGCCATGT -TTCATTGCTCTCCTCCAGTTGCACATTGGACAAAGCCTGGATTTACAAAACCACACTCGATACAACTTTC -TTTCGCCTGTTTCACGATTTTGTTTATACTCTAATATTTCAGCACAATCTTTTACTCTTTCAGCCTTTTT -AAATTCAAGAATATGCAGAAGTTCAAAGTAATCAACATTAGCGATTTTCTTTTCTCTCCATGGTCTCACT -TTTCCACTTTTTGTCTTGTCCACTAAAACCCTTGATTTTTCATCTGAATAAATGCTACTATTAGGACACA -TAATATTAAAAGAAACCCCCATCTATTTAGTTATTTGTTTAGTCACTTATAACTTTAACAGATGGGGTTT -TTCTGTGCAACCAATTTTAAGGGTTTTCAATACTTTAAAACACATACATACCAACACTTCAACGCACCTT -TCAGCAACTAAAATAAAAATGACGTTATTTCTATATGTATCAAGATAAGAAAGAACAAGTTCAAAACCAT -CAAAAAAAGACACCTTTTCAGGTGCTTTTTTTATTTTATAAACTCATTCCCTGATCTCGACTTCGTTCTT -TTTTTACCTCTCGGTTATGAGTTAGTTCAAATTCGTTCTTTTTAGGTTCTAAATCGTGTTTTTCTTGGAA -TTGTGCTGTTTTATCCTTTACCTTGTCTACAAACCCCTTAAAAACGTTTTTAAAGGCTTTTAAGCCGTCT -GTACGTTCCTTAAGGAATTCCTTAGTGCTTTCATAGATTAAACTCACATCACGCTTTAAATCGCTTATTT -TAGACTTTAAAGACTTGTTTTCTTCAAGCAACTCATTATAATCATTTACATTTTCATTAAATCGCTCTAC -AAGACCACTATATTTTTCTTTAACTTGCCCATGTTCTTTACTTAATTTTTTATATTCTCTCGCCATATCA -GTACTCATGAGATTTCTAACATGCTGTTTTAACCTATCGTTATCTCTCGCAGCAGTCACTAAGTTTTTAT -AATCACGCTCCGATATAACAACATTTTTGGTTGGTTTCTTTTCTGTTTTCATTATTTCTTTTCCCAAACC -AAACATAGACTTTTCACCCGTTGGCACTTCAACACTTTTCATGTGTCGTTTCGCTGGTACTTCTAAATCT -GATTTAACTTTATCGCTATAAGCAGTCCATTCATCTTTTTTAACTGCTAAATTTTTTTCTAGAAAATCAA -TCTCTTTTTCCAAAGTTTGTTTTTTAAATTTAGCTGTCTCAATATGTTTACGGTCAGAGCCACGTTCACC -ACGCTTCAACTCAAAACCCTGTTTTTTCATATGCTCGGGGAATTTATCTTGTAGCCATAACAGTTCTTGA -CGATTAAACACATTTTTTCCTTGCAGTTTTCCATCACGCATAGGCACAACACCTAAATGCATGTGAGGGG -TTTGCTCATCATTATGAACTGTTGCATAAGCAATATTTTGCTTGCCATATCGTTCGGAAAATAATTTATA -ACTTTCCTCAAAAAATCGTTTTTGTTCTCCTGGATCCAGTTGCTCAAAAAAATCTCGGTCAGATGTTACT -AGCAACTCATTTACAAGAACAGCATCTTTCCTCGTTTTTCTTGTACCTGTTTTTTGTGATTCAATAATTT -CTTTGACACGTTCGTTGTAATCAATATTTTTATCATTTTTCAAATCATAATTTTCACGTGTTCGCTCATG -GTCAATATCATCATTCGTTCTACTTTTTCGCTCTCTTTGATTATGAAATTGCATGCCTTTTAGTCCAGCT -GATTTCACTTTTTGCATTCTACAAACTGCATAACTCATATGTAAATCGCTCCTTTTTAGGTGGCACAAAT -GTGAGGCATTTTCGCTCTTTCCGGCAACCACTTCCAAGTAAAGTATAACACATTATACTTTATATTCATA -AAGTGTGTGCTCTGCGAGGCTGTCGGCAGTGCCGACCAAAACCATAAAACCTTTAAGACCTTTCTTTTTT -TTACGAGAAAAAAGAAACAAAAAAACCTGCCCTCTGCCACCTCAGCAAAGGGGGGTTTTGCTCTCGTGCT -CGTTTAAAAATCAGCAAGGGACAGGTAGTATTTTTTGAGAAGATCACTCAAAAAATCTCCACCTTTAAAC -CCTTGCCAATTTTTATTTTGTCCGTTTTGTCTAGCTTACCGAAAGCCAGACTCAGCAAGAATAAAATTTT -TATTGTCTTTCGGTTTTCTAGTGTAACGGACAAAACCACTCAAAATAAAAAAGATACAAGAGAGGTCTCT -CGTATCTTTTATTCAGCAATCGCGCCCGATTGCTGAACAGATTAATAATAGATTTTAGCTTTTTATTTGT -TGAAAAAAGCTAATCAAATTGTTGTCGGGATCAATTACTGCAAAGTCTCGTTCATCCCACCACTGATCTT -TTAATGATGTATTGGGGTGCAAAATGCCCAAAGGCTTAATATGTTGATATAATTCATCAATTCCCTCTAC -TTCAATGCGGCAACTAGCAGTACCAGCAATAAACGACTCCGCACCTGTACAAACCGGTGAATCATTACTA -CGAGAGCGCCAGCCTTCATCACTTGCCTCCCATAGATGAATCCGAACCTCATTACACATTAGAACTGCGA -ATCCATCTTCATGGTGAACCAAAGTGAAACCTAGTTTATCGCAATAAAAACCTATACTCTTTTTAATATC -CCCGACTGGCAATGCCGGGATAGACTGTAACATTCTCACGCATAAAATCCCCTTTCATTTTCTAATGTAA -ATCTATTACCTTATTATTAATTCAATTCGCTCATAATTAATCCTTTTTCTTATTACGCAAAATGGCCCGA -TTTAAGCACACCCTTTATTCCGTTAATGCGCCATGACAGCCATGATAATTACTAATACTAGGAGAAGTTA -ATAAATACGTAACCAACATGATTAACAATTATTAGAGGTCATCGTTCAAAATGGTATGCGTTTTGACACA -TCCACTATATATCCGTGTCGTTCTGTCCACTCCTGAATCCCATTCCAGAAATTCTCTAGCGATTCCAGAA -GTTTCTCAGAGTCGGAAAGTTGACCAGACATTACGAACTGGCACAGATGGTCATAACCTGAAGGAAGATC -TGATTGCTTAACTGCTTCAGTTAAGACCGAAGCGCTCGTCGTATAACAGATGCGATGATGCAGACCAATC -AACATGGCACCTGCCATTGCTACCTGTACAGTCAAGGATGGTAGAAATGTTGTCGGTCCTTGCACACGAA -TATTACGCCATTTGCCTGCATATTCAAACAGCTCTTCTACGATAAGGGCACAAATCGCATCGTGGAACGT -TTGGGCTTCTACCGATTTAGCAGTTTGATACACTTTCTCTAAGTATCCACCTGAATCATAAATCGGCAAA -ATAGAGAAAAATTGACCATGTGTAAGCGGCCAATCTGATTCCACCTGAGATGCATAATCTAGTAGAATCT -CTTCGCTATCAAAATTCACTTCCACCTTCCACTCACCGGTTGTCCATTCATGGCTGAACTCTGCTTCCTC -TGTTGACATGACACACATCATCTCAATATCCGAATAGGGCCCATCAGTCTGACGACCAAGAGAGCCATAA -ACACCAATAGCCTTAACATCATCCCCATATTTATCCAATATTCGTTCCTTAATTTCATGAACAATCTTCA -TTCTTTCTTCTCTAGTCATTATTATTGGTCCATTCACTATTCTCATTCCCTTTTCAGATAATTTTAGATT -TGCTTTTCTAAATAAGAATATTTGGAGAGCACCGTTCTTATTCAGCTATTAATAACTCGTCTTCCTAAGC -ATCCTTCAATCCTTTTAATAACAATTATAGCATCTAATCGGTTCTGTTGCAAAGTAAAAAAATATAGCTA -ACCACTAATTTATCATGTCAGTGTTCGCTTAACTTGCTAGCATGATGCTAATTTCGTGGCATGGCGAAAA -TCCGTAGATCTGAAGAGACCTGCGGTTCTTTTTATATAGAGCGTAAATACATTCAATACCTTTTAAAGTA -TTCTTTGCTGTATTGATACTTTGATACCTTGTCTTTCTTACTTTAATATGACGGTGATCTTGCTCAATGA -GGTTATTCAGATATTTCGATGTACAATGACAGTCAGGTTTAAGTTTAAAAGCTTTAATTACTTTAGCCAT -TGCTACCTTCGTTGAAGGTGCCTGATCTGTAATTACCTTTTGAGGTTTACCAAATTGTTTAATGAGACGT -TTGATAAACGCATATGCTGAATGATTATCTCGTTGCTTACGCAACCAAATATCTAATGTATGTCCCTCTG -CATCAATGGCACGATATAAATAGCTCCATTTTCCTTTTATTTTGATGTACGTCTCATCAATACGCCATTT -GTAATAAGCTTTTTTATGCTTTTTCTTCCAAATTTGATACAAAATTGGGGCATATTCTTGAACCCAACGG -TAGACCGTTGAATGATGAACGTTTACACCACGTTCCCTTAATATTTCAGATATATCACGATAACTCAATG -TATATCTTAGATAGTAGCCAACGGCTACAGTGATAACATCCTTGTTAAATTGTTTATATCTGAAATAGTT -CATACAGAAGACTCCTTTTTGTTAAAATTATACTATAAATTCAACTTTGCAACAGAACCGTATTATGGAA -TAGAGATGTTGGTAACATTTATACAGGATCATTATACTTAAGTTTAATTTCGTTATTACAGAACCACACA -TTCCAACCAGAAGAGAAAGTATGTCTATTTAGTTATGGTTCAGGAGCAGTAGGAGAAATCTTTAGTGGTT -CAATCGTTAAAGGATATGACAAAGCATTAGATAAAGAGAAACACTTAAATATGCTAGAATCTAGAGAGCA -ATTATCAGTCGAAGAATACGAAACATTCTTTAACAGATTTGATAATCAAGAATTTGATTTCGAACGTGAA -TTGACACAAGATCCATATTCAAAAGTATACTTATACAGTATAGAAGACCATATCAGAACATATAAGATAG -AGAAATAAACTAGTGGCCGATTGTGCTTGATGAGCTTGGGACATAAATCCTAACTCGAAATAAATAAGCA -TATCACTAAACTGATTTTTTAAAGTTTACAGTGATATGCTTATTTTTTTATCTTACGATTTTGTACGTGC -ATGCTTGCCTAGGGGTATGGCTCGAGCCATTAGTCTCTCGCACATACTATTCCCTCAGGCGTCAGCACTT -ACAAAATCGGTTGTAATTTTCATTTTTATACGCATTCTTACTGAGATTATACTAATAAGAGGAATAGTAA -AAGCAATTCTAAGTAAAATTGCAGATAAGAGGTAAGTTAAAAGCAGTTCTAAGTAAAATTGCAGATAAGA -GGTTTGTTAAAAGCAGTTCTAAGTAAAATTGCAGATAAGAGGTTTGTTAAAAGCAGTTCTCAGTAAAATT -ACAGATAAGAGGTACGTTAAAAGCAGTTCTAAGTAAAATTGCAGATAAGAGGTAAGTTAAAAGCAATCCT -AAGTAAAATTGCAGATAAGAGGTAAGTTAAAAGCAATCCTAAGTAAAATTGCAGATAAGGGGTACAGAAA -AACTAGACTTGATTACAAAATGGAGCTTGGGACATAAATGATTTTTTAAAAATGAGATGAGACGTAGATT -AACTCCATAATCAATACGAATCTATCGACTTCTTTATTTATGATATTCATCTCTTTTTAATGGAAATAAA -AGTGCGATTAATGTGATAATACAGTTACGTTAATTAAAAAAATAAAAATGCAAGGAGAGGTAATATGCTA -ACTGTATATGGACATAGAGGATTACCTAGTAAAGCTCCGGAAAATACAATTGCATCATTTAAAGCTGCTT -CAGAAGTAGAAGGTATAAACTGGTTGGAGTTAGATGTTGCAATTACAAAAGATGAACAACTGATTATCAT -TCATGATGATTATTTAGAACGGACTACAAATATGTCCGGGGAAATAACTGAATTGAATTATGATGAAATT -AAAGATGCTTCTGCAGGATCTTGGTTTGGTGAAAAATTCAAAGATGAACATTTGCCAACTTTCGATGATG -TAGTAAAAATAGCAAATGAATATAATATGAATTTAAATGTAGAATTAAAAGGTATTACTGGACCGAATGG -ACTAGCACTTTCTAAAAGTATGGTTAAGCAAGTGGAAGAACAATTAACAAACTTAAATCAGAATCAAGAA -GTGCTCATTTCAAGCTTTAATGTTGTGCTTGTTAAACTTGCAGAAGAAATCATGCCACAATATAACAGAG -CAGTTATATTCCATACAACTTCGTTTCGTGAAGACTGGAGAACACTTTTAGATTACTGTAATGCTAAAAT -AGTAAACACTGAAGATGCCAAACTTACTAAAGCAAAAGTAAAAATGGTAAAAGAAGCGGGTTATGAATTG -AACGTATGGACTGTAAACAAACCAGCACGTGCAAACCAACTTGCTAATTGGGGAGTTGATGGTATCTTTA -CAGACAATGCAGATAAAATGGTGCATTTGTCTCAATAGAAAGTTAGAGGTGAGTCTTACGTTTCAGTGAC -GGTAGACTTACCTTTAACATGTTACATACTAAAAAATTAATTTGAATAAGAAAGAGAGACATATATGAAA -TACGATGATTTTATAGTAGGAGAAACATTCAAAACAAAAAGCCTTCATATTACAGAAGAAGAAATTATCC -AATTTGCAACAACTTTTGATCCTCAATATATGCATATAGATAAAGAAAAAGCAGAACAAAGTAGATTTAA -AGGTATCATTGCATCTGGCATGCATACACTTTCAATATCATTTAAATTATGGGTAGAAGAAGGTAAATAC -GGAGAAGAAGTTGTAGCAGGAACACAAATGAATAACGTTAAATTTATTAAACCTGTATACCCAGGTAATA -CATTGTACGTTATCGCTGAAATTACAAATAAGAAATCCATAAAAAAAGAAAATGGACTCGTTACAGTGTC -ACTTTCAACATACAATGAAAATGAAGAAATTGTATTTAAGGGAGAAGTAACAGCACTTATTAATAATTCA -TAATAAAACAGTGAAGCAACCATCGTTACGGATTGCTTCACTGTTTTGTTATTCATCTATATCGTATTTT -TTATTACCGTTCTCATATAGCTCATCATACACTTTACCTGAGATTTTGGCATTGTAGCTAGCCATTCCTT -TATCTTGTACATCTTTAACATTAATAGCCATCATCATGTTTGGATTATCTTTATCATATGATATAAACCA -CCCAATTTGTCTGCCAGTTTCTCCTTGTTTCATTTTGAGTTCTGCAGTACCGGATTTGCCAATTAAGTTT -GCATAAGATCTATAAATATCTTCTTTATGTGTTTTATTTACGACTTGTTGCATACCATCAGTTAATAGAT -TGATATTTTCTTTGGAAATAATATTTTTCTTCCAAACTTTGTTTTTCGTGTCTTTTAATAAGTGAGGTGC -GTTAATATTGCCATTATTTTCTAATGCGCTATAGATTGAAAGGATCTGTACTGGGTTAATCAGTATTTCA -CCTTGTCCGTAACCTGAATCAGCTAATAATATTTCATTATCTAAATTTTTGTTTGAAATTTGAGCATTAT -AAAATGGATAATCACTTGGTATATCTTCACCAACACCTAGTTTTTTCATGCCTTTTTCAAATTTCTTACT -GCCTAATTCGAGTGCTACTCTAGCAAAGAAAATGTTATCTGATGATTCTATTGCTTGTTTTAAGTCGATA -TTACCATTTACCACTTCATATCTTGTAACGTTGTAACCACCCCAAGATTTATCTTTTTGCCAACCTTTAC -CATCGATTTTATAACTTGTTTTATCGTCTAATGTTTTGTTATTTAACCCAATCATTGCTGTTAATATTTT -TTGAGTTGAACCTGGTGAAGTTGTAATCTGGAACTTGTTGAGCAGAGGTTCTTTTTTATCTTCGGTTAAT -TTATTATATTCTTCGTTACTCATGCCATACATAAATGGATAGACGTCATATGAAGGTGTGCTTACAAGTG -CTAATAATTCACCTGTTTGAGGGTGGATAGCAGTACCTGAGCCATAATCATTTTTCATGTTGTTATAAAT -ACTCTTTTGAACTTTAGCATCAATAGTTAGTTGAATATCTTTGCCATCTTTTTTCTTTTTCTCTATTAAT -GTATGTGCGATTGTATTGCTATTATCGTCAACGATTGTGACACGATAGCCATCTTCATGTTGGAGCTTTT -TATCGTAAAGTTTTTCGAGTCCCTTTTTACCAATAACTGCATCATCTTTATAGCCTTTATATTCTTTTTG -TTTTAATTCTTCAGAGTTAATGGGACCAACATAACCTAATAGATGTGAAGTCGCTTTTCCTAGAGGATAG -TTACGACTTTCTGTTTCATTAGTTGTAAGATGAAATTTTTTTGCGAAATCACTTAAATATTCATCCATTT -TTTTAACGGTTTTAAGTGGAACGAAGGTATCATCTTGTACCCAATTTTGATCCATTTGTTGTTTGATATA -GTCTTCAGAAATACTTAGTTCTTTAGCGATTGCTTTATAATCTTTTTTAGATACATTCTTTGGAACGATG -CCTATCTCATATGCTGTTCCTGTATTGGCCAATTCCACATTGTTTCGGTCTAAAATTTTACCACGTTCTG -ATTTTAAATTTTCAATATGTATGCTTTGGTCTTTCTGCATTCCTGGAATAATGACGCTATGATCCCAATC -TAACTTCCACATACCATCTTCTTTAACAAAATTAAATTGAACGTTGCGATCAATGTTACCGTAGTTTGTT -TTAATTTTATATTGAGCATCTACTCGTTTTTTATTTTTAGATACTTTTTTTATTTTACGATCCTGAATGT -TTATATCTTTAACGCCTAAACTATTATATATTTTTATCGGACGTTCAGTCATTTCTACTTCACCATTATC -GCTTTTAGAAATATAACTGCTATCTTTATAAACTTGTTTGAAATTTTTATCTTCAATTGCATCAATAGTA -TTATTAATTTCTTTATCTTTTGAAGCATAAAAATATATACCAAACCCGACAACTACAACTATTAAAATAA -GTGGAACAATTTTTATCTTTTTCATCAATATCCTCCTTATATAAGACTACATTTGTAGTATATTACAAAT -GTAGTATTTATGTCAAAATAATGTTATAATTTTTGTGATATGGAGGTGTAGAAGGTGTTATCATCTTTTT -TAATGTTAAGTATAATCAGTTCATTGCTCACGATATGTGTAATTTTTTTAGTGAGAATGCTCTATATAAA -ATATACTCAAAATATTATGTCACATAAGATTTGGTTATTAGTGCTCGTCTCCACGTTAATTCCATTAATA -CCATTTTACAAAATATCGAATTTTACATTTTCAAAAGATATGATGAATCGAAATGTATCTGACACGACTT -CTTCGGTTAGTCATATGTTAGATGGTCAACAATCATCTGTTACGAAAGACTTAGCAATTAATGTTAATCA -GTTTGAGACCTCAAATATAACGTATATGATTCTTTTGATATGGGTATTTGGTAGTTTGTTGTGCTTATTT -TATATGATTAAGGCATTCCGACAAATTGATGTTATTAAAAGTTCGTCATTGGAATCGTCATATCTTAATG -AACGACTTAAAGTATGTCAAAGTAAGATGCAGTTCTACAAAAAGCATATAACAATTAGTTATAGTTCAAA -CATTGATAATCCGATGGTATTTGGTTTAGTGAAATCCCAAATTGTACTACCAACTGTCGTAGTCGAAACC -ATGAATGACAAAGAAATTGAATATATTATTCTACATGAACTATCACATGTGAAAAGTCATGACTTAATAT -TCAACCAGCTTTATGTTGTTTTTAAAATGATATTCTGGTTTAATCCTGCACTATATATAAGTAAAACAAT -GATGGACAATGACTGTGAAAAAGTATGTGATAGAAACGTTTTAAAAATTTTGAATCGCCATGAACATATA -CGTTATGGTGAATCGATATTAAAATGCTCTATTTTAAAATCTCAGCACATAAATAATGTGGCAGCACAAT -ATTTACTAGGTTTTAATTCAAATATTAAAGAACGTGTTAAGTATATTGCACTTTATGATTCAATGCCTAA -ACCTAATCGAAACAAGCGTATTGTTGCGTATATTGTATGTAGTATATCGCTTTTAATACAAGCACCGTTA -CTATCTGCACATGTTCAACAAGACAAATATGAAACAAATGTATCATATAAAAAATTAAATCAACTAGCTC -CGTATTTCAAAGGATTTGATGGAAGTTTTGTGCTTTATAATGAACGGGAGCAAGCTTATTCTATTTATAA -TGAACCAGAAAGTAAACAACGATATTCACCTAATTCTACTTACAAAATTTATTTAGCGTTAATGGCATTC -GACCAAAATTTACTCTCATTAAATCATACTGAACAACAATGGGATAAACATCAATATCCATTTAAAGAAT -GGAACCAAGATCAAAATTTAAATTCTTCAATGAAATATTCAGTAAATTGGTATTACGAAAATTTAAACAA -ACATTTAAGACAAGATGAGGTTAAATCTTATTTAGATCTAATTGAATATGGTAATGAAGAAATATCAGGG -AATGAAAATTATTGGAATGAATCTTCATTAAAAATTTCTGCAATAGAACAGGTTAATTTGTTGAAAAATA -TGAAACAACATAACATGCATTTTGATAATAAGGCTATTGAAAAAGTTGAAAATAGTATGACTTTGAAACA -AAAAGATACTTATAAATATGTAGGTAAAACTGGAACAGGAATCGTGAATCACAAAGAAGCAAATGGATGG -TTCGTAGGTTATGTTGAAACGAAAGATAATACGTATTATTTTGCTACACATTTAAAAGGCGAAGACAATG -CGAATGGCGAAAAAGCACAACAAATTTCTGAGCGTATTTTAAAAGAAATGGAGTTAATATAATGGATAAT -AAAACGTATGAAATATCATCTGCAGAATGGGAAGTTATGAATATCATTTGGATGAAAAAATATGCAAGTG -CGAATAATATAATAGAAGAAATACAAATGCAAAAGGACTGGAGTCCAAAAACCATTCGTACACTTATAAC -GAGATTGTATAAAAAGGGATTTATAGATCGTAAAAAAGACAATAAAATTTTTCAATATTACTCTCTTGTA -GAAGAAAGTGATATAAAATATAAAACATCTAAAAACTTTATCAATAAAGTATACAAAGGCGGTTTCAATT -CACTTGTCTTAAACTTTGTAGAAAAAGAAGATCTATCACAAGATGAAATAGAATAATTGAGAAATATATT -GAATAAAAAATAAAATTGTTGTGTTTACAACAATACATAGAAAACAGAGGAAACAATCAAGTCGTTGAAT -ATTTCCTCTGTTTTTTAGTTGAAAAAATTAACCGAAAGCCTGAATGCAAGTCTTGATTAAATCAATAATG -CTTGTAATAACACCAGTGAAATCCATATGCATACCCTCTTTCTATTTAAGATACATTAAGTATAATATCA -AACAAATAAAAAATGTTAAAAATTCCCTAATTGGCTATTTAGATTGCATAAATGTCAAAAATTTGAAAAA -CATACAACGACTTTGCATAAAAAATCGTCATATTGGAAATACGTAATTTATTGAAATAATAAAAAAAATA -AAAGAACGAAGATGATAACCTAAGTGAGGTTTTAAGTTGTTCTAAGGTTTAATTTAATTTATGTTAAAAT -AGTTGGTATAAAAATACATGATAAACTATAAACTAAATTCAAAATAACTTATGGGGTAGGCAATTATGGA -AAATAAAATATAAATGATAATGAAAAAAGAGTGCTAAGGGAAATTTATAACCATCATAATATTTCGCGTA -CTCAAATATCTAAAAATCTTGAGATTAATAAGGCAACGATTTCTAGTATTTTGAATAAGTTAAAGTATAA -ATCTCTTGTTAATGAGGTTGGTGAGGGTGATAGCACGAAGAGTGGTGGTAGAAAACCTATTCTTCTGAAG -GTTAATCATCTTTATGGTTATTTTATTTCTTTGGATTTAACTTATAGTTCTGTTGAAGTGATGTACAATT -ATTTTGATGGTAATGTCATTAAGCATGAATCTTATGATTTACCTGATGAAAAGGTTAGTAGTATATTAAG -CATAATAAAAAAACATATTGATATTCAGGAGAAACTTGATACTTATAACGGACTATTAGGTGTGTCTGTT -TCTATACATGGAGTTGTGGATAATGAGCAGCATGTGACATATTTACCATTCCATGAAACTGAAGGAATTT -CAATTGCTAAGAAAATAAAAGAAATTACTAATGTTCCAGTCGTAGTTGAAAATGAAGCGAATCTTTCAGC -GTTATATGAACGTAATTTTAATCATAATTTATCCTACAATAATCTTATTGCTTTAAGTATACATAAAGGT -ATTGGTGCTGGGCTTATTATTAATAATCAATTGTATCGTGGTGCAAATGGGGAAGTTGGTGAAATTGGAA -AAACACTTGTCTCAAAAGTTAGCGATAATGTGGAGATCTTTCATAAGATTGAAGATATTTTTTCACAAGA -AGCTTTACTGCATAATTTAAGTAATCAACTAAATGAGAAGATGACGCTTAGCAAATTAATTCAATTTTAT -AATGAAAAAAATCCAGTCGTAGTTGAAGAAATGGAACAATTTATAAATAAAATTGCTGTTTTAATACATA -ATTTAAACACCCAGTTTAATCCGAATGCAATTTACATTAACTGTCCATTGTTCAATGAAATGCCTGAAAT -ATTAGAAGCAATTAAGAACCAGTTCAAACAATATTCACGTAACGAAATTCAAATAAAGTTAACATCTAAT -GTCAAATTTGCAACTTTGCTAGGTGGTACATTAGCAATTATCCAAAAAGTACTACAGATTAATGATATTT -ACTTAGATATAAAAGCATAAAAAACTAATTCAAATGAATAATCAAAGTTCGTAATTGTCTTTATAAAAAA -ATCCCTCAATCCGAATTGAATTTTCGGATTGAGGGATTTTTATAGTTCTATTGCAGAAGAAAACTATTTT -AAAAATGCTGGTAAATGTTGATAGCCACCTCTAACGTTAACAATATTCGTAAATCCTTTATATTCTAATA -TTCCTACCGCTATTGAACTTCTAACACCTGATTGACAATGTACATAAATTAGGTCATTTTTATCGAAAGG -TATATCTTCATTTAAAAGTTTACCGTGAGGAATATGAATTGCTTGTTTTAAATGACCTTTACGCCATTCA -TCATCATTACGAACATCTAATACATTATGTTCTTCACCAGTCATTTCAGAACTATGAATAGATGATGTGA -CGATATTTGTTTGTGGCAAACGGTAACTTTTTACATTTTCAAAACCAATTAATTGTAAAGCATGAATAGC -TTGTTGAACGGTAGATTTATCGCCAATTAATTCAATATCTTAGTCATAATCTAAATACCAACCAATTTGA -TTTATAAAAGTTTTATTAAAAGGAATATTGATAGTTCCATGCATATGACCACCATGGAATGCTTCTTTAC -TTCGAAGATCAAAAGCAGTTTGTGTATTGCTTGAACTAGGGTAAACATTATATGGTTGGTACATTTGCAT -ACCAAATTGATTTATTTTTTTCATTTGTGAAAAATGGTGTGGTGGAGCTGGCTGATTGAGTGTTAAAGTT -TCGATAAATGAAGTTTCATCTTTAACATTAAAAGCCCAGTTGTTTATTTTCTCATAACCCAAAGTAGTTG -TAGGTAATGAACCTAGCGCTTTACCACAAGGACTCCCTGCACCATGACCTGGCCAAATTTGAATATAGTC -TGGTAATGTTGCAGCAAATTGTATGGACTGATACATTTGTTTTGCTCCGATTTTTGTAGAACCTTCAACA -TTTACAGCTTTTTCTAATAGATCTGGTCTACCTACATCACCAACAAAGATGAAGTCACCGCTAAATAATC -CCATTGGTATACTGGAACCCCCACCTTCGTCAGTAAGTAAAAAACTAATACTCTCAGGGGGATGGCCTGG -AGTGTGTAAGACTTCTAATTTAATCTTTCCTAAATAGATAATATCTTGATGCTTAACGAAATGTGTTTGT -TTAGGCATATTTTTATAATTAAATTCATCTTTACCTTCATCAGATACGTATATACTTGCATTCAATTTAT -TTGCCACATCTCTAATACCTGAAGCAAAATCAGCATGAATATGTGTTTCTGCAGCTTTAGTAATTGTGAA -TCCTTCTTTATCTGCAACTTTTAAATATTTTGTTAAATCTCGTATAGGGTCAATAATCATTGCTTCTCCT -GTACGTTGACATCCAATTAAATAAGATGCTTGTGAAAAATTGTCTTCATAAAATTGTTTGAAAAACAAAA -AAAACTCCTTTTTAAAATAGATTTTATTGATTAGATAAATAAGTTATGATTTGCTTGCTCAGTATGTCCA -ATATAAGTACCTACGCCACCATAATCGACTTCATCTCTTAATTCTTCTTTTGAAATTCCCATAACATCCA -TACTCATGGTACAAGCAATTAACTTTATATCTTGATCGATTGCTTGATCGATAAGTGAGTATAAAGAATC -AACATTTTTCTTGTTCATTACATAACGCATCATAATATTACCTAGTCCAAACATATTCATTTTTGATAAT -GGCATATGTATTGGATCCTTAGGTAACATAAGGTCAAACATTTTGGAAATACCTTTCTTTTTAACGCGAG -TTGATTGCGCTTTTTTTAATGCGTTGAGGCCCCAAAAAGTAAAGAAAATAGTTACATCTTTACCTGCTGC -TTTAGCGCCATTTGCGATGATCATTGCTGCTACTGCCTTATCTAACTCACCGCTAAATAAAACAATTGTT -GTACCTGTAGCAGTGTCATTGATTTCAAATTCTTTTGGCTTTTCTTTTTGAATAATTGCATTAATTACAT -TTGCTTCTTCAGTAAGATTTACAAGGGTATTCCCTGTTTGTTTCGCCCAACTTTTAATATCACTATTGAA -ACCAGGATCTGTAACTGTTACCTCGATTTGCTCACCCGTTGAAATATTGTTAATTTCTTTACTGATATTA -ACAATAGGTCCAGGGCACTGAAGACCTCTAAAATCAAATTGTTTACGATTCTCTTTGATTTCAATATCTT -TTTCTATTAAAGGAGCACTATTGAAGTTCTTTGCTTCATAATCTTTATATCCACCCTTTAAATTCACGAC -ATCATAACCTTGTTTGGCTAAATAATCGCAAGCTTTAGTGCTTCGGTTACCGCTTTTACAATGTATATAA -TACGTTTTGTTGCTATTCTTATTGAATGATTTAATCTCTTCTACTGGGTGTAAAGTTGAACCGTTAATGT -GTCCTAATTCATATTCTTCTTTTGTTCTAACATCAATCAATTGACCCATTTTTGCCAATTTTTCTAATTC -TTCTTTGTTTAATGAATTAATGTGTACTTCTTTGTATTGTTCCATACTTACCTCCTATAAATACCTATGA -GGGTATAATAAAACGGATAGAATCATTTGCCAAATACCTATAGGGGTATTTGACAATTTTGTTTTAATTT -ATTATTATTAACTTAATCAATTTATGTGGAGGAAATGAATATGACTTATGATAAAAAAATGATTAATCGT -ATAAATAGAATACAAGGTCAATTAAATGGTGTCGTAAAAATGATGGAAGAAGAAAAAGATTGCAAAGATA -TAATTACGCAACTTAGTGCATCTAAAGGTTCTATACAACGTTTAATGGGGATTATAATTAGTGAAAATTT -AATAGAATGCGTTAAAACAGCAGAAGAAAATAATGAAAGTTCTCAAGAATTAATTAATGAAGCAGTTAAT -TTATTAGTTAAAAGTAAATAATGGATATAGCAAATATGACTATTATGTTGCTAATTGGCGTACTGGGTGG -ATTTATATCTGGATTAATAGGTATTGGGGGCGCAATTATTATTTACCCAGCTATTCTTATATTGCCACCA -TTAATAGGTATACCTGCGTATAGTGCATATATTGCTTCGGGACTTACCTCTAGTCAAGTATTTTTCAGTA -CACTTAGTGGATCATTAAATGCAAGAAAACAACCAGCTTTCTCTCCTAAACTTGTTATATATATGGGAGG -GGGTATGTTGATTGGAAGCATGTTAGGGGCAATTTTAGCTAGTTTGTTTAATGCTACTTTTGTAAATACG -GTATATGTAATAATCGCCATACTTGCTTTAATATTGATGTTTATTAAAGTTAAACCTACTACACAAGAGA -CGAAATCTAAACCTTTGCTATTTATTATAGTTGGATTTGGAATTGGTGTAATTTCGGGAATTGTGGGTGC -AGGTGGAGCATTTATCATCATTCCTGTATTATTAGCATTATTTAAATTACCAATGAATACGGTAGTGAAC -AATAGCATAGCAATTGCTTTTATATCTTCAGTAGGGGCATTTTTTATAAAATTAATGCAAGGATATATAC -CAGTAGAAAGTGCAATTTTTTTGATAATTGAATGATGATCATTTTCTGAAAATATTATGTGGTCATATAA -TATAATGCCCATCATTTCACTAATCTCTTTTATTCTCTGAGTTATTTTGATATCTCCTGGAGAAGGTGTG -ATGTCTTATCAAGAGTAAATTACAAAAGAATCATTTAAATCAATACTTTCACTTTGAATACATGTATTTG -AAGTGGAAGGTACTTATTTCAAAAATAGTAAAACCTGTATCTTAAATTACTTAATAGTAACATAAGATAC -AGGCTGATTTTTTATTCATTGTTATTTATACTAAAGCACCCGATAGCTCTGAAAACAATCACAAATTCAA -CTTTTCAAAGCCACAGCTTTAAGTTATTTTGTCCAGACAACCCCCATTGCCCAACCCATTTTATGGAATT -GGCATCCAGGCAACAACTTTTCATATAAATCGTAATAATTTTGTTCAGATAGGTACTTATCTGAAGCTAA -ATGCTCAAGCCATGATTTAGATGTGTTGTGATTATAAATTCTAATCGCATTTTTTATTCCAAATTTGAAA -CAATGCGGTAAAAACTCTTGGATTGCCCCTAATTTATAAACATAGGTAGGCGGTGTCTCGACTTCAGATA -CATTATCAAGAATAACTATTCTTCCTTCCTCATTCAACAGTTCCTTCATTTGCTGTATTACGCTGGCTAT -ATCATCCAAATGATGAAAGGTTGTTCGGCTTACAATAAAATCAAACTTCTCATTAAAATTAAGTTGTTCT -GCATTCATATTCAGATAGACCGTATTTGTTAGTTGACGTTTAGATTTGGCAAGATCGAGCATTTGATTAG -AAATATCAATCCCTACCACTTCATCATAATAACTTGCTAATTTCTCCACTAACAAACCCGAGCCACATCC -GATATCTAATGCTCTGCCTTTCTTTGGAGACATATTAGACACAAAGAATGAATAATCATTCAAAAGCTCA -TTCACGAAATCGTAATCTTCTGCAACCTTATCAAACTGTGATTCTATTGTATTCAAAAAGATCCCCCATT -CCTACTTTATCGACATTCTTTCATTACTTACCACTTTAGATGTTTTTTCGTTGGGGATAAAACTTCCCTT -TAGACAATTTTATCCAAAGACAATACAACAGTGCAACTTTATTAAAGTCACTGTCCTTTATCGCAGCCTT -TACTTTTTAGTAAAGACAGTGGCTTCTCTTATCAAGTTTCAAAACATATTATTTTGAAGAAAACGTCCAT -CTGAAGTGTCAAGTGCAAAATTACATATAAAGGTTTATTCTAAAATGAAAAGATGATACAATCATATTCA -GTTACATAAGGAGGTTTCAATTATGTGCACCAGTATCGCAGTAGTAGAAATTACTTTATCTCATTCATAA -TGAAAAAAATGGAAAGGAGATAAAAGTATGGGTACTTTTTCTATATTTGTTATTAATAAAGTTCGTTATC -AACCAAATCAAAATTAATTGGTTATAATGAACGCTTAATGTCAGTTCATTATAACCAGTAAGGAGAAGGT -TATAATGAACCAGTAAGGAGAAGGTTATAATGAACCAGAAAAACCCTAAAGACACGCAAAATTTTATTAC -TTCTAAAAAGCATGTAAAAGAAATATTGAATCACACGAATATCAGTAAACAAGACAACGTAATAGAAATC -GGATCAGGAAAAGGACATTTTACCAAAGAGCTAGTCAAAATGAGTCGATCAGTTACTGCTATAGAAATTG -ATGGAGGCTTATGTCAAGTGACTAAAGAAGCGGTAAACCCCTCTGAGAATATAAAAGTGATTCAAACGGA -TATTCTAAAATTTTCCTTCCCAAAACATATAAACTATAAGATATATGGTAATATTCCTTATAACATCAGT -ACGGATATTGTCAAAAGAATTACCTTTGAAAGTCAGGCTAAATATAGCTATCTTATCGTTGAGAAGGGAT -TTGCGAAAAGATTGCAAAATCTGCAACGAGCTTTGGGTTTACTATTAATGGTGGAGATGGATATAAAAAT -GCTCAAAAAAGTACCACCACTATATTTTCATCCTAAGCCAAGTGTAGACTCTGTATTGATTGTTCTTGAA -CGACATCAACCATTGATTTCAAAGAAGGACTACAAAAAGTATCGATCTTTTGTTTATAAGTGGGTAAACC -GTGAATATCGTGTTCTTTTCACTAAAAACCAATTCCGACAGGCTTTGAAGCATGCAAATGTCACTAATAT -TAATAAACTATCGAAGGAACAATTTCTTTCTATTTTCAATAGTTACAAATTGTTTCACTAAATTAAAGTA -ATAAAGCGTTCTCTAATTTCACAAGAGGACGCTTTATTCTTCCCAAAAATTGTTCAATATTTATCAATAA -ATCAGTAGTTTTAAAAGTAAGCACCTGTTATTGCAATAAAATTAGCCTAATTGAGAGAAGTTTCTATAGA -ATTTTTCATATACTTAACGAGTGCTTTCACCTTTGAATATAGTCCTTCCCACTTATCATCACACTCTCCC -CGATAGCCTTTTCTAGCTATATCCAGTAAAGTTACATGCTCTTTAGGTAAAAGAGGTATAGCCCATTCTG -CAGCGACATCTTTCGAGGTAATTTCACCAGTAGTCACTGTTTGCCACATTCGAGCTAGGGTTAAAATTAC -ATTACGCTCATCACCTTTTATCCCCTCAATTAGTTCTGGCAAAGAATCCTTAATTGCTCTTCGAATATCT -GTCAAAGGTACGGAGACAAGTATACTTGAAGAATCAGGACCAAATAGAGAAATACTATTCTTTCTTGCTT -GTGCTAAAACAATAGCCAAATCAGGATCATAGCTTGGTTCCTGAATTTGTCCATTCTCAAATTCACCCCT -GAGCCACTCACCGTATATAAATTCTCTTTTTGGAGGATATTGCCAAGGGACAACTTCACTCCTATTTATA -ACCGTAACTTCAAGTGGTCTAACAGAATCCGTATTTCCAATCTTTCCTGATATAGTCATTAGTCTTTCTG -TTAGTTTTTTTCGAGTTAATTGAGGTAAACTATGATTCACGACGACTAGAACATCTACATCGCTGTTAAT -GCGTAAACCACCATTTACTGCTGAACCAAATAGATATACTCCAACTATTGAACTTCCAAATAAATCTTTT -ACGATTTTTAATGTTTGAATCGCTTGATTTGGTATTTTTCCGTTAATCAAATTGCTCATGATTTCACCTC -GTTGATTATGTTCATATAAAGTTTATATTGATACTCAATTTACTTACCCTAGATTGGACATATACTTAAA -TTACTGTTCAATAAAGCTGACCGTTAGCGTTTAAGTACATCCTTTCACAATTTGTCTACAGATTAATAAT -TATTCTTTATTATACAGATCTCCATATAATTTTTGAATTTGGTTCTGTAATTTTTTATTTTCTTTTTCTA -ATTCCATTACTCTTCTTTTTAAGGTTTTAATAAGGATTTCCTCCGAACGAGAACTTTTCTTGGGTTTTGA -GACTACATTTGCTGTTATTTGACGCTCACGAAGGGATTCGATTCTTTGCCTAATATCGTGTTCCTTATAA -AGCCATGATTTAGAAACATTAGCTTCCTTTGCTATTGAATTAAAATTAATAACTTTACCTTCAATCGAAA -ATTTAGAAATCGCTTTGTCTACTTTTTCCCTTGTCTTTTTTGATTTCTGCTTCGCCAAACGTACAATTTC -TGTTGTATTTCTAACTTGTTTATCCATTGATAATTACCCCGTCAAACTTCCAATGATTTGTTCTAAACGC -TCTTTAACACGGCTATTAGTCTCTACTTGTCTTTGCCATTGTTTATCCTTAGCTATGGCTAATAACTCTT -CTGTACGCTCTAACTGTTCTTCGTGCTGTGGTAAGAATTGCTTACTGGTACAGAAGTGAGTGCAATCTAA -GCATGCATTCGCATGTGGACAACCACCTGCTACTACTGGCAATCTACAATAACCATTTGGAAGCACTTGT -GCATTTATATTTTTCTTGAACCATTGAAGCTCTACATCATCGACTTCATTATCTTCATCTAGATCAAGCA -CATCTCCATTATTGGTAACCAGTTTTTCCTGAAATTTAGTAAATTCATTTTTTAGAGTTTCATCAAAGAT -ATGAGCGTATCTGCTTGTCATTTCTGGGCTTTCATGCCCCAAAAATTTCTGCACAATATGCTGGGGCATC -CCGTTGTTAATCATTCTTGTTCCTACTGTATGGCGAAAGGCATGGGCATGGAATCTATAAATCTCACCTG -ATTTATCCACTATATTTTGCTCATAAGCTAATTTATTTAACTCACCTCTAAATGTTTCTTGTTTTAATGG -CGATCCATCTTTTCTTGGAAAGAGGTATTCACTATCTGGAAATTCCTCTGAAACTTTATCTTCCCGAACT -TTAATAAGTAAAGCTACCTCTTTAGATATTGGAACTATATGCTCCTTTTTCATTTTCCATTGATAATACT -TTAAAAAGAAATCTCCATCTTTGTCCTCTAATAGACAGCCTTTTTTCAAGGTGCACAATTCACTTATCCT -CATTCCACATTCTTGAACAATCATAGTCATCGTAGCTATATATTCGGGTAATTTATCAAGATGACTGTTC -AATTGCTCTAGGACGAATTCATCTATAAAGCGTGGTTTTGCTCTTGGTATTTTCGGATAGTCCTCAGAAT -AAATTAATATTTTGGAAGGAACATCATCCCATTCTAGCCTAAGAAGGGTACTAAATAGTCCTTCCAATAT -AGAGATCCTCCCAGTTATTGTACTAGGTTTTATTCCCATCATGTTTAGTTCACTTAAATATGCTTCAATT -TCCACTCTCGTTAATTGGTGTACTCTCTGAACTTGTTTAAATTTCATGTCCAGAAAATTAAAGAACTCTT -TAAGTCTTTGGGCAATATCACTTACATAGGAAAAGCTATCCACGTTCAATCTCAACTTACAATATCTTTT -TACAAGTTGTTTAAAATATGTATTCCGAAACCCTTTAAAGTTAATTGTATATTCATATTGTGTTGGGTTA -ACCTTATCATCTGGCAAAGGTAAGTTACGTCTATCCCAAACGTCTTTATCCCACTCCTCTCCATCAAAAT -AAAAGTTCTCATAAAACTCCATAAATTGTTTTAGATTAGTAACATAGTAGGAATTAGCTTTTACAGGTGT -TTTTTCTTGATTAGCAGTAATCTTATAATTAGTAGTGGTAATTCTAACACCCCGTTTTGTCAAATAAGTT -CTATACTCCGTCATTGCTTTTTCAATAGGAACTTCAGTAATTGAAGTAATGCTAGGATACTTTAAATCTA -AGAAATCTAACATTTTATTAATTACTGTTCCTTTTCTAATCCAGACAGTTTTTGCATTCCATATTCCATT -GTTTAAATGGTAAAAATAAAAATATTTCAATTCTGTTCTTAACCACAGATTTTTAACACGTTCAAAACGA -ACCCAACGATTCCTTAAAGCAGGATTCTTACTTAATTCTATGGCAGAAGGATGTGGACATTTTCTTATAT -CCCAACTATTATTAGCCCAAAACCCCTGCATTTCTTCATTCATTACAGCTATTTTTTTGCTAATCTCACT -CTGACTAATAATTTTCCTTTTACTAGAAGCATTCATTTCTTATGCTCCTTTCTCTCGAGGTATTTATTAA -ACTCATTTTTCATATCCTGATCTGAAAGATGAACATAGGTATTTAACGTTGTCTGAACATGTGCGTGACC -TAATCTCTTTTGAACGAACGCAACATCCCATCCTTCCCTAATTAGCTGCGTTGCGTGAGTGTGGCGAAGC -ATATGTGATGTAAATTCTATTCCAGTCCTTTTAACTATTCTTCTAACTAGATCAAGAACACTTTGGTACT -TTAGTGGTTTCCCAAAATAGCCTTCTTTTAAGGAAATAAAAACATAATCATGCTCCAATTCCTCACTATA -CTCATATATCAAGTAATCTGTATAAAGTGACATAAGTTCTTTACTCACATGTATTGTTCTTTCCTTCCTT -AATTTAATATAAGCTTCATTAACATTAACATCTCTAGGTGTTAAATGGATTTGATTGTCCCAAGTGACAA -TATCTTCAAGCCTAAGCGATAACACTTCACCGATTCTTAAACCACCCTCATACATAAGCATTAAAATTAA -TTTATCTCTTTTCGTATGACAAGCATCAATAATTTGCTTAACTTCCTTTGATCTCAATGTTCTTATCTGT -TTCTTTTTAACCCTTAACTTTAAGACATTCTTTTGGTATCTACCCTTATTAACATGATGTAAAAATCCTT -TGAAATTTCTTCCCTTTGCTTGTTTAAATACATCAATTGATTTAAATTCTCCTAATCTACTTAAATAATC -AAGAAAACTCATAACTACATTTAAAATTGTATTCACTGTCGTTTCTTCTCTTATGGCTTTTTTTGACTGA -AGATCAATTACATTTGATGCTGAAGGATATCTCAACCAACCTACGAAGTCTGCTAACAACTCAAAGTTAA -TATCATTAAGAATAACACCTCTCTGTTCCATGAACTCGTACAGCAACTTTAAATGATAGCAGTATGCCTT -AATGGTATTAGGAGACTTACCAGTATTATCTAAGTATTTAATAAATTTCATTACTGGTTCTATTAGCTGG -TATTCTTTATCTAGTAATAAATACAATGGATACGGCTTATTCTCCACTTCTATCCTTTGAACCTTCACAT -GTTCCCACCTCTTTAAATACTTTAACTACTACAAATTATAAACCTTGTTAATTTTTATTTAAAGTAAAAT -ATCCCTTTAATATCTCCTCTTAAACTACTTTAACTACTATTATTTATTATACTATGGTTAATACATCTCC -ACTTGGATGATTATGACCGAGCATTATACTATTTGCGTTACTGAGTATCGCTGTTTTGAATATTTCTCTA -GGGTGAATCACCGTTTGGTTAATAGATCCAATCGATAGTGTTTGAATATGTGTAGGTTCATTTTTACTGT -TCATACATATGAGAATGAGATGCTCTCGGTCACTGTTTCCAATGAATGAACGCATGATTTCTGCCGCATC -CTCAGGGTTTGAAATACGATTTTTTAGATAACTTAATGTATCTGTTTTTATCATTTGTAGTGAAACAATA -TTGATTTCCTTCATCGTTTACCTCCATATATAGGTTATGCTTTCAAAGTCCATTTTTGACGTGCTTTAGG -GTTGAGTGGGTGCATGATTTCATTTGTGGCTGGATTAATGAGCTTTTTGACTTTCTTTTTATGAGGCTTC -AACATTTCCATTACTTGTTCGACACGTTCTACAACAACTGGCCGCTTCGCATAAGCACCATAAGCTAGAA -TCACTGTGTCACTTTCGCTAATTGCTTTCATCAAGTGGATGTCTGTGTGTTTATCATAAGGTTCTTTAAT -ATGTTTAAGGTTCTCTGGTGTTTTAATATTAGAGAATAGATTTACAAGATATACAGCACCGTATCGTTCT -GAATTCGCTAATTGATTGAGGATAAGAACAGTTGTGAGATCGAGTGATAATACACCATCTAAATGAGGGT -ACATCGTTATCACTGTACAAGCGGGTTTCTTTTCATCCCATGTTTTCTTGAGTAAATAGCGGTGTTTTTC -ATCCTTGCTAAATATAGCTTCTGTGTATATCGTATTTTTGATTGTATTCATATATATAATCACTTCCTTT -AGTATTCTTCTGGTAAAAGCATCACATAATAAAAAGCGTCTACGCCATCTTCACGAATGACGTAGACTTT -CTTAGGTAATGCATTTTGATTTTTTACATAGTTTGTATAGTGATATTCCAATTTGTATGCAGGTTGTTCT -TGTTCATGTGTGATTGAGAGTATATTCTCATCTTCTTGCAGTTTAAAAATGTGTAGGTAATCTGTATGAG -GTTGATTATCTCTTTCTTTTACCATATTCCAAAGTAAGATTTGAAGGTCTAGAGATAGGTATTCACTAAT -ACCTCTTGTGATGTATCGATTGATTTTCATGTTATTTTACCTCGTCTTGAATTTCTTTCATAATGATAAT -CGCTTGGCTAATAATCGTAACAGATATTTGTGCCACTTTGATCCAGTTATTCATGGTGAGTCCCTCCTTC -TCTTAGTAAATGACGTTCATCGATAATCGTATTTTTAGTATCTGTGAGATATAAAAAGTCCATGTCAAAA -TGATTCAGATAACCAACGCTGATGAGTTGGTTATTAGCGTACATAAGAAATGGATAGATACTTAGGTCAT -GTAGTTCATTATTGTAGTAGGTATAAGTTTCAAGTGTAAGATGTGCAAGTGGGGAATCATTAATAAAACG -TTCCGGTAGAATATTTTCTGCTGCTTCTTCTAACGCTTCGCATTCCCATGTTTCATTGTTAGATAGTTGG -AATAGACGAGTTATATATTGTTTGAGTTCTTGAGTGGTCGTTTTCATATCATTGCCTCCTAGATAGTGTT -ATAGTGATGTAGTTTATGTACATCATTGGGATAATATATATTTGATTTGTCATTTATTACGCATCCCGGT -GAGAATGAGAGAAAATTCCATATGAAAAACCGCTTCAAACCTTGGTATGACAAGGAAATCCCGAAATTCC -GCCTATTTTGACGAACAATCAACTCATTCTTTATAACTATTGATGTTAGGGTGGGGCTCTGCTTTCTTAT -ATATTATTTATTTATAAAGAATAACGGGATTTTGGGATTGTGCTTGCACAATCCTTCTGCTTCTTCGAAT -CTGCAAATCCCAATCATTTCCCGATAAAAAATCATTGTGGGATGTTCTTTAGCAATTTCAATATAAGCAT -CGTGTAGTTATGAAAAAAATTACGACAATGACTGTTTCATTAGATAAGTGTTATTGAAATTGATAAAGAG -AATTTTAAAAATGGTTAGATAAAATAAATGAAAGAATATAATGAAAATTATTGTTATAACAATGATTCTA -TTAGCTAAATAGTAAGATATAGTGTTTGGGGCAAAAACAAAGACGAAGTGCTGAGATGCACTTCGTCGAG -TTGTTTATTATTGAAAAGTTGTTTTATGATTTCGTTATTAAGTTTGAGTGTGACATAGAATTGTTTTTTA -TGATTACCATCTTTTTTAATATCAATGCGATCAATCACTGATAGATACAATGCTTTGAGTCGAGATTTTT -CTATGTGCTTAATATCATGAAAGATGTGTTGTAATAGTTTACTGATTTCTTTGGCATCAAATAAAGGCTT -ATCTTCATTTTGTTGATTTTTGAGTTGGTTGATTTGATTCGTAATGTCATTGAGTTGCTTTTCATATTTT -TGAATACTTGGTCTGATTACTGATGTTAAGTCCGGATTATCCTCGATGGTTTTAATCAAGTTATTTAGTT -TGATTTGTACTTCATCATATTGTTGTTGCTTATAAGCAATATCGTGATGAAGTGCAGCGCCATCAACTTG -ATTTTCTTGATTGACGTGTGTTACTACGCGTTGAATGACTTTATCACTTTTGACTATTTCAAGTATTTGC -TTCATCACATAATCTTCAATCACATCAGCTCTTACACTGTTTGCCGAACATACTTTGGAACCCTTGTTCC -GAAAATTACTACATGAATAGTAACGAATACGTTTCTTAGTCCCGTCTTTAAGTGTATTCGTGGTATTGCT -TGCTGCCATAGGTGCGCCACATTGGGGACAGTGAATAATGCCTGTAAGCAGATTCGTTCCTTTGCCATGG -ACTTGGGGTTTTTGACTGACTTGTTTTTTACGCATTTGTACTTTATCCCATAAATCTTGATTAATAATGG -GGGAATGCTTACCTTCAGCTATCACTGGTTTATCATTAAGCCCTTTACGACGTTTTTCACTCCAATCTTT -GTATTTCGCAAATTGAATTTTGCCGATATAGAATGGGTTAGCTAATATATATGTGATAGAACTAATACTA -AAAGGTTTACCCTTTTTAGTGACATAGCCTTTGTGATTTAATGCATTGGCTATTTTACGATAGCCATGGC -CTTTGGCATAGGACTCGAATATATATTTCACAATATTAGCTTCATGTTGATTAATCATCAGTTCATGTTT -ACTATTAGGTATTTTGTCATAGCCCAGCGGCAAATTGCCTTGATAATAGCCTTCTTGGGCACGTCTCGTT -TGACCCATAAATACATTCTCGACAATGTTATTACGTTCGAATTCTGAGAAACTCGCAAGTATTTGTAACA -TGAGCTTACCCGATGAAGTATTGACTTCCATACGCTCTGATAAACTGAAAAATTCGACATTTTGTTTGTG -TAAATCTTCGACAATTTTGAGAAGATCAGATGTATTACGAGCTAATCGGTTTGTTTTGTAGACCATAACA -CAGTCGATATAGCCATCTTTCGCATCCTTCAATATACGTTGGAGCTCAGGTCGATTCATAGATTTACCTG -AAATACCACGGTCAGCGTATATATCTTTAACTTCAAAATGATGGAAGTCACAGTATTCTTTGATTTGATT -GATTTGTCCGTCGATACTATAACCTTCTGTGCTTTGCATTTCTGTTGAAACACGTACATAGATACCGACA -CGTTTTGTTTTAAGTTGTTGCATTATGTTTCATCCTTTCTTCATTTATGCAATTGACGATTGCGTTGTTT -GATTGACGATGTTTAAGGGTTCATTTTTGAAATAGATACCCATTAGTGTTTTACTTTTTGTGATAAGAAT -TTCATCAATGTAGGGATACAGCATGTTTAACGTGAAACGTTTTTGAATAATATTTTGAATGGTGTTTTGT -ATTTGATGCCCATTGATAGATGTAGTGCGTTGCGGTTGTTGACGTAATGATTGCGTTTGTTCTCTGAACG -TTTCTGCATCAATGATGCCTTGTGCCAACTTTTCTATCAGTTGTTTTTGAGTCAATGTGTGATGTTTTTC -TATGTTTCTTTGTCTTTTGATGCGTTTGTCAATCGCACTTTTAATTTTTGTGTAGATGCGTTGATTTTGA -TAAAAGTCTCGGCACACTTCTAATACTTTATCTTCAAGTGTTTGTGCATTGATGCCTTTAAAATCACAGA -CAAAGCGTGAAGCATTCATGTTTTTAGGACAGACGTAGTAACGTAATGTATGATTCTTTTTTCTAATGGT -CATATTTGTAAGTGTTGCATTACAACATGGGCATTTGATTTTTTGTTTGAGTTGATTATCCGAAGGTGTC -TGTTTGGTTTGTTTTTGCAATCGAAGTCTCTGCGCTTGCTCATATATACTTGTGGAAACAATAGAAGGAA -ACATATTGTCGAATTGACCATATTGATTGTTGACACGACCACAATAATTAGGATTGATAATAATGTTACG -AACTTGATAGGGTTGTCGATTGATATACGTGTTATCTTCTTCTAATAACTGTGCAATTTTCTTATAACCA -TGACCTTTAATGTAATAATTGAATACAGCCTTTACCGTTGGTGACTCATTTTGATTGATGATGAATGTTC -CGTTGTGATATTCGTAACCAAAGGGCGCATGGGTTGTAATCAATCGACCTTGCTTTGCTTTTTCTTGAAG -CCCATTTCTGACTTGTTCTCCAATGTTATCTGATTCAAGTTCGGCCAAGCTGATAAAAATATTAAGCTTG -AATCGGTCGAAAGCTTGATCCATATCAAAATAACCATCATGCACACTTAAGATATGAACACGATATGTTT -GACATAATTTGATGAGTTTTAATGCATTTTTCAAATTACGATGCAACCTATTAAGACGATAACAGCATAA -TATGTCACACTGTCCTTGTTGAATTAATTGTGTTATTTGTCGATACCCACTACGATTATCTTTGCGTCCT -GATTGTTTGTCGCTATAAAAGTTGATATGTTGAATATGATGTTTTTCGGTTATTGCTTCGATAGCTTGTT -TCTGTGCTGCAAGAGATTGTTGTTTCATCGTACTTTGACGTAAATAGCCTATGACTTGTTTCATATCGGC -TCCTCCTTTCACAGTGATAATATATATTTATGGATGAATTGATATATAAGCCCAACATCAATGAGATGTT -GGGCGTCCATATTAGTCATTCGTTTGATTGATTTCTTCAATTACCAAATCGGCTAATATCTCGATAAGTT -CATCCATGTTTTTCACTCCGTTATTTGTTCTATCTTCAATACGTCGATTATTCAGTTTGATGCTTCACAG -TTGTATGATAAAGACAATTAGAAATCTTCGTGAACTCCTGAAAGGCCTATACCTTCATTAGCGGATTTAA -AAAGTTCTTTCGCAGCTTTGTTATCATTTGACGGTGTCCAATTTTGAAGTAACGACTTATCTTTAGTTAA -TCCGAGGATAGATGCAAACTCTACATCTAATTTTAGATGGTAAAATACAAGTGATTGTTTTTTACCGCTA -TTATCTTTGACACTTCTTTTAGTTGTTTGGCGTCCACGGTCAGCTAATATGAAACCTTTATCTCTTAAGG -CGTTGACAACATTATTAACATCTTGAAATTGATGATTGTTTAGCATCTGTTTAAAAACGTTCGCAATCAT -TTTTACTTCGATATGGTCATCTTTTAATGAGATTAATCCATAGTTCTCAAACATATTTTTCAAAGCACCT -TCATCTGAAAACTTACCTCTGTTTTGTGCCACAAATTGAATGATGACATCAATAGCTTTATCAGCTAATG -AGCGTTCAGAGACTGTATGAGTATGATAATCAATAAAGTAGTCTCTTATATTAGCGATATCAATATCTGT -AGATAAAACACGACCTAATATTTTCGCAGATGTTGTAATGACTGCATAACGCTTAAACATACGAATACCT -GTATTGTTTGTTTCATCTTTCAATTTAGCTTCAAACCAATCTACTTCCTTGTAAAACCATTGAATAACTT -CATCTTCACGATTTATAAGATATTTAGCTACTAACGGTAAAACATGACCATAGTTTAGTGCTACAGCTTT -TTTAATATTGTCAGCATTGGTCGCATTTGTAGTGAATTGTTCATTAATCTCGATGGTTCTTACACGTAAT -CCATCGTTTTGAGCTGAATCATTAAAAATACTGTATTCTGATGTTGAAATGACAGAAGTACCCCAATTCT -TAGGCGTTTTAACTTCTCCATGAACGTTTGAACGTTGACGACCTTGACCTTCAGTGATGGAGTACAATAA -CCCCGTTGTATCTCTAAAAGTTGCTGATGAGAGTTCATCAAATACAATAGGTATACCAAAATTGTTACTC -AAGTAACCTTCAAGTGCATTACGTGTGGCATTCCAATTTCTAAAGAGAGTTTCATTACCTTTGGTAGGGT -TACCAGCGACTGATACAGCTAAAGAAGCTGCAGTTGACTTACCGGTTGAGGATTGACCTGTAAAACTAAA -AATGATTCCGGCAAATTCGGTTTCATGTTTGTGCTTCAGGAAACTCGTCACTAAGGCAGAAATACCAAAT -ACGACTGCTAATTCTAAAAGAAGAGAACCTTTAACCTCTTTTAGATACATGTTAAACCAATTATCAAATG -TACCTTTAGGAGTTAAGTCATAAGGATTATCACAAATGGCGTCAGATGGAGATTTATTATCAAATTCTTT -AGTAGTATAGATTTCACTTAACGATACAATAGGACCAAACGGTGTTTCCAGTATACCTACCCCTTCATAT -AAGTAGGAAATGGGTAATTGATTGCGCATTTGTTGCAACGCATAACCTAAATCTTTTGTATATTTTTCAT -TAATACTAAATCCATACTTCATTAAAGATGGCAGTTTTTGTGTTGTTAAAATATCACTAGATTCAACAAT -TTCTTTTTGATCCTCGTCTGTAATAATTACTTTTTCAGTGTTAGTTTTAGGGTCAATAAACTTATTTTCG -ATAACGATAGGACCTGCGATTTCAACTTCAGTAGGCATTCCTCCTTTTTCTTTGGGAGGCTTGTCTTTAT -ACCAACCTTTTTTTGATTTGTATCGTGGTGAAGGATTAAATGAAGGGTTAGTTTGAGTCATTAGCGAACA -CCTCCTTTCGAAGGGTTGCTGTTATAGTGTGGATTAGGACCTGTTTTAAGATAAACTAAGTGACCGTGAG -TATCCTTACCGATAATAATAAATGGAACACGTGGCGCATGTTTTACAAAATATGCGAACCAACGTCCAAC -ATTTTGTTGTACAGCTTTTGAACATTGTACATTTGCACGACTGTTCAAGTCATGAAATGTAAATTCTTCT -CCTTCAGGTAAATTGAATGAAATACCTAATATTTTCTTTTTTAACTGCTCGAATTTATCTGATTGATTGA -AATACATTTAACTTCCTCCTACTAATGAACTAAGATAGGAAAATTAAATATGCGCACAATTAACTTTCTT -AAGTTCATTTTAGCCAAGAAGTTATCATTTGAAAGCTTGTAAAAATATGTTAGAAATTCCGTACTAAATT -AAGATGGATTTTTGTTGACAAAATAAAAAACGCTGATTTAACAGCGCTTTAAATAAAAATTAATCTGAAG -TTATATAAAAGTAGTCAGAAGGAGTGGTGTTATTATCATTATAATAATCTAGTGCTTTATTGATTTCTTT -TATTAATTTATCATGATGTTCTTTTGTTATTTTCTTTGGATATTTGAGTTCTTTTTCTTCTAAGTCTTTT -GGAGACACTAGGTCACTATTTAAAATTAATGATAACAGCATATTTTTAGGTGCCGAAGCTCTGGTGTCTC -GATGAGTAATATATTTTGCTAAATTACTGTTTATACTTACTTTTTCATTTTCTAAAAAGTTTGTACTATT -TTTAACATGAGCATCAGCAATTTTGGTACTTATTTCAGTGTTTAAATCGTCTATTTCATCTAAATAATAT -TCAAGAATCTGAAGTTTATCTTTAGAAGTGATACCTTTTTCAGTGAAAATCTTAATAATGATAGATTTGA -TTCCAATTTCTATATTACTGTCTACTAGAAAATAGAGATAATAATTAGTCAGAGCATGTTCATAATCTCT -TTGATCAGTAATTTCATGATTGATGAAATAATATAAGTTCTCTTTGATACGATTAGAAGAATCTATATCT -TTGTCATTGATACCGTTTTTAAAAAAGTGTAGATAAACTGAGTTGTTTGAGAGTATATCATATAATACAA -ATAAACTTTTTGGTTTAAATACATATGATTTTCCTGATTTAAAGTTTGCTATGTTTATTCCTAGAGCGTT -GCAGAATTTATTAAAATTAGTTGTAAAATTATTTTTTTCTTGAATAAACATGTCGTTGTCATTTAATTCT -GAACTATGATTTTTAATCATATTGATATTTTCTTCAATCTTGTCACTACTTAAATTTTCCATGCAAAGTA -TACTATATCTTACTATATCACTTATATTTATGGAAAAATCTTTAGGAGAACGATTTAAAGTATCCTTTTT -ATTATCTTGATCTACAGCCCTACATGAATCATCAAAAACTTCTTTGACATTTATTTTATCAATGTTCAAA -ATTATGTCTACTAAAGCATTTTGAAAATCATCGCTATATATGTCTTTATTATTCATAGTGTCACTACCTT -TATTTTTAATAACACTATATATTATATCTTATAAACCTAATACCATGAAGAATAAAAAGAATGATTCAAA -TTTTATATTTAATCCATAGTTGGCTGCTATGGTTAGTGTACTAGTCTAGTTTTACTAGTATATAAAACAG -TACTCAATTTTTATTTTTTCAAAATTATAAAAAAGAACACCTATCATCGATAGGCACTGAACCCCTAAAA -CGGGAACTTAATAAAAACACCATGTTCTAGGCTATTAATTCTCTGTATTTTACAGGGGATAAGTAGCCTA -GTTTTTGTTGAATTTGATTATTATTATAGTTTTTAATGTACTTTTCGACAATATCTATTACAATATGATT -AGAGCTATTAAGCTGATTATTGATGTAAAGAGTTTCAGACTTTAGCGAGGAATGGAAACTTTCTATCGGG -GCGTTATCGGCAGGTGTTCCCTTTCGGGACATACTTCTGATAATGCCTTTTTCTTCGCATAATTGATAAT -AAGCATAAGATGTATAAACGCTGCCTTGATCACTATGTAATATATACCCCTCAGGTATATCGATTTGATT -TAATGTATCATTAACTAAACGTTGGTCTTGTTTATCATCTATTTTATACGCCACAATTTCTCCGTTATAA -ATATCCATTATCGAAGATAAATACAACATAGAATGATCAAATGGTAAATAAGTAATATCGGTTGTTAATA -CTTCTATGGGACAATTCGCTTTAAATTATCTTTGTAATAAATTGTCTGTTTTATAATACGGTTTACCTAT -CCTTGTCGTCTTTTTAGGTCTAACTCGGCAGTTCAAATGATGCTTCTGCATCATTCTCTGTACTCTCTTA -TGATTAATTGGTGATGTATAACATTGATTAATCAGTGCTGTAATCTTACGATAACCGTAGGTATAATGGT -TAGCTTCACATAATTCAATAACTTTTTGTGTTACAGTATCATTTTTATAGGTTTTGTTTTTCCATCGGTA -ATATGTTGATTTAGGTATATTTAATACTTCTAGTATCAATTTGATTGAATAGTTTCCTTTTAATTGATCC -ACTAAATCTATGACTACTGTTGGTACCACTTCCTTTCCAATGCCTTGTACTTTTTTAAAATATCCAATTC -TATATCTTTTCTCTTATTTTCTAATTTTAATTGTTCTACTTCTGACAGCTCTTCTAATCCTTTACCGTAG -GTATATTGTTTACCAACGTGTTGTGAAAATCTATAACTTTCCCCATTTCGATACCATCGCCACCAAGTTT -CCACTTGTGTTCTATTTTTAATATTTAATTCTTTCATAATTTCTTTTGTTGAAAATCCTGCTGCTTTCAT -TTCAACTGCTTTATACTTTGTTTCTACTGAATAAGAAACTCTTTTCATAGAAAAAACACCTCCGTATGAT -TCATTTTAATATGAATTCAACGAAAGTGTTTTTATATAATTCCCACTAATTGGGGTCAGTCTACTATATG -ATACGGTTTTTTAATTTAAAGTATCAATAATAATTGGATATAGAGGGAAAGAAGCTATAATGATATTTGC -TTACTAAGTGGATAAAGATATTAGAAAAACGAGAAGCAGGACAGTTATTAAATCGGTAGATATTAATCAT -AAGTATTTAACTGAATTTTTACCTTTTGTCGAATATATAACTAAAGTTGAAGGTAGTAAAATATTTATCT -AGTCGATATTAAAACAATTTATCGAAAACGATGGTTTTCCATATCCTCTTTAGTAGCAATTTTCTAACAA -TATATAATTAATTATATACAAATTAAGAATAATTAAGAAGTATATATTAATTAGAGATAGTTTAAAAATT -AGATTTCAATCAATTAATTAAAACAGGTTAGACTATTAATTTATACTAACCTGTTAAAAGTAACAAAATT -AAGAATATATTAAAACTTGTGTAATGAGTAAGCCTCCACCAAATATTAAAACAAACGCGACAACAGGCCA -TACGAAACGTAACCAGTGTGAGTAGCGCACGTTTAACATTTGAAGTGTTGCCATTACAAGTCCAGTAGGC -GCTAAGAACAACATTGCATACTGACCGAATTGATATGTTGTAACAATAACAAATCTTGGTATACCTACTG -TATCAGCTAATGGCGCAAAGATAGGCATAGATAATACTGCTAATCCTGATGATGATGGTACGATAAATCC -TAAACAGAAAAAGATAAAGAGCAGAACAATGATAAATAAAGGCCCACTCATATGTTGCACGATAGATGAT -GAAAAGTGCAAGATTGTGTCAGAAATCATTCCTTTATTCAATACTAAGTTGATTCCACGAGCTAAACCAA -TGATTAAAGATACACCTACTAAACTTGAAGCGCCATTAACGAATGCATCTACAGTGCCTTTTTCGCCTAA -ACCATATTGTCCTGTTCCAGCAATAAACATGATGACAATGGTAAAGATTAAGAATGCAGATGCCATGACT -GGGAACCACCATCCTTGTGTCATAACACCCCAAACCATAATAGGGAATGGTAGGACGAAAAGCGTAAGAA -TAATCTTTTTACGTAATGTAAACTCAGAAGAACCGTCATCATGGAGCACAGACCACTGTTTTTCAAATGC -TGCTTTGTCTTCATAAGAATAAGAGGATTTAGGATCTTTTTTAATTTTTTTACAATACCAGAATAAATAA -CTAATAACAAATATGGCACCGATGATACAAGCGCCTATTCTCCAATAAAGACCATCAGTAAAAGTTGTTC -CTGCTGCATTAGAAGCAATGACGACTGAGAATGGGTTGATTGTTGAGAATGTACTACCCACAGAGCTTGC -TAAGAAAATTGCACCGAAAGTAAGACTTTAGAATCTATGGGAAAGATAATAAGGTTTAATAGAAATACAA -GAAGTGTAAATAGTAAGCATATAATTTATACATTTTAATATAATATAACAAGAAAGGTAAACACAAAGAT -AATAAAAATAAAAATTTAATAAAGATAGAGAATTATTAAATTGTTTTTGATATAAAACAACTTAATAAAA -AATTTAATTTTAGGGGAGGATAATTATAATATAAAGAAACATAGAATGGAATTGCAATTGGGAAGTATAC -GATTTTAACTGCGAATCATATGTTCAACGACTTACAAATGCGTAAATCGATAACACATTCAAAAATATAT -AATCTGAAAATTGATTTACTAAGAGAGGATTATTGTAGTTACAGGTGTTAAGTTGCTCCAATATGGAGTT -GTCGTCTTGTTTTATATTAAACAAGTTTTATTCAAATACATGACAATACGTAAAATAACACTAGAATTAT -CAATCACTAAAATTAAAACAAATGTATCTATTCAAACTTTTCTTTAGGGTTTACTTGCTGAATAATTTAA -AAATGAAGTATTAGGTGTACATGCTTTCAGAATTGCTTTTGAAGAATATTAAAAGTATAATCTGAATACG -ATGACAGAATGAATAGGTAAACTATGACAAGAAGTCATCAAGGTTATCAAATAAATATATCCCAGCGGTT -GAGACGACTCACTGCTGGGATTTTATTGTTAGTTATTTATTCTAAGTGTTGCATTTGGTAGCCGATTCTA -GGATGTGTGATGATTAATTTCTTTTCAGTGTTTGGGTCTTGCGTATAATTCAACTTTTTACGTAAAGAGG -CCATATGTACACGTAAGGCAGCCATTTCTGTATGATTGACATAGCCATAGAGTGATTTTAATAACACTTG -ATAGGTTAATACTTTGCCGACATGATGGCATAATATCGTTAGGAGTTGGAATTCATTCGGTGTTAGATGT -ACGGACTGTTCATTGACAAGGACTGATTTCGCATCGAAATCAATGGTTAATGGACCATTTGTGAAACGAC -TTTGAATTGTCTCAGTAGAACGTGACATACGTAATGCTACTCTGATACGTGCTCTTAACTCATCGATATT -GAAAGGCTTAGTCATATAATCATTGGCACCGCGATCTAATACTTCGACAATGGTTTGTTCCTCTGTTCGT -GCACTAATCACAATAATAGGTGTGTCCACAAAGTCTCTGAATTGCTGAATGAGAGATAAACCATCAATAT -CTGGTAAGCCTAAATCTAATAAGATAATATCTGGTTGTTCTGTTCTTAGGCGAAAGTCCGCTTCTTTCCC -CGTCTTCGCCGTAACCACTTTATAATAATTCATAGTTAGCGCAACATCGATTAAATGTAAAATCGCTTCA -TCATCTTCAACGACCAATAATGTTGTTTTCATCCATGGCTCCCTCCATTTCAATTGGATTAACAGTCAAA -TAAAAATAAAAAATACTGCCTTGTGGTGTATTCGGTTGATATTCTAATTCACTGTTGTGTTGTTTCAAGA -TGAGTTGTACTAAATAGAGCCCTAATCCCAAACTATCTTTTTTATTGTCTTTAAAGTTGTCTCCTGAATA -ATAGGGATTAAAAATCAATTGACGTTCTTCTTCTGGAATACCTTTTCCGCAATCTATCATTTCGAATTTT -ATTTTGTTTGTTTCATGTTGAACGTGCAGTTTTATTTCAGAATGTGATTCTGCATGCTTTAAAGCATTAT -CGATAAGGTTGAATAGCACTTGCAGTATTAATTTACTGTCGATATTAATGAGTGAAGCGTCATCCTCATT -TTCAATAATGACATGATTTGCTTGGTGTCTGCGTATGAGGCCTTCTTCAAATTCTTCTAGAAGTTCTTCT -ACTAAATAAGGGGTGCGTTGTATTTGAATGTCAGAGCTTTCTAACTTAGTCAAAGATAAAATATTTGTGA -CTAAGGTATGCAGATATTGTGCTTCGCCATAAGAAGCAGTTAAGAGTTCTGCTTGTTGTTGATCGTTTAA -ATGCTCGTTATGGTATTTCAGCATATCTAAGTTGCCCATAATGGAAGTCAGTGGTGTTCTAATATCATGT -GAAATTGAATGCAAGAAGTTTGAACGTGTGGCTTCTCGTTCAGCTTTCAATATGGATTGTCTGGTTTGTT -TTAATAGATCCACATTCTCTATTGCCAGGGTAATATCGTTCAACATAGAGTCTAATATTGAATTGTCATA -GGTGTCGATGTAAGTTTCGTCGGTGAAGCGGATAGAAATCACACCTTTGACTGGATTTGTGCCAATGGGA -ATACACAAAAATTTACTGCCAGGAAAGGTATCGGTTAATTTACCGGCACGGCTTTCATTTTCAATGACCC -AGCTCAATGTCTCAGCATCATGTGTCTTATCTGAGCTTGAAATGCTTCTGTTTCCAAATGAGTTGGAAGC -AGCGACTTTCTTACTTTGAATTAAGAATACCGTGACATCCTGATTGAGTAGCTGATGAATCTGATCACCA -GCAATATTTAATAAGCGTTCAATTGAATAAGATTCTTTAATGGACTGGTTAAATTGCAGCATAATATTGG -TCCGATATAACTGCCGTTCTGTTAAGGAATGCTGATGTTTTAAATTCTTTAAGATGGCACTCGTAAAGAT -ACTAGCAAAAATACTGGTCGCAAACGTAATCGGATATTCAAAGCGATACATTTCTAAAGTGAATCTTGGC -ACCGTAAAGAAATAATTAAAAACAAACACATTTAAGATAGACGCAAAGAATCCGATTAAATAGGATTGGG -TCCAAATAGAAAGCACGATAATACCGATAAAGAACATCAGCAAGATAATGGCACTGGATTCGCTTTTATC -TAAGTTGTAAACCCATATACCGAGCAAGACACAGATCGTTTGAATTACAAGCATCTTCATAATCTCTACA -GTTAAACGAGAGGATTTTTGAGCTTGCTTAGGTGTATTTGTAGGTTTGTCTGAATGAATATAATGAATCG -GTACAATTTCTAACTTGAAATGGTGTGGTACGTGATTAATTTGTTCAATGAGTGACTGTTTAAAGTAATC -TTTCCAACGTGGCTGTTCTGACTGTCCAAGGACTAGCTTCGTCACAAAAGCGAGATCACACCAATCGGTT -AACGCTTTCGCAATATCTTGTGCATACAACACTTTGATTTCTGCACCTAACGCTTTGGCGAGCATTAGAT -TTTTATGGACATAATGATCTTGTTTTCTGCTTTCTGACGGTGTCTCAAAGACATCAATATACACAGCTGT -GAATTTAGCATGTTCTTTATAGGCAGCACGTCTTGCTTCTCGTATGACCCGTTCGTTATAAATACTGCCG -CTGATAGCTACCGCAATATGCGGTGTAATGTCGGTATGTTTAGTTTTATATTGTTGTCCTTTTTGACTCA -TAATATCTGCGACAGTTCTGAGTGTAAGTTCACGCAGCTCTGTCAGATTTTCATACGTAAAGAAATTAGA -AAAGGCTGTTTCTAAGCGTTCTTTTTTATATACTTTTCCTGCTTTAAGGCGCTGAATCAACATATTTGGT -GAAATATCCACAACTTCAAAGGCATCTGCTGACGTAATGAATTGGTCGGGCACACGTTCTGTAACTTGAA -TACCTGTCATTAACGCAATTTGTCCGCTTAGACTCTCGATATGTTGGATGTTGAGTGTTGTCCAGACATC -GATACCATGCGATAGAATTTCTTCTATATCCTTATAACGTTTTAAATGGCGCTCTTTTGAAATGTTTGTA -TGTGCTAGTTCATCAATTAAGACCACATCTGGATTAGCTTCTATGATTTTAGAGACATCTATATAGTGAA -AGGTGTGGCTGCCAAATTTACGGCTGGAGGTCGAAATTTCAGGCAATTGTTGAACCAGTGCATTGGTTTC -AGGGCGTTGATGGGGTTCGATATAACCAATTTTAATATCTGCACCTTCTTGATACTGATCAATACCATTT -GATAACATTTCATACGTTTTACCTACCCCTGGGCTATAGCCTAAATAAATGGTAAGTTTCCCTCTTTTTT -TATATGTACTTTCCATGAGGCACCCCCTCTTAATCACATCATAATTAATATACAACATATTATCCATTTA -TCTTTCTGTTTTGTTAATCATCTTTATAGTTTCTTTATAACTTTCCTTAAATGTTAATACTTCGATTAGA -TAACTCTTGTTAAGATTTTGATGAAAGTAAGGAGGGAGCGCAATGATTACACTATTAGCTGTCGTTGTCA -TCGCATTAATTTTATTTTTATTTTACGCATTAATTTGGAGTGAAAAATTTTAACAGAGAAAGAGGGAAGC -ATCATGAGTATTGTGTTGTTTTTGATTGTATTTATCTTGCTCTCACTCATTGTGAGCCGATATTTATATT -CAGTTGCTTTAAATGTGCCATCTAAAATAGATGTTGTTTTTAATCCGATTGAGAAATTGATTTATCAACT -GATTGGCACGAAATTAGAACACATGTCTGGGAAGACGTATATCAAACATTTTTTGTTGTTTAACGGATTG -ATGGGCGGATTGTCCTTTGTATTATTGCTTATTCAACAATGGCTGTTTTTGAATCCTAACCATAATTTAA -ATCAATCTGTATCGTTAGCCTTTAATACTATGGCATCTTTTTTGACCAATACTAACTTACAGCATTATGC -AGGTGAAACAGATTTAAGTTATTTAACACAAATGTGTGTCATCACTTTCTTAATGTTCACGTCAGCAGCG -TCAGGTTACGCCGTATGTATTGCGATGTTAAGACGTTTGACTGGAATGACAGATGTGATTGGTAATTTCT -ATCAAGATATTACGCGTTTTATTGTACGGGTGCTCATACCTTTCGCATTGATCATCAGTTTGTTTTTAAT -CAGTCAGGGCACACCGCAAACGCTTAAAGGTAATTTGGTGATTGAGACATTATCAGGTGTGAAACAAACG -ATTGCATATGGACCGATGGCGTCTTTAGAATCTATTAAACATTTAGGGACAAATGGTGGTGGTTTCTTAG -GTGCGAACTCTTCTACACCTTTTGAAAATCCGACATACTGGTCTAATTACGCTGAAGCTTTAAGTATGAT -GTTGATTCCAGGTTCATTAGTCTTTCTATTCGGTAGAATGTTGAAAACTAAACTACAGATTCATCCGCAT -GCGATTATGATTTTCGTTGCGATGTTTGTAATGTTCATCGGCTTTTTAGTGACATGTCTCTATTTTGAAT -TTGCGGGGAATCCAGTGTTGCATCACTTAGGTATTGCCGGTGGCAATATGGAAGGCAAAGAAACACGTTT -CGGTATTGGCTTATCCGCTTTATTTACAACCATTACGACCGCTTTTACTACAGGAACAGTTAACAATATG -CACGATAGTCTTACACCGCTAGGCGGCATGGTTCCAATGGTATTAATGATGTTGAATGCAGTTTTTGGCG -GTGAAGGTGTTGGGCTGATGAACATGTTGATTTATGTCATGTTAACGGTCTTTATCTGTAGTTTGATGAT -TGGGAAAACACCAAGTTATTTAGGAATGAAGATTGAAGGTAAAGAGATGAAACTCATTGCGCTTTCTTTC -TTAGTACATCCTTTACTTATTTTGGTTTTTTCAGCACTAGCTTTTATTGTGCCAGGGGCATCAGATGCGT -TAACTAATCCGCAATTCCACGGTGTATCACAAGTGTTGTATGAGTTTACATCATCTTCAGCGAATAATGG -CTCTGGTTTTGAAGGATTAGGAGACAATACGGTATTTTGGAACATTTCAACAGGCATTGTGATGTTGCTT -GCACGATATATTCCAATCGTTTTACAAATTTTGATTGTATCTAGTTTGGTAAATAAAAAGACCTATCAGC -AACATACTCAAGATGTACCGATTAATAATTTATTTTTCAGCAGTGTATTGATTATCTTTATTATTTTGTT -GAGCGGCTTAACGTTCTTACCTGACTTAATGCTTGGACCAATAGGCGAACAGCTTTTGCTGCACGCATAG -ATAAAGGAGGATTAGAAAATGGCTGAAACTACTAAAATATTTGAATCACATTTGGTCAAACAGGCTCTAA -AAGACAGTGTATTGAAGCTCTATCCTGTTTATATGATTAAAAATCCGATTATGTTTGTTGTAGAAGTGGG -CATGCTGCTTGCCTTAGGATTAACCATTTATCCGGATTTATTTCACCAAGAAAGTGTATCACGGCTATAT -GTGTTCAGTATCTTTATCATATTATTACTGACACTTGTCTTTGCGAACTTCTCTGAAGCATTAGCTGAAG -GTCGCGGTAAAGCACAAGCCAACGCTTTACGCCAAACACAAACTGAAATGAAGGCACGTCGTATTAAACA -AGACGGCAGTTATGAAATGATTGACGCTAGTGACCTGAAAAAAGGACATATCGTACGTGTCGCGACAGGT -GAACAAATCCCAAATGACGGTAAAGTTATTAAGGGCCTCGCAACAGTGGATGAATCTGCGATTACAGGTG -AATCTGCACCTGTAATCAAAGAAAGCGGTGGAGATTTCGATAATGTAATTGGAGGAACTTCTGTAGCTTC -AGACTGGTTAGAAGTTGAGATTACTTCAGAACCAGGTCATTCATTTTTAGATAAAATGATTGGTTTGGTT -GAAGGGGCTACAAGAAAGAAAACACCTAATGAAATTGCGTTATTTACTTTATTGATGACATTAACGATTA -TCTTCTTGGTCGTTATTTTAACGATGTATCCATTGGCGAAATTCCTGAATTTCAATTTATCCATTGCGAT -GCTGATTGCTTTGGCTGTGTGTTTAATTCCAACAACCATTGGGGGATTATTATCGGCTATAGGGATTGCA -GGGATGGATCGTGTGACACAGTTTAATATCTTGGCTAAAAGCGGACGTTCTGTAGAGACTTGTGGTGATG -TGAATGTCTTGATTTTAGATAAAACAGGTACCATTACCTACGGCAACCGTATGGCAGATGCGTTTATTCC -GGTGAAATCATCAAGCTTTGAACGTTTAGTTAAAGCGGCCTATGAAAGTTCTATCGCAGATGACACACCA -GAGGGACGTAGTATTGTGAAATTAGCTTATAAACAACATATCGACTTACCGCAAGAGGTCGGAGAATATA -TTCCGTTTACTGCTGAAACACGTATGAGCGGTGTGAAATTTACGACACGTGAAGTATATAAAGGTGCACC -GAATAGTATGGTTAAGCGTGTGAAAGAAGCAGGGGGACATATTCCAGTTGATTTAGACGCTCTTGTCAAA -GGGGTGTCTAAAAAAGGTGGCACACCGCTGGTTGTGCTTGAAGATAATGAGATTTTAGGTGTTATTTATT -TGAAAGATGTCATTAAAGATGGACTCGTAGAACGTTTCCGTGAATTACGTGAGATGGGGATTGAAACGGT -GATGTGTACAGGAGATAACGAATTGACAGCTGCGACAATAGCGAAAGAAGCGGGTGTGGATCGCTTTGTG -GCAGAGTGTAAACCTGAAGATAAAATCAATGTGATTAGAGAAGAACAAGCGAAAGGTCATATTGTTGCGA -TGACGGGTGACGGTACGAATGACGCGCCAGCTTTAGCAGAAGCTAATGTAGGTTTGGCAATGAACTCAGG -AACCATGAGTGCCAAAGAAGCGGCGAATTTAATTGATTTAGATTCTAATCCAACCAAACTGATGGAAGTC -GTTCTAATTGGGAAACAATTATTAATGACACGTGGCTCACTCACTACATTTAGTATTGCGAATGACATTG -CGAAATACTTTGCGATTTTACCAGCCATGTTTATGGCGGCTATGCCTGCGATGAATCATTTGAATATTAT -GCATCTGCATTCACCTGAATCAGCAGTATTATCTGCGTTAATCTTTAATGCGTTGATTATTGTATTATTG -ATTCCGATTGCGATGAAAGGCGTGAAATTTAAAGGTGCCTCAACGCAAACCATATTGATGAAAAATATGT -TAGTTTACGGCTTAGGCGGTATGATCGTGCCATTTATCGGCATTAAGCTCATTGATCTCATCATCCAACT -CTTTGTCTAAAAGGAGGACAAAACAATGCAGACAATAAGAAAAAGTTTAGGACTAGTACTGATTATGTTT -GTTTTATGCGGATTTATCTTCCCGCTGACTGTCACAGCGCTTGGACAAGTATTATTTCCAGAACAAGCAA -ACGGCAGTTTAGTGAAACAAGATGGCAAAGTAATTGGTTCAAAGCTCATTGGACAACAATGGACAGAACC -TAAATATTTCCATGGACGTATCAGTGCAGTCAATTACAATATGAATGCGAATGAAGTGAAAGAAAGTGGC -GGACCTGCTTCAGGCGGCTCAAACTACGGCAATTCAAATCCTGAATTGAAAAAAAGAGTTCAAGAGACTA -TTAAACAAGAAGGAAAAAAATTTCAAGTGATGCGGTGACCGCTTCTGGCTCTGGTTTAGACCCAGATATT -ACGGTTGACAATGCGAAACAACAAGTAAAACGCATTGCGAAAGAAAGAAACATAGATGCTTCAAAAATTA -ATCACCTTATTGATGAAAACAAACAAGCATCACCAATGGCAGATGATTATGTTAATGTCTTAAAATTGAA -TATCACTTTAGATAAACTCTAAATAAACAGGGAGTGAGGTGAGACATCCATGTGGTTCATTAGCATTATT -ATTTTAATAGCATTCCTAATTATATTAATGATTGACGATTTAATTAAAACATGACAACTTCACGCAAAAC -AATATGAATTGGATGTAATAGAGAAGGGAGTACCAAGAAATACTCAGTTTATTGAGGATAATTATTAGGG -GAGATTAGAGAAGAATTCTCTATTCACGAACATTACTTTAACAGTTGTAATCATTGGTTTCATCATATCG -ATTAATAGTACAGTCATCTTGAGATTTTCAACACACTATTATAGCTAGCTAAGATACTTTTAAATTATGA -CTTATTTTTCATCATTTACGATACATCATTCTCGATAACTTACTATTTGTTATGGTATTTATAGATTTAA -AGAAAGTGAAGGAGATTAAGCAATGTAACTTGGCTTAATCTCTTTTTGATTATATTTATTAAGGCAAAGC -TTCATTTCCCTTAAATCAAGTATATCTTCTGAATAAGCAAATGAAATCGTGACGCCAACTACAGTGATAA -CTTCGCCTAAAACACAATGAGTGTGGTGTTTTCACTTTTCATAAACTCCTCTAAGTTTGTGTTTTTAAAC -TGTGATGGATTTGAATGTTTTTGAATTACGTTGTCGCGTCCTTGGGATTGCAATCCAAGAACGTCAGCAT -AATCTAAATCAATTTTGATTTGGTAGAAGACAAGAGAAGTACTTTTGCCTGTATCATCTTTCGCATTTCT -TTTTGTTGTCTTTCGATCCCGATCGGAAACTAATTTTCCTGCATTATCCAAAGCATCAATAACATTTTTC -GTGTCTTCGAATTGACTGTCTGTTAACATCTTATCGAATACATTTCGGATAATTTTTACTTCGATGTAGT -CATCTTTAAGTGAGAGGATACCAAAGTTTTGAATCATATTAGCAAGACGTGTTTGTTGTGAAAACTTGCC -CAGGTTTTCCGCAATAAACTGTACGATTGTATCCATCGCTTTATCTGCAAGAGAACGTTCTGACACCGTT -TCATTATGATAGCTTAATAAATAGTTCTTTATGCTGCTAACGTTTAACTGTAGGTCTAGTGATTGATTTA -AAATATGGGCTGTTGTTGTTAGAGTTGCATAATGTTTAATCATTCGAATACCAGTGTTACTGGATTCAGT -TGATAGTAATTGATAAAAAACACTGTCTTCTTTTTGAAAAAGGGAAGTAACATCATTAGTGTTGTCTAAT -AGGAATTGAGCAATTATAGGTAAAACATGACCATTATTTTGACTAACCACTTTTTTTATAGTATCTGAGT -TTTGAGCACTTGATGTGAATTTTTCAGACACCTCAATAGTACGAACACGCAAACCATCATTTTTAGCTGG -ATTTTTGAAAATACTATGTTCAGAAGTTGAAATCACTGATGTATCCTAGTTTTTAGGTGTTTTGACATCA -CCATTTATATTTGCTCTTTGACGTCCTTGTCCCTCTGCAAATGAATATAGAAGACCTGTTGTATCATGAA -ATGTTGCCGCTGATAATTCATCTAATACTATGGGTACACCATAATTTCCGCTAAGATATCCTTCTAGTGC -ATTTCTTGTTGCATTCCAACTCCGGAATAGGTTTTCAGTACCTTTTGTTGGGTTGCCAGCTACCGATGCG -GCTAACATAGCGGCTGTCGATTTTCCTGTTGATGATTGGCCAGTGAAAGAGAAAATAGTTCCTGAAAACT -CGACGTTATTATGATACTTAAGGAAAGCAGTGACTAATGAAGATACGCCAAACAACACATCTAGTTCTAA -AGATAAGTTCCCATGGACTTCTTCTTTATACATTTGTAACCATTCTGATAAATTGCCTTTTGGTATTAAA -TCGTACTTGTTATCACATATAATAGAAGTGCTATTAGTAATCTCATTAGAAAAATAAGGCTGGTCTAATG -AAATTAATGGTCCAAGTAATGTATGAAGCATTCCTACACCTGAGTATATTGTTGATAAAGGTGTGGTGCT -TCTCATTTGTTGCAGTACGAACCCTAAATCTCTAATGTGCTTTTCATTAATGGTAAATCCATATTCAATT -AAGGAGGGTAATTGCAAAGCAGTAAGGATTGAAGCCTTTTCGACAAGCTCTATATTATTCAAATCCGAAA -GAAATACTTTTTCTTTACGAGTCGCGGGGTCTATAAAACGATCTGTGAAAGCAATCGGTCCAGATAACAT -TATTTCAAACTCCGTACCCCCATCTTTTTTAGGAGGGATGGTTTTGTACCATCCCGAAGGTTTGAGCTTG -AATTCGTCAGTTTGATATAGAATTTTTTCCATTAACAGTGACCCCCTTGGTTGTAAGAGGAAATTATAAT -GATATGTCGGTACTTAAGTGGGTTAGTTCCTATAATAATGAAAGGGATGCTTGGTTTGTACTTTATCCAC -CAAGCAAAGCGTCTTCCTGCTTCACGTTGATCGTTGATGTTGCACTGTTCTCTGAATAACTGTAATTATA -AGGTTTAGTAATGGCAATTTTTTATTTAAACAAATTTTTACGAATGGATTGTCTGTTTATTAATTCAGCA -ACGTTTATTGAAGAAAAATAAGTGTCTTCTGATAATTGCAAAGGGTTTAATTCAATGTAAACTGAATTAA -GGGTAGGGTAGGTATGCCTGTTTTTTGGTTCTTTTAAGTTCAATCGATTAATAAAATTGTTGAACCTTTG -TTCTAAGTCATACAAAAACATCAGTAATTCATTAGGAGAATGATTTATTATGCAATCCATATTTTCGTTT -ATGCTTGAAGTTATACATCTAAAAACAGTATTGGTTTCTTCGTATAAAAATAACTTATTAATAGAGGTAA -CATTGATTAAGACTGAGTATACGTATAATAAGAGTGACTCTGACATCTCATTTAGATAAATAAGACTGTG -ATCATTCTTATTTACGATTATTATATGTGATTGAATCAATTCAATAATGTCTAGAAGAAGACTTGAAAAG -TCGCTGTTAATCTTGGTCTTTGAAAAATCATCGTGACCATTTGTCTTATTACTTAGATGTAGTTGTTCGT -ATTTTATAGTTTGGCGGTTGAGGAATTAAGCATTTGATTATTATAAACTATCTCAAAAATTAAATTACCT -CCTTTTTTCTTCCTCGATGAAGGTTTATCTAATCTTCCAATATACAGGTTTTTGAAGTAAATTATAGATA -TGATAATCATTAATTCAGTAAATGTATACTTATTAAGGGGTGGAGCTTTAGCTAACTTATCGATAGTACT -GCCGATGCGTGCTTTGAAACTATTCAAATTGTCGTGACTGTCTATATCTAAATCTTCAAATTTACTAGCA -AGGGTTTGCAAAGTAGAAATTACAACTTCTTCTTTTGTATAATATTTATTGAAAATATCATCTTCTTTAT -CATCGCTTTGGAGTTTTAAAGTGCCTGGTTCTAAGATGTCAAATTTTTTGTTTCGATTGGTATTTTTTTA -AAATGTGCCTTGTATTTTTGGGGTTGTTCCAAATGTGTATTTGCTAGACTACCTGTAATTGATATTGCTT -TATTTAGCATTTGGTGTGTATTAACTGTATCTGATTCTTCTGGAAATTTAAATCTAAAAGTAAAATCTCT -ACTACCGAATGTACTTTTTACGGCTACAGTTTTGTACTTATGCTCAGGCAATGTAATTAAACCATCTTGA -TGCAGGAGGAAAAGTGTGTCATCATTTAATTTCTCAATTGTATTAAATAAGTAATTATGCATAGCCTCTT -TATACATGGCGAATTGATAATTTAGATTATCCCATTCTATTAGTTGATTTAAAATACAATATAGACCTTC -ATTCAATCGGTTTACGAATATCAATACAGCTTCTTCTCGTCCAACAAGGCTTATTAACTCCTTCAAGTCA -TCCTTTAATTTTAATTTTTCTCCTTCAAAATTGTATTGAGTGAAGCCTATAGCCTTTTGAAAAGTAACTT -CCATGACAGAGTTGGTTTCAGAATATTCTAACGATTCATTTATTGCAAAAATCAAATTTTTTATAAATAT -GGAATTACTCATGGTTTGTAATTGCATATACTACCCAACTTTCTTATTTACTTTAAAACAAATATAAGCT -AAAGTAGTTATTATCATAAAGGGAACGTACGTTCTTATTTAGCTGATTTCTATGAAGAGAGGTTATGGAT -ATTGAATGAAGAAATCTTACGCGAAGTAGCAGATATTTTTATAGGTGATGACAGAGATAGCATTTATGAT -TATAAAACTGGGAACGAATTAGTGAGGTTTTTTAATCATTACTTTAATAAAGGGGACATATATCAGGCTC -CGTTTCCATCTAGATGGCTATATGTTGTGAAACATTTGCAAACTCTGATTCAGGAGAGAAAGATCAATCA -ATTTTTCACATTAATTTTAAGCAATCACTATATTAAGTATGAACTGAAAATTGACGAGGTTGAAGCAGCA -AAGCAGGCTGCTAAAGCACTTAAGTTGTTCAACAAAAGATTAAATCATTATGGGTACTACATAACAGGAA -CTAACAATGCTAGATATTTTATGGATAAGGATGAAGATACGGAGTCTATTGGTTATGGAGGGTATGCGAA -TATTTATTTACAGAAGTCTACAGGTCTTGCTGTAAAAAAATTGAAAGAGGAGTATCTTACTGATTCTTCA -ATTAAAAGTAGGTTTAAGAGAGAATTTGATCTCACTAAATCTTTTGATACAAATCCATTGTTCATTAATG -TGTTTGAATTTAATGAATCAGATTATTCATACACGATGGAGTTAGCTGATGAAACTTTGAAAGATTACAT -TGAAAGCAAGACAATTAGTGAGCTAGAAAAAGTAAAGATAATAATGAAAATTTTAAAAGCGATGAGTCAA -GCACATAGTGAAAATAAAATACACAGAGATATCAGTTCTAAAAATGTATTAATGTTTAGAGGAAAAGTCA -AAATATCAGACTTAGGATTAGGTAAAAACCTTGATGAAATTCATTCGCATCAAACCTTTGATACAAACGG -TGTAGGACAATATAAATACTGTGCACCGGAACAGATGTATAGTTTAAAACAAGCAGATAAACAATCTGAT -GTTTTTAGTTTAGGAAGATTGATAAATTTTATTATGACTGGAAATGTAGTTAACAACCATCACCTATTTA -GAGGTGTATCTGATAAGGCTACGAACAGTAGTAAAGAATACAGATTTGAAGATGCAAATGAAATGTTGAA -AATGCTGCAGAGAATTTTAGAGTATCACAGTAGTGCAAAGCACGTCGAAAAATGTCAAGAAAAGCTGAAA -AGAGGAGTGTTTGATGATGAAAGCGAAGAATTTATTATGACACGAAGTGATGAACAATTATGTCAAATGG -TTCTAAGTTCTAATAATAATGAGCAAGCGTGTTTAATTCGTTATATGCAAAAAAACGAATCTTCAGCATG -TGATTTAATAGAGAGTATTAATAGAAAGTATCAAGAGTTTTGTGGAAGGTTTGAAGACTACGATCCTTTT -GCTAAATTAGCATATATGATTTTATGTAATAACTTCAGTTATAGAGTGAATGAAACAGCAGCTAGAGTGC -TAAATTATGTTGCTTGGTCTGTAAATAGATTTTCGGCACAAGACTTAATTAAAGGTTTAATTAATAGAGG -AGTGGAGCCTTTGATTGAAGAAAAATTAAAGGACAATTAAAAAAACCTCATCATTAACTGATACGCAGAG -GCGTATCACAAATAAAACTAAAAATGGAGTAACTATTAATATAGTATAAATTCAATATGGTGATAAAAAC -AGCAAAAAAATAAAATATAACATCATAAAGGTGATGTGAATATATTATACAAAAGGGGAATATAATGTTG -GAATTAATTACTGATTTTTCAAAAAAGTCTTTTAAAAATTACAGTATGAAGGAAGAATTAAAATTCAATG -CTATAAATATAATATACGGAGTTAATGGGAGGGGAAAAACTTCATTAGCTAGAGGTATTAAAGAAATAAT -AGAAGAAAATAATCCAGATAGCTTGAGGTATTTTTACACTGATTATATTCATGAACTTCTTTTACTAGAA -GATTCCAATAAATTTAAAGGGGTAAAAGCGACATTTGGTACAAAAAATGTAGAAATTGAAAATAAAATAA -TCAAGCTGAAAAATGAAGTTGTTGATATGACGGATACTAAAAAGTTACTAGTTGAGAAGAGAAGGAAGTT -AAGAGAACTAATAAACGAAATACATAAGTCAAGAAAAGGGAATCTTAAAATACCATTAAAATCATCAAAT -AAAAGTATAGAAGAAGTAATAGCTATTTATGAAAAAAATTTAAAAGATGCTAAAAAAATAGAGCATAATA -TAGAAAGTATAAGAAATTTTGTAGCGAATGATGAAACACTTTATAATAAATATAATAGCATTTATGAAGT -TATGATTCCAAGCCTAAAAATTGAAACTTATGATGTAGATAGATTAACAAAGATTTTACAAAATAATTAT -ACAGATATAAAAATTCCTAGTTTTGAAGTTATAGATTGGTTGCGTAATGGTTTAGAATTGCATAATGTTG -AAGAGAGTATATGTAAATTTTGTGGAAACAATTTAAATTATAATTTGATTAAAGAAAAAATAGAAATATA -TTTATTAAATGAAAAGAAAAAAGATTTTGATTATCTTAAAGATGTCGAAAAATCAATTGAACAATTATCG -GATAATTATGAACAATATTTATCTAATATTGATATATTTGTTAATGAATTAGGGGTCCAAAAGTCAGTAG -AAGAAAGTTTGGGAGACTCAATTGATGAAATTAAGAGAATTTTAAAACAAAAATTAGGAAATATGGAGAA -TGACAATCTTAAATTTCCTTCTGATGATTACATTACATTAATAAGCAGATTATCTGAAATTGAAGAGGAA -TGTAAGGAAAAGAAGAAAATAAAATTAAAAGAATTAAATAAAAAAACAGAAAATATAAATGTAATAGTTA -CTGGCTCTATAAGTTTAGAAATATTAGAGAATCAAAGTATAAGAGAAGAACTTTCAAGTATTCAATATGA -AGAAAATGAATGTAAGAAGCAAGAACAACTAAATGAGGAAATTAATGCAAAAATATCGAAATTACATGAA -AATCAATCGGATTATAATGATTTTAAAATTTACTTAAATGGTGTATTTGAAAGTATTAATTTACATATTA -GGTTGAAATCTGATGAAACTACACAAAATTATTATCTTTATCATGATTTAGAAAATATATCACTAAATAT -AAAAGATATAAGTGAAGGAGAGAAAAATCTAATAGCATTTTTATTCTTTTATTTTGAACTTTTTGAGGAT -GAGAAACAAGAAACCATTAAAAGTAACATTAAAACGTTAATCATTGATGATCCTATTAATAGCTTCGACG -AAGCAAATAGATTTTACGTTTTAGAATTAATTAAAAAAGTACTTAAAAGCAAATTTAATCAAATATTTAT -ATTTACCCATTCTTGGAATGACTTTTGTGATATAACTTATAGATTAAAAGGGGAAGATCATAATTTTTAT -GAAGTGTACAAAGATCATCAGGGAACTAGTTTTTTAGAAAAATTTAAGAAAGTAAAGACGCCTTATAAAA -AGTTATTTCAAGAGATTTACGAGTTATCGAGAAAAAGTCAAAAGGACATAGTTGAGGAAGATTGTTATTA -CTATCATTCAATAAATAGCATTAGAAGAGTGTTTGAAGAATTTTTAAGTTTTAAGTTAAAAAATAGTGAC -CTAGCTCAGAAATCAAACCAACCAGAAATTGAAGAAGTTTATAGAAAAATGACAGGCAATGAAATGAGTA -ATAACAAAAAAATAAAGTTAGGATCATTTTTAACAATTATAAATGTATTGTCACATAAACCATACAGAGC -AATAGATGTAATTGGTTCAGCAAAATTTTTGATGAGGTATATTGAAGATGTAGATAAAGCTCATTATGAT -GCTATGAAGGATTGAATTAATGGTCGTATAATTTTTTATTTGAAAAGAACTTAAAATTCATGGAGAACAT -AAATTGAACTATTATAAGTATGCTGAAAATAAAATTTAGAAGAAATAGAAACTTATTGATACACGAAGCA -GATTGTAGTAACTTATCACCTATGTTTACTACAGTGAGAAGATTAGCTCCAAATAGAGGTAGAATAATGA -ATTATTTATAAGCTTCGACAGAAGCGTAAATACCTGTGGAATTTCATTTGATTATGACAAGAGAAAGAAG -ATTATTTAGTTCAGAGTTTAAGTTACAAATGGTTAGATTATATGAAAATGGTAAGCCTAGGAATGAAATT -ATACGCGAGTATGATTTAACACCTTCGCCGTTAGGAAAATGGATAAAGCAATATCAAAACACGGGTACAT -TCAATCACCAAGATAACTTATCAGATGAAGAAAAAGAGCTGATTAAATTACGTAAAGAAGTTCAACATTT -AAAAATGGAGAACGATATTTTAAAGCAAGCAGCGTTGATCATGGGACGAAAATAGAAGTCATTCAAAAGA -ATGCACATCAATATTCAGTATCAGCAATGGGTAACGTCTTAAAAATACTAAGAAGTACCTATTATGATTC -TATAAAAAGAAAAGATAATAAAATCACTAAAGATGATTCAAACGTAGAACGTGCCGTCATAAATATTTTT -AATGCTAATAGAAAAGTCTTTGCTACAAGACGAATTAAAAATCATTTAAATGACAAGGGTCATACTGTAT -CAAGACGAAAGATAGGTCGTATCATGAAAAAATATAATCTAGTTTCTGTTTATACGAAAGCTAAATACAA -AAATCATCCAAAAGAAACTAATGAAAAACTAATTAAAAATCATTTGAATCGCGCTTTTAATAGAGAACAA -CCAATGGAGACATTAGTAAGTGATTTGACATATGTAAAAGTCGCAGGAACATGGCATTACATATGTTTAT -TTATAGATTTATTTAATAGAGAAATTGTTGGTTACAGTGCAGGTAAAAATAAGGACGCAAATTTAGTATC -AAAAGCAATCAGCAGAATAAATCATAATCTTGAACAAATCAAACTATTCCACACTGATAGAGGCAAAGAA -TTTGATAATCATTTGATAGATGAAGTCCTAGAAACATTTAAAATCAAACGTTCATTAAGTACCAAAGGTT -GTCCTTATGATAACGCAGTTGCGGAAGCAACGATGAAAGCAATGAAAACCGAATTTGTAAAACAAATGCA -ATTTGAAAACTTAGAACAGTTAAAAACAGAATTATTTGATTATGTAAATTGGTACAACAATTTTAGACCA -CATTCTTCATTACAGTATTTGACGCCAGTGGCATTTAAAAATCTACACATGAAAACTGTCTAAAAAAATG -TTGACATACCAATGAAATCTTGAAGGATAGCTTTTCATTTAGAGTAAAAGAAATTGCAACGATTATTCTC -AATGAGATAGCATATTCTGTTAACAGATATCATGCTCAAAGATTAATTAAAGATATTATATCTATTGGAA -TTAAACCAATAATTGAGGATATTTTAAAAGGAGATAAATAATGGACAATAGCTTTTTAGAAAGCCTAAAA -GAGATTTTAGAACCATATGATGATATAGAATCAAATAAAGATGGTTTTGTGTTTGGTGGATATATAGATT -GGCCTAGTTTCGTTGATTACGAAGATTTCCAAGTTGAAGAAGTAATGAGTTTATTAGGGTTGGACATACC -ATTTGGGAGTTCTAAAAATCCGTTTGAATTTTATGAAATTTTAAAGGTTATACAAAATATTGAAAAAGGA -TTATACGAAGCTATTTGTGATGAAGCAATTATTATAAAGGAAGATGAAGAAATTAGTACAGAGGATTTTA -TAGATTCAATTATGGATTATAAGGTTCAAATCCCTACAGTGGATAGGTTGAAGAGTTCAATAACAGAATT -ATTTGAAAAGTACGAAATTCCTCAAGGTATACAATACGAGTATGATGAAGGAATGCCAGAATCATCTAAA -TACTGGTCACTAGAAATGGATGAAGACCTTTATTTTATTAAAGAAATAAATTTTAATGAGTGTTGATTTG -TCAATTTAAGTGCAACAGTTCATCACATAAAACTTCATAAGGAAACTTCCAATTTAAACACTTTCTTGGT -CGATAATTAATTGAGTCTAATGCATAGTTAAGTTGCTCTTGATTTACTTTAGCTAAGTCTGTTTTCTTAG -GGAAAAATTCTCTTAGTAAACCATTGGTATTTTCATTTGTACCTCTTTGCCATGCGGAATATGGATCAGC -GAAGTAGACATTAATATTAAATTGGTTTTCAATATTTTGATAACAAGAGAACTCTTTCCCTCTATCGACA -GTAATAGTTTTAACGGCACCTTTAGGTAGATGTTTGATAAGGTTATTAATTGCCGTCTCCATAGAATTAG -AGGAACGATCAGGCATAAGTACACAATAATAATAACGTGATTTTCTTTCTGCGAAAGTAGCAATGCACCC -TTTACTTTTGCCTCTGCTGGATACAATTGTGTCAGCTTCCCAATGACCGAATGTATTACGTTTCTTTATT -TCCTTAGGACGTTGTGAAATAGGACGGCCAATATTAAACTTACCTCTAGTTTCTTTAGGTTTCTGTCTTT -TTCCTTTTTGACGAAGGCATGAAATAAGTTCGAAATTAATCATATTAGAGTTAATCCATCGATAGATGGT -TTTAAAACAGATTTGGTTTTGTAATAGACGACCTACGATTTGTTCAGGAGACCAGTGGCATTTTAAATAA -TATTTAATGATATTACCAAGTTCTGGAGTAAATCGAGTAGGACGACCACAAAGTTTTCTTTTGGTTTCAT -AATTTTTTTGAGCTGTTTCAGCTTGATATGACTGATTTAAATTATTCCTACTAATTTCACGTGAGATAGT -AGATACAGATCGTTTTAATTTACGTGCAATAGATCTTAAAGAATAATTTTCTTGACGTAAAACCTCTATA -CGTGCGCGTTCAGTTAGTGTAAGATGGTTATAGCTCATGTTGGCACTCCTTGTATGTGTTTTTGTGGTTA -TTAACATCTTACAACAAAGTGCCAATTATGGGCATTTTTTATGAATTTTTATAGGTGTTGCACTTAATAT -TACAATCCGTCGAGTATAAAAATGAAATAGATAAAATTAAATCTAAAATTTTAAATGAAGAAGACGAGTT -AGTAAAAAAATCATTGATGTTAACAATATTTGTATTATCGGAGAGCTATGTTAGTTCATTAATTGTTTCT -AATTTACCTGAAAGAGATGAAAATTTAATAGATAAAGCGTATGAAAAAATTATTCAACAGTATATAAGTA -AAAATATACGTACAAGAAATGGTAGAAAAGAACTAGTAAAAAATTTTTACAATACAGATCTACCAGCAAT -ACCTCATACCAAATTGAGAGATGCCCTTGCTCACGAAATAAATAAAGTTGATTTAAAAAACAATCGTTTT -AAATATGATAATAGTAGAGGTAATAGAAATGAAAATATTATAGAAGTTAGTATTGACGAAATAATTAATG -AGTTAGAAGAATGGTTTTTAAATTTAGAATTTCCGTAAAAACCTCATCATCAACCGATAAGCAGAAGCGT -ATCATAAGTAGCGGAGGAGTTTTTTACCTTGTGACTTATCATAAAGTACGATGTTTATGTAAGTGATTAT -CATTATTTAAGCAGGTTTTTCAAATTAAATAATAACAAGAATAAAATGCACTTAGCGACATTGAAATTTA -TTAATCTAGTAAACTAATAGATTTATAGAAAATTTTATTTGCAAGGGGATAATTTTGAAAAGTAGTATTT -TCTATCTTTCCATAATACATTGTAATTACAACGGAGGGGATATTGTGATGAAGTGTATAGATAAAACGTG -GGTTAGCTATTATAAAGAATTAGCTGATAAGTTAACAGATTATCAAAATAAACGTTATGAATTAATTGAA -ATAGTGAAGGAAGTATATAAAAAAACGGGAATAAAATTCCCTACTTTAGCAAGTGATAATGTATTGATGG -ACATAGATCCTTTTACAATATTTGCATTATTTAATAAAAATTCCATGAGAGAAACTAATAAGGTAAAAAT -ATTAACAGAATTAGCTTCGGAATTGAATATTAAGTCCAAAATTCCGTCAGTTTTTGACAGTATTCCAACA -GTCAATAATCTGAATGCTACATATTATAATTTTAAAGATTATGGAAAAGATAATGATATAGAGACCTTGT -GGACCTTATTTACTGCTGCATTAAATTTTGCGAATTATCCTTCAGAAGATAATAAATTAAAATTTATACA -TAGTTTTGATAAGAATATTACTAAAACAGGAAATGGGAATAGTAAGATTACGAGTGGTTTGTACTGGATT -GCACCTGAAACTTTTGCTAACTTTGATTCACGTTCAATTTGGTACATTTTTGATACATATAAACTCCCTA -AAGAATTGATTAATGAACAACTTAAACCAAAAGAAAAACTAACAGGTCGACATTATTTAGAATTGATAAA -TATGTTAAAGCAAGTTTTGAAGTGCCAGGAAGTAGAGATTAATGATTTTATTGATTTAAGTTATGAGTCT -TGGCATTATTCAGAAATGATAAATGAAGCTAATAGAAACAAATTTGATTCTAATATCAAAGAAATTGTTG -TCAGTGAAAATGACAATATAATACAAAATAGAAGTAGAACAACTAAAGTTATACCATATGGAAAACAAGA -ATTCTTAGATGAAGTTTTTATTGATGAAAGTGATTATGATAGGTTAGTACAACTTTTAAGAAGAAAGCGA -AATGTCATTCTACAGGGACCGCCTGGTGTAGGAAAAACTTTTCTTGCAAAACGTCTTGCTTATTCATTGA -TTGGCAGTAAGTGTAAAGAACGAATTAAATTAATTCAATTTCATCAAAGTTATTCATATGAAGATTTTAT -TATGGGATATAGACCTACTAGTTCAGGTTTTGAACTGACTACAGGGACGTTCTATGATTTTTGTAAGAAA -GCTGATAAAGACCGCGATAATGAATATTTTTTAATTATTGATGAAATTAATAGGGGTAATCTGAGTAAAA -TTTTTGGTGAATTATTTATGTTGATTGAAAGTGATAAAAGAGATGAAGAACTAATATTACTTTATAGCGG -TGAGAGATTTTCTGTACCTAGAAATATTTATATTGTGGGAATGATGAATACAGCAGATCGTAGTTTAGCA -ATTTTAGATTATGCATTACGCAGACGCTTTGCGTTTTATAATATGCAACCGGCGTTTCATACAACTAAAT -TCAAAAAACTTCTTAAAGCAATTAATAATACTGAATTAGAGTCAGTAATTAATTGTATTGAAGGATTAAA -TAAAGAGATTGTTCAAGACGATATGTTAGGTAATGGCTTTGTTATTGGTCATAGTTATTTTAGCAATATT -GAATGTATCGACAAAGATGAGCTTTCTAATATTATAGAATTTGAGATTATTCCTATGTTAGAAGAATATT -GGTTTGATGAACCTTCAAAAATAAATGTATGGTCTGAAAAGTTAAGGAATTCAATAAATAATGATTAATA -TTAAAAATATTTATTATATGTTATCTTATGCATTTACAGTACTTAACAAAAAAGGCTATCAGAAGTTAGC -AACAGAACAATTTGAAAATATATTTGATTTATATTCAGCTATTCTTATAAAAGGTATATCAAGTCAGTTA -AATAGTGGACTTCATCATGAATATATAGAACAGACAGATTCTCTAAAAGTTATTAGGGGAAAAGTTGATG -TTAAGAATTCTATACAAGGCTTAGGAGTTTTAAGTCAACGTATTAATTGTATTTATGATGAATTTTCATT -AAATACATACATGAACAAGATTTTAAAAACTACAATGAAATGTTTAATAAAAACAGATATTTCTAGAAAG -AATAAGATAAAGCTCCGAAAGTTATTAGTTCATTTTAATAATGTTGATACTTTAGATTATAGAAATATTC -AATGGTATCATTCGTTTGATCGAAATAATCAGACGTATAAAATGTTAATATCTATATGCTATTTAATTTT -TCAAGGAGTAATACAAACTGAAAGCAAGGGACAAAATGATCTTATGGTATTTGTAGACGAACAACAAATA -TCTCGGCTATATGAAAAATTTATTCTAGAGTACTATAAAAAAGAATTTCCAGAGCTTGTTGTAACATCAT -CAAATATTCAATGGTCATTAGATAATGATGATAACGTGAATATGCTTCCTGTAATGAGAAGTGATATTAT -GTTGAGATATAAAGATAAATGTCTAATTATCGATGCAAAATTTTATAAAAATACATTACACAATTATTAT -GATACTAAAAAGATCCATTCAACTAACCTGTATCAAATATTTACTTACGTGAAAAACCAACAATTAAATT -TAAAAAAGAAAGCAATACAGGTCTCAGGAATGTTGTTATATGCTAAAACAGACGAAAATATTGTTTTGAA -CGATAAATTTCATATGAGTGGTAGTCAAATCATTATTAAGACATTAGATTTGAACTGTAATTTTACTATT -ATTAAAAAACAGTTGAATGGGATAGTTAATGATATATTTTTACTAAAATAATATTAAAGATTTAAAATTA -TAAAGATATTAATTATGATTAGTGGTTTCAAAATGTTGTTTTTTAGAGGTTTAAGATTGTCATAAATTTA -GTTTTATTTGTTCTCATGTTCAAGTTTCTTTATATCAACTTTTATTTTAGTAAACCTTAAAGAGTAGCAA -CTTCAAAATTCGCATTTATATCTAAAAATAATTTTAAAATAGACATGTTTAAACAATCAAAAGTGTGCAT -TGTTAAATCATCATTTTCAAAAGTTTATTAGCGAAATAGATACGTTAGTCTTAAAAGTGATTAGTCGTAT -AACAGTAATTGCAATTTGTGAAAGTTAATTTTATAGTTGTATGACCAATTTTTAAATAAGATTATTAGGT -AAGGCATAATAGCCCTGTTAAGTGATAAACGATACAAAAGTGATATATAGGAGGCGATATCATGATTACT -ATTGATTCAAAGATTAATAAACAAATCGCTAAAAACCTTTCACTTGAAGGTATGTATGTTACACGAGAAC -AGCAAATACAAATTCTTCATGCAATTAATAATGAGAAAGAAATTACAAATGAACTTATTCGTAAAATCGC -TTTTAAATAATGAAATATATAGCAACTTTTCAAAAGGCATTAAACTATCTTGAAAAGTTGCTTATTAAAT -AATAATTGCTCAAATAAAAAACATATAAATGCTCTTACCAAAAAAATATTCGTAACTAAAATATTACAAA -GTAATTAAAAAGTGTGATTACCCAAAAATCCTTTTTTTATTCAGATTGCCTTAATATTGCTCCTAAATGT -TGCTGTGCAGTAGTAAATAATACGAATGTAATTAACTTGTCAATAGCGGTTCAAAAATGCTGTTTTATGG -CGGTTTGAAAATGTCGTTTTTTAGCGGTTTAAGATTGTCATATATTTAATGATTTTTCGGTTTTATAATC -TTTTAATCGATTTGATTCTCCAGTAATTTTAAATACTTTTGAATGGTGAACAAAACGATCAATTATAGCT -GCTGATGCAATCTTATTACTAAATGACAATTCCCAACTCGAAAATGAAATATTACTTGTAAAATTAAAAA -GTATTAAACAAAAAACGTAATTATGCTACTGAAATAGCTCAAAAGAATTATGAAATTCGAAAAAAGAATT -GCAATATGCCATAATGCTATCTCCTTTCTAAATTAACTCATCGCTTCATAAATACATTTATTCAAATTTG -TAAATCAATTAATACCAATGTTGTATCATTATAATCTATCATTTATTCCTTACCTCTATAAAAAATGTCT -CAAAAAACATATAAACAAATATAACCATTCAATCATTAAAGCATAAAGAACGCTACTTCATTTCCATTAA -TATTTATATAGAAAGTAAAGTAGCGTTATTCTAACTTATTTAGTTTATACCATAATATAATGTCTCTAGA -ATAAAACGCTAGTGATTATGGTTTTCTTCAATTTGATAAAATTCAATCGCATTGCCTCTTAATATACCAT -TAATCGTGTCAGGGTCAATATTACTGTTTTTAATATAGTCTACGCCGCGTGTATATTTTTCATCTTGGAA -GTAAGGGAAGTCTGACCCCATCATAAATTTATCCTTACCAAATGTCTCAATAGAGTTAATCAATGAAGGT -TCGTGGAAGTTTGCTGTATCATACCAAAATTGTCGATTTAATACTTCATAAGGATCAATATTAAAGGCAT -TCCAATCTTCATAATTGTCTTTAATACGAGTCATGAAGAATGGTAAAGCGCCACCTAAATGTGAAATATG -GAATTTAATATTTGGATATTTTTGCGGAATTTCATTTTTAATCAATTGTAATGTAATAAAGGTAGACTCT -AACGGTGCACCAATAACCCATTCTAATTGATAGTCATTGACTAACGGACTTTGAGCGCCACAACCTGTTG -GATGAATATAAATTGTAGCATTGAGCTCATTCATCGCTGCAAAGAAAGGTTCAAATTGTTTATCAGCAAC -AGAGACCTTATCTTTTACTATAGTTGGAATGGCAATGCCCACAAATTCATCTTTTTTCAAAAGGGCTTGG -GCTTCTTCAATAGCTTGATCGACATAGGGTAGTGAGACAGCACCATATGCCAAGAAACGATCCGGATATT -GTTGAACTAATCTTTCATATAAGTCATTAATTTCTTGAGCACTTTGGTGAGCTTCTTCTTTAGTACCCCA -TTGTGGAGATTGTGGTGTCGCAGAAATAATTTGTAAATCTACGCCAGCATCGTCCATCATTTTGAAGCGT -TTCTCTAAATCTTCTTTAGACGCAGATTGATTAATCCCTTTAGCAACTTCAGTACCTTGACTACCTAATT -TGCCAAGTTTGTCTAAATAGTCTTCATTCCATAAATGTGCGTGTGTATCAATCGCTTTTGTTTCAGTCAT -ATTATCCCCTCCATTAAAAATTGTCATTCATAATTTGCTTATTGCCAATAGCTTATTTATTACGAGTTAA -GCTTAACACTTCTAGTAAGCTTAATACATTTAAAAAGAAAAATTTAGAAGCAGCTTGTGCACCTTTATAA -CCATGCCCAGCTTTATAATGGTTATAAATAGCTGTACCCATAACAATATTAATCATAATCGTACCAACAA -CTACTAATTTTTTCCCTAATTTACCGAAAATAGAAGTAAATAAAAGAAGTGAACCAATCATTTCGAAAGC -GCCAGCTAATCTCATTGATCTACGAGATAAACCAAAGCCTTGTTCGAATTGTTGAGCCATTTCATCACTA -TTTTGTACTTTTGGTAAACTGCTTTTAAAAATTTTACTACCTACATATGTGTTAATGACGTGTCTTAATA -ACATTTTAAAATCCTCCAAATAATTAATGTTTGCGAATAAAGAATGCAATGATAGTACCTATAAAGGCAA -TCAATGCGACGACATAGAATGTAATATCTAGACCATGAATAAGTCCTTGACTACCACTTAATGAAGAGGT -TTTTCCTAATCCTGTCATCAATGTGACCAAGATACCAGTACCTATTGCAGCTGACACTTGTCTAATCGTA -TTATTCATGGCTGTACCATGTGCAATGTATTGACGTGGCAAAGCATTTAAAGCTTGAGTTGTCATTGGCG -TCATGATCATAGCATTACCTAACATGGTAACTGAAAATGAAATAATCACATATAGTTGTGTTGTATTTTG -ACTAAATTGAGCCATTAATAATGCACCAATCATAATCGTTAGCATCCCCATAATACTCAAGATACGTCCA -CCAATTTTATCGAATAATTTACCAGTGACAGGCGATAACAGTCCCATAATTAACCCACCAGGTAATAAAA -TAAGTCCTGACTCTAACGGGGACCATTTCATCATCGTTTGCATATAAATTGGTAAGATTGTTAAATTCCC -TATAAATAACATGAACATTAGTACAATTAAAATCATTGCCACTGAAAAGTCGTTATATTTAAATACTCTA -AACTCTAACAATGGCGATTCCAGTTTTAATTGTCGGAAAATAAATACCGTTAATATAACTATGGCAGCAA -TAATAGTTATATAAACCATTGGATGTGACCAACCTAAGTTTCCTGCTGTACTAAAACCATATAGTAAGCC -ACCAAAGCTAACCGTCGATAAAATAACGGATAGTTTGTCTAAGTTTGGTTTACTTAGTTCCGTTATATTT -GGCAATGATAGATACCCGAATACAAAATCAATCATACCTATTAGTAATACGACTAGGAACAGATAGCGCC -AATCGAAAATATTGACGAACCAACCAGCTGCAGTTGGTCCAATCGCGGGTGCAAAACCTATTACAAGACC -GAACATTCCCATTGCCATTCCACGTTTTTCAGGTGGAAACATAATGAAAAGGAGTGTCTGTGTGAGTGGC -ATCAGTATACCAGCACCTAAGGCTTGAATACTACGTCCTAATAATAACATTGGAAAATTGATTCCTAGCA -TACAAATAAATGAACCAATCATTAAAAAGCATGTTGCATTAAAAAATAAAGAACGTAATGTAAAACGTTC -AATTAAAAATGCTGTGATAGGAATCATAATCCCATTGACTAGCATAAAAATTGTCGTGAGCCATTGTGCT -GTACTACTTGATACCGTAAAATCTTTCATAATTTCTGGAAGTATCGTAGTCATCAAAGTTTGATTCAGCA -CACCAACAAAAGCACCAATCATTACGACAGCTATAACACGGTTCCGTTGTTTCAAATCTATATTAAAGCA -TATACATTCCTCAAATTTTGACGCCTCCCTCTCTTTTAAGTGGAACCTACTATCATTTGTTTTATACGGA -ATACGTTCCGTTTGTCAATTTAATAACTCAAGGGTATGATAATAGGTATCTGATAAAATGAAAAACGCAA -TAATGAAGGAGGTAGTTTATATAAATTTTGAAGGATTAGAACAATATTTAAATGGTGATAATACAAGATA -TAACACGCTTAGTTTAGAGACGCTTAATTATTATTTAAAACAATATGTGTTAACTGTCCCGTTCAAAAAT -ATGGATGTTCAAAATGGGATGAAAGTTTCTGCAGAAGTAAAAGATATTTAAAATAATGTAGTGAACCATC -AACACGGTGACTTTTATTATGAAATGAATAATTTCTTTAACGTGTATTTTGAATATAAAGGATTTACTGT -AAATATAGTTTCTTCAACTATCCATACCCATGGTGATGGAAAAAGCTTAAAAGGTTCTCACGTGTCTTTA -ATCATACCTATTGATGGCGTTGATTATGTTACAGGTGCTGACTTTGGAGACTTGCCATTTAGTGTCATGC -CAATTGTTCCAAAAGATAATAGTCCAGTCATTCATGATATGAACGGTGATTTCCATGCAATTTACGTCAA -CGATTATTTATTTTATGTTCGAAAAATGGGGAAAGATAATGACAATAACTTGGATCACACTATGAAGTGG -AATTAACACCTCGTCATATTCATGACTTTGTTTACAATATTGAATATAATGAAATTAATCCTAATGCTAT -TTTTGTGAAACGCTAGTTAGTAACAATGATTAAATCTTTTTGGTCGTGCTACAATGTTACAAAATAATAT -AACTTTAACTAAGCAACAAAAGAAAGAATAATATGATGTAACACCTGAGAATGATAGACAATTTTTAGAA -GAAGCATTTAATTTAGATGTTAAAATTGATAGATTAGAAAGTTAAAAACAACGTTAAAAAGAGGAATATA -ATGGAAAAAAATCAACGAAAAAAACGCAGTGATGCCGAATATAACCAACAGATTATCTTAACTACAATGG -AAGATTTACTAGAACAGGGTGAAGATATAAGTACTAAGAAAATGTCAGATATTGCTAAAATATCAGGTGT -TGGAGTTGGTACATTATATCGTCATTTTGAAAGTAAAACATTGTTGTGTCAGGCTATTATGGATAAAAAA -GTCGATCAAATGTTTATAGAAATAGAAGATATTTTAGCGGAAAATACACAGTGGCCCGTGCGAGATAAAA -TCAATGTTATATTAACAAAGTATCTAGATTTAAAAGAAGCAAATTTCACAACATTAAATTTTATAGAAAA -ATCCAGTTCACACTCTAGTTCTGTAATTAATATTCCATTCTTTGAGCGACTAAAAAACTTATTAATTCAA -CAATTCGAAAATGTTCATTCCATAGCAGACTTGGATTTTAAACTTAATCTAATGCTCAATGCATTTTCTT -CAGATTTCTATTATTTTGTAAAACATAACCAAAAATTAACAAAACAACAATTTTTAGACAAATTACTAGA -TTTATATCTAAAATAATATGTTCTGAAAAATAGAAGTATTTTTTGAATCACTAAATAACGCGCTATTAAA -TGGCTTCGCTATGCCCGTCTAACACATTAGTGTAAAATTTTATAAATTGAATTTTTGATGACGGGTCCCT -TCCTAGGGTGCTCTCTCAGACACCCCAACCGGCACATTATTGTAAGTTGACTTTTCGATAATATTAAAGA -TTTAAAATAATAAAGCTATTAATTATGATTAGTGGTTTCAAAATGCTATTTTTAGAGGTTTAAGATTGCC -ATGAATTTCGTTTTATTTGTTCTCATGTTCAGGTTTCTTTATATCAACTTTTATTTTAGTAAACCAAAAA -GAGTAGCAACTTCAAAATTCGCATTTATATCTAAAGATAATTTTAAAATGCACATGTTTAAAGAATCAAA -AGTGTGCATTGTTAAATCATCATTTTCAACTAATAAGGATTATTAACAGAGAGAAGTGACTTATTTTGGA -ATATAAATCTTACAACAAAATGAGTAATAATATTTTATCTATCTTGTTGAGTGAAAAAAATTTCGATAAT -AAAATGGTAGTCTCAACAGGTAGTTACATTTTGTCTGAGTTGCCATGTATTGTTGCCTATAAAAATAATG -ATATCGTGGGGCTACTAACGTATAAAGTTTATGATGAGTATATTGAAATCATTTCTTTAGATAGTTTTGT -AGAGAACAAGGGTATTGGTAGTCATTTACTTAATTATGCTGAAATAATTGCCTCAGATATGAGTAAAAGA -AGTATCAGTGTTATTACTACAAATGAAAATATTAAGGCACTCTATTTCTATCAAAAAAATAAATATAGAA -TCACAGACGTTATTTTTGATGCTGTAACAGAAGCTAGGAAAATAAAGCCGTCGATTCCTGAAATGGGTGA -AAATGGCATTGAAATTAGAGATGAAATTGTATTGAAAAAATGTTTATAACGTATAAATATACGTTGTTTT -AAATCACCCTAGTTCATACCAAAAAGACTTTAACACAAACAAAAAGGAGGAAACTTAAATTCCTCCTCAA -CCTTTATTACTCATACTATAATTCTAGTTTAACGTCTTCGTCCATTTGGGCTTCAAATTCATCTAGTAGT -GCTCGTGCTTCTGCAATTGATTGTGTGTTCATCAATTGATGGCGAAGTTCACTAGCGCCTCTTATGCCAC -GCACATAGATTTTAAAGAATCTACGTAAACTCTTGAATTGTCGTATTTCATCTTTTTCATATTTGTTAAA -TAATGATAGATGCAATCTCAACAGATCTAATAGTTCTTTGCATGTGTGTTCGCGTGGTTCTTTTTCAAAA -GCGAATGGATTATGGAAAATGCCTCTACCAATCATGACGCCATCAATGCCATATTTTTCTGCAAGTTCAA -GTCCTGTTTTTCTATCGGGAATATCACCGTTAATTGTTAACAATGTGTTTGGTGCAATTTCGTCACGTAA -ATTTTTAATAGCTTCGATTAATTCCCAATGTGCATCTACTTTACTCATTTCTTTACGTGTACGAAGATGA -ATAGATAAATTTGCAATGTCTTGTTCGAAGACATGCTTCAACCAATCTTTCCATTCATCGATTTCATAGT -AACCAAGGCGTGTTTTAACACTTACCGGAAGTCCACCTGCTTTAGTTGCTTGAATAATTTCGGCAGCGAC -GTCAGGTCTTAAGATTAAGCCGGAACCCTTACCCTTTTTAGCAACATTTGCTACAGGACATCCCATATTT -AAGTCAATGCCTTTAAAGCCCATTTTAGCTAATTGAATACTCGTTTCACGGAACTGTTCTGGCTTATCTC -CCCATATGTGAGCGACCATCGGCTGTTCATCTTCGCTAAAAGTTAAGCGTCCGCGCACACTATGTATGCC -TTCAGGGTGGCAAAAGCTCTCGGTATTTGTAAATTCAGTGAAAAACACATCCGGTCTAGCTGCTTCACTT -ACAACGTGTCGAAAGACGATATCTGTAACGTCTTCCATTGGCGCCAAAATAAAAAATGGACGTGGTAATT -CACTCCAAAAATTTTCCTTCATAATATATTTATACCCTCTTTATAATTAGTATCTCGATTTTTTATGCAT -GATGATATTACCACAAAAGACGAACTTATACAAAAGGAATTTTAGTTGATACAACCATTTGAAAGGGAAG -TCTACGAGTAGTCTAAAATGAATGTTGTGGTAAGTTGATCAATATACAAATCAAGGATTATCGCGTTAAA -TTGTTCATTATTAATGATACACTACTTATTATTATGATTCAGAATTTTCTTTGGCTACATATACAGTAAT -GTGATTTATACGTTATCTTATAACAAAGGCAAATTTATAAAGGTGATATTATGGAAGATTTAAAGCAATC -TTTAAAAGGTTTAGGTTGGTATGACTTTTTTTATAGTACCTATGTTTCTACTATTCGTGTATCTGCCGAA -TTATAATTTTATAACTATATTTATTAACATTGTTATCATTATTTTCTTTTCCATAGGTTTGATTTTAACT -ACGCATATAATTATAGATAAAATTAAGAGCAACTCGAAATGATTCATTAACACGAATGTGATTAAACATA -AAACTGAAGGAGCGATTACAATGGCGACTGAGAAAGATGTAAATGATTTATTTTTAAATCATGTGAATTC -AAATGCTGTTAAAACTAGAAAGATGATGGGAGAATATATTGTTTATTATGATGGTGTGGTTATAGGTGGT -TTGTATGATAATAGATTATTGGTCAAGGCGACTAAAAGTGCACGTCATCAATTTCAAGATAATGCATTAG -TATCGCCGTATCCTGGTGCTAAAGAAATGATATTAATTCCAGACTTTGCCGAAGCAACAAATATTACTAA -TTTATTTGAGTGCATAAAAAATGATTTGAAAAACTAATCATAAATTGCCATGCTCAACTATTTTGAAAAG -CATCATTTCCATATTATCAAATTATTGAGTATCTCGATTTATTGTTATACACAAACAGTGTTTTTGTTAT -CATAGAGCTTATAAATATAATAAATTGAATAAGTAACTTTACAAAACTAGAATGATTCAATTCAATCACA -ATTATTTGAAAATAGAGGTGAGCAGGTGAACGATATGTTAATTAGTCTCGTAATCCCAGTTTTTGCTTTG -TTAGTTATTGGTGGTATTATTTGGATGATTATAGAAGGTATAGTACATATTTCAAAAAAGAATAAAGCAA -TTGATAACTTTTTTAACAAAGTTAATAAAGTAAGTGAGACATATAAATTCGCTACTACTTTTTTATTTCT -AATCTTGGCTACGGCTGGTATTTCTCAATTTTATCTATATTATATAGTATCAGAGTTTCTTTTTTTGCTG -GTTATATTTACCTTTGGTATTGCAGGTATCATTTTTTTAATGCCATATGGCTTATGTTTCCTACCACTTT -ATAAACAAAAAAAGAAAAAACAGACATTTAAAAAATACATGGCTTACACTACGATTGGTTTGTCAATTTA -TCTAGGCTTATCTCTAGTTTTGGTTCACACTACGAAAATTTATATGGACGAAGGTGGCGTAAGATACTAT -TACGGTAGTTTTGTAATGAAACAAGCGGGCGGTTATGCTTATTTAGCTTTAGCAGTACTTTCAACGTTGT -TAATTGTTGCGAAAAAAGCTACAAATAAAAATAAAAAAATCGAAACCGTCGACAATACAAATATAACGGA -AAGATAATTAAGAGAGTGCTCATTCAGGAGTGCTCTTTTTTTGATGTTCAAATTTAGTTGGAAATGAAGG -CATAGAAGAAATTTTTATAGTCATTTATTGGATAATGAATTATGGTCATATCGATTAATTTTATTAGTGA -GGATTTTACAAACATTTGTTGAATAAATATGGTAATGATAATATATGAATATTTTTGAAAAAACACTAAT -ATGATTAAATTATTTGTTAAAATAGCATTAAGTAAAAAACAAACAGGGAACAAGGTGGGATTTCATGAGT -CAATTGCTAAATGATACGTTATCGGCTTGGTTGTTAATTGAATCTTTAAGTCCAGGAGAAGTAAATTTTA -CAGCGGAAGATATACTCTCAGCTGAAAATTTTAAAAATGGTGCAAAGCAAGCGCAACTTCAAAGTTTTGA -TGAATATTTTGAAATATGGAATGATGAACGCTTTATTATATCAGAAGAAAAATCAGAGATTGGCGAAATC -ATTTTTAAATTTTACAGACACTGTTTCCGGTATAATGAAATTAATTTGAAAATTCAGGATATTTTTGATG -ATTATTCAGATATTCATAATCCAAATGGGACACACTGTTATGGTTACACATTTAATATAGATAAACACGG -TCAAGTGATAGTTGATTCTATACATATTCCGATGATTATGAGTGCATTGAAAGAAATTGAAAAGAATAAA -AATGCTAATATAGAAGAAAAATTTAATGATTCTGTTGAAAAATTTGTTCAAAAAGTAAAAGAAATTTTAG -CGGATGAACCAATTAATGAATTTAAATTGAAGAAGATGGACATAGCTTATGATGAGTATTTTTCTGTATT -AAATTCAAAGAAAGATGGATTATTTGCACATTATGTAGCAATAGAATATGTGAAAGATAGTGATTTACCA -CAGCCAGAATTTAATAGCTTCTTCATAAGTGATATTGAGAAAGCAAGAAAATCTCCCAATCAAACTTTAA -TTGATTACATTGAGGGTGTAGAAGAAAGTAAGCGCATAGAAGTGGATGAAAATAAAGAAATGTTCGACAA -ATTTTTACATCCTTCACGTTTGCCTGATGGACGCTGGCCATCACAGACTGAGTTTAGATTGTCATTAATG -CAACAACTTGCTGTAAACCAAATTACGAGTGGTAATGAAAGGATAAGTTCAGTTAATGGGCCACCAGGGA -CAGGTAAGACTACTTTATTAAAAGATATATTTGCGCATCTAGTAGTTGAAAGAGGTAAAGAGTTAGCCAA -ACTAAATAATCCTAAAGATGCATTTGTCAAAACAAAAACTCATGAAACAGATGATAAATATGTCTATTTA -CTTAAGGAATCTATTGCTAAATATAAGATGGTAGTCGCATCTAGTAATAATGGAGCTGTTGAAAATATAT -CTAAAGATTTACCGAAAATTGAAGAAATTATAAGAAATCCCGAAAAATGTAAATTCCCTAAATATGAACA -GAATTATGCAAATTTAGCACATGAATTAAAAGATTTTGCTGAAATAGCTGAAGATTTGATTGGTGAAAGT -GCCTGGGGCTTATTTTCTGGAGTATTTGGTAAAAGTACTAATATTAACCAAGTATTGAGTCATATGTTAA -AACAAGATGCGAATGATATTGGCTTTGCTAAATTACTACAAAATGAGAATAATCGTATGAGTTATAACGA -GTTAATGAGTGAATGGCAATCACATCAACGTGCATTTTTAGAAGAGTTGAGGCATGTTGAAATGTTAAAA -GAAGAATCTATTAGAGCCTATGATGTTTATAAAAATTGTGAGTCTTACTCTAAGGTTGAACATGAACTAA -ATAGCAAAAAAATGAATGTTAAGGAAAAGTTGAATCATTTAGAAATTCAAATATCTTGTGACAATAAAGA -AATTGAAGATTTGGATGATCGAATTAATTATAATACAAAGCAACTCGAAACTTTAAATGAGTTAATTAAA -TCCATCAGAGATAGTAACAAAGGGTTTGTTAACAAGCTGAAGGCGATATTTAATTCAGAAGAAGATGAAA -GATATAAAAAACATAATGCAGAGAAGCAACAATTATTAGGACAACAGATAGAGTTAGAGAAATGTAAAAA -AATTAAAAATGAAGACCTTGTTAGCAAACTAAAAGAAAAAGAGAAATTAATTAAACAATTAACTAAAGTA -CAGTTGCAATTAGACGAGTTAAATTCACAGTTACAAGAGTTAGAAGCATATCGTATTGAGTCAAAAATTA -CAATTCCAGAAAAAGATTTTTGGAGTGACAACAATTATGATGAGCGCCAAGTTACTAATTTGTGGACGAG -TGACGAACTTCAATACAGACGTGCCATGCTCTTTTTAAGAGCAATGATATTGCATAAATTATTATTGATT -GCTAATAATACAACTATTTATTATGCGATTAATGATTTTAAAAGTAGAAGGAAATTAATTGATGCAAATC -CAGATAAAGTACACAACGCATGGAATGTGATGCATTTAATATTTCCAGTAGTTAGTACGACGTTTGCAAG -CTTTAAATCTATGTATGGGGGCATACCAAAAGATTTCATAGACTACTTATTTATTGATGAAGCAGGACAA -GCAATACCTCAAGCAGCTGTGGGAGCATTATTTAGATCGAAAAAAGTTGTAGCCGTAGGTGATCCGATTC -AAATTGAACCTGTTGTTACTTTAGAAAGCCATTTAATTGATAATATTCGTAAAAATTATAATGTTCCGGA -ATATCTAGTTTCTAAAGAAGCTTCTGTGCAGTCTGTCGCTGACAACGCTAATCAATATGGCTTTTGGAAA -TCTGATGCTACTGATAGTAATCAAAAAACGTGGATAGGCATACCTTTATGGGTGCACAGACGATGTTTAA -AACCCATGTTCACGATAGCTAATCAAATTGCTTATAATAATAAAATGGTGCTACCTAGTAATATTACAAA -CGTAGGTAAGACCGGTTGGTATGACGTTAAAGGAAACTCAGTACAAAAACAATTTGTGAAAGAGCATGGC -GAAAAAGTATTGGAATTACTAGCTAATGATTGGTTTGAAGCGATTAAGGAAGGTAAAAATGAGCCGAGTT -CATTTGTAATATCACCATTTTCAGCAGTACAAAAACAGGTTAAACGTATATTAAAGCAACAACTACCGAC -TAGAATTGATATTGAACGTACAAAAATTAATCAATGGGTCGATAAATCCATTGGTACTGTTCATACTTTT -CAAGGTAAAGAGGCTCAAAAGGTGTATTTTGTAATAGGTACTGATAATACTCAAGATGGTGCTGTGAACT -GGTCATGCGAAAAACCAAACTTGTTAAATGTTGCAGTGACAAGGGCTAAAAAAGAGTTTTATGTAATTGG -TGACATGCAAAGAATACAGTCGAAACCATTTTATGAGACCATTTTTAAAGAAAGAAATGTAAAATGAAAT -GACAGCATTTCTATAGGCTAATCAAGTGATACTTAATTACCGCGCAATTTATACATTTTAAAAGGAGTAA -AATTGAATAATGAAGAAATTTAACAACTGGATATTAAATGCAATAAGTGGATCTCAAACAGACAAGAATG -AAACAACTGAAGAATTAAAAGGGGCAAAATTTATTATTTTATATGCATATTCAATGCTCGTTTTGCTTGC -GTTAGTAATTTCTAACATATTCATTCACATTTTGGAGCCTAAACTATCAATCACCACTCAAATCATCATC -GTTTTGATTTTAATTGAATCACTAATTGGACTGCGTTTCTTGAAAGAGTACGATGTTAAGCGTGGCAAAG -ATAAAGAAAATAAGAAAAATAGTAAGGATTTCGTTAAACTAAAATCAATTTTAGTAGCAATTTTATTTAC -ATCATTGGCGCTGACAGCAGGCACTGTAGCTGATATATACGGTTTCACTGACTTAGGAAATACTAGAAGT -GATTTAATCGTTTGGAGCATAGGTGGTATTATATTTGGCCTCGTATGTTACACAATGGAAGATAAAAAAT -AACGATAAGGAGCTGGCGATTATAAAGCTAGCTCCTTTTTTAACTTATATATGTAAAGAACTATTCTAAG -GATTTTTAATCATATGTCAATAATTCCTATAATACATTATTAAAACATCAATTAAATAAGTTTTAAAATT -TTACACATATTTTTATTTAAAAAAGATGTATAATTAATGTATTAAATATAGAAAGAAGTTGATATTATGA -AAAAGTGTATTAAGACTTTGTTTTTAAGTATCATTTTAGTAGTGATGGGTGGTTGGTATCATTCAGCACA -TGCGTTAGATTCGTTGAGTAAAAGTCCAGAAAATTGGATGAGTAAACTTGATGAAAGCAAACATTTAACT -GAGATTAATATGCCAGGCTCACATGATAGTGGCTCATTCACTTTAACTGACCCGGTAAAATCAGTTTGGG -CAAAGACTCAAGATAAAGATTACCTTACTCAAATGAAGTCAGGAGTCAGGTTTTTTGATATTAGAGGTAG -AGCAAGTGCTGATAATATGATTTCAGTTCATCACGGCATGGTTTATCTGCATCATGAATTAGGAAAATTT -CTCGATGATGCTAAATATTATTTGAGTGCCTATCCAAACGAAACAATTGTGATGTCTATGAAAAAGGACT -ACGATAGCGATTCTAAAGTTACGAAGACATTTGAAGAGATTTTTAGAGAATATTATTATAATAACCCGCA -ATATCAGAATCTTTTTTACACAGGAAGTAACGCGAACCCTACTTTAAAAGAGACAAAAGGTAAAATTGTC -CTATTCAATAGAATGGGTGGTACATACATAAAAAGTGGTTATGGTGCTGACACGTCTGGCATTCAATGGG -CAGATAACGCGACATTTGAAACGAAAATTAATAATGGTAGCTTAAATTTACAAGTACAAGATGAGTATAA -AGATTACTATGATAAAAAAGTTGAAGCTGTTAAAAATTTATTGGCTAAAGCAAAAACGGATAGTAACAAA -GACAATGTATATGTGAATTTCTTAAGTGTAGCGTCTGGAGGCAGCGCATTTAATAGTACTTATAACTATG -CATCACATATAAATCCTGAAATTGCAAAAACGATTAAAGCAAATGGGAAAGCTAGAACGGGTTGGCTGAT -TGTTGACTATGCAGGGTATCCGTGGCCTGGATATGATGATATCGTAAGCGAAATTATAGATAGTAATAAA -TAAGGATTCAATAATGATATTAAGACGAGTATGAAAATAGTTAGATTCTAATTATTTTCACTACTCGTTT -TTATTTTGAAAATAAGTAATGATTCAACAATATTATAAATTGAACAGATTGTTTGTGGAATTTTTGATAA -TATTAAAGTGAAAAAGTGTTATAAATTGATATTAATATGTAATTTGCAAAAGTAAATCATTTTAAAAAGA -AGAGAGTTGTAAGATGATGAAACGATTAAACAAATTAGTGCTAGGTATTAATCTTCTGTTTTTAGTCATT -AGTATTACTGCTGGTTGCGGCATGGGTAAAGAAGCGGAAATTAAGAAAAGTTTTGAGAAGACATTGAGTA -TGTATCCGATTAAAAATCTAGAGGATTTATACGATAAAGAAGGTTATCGTGATGATCAATTTGATAAAAA -TGATAAAGGTACATGGATTGTTCGTTCGTCAATGTCGATTCAACCTAATGGAAAAGATATGAACGTAAAA -GGTATGGTTTTATATATGAATAGAAATTCAAGAACAACAAATGGCTATTACTATGTTGATGTTATAGAAA -GACAAGATAAAGGTATACATCGTGATAACGAAAAAAAGTATCCTGTTAAAATGGTCGATAATAAAATCAT -TCCAACAAAAGATATCAAAGATGAGAACATAAAAAAAGAAATCGAGAACTTTAAGTTCTTCGCGCAATAT -GGCAGCTTTAAAGATTTGTCGAAGTACAAAGAGGGAGATATTTCATATAATCCAGAGGTGCCGAGTTATT -CAGCCAAATATCAATTAACGAATGATGATTATAATGTAAAGCAATTACGTAAAAGATATGATATACCAAC -AAATAAAGCACCAAAGTTATTGTTGAAAGGTACAGGTAATTTAAAAGGCTCATCAGTTGGATATAAAGAT -ATTGAATTTACGTTTGTAGAGAAAAAAGGAGAAAATATTTACTTTAGTGATAGCCTACATCTTGAACCAA -GTGAGGATAAATAATCATCCACACACACGATTCAATATGAAATTCAAATATGTTGCTGTAAAATAATGTA -AAATAAACGTATTCATATTACTGAATTGAGGGATAGTATGCAACGTGATTATTTAATTCGAGTAGAAACT -GAGAGTATGTTAGATTTCAAAAGGCTCAATGGTTTAATGATTGGTTTTGTTATTAAAGGTGAGGCACACA -TTTATGATGAAAATAATATGACGCAATGCAACAGTGGCGACATTTTCATCATTAACCACCGCGACTTGTA -TCGATTTCAACTTCAACAAGATGGCATCATATGTTATATCCAATTCCAAATGAAATATTTAGCAGACAAG -TTTGATGATGTGCATTGTCTATATTTTCACTTAACAGATGCGACCACAACAAAAAATATACATCAACTGA -GAAATATAATGGCAAGACTGGTTTCAACACATATTCGACATAATGAGTTGTCTAAATTGACTGAGCAACA -ACTTGTCATTCAGTTGCTTATGCATATGATTCATTATGTTCCGCGTACATATCATTCGAACCAAAGTATC -TTAAATGATGATAAAGTGAATCAAGTATGCGACTATATCGAGTTACATTTTCATGAAGACTTAAGCCTTT -CGGAATTAAGCGAATATGTTGGGTGGTCAGAGAGCCATCTGTCTAAAAAGTTTGCAGAATCGCTAGGTGT -AGGATTCCAGCATTTCTTAAATACGACGCGAATTGAGCATGCGAAACTCGATTTGACATACACAGATGAA -ACGATTACTGATATTGCATTGCAAAATGGCTTTTCAAGTGCAGCGAGCTTTGCGAGAACATTTAAACACT -TTACGCATCAAACGCCTAAACAATATCGAGGTGATCGTCCAGCAATCACTGAAAATCAGCAATCGGCACA -ACATAATTATCACGACCGTGAATTGATATTACTTTTAAATGACTACATTGAAGAAATGAATCATTTCATT -GAAGATATTGAAAAGGTGAACTATAAAGAGATTACCTTTCAACCAACCAATCACCAACTAAATCAATTTA -ATCATATTATTCAAGTGGGCTATTTGAGGAATTTGCTCAATACACAGTATCAATCACAGTTGCTTACATG -TCATAGTGATTTTCAAGTCAATGAAGTATTAGCATATGATGTGATGCCATATATTATGAAAAAGCTCAAT -GCGCCATTCACGTATGATGCAGAAATTTCGAATATATTTTATGATATTGATTTGTGTTTAGACTTTTTAT -TAGATCATAATTTTAGTCTAACCATGCATTTGAATCAGTATGACTCACGAGATTATATCGATGCATTCAA -AGTATTTATCCATCACGTTGCCCTGCATGTCAGTCATAGAAAAGATTTGAAGTTCAACTTGTATGTGACG -ACATTGCACAATTCTTTGATTGAAATGATTGATTATTTTAAAGCATTATTCCCCAATGGTGGCTTGTACG -TTCACTTAGATCAAGCTACGGAAAGACATCTACCATTGTTGAAACGACTTGAGCCACACATCGACCATTT -TGTATTTGATGCTAATTCAAATGATGCTGTTGATTTTAATAAAATGAATGATGATGAATTTAAAACCGCG -AGTCAAATGATTATTAATAAAACGAATTACCTTATCGACTTAATGCATCGTCATCACCTAAAGCGTCCAC -TCATTTTACTCAATTGGAATACATTGACGGGTGATACATTTATTACAAACGGCGAATATTTTAGAGGTGG -TATCATCATTGAGCAATTATTAAAATTAAGCTCAAAGGTAGAGGGGATCGGGTATTGGTTGAATTATGAT -TTGCACGTCAGTCATTGTAAAAATGAACGGGATTATATGAATTCTATTGAACTGTTTCATCAATATAATG -GAAAACGTCCGGTCTATTTCACGGCATTGTTATTTAATAAATTAACAAGCAATATTTTATATTCTGATGA -TACATGTATTGTCACGGGAACTGATTCAAATTTTCAAATATTGTTATATGATGCAAAGCATTTTAATCCA -TACTTAGCGTTGGACAATCAAATGAATATGCGTGCGACGGAAATGATTCATTTGAACATAAATGCCCTAG -AAGAAGGTATATATAAGATTAAACATTTTACCTTAGATAAAGAAAATGGTGCATTATTTAATCTTTGGCG -AAAACATCATACGATACATGGCATGGACAAGGACTCTATAGATTACGTTAATCGAATGAGTTTTCCAAAA -TTAGAAGTGTACGATATAGATGTGACGGATACGCTGGCATTAAACATTAAAATGATTACGAATGGGATTC -ACTTAATTGAAGTAAAACGTTACCCAAGTTCATAAAATGATCACAAATCGCAAATTTTGTTATACATAAT -TTGTGATTTTTTGTATTCAAAGTTAAAATTGCAAAAAATTAATGGTTAACATCTCTGTTGTTGGCAATAT -AAATAATGATCAATCATATATGATGTAACTAAGGAGATGAATGATATGAATCAACAATTAATTGAAGCTT -TAAAATCAAAAGAAGACAAAATGGTTGAGATCAGACGTTATTTACATCAGCATCCAGAATTATCTTTTCA -TGAGGATGAAACGGCGAAATACATCGCTGAATTTTACAAAGGTAAAGATGTAGAAGTAGAAACGAATGTC -GGACCACGTGGAATTAAAGTAACGATTGATTCAGGGAAACCTGGTAAAACATTAGCAATCCGTGCAGACT -TTGATGCATTACCCATTACTGAAGATACAGGATTATCTTTTGCATCACAAAATAAAGGTGTTATGCACGC -ATGTGGTCACGATGCACATACAGCATACATGCTTGTATTAGCAGAGACGCTTGCCGAAATGAAAGATAGT -TTTACAGGAAAAGTCGTTGTGATACATCAACCAGCTGAAGAAGTACCACCAGGTGGTGCTAAAGCAATGA -TTGAAAATGGTGTATTAGACGGTGTTGATCATGTATTAGGTGTACACGTCATGAGCACAATGGAAACAGG -TAATGTGTATTACAGACCTGGTTATGTTCAAACAGGACGCGCATTCTTCAAATTGAAAGTTCAAGGTAAA -GGTGGTCATGGTTCATCACCACATATGGCCAATGATGCCATTGTTGCAGGTAGCTACTTCGTCACAGCGT -TACAAACAGTTGTATCTAGACGACTAAGTCCATTTGAAACCGGTGTTGTCACAATCGGTTCATTTGACGG -TAAAGGTCAATTCAATGTTATTAAAGATGTTGTTGAAATTGAAGGTGATGTACGTGGATTAACAGATGCT -ACAAAAGCAACAATTGAAAAAGAAATTAAACGTTTATCAAAAGGATTAGAAGCATTGTATGGTGTAACTT -GCACATTAGAATATAACGATGATTATCCTGCATTATATAATGATCCAGAGTTTACTGAGTACGTGGCTAA -GACGCTAAAAGAAGCAGACCTTGAATTTGGTGTCGAAATATGTGAACCACAACCACCTTCAGAAGACTTT -GCATACTATGCTAAGGAACGACCAAGTGCCTTTATTTATACAGGTGCAGCTGTGGAAGATGGTGAAATTT -ACCCACATCATCATCCTAAATTTAAGATTTCAGAAAAATCATTACTTATTTCGGCAGAAGCTGTAGGGAC -AGTTGTTTTAGATTACCTTAAAGGAGATAACTAACATGAATGAAACGTATCGCGGGGGCAACAAGTTAAT -CTTAGGTATTGTATTAGGTGTTATTACATTTTGGTTGTTTGCACAATCACTTGTAAATGTTGTGCCAAAT -TTACAACAAAGTTTTGGTGCAGACATGGGAACAATTAGTATTGCGGTAAGTCTAACCGCACTATTTTCAG -GCATGTTTGTTGTTGGAGCAGGCGGCCTAGCAGATAAAATTGGACGCGTGAAAATGACAAATATCGGCTT -ATTATTAAGTATTATTGGTTCAGCATTAATTATTATTACAAATTTACCAGCATTGCTAATTTTAGGCCGT -ATTATACAAGGCGTATCAGCAGCGTGTATTATGCCTTCCACATTGGCCATTATGAAAACTTATTATGAGG -GTGCTGAACGTCAGCGTGCCTTAAGCTATTGGTCTATCGGTTCTTGGGGTGGAAGTGGTATCTGTTCACT -CTTCGGTGGGGCAGTTGCGACAACTATGGGTTGGAGATGGATTTTCATCTTCTCAATCATCGTTGCCGTA -CTTTCAATGTTACTCATCAAAGGGACGCCTGAAACGAAATCAGAAGTTACCAATACACATAAATTTGACG -TTGCAGGTCTAATTGTTCTAGTAGTTATGTTATTAAGTTTAAACGTTGTCATTACTAAAGGTGCAGCACT -TGGTTATACATCATTATGGTTCTTTGGTTTGATTGCAATCGTAATTGTAGCATTCTTTATTTTCTTAAAT -GTTGAGAAAAAAGTAGATAATCCGCTTATTGATTTTAAATTATTTGAAAATAAACCATATACAGGTGCAA -CGATTTCGAACTTCTTATTAAACGGTGTTGCAGGTACATTAATTGTAGCGAATACATTCGTACAACAAGG -TTTAGGTTATACAGCATTGCAGGCAGGATACTTATCAATCACTTATTTAATCATGGTGTTATTGATGATT -AGAGTTGGTGAAAAATTATTACAAAAAATGGGTTCTAAGCGACCAATGTTATTAGGTACATTCATTGTGA -TCATTGGTATTGCACTTATTTCATTAGTATTCTTACCAGGCATATTTTATGTTATCAGTTGTGTCGTAGG -ATATTTATGTTTTGGACTAGGCTTAGGTATTTATGCAACACCTTCTACAGATACAGCTATTTCAAATGCA -CCGTTAGATAAAGTTGGCGTTGCTTCAGGTATTTATAAAATGGCTTCATCACTTGGTGGTGCATTCGGTG -TCGCAATTAGTGGTGCAGTATATGCCGGTGCAGTTGCTGCAACGAGCATTCATACAGGTGCGATGATTGC -ACTTTGGGTTAACGTATTAATGGGAATCATGGCATTTATCGCAATTTTATTTGCGATTCCTAATGATGAT -AAACGTGTCAAAGATGCGAAATAATAACGATGACATGCCCAGTGTTTTGATAATGATTTAAATGAAAATA -AAGCAAATTAAATGAGGAAATGTATAGAGCAGTGCATATAGATAAATCTATGATTGGATTAACACTAATA -TAAATATAAATAAAAAACCATCCACTTAAACTTTTGATAAGTTAGGTGGATGGTTATTTATTGCGTTGTT -CTAAAAATTTGGACATTTATATGGAAAGAACTATATATAATGTGAAGGTTATGGCAATTCGCTTCAATGA -AGGCGACGTGTAAAAGTGTATATTAAACGTTTCGGGGTCAGACTCCGAGAACAGTGTCCGTCATGCTTAC -CGCATACTAATGAAGCATTATTATATCAGTGGTTCTAGCCGATTTAAGATAATAAATTTTGCTAAACAAA -AAAGCCAACCCATGAATGTTGGATTGGCTTTTTACATGCATCTGAATCTCTAATTTTAAAAAATATGAAT -ATAAATAAGACATTAAAAATTAAATTTCAGTTGTTGCAATTTCTTCATCTGTAGGTACATCATCGTTAAG -ACCAACAAGTGCTTCAGAAACATTTCGTGAATGATAACCGATACGTTCAAGAACACCAATCATATCGATA -TATAGTAATCCGCCTTTTGTTGTACATTCACCACGATTAAGGCGTTTAATATGACCTTTGCGTAGTTTAT -GTTCAATATTAAATGATTCTCTACTACGCTCTACAATTTCATCTTTTTTCGTTTTGTCATAAACATCTAA -CATGTCAATGGCTTTATCAAATGACTCAGCAACATGGTTGAATAATTTATCCATACCGCGTTGTGCATCT -TCTGTAATGCGAATATCTTCATCATGTTGGCGTTTTAATTGAGCGACATACTCTTCTGTTAGCTCTGCTA -CTTTTAAAATAGAGCGATTGACATCAAACATAACTGCTAAACGCTCAACGTCTGCCTTCGTAATGGCTTT -TGTAGAAATTCTAACTAAATAATTTCGAATACTATCATTGATTGTTTCAACAGCTTGATGCTTTTGTTCA -AGCTTTTTGATTAATTTTTTGTCGTCTTTTGTAATTTCGCGAATGTCTTCAAACATTGATAAGACAATCT -GACCCACATTTTGTAATTCTTTTTGAGTTTCTTGTAATGCAACACCAGGTGCGTGATAAACAAGATCTTT -GTTTAAGTGCTGAGGTTTATAGTCATCAGCAATATCTTTACCTGGGACAAGCTTTGTAACTATCCATGCT -AAACCTGCTACAAATGGTAATTGAATCAAAGTATTTGTTATGTTGAAGATACCATGTGATACTGCAATCG -TCATCGCTGGTTTTAAGTGCCATACATCTTGTAACAAACTAATCAAATGAATCACAACTGGCAAGAAAAT -TGTGAAGATAATTACCCCGATTAAGTTAAAGATGACGTGTACAAGCGCCGCACGTTTTGCAGCGATTGAG -CCGGCTAAACTAGCTAAGATAGCTGTAATCGTTGTACCAATATTATCGCCTAGTAACACAGGGATTGCTG -CGTTTAAGCTAATTAAATCTTGTTGATAAAATTCTTGTAAAATACCAATCGTCGCACTTGAACTTTGAAC -TAGTGCTGTTAACCCTGCGCCGACAATGACAGCAAGTATTGGATTTGTAGACATATCAAGCATTAATTGC -TTAAATCCATCTAATGATGCTAAAGGTTTAACGGCATCACCCATAAATTCTAGACCGAAGAATAGAGAAC -CGAAACCGAATAGTATGCGGCCAATGTTATTGATTTTAGAGCGCTTAAAGAAAAAGATTAAAAATGCACC -TAATGCTAAAATTGGCATTGCATATTCGCCTAAATCTATACCGATAATAAATGCTGTTACCGTTGTTCCG -ATATTAGCACCCATTATCACTCCAATGGCTTGTTTTAACGTCATAAATCCAGCTGTTACCAGTCCGATTG -TGATAACTGTCGTACCTGAACTACTTTGTATTAAAATAGTTACAACGATACCTGCAATAACACCTAATAC -TGGATTTGATGTAAATTTGTTTAAAATATCTCGTAGCCTGTCTCCTGCTGATGCTTGAAGTCCGTCTCCC -ATGATTTTTAAGCCGTAAAGGAAAATACCTAAACCACCTAAAAAGGAGAAAATGACTTCTGTAACCGACA -TTTCCATTATTTCACCTCAAATAAGCTTTATATTTTGATTATCGCTTATAATTGTAAATTTAATGTTAAG -ATTAGGTAAAATTATTTAACAATATATGTTATTTGTATATGACTTGTAAAATATCGTCACTTATTATGTA -AATTTTCAGTGTGAAATGGCAGGTTTGTAATCACTTGTTTAACAAAATGATGCAATCAATCATGCAATTA -TGTGTCATCAAAAAAATCATGTGAGTGGGATAATGAAATAAAGTTTGTGAACATATGATTTCTATCCCAC -TCCATGATTTGAAATCACCAAATAAAAATCTATTAATGGTTTTCGTTATAACAATTTGTGCTCTTTTAAT -AATGACTCAATGTACGTACCTTTTATCTTTTTAAGGAATCCTGCTAATGCGAGTTTTTGCATTTTCGAAT -CTTTAGTAATCTCGCGCAAATCTTGATGGTCATTCAGTTCGTATACGGCATCCATTAAGACGCGAAGATC -AAATGTACTATTGATGACCTCTGGAATACCACGATCTATATTTAGTAATTGATAAACAGCTTCCATGGCA -GTACGAACCGAATATTCTGTTGTAAATACAGTATCTCGCTCTGTTTCTGCAAAGTTACCAATAAATGCTA -AATTTTGTGATTGATGCGGGACGACTAAAGGTCTGTCGCCGATAGCACGCGTCATGAAATAAGAGGTAAT -ATATGGCATATAAACAGGAATCGTATTAGATGCATGTTTTGCTAAGTCTTCAATTTTGTCAGTTGGTACA -CCTAAGTGATATAGCCATTCTTGACATATTTCATTACCACTACATTCTGTGATTGGCTTTTTAATATAAT -CGCCGTTTACATCTGAATATAAGGCATAAATCCACGTAGATATTTCATTTTTAGGTTGGTCTTTAAACTG -TTGCTGACGATTGATTGTAAAACTGATTTGCCATGCAGAATCATTGATTGTAATAATTCCGCCAGTAACC -GTTTTGCCTGCAAGAGGGTCACGTTTACAAATGCTTTCTATTGTATCGATAATATCTTTATTGTTTGTTG -TCGATGTTGCAGAAACAAACCAACTTTTTTTAGGAATATTTTGGCAAAACTTATCAGGATTACCAAATTC -AGGACTTTGTCGTGCTAAATTTTTCCATAGTGTCCAACTACCACCTAATTCGTCAGTTGGTGGCGCTGGT -GTATCATTATCACCATAAGTAGAGCTTTCTGTAATACTACCGTTTGTCACAAAGACAAGATCGTTTATAG -TCAGTTTAATAGATTCTGCATTACCATTACGGTCAATTAATATTTCTCGGGCAATTTTTTGACTTGTCGT -AACATCTACTTTAATATCTTTTACTTTTACATCGTATTCAAATTGAACCCCATGCGATTTTAAATATTCA -ACCATAGGTAATACTAAGGATTCATATTGATTATATTTAGTGAATTTTAAAGCTGAAAAGTCTGCGAGAC -CACCAATATGATGAACGAATCGCATTAGATAGCGACGCATTTCCATTGCAGAATGCCACGGTTCAAATGC -AAACATCGTTTTCCAGTAAATCCAAAAGTTTGAATTAAAGAAATCGTCGGAAAATACATCTGTTATTTTG -ACATCATCTAAATCTTCTTCATTCGTTAAGCATAAATCTAAAATTTCTTTAATCGCCGTTTTAGTCAAAG -TGAAGTCTCCATCTGTGACTAAACGTTGACCCTGTTTCTCAATAACACGACAGCGAGAATAGTTAGGGTC -TTCTTTGTTTAACCAATAGAATTCATCTAATACTGACGCATGATCAATTTCAAGTGAAGGGATAGATCTG -AATAAATCCCACAAACATTCAAAGTGGTTCTCCATTTCACGACCACCTCGGACAACATAGCCTTTTAAAG -GCATATTTTCACCATCAAGACTACCGCCCGCTTTGGGTAACTCTTCTAAAATATGAATCTTAGAACCTTC -CATTTGACCATCCCTTATTAAAAAACAAGCTGCAGCAAGTGAAGCTAGACCAGATCCGATTAAGTAAGCG -GATTTGTTTTCTACATTTTCAGGTTTTTTAGGGCGCGCAAATGCTTCATAATTTCCATAACTGTAATACA -TATCCACCAAGTCCTTTCGTATTAGAATACACTCAGACTATACCCCTTTGTGAATTGCAAATATTAGTAT -TTATATTGGTAAATTTGACGAAATTAGATCATTTTTATATTTTTGATTTTTAAAATTTTATCACTCGAAT -GTTTTTTGATTCTGAGGTGCGGGACTTGGAATAATTCGAATCATTATGTGGCATGTTAAACAGCTAAATA -TAAGCTATGTACATTTAACAAGCGGATACTCCTGACGCAATTATAGTATCATTACATATTGTTTAATCGT -TTGGGGTAATGTAATTAAAAGGTAAAATAGGCAGAGTGTTATACATAAAATGTAAAGAAAGAGGCGATAG -AATGTCTAAAATCAGGTCTTTTACAATATTAAGTCTACTTATTTACTTAGCTATGATGTGCTATACAGTA -GTGACTTATTCAAAATTACCAACCAAAGTACCTATTCACTATAATTTAGCAGGGGATGCTGATAACTTTG -CTGATAAATGGGTGCTGCTTTTGATTAATAGCGCATTTATAGTGATTTGGCTTATATTTTTCATTGCAGG -TAGATACTATGAACGATTTGCCAAATGGTCACATTATAATCATACACCACGTGAAATTCGAGCGATTAAA -TTATTTTTAAGTACGTTAAATTTAGAGATTATGAGCTATATGTCTATCTTCACAGTATTAGAAATTTGGC -AAATACAACACCATCATCAATTCAATTTACTATGGTTTAATATGATATTTATCATTATCATTGGTTTGAC -GCTTGTCATATTTTGTTTACTTCCTACAATTCATAAAATGAGAGATTCTCAATAAAAATATAAACTGTCA -TGATGCAGTTTTGAAGCGGATTCCTGAGATTATTATAAATAATATCTAGTATTTATAATTAAAATGATAT -ATTATTTATTATAGTTAAATATTGTGTATATTTTGTGAACTTTTTGTAAAAATTCGATTGCCTGTCACAT -ATAGGAGTGTTACATTTTAAATATGTGATCATCGCAAAATATAAGTTGAAATAGGTTGTAGATTAATCAG -GATGATAAATATTTTATATAAAGAGAGGGAGTCATTATGACACTACTTACTGTAAATCCATTCGATAATG -TTGGATTATCAGCCTTAGTTGCAGCAGTACCTATTATTTTATTTTTATTATGCTTAACCGTTTTTAAAAT -GAAAGGCATTTATGCAGCATTGACAACTTTGGTTGTTACATTGATTGTGGCTTTATTTGTATTTGAATTA -CCAGCGCGTGTATCAGCAGGTGCGATTACAGAAGGCGTTGTTGCCGGTATTTTCCCAATAGGATATATCG -TTTTAATGGCAGTTTGGTTATATAAAGTTTCTATTAAAACAGGACAATTTTCTATTATTCAAGATAGTAT -TGCAAGTATTTCAGAGGACCAAAGAATCCAACTATTATTAATTGGATTTTGTTTCAACGCATTTTTAGAA -GGTGCAGCAGGATTTGGTGTGCCAATTGCGATTTGTGCAGTATTATTAATTCAACTTGGATTTGAACCAT -TAAAAGCAGCGATGTTATGTTTAATTGCTAATGGTGCGGCGGGTGCCTTTGGTGCAATTGGTTTACCAGT -TAGTATTATTGATACGTTTAACTTAAGTGGAGGCGTTACAACATTAGATGTTGCGAGATACTCAGCATTA -ACACTTCCAATTTTAAACTTTATTATTCCATTTGTTTTAGTATTCATTGTAGATGGTATGAAAGGTATTA -AAGAAATTTTACCTGTCATTTTAACAGTGAGTGGTACATATACTGGATTACAATTATTATTAACAATATT -CCATGGTCCAGAACTAGCAGACATTATTCCATCACTAGCAACAATGGTGGTGTTAGCATTTGTTTGTCGT -AAATTTAAACCGAAAAACATTTTCAGATTGGAAGCGTCTGAACATAAAATTCAAAAACGAACGCCTAAAG -AAATTGTCTTTGCTTGGAGTCCGTTCGTCATTTTAACTGCCTTTGTATTAGTATGGAGTGCACCATTCTT -CAAAAAATTATTCCAACCTGGAGGTGCACTTGAAAGTTTAGTAATAAAATTGCCAATTCCAAATACTGTG -AGTGATTTATCGCCTAAAGGAATTGCGTTGCGTCTCGATTTAATTGGTGCAACTGGGACAGCGATTTTAT -TAACAGTAATTATTACAATTTTAATTACGAAGTTAAAATGGAAAAGTGCAGGTGCTTTATTGGTCGAAGC -AATTAAAGAATTATGGTTACCGATCCTTACAATTTCAGCTATCCTAGCTATTGCTAAAGTTATGACATAC -GGTGGTTTGACTGTAGCAATTGGACAAGGTATTGCTAAAGCGGGAGCAATTTTCCCATTATTCTCTCCAG -TATTAGGTTGGATTGGTGTGTTTATGACTGGTTCAGTTGTAAATAACAATACTTTATTCGCACCTATTCA -AGCGACAGTGGCACAACAAATTTCAACAAGCGGTTCATTACTTGTGGCGGCTAACACTGCAGGTGGTGTA -GCAGCGAAACTTATTTCACCACAATCAATTGCCATTGCGACTGCAGCTGTTAAAAAAGTTGGTGAAGAAT -CTGCATTATTAAAAATGACGTTAAAATACAGTATTATATTTGTTGCCTTTATTTGTGTTTGGACGTTTAT -ACTAACGTTAATATTCTAAATATAAATAATGTTGTCACTTGGATTCAAATGACATTTTAAATCTAATTAT -TCATGAATCGAACTAGTACGAAATGCAATGAGCATCTTGTCTAGTTCGATTTTTTAATGTCTAAAAATGT -CGTATATGTAATCAGAGTAGAAAGTGTTGAGGCGTTTCAGAAGTTGTTTAGAAAAGTAAGTAAAATAAAA -AATGCACTGAGCAACAAAAGATGTTGCTCGTGCATTTAGATGATTCTTATCATTTCAAATAAGAATGTGT -TAATCAACGTATATAAGTTAAAATTGGTTTGGATAAAATGATATCTATCGTTGTGTATTGTTTGTTTTTA -TAGTTCGCGACGACGTCCAGCTAATAACGCTGCACCTAACGCTAATGATAATCCACCAAATACAGTTGTA -CCGATGAATGGATTTTCTTCACCAGTTTCTGGTAATGCTTGAGCTTTGTTAGCATCTGCATGGTTTGCTG -GTTGCTTCTTATCAACAACAAGTTCTTGACCAGGTTTGATCATGTTTTTATCAGCTAATTTGTTATCTGC -AGCAATTTTGTCAGCAGTAGTGCCGTTTGCTTTTGCAATGTCATTTACTGTATCACCAGGTTTAACGACA -TGTACTCCGTTGCCGTCTTCTTTACCAGGCTTGTTGCCATCTTCTTTACCAGGCTTGTTGCCATCTTCTT -TACCAGGCTTGTTGCCATCTTCTTTACCAGGCTTGTTGCCGTCTTCTTTACCAGGTTTGTTGCCATCTTC -TTTGCCAGGTTTTTTGTTGTCTTCTTTACCAGGTTTGTTGCCGTCTTCTTTGCCAGGTTTTTTGTTGTCT -TCTTTACCAGGTTTGTTGCCGTCTTCTTTACCAGGCTTGTTGTTGTCTTCTTTGCCAGGCTTGTTGTTGT -CTTCCTCTTTTGGTGCTTGAGCATCGTTTAGCTTTTTAGCTTCTGCTAAAATTTCTTTGCTCACTGAAGG -ATCGTCTTTAAGGCTTTGGATGAAGCCGTTACGTTGTTCTTCAGTTAAGTTAGGTAAATGTAAAATTTCA -TAGAAAGCATTTTGTTGTTCTTTGTTGAATTTGTTGTCAGCTTTTGGTGCTTGTGCATCATTTAGCTTTT -TAGCTTCTGCTAAAAGGTTAGCGCTTTGGCTTGGGTCATCTTTTAAGCTTTGGATGAAACCATTGCGTTG -TTCTTCATTTAAGTTAGGTAAATGTAAGATTTCATAGAAAGCATTTTGTTGTTCTTTGTTGAATTTGTTA -TCAGCTTTCGGTGCTTGAGATTCATTTAACTTTTTAGCTTCTGCTAAAAGGTTAGCACTTTGACTTGGGT -CATCTTTTAAGCTTTGGATGAAACCATTGCGTTGTTCTTCGTTCAAGTTAGGCATGTTCAAGATTTCATA -GAAAGCATTTTGTTGTTCTTTGTTGAAATTGTTGTCAGCTTTCGGTGCTTGAGATTCGTTTAATTTTTTA -GCTTCACCTAAAACGTTAGTGCTTTGGCTTGGATCGTCTTTAAGACTTTGAATGAAACCATTGCGTTGCT -CTTCGTTTAAGTTAGGCATGTTCAAGATTTCATAGAAGGCGCTTTGTTGATCTTTGTTGAACTTATTTTG -TTGCGCATCAGCTTTTGGAGCTTGAGAGTCATTAAGTTTTTGAGCTTCACCTAAAACGTTAGCACTTTGG -CTTGGATCATCTTTAAGGCTTTGGATAAAACCATTACGTTGATCAGCGTTTAAGTTAGGCATATTTAACA -CTTGATAAAAAGCATTTTGTTGAGCTTCATCGTGTTGCGCAGCATTTGCAGCAGGTGTTACGCCACCAGA -TATAAGTAATGTACCTAAAGTTACAGATGCAATACCTACACCTAGTTTACGAATTGAATAAATGTTTTTC -TTTTTCAAATTAATACCCCCTGTATGTATTTGTAAAGTCATCATAATATAACGAATTATGTATTGCAATA -CTAAAATCTATATTTATAATTAAATTTAAAGGTAAGTTTTACAACTTATAAAATAAAAATTTTGTCCAAA -GATTTATTCAGGAAGTAAAAGGCTTAAAACCGCAAAATCACGCTATTCCGATTAATAAAAACATATAAAA -TATATAGATATTTTTTATAATGAAAGAGGTTTATTACATATGAGTTAAAAAATATTTTTAAGAATAAAAT -GGAATTTTGAATGTGCTGAGGTTTAATTTCGGAAATGGTTTTAAGAGATATAGAAAATAGAAAGTTGTTC -ATAATGTGCTGAGGTTTTATTAAAAAATAGAAAACACAAGTGCACTTTAGAATACAGCACACTTGCGTAA -TAGAGATATTATTCAAAAACAAGATGTAAATGATTTTTATCTGCCAATAATTGATTCACTTGAGCTAATA -ATTGTTCAGCATGGTCTTGCTGCGCGTCATTCATATGAATTAAAATTTTTCTTTCATCTTCAGTTGAGCG -TTCTTTTATTAGATAGCCTTGCTTTTTTAAATTATTGAGAGCTCTAACAGTTTGAGGGTATTTATGGTGG -ATTGTTTCAATTAAATCTTTAAGAAGAACGATGTTTTTATTTTGAGAAGTGATAATAGCTAGAATTGTGA -ATTCTACAAAACTTAATGTTAGATGCTTTTTGATAATATTCTTGAAATACATTGTATACATCATCAAGTT -TAGAAATTCTTTACTATCTTTTGGTATCATCTGTGATTCACTTTGATCTGCAAGATTAAATTGTTTAATG -ATTTGATCAAACAATGTAACACGTTCTGCAATTTTCTCTCGTTGTTCTTCAGATATTGAAATGTAAGTAT -TACGCTCATCAATTTTACTTCGAACTTTACTAATATATGAATGTTTCACAAGTACTTTTATATGCTGTAC -TAAATCCGATTGTTTATAACATAAATCTGAAACAATCTTCTTAAATGGAAGTGTGTTTTCTTGCTGATGA -AATAAATAAGTCAGTAATATAAATTCTTTTATAGTCATATCGACTTCAGGCTTGACTTTTTTCTTAAAAC -GAAACATATATGCTTCAATGATTATAAAATCTCTAATTTTGTCATGGTTATTATATTTCATTGTTCTATC -TCCTTGTATATGCACTTTATTTTAATATAACACAATATAATAAGAAAAATAATCCATAATTTACAATTAA -AAATAATATGATATTTTTATTAAAATTTGTGTTTTTGAATAAATGACATTATCAAACACTATATTTAAAT -AAGAAATAGTTATCGATATTTGAAAAATCGAAGAATATTGATTGATATTATAGAATATGAGTCGGTGTTA -TTTGTATATAAAGTATTAATATGTAATTAAGAAAGTCGACGCTTGTTAACATTAACAACAACTATATGTA -TAAAAAAACCTCGCAACTGTTAGTTAGCTGAATCATTTTGCTAACGTTGTTGTGAGGTCATTTTGTTTTA -ATAATATCTTTATAACTTTTTCACGGTTAATAATAAGTATATGAAGAATGGTGCACCAAACGCAGCAATG -AATACACCTGCCGGCACTTCTTTAGGCAAGAATAGGGTGCGTCCAATTAAGTCTGCGATAACAATTGATA -TGGCACCAATCATTGCTGACATTAGTAACTTTTTAGCATAACTTCCGCGAACGATTGTTTTCGCGATGTG -TGGTGCAATTAAACCGACAAACCCAATATTTCCTACTAAACTGATTGCCATAGATACGAGTATTGTAGAA -GAGATTAATTGAATCAGCTTCATACGTTGTACATGTAAACCTAAGCCAATCGCTACAGGGTCATCAAGTA -TAGATATTTTCATTTTAGGTATAACAAGAAATAACAACGGAATAACAGCTACGATTACCATACCCAAAAT -GAATGTATCTTTAAACGTTGCACCGTAAAGACTTCCGACTAACCAAGTATAAGCTTTGGCTGCAGATAGT -TGCTTTGTTGTAATAAGTAGCCCTTGTACAAGTGCAATAAATAATGTTTGCATTGAAATACCGATGATTA -TGAGTGTTGTCGGTCGAATGTGACCTTTCGTTTGAAACACTAATAGAATCACCATTGCAATTGCGCCACC -TAATACAGCAAATAGAGGAAGTAAATGTATCGTTAAATGGCTGAAAAATGCAATAAAGACAACAGCACTT -AAGCTAGCACCACCTGTGATTCCGATAATATCTGGTGAGGCAATTGGATTTTTCAAGACATTTTGTAACA -TTAAACCGCTCATCCCTAGTGCTGCACCAGCTAATATCGCAAGTGTAATGCGAGGTAAGCGTAATACTTC -TAAAGTGAATTGATCTATACTGTCATTTGGATTTATAAAGTACATCAGTACGCGTTGTAATGGTATAAAG -CTTGAACCAACCATCATACTTACCACTGAAACGATGGCTAAAAAGATTAACGCGAAGATGAGATGGTAAT -TGTCCTTTTTATTAATCTTTTCGGTCATAAGCGTTGACGTCCTTTCTTCATAAGATAGATTAAGACAATA -GCGCCAATGACAGCGGTAACGACACCGATAGGCAACTCTAGTGGCTTAATAATAATACGAGCAACAATGT -CTGAGATAATCATTAGGATTGCGCCGGTTAATGCAGTAAAAGGAATTAAATACTTATAGTTTGGTGGTAA -TAATCGTTTACTAATATTCGGTACAATAAGTCCTACAAAGACGATTGATCCAGCTACAGCAACCGAGATG -CCTGCTAGCATACTAATGAGCATTATAATCATCCATTTGATTAATTTTATGTTTTGTCCGAGTCCAGTGG -CAATGTCGTCACTTGTCATCAAGATGTTGATGTGTGCAGCCATGCTAAATGCAATTAAAATAAGTATCAA -TACAAGCGGAATAATCCATGGGATATCCCAAATGTTACGTAATGAAACGGAGCCACTCAACCAGAATAAT -AGGCCTTGTAAGTCTGTTTCATTCATAATGAGAATGCCTTGAGTAAAAGCTGTAAATAACATCGCAATCG -CGGCACCCGCTAAAATGACACGGTGAGGTGAAAATAGGGTTTGTCTAAACATCCCTAGTGCAACGACTAA -GACTGTAACAACAATAGCACCCAAAAACGCGATGACAACAATCATTTTAAAAGATTGAATTTGGATAAAT -GTAATACTAAAGATGACAAAAAATACTGCGCCTGCATTGACACCGAAAAGCCCCGGCGATGCTATTGGGT -TTCGTGTAAGTGCTTGCATCAACAAACCTGAGACTGCTAGTGCGGCGCCTGTCAATAGCGCAATGATTGT -TCTCGACGCCCGTGCACCAGTGACAACATCATGTAAATCGTTTTCACTATCAAAGTTGAATAACGCCTGT -ATCACCGTACCTGGTGACACAAGCGTATTTCCAATCATTAAACTTAAGATAGCTACTATTGCAAGACATA -AACCAGCAATAACGATTTGGTATTTTGGTTTAAGTAGCATCGTAAAACTCCTTAATTATTTTGATTGTTT -TTCAATATTTAACTTTTCATATAAATCGTCAATAAGTTTTAATGATGATTTATATCCGCCAGCTAAGTTC -CAAGTGATTTCATCTAAATCATCAGATACTTGGTTGTTTTTAACTGCGTCTAAATTTTTCCACTCTTTAC -TTGAAGTCCATTCGCTTTCAGTCTTTTTAACTAATGCAGCATCTTTCGCATTTGGATCTGATTTTACTAC -AAAAATATGATCAGCGTTCATTAATGGAATGCTTTCTTTAGATGTAAGTTGGATAATATCTTTACCATTA -TCAACTTGTTTTTGTAAGTCTTTATTACGTTTGAATCCTAAATCATTTAAGATTTCACCAGCATATCCAC -CAGCATAAATTCTTGTATGATCAGCACGGAAGTTAACAACTGAAGCTTTCAATGGCCATGCATCTTTATA -CTTTGCTTTTGCATCTTTTTGGAATGCAGCTACTTTATCATCGTACTTTTTAAGTAAATCTTCAGCTTCT -TTTTCTTTCCCTAAAGCTTTCCCCATTAACTTAGTTGTATCTTTGAATTTGAAAACTGTATCAGTAGAAA -CTGTTGGTGCGATTTTAGATAATTGATCGTAAACTTTTTCATTTCTAACTTTTGACGCGACAATTAAGTC -CGGTTTTAATTTAGAGATTTCTTCTAAGTTAGGTGCAGGTTCTTGACCTACAATCTTAGTATCTTTTAAA -TCATTTTTTATGTATTCGAATTTCGGTTTTTGTGTCCATGATTCTACAGCACCTACAGGTTTAACACCTA -AAGATACAGCGACGTCAGTGGCACCTTGATATAGTGTAACAACGCGCTTTGGTTTCCCTTTAATTTCAGT -TGTACCCATTGCATGTTTAATTGAAGTTGTTTCCTTATCTTTGCTATCAGATGATTGCTTATTTGAATTC -CCACTACATCCTGCTAAAACAAGTAGGAAAGCAAGCGTAACAACAAGCATTTTAATTACTTTATTCATTG -ACTAATTAGCCTCCTTCGTGATGTATGACAATGAGAATCATTATCACGGTTTAGTATGAATTAAATTTTT -TCCTAAGTCAATAAAATATTTATGATTTACATGCAACTTATAATTATTTGACATATAAATGCATAAAAAA -TATAATCCTAATTACTTGATAGTGAGAATCATTATCAATTAGGTAACACACAATATTATAGAATTTTAAA -TTTGAGGAGGAAGCGCTTTTGATTGAAAAAAGTCAAGCATGTCACGATTCATTGTTAGATTCTGTAGGGC -AAACACCTATGGTTCAACTTCATCAACTATTTCCGAAACATGAAGTGTTTGCAAAGTTAGAGTATATGAA -TCCTGGAGGCAGCATGAAAGATCGACCTGCCAAGTACATCATTGAACATGGTATTAAACATGGTTTAATC -ACTGAGAATACACATTTAATTGAAAGTACTTCTGGTAATTTAGGCATTGCGTTGGCAATGATAGCTAAAA -TCAAGGGATTAAAACTCACGTGTGTTGTTGATCCTAAAATATCACCAACAAATTTGAAAATTATTAAAAG -TTATGGTGCCAATGTAGAAATGGTTGAAGAACCTGATGCACATGGGGGTTATTTAATGACTCGTATTGCA -AAGGTGCAAGAACTGTTAGCCACTATTGACGATGCATATTGGATTAATCAATATGCGAATGAGTTAAATT -GGCAATCCCATTATCATGGTGCAGGCACAGAGATTGTTGAAACAATTAAGCAACCTATAGATTATTTTGT -CGCGCCAGTCAGCACGACAGGTAGCATTATGGGTATGAGTAGAAAAATTAAAGAAGTGCATCCAAACGCA -CAAATTGTTGCTGTTGATGCGAAAGGGTCAGTCATTTTTGGTGACAAACCTATTAATAGAGAATTACCTG -GTATCGGTGCTAGTCGTGTACCCGAAATATTGAATAGATCAGAAATTAATCAAGTGATCCATGTAGATGA -TTATCAATCTGCTTTGGGCTGTCGAAAACTGATTGATTATGAAGGTATATTTGCTGGAGGTTCAACAGGT -TCGATTATTGCAGCGATTGAGCAGTTGATAACGTCAATTGAAGAAGGTGCAACAATTGTCACGATTTTAC -CAGATCGAGGCGATCGTTACTTAGATTTAGTTTATTCAGATACATGGTTAGAAAAAATGAAATCAAGACA -AGGAGTTAAATCAGAATGAATAGAGAGATGTTGTATTTAAATAGATCAGATATTGAACAAGCGGGAGGAA -ATCATTCACAAGTTTATGTTGACGCATTAACAGAAGCATTAACAGCGCATGCGCACAATGATTTTGTACA -ACCGCTTAAGCCGTATTTAAGACAGGATCCTGAAAATGGACACATCGCAGATCGAATTATTGCAATGCCA -AGTCATATCGGTGGTGAACACGCAATTTCAGGTATTAAGTGGATAGGTAGTAAGCACGACAATCCATCGA -AACGTAATATGGAGCGTGCAAGTGGTGTCATTATTTTGAATGATCCAGAAACGAATTATCCAATTGCAGT -TATGGAAGCAAGTTTGATTAGTAGTATGCGTACTGCAGCAGTTTCAGTGATTGCAGCTAAGCATTTGGCT -AAAAAAGGATTTAAAGACTTAACAATCATTGGTTGCGGGCTAATCGGAGACAAGCAATTACAAAGTATGT -TAGAGCAATTCGATCATATTGAACGCGTTTTTGTTTACGATCAATTCTCTGAAGCGTGTGCACGCTTTGT -TGATAGATGGCAACAACAGCGTCCGGAAATTAATTTTATTGCGACAGAAAATGCTAAAGAAGCAGTATCA -AATGGTGAAGTAGTCATTACATGTACCGTAACGGATCAACCATATATTGAATATGATTGGTTACAAAAGG -GTGCATTTATTAGCAACATTTCTATCATGGATGTGCATAAAGAAGTCTTTATTAAAGCTGACAAAGTCGT -AGTAGATGACTGGTCACAATGTAATCGAGAAAAGAAAACTATTAACCAATTGGTGTTAGAAGGTAAATTC -AGCAAAGAAGCACTTCATGCTGAACTAGGGCAACTTGTGACAGGTGACACACCAGGACGTGAAGACGATG -ATGAAATCATATTACTTAATCCGATGGGTATGGCTATCGAAGATATTTCAAGTGCTTACTTTATTTATCA -ACAGGCACAACAACAAAATATTGGGACAACATTGAACCTATATTAAGAATGCGAGGTGTCTGAACATTGC -AGAATCATACAGCAGTCAATACAGCACAAACGATAATATTAAGGGATTTAGTTGATGCATTATTATTTGA -AGATATAGCCGGTATTGTATCGAATAGTGAGATTACTAAAGAAAATGGACAAACCATTTTGATATACAAA -CGTGAAACACAACAAATAAAGATACCTGTTTATTTTAGTGCTTTAAATATGTTTCGTTATGAAAGTTCAC -AACCAATTACGATAGAGGGAAGGGCGTCTAAGCAACCTTTAACGGCAGCTGAATTTTGGCAAACAATCGC -TAATATGAATTGTGATTTAAGTCATGAATGGGAAGTGGCTCGCGTTGAAGAAGGACTGACTACTGCTGCC -ACACAGCTTGCTAAACAATTATCAGAATTAGATTTAGCGTCGCATCCTTTTGTGATGTCCGAACAGTTTG -CAAGTTTAAAAGATCGTCCATTTCATCCATTAGCTAAAGAAAAAAGAGGATTAAGAGAAGCGGATTATCA -AGTGTATCAAGCTGAATTAAATCAATCATTTCCTTTAATGGTTGCAGCAGTTAAAAAGACACAAATGATT -CATGGCGATACTGCAAATATTGATGAATTAGAATCATTGACAGCACCTATAAAAGAACAAGCGACAGATA -TGTTACATGATCAAGGGTTATCAATAGATGACTATGTACTATTTCCTGTACATCCTTGGCAATATCAACA -TATTTTGCCGAACGTCTTTGCGAAAGAGATTAGGGAAAAATTGGTTGTACCATTACCATTAAAATTTGGA -GATTATCTATCGGCTTCAAGTATGCGTTCATTAATTAATATCGCAGCGCCGTATAACCATGTTAAAGTGC -CATTTGCAATGCAGTCATTAGGCGCATTAAGGCTAACGCCTACGCGTTACATGAAAAACGGAGAACAAGC -CGAACGATTATTACGTCAACTTATAGAAAAAGATGCCATGTTAGCTAAGTATGTCACAGTTTGTGATGAA -ACAGCTTGGTGGTCATATATGGGTCAAGATAATGATATTTTCAAAGATCAATTAGGTCATTTAACTGTTC -AGCTAAGAAAATATCCCGAAGTGCTAGCCAAAAATGATACGCAACAGCTAGTGTCAATGGCAGCACTCGC -GGCAAATGATCGCACCTTATATCAAATGATTTGTGGAAAAGATAATATTTCTAAAAAAGATGTCATGACG -TTATTTGAAGATATCGCACAAGTCTTTTTAAAGGTAACACTATCATTTATGCAATACGGCGCATTACCAG -AGTTGCATGGTCAAAATATATTGTTGTCATTTGAAGATGGACGTGTACAAAAATGCGTGTTACGTGATCA -TGATACTGTCAGAATTTATAAACCATGGCTAACAGCACATCAGCTTTCATTGCCGAAGTATGTCGTCAGA -GAAGATACACCTAATACGCTAATTAATGAAGATTTGGAAACATTCTTTGCTTATTTTCAAACATTAGCTG -TATCGGTAAATCTATATGCCATTATTGATGCAATTCAAGATTTATTTGGTGTAAGTGAGCATGAACTTAT -GTCGTTGTTAAAACAAATTTTAAAAAATGAAGTGGCAACTATTTCCTGGGTTACAACTGATCAGCTAGCT -GTCAGACATATTTTATTTGATAAACAGACGTGGCCATTTAAACAAATTTTATTACCATTGCTATATCAAC -GTGATAGTGGTGGAGGTAGTATGCCTTCAGGTTTAACTACCGTACCAAATCCAATGGTGACATATGATTA -ATCAGTCTATATGGCGCAGTAACTTTCGCATTTTATGGCTCAGTCAGTTTATAGCGATTGCTGGACTGAC -AGTACTTGTGCCATTATTGCCAATTTATATGGCATCACTACAAAATCTATCAGTCGTAGAAATACAGTTG -TGGAGTGGTATAGCGATTGCTGCTCCAGCTGTAACGACGATGATAGCTTCGCCGATATGGGGGAAGCTAG -GTGATAAGATCAGTCGAAAATGGATGGTGCTACGAGCGTTACTTGGTTTGGCGGTATGTTTATTTTTAAT -GGCATTGTGTACTACACCATTACAGTTTGTACTTGTGAGGTTATTGCAGGGACTATTTGGTGGTGTTGTT -GATGCATCAAGTGCGTTTGCGAGTGCAGAGGCGCCAGCTGAAGATCGTGGAAAGGTATTAGGAAGACTGC -AAAGTTCAGTCAGCGCAGGGTCTCTTGTGGGACCATTAATTGGCGGTGTTACAGCTTCGATATTAGGTTT -TAGTGCGTTACTGATGAGTATTGCCGTTATTACTTTTATTGTCTGTATTTTCGGTGCATTAAAATTGATT -GAAACGACACATATGCCAAAATCACAAACACCAAATATTAATAAAGGTATTCGCCGTTCATTTCAATGTC -TATTATGCACACAACAAACATGTCGATTTATTATCGTTGGCGTTTTAGCAAACTTTGCTATGTATGGCAT -GCTAACTGCATTATCACCACTTGCTTCATCAGTGAATCATACAGCGATAGATGACCGTAGTGTGATTGGA -TTTTTACAGTCCGCATTTTGGACGGCTTCGATATTAAGCGCGCCTTTATGGGGTCGCTTTAATGATAAAT -CATATGTTAAATCAGTATATATATTTGCCACGATTGCATGTGGTTGTAGTGCGATACTGCAAGGTTTAGC -GACGAATGTAGAATTTTTAATGGCTGCAAGAATACTTCAAGGATTAACATATAGTGCATTGATTCAAAGT -GTCATGTTTGTCGTCGTGAATGCGTGTCATCAACAACTTAAAGGCACATTTGTTGGTACGACAAATAGTA -TGTTAGTTATTGGTCAAATTATTGGTAGTCTTAGTGGCGCTGCCATTACAAGTTATACTACACCAGCTAC -TACGTTTATCGTTATGGGCATAGTATTTGCTGTAAGTAGTTTATTTTTAATTTGTTCAACCATCACTAAT -CAAATCAACGATCACACATTAATGAAATTATGGGAGTTGAAACAAAAAAGTGCAAAATAAAGAATTAATA -CAACATGCAGCGCATGCGGCTATCGAACGTATTTTAAATGAATATTTTAGAGAAGAAAATTTATATCAAG -TACCACCTCAAAATCATCAATGGTCTATACAATTATCTGAGCTCGAAACGTTAACAGGTCAATTCGCTTA -TTGGTCTGCGATGGGGCATCATATGTATCATCCAGAAGTATGGCTTATTGATGGTAAAAGTAAGAAATTA -ACAACATATAAAGAAGCCATTGCGCGTATTTTGCAACATATGGCTCAAAGTGCAGATAATCAAACGGCAG -TGCAACAACATATGGCGCAAATTATGTCTGACATCGATAATAGCATTCATCGCACGGCGCGTTATTTGCA -AAGTAACACAATAGACTACGCAGAGGATCGCTATATCGTTTCAGAACAATCTTTATATTTAGGTCATCCA -TTTCATCCGACTCCTAAGAGTGCAAGTGGGTTTTCAGAAGCAGATTTAGAGAAATATGCACCCGAATGTC -ATACATCATTCCAATTGCATTATTTAGCTGTGCATCAAGATGTTCTGCTCACGCGCTATGTAGAAGGTAA -AGAAGATCAGGTTGAGAAAGTGTTGTATCAATTAGCAGATATAGACATATCAGAGATACCCAAAGATTTT -ATTTTATTACCAATACATCCTTATCAAATCAATGTGTTGCGACAGCATCCACAGTATATGCAATATAGTG -AACAAGGTTTGATAAAAGACCTTGGCGTTTCCGGTGATTCAGTGTACCCGACGTCTTCGGTTAGAACTGT -ATTTTCAAAAGCATTAAACATTTATTTGAAATTACCGATACACGTTAAAATCACTAATTTTATACGTACG -AATGACCTTGAACAGATTGAACGGACAATTGATGCCGCGCAAGTTATCGCATCAGTCAAAGATGAGGTTG -AAACACCCCATTTTAAATTGATGTTTGAAGAAGGATATCGTGCATTGTTACCGAATCCATTAGGGCAAAC -AGTTGAACCTGAAATGGATTTATTAACAAATAGTGCCATGATTGTTCGTGAAGGGATACCGAATTACCAT -GCTGATAAAGATATTCATGTATTGGCGTCATTATTTGAAACGATGCCTGATTCACCGACCTCTAAGTTAT -CACAAGTGATTGAGCAAAGTGGTTTAGCACCAGAAGCATGGCTTGAATGTTATTTGGATCGTACATTATT -GCCGATATTAAAGCTGTTTAGTAACACAGGCATTAGTCTAGAAGCACATGTACAAAATACATTAATTGAA -TTAAAAGATGGCATACCAGAAGTGTGCTATGTCAGAGATTTAGAAGGTATTTGTCTATCTAGAACGATTG -CTACTGAAAAACAGCTTGTGCCAAATGTTGTTGCAGCATCTAGCCCTGTTGTATATGCACATGATGAAGC -GTGGCATCGTCTTAAATATTACGTTGTAGTAAATCACTTAGGACATTTAGTATCAACTATTGGTAAAGCG -ACTAGAAATGAAGTTGTGTTATGGAAACTTGTAGCGCATCGTCTTATGACTTGGAAAAAAGAATATGCGA -ATAACGCAGTATTTATTGACTGTGTAGAAGATTTATATCAAACGCCGACCATTGCGGCTAAAGCGAATTT -GATGAGTAAATTGAATGATTGTGGTGCAAACCCTATTTATACACATATACCAAATCCAATTTGTCATAAC -AAGGAGGTATCGTATTGTGAATCAAACAATTCTTAATCGTGTAAAGACTAGAGTGATGTACCAATTGGTA -TCATCGCTTATTTATGAGAATATTGTTGTGTATAAAGCGTCATATCAAGATGGTGTCGGTTATTTTACAA -TAGAAGGAAATGATTCAGAGTATCGTTTTACTGCTGAAAAGACACATAGCTTTGATCGTATACGTATCAC -ATCACCAATTGAGCGTGTCGTAGGAGATGAGGCAGATACAACAACAGACTATACACAATTACTGAGAGAG -GTTGTATTTACATTTCCTAAAAATGATGAAAAGCTAGAACAATTTATTGTCGAGTTATTACAGACAGAAC -TAAAAGATACGCAAAGTATGCAGTATCGAGAATCAAACCCACCAGCAACACCTGAGACATTTAACGACTA -TGAATTTTATGCGATGGAAGGGCATCAGTATCATCCAAGTTACAAATCACGTTTAGGATTTACGTTGAGT -GATAATTTGAAATTTGGTCCTGACTTTGTACCAAACGTTAAACTGCAGTGGTTAGCTATCGACAAAGATA -AAGTAGAAACGACGGTATCAAGAAATGTTGTAGTTAACGAAATGTTACGTCAACAAGTTGGCGATAAGAC -TTATGAACATTTTGTACAGCAAATTGAAGCGTCTGGCAAACATGTAAATGATGTTGAGATGATACCTGTA -CACCCATGGCAGTTTGAACATGTCATTCAAGTTGATTTGGCTGAAGAAAGGCTTAATGGCACAGTACTAT -GGTTAGGGGAAAGTGATGAGCTATATCACCCTCAACAATCGATTCGTACGATGTCGCCAATAGACACGAC -AAAATATTATTTAAAGGTACCAATAAGTATAACGAATACTTCAACGAAACGAGTGTTGGCACCTCATACA -ATTGAAAATGCAGCGCAAATTACGGATTGGTTAAAGCAGATACAGCAACAAGATACGTATTTAAAAGATG -AATTAAAGACAGCTTTTCTAGGGGAAGTCTTAGGACAGTCTTATTTAAATACACAACTTTCGCCTTATAA -ACAAACTCAAGTTTATGGTGCGTTAGGTGTTATATGGCGTGAAAATATATATCATATGTTAATCGATGAA -GAGGATGCGATACCATTTAATGCACTTTATGCGAGTAATAAGGATGGTGTACCATTCATTGAAAATTGGA -TTAAACAATATGGTTCTGAAGCTTGGACAAAGCAATTTTTAGCTGTAGCGATTCGTCCAATGATTCATAT -GCTTTATTATCACGGTATTGCCTTTGAATCGCATGCACAAAATATGATGCTCATTCATGAAAATGGTTGG -CCTACACGTATTGCCTTAAAAGATTTCCATGATGGTGTTCGTTTTAAGCGTGAGCATTTAAGTGAAGCTG -CTTCACACCTGACATTAAAGCCAATGCCAGAAGCACATAAAAAAGTGAATAGTAATTCATTTATTGAAAC -AGATGATGAACGTTTAGTACGTGACTTTTTACATGATGCATTTTTCTTTATTAATATCGCCGAAATCATC -TTATTTATTGAAAAGCAATATGGTATCGATGAGAAGCTGCAATGGAAATGGGTTAAAGGCATCATTGAGG -CGTATCAAGAAGCATTTCCAGAGCTGAATAACTATCAACATTTTGATTTGTTTGAACCTACGATTCAAGT -TGAAAAGTTAACGACACGTCGATTATTAAGTGACTCCGAGTTAAGAATTCATCATGTTACAAATCCATTA -GGTGTAGGAGGTATTACTGATGCAACAACTATCTCTGAAACATAGATTAAACAATGGTGATTCAGTTTAT -GGCATTTTTAATTCTATACCGGACCCATTGATGATAGAGGTTATCGCAGCAAGCGGGTATGACTTTGTTG -TGATTGATACAGAACACGTGGCGATTAATGATGAGACACTAGCGCATTTAATTCGTGCAGCTGAAGCAGC -GCATATTATACCAATTGTACGTGTCACTGCAGTGATAGATAGAGATATCATTAAAGTGTTGGATATGGGT -GCGAGAGGTATTATTGTGCCACACGTTAAAGATCGTGAGACAGTTGAGCATATTGTGAAATTAAGTCGTT -ATTACCCGCAAGGATTAAGAAGTTTGAATGGTGGTCGCATGGCAAGATTTGGACGTACACCATTACTTGA -TGCAATGGAGATGGCTAATGAGCATATTATGGTGATTGCCATGATAGAAGATGTTGAAGGGGTTATGGCC -ATTGACGATATAGCACAAGTCGAAGGTTTAGACATGATAGTCGAAGGTGCCGCAGATTTATCCCAGTCAC -TTGGCATACCATGGCAAACGCGTGATGATCAAGTAACATCACATGTTCAACATATTTTTGAAGTTGTGAA -TGCACATGGTAAACATTTTTGTGCATTACCACGTGAAGATGAAGATATTGCAAAATGGCAGGCACAAGGT -GTACAAACATTTATTTTAGGTGATGATCGCGGAAAAATATATCGCCATTTAAGTGCATCTCTAGCGACGT -CTAAACAGAAGGGGGATGAAGACTAATGCGTATAGTTCAACCTGTTATTGAACAGTTAAAAGCACAATCT -CATCCAGTTTGTCATTATATCTATGATTTAGTCGGACTGGAACATCATTTGCAACATATTACATCGTCAT -TGCCTAGTAATTGTCAGATGTACTATGCAATGAAAGCAAATAGTGAACGAACAATCCTAGATACAATTAG -TCAGTATGTTGAAGGATTCGAAGTTGCATCTCAAGGTGAAATAGCAAAAGGTCTTGTTTTTAAACCAGCA -AATCATATTATTTTTGGTGGCCCTGGTAAGACAGACGAGGAACTAAGATATGCAGTAAGTGAAGGTGTTC -AGCGTATTCATGTTGAAAGTATGCATGAATTACAACGGCTAAATGCCATCTTAGAAGATGAAGATAAGAC -ACAACACATTTTATTGCGTGTTAATTTAGCAGGACCATTTCCCAATGCAACGTTGCATATGGCAGGACGC -CCAACACAATTTGGTATTTCTGAAGACGAAGTTGATGATGTCATTGAAGCTGCGCTAGCAATGCCAAATA -TTCATCTAGATGGATTTCATTTTCATTCTATTTCTAACAATTTAGACTCGAATTTACATGTCGATGTAGT -GAAACTTTATTTTAAAAAAGCAAAGGCATGGTCTGAAAAACATCAATTTCCTCTCAAACATATCAATCTT -GGTGGTGGCATAGGCGTTAACTATGCAGATTTAACTAGCCAATTTGAGTGGGATAATTTTGTAGAAAATT -TTAAAACACTTATCGTTGAGCAAGAAATGGAAGATGTGACATTGAACTTTGAATGTGGGCGCTTTATTGT -GGCACATATTGGTTACTATGTGACAGAAGTGCTAGACATTAAGAAAGTACATGGTGCTTGGTATGCCATT -TTAAGAGGAGGTACGCAACAATTTAGACTGCCGGTATCTTGGCAGCATAACCATCCTTTTGACATTTATC -GCTATAAGGACAATCCATATTCATTTGAAAAAGTTTCAATTTCGAGACAGGACACAACGTTAGTCGGTCA -ATTATGTACACCGAAAGATGTCTTTGCTAGAGAAATACAGATAGAGGCAATCAGTACAGGCGACGTTATT -GTTTTCAAATATGCAGGTGCATACGGATGGTCTATTTCACATCACGATTTCTTAAGCCATCCACATCCTG -AATTTATTTATTTAACGCAAACAAAGGAGGATGAATAACTATTGAATCATATTCATGAACATTTAAAATT -GGTACCAGTAGATAAGATTGATCTTCACGAAACATTCGAACCTTTAAGATTGGAAAAAACGAAAAGTAGT -ATTGAAGCAGATGATTTTATACGTCATCCTATTTTAGTGACAGCGATGCAACATGGTAGATATATGGTTA -TAGATGGTGTGCATCGGTATACAAGTTTGAAAGCGTTAGGATGTAAGAAAGTTCCAGTGCAAGAAATCCA -TGAAACACAATATTCAATTAGTACATGGCAACATAAAGTTCCATTTGGTGTGTGGTGGGAAACGTTACAA -CAAGAACATCGCTTACCATGGACTACTGAGACAAGACAAGAAGCGCCATTTATTACGATGTGTCATGGTG -ATACAGAACAATATTTGTATACAAAAGATTTAGGCGAAGCACATTTTCAAGTATGGGAAAAGGTTGTCGC -AAGTTATAGTGGTTGTTGTTCTGTAGAGAGAATTGCACAAGGTACATATCCTTGTCTTTCTCAACAAGAT -GTACTCATGAAGTATCAGCCATTGAGTTATAAGGAAATTGAAGCGGTTGTTCATAAAGGGGAAACTGTGC -CAGCAGGTGTGACACGCTTTAATATTTCAGGACGATGTCTTAATCTTCAAGTACCACTGGCATTACTTAA -ACAAGATGATGATGTTGAACAACTGCGCAATTGGAAGCAGTTTTTAGCAGATAAGTTTGCCAATATGAGA -TGTTATACTGAAAAAGTATACTTGGTGGAGCAATAGTTTTACTGTGATGTTGAGGGAAATATGATGATTT -AGCCTATTAATAGCGAAAATATAATAAAACAATATAGTGTGGAGAACTTTTGATATTTTATAAATATTGA -AGTTCTCCATTTTTGTATTTTGCATATAAAAATTAAATAAAATAAGGTATATTAAGGTAAAGTATAAATA -TTAAATAAATGGGGAATAGACATGGAAAAAAATGTAGAAAAATCATTCATAAAGATAGGTTTATATTTTC -AAATAGCTTATATAGTACTCATGGCTATAACTTTATGTGGGTTTGTAATTTGCTATGGACTAATTTTCGG -CCTTTTCTATTTATTGTCAGGTAGCAGAGCTGATTATTTAATAGTAACGATAGTTATATCGGCAATAATT -TCTATATTTGTAATTATACTTTCAATCGTACCTGTCATCGTATTGGCATCTGACTTATTTAAAGAAAGGA -TTTCAAATGGTGTCATATTAATTGTATTGGCTATTATCGCTTTAGTATTATGCAACTTTGTATCTGCAAT -ACTCTGGTTTGTTTCAGCCATATCTATTTTAGGTAGAAAAAAATTAGTATCTACATCAGATACTACCACT -ATTCAAAAAAGTAAAGGGAACGCAAATCAAGCATCACATAAAGACACGTGTAAAAAGGAACTTGATAGTC -AAGACATGATGGAACATCCTGAGTTTAAAAATCCCACGACTAAAAACCTAGAAGGATTAAACGAAGAAGT -ACATAAAGATGAAGCTACAACTAAAGTTGACAGTGATAATACGGAACCGCCGATTGAATCAAAAGACCAT -GTCTCGAAAAAAGATTGATGACAAACTAATCGAGAGACTTAAAAAATAATATTCAACATAAACACTTTTA -AAACGACATTTAAACGCATTGCCAATCACTAAAGGTAGTGCGTTTAACTATACCTTAAATATCTGAATAT -TTTGTTAAATGGAGTTACCTTTGTTGTACTATTCAAATGAAGAGGAGTAAAATGTAATTAAAGGAAAGTA -ATTTGAGGAGTGATCTTTATGACAAACAACAAAGTAGCATTAGTAACTGGCGGAGCACAAGGGATTGGTT -TTAAAATTGCAGAACGTTTAGTGGAAGATGGTTTCAAAGTAGCAGTTGTTGATTTCAATGAAGAAGGGGC -AAAAGCAGCTGCACTTAAATTATCAAGTGATGGTACAAAAGCTATTGCTATCAAAGCAGATGTATCAAAC -CGTGATGATGTATTTAATGCAGTAAGACAAACTGCAGCGCAATTTGGCGATTTCCATGTCATGGTTAACA -ATGCCGGCCTTGGACCAACAACACCAATCGATACAATTACTGAAGAACAGTTTAAAACAGTATATGGCGT -GAACGTTGCAGGTGTGCTATGGGGTATTCAAGCCGCACATGAACAATTTAAAAAATTCAATCATGGCGGT -AAAATTATCAATGCAACATCTCAAGCAGGCGTTGAGGGTAACCCAGGCTTGTCTTTATATTGCAGTACAA -AATTCGCAGTGCGAGGTTTAACACAAGTAGCCGCACAAGATTTAGCGTCTGAAGGTATTACTGTGAATGC -CTTCGCACCTGGTATCGTTCAAACACCAATGATGGAAAGTATCGCAGTGGCAACAGCCGAAGAAGCGGGT -AAACCTGAAGCATGGGGTTGGGAACAATTTACAAGTCAGATTGCTTTGGGCAGAGTTTCACAACCCGAAG -ATGTTTCAAATGTAGTGAGCTTCTTAGCTGGTAAAGACTCTGATTACATTACTGGACAAACAATTATTGT -AGATGGTGGTATGAGATTCCGTTAATAATCATCCATTAATAATAAATAAATCCTTATTGTTAAGTTTAAT -CACTTAGCAGTAAGGATTTTTTAGTGCACTTAGAAGGGATTGTATTAGTAGAAAATTAATAACAGAAGCT -CTTAAGTGAGTTATGATGTCACAGTCTAATGCATCAGTTGAAAGCATTACTAAATTCTATCAAGCATAGT -TACGCTAAAACATCATAAAACACCACTATCTAATTTATCTACATAAAAATTCACAAAGTTATCGCATTTT -ATTTTTATAAATAAAAAATACCGATAAAAAGCTTACAATACTTTATGTTTTTGTGATATATTTTTAATGT -ATAAATGAGGTGGAAGATTTGGAAAAAGTTTTGATAACTGGTGGGGCTGGTTTTATTGGGTCACATTTAG -TAGATGATTTGCAACAAGATTATGATGTTTATGTTCTAGATAACTATAGAACAGGTAAACGAGAAAATAT -TAAAAGTTTGGCTGACGATCATGTGTTTGAATTAGATATTCGTGAATATGATGCAGTTGAACAAATCATG -AAGACATATCAATTTGATTATGTTATTCATTTAGCAGCATTAGTTAGTGTCGCTGAGTCGGTTGAGAAAC -CTATCTTATCTCAAGAAATAAACGTCGTAGCAACGTTGAAATTATTAGAAACCATTAAAAAATATAACAG -TCATATAAAACGATTCATCTTTGCATCATCTGCAGCCGTTTATGGTGATTTACCTGATTTACCTAAAAGT -GATCAATCATTAATTCTACCATTATCACCATATGCAATAGATAAATATTACGGCGAACGTACGACATTAA -ATTATTGCTCGCTATATAACATTCCAACAGCTGTTGTTAAATTCTTTAATGTATTTGGGCCAAGGCAAGA -TCCTAAGTCTCAATATTCAGGTGTGATTTCAAAAATGTTCGATTCATTTGAACATAACAAGCCTTTTACA -TTTTTTGGCGATGGTCTGCAAACGAGAGACTTTGTTTATGTTTATGATGTTGTTCAATCTGTGCGCTTAA -TTATGGAGCATAAAGATGCGGTTGGACATGGTTATAACATTGGTACGGGTACATTTACGAATTTGCTAGA -GGTTTATCGCATTATTGGTGAATTATATGGAAAATCAGTCGAGCATGATTTTAAAGAAGCAAGAAAGGGA -GATATTAAGCATTCTTATGCAGATATTTCTAATTTAAAAGCATTAGGATTTGTTCCTAAATACACTGTGG -AAACAGGCTTAAAGGATTACTTTAATTTTGAGGTAGATAATATTGAAGAAGTTACAGCGAAAGAAGTGGA -AATGTCGTGAAATTGGCATTGAAGCTGTCCGTAATAAGGGTTACGCCTATCAAAGAAAATTAGACACACT -AGAAGAAGTAAAAAAGGGCTATTTTCCAATCAAACGTGCGATTGACTTGGTATTAAGTATCGTTTTATTA -TTTTTAACATTTCCGATTATGTTCATATTCGCCATTGCTATCGTCATAGATTCGCCAGGAAACCCTATTT -ATAGTCAGGTTAGAGTTGGGAAGATGGGTAAATTAATTAAAATATACAAATTACGTTCGATGTGTAAAAA -CGCAGAGAAAAACGGTGCGCAATGGGCTGATAAAGATGATGATCGTATAACAAATGTCGGGAAGTTTATT -CGTAAAACACGCATTGATGAATTACCACAACTAATTAATGTTGTTAAAGGGGAAATGAGTTTTATTGGAC -CACGCCCGGAACGTCCAGAATTTGTAGAATTATTTAGTTCAGAAATAATAGGATTTGAGCAAAGATGTCT -TGTTACACCAGGATTAACAGGTCTTGCGCAAATTCAAGGTGGATATGACTTAACACCACAACAAAAATTA -AAATATGACATGAAATATATACATAAAGGTAGCTTAATGATGGAATTATATATATCAATTAGAACATTGA -TGGTTGTTATTACAGGGGAAGGCTCAAGGTAGTCTTAATTTGCTTAATAAGTTTAAATAAAAGTTACATT -TTAAAGATTGTGACCAATTGTTACAGTATAACGAGGAATCCCTTGAGACAGTATCAAATGGCATTAAGAA -ATATTTGCCATCATTGATTTGCATGGCTATAAATACTATTCATCTGATGAGATAGCCATGTTAAGAAATT -GAAAGTATAGCATTAAAGGGGTTTGTAACAGTTGAAAATTATATATTGTATTACTAAAGCAGATAATGGT -GGTGCACAAACACATCTCATTCAACTCGCTAACCATTTTTGCGTACACCATGATGTTTATGTCATTGTAG -GCAATCATGGACCAATGATTGAACAACTAGATGCAAGAGTCAATGTAATTATTATCGAACATTTAGTAAG -TCCAATTGACTTTAAACAAGATATTTTAGCTGTCAAAGTGTTAGCACAGTTATTCTCGAAAATTAAACCT -GATGTTATCCATCTACATTCTTCCAAAGCTGGAACGGTCGGACGAATTGCGAAGTTCATTTCGAAATCGA -AAGACACACGTGTAGTTTTTACTGCGCATGGATGGGCTTTTACAGAGGGTGTTAAACCAGCTAAAAAATT -TCTATATCTAGTTATTGAAAAATTAATGTCACGTATTACAGATAGCATTATTTGTGTTTCAGATTTCGAT -AAACAGTTAGCGTTAAAATATCGATTTAATCGATTGAAATTAACCACTATACATAATGGAATTGCAGATG -TTCCCGCTGTTAAGCAAACGCTAAAAAGCCAATCACATAACAATATTGGCGAAGTTGTTGGAATGTTGCC -TAATAAACAAGATTTACAGATTAATGACTCGACAAAACATCAATTTGTTATGATTGCAAGATTTGCTTAT -CCAAAATTGCCACAAAATCTAATCGCGGCAATAGAGATATTGAAATTACATAACAGTAATCATGCGCATT -TTACATTTATAGGCGATGGACCTACATTAAATGATTGTCAGCAACAAGTTGTACAAGCTGGGTTAGAAAA -TGATGTCACATTTTTGGGCAATGTCATTAATGCGAGTCATTTATTATCACAATACGATACGTTTATTTTA -ATAAGTAAGCATGAAGGTTTGCCAATTAGCATTATCGAAGCGATGGCTACAGGGTTGCCTGTCATCGCTA -GTCATGTTGGTGGCATTTCGGAATTAGTAACTGATAATGGTATATGTATAGTGAACAATCAACCTGAAAC -TATTGCCAAAGTCCTGGAAAAATATTTAATAGACAGTGATTACATCAAAATGAGTAACCAATCTAGAAAA -CGTTATTTAGAATGTTTTACAGAGGAGAAAATGATTAAAGAAGTGGAAGACGTTTATAATGGAAAATCAA -CACAATAGTAAATATCTAACATTGTTACTTATCGGTTTAGCGGTTTTTATTCAGCAATCTTCGGTTATTG -CCGGTGTGAATGTTTCTATAGCTGACTTTATCACATTACTAATATTAGTTTATTTACTGTTTTTCGCCAA -CCATTTATTAAAGGCAAATCATTTTTTACAGTTTTTCATTATTTTGTATACATATCGTATGATTATTACG -CTTTGTTTACTATTTTTTGATGATTTGATATTTATTACGGTTAAGGAAGTTCTTGCATCTACAGTTAAAT -ATGCATTTGTAGTCATTTATTTCTATTTAGGGATGATCATCTTTAAGTTAGGTAATAGCAAAAAAGTGAT -CGTTACCTCTTATATTATAAGCAGTGTGACTATAGGTCTATTTTGTATTATAGCTGGTTTGAACAAGTCC -CCTTTACTAATGAAATTATTATACTTTGATGAAATACGTTCAAAAGGATTAATGAATGACCCTAACTATT -TCGCGATGACACAGATTATTACATTGGTACTTGCTTACAAGTATATTCATAATTACATATTCAAGGTCCT -TGCATGTGGTATTTTGCTATGGTCTTTAACTACAACGGGGTCTAAGACTGCGTTTATCATATTAATCGTC -TTAGCCATTTATTTCTTTATTAAAAAGTTATTTAGTAGAAATGCAGTAAGTGTTGTGAGTATGTTAGTGA -TTATGTTAATTCTACTTTGTTTTACCTTTTATAATATAAACTACTATTTATTCCAATTAAGCGACCTTGA -TGCCTTACCGTCATTAGATCGAATGGCGTCTATTTTTGAAGAGGGGTTTGCATCATTAAATGATAGTGGA -TCTGAGCGAAGTGTTGTATGGATAAATGCCATTTCAGTAATTAAATATACATTAGGTTTTGGTGTTGGCT -TAGTGGATTATGTACATATTGGCTCGCAAATTAATGGTATTTTACTTGTTGCCCATAATACATATTTGCA -AATTTTTGCGGAATGGGGCATTTTATTCGGTGCGTTATTTATCATATTTATGATTTATTTATTATTTGAA -TTATTTAGATTCAATATTTCTGGGAAAAATGTAACAGCAATTGTTGTAATGTTGACGATGCTGATTTACT -TTTTAACAGTATCGTTTAATAACTCAAGATATGTCGCTTTTATTTTAGGAATTATCGTCTTTATTGTTCA -ATATGAAAAGATGGAAAGGGATCGTAATGAAGAGTGATTCACTAAAAGAAAATATTATTTATCAAGGGCT -ATACCAATTGATTAGAACGATGACACCGCTGATTACAATACCCATTATTTCACGTGCATTTGGTCCCAGT -GGTGTGGGTATTGTTTCATTTTCTTTCAATATCGTGCAATACTTTTTGATGATTGCAAGTGTTGGCGTTC -AGTTATATTTTAATAGAGTTATCGCGAAGTCCGTTAACGACAAACGGCAATTGTCTCAGCAGTTTTGGGA -TATCTTTGTCAGTAAATTATTTTTAGCGTTAACAGTTTTTGCGATGTATATGGTCGTAATTACTATATTT -ATAGATGATTACTATCTTATTTTCCTACTACAAGGAATCTATATTATAGGTGCAGAACTCGATATTTCAT -GGTTTTATGCTGGAACTGAAAAGTTTAAAATACCTAGCCTTAGTAATATTGTTGCGTCTGTTATTGTATT -AAGTGTCGTTGTTATCTTTGTGAAAGATCAATCAGATTTATCATTGTATGTATTTACTATTGCTATTGTG -ACAGTATTAAACCAATTACCTTTGTTTATCTATTTAAAACGATACATTAGCTTTGTTTCGGTTAATTGGA -TACACGTCTGGCAATTGTTTCGTTCGTCATTAGCATATTTATTACCAAATGGTCAACTCAACTTATACAC -TAGTATTTCTTGCGTTGTTCTTGGTTTAGTAGGCACATACCAACAAGTTGGTATCTTTTCTAACGCATTT -AATATTTTAACGGTCGCAATTATAATGATTAATACATTTGATCTTGTAATGATTCCGCGTATTACTAAAA -TGTGTATCCAGCAATCACATAGTTTAACTAAAACGTTAGCTAATAATATGAATATTCAATTGATATTAAC -AATACCTATGGTCTTTGGTTTGATTGCAATTATGCCATCATTTTATTTATGGTTCTTTGGTGAGGAATTC -GCATCAACTGTCCCATTGATGACCATTTTAGCGATACTTGTATTAATCATTCCTTTAAATATGTTGATAA -GCAGGCAATATTTATTAATAGTGAATAAAATAAGATTATATAATGCGTCAATCACTATTGGTGCGGTAAT -GAATTTAGTATTATGTCTTGTTTTGATATATTTTTATGGAATTTACGGTGCTGCTATTGCGCGTTTAATT -ACAGAGTTTTTCTTGCTCATTTGGCGATTTATTGATATTACTAAAATCAATGTGAAGTTGAATATTGTAA -GTACGATTCAATGTGTCATTGCTGCCGTTATGATGTTTATTGTGCTTGGTGTGGTCAATCATTATTTGCC -TCCTACAATGTACGCTACGCTGCTATTAATTGCGATTGGTATAGTAGTTTATCTTTTATTAATGATGACT -ATGAAAAATCAATACGTATGGCAAATATTGAGGCATCTTCGACATAAAACAATTTAAGTATCGGTAACGC -TATACTTTAGAAATTTAAGAATAAGAAGAAAAGGCAATTTCTTATTGAAAAATGGAAGTTGTCTTTTTTA -ATTCTCTTTAAAAGCGGGAAACAAAAGCAGTTAAATGCCTTTTTGCATTCAATATTAAATATTATATCAA -TTTCGAATATTTAAATTTTATATAATTGGATATAACAAATAAATAATAATTATTGCAAAACACACCCGAA -ATTAATTATTATAAAAGTATATTCATAAAAGGAGGAATATACTTATGGCATTTAAATTACCAAATTTACC -ATATGCATATGATGCATTGGAACCATATATAGATCAAAGAACAATGGAGTTTCATCACGACAAACATCAC -AATACGTACGTGACGAAATTAAACGCAACAGTTGAAGGAACAGAGTTAGAGCATCAATCACTAGCAGATA -TGATTGCTAACTTAGACAAGGTACCGGAAGCGATGAGGATGTCAGTCCGTAATAATGGCGGTGGTCATTT -TAACCATTCATTATTCTGGGAAATACTATCACCTAATTCTGAAGAAAAAGGTGGCGTAATAGACGACATT -AAAGCGCAGTGGGGCACTTTAGATGAATTTAAAAATGAATTTGCAAATAAAGCAACAACATTATTTGGAT -CAGGTTGGACTTGGTTAGTTGTTAATGATGGAAAATTAGAAATTGTGACAACGCCAAACCAAGATAATCC -ATTAACAGAAGGCAAAACACCAATCTTACTATTTGATGTTTGGGAGCATGCCTACTATCTGAAATATCAA -AATAAACGTCCAGACTATATGACTGCATTTTGGAATATTGTTAACTGGAAAAAAGTTGATGAATTATACC -AAGCAGCAAAATAATATAACTTAATATAATTGAGGTGGAGCATCTATTAGGTGTTTCACCTTTTTTGTAC -TTAATATCTTTACTTATTCGTTTTTGTGTAATGGGATAGCGCGTAAAGGTGGCAAAATAATAAGATAAAT -TTCAACTCGAAATACCTTATTATTGTTGACTATAACGATGACTTAAATGCTATATACATCAGACAACACT -ATTGATTAATCAACATATTGACATTAAATAAATTGACAAAATAAGTAATTATTGTGAATCTAAAGTGAAA -TTTTTATAAAAAAATGTAATGATTCAAAAATTTTGTTGCATTTCTTTTGTAATCATATGATAATATAAAT -GTAATCAAATTGTAATATAAGGGGAAAAGACAATGAAAAAATTAGCAACAGTAGGTTCTTTAATTGTAAC -AAGCACTTTAGTATTCTCAAGTATGCCTTTTCAAAATGCGCATGCTGACACAACTTCAATGAATGTGTCG -AATAAACAAAGCCAAAATGTACAAAATCATCGCCCTTATGGCGGAGTAGTACCACAAGGAATGACGCAAG -CACAATATACTGAATTAGAGAAAGCTTTACCCCAATTAAGCGCTGGCAGTAATATGCAAGACTATAATAT -GAAATTGTATGATGCGACGCAAAATATTGCTGATAAATACAATGTGATAATTACAACTAATGTAGGGGTA -TTTAAACCACATGCTGTTAGAGATATGAATGGCCATGCGTTACCTGTAACAAAAGATGGCAATTTTTATC -AAACGAATGTAGATGCAAATGGTGTTAATCATGGTGGTAGTGAAATGGTGCAAAATAAAACAGGTCATAT -GAATCAGAACACACACATGAACCAACAGCCACACATGCAACAAGGTCATATGCAATCATCAAACCATCAA -ATGAACCAAAGTAACAAAAAAGTTTTACCAGCTGCTGGTGAAAGTATGACATCAAGTATTCTTACTGCAA -GTATTGCCGCACTACTATTAGTATCTGGGTTATTCTTAGCATTTAGACAACGTTCAACAAATAAATAAAC -ATCATACGTTTTAAAGTAGAAAAATCATGTGATTACCTGAAAGTTATTGTCGATTAAACAATAGCTAAAC -AGTCATCACATGATTTTTTTTCAATAATTTTAATAATCCGATTGTCTTATACGTGTCAGTGTTAATTCAG -ATATTTCCTGTGGAATATACCACTTATTAATCATAATCGGATAGGGCGTTTGTGCGTACAATGTTTCAAT -AATCAGCCAACAATGTGTATCACCATCAAACACGTGACTATGATTTTTGAAGTGGGGCGCTTTGGTAATA -GACATTTTTAAATCTGATTGATATGCATTGCTATAAATCGTTTGCTCAACGAACGTCTTCATGTCGTCTT -CGTTTTGTGTATTCACTTTAAATGTGTCAATGACATTTAACGGTATAAAGGTAAAACAAAATGCATCAGC -TTGCTTAGAATGGTTGTCCTTTTTTTGATAATAGCGTTCCATTGCAATGACGGCAGAAGGATGGTTTGCA -AACAAATGATTTGTATATTCACTTTCTAAATCAACACGATAATTAATTGATGACATAGATACACGATCTA -ATAATATTTGATCAAGTGGATGCTTAAATTGATCCATACTTGAAGCGTGTTGGGCATTTGTTTGTGGAAT -AACAAAGTGTCCCTTCCCTCTTGTACTCTCTACGATGCCATCTTCGGCTAACAATTTTATAGCTTGGCGC -AAAGTCATACGACTGACATCAAAGCGCGCACAAAGTTCCTTTTCAGTAGGTAATGCATGGCCACTCGGAT -ATTTTCCTATTTGAATTTCTTTATATAACGTATTATAAATCGTTAAAAATTTTGGTTGTGTTTGCGTCAC -GTAGACAACCTCCATAAAGTTACTTAATCATTCTCATCATACAATAATTTTTACTCGAATTGGAAAAATT -ATAAAAATTAAACATAGAAACAACTTGAACATTGGTTTTATGCAAGATCAGTAGAGATAACTGTAAAATG -TTCTTAATATTGTCAAAATGTAATGCTTGAAAGCGCTTTTAAAAAATATTATTATATACATGGTTAGACA -AATAGACAAATTACTATACAAATATTGGGAGGAATATTTTATGAAATCAACACCACACATTAAACCAATG -AATGACGTCGAAATTGCAGAAACGGTTCTATTGCCAGGAGATCCGTTAAGAGCTAAGTTCATTGCAGAAA -CATATTTGGACGATGTGGAACAGTTCAATACAGTGCGAAATATGTTTGGTTTTACCGGAACATATAAAGG -TAAAAAAGTTTCTGTCATGGGTTCAGGAATGGGTATGCCATCTATTGGCATTTACTCTTATGAATTAATT -CATACATTTGGTTGTAAAAAATTAATTCGCGTTGGTTCTTGTGGCGCGATGCAAGAAAACATTGATTTAT -ATGATGTGATTGTTGCACAAGGTGCCTCTACTGATTCAAATTACGTTCAACAATATCAATTACCAGGTCA -TTTTGCGCCAATTGCTTCTTATCAGTTATTAGAAAAAGCTGTTGAAACAGCACGTGACAAAGGTGTACGT -CATCATGTAGGTAATGTGTTATCAAGTGATATTTTCTATAACGCGGATACAACAGCGAGTGAACGTTGGA -TGCGTATGGGTATTTTAGGTGTAGAAATGGAATCAGCTGCATTATACATGAATGCAATTTACGCTGGTGT -CGAAGCATTAGGTGTGTTCACAGTGAGCGATCATTTAATTCATGAAACGTCAACAACACCTGAGGAAAGG -GAACGTGCATTTACAGATATGATTGAAATTGCACTGTCATTGGTGTAGATGATTATGAATGTTGAATATT -CTAAAATAAAGAAAGCAGTACCTATTTTATTATTCTTATTTGTATTCAGTTTGGTTATAGACAACTCATT -CAAATTGATTTCTGTAGCCATTGCTGATGACTTAAACATTTCAGTAACGACAGTAAGTTGGCAAGCGACA -TTAGCCGGTTTAGTAATTGGTATTGGCGCTGTAGTATACGCTTCATTATCTGATGCCATTAGTATACGCA -CACTATTTATTTATGGCGTGATATTAATCATTATCGGATCAATTATTGGTTACATTTTCCAACATCAATT -CGCATTACTTTTAGTTGGACGTATTATTCAAACTGCAGGTTTAGCTGCTGCAGAGACATTATATGTGATA -TATGTTGCAAAGTATCTTTCTAAAGAGGACCAGAAGACTTACCTTGGCTTAAGTACGAGCAGTTATTCCT -TGTCATTAGTTATCGGTACATTATCAGGTGGATTTATTTCTACGTATTTACACTGGACAAATATGTTTTT -AATTGCATTAATCGTAGTATTTACGTTGCCATTCCTATTTAAATTATTACCAAAAGAAAATAATACAAAT -AAAGCTCATTTAGATTTTGTTGGCTTAATTCTAGTGGCAACTATCGCTACAACAGTTATGCTGTTTATTA -CGAACTTTAATTGGTTATATATGATTGGTGCCTTAATTGCGATTATCGTTTTTGCGCTATATATTAAAAA -TGCGCAACGTCCATTAGTAAACAAATCATTTTTCCAAAATAAACGTTATGCTTCATTTTTATTTATAGTA -TTTGTAATGTATGCCATCCAATTGGGTTATATTTTTACGTTCCCATTCATAATGGAACAAATTTATCATC -TTCAGCTAGACACAACATCACTGCTATTAGTACCGGGTTATATTGTAGCAGTCATCGTTGGTGCACTAAG -TGGTAAAATCGGCGAATATCTTAATTCAAAACAAGCGATTATCACAGCAATTATTTTAATCGCACTGAGC -TTGATTTTACCTGCATTTGCAGTAGGTAATCACATTTCAATCTTCGTCATTTCTATGATATTCTTTGCAG -GTAGCTTTGCTTTAATGTATGCACCTTTACTTAACGAAGCCATTAAAACAATAGATCTTAATATGACAGG -TGTGGCTATTGGTTTTTATAATTTAATTATTAATGTGGCGGTATCTGTAGGTATTGCGATTGCTGCGGCT -TTAATCGATTTTAAAGCATTAAATTTCCCAGGCAATGATGCATTAAGTTCACATTTCGGTATTATTTTAA -TTATTTTAGGTTTAATGAGTATTGTCGGATTAGTTTTATTCGTCATCTTAAATCGTTGGACACAATCTGA -AAAATAAATAGATATAAATTCGCGAGATATATTCGTATTTATAGTAAAATTAAATAAAGAGATTATATAA -CACGAGGAGTAGTAAGTATGAAATTTGAGAAATATATAGATCACACTTTATTGAAGCCTGAGTCAACACG -TACGCAAATCGATCAAATCATCGATGAAGCGAAAGCATACAATTTTAAATCTGTATGTGTGAATCCAACG -CATGTTAAATATGCAGCAGAGCGACTAGCTGATTCAGAGGTGCTAGTTTGTACGGTAATAGGATTCCCAT -TAGGTGCGTCGACAACTGCAACGAAAGTATTTGAAACAGAAGATGCAATTCAAAATGGTGCAGATGAAAT -TGACATGGTCATCAACATCGGCGCATTAAAAGATGGGCGTTTTGATGATGTACAACAAGACATTGAAGCA -GTGGTTAAAGCTGCGGAAGGTCACACAGTAAAAGTGATTATTGAGACGGTATTGTTGGACCATGACGAAA -TCGTAAAAGCGAGTGAATTAACAAAAGCGGCTGGTGCGGACTTCGTTAAAACTTCAACAGGTTTTGCAGG -TGGCGGTGCGACTGCAGAAGACGTTAAATTAATGAAAGATACAGTAGGTGCAGATGTAGAAGTAAAAGCA -TCAGGTGGCGTACGTAATTTAGAAGATTTCAATAAAATGGTTGAAGCGGGTGCGACACGTATTGGTGCGA -GCGCAGGCGTTCAAATTATGCAAGGTTTAGAAGCAGATTCAGATTACTAATATATATAAAATTTGGGAGT -GATAGCTATGACAAGACCATTTAATCGTGTACATTTAATCGTAATGGATTCAGTAGGTATTGGTGAAGCG -CCAGACGCAGCTGATTTTAAAGATGAAGGTTCACATACTTTAAGACATACCTTAGAAGGCTTCGATCAAA -CTTTACCAAACCTTGAAAAGTTAGGTCTAGGGAACATCGATAAATTACCAGTAGTAAATGCAGTTGAACA -ACCAGAAGCATACTATACTAAATTGAGTGAAGCTTCAGTTGGTAAAGATACAATGACTGGTCACTGGGAA -ATTATGGGATTAAATATTATGCAGCCTTTTAAAGTATACCCTAATGGATTCCCTGAAGAGTTAATTCAAC -AAATTGAAGAAATGACAGGTCGTAAAGTTGTTGCTAACAAACCGGCATCGGGTACGCAAATTATCGATGA -GTGGGGCGAGCACCAAATGAAAACTGGTGACTTAATTGTTTATACAAGTGCAGACCCAGTATTGCAAATT -GCTGCACATGAAGACATTATCCCATTAGAAGAGTTATATGATATTTGTGAAAAGGTTCGTGAGTTGACAA -AAGACCCTAAATATTTAATTGGTCGTATTATCGCACGTCCATATGTTGGTGAACCAGGAAACTTTACACG -TACATCTAATCGACATGACTATGCGTTAAAACCATTTGGTAAAACTGTCTTAGATCATTTGAAAGACGGT -GGTTATGATGTCATTGCCATCGGTAAAATTAATGACATTTATGATGGTGAAGGTGTAACAGAAGCGGTTC -GTACAAAGAGTAACATGGACGGTATGGATCAATTGATGAAAATTGTTAAGAAAGATTTCACAGGTATTAG -CTTCTTAAACTTAGTAGACTTTGATGCATTATACGGTCATCGTCGTGATAAACCGGGTTATGCACAAGCA -ATTAAAGATTTCGATGATCGCTTGCCAGAACTGTTTAGCAACTTAAAAGAAGACGATTTAGTAATTATTA -CAGCAGACCATGGTAATGACCCGACAGCGCCAGGTACGGACCATACGAGAGAATACATCCCAGTAATTAT -GTACAGTCCGAAATTTAAAGGTGGTCATGCACTAGAAAGTGATACTACATTCAGCTCTATCGGTGCAACT -ATAGCAGATAATTTCAACGTAACATTACCAGAGTTCGGTAAAAGTTATTTAAAGGAATTAAAATAGAATA -AATTTAGATATAATAAAAACAGCAGTGAAGTTAACTATAATAATAGTTTTCTTCACTGCTGTTTTTATTA -TAATAGAGAAACGTAAGACGGTAGGACCTCTTATTCAGGAGTATCCTGATTTAATGTTAAAGAATACGTT -TTCGGATTGAACCGGAAATTAAATCGACAATTGCGACCATTAGTACTAAACCGATTAATATAATACCTAC -ACGGTCCCAAGAACGTGTTTGAATGGCAAATATGAGTGGTGTCCCGATACCACCAGCCCCAATTAGCCCC -AGTATAGAAGCTGAACGTAAGTTTAGTTCAAAGCGATAAAGTATGAGTGATAGAAAGGCAGGCATAATTT -GTGGTATGACTGCAAATACGAGTGTTTTAATCTTATTCGCACCACTGGCCTTTAATGATTCTACAGCACT -GAAATCTAGACTTTCAATATCTTCAGCTAAAAGTTTCCCAAGCATACCTACGGAATGGATACCTAAAGCT -AATACACCTGAAAATGAACCTGGGCCAACAGCTTTGATAAATATAAGTGCCATTACAATTTCTGGGAAGA -CACGTATAACACTTAAAATAAATTTGCTAACACCTGAAACTGGGCGTAGCTTTACCATATTATTTGCACC -TAGAAATGCTAATGGAATACAGATAATTGCGGCGATGAAAGTACCTACAACGGCTATCGCAAAGGTTTCA -AGTAAACCACGTAATAAGTCTTCGCCATCTGGTATATAGATATAGCTGATATCAGGATGGAATAATCCGC -TGAATATGGATTTTAAGATTTCTAATGATTTACTTTTAAGTTCTAAACTTGGTACACCTGCAAATGCCCA -GATGATAATAGCTAAGACGACAATTGCAATAAGCCATCTTTTAATCAATTTTCGTTTGTGTGCTTTTGTG -TGAACATTATATTTTTCTATTTCCTGTGTCATGCGAGATGTGCCCTCACTTTCGTACTGATGTAATCAAT -GACGACGACGATAACTAAAGTAAATAAAATAATCGTTGCTGTTTTTGGATATTGAAATAAACCAAGTGTT -TGATCATAAAACAATCCAATACCGCCAGCGCCGACTAATCCAAGCACAGCTGAAGCACGTATATTTACTT -CAAATGCATATAATACGTATGACATAAATGACGATATGGCTTGTGGTACAACACCGAAAACAATCCATTT -TATTTTATTAGCGCCAACAGCCGTCATTGCTTCCATTGGACCTGGATCTATCGTTTCCAATGATTCATAT -AATAATTTTCCAATAATACAGATAGTTAAAATAAACAATGCTAATATCCCTGGAATTTGACCGATTCCAA -ATACAGCCACAAAGATTGCTGCTAATAACAAATCTGGAATAGTACGAACTATATTTAAAATAAAGCGCGA -GGGTATTGAAATCCACTTTTGATGAACGATATTGCTAGCACATAATAACGCAATTGGTATTGAAACGATG -CTACCTAATACTGTACTTACGATAGCCATTCGAATGGTATCTAACATTGGCGTTGTAATTTGTTGTAAAT -ACTCGAAATCAGGTGGAATCATTTGTTTGAATAGATCACCTATTTGAGGTATTCCTATCATTAAATCTCC -AAAATTAAACCCCGTATAAATGAAGCTCCAAATGATAAGCACAATGATTAACATGAAGGTAAAACTCGTT -TTTAAAGAAACCTTTTTCTTTAAAAGGGAGTCATACTTTGTAGGTGTTTCTAAAGGCATGTTAGTTCACT -CCTAGCTTTTCATCTTCTTTAATTGTACGTCCATATATTTTACTAAATACGTCATCTGTTGCTTCAGATG -CAGGACCATCATAGACAACTTCACCATCACGTAAACCAATGATGCGTGTGCCATATTCTTTTGCTAAGTC -AACAAAATGTAAATTAATTAAAATTGTGATGCCTAATTCTTGGTTGATTTTTCTTAAATCATCCATAACC -TGTTTCGTTGTTAATGGGTCTAATGAAGCAACTGGTTCATCTGCAAGAATAATTTCGGATTCTTGGCATA -GCGCACGTGCAATAGATATACGTTGTTGTTGGCCACCTGATAATTCATCAGAGCGTTGATTATATTTATC -TAAGATGTTGACCCGTTCTAGTGCATCCATTGCTTTAATTTTGTCTTCTTTTGGAAATAAACCTAATACC -ATTTTCCAAGTAGGGTGATAACCTACACGTCCACTTAGTACATTTCGTAATACACTTGACCGTTTAACTA -AATTAAAATGTTGGAAAATCATGCCTATATTTCGGCGCATTTCTAATAATGCTTTACCATGGGCTTTAGT -GATTGATTTACCTTGAATGAAAATTTCACCTGACGTGATATCATGCAAACGATTTACAGATCTTAATAAC -GTGGATTTCCCAGCACCAGATAGTCCGACAATGACTGCAAATTCACCTTTTTCAATATTTAAGTTAATAT -TTTTCAAGCCTACATGACCGTTAGGATAGACTTTACTGACGTTTTTAAATTTGATTTGACTCATGTTTGA -CACCTTTCTTTAATAAAGAAAAGCCAAGGTAAACTGAAATATCATAGACATTGGGTTTCTGTGTACAAAT -AGTTTCAAATGTACAGCGACACCTTTCTATATCTGTTTCAGTTTAGCGCCTAGCTTTTCAATATTAATCT -AGAATATATCTATTGAACGAAAGCTTTTAATACCAAATTCGATAATGATTCATTGGTTAAATAATGATTA -TTTCATATCTTTAACTAATTTTTCGTACTCTCTTACAATGTCGAAATTTGAATCTTTCGTTTCTGTGTAT -CCTTCATGTGAATAAACTTCGCTAATAATTTTGTGACCTTCTTTTGATTTAGCAATGTCTATAAAAGCTT -TTTTCAATTTCTCTTGGAAGTCTTTATCCATATCTGGTCTTACAGAAATTGTGTCATTCGGAATAGCTTG -TGTTAATTTTAAAATTCGTGTGTCTTTAAATACATTTGGTTGGTCTTTTTTCACAGTATTACGTGCATCG -TTAAATACAGCTGCAGCATCTACATCTCCATTTAATAATGAGATAACTGCTTGGTCATGACCTTTAACAT -TCACAATTTTCATATCTTTAGTTGCATTAATACCTGCTTCGTTTTTTAACATCGCAAGTGGGAATGTATA -TCCAGCAGTTGATGTTACATCTTGTAAGGCAATTTTCTTACCTTTTAAATCTTTCAAGCTTTTAATTTTT -GAGTCTTTTTTAACAAGAATTTCTGATTTATAACTATCTACAAGTTCTTTACTTGCTGAACCATCTTCTT -TTACACCAAAACGTTGTGCTTGTAATAATAAATCAGCTGCTTTTTGATCATGTGCTAATGTGTATGCCGT -TGGTGGTAAGAAACCAACATCAACTTTTTTAGACTTCATAGCTTCAACAATTGTATTGTAGTTAGTTGAT -ACAGACACTTTAACTGGAATCCCTAATTCTTTAGATAGTAATTTTTCTAATGGTTTTGCTTTAGCCTCTA -ATGTTCCAGCATTTTGCGAAGGTACAAATTGAACTGTTAATTCTTTAGGTTTGTATCCTCCTGATTTAGA -ATCCGAATCATTACTAGCGTTCTTTTGATTATCTAAAGAACTTGAATTTCCACATGCTGCTGCAAAAACA -ATGACTGCTAACATTAATACAAATAAACACTTAAAATTTTTCATTTGATAACTGTCCCCTTCACATTCTT -AATCGTGTAATATGTATGCAATGAAATTACACTTATAGCGTACCACATTTAAATGCTAAAAAGTATTTTA -TAAAAATGAATTTTAATAACTTTCTTTAAGAGTGTGATAAGATTTTGTAAAATTTTCGTTAAATTGCCCA -TTTCAAACATATATTTATCCTATAATTCAAGAACAAATTTATTTTAAAAGGAGCCTCAAAAAATGAAAAA -TATATATAAGTCATTAACTGTCTCTGCAATTGTTGCAACGGTATCATTAAGTGCTTTACCGCAATCTTTA -GCTATAACGCATGAATCGCAACCTACAAAGCAACAGCAAACAGTATTATTCGATCGTTCTCATGGTCAAA -CAGCTGGTGCTGCAGATTGGGTTAGTGATGGTGCATTTTCAGATTATGCGGATTCAATACAAAAACAAGG -TTATGACGTTAAAGCTATTGATGGTCATTCGAACATAACAGAAGCAAGTTTGAAAAGTTCCAAAATATTT -GTAATTCCTGAGGCTAACATTCCTTTCAAAGAATCAGAACAGGCAGCAATTGTTAACTATGTGAAACAAG -GGGGAAATGTTGTCTTTATTTCAGACCATTACAATGCTGACCGAAATTTAAATCGTATTGATTCATCAGA -GGCAATGAATGGTTATCGACGTGGAGCGTATGAAGATATGTCGAAAGGTATGAATGCAGAAGAAAAAAGT -TCTACTGCAATGCAAGGTGTGAAAAGTTCAGATTGGTTATCTACAAACTTTGGCGTACGTTTTCGATATA -ATGCACTAGGTGATTTAAATACGAGCAATATTGTTTCTTCAAAAGAAAGTTTTGGTATTACTGAAGGTGT -GAAATCTGTATCTATGCATGCCGGTTCGACATTAGCAATTACTAATCCAGAGAAAGCAAAAGGTATTGTG -TATACACCAGAACAATTGCCAGCGAAAAGTAAATGGTCACATGCTGTAGATCAAGGTATTTATAATGGGG -GCGGTAAAGCAGAAGGTCCCTATGTAGCAATTTCTAAAGTTGGAAAAGGTAAAGCAGCATTTATCGGTGA -TTCATCACTTGTGGAAGATAGTTCGCCCAAATATGTGAGAGAAGATAATGGAGAAAAGAAGAAAACATAT -GATGGTTTTAAAGAACAAGACAACGGTAAGCTATTAAATAATATAACAGCTTGGATGTCTAAAGATAATG -ATGGGAAATCACTTAAGGCGAGTGGCCTAACATTAGATACAAAGACTAAGTTGCTTGATTTTGAACGACC -AGAGCGTTCAACTGAGCCTGAAAAAGAGCCATGGTCACAACCGCCGAGTGGTTATAAATGGTATGACCCA -ACAACATTTAAAGCAGGTAGTTATGGCAGTGAAAAAGGCGCGGATCCTCAGCCAAACACACCAGATGATC -ATACGCCACCAAATCAGACCGAAAAAGTATCATTTGATATCCCGCAAAATGTTTCTGTAAATGAGCCATT -TGAAGTGACAATACATTTAAAAGGATTTGAAGCAAATCAAACACTTGAAAATCTTAGAGTTGGTATTTAC -AAAGAAGGAGGACGTCAAATCGGACAATTTTCAAGTAAAGATAACGATTATAACCCGCCAGGTTACAGTA -CTTTGCCAACAGTTAAAGCAGATGAAAACGGAAATGCCACAATTAAGGTCAATGCCAAAGTACTCGAAAG -TATGGAAGGTTCAAAGATTCGTTTAAAACTCGGTGACAAAACCTTGATTACAACAGACTTCAAATAAATA -TATAATAGAAATAAGAAAGATGTTTGTGATTGAAGGAGTGAGTGAGGATGTCAAACATAGCATTTTATGT -CGTGAGTGACGTACATGGTTATATTTTCCTAACAGATTTTACGAGTAGAAATCAATATCAGCCTATGGGA -TTGTTACTAGCGAATCATGTTATAGAACAAGACAGAAGGCAGTATGACCAAAGTTTTAAAATAGATAATG -GTGATTTTTTGCAAGGGTCACCATTTTGTAATTACTTAATCGCGCATAGCGGCAGTAGCCAGCCTTTAGT -TGATTTTTATAATCGAATGGCATTCGACTTTGGTACGCTTGGTAATCATGAATTTAATTATGGATTACCA -TACTTAAAAGACACTTTACGCAGACTCAATTATCCAGTTTTGTGCGCTAATATTTATGAAAATGATAGTA -CATTGACTGATAACGGTGTGCAGTATTTTCAGGTTGGAGATCAAACGGTTGGTGTGATAGGTTTAACGAC -ACAATTTATTCCCCATTGGGAACAACCAGAGCATATTCAGTCACTTACGTTTCATAGTGCTTTTGCAACA -CTTCAACAACACTTACCTGAAATGAAGCGATATGCAGATATCATTGTGGTTTGTTACCATGGTGGATTTG -AAAAGGATATAGAAAGTGGTACGCCGACCGAAGTGTTAACGGGTGAAAATGAAGGATATGGCATGTTAGA -AGCGTTTTCTAAAGATATAGATATCTTTATTACGGGTCACCAACATCGACAAATTGCTGAAAGGTTTAAG -CAAACGGCTGTGATTCAACCTGGTACGAGAGGTACAACTGTAGGCAAAGTTGTCTTGAGTACTGATGAAT -ATGAAAATGTATCCGTTGAATCATGTGAATTACTTCCTGTTATAGATGATCCCACATTTACTATTGATGA -AGATGACCAACATATACGAAAGCAGCTAGAGGACTGGTTAGATTACGAAATTACAACATTGCCATATGAT -ATGATGATTAATCATGCATTTGAGGCACGTGTAGCTCCGCATCCTTTTACTAATTTTATGAATTACGCTT -TATTAGAAAAAAGTGGAGCAGATGTTGCCTGTACAGCTTTGTTTGATTCTGCTAGTGGTTTCAAGCAAGT -CGTGACGATGCGAGATGTTATTAACAATTACCCATTTCCAAATACATTTAAAGTTTTAGCTGTAAGTGGT -TTCAAACTTAAACAAGCCATTGAACGATCAGCAGAATATTTTGACGTGAAAAATGATGAAGTAAGTGTGA -GCGCAGACTTCCTTGAACCCAAACCCCAACACTTTAATTATGATATATATGGTGGCGTAAGTTATACCAT -TCATGTTGGAAGACCAAAGGGACAACGTGTGAGCAATATGATGATTCAAGGTCACGCAGTTGATTTAAAG -CAGACATATACAATTTGTGTAAATAATTATCGTGCAGTTGGCGGTGGTCAGTATGATATGTATATCGACG -CGCCAGTTGTAAAAGATATTCAAGTTGAAGGCGCACAATTACTTATTGATTTTTTATCAAATAATAAATT -GATGCGCATCCCGCAAGTTGTTGATTTTAAAGTTGAAAAGTGACGGATATATGTAAAACTTACTTGATTT -TAATCGGGTAAGTTTTTGTTTTTGTTTAAACTAATCACTCTTAAACACCAATATACTTTAAGAAAAATGT -TGATTTTACAAAAAACAAGGCTTATATTTTATATAACTTAATATTATGAAGTGATTAATTTGGAAACAAT -TAAACAAGAAGTAAGAGAATCTATTGTTAAAGGAATTTTCGCGGGATATAAGGACTATGTTAATGAGAGA -AATGAAGTCAAGAAACGTATGGTGATTAGTGATGCCTATGTGTACACCAAATCTAATCATATTGAAAATC -AAGTTGCTAAGCATTTGGAAAATTTTGTTAAGTATATTAAAGAAAATGCTGGACCATCATGGAAGTATTT -AAAGTTTATATTTAATAAGGATGAAGAGAAAAATAATATCATGTTTATATTGAAAAATGAAGATTACTTT -GATGAAAAAAATGTAAGCGTAGGGAAGAGTTTAGTTGCTGATAAGAATCAAAAAAGTAAAAACTACCTAG -AGGGACTTATAGCTAAGAATAGTGGCATTAATTTTGATACTGTTGGAGAAGATTTTAAAATTAGGCATCA -AATGACTGCAGATAGTATATTATTTAATATAAAAGAAGGCAGTAATAGAGATATTAATTCTTATTTTTTA -ATTATTACATATCGTATTGATAAAGAATCAAAGCAATTAGCTGCAATCAAACAATGGTTGCCAAATCCAG -AAACAAATTCTGCAATTATGGTTGATGATTTGACACCATTGTTAGACAAAGTAATAGTAGAAAGAGAAGA -TTATCATATTGACGAAGAAGAGTTAGAAGTACTTAAAAACGATGGAGAGTTAGAATTCATAGATGTAGAA -CATGCATTTGGTATCAGTATCGATGAAGATAACGATATGATTGAAAGCGAAAGGTGAAGTTAATGTTTAT -TGGCAAGAATTTAGAATACGTGAGAAAGCTTAATGCTCTAAGTAGAAAAGAATTATCAGAAAAAATAAAT -GTAAGTGAACAAGCAATTTGGCAATATGAAACAAAAAATATGATGCCAGAAATTAATAAAATTTATGATA -TGACATCTATTTTTAATGTTAAATCTAGCTACTTTATTAGCGAGCAGCCCGAAGAGCTCCTAATAAATTC -TGTCGATAAACATAGTATAGCTTTTAGAGCAAAAAATTATAAAGTATCTACGAAACTATTAAATAAGCAA -TATTATCAAGCAATGTATTTATCTAATTTAACTAGCTACTTATTTTCCTTTGTAAAGATACCGGATAATA -TTATTTTATCTTTAATAAATAATTTAGATGACTTGTTGAATGGCAATTTAGAATCACTAAATAAAAAAGA -AAGCATAAAAGAAACTGCTAAAGTTGTGAGGGCTAAAATTCTTCAAGACGAAAGCAATGAAGCACTATTA -TTTATGCTTGAAAAAGCGGGTATAGTTATCTACGAAAAGCGAATTAATGATAGTATAGACGCATATAGTT -TTTGGAGTAAAGATCAGACACCTTTTATTATACTGGGTACAAATAAGGGGGTAGCAGTTAGAAGGAATTT -TGATCTTGCACATGAGCTGGGACATCTCGTTCTACATCGTCATATTCAATTCGATTTATTATCTCCTGAA -GAATATAAGACAATTGAACATGAGGCAGATATTTTCGCCTCTGAATTTTTACTACCTGAAGAAGCGTTTA -AAAAAGACTTTGATCAAATGACAAAAAAATCAAATCCTGATTATTTAGCTGTATTGAAAGAAAAATGGTA -TGTTTCTATACAAGCAATTGCAATGAGAGCCTATTATCTAGGTCTAATGTCTAGTACTCAGTACAGATAT -TTTTGGGCATCATTAAATAAAAAAGGCTATAAAAGTAAAGAGCCTTTAGACGACGTGATTGAAATGTCAC -GTCCTGTCAAAATGAATAGTTTATTAAAGTTGTATTTTGATAGAAATATACTGACACCACAAAAATTATT -GAATTATTTAAAAGTTGATGAAACATTTTTGAATCATCTAGCAGGTATTAATTTAAAACTCTTTAAGGAT -TATGTTAATGAAAATAGAGAATATAATATAACGAATCTATATAAATAAGACACCAATATTTAAACCTCGA -GCTGAAAAGATTATCATTTCAGTTCGAGGTTTTTATTTGCAACATCTGTTGATAGGTATCGACAAGGACC -TTTTAATGTTGTGTTTTGTGCGATATAACAAGCTTTTTAGGCTATTAAAGAATATTCAGAATTAAATATA -TAATTATGAATAAATTATGTCATTGAAAAAATTATGATTATAAAATCATTCTAAAAACACCGAAATAACA -ATGATTTCATGAAAACATTTATTTTAAAATTTGATATTTGTTCAAATAATATTCGAAATTAAACTTTTTT -GTATAGAATTTTCTTTATATCCTGAGAGACATGTACTATAATGTTTGTGAAATAATTCACAAAGTATAAA -GGAGTGGTTGTATATGTTAACTATACCTGAAAAAGAAAATCGTGGATCGAAAGAACAAGAAGTGGCAATT -ATGATTGATGCTCTAGCTGACAAAGGGAAAAAGGCATTAGAAGCATTATCTAAAAAGTCACAAGAAGAAA -TTAATCATATTGTTCATCAAATGAGCTTAGCAGCTGTTGATCAACATATGGTGCTAGCAAAATTAGCACA -TGAAGAAACTGGAAGAGGTATATACGAAGATAAAGCGATTAAAAATTTATACGCTTCTGAATATATATGG -AATTCAATAAAAGACAATAAGACAGTAGGGATTATTGGTGAAGATAAAGAAAAAGGATTAACGTATGTAG -CGGAACCAATTGGTGTTATTTGTGGTGTTACGCCAACAACAAATCCTACGTCGACAACTATTTTTAAAGC -GATGATTGCAATTAAGACAGGAAATCCAATCATTTTTGCATTCCATCCAAGTGCGCAAGAATCGTCGAAG -CGTGCAGCAGAAGTTGTATTAGAAGCGGCAATGAAGGCAGGTGCACCTAAAGATATTATTCAATGGATTG -AAGTGCCCTCTATCGAAGCAACAAAACAATTAATGAATCACAAAGGTATTGCATTAGTTCTAGCAACAGG -TGGTTCGGGCATGGTTAAGTCTGCATATTCAACTGGCAAACCGGCATTAGGTGTGGGACCAGGTAACGTG -CCGTCTTACATTGAAAAAACAGCACACATTAAGCGTGCAGTAAATGATATCATTGGTTCAAAAACATTTG -ATAATGGTATGATTTGTGCTTCTGAACAAGTTGTAGTCATTGATAAAGAAATTTATAAAGATGTTACTAA -TGAATTTAAAGCACATCAAGCATACTTTGTTAAAAAAGATGAATTACAACGCTTAGAAAATGCAATTATG -AATGAACAAAAAACAAGTATTAAACCTGATATTGTCGGTAAATCTGCAGTTGAAATAGCTGAATTAGCAG -GTATACCTGTCCCCGAAAATACAAAACTTATCATAGCCGAAATTAGCGGTGTAGGTTCAGACTATCCGTT -ATCTCGTGAAAAATTATCTCCAGTATTAGCCTTAGTAAAAGCCCAATCTACAAAACAAGCATTTCAAATT -TGTGAAGACACACTACATTTTGGTGGATTAGGACACACAGCCGTTATCCATACAGAAGATGAAACATTAC -AAAAAGATTTTGGACTAAGAATGAAAGCTTGTCGTGTACTTGTAAATACACCATCAGCGGTTGGAGGTAT -TGGTGATATGTATAACGAATTGATTCCGTCTTTAACATTAGGTTGTGGTTCGTACGGTAGAAACTCAATT -TCACATAATGTTAGTGCGACAGATTTATTAAACATTAAAACAATTGCTAAACGACGTAATAATACTCAAA -TTTTCAAGGTGCCTGCTCAAATTTATTTTGAAGAAAATGCAATCATGAGTCTAACAACAATGGACAAGAT -TGAAAAAGTGATGATTGTCTGTGACCCTGGTATGGTCGAATTCGGTTATACAAAAACAGTTGAGAATGTA -TTAAGACAAAGAACGGAACAGCCTCAAATTAAAATATTTAGCGAAGTCGAACCGAACCCATCAACGAATA -CAGTATATAAAGGTCTGGAAATGATGGTTGATTTCCAACCGGATACAATCATTGCACTTGGTGGTGGTTC -AGCGATGGATGCTGCAAAAGCAATGTGGATGTTCTTTGAACACCCTGAGACATCATTCTTCGGTGCTAAA -CAAAAGTTCCTAGACATCGGTAAACGTACTTATAAAATAGGCATGCCTGAAAATGCGACGTTCATTTGTA -TCCCTACGACATCAGGTACAGGTTCAGAAGTAACACCATTTGCAGTTATCACAGATAGTGAAACAAATGT -AAAATATCCGTTGGCTGATTTTGCTTTAACACCTGATGTTGCAATTATTGACCCTCAATTTGTGATGAGT -GTGCCAAAAAGCGTTACAGCAGATACAGGAATGGATGTACTAACGCATGCAATGGAATCATATGTATCTG -TAATGGCTTCAGATTACACAAGAGGTTTGAGTCTACAAGCGATTAAATTGACGTTCGAATATTTAAAATC -ATCTGTTGAAAAAGGTGATAAAGTTTCAAGAGAGAAAATGCATAACGCATCAACTTTGGCTGGTATGGCA -TTTGCAAATGCATTCTTAGGCATTGCACACTCAATTGCGCATAAAATTGGTGGGGAATATGGTATTCCGC -ATGGTAGAGCGAATGCGATATTACTACCGCATATTATCCGTTATAATGCCAAAGACCCGCAAAAACATGC -ATTATTCCCTAAATATGAGTTCTTCAGAGCAGATACAGATTATGCAGATATTGCCAAATTCTTAGGATTA -AAAGGTAATACGACAGAAGCACTCGTAGAATCATTAGCTAAAGCTGTCTACGAATTAGGTCAATCAGTCG -GAATTGAAATGAATTTGAAATCACAAGGTGTGTCTGAAGAAGAATTAAATGAGTCAATTGATAGAATGGC -AGAGCTCGCATTTGAAGATCAGTGTACAACTGCTAATCCTAAAGAAGCGCTAATCAGTGAAATCAAAGAT -ATCATTCAAACATCATATGATTATAAGCAATAATCTATCTGATAATAATCATCTAACTCACCTGAAATTA -CAAAAGTAAAAAATGCCACATAAACTTAAAGTCGATAATCATTATACGGTTATCGGCTTTTCTTTATTGC -CAAATCTTCAGAGAGATACAACCTAGACAATCAATTTTTTTAATAAAGAAAGTATTAAGATTGGTACACT -TTTCACAAACTATTACTACTTTAGAGTATAATTATTTTTAATTTCATATAAATAAAAAGGCGAAAATAAT -GCGGTTTAAAAGTAATTAATTGTTTAAACGATATGTAATATGTAAATACTATATATATAATACCAATTTT -AATGAAAATTTTTAAGGGAGGTAAATAATGGAAAGTACATTAGAATTAACAAAAATTAAAGAAGTATTAC -AAAAAAACTTGAAGATTTTAATTATTTTACCGCTATTATTTTTAATTATTAGCGCTATTGTTACATTTTT -CGTCTTATCACCTAAATATCAAGCTAATACTCAAATTTTAGTGAATCAAACTAAGGGTGACAATCCTCAG -TTTATGGCGCAAGAGGTTCAAAGTAATATTCAACTTGTAAATACGTATAAAGAAATTGTTAAAAGTCCTA -GAATTTTAGATGAGGTGTCAAAGGACTTAAATGATAAGTATTCACCATCTAAATTATCGAGTATGTTGAC -AATTACAAACCAAGAAAATACACAACTTATCAACATCCAAGTTAAAAGTGGTCATAAACAAGATTCGGAA -AAAATTGCGAATAGCTTCGCTAAAGTTACAAGTAAACAAATTCCGAAGATTATGAGTGTGGATAACGTAT -CAATTTTATCTAAAGCAGACGGTACAGCAGTTAAAGTCGCACCAAAAACTGTAGTGAATCTAATCGGTGC -ACTCTTTTTAGGATTAGTTGTCGCGCTTATATATATCTTCTTCAAAGTAATTTTTGATAAGCGAATTAAA -GATGAAGAAGATGTAGAGAAAGAATTAGGATTGCCTGTATTGGGTTCAATTCAAAAATTTAATTAAGGAT -GGTTGCTACTTATGTCAAAAAAGGAAAATACGACAACAACACTATTTGTGTATGAAAAACCAAAATCAAC -AATTAGTGAAAAGTTTCGAGGTATACGTTCAAACATCATGTTTTCAAAAGCAAATGGTGAAGTAAAGCGC -TTATTGGTTACTTCTGAAAAGCCTGGTGCAGGTAAAAGTACAGTCGTATCCAATGTAGCGATTACTTATG -CACAAGCAGGTTATAAATCGTTAATTATCGATGGGGATATGCGTAAGCCAACACAAAACTATATTTTTAA -TGAACAAAATAATAATGGATTATCGAATTTAATCATTGGTAGAACGACTATGTCAGAAGCTATTACGACG -ACAGAAATTGATAATTTAGATTTACTAACAGCTGGTCCTGTACCTCCTAATCCAACAGAATTAATTGGTT -CTGAAAGATTTAAAGAGTTAGTTAATCTTTTCAATGAGCGTTATGACATCATTATTGTCGATACACCGCC -AGTTAATACCGTGACTGATGCACAACTATATGCACGTGCTATTAAAGATAGTCTGTTAGTCATTGATAGT -GAAAAAAATGATAAAAATGAAGTTAAAAAAGCTAAAACACTTATGGAAAAAGCAGGCAGTAATATTCTAG -GCGTCATTTTAAATAAGGCAAAAGTAGATAAGTCTTCTAGTTATTATCACTATTATGGAGATGAATAGGT -ATGATTGATATTCATAACCATATATTGCCGAATATCGATGACGGTCCGACAAATGAAACAGAGATGCTGG -ATCTTTTAAGACAAGCGACAACACAAGGTGTTACAGAAGTCATTGTAACATCACATCACTTACATCCTCG -ATATACCACACCTATAGAAAAAGTGAAATCATGTTTAAACCATATTGAAAGCTTAGAGGAAGTACAAGCA -CTAAATCTAAAGTTTTATTATGGTCAGGAAATAAGAATTACCGATCAAATCCTTAATGATATTGATCGAA -AAGTTATTACCGGTATTAATGATTCACGCTATTTACTAATAGAATTTCCATCAAATGAAGTTCCACACTA -TACTGATCAATTATTTTTCGAATTACAGAGTAAAGGCTTTGTACCGATTATTGCACATCCAGAGCGGAAT -AAAGCAATAAGTCAAAACCTTGACATACTATACGATTTAATTAACAAAGGTGCTTTAAGTCAAGTGACAA -CGGCGTCATTAGCGGGTATTTCCGGTAAAAAAATTAGAAAATTAGCAATTCAAATGATTGAAAACAATCT -GACACATTTCATCGGTTCAGATGCGCATAACACAGAAATCAGACCGTTCTTAATGAAAGACTTATTTAAT -GATAAGAAATTACGTGATTATTATGAAGATATGAACGGATTTATTAGTAATGCGAAGTTAGTTGTTGATG -ATAAAAAAATTCCTAAACGAATGCCACAACAAGATTATAAACAGAAAAGATGGTTTGGGTTATAAACAGC -AAATGAGGGGTTTTATGGCACATTTATCTGTGAAATTGCGGCTTTTAATACTAGCATTAATCGATTCACT -GATAGTGACATTTTCAGTATTCGTAAGTTATTACATTTTAGAACCGTATTTCAAAACATATTCTGTCAAA -TTATTAATATTGGCAGCTATATCACTATTCATATCGCATCATATTTCAGCATTTATTTTTAATATGTATC -ATCGAGCGTGGGAATATGCCAGTGTGAGTGAATTGATTTTAATTGTTAAAGCTGTGACGACATCTATCGT -TATTACGATGGTGTTCGTGACAATTGTTACAGGCAATAGACCGTTTTTTAGGTTGTATTTAATTACATGG -ATGATGCACTTGATTTTAATAGGTGGCTCAAGGTTATTTTGGCGTATTTATCGGAAATACCTTGGAGGTA -AGTCATTTAATAAGAAGCCAACTTTAGTTGTTGGTGCTGGTCAAGCAGGTTCAATGCTGATTAGAAAAAT -GTTGAAAAGTGACGAAATGAAACTTGAACCGGTATTAGCAGTCGATGATGACGAACATAAACGTAATATC -ACAATTACTGAGGGTGTAAAAGTCCAAGGTAAAATCGCGGATATTCCAGAACTAGTGAGGAAATATAAGA -TTAAAAAAATTATCATTGCAATTCCAACTATTGGTCAAGAGCGTTTGAAAGAAATTAATAATATTTGCCA -TATGGATGGCGTAGAGTTATTGAAAATGCCAAATATAGAAGACGTCATGTCTGGTGAGTTAGAAGTGAAC -CAACTGAAAAAAGTTGAAGTAGAAGATTTACTTGGCAGAGATCCTGTTGAATTAGATATGGATATGATAT -CAAATGAATTGACGAATAAAACTATTTTAGTTACGGGCGCTGGAGGTTCAATAGGATCAGAAATTTGTAG -ACAAGTTTGTAATTTCTATCCAGAACGTATTATTCTACTTGGCCATGGTGAAAACAGTATTTATTTAATC -AATCGTGAATTGCGAAATCGCTTCGGAAAAAATGTTGATATCGTTCCTATTATAGCGGATGTGCAAAATA -GAGCGCGTATGTTTGAAATTATGGAAATGTATAAACCATACGCAGTTTATCATGCAGCAGCACACAAGCA -CGTGCCGTTAATGGAAGACAACCCTGAAGAAGCAGTACGTAATAATATTTTAGGTACGAAAAATACTGCT -GAAGCTGCTAAAAATGCAGAGGTAAAGAAATTCGTTATGATTTCTACGGATAAAGCCGTTAATCCACCTA -ATGTCATGGGAGCTTCAAAGCGAATTGCAGAAATGATTATTCAAAGTTTAAATGATGAAACGCATCGAAC -AAATTTTGTTGCAGTGAGATTTGGTAATGTACTTGGATCGAGAGGATCTGTGATTCCACTTTTCAAAAGT -CAAATTGAAGAAGGTGGGCCAGTTACTGTGACACATCCTGAAATGACACGTTACTTTATGACAATTCCTG -AAGCTTCTAGACTAGTTTTGCAGGCAGGGGCATTAGCAGAAGGTGGCGAAGTATTTGTGTTAGATATGGG -AGAACCAGTGAAAATAGTAGATTTAGCACGAAATTTAATTAAGTTAAGTGGTAAGAAAGAAGACGATATA -CGCATTACTTTTACAGGGATTAGACCTGGTGAAAAAATGTATGAAGAATTGATGAATAAGGATGAAATTC -ACCCTGAACAAGTATTTGAAAAAATTTATCGTGGCAAAGTACAACATATGAAATGTAATGAAGTTGAAGC -GATTATTCAAGACATCGTCAATGACTTTAGTAAAGAAAAAATTATTAACTATGCCAATGGCAAAAAGGGA -GATAATTATGTTCGATGACAAAATTTTATTAATTACTGGGGGCACAGGATCATTCGGTAATGCTGTTATG -AAACGGTTTTTAGATTCTAATATTAAAGAAATTCGTATTTTTTCACGCGATGAGAAAAAACAAGATGACA -TTCGAAAAAAATATAATAATTCAAAATTAAAGTTCTACATTGGTGATGTGCGTGATAGTCAAAGTGTAGA -AACAGCAATGCGAGATGTTGATTACGTATTCCATGCAGCAGCTTTAAAACAAGTGCCGTCATGTGAATTC -TTTCCAGTTGAGGCAGTGAAGACAAATATTATTGGTACAGAAAATGTCTTACAAAGTGCTATTCATCAAA -ATGTTAAAAAAGTCATATGTTTATCTACAGATAAGGCAGCGTATCCTATTAATGCTATGGGTATTTCGAA -AGCAATGATGGAAAAAGTATTCGTAGCTAAATCAAGAAATATTCGTAGTGAACAAACGCTTATTTGCGGT -ACAAGATACGGTAATGTAATGGCTTCAAGAGGTTCAGTAATTCCTTTGTTTATCGATAAAATCAAAGCTG -GAGAACCTTTAACGATTACAGATCCTGATATGACAAGATTTTTAATGAGCTTAGAAGATGCGGTAGAACT -AGTTGTTCATGCATTTAAGCATGCAGAGACAGGCGATATTATGGTTCAAAAAGCACCAAGTTCAACGGTA -GGGGATCTTGCGACCGCATTATTAGAATTGTTTGAAGCTGATAATGCAATTGAAATCATTGGTACGCGAC -ATGGAGAGAAAAAAGCAGAAACATTGTTGACGAGAGAAGAATACGCACAATGTGAAGATATGGGTGATTA -TTTTAGAGTGCCGGCAGACTCCAGAGATTTAAATTATAGTAATTATGTTGAAACCGGTAACGAAAAGATT -ACGCAATCTTATGAATATAACTCCGATAATACACATATTTTAACGGTGGAAGAGATAAAAGAAAAACTTT -TAACACTAGAATATGTTAGAAACGAATTGAATGATTATAAAGCTTCAATGAGATAGGAGAGATTGACGTT -GAATATTGTAATTACAGGAGCAAAGGGTTTTGTAGGAAAAAACTTGAAAGCAGATTTAACATCAACGACA -GATCATCATATTTTCGAAGTACATCGACAAACTAAAGAGGAAGAATTAGAGTCAGCGTTGTTGAAAGCAG -ACTTTGTCGTGCATTTAGCGGGAGTTAATCGACCTGAACATGACAAAGAATTCAGCTTAGGAAACGTGAG -TTATTTAGATCATGTACTTGATATATTAACTAGAAATACGAAAAAGCCAGCGATATTATTATCGTCTTCA -ATACAAGCAACACAAGATAATCCTTATGGTGAGAGTAAGTTGCAAGGTGAACAGCTATTAAGAGAGTATG -CCGAAGAGTATGGCAATACGGTTTATATTTATCGATGGCCAAATTTATTCGGTAAGTGGTGTAAGCCGAA -TTATAACTCTGTGATAGCAACATTTTGTTACAAAATTGCACGTAACGAAGAGATTCAAGTTAATAATCGG -AATGTTGAACTAACGCTAAACTACGTGGATGATATCGTCGCTGAAATAAAACGTGCTATTGAAGGAAATC -CAACGATTGAAAATGGTGTACCTACAGTACCAAATGTATTTAAAGTGACATTGGGAGAAATTGTAGATTT -ATTATACAAGTTCAAACAGTCACGTCTCGATCGAACATTGCCGAAATTAGATAACTTGTTTGAAAAAGAT -TTGTATAGTACGTATTTAAGCTATCTACCTAGTACAGACTTTAGTTATCCCTTACTTATGAATGTGGATG -ATAGGGGATCTTTTACAGAATTTATAAAAACACCGGATCGTGGTCAAGTTTCTGTAAATATTTCTAAACC -AGGAATTACTAAAGGTAATCACTGGCATCATACTAAAAACGAAAAATTTCTAGTCGTATCAGGTAAAGGG -GTAATTCGTTTTAGACATGTTAATGATAATGAAATCATTGAATATTACGTTTCTGGCGACAAATTAGAAG -TTGTAGACATACCAGTAGGATACACACATAATATTGAAAATTTAGGCGACACAGATATGGTAACTATTAT -GTGGGTGAATGAAATGTTTGATCCAAATCAGCCAGATACGTATTTCTTGGAGGTATAGCGCATGGAAAAA -CTAAAATTAATGACAATAGTTGGTACAAGGCCTGAAATCATTCGTTTATCATCAACGATTAAAGCATGTG -ATCAATATTTTAATCAGATATTAGTACACACTGGTCAAAATTATGATTATACATTGAATCAAATTTTCTT -TGATGATTTGGAATTAAGACAACCGGACCACTACTTAGAGGCAGTTGGAAGTAACCTCGGAGAAACGATG -GGGAATATTATTGCGAAGACATATGACGTTTTATTACGCGAACAACCAGATGCACTTTTAATTCTTGGTG -ATACAAATAGTTGTTTAGCAGCAGTATCTGCTAAACGATTAAAAATTCCTGTGTTCCATATGGAAGCGGG -TAATAGATGCTTTGATCAGAATGTACCTGAAGAAATCAATCGTAAAATTGTTGACCATGTCAGTGATGTG -AATCTACCTTATACAGAACATAGCAGACGGTATTTATTAGATGAAGGCTTCAATAAAGCGAATATCTTTG -TGACAGGATCACCGATGACAGAAGTGATAGAAGCGCATCGAGATAAAATTAATCACAGTGACGTTTTAAA -TAAACTAGGATTAGAACCGCAACAATACATTTTAGTATCTGCGCATAGAGAAGAGAATATCGATAATGAA -AAGAATTTTAAATCATTAATGAATGCGATAAATGATATTGCCAAAAAGTATAAAATTCCTGTGATTTATT -CAACGCATCCAAGAAGTTGGAAGAAAATTGAAGAAAGTAAATTTGAATTTGATCCATTAGTTAAACAGTT -AAAGCCATTTGGTTTCTTTGATTATAATGCATTGCAAAAAGATGCATTTGTTGTGCTATCAGATAGTGGA -ACATTGTCAGAAGAGTCGTCTATTTTGAAGTTCCCTGGTGTCCTTATTCGAACTTCCACAGAAAGACCGG -AAGTACTAGATAAAGGTACGGTTATTATAGGTGGTATTACCTATAACAATCTAATCCAATCCGTTGAACT -AGCAAGAGAGATGCAAAACAATAACGAACCGATGATTGATGCTATTGATTATAAAGACACTAACGTTTCG -ACAAAAGTAGTTAAAATTATTCAAAGCTATAAAGATATTATCAATCGAAATACTTGGAGGAAATGACGAT -GAGGATAGCGATTCTTGGCGCTACTAACATTAAGCATATGTCATTATTATCACATTATTTAAACCACATT -GATTTGAATATCAATGAGGTGGACATTATATACACTGACAAATATGATATCGAAGAAAATATCCAAGGCA -TCAATAATTACTATAAATATAAAGTAGATATTAAAGAAGATTGGACATTTATCAAAAAAGCTATTGCTTA -CTATCGATTTAGGCCATACGCTATGAAAATTCTCAAAGAAAATCATTATGATTTTGTCATAGTATGGGGA -AGTTATACAGGACACTTATTTAAAAGTTTTTTAGAAAAACACTATAAAAATAAATTCATTTTAAATATAA -GGGACTACTTTTTTGAAAATAATAAACTTATTAAGTATAGAATGAAAAAAATCGTTGATGCTAGCAGGCT -GACAACATTATCTTCAGAAGGTTTTCTTAAATTTTTACCTAAATCTGAAAAATATAGAATTATTTATAGT -TATAACATGAGTATTATTAGAGAAAGTAATGTGACCGATGAATTCAAAAAAAGATGGCCAATTAATATAG -GTTTTATTGGTAATGTCAGATTTAATGAGATAAATCAAAAATTGATAAAGGAACTGGCAAATGATTCAAG -GTTCCATATGCAATATTTTGGAACAGGGTCGGAAAAATTAGAAGTCTTTGCTCGAGAAAATTTTATTAAT -AATATTACATTTTCTGGCGGTTTTGACTTGGAAGAAACACCGAAATATTTAAATGAAATTGATATACTTA -ATAATTTGTTTGGTAATAAAAATATTGCTTTAGATACTGCTTTATCCATAAGAATGTATTATGCGTTGTT -TTTAAACAAACCTATTATTACAACAGATGATACATTCACCGCTACAGAAGCTAATAAATTCGGACTGGGT -TTTAGTGTTAATCCAGAAAATTTAAAAGGTATTGGTGATGAATTGATGGATTGGTATAACAATTTGAATG -TAATGGACATTAATCATAAAAGAGAAGCTTATAGAAACGATGTAATTGAAAATAATAAACAGTTCTATCA -AGAGATAGGCAGGATATTTAATGAATAAGATATATAATGTCACTTCATATGTTATTGCCATTTTAATGTT -TCCTTGCCTTATGTTAGGTGATAAACCTTTATTGTTTTTAGCACCTATAAGTTATGGAGTAGGAAAGCTC -TTTATAAGCTTCTCAAATAATCCGAATTTTAAATTTTCGAAAATTGTATACGATGTTTTAGGTTTTCTTA -GATTAGTATTTATACCTGCTATGATAGTGTTTTTCCAGGATTCAACTATAGATAATTTACCATTAGGACA -AGATTATTTTAATCAAGCGGTTATTTATATGAGTGTGGAGTTTATCATAGGCTCGCTATTTATATTGATA -CTATCTAAATTATTCAAACATGAAGTGGTATCAAGAAATAGCTTTACACTTTCTGGATCATCAATTTATT -ACATTGTGTTTGGTCTTGTTATTTGTGGGATTTTTGTAGCTTTTCCCGAAGTGCGCAAAAACATATCATT -TTTAATTATTAAAACAGATGCAATGGGAAGAGGAACCGAAGCAACAAGTGGTTTAAATGTCCTTTTTGTA -ATGCTATTTCAACTTGCCTTAGCGTTATTATTCTTAATAATCGCATATGCTTCATATAAAAAGTATAAAG -AGAATCCTAAAATTATTTATGTTATATTGCCGCTAGCTATAGGGATTTTAAATATTAGTTTAATTGTTGG -TGAAAGAAGAAGTTATCAACTTTATACGATGGTTGCTGTTTTAACAGTGGTGTCACTCTTGTTTTCTAAG -CACAAAAGACGTATCAATATCATTATTATATCTGTTGGTATTTTCGTATTAGCATTGATGACACTATATA -AAGAATTGTATGTGTTTAATTATAGTTCATATAGCGAGGCGTTAAATAGTACGAGTGTAAGTAATCTTAA -GATAGTTGACACGTTGCAGTCATATTTTTATGGACCTAGCAATATTGCAGCTTCTATAGACTATTTGAAT -TACTATAATGGTTCGTTTAAACAATATTTATTTGATAATACTAGAGCTGTTTTTGGGTTTAATTTCTTTG -TAGATAAAAAGCAGTTGATTACTAGCCAACTTTTTAACCAATTGATATATGGTAGTAAACAATTGACTGG -TCATCTAATTTCGAGTGCTGGATATGGAATTATTTATTTTGGACCCTTATTCTTCTATTTGAATTTAATT -GCAAATATCTTTTTTGCATTTCTGAGTGAGTATATTATTCGGAAGAGTCATTCGTTAGAAGTGATATTTA -TTGGTACATATATTTATATGAGACTTATTACGAGTATTTTTAGTCACCCGACACCATTAATCACATTGAT -TTCTATGATTTTAGTTGTATATGTTATAGCTATTATCCCAGGCATTATAATAAAAAAATTTACTAAAAAA -GTAGGGATAGAATGATTGTAAAAACATTTATGAAATCGAAAATATTTAGATTAATGAATACACCACTATT -ATTATTTTATAAGAAAGAATATTTAACTGGATATTATTTTGAAAATAAAGTGGCTGGATGGTTATGGGCA -TGGAAAGCTGTTCCGTTCAAGTTGTTAGGAATAAATACGAGCTTGCCATTTCCTGCAGATATAACTGTTA -GAATGCATAACCCTAATAACATTGTTTTTGATAAAAATGATATTCATATTTTCCAATCGCCCGGGACGTA -TTTTAATAATTTTTCAGCAGTTATATATATAGGTAGAGGTGTTTATATAGCGCCAAACGTAGGTATTATT -ACAGCTAATCATAATATTAAAAATTTGAAGTCACATGCACCAGGTGAAGATGTCAAAATAGGGAATTATA -GTTGGATTGGAATGAACTCAGTTATATTACCAGGAGTAGAATTGGGGGAACATACAATTGTAGGGGCTGG -GTCGGTTGTAACAAAAAGTTTTCCAGAAGGTAACGTTGTTATAGGTGGCAATCCAGCGAAAGTCATCAAG -AAAATCTGAGGTTAATTATGAGATTAAATAAATTTATTGGCGATTCGTTCTTAATGATTTTAAGCAGTGG -CATCGCTCAAGTCATATTAATCATCACTACCCCAATTATTACAAGACTATATTCACCTACAGAATTTGGT -GAGTTTACAATTTTTTCAAATATCGCAATGATTTTAATACCAATAATAAATGCAAGATACGATTTGTTGA -TTGTGAATACTAAAAATGACCGTAGTGCTAATATACTTTCACAAATCAGTTTTTTGATATCATTGCTTAT -TTTATTAATACTGATACCAATATTTGCGATTAGTGCATGGTTATACCCAAACTTTATATTAGATTTTATT -TTCATTATTATTATGTTGTTTTTGGTAAGTTTAACAAACATTTTTACAAATTATCTAAATAAGGAAAGAA -AATATAAAGTGTTAAGTTTGATTAATGTGTTTAGAGCTGGATCAATGGCTTTACTTCAAATTATTTTCGG -ACTTTTAGCATTAGGAAGTCTAGGATTAATTATTGGTTTTTCATTATCCTATATCGCAGGCATTACACTA -GGATATAAAACGTTTAAAAAGCACTTTAATATTGTGAGAGATAAAGAAGAAACTAAAGCATTATTTTTAG -AAAATAAAAATCAGTTAGTTTATTCAACACCATCAATATTATTAAATAGTTTGTCTTTCTCGGTTGTTGT -GTTCTTTATAGGTATTTTGTATACCAATACAGAAGTAGGTATTTATGGTATGGCCATAAGAGTACTAGGC -ATACCAGTGACAATTATTTCATTAGGGTTATCAAAAATATTTATGCAACAAGCTAATGACTATTATATTG -AATATGGTAACTTCCGAAATTTATTACTTAAATTTAGTTCCATACTGGTTATAGTTTCTATAATTCTTTA -TGTGCCACTTTATTTGTTCAGTGAAGAATTAGTCAATATATTATTAGGACATAGCTGGGTTGACGCAATT -ACAGTTATAAAAATTGTTATTCCATTATTTGTTATAAGGCTGATTGTATCAACGGTATCACTTTCTGTGA -TTGTATTACAAAAACAACAGTTAGAATTAATACTGCAAGCGTTATTTTTAATAGGTACTACTGCAACATT -TGTTATATCAAAAATGCTTAATTTAACTTTTTTAAACTTTGTATCTATTAATACAGTTGTTTTAATCGTA -TCGTACATGATATTTTTCATAGCACTCTATTATTTTGCTAAAAATAAACAGTTCAAAAATTCTTAGTCTA -AATTCATTAATAAAAAGGACGTCGATTAGATGAGTGAAAAAAAGATTTTGATTTTATGTCAGTATTTTTA -TCCGGAATATGTATCTTCAGCGACGTTACCAACACAATTGGCGGAAGATTTAATTGCGAATCACATTAAT -GTCGATGTCATGTGTGGATGGCCATATGAATATAGTAATCATAAACAGGTTTCTAAAACCGAGATGCATC -GTGGTATTCGCATTCGACGTCTCAAGTATTCGAGGTTTAATAACAAAAGTAAGGTTGGAAGGATCATCAA -TTTCTTTAGTTTATTTTCAAAATTCGTGATTAATATACCTAAAATGTTGAAATATGATCAGATTCTTGTT -TACTCTAATCCACCAATCTTGCCATTAATACCAGACGTTCTACACAGATTGCTTAAGAAAAAATATTCTT -TTGTGGTGTATGATATAGCACCTGATAATGCGATTAAGACAGGTGCAACACGTCCAGGTAGCATGATTGA -TAAACTGATGCGTTACATTAATAAACATGTCTACAAGAATGCTGAAAATGTCATTGTCCTTGGTACGGAA -ATGAAAAACTACTTACTAAATCATCAAATTTCTAAAAATCCTGACAATATTCATGTGATTCCTAACTGGT -ATGACATGCGTCAGTTACAAGACAATCGTATCTATAATGACACATTTAAAGCTTACCGTGAGCAATACGA -CAAAATTTTATTGTATAGCGGTAATATGGGGCAGTTACAGGATATGGAGACACTTATCTCATTTTTAAAA -TTAAATAAGGATCAGCCTCAAACGTTAACAATACTTTGTGGTCATGGTAAGAAATTTGCAGATGTCAAAA -CGGCAATAGAAGACCATCGTATTGAAAATGTTAAAATGTTTGAGTTTTTAACAGGTACAGACTATGCTGA -CGTATTAAAAATTGCGGATGTATGTATTGCATCGCTGATTAAAGAAGGCGTCGGTTTAGGCGTGCCGAGC -AAGAATTATGGCTACCTTGCAGCTAAGAAGCCGTTGGTACTCATCATGGATAAGCAATCTGATATCGTTC -AACATGTTGAACAATATGATGCGGGTATCCAAATTGATAATGGCGATGCACATGCCATTTATAACTTCAT -CAACACTCACTCGAGTAAGGAATTGCACGAGATGGGTGAGCGCGCACATCAACTGTTTAAAGATAAATAT -ACGAGAGAAATTAATACTATGAAGTATTACAATCTGTTGAAGTGAGGAGATAATTATGAAGCGATTATTC -GATGTAGTGAGTTCAATATATGGTTTAGTAGTTTTAAGTCCGATTCTGTTAATTACAGCATTACTAATTA -AAATGGAATCACCCGGACCAGCCATTTTCAAACAAAAAAGACCGACGATTAATAATGAATTGTTTAATAT -TTATAAGTTTAGATCAATGAAAATAGACACACCTAATGTTGCAACTGATTTAATGGATTCAACAGCGTAT -ATAACAAAGACAGGGAAGGTCATTCGTAAAACCTCTATTGATGAATTGCCACAATTATTGAATGTTTTAA -AAGGAGAAATGTCAATTGTAGGTCCTAGACCAGCGCTTTATAATCAATACGAATTAATTGAAAAACGTAC -AAAAGCGAACGTGCATACGATTAGACCAGGTGTAACAGGGCTAGCTCAAGTGATGGGGAGAGATGATATT -ACTGATGATCAAAAAGTAGCGTATGATCATTATTACTTAACACATCAATCTATGATGCTTGATATGTATA -TCATATATAAAACAATTAAAAATATCGTTACTTCAGAAGGTGTGCATCACTAATGAGAAAAAATATTTTA -ATTACAGGCGTACATGGATATATCGGTAATGCTTTAAAAGATAAGCTTATTGAACAAGGACATCAAGTGG -ATCAAATTAATGTTAGGAATCAATTATGGAAGTCGACCTCGTTCAAAGGTTATGATGTTTTAATTCATAC -AGCAGCTTTGGTTCACAACAATTCACCTCAAGCAAGGCTATCTGATTATATGCAAGTGAATATGTTGCTT -ACGAAACAATTGGCACAAAAGGCTAAAGCTGAAGACGTTAAACAATTTATTTTTATGAGTACTATGGCAG -TTTATGGAAAAGAAGGTCAGGTTGGTAAATCAGATCAAATTGATACACAAACACCAATGAACCCTACGAC -CAACTATGGTATTTCCAAAAAGTTCGCTGAACAAGCATTACAAGAGTTGATTAGTGATTCGTTTAAAGTA -GCAATTGTGAGACCACCAATGATTTATGGTGCACATTGCCCAGGAAATTTCCAACGGTTAATGCAATTGT -CAAAGCGATTGCCAATCATTCCAAATATTAATAATCAGCGGAGTGCATTATATATTAAACATCTGACAGC -ATTTATTGATCAATTAATATCATTAGAAGTGACAGGCGTGTATCATCCTCAAGATAGTTTTTACTTTGAT -ACATCGTCAGTAATGTATGAAATACGTCGCCAATCGCATCGTAAAACGCTATTGATCAACATGCCTTCAA -TGCTAAATAAGTATTTTAATAAGTTGTCGGTCTTTAGAAAATTATTCGGCAATTTAACATACAGCAATAC -TTTATATGAAAATAATAATGCGCTTGAAGTTATTCCTGGAAAAATGTCACTTGTTATTGCGGACATCATG -GATGAAACGACAACCAAAGATAAGGCATAAGTCATCTATTAAATAAAATCAACATACAAATCGTTTTATT -TGGAGGTTATAGTATGAAGTTAACAGTAGTTGGCTTAGGTTATATTGGTTTACCAACATCAATTATGTTT -GCAAAGCATGGCGTCGATGTGCTTGGTGTTGATATTAATCAGCAAACGATTGATAAGTTACAAAGTGGTC -AAATTAGTATTGAAGAACCTGGATTACAAGAGGTTTATGAAGAGGTACTGTCATCGGGAAAATTGAAGGT -ATCTACAACGCCAGAAGCATCTGATGTTTTTATCATTGCCGTTCCGACACCGAATAATGATGATCAGTAC -CGGTCATGTGACATTTCGCTAGTTATGCGTGCATTAGATAGTATTTTACCATTTTTAGAAAAAGGAAATA -CCATTATTGTAGAGTCGACAATTGCGCCTAAAACGATGGATGATTTTGTAAAACCAGTCATTGAAAATTT -AGGGTTTACAATAGGTGAAGATATTTATTTAGTGCATTGTCCAGAACGTGTACTGCCAGGAAAAATTTTA -GAAGAATTAGTTCATAACAATCGCATCATTGGCGGTGTGACTAAAGCTTGTATTGAAGCGGGGAAACGTG -TCTATCGCACATTCGTTCAGGGAGAAATGATTGAAACAGATGCACGTACTGCTGAAATGAGTAAGCTAAT -GGAAAACACATATAGAGACGTGAATATTGCTTTAGCTAATGAATTAACAAAAATTTGCAACAACTTAAAT -ATTAATGTATTAGATGTGATTGAAATGGCAAACAAACATCCGCGTGTTAATATCCATCAACCTGGTCCAG -GTGTAGGCGGTCATTGTTTAGCTGTTGATCCGTACTTTATTATTGCTAAAGACCCTGAAAATGCAAAGTT -AATTCAAACTGGACGTGAAATTAATAATTCAATGCCGTCCTATGTTGTTGATACAACGAAGCAAATCATC -AAAGCGTTGAGCGGGAATAAAGTCACAGTATTTGGTTTAACTTATAAAGGTGATGTTGATGATATAAGAG -AATCACCAGCATTTGATATTTATGAGCTATTAAATCAAGAACCAGACATAGAAGTATGTGCTTATGATCC -ACATGTTGAATTAGATTTTGTGGAACATGATATGTCACATGCTGTCAAAGACGCATCGCTAGTATTGATT -TTAAGTGACCACTCAGAATTTAAAAATTTATCGGACAGTCATTTTGATAAAATGAAGCATAAAGTGATTT -TTGATACAAAAAATGTTGTGAAATCATCATTTGAAGATGTATCGTATTATAATTATGGCAATATATTTAA -TTTTATCGACAAATAAAATGTGTCAAACTAGGGCATACATGATTAAGGAAAGATAAGCTGTCATGTGTTT -GAACTTCAGAGAGGATAATGTTATGAAAAAAATTATGGTTATTTTCGGTACGAGACCCGAAGCAATAAAA -ATGGCACCATTAGTAAAAGAAATTGATCATAATGGGAACTTTGAAGCGAACATTGTGATTACAGCACAAC -ATAGAGATATGTTAGATAGTGTGTTAAGTATATTTGATATTCAAGCTGATCATGATTTAAATATTATGCA -AGATCAACAAACGTTAGCGGGCATTACGGCGAATGCGCTTGCTAAACTTGATAGCATCATTAATGAGGAA -CAGCCGGATATGATTTTAGTACATGGTGATACTACAACGACTTTTGTAGGAAGCTTGGCAGCATTTTATC -ATCAAATTCCGGTCGGACATGTAGAAGCTGGACTTCGAACACATCAGAAATACTCACCATTTCCTGAAGA -GTTAAATCGAGTCATGGTAAGTAATATTGCTGAATTGAATTTTGCGCCAACAGTAATTGCAGCTAAAAAT -TTACTTTTTGAAAACAAAGACAAAGAGAGTATCTTTATTACCGGAAATACAGTTATTGACGCATTGTCAA -CAACAGTTCAAAATGAGTTTGTTTCAACGATTATTAATAAACATAAAGGCAAGAAAGTTATTTTACTAAC -AGCGCATCGTCGTGAAAATATTGGAGAACCGATGCATCAGATTTTTAAAGCAGTAAGAGATTTGGCAGAT -GAATATAAAGATGTTGTCTTCATTTATCCAATGCATCGTAATCCAAAGGTAAGAGCGATTGCCGAAAAAT -ATTTATCTGGGAGAAATCGGATTGAATTAATTGAGCCATTAGATGCGCTTGAGTTCCATAATTTTACAAA -TCAATCGTACCTCGTGCTGACAGATTCTGGTGGTATTCAAGAGGAGGCTCCTACATTTGGAAAACCTGTG -TTGGTATTAAGGAATCATACAGAGCGTCCCGAAGGCGTTGAGGCGGGAACATCGAGAGTAATTGGCACAG -ATTATGACAATATTGTTCGAAATGTGAAACAATTGATTGAGGATGATGAAGCGTATCAACGTATGAGTCA -AGCGAATAATCCATATGGTGATGGACAAGCATCACGACGTATTTGTGAAGCAATAGAATATTATTTTGGA -TTGCGTTCAGACAAGCCGGATGAATTCGTACCTTTACGTCGCAAATAATAAAAAACCCCTAATCATTAAG -TTGGTTTAGACAACCAGCGGTGACTAGGGGTTTTTAATATGTTTATTTTTGATAGTGGTAGCCAATATCA -TATTTGAATACTTTATTTGATAATATTGGACTTTGCTGTCCATCGTCATCACTTTTTAAACGTACATTTT -TATGAGCTTCTTTAAATACATCGGAATTCAACCAATTATTAAAGCTATCTTCAGATTCCCAAATAGTTAA -GATTTTAACTTCATCTGTATCCTTGGTATTTAATGTTTTAGTGACAAACATTTGTTGGAAGCCTTCAATA -GTTTCAATACCTTGTCTATTGTAAAAACGTTCAATCGTTTCTTCCGCACTGCCTTTTTGTAATTGTAATC -TATTTTCTGCCATAAACATGGGCAATCACTCCTCTATTTTATTATTTGATTTGGGTAATGTTTTTACAAA -TGTAAAGAGTACAGCGGTTTGTATGATAACCATTATGATTAATCCTATACGGACTGCAAGAACATCCACC -ATATAAATTGAAAAACCTATTACAATGTATAAGCTAATTAAAATTTTAATTTTCTGTTGTAGCGTGTAGC -CTCGATGTAAATAAAAGTTTTCTACATATTCTTTATAAATTTTTTGATTAATAAGCCAATTGTAAAAGCG -ATCTGAACTTCGAGCAAAACAAAAAACTGCTACGAGTAAAAAAGGGGTCGTTGGCAGTAAAGGTAATACG -GCACCTGCAATACCAAGCGCTGTAAATATTAAGCCAATGACGATTAAAATAAGTCGCATTGAAAAAACTC -CATTCTAGTACTAATGCGCATGTAATATTGTTTTAGTAATATAACTCATGCTAAATATAATGTGTATGAT -AAGTGCAATGACTCAGTAAGATGAAACGTTGTTGAATTATCCTTGTCCCATTAACGCATTTTAAGCGCGA -CTTTCATAACAACCAAACTATTTAATGAGAATTATTCTCAAGTATTATAGTTATATTATGTGTTTTATTT -TTGAAAAGTGCAATATGTTTTCGAAAATAAGATTATTTTTATGTGCAAAAACGACGCAAAAGTTTTAAAA -ATGAGACTTCTGTGAGCTGATTATTTTATAAAATGTAAACGCTTACTATATAATGTGAATCATATCGTTT -AAAAGCATTATTAAATATGATGCTAAGAGATTTATATTATAGCCAATAAACAAAGGAGAGATAATATGGC -AGTAAACGTTCGAGATTATATAGCAGAGAATTATGGTTTATTTATCAATGGGGAATTTGTTAAAGGTAGC -AGTGACGAGACAATCGAAGTGACTAATCCAGCAACTGGAGAAACACTATCACATATTACAAGAGCAAAAG -ATAAAGATGTCGATCATGCAGTCAAAGTGGCGCAAGAGGCATTTGAATCATGGTCATTAACTTCTAAATC -AGAACGTGCACAAATGTTGCGTGATATTGGTGATAAATTAATGGCACAAAAAGATAAAATTGCAATGATT -GAAACATTAAATAATGGTAAACCGATTCGTGAGACAACAGCAATTGATATTCCATTTGCTGCAAGACATT -TCCATTATTTCGCAAGTGTTATTGAAACAGAAGAAGGTACAGTGAATGATATCGATAAAGACACAATGAG -TATCGTACGACATGAGCCGATTGGCGTCGTAGGTGCTGTTGTTGCTTGGAACTTCCCAATGCTATTAGCT -GCATGGAAGATTGCGCCAGCCATTGCTGCAGGTAATACAATTGTGATTCAACCTTCGTCTTCAACACCAT -TAAGTTTATTGGAAGTTGCTAAAATTTTCCAAGAGGTATTACCTAATGGTGTTGTCAATATACTAACGGG -TAAAGGTTCAGAATCAGGTAATGCAATTTTCAATCATGATGGGGTAGATAAATTATCATTTACGGGCTCA -ACTGATGTAGGTTATCAAGTTGCCGAAGCTGCAGCGAAACATCTAGTACCTGCTACTTTAGAGCTTGGTG -GTAAAAGCGCCAATATCATATTAGATGATGCTAATTTAGACCTTGCAGTTGAAGGTATTCAGTTAGGTAT -TTTATTCAACCAAGGTGAAGTATGTAGTGCAGGTTCTCGATTATTAGTTCATGAAAAAATTTATGATCAA -TTGGTGCCACGTTTACAAGAGGCATTTTCAAATATTAAAGTTGGAGATCCACAAGATGAAGCTACACAAA -TGGGTAGTCAAACTGGTAAGGATCAATTAGATAAAATTCAATCATATATTGATGCAGCAAAAGAATCAGA -TGCACAAATTTTAGCAGGTGGTCATCGTTTAACTGAAAATGGGTTAGATAAAGGATTCTTCTTTGAACCA -ACGTTAATTGCTGTGCCAGATAATCATCATAAATTAGCGCAAGAAGAAATATTTGGACCAGTTTTAACAG -TGATTAAAGTGAAGGATGATCAAGAAGCAATTGATATAGCTAATGATTCAGAGTATGGTTTAGCTGGCGG -CGTATTTTCTCAAAATATCACACGTGCATTAAATATTGCTAAAGCTGTTCGTACAGGACGTATTTGGATT -AACACTTACAACCAAGTACCAGAAGGCGCACCATTTGGTGGTTATAAAAAATCAGGTATCGGTCGAGAAA -CTTATAAAGGTGCGTTAAGTAACTATCAACAAGTTAAAAATATTTATATTGATACAAGCAATGCTTTAAA -AGGTTTGTACTAGAATAAATATCATTTTTGAAGCGTGTTTGTAGGCAGTCTAGCGGTAAGTCTTAGCATG -TTTACGGAGTTGTTTAGATTTTAAGCGAAACAAAATATTTAGGAACTTGCATAATGATACTAGGATATAA -TGACTAAAATAATAGCAGTATGATGGTTTTTAATTGCAAATCATCTTACTGCTGTTTTTACTTATGCTAA -TTTGCGATGCGGCTATTATAAGGACAGAGTTGTTTATGAATTAAGGTGATTTTGAAATATGAAGTTCTAT -ATGCAAATGTATCGTTTGTTTTAATATGTGGAACAATCATAAAATACTATTGTTATTTTTGGACTTGATG -AAATAAAACAAATGAATTTGAGAAACTTTTTTGTCATTTTTATGTAATTAGCACAATCATATCGGAAATG -TTTAAAAATTTCTATATGATAGGGATAAAGCAAAGCGCGAGTGTGCTGTAAAAGTTTTTCCAAGGTGATA -TTACATAAAGGTATAAAGGGTAAAGATTAATGAGTTGTCATGTAAAGTACGATGATGTATAAATTATGGT -TAATTACGGAAGCATTAATACTAACCTGAGAAGCTATAAATAATTGTTATTAAAAGCAACTACATTAAAT -ACGACGCATTTATTTAGGAGTGGCAAACTATGAACGGGAAAAAGGCGAATACGATAAACAGATACAAATA -TTTTCATCATGTCGATCATCAAAAAATTCAACAAAGTTCTAAAAAGACGCTATGGGCATCACTTATCATC -ACACTATTATTTACAGTGATTGAATTTGTTGGAGGTTTAGTATCTAATTCATTAGCATTGCTGTCAGACT -CATTTCATATGCTTAGTGATGTATTAGCACTCGGTTTGTCAATGTTGGCAATTTATTTTGCTAGTAAGAA -GCCGACTGCACGCTACACATTCGGATATTTAAGATTTGAGATATTAGCGGCATTTTTAAATGGTTTAGCA -TTAATTGTAATTTCAATCTGGATTTTATATGAAGCTATTGTACGTATTATTTATCCGCAACCCATTGAAA -GTGGCATTATGTTTATGATTGCTAGTATTGGTTTACTCGTCAATATTATTTTGACTGTTATCCTTGTAAG -GTCTTTAAAACAAGAAGACAATATCAATATTCAAAGTGCATTATGGCATTTCATGGGAGACTTATTGAAC -TCTATTGGTGTCATCGTTGCAGTTGTATTGATCTACTTTACAGGATGGCGCATCATTGACTCAATCATTA -GTATTGTAATTTCACTCATCATTTTACGTGGTGGTTATAAAATTACGCGTAATGCGTGGTTAATTTTAAT -GGAAAGTGTGCCTCAACATTTGGATACTGATCAAATTATAGCAGATATAAAAAACATAGATGGCATATTA -GATGTACATGAATTTCATTTGTGGAGTATTACAACAGAACATTATTCATTAAGTGCCCATGTTGTGTTAG -ATAAAAAATATGAGGGGGATGATTATCAAGCGATTGATCAAGTATCATCATTGTTGAAAGAAAAATATGG -CATTGCACATTCAACGTTGCAAATTGAAAACTTGCAATTGAATCCATTAGATGAGCCATACTTCGACAAA -CTAACATAAATAAAACATTGTAGCGCCTAAAACATTAATCAATGTCATAGGCGCATGTTTCGTTTTATAC -TTATGTTGCATCATCTAAATGATTTTCGTCGATGTCTTTGATGGTATCTACATCTAACACGACATCTTTA -GGTTTCAAAATATGAATATGTTTTTCATCATTTGTATGTAAAATGCGTTCTATGATGTACCTTTGACCGG -TCATTGTTTCTACAGCAATCTTTTTGTTTCTTGCTAAACTTGCTACGACAGATTCTTTATCCATAATGAT -AGCCCCCTATATATATCTTTATTTACTTATACCCTAACATTATTTTTATACTCTTTGAAAATATATTTTA -CAGAATTTTATCTAAATATTTAAAAAAACCGCTCAATATCCTTGTAATCCGATAAGAATTATAGTAATAT -TTTTTTCAACCATTGTTATAGGAGGTCTTATTAATGACATTATTTTTATTAGAAGCTAACAATCTTGATT -TTGCATCAACGAAAGAAGAACTAGAAGCAAAGGCATCATCACTATCTACGAAGACAATTCCAACATTAAT -TGAAGTACAAGCTACTGAAAATTTAACTCATGGTTATTTTATTGTGGAAGCAAATGACGAAGCAGAAGCT -AAACAATTTTTAACAGAAGCAGGTATTAGCATTCAATTAGTCAAAGAAGTACGCTTAGTTGGTAAAGATT -TAGATGAAGTAAAAAATGGTGATGCACATGTTGATTACCTTGTAACTTGGAACATTCCGGAAGGCATTAC -GATGGATCAATATTTAGCACGTAAAAAGAAAAATTCTGTTCATTATGAAGAAGTGCCAGAAGTTGAATTT -AAACGCACATATGTATGTGAAGATATGTCTAAATGTATTTGTTTATACAACGCACCTGATGAAGAAGCGG -TACGTCGCGCGCGCAAAGCAGTTGATACACCGATTGATGGCATCGAAAAACTTTAATAAGACAACAAGTT -GATGATATATATGTATATAGGTTTGGCGTGGATTTCGATTGCAGTTAATTAGAATAGCTCAATGCTATAA -ATGTAAGTAGTTGATATGACGAAACTAATGAACTAAATGCAAGTTTTGTCTAAAACAATCATTTTATTGA -AATTTAGTAGAGCTGAAATTAATATAACGTCGTTAATTGAATAACGCTTATGTTATAAGAGTACTCATAC -CAAACCATAATCATCTATAGATATAACAATTCACGATTTAAGGGCTGTGTTTGGCATAGCCCTTTAGATA -TACATTTAATTCTTATTAAAATGGTAGGGATTAAAAGGGGGCTTGTCATGATTAAAATACAACAATTACA -ACATCACTTTGGATCACATAAAGTAATTCATAACTTTAATTTGGACATTAGCAAGGGAGAAATAGTCACT -TTTATAGGGAAAAGTGGTTGCGGGAAGTCTACTTTACTCAATATCATCGGTGGATTTATTCATCCATCAT -CTGGTCGTGTCATTATTGATAACGAAATTAAACAACAGCCGTCTCCAGATTGTTTAATGCTATTTCAACA -TCATAATCTGCTGCCATGGAAAACGATTAATGACAACATTAGGATTGGATTCCAACAGAAAATTAGTGAT -GAAGAGATTAACGCACAGCTTAAATTAGTTGATTTAGAAGGCAGAGGAAAGCATTTTCCCGAGCAACTGT -CCGGGGGTATGAAACAACGTGTGGCACTATGTCGAGCGCATGTGCATAAGCCTAACGTTATATTGATGGA -TGAGCCATTAGGTGCATTAGATGCATTTACACGCTATAAACTTCAGGATCAACTAGTACAACTAAAACAT -AAAACGGAATCAACTATTATCTTAGTCGCTCACGATATTGATGAAGCTATTTATCTTTCCGACCGCATTG -TTCTGTTAGGTGAAGGGTGCAATATTATTTCTCAATATGAAATTACAGCATCACATCCACGCAGTCGTAA -TGATAGCCACCTACTTAAGATTCGTAATGAAATTATGGAAACATTTGCATTGAATCATCATCAAGTTGAA -CCTGAATATTATTTATAAGGAGTGAGTGACGATGAAAAGGTTAAGCATAATCGTCATCATTGGAATCTTT -ATAATTACAGGATGTGATTGGCAAAGGGCGTCTAAAGAACCGTCTAATAATGCCCAACATCAGCAAGTGA -TTAAAATTGGATATTTGCCGATTACACATTCAGCTAATTTGATGATGACTAAAAAATTATTATCACAACA -CAATCATCCGAAATATAAATTAGAATTAGTTAAATTCAATAATTGGCCAGATTTAATGGACGCATTAAAC -AGTGGTCGTATTGATGGTGCATCAACTTTAATAGAGCTCGCGATGAAATCAAAGCAGAAGGGCTCGAATA -TAAAAGCTGTGGCATTGGGGCATCATGAAGGCAATGTCATTATGGGACAAAAAGGTATGCACTTAAATGA -ATTTAATAATAATGGCGATGATTACCATTTTGGTATACCGCATCGTTATTCAACACATTATCTCTTACTT -GAAGCATTACGAGAACAATTAAAGATTAAACCGGGGCATTTTAGCTATCATGAAATGTCGCCAGCAGAAA -TGCCAGCCGCATTAAGTGAACACAGAATTACAGGGTATTCTGTAGCCGAACCATTCGGTGCACTGGGGGA -AAAGTTAGGCAAAGGTAAGACTTTGAAACATGGTGATGACGTTATACCTGATGCGTATTGCTGTGTGCTA -GTACTGAGAGGCGAATTGCTTGATCAACACAAGGCTGTAGCGCAAGCATTTGTACAAGATTATAAAAAGT -CTGGCTTTAAAATGAATGATCGCAAGCAAAGTGTAGACATTATGACGCATCATTTTAAACAAAGTCGTGA -CGTTTTAACACAGTCAGCGGCATGGACATCCTATGGTGATTTAACAATTAAGCCATCCGGATATCAAGAA -ATTACGACATTGGTAAAACAACATCATTTGTTTAATCCACCTGCATATGATGACTTTGTTGAACCGTCAT -TGTATAAGGAGGCATCACGTTCATGACACGTCTCACAATTAATAAAATTATATTACCTATTATCACATTT -ATTATTTTCTTAGGCATTTGGGAAATGGTCATTATTATTGGGCATTACCAACCTGTATTGTTACCTGGTC -CTGCTCTTGTAGGAAAAAGCATATGGACTTTCATTGTTACTGGAGAAATTTTCCAACATTTAGCAATTAG -TTTATGGAGATTTGTAGCGGGCTTTGTTGTCGCATTGTTGGTTGCTATTCCATTGGGCTTCTTGCTTGGA -AGGAATCGTTGGCTATACAACGCTATCGAACCGCTATTTCAATTGATTAGGCCGATATCTCCGATAGCTT -GGGCACCATTTGTTGTTCTATGGTTTGGTATTGGTAGTTTGCCAGCGATTGCGATTATTTTTATCGCTGC -TTTTTTTCCAATTGTGTTCAATACCATTAAAGGCGTTAGAGACATTGAACCTCAATATTTAAAAATAGCG -GCAAATTTAAATTTAACTGGGTGGTCATTGTATCGCAATATATTATTTCCCGGGGCATTTAAACAAATCA -TGGCTGGGATACATATGGCGGTAGGAACAAGTTGGATATTTTTAGTTTCTGGTGAAATGATTGGTGCACA -ATCGGGATTAGGTTTTTTAATCGTTGATGCACGAAATATGTTGAACTTAGAAGATGTTTTAGCAGCAATA -TTCTTTATCGGATTATTTGGTTTTATTATTGATCGATTCATTAGTTATATTGAGCAGTTTATACTTAGAA -GATTTGGTGAATAAGGAGAGATGATGATGACTTTAGAAACACTTATCAAAGAACAATTAGATCCTCATTT -AGTAGAAGTTGATGAAGGGACGTATTATCCGAGAACATTTATCCAACAATTATTTGTAGATGGCTATTTT -GGTGAAGCGACACTGAGAAAAAATGCTGAAGTAATCGAAGCTGTATCGCAGTCTTGTTTGACAACAGGAT -TTTGTTTATGGTGCCAATTGGCTTTTTCAACGTATTTAGAAAATGCCACACAGCCACATTTAAATAATGA -CTTACAACAGCAATTGTTATCTGGAGAAATATTAGGTGCTACCGGATTGTCTAATCCGATGAAGTCATTT -AATGATTTAGAAAAGTTGAACCTTGAACACACTTATGTTGATGGACAATTGGTTGTCAGTGGACGTATGC -CAGCTGTAAGTAATATTCAAGAAGACCATTATTTTGGTGCGATTTCGAAGCATGAATCATCAGATGAATT -TGTCATGTTCATTCTACGTGCCAATCAAGATGGTATCACGCTTGTTGAAAAAACAAATTTTTTAGGGGTA -AACGGCTCAGCAACGTATCAAATTACTTTGAATCAAGTCGCAGTGCCACAATCACAAATTATCACGCATG -ATGCGAAGCAGTTTGCGGCAACTATTCGCCCGCAATTTATTGCTTACCAAATTCCAATAGGATTAGGCTC -AATTAAAAGTTCTTTAGAGTTAATTGATGCATTTTCAAATGCGCAAAACGGAATAAATCAATATTTAGAG -TATGATGTTGAAGGTTTTAAAAAACGCTATCGTCAACTTAGAGAGGAATATTATGCAATATTAGATGACG -GTAACTTAACTTCACATTTAAATGAATTAATATCATTGAAGAAGGACATTGGCTACTTATTGTTAGATGT -AAATCAAGCTTCTGTTGTCAATGGTGGTTCAAGAGCGTACACACCATATTCGCCACAAGTACGTAAATTA -AAAGAAGGATTCTTCTTTGCGGCATTAACGCCAACATTAAGACATTTAGGTAAACTTGAGGCAGAGTTGA -AGGGGTAAGTATGATATGCTGATTTGTTGTTTAGATGCGCTTGTTGAAACAATTTTTAAAATAATATAAA -TCTTAGTTTATAAACATTTTCTGTTAATTTGTTATATCCTTTTAACTAGGAAAATATACATTTCGTAATA -ATAATCGTTATCATTGAAAAAGTGTTAATAAGGTGTATAATGAAAATGTGAACAATTAATGAACTTCTTA -TTTTAGAGAAGGTGAATACTATAGATACGCATACTAAAGAACAACAATTCTCGAATCTAGTAAGATCTTA -TCGTAAAGAATACGTGGGTAAAGGACCCAACAGTATTCGAGTGTCGTTTAAAGATAATTGGGCGATTGCA -CATATGACAGGTGTTTTGAGTAAAGTTGAGAGTTTTTACCTAAACGACAAACGCAATGAATCGATGCTCC -ATTATACACGCACAGAGAAGATTAAACAGATGTATAAAGAAATAGATGTAAATGAGATGGAAAGTGTTGT -AGGCGCTAAGTTTGTAAAATTATTTACAGATATTGATTTGAATGATGATGAAGTCATTTCAATATTTGTT -TTCGATAAGTCAATAGAATAAGTGTTGCTGGTGTAAGGTACGCGGTGCTGTTTGCTAACTTCGCTTTGAA -TTTAACAATAATTCAAGGGGGTGGTATGTCAAACAGTGCCGTTTTTTTTGTCATATTTTTAAAACAAGCA -ACATGCAACACGTACTTTAAGGAAGTCAAAATTTATCATTTAGGAGAGATGGATATGAAAATCGTAGCGT -TATTTCCAGAAGCAGTAGAAGGTCAAGACAATCAATTACTTAATACTAAAAAAGCATTAGGATTAAAAAC -ATTTTTAGAGGAAAGAGGACAAGAGTTCATTATATTAGCAGATAATGGTGAAGACTTAGATAAACATTTA -CCAGATATGGATGTGATTATTAGTGCGCCATTTTATCCTGCATATATGACTCGTGAACGTATTGAAAAAG -CACCGAACTTGAAATTAGCAATTACAGCAGGTGTAGGATCTGACCATGTAGATTTAGCGGCAGCAAGTGA -ACATAACATTGGTGTCGTTGAAGTTACAGGAAGTAATACAGTTAGTGTGGCAGAACATGCAGTTATGGAT -TTATTAATACTTCTTAGAAACTATGAAGAAGGTCATCGTCAATCAGTAGAAGGTGAATGGAACTTGTCTC -AAGTAGGTAATCATGCGCATGAATTACAACACAAAACAATTGGTATTTTTGGATTTGGACGAATTGGACA -ACTTGTTGCTGAAAGATTAGCGCCATTTAATGTAACATTACAACACTATGATCCAATCAATCAACAAGAC -CATAAATTGTCTAAATTTGTAAGCTTTGATGAACTTGTTTCAACAAGTGATGCGATTACAATTCATGCAC -CATTAACACCAGAAACTGATAACTTATTTGATAAAGATGTTTTAAGTCGTATGAAAAAACACAGTTATTT -AGTGAATACTGCACGTGGTAAAATTGTAAATCGCGATGCGTTAGTTGAAGCGTTAGCATCTGAGCATTTA -CAAGGATATGCTGGTGATGTTTGGTATCCACAACCTGCACCTGCTGATCATCCATGGAGAACAATGCCTA -GAAATGCTATGACAGTTCACTATTCAGGTATGACTTTAGAAGCACAAAAACGTATTGAAGATGGAGTTAA -AGATATTTTAGAGCGTTTCTTCAATCATGAACCTTTCCAAGATAAAGATATTATTGTTGCAAGTGGTCGT -ATTGCTAGTAAAAGTTATACAGCTAAATAGAATAAGGATGCTGGGCTAGCGATTAACGCTTTCAATTTTA -TATAAATGAATCATATAAGTACTACTGCTGTTGTAAAGATGGCAGTAGTTTTTTTATGATTACATCTAAG -TATAGTCACGGCTATGTTAGGACAATGATTTAACGTTTACGCACATATGTGTTCACTTACGCAAATGTTG -ATAAATTTCACTCATTTGGAATAATATATAGTCATATAGTGCTAATTTTTTTGAGGCATTATATGCAAGA -TGCATTGTAAAGTCGATACATTTGTTTGTTAAATAACTTTGTATAACTAAAAATTCTTTGCTTCAACGTA -TAATCAAATAATAGATTTTATATAAATGGTAGTGTGCATATATGTGGATAGGGGTGTAGTTATCAATGAA -ACGTTTAAGTACGACTTTGAAAGTACGATTGATTAGCAATTTTTTACAGCTAATTATTACGACAGCATTT -ATACCGTTTATAGCACTATATTTAACAGATATGTTAAGTCAATCAATTGTCGGTATATACCTTGTTGGTT -TAGTGGTTCTAAAATTTCCATTGTCTATTATATCTGGTTACCTTATTGAGATATTTCCGAAAAAGTTGCT -AGTACTTATTTATCAAGCGACGATGGTGATAATGCTTGTGTTCATGGGCATATTTGGGTCACATCAATTG -TGGCAAATTATTGGTTTTTGTGTTGCATACGCCATATTTACAATTGTTTGGGGATTGCAATTTCCAGTTA -TGGACACGTTAATTATGGATGCAATTACCGAAGATGTGGAACATTATATTTACAAGATTAGCTATTGGAT -GACGAACTTATCGGTAGCTATTGGAGCATTGTTAGGTGGCTTGATGTATGGCTACAGTATGTTACTGCTT -TTCTTAATAGCAGCTTGTATATTTTTAATTGTACTGTTTATTTTATATATTTGGTTACCTCAAGACCGAA -ATCAAGTAAAGCAAAGTGATGACAAGAAACATGCAAGTCGTTATCAAAAATTACAAATAATGAATATATT -TCGCAGTTATAAATTAGTTTTGAAAGACCGTAATTATATGTTATTGATTTCGGGGTTCAGTATCATCATG -ATGGGTGAATTTTCAATCTCCTCATATATTGCTATTAGACTAAAGGATCAGTTTGAAACAATAAGTATAG -GTTCATATGATATTACAGGTGCTAAGATGTTAGCAATCTTGCTAATGATTAATACGGTCGTCGTCATTTT -ACTCACGTATTCAATCTCGAAAATTGTATTGAAAATAGATTTTAAAAAAGCTTTAATCACTGGTTTGCTG -ATTTATATTGTTGGCTATAGTGGTCTAACCTATCTTAATCAGTTTGGCTTATTAGTTGTTTTTATGATAA -TTGCGACTGTAGGTGAAATTATTTATTCGCCTATAGTTTCAGAACAACGCTTTAAAATTATTCCTAAAGC -TAAAAGAGGAACATATAGTGCAGTTAATGCATTAGGCATTCATTTTTCAGAAACACTAGCTAGGTTAGGG -ATTGTGTTGGGTGCTTTCTTAACGACATTACAAATGGGACTGTATATGTTTATAGTTTTAACAATTGGTG -CTAGCATGCTTGTTGCTGGTGTATTCGGGGGACAAAAACAAGTGAATACAAATTGAATTTATTTAAATAT -TTATTCTATGCATCTTTTTATATTGAAAACCTATTAATTTGGTCGTAATTAAAATAGAGATAAATTTATT -AAGAATTTGTTAAAATTTAAGGATAACAATTGTTTTATGCGAGTTGTTTGTTTAATATAAACTTGCTTCA -TGGATATTTTGTAACAACAATATTGAACTTGCAATGAGATATGAATAAGAGAAAGTGATTAACGAGTTGT -AGTGTGCTAGTTATCGAATATGTATGTAATTTACATTGAAAAATATACCAATTGTAACGATGATACAAGA -TGTATTTTAGGGTAGAATATATCGCTCATATGTTGCGAATGGTGTTTTATATTAATCATTACATAACGAG -TTAATTAACATTTCGTCGGTTATCATATCATCATGCAATTTCAGTAAGTAATGAGTATTATGATATGAAA -GAAGGACTTTTTATGATTATGGGCAATTTGAGATTTCAACAGGAATATTTTCGTATATACAAAAATAATA -CAGAATCAACGACACACCGTAATGCGTATTGGGTTAAACTCGCTAAAAATATTGAAGCTACTAAAATGAT -GTATGCATTATCGACAATTGTGCAACAACATGCATCTATAAGACATTTTTTTGATGTTACTACCGATGAC -AATTTAACAATGATACTTCATGAATTTCTGCCTTTTATTGAGATAAAACAAGTTCCATCTTCTTCCGCAA -ACTATGATTTAGAAGCTTTTTTTAAGCAAGAATTAAGTACTTACCATTTTAATGATTCACCTTTATTCAA -ATTTAAATTGTTTCAGTTCGCTGATGCTGCATATATATTATTAGATTTTCATGTGTCCATTTTCGATGAT -AGTCAAATTGATATTTTTCTTGATGATTTATGCAATGCATATCGTGGCAATACTGTTATTAACAATACTC -GACAGCATGCACATTTAAATAGAAATGATGATAAAGACAATCAAGATGCATCGCATATAGCATTAGACTC -AAACTATTTTCGGCTAGAGAATAACTCTGACATCCATATCGATAGTTATTTACCAATTAAGCATCCATTT -GAGCAAGCTTTATATCAAACGTATTTGATTGATGATATGACATCAATAGATATGGCATCGTTGGCTGTTA -GTGTGTATTTAGCTAATCATATAATGAGTCAACAACATGATGTCACATTAGGTATACATGTACCATCACA -TTTACCAAATGATTTACACGGAAATATTGTGCCATTAACGTTAACAATCGATGCAAAAGATGTATGTCAA -CGCTTTACAACAGATTTTAATAAAAGTGTGTTGCAAAATATGTCGCAATTACAGTGCGCGAAGTCTTCGC -TTTCATTAGAGACTATTTTTCATTGTTATCATCAAATGATGTCTTGTTGTAATGATGTTATTGAGGATGT -ACATCAAATACATGATGCACATACATCTTTAGCGGATATTGAAATTTTTCCACATCAACACGGGTTCAAA -ATTATATATAACAGTGCAGCATATGATTTGCTCTCAATCGAGACGCTGAGTGACTTAGTTCGTAATATTT -ATTTGCAAATTACTAAAGAAAATGGAAATAAACGAACAACTGTAGATGAACTTAATTTGATGACAGAACG -TGATATTCAATTATATGACGATATCAATTTAAGTTTACCTGAGATAGATGATGCGCAAACAGTTGTTACC -TTATTTGAGCAACAAGTTGAAGCAACACCGAATTATGTCGCTGTGCAATTTGACGGAGTGTTTATAACAT -ATCAAACATTGAATGCACGCGCGAATGATTTAGCACAACGTTTGAGAAACCAGTATGGTGTTGAACCTAA -TGATCGTGTCGCTGTCATAGCTGAAAAAAGTATTGAGATGATAGTAGCGATGATAGGTGTGTTGAAAGCT -GGTGGGGCTTACGTGCCAATTGATCCGAACTATCCAAGTGATCGTCAGGAGTACATTTTAAAAGATGCAA -CGCCTAAAGTTGTTATCACATATCAAGTAGTATATGAAAATGGTAAACGAGATATTAATCACATTGATTT -GAACAAGATAGCGTGGAAAAATATTGATAATCTTTCTAAATGTAACACGTTAGAAGATCATGCATATGTT -ATTTACACGTCGGGGACAACTGGTAACCCTAAAGGGACACTAATTCCGCACCGAGGTATTGTTCGCTTGG -TCCATCAAAATCATTATGTACCATTAAATGAAAAGACGACGATTTTGTTATCAGGAACTATAGCCTTTGA -CGCTGCAACATTTGAAATATATGGTGCATTGCTAAATGGTGGAAAACTGATTGTTGCTAAAACAGAACAA -TTATTAAATCCAATAGCGTTAGAACAATTAATCAATGAAAATGACGTCAATACTATGTGGTTAACCTCCT -CATTATTTAATCAGATTGCTAGTGAACGAATAGAAGTATTGGTACCGTTAAAGTATTTATTAATTGGTGG -AGAAGTATTGAATGCTAAGTGGGTGGATTTGCTTAATCAAAGACCGAAGCATCCTCAAATTATTAATGGT -TATGGACCAACTGAAAATACAACATTTACAACGACGTATAATATACCTAACAAAGTTCCAAATCGTATTC -CTATTGGTAAACCGATTCTTGGTACTCATGTTTATATCATGCAAGGCGAGCGTCGGTGTGGCGTTGGTAT -TCCTGGAGAATTATGTACAAGTGGCTTTGGGTTGGCTGCAGGTTATTTAAATCAGCCAGAATTGACAGCA -GATAAATTTATCAAAGATTCAAATATAAATCAGCTGATGTATAGAAGTGGTGATATCGTACGTTTGTTAC -CCGATGGCAACATAGATTATTTATATCGAAAGGACAAACAAGTTAAGATTCGAGGATTTAGGATTGAGTT -GTCAGAGGTTGAGCATGCGCTCGAGCGTATACAAGGTATTAATAAAGCTGTTGTTATTGTTCAAAATCAT -GATCAAGACCAGTATATCGTTGCTTATTATGAAGCGATGCATACATTATCACATAATAAGATTAAATCAC -AATTACGTATGACCTTACCTGAGTACATGATACCAGTTAATTTTATGCATATTGAGCAAATTCCTATTAC -TATTAATGGGAAATTAGATAAGAAGGCATTGCCTATCATGGACTATGTCGATACGGATGCCTATGTAGCA -CCGAGTACAGATACCGAACACTTGCTATGCCAAATTTTTGCAGATATTTTACATGTGAATCAAGTAGGTA -TTCATGATAATTTCTTTGAATTAGGTGGCCATTCCTTAAAAGCAACGTTAGTGGTGAATCGGATAGAGGC -ATCTACTGGGAAACGATTACAAATTGGTGATTTATTACAAAAGCCAACTGTATTTGAACTAGCGCAAGCG -ATTGCTAAGGTTCAAGAACAAAACTATGAAGTGATTCCTGAAGCTATAGTTAAAGATGATTATGTGTTGA -GCTCTGCACAAAAGCGAATGTATTTATTATGGAAATCAAACCATAAAGATACGGTGTATAACATACCTTT -TTTATGGCGGTTATCATCAGAACTTAATGTAGCTCAATTGCGACAAGCAGTTCAGCATTTGATAGCGCGA -CATGAGATTCTACGAACACAATATATTGTTGTAGATGATGAGGTTCGACAACGTATTGTGGCAGATGTTG -TAGCTGACTTTAAAGAAGTTAACACGCATTTTACGGATGAACAAGAAATCATGCGCCAATTTGTGGCACC -TTTTAATTTGGAAAAGCCAAGCCAAATTAGAGTGAGATACATTCGAAGTCCATTACATGCATACCTGTTT -ATAGATACACATCATATTATTAATGATGGTATGAGTAATATACAATTAATGAATGATCTTAACGCATTAT -ATCAACATAAATTATTGTTACCACTTAAATTGCAATATAAAGACTATAGTGAATGGATGTCGCATCGTGA -TATGACGAAACATAGACAATATTGGTTATCTCAATTCAAAGATGAAGTACCTATTTTAAGCTTACCGACA -GACTATGTTAGACCAAATATTAAAACGACAAATGGAGCAATGATGTCATTTACAATGAATCAACAAATGA -GACAGCTACTTCAAAAGTATGTAGAAAAGCATCAAATTACTGATTTTATGTTCTTTATGAGTGTGGTCAT -GACGTTGTTAAGCAGATATGCTCGAAAAGATGATGTTGTTGTCGGTAGTGTCATGAGTGCGCGTATGCAT -AAAGGCACGGAGCAAATGCTAGGCATGTTTGCTAATACGTTGGTATATAGAGGGCAACCATCACTTGATA -AAATGTGGACACAGTTTTTACAAGAGGTTAAGGAAATGAGTTTGGAGGCATACGAGCATCAAGAATACCC -ATTCGAATGTTTAGTAAATGACTTAGATCAATCACATGATGCCTCACGGAATCCATTATTTGATGTCATG -TTAGTACTACAAAACAATGAAACGAATCATGCTCATTTTGGGCATAGTAAATTAACACACATTCAACCCA -AATCGGTGACGGCGAAATTTGATTTATCTTTCATCATTGAAGAAGATTGCGATGACTATACAATCAATAT -CGAGTATAATACCGATTTATATCACTCAGAAACAGTTCGTCACATGGGTAATCAATGTATGATTATGATT -GATTATATTTTGAAGCATCAAGATACACTACAAATTCGTGATATACCAAACGGCACGGAGGAACTTTTAA -ATTGGGTCAATACGCATGTTAACGATCGAATGCTTAATGTCCCGGGAAATAAATCTATCATAAGTTACTT -TGATGAAGTTGTCTCACGACAAGGTAATCATGTTGCGCTAGTCATGAATGATTTGACAATGACGTATGAA -ACATTACACAACTATGTAGATGCTATTGCGCACATGCTCCTATCAAATGGTGTGGGCAAGGGTCAACCAG -TTGCTTTAATAACAGAACGTAGTTTTGAAATGATTGCGGCGATGTTGGCGACAGTTAAAGTAGGTGCATC -TTATATACCTATCGATATTGATTTTCCGAAAAAGCGACAAGGTGCAATTTTGGAGGATGCTAAAGTAACT -GCAGTCATGTCTTACGGCGTTGAAATTGAAACGACATTACCAGTCATTCAATTGGAAAATGCTAAAGGTT -TTGTTGAATCAAAGGAAAATGAACAATATGATGATTTACATGGCGATCAACTCGAAAACACAGCGATGTT -AGATAATGAGATGTATGCTATTTACACATCTGGTACGACCGGGATGCCTAAAGGGGTTGCCATACGACAA -CGAAATTTGTTGAATTTAGTGCATGCATGGTCAACTGAATTGCAATTAGGCGACAATGAAGTATTTTTGC -AACATGCAAATATTGTTTTTGATGCATCAGTTATGGAGATTTATTGTTGTTTGTTAAATGGTCATACGCT -TGTGATTCCAGATAGAGAGGAACGTGTTAATCCAGAACAGTTACAACAACTCATTAATAAGCATCGTGTG -ACGGTGGCGTCGATTCCATTACAGATGTGTAGTGTTATGGAAGACTTTTATATTGAAAAATTGATTACAG -GCGGGGCAACTAGTACGGCATCCTTTGTTAAATATATTGAGAAGCATTGTGGCACGTATTTCAATGCCTA -TGGACCATCTGAGTCAACAGTCATCACATCGTATTGGTCACATCAATGTGGTGATTTGATACCTGAGACG -ATTCCAATTGGCAAACCCTTATCTAACATCCAAGTGTATATTATGTCAGATGGTTTGTTATGCGGTATTG -GTATGCCAGGCGAGTTGTGTATTGCAGGTGATAGTTTAGCGATAGGATATATTAATCGTCCGGAATTAAT -GGCTGATAAATGGCAAAATAATCCATTTGGTAAAGGAAAGTTGTATCATAGTGGTGATTTAGCACGTTAT -ACATCTGATGGTCAAATTGAATTTTTGGGAAGAATAGATAAACAAGTGAAAGTTAACGGGTACCGTATTG -AACTTGATGAAATTGAAAATGCAATATTAGCTATTCGTGGTATATCTGATTGTGTTGTCACAGTTAGTCA -CTTTGATACGCATGATATATTGAATGCTTATTATGTCGGAGAACAACAAATGGAGCAGGATTTGAAGCAA -TATTTAAATGATCATCTGCCTAAGTATATGATTCCTAAGACTATAACGTATATCGATTGTATACCATTAA -CCACGAATGACAAGGTGGATACTACGCGTTTGCCAAATCCATCACCTATACAACAGTCTAATAAAGTATA -TAGCGAACCATCTAATGAAATTGAGCAGACATTTGTTGATGTATTCGGAGAGGTATTGAAACAAAATGAT -GTCGGTGTTGACGATGATTTCTTTGAACTTGGTGGTAACTCATTAGAGGCGATGTTAGTTGTCTCGCATT -TAAAACGATTTGGCCATCATATTTCAATGCAGACATTATATCAATATAAAACCGTGCGACAGATTGTTAA -TTATATGCACCAAAATCAACAATCATTAGTTGCATTACCGGATAATCTTTCGGAATTACAAAAGATTGTT -ATGTCTCGTTATAATTTGGGTATTTTAGAGGATAGTCTAAGTCATCGACCTCTAGGAAAAACACTATTGA -CTGGCGCTACAGGGTTTTTAGGTGCTTATCTGATTGAAGCACTACAAGGATACAGTCATCGCATTTATTG -TTTCATACGTGCTGATAATGAGGAAATAGCATGGTATAAGTTGATGACGAATTTAAATGATTATTTTTCA -GAAGAGACGGTTGAAATGATGTTATCAAACATTGAAGTCATTGTTGGTGATTTCGAGTGTATGGATGATG -TTGTTTTACCAGAAAACATGGATACAATTATTCATGCAGGTGCTCGTACAGATCACTTTGGTGATGATGA -TGAATTTGAAAAAGTAAATGTTCAAGGTACTGTTGATGTCATACGTTTGGCACAACAACATCATGCAAGG -TTAATATATGTGTCTACGATAAGTGTGGGAACTTATTTTGATATAGATACAGAAGATGTGACATTTTCAG -AAGCGGATGTCTATAAAGGACAACTACTAACATCACCATATACACGGAGTAAATTTTATAGTGAATTAAA -AGTATTAGAAGCTGTAAAAAATGGCTTAGATGGTCGAATTGTACGTGTTGGTAATTTGACGAGTCCATAC -AATGGAAGATGGCATATGAGAAATATAAAGACTAACCGTTTTTCAATGGTAATGAATGATTTGTTACAAC -TGGATTGTATCGGGGTTAGCCTCGCTGAAATGCCTGTAGATTTTTCTTTTGTGGATACGACTGCAAGACA -AATTGTCGCATTAGCACAGGTCAACACGCCACAAATCATTTACCATGTGTTATCACCTAATAAAATGCCG -GTGAAATCTTTATTAGAATGTGTTAAGTGCAAAGAAATTGAACTCGTCAGCGATGAATCATTTAATGAAA -TTTTACAGAAACAAGACATGTACGAAACGATTGGATTAACTAGTGTTGACCGTGAACAACAACTAGCAAT -GATAGATACAAAATTAACATTAAAAATAATGGATCACATCAGTGAAAAATGGCCAACGATAACTAACAAT -TGGCTGTATCATTGGGCACAATATATCAAAACAATATTCAATAAGTAAGTAGGGAAAGTTATGAAAGTAT -TTGTAATGCAATTACAGAGTAACTTGAAAAGTATTGAAGAATTAATATCACAAAGTCGTTGGTCATATAA -AAAACCGCGTACAGTCAACTATAGATACAATCAAGATAAACTCATGCACAGATTGGGAGATATTTTAGTG -CAATATGGAATTCAACATGACACAGGGTTATTACCACATGAATGGCATTATCACATTTCGCCACGAGGTA -AGGCAGATATAGTTCAACACAATCGTGATGGACAGCCCATCTATGTGAGCTTATCATATAGTTATCCTTA -TATCGTGTGTGTTGTCGATAAAGAACCAGTTGGTATTGATATCGAAAAGATATCACAACGTTTAGACTGG -CGTACATTAGTGACGTGTTTCTCTACAAACGAAGCACATCAAATATGTAGTTTAAATGATTTTTATCAAA -TATGGACACAAAAAGAAAGTTTTACAAAATTGATTGGTGAAGGTTTAATCAAAGGATTGGACATTTATGA -TATGACGCAATCACACTTTTATCAATCACGTGAAGTGAAGTTCAAACAATTTATTTTTGATCAGTTTATG -GTACAGGTATGTTTCTTAGGACAGGCACCCTGGGGTTATAAAAAAGTGTCTGTATTTCAGTTATTGAGTA -GTTAAACATGGCGTCTAACAGTTTTATTTGGCAGTGATTTTAAACTATACTGCCTAAATGTTTACTGTTA -GATGTTTTTTTATTGGAAAAATGAAAGGTGAATACACGATGGCATCATTCAAAATCATGACGAGATTAAA -GTAAGTGATAAGGTGAAAATATACTGAGCAATATTGAAATTGCCAAAAATAATGGCTTGTTACGACGCAT -TTGAGACTTTAATGCTCATGTAAGTTGGCTAGAATTATATCATGTCAGTTAATAAAATAACGTGAGCATC -AATCATCATACTCAAACGATGATTTAAAACTCACGTTAATGTTAGTCAGTGTATTAATTTAATTTATAGC -GATAGACAAAATGTTGTCGCACTAATTCAATTGTCATCATCCAGACGATATGGCCAAAGAATTCTGACAG -ATGCTCTTGGAATGGTTGATCCCACACAGCAGGTACAGTATGCATGATTGGCATAATGATAAGGTGGAAT -AATACCCAAATAGCAATACCAAAAACAGCACCTTGTCCCATTGCTAAGTAAGCGTATTTTTTAACTAATA -TGCAGTAAATAATTGCAATGACGATAGAAAAACTAAAGTGGACAATAAAGCTTACCCAAGGCAATTGCAT -ATTTGAAAATGTATATGTTTGATGCGTAAACTCACTACTAAATCCTAATTGTTGCAATAACTCTTGAGGT -GGGTTCGTTGCATTACGTTCTGGTGTGCGAGGTGGAAACATGACCTCCCAACCTAATTTTACAATTCCAG -ATAACAAGCCACCGATAATTCCAGCATAAATGAATATACCCATTTGTCGTTTTGTCAACTTAAGGACTCC -TCTCTATTTACTATCCTCATTATAGTATTTTGTGAAAATAATCACAATGAAAAACTTTTAAAATATAAAA -TATTTCGAGTTACAAATTTTAAAATCACTTATAGTGTTTTTCATCTCATATTGTATCATACTGTATTCTA -AGAATTCTTTTGTGAAATGAGACAGGTGAAAAGGTGACGCTGCATAATCATTAAACAAATTAGGTACAAC -TATGTTTCGAAGCCGAAAAATACAAGATTGAGTGGTCATATTCAAAGTCATACTGATGATTTTAGTATCG -TTGTCCCAACAAAATCATTATTGTAAATAGCTTCGATAATATTTGGCTTGTTTCCTGATGCAATGATAAC -TTTAGGACAGCCATTTTTAATAGCATTTTTAGCATCAAGCACTTTGGGAATCATACCTCCATAAATATCA -CCATGCTCAATATACTGATTAATATCGGCTAAGGGTAGTTGAGGTATAACAACATCGTTGATTAGCACGC -CAGCAATATTACTTAGTACATAAATGGGTGCTTCTAATGATGCTGCAATAAAATAGGCGAGTGTGTCTGC -ATTTATGTTGTAAAATTCTCCATCATGGTTATTGAAACCAATCGAATTGATGATAGGTACAAATTTAGTA -CATAAATAAGACAATGAGTCTATATTTAAAGTGGTTGGAACCCCGACATATCCATATTGTTGATCAAAAC -GTTTAATTTCAAATAATTGAGCATCCAAACCACATAAGCCTATTGCAGAACATTGCTGCTGGTTAAATTG -AGCTACTAATGCAGTGTTAACGTCTGCAATGAGCGTGTGTTTAGTAATAGTCATGGTTGCTTTATCAGTC -ACTCTTAGGCCATTAACAAAGTGTGGCTCGATTTGCTGGTTTGATAATGCTTCATTAATAAATGGGCCAC -CGCCGTGAACGATAATGGGGTAGATGTTGTTTGATCGTAAATGCTTAATGTTGTTAATAATTGATGGATG -CATGTCACTTAGTGTACTGCCACCAATTTTAATGACAATAAATTTCATCTAACCAACACCACCTTATGTT -CGATATGATGCGTTAATACGCACATAATCATAGGATAAATCACAACCGTATGCAGTCGCTGCAGCGTTAC -CCAAACCAAGCTGAACGTCAATTGTGACATTTTCATGAGTTAATGTATTCGACATAGCTTGCTCATCAAA -TAGTACAGCCATACCTTTATCCACGACAGGTATTTGGTTCAGTTGAACATATGTGCAGTTAGGATCAATT -TCACATCCGCTATAGCCAATAGCTGTAATGATTCGACCAAAATTGGCATCTTCGCCAAAAATAGCTGATT -TTACTAGATTTGAACTTACGATAGTTTTACCGATTTTTCTTGCGTCTGATATTGATTTAGCGCCTGAAAC -ATTGACACTGATTAACTTTGTTGCGCCTTCGCCATCTCTGGCTATAGCTTTAGCTAAAAATGTACAGACA -AAATTGAAGGCATCAACAAATGTTTCCCATTGTGGATGGTCTTGATTAAGTATTTGGTGTTCAACTTGTT -GATTTGCCATGACTAATACCATGTCATTTGTACTTGTATCGCCATCAACAGTAATCATATTAAATGTATG -GTCAGTCGAAGATTTTAATAATTGATGAAGTGTATTCGATTCAATTGATGCATCGGTTGTTATAAAAGCA -AGCATGGTAGCCATATTTGGGTGAATCATACCTGATCCTTTAGCACTGCCACCAATTGTAATGGTTTTAC -CATCAATATTTAGTGATACAGCGATATGCTTTGTACATGTATCAGTTGTTAAAATTGCCTCGTTAAACGC -ACCTGGCGTTGCAAAATTAGCATCATTAATATGTTCTGTACCAGTTTTAATTTTATCCATTGGCAAATAT -TCTCCAATAACACCAGTTGAAGCAACAGCAACATGCTCAGATGGTATTTGAAGTTGTTGAGCAACCCATG -TTTGAGTTTGTTGTGCATCATCGATACCTTGCTGACCTGTGCAAGAATTTGCATTAGCTGAATTAACAAC -AAGTGCTTGTAATTTCCCTTTAGACTTTTGTAAAGTGTCTTCAGTGACAATAAGTGGTGCAGCTTTAAAT -TGGTTTAAAGTATATACGGCAGCTGAACTTGCTAAAGACGATGAGTAAATCCAGCCAAAGTCTTTTTTGT -TAGCGCGTAAACCGATGTGCATACCACCGGCCGTGAAGCCTTGAGGTGTACTGATATCGCCATGTTTAAT -AATTGAAAAGTTATGTTGTTGTGATGTCGTTTCTTGATGTTTCATTCTAACACCCCTTATGGATAAACTG -GTGATTGTTTTAGGCCAGTCGTAACTTCAAAATCATATAATATATTTAAGTTTTGAATGGCTTGACCACT -TGCCCCTTTGACAAGGTTATCAATCACTGATACTAAAATTGCTGTTTGCGTTGTTTCATCTACATAGATA -CCGATATCGCAGTAGTTACTACCGAGTACTTCTTTTGTGGTTGGAAAAGTCCCAATATCTCTAATTCTGA -CAAATGGCTGATTAGCATAATAAGAGGTCATTAATTTATGTAATGATTCAGTCGTATATTCAGATGATAA -TTTGACATATATTGTTGATAAAATACCTCGTGCCATTGGTACGAGATGTGGTGTAAATATGACTGATACA -TCTTGACCCGCAATGATAGATAAATATTGCTCGATTTCCGGTTTGTGTTTATGGTTTCCGATTGCATAAG -CGCTTAGATTTTCATTCATTTCTGAAAAATGAACACGTTGTGATAATGAACGACCAGCACCTGACACGCC -GGTCTTAGCATCAATAATAATAGATGACAAATCTACAATTTTTTCGCTAATAAGTGGATGTAATGCTAAT -AACGTTGCTGTAGGGAAACAGCCAGGGTTAGAAATGAGTTTCGTTCCATTGTTATCTAAAGATTGCCATT -CTGAAATGCTGTAAATAGCATGATTCAAATCATCTTGTGCTGCAGCAGTTTCTTTGTAATATGCTTCATA -TATTTCACGGTTTTTAATTCTGAATGCACCAGATAAATCAATAACATGAATTCCTTTTTCTACTAAAGGA -GGGATACATGTTTTACTCACGGGTGCTGGTGTAGCAAAGAAAATTACATCACAGTCATTATTGTCCACTG -TAAGTGCTTCGAAATGTTGCATAATATGTTGTAAATGTGGAAATGTTAATTTCAACGGCTCATCTACTTT -TGAATGTGAGTAGATGTGTGCAATCGTTACATGAGGATGTGTTTGTAATAATCGAATTAATTCAATTGCG -CCATAACCGCTACCGCCAACGATACCTACTTTAATCATCATGAATCCCTCCTATATCATATATAAATGAT -TAATTGTTAATTTTTAAAAACGTCTTGAAAAGCTGCAACAATTTGATTGATTTCCTCTTTATCAATGACT -AGAGGTGGTGACAATCGAATGATAGTACGATGCGTGTCTTTGCATAAAATGCCACGTTTAATCAGTTGTT -CAACGAAAGGTGCGGCATCTGTGTTAAGTTCGATGCCAATAAATAAACCACGACCTCTAATTTCTTTAAT -ACTAGGATGTTTAAGTTGTAGCAACGCTTTTAATAAAAATGAACCTAAGCGTTCTGATCGTTCAACCAGT -TGTTCATCTTTAAGTACATCAAGCGCTGCCGTCGATATTGCAATGGCTAAAGGGTTACCACCAAATGTTG -AGCCATGTGTACCTGGTGTTAGAACTCGCATGACATCATTATTTGCAAGCACAGCAGATACAGGGTATAA -GCCGCCACCCAATGCCTTACCTAAAATATAAATGTCTGGAACGACTTGCTCCCATTCCATCGCAAACCAT -TTCCCAGTTCTACCAAGACCAACTTGAATTTCATCTGCAATCAATAATATTTGATGTTTATCACATAGTT -GACGCACAGCTTGGATATATCCTTTCGGTGGTATATTAACGCCACCTTCACCTTGAATTGGTTCTAAAAT -AATTGCTGCTGTATTTGGTGAAATAGCTTGTGTTAATTGCTCAATATCTCCAAAATCTACTGTTTTAGTA -CCTTGAAGTAGGGGGTGAAATCCTGATTTATATGCGTCGTGGTTAGATAGTGATAATGAGCCAAGTGTAC -GACCGTGAAAATTGTTATTCATAGCGATGATTTCAACTTGTCCGTCAGTGATGCCTTTAACGTCAGAGCC -CCATTTTCTAGCAATTTTAATGGCTGCTTCAACAGCTTCAGTACCAGAGTTAAGGGGGAGTACTTTGTCT -TTCTTAGCAAGATGACAAATTTTTTCTTCCCATTTCCCGAGATTGTCACTATAAAGGACACGTGAAATGA -TAGACAACTTTGAAGCTTGTTCTGTCATCGCTTTAACAATTGTTGGATGACAATGGCCTTGGTTTGCAAC -TGAAAAACCCGAAATGCAATCTATATATTGTTTGCCATCAGTATCCCAAACTTTGCCCCCTTTCCCTTCA -GTAATTACAAGCTTCAGTGGTGCATAATTATTAGAGCTATAATAATCAGTTAATTCAATGATTGAATTCA -TCGGTCGCCCTCCTTTATATTTATACAATTTAAAGAATTAATATTAATATATTACAGTTGTTCAATATAA -GTGTCAAATGTAAATTTAATAATATAAAGATAAAGTTGTGTATGCATTAATGTGATTCGTAAAATGAAAG -TACTAATATTTTTCGTGGATAATCATTAATATGTATGTATACGAGTGCAGTTTAATGTAGTATGAATAAA -AAATGCCACAAGCATATGTTTAACATATGACTGTGGCATAGTATTATGCTTGTGGAATTTTACGATGCTT -AATTTTATAAATAATGAAGCCGATAATGAAACCAATCAAACTGAGAACAACCCAGCCCATACCAATGTCT -GATAATGGTAAATATTTTTGGCTGAAATTAATCAAAGTTTGTGAGAATGATGTGCTTGAAATGAACTCTG -GACTAGCTTTTAATCCATCTACTAATGCAGCAATCATTGTAAAGAAAATGGTACATTGATAAATAATTTT -TGAATGATGGAATTTGCTGCTAAATAATGTTAGTACAATCAGGGCAATTGCTAATGGATATAAGAACATT -AACACTGGGACTGAGTACATAATAATTTTAGTTAAGCCAACATTCGCGAATAAGAATGAGATAAAGCTCA -CAACTGTTGCAATCGCTAGGTAATTCATTTTAGGGAAAAGGTGTTCAAATGTTTCTGAAAATGCCGTAAT -TAAACCGATAGCTGTTTTTAAACAAGCAACCATAACGATGAGTGATAACAAGACGATACCGTAGTTACCT -AAGTAGTATTGCGTAATTTGCGCTAAGGCAATACCACCATTTTCACTAAGTTTGAAATGACCAATACTTA -ATGTACCCATGATTGCTAGTAGGGTATAAATGATCCCCATCATAATGATACTGATAGTACCAGACTTAAT -TGTTTCTTTAGCGATATCAGTTGGATTTTCGATACCTAACTTTTTAATCGTTGCAACAATGATGATACCA -AATGCCAATGACGCTAGCGCATCTAAGGTATTGTATCCATCTAAAAAGCCGTTAAATAAGGCGTTTGATT -GATATTGTTTACTAATAGGTGCATCAGATATGCCACCTAATGGATGGATAAAAGCAAATAATAAAATAAT -TGCTAATAATACTAAGAATACCGGATTTAAAAATTTACCGATATATTCTAAAATTCTTGATGGCTTTCTC -GCAAAAAACCATGCAATCACAAAGAAGACGAAGCTGAAAATAAATAAATATAAAGTGATTTGCTTTGGTG -ATAAAAATGGCGAAAATGCAATTTCAAATGATGTAGTTGCCAGTCTAGGTAAGGCGAAAAATGGTCCGAT -AACTAGATATAAGGCAATCGTGAAAATATAAGCATATGTTTTATTAACACGCGATGCAATTTCAAATAAA -CCAGATGTCTTTGAAATACCAATAGCAATGATACCTAGAAATGGTAAGCCAATTGCTGTAATTAAAAATC -CTAAGTTAGCGATAAAAACGTTAGAACCAGCAGCTTGACCCAAGTGTATTGGGAAGATAAGGTTGCCGGC -ACCAAAGAATAAACCAAATAACATAGAACCAATAAACATGTTTTCTTTAAATGTTAGTTTCTTCTTCATA -TATGTATTTGTTCTCCTTTTTAGAACTTATAAAAATCTACTTAATTAAGATAATATCAAAAATTAAACCT -AAAGTGATACATAATTTTGTAATAAATACTAAATTTTTTGAAAATTCCGGAATAAATACTGTTTTGGGCA -TAGGTTAAGAACGGTTTAACAGATATAGAATATGTTTATATAGTGGAGGTTAGACAACCCGACGTATTAA -TACATTGTGAAATAAAGATACCCCCTTCAATATAATCGAAGGGGGAAGTGAATGTTTAGTTCAATATATT -TAGCAAGTCGTTTGTGGTTATGGTTTGTCCCATCAATGGGAATACATTATCTATTGGGAATTGATGTAGC -GTTTCGTTTTGTGCACTCATCATATCTGTAACAAAATACTGATCGTAGTTTAATTGATAGGCGTCTCGTG -CTGTCGTATCTACACCAACATGTGTTGCTACACCGCCAAGAACAATTGTATCAATTCCTCGACGTCTCAA -CTGTAAGTCTAAATCCGTTCCTACAAATGCACTAAATTGTCGTTTATCTATGACAAAATCGTCATCTCTT -TTGTCTAGTAAATAATGGAAATGGCTGTAGTCATCGCCTTCTTTTGGTGGTAATGAGATCATTGCATTTG -GTTGCAATGCATCTTTACCATCATAGAAATTCACGCGAACAAAGGCGATAAAGCCATTGTTTTTTCTAAA -AGCTTCAATTAATTTGTTAGCATTTTGAACAACATTTTCAGCTGTATGTGGCGCATAATCCATTTTAAGA -ATACCTTGTTGCAGGTCGATTAACACTAAAGCGGTTTTATCAAAATTAATCATCTTATATCAGAGTCCTT -TTCATTTAATAATATATTCGCTTAAACTTATACCCTGAATACGATGAAATTATTTATTTTGTTGTGAAAA -AGCTTTAGCAATATCGATCAGTTTCTTCGGTGCATCTTCGACAGACATTTTGACTTCGACAAAATGCATC -ACATCGGGATGGCCATTAATTGTATTAAATACCTCTTGTAAATCTTTTGATGATTCAACGTCATGAATTT -CAACATTTTTACCACCAAATACAGCTGGTAAAGCTTTATAATCCCACATGTGAATTTCATTATAAGGTTC -ATACATGCCGTGAATAAGTCGTTCTACCGTATAGCCGTCATTATTAATCACAAATAATACCGGTTTAATA -TGCTGTCTAATCATAGTTGAAATAGCTTGAACAGTTAGTTGCAATGAGCCATCGCCAATTAATAATAAGT -TACGACGATCTTTGTCTGCTAATTGTGAACCTAATGTTGCAGGTAATGTATAGCCGATAGAACCCCATAA -CGGTTGCCCTATAAAAGTATTGCTTTTGTATAATGCTAAATCATAATCACCAAAAAATGATGTACCTTGA -TCAGCAATAATGACATCATTTGGTTTTAAGAAATTTTGCATCATTTTAAAATAAGTTTGTTGTGTTAATG -GTTCTGTGCCAACAGTATAATCGGGTGATGTTGGACGATGATATGCAGGAAACGATGCGTTATTCGTATA -TGATATATCGGTCAATTGTTGTAGTAATGATGATAGAGATATTTCATCATTTGTAACATCATCAATTTTG -ATATTGTGATGATTTAACATAACGACATCATCGATATTGAATTGGTATGAAAATCCTGCTGTTGCTGAAT -CTGTTAATTTGGCTCCAATATTTAAAATTAAATCGCTGTTGTCCACATAATCTCGTATTTTATCTTCGGC -AATTTTCCCATCGTAAATACCCATATAATATGGATTTTCCTCATTAAAAGCACCTTTTCCTAATGAAAGT -TGTGCTACTGGTATCTGTGTTTGATTTACAAAATCTTCTAATTCTTGATGGAGGTGAAAACTGTTAATTT -CATGTCCAGTAATGATGATAGGCTGCTTCGATTGATGCAATTTAGATACTAATAACTCTATATATGTTGA -TGCATCAGTATCTTTGGCTGCCGTTACTTCGAATGGTGTCGGTATCTCAATTTCAGAGATTGCGACATCG -ATTGGTAAATGTAAATGAACTGGGCGTCTTTCGGCGATTGCTGTATTAATTAAGCGTGGTATTTCAGTTG -CTGCATTTTCAGGTGTGATATAACCTTGTGCAACGGTTATATGTGCAAACATTTTTCGGTAGTCGTCAAA -TGTACCTTCACCAAGTGAGTGATGTACATATTTACCGGCTTGTTCAACAGCACGTGTCGGCGCACCTGTA -ATCGCAATGACAGGTATGCGTTCAGCATACGAACCTGCGATACCGTTGACGGCACTTAATTCGCCAACAC -CAAATGTAGTAACTAATGCAGCGAGTCCATTAAGACGGGCATAACCGTCCGCTGCGTAACTTGCGTTTAA -TTCATTTGTATTTCCTACCCAATCTACATTGGGATTACTGATAATATCGTCTAGAAAAGCGAGATTAAAA -TCACCAGGAACACCAAAAATTTTATCGACGCCTGCTCGATGAATAGCGTCAATTAAGTAAGCTCCAATGC -GTTGTTTCATAAAAAAACCACCTTTTCTCTATATTTACACTTAAAATGATAGCCTCGAATATAGTGTAAG -GTCAAGGAAGTTGACTTTGTTGTGAAAACGCTAACAATAGTGAGCAATTAATATTTTTTAGGAAATGAGT -ATGAAGGGGGATTTAATTGATGATTTTAAAATTCAAAATTTAAGGGGAGAGCGAACTATCAATGATGCTG -CAAAACACAATCGCAATGAAAAAACAGGCGCGTCACCTTATGAAGGTATACGCACCTGTTTATAGTAAGC -ATTATTTAGCTTCAAATAATTGATCGCCAAATGAAATGTTGCCATGTTCACCTTGTTTAAAATCAAGGTT -TGTAATGTTTCCTTGTGTAACGATAATAGGCGTAATATCACTCTTTGCATGATTGCGGATGTAGTCTAAA -TCAAAGTTGATTAATAAATCACCTTGTTTAACTTCTTGACCTTCCTCAACATGTAAAGTAAAGCCTTCTC -CGTTTAATTTAACAGTGTCTAAACCGATGTGGATTAATAGTTCTAAACCACTATCTGATACAAGACCAAT -TGCATGTTTTGTTGGGAAAATCATTTGTACTTTACCGTTGAATGGTGCACGAACTTCACCTTGTGAAGGT -TTAATAGCGATACCGTCACCCATCATTTTTTCGCTGAACACTTGATCAGGCACTTCTGATAATGGTGTTA -CTTCACCAGTTAATGGTGCATGCACGATATGGCTCAATTCGCTTGTTGCAGATTTATCTTCTGCAACAAC -AACGGTTTCGTCTTTATCGTCTTCCATAGTAGTAGGGTTTTCTACTACTTGACCATTCATAATCTGTTGC -ATTTCATGTTTGATTTGGTCAGATTTTGGACCAAAAATTGCTTGCATATTATTGCCGACTTCTAATACAC -CAGATGCGCCTAAATCTTTCAAACCAGGAACATCAACTTTAGATTTGTCGTTAACTTCAACACGTAGACG -TGTGATACAAGCGTCTAAATGTTTAATGTTTGCTTTGCCACCCATAGCTTCTAATACTGCATATGGTAAT -TCAGTTGCTGAAGCAGTAGCCGCTTGTGATTGTTTATCTTCACGACCTGGTGTTTTGTATTTTAATTTTA -CAATTAGGAATCGGAATACGAAGTAGTAAATGACTGCGTATACAAGACCTACAGGAATGACTAACCACCA -TTGTGTCTTATTAGGTAGTATACCGAGTAAGAAGTAGTCGATGAAACCACCTGAGAATGTATAACCTAGA -TGAAGATCTAATAAGTACAATGTTAAGAATGATAAACCATCAAGTACTGCGTGAATAAAGAATAATAATG -GTGCTACGAATAAGAATGAGAATTCTAAAGGTTCTGTAATACCAGTTAAGAATGATGTTAAAGCAGCAGA -ACCCATTAAACCGGCTACTACTTTCTTGTTTTCAGGTTTAGCTGTGTGATAAATTGCTAAAGCTGCTGCA -GGTAAACCGAACATCATAACAGGGAATTCACCTTGCATGAATTTACCAGCTGTTAAATGTGCACCTTCAC -GAATTTGTTCGATAAAGATACGTTGGTCACCGTGAATAATTTCACCTGCTGCATTTTTCCATGAACCAAA -CTCGAACCAGAACGGTGCGTGGAAAATGTGATGTAGACCGAATGGAATTAATAAACGCTTGATGAAACCA -AATAAGAATACGGCAACACCAGTATTTGAGTCTAATAATCCTGTACTGAATGCATTTAATCCTGTTTGGA -TTGTTGGCCAGATTAATGCCATTGGGAATGCTAAAATAAATGATGTTGTAGCCATCATAATAGGTACGAA -ACGCTTACCAGCGAAGAAACCTAAATAAGATGGTAAGTTAATGTTATAGAACTTGTTATAACACCAAGCT -GCCAGGGCCCCGATTATAATACCGCCGAACACACCTGTTTGTAATGTTGGGATACCTAAAATGCTAGCGT -AACCACTCGCTGGATCACCAATGTTCTTAGGTGTTACTTGTAAAAAGTCACCCATTGTTTTGTTCATGAT -TATGTAACCGACGAATGCTGCGATAGCTGCTACACCATCACCGCCAGCTAATCCGATTGCGACACCTAAT -GCGAAAATCATAGGCAAGTTATCAAAAATGATACCACCAGCACCTGTCATTAATTTAGCGACAGTTTGTA -CGCCACCATTTTGTATAAAAGGCAAGTAGTGTTGTAATGCTTCGCCTTGCATAGCTGTACCGATAGCTAA -TAACAGACCCGCTGCTGGTAAAATCGCAACAGGTAACATTAGTGCCTTACCAATACGTTGCAATTGACCG -AAAAGTTTCTTCCTCACTTGTCCAACCTCCAAAGTTGTATTTATTATTTAAGATTCAATAAAAAAGACAC -GAGCAAATAGACTGTGTTGGTAACCATCACAGCTTAATTTAACTCATGCCTAATCTTACTTAGTAACACG -TTGGTGTATGTAATTAATGTAAAAGAAGCAATTGACTAAGTAGTATATAAAACGGATACGTTAGTTTATC -TAGCTTACCATCACATCTTATTGAATCTTATTTGTTTGCGACTCCTATTTTAGCATGGTGAAGTATGCGT -TTTCAATACAATTATTAAATTCAATTTCAAATCTCTTAATTGTTCACAGATTATTATTAAAACATAATAT -AAGATAATCCTGAATAAAATGTATAAAAGTTGTTGTAACAATTCAGCAATAGCAACTGTTTTCGAGCGTT -AAATGATAAGAAAAATATGTCGTTTAAAAAAATTAACTTGTGACAGAAATATGTAAGATTATTACAATGA -ACAGGCTTTATCTGATTAATATTGTAATGTGTTTTCTCTTATAGTAAAATGTAAGCGATTACACAACTCA -ACTATATTTTCCTAATAATTATATTGTTAAGGAGGGCTACTTTGACAGGCTTTTCAGTGTATTTAGGACA -ACCTTTAGATGAAGCGTATATTAAGCGAATGATTAAACAAGGTTACCAAATGATTTTTACATCTGTACAA -ATACCAGAAGAAGATGACGAGACAAAATATCATTATTTCACAAAACTACTCAATTTATTAAAACATGAAC -AAGTGACTTACCTCATAGATGCTAATCCATCTATATTAACACCATCTTTTTATGAGCATCTTCGACAATA -TGATGCACAATTTATGATTCGTATCGATCATAGTACATCAATTGAGGCAATCGAAGCGATAATGGCACAG -GGTTTAAAGTGCTGTTTGAATGCAAGTATTATTTCCCGGGAATTGTTAACAAGCTTACATCAACAATTGA -ATGATTTTACATTACTTTCATTTTGTCATAACTATTATCCAAGACCAGATACGGGATTATCTGTTGACTT -GGTCAATAAGAAAAATGAACTCATTTATCAATTTAATCCAAAGGCACAAATATATGGTTTTATTGTAGGG -AGTGGTTTGCGAGGTCCTTTGCATAAAGGCTTGCCAACAATTGAAGCAACGAGACATAGTCATCCTGTCG -TTGCAGCTAAATTATTACAAGAAACTGGTGTATCTGAAGTGTTAGTTGGAGACTCATTGATTGAAATAAG -GCAGGCAAAACAACTTATAGATTTTTGTAAGCATAGGCATTTCACGTTATGTATTGAAGAAGTGTTTGAT -ACGACAGTGACTTACCTTTTCGATATGTGTCATAAAGTACGTCCGGATAATCCGGAGAATGTCATTCGTT -CGGAAACGTCAAGACAAATATGTCCGCATTCGATTCAACCACAGTTTACGACGCAACGACGCATTGGTTC -AGTAACCGTTGATAATTTGAATAACGGACGTTATCAAGGTGAAATGCAAATTGTGAGACAAACGCTTAGT -GCACATGACAGTGTGAATGTTGTTGCACAAATTATTAAAGAAGACTTACCACTGTTAAGTTGTATCGAGC -CGAATGATACATTTGATTTTCAAAAAACTAGGGAGTGTAAGAAGTGATGGAAAATAGTACGACCGAAGCG -CGTAATGAAGCGACGATGCATCTTGATGAAATGACTGTGGAAGAGGCATTAATTACGATGAATAAAGAAG -ATCAGCAAGTCCCGTTAGCAGTTCGAAAGGCAATACCACAATTGACAAAAGTAATTAAAAAAACAATTGC -ACAGTATAAAAAGGGTGGACGATTGATCTATATCGGTGCAGGTACAAGTGGACGATTGGGTGTCTTAGAT -GCAGCGGAGTGTGTACCTACATTCAATACTGATCCTCATGAAATTATAGGTATTATTGCTGGTGGACAAC -ATGCTATGACGATGGCTGTAGAAGGTGCGGAAGATCACAAAAAATTAGCGGAAGAAGATTTGAAAAATAT -AGATTTAACATCAAAAGATGTCGTTATAGGAATTGCCGCGAGTGGCAAAACGCCATATGTTATAGGCGGT -TTAACATTTGCTAATACAATCGGTGCTACAACAGTATCTATTTCATGCAATGAACATGCAGTTATAAGTG -AAATTGCGCAGTATCCAGTAGAAGTTAAAGTTGGTCCAGAAGTATTAACTGGTTCAACGCGTTTAAAGTC -TGGTACAGCACAAAAATTAATTTTAAATATGATTTCAACCATCACAATGGTTGGTGTCGGAAAAGTTTAC -GATAACCTCATGATTGATGTTAAAGCAACCAATCAAAAACTGATCGACCGTTCAGTGCGTATTATTCAAG -AAATATGTGCTATCACATATGATGAAGCAATGGCGTTATATCAGGTATCTGAGCATGATGTGAAAGTTGC -GACAGTTATGGGTATGTGTGGCATTTCTAAGGAAGAAGCAACAAGACGGTTATTAAACAATGGTGACATT -GTTAAACGAGCAATCAGAGATAGACAACCTTAGGAGGGATTTAAATGACCAAAGAACAACAACTTGCAGA -ACGAATTATTGCTGCAGTAGGTGGTATGGATAATATAGATAGTGTCATGAACTGTATGACACGTGTGCGT -ATTAAAGTATTAGATGAAAATAAAGTAGATGACCAAGAACTAAGGCACATTGATGGTGTCATGGGTGTTA -TACACGATGAACGCATTCAAGTTGTAGTTGGACCTGGTACAGTCAATAAAGTGGCTAATCATATGGCTGA -GTTAAGTGGTGTTAAACTAGGTGACCCAATACCACACAATCACAATGATAGTGAAAAAATGGACTATAAA -TCATATGCAGCTGATAAAGCAAAGGCAAATAAAGAAGCACATAAAGCAAAACAAAAGAATGGTAAGTTGA -ATAAAGTATTGAAATCAATTGCCAATATCTTTATACCGTTGATTCCTGCATTTATTGGAGCTGGATTAAT -TGGTGGTATTGCAGCAGTACTGAGTAACTTAATGGTGGCAGGCTATATTTCAGGTGCTTGGATTACGCAA -CTTATAACAGTATTTAATGTCATTAAAGACGGTATGTTAGCATACTTAGCTATTTTCACTGGTATTAATG -CGGCTAAAGAATTTGGTGCGACACCAGGACTTGGTGGCGTGATTGGTGGTACAACGTTATTAACGGGTAT -TGCTGGTAAAAATATTTTAATGAATGTTTTCACTGGAGAACCATTGCAACCTGGACAAGGTGGAATTATT -GGTGTTATTTTTGCCGTTTGGATTTTAAGTATTGTCGAAAAGAGATTGCATAAAATTGTGCCAAATGCGA -TTGATATTATTGTAACGCCGACTATTGCATTGTTGATTGTAGGACTATTAACTATCTTTATCTTTATGCC -ATTAGCAGGTTTTGTTTCAGACAGTTTAGTTTCAGTAGTTAACGGAATTATTAGTATTGGTGGCGTATTT -AGTGGATTTATCATTGGTGCAAGCTTCCTACCGTTAGTTATGTTAGGGCTTCATCATATTTTTACGCCAA -TTCATATAGAAATGATTAACCAATCTGGTGCTACTTACTTATTGCCAATTGCAGCGATGGCTGGTGCTGG -ACAAGTAGGTGCCGCATTAGCACTTTGGGTAAGATGTAAACGCAACACAACATTACGTAATACTTTAAAA -GGTGCATTGCCAGTTGGTTTCCTAGGTATTGGAGAACCATTAATCTATGGTGTGACTTTGCCATTAGGTC -GACCTTTCTTAACTGCTTGTATTGGCGGTGGTATTGGTGGCGCTGTAATAGGTGGAATTGGACATATTGG -TGCCAAAGCAATAGGCCCAAGTGGTGTGTCACTATTACCATTAATCTCAGATAATATGTATTTAGGTTAT -ATTGCAGGATTACTTGCTGCGTATGCTGGTGGATTCGTTTGTACATATTTATTTGGAACGACAAAGGCGA -TGCGACAGACAGATTTGTTGGGTGATTAATGATGACAAATATTTTATATCGCATTGATAAGCAGTTGAGT -GATTTTACGAAGACAGAAAAGATAATCGCTGATTACATTTTAAAGAATCCACATAAAATCATTGATATGA -CTGTGAATGATTTAGCAGATGTTACGAATGTTAGTACAGCATCAATTGTTAGATTTAGTCGGAAAATGAC -ACATCAAGGTTTTCAAGAGCTAAAGATTGCGATATCTCGATACTTACCCGAAGATATTGCAACCAATCCA -CATTTAGAATTGATTGAAAATGAATCTGTAGAAACTTTGAAAAATAAAATGATTGCTAGAGCAACGAATA -CGATGCGATTTGTAGCTACTAATATTATGGATGCGCAAATTGATGCAATTTGTGATGTGTTGAAAAATGC -CAGGACAATATTTTTATTTGGATTTGGCGCATCGAGTTTGACTATTGGTGATCTTTTTCAAAAGTTATCT -CGTATTGGCTTAAATGTCAGGTTATTACATGAAACGCATTTACTTGTGTCAACATTTGCGACGCATGATG -ATAGAGATTGCATGATTTTTGTGACGAATCAAGGTAGTCATAGTGAATTGCAGTCAATTGCACAGGTGGC -CACACATTACAGTATTCCCATCATAACTATATCTAGTACAGCTAATAATCCAGTGGCTCAAATTGCAGAC -TATGCATTGATTTATGGCAGAACTGATGAAAATGAAATGCGTATGGCGGCTACAACGTCACTATTTGCAC -AGTTATTCACGGTAGATATATTGTACTATCGATTTGTAGCATTAAATTATCATGCGATTCTAGATTGTAT -AACCCAATCGAAAATGGCACTTGATAATTACAGGAAGCATCTTGCGACGATAGATTTTAAACATTAGATA -TTGTGTGCGTTCTAATATAAAGTTAGTTGCAACGTAAACAATTGAAGTTTTTGATGTGATTTAGTTGCTT -GATGAAAAATTGTTGATACAAGTTTGTAAAACTGGCATAGAAGTTATTTTGAAAATGATAAAAGTGTGAC -AAATTAAAGCAAAGTTCAGGTTTGAGCTTTGCTTTTTTCATAGTATAGAAATTAAATGTTGAAGAATAAT -TTTAATGCTAAATGAACTAATACGAAGGTGCTAAAAGTAATTATTATCAAATTAGTGATATGAATGAAAT -GTTTAAATCGTTTGCGTTGATTGTATTCGGGACTTTTATAGAGTAGGTAGTAGTACATAAAGAGTATGGC -TGCGAACATGCCGAATATTGAAGTGAAGTTACCTACAGTGACTGCCATGAAATGATTTAAAGTTAAATAA -TAACTTAGACTGATAATTAAAAATAAAATGATTTGATAGGTAATTAACACCATTCAAGTCCCTCCATTAA -TCGTAGGCAAAAAATTTATCAATGATTTGATTATTTGTATTCAAATTTTAGTATACGACTTACCTCAAAC -ACAAATATTAAAATATAAGACAATAAAATTAGAATAAATTTACGTTTGAAGATAAAAAACAAACATTTTT -CATTAAAGTTTATGATATATTTAGAGCAATAGAAAGTGTATGGAAGGGGATATGAATGGCATACCAAAGT -GAATACGCATTAGAAAATGAAATGATGAATCAACTTGAACAATTGGGTTACGAAAGAGTAACGATACGTG -ATAATAAGCAATTGCTTGATAATTTTAGAACGATTTTAAATGAGCGTCATGCGGACAAATTAGAAGGCAA -TCCCTTAACAGATAAAGAATTTCAACGTCTGTTAACGATGATTGATGGGAAAAGTATTTTCGAAAGTGCC -CGTATTTTACGTGATAAATTACCACTTAGACGTGATGATGAGTCTGAGATTTATTTGTCGTTTTTAGATA -CGAAAAGTTGGTGTAAAAATAAGTTTCAAGTGACGAATCAAGTATCGGTCGAGGATACATATAAAGCACG -TTATGATGTAACGATATTAATCAACGGACTACCCCTTGTCCAAGTTGAATTGAAACGTCGAGGCATTGAT -ATTAATGAGGCGTTTAACCAAGTAAAACGTTACCGTAAACAAAATTACACAGGCTTATTCCGCTACATAC -AAATGTTTATCATTAGTAATGGTGTTGAAACGCGATACTTTTCTAATAATGATAGCGAACTATTGAAGAG -TCACATGTTTTATTGGAGTGATAAACAGAATAACCGAATCAATACATTGCAATCGTTTGCTGAGTCATTT -ATGAGACCTTGTCAATTAGCTAAGATGATATCACGCTATATGATTATTAATGAAACAGATAGAATACTGA -TGGCAATGCGTCCGTATCAAGTGTATGCGGTAGAAGCACTTATTCAACAAGCGACTGAGACAGGGAATAA -TGGATATGTGTGGCATACAACGGGAAGTGGTAAGACGTTGACTTCTTTTAAAGCGAGTCAGATTTTATCA -CAACAAGATGACATTAAGAAAGTTATCTTTTTGGTTGACCGTAAAGACTTGGATAGTCAAACAGAAGAGG -AATTTAATAAATTTGCTAAGGGTGCTGTCGACAAAACATTTAATACCTCGCAACTGGTACGCCAACTAAA -TGATAAAAGTTTGCCACTTATTGTAACGACGATTCAAAAAATGGCTAAAGCGATTCAAGGTAATGCCCAT -TTATTAGAACAGTATAAAACAAATAAAGTTGTATTTATTATTGATGAGTGTCATCGCAGTCAATTTGGTG -ACATGCATCGTCTAGTTAAACAACATTTCAAAAATGCCCAATATTTTGGGTTCACTGGTACGCCACGTTT -CCCAGAAAATAGTAGTCAAGATGGTAGAACAACTGCAGATATTTTTGGTAGATGTTTACATACGTATTTA -ATTAGAGATGCCATTCATGATGGTAATGTACTTGGTTTCTCAGTTGACTATATTAATACTTTTAAAAATA -AAGCTTTAAAAGCAGAAGATAACAGCATGGTTGAAGCAATTGATACGGAAGAAGTATGGTTAGCGGATAA -ACGTGTGGAATTAGTAACACGACATATCATCAATAATCATGATAAATATACACGTAATCGTCAATATTCA -AGTATATTTACAGTTCAAAGTATTCACGCGCTTATTAAATATTATGAGACATTTAAGCGACTTAACAAAA -AGTTGGAACAACCATTAACGGTAGCTGGTATATTTACGTTTAAACCTAATGAAGATGATCGTGATGGTGA -AGTGCCATATCATTCACGTGAAAAATTAGAGATAATGATTAGTGATTATAATAAAAAGTTCGAGACGAAT -TTTTCAACAGACACAACTAATGAGTATTTTAACCATATTTCAAAAAACGTTAAAAAGGGCGTTAAAGATA -GTAAAATTGATATCTTAATCGTTGTTAATATGTTCTTAACTGGTTTTGATAGTAAAGTACTGAACACTTT -ATATGTTGATAAGAATTTAATGTATCATGATTTAATTCAAGCGTATTCACGTACAAATAGGGTTGAAAAA -GAATCAAAGCCATTTGGTAAAATTGTAAACTATCGTGACTTGAAAAAAGAGACAGACGATGCACTGAGAG -TATTCTCACAAACAAATGATACGGATACAATTTTAATGCGTAGTTATGAAGAGTATAAAAAAGAATTTAT -TGACGCTTATCGTGAGCTTAAAATGATTGTGCCGACACCACACATGGTTGATGACATTCAAGATGAAGAA -GAGCTAAAGCGCTTTGTTGAAGCTTATCGTTTATTAGCTAAAATAATATTACGTTTAAAAGCATTTGACG -AGTTTGAGTTTACAATTGATGAAATTGGAATGGATGAACAAGAGAATGAAGACTATAAAAGTAAATATTT -AGCCGTGTACGATCAAGTAAAAAGAGCGACGGCTGAGAAAAATAAAGTATCCATTTTAAATGATATTGAT -TTCGAAATAGAAATGATGCGTAATGATACGATTAATGTGAATTATATTATGAATATATTGAGACAAATTG -ATCTTGAAGACAAAGCGGAACAACGTCGTAACCAAGAACAAATTAGACGTATTTTAGATCATGCAGATGA -TCCGACATTGAGGTTAAAACGAGATCTAATTAGAGAATTCATCGACAATGTTGTACCTTCTTTAAATAAG -GATGATGATATCGATCAAGAATATGTTAATTTCGAAAGTATTAAAAAAGAAGCGGAGTTCAAAGGATTTG -CTGGAGAGAGATCTATCGATGAACAAGCCCTAAAAACAATTTCAAATGACTACCAGTATAGTGGTGTTGT -AAACCCACATCACCTTAAAAAAATGATTGGTGATTTGCCATTGAAAGAAAAACGTAAAGCAAGAAAAGCC -ATTGAATCTTTCGTGGCAGAAACAACTGAAAAATACGGTGTGTAATGATTCAGCCCCCTCGCTAGATTAG -TGTAGGGGGCATTATTATTTCATTAGAAAAGGCTCATGTGTTTGGCAATCATCATTTGGTTTCAATACAA -TTTTATCATCGTATTTGTATAGAAATAATGTCTATAGGCATTTAAAATAGTTTATAATATTAACAGGATA -AGTATTAAATGTATGTTGAAGGAGGTGCGTAGCTATGGATAATAGAAATATGATTAATCGTGTTTTTAGT -CAAAAGATATTACATCAAATTGCAATCAAAAATAAAAGTGATGTTGTTGATGAGGCATATGATTTTTATA -TACAAGGGCCTAAAAATATCAATGTAATACAGAAAATGAAGTCTTTATATAACTATCTTAAAAAGTCTTA -TCGTAACGAATATTTTTATAAAAACACAATGCTTAATAAACTCCTTTTAGGACTACATTCTGTTAATACA -ACTACTGCACTTTCTGAGATGCCTATAGGAAATAGTATTGCTGATTTTATATTGTTAAATGGTAAAGGCG -TTGTCTACGAGATTAAAACAGAATTAGATAAGTTGGATAGATTGGATAATCAAATTAATGATTATTATGA -AGTATTTAATTATGTAGTAGTCATTACAAATGACAAACACTTGAATAAAGTTATGGCTAGATACAAAGAT -ACAACAGTCGGAATTTTAGTATTAACATCTAGAAATACACTGAGTGAAGTTCAAAAACCAAAAGAAAACA -ATAGTCTCTTAAACTCAAAAGCGATGTACAACTTTTTACGAAAAGAAGAAAGAAAAAGAGTTATTGCACA -AAATCATATGGATGTGCCAACTTATAATGATTTCACAGAGTATGATGTGTTATTTGACGTGTTTAAAGAA -ATACCAATGACGAAACTGCATAACAATATGATTTTTGAGTTGAAAAAAAGAGGCAACATGAAAGAATACA -AAGATGAATTTTTAGCAGCTCCGACTGAAATTAAGTTCTTGTTATATTTCGCAAAAATGACAAAGAAAGA -TAAAAATAAACTATATCATTTTCTTAAGGATACAAATAATCCCCCGCACTTCACATAGTGGCGGGGGATT -TATCATGCGTTAAAATGCCCAAAGTATGGGTGTGACCCTTAAATCATGGCAAAGCATCTAACACTTGATA -TGGTGCCGAGCCCTAACATAGCACAATATAGTTAGTATGACAAAGTCATCTAACATAACACATCAGATGT -TGCCCGATTTATTCCAGACCATACAGTGATAAAGTTGCACAACGCATGACTTTTATTTAGCAATAACTGC -TACTTCTGAAATAAGTTGCTTTGCATAGTCTGATTGCGGATGTTTGATAATATCTTCTGTGTTATTAAGT -TCAACGATTTCGCCATTTTTCATAACTGCAACTCGATCACATATTTCATTGATAACACCCATGTCATGTG -TGATGAATAAATAAGTGATGCCGAAGTCTAACTGTAATTGTTTTAATAACTCGATGATATCTTTTTGAAT -TGAAACGTCTAAAGCTGATACTGCCTCGTCGCAAACAATCACTTTAGGTTCTACAGCAAGTGCTCTTGCG -ATACTTACACGCTGGCGTTGCCCACCAGATAATTCGTGTGGATAGCGATATAAGAAACTTTGATCTAGGC -CAACTTTTTCTAACAACGATACGATAGTTTTAATAATGTCGTCATTATCTTTGACTTTCCCATGAATGAT -TAGTGGTCGTTTAATCACATCAATGACTTTAAATCTTGGATTAATAGATGCGAATGGATCTTGGAAAATC -ATTTGTATCTCTTGTCGTAAAGATTTCAATTCATCATCTTTAAATAAACTTAATGGTAATTCGTTATACC -AAATAAAGCCTTCTGACACTTCCTTTAGACCGACGACCGTCTTAGCTAATGTCGATTTCCCTGACCCTGA -TTCACCGACAATGCCTAACGTTTCGCCTTTTCTAATAGCCAAGTTAATATCATTAACTGCTCGGTATAGG -CTGCCACTCGGTGATGTGTAATCCACGCTCACGCGATCGAATTTTAATAAAATATCATTGTTTAACGGTC -TTGGCGGACGCGTTTGATGAATATCAGGAATCGCATCTATTAAGCGTTTCGTATAGGTATGTTGTGGCGA -TTTAAAAATACTTTCAACCGTGCCACTTTCAACGACACTTCCATCTTTCATTACAATCACATCGTCGCAA -AATTGATACACAGCACCTAAATCGTGAGTGATAAAAATAATAGACGTTTCTGTGTACTCATAAAGGGACT -TCATTAACTGCAGTAATTGATTTTGTGTACTGGCATCTAATGCCGTTGTTGGTTCATCTGCGATTAAAAT -TTGTGGCTTTAAAATCAATGCCATTGCTATCATGACACGTTGACGCATACCACCAGAAAGTTCATGCGGA -TAAGCATCAAATTGTCGAGTTGCATGTTTTATACCTACTTTTTCTAAAATGTCTATTGTCATCGACTTTG -CTTCAGATTTAGATACACGTTTATGTTGAAATAGTACTTCTGTAATTTGTTTGCCAATCGTTAATCTTGG -ATTCAACGAAGAGAGTGGATCTTGAAAAATCATTGAAATATCCTTGCCTCGAATTTGTTGTAACGCTGAA -GTTGATAAATTAGTTAACGATTGCCCATTAAAAATAATTTCTCCTGTTAACGTGTGATCCGGATAATCTG -GTAGTAGCCCTAAAATAGATTTAGCGGTAATACTTTTTCCTGATCCTGATTCACCAACAATACCTAGGAT -ATGTTTTTTTCGTAATTCGAAAGAGACGTTTTTTACCGCTTGAACTGTAGTTTCATCATAATTGAATTGT -ACATTCAGACTGTTGACTTCTAATAAATTTGACATGATGTTGTGCCTCCCTATTCACAAATGTGTAAATT -TATTCTATACTTTTGTATATCATAGTAATCTACTCAAGATTATTTTACAAGGAGTGATTAGCATAATTAC -TTATTTAGAATCTTTTAAGTCGTTGTATCACAAGGCATTTTACAAGTTTGTATTATCGGTATTAAGCTTG -CCATTATTTTTATATGCAGTGATAAAGTTTTTCTTTTCTGCTAAGAGAAAAAATTTTTACGCTAATAATT -CTGAAATTTCAGAAATCGAACAGGCGTTACATCAAAAATATAAATATTTATCGCAGCAAAAGTCATCCAC -ACAAATACATAAAGAAGCATTAAAAATATTCAAGACACAAAGTTCTAATACGAATTCAAAGAATATTGAA -CAAGCACATTTTTCAACATACTTTGAAAATGTATTATTTCATAAGTTCATCATTATCAAAGTGATATTGG -CGTTACCGATGTTCATCTTATTGACTATTTATTTACAGCCATTAGTTAGATATATTTTTGAGCGAATTGT -CATGGCTGTGATTGTCATCATTGGTGTTATTGTCAGTGTGTTTAGCATTCTGTATTTTTCACCGCTTGAT -GCGGCTTATAGCATACTGGGACAAAATGCAACAAAGGCACAGATACATCAATTCAATGTATTACATCATC -TTAACGAACCTTATTTTATTCAATTGTGGGATACCATCAAGGGTGTTTTTACCTTTGACTTAGGTACGAC -TTACAAAGGGAATGATGTTGTGACTAAAGCAGTTGGCGAAAGAATTCCAATTACAATAATTGTCGCAGTA -TTAGCGCTAATTGTGGCATTAATTATTGCAATACCAATTGGTATTATCAGTGCGATGAAGCGAAATAGTT -GGCTTGATATCACGTTAATGATAATTGCATTAATTGGTTTGTCTATTCCAAGTTTCTGGCAAGGGTTATT -ATTCATTTTAGCGTTCTCATTGAAATTGGATATTTTGCCACCATCTTATATGCCAGAACATCCAATATCG -TTGATTTTACCTGTACTTGTCATTGGAACAAGTATTGCTGCTTCTATCACGCGTATGACAAGGTCTTCTG -TACTTGAAGTAATGCGCAGCGATTATGTTTTAACTGCTTATGCAAAAGGATTATCGACGACACAAGTGGT -TATTAAACATATTTTGAAAAATGCCATTATTCCAATTGTAACGCTAGTTGGTCTTCTAGTGGCAGAGTTA -CTAGGCGGTTCAGCAGTGACGGAGCAAGTATTTAACATTAATGGTATCGGTCGTTATATCGTCCAAAAAC -AACTAATACCTGATATCCCAGCAGTCATGGGTGGGGTCGTATATATATCAATTGTAATATCTTTAGCAAA -CTTAATTATTGATATATTTTATGCTTTAATCGATCCAAAATTACGTAGTGAAATTAACGAAAGGAAGTGA -GGCATATGGTAAAACTTACAACAAAGATAGCTTCCTTAAAACTATTCGCAAGTTATGCTATTGCAACTTA -TATTTTAGTTATATTAACGAGTGCATTAAATCTTTTTAAAGGTTATGTGGCCGATACGTTCTATATTGCT -GAAACATTGCTAATCGTTTTAACCATCATTTTAATTATCATCTTAACAACGGAACAAACATGGAAGCATC -ATGACCTATGGCGACGTATCGTCGAAGTGTTGTTATTGTTGATGACATTAACAGGGAACGTATTTACATT -ATTAATGTTTGTAAGTATTAGACGTTACCAACGTACATCGCAAATACATAGTTATAATGGCTGGGAATCG -TTTATACGAAAAACTACTAGACATCGTATTGCGATTATCGGGTTACTTATTTTAGTCTATATGCTGACAT -TATCAATTGTGTCACAATTTACATTTGATACGACATTGGCTACTAAAAATCAGTTCAACGCACTGTTACA -TGGACCGAGTCTAGCCTATCCGTTTGGTACTGATGATTTCGGTAGAGACTTATTTACACGCGTAGTTGTC -GGAACGAAGCTGACATTTTCAATTTCAATTATTTCAGTAGTTATTGCAGTTGTTTTTGGTGTGTTACTAG -GCACTATCGCAGGTTATTTTAATCATATTGATAATTTAATAATGCGAATTTTAGATGTAGTGTTTGCAAT -TCCATCATTATTGTTAGCGGTGGCAATTATTGCATCGTTTGGAGCAAGTATTCCAAATTTAATTATTGCT -TTAAGTATCGGTAATATACCATCATTTGCACGGACAATGCGTGCCAGTGTTTTAGAAATTAAACGCATGG -AATATGTAGATGCAGCACGTATCACTGGTGAAAACACTTGGAATATCATATGGCGTTATATTTTGCCGAA -TGCGATTGCGCCTATGATTGTACGTTTTTCATTAAATATAGGTGTGGTTGTATTAACAACAAGTAGTTTA -AGTTTCCTAGGACTTGGTGTTACACCTGATGTAGCTGAATGGGGCAACATTTTACGTACCGGTAGTAACT -ACTTGGAAACGCACAGTAATTTAGCTATTGTACCTGGTATTTGTATTATGTTCGTCGTTTTAGCATTTAA -TTTTATAGGTGATGCAGTGCGTGATGCGCTAGATCCAAGAATTCATTAAAAAGGTAGGGATAGATGTGAA -GAAAATCATTAGTATCGCAATTATAGTTTTAGCGTTGGTATTAAGTGGTTGTGGTGTCCCTACGAAATCA -GAAGTGGCTCAAAAGTCATCGAAAGTTGAAGTGAAAGGCGAGCGACCAACGATACATTTCCTAGGACAAG -CAAGTTATGAAAATGATATGAATATCGTCAAAGATCAATTGGAAAATGCAGGATTTAACGTGAAGATGAA -TATCCAACCAGATTATGGTAGCTATCGTACACAACGTCAAGCCGGCAATTATGATATCCAAATCGATGAC -TGGATGACAGTATTCGGTGACCCGAACTATGCTATGACGGCATTATTTAGTTCTACAGGATCAAATAGTT -TATTGAAAGATAAACATGTAGACCAGTTGTTAAATAAAGCTTCTACTCAAAATGAAGCAGATGTTAAACA -AACATATAAGCAAATTGAAGATGAAGTTGTATTTGATAAAGGGTATATGGCGCCTTTATATGGATCAAAA -AAGAATTTAGTATATGACAATAAAGTGTTAGATAAAAATAGTGTTGGATTGCCAAATTCACGTGCATTAA -TATGGCAACAATTTGATTACAACAATAGTAGAGAACGAGATACGCGGCCACTTGTGATGACACAACAAGA -CGGTGAAATTCCTACATTGGATCCAATACGTTCAATTGCGCCGTCAGTATATTCAATTAATATGAATATG -TACACAAGGTTATTATTATTAGATGAAAATGACCACTTAACAACGAAAGGTTCGTTAAGTCGTGATTATG -CTGTGAATAAGGACAATAAAGCGTTTTATTTCTTATTAAGAGATGATGATTATTTTGCGAAAGTGGTTAA -TGGACAAGCACGTAATACTGGAGAGCGTGTATCGGCTGAAGATGTTAAGTTTTCTTTAGATAGAGCACGT -GATAAAAAGTCTGTGCCTAACAATAATACTTACAATATGCACAAACATATAAATGACATCAAGATATTAA -AAGATGAGGACATCGATCAGTTGCGTAAAGAGAAGGACAAGGACGATAATTCCATCTATGATAAGTTGAT -TAAAGCGTATAACGTCAAATCGTTAACGACAGATGGTCAAAAAGTAAATAATAAAGACGGTATTTATCAA -ATTGTTAAAATTACGACAGATCAATCGATGCCTCGAGAGGTAAATTACTTAACACACTCTTCGGCAGGCA -TTTTATCTAAAAAATTTGTTAATCAAGTAAATCAAGAATATCCAAAAGGATATGGGGATAGCAGTACCAT -TCCTGCAAATTCAGATGGAAAAAATGCGCTTTATGCAAGTGGCGCATACATTATGACACAGAAAAATGCA -TATCAAGCAACGTTTCAACGTAATCCAGGATTCAACGAAACAGAAAAAGGTAGTTATGGACCAGCTAAAA -TTAAAAATATTACATTGAAGTTTAATGGTGACCCGAATAATGCATTGTCAGAACTTAGAAATCATTCAAT -TGATATGTTGGCAGATGTGAATCAAAAACATTTTGATTTAATTAAGTCGGATAAAAATTTAAGCATTATT -CGCAAAAATGGACGTAAGTCAGTCTTTTTAATGCTAAATATTAAAAAAGGTATATTTAAGACGCATCCAA -ACTTGAGACAAGCAGTAGTTAATGCGATAGATCAGGATCAATTTATTAAGTTTTATCGTGGCGATAAATT -TAAAATTGCATCACCGATTACACCACTTGTCGATACTGGTAACGAGCAACGTCAAGATTTAGAAAAAGTA -GAAAAAGCCATTAATCAATAATGTTTTAAATATTTAACAGAAAGTAGGAGGATATAGTATGGTCATTAAC -TTAAATGACAAACAGACAAAAACATCTAAAGAAGGGTTAATTTCCGTATCACATCCTCTTGCGGCTAAAA -TTGGTAAGGATGTATTAGATCAAGGTGGCAACGCTATGGATGCCGTGATTGCAATTCAACTGGCATTGAA -TGTGGTAGAACCATTTGCATCAGGTATTGGTGGTGGCGGGTACTTGCTATATTATGAGCAAAGTACTGGC -AGTATAACTGCGTTTGATGCGCGTGAGACAGCCCCTGCACATGTAGACAAACAATTTTATCTAGATGATT -CAGGCGAATATAAATCATTTTTTGATATGACTACACATGGTAAAACTGTCGCTGTGCCAGCAATTCCAAA -GCTGTTTGATTATATTCACAAGCGTTATGCTAAATTGTCATTGGAAGATTTAATTAATCCTGCAATTGAA -CTAGCCATTGAAGGTCATTCAGCTAATTGGGCTACTGAAAAATATTCGCGCCAGCAACACGCGCGATTGA -CAAAGTATCACGAAACGGCACAAGTATTTACCCATGAAAATCAATATTGGCGTGAAGGTGATTGGATTGT -ACAACCCGAATTAGGTAAGACATTTCAAATATTAAGAGAACAAGGGTTTAATGCATTTTATAAAGGTGAC -ATTGCGAAACAATTAGTCAATGTTGTCAAAGCATGTGGTGGGACAATCACTTTAGAGGATCTAGCCAATT -ATGATATTCAGATTAAAGCGCCAATCAGTGCGACATTTAAAGACTATGACATTTATTCAATGGGACCATC -TAGTTCTGGCGGTATCACGGTAATTCAAATATTGAAGTTATTAGAACATGTCGATTTACAATCTATGGGT -CCAAGATCTGTTGATTACTTGCATCATTTGATACAGGCGATGCATTTAGCATATAGTGATCGCGCGCAAT -ACTTGGCGGATGATAATTTTCATGAGGTGCCTGTACAGTCATTAATTGATGACGATTATTTAAAAGCACG -CAGTAAGCTCATTGATAGCAATAAAGCAAATATTGATATAGAGCATGGTGTTGTGTCTGATTGCATTAGT -CATACAGATGTTGAAGAAAATCATACCGAAACAACTCATTTTTGTGTGATTGATAAGGAAGGTAATATTG -CTTCATTTACGACATCAATCGGTATGATTTACGGATCGGGTATCACGATTCCAGGCTACGGCGTGTTATT -GAATACCACAATGGATGGTTTTGATGTTGTGACGGGTGGGATCAATGAAATTGCACCTTATAAACGACCA -CTAAGTAACATGGCTCCAACGATTGTGATGCATCACGGGAAGCCAATATTAACAGTAGGTGCACCTGGTG -CTATAAGTATCATTGCTAGTGTTGCGCAAACATTAATCAATGTATTAGTGTTTGGCATGGATATTCAGCA -GGCTATAGATGAACCTAGAATTTATAGTAGCCATCCTAATCGCATTGAATGGGAGCCTCAATTTTCACAA -TCTACAATTTTAGCATTGATTGCACGTGGACATGCAATGGAACATAAACCAGATGCCTATATTGGAGATG -TACATGGGCTACATGTTGACTTGAATACACGTGACGCATCGGGAGGTGCTGATGATACGAGGGAAGGTAC -AGTGATGGGTGGTGAGGTATTATCAATTAGAAAACAACCATTACCATATCGTCAAATGTATGGTAGTAAT -GTATATCGTGTATATTTCAATGATGTGCAGTTACCTTTATTGGCAGATCAAGTGCGATGGATGCATGACA -AATATTGGGTTGATGAAAGTGTCGTTAGAATCATCTTCTCTGAAGTTAGTGCACATATTGAAGATTTAAG -AAGTTATGAAAACGCAGGAGAAAATTATATAGATATTACCTGGTTAGCACGAAAGAAAGGTTATCAAGTA -ACATTGAAGGATGACGGTTTATACTTAACTGATGATACATATACTTCAGTGAAACGGAACACAAATGCAT -ACTATAGATATGATCGAGATAGTATCACAAGATAGTTTATACGCTTGATATGAAGTTTGTAGTGGATAAG -GACTTTTGTTGAAAGAAAGGATTCGATTTCGAACTTTAGCGTGACGCTTGAGTGTAGTAATGTTGGAAAT -GCTATACGAAACGCTAGTCACCTTTGTAAATATACAACACCTCACATATTCGTTTTTGATGTACATCACA -ATAGTTAGTCTAAAATCTAACGTGATGTGGTTTGGTACAGTTGAACGAGTTATGTGAGGTGTTTTTATAA -TGTGGGATTTTAATAGATGATTTGGATGTTTCTATAATTACAGCATAAGTATTAATGTTCGCTACTAAGT -TTAACCAGAAGTTTTTATGTGTCTTCATACTTTCATATCTACTCTCAAAATATATCATCAACACTATCAT -ATGTTTTAAAAATATTTACATCATAACTAAAGTGAATGTCAAAATTTAAATTTGTAAAAACAATAGATGT -ATATAAAAAGTTGAAAAGGATTGTAAGAAAATCAAAAAAACACTGTATGACGTTTGATTAGTCACACAGT -GTAGATAACAATTAAAATGTTGTTGCCAATTTTTCAGCATTATTAATACTAGTTGCTTTAATTTCTTCAG -TTTTATGCGGTTCGGCATTGTGTCCTTCAATAATGATTGTTTCATATGATGGCACACCTAAGAATGTCAT -AATTGTTCTTAAATAACGGTCACCCATTTCAAAATCAGCAGCAGGTCCTTCAGTATAATATCCACCACGT -GATTGAATGTGTAATACTTTTTTGTCAGTTAGTAAACCTTGTGGTCCTTCAGCAGAATATTTAAAAGTTT -TACCTGCAATTGAAATAGCATCAATATATGCTTTAACTACAGGTGGGAAAGAAAGGTTCCACATAGGCGT -TACAAGCACATATTTATCTGCACTTAAAAATTCTTCTAAAATGTCACTCAATCTTGAAACTTTCATTTGT -TCATCATCAGTTAACGTTTCGCCATTACTCATTTTCCCCCAACCAGTTAATACATCTTTGTCAATAACTG -GAATATAAGTTTCAAATAAATCAATATGTTTCACTTCATCTTCAGGATGTTGTTGTTGATATGTTTCGAT -AAATGCTTTACCAGCCGCCATAGAATTTGATACCAGTTCATTAAAAGGGTGTGCTGTAATATATAATACT -TTTGCCATTTGAAAATTCTCCTCTGTTTCTGTTATTTTCTTAAGTATAATTATTATACTAGGTATAAAAT -TTAATATCAATCAAAATATTCAAATTACCATCATTTTCTTCATCTATATTTTGCAGTACTACTAAAGTAT -GAGTGCATTTAATTATGAAATAGTTGATTTAGAATATATACTTAATACCCAAAATATATGAAGGATGGAT -GCCACTATGACAAAGCGACCAAAACGTATTTTGGCAACAATTATCATTTTTCTTTCACTATTATTTACGA -TTATTTATATAGATGACATACAAAAATGGTTTAACCAATATACCGATAAATTGACACAAAATCATAAAGG -ACAAGGACACTCAAAATTGGAAGACTTTTTTAGAGGGAGTCGGATTACTGAGACTTTTGGTAAATATCAA -CATTCACCATTTGATGGTAAGCATTATGGTATTGATTTTGCATTGCCAAAAGGTACACCAATTAAAGCGC -CGACGAATGGTAAAGTAACACGTATCTTTAATAATGAATTAGGCGGCAAGGTATTACAGATTGCCGAAGA -TAATGGAGAATATCACCAGTGGTATCTACACTTAGACAAATATAATGTCAAAGTAGGTGATCGAGTCAAA -GCAGGTGATATTATTGCATATTCAGGCAATACAGGTAAACAAACGACAGGCGCACATTTACATTTTCAAA -GAATGAAGGGTGGCGTAGGTAATGCATATGCAGAAGATCCTAAACCGTTTATCGATCAGTTACCTGATGG -GGAACGTAGCCTATATGATTTGTAGTTATAGAAGAGTGCCCGCAGTCTAAAAAATCAAGCAATCATTGTG -TGAGTATAATACTTACATAATGGTTGCTTTTTTCAATGAAAATCGAAATGCTAAGTCATACTTGTTTGAT -TTAGATATTATTTAAAATGTAAGACAAGGTTGTTAGCATTGGCAGTGAAATTTCGCACGTAAAAAATCAT -TATTGACACACTAAAAATAGTTGTGTGCTATATCAATTTTCTGTATAAAAGTTTAATTCTGACAGTAATG -TAAACGTTTACAATTTATGATTGACATTAATAATAAGTGACTATATGATTTATGTAAGTATTTGTGCAAA -CGTTTTCACAAAGTGTATTGCACAATCAAACTGTAAACAAAGTATGGGAGGCATAACATGGCAGAACTAA -AGTTAGAGCATATTAAAAAGACGTATGATAACAACAATACTGTAGTGAAAGATTTTAATCTACATATTAC -TGACAAAGAATTCATTGTATTTGTTGGACCATCGGGATGTGGTAAATCAACAACATTACGAATGGTTGCT -GGACTAGAGTCTATCACATCTGGAGATTTTTATATTGATGGGGAACGCATGAACGATGTTGAACCAAAGA -ATAGAGATATTGCGATGGTATTTCAAAACTATGCATTATATCCACATATGACTGTTTTTGAAAATATGGC -ATTTGGGCTAAAGCTACGTAAAGTGAATAAAAAAGAGATTGAACAAAAAGTTAATGAAGCAGCTGAAATA -TTAGGATTAACTGAGTATCTTGGTCGTAAACCAAAAGCGTTATCTGGTGGACAGCGTCAACGTGTTGCTT -TGGGCAGAGCTATTGTTAGGGATGCGAAAGTCTTTTTAATGGATGAACCATTATCGAATCTTGATGCGAA -GCTTCGAGTACAAATGCGCACAGAAATATTGAAATTACATAAGCGACTTAATACTACGACAATTTATGTT -ACGCATGATCAAACTGAAGCATTGACGATGGCTAGTCGAATTGTTGTTTTGAAAGATGGCGACATTATGC -AAGTCGGCACACCTAGAGAAATATATGATGCCCCTAATTGCATTTTTGTGGCGCAATTTATCGGCTCACC -AGCAATGAATATGTTGAATGCCACAGTTGAAATGGATGGATTGAAGGTAGGAACACACCATTTTAAATTA -CATAATAAAAAATTTGAAAAGTTAAAAGCTGCTGGCTACTTAGATAAGGAAATTATTTTAGGTATTCGAG -CTGAAGACATTCATGAAGAACCAATATTTATTCAAACCTCTCCAGAGACACAATTTGAATCTGAAGTAGT -TGTATCCGAACTGTTAGGTTCAGAAATTATGGTACATAGCACATTCCAAGGAATGGAATTGATTTCTAAA -TTAGATTCAAGAACACAAGTGATGGCGAACGACAAGATTACACTAGCATTTGATATGAATAAGTGTCACT -TTTTTGATGAAAAAACAGGAAATCGTATCGTCTAAGGGGGAGTATTCATGTCTAAAATTTTAAAATATAT -CACGTTAGCCGTGGTAATGTTATTAATCGTAACTGCATGTGGCCCTAATCGTTCGAAAGAAGATATTGAT -AAAGCATTGAATAAAGATAATTCTAAAGACAAGCCTAACCAACTTACGATGTGGGTGGATGGCGACAAGC -AAATGGCGTTTTATAAAAAAATTACGGATCAATATACTAAAAAAACTGGCATAAAAGTAAAGCTTGTAAA -TATTGGTCAAAATGATCAACTAGAAAATATTTCTCTAGACGCTCCTGCTGGAAAAGGTCCAGATATCTTT -TTCTTAGCACATGATAATACTGGAAGTGCCTATCTACAAGGCTTAGCTGCTGAAATCAAATTATCAAAAG -ATGAGTTGAAAGGCTTCAATAAGCAAGCACTTAAAGCGATGAATTATGACAATAAGCAATTAGCATTGCC -AGCTATCGTTGAAACAACCGCACTTTTTTATAATAAAAAATTAGTGAAAAATGCACCGCAAACGTTAGAA -GAAGTTGAAGCTAATGCTGCCAAACTAACTGATAGTAAAAAGAAACAATACGGTATGCTATTTGATGCTA -AAAATTTCTATTTTAATTATCCGTTTTTATTCGGCAATGATGATTATATTTTCAAGAAAAATGGCAGTGA -ATATGATATTCATCAGCTAGGACTAAATTCAAAACATGTCGTCAAGAATGCTGAACGATTACAAAAATGG -TACGACAAAGGGTATCTTCCTAAGGCAGCAACACATGATGTCATGATTGGTCTTTTTAAAGAAGGAAAAG -TAGGACAATTTGTCACTGGACCATGGAACATTAATGAATATCAAGAAACGTTTGGTAAAGATTTAGGAGT -AACAACATTGCCTACAGATGGTGGCAAACCTATGAAACCATTTCTCGGTGTACGTGGTTGGTATTTATCT -GAATATAGTAAACATAAGTATTGGGCTAAAGATTTAATGTTGTATATCACTAGTAAAGATACATTACAAA -AATATACAGATGAAATGAGCGAAATTACTGGACGTGTTGACGTAAAATCATCTAATCCAAATTTAAAAGT -GTTTGAAAAGCAAGCACGTCATGCTGAACCGATGCCTAATATTCCTGAAATGCGACAAGTTTGGGAACCG -ATGGGCAATGCAAGCATATTTATCTCAAATGGTAAGAATCCTAAACAAGCGTTAGATGAGGCGACGAATG -ATATAACGCAAAATATTAAGATTCTTCATCCGTCACAAAATGATAAGAAAGGAGATTAGTTATGACGAAA -CGTAACCCTAAATTAGCGGCATTATTATCTGTTATACCTGGTTTGGGACAGTTTTATAATAAAAGACCCA -TTAAAGGGACGATATTTTTTATCTTTTTCATCAGTTTTATTTCTGTATTTTATAGCTTTTTAAATATTGG -TTTTTGGGGATTGTTCACATTAGGGACAGTACCTAAGTTAGACGATTCTCGTGTCTTACTTGCACAAGGT -ATTATTTCTATCTTACTCGTTGCTTTTGCAATCATGCTATATGTCATTAATATTTTAGATGCATATCGTA -ATGCTGAACGATTTAATCGCAATGAGGAAATAAAGGATCCGAAGGCACGTATGGTTGCAACATGGGACAA -GACGTTCCCATACTTACTAATCTCACCAGGTACATTCTTATTGATATTTGTAGTTGTATTTCCATTAATA -TTTATGTTTGGAGTAGCATTTACAAACTACAATTTATACAACGCGCCTCCGAGACACACATTAGAATGGG -TTGGTTTAGATAACTTTAAAACGTTATTCACAATTGGCGTTTGGCGTAAAACATTTTTCAGTGTTATTAC -TTGGACATTAGTATGGACGCTTGTTGCAACGACACTTCAAATTGCATTAGGGCTGTTTTTGGCAATTATT -GTAAATCACCCTGTCGTCAAAGGTAAGAAATTTATCCGCACTGTGTTAATCCTACCTTGGGCTGTACCAT -CATTTGTGACAATTTTAATATTTGTAGCGTTATTTAATGATGAATTTGGTGCGATAAATAATGATATATT -GCAACCTTTATTAGGTGTTGCACCAGCATGGTTAAGTGATCCATTTTGGTCAAAAGTGGCATTAATTGGT -ATTCAAGTATGGCTTGGTTTCCCATTCGTCTTTGCACTGTTCACTGGTGTACTGCAAAGTATTTCATCAG -ATTGGTACGAAGCAGCAGATATGGATGGTGCGTCTAGTTGGCAAAAGTTCAGAAACATCACATTCCCGCA -TGTCATTTACGCCACAGCGCCATTGTTAATTATGCAATATGCAGGTAATTTCAATAATTTTAATCTTATT -TATCTATTTAATAAAGGTGGTCCACCAGTGTCAGGGCAGAATGCTGGTAGTACAGATATCTTGATATCTT -GGGTGTATAATCTGACATTTGAGTTTAACAACTTTAACATGGGTGCAGTTGTGTCATTAATTATTGGATT -TATTGTTGCTATTGTCGCATTTATTCAATTCAGACGTACAAGTACGTTTAAAGATGAGGGAGGTTTATAA -GATGACAAAGAAGAAAAACATATTAAAAGCAATCGGTATTTACAGTTTTATAGCGATGATGTTTGTCATC -ATTTTATATCCACTACTGTGGACATTTGGCATTTCCCTTAATCCAGGTACGAACTTGTATGGTGCCAAAA -TGATACCAGACAATGCAACATTTAAAAATTATGCATTCTTACTATTCGATGACAGTAGTCAATACCTGAC -TTGGTATAAAAATACGCTTATCGTAGCATCTGCAAATGCACTGTTTAGTGTGATATTTGTCACGTTAACA -GCATATGCTTTTTCTAGATATCGCTTTGTTGGTCGTAAATACGGGCTGATTACATTTTTGATTTTACAAA -TGTTCCCTGTATTAATGGCAATGGTCGCAATCTATATTTTGCTAAATACAATTGGATTATTAGATTCTTT -ATTTGGACTAACACTTGTATATATTGGTGGGTCTATACCGATGAATGCCTTTTTAGTGAAAGGTTACTTC -GATACGATTCCAAAAGAACTTGATGAATCTGCCAAAATTGATGGTGCTGGCCATATGCGTATTTTCTTAC -AAATTATGCTTCCATTAGCTAAGCCAATTTTAGCAGTTGTTGCTTTGTTCAATTTTATGGGGCCATTTAT -GGACTTTATATTACCTAAAATACTATTAAGAAGTCCTGAAAAATTCACATTAGCAGTTGGATTGTTCAAC -TTTATTAATGATAAGTATGCAAATAATTTCACAGTGTTTGCAGCAGGGGCAATTATGATTGCAGTACCTA -TAGCAATCGTATTCTTGTTCTTGCAACGCTACTTAGTATCAGGTTTAACAACAGGTGCGACAAAAGGTTA -GTTTGAAATTGGGAGCGGGGCAGAAATGATAAAGAACCACTAATGAATTTATTGTGTAGTGGCTCTTACA -AATTAGCCACAGCTAATATGTATCTAAAAATAGCCTAGAACGTTGATTGATGTTTAAGGCTCGACATACG -TACTAATGACGATAAAGATTTAAAGGAGGACGTTATGATGACGATTAAAGTTGGAATCATTGGGTGTGGT -GGTATTGCGAATGGCAAGCACATGCCAAGTTTACAAAAAGTTGAAAATGTTGAAATGATCGCATTTTGTG -ACGTAGACATTTCGAAAGCAGCGTGTGCGGCAGAAGCATACGGTACTGACAATGCAAAGGTTTATGATGA -TTACAAAGCATTGTTAAAAGATGACACGATTGATGTTATCCATGTTTGTACGCCAAATGACTCGCATTGT -GAAATTACTGTAGCAGGGTTGCATGCCGGTAAACATGTGATGTGTGAAAAACCAATGGCTAAAACGACAG -CAGAAGCTCAAAAAATGATAGATACAGCTAAATCAACAGGTAAAAAATTAACAATAGGTTATCAAAATCG -CTTCAGACCAGATAGTCAATTTTTATATAAATCAGCGCAACGTGGCGACTTAGGTGACATTTATTTCGGA -AAGGCACATGCTATTCGTCGTCGAGCAGTACCAACATGGGGTGTATTTCTAGACGAAGAAGCTCAAGGTG -GAGGACCATTAATCGATATCGGTACACACGCTTTAGATTTAACGTTATGGATGATGGATAATTATGAACC -AGAATCAGTGATGGGTTCAACATTCCATAAATTAAATAAACAGCATGATGCGGCAAACGCTTGGGGTTCA -TGGAATCCAGATGAATTTACAGTTGAAGATTCTGCGTTTGGCTTTATTAAAATGAAGAACGGAGCGACGA -TCATTTTAGAATCCGCTTGGGCGATTAATTCTTTAGAAGTGGATGAGGCAAAATGTTCATTATCAGGAAC -GAAAGCAGGTGCTGATATGAAGGATGGTCTACGTATTCATGGTGAAGATATGGGCACACTTTATACCAAA -CACGTTGAATTGGAAAACAAAGGCGTCGACTTTTATGAAGGTAATGAAGTGGATGAAGCTGAAGAAGAAG -CAAAAGCTTGGATTGATGCAGTTGTAAATGATACTGAACCAGTTGTGAAACCGGAACAAGCAATGGTAGT -TACAAAAATTCTTGAAGCGATTTATCAGTCTGCAAAATCAGGCAAAGCAATTTACTTTGAATAACATCAT -ACGGTAAGGAGGCACATCATGACAAAATTAAAAGTTGGTGTGATAGGTGTTGGTGGTATTGCACAAGACC -GTCATATTCCAGCATTGCTGAAACTCAAAGACACAGTCTCATTAGTTGCAGTACAAGATATTAATACAGT -GCAGATGATTGATGTTGCGAAGCGCTTTAATATACCTCATGCAGTTGAGACACCTAGCGAGCTGTTTAAA -CTTGTTGATGCGGTGGTCATTTGTACACCTAATAAATTCCATGCTGATCTTTCTATAGAGGCATTGAACC -ATGGTGTCCATGTATTGTGTGAAAAGCCAATGGCGATGACGACGGAAGAGTGTGACCGCATGATTGAAGC -GGCTAATAAAAATTGCAAATTATTAACTGTCGCATATCATTATCGTCACACAGATGTGGCAATTACTGCT -AAAAAAGCAATTGAATCAGGTGTGGTTGGAAAACCTTTAGTAGCACGTGTACAAGCGATGCGTAGGCGTA -AAGTGCCTGGGTGGGGTGTTTTTACCAATAAGGCATTGCAAGGTGGCGGTAGTTTAATCGATTATGGTTG -CCACTTGTTAGACTTATCTTTGTGGCTACTAGGTAAAGATATGGTGCCGCATGAAGTGCTAGGAAAAACA -TATAATCAATTGAGCAAACAACCGAATCAAATTAATGATTGGGGAACATTTGATCACACTAAATTTGATG -TCGATGATCATGTTACTAGTTATATGACATTTGCCAATCGAGCAAGCATGCAGTTTGAATGTTCGTGGTC -TGCAAATATAAAGGAAGATAAGGTACACGTTAGTTTATCAGGCGAAGATGGCGGTATCAATTTATTTCCA -TTTGAAATATATGAGCCCCGCTTTGGAACTATTTTTGAAAGCAAAGCTAATGTTGAGCATAACGAAGACA -TTGCTGGTGAGAGACAGGCGCGTAACTTTGTCAATGCGTGTTTAGGGATAGAAGAGATTGTGGTAAAACC -GGAAGAAGCACGCAATGTAAATGCCCTTATAGAAGCGATTTATCGTAGCGATCTTGATAACAAGAGCATA -CAACTTTAATGATTATTATATATAATACAAAATTCTCAATATAAAAAGAAGGAGTGCTTTTCAATGAAAA -TAGGTGTATTTTCAGTATTATTTTACGATAAAAATTTCGAAGATATGTTAGATTATGTCGCAGAATCTGG -ATTGGATATGATTGAAGTTGGAACAGGTGGTAACCCAGGAGATAAATTTTGTAAGTTAGATGAGTTGTTA -GAAAATGAAGACAAGCGACAAGCATTTATGAAGTCAATCACAGACAGAGGCTTACAAATAAGTGGTTTCA -GTTGTCATAACAATCCAATTTCTCCAGATCCGACAGAAGCGAAAGAAGCGGATGAAACGTTACGTAAAAC -AATCCGTTTAGCAAATCTATTAGACGTGCCAGTTGTTAATACATTTTCTGGCATTGCAGGATCAGATGAT -ACCGCTAAAAAGCCTAATTGGCCTGTTACACCTTGGCCAACAGCCTACTCTGAAATTTATGATTATCAGT -GGAATGAAAAGTTGATACCATATTGGCAAGATTTAGCTGAGTTTGCAAAAGAGCAAGATGTAAAAATTGC -CATAGAGTTGCATGCAGGATTTTTAGTTCATACACCATATACGATGTTGAAGTTACGTGAGGCTACAAAT -GAATACATCGGTGCTAACTTAGATCCTAGTCATTTATGGTGGCAAGGTATCGACCCAATTGCTGCGATTC -GCATATTAGGCCAAGCAAATGCAATTCATCACTTCCATGCTAAAGATACGTATATTAATCAAGAAAATGT -AAATATGTATGGTCTAACTGATATGCAACTATATGGTAACGTTGCAACAAGAGCATGGACGTTCCGTACA -GTTGGTTATGGACATAGTCCATATGTATGGGCAGATATCATAAGCCAACTTATTATTAATGGATATGATT -ATGTATTAAGTATTGAACATGAAGATCCTATTATGTCAGTAGAAGAAGGTTTCCAAAAAGCTTGTCAAAC -TTTGAAATCTGTTAATATTTACGACAAGCCAGCAGACATGTGGTGGGCATAATACGAATTCGAGGTTAGT -CTGAAGTTTGTCTGAAGTAAGACTGGTGGCAGTGTTGAATAAATGCATATATCGCCAAGCCATTGCCAAA -AATTTCACACCTTAAATCAAGTTCATTGTTTGTAAAGAAGGTGTACTTTATATAAGTATATAGCGATGGT -CATACCCATTCACAATAACAATCCTCACTATTGAAAAGAGTAAATAAGCTTTTCAATAGTGAGGTATATG -ATAATAAAAAAGCCTGTTGTCACAATGGTCATAGACACGACATACTTTAAAGGTTTCTGAATATAATATT -TCAGAACGCACTTTAAAGATGGACGTCGATGGCGACTAATGTGATGACAGGCTTTCATTTTTAAATATTC -ATTAATTTCTCTTCTTGTTTAATACGTACATATAAGAAATACGCATACGGTACTAATAAAATAGTTGTAT -ATGTTGCGTGTGTTAATAATAATACACCGATTAATTCAGGAATGATGTTTAAGAAGTAATTTGGGTGTTT -TGTAATTTTATATAATCCAGATTTAATAATAGGATGGTTAGGTAAAATGAATAATTTTAATGTCCAAATA -CCACCTAAAGTTTTAATAACCATAAATAACATGATATAAGCAAAGATTAATATAACTAAGCCAATACCAT -TTGCAAAGCTAAATGTATCTTTATTAATAAATGCCTCTACACCAGCCAATACATAAATTAAAACGTGTGT -TATTGCTAAAAACTTCGAATTTTTAACGCCATATTCAACTGCACCGTCTGCTTTTAATTGTTTTGAGTGA -TTAATAGATATCTTTAAGCTGACAAGTCTGATACAGAAAAAGATAAGTAATATAGATAGAATCATGATGT -CCTCCGTCATTATGTCATATGTATAAGCGTTGATTTTGACAACATAAAGTATTTTATAGATAAAACTTGT -CAAATACTATTAACTATTTATTAATTTTAGTACATAAATATGTTTCTAAGTATGTGTTTATGTTCAGTAT -TTTGGATAATTTAATAATTTTAAGGATATTAAGCGCTTACACCGACGTGATATATTTGACTTAACGAAAA -TGATTGAGGTGACAGAGATGAACTTTTTTGATATCCATAAGATTCCGAACAAAGGCATTCCATTATCGGT -ACAACGTAAATTATGGCTTAGAAACTTCATGCAAGCTTTCTTCGTAGTGTTCTTTGTTTATATGGCTATG -TATTTAATTCGAAACAACTTTAAGGCGGCACAACCGTTTTTAAAAGAGGAAATTGGATTATCTACATTAG -AACTTGGTTATATCGGATTAGCATTTAGTATCACGTACGGTTTAGGGAAAACATTACTTGGATATTTTGT -CGATGGACGTAACACAAAACGTATTATCTCATTCTTACTTATCTTATCTGCGATTACAGTTTTAATTATG -GGATTTGTTTTAAGTTACTTTGGTTCAGTAATGGGATTATTAATTGTACTTTGGGGACTTAACGGGGTGT -TCCAATCAGTTGGTGGACCTGCAAGTTATTCAACGATTTCAAGATGGGCGCCAAGAACGAAACGTGGCCG -ATACTTAGGGTTTTGGAATACATCACATAATATCGGTGGTGCCATTGCAGGTGGTGTTGCACTTTGGGGT -GCTAATGTATTCTTCCATGGAAATGTTATAGGGATGTTCATTTTCCCATCGGTGATTGCATTACTTATTG -GTATCGCAACATTATTTATCGGAAAAGATGATCCAGAAGAATTAGGATGGAATCGTGCTGAAGAAATTTG -GGAAGAGCCGGTTGATAAAGAAAATATTGATTCTCAAGGTATGACAAAATGGGAGATCTTTAAAAAATAT -ATCCTGGGAAATCCTGTTATATGGATTCTATGTGTTTCAAACGTCTTTGTATACATTGTACGAATCGGTA -TTGATAACTGGGCACCGTTATATGTGTCAGAGCATTTACACTTTAGTAAAGGCGATGCAGTTAATACGAT -ATTCTACTTTGAAATTGGTGCTTTAGTTGCAAGTTTATTATGGGGCTACGTATCAGACTTATTAAAAGGT -CGTCGTGCAATTGTAGCTATTGGCTGTATGTTTATGATTACATTTGTTGTCTTATTCTACACAAATGCTA -CAAGTGTAATGATGGTTAACATTTCATTGTTTGCATTAGGTGCGTTAATCTTTGGTCCGCAATTATTAAT -TGGTGTATCATTGACTGGTTTTGTTCCTAAAAATGCCATCAGTGTAGCAAACGGAATGACAGGTTCATTC -GCGTATCTATTCGGTGACTCAATGGCAAAAGTTGGTTTGGCGGCTATTGCTGATCCAACACGTAACGGTT -TAAACATCTTTGGATATACATTAAGTGGATGGACAGATGTTTTCATCGTCTTCTATGTTGCATTATTCCT -AGGCATGATTCTATTAGGAATCGTTGCTTTCTATGAAGAAAAGAAAATTAGAAGTTTAAAAATCTAATAT -CAATCGGATTAAAAGTATCGCCAATTTATTGCAGTATAGTTGGCAATCCTGCCCCGACGGCATGTGCGTG -AAGAGATGAAAGATACTGCTTCTACCCTTGCAAATATATCATCTCTATGTCTCGGGGCAGATCATAATTC -CCTGTTATGAAGTATCCTTATTTGCCCGACTTAGGGTGACTCAATGAATTTACTCCCTACAATAAAGACA -TATAGCGGTGTCAATATTGTAGGGAGTATTGTTTTATATTTAGACTCTCTAAAAAGCGGATTGAAAGAAA -AGTGAAAACTTCTCTATCAGTCCGCTTTTTCATAGAACAAAATGGATGCGCCATAATCATTAGTTATTTG -CTAATCTATTTTGCTTGCTTACAATAATCACTTGGCGACATTTGTAAATATTTTTTAAAATGATAGCTAA -ACATTTTATACTCTGAAAAGCCTACTTTGTCTGCAATTTCATAGTGCTTATAATGTCGATCTAACAATTG -TAGAGATTGTAAAATACGATAGCGATTTAAATAATCGACAATTGTAATACCAACATGATCTTTAAATGTT -CGCATCGCATACGATTCACTAACATCGATATGTTGAATTAAATCTGAAACAGTCACTTTCGTTTGATAAG -ATTGCTTAATTTGATCAACAATCTGATTTACATAATAATCATCGTATTCTACTTTTAATAATGGTTGGAA -GGCATCATGACAAGGTGCTAAGCTACGGCCGTTCTGTGATTGTTGCTCTAATAAGGTACGGACAAGTCTT -CCTAAAATAACTTCTAATTGTGCATGGTCTACTGGTTTTAATAAATAATCAAGAACATGATGTTGAATGC -CGGCTTTCATATATTCAAAGTCATCGTAACTCGATAATATGATGACATTACAATCTAGATGCGCAATATC -ATTGAGTAAATCGACGCCATTTTTACGTGGCATACGAATATCAGTAATTACTAATTCTGGCTGATGTTGT -TGAATTAGTGATAATGCTTCAACACCATCTTTAGCAGTGTATATTGTATTGAAATGATAGTCTCCCCAAG -GAATGATTTGCTTTAAACCTTCTCGAATAATTCGCTCATCATCACAAATAACTACCTTAAACATCTACAT -TCCCCCTTGAAAGTGGTATTTTATAACAAATTAACGTACCTTGATTACGCTTTGAAAAAATATGGAGTCG -TGCATGTGAACCATATTGAATCATTGCTTTATTGTGTAAATGATTTAATCCCAAATGCTTAGTATCAAAT -ACATCATTATTAAGAGATTGGCGTACATATTGCAGGCGAGATGACGACATCCCAATACCATTGTCGCAAA -CTAAAACATGTAAATTCTGACGTGCCAATGTCAGGCGTATAGTAATGTCCAATGACTCAGTATCTCTACC -ATGTTTAATAGCATTTTCTATGAGTGGCTGAAGCATCATTTTACCAATTGTCTGGTGACGCGCTTCTTCA -GAACTTTCGATATGGAGCTTAATCATGTCATCAAAACGGATGTTTTGTATCGCAACATACTGTTCAATGT -AGTTCAACTCTTCGTTTAATTCCACTGTATGTGAGTTTGTACGTAATGAGTAACGTAACATTTGCGATAA -TTGTTGGACCACAGTTTGTGCTAATTTCGGAGATAACGTAATTAAATATTGTATTGTTTGCATCGTATTG -AATAGGAAATGAGGTTGGAATTGGCGTTCTATTTCCTTTAACTGAATATCACGCAAGCGACGTTCTGTAT -GCTCGATAGAATGGATCAGTTGCTCATTTGATTCAAATAAATCGTAAATATAATTATTAATTTCTTCTAG -TTCACTGTTGTTTTTTAAAGGCGTATATGTACCTAGATGACGATTTTTGGCATAGTAAATTTTTTGAATA -ATCGTTTCGATATCTTTTGTTTGTCGTTTAGCCATATTATCTGCACTAATGAAACCAAATATTACTAGTA -AAACAAGAACTACGGCCATAACAATTAACAACGTGATACCATCTTCAATGTTTTCATGTATATCTTTATA -AATAATGAGACGATGGTCAGCATGGTTTAATTTTACAGATTCATTCATAAATCCGAATTGTTGCGGTCTA -TACTTTTCACCTATAGTAAAACGGTCATCGTTGGCGTATAAAATATTGTCATATTGATCAACGATAAGTG -CGAATTGTCGGCTATCTTTCTTAATTTCACTTAAACGTGGGGTGTTAGCTATATAAATTTTAAGCATATA -TGTACTATTTTTGAATTTAAGCTGATGCGTTGAAAATAAATACATATTTTTAGTGTTTAAATGTTCATAA -TTATTGGTTATAAACTGATTTGGTCCAGATAATTCATAATAAAGTGTTGCGGGCTGTTGGTGTATTAATT -TTAATAATTCACGTTTTGTAGCGGTAACATCATGATGATTTGTTAAATCGAGCTCTTGAAACGAATTATT -ATGCTGTGTAATAAACGTCTGAATTTGCTTTTCAGTATGATGTAAAGATGACTGACTTTCATCAACATGT -TGATGAATCGTACGATGCTCAATCCAAATATAGATGGCATAGAAGCTTACTAGTCCAATAATAATCACTA -AAAATACTGGAAAAATAGTAGACGCAAATAACGATCGTCTCAATTGATGTCTATAAGGTTTGTATGCCGT -CATTGAATCATCTCCAAAAATTTATGATGCGGAATGTCCGGTAATTTAGATTTCGGTATTAAAGGTATGT -TCTTAAGATTTTCGATAGACTGATCGCTTTGTTCACTAACATCTTTTCGAATTGACTTGGCATCGAACTC -TGCAACTAATCGTTGTTGTACTGAGCGGCTTGTTAAATATTGCACTAACTTTTTACGCTTAGGATGAGGG -TGTGCATTTTTAACTAAAGCAATACCATCAACATTTAACATTGTTCCTTCAATTGGATAAACGATTGATA -CAGGATAACCTTTGTTTTTCCATGTGCGTGCATCTTGTTCGTAGCTTAGACCTGCATAATATTTACCTTT -TGCAACATCTTCAATGACTTTAGACGTCTTTGACAGTTGCATCGCGTGGTCTTGGAATTGATGCACATCA -CTTACTCGATGATGCATGCTATAAATAGCGCGCATATGTTGATAGCCTGTCGTTGTTGTATTTGGATTTG -AGTACGCAATTTTACCTTTAAGTATAGGTTGTAATAAATCTTGATAACCTTGAATCTTAATATCTCCTTG -TAAATCTGAATTAACTACTATAACTGTTGGCATTAATAGAAAGCTAGTAACATATTTATTGTTCGAGCGA -TAATCCTCTAATTGCTGTGTTACAGATGTATCTTGATAGGGAACAAAATCTTCTGGATGATCAATTGTTT -CTGACAACACACCACCCATAAAGACATCACCACGCTCCGAAAGATCTTCATTATGCAAGTTTGAAAGCAG -TACTTGAGTAGATCCGTGTTTAATTTCAATTTTGACATGCTCTTGTTTTTCAAAATCATTTAAAATTGGA -CGAATCAAGTTTGATTGATACGGAGAATAAACTGTTAATACATTTTTATCTGATTCAGAGTGACGCGTAT -TAGTGCATGCTGATAAAAAAATGAGAAATAATAGCAAGATATAAATTTTTGATTTCATGATATCCCATCA -ATTCTATGTATATTTTAATACAATAATTTTAGCAATAAATGACGCATAAGTAATGTTAAATATTTAGAAA -TGTTTATAGATGACTTGTTAAGACGTTGCAAATGTTGTGATAGCACATAATTTTTGTTTGTCAAGACGAC -TTACCGAAGCTGTAAAGTCAAACTGTTATATTTTATTTGAAGCTGTTATATAAAAATTGGCAAGATATTG -AACGGTTCAAAAGTAAATTTTTACGTCAATAAAAGTATTTAATCCTGTCTCTTCATATATAAAAGTAAAT -CTTTCTAAGTATTGATTTAACGCTTATTAACAATCATTTTTTATAAACAAATATATACTCCTAAATTAAC -TTTTAAAGTAATGAAAATAGTGAACATTATAACTGTTGTGTAACAGAATGCAATTAGCATATTACTGTTA -CACAAATTAGTACAGTTTCTATGTTTTGACATACATTTGATGAAAATTGTACATAATTTATGTGAAAAAA -ATCACAACAAACATGCTACAATGACTATGAAAACGTTAACATAGCATTTCAAATTCACAACATTATACAG -ATGGAGGCGTTTAGTATGTTAGAAACAAATAAAAATCATGCAACAGCTTGGCAAGGATTTAAAAATGGAA -GATGGAACAGACACGTAGATGTAAGAGAGTTTATCCAATTAAACTACACTCTTTATGAAGGTAATGATTC -ATTTTTAGCAGGACCAACAGAAGCAACTTCTAAACTTTGGGAACAAGTAATGCAGTTATCGAAAGAAGAA -CGTGAACGTGGCGGCATGTGGGATATGGACACGAAAGTAGCTTCAACAATCACATCTCATGATGCTGGTT -ATTTAGACAAAGATTTAGAAACAATTGTAGGTGTACAAACTGAAAAGCCATTCAAACGTTCAATGCAACC -ATTCGGTGGTATTCGTATGGCGAAAGCAGCTTGTGAAGCTTACGGTTACGAATTAGACGAAGAAACTGAA -AAAATCTTTACAGATTATCGTAAAACACATAACCAAGGTGTATTCGATGCATATTCTAGAGAAATGTTGA -ACTGCCGTAAAGCAGGTGTAATCACTGGTTTACCTGATGCATACGGGCGTGGACGTATTATCGGTGACTA -TCGTCGTGTAGCTTTATATGGTGTAGATTTCTTAATGGAAGAAAAAATGCACGACTTCAACACGATGTCT -ACAGAAATGTCAGAAGATGTAATTCGTTTACGTGAAGAATTATCAGAACAATATCGTGCATTAAAAGAAT -TAAAAGAACTTGGACAAAAATATGGTTTCGATTTAAGCCGTCCAGCAGAAAACTTCAAAGAAGCAGTTCA -ATGGTTATACTTAGCATACCTTGCTGCAATTAAAGAACAAAACGGTGCAGCAATGAGTTTAGGTCGTACA -TCAACATTCTTAGATATCTATGCTGAACGTGACCTTAAAGCAGGTGTTATTACTGAAAGCGAAGTTCAAG -AAATTATTGACCACTTCATCATGAAATTACGTATTGTTAAATTTGCTCGTACACCTGATTACAATGAATT -ATTCTCTGGAGACCCAACTTGGGTAACTGAATCTATCGGTGGTGTAGGTATTGACGGACGTCCACTTGTT -ACGAAAAACTCATTCCGTTTCTTACACTCATTAGATAACTTAGGTCCAGCACCAGAACCAAACTTAACAG -TATTATGGTCAGTACGTTTACCAGACAACTTCAAAACATACTGTGCAAAAATGAGTATTAAAACAAGTTC -TATCCAATATGAAAATGATGACATTATGCGTGAAAGCTATGGCGATGACTATGGTATCGCATGTTGTGTA -TCAGCGATGACAATTGGTAAACAAATGCAATTCTTCGGTGCACGTGCGAACTTAGCTAAAACATTACTTT -ACGCTATCAATGGTGGTAAAGATGAAAAATCTGGTGCACAAGTTGGTCCAAACTTCGAAGGTATTAACAG -CGAAGTATTAGAATATGACGAAGTATTCAAGAAATTTGATCAAATGATGGATTGGCTAGCAGGTGTTTAC -ATTAACTCATTAAATGTTATTCACTACATGCACGATAAATACAGCTATGAACGTATTGAAATGGCATTAC -ATGATACAGAAATTGTACGTACAATGGCAACAGGTATCGCTGGTTTATCAGTAGCAGCTGACTCATTATC -TGCAATTAAATATGCACAAGTTAAACCAATTCGTAACGAAGAAGGTCTTGTAGTAGACTTTGAAATCGAA -GGCGACTTCCCTAAATACGGTAACAATGACGACCGTGTAGATGATATCGCAGTTGATTTAGTAGAACGCT -TTATGACTAAATTACGTAGTCATAAAACATATCGTGATTCAGAACATACAATGAGTGTATTAACAATTAC -TTCAAACGTTGTATACGGTAAGAAAACTGGTAACACACCAGACGGACGTAAAGCTGGCGAACCATTTGCA -CCAGGTGCAAACCCAATGCATGGCCGTGACCAAAAAGGTGCATTATCTTCATTAAGTTCTGTAGCTAAGA -TTCCTTACGATTGCTGTAAAGATGGTATTTCAAATACATTCAGTATCGTACCAAAATCATTAGGTAAAGA -ACCAGAAGATCAAAACCGTAACTTAACTAGTATGTTAGATGGTTACGCAATGCAATGTGGTCACCACTTA -AATATTAACGTATTTAACCGTGAAACATTAATAGATGCAATGGAACATCCAGAAGAATATCCACAGTTAA -CAATCCGTGTATCTGGTTACGCTGTTAACTTCATTAAATTAACACGTGAACAACAATTAGATGTAATTTC -TCGTACATTCCATGAAAGTATGTAACAAAATTTAAGGTGGGAGCACTATGCTTAAGGGACACTTACATTC -TGTCGAAAGTTTAGGTACTGTCGATGGACCGGGATTAAGATATATATTATTCACACAAGGATGCTTACTT -AGATGCTTGTATTGCCACAATCCAGATACTTGGAAAATTAGTGAGCCATCAAGAGAAGTCACAGTTGATG -AAATGGTGAATGAAATATTACCATACAAACCATACTTTGATGCATCGGGTGGCGGTGTAACAGTCAGTGG -TGGCGAACCATTGTTACAAATGCCATTCTTAGAAAAATTATTTGCAGAATTAAAAGAAAATGGTGTGCAC -ACTTGCTTAGACACATCGGCTGGATGTGCTAATGATACAAAAGCATTTCAAAGGCATTTTGAAGAATTAC -AAAAACATACAGACTTGATATTATTAGATATAAAACATATTGATAATGACAAACATATTAGATTGACAGG -AAAGCCTAATACACACATCCTTAACTTCGCGCGCAAACTGTCAGATATGAAACAACCTGTATGGATTCGC -CATGTCCTTGTGCCTGGTTATTCTGATGATAAAGACGATTTAATTAAACTAGGGGAATTTATTAATTCTC -TTGATAACGTCGAAAAGTTTGAAATTCTGCCATATCATCAGTTAGGTGTTCATAAGTGGAAAACATTGGG -CATTGCATATGAATTAGAAGATGTCGAAGCGCCCGATGATGAAGCTGTTAAAGCAGCCTACCGTTATGTT -AACTTCAAAGGGAAAATTCCCGTTGAATTATAAATACAATTCAGACCGAAAAGAAAGCATATGCAACTTC -AAGAGTGAAGGGGCATATGCTTCTTTTTCAATTGAGTATTGATTATTAACAAGACGTAGTAAATATATGA -GACAAGTCCAACAATGGTTGAAGGAAGACGCATTTGTAAGTAGCTATGCTGATAAAGAATGTGATGCCTT -GTTAAAGATGGGGTTCCAATATCATCGAATGGGTTATTATTTGCTACTTGCATACGAATATGAGTCTTTT -CAAATTTTTATTGACCCTGAGTAATGAAAAATATTAAGATGAAACTTAATATTAAAGCAATGCGGAGCGT -GATTATGAAGAGAATTAGTAAAGATATATGGGCAGTATTTAAATTACTGTATCAAAATAAAGGGCGTTTT -AGCATTAATGCCTTACTATTGCAGTTAATCATGATTTTTATTAGTAGTACATACTTAATTTTACTATTTA -ATATGATGTTAAAAGTAGCTGGGCAAAGCCAACTTACGATTAACAATTGGATGGAAATCGTAAGTCACCC -TGCCAGTGTGATACTTCTTATTATATTCATATTAAGTGTTGCCTTTCTGATTTATGTAGAGTTTTCATTG -TTAGTTTATATGGTTTATGCCGGCTTTGATCGACAGATTATTACATTTAAATCCATTTTTAAAAATGCCT -TTGTCAATGTGCGTAAACTCATAGGTGTACCAGTTATTTTCTTTGTCATTTATTTAATGTTAATGATACC -CATTGCCAACCTAGGACTAAGTTCAGTATTAACAAAAAATATTTACATACCTAAATTTTTAACGGAAGAA -CTTATGAAAACGACGAAAGGTATAATCATTTACGGTACCTTTATGATTGCTGTATTTATATTAAATTTTA -AATTAATATTTACCTTACCGTTAACGATTTTAAACCGCCAATCGTTATTTAAAAATATGAGACTAAGTTG -GCAAATTACGAAGCGAAATAAGTTTCGACTTGTTATAGAAATAGTTATATTGGAACTCATCATTGGTGCG -ATTTTAACATTAATTATTTCAGGAGCAACATATCTTGCTATTTGTGTAGATGAAGAAGGAGATAAGTTTT -TAGTCTCATCAATTTTATTTGTTGTATTGAAAAGCTCATTGTTCTTCTATTATTTATTTACGAAATTATC -ATTAATCAGTGTGTTAGTACTGCACTTAAAACAAGAGAATGTATTAGACCAGCCGGGCTTAGAATTTAAA -TACCCAAAACCGAAACGGAAGTCTAGGTTCTTTATAATTTCAATGGTGCTTGCAGTGACGTGTTTTATCG -GTTATAACATGTACTTACTTTACAATAATACTATCAATACAAATATCTCCATTATTGGCCATCGTGGTTT -CGAAGATAAAGGCGTTGAAAATTCTATTCCGTCATTGAAAGCTGCTGCAAAAGCGAATGTCGAATACGTT -GAGTTAGATACAATTATGACGAAAGATAAACAATTTGTTGTTAGTCATGATAACAATTTGAAACGTTTAA -CAGGTGTTAATAAAAATATTTCTGAATCTAATTTCAAAGATGTCGTCGGTTTGAAAATGCGTCAAAATGG -ACATGAAGCAAAACTTGTATCCTTAGACGAATTTATTGAAACGGCTAAACAATCAAATGTGAAACTACTA -GTTGAGTTAAAGCCACATGGTAAAGAACCAGCAGATTATACACAACGTGTTATTGATATTTTGAAAAAGC -ATGGTGTTGAACATCAATATCGTGTGATGTCATTGGATTATGATGTGATGACTAAGTTGAAAAAAGAAGC -GCCATATCTCAAGTGTGGTTATATCATTCCGTTGCAGTTTGGTCATTTTAAAGAAACATCTTTAGATTTC -TTTGTCATCGAAGATTTTTCTTATTCGCCAAGACTTGTTAATCAAGCACACTCGGAAAATAAAGAAGTCT -ATACTTGGACCATTAACGGCGAAGAAGATTTAACGAAATACTTACAAACCAATGTTGATGGTATTATCAC -AGATGACCCAGCATTAGCTGATCAGATTAAAGAAGAAAAGAAAGACGAAACATACTTCGATCGTTCTATA -AGAATATTATTTGAGTAATATAAACAAAGACCTCTAAAGTTATCAAGATGATATCTTCAGAGGTCTTTTT -AACGTTGCCATCTATGGTATAGGCAATCGTTTCATTCGTTTATAATCATATGACAAGGATTTATAAGGAA -ATTTGGCGTCACAAACACTTACATGATTTATTGGTGAATTATTAATTGTTTTGTGAATGCAAAGGGTTAG -AAATTGAATCGTAAATACTTTCTAATCTATGTTTCGCTTTAGTCATTTGATCCAAATTTTTAGTGCGTAT -AGCTGATTTAGCAATATAGTGTGCAGCTAAAATATCGCGTTTTTGATACGCATCTAAATTTAGGTGCGAT -AATTTATTTAAGTCAGTGTTTGCTATTAATTCATGTAATTGATCTACAAGCGCTTGATGTTGATACGTAT -GTGATGTAGTTTCAGATTTGCTTGCTAATTTAATACCAGTCGTATCAAGGAGCGCCGCTTTAATACCAGC -AACTAAATATGTTTTGATTTTCATTTGTGTTGTCATGCTTTGTTACTCCTTTGATGTACATTAATCAAAA -AAATTATACACTATTGTATATTGCAAAGCTAATTAACTATAACAAAAAGATAGTTAATGCTTTGTTTATT -CTAGTTAATATATAGTTAATGTCTTTTAATATTTTGTTTCTTTAATGTAGATTGGGCAATTACATTTTGG -AGGAATTAAAAAATTATGAAAAAGCAAATAATTTCGCTAGGCGCATTAGCAGTTGCATCTAGCTTATTTA -CATGGGATAACAAAGCAGATGCGATAGTAACTAAAGATTATAGTAAAGAATCAAGAGTGAATGAGAACAG -TAAATACGATACACCAATTCCAGATTGGTATCTAGGTAGTATTTTAAACAGATTAGGGGATCAAATATAC -TACGCTAAGGAATTAACTAATAAATACGAATATGGTGAGAAAGAGTATAAGCAAGCGATAGATAAATTGA -TGACTAGAGTTTTGGGAGAAGATCATTATCTATTAGAAAAAAAGAAAGCACAATATGAAGCATACAAAAA -ATGGTTTGAAAAACATAAAAGTGAAAATCCACATTCTAGTTTAAAAAAGATTAAATTTGACGATTTTGAT -TTATATAGATTAACGAAGAAAGAATACAATGAGTTACATCAATCATTAAAAGAAGCTGTTGATGAGTTTA -ATAGTGAAGTGAAAAATATTCAATCTAAACAAAAGGATTTATTACCTTATGATGAAGCAACTGAAAATCG -AGTAACAAATGGAATATATGATTTTGTTTGCGAGATTGACACATTATACGCAGCATATTTTAATCATAGC -CAATATGGTCATAATGCTAAAGAATTAAGAGCAAAGCTAGATATAATTCTTGGTGATGCTAAAGATCCTG -TTAGAATTACGAATGAAAGAATAAGAAAAGAAATGATGGATGATTTAAATTCTATTATTGATGATTTCTT -TATGGATACAAACATGAATAGACCATTAAACATAACTAAATTTAATCCGAATATTCATGACTATACTAAT -AAGCCTGAAAATAGAGATAACTTCGATAAATTAGTCAAAGAAACAAGAGAAGCAATCGCAAACGCTGACG -AATCTTGGAAAACAAGAACCGTCAAAAATTACGGTGAATCTGAAACAAAATCTCCTGTTGTAAAAGAAGA -GAAGAAAGTTGAAGAACCTCAATTACCTAAAGTTGGAAACCAGCAAGAGGATAAAATTACAGTTGGTACA -ACTGAAGAAGCACCATTACCAATTGCGCAACCACTAGTTAAAATTCCACAGGGCACAATTCAAGGTGAAA -TTGTAAAAGGTCCGGAATATCTAACGATGGAAAATAAAACGTTACAAGGTGAAATCGTTCAAGGTCCAGA -TTTCCCAACAATGGAACAAAACAGACCATCTTTAAGCGATAATTATACTCAACCGACGACACCGAACCCT -ATTTTAAAAGGTATTGAAGGAAACTCAACTAAACTTGAAATAAAACCACAAGGTACTGAATCAACGTTAA -AAGGTACTCAAGGAGAATCAAGTGATATTGAAGTTAAACCTCAAGCAACTGAAACAACAGAAGCATCACA -TTATCCAGCGAGACCTCAATTTAACAAAACACCTAAGTATGTGAAATATAGAGATGCTGGTACAGGTATC -CGTGAATACAACGATGGAACATTTGGATATGAAGCGAGACCAAGATTCAACAAGCCAAGCGAAACAAATG -CATACAACGTAACGACAAATCAAGATGGCACAGTATCATATGGCGCTCGCCCGACACAAAACAAGCCAAG -CGAAACAAACGCATATAACGTAACAACACATGCAAACGGCCAAGTATCATACGGAGCTCGTCCGACACAA -AACAAGCCAAGCGAAACGAACGCATATAACGTAACAACACATGCAAACGGTCAAGTGTCATACGGAGCTC -GCCCAACACAAAACAAGCCAAGTAAAACAAATGCATACAATGTAACAACACATGCAGATGGTACTGCGAC -ATATGGTCCTAGAGTAACAAAATAAGTTTATAACTCTATCCATAGACATACAGTCAATACAAAACATTAT -GTATCTTTACAACAGTAATCATGCATTCTATGATGCTTCTAACTGAATTAAAGCATCGAACAATCGGAAG -CATATTTCTAAATTATTTATTCATTATAGTCTTAAACATAACATGACCTAATATATTACTAACCTATTAA -AATAAACCACGCACATCTATGTGACATACGACAATCACAGCAATAATAATTGCTTTAGAAAGTCGTACCG -AACTGGAACTTACAAGTCTAGTTCGAACACACACTGATGTGAGTGGTTTTCTTTATTTTAAACATGAACA -ATCAGATAAGTTACTAGTAGTAGCAAATATTATTAAATCAAAGGGCTTCGATTCATAAAATTTAAAACAA -TGATTAAAATTAGACGTGTAAATGTTAAATTCTAAAACGGAAATACCCGCTATCCTATTAAACCACTTTT -TGGTTCAATCACTATATTTCACACAGTTTCAATAATAAAACGAATCTGCTTCAATCCGCTTCAACTTCAG -CCTACTTCATTCAATAACAAAACGAATCCGCTTCATTCAAAATCAACCATTCTAACGCACATACTCAAAT -ATAGCAGCTGCACCCATACCGACACCAATACACATCGTAACCATGCCGTAACGACTATCGGGACGTCTAC -CCATTTCATTAAGTAAACGCGCGGTTAACATTGCGCCTGTAGCACCTAATGGATGACCTAAAGCAATAGC -GCCACCATTCACATTCGTACGTGATATATCTAGACCTACTTCTTTAATAGATGCAATAGTTTGAGAAGCA -AATGCTTCGTTCAATTCGATTAAATCAATGTCTTCAACAGATAGATTGCTGAGTGACAATACTTCAGGAA -TCGCATATGCAGGCCCAATACCCATAATTTTCGGGTCAACGCCTACTGCCTTATAACCAACGAATCGTGC -AATAGGTGTCACGCCTAGTTCTTTCACTTTATCTCCAGACATTAAAACTACAAATCCTGCACCATCAGAA -AGTGGGGCAGATGTTCCCGCAGTCACAGTGCCGTCAGCTTTAAATACTGTACGTAATTTGGCTAATGCCT -CCATCGTGGTGTCAGGTCGTATAAATTCATCTTGGTCAAAGATATTTGTGTGTACTTTTGGTCCTACGTT -TGTATATTCAACTGAGTTTACTTGTATTGGAATAATTTCATCTTTGAACCGACCATCACGTTGTGCGTCA -TAGGCACGCTGATGACTTCTGACAGCATAAGCATCTTGATCTTCGCGTGATACGTCAAATTGGGATGCTA -CATTTTCAGCAGTTAAACCCATAGGATATGACGCACCTATATCATCATATTGTAAGGTAGGATTGTTTGT -GGGCTCGTTGCCACCCATTGGTACGGCACTCATCAATTCAACGCCACCAGCTACAAGTATATCTCCTTGA -CCCGCCATAATTTGATTGGCTGCAATCGCGATGGTTTGTAATCCTGATGAGCAGTAGCGATTCACTGTTT -GACCCGGTACAGTGTCAGATAATCCCGTACGCAATGCAATCGTTCGTGCAATGTTTTGTCCTTGTAATCC -TTCTGGAAAAGCCGTACCAACAATGACATCTTCAATCATATTCTTATTGAATTTTCCGTCAATACGTTTC -AATACGCCTTGTAATACTTTGGCTGCGACATCATCAGGTCTTTCGTGGAATAATGCGCCTTGCTTTGCTT -TCGCTGCGGCTGAACGCCCATAAGCTACAATGTATGCTTCTTGCATGGTTATCATCCTCTCTTAATGACT -ATCTTTTAATTACGTAATGGCTTACCAGTTTTTAACATATGCGCAATTCTTTCATATGATTTTTTAGATT -TTAGTAAGTCAATAAAGCCAATTTTCTCCAACGATTGAATGTAACGTTGATTGATAAATGTATTTCTTGG -TAAATCACCACCCGATAAAATTGTGGCGATATTTAAGGCGATATGATAATCATGGTCGCTAATAAAATGA -CCGTGTCTTTGCGCATCTAATTGTCCTTGGATCAATGCTTTGAAGTCTTCGCCTAAAGCGATATATTGAT -GTCTAGGATTCGGAATATAGTTTGTTTCTGCTTCATATTTCGCACGTTTGAGCGCAACTTCGACACGTTG -TGCTGTATTGAAAATAATCGTATCTGTATCACGTAAATAACCATAACGACGTGCCTCAAAGGCATTTGTA -GAGACTTTCGCAAATGCGATATTCGTCAGTACTTTTGTCATGGAAGCTTGTTTGTCATCAAACTTATGCG -ATGTGCGTAATATGCGATCAGCCATTTCTGCAAGGCCACCTCCACTCGGTAATAAGCCAACACCTGCTTC -AACAAGACCGATATAAGTTTCACTTGCAGCGACAACAATAGGTGAGTAAAGTACAAGCTCACAACCACCG -CCTAAGGCACGACCTTGAACAGCTGTGACTACTGGTTTCAAACTATACTTCAAACGATTAAAGCTATAAT -GTAATTTATCAATTGATTGTGCAACGACATCATCTACAAGACCGTCTTCATGCGCCTTTTTCATTAAGAA -AAGGTTAGCGCCCACACTGAAATTATTACCATCTGCATAAATAACCATACTTGTGTAATGTTCATTTTCC -AGTAAATCAATCGCATCAACTAACGCATCGTTGAATTCATCGGTAATGACATTATTTTTACTTTGTAATT -TCAGTAACAGTTGATCATTATGAGTTACGGAAAGTTTGGCATCACCTTTATCCCAAAGTTCATCTTTTAC -GAAGTGAGAAACAGGCGTTGCATATTCAATGGTCTCATCTTGTTTATAAAAGCCACCGTCTAAATCACTA -ATCCATTGTGGTAAGTCTCCAAGTTCGTCTTCCATACGTGTTTTAACACGTTCATATCCCATTGCATCCC -ATAATTGGAATGGACCAAGTTTCCAGTTGAACCCCCAGACAAGCGCACGGTCTATGTCTCGGAAATCATC -GGTAGCTTTAGGTACATTGATAGCAGAGTAATAGAAATTATTACGTAATGTCTCCCATAAAAATAGTCCC -GCTTCGTCTTGCGCATTGAATATGACATCAAGGTTATGCACTAAGTCTTTATTAAATTCATTTAAAATTG -GTAATTGTGGTTGCGATACAGGTACATAATCTTGTTTTTCAACATCGTAAACAAGTCGAGCTTTAGTTTC -TTTATCCTTTTTGTAAAATCCTTGTTTTGTTTTACGTCCGAGTGCGCCATTTTCATACAACGTATTTACA -ATTTTGACATCATGAAAATAAGGTGTTTCTTCAGGTACTTGTTGCATGCCTTTAATTACAGACACTGCAA -TATCTAAACCGACTAGGTCAGATAGGGCATATGTACCTGTTTTAGGACGACCAATCGCTTGCCCAGTTAA -AGCATCCACATCTACAATGCTTAACTTGTGTTGCTCGGCGCGATACATAATATCATTCATTGTTTGCGTG -CCGACTCTATTTGCGACAAAGCCAGGCACATCATTGACAACAATGACACCTTTACCTAACACATTTTGCG -CGAAATTTTTTACATCTAATATAATAGATTCCTTCGTGTGTGACGTAGGTATTAACTCCACTAATTTCAT -AATACGTGGTGGGTTAAAGAAATGTAGACCAAAGAATCGTTCTTGATCCTTCTCGTTAAATGCTTGAGCA -ATCGCATTAATTGGAATACCTGATGTATTTGTAGCGAATAAAGCATCTTCTTTAGCATGTTGTAGAACTA -GTTGCCAAACAGCATGCTTAATTTCAATATCTTCTTTGACTGCTTCGATATATAAATCAGCATCATCATT -TACCAAGTCATCATCAAAATTACCATATGTTAAATGACTCGCTAGATTTAAGTCGAATAGTAGCGGTCGT -TTCTTATCTGTAATTTTATCGTAAGATTTTTTCGCAATGAGATTTGGATCGTTTTTGTCCACTACAATAT -CTAATAGTTTTACTTTAAGTCCAGCATTCACAAAGAGTGCTGCCAGTTGAGCGCCCATTGTGCCTGCGCC -AAGAACGGTTACTTTATTAATTGTCATAGTGATTCCTCCAATTTAGTTGAGGATAAGATAACCATTAAGA -TAATTGGAATAACGTTGCTATTTTATAAAATTAATTAAGTATCTTTGACAGTCATCTTAGCCTCTTATTT -AAGGAAAAAGCTTTATGCTTAAAATAAGTCTTTTTTTAGTGAAATTACTGCATCACATATAATTCTTTGC -TATTTATACGAAAGCAGAATCTCCAGTCAAAGCGCGTCCAATTACTAAGGCATTAATTTCATGTGTGCCT -TCGTATGTGTAAATCGCTTCTGCATCAGAGAAGAAACGTGCAATATCATAATCGTCAGCTAGTATGCCAT -TACCACCTGTAATACCACGGCCCATAGCTACTGTTTCACGCAAACGTAAGGCATTCATCATCTTCGCGGT -TGAAGTTGCAACCTCATCATATTCACCATGTGCTTGCATATTAGCTAATTGAGCACATGTTGCCATTGCT -TGAGCTAAATTACCTTGCATCATTGCTAGCTTTTCTTGTATTAACTGATATTTACTAATTGGTTTGCCGA -ATTGCTTACGCTCAGTGACATAATCTAATGTGGCACGTAAAGCGCCAGCCATACCACCTGTAGCCATATA -AGCAACGCCTGCTCTTGTTGAATAAAGAATTTTGGCAATATCTTTAAAGCTTGTTATGTTTTGTAAGCGA -TCCGCTTCATCTACTTTGACATTAGTTAATTTAATTAGGGCGTTAGGAACAATGCGAAGTGCGATTTTAT -TATCAATGACTTCAATATCGACGCCATCTTGTTCTGGTCTGACTACAAAGCAATGGGGTTTGCCAGTTTC -TTTATTTACTGCGAATACTGGAATGACATCAGATACATGTGCACCACCAATCCATTTCTTTTCACCATTG -ATAACCCAAGTATCGCCCTGGCGTTCAGCGACTGTTTCAAGACCTCCCGCAACGTCCGAACCGTGTTCTG -GTTCAGTTAAAGCAAAGCATGTACGCAGTTCATGTGACTGTAATTTAGGTACATATTTCGCAATTTGTTC -TTTGCTACCTCCGAAATAGAAAGTGTTATGCCCTAAACCTTGGTGAACACCGAGTAGGGTAGCTAAGGAA -ATATCAAATCGCGCGAGTAGGTAAGACATGAAAAACTGAAATAGTTGACTAGGCATTTTGGCGTTTGGAC -GATCCTTGTATAGTAATGGATTGTTAAAATAATTTAATTCTCCCAGATCTTTAAAATAGTCCTCGGGTAC -AGTAGCGTCTATCCAATGTTGATTAATATTTTCACGGTACTTACTTTCTAGCAATGAATCTACTTGTTGT -AAAAATTCGACTTCACCGTCTGTTAAACCTTTAGCAATACTAAGTACATCTTCAGGAAATAATGTTTTTA -AGACTGTTTCTTTTTCAAATGTCATATAAATTCCTCCTAAAAATAATATGAATACTAATGTGAAATGCAT -TTAATTCAAAACAACACGCTTTATTTGTAAACGCTTACACTAAATGCTAAAAATTTTTTATCACCTTTAA -AGTGTTTGTGAGACTTTGTCATTCATCATTTGTCGAATCGCAAGTTTATCTGGTTTCTGCGTACTGTTTA -ACGGCATATGTGTCACTGGTACATACATTCTTGGAACTTTATAACCTGCTAAACGACTTCGCATATGTTG -ATCTAAAATTTCAGCGTAATGAGGTTCATCTTCACGAAGTATAATGGCTGCAGCAATTGACTCACCATAT -TTTGGATGATCATAGCCAACGACCACACACCGGTCTACTAGTGGATGCTCCGCTAAAGCATTTTCGACTT -CGGATGGTAAGACATTTTCGCCACCAGTTATGATTAATTCTTTTTTGCGGTCAATAATAAATATATCGCC -ATCGTCGTCCATCTTCGCTAAATCTCCTGTCAATAAGTAACGACCATGAAACGCTTTAGCAGTCTCTGCT -GGTTTATTCCAATATCCTGGCGTGACATTTTTAGCCTTAATTGCAAGTTCGCCAATCTCACCAGTAGGTA -CTTCTTCACCGTTATCATCAAGGATACGTGCATCAACAAACATGACTGCTTTACCAATACTCATTGGTTT -ACGTTTTGAATTTTCCGGTGTATTAACAAGTACAAGCGGTGCTTCAGTTAAGCCATAGCCATTAATAATG -TTTATGCCATATTGCTTAAAAGCTGCTTGGATACTTGGTAATGGTTGTGAACCACCTTGGATGATATAAT -CCATAGCTTTAAAATTTTCAGGATTAAAATTACTAGCACGTAGCGTACTATAATACATTGTCGGAATCAT -GATAATAAATGTAGGGTGATATTGTGCAATCATGTCATTCAATTCTTCGCCGTTAAAGTAACGTTGAAGA -ATAAGTGTTCCACCTGACATTAATACTGGTAATACAGTATCGTTAAACCCTAAAACATGGAACATTGGTG -TTGATACAATCGTAATATAGTTTGAATTGAACTTGTACGTTAGCTCTAAGTTTGCGCCGTTATGAACAAA -TGATTCATATGAGAACATCACACCTTTAGGTGATCCGGTTGTACCACTTGTATAAATTAATGCTGCAAGA -TCTTGTGGTTCAACAGGTGTTGCTTGAAAAGGTTGGTGATAATCTGGATTTACGATTTCATCATATTGCG -CTACATCAATATCCATATGCAATAAGTTTTGGTCAATATCGGTGAGTGAACTTAAATGTTTTTCAGCATA -GAAGAGCAGTTTTAATTGTGCATCTTCCACAATGGCTGCAATTTCTTTTGGGTTAAGCCGCCAATTCAAT -GGTAAAAAAACCGCACCTGTTTTAAAACAAGCAAATAATAAATCTAATATTGCAATATCATTTGGCGCAA -AAATACCGATAACATCGCCTTTTTTAACACCTTGAGATGTTAAATAATGTGCCATATTATCAGCGCGTGC -ATTGAGTTGTTGGTATGTCCAAGATGTTTGTTTTGCGTGATCAATAACGGCAGGCTTGTCATCATCGAAG -TCTGAGCGCGTTTTTATCCAATCGAAATTCATTAGTATACCCCCTTTAGCTTCACTTTCATACTTTATGA -ATTGATTGTTTAAGTTCTCCCCATTTTTCTTTGTAAATGCTGGTATCAATTAATTTTAAATGATCAGCAA -TAATTGGTTTAAAAGCCATTTGATTCAAAATATCTTTATGCAAATCAAGACCTGGTGCAATTTCAATTAG -TTTCAAGCCTTGATTGGTGAGCTCGAATACTGCACGATCAGTAACAAAATAGACTTCTTGCTCGAGTGAT -TGTGAATATTGTGCATTAAAGTCGATATGGCTCACATCTGATACAAATTTCTGGTTTTGTCCTTCAGTTT -CAATGTTTAATCGTTGATTATGACATGAGACATGACTGCCAGCTACAAAAGTACCTGAAAAGATAATTTT -ATTTACAGATTGTGTAATGTCTATAAAGCCGCCACATCCATTTAGTCGGTCATTGAAGTAAGACACGTTG -ACATTGCCGTATTGATCAACCTCAGCAAAGCTAAGATAGGCAACTGATACACCATTGTTATAAATAAAAT -CCCATGCTCGATCATGAGGCATGCGCACATCTGCATTGTAATTCATACCAAAATGTTCACGACTCCCAAC -GAATCCACCGAAAATGCCAACATCTAGAATCGGTTGCACATCATGTTCAACACATTCTTCATGCAATAAA -TTAGAGAGTTCATTATTGATGCCATAACCGATGCTAATTGTATCGCCATAAGTTAAAAACTGAGCAGCAC -GTCGGAGAATCAACTTGCGACTATTAAAAGGTAATGCGGGTTCAGGTATTCCATCAATCCGTTCTTCTCC -AGACAAGGCTGGTAAATAATGACTCTGAATTACTTGGCGGTGATTCTTTTCATCTTCTGTGACGTATACA -TAATCGACAAGATTTCCTGGGATAACAACTTCATTCGGCTTTAGTTGATAGTCGTCAACTAAATCTTTAA -CTTGTACAATAACTTTCCCATGATTGGCTTTCGCGTTTAATGCGACATGATAACACTCGCTCAAGTAAGA -TTCTTGAGTTAAATAAATGTTACCTTGTTGATCTGCGTATGTTCCTCTCAGTAGTGCCACATCAACGCTA -GGGAATGTGTAGTGTAAGTATGTTTCATCGTCGATAGTTACTAATGAAACTAAATCATCAGTTGTTCGTG -TATTTACTTTACCGCCACCGTATCTAGGATCAACAGCTGTGTTTAATCCGATTTTAGTAATAACTCCCGG -TAATAATTGATTACTCTGACGATAATGAGTTGCAATGATACCTTGTGGCAAAAAATAAGCTTCAATGTCA -TTATTTTTCATTGCTTGTGCCGTTTTGGAAGAAGCCGTTAAAATGCTCATAATGACACGTTTAATCATGC -GACGTTCTATAAAATCATCTAAATCCGGTGCGACACCTAAACTATGGATATCATTCGCTAATATAAATGT -TAAATCATTGGGCGTATGATATGTGTCATGTTGCGCTAACACAGCACGTAGAACTTCGGCGGGTAAGTTG -GCTACAGCTAATGCTGGTAAACCAATCACATCATCATCTTTAATGATATGTTGTAAGTCGTGCCATGTGA -TTTGTTTCAAGCAAGTCACCTCCATCACATTTGATAAAATATAGCGTTTTTACACTTTGTGTAAACCCTT -ACAAGAAATATAACATAACGACGTTTAAAATCAATTAGAAATATCTTTTTATTCTGATAATAGACACAGT -ATAGACACATTTTAATAGTCGATAACAATTGTAATATCAAGGGTTTGTAATGAATTGAATATCATTAAAA -TACTTATATAAAAATATTGCTCGGAATATAAAAAGTAACCCATGTTTATTTAAAAAATGCAAAGACTAAT -TATCATTTTGATGCATCAGTAAGGCGAGGGTGATCAGCGTACAATTAGTGGTGTATAATGTAACTGATAA -AATCATTGGAGAGTTGAAGGAGATGTTAAACATATGAGAGTCAATGTTTTACAACATACACCAAATGAAG -GTGTTGGATACATAGGTGAGTGGGCGAAGGAAAGAGGGCACGAAGTCTATATTTATCATCCATATATGAA -TGATGGCGTGCTACCTCTTGCGGAAGAAACGGATATGTTAGTGATACTTGGTGGGCCAATGAATCCAGAC -GATGAGATGCCTTGGATTCAATCAGAGCGCCAATTAATTTTAGTATTGATGGCACAAAACAAACCAATTT -ATGGTGCTTGCTTTGGTGCACAACAAATTTCGAAAGCATTAGGTTATGCGGTGTTAAAATCACCAGTAAA -GGAAGTAGGTTGGGATGATGTTTACTTAGAATCAGAAATCATTCCGAATATACCAAGTCGATTGAAGGCA -CTACATTGGCATGAAGATATGTTTCAAATACCGCAACAAGCAGAATTATTATTTTCGGGGAACCATATTA -GAAACCAAGGATTTATCATCGATCATCATGTGATTGGATTACAATTTCATTTTGAGCCTGGTCCAGACGA -TGTCAGAGAAATAGTACTAAATGATGCCCAATACATCAATCATTCTATTTTAGAGCAATCGGCGGAGGAC -ATATTAGCCTTTGAGGTGCCTAAACAGAATAGGCAGGCCATTTTCCGAATACTTGATTTTATTACTCAAG -CGTAAGATGTGAGTTGTATTTTAAAATGAGTAAAAAAACGAATGTACACAATCGAACAAAGTAGTTATAT -AAATATATGGAAAATCCATCAATATTAAATTAAAATAGTTTTATTATGAAAAGTGAAAGTAGGTTAGTCT -ATGGAAGGTCTTAATCATCAAAGAAATACAGAAAAAGAAGAGACAACACAAACGCAATCAGTTGCACCTA -ATACAGGTGAAGAAGGGATGTCATCAGCAAGTACACAATCTACTAAGACATCCGACATACATAATGAATC -TATCGATAAACAAATGGAAGCCAAAGCGCATGAAACAGCGCAAAATACAGATTTAAAAAATGAAGCAAGA -AGTTTATTTGATAATGCAACCAAATCAATCGGTAGACTAGCTGGCAATGATGAAAGCTTAAATCTTAATT -TAAAAGATATGTTTTCTGAAGTATTTAAGCCACATACTAAAAACGAAGCAGATGAAATATTTATTGCGGG -TACTGCTAAAACTACGCCAGCAATTTGTGACATATCAGAAGAATGGGGGAAGCCATGGCTCTTTTCTCGA -GTATTCATCGCTTTCACAGTAACATTTATTGGATTATGGGTCATGGCAGCAATTTTTAATAACACTAACG -CGATTCCGGGTCTCATTTTTATAGGGGCTTTAACAGTACCATTATCGGGTTTGTTCTTTTTTTATGAATC -AAATGCGTTTAAAAATATTAGCATTTTTGAAGTTATTATCATGTTCTTTATTGGCGGCGTATTTTCATTA -CTAAGTACGATGGTATTATATAGATTTGTCGTTTTTAGTGATCAATTCGAAAGGTTTGGTTCTTTAACAT -TTTTCGATGCATTTTTAGTAGGATTAGTTGAAGAAACTGGAAAAGCGCTCATTATTGTTTATTTCGTCAA -TAAATTGAAAACAAATAAGATTTTGAATGGATTATTAATCGGTGCTGCTATTGGTGCAGGGTTCGCAGTT -TTTGAATCAGCAGGTTATATTTTGAATTTCGCTTTAGGGGAAAATGTCCCATTATTAGATATTGTCTTCA -CACGTGCGTGGACTGCGATTGGTGGTCATTTAGTTTGGTCAGCGATTGTTGGTGCTGCAATAGTTATTGC -GAAAGAACAGCATGGCTTTGAATTCAAAGATATATTTGATAAACGCTTTTTAATATTCTTTTTATCAGCC -GTTGGTTTACATGGCATTTGGGATACATCTTTAACTATACTTGGCAGTGATACGTTGAAAATATTTATTT -TAATCGTTATTGTGTGGATACTTGTATTCATTTTAATGGGGGCAGGTTTAAAACAAGTGAATTTACTGCA -GAAAGAATTTAAAGAACAACAGAAAAAAGTAGACGAATAATAATTAAAGCTTATGTTGCACATATGTTTG -TGACATAAGCTATTTTTATAATTTGTCTTTAAAAGAGTGGAAGTGGAATACTTTTTGGAGTTAAAAAAGT -GTTTCACGTTAAACAAATAGTGACAATTAGGTTTATATAAAATGAACATGATTCGCTGAAAGTATGTAAT -AATCATTTTATTGAAATTCATCAAACAGAAAGTAATACAATCATATAAGCAAATTAAACCACGCCATCAT -CATCTAGAATGACTTCGGCGTGGTTTTTATTGAAGCGGGGCTGAGACATAAATCAATGTCCCACATTCCC -TTATCGTTCAATCGTAGTTCGATAATCGATTAAATAGATACCTTCAGGTGTTACTTTATAATTTTTAACC -TTAGAGTTAGCAGCAACTATTTGATCGTTGTAAGCAATATAACTGTTAGGTACATCTCGACTTGATAATT -TAATAATATCATTAGAAATATTGTGACGTTCCTTAACATCTACAGTATGATTCAATTGATTAATTAAATC -ATCAACGTTGTTATTATTGTAGTCTCCTTTATTAATAGCACCATCTTTTTTATATGCTTGATTAAAGAAA -TAGCCTGTATCTCCACGAGGAATCGTTCCGAAACTATACATTGTTGCATCCCATGCAGAACGGTCTTTTA -AGTAATCTTCTATGTCATCAACACTTTTAATGTCGATTTCAATATTTGCTTTTTTAGCATCTGATTGTAA -TACTTGCGCAATTTTCGATAGCTCTGGACGACCGTCATACGTAATTAACTTAATTTTTAAAGGGTGTTCT -TTTGTGTAACCATCTTTAGCTAATAACGTTTTTGCTTGTTCGATATTTTGTTTGGTTAACTTAGGTTCTT -TAATATATGGAATTTTATCATTAAATAGACTCGTTGCAGGTTTCGCGTAACCTTGATAAATATGATCTGC -AATACCTTGTCTATCAATGATATGATCTAATGCTTCACGAACGGATTTAGTCATTTTTTTATTAGTATGA -TTATACATAAGTAAAGAAGTTCTAAATCCAGATTCTTTTGACACTTTTAAATTTTGATTATTTTCTATGT -CTTGAACTTTATTAACTGGGACATCAGTTATTAAATCATCTTTTTGAGATTCTAAATTTCTGACGCGATT -ATTGCCGTCTTCTTGGTACGTCACAGTAATATGATCAAGTTTCGGTTTACCTTGCCAATAGTCCTTAAAA -TTCGACAATGATATTTTTCGAGATTGCTTATAATCTTTAATTTGGTAAGGGCCTGTACCAACAGGAGTTT -GATTAACATCTGATTTAGCATCTGTATCATAAATTGCCATAAAAGGATTAGCTAATTCAGATACAAGTTC -AGGGTAAGCGGAACTGGTTTTAATTGTTAGTTTTTGACCTTTAGCGGTAATTGATGATATTGGTAATGAA -TATTTGACCAAGTCGCTTTTTTTCATGCTATTTTCAAGGCTAGATTTCACTTTTTCTGCAGTCAATTTTT -GACCGTTTTGAAATTTAATATTATCTTTTAATTCTATATCTAACGTTGTATCATTTGGTTGATGATACGA -TTTCACTAATACTTTTTCTATTTTTCCTTGATCATTTGTTTTAAATAATGATTCTGCAGCACCGATCTTA -ACTGGTACATCTGTTTCATAAGGTGCAATAGACTTTGTTTTTAACGGTAACGAAATATTTAAGTCTTTGC -CAGATGAATGCATTGAGCCACATCCTGATAACACTAATACTGCTGAAAATATAGTTGCTAGTCTTTTAAA -CTTCATTTCATTAACACTCTCTTTCTAATTACTATGTAAAACCCAACAATTAATATTTTAAAACTTTATT -TTGTTGAAGTAAAATGTTGTTCAAGTTCAGTAATTATTAAAGTTCAATTAATTGTAGTAATTACACTTTT -TAAAAATAAATATTAGAAATGAAGTTAGCGACATGTATAGTGATCCACGATAAACATATATATCTAAGTA -TTGAGCAACTGCTGTAGTACTACAGCTTGGTTATGTTTAGTATCTTTTGCTGAATATAACAATAGAACAT -GATGATGTTGATTTACAATTGCCTTTAATTTTTCAAAAGCTTCTTTTTGCGTCTCATTGTCACGCAATTC -TTTTTCGTATTTTTCTTTAAAAGCACCATAAAGTTTAGGATCATGTTGGAACCATTGTCGTAACTCAGTA -GAAGGGGCAATGTCTTTTAACCAATAATCTAGGTTAGCAGTTCTTTTCGAAATACCTCTTGGCCAGACTC -TATCGACTAGGATACGAATAGCGTCTGTATTATCTTTATTGTCATAAATCCGTCCAATATCTACGGTCAT -CTTGTGAACTCCTTTCTTATGAAATTCAGTGAGCATACATCAATGCATGTTGTGGTGGGACGACGAAATA -AATTTTGCGAAAATATTATTTCTGTCCCACTCCCAATTAAAAAACAACCATGACAAAGTAAAGTCATAGC -TGTTTTTGTATAGATGTCATTTATTTTTACGTTTAGTTAAATACTTCAAACCAACTGCAAAGACGGTGTA -ACCGGCAAGTGTTTGAATCAATGTTTTGATTAAATTGTTATTTTTGACAACAATATTTGCGGTAACAATA -CTCGCGAAATATAATGCAAATACTTTAACGTAACGTTGATTAAGTTTCATATGAGCACTAACCTCTTTTC -TCAGTTATACTACAACGCTTAGTCTTGGAATAAATGTTTCGTAGTGTACGCGATCCATATCGTAATTTAA -AGATTTAAGTGCTTCGATCATAGATTGTAAGAATTTTGTACCACCACAGATATAAATTTCAGGTTTATTT -GCTAAAAATGCTTTTAATTCTTCAGCACCGATATAACCTTGTTCGCCTTTTAAGTGGGTATATAATTTAG -CGTTGTCATAATGATTTGCAATACTGTTGAAGTTGTCTTTGAAAGGTAAATGTTGTTCATTTTCAGCAAC -TTGAACCATCTGAGTATCTAAACCTTTGGCAGAGGCAGCTTCATACATTGCTACTAAAGGTGTGACGCCA -ATACCTGAACCTAAGAAAAGTTGTGGTTCAGTCGTATTCTCTAATACGAATCCACCTACAGGTGCAGCTA -AATTAATCATATCGCCTTCTTTAATCTCATCGTGTAAAATTGTTGAAACTTCGCCTTCATGTTCTGTTGT -GACATCACGTTTAACGCCAAAGGTTAAATGATTTTTATCACCTGATACGATAGAATAGTGACGTTTAGCT -CTATATGGAAGTTTATCACTAGAAACATCAACTGTGATGTATTGGCCTGGTACATATTGACTAAAGTCAT -ATGCATCAGTTTCAACTGTAAATGATTTAATGTCTTCAGATTCTTGTTTAATATTGGTAATTTTGAATGG -TTTAAAACCAATCCACATCATTTGATCATAAATTTCTTTTTCAATTTGGATGAACACATCCGCAATAACG -CCATATGCTTTCGCCCAAGCTTGAATGACAGGGTCATTTTCTTCTAATCCTGTCACGTCTTGAATGGCTT -TTAATAAATTTTCCCCCACAATTGGATAATGTTCAGCATAAACTTGTAGTGCGCAGTGTTTATATGCAAC -TGGCATAATAACTGGTTTAATAACACTTAAATTATCGATATTAACCGCTGCGGCCATTACAGCTTGTGCT -AATGCTGAAGATTGCATGCCTCTTTTTTGGTTCGTTTGATTAAACATATTTAAAAGTTCAGGATGTGCCT -TAAACATTTTTGGATAAAAGATTGACGTAATTTCTGTTCCTTTTTCTTTAAGCAATGGCACCGTTTGTTT -GATAATGTCTTTCTCTTGTTCTGTAAGCATGATACTCCTCCTTTAATCTGTCTATTTTGATTATTCTACT -AAAAATTCCGATATTCAATTAATTGGTTTGAGAAAATATAAATAAAATGGCAAATTTGATAATTGTATGA -CATTTTTAATTTTTTAAATACTTATCAATAAGCATTGTGTACAATTGTCTGTTTGTACACCGACGATTGC -GCGCATTTATTTGACTAATTCAAAAAACATTGTTGTTTTCTTAGAAAAAAGTAAACATGATAATAAAAAT -GTGAAAGTGTAAATAATCACTGGCGAAGTACGAAGACTAAAGACATCTAAGATGTAATCGTATACAAATT -AAAAAGGTGTAAAAATTAAAATAAAATGTGAAATAAATCACAATTTAATATTGACCCAGTACTTAATGCA -TGTTACATTTTATATGTGAAATAAATCACAAACTTAAAAGCGGATGACACATGACCTTTTAAGTTATGCG -TTGAAAATAAAAGAGATGTTTATTTGCTTTTGTATCGTCAATAAGCAGCATTAAACTAACATATTTGAAA -CTACACGTATGTTAGTGAATTAATCATAAGGGAGTTTTTGTAATGAACAAATTTAAAGGGAACAAAGTTG -TATTAATAGGTAATGGTGCAGTAGGTTCAATCTACGCATTTTCATTAGTGAACCAAAGCATTGTTGATGA -ATTAGTCATCATTGATTTAGACGCTGAAAAAGTTCGAGGAGATGTTATGGATTTAAAACATGCCACACCA -TATTCTCCAACAACAGTTCGTGTGAAAGCTGGCGAATACAGTGATTGTCATGATGCGGATCTAGTTGTCA -TCTGTGCTGGTGCTGCACAAAAACCTGGAGAAACACGTTTAGATTTAGTATCTAAAAACTTGAAAATATT -CAAATCAATTGTTGGTGAAGTAATGGCATCAAAATTTGATGGTATTTTCTTGGTAGCTACAAATCCTGTT -GATATTTTAGCGTATGCAACATGGAAATTCTCTGGTTTACCTAAAGAACGTGTTATAGGTTCTGGTACAA -TTTTAGACTCTGCACGCTTTAGATTATTGTTAAGCGAAGCGTTCGATGTTGCGCCACGTAGCGTCGATGC -TCAAATTATTGGTGAACATGGTGACACTGAATTACCAGTATGGTCACACGCTAATATTGCGGGTCAACCT -TTGAAGACATTACTTGAACAACGTCCTGAGGGCAAAGCGCAAATTGAACAAATTTTTGTTCAAACACGTG -ATGCAGCATATGACATTATTCAAGCTAAAGGTGCCACTTATTATGGTGTTGCAATGGGATTAGCTAGAAT -TACTGAAGCGATTTTCAGAAATGAAGATGCTGTATTGACTGTATCAGCATTATTAGAAGGCGAATATGAT -GAAGAAGATGTTTATATTGGTGTTCCAGCAGTCATCAATAGAAACGGTATTCGCAACGTCGTAGAAATCC -CATTAAACGACGAAGAACAAAGCAAGTTCGCACATTCAGCTAAAACATTAAAAGATATTATGGCTGAAGC -AGAAGAACTTAAATAACTTTTTATAAAATCTATACCATTCCAAAAATTGTAAAACCTTACCCCAAAAAAT -TGTATAAAGGGCTATTTGATACAACTATACGTGTCGAGTAGCCCTATTTTTAATGTAGTGAAAGTCGTTG -TTGAAATTAAATTTAAATCTGGCACTTAAGCTTTAATCATAGCATTAAGATGATTGTCTAGCAGAGGCGA -TTTGCGGACTCACTACAGTGCATGATGAACTTAATGTTTCAAATGCAACATTAAAAATAAAAGCAGCGAT -GTCACTTCTTACTCCGTACATCGTTGCCATTAGTTCTGTTGATATTTCGGTTAGTCTTAATCCCCGAGCA -ATTCTTCAATTTCATTTTTGATAACTGTAACGTGAGGACCGTAAATTACTTGCACACCAGTGCCTTGCTG -GATTACACCTTTGGCACCAGTACTTTCGAGTAGTACTTTATCGACTTTGTCATTTTGATGAAGTGTAACG -CGTAGTCTCGTTGCACAACAGTCAACGATTTCAATGTTATCCTTGCCTCCCAAACCAGCAACAATAGTTT -GTGCTCTTTCAGTAGCCTCAACTTGTTGTGCTGCAGCTTTATCTTCACGACCAGGTGTTTTGAAATTAAA -TTTCGTAATTAAGAATCTGAAAACGATGTAATACAAACAGAACCACACAATTCCAATAGGTATGACATAT -AGGTAGTTTGTTTTACTATTACCTTGTAGCACACCAAAAAGTAAGAAATCGATAAAGCCTCCACTGAAGG -TTTGACCAATTGTAATGTTGAAAATGTCTGCCATCATAAATGCTAATCCATCAAAGAAGGCATGGATTAC -ATAAAGAATAGGTGCGACAAACAAGAAACTAAACTCTAAAGGTTCGGTAATACCTGTTAAAAATGAAGTG -AGTGCAGCGGATAACATTAAACCGCCGACAACTTTTTTATGTTCAGGTTTAGCCGTGTGATAAATTGCAA -GTGCGGCACCACATAAGCCGAACATCATCGTAATAAAACGGCCTGACATAAAGCGTGACACACCTGAATA -ATACTTCGTCACATCTGGATCACCAAGTTGAGCAAAGAAGATGTTCTGCGTACCTTGAACTAAGTGACCT -TTGACTTCTAAAGTACCACCAAGTGCCGTCTGCCAAAATGGTAAGTAAAAAATATGATGTAAACCGAGTG -GACCTAACAATCTTAAGATGAAGCCATAAACAAAAGTACCGATGGCACCTGTTTTCGTTACAAATCCACC -CACATGATAAATGCCGGCTTGTATGCTTGGCCAAATGAAAAACATCAATACACCTAAAAAGATTGCGGCA -AATGCTGTGACAATAGGGACAAATCTAGAGCCACCAAAGAAACCTAAATACGGTGGTAATACCACTTTGT -GATATTTGTTGTGAAGTATTGCGGTCATAATACCTGTGATAATCCCGCCAAAAACACCGGTTTCAACCGT -TTGTATACCGAGCACCATGCCTTGTCCATTTTGTGCAAGCTGATCTTTTGCCAATGTGCCCGTGATAGTT -AATAAGCCATTCATAGTTGCGTTCATAATTAAGAAACCGAGCAGTGCAGCTAAACCTGCAGTACCTTTAT -CGCTTCTAGATAATCCGATTGCGACACCAATTGCAAAGATGACTGGTAAATTTTGGAAAACAATACTACC -TGCAGCTGACATTAATGTAAAAATATTTTGTAATAAGGTAATATCTAAAATAGGGTATGCTTTAACGGTG -TTTGGATTACTTAATGCACCACCGATACCCAACAATAGACCTGCAGCTGGTAAGATTGCGATAGGTAGCA -TAAAGGACTTGCCGAACTGCTGTGCTTTTTCAAATAAAGATTTCATCAACATCCCTCCTAATTATTCTCA -ATATAGCTTTTGAGAAATTTAATATCAATATATATTCTGTGTATGAAAATATTTTTCATAAAAATTGTTT -GAATCATGTAACAATCATATAAATTGCTGTTTATATTGTGGTGAAAATGAGTTGACAAAAGTCGGTATAG -TTCTGTAGACATCCTATTTTTTAGCGAGGTGGGGTGACAAGGCATATCGGATAAATTTATAAGCCATAAA -ATAGATAAATAGTGTTTGTATCCAAAACTATGTGAAAGTTAAAACTATTTTTCAAAATAAACATGATTCA -CCACATAAATAAATATACATAAGCTATCGATAACAACTTAAGAAAGGTGGATATATATAATGAAAAGAAA -GATTATTATGGATTGTGATCCAGGACACGATGATGCAATAGCATTAATTTTAGCGGGGGCAATTGACAGT -CCACTAGAGATATTAGCTGTAACCACAGTCGCAGGTAATCAATCAGTTGACAAGAACACGACAAACGCCT -TGAACGTATTAGATATTATGGGACGCCAAGATATAGTAGTAGCGAAAGGTGCGGATAGGCCGTTAATTAA -ACTAGTTGCCTTTGCTTCTGAAATACATGGGGAATCTGGATTAGATGGTCCGAAACTACCGTCGACACCA -TCACGTCAAGCAGTTGCAATGCCAGCATCAGATGTGATTATTAACAAAGTGATGACGAGTGATACACCTG -TAACAATTGTAGCGACAGGTCCTCTTACGAATGTAGCAACGGCATTGATTCGTGAGCCAAGAATCGCTGA -GCATATTGAATCTATTACTTTGATGGGTGGTGGTACATTTGGAAATTGGACGCCTACAGCAGAATTCAAT -ATTTGGGTAGATGCTGAAGCAGCGAAGCGTGTTTTTGAAAGTGGGATTACTATAAATGTGTTTGGTTTAG -ATGTAACACATCAAGTTTTAGCCGATGAACACGTGATTGAACGCTTTGAAAGTATCAATAATCCTGTTGC -ACAGTTCGTCGTAGAATTATTGCAATTCTTTAAGAAGACATACAAGACTCACTTTAATATGGACGGTGGT -CCAATACATGATGCTTGTACAATTTTGTATTTGTTACAACCAGAATTGTTTACAATGGTACCCGTTAATA -TCGACATTGAACATCAAAGTCCACTAACTTATGGCACTATGGCTGTAGATTTAAATCATGTTACAGGTAA -GCCTGCCAATGCCTATTTTGCTACAGCAGTTGATGTTGAAGAAGTGTGGAACTTGATAGATCATAAGTTA -CGTACATACGAATAATAATACTTAATTAAATAGATACAGTTAACCCTAAGGTGCCTGATTTAAGCGTCCT -TAGGGTTTTTGTATTGGATTACAATGGTCATGGCAATTTGATAATGATTGAGATATGTATGTTAAAAATG -CTTCAAAAAACACAAAATACAAAAATATATGCAAAAATTTCAATTGCTTTATTTTAAAAGATTAAAATCA -CAAAAAATACCGATATAATTGGAATGTTGTCGAAACATCACAATGATGTACATACTCATTTTGAAAATAT -GTGTTCAACGAGTGTACATCGGTGTGACGATTGATGATAAATTGAGCTCAGATGCTCAAAGGAGGATCGA -ACATGAACGGGGATAATCAGCAAATACTCAGAGAAATTGTATTGAATCCTACTATTCATGGTAAAGAACT -TGAATCGATATTTGGTTTGTCTCGTAGACAACTAGGATATCGCATTCAAAAAATCAATTTGTGGCTTGAA -CAAGAGGGTTATCCAAAACTTGAAAGAACAAGCCAAGGAAATTTTATTGTAAGTTCTGAAATCATGACGT -TATTCAAACGAGATGTATCGGAGCAGCAAATGTTAAACGGCAACAATGTCATTTTTAGCATAGAAACACG -TCGTTATTATTTAATGCTCATGCTTTTTAGTAAGGAAAACGCAATGTCTCTAAACCATTTTTCAATTGAT -TTACAAGTCAGTAAAAATACTGTCATTCACGATATAAATCATGTGAAAGAGCAATTGGAAGATCATGGTT -TGTCACTTAAGTATTCTCGAAAACATGGTTATGAAATTGTTGGTGATGAATTTGAAGTTCGCCGTTTCTT -CATTAAGTTGATTGATCAAAGGTTAAATCATGATATTACTAAAAGTGAAGTTTTAAAGGCGCTCAACTTA -ACATTCGAAGATATCGCATATCAAAAAGACAAGATCAAACAGGTAGAACAATTTTTGAAGAGTCGCTTTA -TAGACAAATCACTGAGTTCATTGCCTTACGTCCTTTGTGTGATTCGTAGACGAATTCAAAGTGGTCATGT -GATTAATCCATTAAATATTAATTATCAGTATTTGAGGGATACGAAAGAATATCAAGCAACGGAGATTATG -ACGCAACATGAGCCGGATTTGCCAGAAGCGGAAAAGTTATATTTGACGCTACACTTACTTTCAACAAGTG -TGCAATGGACTGATTTGCAGGAATCAGATAACATATCGAATTTAACGATGGCCATTGATCAAATGATTCA -CCATTTTGAACAAATTACTTTTATTAACATTGAAGATAAGGAGAAATTATCACAGCAACTCTTGTTACAT -TTAACGCCTGCTTTTTATAGGATTAAATATAACTTAACGGATCGTGATGAATTAATAAATCCTTTACAAG -GAAATTATCAATCCTTATTTCATATGGTGAAACAATCATGTCAATCGTTAACTGAATATTTCGGAAAATC -ATTGCCTGATAATGAAATAGCATATTTAACCATGTTGTTTGGAGGTAGTTTGAGACGTCAAGATGAAAAC -TTCGATGGCAAGATAAAAGCTATTATCGTGTGTACACAAGGTACGTCAGTATCACAAATGATGTTATACG -AGTTGCGAAACTTATTTCCAGAAATTATTTTCTTAGATGCGATTTCACTTAGAACATTTGAAAATTACAC -ATTAGATTATGACATCGTCTTTTCACCAATGTTTGTCTTAACACATAAAAAATTATTTATCACAAAAGTA -GCTTTATCTGAAAATGAGCAATGAAAGTTACGTAAAGAAGTGATGAAGTACATTAATAAGGAATCGGCTG -ACATTGATAAGGAAATAAACAAGTTAATGGCATTAATTGAACGCACTACGACAGTTAATGACATTACAGA -ACTACGTGATGGTTTAGAAGATTTTATTGCGAATTATAATTCAATTTCAACCATTAATGGATCGATTGTC -ACACAAAATAAGACATTAGATTTAGCTGACTTGATACCAGCAAGGCACGTGAAAAGAATACATCATGTTG -AAAATATTGATGAAGCTATTGCTAAAGCAAGTGATGTGTTAGTTGCTAATCATTTTATTGATATTAAATA -TATTCATGAGATGCAACAGGCATTTGATGATTCGTATATGGTTATCATGCAAAATATTGCTATTCCACAT -GCATACTCTGAAAAGCATGTACATAAAACAGCGATGAGTATGTTGATATTACAAGAACCAATATACATGT -CAGATGGCACAGCAATCCATATTATTGTACCTATTGCTGCTGTTGATAAAGTGACACACTTAAGAGCGTT -ACTACAATTGAGAGATGTGGCGCAAAACAATGACGCAATTAAGCGCATCATACAAAGTCGCAAAAATTCT -GATGTAAATGAGATTTTAAAAAATTATTCAAATAAAGAAGCGAGGGAAAATGGATGGGACAGCAATTAGT -GCATAAAGAAAATATAATGCTCAATTTGTCGGCAACTGATAAAGAATCTGTATTGTCACAAATGTCAGAT -GTGTTATTTCAAAATGGGTTCGTAAAGTCAACGTTTAAAGATGCAGTCATCGACAGAGAAAAAGAGTTTG -CTACTGGTTTACCAACGCATCTATGTTCGGTTGCTATACCGCATACAGATGTCGAACATATTAACCATAG -AACGATAGGTGTGGCTGTTCTAGAAAAAGAAGTGCCGTTTATTGAAATGGGAACACTTGATCAACAGACA -GAAGTGAAAATCGTTTTTATGTTAGCAATGGATAAAGTAGATGATCAACTTAAGCTGTTACAACAGTTGA -TGCAAATTTTTCAAAGTGAAGAAAAATTGGAGCAGATTCTACGAACGAAAGATGAAACAATTTTAGCAAC -ACTAATCAATGATTATTTGAAATATAACTAAAAATTAATTGGAGGAATTGAAAATGAAACAAGTATTAGT -AGCGTGTGGTGCAGGTATTGCAACGTCAACAGTAGTAAATAATGCAATTGAGGAAATGGCAAAGGAACAC -AATATTAAAGTAGATATTAAACAAATCAAAATTACAGAAGTTGGACCTTATGAAGACACTGCAGATTTAT -TAGTTACAACTGCAATGACAAAGAAAGAATATAAATTCCCAGTTATCAACGCACGTAATTTCTTAACTGG -TATTGGTATTGAAGAAACAAAACAACAAATCTTAACAGAGTTACAAAAATAACTGAATTGATATGTAACG -TGGGTCAATAACATATAAATATATGCAAATTGCATATAAATGACTATCACGACAAATGATTGTAGATGAC -ATAGAAACGCAGTGACTGTAATTCAAAGGGATTGCAGTCGAATGTAGCAAGGGTTGTCGTTGAAATGACT -GTAACGTCAAATGTAATCACAATCGGAAAGTATCGTGACAATGCATATATAACAGGGAGGGTTTAAATAT -GAGTTACTTCACTGATTTTGTAAGGGGATTTTTAGATTTAGGTGCAACTGTTATTTTACCGGTTGTCATA -TTCTTGCTTGGCCTATTCTTTAGGCAGAAAATTGGAGCGGCATTTAGGTCTGGTTTAACAATAGGTGTGG -CTTTTGTAGGGATTTTCTTAGTCATCGATTTATTAGTTAAAAATTTAGGGCCAGCAGCACAAGCGATGGT -TAAAAATTTAGGCGTCAGTCTGAATGTGATTGATGTAGGTTGGCCAGCAACATCATCTATCGCGTGGGCA -TCATCTGTCGCAGCATTTATTATTCCACTCGGAATCATTGTTAACGTTGTATTGCTAGTAACTAAAGTGA -CAAAGACGATGAATGTAGATATTTGGAATTTTTGGCATTATACGTTTACAGCAGCAATGGTTTATGCCGT -ATCAGGCAGTATTTGGCAAGCGTTATTAGCAGCAGTTATTTTCCAAGTTATCTGTTTGAAAGTAGCAGAT -TGGACAGCACCGATGATGAGTGAGTTCTTTGATTTACCAGGTGTATCGATTGCTACAGGAAGTACAATTT -CTTATGCACCAGGTATTTACTTAGTTAAATTGTTACAAAGAGTACCCGGTCTGAATAAGTTAGATGCTGA -TCCTGAAACAATTCAAAAACGTTTTGGCGCATTTGGAGAGTCTATCTTTGTCGGATTAATTTTAGGTTTA -GGTATTGGTGTGTTAGCAGGTTACAAACCTGGAGACATCATTAATTTAGGAATGTCAATGGCTGCAGTAA -TGGTATTAATGCCTAGAATGGTAAAAATCTTAATGGAAGGTTTAATGCCAGTTTCAGAGTCTGCAAGAAC -ATGGCTAAATAAACGTTTTGGCGAACGTGAAATTTATATTGGATTGGATGCGGCTGTAGCATTAGGTCAT -CCAGCGGTTATTTCGACAGCATTAATTTTAGTACCTATCACTGTTTTATTAGCCGTTATTTTACCAGGAA -ACCAAGTATTACCTTTTGGTGACTTAGCAACTATACCATTTGTTGTCGCGTTTATTGTTGGTGCAGCAAG -AGGAAACATTATTCATTCTGTCATTGTGGGTACGATTATGATTGCAATTTCACTATATATTGCAACAGAC -GTAGCACCTATTTTCACAGATATGGCGAAAGGTACGAATGTACAAATGCCAAAAGGTTCATCTGAAATTT -CAAGTATTGATCAAGGTGGTAATATCGTTAACTATCTTATCTTTAAACTATTTAGTCTATTCAATTAAAA -ATCGAGGTGTTTGTGGTGAAAGCTTTAGTAAAAACAAGAGAAGGACATGGCAACTTAGAACTTCTTGATA -AAGAAGTTGCAACACCGCTAGATGATAAAGTAAAGATTAAAGTACATTATGCAGGAATTTGTGGCACAGA -TATTCATACTTATGAAGGTCATTATAAAGTTAATTTTCCAGTGACATTAGGTCATGAATTTTCTGGTGAA -ATCGTTGAAGTTGGAGCAGACGTTAAAGATTTTAAAGTTGGTGACCGTGTCACTTCTGAAACGACATTCT -ATGTTTGTAATGAGTGTGAATACTGTGAATCAAAAGACTATAATTTATGCAACCATCGAAAAGGTATTGG -AACACAAGTTGATGGCGCATTTACTAATTATGTCATTGCACGTGAAGAAAGTTTGCATCATATTCCAGAC -GAAGTGTCGTATCAGTCTGCAGCTATGACAGAACCATTAGCATGTGCACATCATGGCGTTTCTAAGATTC -AAGTCAATTCAGGCGATGTAGCAGTTGTAATGGGACCTGGGCCAATCGGATTACTTGTAGCACAAGTGTT -GAAAAGTAAAGGCGCAACTGTTGTGGTAACTGGATTGGACAATGACAAAGTCAGATTAGATAAAGCAGAA -GCATTGCACATGGATTATGTAGTCAATTTACAACAAACAGACTTAAAAACGTATATCAATGGAATTACAG -ACGGATACGGTGCAGATGTTGTTGTTGAATGTTCAGGTGCAGTTCCAGCAGCACGACAAGGTTTGGATAT -TTTACGCAAAAAAGGTTTCTACAGTCAAATAGGTATTTTTAAGGATGCTGAAATTACATTTGATATGGAA -AAAGTGATTCAAAAAGAAATAACAGTTGTTGGTAGTAGAAGTCAAAAGCCGGCAGATTGGGAACCTTCAT -TGCAACTTATGGCGGATGGTTTAGTAAATGCTGAAGCTTTGGTGACAAAAATATATGATATTTCGAAATG -GGACGAGGCGTATCAACATTTAAAATCTGGCGAAGGTATTAAAGCATTACTTAAGCCGCTCGATTTAGAT -GAAAATGAAGGAGAGAATTAATATGGTAGAATCAATGCTAACTTTTATGCTTGGGCCATTGAGACAAATC -ACTGATTTTTATATGGAACATCTACTTGTAAGTAATTCTATCGTCATTGCAGGTTATTTTGCGACAGGTA -TTTTTAAAAAGAAAAAAGTTGTGAATTAAATCAAAGTTGAGGTGATTTACAAGTGAAAGCTTTGAAATTA -TATGGCGTGGAAGATTTACGGTATGAGGATAATGAAAAGCCAGTCATTGAAAGTGCGAATGACGTTATTG -TTAAAGTACGAGCGACTGGAATATGTGGTTCAGACACGTCACGATACAAAAAAATGGGGCCATACATTCA -AGGTATGCCATTTGGTCATGAATTTTCAGGTGTTGTAGATGCCATTGGAAGTGATGTTACGCATGTTAAT -GTAGGCGACAAAGTGACAGGTTGCCCAGCCATACCTTGTTATCAATGCGAGTATTGTTTAAAAGGTGAAT -ATGCACGATGTGAAAAGTTGTTCGTCATTGGCTCATATGAACCTGGATCGTTCGCGGAATATGTCAAATT -GCCAGCGCAAAATGTTTTAAAGGTACCAGACAATGTTGATTACATTGAAGCAGCAATGGTTGAGCCATCA -GCCGTTGTTGCGCATGGGTTTTATAAATCGAATATACAACCTGGTATGACTGTTGCAGTAATGGGGTGTG -GCAGTATAGGATTGTTAGCTATTCAATGGGCACGAATATTTGGTGCTGCGCATATCATCGCTATAGATAT -AGATGCGCATAAACTAGATATTGCTACATCATTGGGCGCACATCAAACCATCAATTCAAAAGAAGAAAAT -CTTGAGAAATTCATCGAAAATCATTACGCCAATCAAATCGATATAGCTATAGAATCATCAGGTGCTAAAG -TTACGATTGGTCAAATATTGACGCTACCTAAAAAAGGTGGCGAGGTGGTATTACTCGGAATACCATATGA -TGATATTGAGATTGATCGCGTTCATTTTGAAAAAATTCTGCGTAACGAGTTGACAGTATGTGGCTCTTGG -AACTGTTTGTCCAGTAATTTTCCGGGGAAAGAGTGGACGGCAACCTTACATTATATGAAGACGAAAGATA -TTAATGTAAAGCCTATTATTTCTCATTTTTTACCGTTAGAAAAAGGCCCGGAGACATTTGATAAATTAGT -TAACAAGAAAGAACGATTTGATAAAGTCATGTTTACGATTTATTAGTATGCACCTTTGAGGACGAAAACG -CTGGTATAGTTATAGCTATGAAAGTGCGAATGCCGTCTGGTCTACAGATACTATCGAAATAATTCATCTT -CGAATATACGTTGCTAAATAGCCGGTTTACTTGTGTGAAATATGCTTGTGAATCGGTTGTTTTGCATTTT -GTATACTTAAAATGAGATGGCAATATTTGATAATTTTTAAAGTGAAAATCAAGTACAGCCACTTAATAAG -ATAAATTTATTATAATATATGGTAAAATGATGGCAGTAATAATGAATTTGAAAAAGAGTAAACATTAATA -CCTTTAACAATTTAATATCGTCAGTGTTAATGATTAACTGCATGGCAAAACAACTTAGAATGGTCAGTTA -CAAAAATACATTTTTATAAAAAATTATCACACTATTGTGACAACTGCCTTTGGCTTAATAAAAGAGGAAA -GTGAGCAATAGGTTGGGCTTATGTGCGGGCATAGGTCAGTAATGTATAAATGGAAATGATGTAATGACAG -AATGGAGGACAACATGATTTATGCAGGTATTTTAGCAGGAGGTATTGGTTCGAGAATGGGAAACGTGCCA -TTACCAAAACAATTTTTAGATATTGATAATAAACCGATTTTAATTCATACAATTGAGAAGTTCATTTTAG -TGAGTGAATTTAATGAGATTATTATCGCAACGCCAGCACAGTGGATTTCGCATACGCAAGATATTTTAAA -AAAATATAACATTACAGATCAACGTGTCAAAGTAGTTGCAGGTGGTACGGATCGAAACGAAACAATTATG -AACATTATCGACCATATTCGCAATACGCAGGGTATCAACGATGATGATGTGATTGTAACTCATGATGCCG -TAAGACCATTTTTAACTCAACGTATTATTAAAGAGAACATTGAAGTAGCAGCAAAATATGGTGCAGTAGA -TACAGTCATTGAAGCAATTGATACGATTGTAATGTCTAAAGATAAACAGAACATACACAGTATCCCTGTA -AGGAATGAAATGTATCAAGGCCAAACACCACAATCATTTAATATTAAATTATTACAAGATAGTTATCGTG -CCTTAAGTAGTGCACAAAAAGAAATCTTATCAGATGCATGTAAAATCATTGTCGAATCTGGACATGCAGT -TAAATTGGTACGCGGAGAACTATACAACATTAAAGTGACAACACCGTATGATTTAAAAGTAGCAAATGCC -ATTATTCAAGGTGATATTGCCGATGATTAATCAAGTATATCAACTCGTTGCACCGAGACAGTTCGACGTC -ACATATAATAATGTTGATATTTATGGTAATCATGTCATCGTAAGACCTGTATACTTGTCTATTTGTGCAG -CTGATCAAAGGTATTACACAGGTCGAAGAGATGAAAATGTACTGCGCAAAAAATTACCAATGTCATTAGT -TCATGAAGCTGTTGGTGAAGTTGTATTCGATAGTAAAGGCGTATTTGAAAAAGGTACGAAAGTAGTAATG -GTGCCGAATACACCTACAGAAAAACACGACGTGATTGCGGAGAATTACTTAGCCTCTAGTTATTTTAGAT -CTAGTGGTTATGATGGTTTTATGCAAGACTACGTTGTGATGGCACATGATCGTATCGTTCCGCTGCCTAA -TGACATTGATTTGAGTACGATTTCATACACAGAGTTAGTGTCAGTAAGTTATCATGCTATACAACGATTT -GAACGTAAATCTATACCTTTGAAAACCAGCTTTGGTATTTGGGGTGATGGTAACTTAGGTTATATTACTG -CTATTTTGCTGCGTAAGTTGTACCCAGAAGCTAAAATTTATGTATTTGGTAAGACAGACTATAAATTAAG -TCATTTTTCATTTGTAGATGACATCTTTACAGTAAATCAAATACCAGATGATCTTAAAATTGATCATGCA -TTTGAATGTGTTGGAGGTAAAGGAAGTCAAGTTGCACTTCAACAAATAGTTGAACATATTTCACCAGAAG -GCAGTATTGCTTTGTTAGGCGTAAGTGAATTACCCGTGGAAGTGAATACACGATTAGTACTTGAAAAAGG -ATTAACGTTGATTGGTAGTAGTCGAAGCGGCTCTAAAGATTTTGAGCAAGTTGTTGATTTATATCGTAAG -TACCCAGACATTGTTGAAAAGTTAGCCTTATTAAAAGGACATGAAATTAATGTATGTACGATGCAAGATA -TCGTCCAAGCGTTTGAAATGGATTTATCGACATCTTGGGGAAAAACAGTATTGAAATGGACGATTTAATA -AACCGATGGGGGAATAACAATGACAAAAACGAAACAAGCAATACATATTGATAACATATACTGGGAACGT -GTTCAGTTATATATTGAAGGACATAGTGAAGGCGTAGATTTAACATCAGGACAATTTGTTCTGAGGAATT -TAACCGAAACAAAAACATTAGAAGCAAATGAAATGAAAATAGACGGTAATACATTTCTATGTAGATTCAA -TGTCGCAATATTAGACGATGGGTATTATTTACCAATGGATAAATATTTATTTGTTTATCATGACCAGTTA -GAGTATATTGGACAACTTAATCCAAATATTATTGATCAAGCTTATGCGGCATTAAATGAAGAGCAAATTG -AAGAATACAATGAGCTGACTACACAAAATGGAAAAGCAAACTATGTGTTAGCCAACGAAGCTAAAGTTTT -CCGCAAAGGTGGCGTATCACAACATACGGTTTATACCATTACTCCAGAAATAGCAAGTGACGTTAACGAA -TTTGTATTTGATATTGACATCACCTTACCTCAAGAGAAATCAGGGGTCATTGCGACAAGCGCACACTGGC -TTCATAAACAAGGCCATAAAGCTTCATTTGAAAGTAGAAGTTTCTTATTTAAAGCTATTTTTAATATTAC -AAAGTTACTACATATTAAAAGAAGCAAAACAATATTATTCACATCAGATTCACGTCCGAATTTATCAGGT -AACTTTAAATATGTATATGATGAGTTACTACGCCAAAAAGTAGATTTTGATTATGATATTAAAACGGTAT -TTAAGGCGAATATTACGGATAGACGTAAATGGAGAGACAAGTTTAGATTGCCATATTTACTTGGTAAGGC -TGATTATATTTTTGTCGATGATTTCCATCCATTAATTTATACGGTTCGCTTTAGACCATCACAAGAAATT -ATTCAAGTGTGGCATGCCGTTGGTGCTTTTAAAACAGTTGGCTTTAGTCGTACAGGTAAAAAAGGTGGTC -CGTTTATTGATTCATTAAATCATCGTAGCTATACAAAAGCTTATGTATCATCAGAAACCGATATTCCATT -TTATGCTGAAGCATTTGGAATTAGAGAAGAAAATGTTGTACCAACAGGTGTACCACGTACTGATGTACTA -TTTGATGAAGCTTATGCAACACAAATTAAACAAGAGATGGAAAATGAATTACCACTTATAAAAGGTAAGA -AAGTTATTCTATTCGCACCGACATTTAGAGGTAATGGTCACGGTACGGCACATTATCCATTTTTTAAAAT -TGATTTTGAACGTTTAGCAAGATATTGCGAGAAGCATAATGCAGTTGTGTTATTCAAAATGCATCCGTTC -GTAAAAAATAGACTCAATATTTCACGTGAACATAGACAATACTTTATCGATGTGTCAGATTATCGTGAAG -TTAACGATATTCTCTTTGTTACAGACTTGTTGATTAGTGATTATTCATCTTTAATATATGAATATGCAGT -ATTTAAAAAACCAATGATTTTCTATGCATTTGACTTAGAAGATTATATTACGACGCGTGATTTCTATGAA -CCATATGAATCATTTGTTCCAGGTAAAATTGTACAATCCTTTGATGCATTAATGGATGCTTTGGACAATG -AAGATTATGAGGTTGAAAAAGTTGTACCATTCTTAGATAAACATTTTAAATATCAAGATGGTCGCTCAAG -TGAACGTTTAGTCAAAGATTTGTTTAGACGCTAATGTTGGCATATATTACTTGCCATGCAAATGATCATA -AGGCATAGTTTTCAAGAAGGGTTATGACAATGAAGTGAGCAACATGTCATGATGAGAAGCAGGACTATAC -AATGAGAATAACCTTTTGATTTTTCATGCATAAGAGGCTGGGACATAAATCCCTAAAAAAACAGCAGTAA -GATAATTTTCAATTAGAAAATATCTTACTGCTGTTCTCTATTTATACAATACTTCGTATTGAATGGCTTC -GCTTTGCCCGTCTGGCACATTACTGTAAAATTCTATAAATAGAATTTTTGATGACGGGTCCCTTCCTAGG -GTGCCGTCTCAGCCACCCCAACCGGCACATTGTTGTAAGCTGACTATATGTCAGCTTCTGTGTTGGGGCC -CCTGTCTTCGACTGGCACTGCTCCCTCAGGAGTCTCGCCATTAATACTACGTATTAACATGTAATTTTAC -TTTTAAATACTTTGAAAAAATAAGACACTTTGCCCAACTTGCACATAAATGTAAAATTCAATAAAATGAA -TTTTCTGTGTTAGGGCCCACACCCCAACTTGCATTGTCTGTAGAAATTGGAAATCCAATTTCTCTTTGTT -GGGGCCCCTGACTAGAATTGAAAAAAGCTTGTTACAAGTGCATTTTCGTTCAGTCAACTACTGCCAATAT -AACTTCGTAGAGCATAGAACATTGATTTATGTCCCAGCCTGTTCCAACTGAATTGTCATTTTGTAAAATA -AAATAATCAATCCAATCGTTATCTAATTCATAAATGTGAAAACACATACGTTATGAATGGATAACGATTT -TTTGTTATGTTAAAGTGGTACATTAATCATGTATTTCGTATGATAATTAACGACAAGTGTAATGGTTAAA -TGTATTTTATGCTGAAATGCTATAATAGGCATGGTTACAATGAGCTTGCTCATACATATTAATATAATTA -CAAAAACACGTCGGAGGTACGACATGATTAAAACTACAATTAAAAAATTGATAGAACACAGTATATATAC -GACTTTTAAATTACTATCAAAATTGCCAAACAAGAATCTAATTTATTTTGAAAGCTTTCATGGTAAACAA -TACAGCGACAATCCCAAAGCATTATATGAATACTTAACTGAACATAGCGATGCCCAATTAATATGGGGTG -TAAAAAAAGGATATGAACACATATTCCAACAGCACAATGTACCATATGTTACAAAGTTTTCAATGAAATG -GTTTTTAGCGATGCCAAGAGCGAAAGCGTGGATGATTAACACACGTACACCAGATTGGTTATACAAATCA -CCGCGAACGACGTACTTACAAACATGGCATGGCACGCCATTGAAAAAGATTGGTTTGGATATTAGTAATG -TTAAAATGCTAGGAACAAATACTCAAAATTACCAAGATGGCTTTAAAAAAGAAAGCCAACGTTGGGATTA -TCTAGTGTCACCTAATCCATATTCTACATCGATATTTCAACATGCATTTCATGTTAGTCGAGATAAGATT -TTGGAAACAGGTTATCCAAGAAATGATAAATTATCACATAAGCGCAATGATACTGAATATATTAACGGTA -TTAAGACAAGATTAAATATTCCATTAGATAAAAAAGTGATTATGTATGCGCCAACTTGGCGTGACGATGA -AGCGATTCGAGAAGGTTCATATCAATTTAATGTTAACTTTGATATAGAAGCTTTGCGTCAAGCGCTGGAT -GATGATTATGTCATTTTATTACGCATGCATTATTTAGTTGTGACACGTATTGATGAACATGATGATTTTG -TGAAAGACGTTTCAGATTATGAAGACATTTCGGATTTATACTTAATCAGCGATGCGTTAGTTACCGACTA -CTCATCTGTCATGTTCGACTTCGGTGTATTAAAGCGTCCGCAAATTTTCTATGCGTATGACTTAGATAAA -TATGGCGATGAGCTTAGAGGTTTTTACATGGATTATAAAAAAGAGTTGCCAGGTCCAATTGTTCAAAATC -AAACAGCACTCATTGATGCATTAAAACAAATCGATGAGACTGCAAATGAGTATATTGAAGCACGAACGGT -ATTTTATCAAAAATTCTGTTCATTAGAAGATGGACACGCGTCACAACGAATTTGCCAAACGATTTTTAAG -TGATAACTTAAAAACAATAAAAAATTATAAATTAATTAGTTAAGTGATATAAATAATAAACGAAATGTTT -GCTTGTATGTTATTATTTGTGTATGAAAACGTCTGATATAATGTAATATAGTTTTAAACAAAATATGCTA -AAATATAAGCAAAATATGTATAATTTTAAGTAATACACAGACATTTAGAGTTTTGATTTTAAAATGAGTT -TTCAATTGAAAAATGCAACGAAATTTAAATAATTAAATATAGATATAGTTGAATGGAGGAAGTATTTTAT -GAAATACGCTGGTATTCTAGCTGGAGGTATAGGCTCAAGAATGGGTAACGTACCTTTACCTAAACAATTT -TTAGATTTAGACAACAAACCGATTTTAATCCATACATTAGAAAAATTTATTTTAATTAATGATTTTGAAA -AAATTATTATCGCGACGCCACAACAATGGATGACGCATACGAAAGATACACTTAGAAAATTCAAAATTTC -TGATGAAAGAATTGAAGTCATTCAAGGTGGTAGCGATCGTAACGATACAATTATGAATATCGTTAAACAT -ATTGAATCAACAAATGGTATTAACGATGACGATGTCATTGTGACACATGATGCAGTTAGACCATTTTTAA -CGCATCGTATTATTAAAGAAAATATTCAAGCTGCTTTAGAATACGGTGCAGTAGATACAGTGATTGATGC -TATAGATACGATTGTTACATCTAAAGATAATCAAACGATTGATGCAATTCCAGTGCGTAATGAAATGTAC -CAAGGTCAAACACCTCAATCGTTTAATATTAATTTATTAAAAGAAAGCTATGCACAGTTGAGTGATGAGC -AAAAGAGTATTTTATCTGATGCTTGTAAGATTATTGTAGAAACAAACAAACCGGTTCGACTTGTAAAAGG -TGAGTTATATAACATTAAAGTAACAACACCTTACGATTTAAAAGTAGCGAATGCTATTATTCGAGGTGGT -ATTGCCGATGATTAATCAAGTATATCAATTAGTTGCACCTAGACAATTTGAAGTTACGTATAACAACGTA -GATATTTACAGTGACTATGTCATTGTACGTCCTTTATATATGTCAATTTGTGCTGCCGATCAAAGATATT -ATACTGGTAGCCGTGATGAGAATGTCTTATCTCAGAAATTGCCAATGTCTTTAATTCATGAAGGTGTTGG -TGAGGTCGTATTTGACAGTAAAGGTGTGTTTAATAAAGGTACAAAAGTAGTTATGGTACCGAATACACCG -ACAGAAAAAGACGATGTCATTGCTGAAAACTATTTAAAATCGAGCTACTTCAGATCAAGTGGACATGATG -GGTTTATGCAAGATTTTGTGTTGCTAAATCATGATAGAGCTGTACCACTACCTGATGATATTGATTTAAG -TATTATTTCATATACAGAGCTTGTAACAGTAAGTTTGCATGCTATTCGTCGTTTTGAAAAGAAATCTATT -TCAAATAAAAATACATTTGGTATTTGGGGTGATGGTAACTTAGGTTACATTACAGCCATTTTATTACGTA -AATTATATCCAGAGTCTAAAATATATGTCTTTGGTAAAACAGATTATAAATTGAGTCACTTCTCATTTGT -TGATGATGTCTTCTTTATTAATAAAATACCTGAAGGCTTAACATTTGATCATGCATTTGAGTGCGTTGGT -GGGCGTGGTAGCCAATCAGCAATAAATCAAATGATTGATTATATTTCACCAGAAGGAAGCATTGCACTGT -TAGGTGTAAGTGAGTTCCCAGTAGAAGTTAATACACGTCTCGTATTGGAAAAAGGACTAACGTTGATTGG -TAGTAGTCGAAGTGGTTCAAAAGATTTCCAAGATGTTGTAGACTTATACATTCAATACCCAGATATTGTA -GATAAATTAGCGTTGTTAAAAGGTCAAGAATTTGAAATTGCAACAATTAATGATCTTACAGAAGCTTTTG -AAGCAGACCTATCTACATCTTGGGGTAAAACAGTATTAAAATGGATTATGTAAATAGAAAAGGATGAATT -AACGTTGGTTAAAAGTAAGATATATATAGATAAAATCTATTGGGAGCGTGTTCAATTATTCGTTGAAGGA -CATAGTGAAAACCTAGATTTAGAAGATAGTAATTTTGTATTAAGAAATTTAACTGAGACACGTACAATGA -AAGCGAATGATGTCAAAATAGATGGGAATCAATTCGTTTGTCGTTTCAATGTAGCTATCTTAGATAATGG -TTATTACTTACCTGAAGATAAGTACTTATTAGTGAATGAGCAAGAACTTGATTATATTGCACAGTTAAAC -CCAGATGTGATTAATGATGCATATCAAAATCTAAAGCCAGAACAAGAAGAAGAATACAACGAATTAGAAA -CACAAAATGGTAAAATCAATTTCTTATTGCAGACTTACCTAAAAGAATTTAGAAAAGGCGGCATTTCAAA -GAAAACGGTTTATACTGTTACACCTGAAATTTCTAGCGATGTTAATGAATTTGTCCTTGATGTTGTTGTA -ACGACTCCGGAAGTTAAAAGTATTTATATCGTTCGTAAATATAAAGAATTACGTAAGTATTTCCGCAAAC -AATCATTTAATACAAGACAATTTATTTTTAAAGCGATATTTAATACGACGAAATTTTTCCACTTGAAAAA -AGGGAATACGGTGTTGTTCACATCAGACTCTAGACCAACGATGTCTGGAAACTTTGAATACATCTATAAC -GAAATGTTACGTCAAAATTTAGATAAAAAGTATGATATTCACACTGTTTTTAAAGCGAATATTACAGATA -GACGTGGCATCATCGACAAGTTTAGATTGCCATATTTACTTGGGAAGGCAGACTACATCTTTGTTGATGA -CTTTCACCCATTGATTTATACAGTGCGTTTTAGACGTTCTCAAGAAGTTATTCAAGTATGGCATGCCGTT -GGTGCCTTTAAAACAGTTGGCTTTAGTCGTACTGGTAAAAAGGGTGGACCATTTATTGATTCATTAAATC -ATCGTAGCTATACAAAAGCTTATGTATCATCTGAAACCGATATTCCATTCTACGCTGAAGCATTTGGTAT -TAAAGAGAAAAATGTAGTGCCTACAGGTGTTCCACGTACTGATGTACTATTTGATGAAGCTTATGCGACA -CAGATCAAACAAGAGATGGAAGATGAATTACCAATTATTAAAGGTAAGAAAGTCATTCTTTTCGCACCAA -CATTTAGAGGTAGTGGTCATGGTACAGCACATTACCCATTTTTCAAAATTGATTTCGAACGTTTAGCAAG -ATATTGCGAAAAAAATAACGCGGTTGTATTATTTAAAATGCATCCATTTGTGAAAAATAGACTTAATATT -GCAGACAAACATAAACAATATTTTGTTGACGTTTCTGACTTTAGAGAAGTTAATGATATACTGTTCATAA -CAGATTTATTAATTAGTGACTATTCATCTTTAATATATGAATATGCAGTATTTAAAAAGCCAATGATTTT -CTATGCATTTGATTTAGAAGATTATATTACGACGCGTGATTTTTATGAGCCATATGAATCATTTGTTCCA -GGTAAAATTGTGCAATCATTTGACGCATTAATGGACGCCTTGGACAATGAAGATTATGAAGGAGAAAAAG -TCATTCCATTCTTAGATAAACATTTTAAATATCAAGATGGTCGATCAAGTGAGCGTTTAGTCAGAAATTT -ATTTGGTAGCTAAGTTTATATAGTAGTCAAAGTGGGAGAGGTATAATGATGAAATTTTCAGTAATAGTTC -CAACATACAATTCAGAAAAGTATATAACAGAATTACTCAATAGCCTTGCGAAACAAGATTTTCCGAAAAC -TGAATTTGAAGTGGTTGTAGTTGATGACTGTTCAACAGATCAAACGTTACAAATAGTTGAAAAGTATCGC -AATAAATTGAACTTGAAAGTAAGTCAACTCGAAACAAATTCTGGTGGTCCAGGTAAACCTAGAAATGTGG -CGTTAAAACAAGCAGAAGGTGAATTTGTATTATTTGTGGACTCCGATGACTATATAAACAAAGAGACTTT -AAAGGATGCAGCAGCATTTATTGATGAACATCACTCAGATGTCTTATTGATTAAAATGAAAGGTGTTAAT -GGTCGTGGTGTACCACAATCTATGTTTAAAGAAACAGCACCTGAAGTTACTTTGTTAAATTCAAGAATTA -TCTATACTTTAAGCCCGACTAAAATCTATAGAACAGCATTACTAAAAGATAATGACATTTATTTTCCAGA -AGAATTAAAGAGTGCAGAAGATCAATTATTTACAATGAAAGCATATTTGAATGCAAATCGAATCAGTGTG -TTAAGTGATAAAGCGTATTATTATGCTACAAAGCGTGAAGGTGAACATATGAGTAGTGCGTATGTTTCAC -CTGAAGACTTTTACGAAGTCATGAGATTGATTGCTGTAGAAATATTAAATGCAGATTTAGAAGAAGCCCA -TAAAGATCAAATCTTAGCAGAATTTTTAAATCGTCATTTTAGTTTTTCTCGTACGAATGGCTTCTCACTT -AAAGTTAAACTAGAAGATCAACCACAATGGATTAATGCTCTAGGAGACTTTATACAAGCAGTTCCAGAAC -GTGTAGATGCATTGGTGATGAGTAAATTACGACCATTGTTGCACTACGCGAGAGCGAAAGATATAGACAA -CTATAGAACTGTAGAAGAAAGTTACCGTCAAGGTCAATACTACCGTTTTGATATTGTAGATGGTAAATTA -AACATTCAATTCAATGAAGGCGAACCATACTTTGAAGGCATTGATATCGCTAAGCCAAAAGTGAAAATGA -CAGCATTTAAATTTGATAATCATAAAATTGTTACAGAGCTAACGCTAAATGAATTTATGATTGGCGAAGG -ACATTATGATGTCAGACTTAAATTACATTCACGAAACAAGAAGCACACAATGTATGTACCTTTAAGTGTC -AATGCGAATAAACAATATCGTTTTAACATTATGTTAGAAGATATTAAAGCGTATTTACCTAAAGAAAAAA -TTTGGGATGTTTTCTTAGAAGTCCAAATAGGTACGGAAGTATTTGAAGTGCGTGTTGGTAATCAACGTAA -TAAATATGCTTATACTGCAGAAACAAGTGCATTAATTCATTTGAATAATGATTTTTATAGATTAACACCG -TATTTCACAAAAGACTTTAATAACATTTCGTTATACTTTACAGCTATTACATTAACGGATTCAATCTCAA -TGAAGTTAAAAGGTAAAAACAAAATCATTTTAACTGGTCTGGATCGTGGTTATGTATTTGAAGAAGGTAT -GGCTAGTGTCGTGCTAAAAGACGACATGGTGATGGGAATGTTAAGCCAAACATCAGAAAACGAAGTTCAA -ATCTTACTTAGCAAAGATATTAAGAAGCGAGACTTCAAAAATATTGTTAAGTTAAATACTGCACATATCA -CTTATCCACTAAATAAATAATAAAACCCCTCAAATCATTGTGAACTAACATGATTTGAGGGTTTTATTTT -ACTGTTTATGACATGATTATGACATTTCCTCGTTTATCATTTTCAAATACATTAAATTGTATACACTGGA -AATGAGGAGGTTATCTATAATGATAAATAAAAATGACATAGTAGCAGATGTAGTAACTGATTATCCGAAA -GCAGCGGATATTTTTAGAAGTGTGGGAATAGATTTTTGTTGCGGCGGACAAGTAAGTATAGAAGCAGCAT -CCTTAGAAAAGAAAAATGTAGATTTGAACGAATTATTACAGCGTCTCAATGAAGTTGAACAAACGAATAC -ACCAGGTTCGCTTAATCCTAAATTTTTAAATGTTTCATCACTTATTCAATATATTCAATCAGCATATCAT -GAACCTCTAAGAGAAGAATTTAAAAATTTAACACCTTATGTGACGAAGTTATCGAAAGTACATGGACCTA -ACCATCCATATTTAGTTGAGTTAAAAGAAACATACGATACATTTAAAAATGGCATGTTAGAGCATATGCA -AAAAGAAGACGATGTCGATTTTCCAAAACTCATTAAATATGAGCAAGGTGAGGTAGTAGACGATATTAAT -ACTGTGATAGATGATTTAGTTTCAGACCACATTGCAACGGGACAATTGTTAGTAAAAATGAGCGAATTAA -CATCTAGTTATGAACCTCCGATAGAAGCGTGTGGTACTTGGCGACTCGTTTATCAGAGATTAAAAGCACT -TGAAGTGTTAACACATGAACACGTACATTTAGAGAATCACGTATTATTTAAAAAAGTATCATAACTAAAT -AACGCGATTAGAAACTGTTGGCAAAAATAAGTCCAGCAGTTTTTCGCTATGTATAAAAGTCATAATAGTG -ACATGAACATCATTATTTGAAAAGAAAAATGATCAATATAGTATAAGAAATGATATGAAATTTTAATGCT -GTAGATAATTAAATCGTAGCGTGATTTTTTAATAATTTATTCATGAATTTTACATGCACTATTATGATAA -AATAAACATAATTATAATTCACTGAGGTGCTATCGTGCTATCGCTAACAATGTTATTACTTGAGCGTGTA -GGTTTAATTATTATTTTGGCCTATGTGTTGATGAATATTCCATATTTTAAAAACTTAATGAATCGTCGAC -GTACATGGAAAGCACGTTGGCAATTATGTATTATTTTCAGTTTGTTTGCCTTAATGTCTAATTTAACTGG -TATCGTCATCGATCATCAACATAGTTTGTCAGGAAGTGTGTACTTCCGTTTAGATGATGATGTATCTTTA -GCTAACACACGTGTATTAACGATAGGTGTCGCAGGATTAGTTGGTGGCCCTTTTGTAGGTCTATTTGTTG -GCGTTATTTCAGGTATTTTCAGAGTGTATATGGGTGGGGCGGATGCACAAGTTTATCTTATATCATCTAT -ATTTATCGGTATAATTGCTGGTTATTTTGGCTTACAAGCTCAAAGACGCAAGCGTTACCCGAGTATTGCA -AAAAGTGCCATGATTGGAATTGTTATGGAAATGATTCAAATGTTGAGCATTTTAACATTTTCCCACGACA -AAGCATATGCGGTTGACCTCATATCATTAATTGCACTACCAATGATTATTGTTAATAGCGTTGGTACGGC -GATTTTTATGTCTATTATCATTTCAACATTAAAGCAAGAGGAGCAAATGAAGGCTGTTCAAACACATGAT -GTACTGCAATTGATGAACCAGACATTGCCGTATTTTAAAGAAGGATTGAATAGAGAATCGGCACAGCAAA -TTGCGATGATTATTAAAAATTTAATGAAAGTATCTGCCGTAGCAATTACAAGCAAAAATGAAATTTTATC -GCATGTAGGTGCAGGTAGTGATCATCACATACCAACAAATGAAATATTAACAAGTCTGTCTAAAGATGTA -TTGAAATCAGGGAAGTTGAAAGAAGTTCATACTAAAGAAGAGATTGGTTGTAGTCATCCGAATTGCCCGC -TTAGAGCAGCTATCGTGATACCACTTGAGATGCATGGTTCTATCGTCGGTACATTGAAGATGTATTTTAC -AAACCCTAATGATTTAACTTTTGTGGAACGTCAACTTGCAGAAGGATTGGCAAATATTTTTAGTAGCCAA -ATTGAACTTGGTGAAGCCGAAACGCAAAGTAAGTTATTGAAAGATGCTGAGATTAAGTCATTACAGGCAC -AAGTGAGTCCACATTTTTTCTTCAATTCAATTAACACGATTTCAGCTTTAGTTAGAATAAATAGCGAAAA -GGCACGAGAGTTACTATTAGAATTGAGTTATTTTTTCAGAGCGAATTTACAAGGCTCAAAGCAACATACG -ATTACTTTAGATAAAGAGTTAAGTCAAGTGCGTGCATACTTATCACTCGAACAAGCACGTTATCCAGGAA -GATTTAATATCAATATTAATGTTGAAGACAAATATCGCAATGTGCTTGTACCACCATTTTTAATTCAAAT -TTTAGTTGAAAATGCTATCAAACATGCGTTTACGAATCGAAAGCAAGGTAACGATATTGACGTGTCAGTG -ATTAAAGAAACTGCAACACATGTACGTATTATTGTACAAGATAATGGTCAGGGTATTTCTAAAGATAAAA -TGCATTTGTTGGGAGAAACATCTGTAGAATCAGAATCTGGAACTGGTAGTGCTTTAGAAAATTTAAACTT -ACGCCTAAAAGGATTATTTGGAAAATCCGCAGCATTACAATTTGAATCGACATCGAGCGGTACCACTTTT -TGGTGTGTACTTCCTTATGAAAGACAAGAGGAGGAATAAATATGAAAGCATTAATCATAGATGATGAGCC -ATTAGCACGTAATGAATTAACATATTTATTAAATGAAATTGGTGGTTTTGAAGAAATTAATGAGGCAGAA -AATGTAAAAGAAACATTGGAAGCACTACTGATAAATCAATATGACATTATATTTTTAGATGTCAATTTAA -TGGATGAAAATGGTATCGAATTAGGAGCTAAAATTCAAAAGATGAAAGAGCCACCTGCGATTATTTTTGC -AACTGCACATGACCAATACGCAGTACAGGCATTTGAATTAAATGCGACAGACTATATTTTGAAACCGTTT -GGTCAAAAACGTATTGAACAAGCAGTCAATAAAGTTCGTGCGACTAAAGCCAAAGATGATAATAGCGCAA -ATGCAATTGCGAATGATATGTCGGCGAATTTTGATCAAAGTTTACCTGTTGAAATTGACGATAAAATTCA -CATGTTAAAGCAACAAAATATTATTGGGATTGGCACACATAATGGTATTACAACCATACATACAACGAAT -CATAAATACGAAACAACAGAGCCATTGAATCGTTATGAAAAACGATTGAATCCCGCTTATTTCATACGTA -TTCATCGTTCATATATTATTAACACGAAACACATTAAAGAAGTGCAACAATGGTTTAACTACACTTATAT -GGTAATATTGACAAATGGTGTCAAGATGCAAGTTGGACGTTCATTTATGAAAGATTTTAAAGCGTCGATA -GGATTACTTTAACAGTAATCCTTTTTTTTATGCATTTTACCTATGATATTTTGTATTTCGGACTAAAATT -CACGCAAATCAAAGTGAGCCATCTATACTTTAGTTAAATCAAACGTAGGAGGCAATGGTCGTGAAACAAC -AAAAAGACGCATCAAAACCAGCACACTTTTTTCACCAAGTCATTGTAATTGCTTTAGTACTCTTTGTATC -GAAAATAATTGAATCATTTATGCCAATTCCTATGCCTGCATCAGTAATCGGTTTAGTATTATTATTTGTA -TTATTATGTACTGGTGCTGTTAAGTTAGGCGAAGTCGAAAAAGTAGGAACGACACTAACAAATAACATTG -GCTTACTCTTCGTACCAGCCGGTATCTCAGTTGTTAACTCTTTAGGTGTCATTAGCCAAGCACCATTTTT -AATCATTGGACTAATAATCGTCTCAACAATACTATTACTTATTTGTACTGGCTATGTCACACAAATTATT -ATGAAAGTTACTTCGAGATCTAAAGGTGACAAAGTCACAAAAAAGATCAAAATAGAGGAGGCACAAGCTC -ATGATTAACCACTTAGCACTAAACACACCTTACTTCGGAATACTGTTATCCGTTATACCATTTTTCTTAG -CAACCATATTATTTGAAAAAACAAATCGTTTCTTCTTATTCGCACCGCTATTTGTCAGTATGGTATTTGG -TGTGGCCTTCCTCTATTTAACAGGAATTCCGTATAAAACTTACAAAATAGGTGGAGACATTATTTACTTC -TTCTTAGAACCAGCAACAATCTGTTTTGCGATTCCGTTATATAAAAAGCGTGAAGTGCTTGTTAAACATT -GGCATCGTATCATCGGAGGTATTGGTATCGGTACAGTTGTAGCGTTATTAATTATTTTAACTTTTGCGAA -GTTAGCACAATTTGCCAATGATGTTATTTTATCAATGTTACCTCAAGCAGCAACTACAGCGATTGCGTTA -CCAGTATCAGCTGGTATCGGTGGTATAAAAGAATTAACATCATTAGCAGTTATTTTAAATGGTGTCATTA -TTTATGCCCTAGGTAATAAATTCTTGAAGCTTTTCCGAATTACTAACCCTATTGCCCGAGGATTAGCACT -TGGAACAAGTGGTCACACATTAGGTGTAGCACCAGCCAAAGAATTAGGACCTGTAGAAGAATCAATGGCA -AGTATAGCTTTAGTGTTAGTTGGTGTAGTTGTTGTAGCAGTTGTGCCTGTCTTTGTAGCAATATTCTTCT -AAAACGAAAAACCTAAGCAAGATAATAGCAATTTGAGCCATTGTTATTATCGTAAAAAAACGTCTATACT -CCGGTTTATAACTGGGATATAGACGTTTTTATGTATTTATTACTTTTTACTAGGTTTTATGGTATTTAGG -CGTTCGTTTTATGTATTGCGGCTTTTGAAAAATGATAGAACGAATTAATTTAACTAAGAATTAAAATGTA -AGTTATATCATTTGTGAAATTTCAATTAAATATTTTTCGACAAATTCTTGAAATTACTTAATGTCATCAA -CACTTTATAAAAAAACGGCGTATGCTTATATGTAAGAATGCAATTAAGAGGAGATTTTATAAATGAGTAT -GCAAAGTTCATATAAACGTTTAGTTAAAGTGCTACTAACGATTTTAGTGATTGTGTTTTCAATTTTACTA -GTAGGTGGTTGGTATATTTTTAAAAATGAAGCACCTCGTCCAACAAAGATAGTAGATCAACAAGGTCATA -CGCTTGTTACAAAAGGCGAGCTAATCAGTGGGCAAGCGATATATGAGAAATATGGGTTAACAGATTATGG -CTCCTACCTGGGCAATGGTTCCTACTTAGGCCCAGATTATACAGCAGAGGCATTACATCATTACCTGATT -GGTATGCGTAAATATTATGCACAAGATATTTATCATAAGCAACTTCATAAATTAAATCATGCAGAGTTAG -CCGTAGTTAAAGATAAAGTGATGAAAGAAATACGGATTAATCGTTATTCTGAAAAAGAAGATCAACTTGT -ATTAACGCCAGGACAAGTATACGGTCTAAAATATTTGCAAGATTATTATAAAAAAGAGTTTGTTAATAAC -CCTAAACAAGTAGGGTTAAATGAAAATATGATTAAACAGTTTCAAAATGATGATTATATGGTCGCAGGAA -ATAAAGTTGAACATTTAAGTCAATTCTTTTTCTGGGGTGCTTGGCTATCATCAACAGATAGACCTGGAAA -AACATTTTCATATACAAATAATTGGCCATACGATGTGGATGCAGGAAATACGTTGCCTAGTGCAGGAATT -TTATGGACTGCTATATCTGTAACATTACTGATTGCAGGCTTGGCATTCATTATATATATTCAAAAGCGTT -ATGAATTTGACATGAAGCCGACGTATGAGTCGGAACGGGAACTACCAAAGATTGAAGTAGATAGTAAAAT -CACTGATAGTCAGCGAAAAGTTGGGAAATATTTAGTCGTTGTCATGTTACTATTTTTGGTTCAAATATTA -TTAGGCGAATTACTGGCACATTATTATGTAGAGAATAAATTTTTTGGTATAGAAATACAAAGGCTCTTTC -CATTTAATATTGCGAAGACATGGCATGTGCAATTAGTTATTTTCTGGGTTGCTACGACTTGGTTAGCAGC -AGGAATATACATTGTACCTAAAGTATTGGGCAAAGAACCAAAGAAACAAGGCGTATTAGTAGATATCTTG -TTTTGGGCCTTAATCATAGTTGTGATGGGCAGCATGATTGGAGAATGGGGTCATATTTTAGGTTGGATTG -ATTCTCATTGGTGGCTATTCGGGCACTTTGGTTGGGAATATATAGAATTAGGTAAATTTTGGCAAATATT -ATTTATAGTAGGTATGGTCTTATGGGTTATCATTCTTTGTCGAGGGTTTTTACCAGCTATTCGCAACAAA -GTACAAGCGAATCATGATAAACGTCACTTATTGACGCTATTGTTTGTTGGAGCAATTGCAATTCCGTTAT -TTTATCTTGCATCATTATTTATAATGCCGAATTCACATGTGACGTTTGCAGATTACTGGCGATGGTGGAT -TGTTCACTTATGGGTTGAAGGTATATTTGAAGCATTTGCCGTAGTGTTGATTGGTTTCTTAATGGTTAAT -ATGAAATTAACTACCATTGAAACGACGATTCGTGCATTATATTTTCAATTAATCCTATTACTAGGTACAG -GTATTGTTGGTATGGGTCATCATTACTATTGGCAAGGTGATCATTCCATATGGCTAGCACTGGGTTCTTG -TTTTTCAGCATTAGAAGTCGTGCCACTTTGTTTATTAATTTGGGAAGCATACACACACTATCGCTTATAT -AAGAAAAGTGACATCGCTTTTCCTTACAAAGGTACATTTATTTTTCTTGCTTCAACAGGATTGTGGAATG -CAATTGGTGCTGGAGCATTAGGCTTTTTAATTAACACACCAGCAGTTAACTACTTTGAACATGGTACGCA -ATGGACTGCAGCACATGCCCATGGTTCTATGGCTGGCGTGTATGGTATGTTCTCAATTGCAATTGCGTTG -TATGTTTTTAAAAATATTACTAAAAAAGAATTTTGGACACCGAAAGTTGAAAAATGGATTAAAATATCAT -GTTGGGCTTTAAATGTTGGCTTGGCAGGTATGGTGTTCATTACATTAATGCCAGTAGGTTATATCCAACT -TAAAGATGCATTAGAACATGGTTATTGGCATTCAAGACTAACGTCATTTTATGAACAACCACTTGTAAAA -GCAATCATGTGGGGTAGAATGCCTTGGGACATTATATTCACAGTAGGTGTCATTATATTAGTAGTTATTT -TTATAAGGGGATACAGACACTTAAAACCAAAATACAGAGTATAGATCATCTTATTACTGAGTGATCTTAG -TGTGTTTTAACGTTTGAGACGAAGAGATATTATACAATAGGATTCAAACTATAAGTTCTTAGATTATGTA -TATATAAAGAACAGTAAAAAGTAATTTTCTGATTGAAAATGTACTTCTCACTGTTTTTAAAGAAATTATG -TCCTATAAAACGTCTATACTCCGGTTTATAACTGGAATATAGACGTTTTGATGTTTGTATTACTTTTTAC -TAGGAATATAAAACTGTGCATGACGATAATGAAATACGATGTCAGATGAATCAAAAGGTTTGCCAGTCAT -TGTATAAAACGTTTGGTGATAACGTAAACATGGTTCACCTGCAGATAATTGTAGTAATGAAGCTTCACTT -GAAGTGAGTTGATCTACATTAAAGAAAATATCTGAAAAACCAATACGAAGTTTCATGTTTGATTCTAAAT -AATCGAAGATAGAGCCCTTAGCAATATCATCATTTAAATATTTCACGATTTCTTTATGATAATAAGAATA -TTCGATACATAAAACATCATCGTCCACGAATCTTAATCGCTCTAAATAGTAGACGGTATCATCTGCATTT -AATTGGAGCTCATCTTGTACAGATTTAGGTGGCGTTGCAATCTCCTTAAAAACAAGTACCTTACTTGTCA -TTCGATGTTCGCCTAAACTTTTAGAAAAACCATTGGTCTTAAAAACATTGATACGATTTGCATCTGCAAT -ATTTCTCACATAAATACCACTGCCTTGTGCTTGATAGATCAAACCATCTTGTTCCAATAAGCCTAATGCT -TTAATGATAGTACTCTTACTTACTTGATAACGTTCTTTTAATTGCGTCACGCTTGGCAATTTATCACCGG -GTTTGAAATTAGATTGATGTATAAACGCATTAAGTTGCTTAGCAATATGTTCATACTTTAACAATATTCT -GTCCTCGTTTCACTTTGTCTGTAATTATTATAGCACAAAATATTATAATTGTATCGGCGTTTACAAATTG -AACCGGTACAATTATAATTATGATAAGTCATATATTTCCATTCTATTATCAAGTTGAGGGGGTAATACTT -ATGGGCAATAAATATAAAGATTATGCTCAAGACATCCTTACAGCTGTGGGGGGTGTCGAAAATATTGTTA -ATGTATCGTATGATACGGTACGCATGACCATTCATATGCATCATGCAATTCCTTCTACTGCTAATGAAGT -AACACAAATAGATGGCGTGGCGTCAGTTGATGAAAATGAAACACAGTTAGTTATCGTATTTAATGAAGAA -GTAAAATATGTATATCAACAATTACAATTGTTAATGGACGACGCCAAGCATCAAGAAGATACGAATCATG -ATGCTGTGGATACTCAAGAAACAGAACAGAAAGCGCAAGCAAAAGTGACAACACCAATTTTAGTGAAAGC -ACCAATCGCTGGTCGTCGTATTTTACTTAAAGAAGTAAGAGATTCAATTTTTAGAGAGAAAATGGTAGGC -GAAGGCTTGGCAATCAAAGCTCATGAAGAATCCAAAGTAATCGCACCGTTCAATGGTTTAGTATCTATGA -TTGTACCAACTAAGCATGCAGTTGGTATTCAATCAGAAGACGGTGTGGACATAGTCATTCATATTGGTGT -GAATACAGTTGACTTGGAAGGTAAAGGATTCGAGTGCTTTGTAAAGCAAAATGATCGTGTTGAAGCAGGG -CAAACGTTGTTACAATTCGACCAGCAATATATACAACAACAAGGCTACAATGCTGACGTTATTGTCGTTA -TTAGCAATTCTGCCGATTTAGGAAAAGTAGAACTGACAATGAATGAAATCATTACGACTGAAGATGTTAT -TTTTAAAATATTTAAAAACTAGGAGTGTGTTGTAATAATGACAAAATTACCGCAAAATTTTATGTGGGGT -GGCGCTCTTGCCGCCAATCAATTTGAAGGTGGATATGATAAAGGTGGTAAAGGGTTAAGTGTAATTGATG -TTATGACGAGTGGTGCACATGGTAAAGCACGTCAGATTACAGAATCTATAGATCCCAATCACTATTATCC -AAATCATGAAGGTATTGATTTTTATCATCGTTATAAGGAAGATATTGCCTTGTTTAAAGAAATGGGATTG -AAATGTTTACGTACGTCGATTGCTTGGACACGTATCTTTCCGAATGGGGATGAAGATGTGCCAAATGAAG -AAGGACTTGCCTTTTATGATCGTATCTTTGATGAATTAATTGCACAAGGTATTGAACCTGTTGTGACGTT -ATCACATTTTGAGATACCACTTCATTTAGCGAAACATTATGGTGGATTTAGAAATAGAGAAGTTGTCAAT -TATTTTGTGCATTTTGCGCGTGTTGTATTTGAAAGATATAAAGATAAAGTGACATATTGGATGACGTTTA -ATGAAATAAATAATCAGATGGACACATCAAATCCTATCTTTTTATGGACGAATTCTGGGGTAGCATTGAC -AGAAAATGATAATCCTGAAGAAGTCTTGTATCAAGTAGCACATCATGAACTTTTAGCCAGTGCTTTAGCG -GTTCGTCTTGGTAAAGAGATTAATCCGAAATTTAAGATTGGAACAATGATTTCACATGTACCCATTTATC -CATATTCGTGTCATCCGAAAGATATGATGGAAGCACAAATTGCGAATCGCTTACGTTTCTTTTTCCCGGA -TGTTCAAGTAAGAGGTTATTATCCAAGCTATGCTAAAAAAATGTTGGCACGAAAAGGATATGATTTTGGA -TGGCAAGAAGGGGACGACAGTATTTTACAGCAGGGCACGGTTGATTATATTGGCTTTAGTTATTACATGT -CTACGGCTGTAAAACATGATGTTGATACTACAGTTGAAAACAACATCGTCAACGGTGGTTTGAATCATTC -TGTGGAGAATCCGCATATCGCAACGAGTGATTGGGGTTGGGCGATTGATCCAGATGGCTTAAGATATACA -TTGAATGTGTTATATGATCGTTATCAGTTGCCACTTTTTATTGTGGAAAATGGTTTTGGTGCAGTTGATG -AAGTGGTAGATGGACATATTCATGATGATTATCGCATTGAATATTTAAAAGCACATATTACAGCAGCGAT -AGAAGCAGTTGATCAAGATGGTGTAGATTTAATCGGTTATACACCGTGGGGAATCATTGATATTGTTTCA -TTTACAACTGGTGAAATGAAGAAACGCTATGGTTTAATATATGTTGATCGAGATAATGATGGTCGTGGCA -CGATGGAACGCTTGAAAAAAGATTCGTTCTATTGGTATCAACAAGTGATAGCATCAAATGGAGATAAATT -ATAAAGGTACATTATAAGTATTTTAGGGTTAGAGCCCGAGACATAAATTAATATGGTAGGCCCTAAAGTG -TTATATTGGCGGGCCCCCAACATAGAAGCTGGCGGAAATACAGCTTACAATAATGTGCGAGTTGGCAGGC -CCCCAACACAGAGAAATTGGAACACCAATTTCAACAGGCAATGCAAGTTGGCGGGGCCCCAACATAGAGA -ATTTCGAAAAGAAATTCTACAGGCAATGCAAGTTGGGGAAGGACAGAAATAAATTTTGCGAAAATATCAT -TTTTGTCCTAATCCCGTGATGTTAAAATTTTAAGAAAAAAATAATGCCACTAACTAAGTATGTATAGTGT -TAATGTTTGAGTATTTATAAAAGTCTTTAACCAAAATTGATGACCTACTAATCAACGATAACGATATTGT -TAAGTAGATGATTAGTGTCACAAAGAAATTAAAGTAACAGTCAAACATAGATATAAAGTACAGTTAGTGG -CATTATATTTAGTGCTCTTTTTTAGCGACAAAAGTAATATAATTCATATCTTTACGCAATTTAGTCATCG -TTTTAAACATTTTACAAAACATTGGTCGATTTTCTTTTTTTAAAGCATTGTTGATAATCTTTATAGTTCC -AACAATACCTTCGTCATAAATTAAACCTTTTGGTGTCATTAAACTCATTGGACCAGTATGATAATGTACA -TGATTAAAACCAGCTTGATGATATAAATCTAACCAGCCAAGTTTCGTCTGCGGTGAGACATTGACATTAA -TTGCTGCAGATAATGATTTAACTACATGTGTGGCATGTGATTCATTAACGATGACAATATCATGTGTTAA -CAAGATACCCCCAGGCTTTAAGACTCGGTAGTACTCGCGTAATGCTTTTTCCTTTATGGCGATGGGTAAC -ATTGTTAACATTGCTTCATTTAAAACGATATCGAATTGATTGTCATCAAAGGGCAATTTAACAGCATTCG -CTTGTTGAACTTGAATATATGATTCAAGACCTGCTGCTGAAATATTTTCCTGTGCTTTTTCTAATGCTTT -CTTATTTATATCAACGCCTTGAATGTGACAGCCGTATGTATGAGCTAGATAAATAGATGTTGTGCACATA -TTACATGCCACTTCTAACACTTGCTTATCTTGTGAAAATGCCCCTTGTTGTATTAACCAATCTGTTGCTT -CTTTACCACCGGGGCGTAGACGAGTTTTTCCTAATTTAGCTAAAAATGTATGACCAGCTTCTTTGGACAT -AACATAACCTCCTTTTAATTGATAATTATTATCATTAATATAGCATATTTATATGCGATAATTTGGAAGT -TAACAAGATTACAAAAAATTGTCACTTCATTTATAACTAAACATGAGTCTTCAAGCATAGGTTTAGTGGA -AAATTATTTCTAATAGATGATGTTTTATAAAGATAAAAAAGCACAGCCATGATATACGAATGTTGCATGT -TATATGCTAAACCTTCATATCATAGCTGTGTTTGATTCATTTAAACTTGATTTACTTCTTCTAGTAGAGG -AATAGATGCTTGCGCGCCGTGTTTTTGTACAGTGAGTGAGCTCGCTTTATTACCAAAATCAATAGCATCT -GCTAAGTTATCTTGCGACTTGTTTAAGCGACTGACAAATGCACCAATAAATGTGTCGCCTGCAGCAGTTG -TATCAATCGCATTTACTTTATAAGCTTCGATGTGTTGGCTTTGATTTTTAGTAGCAAAATATGTACCTTG -CTTACCTAGCGTAATCAAAACAGTCTTAATGCCTAAAGATAAAAAGTAATTGGCATTGTCTTTCATAGAT -TGTTCATTTGTTACTTTAATCCCAGATAACAATTCGGCTTCTGTTTCGTTTGGCACAATAATATCGATTA -ATGACAATAATTCATTAGGTAATGCTTTCGCTGGTGCAGGATTTAATACAGTCGTCACACCATGTGCCTT -GGCAATTTCAAATGCAGATATAATAGCCGGGATGGGTACTTCTAATTGTGCAACGACAAAGTCTGCATTG -ATTATAGCGTCTTTTGCGTTAATAACATCTTCAGGTGTCATCGTCATATTCGCACCACCATAAACATAGA -TGGTGTTTTGTCCTTCTGCATTCACAGTGATAAAGGCTTGGCCCGTTTTTGCTTCAGCTGTTTTGATAAT -ATATGACGTATCAATATGAGCCGCTTTAAAATCTTCTAAGATGAAATCAGCAACGCCATCAGTGCCAATT -TTAGTAATAAATGTTGTGTCTGCTTGCATGCGTGCAGTGGCAATAGCCTGGTTGGCACCTTTACCTCCGC -CGAATGCTTTTTGTGCTTCTTCAACATGTAATGTTTCGCCTGGTTGTGCATATCTTTCAACTGTTAAAAA -TTGATCGACATTCGTTGAACCTAAAATAACAACTTTGTTGGTCATGTGTATGCTCCTTTCAAGTTATAAT -TTTTAAAAAGTAACATTCGATTCTAATGCAATATTAGAGTAGGGCGTTGTCTCACCAGTACGAATATTAC -CTTTATTTAATGGGTGAGCTAAGTTACTTTTCATTTCTTCGTGAGGAATGAAAATGATTTCGATTTCCGA -TGAAATCAATTGTTTAATTTGTTGCAATTGTGTAGGGTTATGTTCTTTTATTTCTTCTGCTAAGTATATT -TTTTGGATTTCCATTTCTTCTAACACTGTAGCTAAGACATCAATAAAGCGCGGTAAGTTTTTTGTGACAG -CTAGGTCGATACGACGATGATCATTTGGAATTGGCATGCCAGCGTCATTAATTGTTAATAGATCAAAATG -ACCAATTGTCGCGATTGCTTTTGAAATATGTTCATTTAAAACAGCTGATTTTTTCATGACATCTACACTC -CTTATTTTATAAATACTGTAACAGAAGCGGCTACTAAAATGAGTACTAAGCCGATGATTGTAATAACCAT -TTCTTTTGACGTTTTATGTTGTTTTAAGAAATAAATACCAGTTAATGTAGCAAGCACAACGGATGTTTGA -GAAAGAATAAATCCAGTTGCTAAACCATTCATATTAGGTTGTGCTGAAATAAGATATGTTAAGGCACCAA -ATGCAAAGAAGAAACCTGAAATAATTTGTAACCACGTAATTTTATTACGGAATGGATTCTCTGCTTTCAT -ATTCATAAAGCCATAAATGACTGCAACAATTACCATACCCATTGCTTGAGGTAAAAAGGCAGTTAGGCCA -TCAATAGAAGTTGCTTGCGGTGCAGCTGAATATAACCAGTATCCAAATTCACCAATTAACAGAAGTACCA -CTGCACGACGTAAATTTTTGGCGTTACTTGCTTCTTTGCGTTCACTCCAAACTGTCATACGCGCACCAAT -TAGAATAACGACTAAAGCTGTAAATCCAATGATTTTATGACCAATGCCTGGCCAATTTCCTAATGCAAAG -ACACCCCATAAAGATGCGCCTAATAATTGGAATGCTGTTGTGACTGGCATGGCACGAGATGAGCCGACTA -ATTCGAACGCTTTAAATGTAATGATTTGTCCGAATCCCCATCCTGCACCTGATAATAAGGCGAATAGCAA -ATTGGTTCCAGTAGGAAAGCCACTTGATGTGACTACGGCTAATATAATAGCGAAGATTAACGTACCTACA -GTAGCACCGATAATTTGATGTACAGGTTTACCACCAAACTTTGAAGCGACTGTTGGGAAGAAGCCCCAGC -CAATTAAGGGGCCTAACCCGATAAGTAATGCAACAATGCTCATGTTATACACCTCACGATTTGTTTTTAG -TAAAACGTTTTACCAGTGCCATCGTACCATTTTTATTTGTAAAATGCATGCGTTTTCATAAAAGCTGAAA -ACGTTTAAATCATATTTGAAAATTCATACATTATTATTTTAATTTCATAGTGAAATAATTATGATTAAAA -ACCCTCAGCATTAAAGCAACGCTAAGGGCCTAACAATGATGAGTATATTTCGGAAGATACGTAGTTAGTT -TGAAAGATGATAGCCAGTTGTTGCACGAATTTTTAAAGTCGTTGGTAATTCAATCATATCAATGGATTTA -TCTAAGTGCTGTAATCGTTGAAGTAATAAGGTTAAAGATGTTTTGCCAATATCAGTTATAGGTTGTGCCA -CAGTAGTTAAAGGTGGCGAGACGTACGCTGCATAATCAATGTCGTCATAACCTATTAATGAGATATCTTT -CGGGATACTGATGCCATGTTCAATTAGTCCTCGTAAAATGCCAATAGCGAGTTCATCGTTAATAGCGAAG -ATTGCAGTGGCAGATTGAACCATGATGTCATCAACAATGGTTAGCCCACCACGCTTAGATAATTCAGTAT -GGACGATTTGTGGTTCTGGCAATTGATTCGCGCGCAAAGTATCAACAAATCCAGCGACACGAGTCGACAT -ATTCGCCATCATGTCATATGGTGCAACAATCATCATATTGTTGTGACCGAGTTCTATTAAATGTTGTGCT -GCAAGTTGTCCGCCTTGATATTCATTTGTCCGAACAAAATCTGTATAGCCTTGATGGTCATTTTGATCCA -GTACGACATAAGGTACATGATGTTTCTTTAGATAGTTATTTAGGGCGTCCGGGGATGAAATGTATTGTGC -GATAATTAATCCGTCAATACCTCGATCAATTAAATGTTTAATATTGTCATACAAATCAGTTGCTGTAGAT -GTTAAAAAGCATAAATCAACATCAGATGGTTTATGGTCATGAATACTTTGCATCAGTGCTGAGAAAAACG -GATTTGTTAAGCTAGGTAAAATGACGCCAATAGTTTGAATTTTACTGCCGCGCAATTGTTTTGCATGTTT -GTTAGGGGCGTAGCCTAAACGTTCTGAAACAGCATGTACGTTTTTTATCGTTGTTGCGGAAAAACGACTA -TCATTATGATTTAAAATATGTGACACAGTTGTGACTGATACACCAGCTTCTCTAGCAACATCTTTAATTG -ACACTTTTTTCATATTATATTCCTTCTCTTTATTGTGTAATTAATCATACAGTTATATACCCGATTATTA -TATTCATCATATCATGATAAACATTTGATGACATATGAAGACGTGAATGACTTTTATTGTCTACAAACAG -ACGCCTATAGTATGCGATTAAGGTTGAGGCGAGAGAATATATTATTAAGGTTAATACCTTTTAATGGTTA -TGATAACTAGAATTTTAAAATGTTTATTGTGATGAAAAATACAAAAGTCATTATTTTAAATAATAAAATA -TTTGTTTTTGAAAAAAGTATTAAAAAACATAACAAAATGATGTATATTGAACTATGTGATTGAAAAAATT -TTTAATTAAGGCTTGTTAAAACTTAAGAGAGGATGTTTTTAAATGCAATTCAAATTAAAAGAAGAAGAGA -TTATTAGTTTTTTAGAATTGAAATATCCAGAAAAAGAGTTCGAATATGGTCGTTTGTTAGTTGGACAACA -TAAACGCGATGATTTAGATGTTTATTACTTTGGCGATACGTTTTTAATGTGCACGATTATTTCATTCAAG -ACATTTGAAATTAAAGAAACAGTAGAATTATCATATGATGCTGTTAATCGTATTGTGTTAAAAGATGGAT -GGTTATTTAGAAAAATGAGAATAGAAACAATGCAAAAAGTGTTAAAATACGGTACATCTAAATTAATGTT -AACTGATTTTCAAAAGGACAATTATAATAAATATATTCAAGGTCAGAAACAACGCGTGATATTTGAAAAT -GGCCATTTTGTCTAATTGATAGTGAATAATAATTAGAATAAGCGAAGAACAATGAAAAATGTTCTTCGCT -TATTTTTATAGAATTTGATGTATATCATTTTAAAGTGATAAAGATATTTCGAAACATAATTCTTCTATTA -TATTTAAGATTTAACTGTTTTTGGAATGATCATGTATGCAGACAATGAGCCGAGTATCATTAATACAATG -CTGACGATGAATGTTACAGTTGCAGCTACACTTGGTGCATAGTTTAGTTGTAACATACTGAAAACTGTAG -TACTTAGTGCTATACCAAAGGCGCCACCTAATGTACCACTCATTTTATATAATCCTGTAGCTAAACCAAC -TTTTTCATTTGGCATACTGAAAATTGCAATTGTAAGGCCGGGTGTTGCGACTAAACCATTTCCAATTGCG -CAAATGACAAACCCAATAACAACAGCAATGATATATTGTGATGGTTGAAGTGATGTCATGCTAATAATAG -TGATGCCGATGACAGGGAACAACGGACCAATGATGAGCATCAATTTGCCACCGAAACGTAATGTTGCTTT -TTCACCTAAACGAATCATCGCAACTGCCACAATGGCATATGGCAATGTAACAAGTCCAGATTGCGCAGCT -GATAAACCAAGGTGTGTTTGAGCATATATGAAAAAGACCACTGTTACGCCTAGACCGCTATTTAAAACAA -AGTTATTTAAAAATGCACCAATGAACGGACGGTTGCGTAATACTGAGAAATCAATAAAAGGTACTTCATG -TCGACGTTCGATGATGATGAATATCAGCGTAGTGATGATAAAAATGCTCAGACAAATGAATGAAAATGTA -CTAAACCAACCTTGTTCGAATCCTTGTGTTAACAATAATGTAAAGCTACCAATCATAACAGCGAAAATCG -ACATACCTTTGTAATCGAATGGATGACGGTGGCTATGTTGACTTACTTTTTCAGGTGTGCCTTTTAGAAG -TAATATGGCAATGAAAGCAATGCCTATACTAATGATGAAATTCGTTTGCCATCCGAAATTTGTGGCAATT -AAACCGCCGATAACACCAGCTAGGCCAATGCCCCCAACAGTACTAATCATTAGATAACTAATCGCTCGTC -TTAAATGTTCTCCTTTAAATTGATTATTTAAAACGCCAACTGTTGAAGGTAACAAGATAGCTGCTGATAG -ACCTTGTAAAATTCTACCGATGATGAGCAGTGCAGTGATGTCCGATATAATTAATAGAAGAGATGCAAAC -ATACTGATTATGAGACCCATGTATGTCATTCTCAGTTGTCCTATTTTATCAGCAATATCACCTGCAGCTA -CCATGAAGATACCTGTGGCGAAGGAAGTTAAACTAATAGATAAATTTAACACGGCAGGAGAGGTTTGATA -CGTTTGACCAACGAGAGGTCCTATATTAATAAATGATTGTGCAAACAACCAATATGTTAATGCAGACAAC -ATAATCGCAATAATAATATTACTGCGTGGTGAAGATTGTGTGTTATTCACAGATGTCACTCCTTGTAAAA -ATTAAATATAGAAAGTCATGAGATGAGGTGAACGGATGTATAGATGATCGTTCACTCACACATAAGTCAT -GATTTCCTTACATATCATACCACAGTTATTGAGAATGAATATCAATTAATTGCTTGTATGATTGATTTTT -TATAATATGTTTAAGTGAAACAGCTTTATTTGAAAGTGATTAAAGTAAATGAAGGTACAGAGGAGTGAGA -ACAATGTGCACAGGATTCACAATACAAACTTTAAATAATCAAGTACTTCTTGGACGCACGATGGATTATG -ATTATCCATTAGATGGTTCGCCAGCAGTGACGCCTAGAAATTATCGTTGGACATCTCGCACTGGCACGAC -AGGCCAAACCCAATATGGCTTTATTGGCACAGGAACAGATATGGAAGGTTTTATTTATGGTGATGGTGTT -AATGAACATGGCGTTGCCATTTCAACACAATATTTCCGAGGTTATAGTTCATATGGATCAACACACAAAG -CGGACGCGATGAATATTACGCAAAATGAAATTGTGACATGGATTTTGGGATATACAACAAGCATTGAAGA -TATGAAACAACAAGCATCCCAAATACATGTTGTAGCGGTATATTTAAATGATATCGGTGAAGTTCCGCCA -TTGCATTATCATGTTTCCGATGTAACTGGACATTCAGCCGAAGTTTCATTTAAAGAGGGTGAAGTGGTTA -TAAAAGATAACCCTATTGGTGTCTTAACAAATCATCCAGACTTAGATTGGCATTATAGTAATTTAAGACA -ATATATCAATATTTCTCCTTATCCAGCAACAGCAAAGTTATTGGAAGGTGTATCGATTGAACCTTTAGGC -AATGAAGCAGGTACATTTGGATTGCCAGGTGGATTTACTTCAACTGAGCGCTTTGTGAGAATGGCATTTA -TGAAAGCAAACATTGCTCAAAACAATGATAAAGAAATGGATTTAATGAATGCATTTTATTTATTAGATGC -GGTAAATATACCGATTGGAATTGTACGTCCGCATGATGCTGACAATCACTATACGATGTATCAGACCGTA -ATAAATTTAACTACAAGAACGTTATATATTAAGTATTATGGCAGCAATGAAATAGTAGCATTAAAGCTCA -CAGATGATCTAATTAATAGAAAAGATATGATGATTTTTAAGCCTGAGAAGCATATCACTATTAGAAAGTT -GAATGACAATCAATAGCGATTGAAAATGGAATTTGGTTGATATGATTTGATGGATGATTACTATCATACA -TTAGCGTTGAACCGCGAACATGGACGAATGATTAGTTGTTAATTTTGAAAATTTATAAAAGCTTAAGCGA -ACGCAGTGAGAGATGTCATTTTAATATCAATGTATGGCTATTTTGTAATGACAATGTAATGAGTTTAGTA -AAACATTTCGGGAATATTAAATAGTTGGAAAATGAGAATTAAATCCTTTACTCAGTTGTCTAATTCTTTT -AGTATGTGCAGTACAGTTTAATTGAAAACTAACTTTAACTTTAATGGAGGATGTTTTATACATGAAAAAA -TTAACAGCAGCAGCGATTGCAACGATGGGCTTCGCTACATTTACAATGGCGCATCAAGCAGATGCAGCAG -AAACGACAAACACCCAACAAGCACATACACAAATGTCAACACAATCACAAGACGTATCTTATGGTACTTA -TTATACAATTGATTCTAATGGGGATTATCATCACACACCTGATGGTAACTGGAATCAAGCAATGTTTGAT -AATAAAGAATATAGCTATACATTCGTAGATGCACAAGGACATAAGCATTATTTTTATAACTGTTATCCAA -AAAATGCAAATGCCAATGGAAGCGGTCAAACATATGTGAATCAAGCAACAGCAGGAGATAACAATGACTA -CACAGCGAGTCAAAGCCAACAGCATATTAATCAATATGGTTATCAATCAAATGTAGGTCCAGACGCGAGC -TATTATTCACATAGTAACAACAACCAAGCGTATAACAGTCATAATGGTAATGGAAAGGTCAATTACCCTA -ATGGCACATCTAATCAAAATGGCGGATCAGCAAGTAAAGCGACAGCTAGTGGTCATGCGAAAGACGCAAG -CTGGTTAACAAGTCGTAAACAACTACAACCATATGGACAATATCACGGTGGTGGTGCGCATTACGGTGTC -GACTATGCAATGCCTGAAAATTCACCAGTTTACTCATTAACTGATGGTACAGTAGTACAAGCAGGTTGGA -GTAACTATGGTGGCGGTAATCAAGTAACGATTAAAGAAGCGAACAGTAATAACTACCAATGGTATATGCA -TAATAATCGTTTAACTGTTTCAGCTGGTGATAAAGTCAAAGCTGGTGACCAAATTGCATATTCAGGTAGT -ACAGGTAATTCAACAGCACCTCACGTACACTTCCAACGTATGTCTGGTGGCATCGGTAATCAATATGCAG -TAGACCCAACGTCATACTTACAAAGTAGATAATACAGTAAATCCCAAGTTACGATATCATACGCAACTTG -GGATTTTTTCGTTTTAATAATAGGTATAAGCCCATTGCTTGTCCTCTAAAACATGTTGATAAAAAGGATC -TTGGCCAATTAACTTGATATCATCTGCAAGTGCTTCAACTTCATCTAAATGATGGGTAGTTAATATAATT -AAACATTTAGATTTCATAATGTTAAGTAGTTGGTGGATGTCATGTCTAGATTTTAAATCAATACCAACTG -TCGGTTCATCTAAAATAAGAATTCGAGGTTGACCTAGTAAACCTACTAATATATTAATTTTACGTTTATT -CCCACCGGACAATGTAGATACTTTGGCAGACGTATCATCAAAGTTTAATTGCTGTAAATATTCGTTGATA -GTTGTATCGTTAATTGGATTTTTACAAAGTGATTTAAAAAATTTAATGTTTTCAGCCACTGTCATGTGCT -CAAATAACGCAATGTCTTGTGGCACATAACCGATGTGATTTTGTATTTGTCTTTGATTCCATTTTTCGCC -GAAATAGTTGATAGTTCCATCATTAGCTTTTTCAATACCAGCAATCATACGAAGTAATGTTGATTTTCCA -GCGCCATTATCACCAAGTAATACGGTTAAACGATTACTTTCAAAGGACATGGTTAAATGATTGAAAATCT -GTTTGTTGCGGTAACGCTTTGAAAGGTTATTAATTTCTATCATCAGTTACGCTCCTTTACATGAAAATGC -TCAAGTATACGATACCCATAGCAAGTGCATATATAAATGTCATGAATAATCGATGGCTTATTGTTTGAAT -ATGGAATAAGATAAAGACGATACCTATCTCATAAATCAATATAAGTAGCAGTGATTTTAAGTAAAATATT -AAGCTGAGTGGTTGAGACAAATATAGACTAACTGCCAATAGTACCAACAATAACAAAATAGTATGTGTCA -TTACATAAGTACTATATAGTTTGAAACGGCTTAAATGATATTGTGATAATCGTTGCAATGCTGCTTGTTG -GTTTAAACGATAATGAAGTATTACTTGAACAGCGCTAACAAATAAAATCACCGCAAAGATTAAGCTAATT -GAAATAGAGTGTTGTGCTTGTTTAGTAAGCGACACAAATTTGATTTTAGATTCAGGTATATGTTTATGAT -AGGACTTGTTGATAGCATCGATGGATTGATGCTGTTTCATATCCTCAAGGTGTTCATAAATAATGTTAGG -AATTTGCTGTTCATATAATGAGCTACTGACAATTTCTACAGCAATACCACCTATAAAGTCATCTCTACCA -TATAACTGTATCGTTTCTTTCAAACGGTTCTCTTTTAATTTTTGAGAGAAACCTTTAGGAATTTGCATAC -TTAAAATAGCTTCCTTTTTAGTAACATCATCTTCAATATAGCTTTCATCTTCATCGACTTTTTTAATAGT -TACATAGTCAGATTGTTTAATTTTATTGACGAATGATTTTGATGCAGTGGTTTGGTCTAAATCTTGAATG -GTAATCGGTATTTTGAAGTTGTCATGTGCTACACGGTAACCCATACCAATAAGTACGAGTGCGATGACAA -TGGTTGTTACGAGCAAGATGTATTGTAACCATTGCTTGAACACAACAAGTTGTATATAAGGCTTCATTGA -CGATACCTCCAAACCAATACAGCTAAATTAATTATCAAAAGTGCGATGAAGCTAAGATAGAAACTAGGGT -GCAGTTCTAAAATGTAGTTGTTTAAAATAATTTCTAACAATTGATTTGTTACAACTGCGAACGGTTGAAT -ATTGAAAACGCCATTTGCTATATGTTGTAAAAAAATCGTAGGTATTGTTAAACCAGATAACACCAGGATG -ACAATAGCTAATATGACTTTACTAATACTATTCAACAAGCCTGTTGTTAAAAGTTCGATGATTAATAACC -ACAGTATTAAAAAGGTAACATAATAGCTTAAATGAATGGCTAACGTTGGCCAATTATATAATTCAAAGGT -ATTCGGAATACTGAACACAATCCAAACTACACCAACGATACTCCATAACATAGTATAAAACCATGTTATC -AACGCACGAATGATTAATAAACGCTCTTTAGAAAAATGAAACATTTTCAATCGCGCTTTCAATACAGTAT -CTTGATTCATTTTCAAAACTGTAAATAAAGATAGTGCAAAGATGAATACCGTTGTTAAAAATCCTGTAAT -TGCATAATAACTGCCCGTATCGTATAAATGAATCGGTTCTAAGTTAAATGCACCTGAACGGTTTAATCCT -GTAATCAGCAAATCAGTCATAACATTGATACTGTCAGAATGTGATGCTTTCGGTGCTAGGTCTTGAAAAG -CTAAGATGCCACCCATTGACCGCATAAGGCGTTGGTAAACAGAATCTGTTAGCTGAGATAGCACGACACT -TTTCATGGATTGTTGATCATATGTATATACTGAAATTGGTAGTTCACCTTGTTTATAAAATGCCTTGGTC -ATACCTTTATCAAAAACAAAATAGCCTTGAAGTTTCTGCTGTTTTAGCAAAGTATGTGCTTGCTTATCAT -CATATGCTTTAATGCTCACATTTTTACCTAGGTTACTCCCTTTACCAATAGAGTTTAAGATTAATTTCGT -TTCACTTGATTGGTCTTTATCTACGACACCTATATTAAAATGATTGTCATCTTCTGTTACATGTTGGATT -GTCGTTAATGTAATAAGGAGTGCCGCTAATATAAATAGTAAATAGATAATCAAATACCACTTTTTCAATA -AAAAAGAGTGGTAGATGCGAAACAAATGTATTGTTTTCATTTAACCACTCCTCCAATGATAAGATTGAAA -GGCAAGATGACCTTCCAATCTTATTTTTATATTTTAGTTATTTAGATGCCTTTTTTAAAATTGATTCAAA -CATTTTGCCGCCATTTTTTTCGATTTCTTTTTCAAGTTTTTCACGGTCTTTTGAAGATAGACTATTGAAA -TCTTTCGCACCACTATCATCAAAATCAATATCTGCTTTCAATTTTGTGCTAGATTTTAAAATGAAATTAA -TTGGTTCTTCAGCATATTTGATGCCGATATTTAACGTAGATTTCTGAGTGTTATTTTTTACGTCAGAATC -TATATTATTTTCAAAAGTGAATTCATTTTCGTCGCTATATTTATCTAACGCGACAGTGATTTTACCTTTA -TCTTGACGTTTTGTGCCATCTACTTTTTCTTGGTTATCTAATTTGATTTTTGATTCATCATATTCTGTCT -TTTTACCAAATTCGTATTTATCACTGTATTTATTGTCTTTTTCCTTAGAAGATACGCCTTTAATTGTATA -TTTCGCTTCAGCATACGTGTATTTATCTTGATCGAAATCAAGTGCGTAATCTAGTTTTAACTTATCGTCT -TCTAAAGTATTAGTACCTTTGATTTTAGTTTTATTATTTTCTTTGTCTGTAATAGTAATTTCTCGTTTTA -CAATCGTATGTTTTTCGGTATAAATTTTAGATTGAATTTTAGCAAATTCATCCTTTTTAGTTTCTTTGAC -ATCGTCAATTGCTTTTTTAATGTCTTTTTCAAAGTCTTTTGTAGTACCTTGTTCTTCCATTAATTTTTTA -AGGTCTTTATCCTTTTTAGCTTCTTCTAATACAGCTAATGTAATTTTTTTAGTGTCAGCTCTGCTAAGTG -TTAACGTGACAGGTCTAACTTTGTACTTTTCACCATTAACCTTAATTTCTTCTTTTTTACCTTTATCAAA -ATTATCGTCATCTAATTTGTCGACAATAAGTTCGGAATATTTTTCGGCAATTTTGCTGTAGTCACTTTGT -TGTGCTTGAGCATTACTGAAAAGAGTATTTAAATTTAGTTGTTGGTTTGTAATACCATTTTCTTTTGCTG -TTTCTTCATCTTCACCTGTAAGTTTTGAATAAGTTGATAATAAATCAGAATTATTAACACTATATTTCCC -TTTAAATAATGGTGATTCGAAATAATGCTTATCTTTATCTGCAGCTAACTGGAATTTCCCTAATGCAGAG -TCTGCTATTGTTGGTTCAAGATTAATCATTGATTTCTCTTTTTTAGGATCATGTCCATATGACATTTTAA -TTTTCGAAGCATTAACAACAGATTTAGGAATACCAAGCCCTTTAACAATTTCATCAGATGCATCTGCGCT -TAATTCTAATGAAGATAAAAATGAATTATCTTTCATCTTTTCTTGGAACTTCACTTCGTTTTCAAAACGG -TCATTAAAATAATCTTTATACATTTTTGCAGTTTGTTGTTCACTTTTTAAGTATGTATTTTTCGGTGTGT -TTGCAAAAAATGCATAAACTCCCCATGCGATTCCACCTATTAATAATAAGACAATAATAATAGGAATTAT -AATTTTTAACTTTTTAGACATTTTGCTTCCTCCCAATTATTTATGAGTTAATCATATCAGAACAATACAT -TTTATTAAATGGTTTATTTTAAAATTTGTTTAAATTAATAGAATTTTAGTTATAATAATGTTTAATAAGT -TATTGAAAATCTAATAAACTACAAAAAATAGTTTGATTACATAATGATTCTTGAAAATGTCGGTTAACTT -TAAGGTGACAAGTTATTGCAATTTTGAAGGTAGACATCATATTTTATAATCGAATAACATACAAAATAAA -GCGACCAATTTTGCAGTGTTACGAATTGTAAACTGCGAACTGGTCGCTTTTTATTGATGTCATGATTAAT -TTAATGGATGTAATTATATGATGAAACTTCTGAAGCAGAGATGGTTCTTGATGAAACGATATATTCACCA -ATCCAGTTCATTTCTGAAATTAGAATACTTCCATCAATATTAACTTTCTCAACGTAGGCTACATGGCCAA -ATGGACCGTTTACTGTTTGTAAAATTGATCCTCGTGTTGGGTGTCTATCTACTTTGAAGCCATTGCTTGA -AGCTTGGCCTTCCCAGTTTTTAGCATCTCCCCAAAATGTACTAATCGTGTGTCCATCTTTGGCACGTTTA -TCAAAGACATACCATGTACATTGTCCAGCAGTATATAAGTTGTTCTTACTTGTGATAAGAGGCTGATCAA -TGATTTTACCGTTACCTAAAGCTAAAGGTTTACCGTCAGCAGTCTTTGCTTTGTCATTAAATTCGGCGAT -TTGTAATTCGTCATACAATTCGTCTAAATCGATGCCTGTAATAAGCCCTTTGTTATCTTTTGAAAAAGCG -TTATTTAATTCATCGTCATTGTCTTCAACATTCGGTATTGCTGGTGTCAAAGGATTGCTTGGTGACGTTT -GAGGCGGTGTGTGTGAATCAATTGCGTCATTAATGTGCGTATACTGACCACTTAATGAAGAATGGTACTG -ATTGTTGTTAAGATCATGTTGATTTGCGTGTTGATGATTGTCGTTTGTACGTGACTGATTTTGATGATTG -TTGTTTGGCGCGTTGCTTTTGTCATAAGTATAAGTATACGCGCCGGTGTCTTTATTCACTTTGAACTGTG -CGTTTGGGTGTGCTTTCTTTGCTTCTTCTAATGTTTTGCTATCATTCGTGTATGCTTGAGCCGAGTTAGG -CGACATACTAAATAAAGTAAGAGTTGTCATCGTCAGTAAAATTGTTTTCTTCATAATAACCATTTAATCC -TTTATGTATTTAATTTAATTTTAGTATACACATTTATATTACAAAAATGAATGGTTAATTAAAAATATAT -GGGTATATTCAATATATTTATTTAAAAAAAGCTAAAAATACTTAAAAAACTATATACATATACTAATAAT -TTATATATTATTTGAGTAAGGATCACTTTTTCAAAAAATAGTGTCCCTAAAAAGTTTTGATAAACTTAAA -ATATTCAGGAGGTTTCTAGTTATGGCAATGATTAAGATGAGTCCAGAGGAAATCAGAGCAAAATCGCAAT -CTTACGGGCAAGGTTCAGACCAAATCCGTCAAATTTTATCTGATTTAACACGTGCACAAGGTGAAATTGC -AGCGAACTGGGAAGGTCAAGCTTTCAGCCGTTTCGAAGAGCAATTCCAACAACTTAGTCCTAAAGTAGAA -AAATTTGCACAATTATTAGAAGAAATTAAACAACAATTGAATAGCACTGCTGATGCCGTTCAAGAGCAAG -ACCAACAACTTTCTAATAATTTCGGTTTGCAATAAGCATTCTGAAATTGGCAAAGTCACATTTTCTAATG -TGGCTTTGCTTATCATTTTTTAAGAAAACAACTGAAAGGAAATAAGCATGAAAAAGAAAAATTGGATTTA -TGCATTAATTGTCACTTTAATTATTATAATTGCCATAGTTAGTATGATATTTTTTGTTCAAACAAAATAT -GGAGATCAATCAGAAAAAGGATCCCAAAGTGTAAGTAATAAAAATAATAAAATACATATCGCAATTGTTA -ACGAGGATCAACCAACGACATATAACGGTAAAAAGGTTGAGCTGGGTCAAGCATTTATTAAAAGGTTAGC -AAATGAGAAAAACTATAAATTTGAAACAGTAACAAGAAACGTTGCTGAGTCTGGTTTGAAAAATGGCGGA -TACCAAGTCATGATTGTTATCCCAGAAAACTTTTCAAAATTGGCAATGCAATTAGACGCTAAAACACCAT -CGAAAATATCACTACAGTATAAAACAGCTGTAGGACAAAAAGAAGAAGTAGCTAAAAACACAGAAAAAGT -TGTAAGTAATGTACTTAACGACTTTAACAAAAACTTGGTCGAAATTTATTTAACAAGCATCATTGATAAT -TTACATAATGCACAAAAAAATGTTGGCGCTATTATGACGCGTGAACATGGTGTGAATAGTAAATTCTCGA -ATTACTTATTAAATCCAATTAACGACTTCCCGGAATTATTTACAGATACGCTTGTAAATTCGATTTCTGC -AAACAAAGATATTACAAAATGGTTCCAAACATACAATAAATCATTACTGAGTGCGAATTCAGATACATTC -AGAGTGAACACAGATTATAATGTTTCGACTTTAATTGAAAAACAAAATTCATTATTTGACGAACACAATA -CAGCGATGGATAAAATGTTACAAGATTATAAATCGCAAAAAGATAGCGTGGAACTTGATAACTATATCAA -TGCATTAAAACAGATGGACAGCCAAATTGATCAACAATCAAGTATGCAAGATACAGGTAAAGAAGAATAT -AAACAAACTGTTAAAGAAAACTTAGATAAATTAAGAGAAATCATTCAATCACAAGAGTCACCATTTTCAA -AAGGTATGATTGAAGACTATCGTAAGCAATTAACAGAATCACTCCAAGATGAGCTTGCAAACAACAAAGA -CTTACAAGATGCGCTAAATAGCATTAAAATGAACAATGCTCAATTCGCTGAAAACTTAGAGAAACAACTT -CATGATGATATTGTCAAAGAACCTGATTCAGATACAACATTTATCTATAACATGTCTAAACAAGACTTTA -TAGCTGCAGGTTTAAATGAGGATGAAGCTAATAAATACGAAGCAATTGTCAAAGAAGCAAAACGTTATAA -AAACGAATATAATTTGAAAAAACCGTTAGCAGAACACATTAATTTAACAGATTACGATAACCAAGTTGCG -CAAGACACAAGTAGTTTGATTAATGATGGTGTGAAAGTGCAACGTACTGAAACGATTAAAAGTAATGATA -TTAATCAATTAACTGTTGCAACAGATCCTCATTTTAATTTTGAAGGCGACATTAAAATTAATGGTAAAAA -ATATGACATTAAGGATCAAAGTGTTCAACTCGATACATCTAACAAGGAATATAAAGTTGAAGTCAATGGC -GTTGCTAAATTGAAAAAGGATGCTGAGAAAGATTTCTTAAAAGATAAAACAATGCATTTACAATTGTTAT -TTGGACAAGCAAATCGTCAAGATGAACCAAATGATAAGAAAGCAACGAGTGTTGTGGATGTAACATTGAA -TCATAACCTTGATGGTCGCTTATCGAAAGATGCATTAAGCCAGCAATTGAGTGCATTATCTAGGTTTGAT -GCGCATTATAAAATGTACACAGATACAAAAGGCAGAGAAGATAAACCATTCGACAACAAACGTTTAATTG -ATATGATGGTTGACCAAGTTATCAATGACATGGAAAGTTTCAAAGACGATAAAGTAGCTGTGTTACATCA -AATTGATTCAATGGAAGAAAACTCAGACAAACTGATTGATGACATTTTAAATAACAAAAAGAATACAACA -AAAAATAAAGAAGATATTTCTAAGCTGATTGATCAGTTAGAAAACGTTAAAAAGACTTTTGCTGAAGAGC -CACAAGAACCAAAAATTGATAAAGGCAAAAATGATGAATTTAATACGATGTCTTCAAATTTAGATAAAGA -AATTAGTAGAATTTCTGAGAAAAGTACGCAATTGCTATCAGATACACAAGAATCAAAAACAATTGCAGAT -TCAGTTAGTGGACAATTAAATCAATTAGATAATAATGTGAATAAACTACATGCGACAGGTCGAGCATTAG -GCGTAAGAGCGAATGATTTGAACCGTCAAATGGCTAAAAACGATAAAGATAATGAGTTATTCGCTAAAGA -GTTTAAAAAAGTATTACAAAATTCTAAAGATGGCGACAGACAAAACCAAGCATTAAAAGCATTTATGAGT -AATCCGGTTCAAAAGAAAAACTTAGAAAATGTTTTAGCTAATAATGGTAATACAGACGTGATTTCACCGA -CATTGTTCGTATTATTGATGTATTTACTATCAATGATTACAGCATATATTTTCTATAGCTATGAACGTGC -TAAAGGACAAATGAATTTCATCAAAGATGATTATAGTAGTAAAAACAATCTTTGGAATAATGCGATTACG -TCTGGTGTTATTGGTGCAACTGGTTTAGTAGAAGGATTAATTGTCGGTTTAATTGCAATGAATAAGTTCC -ATGTATTAGCTGGCTATAGAGCGAAATTCATCTTAATGGTGATTTTAACTATGATGGTCTTCGTACTTAT -TAATACGTATTTACTAAGACAGGTAAAATCTATCGGTATGTTCTTAATGATTGCTGCATTGGGTCTATAC -TTTGTAGCTATGAATAATTTGAAAGCGGCTGGACAAGGTGTGACTAATAAAATTTCACCATTATCTTATA -TCGATAACATGTTCTTCAATTATTTAAATGCAGAGCATCCTATAGGCTTGGCGCTAGTAATATTAACAGT -ACTTGTGATTATTGGCTTTGTACTGAACATGTTTATAAAACACTTTAAGAAAGAGAGATTAATCTAATGT -TGATGAATAGCGTGATTGCTTTAACTTTTTTAACAGCATCTAGCAATAATGGCGGACTTAATATTGACGT -GCAACAAGAAGAGGAAAAGCGAATCAATAATGATTTAAATCAATATGATACAACGCTATTTAATAAAGAC -AGCAAAGCGGTTAATGATGCGATTGTTAAGCAGAAAAAAGAACGACAACAACAAATAAAAAATGATATGT -TTCAAAATCAAGCGAGTCACTCGACTCGCTTGAATGAAACTAAAAAAGTGTTATTTTCCAAATCTAACTT -AGAAAAGACTTCGGAGAGTGATAAAAGCCCCTATATTCAAAACAAGCAGGAGAAAAAAATATTCCCGTAC -ATTTTGATGTCTGTAGGGGCTTTTTTGACTTTAGGATTTGTCATTTTTTCAATTCATAAAGGGAGACGAA -CGAAAAATGAATCAGCACGTAAAAGTAACATTTGATTTTACTAATTATAATTACGGCACATATGACTTAG -CAGTACCAGCATATTTACCGATAAAAAATTTAATAGCTTTAGTATTGGATAGTTTGGACATTTCAATATT -TGATGTCAATACACAAATTAAAGTGATGACGAAAGGTCAATTACTTGTTGAAAACGACCGACTTATTGAT -TATCAAATCGCTGATGGAGATATTTTGAAGTTACTATAGGAGGAAAAATAGATGGTTAAAAATCATGACC -CTAAAAATGAAATGCAAGATATGTTAACACCTTTAGATGCTGAAGAAGCAGCTAAAACAAAATTACGCTT -AGATATGAGAGAGATTCCTAAGTCTTCAATTAAACCAGAACATTTTCATTTAATGTACTTATTAGAACAA -CATTCTCCATATTTTATAGATGCTGAATTAACTGAACTACGTGATAGTTTCCAAATACATTATGACATTA -ATGACAATCATACACCTTTTGATAATATTAAATCATTTACTAAAAATGAAAAATTACGTTACTTACTCAA -TATCAAAAATTTAGAAGAAGTAAATCGTACACGTTACACATTTGTGTTGGCACCAGATGAATTATTTTTC -ACAAGAGATGGATTACCAATTGCTAAAACAAGAGGTTTACAAAATGTTGTTGATCCATTACCGGTGTCAG -AAGCTGAATTTTTAACAAGATATAAAGCACTGGTTATCTGTGCATTCAATGAGAAACAATCATTTGATGC -TTTAGTTGAAGGAAACTTAGAACTACATAAAGGAACGCCATTTGAAACTAAAGTTATTGAAGCGGCAACG -TTAGATTTACTAACGGCATTTTTAGATGAACAGTATCAGAAACAAGAACAAGATTATAGTCAAAATTATG -CATATGTACGCAAAGTAGGACATACCGTTTTCAAATGGGTTGCTATCGGTATGACAACGTTAAGTGTTTT -ATTAATTGCATTTTTAGCCTTTTTATATTTTTCAGTAATGAAGCATAATGAGCGTATTGAAAAAGGATAC -CAAGCATTTGTAAAGGAAGATTATACGCAAGTACTAAATACGTATGATGATTTAGATGGTAAAAAATTAG -ATAAAGAAGCACTTTACATTTATGCCAAAAGTTATATCCAAACAAATAAACAAGGTTTAGAAAAAGATAA -GAAAGAAAATTTACTTAATAACGTGACACCAAATTCAAACAAAGACTACTTATTATATTGGATGGAATTA -GGACAAGGACATCTTGATGAAGCGATTAATATTGCCACTTATTTAGATGATAACGATATTACAAAGTTAG -CGTTGATTAATAAGTTAAATGAGATTAAAAATAACGGAGATTTATCGAATGATAAACGTTCTGAAGAAAC -GAAAAAGTATAACGATAAATTGCAAGATATTTTAGACAAAGAAAAACAAGTTAAAGATGAAAAAGCGAAA -TCTGAAGAAGAGAAAGCAAAAGCGAAAGATGAGAAATTAAAGCAACAAGAAGAGAACGAAAAGAAACAAA -AAGAACAAGCACAAAAAGATAAAGAAAAACGCCAAGAAGCTGAAAGAAAAAAATAGTATAGGACTGAGGC -AAAGACAATGCATAAATTGATTATAAAATATAACAAACAATTGAAGATGCTCAATTTGCGAGATGGTAAG -ACATATACTATTAGCGAAGACGAGCGTGCAGATATTACGTTGAAATCGTTAGGCGAAGTCATTCATTTAG -AACAAAATAATCAAGGTACTTGGCAAGCGAATCATACTTCTATTAATAAGGTGCTTGTTAGAAAAGGTGA -CCTTGATGACATTACATTACAGCTTTATACAGAAGCTGATTATGCATCATTTGCGTACCCTTCGATTCAA -GATACGATGACGATTGGATCAAATGCATATGATGACATGGTCATTCAAAGTTTGATGAATGCCATCATTA -TTAAAGATTTTCAATCGATACAAGAAACTCAATATGTGCGCATCGTGCACGATAAAAATACAGATGTGTA -TATTAACTATGAACTACAAGAGCAATTAACGAACAAAGCTTACATTGGTGATCATATTTATGTTGAAGGG -ATATGGCTCGAAGTACAAGCTGATGGTTTAAATGTATTGAGTCAGAATACAGTGGCATCGTCATTAATTC -GCTTAACACAAGAGATGCCACATGCACAGGCAGATGATTACAATACGTACCATCGTTCGCCAAGGATTAT -TCACCGTGAACCGACCGATGATATTAAGATTGAAAGACCACCACAACCAATACAGAAGAACAATACAGTG -ATATGGCGTTCCATTATACCGCCATTAGTAATGATTGCTTTAACTGTTGTCATCTTTTTAGTGAGACCAA -TTGGTATTTATATTTTAATGATGATTGGTATGAGTACAGTAACGATAGTATTTGGTATTACAACGTATTT -CTCTGAAAAGAAAAAGTATAACAAAGATGTTGAAAAACGAGAGAAAGATTACAAAGCTTATTTGGATAAT -AAATCTAAAGAGATTAATAAAGCGATTAAAGCACAACGTTTTAGTTTGAATTATCATTATCCAACGGTTG -CTGAAATTAAAGATATCGTTGAAACGAAAGCACCAAGAATATATGAAAAAACATCGCATCATCACGATTT -CTTACATTATAAGTTAGGTATTGCGAATGTAGAAAAGTCATTCAAATTAGATTACCAAGAAGAAGAATTT -AACCAACGTCGTGATGAACTATTCGACGATGCTAAAGAATTGTATGAATTTTACACAGATGTAGAACAAG -CACCATTAATCAATGATTTAAATCATGGACCAATTGCATATATTGGTGCACGACATCTCATTTTAGAAGA -ATTGGAGAAAATGCTAATCCAATTGTCAACGTTCCATAGTTATCATGATTTAGAGTTTCTATTTGTGACA -CGTGAAGATGAAGTTGAAACATTGAAATGGGCACGTTGGTTGCCACATATGACATTGAGAGGTCAAAACA -TTAGAGGGTTTGTTTACAATCAACGAACACGTGACCAAATTTTAACGTCAATTTATAGCATGATTAAAGA -ACGTATCCAAGCTGTGCGTGAACGCAGCAGAAGTAATGAGCAAATTATTTTCACACCGCAATTAGTGTTT -GTCATTACAGATATGTCATTAATTATTGATCATGTCATTTTAGAATATGTAAACCAAGATTTATCAGAAT -ATGGTATTTCATTAATCTTTGTTGAAGATGTGATTGAAAGTTTGCCAGAGCATGTAGATACCATTATTGA -TATCAAGTCTCGTACTGAAGGCGAACTGATTACGAAAGAAAAAGAATTAGTTCAATTGAAATTTACACCT -GAAAATATTGATAACGTTGATAAAGAATATATCGCGAGACGTTTGGCGAATTTGATACACGTCGAACATT -TGAAAAATGCAATTCCTGATAGTATTACATTTTTAGAGATGTATAACGTGAAAGAAGTAGATCAGCTTGA -TGTGGTTAATCGATGGAGACAAAACGAAACATACAAAACGATGGCAGTACCTTTAGGTGTAAGAGGTAAA -GATGACATTTTATCATTGAACTTACATGAAAAAGCACACGGGCCACATGGTTTAGTTGCTGGTACCACTG -GTTCAGGGAAATCTGAGATTATTCAATCATACATTTTATCTTTAGCTATTAATTTTCACCCTCATGAAGT -TGCATTCCTATTGATTGACTATAAAGGTGGGGGTATGGCGAACTTATTTAAAGATTTAGTCCATTTAGTT -GGTACGATTACAAACTTAGATGGCGATGAAGCGATGCGTGCCTTAACATCAATCAAAGCCGAATTGAGAA -AACGTCAACGTTTATTCGGAGAGCATGATGTTAACCATATTAATCAATACCATAAGTTATTTAAAGAAGG -TGTTGCGACAGAACCAATGCCACATTTATTCATTATTTCCGATGAGTTTGCAGAATTAAAATCAGAACAA -CCTGATTTTATGAAAGAACTTGTATCAACGGCACGTATTGGACGTTCGTTAGGTATTCATTTAATACTTG -CGACACAAAAACCATCGGGTGTTGTTGATGACCAAATTTGGTCTAACTCTAAATTTAAATTGGCATTAAA -AGTACAAGATAGACAAGACAGTAATGAAATTTTAAAAACACCAGATGCAGCAGACATTACATTACCAGGT -CGTGCGTATTTACAAGTTGGTAATAATGAAATTTATGAATTATTCCAATCTGCATGGAGTGGTGCAACAT -ATGACATTGAAGGCGATAAATTAGAAGTTGAAGATAAGACGATTTACATGATTAATGACTATGGTCAACT -TCAAGCAATCAACAAAGACTTGAGTGGACTTGAAGATGAAGAAACAAAAGAAAATCAAACTGAGTTAGAA -GCGGTTATCGATCATATCGAATCTATTACAACACGATTAGAAATTGAAGAAGTTAAGCGTCCATGGTTAC -CACCATTACCAGAAAATGTATATCAAGAAGATTTAGTAGAAACAGATTTCAGAAAATTATGGTCAGATGA -TGCAAAAGAAGTGGAATTAACATTAGGACTTAAAGACGTACCAGAAGAACAATATCAAGGACCGATGGTA -TTGCAATTGAAAAAAGCTGGGCACATCGCGTTAATCGGAAGTCCAGGATATGGTAGAACAACGTTCTTAC -ACAACATTATTTTCGATGTTGCAAGACACCATCGTCCTGATCAAGCACATATGTACTTGTTCGATTTCGG -TACCAATGGTTTGATGCCAGTCACAGATATACCACATGTCGCTGATTACTTTACAGTAGATCAAGAAGAC -AAGATTGCGAAGGCGATACGGAAGATACATGATATTATTTCTGAGCGAAAAAGACTATTAAGTCAAGAGA -GAGTAGTTAATATAGAGCAATATAATAAAGAAACTGGAAATTCAATTCCAAATGTTTTCTTAATTATCGA -TAACTACGACACGGTGAAAGAATCACCATTTATGGAAGAATATGAAGAAATGATGTCTAAGGTAACACGT -GAAGGTTTAGCGTTAGGGGTATACATCATTCTTTCAGGATCAAGATCAAGTGCAATAAAATCAGCTATAT -TTACTAACATTAAAACAAGAGTTGCGCTGTACCTCTTTGAAAACAATGAATTAACAAATATTATTGGTTC -TTATAAAAAAGGTGTGAAAGATGTTAAAGGTAGAGCTGCAATAAATGATGATAACTTCACACAGTTCCAA -ATTGCGCAACCATTTGAATTAGCAGAAGGACAAACATATAACGAGCGCATTAAAAATGAAGTAGCACAAA -TGAAAGAATTCTATGTAGGAGATTATCCAAAACATATTCCAATGATGCCAGATAAGGTATTTATGGAAGA -TATTCGAGAAGCATATGATTTGGAAAAAATCATTCATGAAGAACACAAATTACCATTAGGATTAGACTTT -GAGGATGTGGAACTAGTTAGTTTAGATCTGACAAGTTCTTCGATTGTAACAGCAATTAAACCAACTGAGA -TGGAAAAAATGAATGATGTTATAATGTCTAGTTTATCAGTATATAGTAAAAACCAATTTGTTATCTTGGT -TGATGCAGAAGATAATATGAGCCAGTATTCAGAAGATGTAACCTCTTATTATTCAGCACCATCAGATTTG -AGCAACATTAGATTAGGATTTAAGCAAGAAATAGAAGCAAGGAAAAATGGCGAGAAAAGTATAGAGGAAT -GCAAGATTGTATTTATAAATAATATTAAACGATTCAATCAATTAACTGGAATGACAGAAGATGAAATTCG -TGTGTTATTTAATGAAGGTCAAAAAGTTAATATTATCATTATTGCAAGTGGACTATACTCAGATACAATT -GGTGCATTTGATAGAGAAAGTAAAATGATGGTAAGAACTATAAATCAAGCTTTGATTAGTCATAAGATAT -CGGAACAAGAATTTATAAGAGTTAAAGATCGATTTGGTGAACCAGAATTAAAAGTGGGAGAAATGTATTA -CATTAATAATCAAGAATATCAAAAAATAAAACTAATGGAGGGATAGAGTTGATAAAGTTAAACCAAGCCT -CTGTCAGCAAAGAAATTTCAAGCATTCGAACAAATGGACAAGGCTTAAAACAATCAAATGGGAATGTAAA -TTTAAGTAAAACGAATCTCGTTACTTTTAAAGAATATGTAAATATGTTTGAAGATTATCAATCAGCTCTA -TCTAATTATGAAAACATAATTGAACAAGATACGACGGCTATGGATACAACGGTAACAGAAATTGTTGAAA -ACGATAGAGAAATAGCAGGACAAATTAATAAATAATTAAACAAGACGGGTGAGAAAAATGAGTAATAAGG -GAGAAATAAGAAGGCAAATTGCTAATAAAGAAAGAGAAAAAGCAAGTAAAGAAGCACAACTAACAGATTT -AAAAGAGGATTTAAGAAGGTTGAAAGACGCTTCGAAAAAATTGGATACAGCAGGAGAAGATTTTAACAAA -GGACAGAGTAGTTATAACAAAGTAGAAATTAGTACTTCAGATTGGAAAGGAGAAAGAAGGACTAAAAGTG -ACAGCAAAAAGAAAGATGTCGATTCTGAATTAAAAAAAGTTGAACAAGACTTTGATGATGCGAAGAAGGC -TATTAAAAAAGATATTCAGGATAAAGAAGAAGAAATCAAGGGAGTCGAAGGAGAAATCAGTACTATAAAT -GCAGCTATAGATGCACTTAAATCAAAATTATAATAATAGAGAGGGAAATTTATTATGGGGTACAAAGTTG -ATATGTCTGAAGTGCACAATATGCAAAAGTCTATTGATTCAAGCTTAAGTGCAATAAATACAAAGGTTAG -CACGCTTAGCAGTAGCATAAACAACCTTATAAATACTGAAGGATTCGAAGGTCAGACAGCAAGTAGTGTC -AAAAACTATAGTAAGACATTTCATTTACAATCAATAAAAAAGATTGAAACAATAAACAAAGATTTTAAAT -CAGATATTGCGAAATCTATACGTAAATTCCAAAGTGAAGTTGATAATAATGCTTCAGCTATATTGGATGA -AGACGAAATAAAAAAATACAAAAAAGATATTGATGATGCATTAAAAGATGTTTTCAAATCTTCTAAAGAT -GCAAACGGAGCTATTTCAGATGTTTCAGATTTAACAACAGCCAAAAAAATAAAGACAGAAAACTTGGCCA -ATAAAATGGGAGATTTTAATAAAGATATTGATCAAACGGTGGAAAGATTAACGACCTTCGACGCCAACAA -TTCTATAGATGGTGATAAGACAGATAACTTAATAACTGAATTAAGTGGTGTAAATTCATATGTCAAAAAC -ATGAAGCCAAACCGTGCAAGAATTAGTTCTACAAGTGGAAAAATTGAAGGTGCAATTGCAAGGCATAAAA -CAAGTGAAGAGTTAGTAAGATGGCAAACTTACATGGAAACGTTAAGTGAAAATCTTTATAAAACACCAGG -TCTAAGTAAAGCAGCTTCTGACATAATTACCCAAGCTGGACGCGAGTACTATGCTATCAAAGCTGTAGGG -AATGGCAGTGCTTTAAGAGGATATAAAGAATATCTGAAAACACGAGATATTAATAAATTAATTAACAAAA -TGAATAAAAACCAATTAAAAAGAATGTCATTGGTATTAAATACAGATAGAGGTAATATTAAAATAAAAAA -TGCAGTAAAAATGGCAAGTGAATTTGCCCGTAATAATCCTTTTAAAAAAGGAAATTTAGTAAATTGGATG -AGCAAAGTCCAAGGGTATCAAAGTGTAAGTGCTCAAATATTAAAAAAGGGGTTGCAAGATAAGAACTTTA -AATATACATTTGGAGATGCAAAGAAATTTTTTGATACAGCTGATATGAAAAAAGCAGCAGTCACAGAATT -TAAAAATACCTTTGTACCACAAAATATAAGAGAAACCTTCTTTAAGAAAGAAAATTTAACATCTAAGACA -GCATTAAAGAAAAATATGAGTAAATTCTGGAATGAAGATATTAAGGGTGGAATCAAAGAGTTTAAATTAG -ACTTTGCTAACAAAAATATCATTGGTAAACTCGGCAAATTGTTGAAACTAGGAGGCAAGGCTTTAAAACC -ATTAGGATTTATTACTGCAATTACTGACAACATAGGAAAGAAATCTTGGCAAGAAAAATTAGTTGGTATG -GGGGTAGATTTAAGTGCTATTGGTGCAAGTGCAGCTGCAGGTGCAGCTGTTGGAACGGCAATACCATTAC -CTGTAGTAGGAACAGTTGCAGGTGCATTAGCTGGAGCAGCAGTGGGTATAGCTTTAGATTATAAAATACC -GTATCTTGATAAGTCTGCAACAGAATTAGCTAAAGATGGTATTAACTCGGGTATTAACAAAGTTAAAAGT -GGATTTGGAAAAGTAACTTCAGGATTTAAAACAGTTTTCGGATAAGAAAGGGGCAGACAAATGAAAATAC -AAGAGATTGTAGGAAATATAAAGAGAGCTTATCTGACACCATTAATAATTTTTGTGATTTTGTTTTCATT -ATTTTTTGATTTGATAATGTATTTTTATGGAAACCTTCAAGGGAAATTGCCAATATATTTAGATGTATTT -CTAATATTTGCAGCAGTTGTATTTATTTTAATGTACTTCCAAGAGAAAAGTGGAGAAGTTAAGGTTGAAA -AATCAAACGTTATTCGTTATTTAACATTAAATGTTGTAGCTGGGTATTCAATGGTACTACTTGTTGCCTC -TATTTATGTTTTTGGGGTAGCAGGCTATGGTTTTGATGTATTTAATTACTGGTTAGGTATTATATTAATG -CTATTTGTATCGTGGTTTGCTCTATTTTTGTTTTATAAAAATGAATTTGATAGTGAAAATCCAAATAAAA -CAGTTAATGTTATAGCAATTATTATAAAGTTATCTGCTTTTGGAGGACTTTTCTATATCAGAACAGTCGT -TCCTAATACTGCAGATGAAGAGAAATTTATAACTCTAAGTATCTTAATTAATATAGCTGTTGATTTATTG -CTGGTTAGATCATATTTTAACTATGCATTATATAAGAGTGTAAAAAAAGATATCGAAAACGGAGTGGATG -ATTAATGGAAGTAGGAATGTTAATTATGCCGTTTTGTGTGAAGATTACATTTGAAATTGATAAAAATGAT -AATTGGTTAAATGCATTAGATACAGTAAATGAATTTTTCATGGACAAAGATATATATCCAACTGGTCCTA -TAATTTTCCAAAGAGAATTAGCAGGTTTGGGTGAATATAAATATACAGCATATATAGCTCTTAATGATGA -ACTTCAAGATATACCTGAATTGAACATCAAATATATTGATTGTTTAGAGGTAGGACCTACGTTATCAACT -AAGTGTTTTGAAGAAGAGGAATTTGAAAGAGCTTATAAAGAAATTGAATATGTAGCTAACGAAAATAATA -TTAAGATCCTAAATCAACCATATTATCATGTAATGGTAGATTATTTTGGTGGTACGGCTTTTGAAATTTA -TGCTCAAGTAGATTTGGATGAGAGTGAAGTATATGGATAAAAATGGATACTCATATATTATGATGAAAAA -TGTAGCTTACAAAACTTATTTTGATGTGACTATGGATGACTATGAAGATATATTAAAAGACTTTACAAAT -CTTGCAATTTCTAAAGGTAAAACAATTACAGGGCCATTAACCTTTGCAGTCACGCAAATAGACTTGCAAA -AAAGGATGAATATTGATTTATTTATTTCAGTTGGAAAATGTTTTAAATCAAATGAAGAACTATCATATAG -AACATATTTTTGTCTAGATAACATGTTACATGGTCGTATCACTTCCAACAATTTTATAACAGATGAAATA -GCGTTACTTGAGGATATGAACGAATTTGCTTCTGACAACAATTTAACGTTTACTTCGTCTTATTATCACA -CAATGAGAAAAAGTTTTAGCGGTGAACAAGGTTGGATTGATGTAAAGGCCAAAGTGTATGAAAATGATTA -ATTAATAATCAGTAGAGGTAATATATGATAATTTTTATTTTATTAACAGTTTTTGCACTCTTTTATATAG -CGATGATTGCTAGTTTATTTAAAAGTGAAGGTTTTTCAATAATAGGCTTAATATTGGATATAGTTATTTT -GACAACGTTAATATTTTATTATTTTGTAGGTGCGAGTTTTGTTGATAATGATTTAAGTAACTTTTTAGCA -TTCATGAATTTTGGGTCATTTGTGTATATGTACTATGCAATTAAGAGCTTGTGGGTGAAGCCTAAGTTAG -TAAATTATATAATTGCAAAAGAAATAGGCGAATCAAAAGATGTCATTGAAGAACAGGAATTAGATTTACA -GACATCAAAGATAAGAGGTATCTACTTTTTCATTATTGCAATTGCCTTGTTAATAATTACTAAATTAAGA -ATGCAACCTGAGTTACAGGCAGATGCTATATCGATGAATCCAGTTTTTATTTTTATAGGAGTTATTATCA -TTTTAATTTGGCTAGTACTGGATATATATCGTAAGAAAAAATACGGTATATTCTTATTCAAGACGATAGT -GCCATTAGTTGTTACGACTTGGATTATTATAGCTACTATTGTACTTTCATAAGAAATTTTCAATAATTTT -TTTGGTTATAATTGTTGATGGATATTAATTAATCGATAGAAAAATCTTAATGATTTTTGAAAAATATGTA -AAAAGTATATACTATTAATATCTTTTTTACTATAATTATAAATAGTTAAATAAATTGAAAGACAAAATAA -TGAGTAGGAGTTAATGAGATGGAAAACCAAAAACAAGGCAATGGCTTAAAAATTGCAACATGGGTATTTA -TTGTATTAACAGTAGTTACACCGCTATTTGGTATTGGAAGTATTGTTTGTAGTATTAATTACAAAAAATA -CGATGCAGAAAAAGGTTCGAAGTTATTGAAAATTGCAATTATCGTAACAATAATTGTTTTTGTTTTAAAT -TTATTAGCATATTTAGGTTTAAGATAAGTAAAATGAATTTGAAGAAGCATTAAGCGACATTTGGGTGTTG -TTTAATGCTTTTTATTTAACGGAAATAAGTGTAGAGAATAAATTAATAGCTTAATCAAGAGATATTTCGA -ACACATAGGGGCGATAACATGACTTTCGAAGAGAAGTTAAGTCAAATGTACAACGAGATTGCGAATGAGA -TCAGTGGGATGATACCGATAGAGTGGGAAAAAGTATATACAATGGCTTATATAGATGATGAAGGTGGAGA -AGTGTTCTACTATTACACAGAACCTGGAAGCAATGAATTATACTACTATACTAGTGTATTAAATAAATAT -GATATATCGGAATCAGAATTTATGGACTCAGCGTATGAGTTGTATAAACAATTTCAAAATTTAAGAAATA -TATTTAAAGAAGAAGGATATGAACCATGGACATCATGCGAATTTGATTTTACAAAAGAAGGTGAATTAAA -AGTTTCATTTGATTATATAGATTGGATCAATACAGAGTTTGATCAATTGGGCCGTCAAAATTATTATATG -TACAAAAAATTTGGGGTTATACCAGAAATGGAATATGAAATGGAAGAAGTTAAAGAAATCGAGCAATATA -TTAAAGAGCAAGATGAAGCTGAACAATAGGGGAGATAACATGACTTTCGAAGAAAAATTAAGTGAAATGT -ACAATGAAATTGCGAATAAAATTAGTAGCATGATACCAGTAGAATGGGAAAAGGTATATACAATGGCTTA -TATAGATGATGGAGGAGGTGAAGTATTCTTTAATTATACTAAAATAAACAGCGATGAATTGAATTATTAC -ACCGATATACCTAAGGAGTATAACATTTCTGTGCAAGTATTTGATGATTTATGGATGGATTTATATGATT -TGTTTGAGGAATTAAGAAATTTATTTAAAGAAGAAGGACATGAACCATGGACATCATGCGAATTTGATTT -TACAAGAGACGGCAAATTGAATGTTTCATTTGATTATATTGATTGGGCGAATTCAGAGTTTGGGCCAATG -GGAAGAGAACATTATTATATGTATAAAAAATTTGGAATTTGGCCTGAAAAAGAATATGCCATAAATTGGG -TTGAAAAAATAAAAGATTATGTTAAAGAGCAAGAAGAAGCTGAACTATAGGGGAGATAACATGACTTTCG -AAGAAAAACTAAGTGAAATGTACAACAAGATTGCAAATGAGATTGTTGGCATGATACCTGTAGAATGGGA -AAAGGTATATACAATAGCCTATGTAAATGATAGAGGTGGAGAGGTCGTTTTTAATTATACTAAACCAGGT -AGCGATGAATTGAATTATTACATGAATATATCTAGAGATTATAATGTTTCGGAAGAAATATTTGATGATT -TATGGATGGAACTTTATAGATCATTTAAAAAATTAAGAAATATATTTAAAGAAGAAGGACATGAACCATG -GACATCATGCGAATTTGATTTTACAAACGAAGGTAAATTAAAAGTTTCATTTGATTATATTGATTGAAAG -AATACAGAATTTGATCAATTGAGTCTTGAAAATTATTATATGTACAAAAAATTTGGGGTTATACCAGAAA -TGGAAGAAATTAAAGAAATCGAGCAATATATTAAAGAGCAAGAAGAAGCTGAACTATAGGGGAGATAACA -TGACTTTCGAAGAAAAACAAAGTGAAATGTACAATAAAATTGCAAATGAGATTAGTGGGATGATACCAGT -AGAGTGGGAAAAGGTATATACAATTGCCTACCTAGATGATGAAGGTGGAGAAGTCGTTTTTAATTATACT -AAACCAGGTAGCGATGAATTGAATTATTACACGGATATATCTAGAGATTATAATATTTCAGAAAAAATAT -TTGATGATTTATGGATGAATCTTTATTACTTGTTTATGAATTTAAGGGATTTATTTAAATAAGAAGATTT -AGAACCATGGACATCATGTGAATTTGACTTTACAAGCGAAGGTGATTTAAACGTATCTTTTGATTATATA -GATTGGATTAAATTAGGTTTTGGCCCATCAGGAAAGGAAAACTACTATATGTATAAAAAGTTTGGTGTTT -TACCAGAAATGGAATATGAAATGGAAGAAATTCGAGCAGTAGAGAAGTATGTTAAAGAGCAAGAGTAGCA -GACATGTTATAAAAGGCTGTGCAAAACCAACCTCGTTTTACATTTGATTCAAAGAAGAAGGTAAAAAATA -AGATTATTTGCAACTTAAAAAGTCAATTAGCTTATCGGTATCCATACATCATGGATAAATAAGTTCAACT -AATTAACAAATCACGATATAAATTTAAAATTGTCATTAATTGAAAAGGTTATTGTAGTGTATTTTATAAA -GTTGATGTACATCGACTTATTTTTTAAAACTTATATCAAAAAAATATGAGAAAAGTATATACTATTAAAA -TGTTTTTTACTATAATTATAAATAGTTAAATATTTGGGTATAAAATAAATGTGTGGGAGCAATTTTTAGA -GATACATAGCAATGTAAAGGTATCAAATACTTATTGCATAATTTATTATGATGACATAATTTTCAGTAGA -TAGTTGTAAATTAACACTGAAATAGATGTTTATATTAAGAAGACTTTAATATCATAATTAATCAAAATCT -TGCGTCAAACATTTAAACGAATTTTAAGTTGATAACAATTGGCTAAACATTGTTCAAACATCACAATGAT -AAAGCATATTATCAGTATTGTAGTGTGTGGAAAATGACAGCCATCTAAGGAGAAAAATGATGAAAAGAAT -ATTGGTAGTATTTTTAATGTTAGCAATTGTATTAGCAGGTTGTTCTAATAAAGGTGAAAAGTATCAAAAA -AGATATTGATAAAGTGTACAAAGAACAGAATCAAATGAATAAAATTGCCTCGAAAGTACAAAACACTATT -AAAACAGACATTAAACAAGAAGACAGTAATACACATGTCTATAAAAATGGTAAAGTCATTGTTATTGGTA -TTCAATTGTATAAAGATCGTGAAAAAATGTATTATTTCGCATATGAAATAAAAGATGGTAAGGCAGAGAT -TAATAGAGAAATAGACCCAATTAAGTATATGAAAGACCATAAAGCAGATTATGAAGATGAAAATGTAGAA -GTGGAAAAAAATAACGTATGCTTTCTTTAAAACTTTTAACCAGTTTCAAAAAATAAATGAGCTTTAGCGA -TAATAATTTTTACAATAAACACGATATAAATTTAAATATTTATATATAAGAACACAAACGTAAGTTTGTA -AATAATAATAAAGGAGTAAGGCAATGGAAAAATCGATCAAAATAATGACAATAATAGGAATTGTTGTTCA -AGGTTTAGCAACGGTATTTAGTTTACTATTGATGGTTTTAGCAGCATCAGGTGTAATGACTACAGATGTG -TCAACAACAGTTAATGGTGAGGTTGACCCAGTTGATGCAGAAACAGCAGCAGCAATTTTCACTGTATTAT -TCTTATTCCTATTCATATTTGGAATCATTTCAATTATTTTAGGTGCAATCGGTATGTTTAAAGCATCTAA -AAACAAAAAAATGAGTGGAATATTGTTGATTATTGGAGCTGTAATAAGTGGTAACATAATTACATTTGCT -TTATGGTTAGTCAGTGGTATTAAACTCCTTACTAATAACAAGCCTAAAGATGAAATAAGCGACTTATCAT -AAACATCGTATATTGAAATTTCAAGATTTCTTAAGTAATTATATTTCTGTTAGTTTTTAATAAATTAACC -AATTAAATAAATTGCTCTCTTAGAAGTAGATTTTCAGTCAATAACTGCTTTTAAGAGAGCATTTTGTATT -TGATAATGCTCATAGCATCGGACAAAAACCATTGACGAACTTTAAAAAAATACGTTAGACAATGCACTTC -TAAATATTAAAGGCATCGACTAACGCATTGTTCAAATAGAGTTAATTATTTTTATAAAATTGATGATGAT -CATTCAAGTAAGCATAGAATAAACCTATAATGAGACCGCCTCCGATATAGTTACCGATAAAAGCGGCAGC -AATATTTGAAATAGCAGGAATGAAGTGCAATGTATCAACTTGATAAATTAAGCCTCCCATAAACAAGCAA -CTGTTGTAAACGACATGTTCATAACCCATAAAGGCGAATATGGTAACACCGAACATCATGACAAACATTT -TTGCAAGTACATCGTCAATTTGCATGGCGATAACTAATGAAATATTAATAAAAAAGTTGGCGAATATCGC -TTTCATTAATATACTTACAAACCCAGTAGACAACGTTTTATGTTCTATAACTGCTGATAATTGATTTAAC -ATATCTGGCGTCATTACATTTGAAAAACGCATGAAACTAAATAAAATAGCAGCACCTAAAATATTTCCTG -CAAAGCACAATAAAAATATTTTCAATACTCTAGTCGGTTTAATTACTTTATAATACAGGCCTACAGTAAA -GTACATGAAGTTACTGGTTAGTAGTTCGGAGTTTGTAAATAAAATGAGTACTAACGCAAAACTGAATGTA -ATGGCGCTGGCCATATTCACAATGCCTGGCGGTAAATCTGGTTCGTGTGTTGCTTTAACTGATAATACGA -AGACCGTAATAATCCCGATAATAAATCCTGCCATCATCGCGCGTAATAGATAACGTTTTAAATAAACGCT -TTGTAATATATCTTTCGTTCTTATCGTTTCGACTACGTTATTTACCCAGTCGTCCCCATAAAATATTTTA -TCCCATTTAATATGTTTCTCCTTCACAATGACATCCTCGCTTTTCATTTGTTAATCAGAGTATACTATGA -ACCGCCTTATTTGTGAATAATTTCACAAAATTAATTTCACAAAATTAATTTTAAAAACTAATATTTTTGA -ATAACAGCTAGGATTTTTTAACAAATCATTTATTTTAAAATAATTAATAGACAGACGGTATCACTGAAAA -GTCATGAATTTCATATAAAAAAGCCTAGTAACGATGGGTCAATCATTACTAGGCAGTGAGCATTTATTAA -GTTGTCGCTTGTTTCGGACGACGTATAAATACATCGATGATGAAACCGATAATAGCAAAGAGCATGAATG -GTACAAGCCAAGCTAAATCGATATCTGCTAAAGGTAACATCATAAACCATTTCAAAATAACACCGTGTAA -TAAGTTGAAACTATTTAGTATTTGTAAAATTGAAATAATCAATGTAATAACAGTTGCGAGTCGATAGGCC -CAACTGAATCTGAATGTGCTAAACATGTTAGCAAATGATATCAGTACAAGTGCAATAGACACGGGATATA -TTAATGTCAACAATGGTACAGCAATTTTTAAAATCATTTCTAAACCAAGTGTTGTAAATAAAAATCCTAT -GATGGAGAAAACAAGTGCGAATATTTTATAAGAAAACTTAGGTACATGTTTCTTAGTAAATGTTGCACAA -GCGTTGACGAGTCCTATACATGTTGTTAGGCATGCAAGAATAACCGTCATTCCAAATACGAGGTTACCGA -ACGAACCAAATACTCGTAATGAGTTGTACGTCAATATATCTGTACCATCTTTAAAGTTTCCTGGAGCTGT -TGATGCCCCAACGTATGCAAGTGCAAAGTAAATCATTCCAAGTAATATGGCTGCAATAAGACCTGAAAAG -CAGACATATTTTAAAATTTTCATGCGATCTGTGAGGCCTTTAAACTTATAGCCATTGACAATGACTACGG -AAAAAGCTAACGCAGCAACAAGATCCATTGTAAAATAGCCTTCCAAACTTCCTGAAATGAAAGGATGTGT -TATATATTTATCCTTAGGTGCACTTAGTACAGATTCAGGGTTGAAAATGACAGCAATACTTAATAGAGCG -ACCATTAATAGTAATAACGGTGTTAATAATTTACCTAAATTATCAACGATTTTCGATGGATTTAAACTAA -TCCAGTAAACGATAGCAAAAAAGATTGCTGCGAATATAATTAAAGTCCATTGGTTGTGCACAGGTAAAAT -GTGTCTTGTACCAATTTCGTACGCGACATTTGCAGCACGTGGAATACCGTAAAATGCTCCGATAGACATG -TAAATCACGACAGCAAAAATAAACCCGAACCATGGATGTATACGATTGCCTACACTTTCAACACCTTCAT -CATAAAATGCAACAACAATAACAGTAATAAAGGGGAGTAATATGCCTGTAAGAGCAAAGCCTAGCATACC -AATCCACATATTTTGACCCGCTGTATGGCCGAGCATGGGCGGGAATATTAAATTTCCGGCTCCAAAAAAT -AGTGAAAATAACATGAGGCCCGAAATAATAACTTGTTTTTTCAATGTAATTTCCTTCCTAAAACTAGATA -TTCATAATAATTTAAAAAATCTGAAAAATAAAAACGTTCTTACTTTATCTTTAAATGACAATACTATGAT -TCTATTATTTTATAAAAAAGATTGCAATAATAACGTCTTGCTATTATTGGATAATGACAATTAAAGTGTC -GTTTTTATGAATTAAAATAGGTGAAAGTAAGTTGGAAATACGTTGGAGCGTTGTGATTTTTATGAGAAAT -TGTATGAGTGAGGACTGCTATTTATAAAAGGTAAACTATGGATGAGTTTATGGTTGTTCCAATAGGTAAA -CAAGAGATAGCACACTGTACACATAATGATACGTGGATGAGTGAATATGACTGATAGGAAGGCCTAGTCA -CTCAAATGAATTAAAGTTTATTACGTGATAAATCACAAATCTCTCTCATGTGATAGGTCTCCCATTAAAT -CATGCTTATATGAAATGTTCACATATTTGTTAGCTTTTCAAGAAATAATATTAAATATCTTTTCATAGTA -TAGCAATATTAAATAAATGCATTTATAATTTTAACTGTATTTTAAATATTAATCATGAGGTGATAAGATG -AATAAAATTTCAAAGTATATTGCAATAGCATCATTATCGGTAGCGGTTACAGTTTCGGCACCACAAACGA -CAAATTCTACAGCGTTTGCCAAAAGTTCTGCTGAAGTTCAACAAACACAACAAGCTTCTATACCAGCATC -ACAAAAGGCGAATCTTGGTAATCAAAATATTATGGCAGTGGCTTGGTATCAAAATTCAGCTGAAGCAAAA -GCATTATATTTACAAGGTTATAACAGTGCAAAGACTCAGTTAGATAAAGAGATTAAAAAGAATAAGGGTA -AACATAAGTTAGCTATTGCTTTGGATTTAGATGAAACAGTTTTAGATAATTCTCCATATCAAGGCTATGC -ATCAATACACAATAAACCTTTCCCAGAAGGTTGGCATGAATGGGTACAAGCTGCTAAAGCTAAACCTGTC -TATGGCGCAAAAGAATTCTTGAAATATGCTGACAAAAAAGGTGTCGATATCTACTATATTTCTGATAGAG -ATAAAGAAAAAGATTTAAAGGCAACACAAAAGAACTTAAAACAACAAGGTATCCCTCAAGCTAAGAAGAG -TCATATTTTACTAAAAGGTAAAGATGATAAGAGTAAAGAATCACGCAGACAAATAGTTCAAAAGGATCAT -AAACTTGTCATGCTATTTGGAGATAATTTATTAGACTTTACAGATCCAAAAGAAGCTACAGCTGAATCTC -GTGAAGCATTAATTGAAAAACATAAAGACGATTTCGGTAAGAAATATATCATTTTCCCTAACCCAATGTA -TGGTAGTTGGGAAGCTACGATTTACAACAATAACTATAAAGCAAGTGACAAAGCAAAAGATAAATTACGT -AAAAATGCTATTAAGCAATTCGATCCTAAAACAGGCGAAATTAAATAATATATGAATTGGACGTCTACAT -GTACTTAAAGGTATATGTAGGCGTTTTTAAATTGATCCTTAATTTTAAATGTACCGTACAAAAATAATAG -ACAATTAATTGCATTTTCCATAAATTTGCTTTTAATATAAAAAGTTCGGGTATAATGAAGGATAAGTGTA -TGTATAACATTACAGAGCGCAACACGACGTACGTGCATCTAAGAATATAAACAATGTTTAAATCATAGTA -GTAGGGAGAGAAATGCATGTTTTTAGCTTGGAATGAAATACGGCGCAAAAAATTGAAGTTTGGACTAATT -ATTGGTGTGTTAACGATGATTAGTTACTTGCTATTTTTATTATCTGGATTGGCGAATGGTCTTATCAATA -TGAATAAAGAAGGCATTGATAAGTGGCAAGCAGATGCCATTGTTCTAAATAAAGATGCCAATCAAACTGT -GCAACAATCTGTTTTTAACAAGAAAGATATTGAAAATAAATACAAGAAACAAGCTACATTGAAGCAAACA -GGAGAAATAGTTTCTAATGGTCATCAAAAAGACAATGTCTTAGTGTTCGGTGTTGAAAAGTCATCATTTT -TAGTTCCGAGTTTAATAGAAGGGCATAAAGCGACTAAAGATAATGAAGTGTTAGCTGATGAAACACTTAA -AAATAAAGGATTTAAAATTGGCGACACATTATCACTATCTCAATCAGATGAAAAATTGCATATCGTAGGT -TTTACAGAAAGTGCAAAATATAATGCGTCACCAGTCATTTTCACGAATGACGCTACCATTGCCAAAATCA -ATCCTAGATTGACTGGAGATAAAATTAATGCAGTTGTTGTACGTGATACAAATTGGAAAGACAAAAAATT -AAACCAAGAGCTTGAAGCGGTAAGTATTAATGACTTTATTGAAAATTTACCAGGTTATAAACCACAGAAC -TTAACATTAAACTTTATGATTTCATTCTTATTTGTCATTTCAGCTACAGTTATAGGTATATTCTTATATG -TCATGACATTACAAAAAACAAGTTTATTTGGCATATTAAAGGCTCAAGGATTTACGAATGGCTATTTAGC -GAACGTAGTTATTTCACAAACGCTCATATTAGCATTATTTGGTACGGCATTTGGCTTACTGTTAACAGGC -GTTACAGGTGCATTTTTACCTGATGCAGTACCTGTCAAATTCGATGTACTAACATTGCTCGTATTTGCAA -TTGTGTTAATGATTGTCTCTGTATTAGGAAGTTTATTCTCCATTTTAACAATTAGAAAAATAGATCCGTT -AAAGGCGATTGGGTAGGAGGTGTAGCAAATGTTGAAATTTGAAAATGTAACAAAGTCATTTAAAGATGGG -AATCGTAACATTGAAGCGGTTAAAGATACAAATTTTGAGATAAATAAAGGTGATATTGTAGCATTAGTTG -GACCTTCTGGCTCTGGTAAAAGTACATTTCTAACTATGGCAGGTGCTTTACAAACACCGACATCTGGGCA -CATTTTAATCAATAACCAAGATATTACGACAATGAAGCAAAAAGCATTGGCAAAAGTTAGAATGTCTGAG -ATAGGTTTTATTTTACAAGCTACAAATCTTGTACCATTTTTAACGGTAAAGCAACAATTTACATTATTGA -AAAAGAAAAATAAGAATGTTATGTCTAATGAAGACTATCAGCAACTTATGTCACAATTAGGTCTAACATC -ATTGCTTAATAAGTTACCTTCAGAAATTTCAGGTGGTCAGAAACAACGTGTGGCGATAGCCAAAGCGTTA -TATACGAATCCGTCGATTATTTTAGCGGATGAACCTACCGCGGCGTTAGATACTGAAAATGCGATTGAAG -TCATTAAAATTCTACGTGATCAAGCCAAAAAAAGAAAGAAAGCATGTATTATTGTTACACATGATGAACG -ACTTAAAGCATATTGTGATCGCTCATATCATATGAAAGATGGCGTCCTTAATCTTGAAAATGAAACAGTA -GAATAGTTTTATTAAGCCGGTACATCATGTGCCGGTATTTTTATGTTTATGTATTATTTGAATAAACTTT -CACATTCAATTAATAATAATTATTATCGAAAATTAGAAATATTCCGTGAAATATAATATTTTTTGTAGTA -AAATGGCCTCTAAGTATTCAATATTTAAATATGGGGATTGAATATAAAATTATCGTAATGGGGGTCAATG -GTTATGGATTTATTAATAGGTACTTTATTTTTATTTTTGGTCTTAGTGATTTTTACATTATTTACATATA -AAGCACCTAATGGTATGCGCGCCATGGGAGCATTAGCAAATGCAGCAATCGCAACATTTTTAGTGGAAGC -ATTTAATAAATATGTTGGTGGTGAAGTGTTCGGTATTAAATTTTTAGAAGAGCTAGGAGACGCTGCGGGA -GGTCTAGGTGGTGTCGCTGCCGCTGGATTAACAGCATTAGCTATCGGTGTGTCACCAGTATATGCATTAG -TTATAGCAGCCGCGTGCGGTGGTATGGATTTATTACCAGGTTTCTTTGCGGGTTATATGATTGGATATGT -GATGAAATATACAGAGAAATATGTGCCGGATGGTGTCGACTTAATTGGATCGATTGTCATCTTAGCGCCA -TTAGCTCGTCTTATTGCAGTATTATTAACGCCAGTAGTGAATAGTACATTGATTCGAATTGGTGATATTA -TCCAAAGTAGTACGAATACGAATCCAATTATCATGGGTATCATTTTAGGTGGTATTATTACGGTTGTCGG -CACAGCGCCATTGAGTTCAATGGCATTGACAGCATTATTAGGTTTAACGGGTGTACCTATGGCTATTGGT -GCCATGGCAGCATTTAGTTCGGCATTTATGAATGGGACGCTATTCCATCGCTTAAAATTAGGTGATCGTA -AGTCTACGATTGCAGTAAGTATTGAACCTTTATCACAAGCAGATATTGTATCAGCCAATCCAATTCCAAT -CTATATTACAAATTTCTTTGGTGGTGCGATTGCTGGTTTAATTATTGCTATGTCAGGTTTAATTAACGAT -GCGACAGGTACAGCTACACCGATTGCAGGATTTTTAGTAATGTTTGGATTTAATCATCCAATGACTATTG -TAATTTATGGTGTAGTAATGGCGATTGTAGGTGCGCTTGCAGGTTATCTTGGTTCAATCGTATTTAAAAA -ATATCCAATTGTTACTAAGCAAGACATGATTAATCGAGGTGCAGTTGACGCATAGCATCATCATATTGAA -TAGTAAAAACAAATAAAACATAGTAACGTGATTCAGTCGATGAAAAAATCGATAATGAGTCACGTTTTTT -TATAGAAAAATATAAGACATAAAAATGTCATAATTTATAGTCGACAAATATCACGCCACATAAACACTTA -TCATTTTCGTAGGTGCCTTTTACTTTATGGAATGAACTTACTTTTTACGAAATTATGCGTATTTTATAAA -CAAATATCATTGATATAACGGTAAATGTAAGCGTTTACAACAGAAATAACTGCATGCTACGATATTTTTG -TAAATTCACTGATTCAAGTATTTTAAGTCAATATGAGGAGGGATGTTATGAGCGATTCTGAGAAAGAAAT -TTTAAAAAGAATTAAAGATAATCCGTTTATTTCACAACGTGAACTTGCTGAGGCAATTGGATTATCTAGA -CCCAGCGTAGCAAACATTATTTCAGGATTAATACAAAAGGAATATGTTATGGGAAAGGCATATGTTTTAA -ATGAAGATTATCCTATTGTTTGTATTGGCGCAGCGAATGTAGATCGTAAGTTTTATGTGCATAAAGATTT -AGTTGCAGAAACATCAAATCCTGTAACGTCAACACGCTCTATTGGTGGCGTAGCAAGAAATATTGCTGAG -AACTTAGGTAGGCTTGGCGAAACGGTCGCTTTTTTATCTGCTAGTGGACAAGATAGTGAATGGGAAATGA -TTAAACGATTGTCCACACCATTTATGAATTTGGATCATGTTCAACAATTTGAAAATGCGAGTACAGGTTC -ATATACAGCTTTAATTAGTAAAGAAGGCGACATGACATATGGCTTAGCAGATATGGAAGTGTTTGACTAC -ATTACGCCTGAATTTTTAATTAAGCGTTCACACTTATTGAAAAAGGCTAAGTGCATTATTGTCGATTTGA -ATTTAGGCAAAGAGGCATTAAACTTCTTATGTGCCTATACCACGAAACATCAAATCAAATTAGTTATCAC -CACGGTTTCTTCCCCAAAAATGAAAAATATGCCTGATTCATTACATGCTATTGATTGGATTATCACGAAT -AAAGATGAAACAGAAACATACTTAAATTTAAAAATAGAATCTACTGATGATTTAAAAATAGCTGCTAAAC -GCTGGAATGATTTAGGTGTTAAAAATGTTATTGTGACAAATGGCGTGAAAGAACTCATTTATCGAAGTGG -TGAGGAAGAAATCATCAAGTCAGTTATGCCATCAAATAGTGTGAAAGATGTTACAGGTGCAGGTGATTCA -TTCTGTGCTGCAGTAGTGTATAGCTGGTTAAATGGGATGTCTACTGAAGATATATTAATTGCTGGTATGG -TTAATGCAAAGAAAACGATAGAAACGAAATATACAGTTAGGCAAAACCTAGATCAACAGCAACTTTATCA -CGATATGGAGGATTATAAAAATGGCAAATTTACAAAAGTATATTGAGTATTCTCGAGAAGTTCAGCAAGC -ACGGGAGAACAATCAACCGATTGTAGCATTAGAATCAACAATTATTTCGCATGGTATGCCGTACCCACAA -AATGTTGAAATGGTAACAACAGTAGAGCAAATTATCAGGAATAATGGTGCCATTCCAGCAACCATAGCCA -TTATAGATGGCAAAATTAAAATTGGTTTAGAAAGCGAAGATTTAGAAATACTGGCAACTAGTAAAGACGT -TGCTAAAGTATCTAGAAGGGATTTAGCAGAAGTTGTTGCGATGAAGCGTATTGGTGCTACTACTGTAGCG -ACGACGATGATATGTGCTGCAATGGCTGGTATTCAATTTTTTGTTACTGGAGGTATTGGGGGTGTCCATA -AAGGTGCAGAACATACGATGGACATTTCAGCAGACTTAGAAGAATTGTCTAAAACAAATGTCACTGTTAT -CTGTGCAGGTGCCAAATCAATTTTAGACTTACCTAAGACGATGGAATATTTAGAAACAAAAGGCGTTCCA -GTTATTGGATATCAAACGAATGAATTGCCAGCATTCTTCACTCGCGAAAGCGGTGTTAAGTTAACAAGTT -CGGTTGAAACGCCAGAACGACTTGCTGACATTCATTTAACAAAACAGCAGTTAAATCTTGAAGGTGGCAT -TGTTGTTGCTAATCCAATTCCATATGAGCATGCCTTATCAAAAGCATATATTGAGGCAATCATAAATGAA -GCTGTTGTTGAAGCCGAAAATCAAGGTATTAAAGGTAAGGACGCCACACCGTTCTTGTTAGGGAAAATTG -TAGAAAAAACGAATGGTAAAAGTTTAGCAGCAAATATAAAACTTGTTGAAAACAATGCGGTGTTGGGTGC -TAAAATTGCTGTCGCTGTTAATAAATTATTGTAGGTGATGATACATGAATATTTTATTCGCTATCACAGG -GATAGCATTTGCACTATTTGTTGCGTTTTTATTCAGTTATGATCGTAAAAACATAGACTTCAAAAAGACG -TTAATAATGATATTTATTCAAGTGTTGATTGTGATATTTATGATGAACACAACGATTGGTTTAACAATCT -TAACTGCATTAGGTTCTTTTTTTGAAGGGTTAATAAATGTTAGTAAAGCAGGTATAAACTTTGTTTTTGG -AGATATACAAAATAAAAATGGCTTTACATTCTTTTTAAATGTGTTGCTGCCATTAGTGTTCATTTCTGTA -TTAATAGGCATTTTTAATTATATTAAGGTATTACCATTTATTATCAAATATGTAGGTATTGCTATTAATA -AAATAACGAGAATGGGGCGTTTAGAAAGTTACTTTGCTATTTCGACAGCGATGTTTGGACAGCCAGAAGT -GTATTTAACTATAAAAGATATTATACCAAAGTTGTCTAGAGCAAAATTATATACAATTGCGACATCTGGT -ATGAGTGCTGTTAGTATGACAATGTTGGGTTCATATATGCAGATGATTGAGCCTAAGTTCGTAGTTACAG -CAGTAATGTTAAATATTTTTAGTGCGCTTATCATCGCCAGTGTAATCAATCCCTATAAATCTGATGATAC -TGATGTTGAAATTGATAACTTAACGAAATCCACAGAAACTAAAACATTGAATGGAAAAACAGGGAAACCT -AAGAAAGTTGCCTTTTTCCAAATGATTGGTGATAGTGCGATGGATGGGTTTAAAATCGCTGTTGTAGTAG -CCGTAATGTTGTTAGCATTTATTTCATTAATGGAAGCAATTAATATCATGTTTGGTAGTGTTGGTTTGAA -CTTTAAACAGCTTATTGGCTATGTGTTTGCACCAATCGCATTCTTAATGGGGATTCCATGGAGCGAAGCT -GTTCCAGCTGGCTCTTTAATGGCGACCAAATTAATTACAAATGAGTTTGTAGCAATGCTTGATTTTAAAA -ATGTCCTGGGTGATGTATCTGCTCGAACACAAGGTATCATTTCAGTTTACTTAGTAAGCTTCGCTAATTT -TGGTACGGTTGGTATCATCGTAGGTTCAATTAAAGGCATTAGTGATAAACAAGGAGAAAAAGTTGCATCC -TTTGCAATGAGGCTGTTACTTGGTTCAACTCTAGCTTCAATCATTTCAGGATCAATCATTGGCCTAGTAT -TATAAATTAATCGAAGTATCTAAATTAAATTCATGGCAAAGCTAAACCCCATCACCAAGGTGGCGCAACA -GCGCATCATAACTTAGTGACGGGGTTTTATCATAACAATCTACTTTTTCGTAGCCGTTTTTGAAATGTAT -GTTGATGGTTTATCTTTTTCAAAAATTGTTAATCCCGTTATATCTTTTTTATGTTTTGAAGGGACAATGA -AGCTAAGTATATAAGCAAAGACAAAAGCAACTGTAAATGAAATGGTAGATACATAGAAAGGTGAGTTACC -TTTGCCAACACCATTATAGACATAAGCAAAGATGATACCCAATATTAATCCACAAATAACACCGAATGTA -TTCGTACGTTTAGTGAAAATACCAACTGCAAATACACCAGCCAATGGAACGCCGAATAATCCAGTTACAA -ACAAGAATAAATCCCATAAGTCATTTGAATTAGAAGCAATTAAGTATAGTGACATTCCAAAACCGAAAAT -ACCTGCAATGATGATAATGAAACGTGCAAAGTTAACTTCGTGTCGTTCGCTACCTTTTCCGAAGAAGCGT -TGCTTAATGTCGATTGAAATACAAGCAGATATAGAATTTAAACTAGATGAAATGGTAGACTGTGCAGCTG -CGAAAATGGCTGCAATAAGTAATCCTGCTACAAATGGTGGCATCTCAGTCAAAATGAAATATGGCACTAC -AGATGATGTATTGAAGCCTTTTGGTAAAACAGCTTCATGTGCATAAAATGAATACAACATTGTACCCATA -CCATAAAATAAGGGTGCTGAAATTAAAGCTAGGATACCATTTGTCCATAACGATTTATTTGTTTCTTTTA -AACTATCAGAAGCTTGATAACGCTGCACGACGTCTTGACTCGCCGTGTATTGATACAAATTGTTGAAAAT -ATTTCCTAGGAAAATAATTGGAATGGCAGCTGCTGCAGTATTCAGTTTCCAATTGTCTGCACTAATTAAT -TTTTTGTGCTCAATCGCATCTGCAAAGACAGTGCCAAAACCGCCTTTAATGTTCATAACACCAAGAATGA -TGATAACTAAAGCGCCGCCTAATAGAATGACGCCTTGAATGAAATCACTCCAAACCACACCTTCGAAACC -ACCTAAAAATGTATATAAAATACATAGTAAACCAACGAGTGATGCAACGATATAAGGGTTCATGTCTGAT -ACAGATGTAATCGCTAATGTTGGTAAGTAGATAACGATTGCTACACGCCCTAGATGATAAACGACAAATA -ATAATGAGCCAATAACACGAATGCTAGGTCCGAAACGTGCTTCTAGATATTCATATGCAGATGTTACCTT -TAACTTTTTAAAGAATGGAACATAGAAATAAATGAGTAATGGAATAATTGCTACGATAGCGATGTTACCT -GCAATATATGACCAATCTGTTAAAAATGCTTTCTCTGGTGTAGACATAAACGTAATTGCACTTAATGTAG -TGGCATAAATTGAAAACCCAACTACCCAAGATGGCAAGCGACCACTTGCAGTAAAGAAACTATTCGTACT -TTGGCTCGCGCGCTTAGTAAAATAAACGCCAATGAGTAACATAGCTAGTAGATATATGATAACGGCAACC -CAGTTTAGTGTGCCAAACCCAACTTCTTTCATGGGCAACATCCCCTTTACAATGTATTGATTCTTTGATG -TCTATAAATCGTATTTTGCAATGAGTTGATCTAATGTTTGTCGATGTGCTTCGTTAAAAGGTTTGAATGG -ACGTTTCGGTAATCCTGCATCAATGCCACGGTGACGTAGTATTTCTTTCAATGTTGGATAAATCCCCATT -GATAACACTGTTTCGATGATGTCGTTTGAATCATGTTGTAGTTGGTAAGCTTCTTGAATTTGACCTTGTC -TTGCTAAGTCGAAGATTTTTCTAGCGCGGCGACCATTAACGTTATATGTAGAACCAATTGCACCATCTAC -GCCAGAAATCGTAGCTTGAACTAACATTTCATCAAAGCCAGATAAGATTAATTTGTCTGGGAATGCTTTT -CTAATACGTTCGAGTAGGAAGAAGTTTGGCGCTGTATATTTAACACCAACAATTTTTTCGTGATTAAAAA -GCTCGCTGAATTGTTCAATAGAAATATTCACACCTGTTAAATCTGGTATTGCATAAATAATCATATTGTT -CTGTGTTGCTTCGATAATATCGAAATAGTAATCTCTAATTTCTTCAAAAGTAAATGGATAGTAGAATGGT -GTTACGGCAGAAAGTGCATCATAACCGAGTTCTGTGGCATATTTTCCGAGTTCAATGGCTTCATTTAAAT -CTAACGAACCTACTTGAGCAATCAATTTCACTTTATCCCCAACTGCCTCTTTGGCAACTTTGAAAACTTG -CTTCTTCTGTTCTGTATTTAATAAAAAGTTTTCGCCTGAGCTACCATTTACATAAAGACCGTCTAATTCT -TCAGTTTCAATGGCATTTTGAGCAATTTGTTTAAGTCCTTGTTCATTTACTTGACCATTTTCATCAAAAG -GAACGAGTAACGCTGCATATAAACCTTTTAAATCTTTGTTCATTATGAAGTCCCTCCAAAAATCATTTGA -TAATATAGTTTACAGCTATAATTGTAAACGCTATCATAAAATGTAACAATATCTTTTTGAAAATTGTAGT -CATATTTATGTATAATTAATGAAAATTTTTTTCAAAATCAATAGAAATGGAGTGAGTAAGGTGTATTACA -TCGCAATCGATATTGGAGGCACTCAAATTAAATCGGCAGTTATTGATAAGCAATTGAATATGTTTGACTA -TCAACAAATACCAACGCCGGACAACAAAAGTGAGCTTATTACTGACAAAGTATATGAGATTGTAACAGGA -TATATGAAGCAATATCATTTGATCCAACCTGTCATAGGTATTTCATCAGCAGGCGTTGTTGATGAACAAA -AAGGCGAAATTGTATACGCAGGGCCAACCATTCCGAATTATAAAGGTACTAATTTTAAGCGATTATTAAA -ATCACTGTCTCCTTATGTCAAAGTAAAAAATGATGTAAACGCTGCATTACTAGGAGAATTGAAATTACAT -CAATATCAAGCAGAACGGATCTTTTGTATGACGCTTGGTACAGGCATTGGTGGTGCGTACAAAAATAATC -AAGGCCATATTGATAATGGTGAACTTCATAAGGCAAATGAAGTTGGGTATTTATTGTATCGTCCAACTGA -AAATACAACGTTTGAGCAACGTGCTGCAACGAGTGCATTGAAAAAGCGCATGATTGACGGAGGATTTACG -AGAAGCACACATGTGCCAGTATTGTTTGAAGCAGCTGAAGAAGGTGATGATATTGCAAAACAAATATTGA -ATGAGTGGGCAGAAGATGTAGCAGAAGGGATTGCCCAAATACAAGTCATGTATGATCCAGGGCTTATATT -AATTGGTGGCGGTATATCTGAACAAGGAGACAATCTCATTAAATATATCGAGCCGAAAGTTGCACACTAT -TTACCAAAAGACTATGTTTATGCACCAATACAAACGACTAAGAGTAAAAATGATGCAGCATTATATGGCT -GTTTGCAATGATGGTTGAAAGAAGGAGTCATTCTAAAATAGAATTTGAAACCGTTACGAGAGATGAGAGC -TGTTGTTAGTTCCACAGATTATGTTATATCCATGACCAATCTAAACTATATCAACCAACAGTGTGACACG -GGCATATTAAATTGAAGAAGCTGAGATATTAAAATTTTAGAAAATGTAAAAAATATTTGGTATTGAAATT -AAAAAAGCACCTAGCAACTCGTTGGGACAATCACGATGATTGTCTACAGTTGCAGGTGGATTTGAATATA -CTACTAGTTATTTGTTGTCTAGGATAATAGATTTAGTATGTTGATAAGTTTGACTCAGATTCGTATTTTC -TAATAAATGATAGCTCACGATATCGATTAAAAAGAGTGTCGCAATTTGTGTGTTGATAAATTGATGGTCG -GTATTACGCGATTGATCCGTTGTTAAAAGTACTAAATCTGCACAATCTGTAAGTTTACTACCTTCGAAAT -TTGTGATGGCAACGACATATGCACCATGAGATTTGGCGACTTCCGCTGCAGAAATTAATTCCGAAGTATT -ACCACTATTTGACATAGCAATAAACATATCCGAATGAGATAGTAGGGATGCCGATATTTTCATTAAATGT -GAATCGGTAGTAACATTACCTTTTAGCCCCATACGAATCATACGATAATAAAATTCAGTCGCTGATAAAC -CAGAGCTACCTAGTCCAGCAAAGAGTATATGTCGACTTGATTGAAGTTTGTCGATAAAGGTTTGGATAAT -GTCGTTATCAATAAATTCACCAGTTTGTTGAATGATTTGTTGATGATATTTATGAATTCTTTGAATAATT -GGGCTATTTTCAATAACTGTCTCTGTCATTTCTTGTTGAATATTAAATTTTAAATCTTGGAAATTCTCAT -AATCCAGCTTATGACTAAAGCGTGTCATCGTTGCTGGTGATGTACCAATCGCATGGGCTAAGGAGTTAAT -CGTTGAAAAGGCATCGCTATAGCCATTTTGTCTTATATAATTGACGATGCGTTTATCAGTTTTTGTAAAT -AAATGTTGATAACGTTGAACACGATTCTCAAATTTCATTGTGTCACCCCTTCATCTTAATGATTACTATT -ATATATGAAAAATATTTTCAAGATAGTAAAAAGCATTGATAAAAATTATCTTAATGATATATTGTAAATG -ACTTTACGTGAAAAAACGACTTATGGAGTGAGGAATAATGTTACCACATGGATTAATAGTATCTTGTCAG -GCACTACCAGATGAACCATTGCATTCATCTTTTATTATGTCGAAAATGGCATTAGCTGCGTATGAAGGTG -GTGCTGTTGGTATTCGTGCAAATACTAAGGAAGACATTTTAGCAATTAAAGAAACGGTAGATTTACCAGT -TATTGGCATTGTGAAACGTGACTATGATCACTCAGATGTTTTCATTACAGCAACGTCAAAAGAAGTTGAT -GAACTGATAGAAAGCCAATGTGAAGTCATTGCATTGGATGCAACGTTACAGCAACGTCCGAAAGAAACGT -TAGACGAATTAGTATCATATATTAGAACACATGCACCGAACGTTGAAATCATGGCTGATATCGCGACCGT -TGAAGAAGCTAAAAATGCGGCACGACTTGGCTTTGATTATATTGGCACGACGTTACATGGCTATACTAGT -TATACGCAAGGACAATTACTTTATCAAAATGACTTCCAATTTCTAAAAGATGTACTACAAAGTGTTGATG -CAAAAGTTATTGCGGAAGGTAATGTCATTACACCGGATATGTATAAACGCGTGATGGACTTAGGCGTTCA -TTGTTCAGTCGTTGGTGGTGCGATAACACGACCAAAAGAAATTACGAAACGTTTTGTTCAAATTATGGAA -GATTAAATGATAACGATAAAAAACGAGATGACCATCATTAATTAAAGGTACCTAATTATCTTAGGTGGCT -GAATGAATGTAATGGGTTCATCTCGTTTTGTTTGTTTATGATAGTGATTTTATTTTCAACTTTATCCAAA -AATAAGTAAAGCGACGGGGATGGTGATTAATAGCGACAATGCCACGCGTAAAAACCAAATGATGATGAGT -TTCCAGACAGGTATTTTAATTTCAGTTGCTAGTATACATGGCACTAATGCTGAGAAAAAGATAATGGCTG -ATACGCTTACTACACCGACGACAAATTTAGTACTCATTGCAGCTTTAGTTACTAACAAAGATGGTAGAAA -CATTTCTACAATAGAAATCGCTGAAGCTTTTGCAAGTACAGCCTGATCAGCAATTGGGAAAATATAAATA -AATGGATAGAATATGTAGCCAAGCCAATCAATGAATGGTGTATAGTTCGCTACAATCAGCCCTAAAAAAC -CAATCGATAATATAGAAGGTAAAATACCAACAGTCATTTCTAAACCGTCTTTCAAATTGTCCCAAACGTT -CTTCACGAGGGATGGTGTTAATGCATTTTGTTTCATCGCCTCTGCATATGCAGTTTTCAGTCTGCTTCCT -TCAATAGCAACTTCTTGTTCTCCTTCTTGTCCGTTATAATATTCTGTTGATTCATTGGTGATTGGCGGTA -GCCATGCAGTAATTGCAGTCACGACAAATGTGATGACTAAAGTTATCCAAAAGTATAAATTCCAATGAGG -CATTAATCCTAAAGTTTTAGCAATGATAATCATAAAAGTTGCTGAAACTGTTGAAAAGCCAGTCGCAATA -ATCGTGGCTTCTCGTTTGTTGTACATCCCTTGCTTATAGACACGATTAGTAATCAATAATCCTAAGGAAT -AACTGCCGACAAACGAAGCCACTGCATCGATAGCGGATTTTCCTGGTGTTTTAAAAATAGGTCTCATAAT -AGGCTCCATATAAACACCGACAAATTCTAATAAGCCATAACCTACTAATAAAGAAAGCGCAATTGCACCT -ACTGGAATTAAGATACTTAATGGCATCATTAATTTTTCAAACAAAAACGGACCATAGTTAGCTTTAAATA -GTATTGATGGACCGAATTTAAATACATACATTATACCGATCATTGCACCTGCAACTTTAAATAATGTAAT -GACCAAGTTTGTGATTGAAGTCATAAAAGTACGTCTCACTATTGGTAACGCTGTACCAATTAAAATCATA -ATCAGTGCAACATAGGGCATAAGTGGACCTATGATTGAGCGAATGGCTAGATGAACATGATCGACGAAAA -TAGTGTTGTTACCATTAATCGTAAAAGGAATAAAGAAACATAGTATGCCCACTAAACTATAGACAAAAAA -ACGCCATGCACTTGGTTGTTGTGCATTAGAATGATATTGATTCATTAAAGCAACCCCTTTGTTTAAATGA -ATACACAAAACTGTATGATGCATCTTCCCCTTAATGAGATGAATCATTGTTTTAATTTAGAAAAATCTGA -AAACTTACTATAATTGTATAGTTTGGATTATTTTCAGACCAATACAAATTAACTAATTATATATAGATTG -AAACTATATAGCTTAATAAAATATTTATCTTAAATGTTGTTGTGTTGATTCAACGTCACAATTAAAGTAT -TTATAAATTATTTGAGGATACAGATATTTGTAAATAATTAGTATCGATTTAATATCGTATTATTAAATTT -TTATTAATTTTGTAGTCTTAATCAAAAAATAATATATGTCATGTTATATTGAAAGTGCAGTTGTTTTTCA -TTCTCAAGAGGGGATCAAAAAAATACTTTTGAGGTGATTATATGTTAAGAGGACAAGAAGAAAGAAAGTA -TAGTATTAGAAAGTATTCAATAGGCGTGGTGTCAGTGTTAGCGGCTACAATGTTTGTTGTGACATCACAT -GAAGCACAAGCCTCGGAAAAAATACCAACGACTAATGCAGCGGCACAAAAAGAAACACTAAATCAACCGG -GAGAACAAGGGAATGCGATAACGTCACATCAAATGCAGTCAGGAAAGCAATTAGACGATATGCATAAAGA -GAATGGTAAAAGTGGAACAGTGACAGAAGGTAAAGATATGCTTCAATCATCGAAGCATCAATCAACACAA -AATAGTAAAATAATCAGAACGCAAAATGATAATCAAGTAAAGCAAGATTCTGAACGACAAGGTTCTAAAC -AGTCACATCAAAATAATGCGACTAACAAAACTGAACGCCAAAATGATCAGATTCAAAATACCCATCATGC -TGAACGTAATGGATCACAATCGACAACGTCACAATCGAATGATGTTGATAAATCACAACCATCCATTCCG -GCACAAAAGGTAATACCAAATCATGATAAAGCAGCACCAACTTCAACAACACCCCCATCTAATGATAAAA -CTGCACCTAAATCAACAAAAGAACAAGATGCAACCACGGACAAACATCCAAATCAACAAGATACACATCA -ACCCGCGCATCAAATCATAGATGCAAAGCAAGATGATAATGTTCATCAAAGTAATCAGAAACCACAAGTT -GGCGATTTAAGTAAACATATCGATGGTCAAAATTCCCCGGAGAAACCGACAGATAAAAATACTGATAATA -AACAACTAATCAAAGATGCGCTTCAAGCGCCTAAAACACGTTCGACTACAAATGCAGCAGCAGATGCTAA -AAAGGTTCGACCACTTAAAGCGAATCAAGTACAACCACTTAACAAATATCCAGTTGTTTTTGTACATGGA -TTTTTAGGATTAGTAGGCGATAATGCACCTGCTTTATACCCAAATTATTGGGGTGGGAATAAATATAAAG -TTATCGAAGAATTGAGAAAGCAAGGCTATAATGTACATCAAGCAAGTGTTAGTGCATTTGGTAGCAACTA -TGATCGTGCTGTAGAACTTTATTATTATATCAAAGGTGGTCGCGTAGATTATGGCGCAGCACATGCAGCT -AAATACGGACATGAACGCTATGGTAAGACATATAAAGGAATCATGCCTAATTGGGAACCTGGTAAAAAGG -TACATCTTGTAGGGCATAGTATGGGTGGTCAAACAATTCGTTTAATGGAAGAGTTTTTAAGAAATGGTAA -CAAAGAAGAAATTGCCTATCATAAAGCGCATGGTGGAGAAATATCACCATTATTCACTGGTGGTCATAAC -AATATGGTTGCATCAATCACAACATTAGCAACACCACATAATGGTTCACAAGCAGCTGATAAGTTTGGAA -ATACAGAAGCTGTTAGAAAAATCATGTTCGCTTTAAATCGATTTATGGGTAACAAGTATTCGAATATCGA -TTTAGGATTAACGCAATGGGGCTTTAAACAATTACCAAATGAGAGTTACATTGACTATATAAAACGCGTT -AGTAAAAGCAAAATTTGGACATCAGACGATAATGCTGCGTATGATTTAACGTTAAATGGCTCTGCAAAAT -TGAACAACATGACAAGTATGAATCCAAATATTACGTACACGACTTATACTGGTGTATCATCTCATACTGG -TCCATTAGGTTATGAAAATCCTGATTTAGGTACATTTTTCTTAATGGATACAACGAGTAGAATTATTGGT -CATGATGCAAGAGAAGAATGGCGTAAAAATGATGGTGTCGTACCAGTAATTTCGTCATTACATCCGTCCA -ATCAACCATTTGTTAATGTTACGAATGATGAACCTGCCACACGAAGAGGTATCTGGCAAGTTAAACCAAT -CATACAAGGATGGGATCATGTCGATTTTATCGGTGTAGATTTCCTGGATTTCAAGCGTAAAGGTGCAGAA -CTCGCCAACTTCTATACAGGTATTATAAATGACTTGTTGCGTGTTGAAGCGACTGAAAGTAAAGGAACAC -AATTGAAAGCAAGTTAAATTCATATTCGTAATTTAATATGCTATGTATTTTGTGCTACTAACATGGCACG -GAAGATATAAGTAGCATCACAGTGTTGAATTTTAAAATAGTAAAGTGAAATAAAGCGCCTGTCTCATTAG -CGAAAACTAAAGGGACAGGCGTATCTGTTTATGAGCTTAATAAATTGTATGAATAATATGGTTGATTGAA -TAACTGTTTATCATGATGATAAATTGGGTTTTTAAAAATAATGGTATATTACGCCGTTGTTATAGCGTTT -AAGAAATCAACAACTTTACGATAAATAGTGATTGCTTCGTCATTAGGTCTACGATCAAAATCATGCTCGT -TTTTATTCACGCGTTCAAATGTTGAGTGTGGCACATGATTGTGGATGTGTTCGCTTTCTTCAACAGGGAC -ATCATAATCGCCATTACAATGCGCAATGAACACCGGGGGAAGTGTTTTAAGTTCATTTGGTGAGATGTTG -TATTTTGAATCAGTATAATCAGCAATGTTAATCATATTGATCCACTCACCTGTACCACGTGCATAACCGT -AGATTAAAAAACGTTGGGCGATTTGATCTTGAATAATCGGTGTTGGTGAAGTAAGTTGAGCAAGTACTGT -TTCATTCACACTTTGAGCTATTTTAGCGTAATAGCTATTTGCCATTTTAAACGGTTCAGTATTGATGCCA -CTATAACCATAAAAATCAATAACACCATCAATATCTCTGTCTCGTGCAATTAATAGACTTAAATATGCAC -CTGATGATCTGCCAAAGGTAAAAATAGGGCAATTAGAATATTGTGATTGAATCGCATCGAATGATGTGAA -GATGTCATCGATGATGCAATCAAGGCTTACTTCTGGTAATAAACGATAACTTAGTTGAATTAAATCGTAA -TGTTCCGTAAGGATATCGATATACTGTGGCGATAAATCATTGGCCTTTCCAAACATTAAACCGCCACCAT -GAATGTAGACAATGGCACCTTTTGTTGGTTGATGCTTCGCTTTAATAATTGTGTAGGGTAATTCAAATGC -ATCTTTAGTAATTACTTTATCTTTAATTTCAGTCACGACTATACAGACTCCTTATTTTTGAAATTGATGT -CATTATAACATTGTCTTAAATTTCTATGAAAAATTATCTTTTGATGATGTGTCATGATAATTCTGTTCTA -ATTGACGTAAAGCGTCACGGGTATGCTTCTTTAGACCTTCCCCATAATCCATCATTTTAACAATATCTTT -AAAAGCGGCACGCGGAATGGCTAAATTTTCTAAATCTGCCATAGAAAATTCAAGGTCAATATCATGTGGT -CGCTGTTCAGAAAGTTTATGCACAAAGTCAGGTTCTGTGACAAAAGGCGAAGACATGCCGACCATATCTG -CATGTTGTAAAGCATCTAAAGCAGACTCTGGAGAATTAATCCCGCCACTTGCAATTAAAGGGATGCGACC -AGCTAAATGTTCATAGACAATTTGGTTAACTGGCCGACCGAAATGTTCACCTGGTGTACGAGACGTATTT -TGATAAATATGTCGACCCCAGCTAGCGATTGCTAAATATTGGATGTTTGAAACGTCCATGACCCAATCGA -TTAATTGATTGAACTCGTCAATGGTATATCCTAAATCACTACCTCTGGTTTCTTCTGGCGTTGCTCGAAA -TCCTAAAATAAAATTGTCAGGTGCTTCTTTATCAATCACTTCTTGTACCGCACGCATAACTTCTAAACAT -AATCTTGCACGATTTTTTAATGAGTCGGCACCGTAATGGTCTGTACGTTTATTCGAAAAAGTTGAGAAAA -ATGTTTGAATCAGCAAACGTTGTGCAATCGAAATTTCCACACCATCAAAACCTGCTTTAATCGCGCGTAA -TGTAGCATCGCGATACTGCTGAATGATGCTATTGATTTTCTCATGAGACATGGCGATAACATCGTGTTCA -ATCGGTGAATGCAACGTCATAGGACTTGGTCCATACACCTTTCCAAAATTTAAAATTGCTTGATTTGAAA -AACGACCAGCATGCGCTAGCTGAATAATAGCGAGGCTACCATGTTGTTTCATCGTAGATGCCATGTTAGT -TAATCCAGGGATACAAGCATCATGATCAATATTAAAGCCGTATTCAAACAATTGACCATAAGGTTCAATG -TAAGCAGCGCCGGTGACTTGCATACCAGCTGAATTAGAGCGACGTGCAGCATAAGCCAAGTCTGCTTTTG -TAATATAGCCTTCTTTTGTTGATGCGTTTACGGTCATTGGTGATAATACAAAGCGATTCGAAATTTTGAT -GCCATTAGGTAAGTGGATTGATTGTAAAAGTGGTTTGTATCGGTACATACTATGATTCCTTTTCTATTCA -ATATTGTTTTCAAAGTACCATGGAAAGAATGAATAATCAATGATGAACAGTCTTGATAGAATAGAATTGG -TACATGGAAAGCATTTTTAAAATTAAAATTGAACTAATGAATGTCATTTGTAGGTCTGAAAATATGAATA -TGAAAAAGAAAAATACAAGCGAAAAGATATAAAAGTTAATTGAAAAACGTTATCATATACGTGGGTATAT -GAAGAGGGAATGGTATTAAGAACGTTAAAATGTTATGTCGGTTTGATATGACAGGATAAGTTTGGAGATG -ACGGATTGGTTAAATTAAGCGTATTAGACTATGCCTTAATAGATGAAGGTAAGGATGCACAAAAGGCGTT -GCAGGATTCAGTGACACTTGCAAAATTAGCAGATCGACTTGGCTTTAAGCGAATTTGGTTTACAGAACAT -CATAATGTACCAGCGTTTGCGTGTAGTAGTCCAGAACTTTTGATGATGCATACATTGGCGCAGACAAATC -ACATACGAGTTGGTTCTGGTGGTGTGATGCTGCCGCACTATCGACCTTATAAAATTGCTGAGCATTTTAG -AATGATGGCAGCGTTATATCCAAATCGTATTGATTTAGGTATTGGTAATAATCCGGGTACTACTATGGTA -AAGCAAGCTTTAGATGGAATAAATCCTACATATGATAGTTACGATGAATCGATTTCGTTATTACGTGATT -ATCTTACAATAAAGGATAAGCCAAGTGCGCATACGTTAGGTGTCCAACCACACATTGATCATTTTCCAGA -AATGTGGTTATTAAGTAGTAGCGAAACATCTGCCAAAATAGCTGCCGAACTAGGTATAGGGCTTTCTGTT -GGAACATTTTTGCTACCAGATATAAATGCGATACATGCAGCGAAGGATAACATTGATATTTACAAAAAAT -ATTTCCAAGCATCAACGATTAAAATGGACGCAAAGGTGATGGCATCTGTATTTGTCATTGTAGCTGATAA -CGAAGCGGAAGTAGCAGCATTACAACATGCCTTAGATGTTTGGTTATTAGGTAAATTACAATTTGCAGAA -TTTGAACATTTTCCATCGGTAGACACTGCGCAAAAGTATAAGCTCAATGATCGAGACAAAGAGATGATTC -AAGCACATCAAGCACGTATCATTGCAGGTACACAAGAACAGGTTAAAGCACAATTAGATGATTTCATTGC -TACGTTTGAAGTTGATGAGGTGTTAGTAGCACCGCTTATTCCAGGCATTGAACAGCGTTGTAAAACATTA -AAATTACTCGCGGAAATCTATTTGTAGCATTTTAAATAGAAGAGAAAGGATGAAGATAAGATGAAAAAGT -TAGCCAATTATTTATGGGTAGAAAAAGTAGGAGATTTGTATGTGTTTAGTATGACACCTGAATTGCAAGA -TGATATTGGGACAGTAGGTTATGTTGAATTCGTGAGTCCAGATGAAGTTAAAGTGGATGATGAAATTGTG -AGTATCGAAGCATCGAAAACGGTCATTGATGTGCAAACGCCATTGTCAGGAACGATTATTGAGCGAAATA -CAAAAGCGGAAGAAGAACCGACAATTTTAAACTCTGAAAAACCAGAAGAAAATTGGTTGTTCAAATTGGA -TGATGTCGATAAAGAAGCATTCCTGGCATTACCGGAGGCTTAAATGGAAACGTTAAAATCAAATAAAGCG -AGACTTGAATATTTAATCAATGATATGCGTCGAGAGAGAAATGACAATGACGTATTGGTAATGCCATCTT -CATTTGAAGATTTGTGGGAATTATATCGAGGTTTAGCAAATGTCAGGCCGGCATTACCTGTAAGTGATGA -ATATTTAGCTGTACAAGATGCTATGTTAAGTGATTTGAATCGTCAACATGTTACGGATTTGAAAGATTTG -AAGCCAATAAAAGGTGACAATATCTTTGTTTGGCAAGGTGATATCACGACGTTAAAAATCGATGCAATTG -TTAATGCTGCGAATAGTCGCTTTCTAGGATGTATGCAAGCTAATCATGACTGCATTGATAATATTATTCA -TACAAAAGCGGGTGTTCAAGTTCGACTTGATTGTGCAGAGATTATTCGACAACAAGGGCGCAATGAAGGT -GTAGGTAAAGCCAAAATAACACGTGGATATAATTTGCCAGCAAAGTATATAATTCATACGGTTGGTCCGC -AAATACGTCGATTGCCTGTTTCAAAGTTGAATCAGGACTTGTTAGCTAAATGCTATTTGAGTTGTCTTAA -ATTGGCTGATCAACAAAGTTTAAATCATATAGCATTTTGCTGTATATCTACAGGTGTATTTGCTTTTCCT -CAAGATGAAGCAGCAGAAATTGCTGTTCGAACAGTAGAAAGCTATCTCAAAGAAACAAATTCAACATTGA -AAGTCGTGTTCAATGTATTTACAGATAAGGATTTACAACTATATAAGGAGGCATTTAACCGTGATGCAGA -GTAGTAAATGGAATGCAATGTCTCTTTTAATGGATGACAAGACAAAGCAGGCTGAAGTATTGCGTACTGC -GATTGATGAAGCAGATGCGATAGTGATTGGAATTGGTGCAGGCATGTCTGCATCTGACGGGTTTACATAT -GTAGGAGAGCGTTTTACGGAAAATTTCCCAGATTTTATTGAAAAATATCGCTTCTTTGATATGTTGCAAG -CGAGTTTACATCCTTATGGCAGTTGGCAAGAGTATTGGGCATTTGAGAGTCGTTTTATTACATTAAACTA -TTTAGATCAACCTGTAGGTCAGTCTTATCTCGCATTAAAATCCTTAGTGGAAGATAAACAGTACCATATC -ATAACTACGAATGCAGACAATGCTTTCGATGCTGCTGAATATGATATGACGCATGTATTTCATATACAAG -GCGAGTATATACTACAACAGTGTAGTCAGCATTGTCATGCTCAAACGTATCGCAATGATGATTTAATTCG -TAAAATGGTTGTTGCGCAACAAGATATGCTTATACCTTGGGAGATGATTCCAAGATGTCCCAAATGTGAT -GCCCCAATGGAAGTGAATAAACGTAAAGCGGAAGTTGGCATGGTTGAAGATGCTGAATTTCATGCGCAAC -TACAACGTTATAATGCTTTTCTAGAGCAACATAAAGATGATAAAGTGTTGTATTTGGAAATTGGAATTGG -TTATACTACGCCACAATTTGTGAAACATCCTTTTCAGCGTATGACACGTAAAAATGAAAATGCCCTTTAT -ATGACGATGAATAAAAAGGCATATCGCATTCCGAATTCAATTCAAGAACGTACCATACATTTAACTGAGG -ATATCTCAACATTGATTACAACAGCACTCCGGAACGATAGCACAACGCAAAATAACAACATTGGAGAGAC -AAAAGATGTACTTAATAGAACCGATTAGGAATGGAGAATATATTACTGATGGTGCGATTGCACTCGCTAT -GCAAGTTTATGTTAACCAGAATATCTTTTTAGATGAAGATATTTTATTCCCTTATTATTGTGATCCAAAA -GTGGAAATTGGACGTTTTCAAAATACTGCTATAGAAGTGAATCAAGATTATATAGATAAACACAGTATTC -AAGTAGTTCGCCGAGATACTGGTGGTGGCGCTGTGTATGTTGATAAAGGTGCCGTTAATATGTGTTGTAT -TTTAGAACAAGACACTTCAATTTATGGTGATTTTCAACGATTTTATCAACCAGCTATAAAGGCGTTGCAT -ACATTAGGTGCAAGAGATGTGATACAAAGCGGTAGAAATGATTTAACATTGAACGGCAAAAAAGTGTCAG -GCGCCGCCATGACATTAATGAACAATCGTATTTATGGCGGTTATTCGCTATTACTTGATGTTAATTATGA -AGCAATGGATAAAGTGTTAAAGCCTAATCGCAAAAAGATTGCATCGAAAGGGATTAAATCTGTGCGTGCA -CGTGTTGGTCATCTTAGAGAAGCACTGGATGAAAAGTATAGGGATATAACCATTGAAGAATTTAAAAATT -TAATGGTGACGCAGATTTTGGGAATCGATGACATTAAAGAGGCGAAACGATATGAATTATCTGATGCAGA -TTGGGAATCGATTGAAGAATTGGCGAGTAAAAAGTATAAAAATTGGGATTGGAATTATGGGAAGTCACCT -AAATATGAATATAATCGAAGTGAAAGATTATCATCAGGTACTGTAGATATTACCATTTCTGTTGAACAAA -ATCGTATTGCAGATTGTAGAATTTTTGGTGATTTCTTTGGACAAGGTGATATAAAAGATGTGGAACAAGC -ATTACAAGGAACAAAAATGACAAGAGAAGATTTAACGCATCAGTTAAAGCAATTAGACATCGTTTATTAT -TTTGGTAATGTTACGGTTGAATCATTGGTTGAGATGATTTTAAGTTAATATTGTTTAGGTATTAATGTCG -CACTCTCGTTGAACATGTGTATTTGCTTTTAAAATGGTGACTATGTAGTTATGTGATTTGAACATACGAT -TGAAAATGAATTTAGTTAATTAGCAAAGACATCATATTTATAGCGTTTGTGTTTATTAGTGATTGGGTAT -TTGAAAATGGTTAATGATAGTTTTTAAAGGAATAAATTCATTTTCATTTATACAAGTAAGATTAAATAAT -AGCTACCAAAGTCTATTTATATACGTCAAAATATAATGACTGCTATAATGAATAATCAATAGACACAAAG -AGGAGATTATGTGATGAATAATAAAGTATTAGTGACCGGTGGTACTGGTTTTGTTGGCATGCGAATTATT -TCACGATTATTAGAACAAGGTTATGAGGTACAAACGACGATACGTGATTTAAGTAAAGCTGATAAAGTAA -TTAAAACGATGCAAGACAATGGCATTTCCACAGAGCGATTAATGTTTGTCGAAGCGGATTTATCACAAGA -TGAACATTGGGATGAAGCAATGAAAGATTGTAAATATGTGTTGAGTGTGGCATCTCCGGTGTTTTTCGGT -AAAACAGACGATGCAGAAGTGATGGCGAAGCCTGCAATTGAAGGTATACAACGTATTTTAAGAGCTGCAC -AACATGCGGGTGTTAAACGTGTGGTAATGACTGCAAACTTTGGTGCAGTTGGTTTTAGTAATAAAGATAA -AAATTCAATCACAAATGAAAGTCATTGGACAAATGAAGATGAACCAGGCTTATCAGTATATGAAAAATCA -AAATTGTTAGCTGAAAAAGCAGCGTGGGATTTTGTTGAGAATGAAAATACGACAGTAGAATTTGCCACAA -TCAATCCAGTTGCAATTTTTGGACCATCATTAGATGCACATGTTTCAGGAAGCTTTCATTTATTAGAAAA -TTTATTGAATGGTTCAATGAAACGTGTACCTCAAATTCCATTAAATGTTGTTGATGTGAGAGATGTAGCA -GAACTACACATTTTGGCAATGACCAATGAGCAAGCCAGCGGTAAACGATTTATTGCGACGGCTGATGGGC -AAATTGATTTATTGGAAATTGCAAAATTAATTAAAGAAAAACGACCTGAAATAGCTCAAAAAGTTGCTAC -TAAAAAATTGCCAGACTTTATTTTGAGTCTAGGTGCTAAATTTAATCATCAAGCTAAAGAAGGTAAACTT -TTATTAGATATGAACCGCAATGTAAGTAACGAACGTGCAAAAACATTACTTGGTTGGGAACCGATTGCGA -CACAAGAAGAAGCAATTTTAGCAGCAATTGATAGTATGGCTAAATTTCATTTAATATAATACAAAAACAC -CGTCCATAAGTAAGTGGCTTTCCTCTTGATAAAAGGGGCATTCACTCAATATGTGACGGTGTTTTATATT -TTTACGTTAACACTATTGCTGTGGCTTTTGACGACCTTTTAATAAAATTGCTGTTGCACCTACGATTATA -ATAAATAGAATCGCACCAAATAATCCCATATATTTTACTGCGTTACCGAACACGATACCGACAGCTAAAA -AGTCTGTATCTGAGAATGTTGTTGCAGCACCACCTAATTCGCCTAAAAATGGCAAGAATAATAATGGTAA -AAACGTTATTAGGATACCATTTAGAGCGGCGCCAGCAACAGCACCTTTAATACCGCCTCTTGCATTACCG -AATACAGCAGCCGTTGCACCTAAGAAGAAGTGTGCAACTACGCCAGGTAAAATGACGACGCCACCAAATA -AGAATAAGATAAACATACCGATGACACCTGTAATAAAGCTGACAAAGAATCCGATTAGTACTGCATTTTG -TGCATAAGGGAACACAATAGGGCAGTCTAATGCAGGTTTAGAATTTGGTACAAGCTTTTCTGAAATGCCT -TTAAATGCTGGGACGATTTCAGCTAAGATTAAGCGAACGCCCGTTAAAATAATAAATACACCAGCAGCAA -ATGTCACACCTTGAATTAATGAAAATACAATAAAGTTTTGACCATCACTAATAGATTCGTGTACATAACT -AACGCCCGCAAATAAGCATGCGATGAAGTAAAGTAATGCCATCGTAATCGAGATACTAATTGTACTTTCT -CGTAAGAAACTTAAGCCTTTTGGAAATTTAATCTCTTCCGTTGATTTAGACTTACCTTTGAATAATTGAC -CTACAGCACCTGCGGCAAAGTAACTGATTGAGCCAAAATGACCTAACGCTACTTGGTCATTCCCTGTAAT -TTTTCGCATCGTAGGTTGGAGTAATGCAGGTAAGACTGCCATGATTAATCCTAATACGAGTGCGCCGATA -ACAATCGTTAGCCAGCCTTTAATATGACTGACTGTTAAAATGATTGCTAAAAACGCAGCCATGTAAAATG -TATGATGACCTGTTAAAAAGATATATTTTAAATTAGTGAAGCGGGCAATTAAAATATTAACAATCATGCC -ACAGACCATGATGAGTGCAGCTGTTGTTCCAAAATCTTTTAAGGCTAGTGAGACGATAGCTTCGTTGTTA -GGTACGATACCTTGCACACCGAATGCGTGTTGGAATATTTTGCCGAATGGCTCAAGAGATCGAACGACGA -CATCAGCACCTGCACTTAAAATTAAGAAGCCCAATATCGTTTTAATGGTTCCTGAAGTGATTGTTGCGGC -AGGTTTTTTCTGAACGATTAAACCTATAAAGGCAATCAGTGCAACAAGAATGGCTGGTTGACTTAAAATA -TCGACTATAAAATTAAGGATTGCTTGCATAGGTCGTACCTCCTTTAAATCATGTTAAGTTGTTGTAATTT -TTCTGAGAGCTTTTGTTGTAATTCAGCTTTGTCTAAAATATTATCAAGAACTAAGACATCCCCTAGACGT -TCGGCATTTTCAGCTAAATCTCTACCACAAATAAACAAGTCAGCCATCTCTGGACTTGCTGTCATAATGT -CGCTATGTTCAACTTCGATATCAGATGGTGCATTAAGTTGCCTAAGCGCTTCTTGTGCATTCATTTCTAC -CATAAAACTACTTCCTAAACCGTGGCCACATACTACTAAAATTTTCATATTAATCATGCTCCTTTAAAAT -GTTTTTAATGTCTTGTGCGTTTGTTGCAGTTAATAGTTGCTGGACTGTTTGGTTATCGCCCAGTACGGTT -GCTAAATTTTGTAATACAGATAAGTGTGAATGATTGTCGATGGCACTCAATACAAAAATGAGTGATGCGT -AGTGATCTTCATCACAAAATGCCACATGTTGATTCAACTTTAATAGACTTAAACCAACTTGATGTACGTC -ATTGTTCGGTCTTGCATGTGCAATTGCAATTTCAGGTGCGATAACGATATAAGGTCCAAGTTCATTAACG -CTATCAATCATTGCTTGAACATAGCCTTGTTCAATAATTTGTTCTTGTAGTAATGGCTGAGAAGCTATAG -TTATAGCTTCAGTCCAATCATTTACTTGTTCTTTTACAATGATGCGTGTTGTTGACAAAATGTCTAATGA -CACGTTATTAAACCTCCTTTGTCATAGTTAAAGCAATGTGTTGTTTAATTTTAAAAATATTCCCATCTAA -GAAATCTTGTCGACATAAGTCGTTGCTTAAGCATTCGCTTAACTGTCCCAATGCCTTTAAATGTGCATTG -GGGTGGTCCGTTGCTAATGTAATTACAAGGTGAACGGGATCGTTAGCTTTACTACCAAAAATAATCCCTT -CAGTGAAATAAGTTAGTGCGAAACCTACACCATTCTGTACATAATCAGTACCAGCGTGAATAAGTGCAAT -GTGTGGACTAATGACCATATATGACCCGAATTGTTCTAATTGTTTTAAAATTGCAGCTGTATAATTTGAA -TTGACAATGCCATCATTGATTAAAGGTTGCACAGCCACTGTAATTGCCGATTCAATTGATAATGGTTGTT -TATTTATAATGATGCGATGTTCAGGCAATAAATCTGCGAGTGACTTGCCATCAGTTGCCATTTTCATGAC -TCGTTGTTCTCTTGAGTCATTGATAATTTGATTCAATTTTTGACGAGATTGCTGATTGATAAATGGATCG -ACATGAATAACTGGTACAGCTGAGATTTCACAAGGTACTGTTGAAATGACATAATCAATGTTATCTTGCA -ATAATCGACTTTCTTCCAATTGATAAATGGAATAGGCATCCCAAATGTGAAACTCAGGATACAGATGATT -TAGTTTTGATTTTAAAAGTTGCGACGTGCCTATACCAGAACCACATAGTAAGACAACCTTAATCATTGAT -TGTTTATGTGTTGCAACACGCTCTATACTTGATGCGAAGTGAATTGTAATGTATGTTAATTCATCTTCGT -TGAAGCGAATAGCAGCATCTTGTTCAATTGGGCTAATATGCTTGCTAACGGCTTCAATGATTTGAGGATA -GCGACGCATAACTTCTTGCCTCAAAGGATTAGGTTGTAGCATATCGTATTTAATACGATGTATAGCTGGT -TTGATATGTGTGATAAGACTGGTATGCAACTTGTTGTCTTTTGACATATCAATGCCTAATTCTTGGCTAA -CACAAGTGATCAATTCATGTATATTTTGCGATAAATCATGGTATTCAAAGGTAATTGAAGATGCTGTATG -TTCGGTCATTTTAGAGCCTAGTAAATGTAACGTGATAAAGATAATTTCAGACTCTGGAAATGTGACATTA -CAACTGCGTTCTAAGTTTTCTATCATTTTTGAAGCAATAGCATACTGATTAGTATGTCGCCATTTATCAA -TTTCATTGATAGGTATATCGAACGAAAAATTTTCATTTAAACGCTGAATGGCAATGCGTATATGATAGAT -TAAGCCATCGATAGCCGACTGAACTAAATGATAATTTTCACTATTTAATGTCTTAATAATGGCACGGCGA -ACTAATGCGATTGATTCTGAATTAAAGATATCAGCCTCTATAAAAGGTGCAGCTTGTTTCATATATTGAT -GTATAAAGTGTGCATACGCTTTACGATAATGATCTTCCTCACCAATAATATTGAATCCTTTATTGTGGAC -ATAATTTAACTTTAAATGGTATTGATCTAGTTGGGCTTGAATCATTTTAATATCATCTGCAATTGTCCGA -CGCGAAACATTAACATCTTGCGCAAGTTGCTTTGTTGAAACAGGATCAGTTGTTTCGAATAACTTTAAAG -CGATATGTGTGAGTCGCTCATCTTTTGAAAAATGAATTTGATTCGTTAGATTGTGCTCTAATTCATTTAA -TATCGTTGTGTTAGCTGTTGTTACTTTGATGCCTGCAGCTTTATTACGGCTGACTTGGTAATGATAAGTT -TCAGCATATTGCTCAATATATGCTATATCGTATTGAATGGTACGAGGTGATACACCAAGTTGATTAGCAA -TGGTATTGATTGGAATAAACGTTTGCTCATGAATTAAAAGATACAAAATTTCAATTTGTCTATAACTTAA -CAACGTAATATCCTCCTATTTGTAATTGTAAGCGATTTCTCAAGAACGTAGATATGCAATCTCTTTCATA -TTTTAATCCGAAAAATTGCATATCAAAATGTTTATGGCGCAAGATTTTATAGGAACTTTTAAAATAAATT -AGATATTCATGTTGACAATTTAAAAATGGCGCAGTATATTTAGTTAGACATCTAACGAAATGGTGGTGCA -ATAAATGGAATTCACTTATTCGTATTTATTTAGAATGATTAGTCATGAGATGAAACAAAAGGCTGATCAA -AAGTTAGAGCAATTTGATATTACAAATGAGCAAGGGCATACGTTAGGTTATCTTTATGCACATCAACAAG -ATGGGCTGACACAAAATGATATTGCTAAAGCATTACAACGAACAGGTCCAACTGTCAGTAATTTATTAAG -GAACCTTGAACGTAAAAAGCTGATCTATCGCTATGTCGATGCACAGGATACGAGAAGAAAGAATATAGGA -CTGACTACCTCTGGGATTAAACTTGTAGAAGCATTCACTTCGATATTTGATGAAATGGAGCAAACACTCG -TATCGCAGTTATCTGAAGAAGAAAATGAACAGATGAAAGCAAACTTAACTAAAATGTTATCTAGTTTACA -ATAAATGGTAAGCGTGACTGGTAGAAATCAGTCACTTTATCTTTAATGTTATAGTTAGATATCTAATTGT -TAGTAAGCTAATTATTGGAAAAGACAAGGAGTATTGAACAATGAAAGACGAACAATTATATTATTTTGAG -AAATCGCCAGTATTTAAAGCGATGATGCATTTCTCATTGCCAATGATGATAGGGACTTTATTAAGCGTTA -TTTATGGCATATTAAATATTTACTTTATAGGATTTTTAGAAGATAGCCACATGATTTCTGCTATCTCACT -AACACTGCCAGTATTTGCTATCTTAATGGGGTTGGGTAATTTATTTGGCGTTGGTGCAGGAACTTATATT -TCACGTTTATTAGGTGCGAAAGACTATAGTAAGAGTAAATTTGTAAGTAGTTTCTCTATTTATGGTGGTA -TTGCACTAGGACTTATCGTAATTTTAGTTGCTTTACCATTCAGTGATCAAATCGCAGCAATTTTAGGGGC -GAGAGGTGAAACGTTAGCTTTAACAAGTAATTATTTGAAAGTAATGTTTTTAAGTGCACCTTTTGTAATT -TTGTTCTTCATATTAGAACAATTTGCACGTGCAATTGGGGCACCAATGATTTCTATGATTGGTATGTTAG -CTAGTGTAGGCTTAAATATTATTTTAGATCCAATTTTAATTTTTGGTTTTGATTTAAACGTTGTTGGTGC -AGCTTTGGGTACTGCAATCAGTAATGTTGCTGCTGCTCTGTTCTTTATCATTTATTTTATGAAAAATAGT -GACGTTGTGTCAGTTAATATTAAACTTGCGAAACCTAATAAAGAAATGCTTTCTGAAATCTTTAAAATCG -GTATTCCTGCATTTTTAATGAGTATCTTAATGGGATTCACAGGATTAGTTTTAAATTTATTTTTAGCACA -TTATGGAAACTTCGCGATTGCAAGTTATGGTATCTCATTTAGACTTGTGCAATTTCCAGAACTTATTATC -ATGGGCTTATGTGAAGGTGTTGTACCATTAATTGCATATAACTTTATGTCAAATAAAGGTCGTATGAAAG -ACGTTATCAAAGCAGTTATCATGTCTATCGGCGTTATCTTTGTTGTATGTATGATTGCGGTATTTACAAT -TGGACATCATATGGTCGGACTATTTACTACTGATCAAGCCATTGTTGAGATGGCGACATTTATTTTGAAA -GTAACAATGACATCATTGTTATTAAATGGTATAGGTTTCTTGTTTACTGGTATGCTTCAAGCAACTGGTC -AAGGTCGCGGTGCTACAATTATGGCCATTTTACAAGGTGTGGTTATCATTCCAGTACTATTTATTATGAA -TGCTTTGTTTGGACTAACAGGTGTCATTTGGTCATTATTAATTGCTGAGTCACTTTGTGCTTTAGCAGCA -ATGTTAATCGTCTATTTATTACGTGATCGTTTGACAGTTGATACATCTGAATTAATAGAAGGTTAAATAT -TTCGTACACTTCTGGCTGAGTATATTTCGGTCGGAAGTGTATTTTTCAAATAAAAAATAAATATATGATA -CGATTATGAAAAAATAAAGTGAGATTGGCATATGTATAAATCTAAAATACTGTTGAAATATATTTTTAGT -GAAGAATCAGACGTTAAAGATTTAACGGAAGAAAAATATAATCAAGATTACGAAGCATTAACATTTAGCT -TTAAAGAGGAAACATATCAAAGTAGGTTAGCAAAGAAAACACCGACTAAAGCAGGGTATTTTGTTACATG -TTGGACAAAAGACGAGAACAATTGTAATCAACCATACTCAAAAGAGGCATTTGCAGATTACTTAATGATT -ATAGTTATTGATGAAGAATTAAGCGGTTATTTCTTATTTCCTAGGGAATTATTGGTAGAAAAAGGCATCT -TAACTACATTTGAGCATAAAGGTAAAATGGCTTTTAGAGTTTATCCTAAGTGGTGTAATCAATTGAATAA -AAGAGCAGAGCAAACACAAAAGTGGCAATGTAAATATTTTTTTGAATACTAATTAAAAAGTCATATGGTT -GAACTTATAAGAGATGTATATATCATCTTTCGATAAGATAACCATATGACTTTATTTTTTATCATTTAAT -GATGAACAGTTTCTTGTCCTACTTTATTCCAAGTGAGGATAAAGCTCAACATTGCAAACACACTGATTGC -TGTTAATAAAATAAAACCGACATCCCATCCGAATTTATCAACTACAGCACCTAAGACGATGTTGGCCATT -ACAGCACCAAACAGATAACCAAATAATCCAGTTAATCCAGCTGCTGTGCCAGCTGCTTTTTTAGGTACAT -AATCTAATGCTTGTAAACCAATTAACATAACTGGTCCATATATTAAGAAACCAATGGCAATTAATGAGAC -ATTGTCTAACCAAGCATTGCCTGGAGGATTTAACCAATAAATTAATACAAATACTGTGACACCTAACATA -AAGAAGAAACCAGCAGGTCCACGGCGACCTTTGAATAATTTATCAGAAATGTAACCACATAATAATGTAC -CAGGAATTCCAGCCCATTCGTATAAGAAGTATGCCCAACCTGATGCTTTTAAGTCGAAATGTTTTTCTTC -ACTTAAGTAGACTGGCGCCCAATCAAGTACACCATAACGCACGAAATAAACAAATATATTTGCAAAGGCA -ATTGCCCATACCCATTTATTGTTCAGTACATATTTAAATAAAATTTCTTTTGTAGTTAATTCTGTTTCTA -ATGTTTTCTTATCGCTTGTAGCAAAGTCATTTTTATAAATTTCGATTGGAGGTAAACCTTGAGATTGAGG -TGTGTCTCTAATCAATATATATGAAATTGCGGCAATGATAAGTGCTAAGAGTGCAGGGTAAATGAATACA -CCTTCAAAACCTTTTAAATAACCAAAGTTGATAAATGCTGTTGTTGTAATACCCCAAGCAGCAATAGGTG -CCATAATACCTCCACCAACATTATGCGCAACGTTCCAAAGAGCAGTCTTACTTCCGCGTTCACTTACACT -AAACCAGTGAACGAGAACACGGCCTGAAGGTGGCCAGCCCATACCTTGAAACCATCCATTTAAGAATAAT -AGGACAAACATAATACCGATACCTGATGTAAAGAACGGTACAAATCCCATTAACAAATTGACGATAGCAG -TGAGTACTAATCCAAGAACTAAGAATATCCGTGCATTGCTCCGATCACTTACAGTACCCATAAAGAACTT -ACTAAATCCATATGCGATGGAAACAGCAGAAAGCGCAAAACCTAGTTCTGCTTTTGTAAAACCTTGCTCT -TGCAATGCCGGCATCGCTAATGAAAAGTTTTTACGTAATAAATAGTACCCAGCGTAACCGATGAAAATAC -CAAGAAATACTTGGAGACGTAATCGTTTATAGGTATCATCTATCTGATTTTCTGGCAAAGGCTTAATATG -CTTTGCAGGTTTAAGAAAATTCATAAAATCCTCCTTAATATGTATTTATATGCATTTTGTGCGATAAACT -TATATTAGACATGTATGAAAGCGTTGTCAATATACTTTTATGAAATCTTACATATTTAGTTATTGAAGTA -TTTTATAAACATTTAGAAAAAATAAATTGCTACACATAAATTTATAATTATGCAATTATTATGTCGTTAT -ACATACTAGCTGTGTATCTACGAAGGAGCGCAAACATATTTTTATTTGCAGAAAAGGGCTAAATGGCATA -TAACTATCTTTTTTATATAAGTTGGTATAAAATTTATACTAATAGGAGGGATAGTATGAATATAGTAGGG -CATCATCACATATCCATGTATACAAAAGATGCAAAACGTAATAAGGATTTTTACACAAATGTCCTTGGAT -TACGATTGGTTGAAAAGTCGGTTAATCAAGACAATCCTTCAATGTATCATTTGTTTTATGGGGACGAAGT -AGGTACAGCCGGAACAATTTTAAGTTTTTTTGAAATTCCCAATGCGGGTCATAAGCAGCCAGGTACTGAA -ACGATTTATCGATTTTCATTATTAGTACCAAATCAAGCGGCACTTCATTATTTTGAAAAACGTCTTGAGA -ATAATGGTATTAAGTCTGAACGTTTGTACTATCTTGGACAAGAAGGTGTTGTTTTTAAAGATGAAGACGA -CTTAGAAATCATACTGCTTGTTAATGATAGTTTTGAAGTACCACATCAATGGCAACATAACGCTTATAGT -GAAATACCTCAAGCATATCAAATTTTAGGAATAGGGCCAGTCGAATTAAGAGTTAGAAATGCAGCGCGTA -CGGTAGAATTTTTGGAAAATGTCTTAGGTTATCGCAAAAGAGATAATAAATCATTCGATGTGCTGACATT -AGCACCACAAGGTTTATATTCGGATTTTGTAGTTATTGAGCAACAGGGACAACGTGAAAGACCTGGACGA -GGTTATATCCATCATATTGCAGTTAATACACCACAAATGAATGACTTAGATGCAATTTACAAGAAACTAC -AACAACAACCACAAAGTAATTCAGGTATAATTGATCGCTATTTCTTTAAATCATTATACTATCGCCATAA -TTCAATTATGTATGAATTTGCGACTGAAGCGCCTGGATTTACTATTGATACACCTGTTGAACAATTAGGA -AGTCAATTGAACTTGCCTGACTTTTTAGAAGCAGAACGTGAACAAATTGAAAGTAAGTTACACGAAATAT -AAAGGAGAATGTTTAATGGCAAAATTAGAAATGAATAAAAATACGCCTCTTGAGTTTGGTTTGTATTCCT -TAGGTGATCATTTATTGAATCCATTTAAAGGTGAAAAAGTTAGTTATGAGCAACGTATTAATGAAATTAT -TGAAGCAAGTAAATTAGCAGATGAAGCGGGTATTGATGTTTTTGCAGTTGGTGAAAGTCATCAGGAACAT -TTTACGACACAGGCACATACGGTTGTGTTAGGTGCAATTGCCCAAGCGACAAAGCATATTAAAGTTTCAA -GTTCTTCAACGATTATTAGTGCAACAGATCCTGTAAGAGTATTTGAAGACTTCGCGACATTAGATTTGAT -TTCTCATGGTAGAGCCGAAATTGTAGCTGGCAGAGCATCAAGAACAGGTGTTTTTGACTTGTTTGGCTAT -GATTTAAAAGACTATGATGAATTGTTTGAAGAAAAATTAGGTTTACTTTTAGAGTTAAATAAAACTGAGC -GTATTACTTGGTCTGGAAAATATCGTCCAGAACTTAGAAATATGAAAATATTCCCAAGACCAATCGATAA -TACATTGCCAATATGGCGTGCTGTTGGTGGTCCACCTGCAAGTGCTATCAAAGCGGGAAAACAAGGTGTG -CCAATGATGATTACAACCCTTGGTGGCCCAGCAATGAACTTTAAAGGTTCTATAGATGCTTATCGTCAAG -CAGCAACTGAAGCAGGTTTCGATGCTTCGCCTAAGTCTTTACCAGTAAGTACAGCGAGTCTGTTTTATAC -AGCTAAAACAACTCAGGATGCTATGAGAGAATTTTATCCACATTTGAATACAGGGATGTCATTTATTCGT -GGCGTTGGTTATCCGAAACAGCAATTTGCTAATTCGTCAGATTATCGAGAAGCGCTAATGGTTGGAAGCC -CGCAACAAATTATTGAAAAGATATTGTATCAACACGAGTTATATGGTCATCAACGTTTTATGGCACAGCT -TGATTTTGGCGGTGTGCCATTTGAAAATGTTATGAAGAATATTGAGTTAATTGGCAACGACATTATACCA -GCGATTAAAAAGCATTTATCAAAATAGGAGGGGCGACATCATGAATATTGTATTATTGTCAGGCTCCACA -GTAGGTTCTAAAACGAGAATTGCTATGGATGATTTAAAAAATGAACTAGAAGTCATCAATGAGGGACACC -AAATAGCATTGATGGATTTACGAGATCTCGAATTATAATTTAGTGTTGGAAAGAATTATCTAGATACTAC -AGGAGATGTATATAAATTAACGACGTCGTTAATGCAGGCTGATGTGATTTTTATTGGTTTTCCAATTTTT -CAAGCTTCCATCCCTGGTTCTTTGAAAAATGTGTTTGATTTACTTCCAGTCAATGCGTTTCATGATAAGG -TAATAGGACTTGTAGCGACAGCAGGTTCTAGTAAACATTATTTAATTCCTGAAATGCATTTAAAACCAAT -ATTGAGTTACATGAAAGCACATACGATGCAAACGTATGTATTCATTGAAGAGAAAGACTTTTCAAATCAA -CAAATTGTCAATGATGATGTTGTATTTCGTTTAAAAGCGTTGGCACAATCCACAATGCGAACTGCCAAAG -TACAACAACAAGTGCTTGAAGAAGAAAATAACCAATACGACTTTTAAAGTATAAAAATAAGACGCTCGGC -ACACTAAATTTGTAAGTGTTTGAGCGTCTTTTCATATTAACTATATAGCCAGTGAACGACGATAAAGGCA -AGTGATGACAAGCATATTGAGGTAATAATGATTGTCATAAGCGGTTTAAGTGCACGATTTTTAAGATCTT -TAAATGCAACATTTAATCCTAAAGCAACCATGGCCATTAATAAGCAGATTGTTGATACAGTATTTAAAAT -ATTTAACAATACTGACGGGATAGTTACATATGTATTCACTAAGGCCATAATGACAAATCCAATTAAAAAG -TATGGAATGCTTATTCGACCCTTGCTAGATGATTCTGATGAACGGAAGCGCATAATTAAAATAAGTACGA -TGGTTAATGGAATCAGTAAGAATACTCTACCAAGTTTACCAAGAAGTGCGATTTTAAGTGCATCACTACC -ACCAAAGCCACCAGCTAAGACAACGTGTGCAATTTCATGAAGACTAACGCCAGACCAAGCGCCATAAACA -TTTGTCGTCATTGAAAAGATAGCATAGATAGCTGTATATATAAGTGAAAATATCGTACCAATCAATGCGA -TGATACCGATACTAATAGCTGTATCTTTTTCACGTGATTTGAATATTGGAGCTACTGCAGCAATAGCGGC -AGCACCACAAACGCCTGTACCTACACCTAGTAATAATGCGATGTTTTTGTCACCACGCAACAGTTTGTTG -ACAAAGAGCATCATTACAATACTGAAAATAACGACACCTACATCGATGGCTAATAGTCTACTACCTTGAC -CGATAATATCGAATATATTGAGTTTAAGTCCATATAGGATGATTGCAAATCTTAATAAATATTTGGATGA -AAATGTAATACCTGAGCTATATTGTTCAGGATATCCTTTAAAGTGACGATACAGAATAGCGATTAATATC -GCGATAGTTAATGCGCCAACCTTATCTAAGATTGGCAATTTAGCTGCTAAAAAGCTAAATAATGCGACTA -TAAATGTTAATGATAGTCCAATCATAAAATGCTTATTTTTCAATGATGCCATGAGCAGTGCCTCCTTTAA -TAGCATTTTAGCACTGTTTTGTCGTATTTTTAAATATAAATTTGGAATGGTTAATAAAGTAGTGATTAAA -TTAAGTTGTGTGATAGGTATCAAGGGCATCAACCAAAGTAATAGGCACTACAATGCTTATTGTCGAGGCC -CCAACATAGAGAATTTCGAAAAGAAATTCTACAAACAGTGCAAGTTGGCGGGGCCCCAACATAGAGAATT -TCGAAAAGAAATTCTACAAACAATGCAAGTTGGGGAAGGACAACAAATTTAAGATACAAGGCGTAATATT -AATATGTTATTATTATGATAATTTACAGAATTATATGAAAAATAAATGAGGGTGTGATGGTATGTTTGGA -ATGAAAGTGAATGAACAAATAAGATTAAAAATTTTAGAAGCCCATGACACAGAAGCGCTTTTCAATTTAG -TCAATCGTTCAAGAAATTCACTTAGGGAATGGTTACCTTGGGTAGATGCAACCGAGCAACCATCAGATAC -GCGTGCATTTATTAAAAGTGGACTTTTGCAATTTGCTGATGGTAATGGATTTCAGTGTGGCATTTGGTAT -GAAGGAACGCTAGTTGGTGTCATCGGTTTACATGAAATTAATCACATGCACAGAAAAACTTCATTAGGGT -ATTATTTAGATAAACAATTTGAGGGTCATGGGATTATGACACAAGCAGTTGAGGCATTGATAAAGTATTG -CTTCGATGAGATTGAATTAAATCGAATTGAGATCAGTGCCGCAGTTAATAATGAAAAAAGCCAAGCTATT -CCTGAAAGGCTGGGATTTACTAGGGAAGGTATGTTACGTGACAATGAATTACTAAATGGTATTTATTCAT -CGAGTTACATCTATAGTTTATTAAAATCAGAATATAATGAAGGATGATAAATCAGACTACAAAAGAGTGA -TGACTTACATATAAGTGTTACTCTTTTATTTATTTTCAAACTAAAAAGGTTGTTGACAGTATTATTTTAT -AACAATATAATGATTTTGATAATTATTATCAACTAGATAATGTTCATGGGAGGATGCCTTAAAATCATCA -TTTTAAGAGCCACGTATTATCTTGGCATTTAGGGAGTGTGAGATAGTACGAATGAGAGCATGTCTATGGG -GATAATAGAATTTCTATAATGAGGTGTCAAAATGAAAAAGTTAACAACGCTATTATTAGCATCAACGTTA -TTAATTGCTGCATGTGGGAACGACGATAGTAAGAAGGATGATTCAAAGACATCGAAAAAAGATGATGGTG -TTAAAGCAGAATTAAAACAAGCAACAAAAGCATATGATAAATATACTGATGAACAGTTAAATGAATTTTT -AAAAGGTACAGAAAAATTTGTTAAAGCGATTGAAAATAATGATATGGCCCAAGCAAAAGCGTTATATCCA -AAAGTTCGTATGTATTATGAACGCTCTGAACCAGTTGCAGAAGCATTTGGAGATTTAGATCCTAAAATTG -ATGCACGTCTTGCAGATATGAAAGAAGAGAAAAAGGAAAAAGAATGGTCAGGATATCATAAGATTGAAAA -AGCATTATACGAAGATAAGAAAATTGATGATGTGACTAAAAAAGACGCACAACAATTATTGAAAAATGCA -AAAGAATTGCATGCCAAAGCTGATACATTAGATATCACACCAAAATTAATGTTACAAGGTTCTGTTGACC -TATTAAATGAAGTTGCAACTTCTAAAATCACAGGTGAAGAAGAAATTTATTCACATACAGATTTATATGA -TTTTAAAGCGAACGTTGAAGGCGCACAAAAAATTTATGACTTATTTAAACCTATTTTAGAGAAAAAAGAT -AAAAAATTAAGTGATGATATTCAAATGAACTTCGATAAAGTGAATAAATTATTGGATAAGTATAAAGATA -ACAACGGCGGTTATGAGTCATTTGAAAAAGTATCGAAGAAAGACCGTAAAGCATTTGCGGATGCTGTTAA -TGCATTAGGAGAGCCACTAAGTAAAATGGCTGTGATTACTGAATGACAAATTATGAACAAGTTAACGATA -GTACGCAATTTTCAAGACGTACATTTTTGAAAATGTTAGGTATTGGCGGTGCCGGTGTTGCAATTGGCGC -AAGTGGTGTTGGTAGCATGTGGTCTTTCAAATCAATGTTCAATACACCAGAAGATCCGGAAAAAGATGCG -TATGAATTTTATGGTAAAGTGCAATCAGGCATTACTACACCCACGCAAAAAACATGCAATTTCGTTGCAT -TAGATTTGAAGTCAAAAGATAGAGATGCAATTAAGGCAATGTTTAAAAAGTGGACGGTTATGGCTGATCG -TATGATGGATGGTGATACAGTTGGCAAGCCGAGTAACAATCCTTTAATGCCGCCAGTAGATACTGGTGAA -TCGATTGGATTAGGTGCAAGCAAGTTAACGATTACCTTTGGAATTAGTAAGTCTTTGATGAAGAAAATTG -GGTTATCTAGTAAAATTCCCGATGCCTTTAAAGATTTACCGCATTTTCCGAATGATCAGTTAATAGACGA -TTACAGCGATGGTGATATTATGATTCAAGCATGCTCAAATGATTCGCAAGTATCCTTTCATGCGGTTCAT -AATTTAGTTCGTCCATTTCGAGATATTGTTAAGGTACGTTGGGCGCAATCTGGTTTTATCTCTGCTAAAG -GTAAGGAAACACCTAGAAATTTAATGGCATTTAAAGATGGAACAATTAATCCTAGAAAGAGTAATCAACT -TAAAGATTATGTGTTTATTGATGACGGATGGGCGAAACATGGAACTTATTGTGTTGTCAGACGTATTCAA -ATACACATTGAAACGTGGGATCGTACTGCACTGGAAGAACAAGAGGCTACATTTGGTCGCAAGCGACATA -GTGGTGCACCGTTAACAGGTGGGAAAGAGTTTGATGAAATTGACTTAAAAGCGAAAGATAGTCATGGCGA -GTATATTATTGATAAAGATGCCCATACGAGACTAGCGAAAGAAGCAAATACGTCAATTTTACGTAGAGCC -TTTAATTATGTTGATGGTACGGATGACCGCACAGGTAACTTCGAAACAGGCTTGTTGTTCATTGCTTTTC -AAAAAGCGACCCAACAATTTATCGATATTCAAAACAATTTAGGTAGTAATGATAAGTTAAATGAATACAT -TACACATAGAGGTTCTGCTTCATTTTTAGTATTACCAGGTGTTAGTAAGGGAGGATACCTTGGTGAAACA -TTATTTGACTAAAATTATAGCGACGATAATTACTTTAGTTATGGTATTTAGCTTTGGGTTATTGAAAAGT -CAGGCAGCAGAACAACAAAGTATTAGTGATGTATATAGTGTGATAACGGATGCAAAATCTGCACTTTCTA -ATAATTCGATATCGAAAGACAATAAGCTGAAAGCAATTGAGCAAGTGGTAAGTGCAGTTAAGAAATTATC -GCTTGAAGATAATAGCGAAGGTAATGCTGTCAAATCAAATGTGAGAAAGCTTGAAGATGCAAAAGCGAAT -GATGATCAAAAAGATACACTTTCGCAATTAACGAAGTCATTAATTGCTTATGAAGAGAAATTGGCTAGTA -AAGATGCGGGTTCTAAAATTAAACTGTTGCAACAGCAAGTCGATGCCAAAGATGCAGCGATGACAAAAGC -GATTAAAGACAAAAATAAAGCGGAATTAGAATCTTTGAACAATAGTTTAAATCAGATTTGGACTAGTAAT -GAAACAGTGATTCGCAATTATGACGCAAATCAATATGGACAAATTGAAGTCGCATTATTACAACTTAGAA -TTGCAATTCATAAGTCACCATTAGATACGGCAAAAGTGTCACATGCTTGGACAACTTTTAAATCAAATAT -TGATCATGTCGATAAGAAAAGTGGTACGTCTGCAAATGATCAATACCATGTATCACAATTAAATGATGAG -TTAGAGAAGGCGATTAAAGCTATCGACAACAATCAATTGTCGGATGCTGATGCTGCGCTTACACATTTTA -TAGAAATTTGGCCATATGTTGAAGGTCAAATTCAAACTAAAGACGGTGCTTTGTATACGAAAATTGAAGA -TAAAATACCATATTATCAAAGTGTATTAGACGAACATAATAAAGCACATGTCAAAGATGGTTTAGTAGAT -ATAAACAATCAAATTAAAGAGGTTGTTGGCCATAGTTATAGCTTCGTCGATGTGATGATTATCTTTTTAC -GTGAAGGACTAGAAGTGTTATTAATTGTAATGACATTGACTACTATGACGCGTAATGTCAAAGATAAGAA -GGGTACTGCAAGTGTGATTGGTGGTGCAATTGCCGGACTTGTATTGAGTATCGTTTTAGCAATTACATTC -GTAGAAACACTAGGGAATAGCGGTATGCTTCGTGAGAGTATGGAAGCGGGATTAGGTATCGTTGCGGTCA -TATTAATGTTTATCGTTGGTGTTTGGATGCATAAACGTTCGAATGCGAAACGCTGGAATGATATGATTAA -AAATATGTATACCAATGCGATTAGTAATGGTAATTTGGTATTGTTAGCGACGATTGGTTTAATATCTGTG -TTGCGTGAAGGTGTTGAGGTTATCATTTTCTATATGGGGATGATAGGCGAATTAGCGACCAAAGATTTTG -TCATAGGTATTGCCTTGGCCATCGTGATATTAATTGTCTTTGCGCTATTATTTAGATTTATCGTCAGATT -GATACCTATATTCTATATATTTAGAGTATTGTCGATCTTTATTTTTATTATGGGATTCAAAATGCTTGGC -GTAAGTATTCAAAAGTTACAATTATTAGGTGCGATGCCAAGACATGTTATTGAAGGATTCCCAACGATTA -ACTGGTTAGGATTCTATCCAAGTTACGAACCATTGATAGCACAAGCTGCCTATATTATGGTAGTTGCTAT -CTTAATCTTTAAATTTAAAAAATAAAAAACAGGCCGAGTGCCTGTTTTTTTTGTTGCTGTATTGTGGATA -TCGAAGCATTGCAGATATCGCCGCATTGTTGAGGTGCGGATTATCTTAGCATTGTGGATATCGCGGCATT -GTTGAGGTGCGGATATCACTGCATTGTTGGTTCTCGTTGCATTGCGGATATCACGGTGTAATCCGATGCT -GTATTCTGATTAACGCAATGTTAGTTAGCTGCAGTATTGATATAATCTGAGGTGCTACATTGTTCTTTTA -TTGGCTATTGTGATGTTGTTGCATTGTGAGTATTGCAGTATTGATTCGTATAAGGTCATTGCGACGATAA -GTCATTTCGACTGGTGAATTTAACGATGAACATACTGAACTCAAAGAGCAATATGAGTGGCAATGTGAGT -AATATATTTAATGTTATGTCTGGTGGTGCAATGATACTCGCCAGCACAAAGCAAGCAAAATAAATATATT -TACGATAATGTTTCAAAGAATATGTATCTATAAGATCGAATTTTGCAAGACCCATAAATAATATTGGTAA -TTGAAATAGAATGCCAAATGTAAATAACCAACGTATGAGTTCAATCAAATATGCTTTAAAGCCAATAACA -GGCGAAATGTTTAAAGTTAATGATAATTTTAACGCGAATTGAATGATCATTGGAAAGCCAACATAAAATG -CAAAAGCGACGCCAGCACAGAATAATAACACGCTGAAAAAACTATATTTATAAATAAATTGACGTTCATT -ATTATGTAATCCAGGTGCAATGAATGCCCATAATTGATAAAACATGACTGGTGAAATGAAACAAAATGCG -ATGAAAAATATAATCATCACGTATATTTGGATCATTTCTGTGAATGAAAATGCATGTAAGGACACATGTG -CACGGGTAATATACGTTATGAATGGTGTCATCCACCAAAAAGATGAAACATATACGACGATGACCGCAAT -GACGAACGACAATAAAATTTTTACTAACCGTTGGCGTAGTTCGCTAAAGTGAACCATTAATGTATCATCA -GTGCTATTGCTCTCGCTGTTGCTTCGATTCCTTACTGGGTGTATCGTGAGACTCTTTATCTAAATCTTCT -GTAGCAGATTTAAATTCTTTTAAAGTAGAACCGATAGCACGACCAAATTGTGGTAATTTTTTCGGACCAA -AAATAATTAAAGCGATAATGCTAATGACGACAAGACTTGTTGGACCTGTGATGCCTAAAATAAAAGTGTT -AGTTATCATGATAATCAACCTCACTCATAAGTAGTATATAGTATTTACTTTATACCGAACGATAATGATT -ATCAACAAATTTTATATAATAATTAAAATATTGCTATAAACACAACTTACTGAGGTATTAATTCTGAAAT -AATAGCTTGTTCTTGCAAGTCGATATAAGTACAAGTACCAGCTTGAATATCGATATGCCATTTATAAATG -CCAGCTTGAGCCATTTCATCACAAAATGTTTCGAAATCTGTTTGTCCTTGTTGATGTCTAGTTAATACAT -CTTGAACGATAGATTGATTTGAACTTGGAGCGACAGGATGATTACTTTTTACAGATGACGTAACGATATC -ATCTTCTGATTGATGTACGTATGTTGCTGTGCCATCTTGAATATTGACGATATTGTAAGTCATCCCCATA -TCTTTAAAAGCCTTGAATAGTTTTGGAAAATCAACACCAGTAAATTGTTGATGTGCTTGTTGAATTGCAG -ATAATTTAAATGCCATAATAATCTCCTTTGAATGGTTTGATTTAGTGAAAATGCGTGCATCATACTAAAA -TTAGAATGCTGTTAATTATGCAGGAAGGTGTAACGAAAGTAAACAATTATGACTTGTAGGTGTTGAGGTG -TGTGTTTCAAAATGTCATACATAGGTGGACACTTATATTTTTTGTGTAGATTTGACAAATATAGTTGTCA -AAAAGACAATTATCATTTACAGTGTAGTTGAGGAGTTGATGCGATGTGCGTAATCGATTGAAAGAATTAC -GAGCACGAGATGGCTTAAACCAAACGCAGCTTGCTAAACAAGCGGGTGTTTCAAGACAAACTATTTCGCT -AATTGAGCGAAACAACTTTATGCCATCGGTATTAACTGCAATAAAGATTGCTCGTATCTTCAATGAAAAG -GTGGAAACTATTTTTATTATTGAGGAGGATGAGGTTTGAAAATACTAAGATATATCGGATATCTTTTACT -AGGTGGACTTGTAGGTGGTATCATAGGTGGAATTTTAGGTAACTTTGATGGATTGGGTATTGAGAATTTG -ACGTTCGCAACGCATAACAATGTCGTTGTAATATCAATTATTGCGACTATAATCATCATATTAATAGAAA -TCATTGTTTTGATGAATCAAAGACGTGCATTGAAGTATAAGCGACTTGTAGATGAAGAGGTAGATAACGA -AGAAACAGATCAATATGAATTGCTTGCGAATCGTCATGTTTTAAATGGAAGTATATTAAGTATTCTACAG -ACAGTTATTGCCTTGTTAGTGTTGCTTATTTTTGTGGTAGGACAAGCTGAAGTAAATGGAATACTATTAT -TTTTAATACCATTTTTTGCTAGTGCTATTTTCAATACACAATTTACGCTGTTTAATAGAAGATTTGATGA -TAGAATGCCAAAAATTGCAGATAAGAATTACACTGAAAAGCGATTGGAAATATTGGATGAAGGTGAACAC -CATATAGAATTAATTGCATTATTTAAAACATATGCAATCAACTTATCCATATTGATACTAGCCATTATTT -TTATAGGGTCTTATTCAATTGCTACAGGAATTAATCAAAGCTTTAGTTTGCTACTTATCATTGCTATTTT -CATATATAACGCCTTTAGTTATTTATTGAAGAGAAGACGTTTTTATTAAAATTAAACAAAGAGGAGCATG -GATATGACAACATTGTTAAACTTAGATCGTGTGAACAAACAATACAAGTCTTCGGATTTTAAATTACAAG -ATGCATCTTTAACGATTTCTACCAATGAGACAGTTGGATTAATTGGGAAAAATGGCTCAGGTAAATCGAC -ATTAATTAATATTCTAGTAGGCAATCGACATAAAGATAACGGTAGTATCACATTTTTTGGGGAAGAACAT -GCTATTGATGATGTCGAATATAAAGAACACATAGGTGTAGTGTTTGATGATTTGAGAGTACCTAATAAAT -TGACTATTAAAGATATTGATAAAGTATTTCAATCTATTTATATGACTTGGAATAGTCAAAAATTCTTTGA -TTTAATCAAATATTTCGAGTTGCCACTACAAACTAAAATTAAAACTTTTTCAAGAGGGATGCGAATGAAG -ATAGCTTTGACGATTGCGCTTTCTCATGATGTGAAGCTATTGATCTTAGATGAAGCAACTGCGGGTATGG -ATGTTTCTGGACGAGAAGAAGTAATGGAACTATTAGAAGATTTTGTCGCGCAAGGTGGAGGCATCTTAAT -ATCATCTCATATTTCTGAAGATATAGAACAATTAGCGGATAAATTAGTGTTTATGAAAGATGGACGAATG -ATTTTAACTGAACAGAAAGATATACTTTTAGCACAATATGGAATTGTTACGACAGAAGATAAAGATGTTG -AAATTCCTAAGCATTTAATCATTGCTTCTAGATTATCGAAGGGGAAATATCAAATTTTAGTTAAAGATTA -TGCAGAAATTGAAAATGCAGAACCTTTAAAACACATTGATGACGCTACGAAAATCATAATGCGAGGTGAA -GTATAATGAAAGGTATGTTCCTAAGTAGTTTTTATGCAACGAGAAAGCAAACATATATTTATTTTATAGT -CGCTATCATAGCTGCGGGATACTTTGCAGTATTTAATCCGTTGATGAGTTCGGCAATGGCTGGGGTTATG -TTAATTACACCTATTACTGATAATATTAAACATGAAAAAGACTCAAGATGGATGTATTATGTATCTACTT -TACCGGTTAAACGTAGTGATTATATTAAGTCATACTTTGCCTTTTATTTAATCTTATTCGGTGCAAGTTT -AATGATTGGATTAGTTGTGACTACGATTGTGACCCAAAGTGTGATGATTGGTATTATGTCAGGTTTAATG -AGTTTTGGTATCATAGGGGCATACTCTATCATTTTCCCATTGACATTTAAATTTGGCGCTGAAAACTCCA -ATGTCATTATGATATGTGCATCTATACTACTACTTATTTCTTTCGTGGTCTTTTTCTTTATATATGGTAT -GGTTAGTGGTGCATCTGCATTAGAATTTGAAAAAATTAGCACTGGAGGATGGCTAGTTGTCATAGTATAT -GCGGTTATCGGTATAGTTATAACAAGTGTTTCTTATATATCGTCTATTAAAATTTTTAACAAACAAGAAC -TATAATCAATATTCTTGGTGTGAAGCTAGTCATTGAAATAATATTTAGAGCAGGTGATAAATCTTTACGA -TTGTCATCTGTTCTTTTTGGTGTGGAATGAAATGCGGGGTGATAAGTATAGGTGACATATCTAGATTGAT -TTATTTGTTTTGAGGTGGTTATGTTGTGAGGGAATTATTTCCTTTTAGATAGTGGGGGTTAGAGAATATA -TGTTATTTATGAGTATCATTTGATGATTGTATAGGCTAACGATTTCCTCGGAAATATTTAAAAACCTCGA -TCATGTATCATAACTGAAGTTTGTCACAAAGTATAATGTGAAGTTCGACACTTTTGGATTCAGTTCAAAT -ACTTTGACCGAGGTAAATACTATTTATTCATGTTTATTACGTAGACGTTGATTTTTAAAATAAATCAGCA -TGATACAGAAGGTTGCAACTGATACTGAGATAATCATTACATGGTCGTGACCTTTAAATAAAAGGCTGAC -AATATAAGACATAACGAGTATCCCTAGTGAATATGAAATATACTTCGCATTTGTCAATTCGTTATGGAAA -TAAGGCGTGATTAACCATAATCCAATATAGAATATTAAAACACTGATATACATCATATTAATTTCAAACA -AGTCATTTAATTTATTGTTATTACTAAAAACAATTGCGGCATTAATCACACCTAAAGCGATATTGATTAA -TAAATGCGTATACGATAAACGGAAACCGATAGATGACAATTTATGATTAATGTAATTTTCAGTAATGATC -CAATATACACCGAAAAGACTAATTAAAATCATAAATTGGAATATATAAATGTAACTAAAATGATCAATGC -TAAATGATGACGAAGCTAAACCAACCAGTACCTCGCCAAAGATGATAATTGTCAGTAATGAAAAACGTTC -TACTAAATGCATCATATTAACAGGTGATAATACGAGATATTTTTGAAATGGAATAAGTCCTGTCGATGCA -ATGAATACGCCTAAAAATCCAGGGATGTAATGGATACTTTGTGGTAGTACTAATGATAGAAATGATAAAA -ATGAAATCACAAAGGCTACGGTCGCAAAAGCTTGACATGTACGCTTATCGCCATAATCTAATCCTGTACG -TATATGTAATAAATACTGTAATCCGATACTTAAATACATAATTGCCACGCATAAGAAGAATGGGAAGAAT -GTCTTTTCAAAGTCCGGATATAGGCTGTTAGATAGGAAGACCATGATAAACATATTAAACATCATAAACG -AGACGTCTTTGAATGTAACTTGACCAAATCGATTTGTAAAAAATGTTTGATGAGACCACATTAACCATAA -GAACAAACTCATGACGATGTATTTGAAAAATAAATCAGCTGAAATGGAACCATTTTGTGTTGTTAAAATC -ACATGTGCAATTTTTTGAATGGCATAGACGAAAATTAAATCAAAGAACAACTCATGGAATCCTGCACGCT -TTTCAGCTAAATGTTTTGGTGTTAATGCATTAACCATAAAATTTTAACTCCTTTAAGGTGTGTAATTAAT -TTACTAAGTATACTATTTATTTTTTCTAGTGAATAGGGGCAGATTTGACGATGAAATGGAAGGAGGGGTG -ACAGGGAGCTGGTTGCGGCATTAACAGTTATCAGCGATTTAATATTTGAATAGAGACGTCATGGTTTGAA -AAAGTAGATGGTGAAATTGATGGTGAAACAAGCTGTGAATAGCGATGCAATGATAGATAGCATTTAATTA -GAGTCATTACGCGAAATGATTAATGATAATTTGTGGTAAATCAAAGCATAATTTTGTACTATAGATGAGG -ATGATAGAGCATATTTAAGAGTGTGAAATGTTAAAGTGAAACCGTTTACGTTTCCGATTGCCCAAACAAA -TTACATCATTGTATAATATGATTTGTTAAATGCATAACAAGAATGAAAATGTAACATACGTAGCAATTGG -TTTCATAAATTGGATGTTAGTGGCGTATTGGTTCATTAGACGTATTAGTAATAAAATTGTATATATCATA -AGGAGATGAATATGACATGACGAGAGTCGTATTAGCAGCAGCATACAGGACACCTATTGGCGTTTTTGGA -GGTGCGTTTAAAGACGTGCCAGCCTATGATTTAGGTGCGACTTTAATAGAACATATTATTAAAGAGACGG -GTTTGAATCCAAGTGAGATTAATGAAGTCATCATCGGTAACGTACTACAAGCAGGACAAGGACAAAATCC -AGCACGAATTGCTGCTATGAAAGGTGGCTTGCCAGAAACAGTACCTGCATTTACAGTGAATAAAGTATGT -GGTTCTGGGTTAAAGTCGATTCAATTAGCATATCAATCTATTGTGACTGGTGAAAATGACATCGTGCTAG -CTGGCGGTATGGAGAATATGTCTCAATCACCAATGCTTGTCAACAACAGTCGCTTTGGTTTTAAAATGGG -ACATCAATCAATGGTTGATAGCATGGTATATGATGGTTTAACAGATGTATTTAATCAATATCATATGGGT -ATTACTGCTGAAAATTTAGTAGAGCAATATGGTATTTCAAGAGAAGAACAAGATACATTTGCTGTAAACT -CACAACAAAAAGCAGTACGTGCACAGCAAAATGGTGAATTTGATAGTGAAATAGTTCCAGTATCGATTCC -TCAACGTAAAGGTGAACCAATCGTTGTCACTAAGGATGAAGGTGTACGTGAAAATGTATCAGTTGAAAAA -TTAAGTCGCTTAAGACCAGCTTTCAAAAAAGACGGTACAGTTACAGCAGGTAATGCATCAGGAATCAATG -ATGGTGCTGCGATGATGTTAGTCATGTCAGAAGACAAAGCTAAAGAATTAAATATCGAACCATTGGCAGT -GCTTGATGGCTTTGGAAGTCATGGTGTAGATCCTGCTATTATGGGTATTGCCCCAGTTGACGCTGTTGAA -AAGGCTTTGAAACGTAGTAAAAAAGAATTAAGTGATATTGATGTATTTGAATTAAATGAAGCATTTGCAG -CACAATCATTAGCTGTTGATCGTGAATTAAAATTACCTCCTGAAAAGGTGAATGTTAAAGGTGGCGCTAT -TGCATTAGGACATCCTATTGGTGCATCTGGTGCTAGAGTTTTAGTGACATTATTGCATCAACTGAATGAT -GAAGTTGAAACTGGTTTAACATCATTGTGTATTGGTGGCGGTCAAGCTATCGCTGCAGTTGTATCAAAGT -ATAAATAATAAGAAAACAGGTTATCACAACAGTATTAATTACATGTTGGCATAACCTGTTTTTATTTGTT -TATGGATTTATTGGGTAATATTAGTCATTTGATGGTTTAATTGCAAATGCTCTAACAGGGAACCCAGGTG -CATCTTTTGGTTTAGGGCTGATAGCGTAAATGATGGCGCCACGAGTTGGTAATTGATCTAAATTAGTTAA -TAACTCGACTTGGTATTTATCCTGACCAAGAATATAACGTTCGCCAACTAAATCACCATTTTTTACAACG -TCCACAGATGCATCGGTATCGAATGTTTCATGACCAACAGCTTCAACACGGCGTTCTTCAATTAAGCACT -TCAAAGCATCTAATCCCCAACCCGGTGCATGTTGTTGTCCGTTCGCATCTTTGTTTTCAAACGTTTCAAT -ATTAGGCCAACGTTTTGACCAATCGGTACGAAGTGCAACAAAAGTGCCAGGTTCAATAGTACCATGCTCT -TTTTCCCATGCTTCTATATGCGCACGTGTTACGATGAAATCATTGTTGTTCGCTACTTCTGTTGAAAAGT -CTAATACAATTAACGGCAATACCAATTCTTTTAAATCAATGTCTTCTAAATAACGTTTATTCTCGACAAA -GTGAATTGGTGCATCAATGTGAGTACCATATTGCGTTACAATATTCCAACGTTGCACATAGAAACCATGA -TCTTTAACCGTGAATAAAGTTGAAACTTCGCCTTTTTCAAACTCACTAAAACGTGGTATTTCCGGATCAA -ACGTATGCGTTAAATCAACCCAAGTTGCTTGTTTTAAAGTATTTAATTGTTGCCATAAAGGATATTGTGT -CATAAAATCACCCGTTTTTAGTTTATTATATGATAAATGCTGCGATTATTCTTGGCGTTTAGCTTTAACA -GCATTCACAAGCACAGTCAATGCATCTTTAACTTCTTCTTCTTTTCGCGTTTTCAAACCACAGTCAGGGT -TTACCCAGAATAATGAGCGGTCGATTTGTTGTAGTGAACGATTGATTGCTGTAGTAATTTCTTCTTTTGT -TGGAATACGTGGACTATGAATATCATATACACCTAGACCAATACCTAAATCATAATTAATATCTTCAAAG -TCTTTAATTAAATCACCATGGCTACGAGATGTTTCAATTGAAATAACATCAGCATCTAAGTCATGAATAG -CATGAATGATTTGACCGAATTGAGAATAACACATATGTGTATGGATTTGAGTTTCATCACGAACTGAAGA -CGTTGCAAGTTTAAATGATAAAACAGCATCTTTAAGATATTGTTCGTGATATTCAGAGCGTAATGGTAAG -CCTTCACGTAATGCAGGTTCGTCAACTTGGATAACTTTGATTCCTGCAGCTTCAAGTGCTAATACTTCTT -CGTTGATTGCTAAAGCAATTTGATCTTGAACAACTTTACGTGGTAAATCAACACGTTCAAATGACCAGTT -TAGAATTGTTACAGGTCCAGTTAACATACCTTTAACTGGTTTATCTGTTAAGCTTTGTGCATAAACTGTT -TCATCAACAGTTAAAGGCGCTGTCCATTTTACATCACCATAAATGATTGGTGGTTTTACGGCACGTGAAC -CATATGATTGCACCCAACCGAATTTAGTTACTAGGAAACCTTGTAATTTTTCTCCGAAGAATTCAACCAT -GTCATTACGTTCAAATTCACCGTGAACTAATACATCTAAGCCGATGTCTTCTTGAATTTTAATCCATCGA -GCAATTTCATTTTTTAAGAATGTTTCATATGCTTCGTCTGTAATGCGTTTGTTTTTCCAATCTGCACGGT -ATTTTCGAACTTCTCGGCTTTGTGGGAATGATCCAATAGTTGTTGTTGGTAAATCCGGTAAGTTCAAACG -TTTTTGTTGTTGTTCAATACGTTGCGCGAATGGTGATTGTCTTGAAGTACGCACGCTTTCGAAATCATAA -TCTAAGTTTTTGAATGATTGATTTTGGAAACGCTCATAACGTGCTTTTAATTTATCATATTTAACACTAT -CGTTTTGATTAAATAGGCGACGCAATGCATCTAATTCGTCTAATTTTTCAGTTGCAAAGCTTAAGCCTTC -GCCAACACTTGTATCTAATGTTTCATCATCTAAAGATACTGGAACATGTAATAATGAAGATGATGGTTGA -ATGACAAGTTCATTAGTGTGTGCTAACAATTTATCGATTAAGACTTTTTTAGCTTCAATGTCACTTGCCC -ATACATTACGACCATCAATAATTCCAGCATATAATGTTTTTGATTTATCAAAATCTCCAGCTTCAATTTG -TTTAAGGTTATAGCCATTATCATGGACAAAGTCTAATCCTAAACCACCAACAGGTAAAGAACTTAAGAAT -TTAAGATGTGCACGTTCGAAGTATGTTTGAATGACTAATTTTTTAGCAACACCAGCTTTTTCGAAATAGT -CATAAGCTTCACGTGTAATATTTTCATAGCTTTCACTGTCGTCTGTAACTAAGATTGGCTCATCAACTTG -AATGTACTCAGCACCTGCATCAATTAATGATTCAAACACTTCTTTATAAAGTGGTAATAACGTTTTAACT -TTTTCTTCAAAAGTTTGGTGACCGCCTTTTGATAATTTAACAAAAGTAATCGGACCAACAATAACAGGGT -GAGCATTAACATTTAAAGATTGCGCGTATTTAAAGCGATCTAATAATACATTGCGACTCACTTTAGGCTC -AACATTGTCCCATTCAGGTACGATGTAATGATAGTTAGTGTTAAACCATTTTATAAGTGCACTTGCAACA -TGGTCTTTATTACCGCGAGCTATATCAAATAATAAGTCATCATCGATAGTTCTTCCTTGGAAACGTTCTG -GGATGATGTTGAATAATAATGACGTATCTAAAATGTGGTCATATAAAGAGAAATCACCAACTGGGATGCT -ATCTAAGTGATAGTACTTTTGTAATAATAAATTTTCTTTATGTAGATCAGTTAATGTTTGATCTAATTCT -TCTTTAGAAATCTTCTTTGCCCAATAACTTTCGATGGCTTTTTTCCATTCTCTTTTTCTACCTAATCTTG -GGAATCCTAAGTTTGATGTTTTAATTGTTGTCATAATATTGCCTCCTTGTGAGCAGTAATAGATTTTGAG -TATGCTGCAAGTTCTAATGAATCTTCGACATTTTGAAACGGTGTGATAATGTATAAACCATTAAAATATT -CATGAACAGTATCGATTAAATCCTTTGAAAGCTTAAGGCTTAGTTCACGAGTTTTGGCTTTATCATCTTT -AACTGCTTCAAATTGTTGTAAAATTTCATCTGACATCTTGATTCCTGGCACTTCATTATGCAAAAAGAGT -GCGTTTTTGTAACTTGCGATAGGCATAATGCCTATGAAAAATGGTTTGTTCAAGTGCTTAGTGGCATGGT -AAATTTCAATGATTTTCTCTTTGCTGTACACGGGTTGTGTTATAAAATAAGACATTCCGCTTTCTATCTT -TTTCTCTAGTCGTTTTACGGCACCATCTAATTTACGAACATTAGGGTTAAAGGCGCCAGCGATGTTGAAG -TGTGTATGTTTCTTCAGCGCATCACCGTCAGTGTTAATACCTTGATTAAATCTTAGAGCGAGTTCAGTTA -ATCCTTTAGAATTAACATCATAGACATTGGTTGCACCAGGTAGGTGACCAACTTTTGAAGGATCACCAGT -TATGGCTAATATTTCGTTAACGCCAATGAGTGATAATCCAAGTAAATGAGACTGCAAGCCGATTAAGTTT -CGGTCTCGACATGTAATATGTACGAGTGGTTCAATATTGTAATATTGTTTAATTAAGCTTGCAGCAGCAA -TGTTGCTAATTCTGACAGTTGCCAATGAATTATCTGCGAGTGTTACCGCATCTACATTAGCTTTTTCAAG -TTTAGCGATATTTTCAAAAAATCTATCCGTGTCTAAATGTTTCGGTGTATCCAATTCGATAATAACGGTT -GGACGTTCTTGAACCTTAGATGTTAATGATTGTCTAACTTTATTTTGAGATGGATTGAAAAGTGCTTTCG -TTGGTATCGGAATCACTTTTTTGTCATTAACAGGTTTAAGTGTCTGAATAGATTCTTTAATAAATTTGAT -GTGCTCAGGCGTTGTACCACAGCAACCACCAATTAAACGAACACCTTCGCGAATTAGATTTTGAGCAACT -TGACCGAAATATTGTGCATTGTCACTATACTTAAATTCACTATTTTCAATATCTAATAAGCTGGCATTTG -GATAACAAGATAAGTATGCGTGCTCTGGTAATTCAATATGTGTGAAAGACTCTTGCATATGGTGTGGGCC -ATGATGACAATTGAGTCCCACGATGTTTGCACCACATTGAACGAGTTGTTTTAATCCTTCATTGATTGCC -TGACCATTAACTAAGTAATTTGTGTTTGAAGCGGTTAATTGAGCAATGATTGGAATGTCGTATTTCTTTC -TCGTTCGTGAAATGACATTTGTTAGCTCTTCTAGGTCGTAATACGTTTCGAAAAGTAGCGCGTCAACACC -TTCTTCAATCAAGGTGTCTATTTGAATTTCAGTATGATAAAGAATAGTTTGTAAGCTGATATCCTCTTGT -TTGATACCTCTAAACCCACCAACTGTGCCTAATATATACGTATCTTTATTTGCTGCTTTTTTTGCGATGC -GAACGGCTGCTTGATGTATAGCCTTAACTTTATCTTCAAGACCGAATCGTTTTAACTTTTCAAAATTTGC -ACCATAAGTATTGGTTTGAATGACATCAGCACCGGCTTCAATATATGAACGATGGATACGTTCAACTTTA -TCTGGATGGCTAAGGTTATATGCTTCTGGGCAGGTGTCTAAACCTTCAGAGTATAAAATAGTTCCAATAG -CGCCATCAGCTACTAAAACATTATCTTTCAAGTGTGTGAGGAATTGACTCATTGAATGCCTCCTTTAATG -CGTATTTGATGTCTGCAATGAGTTCATCAGGATCTTCGAGACCAACACTTAATCGGAACAGACCGAAAGT -GATACCACGTTCTTGTCTCACTTCTTCAGGTAGTGCAGCGTGAGACATTGTTGCTGGATGTGAAAGTATC -GTTTCAACACCGCCCAGACTCACTGAAACGAGTGGTAATGTCAGTGCATCGACAAATTGTTGTGCTTTAG -ACTCATCAGCTAAACGAAAGCCAATAACGGCACCGCCATTTTTAGCTTGTTCTAAATGAGTAGCAGTAAG -TCCCGGATAATAAACTTCTGAAATTTCATCTTGCTTTATTAAAAATGACACGATTTTTTGCGCGTTTTCG -ACAGATTGTTTAAATCTGATTGGAAATGTTTTCAAATGTTTAGCAAGCGTCCAGCTATCTTGAGCAGATA -ACATATTGCCCGTACCATTTTGTATTAAATAAAGTGCTTCACTCATTGCTTCATTATTAGTAATGACAGC -ACCAGCAATTAAATCGCTATGTCCACTTAAAAATTTTGTAGCACTATGAATGACGATATCAGCGCCAAGT -AATAAAGGTGATTGACCTAACGGTGTCATAAATGTATTGTCCACAGCTACCAGTAGTTCATGCTTTTCGG -CTATTTTAGAAACAGCTTTGATATCAGTAATTTTAAAACAGGGATTCGATGGTGTTTCGATATAAATTAA -TTTTGTGTTTGATTGAATGGCACCCTCGATTTGTTCGAGCTTGGTAGTATCTACGGTTGTAAATTCAATA -TTAAATCGATTCAAAATTTGCTCAGTGAGGCGAAAAGTACCGCCATATACATCATCGGGTAAGATGACAT -GATCACCAGATTTGAAAGTCAAAAGTACTGCTGAAATAGCAGCAATACCTGATGCAAAAGCAAAAGCGAA -TTTCCCCTGTTCTAATCGTGCTAACTTCTCTTCTAAAAGTTCACGGTTAGGGTTGCCACTTCGTGCATAA -TCATATTTAACATCGCCACCAAGACTTGTTTGATGGAATGTTGAAGAATCATAGAGTGGTGGGTTAGCTG -AATGATATTCCACACCTCTACGCCAATCGAATATCACTTCTGTCTCTTTTGAAAGTGTCATACAATCTCT -CCAATCTGAGCTTTATCTAATGCTTGGATGATATCGCGTTCGATGTCTTCATAATTTTCAACACCTAGTG -ATAAGCGGATTAAATACTCATCAATGCCACGTTTATCTTTTTCAGCATCTGGCATATCAACATGTGTTTG -GGTGTAAGGGAAGGTCACTAATGTTTCAGTACCTCCTAAACTTTCTGCAAAAATGCAAATGTCTAAATTT -TCTAATAATTTAGCGACGCTATAGGCCTTGTTAAGTCTTAAACTAAGCATGCCAGTTTGCCCGCTATATA -GTACTTCGTCAATTGCTTGAAGTGACTGACATTTTTCAGCAAGTTTTCTTGCGTTTGATTGCGCACGCTC -AATGCGTAAATGCAAAGTTTTAAGTCCACGTAACAACAAATAACTATCTATTGGTGATAGTGTTGCGCCA -GTCATGTTGTGAAAATCAAACAACTTTTGCGCGAGTGATTCATCTTTGACGGTTACGACACCTGCTAGTA -CATCGTTATGTCCACCAATATATTTCGTAGCTGAATGTAAGACTATATCAGCACCTTCTGCTAATGGTGT -TGAAAGATAAGGTGTTAAAAAAGTATTGTCGATAATTGACAATAAGCCTTTAGCTTTACAAAGTTGATAG -TACGGCTTTACATCAATAGCAATCATTTGTGGATTGGATATTGGTTCAATGAATAATGCTACTGTTTTAT -CAGTGATTTCTTTTTCAACTTGTTCATAATCTGTAAAATCAACGTACTTAAATTTGATATCGTATTGTTG -CTCGTAAAATTCAAATAATCTAAATGTGCCGCCGTATAAATCGAATGAAACTAAAATTTCATCGTGTGGT -TTAAATAAATTACATATTAATTGAATGGCTGACATTCCACTTGATGTAGCGAATGATGCAATACCATGCT -CAAGTTTGGCAAAACAGGTTTCAAATGTTGAGCGTGTAGGATTTTTAGTACGTGTATAATCAAATCCTGT -CGATTGTCCTAGTTTTGGATGCTTGTAGGCAGTAGATAAATGGATTGGATTCGCTATAGCACCGGTTGAA -TCATCAGTTAATGTGATTTGGGCTAACTGTGTATCCTTCATATTAAGACCCTCCTAGTAAGAAAAAATAA -AAAAGCTTCCGTCCTTCGTACCCGAATGAATCGGATAAAAAGGACGAAAGCTTATGTTTCGCGGTACCAC -CTTTATTTGTTATTCCATCGCTGAAATAACCTTATTCAGTACGCATTAAAAGTAAATATGCTTACTGAAC -AATTATCACAATTTAAGTCGTTAAGTAAGGATACAGTAATGTGCTATCCCATACTTATTAACAAAAAATC -GTGCGTAAAGAATCCAGTACGCCATTTAACATCAATGTTAATACTGTATCGCTATAACGGGCGAACCCGT -AGACACCTCATATTGGCATCAACACTCCAAGGCCATTTTCAAACACGCTTTCAAAATCTTCTCTCAGCTA -CTAAAGACTCTCTGTATAAGCAGGGTGTGTTTTACTTTCCTCTTTATTGTGTTTACGTTTCATTAAACTG -TTATAAGATATTAATTAGCTTACAGAGTAAAAAAAGATTTGTCAACAATTATTCAGAAAATTTTGATTTA -AAAGTTAATTTGTTTGTGAAATTGTAATTGGTATCTTGAAGTTGAAAAATGAATTATTTTTTAAATAAAG -TGTGGTTAATGGTTGTCTGACTCATTTAGAATACATAAAATATATTTAACTGTTGTTATCAAATAAAAAG -TGATGTGAGTGAATTGTCAAAAAGTGAAGATCAACGTATTACTAAAACAAAAGATGAACAAATTAAGCAA -ATAGATATATCGGATATCAAACCGAATCCGTATCAGCCCCGAAAAACTTTCGATGAAAATCATTTAAATG -ATTTGGCAGATTCAATTAAGCAATATGGTATTTTGCAACCAATTGTGCTTAGAAAAACAGTTCAAGGTTA -TTACATTGTAGTTGGTGAAAGAAGGTTTAGAGCTTCGAAAATTGCTGGTCTAAAATACGTATCAGCGATT -ATCAAAGATTTAACAGATGAAGATATGATGGAACTGGCGGTCATCGAAAATTTACAACGAGAAGACTTAA -ATGCGATTGAAGAAGCTGAAAGTTATCAACGTTTGATGACAGATTTGAAAATTACGCAACAAGAAGTAGC -GAAGCGATTGAGTAAGTCGCGCCCGTATATAGCGAATATGTTGAGGTTATTACATTTACCGAAAAAGATT -GCTGACATGGTAAAAGATGGGCGACTGACAAGTGCACATGGACGAACGTTATTGGCAATTAAAGATGAAC -AACAAATGCTTAGGTTAGCGAAACGGGTTGTTAAAGAAAAGTGGAGTGTTAGATATTTAGAAAACCATGT -TAATGAATTAAAAAATGTTTCGTCAAAGTCGGAAACAGACAAAGTAGATATAACTAAGCCTAAATTTATA -AAGCAACAAGAACGACAGTTGCGAGAACAGTATGGCGCAAAAGTAGATATATCGATAAAAAAATCAGTCG -GCAAAATCTCATTTGAGTTTGAATCGCAAGATGACTTTGTGAGAATCATTAAACAATTAAATCGTAAGTA -TGGTAAATAGTTACACAATTTTATATAATATCACTTTGTGAATCTATAGAAATATCGATAGTTATCTATA -TTCTTTGAAGATGATGCGACTTCAGTAGGTTGGAAGCATACAATAATATTAATAAAATTATTTGAGACTA -TATAGAAGGGAGTAACGCTAATTATGGATCAAGTTATGAGTATTATTTCATCGCTATTCGAACCATTAAC -TAAAATTGAAACATATGAAAGTGTCGCTACTAAATTAGCGATGATAATTATATATATTATCGTTGCATTA -ATCGTAATTAAAATACTTGATAAAATGATTGCCCAAGGATTTAAAATACAAAACAAGAGTAAAAAGGGTA -ATAAAAAACGTTCGAAAACATTAATATCATTGGTGCAAAATGTTGTTAAATATATTGTGTGGTTTATAGT -TGTAACTACCATTTTAAGTAAATTTGGCATTAGTGTTGAAGGAGTAATTGCAAGTGCTGGTGTCGTAGGC -CTAGCAGTAGGTTTTGGTGCTCAAACTATAGTTAAAGACGTAATTACAGGATTCTTTATTATATTTGAAA -ACCAGTTTGATGTAGGTGATTATGTTAAGATAAACAACGGTGGTACAACTGTAGCAGAGGGAACAGTTAA -ATCAATTGGACTCCGTTCAACACGCATTAATACAATATCTGGGGAACTTACAATCTTGCCAAATAGTAGT -ATGGGTGAAATAACGAATTACTCAATTACAAATGGAACAGCAATTGTTAAAATTCCAGTATCTGTAGATG -AAAATATTGATAATGTTGAGAAGAAATTAAACAAATTATTTACATCTCTGCGTAGTAAATATTATTTATT -TGTAAGTGATCCTGTTGTGATTGGTATTGATGCCTTTGAAGATACTAGAGTAATATTAAGGGTTTCAGCA -GAAACTATACCAGGTGAAGGTTTCTCTGGTGCGCGTATTATTCGTAAAGAAGTACAAAAAATGTTTTTAC -AAGAAGGTATTAAGACACCACAACCAATAATGACACCTTTTAATCATAGTGAAAACGGTGTTTAGTAGTT -TATAATACATGGAGGTCATATTTAATGGCGTCAAAATATGGAATAAATGATATAGTAGAAATGAAAAAAC -AACATGCGTGTGGAACCAATCGTTTTAAAATTATTAGAATGGGTGCTGACATTAGAATTAAGTGTGAAAA -TTGTCAACGAAGCATTATGATTCCACGTCAAACGTTTGATAAAAAACTAAAAAAAATCATCGTATCTCAG -GATGATACACAAAGATAGGAGAATGATTCATGGCTTTAACAGCAGGTATCGTTGGCTTGCCAAACGTTGG -TAAATCAACATTATTTAATGCAATTACAAAGGCGGGTGCCTTGGCAGCAAACTATCCGTTCGCAACTATA -GACCCAAACGTGGGTATTGTAGAAGTGCCAGATGCAAGACTACTTAAATTAGAAGAAATGGTTCAACCTA -AAAAAACATTACCTACTACATTTGAATTTACAGATATTGCCGGAATTGTTAAAGGTGCTTCTAAAGGTGA -AGGTTTAGGTAATAAATTCTTATCACATATTAGAGAAGTAGATGCAATTTGTCAGGTTGTTCGTGCTTTT -GACGATGATAATGTAACACATGTAGCTGGTCGAGTTGATCCAATTGATGACATCGAAGTTATCAATATGG -AATTAGTACTTGCAGACTTAGAATCAGTTGAAAAACGCTTACCTAGAATTGAAAAATTGGCACGTCAAAA -AGATAAGACTGCGGAAATGGAAGTGCGTATTTTAACAACTATTAAAGAAGCTTTAGAAAATGGTAAACCC -GCTCGTAGTATTGACTTTAATGAAGAAGATCAAAAATGGGTGAATCAAGCGCAATTACTGACTTCTAAAA -AAATGCTTTATATCGCTAATGTTGGTGAAGATGAAATTGGTGATGATGATAATGATAAAGTAAAAGCGAT -TCGTGAATATGCAGCGCAAGAAGACTCTGAAGTGATTGTTATTAGTGCAAAAATTGAAGAAGAAATTGCT -ACATTAGATGATGAAGATAAAGAAATGTTCTTAGAAGATTTAGGTATCGAAGAACCAGGATTAGATCGAT -TAATTAGAACAACTTATGAATTATTAGGATTATCAACATATTTTACTGCTGGTGTGCAAGAAGTACGTGC -TTGGACATTTAAACAAGGTATGACTGCACCTCAATGTGCTGGTATCATTCATACTGATTTTGAACGTGGA -TTTATCCGTGCCGAAGTAACAAGTTATGACGACTATGTACAATATGGTGGCGAAAGTGGCGCTAAAGAAG -CGGGCAGACAACGATTAGAAGGTAAAGAATATATTATGCAAGATGGCGATATCGTTCATTTCAGATTTAA -TGTATAAACGATAGAGTGAAGTTAATTAAATAGTATATATGTAGAAGAGGCGGAATCAATTGTTCGCCTC -TTTTAATTATGCGTATAATTTATTAAAAGAATGGAATAATTTTACTCGCGTTAATAATATCTTGAGTGCT -GAAAAATTGTTTGCCTTCGCCAGTATAAGCAGGCTCTAAAACAAGATTAGCCTTTGCACAATAAAGCCAT -TCAGGATGAATGCCACTATTAAGTATCTCTTGGAATTCTTGAAAATCTTTAGACCAATCAATATTTAAAT -TCATTCCTTACCACCTCACAATCATTATAGAACATGTGTTCGCTTTTGTGAAGTGTATTTTTAAAAATAT -CATAGAAAATTTCAAATGAATTAATGTCAAAAATGATATGAAGAGTAGTTTGAATTATTATTGTAAAAAG -TAATGGCGCATGATATAATTCTTTATTGTGAGTAATGAAAATTATTCCTTGCTTATCTGTTTTAAGATTG -ATAAGCCGTATAGACCACAAGGAGGTGCAAATATAAAATGAGAACATATGAAGTTATGTACATCGTACGC -CCAAACATTGAGGAAGATGCTAAAAAAGCGTTAGTTGAACGTTTCAACGGTATCTTAGCTACTGAAGGTG -CAGAAGTTTTAGAAGCAAAAGACTGGGGTAAACGTCGCCTAGCTTATGAAATCAATGATTTCAAAGATGG -CTTCTACAACATCGTACGTGTTAAATCTGATAACAACAAAGCTACTGACGAATTCCAACGTCTAGCTAAA -ATCAGTGACGATATCATTCGTTACATGGTTATTCGTGAAGACGAAGACAAGTAATAATTAGAGGGGGCGT -TTAAATGCTAAATAGAGTTGTATTAGTAGGTCGTTTAACGAAAGATCCGGAATACAGAACCACTCCCTCA -GGTGTGAGTGTAGCGACATTCACTCTTGCAGTAAATCGTACGTTCACGAATGCTCAAGGGGAGCGCGAAG -CAGATTTTATTAACTGTGTTGTTTTTAGAAGACAAGCAGATAATGTAAATAACTATTTATCTAAAGGTAG -TTTAGCTGGTGTAGATGGTCGCTTACAATCCCGTAATTATGAAAATCAAGAAGGTCGTCGTGTGTTTGTT -ACTGAAGTTGTGTGTGATAGCGTTCAATTCCTTGAACCTAAAAATGCACAACAAAATGGTGGCCAACGTC -AACAAAATGAATTCCAAGATTACGGTCAAGGATTCGGTGGTCAACAATCAGGACAAAACAATTCGTACAA -TAATTCATCAAACACGAAACAATCTGATAATCCATTTGCAAATGCAAACGGACCGATTGATATAAGTGAT -GATGACTTACCATTCTAATAAAAATTAACGAAATTAAAGCGAAAAAATTATCAAAGGAGGCACACAATCA -TGGCAGGTGGACCAAGAAGAGGCGGACGTCGTCGTAAAAAAGTATGCTATTTCACAGCAAATGGTATTAC -ACATATCGACTACAAAGACACTGAATTATTAAAACGTTTTATCTCAGAACGCGGTAAAATTTTACCACGT -CGTGTAACTGGTACTTCAGCTAAATATCAACGTATGTTGACTACAGCTATCAAACGTTCTCGTCATATGG -CATTATTACCATATGTTAAAGAAGAACAATAATATATAACGTATAACAAAACCCTTTAGCAATCAGGCTA -GAGGGTTGTTTTTGTGTTTATTTTTATAAAAATTTCGCAATTTTTTCGCAGAGTGTGAAAAGTTTGATGA -TTAAAATTAAAAAAACGGACAAATAATTGTCCGTCTTTGCGAGATATTAATCTCATATAATAGTTTGGTG -AGGACTCGCCTCTATATATGTAAATGATAACTGATTATTATTTGTACGTCAATCTAATTGATTAGCTTAT -TTTTAATTTCATTATCTACTAATTTCATACTATCAAAATCGAGTTTCATTCTACCAGAAGGATCTTCAGC -GTTAATTTTTAAAATTCTTAATTTGCTAATAGTTACTACATTCTGTGTGCAGGCAAATGTATTTTTATCA -AATTTTTTATATTTATTAATAACTTCTCTAAGGTTATTAACTTTTGATTTTCTATCGTTTACATCAATTA -GCAAATAATTAAACAAAGCAGAAAAATTTTTCGGGTCATTGTATAAATTAAATGATTCTACTATGTTTTT -ACTTTTATTAATTACTTCTCTTTCTGTAGGGAAGCGTGTTTTAATTGCAAAATCATCTAAATAATCTATA -GTGTTTTGTTCCAAAGTGTTTTGTAAATTATTTTTATTAATAATTTCTATAACCGTAAAAATTACGTGAT -TTATAACGTCTAAATCAAATTCGATATTATCAACTGTCTTGTTCAAAATTGATAATGATGTTTTAAATAC -AATATTTTGTAATGGTAAATAGTGTTTTTTATTTTTTGAACTTAATGGTACAACTGTTACTAAAGAATTA -TATGGACTATCATTTTTGTTTAATACTATTCCAAAATGTCTGCCAGAAAATTCATGCCCAATATTGATGC -CAAAATCTAAATATATAATAGATCCCCTTGAGAATTTTTTGTATTTTTTGTTTATATTGTTATTATGCTC -CATATTAAACCAATATGATGTTGTCTCTAACCAATTTGGTAAAAATTTAAACTTTTTATTATCTGTGTTA -TATAACAGAATAAATACTCACAGCTTTATTTATTCTGTTATCCATCTAACTCCCTATCCCCTCTAATTTA -TTCATCATATCTTTTGCCATCTTATCAGTAACATGTGTGTATATCTCTAAGGTGGTTTTATAGTCCGAGT -GACCTACACGCTCTTGTATCGCTTTTAGGTTAATTCCTAATTGCGCAAGTGTAGATATGTGTGTGTGACG -TAATGTGTGCGTTGTCACACGCTTGTTAATTGAACTTATATCAGTAGCTTCTTTAATAATATTATTCACC -TTATTTAAGTCAATAGGGCTACCAGCAGTGTTAGTAAATATATAACCTCTATCTATGAATTTATCATTCC -ACTGATTCTCTTTTTTATTTTCTAGCATGAGTTTTTTAAGTAAATTAATACTTTGAGCTGTGAGGCCTAT -TGTTCGATAACTCTTACTCGTCTTAGTCGTTTCTTTCACTCCAAATGCTCCAGTTACTACATCTGTAACC -CAGTTAATTGTGCCATCAATCTCTAGTGTTTTATTCTCCACGTCTACATTGTCTGTCTTGATTGCTAGGA -GTTCGCCAATGCGCATTCCATTGTTAATTTGAAATTCTACTAATGCTTTTACCATTTCATAGTTACGTTT -ACGCGTAGCATGACGCTTATGTTTAATTAGATAGTCGAAGCACTCTAGTAACTCCTTTACTTCGCTATCT -TCTAAATAGTTATTACGTTTAGCTTGAAACTCGTTTCTGGTTTGGGCTTTCTTAGGTATATCTATTTTAT -CTAACACACTAATATCGTGCAGATCATAATATTTAAACGCATATTTGAAAACGGAACGAATAACAATAAC -AAGAGATTGAACATGGCCAATACTATGTGATTTAGCCCATTCATTAATGATGTTTTGTAAGTAGGTGTGC -GTAATCTTGCTGATGAGTACTTTGCTATCAATAGCATTTTTAACTGTATTAGTATTACTTTTCTTTTCTT -TAATAGTGGTTGGTTTCGAGCCTGAATGTGTCTTGTAATGCTCTAACCATTCATCGCACGCATCATGGAA -CGTTAAGTTTTCAAGTTGTTTCGTACTGTAATGTTTCAAACGTTGCTCAATTATTTTATTTAATTCTAAT -TGAGCGTCCTTTTGGCTACGTACATTATTCTTGTTACGTGTAACTGATACTGTTTTATACTTGCCAGTTA -AAGGGTCTGTATAGCGCTCTAAATAGCGATAGGCCGTACTATTGTTTTTGGTGATTTCACGAACCCACAT -TTGTCATCCCTCCTTTAGATATTCTGTTTTTAAAATGTCTGAAATAAACAAGTAACTATCAAGTGTAGTA -CAAAATAGGCAAAGTTACGTATGTTTATAGGATTGTACGGTAGTAATATTTGTAGTATTAGCTTTAAGTA -TTTATTTTAGCGTGCTTTGTTCAGTTCTTTTTATCTAACTTATCATCTATATAATCGCTTAATTTTACTA -ATTGTTCCCAGTTTTCATTTTTATCTCTTAAAGTTTTTGTGTTCTCTTTTATAATAACTGATTTATTTTC -GAAATAATTATTTAAAATTTTATCGATGTTATTTTTATCGTTATCCGTTAATCTAATGCCTTTGTAAAAT -TTATAATTATTAATATCTTGCAGATGAAAGTGCAAATCATTAATGCTAATGTTAAAAATTGTGAAACTCT -TTTCGTTATTGTCATCAAAAGATATGAATTCTCTAGAATATGGTATATCCATCATTCTATCTATAATTTC -CATTTTATTTGTTACATTAGAAACTTTGTTTAACTTAACTTTATTTTTCGTTATCTTAGCTATTTCATCA -ACATAAAAATTATACTCCTCATTAGTGTCTTTTATGTTCATTAAGTAACTTTCGATAAGTTTATTGCTTG -GAAAAGATTTAACACCATTTTCAATGCCACTTATATGCCCTTGAGAATACTGCATTTGTTTACTTATTTC -GCTTGCTGTCTTCCCTTTTTGTTTTCGGATAGACTTTAAAAATCTGCCTAATTCTTTTTTTAATTCATCA -TTTGATTCAACCATTGGCGACACCTCCGTATTTTTAATGATAAACCATGCATAAAAATAATACAATATTA -TTCTTGACATTCCTAAAAGAAGGTGCGATACTCTATTTATGCATAAAGGAATAAAAATAAATGCATATAT -TCTTAAGGTGAGGGGTGATTTTATGTTTATGACTGTAAAAGAAGTTGCTCAATTGTTACGTATAAGTGAA -CGCCATACTTATAAACTTCTTCAAAAAAACGTTATACCACATACTAAAATTGGCGGAAAGATATTAGTTA -ACAAAGAAAGGTTATTAGAAACTTTAGAAAAAAAGGAGGTTAAATAAATGCCTAGAACAAAGTTACAAGA -TTTTCCATCAAAAGAAAATACAGTTACAGAACCGGAACAAGTTGTAGTAAATCCGTTGTTTGCGAAACCT -AATACACTAGCTGGTATTTTTGGAATTTCATACAGTTCGGTCAATCGTATTTTAAAAGAGTGGGAAAAAG -ATCATAAAGGTATTAATGATTTATATTATTCACTATCATCAACAATGATTGTTATCAGTATTCCGCGATT -CGAGGAGTACATGAAGGCGCGTCATAAAAAATGGATGTAGGAGGCAAGGCAATGAAAATGTACTTAACTT -ATATCTGCTTAGTTTCATTGTTAACAATTTTATTACTAGCAATATCTAACATGTATGTCGCTTTTAGTGT -GTACGGCATGATGGTAACTTATGGATTTAATTTAACAGGAGAGATTACAACGTGCGAAAACAAGTTATTA -TTACAAAAACAGTAGTTGGCTGGTACAACATTAAAGATACTCAACATAATTTAATGTTAAATATACCGCC -AAAAGTATTTGAACAGTACTTTCCTGATGTTAGTAAAGATGTCAAGTTGCGTGTTTAGAAATGGATTTAT -CAAAAATTACAGAAATTAAAAATAAGAAAAAGGTAGGTAGTTAAGATGGAAATCAAACAAAAATATCAAT -TATCAAAAGTGGTTAAAATATTAGAAGTAGTATTATACGAGGAAGATAAGTTTCAATCCGATAAGGACTA -TCATTATCAGGATAAAGCATTTTATGAATATGCTTTAAAGTTAGTTCATAATGGATTGTTCAATATTCTT -GCTGAATTAGATTTTGAAGATGAAGTATTTTTAATTCTTGATGAAGTAACGATGACGCTAAGTGATGTCA -TGAAAGAAACACAACACGTTTATCGTTATAGTGTCATAGACGAAAAAGGTGAACATAAACATACAACAGA -TCGCAAAGGACACGTGATTGGAATGTTAGAGTGGGCATTAGATTACATTGTGGGAAATATTGAAGTGGAG -GTATTATAAATGAATTGGGAAATTAATGATTTGTTTAGCGATTTGAAATTGTTGAAAGATAGATTCGAAG -ATTTAAAGGATAATCATGGTTGGCATTTTGAGGAGTTATATCCACATGAACCAAATCATAACTTAAATAA -AGATGAATTAATTAGAGAGGGTGCTTCTTATCATGAGAGACGTATTCACAATAATCAAATGTTTGATTTA -TTCCATCTCTATATAGAGCAGTTCGATAATATTATCGAAAAGTTTTATGAAATAGAAAAAGCATCATCTG -AGAACTTTGGCGAGGAATCAGATGACGCAAAGAATTCAATAAAAGTAGCAGAGTAATATAGAAATTACAC -ATTCTTATTATAACATCTTTGCTCTGTTGTTTCATTAAGAGGTGCAAAAAATGAATGAAATTAAATTAGA -ATATGACACACATGTTTCAGTGGTACATTATGAAAGTTTAGACTCACGTTCATTTAAGAGCTTTTCAAAA -CCTAAATGGAGTAAGTTGGTTAATAAACTGTCTGTACCTATAGAAGCGAATTATAAGTATGCACGTGGTG -TTGCTGTTTACGGTGATATTAAAAACGGTGCAAATGATCATGGTGAAATTATCAAAAAGCATCGAAACGA -TAAAAATGTCATATACAGAGATGTGATTGTACTTGATTATGATGAAATAAATGATTTAAAGCAATTACAT -GAAGCAATCAGCTCAGCTTTAATCAATGTTGCATGGTTTTGGCACACAAGTTACTCGCACAGAACTGAAC -AAGCTAGAATACGCCTGTATATCCCTCTAAATGAGCGAATAAGTGCAGATGATTATCGTAAATATTCAAA -GGTATTAGCAAATAAAATTGGTCATAAAGTGGATGAAGGTTCATATCAGCCAAGTAGATGTTTTGCACTA -CCAGTTATTCAAAAAGGACACATATTTATTAAACGAGTGAATGACTGTCCAATTATGGATGTTGATATGC -TTGAACAGTGGTTAAAGGAGTATGAACAATCAAATGTTAGTCCGAGTGTCATAGGATACACGCGACGAGA -TAGTAAGTATTGGCGAGAGTTATGCTTTGGAACAACCGAAGGCAATCGTAACAATGCACTAGCTAGCTTA -GTTGGGCATTTATTAAGATGTCACGTTAATGATTATATTGTTTATTCATTTGCTTTATTATGGGGGCAAT -TCGCATGTAAACCACCTATGAAAGAACAAGAAATCAACGCCACTTTTCAATCGATATTAAATAAACACTA -TAACAATTAGAAAGGGGCTTTGTATGGAAACAGGTAAAAGTGATGTACTTGATAAAATTGAAAAAATTAA -TAAAAAAGATAGTGCCTTACAAGAAATTATACCCAAAGGCTATGAAATTGAACATCATCAATGCGGTGTT -GCCTTATATCAACTTATACCAAGTAAAAAAGAAGGCGAACCAGATAAAAAGGTTTTTATCACAAATACAA -TCCCTCAAATTACTGAACGCTTTGAAGATATTGAGAGTAACGAAGTCAGCTTTAATATGCTTTTCTATGA -CAATAAAACGCCAGTAAATATAGCTGTGAGTGCCGAAGAAATTTCAGATAGTCGTCAACTCTTGAAATTG -GTTAATAAAAAGCTAGATGTAACATCGTCAACATCTACTAAACTTGTTGACTATATTAATATATCTAAAC -GGTATAATCCACCATTAAATGTTAAAGTTGCAACGCGTTTGGGGCATGTGAAAGGTTATTTTATTTATCC -TTATCAAGAAGTAATGAAAGACAGCAATGTCAAGTTGTTTAGCAATGATAAAGGGTTTCAAAAGTTAATA -GACTCTTTTCGAAGTAAAGGAACACTACAAGGTTACTCTAAAAAGGTGTTTGCTCAAATAAAAGATTTAC -CAATGGTAATGGTTATGTTGTATGCATCTTTAGGCTCAGTTTTATTAAGAGAATTTGGATTACAACCCTT -TATTGTAGAAATATCAGGTAGTACATCCACAGGTAAAACATTCACACTCAACTTAGTATCAAGTGTTTGG -GGAACCAGTGACCTTATTACGACATGGAGTTCTACTCAAAATAGTATTGAATCAATGGCGTCATTTTTGA -ACTCATTTCCAATGTTTAAAGATGATACGCGTAACACACATCCTAAGTTTGTTGCCAGTGCCACATATAA -CTTTTCTAGTGGTGAAAGTAAATCGAGAAGTAATATTAATTTAACGCTAAATGCTAAAAAAGAATGGCGA -AATATTTTAATTTCTACTGGTGAATCATCTATCGCAAATATGGCTGATGAAAAAGCGGGTGTATCAGCAC -GTGTAGTTACACTACAAGATCCACCATATCCAGATAATTTTGATTTTACCACATTAGACAAATCGTTTAG -GGAGAACTATGGAACATTAGGGTTGGCATTTATTAAACAATATGAGTCTAAAAAAGACGTGTATAAGAAC -GCTTTTGAGAGCTATCAACGGTATTTTAATCAAAAAGGTAGTAATGAAATCATGCAACGTTTAGGACGTG -CCTTTGCGTTACTACAAGTTACCGGTGAGGTTTTGAATGATATTGATGGGTTTGAACATGACCATTTTAA -AATTATCGAACAAGCCTATGACAGCATGGTTAAAAACAATAAGACGATTGATAAACCTAAGCAACTGTTA -GAGGAACTATTACAATATTTAGATGCGAATAGAAATAATATTGTAGGTGACGGTTATGATTCAGTAAATT -ACGGAGATGTTAAAGCGGTATATAAACATGATTTTCTTTGTATTAAAAACGAAACTGTTAAAAATAAATT -AGGACACGAAATGCAGACGATTACAGGGCAATGGGACAAAAAAGGTTATTTAATAAAAGATAAAAAAAGA -ATTCAAAAACAAGTAAAACATAAATCTCAAAGGCATCTGGGTTATGCGATTAAAAAAGAAATAATTGAAG -AACTAGGATTTGATTTCTCGATTTCGCATAATCCATATACAGAAAGTTATTAGTACACACAAGTACACAC -TCAATTTTAAAATATGTGTACTCGATAAATTCAATAATATCAACAGTTACATGCAGATAGTACACGAAGT -ACACAATGTACACATATAAATATATAGTCATAGTTAAAATTAATAAATTAATTATCGTAGATTTCTAAAT -AATATACAACTATCACTAAAATTTCTGTGTACTTTGTGTACTAATTATCACGAGGCTATATATATCAATG -TTTTAACCAGTACACGAAAGTAAAAAAAGGTGTGTATTTAACTGTGTATGGTACACAATCAATATAAATA -TGGAGGTTACACATGGATAAAGAACAACTTAAAAAGTATATATACGAATATGTGAAAGAATATAAGGAGA -TACCGATATATCAGTTAGAAGATTTGTTTAAAGAAATAAATCACGACTATATAGGGAGAACTAGTATCAC -ACACGATAAGGATGAGAATATTGTGTTTTGGAGTGGGTGGAACAAAATTACAATGTTTGCGTTGATTGAA -TTAGTTAAAAGTGAACAACTTGATTTAGTGTATAGAGGTAGTTTTATAATGCGTTATTTGTTGGATGGTA -GAGTTCCTAATTTACCATTAGCTATTTGTTATCCAGAAGATGGACAACAAACTGACGTGCCCTCATGGGT -GCCTATGGTATTAAGAATAAATAAAGAGGAGAAAATCAAATGAACATAGAAACTATCGTAAATGAATTTG -AGACGCGAGCAGGCACGCTATTAAGGTACTACACGGGATTATTAGAACATAGTAAAGTACAACCATGTTG -CTTTAAGTTATATAATGATCCATTTGATATGGTTTATGTGGTGATGAACAACAAGTTATTCGGTCATGTA -TATATTAAAGATTGTAAGGTGAGGAAGTCATTTGAATTAGCGTCACCTAAGCACACTGAGGGGCTTATAA -GAAGCATAGAGGGGCATTATGTAGGTTATGAATTACATGATGGTAAACAGCTTTCTATTAGTGATATGAT -GGCCAGTCAATTATTTGAAGATGAGTATTTTATGTATGGGCTACAAACATATGTAGAATCAAATAATAGT -GATGTGTTTGAGTACCTAGAAAATGGATTTGATACAGATACACTTGAGGGCATTCAATCAAGTAATACTG -ATGTGATAGCGAATATTGAAATGTTGTATCAGTTAGCTACGGGAATCAATGAACCAGCACGAGAGTTAGT -TGAGGGATTAAAATTAGTAACTGAGTTTGTACAAGATGAGAATGCGACACAAGAGGATTACAAGGCGTTA -GAACGTAAATTGAATGATCTAAAAGCGTCTTACTATAGCTTGAGTAAATAATGTTATGAGGGGTCACATG -TAGTGTGTGGCTCCTAATAAAAAAACGGCAAGGTTTGTACAAGGTATAGAAGTTTAAAATGGTAAGGTTT -TCGGAAGGTGTTGGCTTTTAAAATCCAAAAGTTTCCCAAAGGTGCGCAGACTCTGAGAACAATGAAATAG -GAAGGTGTACAAGGTTAAAAAAGCGAGGTACAGAACTTTAAAATAGTAAGTTTGAGGTAGAAAGAAAACA -ATGTTTTATACCAGGGTTGCAAAATGGTGAGAAAAGGGATAAATGCGAGCAATTGAATCAAGAAGAAGTG -AAAACCCCAAGATTTTCCGTAGGTTATAAGAATAGTGCGATTTTAGATAGATACGAAGAATTGCGTCAAG -AAGGAAACTAAAGGTAAGTGGTTTTTGATATTGATAAAAGTAATAAGGTTTTAATAAGGTATAAAAAATT -TAAAAAGATAATATATGTTAATGTTTGTTATTTTTGAAAAGGGCAAAAGTTTTATTGTTCGTATTTTGTT -CGTGTAAAAAATGGGAACTTAAGTTCTATAGAAATTAATACGTTTTACTACAAAATTTCTTTTCCTTATT -TTTTTAAGAGGGATAGGGGTGATGCTAAACGCCTGATATAATGCGATTTATAGCGAACATAAGTTTGATT -TAGATGTGTAGAATTGGTATAATTAGAGTAAGCAAACAACAGAAAGCATGGTGAGACAATGAGTGAATTT -GAAGTAAAAGAAAAGACGTACAACTTACCGAATGAACACCGCCAAGTACTCAATGTGATAAGAAATACGT -CTAATAAATATATTACTAAAACAAAGCTGCTTAATCAATTGGGATATGAATATAATTCAAGCAATGAACG -ATGGTTACGAAGAGTAATCAATTCATTAGTATATGATTATGGTTATCCTATCGGATGCAGTTATAAACCT -AGTGAACGTGGTTATTACATCATTACGACAGAACAAGAAAAGCAACAAGCGATGAGAAGTATTAAGAAAT -TAGCTGATGGCAGTATGAAACGCTATGAAGCTTTGAAACGAATTGAAGTGTAAAACAAAAACTAAAGAAA -GAGGTACTTATAAATGACAACTACAACAATCACGGGTGATACGTGGGATGTATATTTTAATGATAGACGT -TATAGAAATTTGTTAGGAGATTTTGAAGATCTAATAACAGAAACGAAATCATTAATTAGACAAGGCTATA -AAACGGATGTTATTAAAAATAAAATGGATAATAAGGCTTTGAGCCTACAATCTAAATTCAAAGAATTAGG -ACAAATATTATTAGATGAACATGAAGAAAAAATAGTAGAAATCCAACAAAAAGAGAAAGAATCTTCATAT -GAGAATCCACAAGTTGAAATGTTGAAACGTCAAGACATAGAGGCGAAAGTAAATTTAATTGATGCAGAAG -AACTATTTAATCTTGTTTATAATGCCAATCCTAAAACCACTAATGTATATGAACTTAATATCTATAAAAA -AGCGATAGAAAGTCGTCTTACTGAAGATGAAAATGTAAGGTTAAAACCTTACTTTGATGTATTGGTAGAA -AAGGTAATTTATCCATATCGAAATAATGAAGAATATCAAAAATTAGAGTATAACTATAATGTTTTAAGAC -AGTTTGGGTTACAAAATAACGGGCAACCAGTCATCAAACATAGTGATGGCGATATAGAAATTATTAACAT -TCAAAGTAAGTATAACGAAGTGTTCCGTAACGCTTAAATCAAAAATAGCCTATCCAATTTGGGTAGGCTC -TCTTTATAGGAGTGAACGTATGAAACTGCTTAAAACGAAGAATTGTTTATATTATCGTAATGGCGACAAT -AAATTATCTGAGTATCAACTATTAACGCAATTTAACCCAGCATTTATTAATAAAAAAATTAAGATGTGTG -AATTCCAAATTGAAAGTATGTACCATCTGAGTGCGTCGACCACAACATGTGATGAAATAATGGGGATCGT -GTCTGTCTCATATCCAATTGAAAAACTAGTTATCAAAATTATTGAAACAAAGGCAAGATTACAAAACTAT -AAAAATCGATCTATAAGTAATATGGTGTTGTTGAAAACAGTACTAAATCATTATACAGAAAAAGAGCAGA -AGCAAGTTGTAAAATATATGCGTTCAAATGGACGATATAAGCCCTACAATGTCATTGAACGCTTACAGGT -TGATTTGTATCAAGCAAGTATTAAACAACGTTCAGAACGTCAAAAACAAAGAAATATAGCAATTGAAAAT -AGCAAGATTGCACGAGTAAATGCTTATCACCAATCTTCACATGTAAAAGTGGTGTAACAATGGATAAACA -GCAAATAAAAGGCTTCGTTTGTGATTATCATGAGCGAACTAGAAGTGATGTATTAATAGATGATGATATA -AATACTGATGAATTCTTTTCAATAGGTGATGAAAATTCTAATGAATGGATGGCAGACGATAACATTGATG -ATCATATTGTAAAGAATCACTTAGAAATGATTGTTGACCAAGTAGCTAATGATAAAGAGTTTTATATTTT -CGATTCTTTAATACAAGGACGTAGTTATAAAGATATTAGTAGTGTCTTAGAGTGTTCAGAACAATCTGTA -AGATTATGGTATGAAACCTTATTAGATAAAATTGTGGAGGTGATAGAATGAGTGAGTTAACGGCAAAGCA -AGCGCGTTTTGTGAATGAGTATATAAGAACACTTAATGTGACACAAAGTGCCATAAAAGCAGGTTATAGC -GCAAATAGTGCACATGTGACAGGGTGTAGGTTATTAAAGAAGCCACACATCAAGCAATATATACAAGAAC -AAAAAGATAAGATTATAGATGAGAATGTATTAACTGCAAAAGAGTTACTACATGTGCTTACGAATGCGGC -AGTCGGTGACGAAACAGAAACGAAAGAAGTTGTGGTCAAGCGTGGGGAATATAAAGAGAATCCACAAAGT -GGCAAAGTACAGTTAGTCTATAATGAACATGTTGAACTGATAGAGGTGCCAATTAAGCCAAGTGATCGTT -TAAAAGCTCGTGATATGTTGGGTAAATACCATAAGTTATTTACAGATAAGCATGATATCAACGGGGATGT -TCCTATATTCATTAACATTGGTGAATGGGACGGAGACGATGAGGAATTAGATAAAACTGTAAAAGATGTA -TCTAACGCTAATCCTAACCATACTGTGATTGTGGATGATATACCGTTAGAGGATTGAAGAAAATGAAGCT -ATGCTATTTATAAATTAATACTAATTAGTTTGATACCATAGCTTATTTACTGAGAAAGTAGACTTAAATG -TAACAACACCAGTGTTTATTGATAATATTGGTGGGTTTGAGGAGTAGCAATAAAATAAAGGAGGTAATTG -TGTAAAATATCTCTTTTTGTTATTTCTTATTTATTTACAACCGATAAAATTAAATGTATTATATATATAA -CGATCTAGCCATAACTCTATTCGGGTTATGGCTACTTTTATAGGGGTAAATTTATGAAGCCATTTGAAAG -TCATAATAAACAATTGAAAATTCTAAGAAGAAGAGGAATGGAAGTACCGAGTAGTGCTAAAAGAGATTTA -GAAAATGAAAATTATTATAATATCATAAATGGTTATAAAGATTTATTTTTAGAACTAGATGTTAATGGTA -ATTTTTTGGTTCCTGATAAATATAAGCAAGGTACTCATTTTAAAGAAGTCTTTTCTTTATACAAACTAGA -TAGAAAATTTAGGAATGTTTTATTAGAGTATTTGTTAGTATTTGAAACTCATATTAAATCAAGAATTTCA -TATTATTTTAGCGAAAAATATAGAGAACCACATTCATATTTATACTTTAAAAATTATTCATCTGACACAA -GTAAGACAGATAGCATCGTGAAAATGGTTGCTACATTTAGCTCGGTTATGAGTAATAGAAAAAATAAACC -ATTAAAACATTATATTAATACTCATAATGGAGTGCCACTATGGATATTGGTGAATTATTTAACTTTAGGT -AATGTTTCAAAAATGTATTCCAATTTGGATGATGATCTTCGATTGGAAGTTGCTAAAGACTATAAAAGGA -AATTGGAAAGAGATTATAAAACACGTGTTCAAATAACTCCATCAGATGTAGACAGTATACTACAACAAGC -ACATATGTTTCGTAACGTGTGTGCGCATGAAGAAAGATTGTATGATTATAAAATAGACAGGGCTAAAAGT -AGAGCTAATATATTCGCCAATTATAACAAAATATACGATAAAGAATACGTTCCTACAATGAATGGTAGTT -ATGTATTCGATTTGTTGATTTCACTATGTCTATTTTTGAATAAACATGATTACATAAAATTGGTGAAAAA -TATGGATAAACTAATAAGTAATTATTCACATTCTTTCTATACAATTACTATAGATGACCTATATACAAAA -ATGAATTTTCCAGATCAAACAAAAATACTGGATATGTTATAAAAGATATTTTTTAATGTCACTTACGAGT -GGCGTTTTTTTATTTTAAGACGCTGAGAAACGCCCTGTGTTGCAGTGGGGGATAAGATTCTGTAACTAGA -TATGCTAATCGTAAGTGTGACGTCGTGAAATACGACTTCAAACATCGCTGGTCAGTCGATATTCGAGACT -GGCCGAAGATTGAAGCATGTGAAAGAAAATGACTTAGCGCACGGAGAGTTTGGTAAGTGGCTTGAAAAAG -TTGGGTTAGATAAGTACCAAGCTAGCAGGTTTATCAAAGTTGCAAATGAACAATCAAAATTGCACTCGAG -CGCAAATTTAGGACTTAAAGCGCTTTATCAGATAGCAACTATTCCAGTAGAGCATCGAGAAGAAAAACAA -CAAACGTCTTCAGGAGAGATGAAAACACCATACGAAATGACCAATAAAGAACGTGAAGAATTTAAGCGCC -AACTCAAACAACGCGATGAAGAAAACGCACAACTTCAATCACAAATGGAACAAGCACAACGTTCGGAGGA -GATAGCGAGAAAGCAATATAAATATGGATTAAATAATTATATTTTTACTATAAAATTTTAGACACACGCC -ATTTTTTACAATTAGGAATGATTTTATTGCACTTAAGAAATTTTGGTAAAGCGTTATAGTAAGAACTGAT -AAAATTAAAATGTAAAAATTTTAAAAGGAGTTTTTATTATGAAACAGCAAATGTTATCAAAAGTATTATT -AAGTACAGTCGTAGTTATGGGATCAATAGCAGGATCTTCTCTTGTAATGGATGACAACGCTCATGCTGAA -CAAAAAAGTGATAATATCGGGAAACTGAATCAAAAAAATGAAAGTACCTTGCATCTTTCATTTGAAAAGG -GTATTAAAGGGACTGTTGACAAAAATGGTAAGTTAACATTATCTGATGGAAAAACGTCAAAAGTGATGCC -AACTAATGCTAAAGATAAAAAAGGTAACGATGTTGTTTTGGTTTATAAAAAGGTTAAAGATGGATTTGAT -GTTCAAGTAATTAAATCTAGTCAAGAGAGAAAAACTAACTGGGTTAAATGTGGTCTAGGAACAGTTGGAG -GCGCTGGCACTGGTGGGCTAGGCGGTGCTAGTGCAGCTTCAGTTATACCAGGTTTAGGAACTGTTGCAGG -TGCTATTATTGGTGGGGTTTCTGGTGGTGCCACAGGTGCCGCAGCGTCATGTTTCGGTTGATAGGAGAGT -GAATTCATGAAAAACTCTATACTTTGGCGAAAGTCGTTTATTCCTGTCTATTTTATAGTTGCTTTTGTAA -TGTTCTTACTTTTTAAGTTTTATATTAGAACTGATAATTTTTCAGTTTATGTTTTGATAGCTTTTATAGT -CATTTTAGGTTTTGCTTCTATTATATATAACTATAATAGACATTAATTAAGTTACAATTATAATTATTAT -ATTAATGAATTCCTGTGGATTTAGAAATAAGGCAGGTACTTCGGTACTTGTCTATTTTTTATGTTAATTA -TAAAATGCTCAAACTAAACTACCTATTAATCAGGAATGTGGTTGTTTTAAGGGCAAAACGGTTTTTGTAC -ATTGATATAAAAATATGACCTCATACTTTGCAGGCGGTGAATACATATTGCAATACGTTAATTATGAAGT -GATGTGAATTGTTGAGAAGTATAGCCCATTAAAATGTTCAGTGCTATAGGTACATTCAAACCTTACAACC -TATTGATCTAGGAGTGTGGTTGTTATAAAGGCGAAAAAAGGTGTAATTGTGAAACTAGGGGCAAGGGTAG -TATGTTCGCAAAAAGTTCGCAAAGTTACGAAATAGTGTGAATGTTCATAGACTTTCAAAATGAACAATAT -GAGTATGAAACATTGATTTAACAGCTTTTTGAACACTAATGATTATTCATAAAATAGCAGTATATAAAAG -AAGAACAATAATATTTAGTTTATTGTAAAACCCCGTAAGCATAGGCTTATGGGGTTGTTTTTGTGTTTTG -GGATAAAAGATGAAGGGCAAAAAAGAGGATGTGAATGTTTTGTGTTCGGAATTTGCACAAAGATATGTTT -ATATTGCAAAAATAATATGAATTTAGATGCATAAAAAAAGAGGCAACCGTCAGTAACAGTTAACCTCAAG -TGCATTCCGCAGATATGCACCGCTATTTATGTATAATATTAATCTGTTTTTAGATAAAAATCAAGGTTAT -TGATAAAGTTCTTTAAACTTCTTAATTTAGGTCTTGCTCGAACGCCTATAATTTTATCATAAGTCGACTC -GCTTATCTTTGATCGTAAAAAATCAAGGTTTTGTTCGAATTGCCTTATAATTCTTTGGAGTTCTGCTTTA -GAATAAGAGAGACCAGAACAAATTAGAATTAATAAAATGAGATAATCAATTATTCTGTCGAAATCTAAAT -TGTGTATATCCATTTTTACTGCTAAATATTCTTTTAATCTATTACTTGTCTCTCCAGTTTTAAATCTACA -GTCATAAAGTACACCATTGTGAGCTATAGCATTTCTTAAGCCTTTCATACAATCAATGATGTCACCTAGT -ATATCTTTACTTTGATCAAATGCTGGGGAGTATAATTTTAGTTGTTTTTGAGCTTCTATATTTAAATTTT -GGGACATGCAACGAGTGAAAAATACCAGATTTCCTAAAGTGAATAATTCAAATACGGCATATAGTGGCAC -GGTTCTATCTTGATGTATGTAATGATAAATGTAAGGTTTTGAATTACAATGTTCATGGATCATGTCGTAA -ATATCTCTTCTTAGTCTAGTAGTATTTTTTAAATGTTTTTTATATTTTGAACTACCGGGACTATAACTTT -TATAATATGTTAATGATTTTTGAAATAAACTATCTAAATCAAAGCCAGAGTTTACACAAACTATTTCTAG -CAATCTATTTTTAATAGCCGTTTCACAGAACATAACGTGTTTATAGAAAAGGTTTTTAATTTCTGTATCA -AAACTGTATAAAGCGTGTAATTCGCTGAATTTTTCAAAATTAAGTTCTTCTTCTTTGTTTAAAAAGAAAT -TATACCCTTTGAATCCATGAAAATAGCCGATGTTTCGTAACTGGTTTTTTTCCGTGCTACCATTTATTTG -GATACCTTTATTGTCTCTTATATGTCTCATTAAACCATCAGTAGTTTTAGGTGTTTTTCTGTTCATAGTT -TTTAACTCCCCAATCGTTCAAATTTATTCAGCATATCTTTCGCCATCTGATTAGTAACATGTGTGTATAT -CTCTAGATTTTTTTATAATCTGAATGACCTACATGCTCTTGCATTGCTTTTAAGTTAATTCCTAATTGAG -CAAGTGTAGATATATGCGAATGATGTAATGTATGCGTCGTTGCAGGTTTCTTAATAGAACTAATCTCAGT -TGTCTCTTTGATAGCCCCCCCTTTAATAATGTTATTTATTTTGTTTAAATCGATAGGACCACCAGCTGCA -TTTGTGAATATGTACCCTATATTAATAAACTTATCATTCAAAGCATAAGTGTTCTTAGTAAGTCGATGCT -ATGGATAGTGAGGCCTATAGTCCTATAGCTGTTACTTGTTCTAGTTGTCTCTTTTACTCCGGATGCTTCC -ATTTTTAATCAGTTATCCAATTAATTGTACCATCGATATCTAGCGTTTTATCTTCATAGTTTATATTTTC -TCTTTTTATTGCAAGTAGCTCACCGATACGCATGCCATTAGCAATTTGAAACTGCACTATAGATTTTACC -TTTTTATAATTACGTTTTCTCGTTGGGTATTTTTATGCTGAATTAGATAGTCGAAACAATCCGGTATTTC -TTTCACTACATTATCTTTTAAATTGTTATTACATATAGTTAGTAACGCATCACTATAGGGATATCTATTT -TATCTATTACACATATAACTTTGAATTGCTTACTATTTTAAATTAACAAATTTTATTCTCTTAGAATTTG -TCCAATTAAGTGTAGACGATTCAATTCCATAATAAAGTCTCTATAAAATAACTTAGTTTAAAAACGATTC -GTATCTTTCAGATTCAAATACCATCATTTTCTCCTAAGACTTACACTTTAATTACAATTATGTAAGTTGT -TTTCAGAGACATCCTATTTTATATTTTGTCAGAGGTGATCTTTTGAAAACGATTTTAAAAACAATAACAT -ATCTTGCATTTACTATCATTGGCGCTTATGCTGCTTTATTCATTTTAAAAACAATAGACTCTCATGGTAT -AACAGATCAATTTAACCCATTAGTAAAGGAAGATGATTCTTATGTTAAAACGACAGAGGTGTCTACTAGA -ATGGATGATCAACTCCGAAGTTATAGTCAAAGTGCTTTTAATAAAGAAGGGAAAGAGACGCAATTAATGT -ATACTGCTACATTTGATGTTAAACCGCATAGATACTTGAAAATTACACATAAAGGTCATCATGTAGAAAC -TTTTGAAGAAGTAGAAAAGGAAGAAGTACCAAAGAAAGCATTAGACAAACTGAGTCGATAATAGCATTCT -TATATTACATGGTTCATTTTAAAGATGAGTACGAAATGAAGTGACACATGACGATTAATTTAAAAATATT -TGTAATAATTATGAATAGAATTAAAAACAAGGGGTAATACAATCTATATAGCATATAAGCTTTTGTTATG -AGTTTCAAAAAAAGGAAGAGAGAGTGATATTATGAAATTAAAATCATTAGCAGTGTTATCAATGTCAGCG -GTGGTGCTTACTGCATGTGGCAATGATACTCCAAAAGATGAAACAAAATCAACAGAGTCAAATACTAATC -AAGACACTAATACAACAAAAGATGTTATTGCATTAAAAGATGTTAAAACAAGCCCAGAAGATGCTGTGAA -AAAAGCTGAAGAAACTTACAAAGGCCAAAAGTTGAAAGGAATTTCATTTGAAAATTCTAATGGTGAATGG -GCTTATAAAGTGACACAACAAAAATCTGGTGAAGAGTCAGAAGTACTTGTTGATGATAAAAATAAAAAAG -TGATTAACAAAAAGACTGAAAAAGAAGATACAGTGAATGAAAATGATAACTTTAAATATAGCGATGCTAT -AGATTACAAAAAAGCCATTAAAGAAGGACAAAAGGAATTTGATGGTGATATTAAAGAATGGTCACTTGAA -AAAGATGATGGTAAACTTGTTTACAATATCGATTTGAAAAAAGGTAATAAAAAACAAGAAGTTACTGTTG -ATGCTAAGAACGGTAAAGTATTAAAGAGTGAGCAAGATCAATAAAATATGCCGTAACACTAACGATGGCA -ACATGTCTTAATTCATATTAATTATTAAAATACCCTCACAACGCAATGTAATATATCCCGTATAGATTTG -AAAGGATATATGCCTAACGTGTTGTGAGGGTTTAATTGCATCTATTTATCCATGCGAATATCGACTTCTT -CTAAATGTTTCTGATATTCTTTAACCTTACTTTCTAAAAACATTTCATATGGTGCATCAAAGAAGTCAGC -TAAATGCATGGCATCTTTAAATTTAGGTTCATGGTGATGATTCTCCCATTCCCAAATTTGATGTGCTTCA -TATTTAGTACCATATTTCTCATTTAATTGTTGTGCTAATTCGTCAATTTCTAAATTATGTTTAGTTCGTA -AGTTATATAAAATATGCATATTCATTGTTCATTAACCTCGCTTCTTGATTTAAAATTCAAAGATGCTCTT -ATAATATGTGTATATTCTAGTCCTATAACATAAAATAATCAAGCTATGAATTCGGCAGAAAAAATAATGT -ATATGATATTGCCGGTACAGAGACTTTAAATAACGATAGCTACATTGAATAAAATTGATATTCAATTACT -ACTTTTAAAAATATTTGGATAAAAATAATTTGAATTTGTTTTAGAAAGTCTAATAATGGGTACTACTTAG -AATAACGCAAAATAAATAGAAAAAGGAGACTGAAAATTATGTTTGGATTTATTGGAATGTTAATTGTCGG -TGGCTTAATTGGATGGGCTGCTGGTGCTATTATGGGTAAAGATATCCCAGGTGGTATTTTAGGTAATATT -ATCGCAGGTATTATTGGATCATGGGTAGGTGGCAAACTATTCGGACAATGGGGTCCTGAATTAGGAAGTA -TTTACATCTTGCCAGCTTTAATCGGTTCAATTATCTTTATTGCAATCGTAACGTTAATTTTAAGAGCGGT -TCGTAAAAAATAAAATATTCAACTTAGGTTGAATTAATATAAAGATGGCATTCAGTTGTCATCTTTTTTA -TTTGCGTGAAAATGGTCAATATGTATTATAATATTTGAAAATGTAGGTAAGATAGGATTAAAAAGTAATA -AATTAACATGAGAAGAGGTTGGAAATAAAAAAACGAGTATTTGACAAATAAAAAAAGGATGACGTTGGGT -TGCGCCATCCAGGAGTATTATGTTCATGAATATAAAAGACTGTGTAGTCATTTAAGAACTACACCCATAT -AGTAACACATCACTTGATTAAAGACAATACTATTTTTAGAGTCATTAATTTAAAATATGAATTAATTCTT -TTTTTAGAATAGAATATTAAGATTGATATCGAATTAGTAGTCAAAGTGTTATGGTAGATATGAAATACAT -AAGATAAGGAGTAATATTATGACGATTTATTTAGTTAGACATGGCGAATCAAAATCGAATTATGATAATA -AACATTTTAGATCTTATTTTTGTGGACAATTAGATGTGCCGTTAACGGATACTGGCACAAAAAGTGCGGA -CGATTTATGTGATTATTTTAAAGAGAAACAGATTAAACATGTATATGTTTCAGACTTATTAAGAACACAG -CAAACGTTTGAACATATTTTTCCATATGACATTGCATCAACGACTACCCCTCTATTAAGAGAACGTTCAC -TTGGCGTATTTGAGGGTGAATATAAAGATGAAATCAGTGCGAATCCGAAATATGAAAAATATTTCAATGA -TCCAAACTTTAAAGACTTTCGACATAGTTTTTCACAAAAAGCGCCTGAAGGAGAAAGTTATGAAGATGTA -TATCAACGCGTAGAACATTTTATGAATCATGTTGTCAATGAAGATACACAAAAAGATGATATCGTCATTG -TTGCACATCAAGTTGTCATTCGTTGTTTGATGGTTTATTTTAACAAAGTTTCAAGGGAAGAAGCTGTGGA -TTTAAAGGTAGAAAATTGCAAACCATATATCATTGAATAGAAGTATAGAGGTTCTGAAAAGCTGTGTTTT -ATAGCGGCCTTCAGAACCTTTTTTGTATTTGGATTTTAATGGGAATCATTCTTATCAAAAGACTTCCCAC -CAATAGCTAATGTGATAATTGCGCTTATGAACAAAATAATTGAAGTTATAAATGACGCTAATGTAAAAGG -TGTAAATTGTGTGAGCGATAATATCAATGATAAAAAGAACCAAGAGATAGCCCCTAGAAATTGTAAAATA -GCAGAAGAAATTCTAAAACTCATATTATTGAATATAGCTAAAATAAGTGCGGGTAATGCGACTAATACCA -TTATAATGATGTTGAGTGTGAATAAATATGGCTGTTCGAAAGTTACTGTGTTTGGACCTGTTGGATGCAT -TGCTGCTAAGAACAAGCAAACAATCGTCGATAAAATTGCTAAAATAATAAAAGTGATTCGAACTTTCATC -ATGACCATCCTTTGTTTATAGAGTCAATATAAGTATGGAATATGTTAGGGATATAGTCAAATGCGTCAAC -TAATGGGGATTTTAGGATGGATAGAGAATTTAAGGCAATTAAAAAAGCATCAAACAGTAATATGCTGCTT -GATGCAATATGGTATTGGTTAAAATGTATTGTCTCAAAGATTAGTCACTTTTAAAGATAAAGAATTGTCA -TGAATTAAAGCGCATGTACTGATGAGTGATGTGTTACATGTCGCAATGATGGCTTTCAGTTATTTATCGA -TAACATCACTCTTGATACCTTTAGATTTTAAGAAATCTTTAATTTTATCTTGTTGCTTTTTATTAACATC -ACCGGCATATTTTGTTGGCACGTCGACTACATTGATTTTATTTTGCGGTTGATAGCTAAGCTTTTCAATA -TCTTCGTTAACATTGGCGATTGTACTATTTAAAGCTTTGAAGTAATTCATCATTAATTCAACGGGTTTCT -TATATTCTTTAGGAATATTGTTTTCAGTGACAAATTTCTTGAAATGCAAATCATTTTTAACAGCTAAGTT -AGATAAGTGGCTAAGTGTTTCTGCTTGTTTTTCAGTCACTTTTGTTTGACTGTCAATTTGTTTATCTAGT -TTATGTTGCATAATATATTTGTTATCAAGTATATCGCTATTTACAGACAAATACTTTTCTATAGCTTGCT -TCATCTCTGCATCACTAATATCACTATTTTTCTTATCTGAGTTAAAAATATCTTTTGTTTCTAATTTTTT -AGCGCTTTTAGGTGCATGGATGCCAGTACTTGTGTGATGATCTTCGTTATCAGATTGATCGGACGCGCAA -CCTGTAAGAATTAATGTCGATGCTAAAAATGTACTTAGTAGTAATCTCTTTTTCATAATGTAATATAACT -CCTTAGTTTATCTTTAATTGAAAAAATATGTATTCATGTTTAATAGAGTAACATTGAATTAGTTTGGAAT -GTCACGATGACCTTGCAATGACCATAGACGTAAATGATTACGTGCATGAGTTGCTTTTTCTATCAATAAT -GCGTCGTTTTGAACGTTGTTAAGGATAGCATTATCTATAAATAACTGCATAATTGGTTGTACTAATTTAG -ACGTAGGTATTGTACGTAAAAGCATAATGATTTCATTCACATACTTTTCCTTCTCAATATCATTTTTCAT -ATTGATTTGTTTGCGTAGATAACTGGTAAACTCTTTAATTGCTTGATCAGATTTCAAATAGTGGTGTCTA -TCATAATAGATTAATTCCTCAACAGAAGCTGGTACATAGTATCCTTCATCAGAAATATCAATGCCTGACG -CCTCAGACTCGACAACATCAAATAACACAGGGTGAAACACGAAGTCATCTTCAATATAATATAGCTCAGT -ACCAGCTAAAGTATCTAAGCTATATTGCAACTCTTCTTTACTAAAAGTAGCGTCATAAAATCTTTGTGTG -AGATATAGTAGATGATTAGTTGATAAAATACCATACAAGTTTACAGAACCAAGTATAATACGAAGAGGTA -AAATATCTTTTTTATCTATTAATCCTTTCTTAATCTTAGAAATCAATTGAGTGATTGCATCACTTCTTAA -GCTATCGGTTGTACCAAAATCTTCAAAATCGTCATGTTCAAGTAACATATCTAAGTCAACTTCGTCTTCC -ATAAATGATAATTCTAACGCGTTTTCAAACTCTGCTAAACTATTCTCAATTGTTTGCTCATCAACAAATT -GATTTACAGCTTTCTCAAAATCACCATTGCCGACTTGATTCACGAAATTTTCAATATGTTTACGCACATC -ATTTGGCAAAATAAGACAATCATATTCAAAGTCGTAATAATAATAAAAATGACTAGTTAAAAAGTTGTCA -AAATTTATTAATTGTAGCTTTTCAAATTCAATTAGTTCATTGTTTAATCGGTAGTTAGCATCACTTTCAA -GTATGCTAGAAAGAATGTCAAACTCAAATAGAGTAGTATTAGAAAACACTTGTTCAATGATGTGATTATT -ATTGAAAAATGCTGTCATAATTAATTCAACAAGATTTTGTTTGTTTTTATTTGAGAATCCTTTGATACCA -TACTGCCTGCATATTGTTTTTAGCTCGTCATTAGTTTTTAACAGTAAAGCATGTTCTAATGTGACATCGT -TTAAGCGCGTATGTTGTCTTACACGTAACACTTCTTCATTTAAATTCATATGGTTTATTGTATCTAACGA -TTCGAATTCACCATAGGTACTATCTAGTACTTCTGAATTGATATAACTTAAAAATAAATTATTTACAAAG -AACTCATCTTCATTAATTTGATAAACAAAACCTAGATGATTTGTTAGCTTTAAAATATTAACATCGCGTT -TATTTATAATTGTGACAGGATTACCATTAGATATAAGTGTTTCTATAAATTTTTGTTCTGTCTTATCCAT -ATCATGATAAATTTTATGTATATTTTCAGGGCGTAAAGCGTGAATCGTGACTTCAAATCCTTCTTTTTGG -GTCGGTAAATTAAAATATTCGCATGCATTTTGTAATTTTCCTGGGTATATAAAATGAACATCAAGCATTT -TTGCACACCTCGTTGTATATATTAAGTTTATCATAACATGATTTTATGTCGGGATAAAAAAATAACAGCA -TCTTAACAAATGTAAGATACTGTCAGTGAAATGAATGAAACTTTAGTTTCTGATAATATAGTCAAAGGCA -TTTAATGCTGCATTTGCACCAGCGCCCATTGAAATAATAATTTGTTTGTTCTTCTGATCTGTGACATCGC -CAGCAGCAAATATTCCAGGTACGTTAGTATTATTGTTACGATCAATAACAATTTCACCACGTTCGTTTAA -TTCAACAGCATCTTTTAACCATGATGTGTTTGGAAGTAAACCAATTTGAACAAAGATACCATCTAAGTTA -AGTAGATGTTCTTCGCCGGTGCTCATGTCTTCGTAACGTATACCTGTAACATGGTTTTCTCCGACAACTT -CAGTAGTTTTGGCATTTGTTTTGATATCAACATTTGATAAAGAACGTAAACGATCTTGTAACACGTTGTC -TGCTTTTAATTCGCTAGCGAATTCGAATAATGTAACATGATTAACGATACCAGCAAGGTCAATTGCTGCT -TCAACCCCAGAGTTACCGCCACCGATAACTGCTACGTCTTTATTTTCAAATAGAGGTCCGTCACAGTGAG -GGCAGAATGCAACACCTTTATTAATCAATTGCTCTTCACCTGGAATGTTTAGCTTACGCCAACCTGCACC -AGTAGCAATAATGACTGTTTTACTTTCTAGGACAGCACCGTTTTCTAACGTAACTTTAATTGCTTCGTCA -GTCTTTTCGATATCTGTAGCACGAATGCCTGTCATTGCATCAATGTCATATTGATCAATGTGCGCTGCTA -AGTTAGAAGAAAATTCAGAACCAGTTGTTTCTTTAACAGTAATGAAGTTCTCAATACCAGCAGTATCATT -AACTTGGCCCCCGATACGATCAGCAACTATACCAGTACGTAAACCTTTACGTGCTGTGTAAATCGCTGCA -CTACCACTAGCAGGACCACCACCAACGATTAAGACATCATAAGGTTCTTTGTTTTCAAACTCAGATGCAT -CTGCCGTACTGCCTAGTTTCGAAAGAATATCTTGGATTGTCATACGACCATTGCCAAATTCTTCGCCATT -TAAAAAGACAGCAGGGACTGCCATGATGTTTTCAGATTCTTCACGGAACACTGCACCATCAATCATAGAA -TGCGTGATGTTAGGGTTAATCACACTCATTAAGTTAAGTGCTTGAACGACATCAGGACATTTTTGACACG -TTAAACTAATGAATGTTTCAAAATGGAATGAACCTTCTAAGTTTTTAATTTGGTCAATGATTGACTGTTT -TTCTTTAGGTGCACGACCACTAACCTGTAAAATTGCTAAAACAAGTGAGTTAAACTCGTGACCTAATGGA -ATACCTGCAAATGTTACACCTGTTTCTTCGCCAGGACGATTGACTGAGAAACTTGGTGTACGTTTTAAAG -ACTTTTCAGAAAGTGAAAGTCTAGGTGACATATCAGAAATTTCTGTTAATAATTCTTTGAGTTCCTTAGA -TTTATCATCTGAACCAAGGCTGGCAACGAATTCAACGTTGCCCTCCATTAGTTCTAATAGTTGTTTAAGT -TGTTGTTTTAAATCAGCATTAAGCATGGTTGTAATGCCTCCTTAGATTTTACCTACTAAATCTAAACCAG -GTTGCAATGTTTTAGCGCCTTCTTCCCATTTAGCTGGGCATACTTCGCCAGGGTTTTTGCGAACATATTG -AGCTGCTTTGATTTTGTGAGCTAATGTACTAGCGTCACGGCCAATTCCGTCAGCGTTAATTTCAGATGCT -TGTACAACACCGTCTGGGTCGATAATGAATGTACCACGTTGAGCTAAACCAGTAGCTTCATCTAATACAT -CAAAATTACGAGTGATTGTTTGTGATGGGTCACCAATCATAGTGTAAGTGATTTTGCTAATTGCATCTGA -ATGGTCATGCCATGCTTTGTGTACGAAGTGAGTATCAGTTGATACTGAGAATACATTTACGCCTAATTTT -TGTAATTCTTCATATTGGTTTTGTAAGTCTTCTAATTCAGTTGGACAAACGAATGAGAAGTCAGCAGGAT -AGAAGCATACTACGCTCCAAGAACCTTTTAAATCTTCTTGTGTAACTTCTTTAAATTGATCTTTTTTTGG -ATCGAAAGCTTGCGCTGTAAATGGTAAGATTTCTTTGTTAATTAATGACATAAATATCTTCCTCCTAAGA -ATTTAAGTATGAATTAGAACTATCAATTGATTGTGCTTAATTATAATAATTCTAATCTCTTAGTTAGCAT -TATTACATTTTGATCCAGAATAGTCAACTGGATAACTTTGTAAAGTGAATGATTACTTTTAAAATAAAGA -AAGATAATATAAAGTGCTTTGATAATGGATTTTGTAGTCGATGATTTAAAAGGTTGTGTCTATATTTAAT -ATCTTGATTTTAATGTAAAAAATGTAAAAAAAGAAGATTTGTATTCTCAACTAAGTCAACCTTATTGATA -ATGGTGTGAGAATATTTGTTCGAGATGGATGAAGGTAATGCGTGAGAAACTGGATTTTTTAAGTACGAGA -CAATATTTTTGAAAGTTCAATTATTAACTTATAAGCAAATAATTGCTATAAAAAAGTTTGGACGTGTACA -ATTGCAATATGAAGATTTTTAATTAACTGTAAAGTATCGAGGAGTGGTAACGTGTCAGATCATGTATATA -ATCTTGTGAAAAAGCATCATTCTGTTAGAAAATTTAAGAATAAACCTTTAAGTGAAGACGTTGTTAAGAA -ATTGGTAGAAGCTGGACAAAGCGCTTCGACGTCAAGTTTCCTACAAGCATACTCAATTATTGGTATCGAC -GATGAGCAGATTAAAGAAAATTTACGAGAAGTTTCTGGACAACCTTATGTTGTAGAAAATGGCTATTTAT -TCGTCTTTGTTATTGATTATTATCGTCATCATTTAGTTGATCAACATGCTGAAACTGATATGGAAAATGC -ATATGGTTCAACGGAAGGTTTGCTAGTAGGTGCAATCGATGCAGCATTAGTTGCCGAAAATATTGCGGTA -ACTGCTGAAGATATGGGGTATGGCATTGTCTTTTTAGGATCATTGAGAAATGATGTTGCACGAGTTCGAG -AAATTTTAGACTTACCGGACTATGTCTTTCCATTATTTGGTATGGCAGTAGGGGAACCTGCAGAAGATGA -AAATGGCGCAGCCAAACCACGCTTACCATTTGACCATGTCTTCCATCATAATAAGTATCATGCTGATAAG -GAAACACAGTATGCACAAATGGCAGATTACGATCAGACAATCAGCAAGTACTATGATCAACGTACAAACG -GGAATCGCAAAGAAACATGGTCGCAGCAAATTGAGATGTTCCTAGGAAACAAAGCAAGATTAGATATGTT -AGAACAATTGCAAAAATCAGGCTTAATACAGCGATAGCAAGATACCAAAATAACCCGCCCCCTCTAGCTT -AAAATGATAAGTATAGCTAGAAGGGGCGGGTATTTCTTGCAATGAATTAGTGTGAAGTTAATGCAGCATT -ATCATTTGATTCGAAAGTATCTTTGTCCCAATGTTTAGTTAACTTGGCGGTACCTGTACCAGCTAGCATT -GAATCGTTCACGTTTAATGCTGTTCTACCCATGTCAATCAATGGTTCAACGGAGATGAGCACGCCGGCTA -AAGCGACTGGCAAGTTTAACGTTGACAACACCAATATGGATGCAAATGTAGCCCCGCCACCGACGCCAGC -AACGCCGAATGAACTAATAATCACGACAGCGATTAACGTTACAATAAATTGTAAATCAATTTCTACATTA -GCGACGGGTGCGACCATAATTGCAAGCATGGCAGGATAAATGCCAGCACAACCATTTTGTCCAATCGACA -ATCCAAATGTCGCAGCGAAATTGGCAATACCCTCCGGCACGCCTAGACGTCTTGTTTGTGTTTGTACATT -CAGTGGTAAGGTACCCGCGCTTGAGCGTGATGTGAATGCAAAGATTAATACTTCCAAAGTCTTTTTAATA -TAGCGAATAGGGCTAATGCCTAACAGGCTTAAAATAATTAAGTGAATGATATACATCGTAATTAATGCAG -CGTACGATGCGATTAAGAATTTTCCTAAAGTCCAAATGGCGCCAAAGTCACTTGTCGATAACGTGTTGGC -CATAATTGCTAATACACCGTATGGCGTTAAACGTAAGACGAACGTCACAATCGCCATTACTAGTGAATAG -ATAGCGTCAATCGCACGCTTAAGCAATTCACCATGATCAGGTTGTTTGCGTGCTACGCGTAAATAAGCAA -ATCCTATAAACGAAGCAAATATCACAACAGCAATCGTGGAAGTTGCACGTTGTCCAGTGAAATCTAAGAA -TGGATTTTTAGGCAATAATTCCAAAATTTGTTGTGGTAACGTATGTGCTGTTAAATCTTTCGCTTGTTTA -GCAATTTCGCTTCCACGTGCTTGTTCAGCGTTACCAAGATTAATTGTTGATGCGTCTAAACCAAACATCA -AGGCATACACAACACCGACAATTGCAGCAATGGTGACAGTGCCGATTAAAAAGATAAAAATGAGACTACC -AATTTTAGCAAATTTTTCTCCGATTTGAATTTTAGTGAATGCAGCGACAATAGAAATGAAAATTAAAGGC -ATCACAATCATTTGCAACAATGCAACGTAACCTTGTCCGACAATGTTGAACCAGTCACTTGTTGATGTTA -TAACATTCGAATGTGTTCCATAGACAAGATGTAGTAACACGCCAAATACAATGCCGATACCTAAAGCTGT -AAACACACGTTTCGCAAAAGATATATGTTTACGAGCCATCATGTGCAATATTACGATGAAAATCACCAAT -ACAATAATATTAATCAGTGTAAGAAAAGCATTCATGAACGTCACTCCTCAAATTTTTGAATATAATTCCG -ACCAGTATACTAAGAATAATATTAATTTTAAATTATTTCAAGAGGGCATTTGCAATTAAATGTAAACATG -ATGAAATTCGACCGTTGGCATAAGGGGATTTGTAAACAAATCGTTTTGAATTCAGTAGTGATAGGTGGAA -AGGGTAAATAGTGTGATGAGCTAGTCGATTAAAGTTAATATTTGAAAATGAAGCAGGGCATTAAATGCAA -TAAATTAAATAAGTTGTCATTACAGCGTTAATAATAGAAATGATTTTAACAGGAAAAAAGTGATGAATAT -TTGGAAAAGATATATATCGTGTACTGTCATGAGAGATAAGATATGAGAAAACAAATGTATCCTTGAATCG -AGATGTGGCTATGGCGGTTTGATAAAAATTGCTAACCTCATATTTATTGAATAAAAAAGATAATAAATGA -TCAACCTTGAAAAGACGCTTCGAACAAACACGTTGTAAAAAATTCTTTCGAATCAAAATTAGCATCTTTT -GAGGATTCGTGTGTGCAGGTGGTAGTTCAAAAGCTACCGTAAACAAATATTTTTGTTTGAGCAAAAAGGC -GTTTGTAGTAAATGTGAATATGAGTGTGCCCTTGTGCGATTCGTCATTTACTAACACAGCCAAACATTTA -AATTGAATGGGCTTATTAAGATGAATCTATTTAGAAGTACACAGAAGCCATCCCATTTAAAAGTAACATA -CTACAAAAATTTATTCAAAATTCAATATTAATCATAATGAATAATTAAAAAACCTGAAACAAATTAGTTT -GATATGCTCTCTTCAAAGTAGATATTGAAAGGAGTTTATCAGATTGTTTCAGGTTTTATGAATTGAGTAT -TAAATTTGAAAATAAATTACAGTTCTATAGTTTTATAAAAGATCAGTTTTTAAATCATAGATATATATTA -CTGAGTCTTACAGGCTGGGACATAAATCAATGTTCTATGCTCTACGAAGTTATATTGGCAGTAGTTGACT -GAACGAAAATGCGCTTGTAACAAGCTTTTTTCAATTCTAGTCAACCTTGCCGGGGTGGGACGACGAAATA -AATTTTGCGAAAATATCATTTCTGTCCCACTCCCTACAGGTTGAATAAACGTGCGAAGAAACCTTTTTTC -TCTTCTTGAGGTTTTGGTTCTGACATTTCAGACTGTGAAGCTGTGCTGTCATTTTCTGCTTTCGCTTCCA -ATGAATCGTTCGAAGTAGCTTGTTTAGAAGCTTCTGCATGGGCTTCTGCTACTTGTTGTTCAGCATCATG -TTGCGCTTCTGCATCTACTGTAGCTTCTTTATTTGAAGTCTCAGCTGCTTTGTCATTTTTAGGCTGCTCA -ACGCTGGCTTTTTCAATTGCTTCAGTTGCAGAAATTTGATCCTCTTTATCTACTTTAGTAGCAGTGCCAT -CGCCTGCATTTTCTGCTTTAGTATCCGTCTTAGCGTCTGTTGATGTATTCACTCCAGCAACCTTCGAATC -TTTACTTTCAGCCTTTTCATCAGTAGCAGTATTATTTTCAACTTTATTTGATGATTCAGCCAATACTTTA -GCTTGAGATGCTTGTGCTTCTTGGATAGCCTCTTGTGATGTTTGGATGGCTTTTAAGGATTCGCTATTTG -AATCGATTTTAGTTGTAAGTTGATTTTGAAGTTCTTTTAATTCTTGTTGTTGCTGATGTACTTGATTCAT -CATTTGACCAAGTAGGTGACGTTCTTCGCGCATTTTCTGGATTTCTAGACGCAAATCTTCTACTAGTTGA -GCAACATTTTGATTAGTAGGTAAGTTTTTGTCATCGTTTTTGACAATGACTTGCAGGAAGTCTTTTTCTT -TTTCTAATTCATCAAACGCTAGATCATAACTATTTGTTTGTTTTACTTTGTCGGCTATGTCTTTGAAAAG -CTCGATATCTTCTTCTTTGAAATCAGTTGCTTCACGACCACGATATTCAGTCTTGCTTAGTTGGTAACCA -CGTTCTTCTAAATGTTGAACAATTTTACGGACTTGCTTCTCACTTAGTTCTACGCGTTGTGCAAATTCTT -TAGTTAACATACTTTAAAGTCCTTTCTGCATATACTTTATGTATACTGACGTTTGTCTACGGGCAGTGAA -ACGTCAGTCTTGCTTCATACATAGTTTAAACGTTATTGTTAGTGATTTCAAGTTTGTTTAAAATGGTTTA -CGTAAATCCATTTCTTCTAATAAATCATAAATAATTTCACGTGCGATACCATTTGCAAATACATACTTCA -AAATATAATTTGATTTAACACTTGTACCGTAGATATCCTTTGTCAGTTTAATATTTTTCTTTAAAAATAA -GTCCACTTTTTTAGTGTGACCATCATTAGTTGGATGAATGTAATCAATTTCAGTTTGTCTTTCAAATTGA -TGTTCGTATAAAAACTGTCTACGGTGTTCAATAATGAGCCCATTATCTTGTGTTAAATCTGCAGGTTCTT -TAGGGACTTCCATCATTAAAAAGTTAATACTTCTAGAATGAACAAGGTTTGATAATAAGTTTAATTCATG -TTCAATTTGATGTAATGTTTGTGTCATTAACTCATCATGGTTGGGTAGGTCTTTTGCAAATAAATAAATT -AAAAATGCAGAATTGGTTGTGGCTTCATAATGTGCAGTTGCTAGACTGACAACAACATCGTTTTCTAAGC -CTACGATAAAGACATAATCGTTTTCAGTTTTGTTGTTTTCTAATGAGCGTTTGATGATACGTTTATCTTC -AGTTAAAGATAAATTTAACTTAGTATCGTAAAGTTTAAGTGCTTCGTTGTAATGTGGATCTTTGACAGAT -TGAATGGTTTTAAATTCCATAAGAACACCTCCCCAATTTAAATAATATTATAGCATAATCGCCTGTTGTA -AAAGACTGTTCATAAACTTTTAAATGGTATAAAAAACTGTACTATCTTAAATTAGACAGTACAGTAATCT -CATTTTGAATTCAGTGTGATAACTAAGCTTTGGGACCTTTAGATGCTTCAGCAAAATGTGTAATATCAAC -TTCTTCATAAGCTGAATTATTTTCTAGTACTTCTTGGTGAGATGAATGATCGCGAACGCCAACAACTAAC -ATTTTATCGTCTAAAATAAGTTGTTTATATTTTTCTAATTCATCAGGCGCTAAGTTGTAGCGTGATAAAA -CTGCATGTTCACCATCTTCTCCTGTTAACAGTTTAGTCATTTTATCACTAAATGTTCCACTTGTTGAGAT -AAGGGAGATTTCAGAGTCGTGTAAGTCATTTAGGTGTAATTTACTTTTACTAATAATTGTTAGCTCTGAT -TCTAAATAACCTTCAGATTTCTTTTGATTGATTACGTTGTATAATTCGCCAGTGTCATTTACTACAGTAA -TATCTGCCATAGTTGTCGCCCCTTTAAAAATTTGTTTATTCAATCTTTTACCCTTCTTATTATAAAGTAA -AACCCTTACATTATTAAGTTATAAGTCTTCATTCGCATTAAACGTCTCTGTACATTTATAAAACTATTAA -AAGTTTACCTAAGCAGTTATTGAAAAAATGCCGAAAATTTGCTATTATCGTTAAATAATTTACATAAACT -CATATAATCTAAAGAATATGGCTTTAGAAGTTTCTACCATGTTGCCTTGAACGACATGACTATGAGTAAC -AACACAATACTAGGAGTAGCTTCAGCCATTAAATTGTAACCATGATGGGTGATTTATATCATTTTATATG -ATGGTCACAGTTTATTTGATGAAACTTCTTTTACATTGATTGCATGACCAATACGTGATGCATGTTCGTT -CACTCATAAACCCTGAAACTATTATTTAGTTTGGGGATTTTTTTGTATCTAGCACCAATTTAAGAGCAAA -ATGTTTCACACAAATCTGAGGAGGTTTTAAGAGTGGAGTTACTAGGACAAAAAGTAAAGGAAGACGGCGT -TGTCATTGATGAGAGGATTTTAAAAGTCGATGGATTTTTAAATCATCAAATTGATGCAAAGTTAATGGAT -GAAGTTGGTCGCACTTTTTACGAGCAATTTAAAGATAAAGGGATTACTAAAATCTTAACCATTGAAGCTT -CCGGTATCGCACCAGCAATCATGGCTGCACTGCATTTTGATGTGCCATGTTTATTTGCGAAAAAAGCAAA -ACCTAGCACTTTGACGGATGGTTATTATGAAACATCTATTCATTCATTTACTAAAAATAAAACAAGTACG -GTCATTGTTTCAAAAGAATTTTTATCAGAAGAAGATACTGTACTCATCATCGATGACTTTTTAGCAAATG -GTGATGCTTCATTAGGATTATACGATATCGCACAGCAAGCGAATGCTAAGACAGCTGGTATTGGTATAGT -TGTTGAAAAGAGTTTCCAAAATGGGCATCAACGTTTAGAAGAAGCAGGCTTAACAGTTTCTTCTCTCTGC -AAGGTTGCTTCACTAGAAGGAAATAAAGTGACATTGGTGGGAGAAGAATAATGAAAAATTTAATCCTAAG -TGTTCAACATCTTTTAGCTATGTACGCAGGTGCCATCTTAGTTCCAATCATTGTTGGTACAAGTTTGAAG -TTTACGCCTGAACAAATCGCTTACTTAGTTACAGTAGATATATTTATGTGTGGAGTTGCCACATTTTTAC -AAGCCAATAAAGTAACAGGAACAGGATTACCAATCGTTCTTGGATGTACATTCACGGCTGTTGCGCCCAT -GATTTTAATTGGTCAAACGAAAGGAATAGATGTACTTTACGGTTCGCTATTTTTATCAGGGATATTAGTT -ATTATCATCGCGCCTTTCTTTTCACATCTTGTGAAATTCTTCCCACCAGTAGTAACGGGTAGTGTTGTTA -CTATCATTGGTATCAATTTAATGCCAGTAGCAATGAATTACTTAGCTGGAGGTCAAGGTGCAAAGGACTA -TGGAGATGTTAAGAACATTTTGTTAGGTTTAATGACATTAATCATTATTCTTGTTTTACAAAGATTCACA -ACTGGATTTATTAAGAGTATTGCCATATTAATTGGACTCGTTTTAGGAACGATAGGTGCTGGCTTACTTG -GGATGGTCGATATTAATCAAGTCAATCATGCCGGTTGGTTAGGCATCCCAGTGCCGTTTAAATTCTCAGG -ATTTAGCTTTGATGTGACATCGACGTTAGTGTTCTTTATTGTAGCTATCGTTAGTTTAATTGAGTCGACA -GGTGTCTATCATGCGTTAAGTGAAATTACCGGTAAGAAGTTAGAAAGAAAAGATTTTCGTAAAGGTTATA -CTGCGGAAGGTCTAGCGATAGTGTTAGGTTCTATATTCAATTCATTTCCGTATACAGCCTATTCGCAAAA -TGTAGGACTTGTTTCTTTATCCGGCGCTAAGAAAAACAATGTTATATACGGCATGGTCGTGTTATTACTT -ATATGTGGTTGTATACCTAAGCTTGGCGCATTAGCAAATATCATACCGCTACCTGTGTTAGGTGGTGCGA -TGATAGCTATGTTTGGCATGGTAATGGCATATGGTGTTAGTATATTAGGACATATCGATTTTAAAAATCA -AAACAATTTATTAATTATCGCTGTATCAGTAGGATTAGGTACTGGTATAAGCGCTGTACCACAAGCATTT -AAAGGTTTAGGTGAACAATTTGCATGGTTGACCCAAAACGGAATTGTTTTAGGCGCAATCTCTGCAATTA -TTCTTAATTTCTTTTTTAATGGAATAAAGTATAAACAAACGGAAGAAAATGTGAAATAATATAACTAATT -AATTTGAAAAATGGAGGCTGTTTTTAATGTGGGAAAGTAAATTTGCAAAAGAATCATTAACGTTTGATGA -TGTGTTATTAATTCCAGCACAATCTGATATTTTACCGAAAGACGTTGATTTAAGCGTACAATTATCAGAC -AAAGTTAAATTAAATATTCCAGTTATTTCTGCTGGTATGGATACTGTAACTGAATCTAAAATGGCGATTG -CTATGGCTCGTCAAGGTGGTTTAGGTGTTATTCATAAAAATATGGGCGTTGAAGAACAAGCGGACGAAGT -TCAAAAAGTAAAACGCTCAGAAAATGGTGTCATTTCAAACCCATTTTTCTTAACACCAGAAGAAAGTGTT -TATGAAGCGGAAGCATTAATGGGTAAATACCGTATTTCAGGTGTACCAATTGTTGATAATAAAGAAGATC -GCAACTTAGTAGGTATTTTAACAAACCGCGACTTACGTTTTATTGAAGACTTCTCAATTAAAATTGTAGA -TGTAATGACGCAAGAAAATTTAATTACAGCTCCAGTGAATACAACACTTGAAGAAGCAGAAAAAATTCTC -CAAAAACATAAGATTGAAAAGTTACCATTAGTTAAAGACGGGCGTCTAGAAGGTCTTATTACTATTAAAG -ATATTGAAAAAGTTATCGAATTCCCTAATGCAGCAAAAGATGAACATGGTCGTCTACTTGTAGCCGCAGC -AATCGGTATTTCAAAAGACACTGATATTCGTGCTCAAAAATTAGTCGAAGCAGGTGTGGATGTCTTAGTT -ATCGATACAGCACATGGTCACTCTAAAGGCGTTATCGATCAAGTGAAACATATTAAGAAGACTTACCCAG -AAATCACATTAGTAGCAGGTAACGTAGCAACTGCAGAAGCAACAAAGGATTTATTTGAAGCGGGTGCAGA -TATTGTTAAAGTTGGTATTGGCCCAGGTTCAATTTGTACGACACGTGTTGTAGCAGGTGTTGGTGTACCA -CAAATTACAGCAATTTATGATTGTGCAACTGAAGCACGCAAACATGGTAAAGCTATCATTGCTGATGGTG -GTATTAAATTCTCAGGAGATATCATTAAAGCATTAGCTGCTGGTGGACATGCGGTTATGTTAGGTAGCTT -ATTAGCAGGTACTGAAGAAAGCCCAGGCGCAACAGAAATTTTCCAAGGTAGACAATATAAAGTATACCGC -GGTATGGGCTCTTTAGGTGCGATGGAAAAAGGTTCAAACGACCGTTACTTCCAAGAGGACAAAGCGCCTA -AGAAATTTGTACCTGAAGGTATCGAAGGACGTACAGCATATAAAGGTGCGTTACAAGATACAATTTACCA -ATTAATGGGCGGTGTGCGTGCTGGTATGGGTTATACTGGTTCACACGATTTAAGAGAATTACGCGAAGAA -GCACAATTCACACGTATGGGCCCTGCTGGTTTAGCAGAAAGTCACCCACATAATATTCAAATTACGAAAG -AATCACCGAACTACTCATTCTAATTAAGATAAAGGAGAACGACAAATATGGAAATGGCAAAAGAACAAGA -GTTAATCCTTGTCTTAGACTTTGGTAGCCAATACAACCAATTAATTACACGCCGAATTCGTGAAATGGGC -GTTTATAGTGAATTACACGATCATGAAATTTCAATTGAAGAAATTAAGAAAATGAATCCAAAAGGTATCA -TCTTATCAGGTGGTCCAAATTCAGTTTATGAAGAAGGTTCATTTACAATTGATCCGGAAATATATAATTT -AGGAATTCCAGTACTTGGTATTTGTTACGGCATGCAATTAACTACTAAATTATTAGGTGGTAAAGTTGAA -CGTGCCAATGAACGTGAATACGGTAAAGCAATCATTAATGCGAAGTCAGATGAGTTATTCGCTGGCTTAC -CAGCAGAACAAACTGTTTGGATGAGTCATTCTGATAAAGTTATTGAAATTCCAGAAGGCTTTGAAGTTAT -CGCTGATAGTCCAAGTACAGACTATGCAGCAATCGAAGATAAGAAACGTCGCATTTATGGTGTTCAATTC -CATCCAGAAGTACGTCATACAGAATATGGTAATGATTTATTAAATAATTTTGTCCGTCGTGTTTGTGATT -GTAAAGGTCAATGGACAATGGAAAACTTTATCGAAATCGAAATTGAAAAGATTCGTCAACGCGTAGGAGA -CCGTCGTGTATTATGTGCGATGAGTGGCGGCGTAGATTCATCTGTTGTAGCTGTACTATTGCATAAAGCA -ATAGGTGATCAACTAACATGTATCTTTGTAGACCATGGCTTACTTCGTAAAGGTGAAGGCGATATGGTTA -TGGAGCAATTCGGTGAAGGTTTCAACATGAATATTATCCGTGTTAATGCGAAAGATCGCTTTATGAATAA -ATTAAAAGGTGTTTCAGATCCTGAACAAAAACGTAAAATCATTGGTAATGAATTTGTATATGTGTTTGAT -GATGAAGCATCAAAACTTAAAGGTGTAGACTTCCTTGCGCAAGGAACACTATATACAGACGTCATCGAAT -CAGGTACTAAGACAGCACAAACAATCAAATCACATCACAATGTTGGTGGATTACCAGAAGACATGGAATT -CGAATTAATCGAACCAATCAATACATTGTTTAAAGATGAAGTACGTAAATTAGGTATTGAGTTAGGTATT -CCAGAACATTTAGTATGGCGACAACCATTCCCAGGACCTGGTCTTGGTATTCGTGTACTTGGAGAAATTA -CTGAAGATAAACTAGAAATCGTAAGAGAATCAGACGCGATTTTACGCCAAGTGATTAGAGAAGAAGGTCT -TGAAAGAGAAATTTGGCAATACTTCACAGTGTTACCAAACATTCAATCAGTAGGTGTTATGGGAGACTAC -CGTACGTATGATCACACAGTAGGTATCCGTGCAGTAACATCTATCGACGGCATGACAAGTGACTTCGCAC -GCATCGATTGGGAAGTCTTACAAAAGATTTCTAGTCGTATCGTAAACGAAGTAGATCACGTCAACCGCGT -AGTCTATGACATTACATCAAAACCACCAAGCACAATTGAGTGGGAATAATTATATATAGCAGGCTGGGAC -ATAAATCAATGTTCTATGCTCTACGAAGTTATATTGGCAGTAGTTGACTGAACGAAAATGCACTTGTAAC -AAGCTTTTTTCAATTCTAGTCAGGGACCCCAACAAAGAGAAATTGGATTTCCAATTTCTACAGACAATGC -AAGTTGGGGTGTGGGCCCTAACACAGAAAATTCATTTTATTGAATTTTACATTTATGTGCAAGTTGGGCA -AAGTGTCTTATTTTTTCAAAGTATTTAAAAGTAAAATTACATGTTAATACGTAGTATTAATGGCGAGACT -CCTGAGGGAGCAGTGCCAGTCGAAGACCGAGGCTGAGACGGCACCCTAGGAAAGCGAAGCCATTCAATAC -GAAGTATTGTATAAATAGAGAACAGCAGTAAGATATTTTCTAATTGAAAATTATCTTACTGCTGTTTTTT -AGGGATTTATGTCCCAGCCTCTTGATGATTTAAAATTACAATAAGGACGGAAAAGGGGTAAGGTGTTCTA -AGTTTGCGTTTTAATTCATCAATAAGGCAATTTTCCGTGTTTATTTTTATATAAAATTTCATATTGTTTA -GGATCTTCTTGTTTTAAATCATAAATTATAGTTTCGTCTACTATTTTTTCTAATTCAAGTGTATTAAAGC -TCCAGTCATTTGTTGTTATTATAAATATTTTTTGGACTGGGTTGTTATTTATATGATTAATTAGCCTAGG -AGTATCTGTTTCTATTATTAGAGCAGATTCTACAGGATAGTAAATAGCAAAGTCTCCGTGATAAATTGTG -TTTCTTTCATAGAGGTTAACCTCTAAGGTTAAATTACTCAATTTGAAGATTGTGTTTTGAGTTATATTTT -TAGGAATAATTCGATTATCTACTATTTGTTTTAGGTTGCCTATTGAACGAGTGTGTATCGTCCCTTTTGT -GTAATCGGAATTATTTAAAGCTCTTAAAACAGTTGTTAATTTATACTCGTTAATATAACCCTTTACTAAA -GCCATCCGTTTATCGCTACCTATAAAATCTTTCAGTTTTTTGTTGAATTCATTTTTGTTGTGCATAATAT -TTTATCCTTTCCATTAGTTGATTGTTTTCATTTGTTCAAATCTCTATCCATTTACTCGGTTACAGGGCTG -TGTATTTGCAGAGTAATATTATGATTGGAATAACCAACGCGTTCCGTATTCGTTTTGAGTGACGCAGCTA -GCTACGATAATAGTGACATGTGGCTTATAACACATTGTGTAATTTATTGTGTGTTTTGTGATGTCTATAT -TGGTTGCAGATTGTTGTATATTTCACTTAAAGGGCATTTATATAAAAAAAGAGGCCAGATGACGTATCAT -CTGACCTTCAGCTAAAACGCTGAGAATATGTCATTCTTCAAGAGAATGAAGCCGGAATGGTTACCGGGAA -TTTGTAAACCAATTATATCAGATGTAATATTACAATTCAATTAGAAAAGAACTTTATCTTTAATTGCTTT -TCGATTTCATTCATGTCATCTTCTGAAATTATTATCGTTCCAGTAGGATCAGAATCATTTATTTTGCTTA -TACGTCTTTTGCTTATTGTTGTAATTGCTGATATATTAACGTATGTATCTTTCCCTTTGTGCTTGGAATA -AACACCTATCACTCTATACAGTTCATTAGCTTTTTGATTTAAGTTAGACAAAAGCTTTTTATCTTCTGTG -CTAAGTTTAATGTCAATATCTCTATATTTTTGGGCTAATGCTTGTACTTTACTACTGATATCGATAATCT -GTTTTTTTTAAATCTGTTGTTGTTAGATTTAGCACCGATTCGTTTAACTTCAAATAATTTTTATTACCTT -TGGAAGAAAGTGGAACTATTGTAACTGTTTCTTTTCCTTTATTGTCTTTGTTATCTAATATTACACAAAA -ATGATTACCAGAAAACTCACTTCCAATATTACTCCCTAGTTTTACATATACCACTGTTCCTCTACTATAT -GATTTATAATATCTTTTTTTATTGCTTGTAACATCGCTATGTATAGCAATTGAATAAAACTCTAGCCAAT -GAGGCATGTATATAACTTTCAAGTTTTTACTATCGGATTTTGAATAAGCTTGTTTTAGTTTTTTGTTTGA -CGTATTTAATTTACTATTTGCTTGATTGATATTTTTAGACATTAAATAGTGTTCTCCTAATCAATTTATT -CTTCTTTATATCAGCATTATTAGCACTGAAATTAACATGAATGGTACGAAAATAGATGTTACTATAAAAC -CAACAATTTTATTAGGTGGAACTCATCAATTTTGTATTTAACAAATTTCGCAATGACCTCCTATTTATCC -GCTTTTTATAGTTCATGTATGTGTAAAAAAGCCTATATTGAACATCTAATTATAAACGAATTCCTAATGC -TAAAAGCAATCTAACTTACTTAAATATTATTATGAGTTTTTATTGAAATTAAATAAATTTAAACTATTTT -TTAGTCTCTCCATATCGTTGGAAGTTGGTTCTTTATATAATCAGATAAATTAGAATCTTCAAGTAATGTG -TCTTTAAAAAGTTCAGTTTCTAAATCAACTCTAATATTTGAAGTTAGAAAATTTTTTATTTCATAAATAG -TTTCACAATCAATTTTGTTGCTGCCATATATATACACTATATTTAATTAAATCATTTAGTACATTTAAAA -GAATTTGATGAACTTATACAAAAGTTTCAAGAAATAGAAAAAATATCTTCTGATATAAGTTTTGCGACCG -AATTAAATGACGCACAAAAATTGTTATATTAGAGGCACAAAAAATGGATGAAATTAAATTAAAATGCGAT -ATACATGTTTCAGTGGTGTTGCTGTGTATGGTGATATTAAAGTCTGTGAAAATAATCATGGCGAATTAAT -CAAAAAGCACTGCAATTATAAAAATATTATATATATGTAATTGTATTTTATTATGATGAAGTAAATGATT -TAAAGCAGATACATGATGCGTTCAGATCAGTTTAAAGCAGTGTTGCATAGTTTTCGCACACTATAATACA -TTCAATCATACAATTGAAACGTATAGAGTGTTTTTGTAGATACCGTTGAATAAGAAGATAAACGTAAAAG -ATTATCGTAAATATAAAAAACTTTAGTAAATAAAATTGTTCATAAAGTGGATGAAGGTTTATATCAGTCA -AGTAGATTTACATTACAAGTTATTCAAAAGTACATATATTTGTTAAGGGAGTGAACGATTATCCAATTCA -GCATGTTTTTTGCTCTTATTATTCCTTTTTATTGATTCATAATAAGTACTTCTAAGACTTTGCACATTAA -TGGATATTGAATATTGATACGCATTCTGTTAAATGATTTCTATTTCGTCTCGTGATTAGCAATATTTGCT -TTAAAACATCATTTTCCATTTTTAAATGTTGAACTTCTTTGCGTAATTTTATTAACTCTTTTTCATCACT -TTTTAAATTATCTTGATGATTGAAGGACCCAGTATTTTGGTGTTGTTTTATCGGATTTGAGAAAGTTGAG -GTTGTTAAATCATACTCGCGTATAATTTCATTTTTAGGCTTACCATTTTCATATAATCTAACCTTTTGTA -ACTTAAACTCTGAACTAAATGATCTTCTTTCTCTTGTCGTAATAAAATAGCCTACTTTCTTAAATTAACA -ATATCTATTCTCATAGAATTTGTTCAATTAAGTGTAGACGATTCACTGACACATCATAAGTACGTTAGGA -ATTTTGATCGTTCATTGTTATTGCTTTATGTTTTAGGAAATGTGCTATTGAAGGGTTTAAAGATGTTTGG -AATTTCTTGGTTTCTTGACTTATATAGTTATGAAAGAGGGCGTTGTCCTTTATTAAATTTCTGAGATCAG -AAATGCTATAAATAAAGTGATTAAGATTTTTTGTTTTCATGTAATTTAAGAAATGGATTTGTTTTTTGTG -GGTTATTTTTAATTCTGTTCTGAAATGGTTTGAATTTTGCAGTTGCAAATATGGTAGCTGCATCTTTTGA -CAAAGTAATAGAACCTTTTTCTTCTGGTACCATGATATTCACTCCTTGTACAATTTGATTTAAAGTTTAT -AAAATAATTTTACTATGTATAATAATTTGTGTAAATAGTTTCTTATTGTTACCGAATAATTTGTTTGGAA -GCGTTATGTAATGCCAATCAACACCAAAGTCCTCATGTCCTCATTCCTTTTGCGACTACATATATTGTTA -ATAATATTGAAATTATAAACTGATAGTGATAATTTAGTTAACTGACCCATGAGAGTAGGAACCCCACCAT -ACGGGAATTTCGAAATCATGGGTTTTTTGTTTTAAAGGATTGATGCAATAGATAAAGTAGCCATTCTAAT -ATATGGAGTATTTATCAACTAAAAATTAAAACAGATATGAATTTTCTTCATTAAATAATTTTTCTATAAG -GAAACAGAGGCAACGCTACTGTCACCTCTGCTTGAAATAATTAGGTTGAAATACTCTGAGTCTAAAGTCC -ATACCCAAATCGCTCAAATCCTCCAAACCTCCGACTACATCTCCAAACCCCAAAACACCAATACTTACCA -AAGCATTGATATAAGTGCCAATACTGGCAATGTGCCTTGTTTGAAAAAGATACTAATATTGCTTGAAAGG -CCACCATAAATAGCAACGCCAATGATATACACTAAAATAGCTGCGCATATTTCTTTTGGATTACTGCTGA -TAAATAAACCGTATATTAGCAAAACTCCGATTAAACCATTATATACGCCTTGATTCTTCAAAAGTACGTT -AATATTTTTGTCTTTCAATTTATCGACGCTTATATTAAATGTCTCGCTGGTCTTTCTGGAAGTTGTAGCA -ATCGTTTCAAGGTACATAATATAGAAAAATTCTAATGCCACAAATATGATTAAAATTGTCGAGATGATAT -TCACTGTAACGCTCCTTTAGTATTAAATATTTTCTTGTAAAAATGATTGCAGTGTCTGTGGTTGATCATT -GACTAATTGTTGGAATTCATTGGATTCTTGGTCTAATAGTCCTCTTGCTCCTGCGTCGTACATTGATGCC -AATAATGCACCAAAGCCTTTAGGTTCATCGTACATTTCTGCAAATGTCTCTAATGAAACGGGTTCATATT -TAATTTCTGTGCCTGATGCCTCAGATAAAATTGCAGCAAGTTCCTTCATATCATAACTGTAGCCTGATAA -TAAATAACGTTTGCCCCAAGTATCTGGATTTTTAATAATAGCAATGACACCTCTAGCAATATCATTTCTA -GTAATATAATTAATACGACCATCACCAGCTGGATAAATCAGTTTATGCATATTCATCAATTCTGGTAAAT -ATGGTTTAAGTGGATCCATGTACATCGCCATTCTTACATACGTATAATCAATGCCACTTGTTGCCAATAA -ACGTGATGCATATCCGAAATAAGGGCTCATATGGAATGGATTATTATGCTGATCTGCGTAATAACCTATG -AAAATGATATGAGCAACGCCACTTTGCTTTGCGGCATATACTAAATTTTCCACTTCAGGAATACGTTTAA -ATGATGGATGGATAATACTTGGAATAAACACAACGGTGTCGATGCCTTTAAATGCTTTTACCATGCTTTC -TTGATTAAAATAATCTAATTGTCGAACAGAAACTTTTCCGCGCCAATCTTCTGGAACTTTCTCAACATTT -CTAACACCAATGTGAAAATGATCTATGTGATTTGCAATGGCTTGATTTGTAATATGTGTGCCTAAATGAC -CTGTAGCACCTGTTAACATAATATTCATTCACTTCATCTCCTAATCTTTATATACATAACATAATACTTA -TTCGATGATTTTCAAAACATTTGATTTTATAAAAAATTGCAATCTGTATTTATTGTCGCCGTGTATAGTA -AATACGCATATGTTATTAATGTTAAAAATACCGTAATGACGCGTTTTAGTTGATGCGTGTCACCATGATC -TTTGAAAATTTTGACATGGTACTGCGACGATATGATGTCATTTTTGTGTCTGAAAGTTTTACAGTTTTTA -AAATTAAAATGGTTTAAAGTGTGAATTGTATAAAAAAGAGTCTTGACGGATAAGAATTGATTATTAACAG -TTAGCATTTTATTAATTACCTTAACAATGATTCAAGTTTAGTTAAATGAGGTTTAATTTGAAAGGGAATA -GCGCCTCAATATAATGTAGGTAGATTGTTCATATTACGTAATTGAAAAATCAAATTTAAATAGATTGGGG -CTAAAAATTATGAAATTTAAAGCGATAGCAAAAGCAAGTTTAGCATTGGGAATGTTAGCAACAGGTGTAA -TAACGTCGAATATACAATCAGTACAAGCGAAAACAGAAGTTAAACAACAAAGTGAGGCTGATTTAAAACT -TTATTATAATGGACCAAGTTTTGAATATAAAAAAGTAACTGGATATGGATTTATTGAAGGTAAAGATAGA -TTCATTGATTTTATATACAATGGACAATATAATAAAATATCTTTAGTTGGTTCTGATAAAGATAAATATA -ATGAAGAAGTTAACCCAGATATAGATGTGTTTGTCGTTAGAGAAGGAAACGGTAGACAAGCTGATAATCA -TTCGATTGGTGGCGTAACAAAAACTAATAGAGGAGTGTATTACGACTATATACACTCTCCAATCCTTGAA -ATTAAGAAAGGTAATGAAGAACCACAAAATAGTCTGTATCAAATTTATAAAGAAAATATCTCATTAAAAG -AACTTGATTATAGATTACGAGAACGTGCAATCAAACAACACGGATTGTATTCAAATGGTCTTAAACAAGG -TCAAATTACAATTACTATGAAAGATGGCAAATCACATACTATCGATTTAAGTCAAAAACTTGAAAAAGAA -CGTATGGGTGATTCTATCGACGGCAGACAAATACAAAAAATTCTAGTAGAAATGAAATAATACTTTCTAA -CGACAAAGCGCTATGTTGAATCGTGCTTGTTATGGAAATATATGGAAGTTAAGCGACGTACTGTTGCTTA -GCTTCTTTTTTGAGGGCAAAGTTACAAAACTCACACAAACAGTCGCAGCACGCATTATCTTTTACTTAAC -TAGCTTAATCATATTTTATGAATAGTTAAAAAAGGGTTAATGTGAATATCAGCATACAGCTCCTATAATA -TGGTTGTATGATTCAATTTACGTAATAAAACAATCTAATCTAATATATTGGAGCATACAATTATGAAAAT -GAAATCAATTGCAAAAGTAAGTTTAGTGTTGGGTATTTTAGCTACAGGTGTAAATACTGTAACGGAACAA -CCGGTGCATGCCGAAAATAAACATGTTCAAGTAAGCCAAAATAGTAAAAATTTAAAAGCGTACTATACTC -AACCTAGTGTTGAATATAAAAATGTGACAGGTTATATCAGTAGTATTCAACCTAAACCAGGCACTAAATT -TTTGAATATGATAGAAGGTAATACAGTTAATAATCTAGCTTTAGTTGGCAAAGATAAGGAACACTATCAT -ACGGGTGTACATCGCAACCTTGATATATTTTATGTTAATGAGGATAAGAGATTTGAAGGTGCAAAGTACT -CGATTGGTGGTATCACAAAAGCAAGCGATAAAGTTGTCGACCAAGTAGCAGAAGCAAGAGTCATTAAAGA -AGATCACACTGGTGAATATGATTATGACTTTTTCCCATTTAAAATAGATAAAGAAGCAATGACATTAAAA -GAGGTTGATTTTAAAATAAGAAAACATCTTATTGATCATTATGGTCTTTATGGTGAAATGAGTTCAGGAA -CAGTTACTGTCCAAATGAAATACTATGGCAAGTATACAATTGAATTGGATAAAAAGTTACAAGAAGACCG -AATGGCCGATATCGTCAAAGTCATAGATATTGATAGGATTGAAGTCAAAGTTAAAAAAGCATAATGCTTA -GACTGGTCGTCGTAATGAATTGAAATTGCAATAGTGAGGTTAAGTGATGATAAAACGTTACTTAACTTCT -TTTTTATGTCTTAAAATCATTTCAAAGATACATAGTAACACCACATAAACCTCGAAAGTACTCATTATTT -TTTGCTTAAATGACTTAATAATATTTCAACAATTGTTAAACGAGGGTTAATGTGAATAGACCAATATGTC -CTCTATAATGAAGTTGTATGATTCTAATTACGTAAAGAACAATCGAATAATTACGATTGGAGCATACAAC -TATGAAAATAAGAACAATTGCGAAAGCGAGTATAGCGTTAGGGCTTGTAACAACAGGTGCAAGTATAGTA -ACAACGCAATCGGCCAATGCAGAAGTAGCATCAGCACTTAAAGCAGGACAGTTAGCAAAGATAAACGTAT -CAACAAGCGCAATCACAACGACAGCGCAAGCAGTGAACGCAGAACAAAATCATACGGCTAATCCTGAACA -GGCGGCAAAGTCTAACACAGAAAATGTATCAACATCGCTTTCAACTCAAACAGAACAGACGCCAAAATCT -AACATACAAAAAGCAACACAACCAGCACCAAGCGGAACAACTCAGTCTTTACCAAATGCACAACCGCAAT -CAACACAACCAACACCAAGTGTAACAACACCGCCTTCATCTAATGTCGAAACACCACAACCAACATCGCC -AACCACAAAACAAGCACAAAAGGAAATAAACCCTAAATTTAAAGGTTTAAGATCATATTATACGAAATCA -AGTTTAGAATTTAAAAATGAGTTGGGTATAATTATCAAAAAATGGACAACAATAAGATTTATGAATATTG -TTCCAGATTATTTCATATATAAAATAGCTTTAGTTGGAAAAGATGATAAGAAATATGGTGAAGGCGTGCA -TAGGCATGTCGATGTATTTATCGTTTTAGAACAAAATAAATATGGCGTAGACAAATACTCGGTCGGTGGT -ATCACAAAAGCAAATAGAAAGAAAGTTGATTACAAAACTGGAATAAGTATTACTAAAGAAGATAAAAAAG -GTACAATCTCACATGATGTTTCAGAATACAAGATTACTAAAGAAGAGATTTCCTTGAAAGAACTTGATTT -TAAATTGAGAAAACAACTCATTGAACAACATAATTTGTACGGTAATATTGGTTCAGGAACAATCGTTATT -AAAATGAAAAATGGTGGAAAGTACACGTTTGAATTACACAAAAAATTGCAACAACATCGCATGGCAGATG -TTATTGATGGTACAAATATTGATAGAATTGAAGTGAATCTAAAATCATCGTGATGGATACTACATAGAAC -CGTTGAACGATGAAATGAGAAGTTAAGCGACAATGACCTACATCATTGCTTAGCTTCTTTTGTTTTGCGT -AATGATGTTAAGGGAAATTATTCACTTGTTTGTAAAAGTGACATCTCAATGTCTTGAAAATGATGCAATG -CCCAATGTGCAAGCGTTGAATCGCTTCGAAACCATCTGTATTTAACGAAAATTATGGATTACTTAACGAT -GATTCAAATATAGTTAAACATGGTTTAATGTGAATAGACCGATACGTCTTCTATAATGTAGTTGTATGAT -TCTAATTACGTAAAGAACAATCGAATATAATAGATTGGAGCATACAACTATGAAAATGACACAAATTGCG -AAAACCAGTTTAGCACTATCACTTTTAACAACAGGTGCAAGTATAGTAACAACGCAATCGGCTAATGCAG -AAGTAGCATCAGCACTTAAAACAGAACAGGCAATAAAATCTAAAATACAAAAAGTAACAACATCGCCTTC -ACCAAATGTACAACCGCAATCGCCACAACCAACACCAAGTGTAACAACTCCGCCTTCACCAAATGTACAA -CCGCAATCGCCACAACCAACACCAAACCCAACAACACCGCATTCATCTAATGTCGAAACAAAACAACCGC -AATCGCCAACCACAAAACAAGCACAAAAGGAAATAAACCCTAAATATAAGGATTTAAGAACATATTATAC -GAAACCGAGTTTAGAATTCGAAAAGCAATTTGGCTTTATGCTGAAACCATGGACGACAGTTAGGTTTATG -AATGTTATACCAGATTGGTTCATTTATAAAATAGCTTTAGTTGGAAAAGATGATAAGAAATATAAAGATG -GGCCATACGATAATATTGATGTATTTATCGTTTTAGAGGACAATAAATATCAATTGAAAAAATATTCTGT -CGGGGGTATCACGAAGACAAATAGTAAAAAAGTTGATCACAAAGCAGAATTAAGCATTACTAAAAAAGAT -GAGAAAGGCAAAATCTCACACGATGATTCAGAATATAAGATAACTAAAGAAGAGATTTCCTTGAAAGAGC -TTGATTTTAAATTGAGAAAGCAACTCATTGAACAACATAATTTGTACGGTAATATTGGTTCAGGAACAAT -TGTTATTAAAACGAAAAACGGTGGGAAGTACACGTTTGAATTGCATAAAAAATTACAAGAACATCGCATG -GCAGATGTCATAGATGGCACTAGTATCGAAAGAATTGAAGTGAATCTAAAATCATCGTGATGGATACTGC -ATAGAACCGTTGAACGATGTACCGAGAAGTTGAGTGACAAAAATTTACATGTTGCTCAGCTTCTTTCGTG -TTGCACAGTGGTATAAGAAGACGAATATTTGATGTTGACCACACATAACATGCTTATGTCCTAAATGTGT -CTAAAAATACCAATCTATCAAGCGTTGAAGTACAACAAAAGTCATTTTTATTTAACGAACATTATGGATT -CCTTAATTTAATTAACGATGATTCAAATATAGTTAAACAAGGTTTAATATGAATAGAGACATACGCCAAC -TATAATAAAGCTGTATGATTCAATAAACGTAATCGAACAAATCTAATAATTACGATTGGAGCATACAACT -ATGAAGATGACAGCAATTGCGAAAGCCAGTTTAGCTCTAAGTATTTTAGCGACTGGGGTTATAACATCAA -CGGCTCAAACTGTAAATGCGAGCGAACATGAATCAAAATATGAAAATGTGACAAAAGATATCTTCGACTT -GAGAGATTACTATAGTCGCGCAAGTAAGGAACTTAAAAATGTTACTGGCTATCGTTATAGCAAAGGTGGC -AAGCACTACCTTATCTTTGATAAAAATAGAAAGTTCACAAGAATACAAATTTTTGGTAAAGATATAGAAA -GGATTAAAAAACGTAAAAATCCAGGATTAGATATATTTGTAGTTAAAGAAGCGGAAAATCGCAACGGCAC -AGTGTATTCATATGGTGGCGTTACTAAGAAAAATCAAGGCGCTTACTATGATTACTTAAGCGCACCTAGA -TTCGTTATTAAAAAAGAAGTAGGTGCAGGTGTTTCTGTGCATGTTAAAAGATACTACATTTATAAGGAAG -AGATTTCGCTGAAAGAACTTGATTTTAAATTACGACAGTATTTAATTCAAGATTTTGATCTGTATAAAAA -GTTTCCTAAAGCTAGCAAGATAAAAGTGACAATGAAAGATGGCGGCTATTATACGTTTGAACTCAATAAA -AAGTTACAAACAAACCGAATGAGTGACGTCATAGATGGCAGAAATATTGAGAAAATAGAAGCCAATATTA -GATAATTCAACGAAACATGGATAATAGTAAAATATGGATAGTATAGATGAGCTAGGCAGCATAGGTTGCT -TAGCTTCTTTTTTGTGTCGTTACGATCGGAAATGAAGTGGGTCGATGAAAGATAATAACGACAATAAAAA -CTGTGAAAATAGTTGATACCTATAGTCGCACGGTGTCGCACTAGTGACATGAAACAATGTGGAAAACATA -ATTAAATTGAAAGAAAGTGTGAATGGTGAAAAAAATAGCATAGAGTTATAAAAAATGATTAATACTGTTA -GGATTCCATTAATTAGCTTAACATTGGTTCAGGAATAGTTAAAAAGCGGTTAATTCATAGCGCAGTATCC -GGCTTATATAATGATAGTAGATTGTTCGTATTACGTAATTGAATTAATCACATAAACATATATTAAGTCA -AAATTTAAAAATAGATTGGGAGAATAATACTATGAAATTAAAAACGTTAGCTAAAGCAACATTAGCATTA -GGTTTATTAACTACTGGTGTCATTACATCAGAAGGTCAAGCAGTTCAAGCGGCAGAAAAACAAGAGAGAG -TACAACATTTACATGATATTAGAGATTTACATCGATACTACTCATCAGAAAGTTTCGAATATAGTAATGT -TAGTGGTAAGGTTGAAAACTACAATGGTTCTAACGTTGTACGCTTTAACCCAAAAGATCAAAATCACCAA -TTATTCTTATTAGGAAAAGATAAAGAACAATATAAAGAAGGTCTACAAGGCCAAAATGTCTTTGTAGTAC -AAGAATTAATTGATCCAAACGGCAGACTATCTACTGTTGGTGGTGTAACGAAGAAAAACAACAAAACTTC -TGAAACTAATACACCTTTATTTGTTAATAAAGTTAATGGTGAAGATTTAGATGCATCAATTGACTCATTT -TTAATCCAAAAAGAAGAAATCTCATTAAAAGAGCTTGATTTCAAAATTAGACAACAATTAGTTAATAATT -ACGGATTATATAAAGGTACATCTAAATACGGTAAAATCATTATCAATTTGAAAGACGAAAATAAAGTAGA -AATTGATTTAGGTGATAAATTACAATTCGAGCGCATGGGCGATGTGTTGAATAGTAAAGACATTAGAGGT -ATATCAGTCACTATTAACCAAATTTAAAGTAAGCAATCAATGACTTTAAAGTAATAAATTTTGAGGCAGC -TTAACGATGAAACGTTGAATAAATATGTATATCCTATCAAAGGAGCGTATTTAAAGCAACGTCGTCGTTA -GGCTGTTTTTTACATTTGATAACACAAGTCACGAGTATACTAAATAAGTCATACCACTCATTAAAACCAC -GTACTTTGAATATTAATTAGGTGTTCATTAACAATGATTCAAAGTTATTTAAACGCACGTTAATGTCAGT -TTGTTTCGATGCACTTTATAATAAAGGCAGATGTTTCAAATTACGTAATCATAACAATCCAATACATTAA -GATTGGAGCAATAAATTATGAAATTAACAGCAATAGCTAAAGCAACATTAGCATTAGGAATATTAACAAC -AGGTGTGATGACAGCAGAAAGTCAAACTGTAAACGCGAAAGTAAAGTTGGATGAAACACAACGCAAATAT -TATATAAATATGCTAAAAGATTACTATTCTCAAGAAAGCTATGAATCAACAAACATTAGTGTTAAAAGTG -AAGATTATTATGGGTCTAACGTTTTAAACTTTAACCAACGAAATAAAAATTTCAAAGTATTTCTAATTGG -CGACGATAGAAATAAATATAAAGAACTGACGCATGGCCGTGATGTCTTTGCAGTACCTGAATTAATAGAT -ACTAAAGGCGGCATATATAGCGTTGGCGGTATAACAAAGAAAAATGTGAGATCCGTGTTTGGCTATGTAA -GTCATCCGGGACTGCAAGTTAAAAAAGTTGATCCTAAAGATGGCTTTTCGATAAAAGAGTTGTTCTTTAT -TCAAAAAGAAGAAGTATCATTGAAAGAACTTGATTTTAAAATCAGAAAAATGTTAGTCGAAAAATATAGA -TTGTATAAAGGCGCGTCAGATAAAGGTAGAATTGTTATCAATATGAAAGACGAAAAGAAACATGAAATTG -ATTTAAGTGAAAAATTAAGTTTTGATCGTATGTTTGATGTGCTGGATAGTAAGCAGATTAAAAATATTGA -AGTGAATTTGAATTAATTAAAGATGATAGTATAAAAAATTAAAAAGCGGCTTAACGATAAAATGTGCATT -GACACCCGTACCTTTGAATAAGAACTGTGTTAAATACATTATTGTTGTTAAGTTGTTTTTTGCGTTTCAA -AGAGTAGAAATAACACAATTAGTTGTAGAAAACGATGATCCGGAAAAACAACGACATGTAAAGCGTGAAA -GTTAATTAACCTGGACATTAAAATATATTTGTTTTTAATTAATAATAATTCACGCATATTTAAATCGAGG -TTAATTATCGCGTTAAACGATGGACGTTATAATAAGCGTATATGATTCAAATTACGTAATAATAACAATC -CAATACATTAAGATTGGAGTAAATAAATATGAAATTGACAGCATTAGCAAAAGTAACATTAGCATTAGGG -ATTTTAACAACAGGAACTTTAACAACAGAGGCCCATTCAGGTCATGCTAAACAAAATCAAAAGTCAGTAA -ACAAACATGACAAAGAAGCATTACACCGATACTACACTGGAAACTTTAAGGAAATGAAAAACATTAATGC -TTTGAGACATGGTAAAAATAACTTACGTTTTAAATATAGAGGGATGAAGACTCAAGTATTATTGCCTGGA -GATGAGTACCGTAAATATCAACAGCGAAGACATACGGGCTTAGATGTGTTTTTTGTTCAAGAAAGAAGAG -ACAAGCACGACATATCATATACTGTTGGTGGTGTAACAAAGACCAATAAAACATCCGGCTTTGTCAGCAC -ACCAAGATTAAATGTTACAAAAGAAAAGGGTGAAGATGCTTTTGTGAAAGGTTACCCTTATGATATTAAA -AAAGAAGAAATATCATTGAAAGAGTTAGATTTTAAGTTGAGAAAGCATCTAATTGAAAAATACGGTCTTT -ATAAAACACTCTCAAAAGATGGTAGGATTAAAATTAGTCTGAAAGATGGTAGCTTTTATAACCTTGATTT -AAGAACTAAATTAAAATTCAAACATATGGGGGAAGTCATAGATAGTAAACAAATTAAGGATATTGAAGTG -AATTTAAAGTAAATCATTATGAATAATAAAAAGTAATTGAAGCGGCTTAACGATGAAAAGTAAATTGGTG -CGTATACCTTACCAAAAGGATGCATCAATCGATATCGTCGTTAAGCCGTTTTTGTTTGCGTGTTATGAAT -CCTATCCCAATCTCCATGAATATAAAATTTCCACCATCAACATCAAAATTCTCAACATCGCGACACCACC -AAATGTTATAATAAATCTATTACACAAAGAGACAAATTACTTATGCAAAGGCGGAGGAATCACATGTCTA -TTACTGAAAAACAACGTCAGCAACAAGCTGAATTACATAAAAAATTATGGTCAATTGCGAATGATTTAAG -AGGGAATATGGATGCGAGTGAATTCCGTAATTACATTTTAGGCTTGATTTTCTATCGCTTCTTATCTGAA -AAAGCGGAACAAGAATATGCAGATGCCTTGGCAGGTGAAGATATTACATATCAAGAAGCATGGGCAGATG -AAGAATACCGTGAAGACTTAAAAGCAGAATTAATTGATCAAGTTGGTTACTTCATTGAGCCACAAGATTT -ATTCAGTGCGATGATTCGTGAAATTGAAACGCAAGATTTCGATATCGAACATCTGGCGACGGCAATTCGT -AAAGTTGAAACTTCAACACTAGGTGAAGAAAGTGAAAATGACTTTATCGGACTGTTCAGCGATATGGACT -TAAGTTCAACGCGTTTAGGTAACAATGTCAAAGAACGTACTGCGTTAATTTCCAAAGTTATGGTTAACCT -TGATGACTTACCATTCGTTCACAGTGATATGGAAATTGATATGTTAGGTGATGCATACGAATTTCTTATC -GGGCGCTTTGCGGCGACAGCGGGTAAAAAAGCAGGCGAGTTCTATACACCACAACAAGTATCTAAGATAC -TGGCGAAGATTGTCACAGACGGTAAAGATAAATTACGTCATGTATATGACCCAACATGTGGTTCAGGTTC -ATTACTGTTACGCGTTGGTAAAGAGGCAAAAGTGTATCGTTATTTTGGACAAGAACGTAACAATACCACA -TACAACTTAGCGCGCATGAACATGTTGTTACATGATGTGCGATATGAAAATTTCGATATCCGTAATGATG -ATACGTTGGAAAATCCAGCCTTTTTAGGACATACATTTGATGCGGTTATTGCGAACCCACCATATAGCGC -GAAATGGACAGCAGACTCAAAATTTGAAAATGACGAACGCTTCAGCGGATACGGCAAGCTTGCGCCAAAG -TCTAAAGCAGACTTTGCCTTTATTCAACACATGGTACATTACCTAGATGATGAAGGTACCATGGCCGTTG -TACTCCCACATGGTGTCTTATTCCGTGGTGCCGCAGAAGGTATCATTCGTCGTTATTTAATTGAAGAAAA -GAACTACTTAGAAGCCGTGATTGGTTTGCCAGCGAACATTTTCTATGGGACAAGTATTCCAACATGTATC -TTAGTATTTAAAAAATGTCGCCAACAAGACGACAACGTATTATTTATCGATGCATCCAATGATTTTGAAA -AAGGAAAAAACCAAAACCATTTAAGCGATGCCCAAGTCGAACGAATTATAGACACATATAAGCGTAAGGA -AACAATTGATAAGTATAGCTACAGCGCGACATTACAAGAGATCGCCGATAACGATTACAACTTAAACATA -CCGAGATATGTCGATACATTCGAAGAAGAAGCGCCAATTGATTTAGATCAAGTCCAACAAGATTTGAAAA -ATATCGACAAAGAAATCGCAGAAATTGAACAAGAAATCAATGCATACCTGAAAGAACTTGGGGTGTTGAA -AGATGAGTAATACACAAACGAAAAATGTGCCAGAGTTGAGATTCCCAGGGTTTGAAGGCGAATGGGAAGA -GAAGAAGGTTGGCGAGTTATTAGAATTTAAAAATGGTTTAAATAAAGGAAAAGAATATTTTGGCTCAGGA -TCGTCGATTGTTAACTTCAAAGATGTATTTAATAACAGGAGCTTAAATACAAATAATCTGACTGGAAAAG -TTAATGTGAATAGCAAAGAACTAAAAAATTATTCTGTTGAAAAGGGTGATGTTTTTTTTACAAGGACTAG -TGAGGTAATTGGTGAAATAGGTTATCCGTCTGTAATTTTAAATGACCCTGAAAATACTGTGTTTAGTGGA -TTTGTATTAAGAGGGCGGCCTAAATCAGGAATTGATTTAATAAATAATAATTTTAAAAGATATGTCTTTT -TTACTAATTCATTTAGAAAAGAAATGATTACAAAAAGTTCTATGACAACTAGAGCTTTAACATCAGGTAG -CGCAATTAATAAAATGAAGGTCATATACCCTGTTTCGGCTAAAGAACAGAGAAAAATAGGTGACTTCTTC -AGCAAACTCGACCGACAAATTGAATTAGAAGAACAAAAGCTTGAATTACTTCAACAACAAAAAAAAGGCT -ATATGCAGAAAATCTTCTCACAGGAACTGCGATTCAAAGATGAGAATAGTGAAGATTATCCACATTGGGA -AAATAGCAAAATAGAAAAATATTTAAAAGAGAGAAACGAACGTTCTGACAAAGGTCAAATGCTTTCAGTA -ACTATAAATAGTGGCATTATAAAATTTAGTGAATTGGATAGAAAAGATAATTCAAGTAAAGATAAAAGTA -ATTATAAAGTAGTTAGGAAAAATGATATTGCATATAATTCTATGAGAATGTGGCAAGGGGCTAGTGGTAG -ATCAAATTATAATGGGATTGTTAGCCCTGCATATACTGTGCTTTATCCAACACAAAATACTAGCTCATTA -TTTATTGGATATAAGTTTAAAACACATAGAATGATTCATAAATTTAAAATTAATTCACAAGGATTAACAT -CAGATACATGGAACTTAAAATATAAACAATTAAAAAATATAAATATAGATATACCTGTATTGGAGGAACA -AGAAAAGATAGGTGATTTCTTTAAAAAAATGGATATATTGATTAGTAAACAGAAAATAAAAATTGAAATA -TTAGAAAAAGAGAAACAATCCTTTTTACAAAAGATGTTCTTATAACTTTGATAAACACATAGGTTGCATA -AGAATAAAATTTGTGTAATTTAACATAAAAGTTATAAACATAAAGTAAATTAAAAACGAACATTAAATTT -AGGCACTGTGATAGCACAGTGTCTTTTTTGTGTCGAAATTGTGTACAGAATAAGTAGTTAAATAAAGATT -AAGTTGAGATAAAGTGTTATTCGTAAATAAAAGAGAGTAGATCGATAGGAATTGAATGATATTAGTTAAC -TATTTATTAAATCACTTAATAATGATTAATTTTTAGTTAAAGTAAGTTTAATGTGAAGCACGACCGTTGC -TCATTATAATGAATGAGGATTGTTCGTATTGCGTAATAGAATAAATCAAATAGACTAAAAATTGGGAGCA -TAGAATTATGAAATTAAAAAATATTGCTAAAGCAAGTTTAGCACTAGGGATTTTGACAACAGGGATGATT -ACAACTACTGCTCAGCCAGTAAAAGCAAGTGAGCAAAGCAGATTATCAGTTACTTCAAACGACACGCAAG -AATTAAAAAAATACTACAGTGGAACAGGATATAATTTTCAAAATGTGAGTGGTTATAGAGAAAAGGATAA -AATGAACATTATTGATGGGACACAACTTAATGTAGTTACTTTACTTGGTACAGACAAAGAAAGATTTAAA -GATTATGACTATGATTATGAAGGGTTAGATGTCTTTGTAGTCAGAGAAGGATCAGGTAAACAAGCTGAAA -ATATTTCAATAGGTGGAATTACCAAGACGAATAAAAACGATTATAAAGATTTCGTAAATAATGTAGGTCT -AGAAATAACTAAACCAACAGGACATAATACAGCAACAAGACAAGCAGAAACTTATAGAATTAATAAAGAA -GAAATTTCATTAAAAGAATTAGATTTCAAATTAAGAAAACATTTAATTGAAAATCATGAACTTTATAAGA -CAGAGCCTAAAGACGGTAAAATTAGAATTACTATGAAAGGTGGCGGCTACTATACTTTTGAATTAAATAA -AAAATTACAGCCTCATCGTATGGGTGATGTAATTGATGGTAGAAATATAGAAAAAATTGAAGTCGATTTA -TATTAATATTCGAGGGAGTATATCATGAGGGAAAATTTTAAGTTACGTAAAATGAAAGTCGGGTTAGTAT -CTGTTGCAATTACAATGTTATATATCATGACAAACGGACAAGCAGAAGCATCAGAGGCTAATGAGAAGCC -AAGTACAAATCAAGAATCAAAAGTTGTTTCACAGACTGAACAAAATTCAAAAGAAACAAAAACAGTAGAA -TCTAATAAGAACTTTGTTAAATTAGATACTATTAAACCTGGAGCTCAAAAGATAACGGGAACTACTTTAC -CAAATCACTATGTTTTATTAACAGTTGATGGGAAAAGTGCGGATTCAGTAGAAAATGGCGGTTTGGGTTT -TGTTGAAGCAAATGACAAAGGAGAATTTGAGTACCCTTTAAATAATCGTAAAATTGTTCATAATCAAGAA -ATTGAGGTTTCGTCGTCAAGCCCTGATTTAGGTGAAGATGAAGAAGATGAAGAGGTGGAAGAAGCTTCAA -CTGATAAAGCTGGCGTTGAGGAAGAAAGTACAGAAGCTAAAGTTACTTACACAACACCGCGATATGAAAA -AGCGTATGAAATACCGAAAGAACAACTAAAAGAAAAAGATGGACATCACCAAGTTTTTATCGAACCTATT -ACTGAAGGATCAGGTATTATTAAAGGGCATACGTCTGTAAAAGGTAAAGTTGCTTTATCTATTAATAATA -AATTTATTAATTTTGAAGAGAGCGTTAAGGGCGGAGTTAGTAAAGAAGACACTAAAGCTAGTTCAGATGG -TATCTGGATGCCTATTGATGACAAAGGATACTTTAACTTTGACTTCAAAACGAAACGTTTCGATAATTTA -GAGTTAAAAGAAGGTAATGACATTTCACTAACATTTGCACCTGATGATGAAGAAGATGCATTAAAACCTT -TAATTTTCAAAACTAAAGTAACGAGCTTAGAAGATATCGATAAAGCAGAAACTAAATATGACCATACTAA -ACTCAACAAAGTGAAAGTTTTAGATAATGTTAAAGAAGATTTACATGTTGATGAAATATATGGAAGCTTA -TATCATACAGACAAAGGTAAAGGTATTCTTGATAAAGAAGGTACTAAAGTAATTAAAGGAAAGACTAAAT -TCGCGAATGCAGTAGTGAAGGTAGACTCTGAACTAGGTGAAGCACAATTATTCCCTGATTTACAAGTAAA -TGAAAAAGGTGAATTTAGCTTTGACTCACATGGTGCTGGTTTTAGATTACAAAATGGAGAAAAATTAAAC -TTCACAGTGGTTGATCCTATTACAGGTGACTTGTTAAGTAATGAGTTTGTTTCTAAAGAGATTGATATTG -AAGAAACACCTGAACAAAAAGCGGATCGTGAGTTTGACGAAAAACTTGAAAATACGCCTGCTTACTACAA -GTTATACGGCGATAAAATAGTTGGATTCGATACTAACGATTTCCCGATTACTTGGTTCTATCCATTGGGT -GAAAAGAAAGTTGAACGTACAACACCTAAATTAGAAAAATAATTAAATAAAACAGCTTAATGATGTAATG -AAATTAGTGAATTAATCACTGACTTCTACGTCATTGAGCTGTTTTTTTATGTGCTTTGTTATAAAGCATT -ATTGAATTTATTTTACGTGTTCATATTTTGAAACATCAAAGCCGTCTTGCTTAGCTTTGTTGATAATGTC -TTTGATTGAATGTAGTCCTTTATCGGCGAAGTATGATCTTAAGTTGTCTTTTGTAGCTTGGTCAGCATTC -TTATCTAATAACACATCGATATAGCTTAATTCATGTTCTAAGAAGTTTGCATCATCATGTAGTACGAGTC -CATTTTGAGAATACACTTTCGCATCTGCTTCATTACCATATCCAACAACGCCAGTTGCTAATACACCTAC -CATTGCCGTAGCTACTAAAACCTTTTTAAATTTCATATCTATCACTCCTCTAAAAATTGTAACTCCATCA -TAACACTGAATATTGAGAAAATTACGTTTATTAAGTCGATTTAATGATTTTTAATAAATAGTTAAAGTGA -CAAATATTGTTTAAATGCAATTAATCTTTAGTGCGATACTTGTGTTCCTTAGTATTGAGTAGTAGATTTC -GAAGATATTTTAATTCAAATGAAACAATAATAAAAAAATGATGCAACATAATAATAAATACAAATTTAAT -TAATAAATTAAATTGATTGTATATGTATATTTTGGTAACGTAAAAGAGAAATATACAAAATAATTAATTA -TTTATATGAAAAGAGAATATAAATGAAGTATAAAACAGAGAGACGTGAAATGATGGGAAATATAAAAAGT -TTTGCATTGTACATAAGTATCTTGCTTTTAATAGTTGTTGTAGCAGGTTGTGGCAAAAGTGATAAAACAA -AAGAAGATTCCAAAGAAGAACAAATTAAAAAGAGCTTTGCGAAAACATTAGATATGTATCCAATTAAGAA -TCTCGAGGACCTATATGATAAAGAAGGATATCGAGATGGCGAATTTAAAAAGGGAGATAAGGGGACGTGG -ACTTTACTCACAAGTTTTTCAAAAAGTAACAAACCGGATGAAATAGATGACGAAGGCATGGTTTTATATC -TAAATAGAAATACCAAAAAGGCAACAGGTTATTATTTTGTAAATAAAATTTATGATGATATTAGCAAAAA -TCAGAATGAGAAAAAATACCGTGTTGAACTTAAAAATAATAAGATTGTTCTTTTGGATAATGTAGAAGAC -GAAAAACTTAAACAAAAAATTGAAAATTTTAAATTTTTTAGTCAGTATGCGGATTTTAAAGATTTAAAAA -ATTATCAAGATGGAAGTATAACAACTAATGAAAATATTCCTAGTTATGAAGCAGAATACAAATTGAATAA -TAGTGATGAAAATGTAAAAAAACTTAGAGATATTTATCCAATTACAACGAAAAAGGCTCCAATATTAAAG -TTACATATAGATGGTGATATAAAAGGAAGTTCAGTTGGATACAAAAAAATAGAATATAAATTTTCAAAAG -TTAAAGATCAAGAGACAACATTAAGAGATTATTTAAATTTTGGGCCGTCTGATGAAGATAGCTAAAGTTT -ATTAGATGTAGAAATAATTCTAAAACAGAGAGACGTGAAACGATGGGGTATTTAAAAAGGTTTGCATTGT -ACATAAGCGTTATGATTTTAATGTTTGCGATAGCAGGTTGTGGCAAAGGTAATGAAACAAAAGAAGGTTC -AAAAGAAACACAAATCAAAAAGAGCTTTGCGAAAACGTTAGATATGTATCCAATCAAAAATCTCGAGGAT -TTATACGACAAAGAAGGCTATAGAGATGGTGAATTTGAAAAAGGTGACAAAGGGATGTGGACGATATACA -CAGATTTCGCTAAAAGTAATAAACCGGGTGAATTGGATGATGAAGGTATGGTTTTAAATCTGGATAGGAA -TACTAGAACCGCTAAAGGCCATTATTTTGTTACTACATTTTACCGGAATGGTAAACTGCCAGATGAAAAG -AATTATAAAATTGAAATGAAAAATAATAAGATTATTTTATTAGATGAAGTAAAAGATGATAAGCTCAAGC -AGAAAATAGAAAATTTTAAATTTTTCGGTCAATATGCAAATCTTAAAGAATTGAAAAAATATAATAATGG -TGATGTTTCAATTAATGAAAATGTTCCTAGTTATGATGTTGAATTCAAAATGAGCAATAAAGATGAAAAT -GTTAAGCAATTAAGAAGTCGTTATAATATTTCGACTGAAAAATCACCTATATTAAAAATGCATATTGATG -GTGACCTGAAAGGCAGTTCCGTAGGTTATAGAAAGTTAGAAATTGACTTTTCAAAACGTGAAAACAGCAA -ATTATCAGTCATTGAATTTTTAAGTTATAAACCAGCGAAAAAATAGTATTGATAAGGAATATTAGGGTGT -GAAAAAATGGGACATCTAAAAAAGCTTGCACTGTTCATAAGTGCTATTATTTTGAGCATTTTTATAATAA -GTTGTAATAGTTCAAGCGATACTGCGGAAAAAGCAAAAGAAGATTCAAAAGAAGAACAAATTAAAAAGAG -CTTTGCGAAAACGTTAGATATGTATCCAATCAAAAATCTCGAGGATTTATACGACAAAGAAGGTTATCGA -GATGACGAATTTAAAAAAGGCGATAAGGGTACATGGACTTTACTCACAAGTTTTGCTAAAAGTAACAAAC -CAGGCGAGATAGATGACGAAGGTATGGTTTTATTCCTTAATAGAAATACAAAGAAGGCAACAGGATATTA -TTATACGAGCAAAGTTCATGATGAATTTAATGAAAAAGATCAACAAAAAAATATCATGTTGAATTAAAAA -ATAATAAGATAGTACTTTTGGATAAAGTAGAAGATCCAAATCTCAAAAATAAAATAGAAAATTTTAAATT -CTTTAGTCAGTATGCTGATTTTAGAGATCTTAAATATTATAAAAATGGAAATATATCAAGTACAGATAAT -GTGCCAAGCTACGATGCAGAATATAAAATGAGTAATACGGATAAAAATGTAAAAAAACTTAGAGAAGTTT -ATCCTATTACAACCAAAAAGTCGCCAGTATTAAAATTACATATAGATGGCGACATAAAAGGAAGTTCAGT -TGGTTATAAAAATATAGAATATAATTTTTCAAAAGTAAAAGACCAAGAAACAGCTGTAAGAGATTTTGTG -AATTTTGGACCATCTGATGGAGGAGCTAAAGTTTATTAGGTGTAGAAATAATTCTAAAACAGAGAGATGT -GAAAAGATGGGATATTTAAAAAGGATTGGAATGTGCATAAGCCTATTGATTGTAATTATTTTTGTAACAT -CTTGCGGTGGTGGTAATAAGATCACTGGAGATTCAAAAGAAACACAAATCAAAAAGAGTTTTGCGAAAAC -GTTAGATATGTACCCAATCAAAAATCTCGAGGACCTATATGATAAAGAAGGCTATCGAGATGGCGAATTT -GAAAAAGGTGACAAAGGGATGTGGACGATATATACAGATTTTGCTAAAAGCAATAAATCAGACGAATTGG -ATGATGAAGGTATGGTTTTAAATCTGGATAGAAATACTCGAACGGCTAAGGGATATTATTTTGTTAAGAA -ATTTTATGAAAAGGATAAATTTTCAGATAGAAAAAATTATAAAGTTGAAATGAAAAACAATAAAATTATT -TTATTAGACAAGGTAAACGATCCAAACCTTAAAGAAAGAATAGAAAATTTTAAGTTTTTTGGACAATATG -CAAATTTTAAGGATTTGGAAAATTACAACAATGGCGATGTGTCAATAAATTGGAATGTTCCAAGTTATGA -CGTGGAATATAAAATGAGCAATAAAGATGAAAATGTTAAGCAATTAAGAAGTCGTTATAACATTCCTACT -GATAAAGCTCCAATGTTAAAAATGCATATTGACGGGGACTTAAAAGGAAGTTCTGTTGGATATAAAAGGT -TAGAAATAGACTTTTCAAAAGAAGATAGGGATATTTCAGTCATTGATTATTTAAGTTATAAGCCAGCGAA -AAAATAGTGTTGATAATTAAATATTAGGGTGTGAAATGATGAGATATTTAAATAGAGTTGTACTGTACAT -AATTGTTATGGTTTTGAGTGTTTTTATAATAGGTTGTGATAAATCAAGCGATACTTCAGAAAAGCCAAAA -GAAGATTCAAAAGAAGCACAAATTAAAAAGAGTTTTGAGAAAACATTAGATATGTATCCAATTAAGAATC -TCGAGGATTTATACGACAAAGAGGGATCTCGTGATGGTGAGTTTAAAAAAGGCGATAAAGGGATGTGGAC -GATATATACAGATTTCGCCAAAAGTAATAAACAAGGTGGATTGAGTAATGAAGGTATGGTCTTATACTTA -GATAGAAATACACGGACAGCAAAGGGACATTATTTTGTTAAGACATTTTATGAAAAGGATAAATTCCCAG -ATAGAAAAAAATATAAAGTTGAAATGAAAAACAATAAAATTATCTTATTAGACAAGGTAGAAGATCCAAA -ACTAAAAAAGAGAATAGAAAACTTTAAATTTTTCGGACAATATGCAAACCTTAAAGAATTGAAAAATTAC -AACAATGGTGATGTCTCAATTAATGAGAATGTTCCAAGTTATGACGCAAAATTTAAAATGAGCAATAAAG -ATGAAAATGTTAAGCAATTAAGAAGTCGTTATAATATTCCTACTGATAAAGCACCGGTATTAAAAATGCA -TATTGATGGTAATTTGAAAGGAAGTTCTGTGGGTTATAAAAAGTTGGAAATTGACTTTTCAAAAGGTGAA -AAAAGCGATTTGTCAGTAATAGATTCTTTGAATTTCCAGCCGGCGAAGGTGAATGAAGATGATGAATGAT -GAGGATGGTGTGTAACAATGAAGTCTATAAAAAGGATTGGATTGTGCATTAGTTTGTTGATTTTAATCAT -CTTTGTTACATCTTGTGATGGTGATAATAAGATTACTGGAGACTCAAAAGAAGAACAAATCAAAAAGAGC -TTTGCGAAAACATTAGAAATGTATCCAATCAAAAACCTCGAAGATTTATACGACAAAGAAGGATATCGAG -ACGGAGAATTTAAAAAAGGTGATAAAGGGACTTGGGTTATTAGATCTGAAATGAAAATCCAATTAAAAGG -AGAAAATCTGGAATCTAGGGGAGTAGTTTTAGAAATTAACAGAAATACTAGAACGGCTAAAGGGAATTAT -ATTGTTAGAGAAGTTGTTGAAGATAGCGATGGAATGACACACAATCATACAAAAAGGTATCCTGTAAAAA -TGGAAAATAATAAAATCATTCCATTAAAACAAATCGTTGATGAAAAAGTAAAAAAAGAAATTGAAGAATT -TAAATTCTTTGTACAATACGGGAATTTCAAAGAATTGGAAAACTATAAAGACGGAGAAGTGACATATAAC -CCAGAAGCACCAATATACTCTGCACAATATCAATTGAAAAACAGTGATTACAATGTAGAACAATTACGTA -AGCGATATAATATCCCGACGCAAAAAGCGCCTAAATTATTATTGAAAGGGTCAGGTAATCTAAAAGGCTC -ATCAGTTGGATATAAAAATATTGAATTTACCTTTGTTGAAAATAAGGGAGAAAATATTTACTTCACAGAT -AGTGTCTACTTTAATCCAAGCGAGGATAAATATAATTACTAATATAAAAAATAACGTTAGAACATTTAAT -AATAAAGTTAAATGAATTACATGTATTAAATTGAATAAGTTAGTTTTGTTTGATAACATAAAAGTGTAAT -AATCACTATTTTATTAAGTTGTATGAAATATTCAAATGTGTATAAAAATAAAGCAGAGAGATGTGAAATG -ATGGAGTATATAAAAAAAATTGCTTTGTACATGAGTGTATTACTTTTAATCATTTTTATTGGGGGATGTG -GAAATATGAAAGATGAACAGAAAAAAGAGGAACAAACAAATAAAACAGATTCAAAAGAAGAACAAATCAA -AAAGAGTTTTGCGAAAACGTTAGATATGTATCCAATTAAGAATCTCGAGGATTTATACGACAAAGAAGGC -TATCGAGATGGCGAATTTGAAAAAGGTGACAAAGGGATGTGGGTTCTGTATTCATCTATTGTATCAGAAT -TCAAAGGCGAGAGTTTAAAATCACGAGGAATGATATTAAAGTTAGATAGAAATAAGAGAACTGCTAAAGG -AAGTTATATTATAAGAGAATTGAAAGAAGATAAAAATCATGATGTTCAAAAAAACGAAAAAAAGTATCCA -GTTAAATTGGTGAATAATAAAATAATTCCAACTGAAGATGTAAAAAACGAAGATTTAAAAAGAGAAATTG -AAAACTTCAAATTATTTTCTCAATATGGTGAATTTAAGAGTTTAAATACGGATAGGATAACAAATATTTC -TTATAATCCTAATGCGCCTAACTATTCAGCTGAATATAAAATTAATGATGATGATAATAACATCAAACAA -TTAAAAAATCGATTCAATATTAAGTCTAATAAAAATCCTAAGTTATTGTTCAAAGGAGCAGGTAATATAA -AAGGGTCTTCTGTTGGATATAAGGAGATACAGATAATTTTCAATAGGAACAAAGAAGAAAGTGTTTCTTG -TATTGATAGTATAGAGTTTAAACCGAGTGAAGGAGACTATAATGAGTAAGAGTGTCTATAAATTAGATGT -TGGCAAATTAAAAAAGATACTGAACCGACAAGCGCAATATCATTTATGGCGTATGAAATTGAAAATGCTA -ATAATCATAATTTGAGTAAGATGGCAATAAAGGAACAGTTAGATAGAAGCGCAGAAAGGGGCATGTTCCC -TTCTAATCTTGAATATGTTGATAGTTACACTGATTCTCTTACTGGAGTAACAACTTCTGCTTTTTTAAAT -AAAGATACAGGCAAAGTAACTCTTGGGATGACTGGGACTAATATACAAGGCGAAGCCTTTAAAAAGTTAA -AAGAAGGTGAATTTTCAAGACAAAATGTTACCAATGCTTTGGAAACAGTTAAAGATGGATATGCAGATAT -TAAAATATTATATTCTCCTGCATCTGATCAAAACTATAGATATGCGAATACACAAGAATTTATAAATAAA -ATAAAAAGTAAGTATGACATTGATTTTATTACTGGACATTCACTAGGTGGAAGAGATGCGGTAGTTCTAG -GAATGAGTAATGGTATTCCGAACATTGTGGTTTATAATCCAGCTCCTATTTCTATAACTAGTTTGAATCC -TAATTCCCCAGATGGAAAACGATTGTTAGAATTATATAAAAATTATAAAGGTAATATTACTAGGTTTGTT -GCAGAAAATGATGCATTGACAGAAAATCTGAAGAAATATAAGCATTATGTTTTTTTCGGTAATGATAAAG -TCTTTAAAAATGGTAAAGGTCATGAAATGGAAGGCTTTCTGACCGAAGAAGAACAAAAAGCTATAAAAAA -AGAACTTAAAAAACTAAAAGGTTATGCAGAAGAAAATAATAAGTCATTTGTAAAGCATTCAAATAATGCT -ATCTCTAAATTAGCTAGTATAGAATTACTTAGAGCCAATATGATGACTGCAAATGGAGGAGGATTATCTT -CTTCGCAGCAGAAAGTTTTAGACAGTTTAACAGCTTTAACAATTGCGCAGTCATTCAGTCAACTGATAGA -CGATGAAATTAATCAAATCAAAAAAATGTATAATGAAAAGAAAAAGAAATTTGGAAAAAATTGGGAAGAC -GCTCAAAAAGCTGGAAAAGCTGTAGGTGAAGATTTGAGTGTAAATGAAGTTCTTAATGCTTTAGATGAAG -GTCAAGTGAATGAAAGTAGTATGGTAAGAGAACCTGAACAAATGATATCTGCAAAAGAAAGACAACTTTC -AACGATAGGGTCTTCTGTATCAAATTATATTATGAGAGTTAGACTCAGTATTAATGAAATCGTAGATAAA -GATCAAGTGCTTGCATCACAAATAGGTGGATTACTATGATGTTTAATCAAATTAATAATAAAAATGAATT -AGAAGAATCATATGAATCCGAGAAAAAACGTATAGAGAATGAACTGCAAAATTTAAATGAACTTAGGCAT -AGAACTCGAAAAGAAAATGAACGTAGTTATGATGTTTTTCAATATTTGAAGCACGAAATGAATTATAGTG -AAGATGCCCAAAGGAAAATGACGAGAAATATAGAAGCGTATGAGCAAGAAATCAATGAGATAATTAGAAA -GCAAGAATGGAAATTAGAAGAATATAAAGAAGACTTAAAAAAGTCTTATGAAAAGCAGTTAGATAAACTA -AGTGACTGATAATTTGGAGGAGATTAAATGACTCTAATAGAACCAGATATGACCTTAAGAATGCCAGATA -TAAGTACTACAGTAGAAACACTTAATCTCATATCTAAAATGAATGCTCAAAAAGAAAATATTCGCACAGT -TATTGCACCTGAACATAAGCATAAATACAAAGATATTGAAAACGGATTAAAAGGTGAAGAAAAAGTATTA -ATTGAACAAATGGCGCAACATTGCGAGGCTTTTAAAGCTAATTTTAAAGGCGCAGCTCAAGGAGATTGGG -TTAAAAGTGCCATGTCTGAGATAGACAGCATTAAGGATGACCTGAAAAAAATTAATAGCTAAACTACATA -TCATTATACTAAATAAAGCGACCAATGTTCAGTGTATTCACAACTGACACTAGGCCGCTTCTTTTTAATT -TATTTTATTTCCATGTAAAGTAACGCTCTCTTAATCGAAATATCACACTCACAATTGTAAAAACACAACT -TAAATTACTGTCCCGCATTAAACATATCCACATTCCAAACAGCAACAACAAAATCCTCAAGTACCAAAAG -CTATGACCACTTTATCAAAATCAACGCAAGTTAACCTCTCCTGAACTACCCGCCATAAATCATCTTCAAC -TTACAAACCATAAAGCGCTGCAGTTAAGTATTGAATGGCATAGCCAATTGAAATAAAAATAGCAATCGTT -ATAATAGCACTGCCAATGGTATATAAAGTATGTTTCGTAGATAATCCTTCAGTCTTTGAACCAAAAACAC -TGAGTAGAATAAATGCAATACCAATGATATATAAAACTAAAATGACAAATAACATGTTTATACACCTCGA -TTCTCTCTCGTGAGATATATCTTTGTCTCTATTATAAAGTAAAGTGCTCAATAATTTAATTAAGTATACT -ATTTTTTTATTATCGAAGATTGCGAAAGGTGAAATGCTCCTATATAATGTAAAACGGAATTATTCCTATT -TACAAATAAATTGAAGTGAGGGTATATATATGGCTAAAATTCCAGTTACGGTATTAAGTGGTTATTTAGG -CTCGGGGAAAACAACGTTGTTAAATCATATTTTACAAAATCGTGAAGGTCGACGTATCGCAGTAATTGTA -AATGATATGAGTGAAGTTAATATCGATAAAGATCTTGTCGCAGATGGTGGGGGACTATCGCGCACAGACG -AAAAATTAGTCGAACTTTCTAACGGTTGTATCTGTTGTACACTTAGAGACGATTTATTAAAAGAAGTTGA -GCGTTTAGTGAAAAAAGGTGGCATCGATCAAATTGTTATTGAGTCAACAGGGATTTCAGAGCCAGTACCT -GTTGCACAAACTTTCTCATATATTGATGATGAACTTGGCATTGATCTTACAGCGATTTGCCGTTTAGATA -CAATGGTTACAGTTGTGGATGCTAACCGCTTCGTCCATGACATCAACTCAGAAGATTTATTGATGGATCG -TGATCAAAGCGTTGATGAAACAGATGAGCGTTCGATTGCTGATTTATTAATTGACCAAGTTGAATTTTGT -GATGTATTGATTATTAATAAAATTGACTTAATAAGTGAAGAAGAACTAGCGAAGTTAGAAAAAGTGTTAA -GTGCATTGCAACCGACTGCTAAAATTATTAAGACAACAAATTCTGAAGTAGATTTAAAAGAAGTCTTGAA -TACGCAGCGTTTTGATTTTGAAAAAGCGAGCGAGTCAGCAGGATGGATCAAAGAACTTGAGTCTGGTGGG -CATGCATCGCATACACCTGAAACAGAAGAATATGGTATATCATCGTTTGTATATAAACGTCGTCTACCTT -TCCATGCTAAAAGGTTCAATGATTGGTTAGAAAGCATGCCAAATAATGTCGTTCGATCAAAAGGTATCGT -ATGGTTAGCACAATACAATCATGTAGCATGTTTATTATCTCAAGCAGGGTCATCTTGCAATATTCATCCA -GTTACATATTGGGTGGCTAGTATGTCTGAAGCGCAACAAACGCAAATATTAGCAGAACGCCAAGACGTCG -CAGCTGAATGGGATCCAGAATATGGCGATCGTCATACACAATTTGTCATTATTGGTACAGACTTAGATGA -AGGTGCAATTACAAAAGAACTCGATGCATGCTTAGTCAATGCGCAAGAAATTGATGCAGATTGGCAACAA -TTTGAAGATCCATATCAATGGCAAATTAGACCGGCACGATAAGTTGAATGAAGTGTAATCATTTTTAAAT -TGTGGCTTAATTGTTTGCAATTTATGACAATTAATAAAAAGTTAAGATGTTCTTAGGATCTTTTTGTTTT -CAATCTATCTAAAGTGTGATAGTTTTGATAAAGCAGAAATTTGCATTTTATCCATAGGGCTAGGACATGT -ATGTGTCTTAGTCCTTTTTATATTTGCGTTGATGAAAAATGACAAAACCATCGTACCAACTGTTAATTGA -AAGTACAATCATTGTTTAAAGGTCATAAAAATGAGTGAAGCAAATGCAGCTATCAATGTACTATTACTGC -TTACAGTCACACGAGTGTTTCAGCCTAAACGTGCAATGAAATTCTGCACGCGTCCAATATATCATGCGCT -AGATCATGAAGATCATTAAGATTTCACATGCCAAATCATGAATGTCTCAGACCTCGAGTATCAAACATAA -AACACGCCACAAAAATATAACGCGTCAGACTACAAAGATCACGAATATTCCGTACGTCCCACTAAGAACA -TCCTATACAAAAAACACCAAGACCATTTATTTGCAACAAACTACCCAGACTCATCTCACATCAATAAATC -AACACAAAGCAAAGCCACCATCCCTATTGGTATAGTGGCCTGAGAATTTTAAGTATTCAATTCGCTTAAA -TTATTTTGCGAAAATGTCGATAATTGCTTTGATGATTTTAATGATAGTACCTACAATAGCCATCGTTTTG -TCCTCCTGTATGTTGATTTAACATAGTGATGAGTTGTTGATCGTTAATGTTTGAGATTAGTAGTTACCTA -AAAATTTACCAAGTAAATCTTTAAAGAATTTGAATAATTTTGCTACGAATTCCATGTGAATGGCCCCCTT -CAAATAAGATGTTCATATCTATGATATTTTTATAACTTACTTACCAGTGAATTTCTCAATTAATCCTTTA -ATGAATTTAATGATTCCTGCAATGATACCCATGTGAAAGACCTCCTTTGTTTGTTATGAAAACTTATTTA -CCAGTGAATTGTTCGATTAAGCTTTTGATAACTTTAATGATGCCAGCGATGATACCCATTAAGATTACCT -CCTTTGCTTATGAGTTAACTTCATTGTACATAGTTATCTTGTGCGTAATTGATTTTTTTCCTAACTTGAA -TTGTTATGATCATAACTGCGAATTTTTTATTTTAAAAGGACGGGAAATACTGCCTAACTGTACAGGTGCA -TTTACAAAATCTTTACAATCATTAGTTTAGTGGGGTTAAGGTCATGAATTTGACATGAAGCAGAAATTTA -ATTATATTTTATGTTATAAGTTTAAAACGAATAACACGTTAGGTCTCGTCTAGGCAAAGCATATTTATGA -AGATGAATTGAACAGACAGAAGTAACATTTTATATACATATGTGCATGGGAGCACGCTTAAAGAGAACAG -TGTAACAAGGTATATCAACATACCATGGTGCAGTGTCTAGTTAAACTGAAACCTGCAATAGTAAATTTTC -TGCCATTATGTACAGAATCTACTATTGTAGGTTTTTCTTTTTATACATAAGCATTATGCGAGAGATTAGA -AATAAGGAGGTTATGCAGTGTTAAGTTTTCAATTGCTATTTTCACTGTTTGTTATTGCGCTTATCATTGC -ATTGATAAGTGGCTTGTTGTTTTTAGCACCAGTTATGCCAATGAGATATATTAAATTACATTTATACATA -CTAGTCATGCCAGTATTATTTGCAGTCATTGGCTTTTTCGGTATTCATGGTCAACATGTCTTAGGTCCAT -TTAAAATAGATCGTTTATCTTGGTTATTAGCTGGCTTTGTAATGGCGCTTGGCTTTATTATTCAAAAGTT -TTCAATGCGATATTTACTAGGTGATCATCATTATAGACATTACTTTCCATTGTTCACTGCGATTACATCG -TTTGCATCTTTAGCATGGATGTCTGAAGACTTAAGACTGATGGCACTCTGCTGGGGTATGACATTATTAT -GTTTAACATTGCTGATGAACGTTAATCGTTTTTGGAAAGTGCCACGTGAGTCTGCGAAATTATCAAGCAT -GACATTTTTATGTGGTTGGCTTGCATTCGTTGGAGCAATTGTATCTATTTATATTGCAACTGGCGAGTGG -CGGGTACCACAACATATAGCGCATCCGACATGGTCATTGTTGACGAATGTACTACTTGTATTAGCTGTCA -TGATACCGGCAGCACAATTTCCTTTTCATCGATGGTTGATTGAATCTGTAACAGCACCAACGCCAGTATC -GGCAATTATGCATGCAGGAATTGTGAATGCAGGTGGTGTTATTCTAACTCGTTTTGCGCCGATATTTGAT -AATGGATTTGCGTTATCATTATTACTTATCCTTTCAAGCATTTCTGTATTGTTAGGATCGGGTATTAGCT -TGGTTCAAGTTGACTATAAACGCCAATTGGTGGGCTCTACGATGAGTCAAATGGGCTTTATGTTAGTTCA -ATGCGCACTTGGTGTATATTCAGCAGCGATTATACATTTAATATTGCACGGTATTTTTAAAGCAACATTA -TTTTTACAATCAGGTTCTATCGTGAAGCGATTCAATATTCCAAAACAAGCATCTGCTAAAGACGCTTATG -GCTGGATTGTCATGGGACGTGTATTAGCTATTATCGTGGCATTTCTGTTTTGGATGAGTAGTGACAGAAG -TGCATATGAAGTGTTAAGTGCACTCATTCTAGCATGGTCATTACTTGTATCTTGGAATCAAATGGTAGCC -TTTAGTAAAGGGCGTATGGCACGTCTGGTTGGCATGATTTTGATTTCAATTGTGACATTTATCTACATCA -TCACACATAATTATTTTTACGATGTATTACAAAATATAACAACACATGCGACAACGCCGCCTACAATTAG -TGTCATCATTAGTGTTGTCATATTAATATTTGGTAGTTTATTAAGTATCTGGGTAGCGCGTCATCGATAC -TCTAAGACTTTTGCGGTATTGTACGTGTGGTTAGTTAATCTAGGAGAAGCACGCTCGAAAGCGATAGAAA -GTCATCCGAATTATTTGAAGAAGTATTTATAGGAGGTGAAAGGTATGACAACACAGTTAAATATCAATTC -AGTCATTGAAAATGCGAAACGTGTTATTACACCATTATCACCGATTTCGATTTTTGCAGCACGAAATCCA -TGGGAAGGATTAGAAGCGGATACGTTTGAAGATGTCGCAAAATGGTTACGTGATGTTCGCGATGTGGATA -TTTTCCCAAATAAAGCATTAATAGAAAGTGCTGTGGCACGCGGTGAATTAGACGAAAGTGTCTTTAATCA -ACTTGTTACTGATATGCTACTTGAACATCACTACAATATCCCGCAACACTACATCAATCTTTATATTGAT -AACATTAAAACATTAAAAGACGTACCTGCATCATACATGAATCATTCAAATGTTGATGTTGTTGCTGATC -TACTATTAGAAAAATCAAAACGTGATATGGCTGAATCATATCATCACTATGATGTACGTCCGATGAGTGA -TGCAATAATAGATGAACAAGGTGAGCCACTTAGCGAACAAGTGAATCGTCAAATGATTAAATGGACGAAA -CTTTATATCGATCAATTTCTATCGAGTTGGACAATGCCGAAGCGTGAGCAAAGTTTTTACCATGCATGGT -TGCATTTAGCGCAACATGACCATAGTTTTACTAAAGCACAGCGCCAAGTGATTAAAGGCTTACCCAATGA -TCCTAAAATGACGATAGAGTCAGTATTAAATCATTTTTCAATAGCGCAGGAAGACTACCAAGCTTATGTT -GAAGGACATCTTTTGGCGTTACCGGGTTGGGCAGGTATATTATACTACCGCTCACAACAGCATCACTTTG -AACAACATTTGTTAACGGATTATTTGGCCATTCGGTTAGTTGTCGAACAATTGCTAGTTGGTGATGAGTT -TAAGTCAGTCACTAAAGATTGTGAAAGCAGATCGGAAAATTGGTTTAAGCAAACTGTTGCATCATGGTGT -TACTACAGTGATATGCCTAGCGATGTATTACTACAACATGACGTCAATGAAATTCAAACGTTTATTCATT -TTGCAGCAACTATGAATAAAAATGTATTTAAAAATTTATGGTTGATTGCCTGGGAAATGACATACGAATC -TCAGTTAAAACAAAAAATTAAAGCAGGTCATGAAAGTGTGGCGGGCGCATTAGATGTAAACCAAGTAAAT -GTTACTGAAAATGACAACGCTAATCAGTCACATTCAGTATCGTTAAATGCCACACAAGCAGTTGATGAAA -ATAATAGCGAGCTAAATCAGGTGGGCACATCAACGAAAGCGCAAATTGCATTTTGTATAGATGTTCGTTC -AGAACCATTTCGTAGACATATCGAAGCAGCAGGGCCCTTTGAAACGATTGGTATTGCAGGTTTTTTTGGA -TTACCTATTCAAAAAGATGCCGTAGACGAACAATTCAAACATGATTCATTACCTGTCATGGTACCGCCGG -CATATCGCATTAAAGAATTTGCAGACCGCTACGATATGAATGTTTATCGACAACAGCAACAGACAATGTC -ATCGATGTTTTACACATTTAAATTGATGAAAAATAATGTTATGCCTAGTCTGTTATTGCCTGAATTAAGT -GGGCCATTTTTAAGCTTGAGTACCATTGTCAATTCGATTATGCCTAGAAAAAGTCGCGTGTCTTTACAAA -AAATAAAACAAAAATGGTTAAAAAAGCCTGAAACAAAGTTAACGATTGATCGTGAGTTTGACAGAACATC -AGACTTACCTGTTGGATTTACTGAACAAGAGCAAATTGATTTCGCGTTACAAGCGTTGAAATTGATGGAT -TTAACCGAAGCATTTGCGCCGTTCGTTGTGTTAGCAGGTCATGCTAGTCATTCTCACAATAATCCACATC -ACGCATCACTTGAATGTGGGGCTTGTGGTGGTGCATCAAGCGGTTTTAATGCTAAGTTATTAGCGATGAT -ATGTAATCGTCCAAATGTCAGACAAGGATTAAAACAAGCAGGCGTGTATATTCCAGAGACTACTGTTTTT -GCGGCAGCAGAACATCATACGTCTACTGATACATTGGCATGGGTATATGTGCCAGACACATTATCAGCTT -TAGCTCTAGATGCATATGAATCATTGAATGACGTCATGCCGATGATTTCTGAACACGCGAATCGCGAACG -TTTGGACAAACTGCCAACGATTGGTCGTGTGAATCATCCAGTGGAAGAAGCGCAGCGGTTTGCAAGTGAT -TGGAGTGAGGTACGTCCAGAATGGGGCTTGGCTAAAAATGCATCATTTATAATTGGACGACGCCAATTAA -CAAAAGGCATTGATTTAGAAGGGCGGACATTTTTACACAATTATGATTGGCGTAAAGATAAAGATGGCAA -ATTGTTAAATACCATCATTTCTGGTCCGGCGCTTGTGGCACAATGGATTAATTTACAATATTATGCGTCG -ACAGTTGCGCCGCATTTTTACGGAAGTGGGAATAAAGCGACACAAACCGTCACGTCAGGTGTTGGTGTCA -TGCAAGGTAATGCGAGTGATCTGATGTATGGCTTATCATGGCAATCTGTTATGGCTGCTGATCGAACGAT -GTATCATTCGCCAATTCGTTTGCTTGTCGTTGTTCAGGCACCCGATTTTGTTGTAGCTAGACTACTCGCG -AATAATGAGCATTTCGCTAGGAAGGTGTCTAATCATTGGCTGCGTTTAATGAGCGTTAATGAGGAAGGGC -GTTTTAAAAGTTGGATTTAACGATGAAATGTTGCGATGCTAAGTAACTAATATATCATCATATCTACAAT -GTTCTAGCTTCTTAAAATATACTAAAAATGATAAACTTAATGTTATAGTTGATGTCGTGATAACGATACA -AAGATGAAGTAATCAATTTTAATATTATTGGAGTTAGTGATATGAAAAGAACGAAAGGTGAAATCGAAGC -TGAAATCAGTAAAGCCATTACGCAATGGGAAAAAGATTTCCTTGGCAGAGGTTCCTTGTCGGTTAAATCA -GACATTTTAAGAGATATGGTGATTATTAGTTTACAAGGTATCTTAACGCCAGCAGAATATCGTGTGTGTA -GTACGAATGAAGGATTATTAAATATTAAACGAACACGTTCTGAATTAGTTGAATCCGGTGAGCAAGATTT -GAATGATATCATTTTTAAAATTACAGGTATCAAAGTGATGAGCTTCCATAGTGATTTAAGTACAGTTACA -GGTGAACGTATTATCGTATTCAAACTTGAGGATAATTTGGAAAAGCATATTTAAGAAGGTTAGGTATGCT -TCTGCAGGCTTATTAAAGCTATAGAAGTATGCTTGGTTAAACAGCGCAACGCCATATATTTGGGTGTGCT -GTTTTTCTATTATATGATGTGTTTATCATGTGTATGTATGCATTGGTTTGAATATAGCCCGTGAAAGGTG -TATGTCATAAAATTTGTGAATGGTGACAAGTCAACGCAAGCATATTTGTTGCGAGACATGCCCACTATCC -TTTTACATAAAGAGTATATGTGTGACGTAGGCATATAATCGATAAAGTATACCTAAAAAATTAGGTATAA -TGACCATTGTTGCAATAAGTTTTTCGGCCTTGAAACCGATAACGCATAGTATAATAGGAATAAAATATAA -TACAAATATCCAGTAAATCAAATTTGAAAACGATGGATGTATAGGGGTAAAGAATCTAACTAATGTAATG -ATTAACGCTATATAGACAAAAATTACTCTATTGATACGCCCTACCCCCTCTGTATAATAAATATAGATCG -TACTAAATTGAAAATAGCAAAATATTGTTATTTCAATTATACAATGTTTTATTTGCAATATACATAACAA -TATGAACTTTATAATTTTGATATTGTCGGTAAAGTGAAATTTGTGGCACATTGATATTATGGATAACATT -TGTAAAATGAAAATGATGATACGAGGAGATTGTAAGATGATAGATAAAAAATTAACATCACCGAAAATGA -CAGTGCCTTTATTTTTAATCGCGCTGATTGTATTTATAGGTATGTTTTACAGTGTAGTGACAAATCAAGA -ATGGCTTAAAAATATAGATATGGGATCATTAACATGGTTTACAGATTATTTCGGTGAGCCACAACGCCAG -TATGTTAACAATTTATTTAATTACTATATGACGTTTAGTGCGGAAATTGGAGATGTCAAAGGTGTCGTGT -TGATTTCCATTATCGTCACAATCATACTGTTTATTAAACAGAGGCATTTAGCGGTTTGGTTTGTGACATA -TTTGGTTTCAGGTGTCATCATGAACAAATTAATTAAAGATACTGTTTTACGTCCAAGACCATATAATCAT -TTAGCCGTTGATACAGGCTTTTCATTTCCGAGTGGACATTCTAACGCCAGCACATTATTATATTTCGCCT -TAATGATCATTATTATTTCAGTTGCTGCTAAGACAATGACAAAAGTGTTGAGTGCGCTGGTTATGGGAAT -ATTATGGCTTAGCATATTATTTTGTCGCCTTTATTTTCATGCGCATTACTTTTCAGATGTCATTGGCGGC -ACGTCACTAGCAATCATTTGGGTAGCGTTATTCTTAATGGTATACCCATACTTTATTAATCATCGACGAC -AACGCGTTTAGCAAACATCTTTAGACATAGTGGAGGTATATAGAAAAATGAGAATTAAAACACCGAGTCC -ATCTTATTTAAAAGGCACAAATGGACATGCGATATTATTATTACATTCATTTACAGGTACAAATCGGGAT -GTGAAGCATCTTGCAGCTGAGTTAAATGACCAAGGATTTAGTTGTTATGCACCGAATTATCCAGGTCATG -GTTTATTATTGAAAGATTTCATAACATATAATGTAGATGATTGGTGGGAAGAAGTTGAGAAAGCTTACCA -ATTTTTAGTCAATGAAGGTTATGAATCTATCAGTGCAACGGGTGTGTCTTTAGGTGGATTAATGACATTA -AAATTGGCGCAACACTATCCTTTGAAACGTATCGCTGTCATGTCAGCACCAAAGGAAAAGAGTGATGATG -GCTTAATAGAACATTTAGTTTATTATAGTCAACGCATGTCGAATATTTTAAATCTAGATCAGCAAGCATC -GAGTGCGCAATTAGCAGCAATTGATGATTATGAAGGTGAAATTACGAAGTTTCAGCATTTTATTGATGAT -ATCATGACAAATTTAAATGTTGTTAAAATTCCAGCTAATATATTATTTGGTGGTAAAGATGCGCCATCCT -ATGAAACAAGTGCACACTTTATTTATGAACATTTAGGATCAGTAGACAAAGAATTAAATGGTCTGAAGGA -TTCTCATCATTTAATGACGCATGGAGAAGGCAGAGATATTTTAGAAGAAAATATTATTCGCTTTTTCAAT -GCTTTAACATAATTGAAGATTTTAAAAATTAACACTTGAGTGACGATGTTATTATATTTGTCATTTGAGT -GTTTTTTGTGGCGTGATAGTATAGGGAACTTAGACAAAGTTAATTTGTATTGTGATGTCGTGGAAATATT -ATGTAGTTATACCTGAAGTTGATTTGTATTGTGATGTTGTGGGAATTTTGTGGGCATTGTACCTGAAGTT -GTTATGTGGCGAGATGTTGGGGATATGGATGGTGTTGTATGTGGCGAGATGTTGGCGCAAGTATACAGCG -TTGAACCAGAAATTTTAATGTAGCGTAATGACAACACGTTACAAGGGATTTCCTATATTATGATAAACTC -AGGCGCTACCGTATTAATGAAACAATTTTGATGCAGGTGTATTGCATGTTATTTACATACATGTTAGAGT -GTTACTTAAACACGTAGACGCTTTAACGCTTTAAAGGAGATGTGAATGATGAAAAGACAACAATCACAAT -GGAAGTCATCAACTGGATTTATTTTAGCTAGTGCGGGTTCTGCAATCGGTCTTGGTGCCATGTGGAAATT -CCCATATATGGCAGGGATCTATGGCGGCGGTGCCTTTCTAGCTATGTTCTTAATATTCACCATTTTTGTT -GGATTACCATTACTCATTATGGAATTCACTGTTGGGAAAATGGGACGGACATATACAACACAAATATATA -GTAAATTAACTGGTAAAAAATGGCTCAATATCATTGGCTGGAACGGTAATTTGGCAGTGTTTATTTTATT -TGGCTTCTATAGTGTTATTGGTGGTTGGATTGTCATTTACATCGGACAAGTATTATGGCAATTAGTTATA -TTTCAACGCATCAATCATCTCCAAGAAATGAATTTTGAAGCGGTAATATCAAATCCTTGGTTAACCGTTC -TAGGGCAAGGTATATTCATATTCGCTACGATGATTATTGTCATGTTAGGTGTTGAAAAGGGATTAGAAAA -GGCATCGAAAGTTATGATGCCGTTGCTGTTTGTCTTTTTAATCATCATTGTGATTAAGTCTTTAACATTA -GATGGTGCCTTAGAAGGTGTGAAATTTATTTTACAACCAAGAGTGTCAGAGATTACTGCTGATGGAATCT -TGTTTGCGCTAGGTCAATCATTCTTTACGTTATCATTAGGAACTACAGGTATGATTACTTATGCGAGTTA -TGCCTCTAAAGACATGACGATTAAGTCATCAGCTATTTCTATCGTTGTTATGAATATCTTTGTATCTGTA -TTGGCAGGCCTAGCTATATTTCCGGCGTTACATAGTTTTGGCTATGAGCCACAAGAAGGGCCTGGATTAT -TATTTAAAGTACTGCCAATGGTCTTTAGTCAAATGCATCTAGGCACATTATTCTATTTGGGATTCTTAGT -GCTGTTCTTATTTGCGGCTTTAACGTCATCTATTTCTTTATTAGAATTAAATGTTTCTAACTTCACGAAG -AATGACAATACAAAACGTAAAAAAGTCGCAGTGATCGGTAGTATATTAGTATTTATCATTAGTATTCCAG -CAACCTTATCTTTTGGTATCTTAAAAGATGTAAGATTCGGTGCGGGAACGATTTTTGATAATATGGATTT -CATCGTTTCGAATGTATTGATGCCATTAGGCGCATTAGGTACTACGCTTGTCGTAGGACAATTATTAGAT -AAAAAGTTATTACAACAATATTTTGGTAAAGATCGATTTAGATTATTCAGTGGTTGGTATTACTTAATTA -AGTATGCGATGCCTGTCGTTATTATTTTAGTCTTTATCGTGCAATTATTTAGTTAATATATAGAAGCATC -TGACACACAAGTATTTGTGTTGCTCAGGTGTTTTTTTGTTTGGAATTGAAAATTTTGTACTGGTTCTGAA -TTAATCGAAACTTAGATAATTGCAAAATAACAAAATGTCGTTTATAATTCTTATCTTAAAAGTAAGAATT -AAAATTGAGACATGAAGAAAGGTTTCATTCATTTGATCGGCATGTCAGATGAGGGTGCATCTATGATTAC -TTATGATTTAATTGGCAATACACCATTAGTACTGTTAGAACATTATAGTGATGATAAAGTTAAAATTTAT -GCCAAGCTTGAACAATGGAATCCTGGAGGCAGTGTTAAAGACAGACTCGGGAAATATTTAGTAGAGATGG -CAATTCAAGAAGGGCGTGTGCGTGCAGGTCAAACTATTGTTGAAGCGACTGCTGGCAATACAGGCATAGG -GTTAGCTATTGCAGCAAATAGACATCATTTGAAATGTAAGATCTTTGCGCCGTATGGTTTTTCAGAAGAA -AAGATTAATATTATGATAGCGCTTGGTGCAGATGTTTCAAGAACGAGTCAGTCTGAAGGTATGCATGGGG -CACAATTAGCTGCACGTTCATATGCTGAAAAATATGGTGCCGTTTATATGAATCAATTTGAATCCGAACA -TAATCCGGATACATATTTTCATACATTGGGACCCGAATTGACTTCAGCATTACAGCATATTGATTATTTT -GTGGCTGGTATTGGCTCTGGCGGTACATATACAGGTACCGCACGTTATTTAAAGCAACATCACGTGCAAT -GTTATGCCGTTGAGCCAGAAGGGTCCGTGTTAAATGGAGGGCCAGCTCATGCACATGACACTGAAGGTAT -CGGTTCTGAGAAATGGCCGATATTTTTAGAGAGAAGTCTTGTAGATGGGATATTTACGATTAAAGATCAA -GATGCCTTTCGAAATGTCAAAAGTTTGGCAAAGCATGAAGGATTATTGGTAGGCAGTTCTTCAGGTGCAG -CATTACAAGGTGCATTGAATTTAAAAGCGCAATTATCTGAAGGTACGATTGTTGTCGTATTTCCAGATGG -TAGCGATCGATATATGTCTAAGGAAATATTTAATTATGAGGAGAATGATTATGAATAAGAAAACGAAATT -AATTCACGGTGGACACACAACGGACGACTATACAGGTGCAGTTACAACACCAATTTATCAAACAAGTACA -TATTTACAAGATGATATTGGTGATTTACGTCAAGGATATGAATATTCTCGTACTGCGAATCCAACAAGAA -GTTCTGTAGAAAGCGTTATTGCGTCATTAGAAAATGGCAAACATGGCTTTGCATTTAGTTCAGGTGTTGC -AGCAATCAGTGCAGTTGTTATGCTGTTGGACAAAGGTGATCATATTATTTTAAATTCAGATGTATACGGC -GGTACTTATCGCGCATTGACAAAAGTATTTACACGATTTGGCGTTGAAGTGGATTTTGTAGATACAACGC -ATACAGATTCAATTGTACAAGCGATACGCCCAACAACAAAAATGTTATTTATTGAAACACCTTCTAATCC -ATTATTACGTGTTACTGACATTAAAAAGTCTGCTGAAATTGCGAAAGAACACGGTTTGATTTCAGTCGTT -GATAACACATTTATGACACTTTATTATCAGAATCCATTAGATTTAGGCATCGATATTGTCTTACATTCTG -CAACGAAATATTTAGGTGGACATAGTGATGTCGTTGCTGGTTTAGTTGCAACATCGGATGACAAGCTTGC -AGAACGTTTAGCATTTATTTCAAATTCAACAGGTGGCATTTTAGGACCTCAAGATAGTTATTTACTTGTG -AGGGGGATTAAAACATTAGGTTTACGTATGGAACAAATTAATCGCAGTGTTATTGAAATTATTAAAATGT -TACAAGCACATCCAGCTGTGCAACAAGTGTTCCATCCAAGTATTGAAAGTCATTTAAATCATGATGTCCA -TATGGCTCAAGCGGATGGCCATACAGGTGTGATTGCTTTTGAAGTGAAAAATACAGAAAGTGCCAAACAA -TTGATTAAAGCAACATCGTATTACACATTAGCTGAAAGTTTAGGTGCAGTGGAAAGTTTAATTTCAGTAC -CTGCATTGATGACACATGCATCTATTCCAGCAGATATTCGAGCTAAAGAAGGTATTACAGACGGACTTGT -AAGAATTTCTGTAGGTATTGAAGATACTGAAGATTTAGTAGATGATTTAAAACAAGCACTAGATACGTTA -TAAATAATAGCAGCACTGGCATATATTTTGAGTTCAACGTTTGTTGTTCTTGAATATGCTAGTGCTTTTT -TGTGTGGTGTTAATATTTCGTAATTGCATTGTGGAGGATTGCTGGTCATTTTTATTCATTTAATTTGATA -AATGTCATAGTAGTCTCACAATTCGTCATTGTCACAAGGTATTATTTTTTAATTTTTTAGAAAATTCGGC -AAATTGTATTGACGATATATGCAATTTTACATATAATGCTCTTATTCCTAGTGGATTAATAAGAATTTGT -AGGAGGGGCGATGATGATTGAGTTTCGACAAGTTAGTAAATCATTTCATAAGAAAAAGCAAACAATAGAT -GCTTTGAAGGACGTATCATTTACGGTCAATCGCAATGATATTTTTGGTGTGATTGGATATAGTGGTGCAG -GAAAAAGTACGTTGGTAAGACTCGTGAATCATCTTGAAGCTGCCTCGAATGGACAAGTGATTGTAGATGG -ACATGATATTACGAATTATAGCGATAAAATGATGAGGGATATTAAGAAAGATATCGGTATGATATTTCAG -CATTTTAATTTACTAAATTCAGCTACGGTATTTAAAAATGTAGCTATGCCGCTCATTTTAAGTAAGAAAA -GCAAAACAGAAATTAAGCAACGAGTAACGGAAATGCTTGAATTTGTAGGATTGAGTGATAAAAAAGACCA -ATTTCCTGATGAATTATCTGGTGGTCAGAAGCAAAGGGTGGCTATTGCAAGAGCGCTTGTTACTAATCCG -AAAATACTCCTATGCGATGAAGCAACAAGCGCATTGGATCCAGCAACGACTGCTTCGATATTGACGTTAT -TAAAGAATGTCAATCAAACCTTTGGCATTACAATTATGATGATTACACATGAAATGCGCGTTATTAAAGA -CATTTGTAATCGTGTTGCTGTAATGGAAAAGGGGCAAGTGGTTGAAACAGGAACTGTTAAAGAGGTGTTT -AGTCATCCTAAAACGACGATTGCTCAAAATTTTGTGTCTACAGTTATACAGACTGAGCCAAGTCCATCAT -TGATTCGTCGATTGAATGACAAACAAGTTGGCGATTTTAAAGATTATAAAATCTTCGTCGAGGAAACTCA -GATGACACAACCGATTATAAATGACTTGATTCAAATTTGTGGCAGAGAGGTTAAAATTTTATTTTCATCC -ATGTCAGAAATACAAGGTAACACCGTATGTTATATGTGGCTTCGATTTAATATGGATCAACAATTTGATG -GCACGGCAATAAATCAATATTTCAAAGAGAAAAATATTCAATTTGAGGAGGTGCATTAACATATGTTTGG -TTCTGATTTAGACAGTGCACAGTTATTACAAGCATTATACGAAACACTATATATGGTATCTATTGCTTTA -TTTTTAGGAGCAGTGATTGGTATTCCATTAGGTGTCTTATTGGTAATTACTCGAAAACAAGGCATATGGC -CCAATATAGTGATACATCAAGTTTTAAATCCTATAATCAATATTTTAAGGTCACTACCATTTATTATTTT -GTTGATTGCGATTGTGCCATTCACAAAATTAGTAGTAGGTACTTCCATTGGTACGACTGCTGCCATCGTG -CCTTTAACAGTATATGTGGCACCTTACATTGCAAGACTTGTTGAAAACTCATTATTGGAAGTAGACGAGG -GGATTATTGAAGCGGCGAAAGCGATGGGCGCTTCACCACTACAGATCATTAGATATTTTTTAATTCCTGA -AGCGTTAGGTTCATTAGTATTAGCAATTACCACTGCGATTATTGGACTTATTGGAAGTACGGCGATGGCA -GGCGCTGTTGGCGGTGGTGGTATAGGAGACTTAGCTTTAGTGTATGGTTATCAAAGATTTGATACGACGG -TCATTATTATTACCGTTATTGTATTAGTCGTTATTGTCCAAGTGATTCAAACGCTAGGGAATGTCCTAGC -TAGATTCATACGTAGACATTGATGATATATAGTGAAGATTTTGAAAGGAATTGATAGAATGAAAAGATTG -ATTGGGTTAGTTATCGTAGCACTTGTATTATTAGCAGCGTGTGGTAGTAACAATGATAAAAAAGTAACAA -TTGGTGTCGCGTCAAATGACACTAAGGCTTGGGAGAAGGTTAAAGAATTAGCTAAAAAAGATGATATTGA -TGTGGAGATTAAGCACTTCTCCGATTACAATTTACCGAATAAAGCATTAAACGATGGTGATATTGATATG -AATGCATTCCAACATTTTGCATTTTTAGATCAATATAAAAAGGCGCATAAAGGAACAAAGATTTCAGCAT -TAAGTACAACAGTTTTGGCACCGTTGGGCGTTTACTCAGATAAAATTAAAGATGTCAAAAAGGTTAAAGA -TGGTGCTAAAATTGTCATTCCAAATGATGTGTCAAACCAAGCACGTGCACTTAAACTATTAGAAGCAGCT -GGTTTAATAAAACTGAAAAAAGATTTCGGATTAGCAGGTACAGTGAAAGATATAACGTCAAATCCAAAAC -ATTTAAAAATTACTGCAGTAGATGCACAACAAACTGCACGTGCTTTATCTGATGTCGATATTGCAGTTAT -TAATAACGGTGTAGCAACTAAAGCTGGGAAAGATCCAAAAAATGATCCGATTTTCTTGGAAAAATCAGAT -TCAGATGCTGTAAAGCCATATATTAATATTGTTGCAGTTAACGACAAAGACTTGGATAACAAAACATATG -CTAAAATCGTAGAATTGTATCATTCAAAAGAAGCTCAAAAAGCGTTGCAGGAAGATGTCAAAGATGGAGA -GAAACCTGTTAATTTATCTAAAGATGAGATTAAGGCAATAGAAACGTCATTAGCAAAATAAATTATATTA -CGTCCTACAAGCATAGTTCATGCTTAAGTTTGTAGGGCGTTTTTGTTTGCCTATAAAAATGTTTCAAAAG -ACAGAAAGGGATTGTAATCATTTTATAGTGAAATATTATGAAATTGTAATAATTTAGATATTGTAAAATC -TAATAAGTTGTAATAATTTTAAGAGGTAATTATAAAATTTGATGACACAGTATATGATTTTTTTGTAATC -ATAATGTCATCAAACATCAACCTATTATACATAATTAAATCGTATAATGATGTAGTATTCATAAATTCGG -ATAAAAAGAATGTTAGGAAAGTTATGCAAGAGGAGGATTTTAAAGTGCAAAAAAAAGTAATTGCAGCTAT -TATTGGGACAAGCGCGATTAGCGCTGTTGCGGCAACTCAAGCAAATGCGGCTACAACTCACACAGTAAAA -CCGGGTGAATCAGTGTGGGCAATTTCAAATAAGTATGGGATTTCGATTGCTAAATTAAAGTCATTAAACA -ATTTAACATCTAATCTAATTTTCCCAAATCAAGTATTAAAAGTATCTGGCTCAAGTAATTCTACGAGCAA -TAGTAGCCGTCCATCAACAAATTCAGGTGGCGGATCATACTACACAGTACAAGCAGGCGACTCATTATCA -TTAATTGCATCTAAATATGGTACAACTTACCAAAACATTATGCGACTTAATGGTTTAAATAATTTCTTTA -TTTATCCAGGTCAAAAATTAAAAGTATCAGGTACTGCAAGCTCAAGTAATTCTACGAGCAATAGTAGCCG -TCCATCAACGAATTCAAGCGGTGGATCATATTACACAGTACAAGCAGGTGACTCATTGTCATTAATCGCT -TCAAAATATGGTACAACATATCAAAACATTATGAGACTTAATGGCTTAAATAATTTCTTTATTTATCCGG -GTCAAAAATTGAAAGTAACTGGTAATGCATCTACGAACTCAGGATCTACTACAACGACAAATAGAGGTTA -CAATACACCAGTATTCAATCACCAAAACTTATATACATGGGGTCAATGTACATATCATGTATTTAATCGT -CGTGCTGAAATTGGTAAAGGTATTAGCACTTATTGGTGGAATGCAAATAACTGGGATAACGCAGCGGCTG -CAGATGGTTACACAATTGACAATAGACCTACTGTAGGTTCAATCGCTCAAACAGATGTAGGTTATTATGG -TCATGTTATGTTTGTAGAACGCGTAAATAACGATGGTAGTATTTTAGTTTCAGAAATGAACTATTCAGCT -GCACCAGGTATTTTAACTTACAGAACGGTACCAGCTTACCAAGTAAATAATTATAGATATATTCACTAAA -GTCTTACGTATATAAATATATATAATGAATTCCTATTACATTTCACAAGCTGAAAAGTTGGATTTAATCC -TAAACTTTATGGCGTGACTATCAAAGTCGTGATTATTGTAATAGGAATTTTTGTATAAGAAAAAGGATTG -ATCGAATGAACGTCATGCTCTATGTTCGACCAATCCTTTTCTGATTTAGTATTCATGCTTTACTTTGCGA -ATGCTTGTAAATAATCTAGCACCGTTTGTTATTAAAGTAACAACTGCCACTGCTTTTTTGAACTTGCGTG -GTGACTTAATTGAAATGTAAAAGTCTAACACGGTTCCTACAGTGCTTAAACCTAATGAAAGATATACTAA -TTTTTTATTTTTAGCATGATATTTATAGCCATTGTAGCCGTCGACTATGAAACCTGCGACATTTAGTAAA -CTTGATAAACGTTGTGATTTGGAACGTTTTGCCATAATAATAATTCCCCCTAGTATCTTCTGTTTATATG -GAATAATTGGGTGCGCTGAATTGCTAACGTTTTGCGCTATAACTACTCATATATGATAACATAATTGTAC -AGTATAATTTGAAAAATTGATTTCACAAAGTTGGGGTGTCAAAGATGATTAAATGTGTCTGTTTAGTAGA -AGAAACAGCTGATAAAATATTGCTTGTTCAAGTAAGGAATCGCGAAAAGTATTATTTCCCAGGTGGTAAA -ATAGAAGAAGGGGAATCACCAGTACACGCGCTGTTAAGAGAAGTAAAAGAAGAATTAAATTTAACATTAA -CAATGGATGAAATTGAATATATCGGGACAATTGTAGGTCCTGCATATCTACAACAGGATATGTTAACTGA -GTTAAATGGATTTCGCGCATTAACCAAAATCGATTGGGAAAACGTAACTATCAATAATGAAATTACGGAT -ATACGCTGGATTGATAAAGATAATGATGCGTTGATTGCGCCTGCTGTCAAAGTTTGGATTGAAACGTATG -ATGGTAAACATGACAAATAATGACACCATCATGTTACGACATTATGTCCCACAAGATTATTCGATGTTAG -AAGCTTTTCAATTAAGTGAAAGTGATTTGAAGTTTGTTAAAACGCCAGAGGAAAATATTACAGCTGCAAT -GTCTGATAATGAAAGGTATCCCATCGTTGTAATGGATGGCAGGCAATGTGTGGCCTTTTTTACATTACAT -CGTGGAAAAGGTGTCGCACCATTTAGCGATAACCAAGATGCAGTATTTTTCAGGTCATTTAGTGTTGATC -AACGTTATCGTAAAAGAGGAATAGGTAAAGTGGTAATGGAAAAATTGGCGTCATTTATCACTTCAACATT -TCAGGATATTAATGAGATTGTGTTAACGGTTAATACTGACAATCCACATGCCATGGCACTTTATCGCCAA -CAAGGATATCAATATATGGGAGATAGTATGTTCGTCGGAAGACCTGTTCATATTATGGCGCTAACTATAA -AATAAATTAAATTTAAAAGCATCTTTACTCATCGTCGACCACAACAATTAATGATGAATAAAGGTGCTTT -TTGTTATAGACCACCGGACAATTTACTATAGTAAAAAGCGACCTAGGGAACAATTGACATATATCCACAG -GTCGCTTACCTTAAGTTATATTGCTAGTTGCGATTAATTGATAGACTCATCATTTTTGCGCTGTCGAGAT -GGTCTTTTTATTAAAAATGCCGTAATCCAAGCCGTAATCGGAATACTGATTGCAACGGCAATACCGCCTA -AAATAATAGAAATAAATTCTTGGGCAAATATTTTCGAGTTTATAATATGACCAAATGAATATTTAAGTTT -GAAAAACCAAATAAATAAAGCAAGTTGACCACCAAAAAAGGCAAGGTAAATCGTGTTCGCAGATGTCGCT -AAAATTTCTCTACCAACACGCATGCCAGATTGGAATAATTCGTATTGCGTAAGTGTTGGATTCACTTGAT -GCAATTCATAAATGGGTGAACTAATGGTAATCGTTAAATCTATCACAGCTGCAATAACAGCAAGAATAAT -AGTGAACACCATAAATTGAATCATATCAATGCCAATATTCATTGAATACACATATGTTTCATCTTGTTGT -TCGGTTGAAAAGCCTTGTAGATGACCGAAGTAGACCGATAAATAAATGAGTGTAATCAACAATATTGTTG -TAACGATAGTGCTGATAAATGCAGCTTGTGTTTTAACATTGTAACTATTGAGTACGAATAAATTACAAGC -GCCAATAATAATGCAGAAAAAGAATGTGACGACATAAATCGGTACGCCAAAAATAATCAATACAATACTA -ATAATTAAAATAGCGAAATTTAAAAATAGGGTTAAATAAGAGATGAATCCCTTTTTACCTCCGAAAATTA -TCATCAGAAAGAGGAGCAATAACGCCAATATAAATACAGCATTCATTGTTTCGCCCTCCTTAATGTTTCA -AATATTTCCATAAACAATATTGTGATAGGAATTGTAAGTACGATACCTATACCGCCTGTTAGTGCGCGCG -CAATTTCTAACGACCAATTCATCGAAATAGTATAAGTCACTGTATTGGCATTTTTTAAAAAGATTAAAAA -CATAGGTAGTGCACCGGATAAATATGAGAATAATAAGATGTTAGTCATTGTTCCCATAATATCTTGGCCT -ATGTTTCGCCCAGCAAGCGCCCATCTCCTCATTGAAATGTGCGGCGTACGCTGTAAAATTTCATGCATAC -CACTAGCAATTGTAATTGCAACATCCATAATAGCGCCAAGTGAACCTATTAACACTGAGGCTAGGAAGAT -ATCTTTCGGTGGTAATGATAAAAAGTTCATCGTTTCATATTTAATGCCTTTACCATCTGTCATATATATG -ATTAATTCTGTTAAACCTATACTCAAAAAAGTTCCGATAATTGTACTGGCTATGGTAATGAGTGTACGCA -TATGCCAGCCTGTAACGAGCAATAAAGTGAGTATTGTTGAACAGATCATGGCAATGGTCATGAGTAAGAA -TAAATTAATATTGCTATGTTGAATATGAATGTAAATTGCGATTAATATGGCAATAGAATTCAAGATTAAT -GATAAAATCGATTGCAGTCCGACTTTGCGACCAACCAATAATACAGTTAATAAGAACAAACCAGTGATGA -TAACCGTTAAGGTATCACGCTTCTTTTCTATAATATAAGCATCACTCGGCTTGTTAGAAATATGTAATAA -TACTTTTTCGTGTGTGCGAAATGCCTCAGAATCTGCTTGCGATTTGACGTACTGATGATTAATCGTCGTC -GTTTCTCCAGCAAATTGACCATTTAATATTTTGACTTTTAATTGATTTTTATATTTAATATCACGATTAT -TTTGTGCATCTTTTGTAGGTGTCGAAGAAACATGTTTGACATCTATAATTTGACCAATTGGTTTGTTGTA -AAAGTTCTCATTATTGAATGTGAATAAAATAGCACCAATGAATGCGATGCAGAACAAACCTAAAATTATA -TTAAATGGCTTTGTAAATAAATTTCTATATTTCAAAAACAAAACCCCAATTCTATGAATGAATTAATATG -GTGATTATACGCCCTTAATTTTTTATTTTCAAAGATATTACTGTGAAATGTATAACGAAAATCATCATTG -ATAGAGTCGAATGGCTTAATGGAATGTAGACGTTTTAGTCATTAATTGTTGAATGAGTGTTAATAAGATA -CCAATATCACTCTTCGTATAAGGTTCTTTCGTAATAGCACATATCGTTCTTTTTAATTCAGTATGGTCTA -ATTTTATATCTATACATGATTTAGATTCTGGTAAATGTATATTTTGTGATGAAATGATGTAACCTTCTTT -TTGACGAAGGAGATACTGCGCAAGTGGTTGGCTACTGATTGTGTATACATCTGATTTAGTAATCTTACGC -AATTGTTTTTTTACAGATTCGGCAAATGGTCCCAAGCAATAAATATGACTATGCTCAAACTGAATTAATG -GTGGGTGTGTCGCCATCGTGATTGGATCGTCTGAAGGCGCATATAAATGATAGTGCTCTTCGAATAAAGG -TAGCATATGTAATTGTTTGTGTTTACGTATTTCTGGTGTAAGTTCCGTGAAACCAATGTCTATATTTCCA -TTTAATACGCTATTTATAATTGTGTCATGTTCTAATAAATTAGGGATGACATGTGTATCATTTTGTAAAT -GAAACGTTTGGATAAGTGGTAGTAACATGTGGGATACGTCACTCTCATTATAGCCAATGTAGATGCTTTT -ATTTTTAGTTAATCCATGACTTTGAAATTGTTCAATCGTGCTATCTAAATGTTCAATAATACGCAGAGCT -TCATTAAATAATAATTTCCCTTCAGATGTGAGCGTAATATTACGTCCTTGCTTTTTAAATAATGACACAT -TAAGTTCTTGTTCTAATAATGTAATTTGACGGCTTATCGCTGATTGAGCAATGTTTAGTTCAAGTGCTGT -TTCGGAGATATGTTCTCTTTTAGCGACCTCGATAAAATATCTTAATTGTTTAATTTCCATAGCGATATAG -GCACCTCCAAAAATGAGTGTTTTGTAACTATTATAGCAATATTATTGATAAATGTTCTATTTTTTAGATG -AATATCTTCTATTTTATATATTGAACAGATAAATTTTTTAGATTATAGTAATTATCATTAATAACTAATA -TCAGAATATTCTAAAAAAGGGGTGTGCATCATGCACAATGAGAAATTAATTAAAGGCTTATATGACTATC -GTGAGGAACATGATGCGTGTGGTATTGGTTTTTATGCGAATATGGACAATAAAAGGTCTCACGACATCAT -TGATAAATCGCTTGAAATGTTGCGACGTTTAGATCACAGGGGCGGGGTCGGCGCAGATGGCATCACTGGT -GATGGCGCAGGTATTATGACTGAAATACCTTTTGCATTTTTCAAACAACATGTAACGGACTTTGATATCC -CAGGTGAAGGTGAATATGCCGTGGGGTTATTTTTTTCCAAAGAACGCATTTTAGGTTCTGAACATGAAGT -AGTTTTTAAAAAATATTTTGAAGGCGAAGGGTTATCAATTCTTGGTTATCGTAATGTACCAGTTAATAAA -GATGCCATTGCTAAACATGTAGCAGATACGATGCCAGTCATTCAACAAGTGTTTATTGATATTAGGGACA -TTGAAGATGTTGAAAAGCATTTGTTTTTAGCGAGAAAACAATTAGAGTTCTATTCGACTCAGTGCGATTT -AGAATTGTATTTTACGAGCTTATCACGCAAAACAATTGTATATAAAGGTTGGTTACGATCAGACCAAATT -AAAAAATTCTATACAGATTTATCGGATGATTTATATCAATCAAAGCTAGGGTTAGTGCATTCGAGATTTA -GTACGAATACATTCCCGAGTTGGAAAAGGGCGCATCCTAACCGTATGTTAATGCATAATGGTGAGATTAA -CACGATTAAAGGTAATGTGAACTGGATGCGAGCACGTCAACATAAATTAATCGAAACATTATTTGGTGAG -GATCAACATAAAGTGTTTCAAATTGTCGATGAGGATGGTAGTGACTCTGCTATTGTAGATAATGCGCTAG -AGTTCTTATCGTTAGCCATGGAGCCAGAAAAGGCAGCGATGCTACTCATACCTGAACCTTGGTTATATAA -TGAAGCGAATGATGCAAATGTACGTGCGTTTTATGAATTTTATAGTTATTTAATGGAGCCGTGGGATGGT -CCTACAATGATTTCGTTCTGTAACGGTGACAAACTTGGCGCGCTTACAGATAGAAATGGATTACGTCCAG -GTCGTTATACGATTACTAAAGATAACTTTATTGTCTTTTCATCTGAAGTGGGTGTTGTGGACGTACCTGA -AAGTAATGTTGCTTTTAAAGGTCAATTGAATCCTGGAAAGTTATTGCTTGTTGATTTTAAACAGAATAAA -GTCATTGAAAATAATGATTTAAAAGGTGCGATTGCCGGAGAATTACCATATAAAGCGTGGATTGATAACC -ATAAAGTTGATTTTGATTTTGAAAATATACAGTATCAAGATTCGCAATGGAAAGATGAGACGTTATTTAA -ATTACAACGTCAATTTGCATACACGAAAGAAGAGATTCATAAGTATATTCAGGAACTTGTAGAAGGTAAG -AAGGATCCTATCGGTGCAATGGGATATGATGCGCCAATTGCAGTGTTGAACGAGCGACCAGAATCACTAT -TTAATTACTTTAAACAGCTGTTTGCACAAGTTACGAATCCACCAATTGATGCGTATCGTGAAAAAATCGT -AACGAGTGAACTTTCTTATTTAGGTGGCGAAGGTAACTTACTAGCACCTGACGAAACGGTTTTAGATCGT -ATTCAATTGAAAAGACCGGTATTGAATGAATCACACTTAGCAGCGATTGATCAGGAGCATTTTAAATTAA -CATATTTATCAACGGTATATGAAGGGAATTTGGAAGATGCGTTAGAAGTATTAGGCCGAGAAGCAGTGGA -TGCTGTAAAGCAAGGCGCTCAAATTCTAGTGTTAGATGATAGTGGATTAGTTGATGGCAATGGCTTTGCA -ATGCCGATGTTACTCGCAATAAGTCATGTGCATCAATTACTTATTAAAGCAGATTTACGTATGTCTACAA -GTTTAGTCGCTAAATCTGGTGAGACACGAGAAGTGCATCATGTTGCTTGTTTACTCGCATATGGAGCGAA -TGCAATTGTGCCATACCTAGCGCAACGTACAGTTGAACAACTGACATTGACAGAAGGGTTACAAGGCACC -GTTGTCGATAATGTTAAGACATATACGGATGTATTGTCGGAAGGTGTTATTAAAGTAATGGCGAAGATGG -GAATTTCGACAGTGCAAAGTTATCAAGGTGCACAAATATTTGAAGCGATTGGCTTGTCTCATGATGTGAT -TGATCGTTATTTTACTGGAACACAGTCTAAGTTATCTGGTATTTCGATTGATCAAATTGATGCTGAAAAT -AAAGAACGTCAACAAAGTGATGATAATTATCTTGCATCAGGTAGTACATTCCAATGGAGACAACAAGGTC -AACATCATGCTTTTAATCCGGAATCTATTTTCTTATTGCAGCACGCATGTAAAGAAAATGACTATGCGCA -ATTTAAAGCATACTCTGAAGCGGTAAACAAAAATAGAACAGATCACATTAGACATTTACTTGAATTTAAA -GCATGTACACCGATTGACATCGACCAAGTTGAACCGGTAAGTGACATTGTCAAACGTTTTAATACAGGGG -CGATGAGTTATGGATCGATTTCAGCGGAAGCACATGAAACGTTAGCACAAGCCATGAACCAATTAGGTGG -AAAGAGTAATAGTGGTGAAGGTGGCGAAGATGCAAAACGTTATGAAGTACAAGTTGATGGAAGCAACAAA -GTAAGTGCGATTAAACAAGTTGCTTCTGGACGTTTTGGTGTAACTAGTGATTATTTACAACATGCCAAAG -AAATTCAAATTAAAGTTGCGCAAGGTGCAAAGCCTGGTGAAGGTGGTCAATTACCTGGTACTAAGGTATA -TCCGTGGATTGCGAAGACAAGAGGGTCAACGCCAGGTATCGGTCTGATTTCACCACCGCCACATCATGAT -ATTTATTCAATAGAAGATTTAGCGCAACTGATACATGATTTGAAAAATGCGAATAAAGATGCAGATATCG -CGGTAAAATTAGTTTCGAAAACAGGTGTTGGTACCATTGCATCTGGGGTGGCGAAAGCATTTGCAGATAA -AATTGTCATCAGTGGTTACGATGGTGGTACAGGGGCTTCACCTAAAACGAGTATACAGCATGCCGGTGTT -CCTTGGGAGATTGGTTTAGCAGAAACACATCAAACATTAAAACTAAATGACTTAAGAAGTCGTGTTAAGT -TAGAAACAGACGGTAAGTTATTAACTGGTAAAGATGTAGCGTACGCATGTGCGCTTGGAGCGGAAGAATT -TGGATTTGCAACTGCACCATTAGTGGTGTTGGGCTGTATTATGATGCGTGTATGCCATAAAGATACATGT -CCAGTAGGAGTTGCAACTCAAAACAAAGATTTACGTGCTTTATATAGAGGTAAAGCACATCATGTTGTTA -ATTTTATGCATTTTATTGCACAAGAATTAAGAGAAATTTTAGCATCTTTAGGTTTGAAACGTGTAGAAGA -CTTAGTTGGAAGAACTGATTTATTACAACGATCATCAACATTAAAAGCGAATAGCAAAGCGGCTAGTATT -GATGTTGAAAAACTGTTATGTCCTTTCGATGGGCCAAACACAAAAGAAATTCAACAAAATCATAATCTTG -AGCATGGATTTGATTTAACAAATTTATATGAGGTAACGAAGCCATATATTGCTGAAGGGCGTCGCTATAC -AGGTAGCTTTACAGTAAATAATGAACAACGTGATGTAGGGGTTATTACAGGTAGTGAGATTTCGAAACAA -TATGGAGAAGCAGGACTTCCTGAAAATACAATTAATGTTTATACGAATGGTCATGCTGGTCAAAGTCTTG -CAGCATATGCACCGAAAGGCTTAATGATTCATCATACTGGAGATGCGAATGACTATGTTGGTAAAGGATT -ATCTGGTGGTACGGTCATTGTCAAAGCACCTTTTGAAGAACGACAAAATGAAATTATTGCTGGTAACGTC -TCATTCTATGGTGCGACAGGTGGTAAGGCATTTATTAACGGTAGTGCAGGAGAAAGATTCTGTATTAGAA -ATAGTGGTGTAGATGTTGTCGTTGAAGGTATCGGCGACCATGGATTAGAGTACATGACTGGTGGACATGT -CATTAATTTAGGTGATGTAGGTAAGAACTTCGGTCAAGGTATGAGTGGTGGTATTGCTTACGTTATCCCG -TCTGATGTAGAAGCTTTTGTTGAAAATAATCAACTAGATACGCTTTCGTTTACAAAGATTAAACACCAAG -AAGAAAAAGCATTCATTAAGCAAATGCTGGAAGAACATGTGTCACATACGAATAGTACGAGAGCGATTCA -TGTGTTAAAACACTTTGATCGCATTGAAGATGTCGTCGTTAAAGTTATTCCTAAAGATTATCAATTAATG -ATGCAAAAAATTCATTTGCACAAATCATTACATGACAATGAAGATGAAGCGATGTTAGCTGCATTTTACG -ATGACAGTAAAACAATCGACGCTAAACATAAACCAGCCGTTGTGTATTAAGGAAAGGGGGAGATACGATG -GGTGAATTTAAAGGATTTATGAAGTATGACAAACAGTACTTAGGTGAATTATCACTGGTAGACCGTTTGA -AGCATCATAAAGCATATCAACAACGATTTACTAAAGAAGATGCCTCTATCCAAGGTGCGCGATGTATGGA -TTGTGGAACGCCGTTTTGTCAAACCGGACAACAGTATGGTAGGGAAACAATAGGTTGTCCAATTGGAAAC -TACATTCCTGAATGGAACGACTTTGTGTATCATCAAGATTTTAAAACTGCTTATGAACGCTTAAGCGAAA -CAAATAACTTTCCTGACTTTACAGGGCGTGTATGTCCTGCACCATGCGAAAGTGCTTGTGTGATGAAGAT -TAATAGAGAATCGATTGCGATTAAAGGTATTGAACGCACAATTATTGATGAAGCTTTTGAAAATGGTTGG -GTAGCGCCGAAAGTTCCGAGTCGCCGTAGAGATGAAAAAGTGGCAATCGTTGGAAGCGGTCCAGCAGGAT -TAACTGCTGCTGAAGAACTTAATCTACTAGGATATCAAGTGACTATTTATGAACGTGCTAGAGAATCAGG -CGGTTTATTAATGTATGGTATACCTAATATGAAGCTTGATAAAGATGTGGTTCGACGTCGTATTAAGTTA -ATGGAAGAAGCGGGCATTACTTTCGTTAATGGTGTTGAAGTAGGCGTTGATATTGATAAAGCAACGTTAG -AATCTGAGTATGATGCCATTATATTATGTACTGGTGCACAAAAAGGTAGAGATTTACCTTTAGAAGGACG -CATGGGTGATGGTATACATTTCGCTATGGATTATTTAACTGAACAAACGCAACTGTTAAATGGAGAAATT -GATGATATAACAATAACTGCAAAAGATAAGAATGTCATTATCATTGGTGCTGGTGATACAGGGGCAGACT -GTGTAGCGACAGCATTAAGAGAAAATTGTAAGTCGATTGTTCAATTTAATAAATATACGAAATTGCCAGA -AGCAATTACGTTTACAGAAAATGCATCATGGCCTTTAGCAATGCCGGTGTTTAAAATGGACTATGCGCAC -CAAGAGTACGAAGCTAAGTTTGGTAAGGAACCACGTGCATATGGTGTTCAAACAATGCGTTACGATGTTG -ACGATAAAGGACATATACGTGGTTTGTATACTCAAATTTTAGAGCAAGGCGAAAATGGTATGGTCATGAA -AGAAGGACCTGAAAGATTTTGGCCTGCTGACCTTGTATTATTATCAATCGGCTTCGAAGGTACAGAACCA -ACAGTACCGAATGCTTTTAACATTAAAACGGATAGAAATCGAATCGTGGCTGATGATACAAACTATCAAA -CTAATAATGAAAAAGTATTTGCTGCTGGAGATGCTAGACGTGGTCAAAGTTTAGTTGTATGGGCGATTAA -AGAAGGTAGAGGCGTAGCGAAAGCAGTAGATCAGTATTTAGCGAGTAAAGTTTGTGTATAATCTTTGTGT -GACAATGATGATGTTCGCGTTGACGTTGTATGGTGCTGAATTGAAAAGGAAGCGACTTAGTATCTATCAA -CGTCACATGCCATCTTTGTAACCTAAAAATAAAGGTTTGTAAGACAACTAATAGATTAATTATAAGTAGT -GATTTTTTACATTCGTTTTATAGGTCAACTGTAGTGGAAGACAATGATTTGTGGTAATCATGTAATGCTT -AAAAACAATATTGACTTTTACAGAACGTTCATATATGATAAATATTGTGTTTAGGAGGAATACCCAAGTC -CGGCTGAAGGGATCGGTCTTGAAAACCGACAGGGGCTTAACGGCTCGCGGGGGTTCGAATCCCTCTTCCT -CCGCCATCAATATTTATATTAAATACTATATATAATGAAGGTAAGTGCTCAAATTTTGAGTATTTACCTT -TTTTATTTGTCTTTGAATGGGTCGTATTTTTGGCTATAGAAATGATAAGGCATTGAAATAGAAAGGACAT -TTGGCTTTTGAATGACACATGGCTGAATGTCTTTTTTATTTGGTGATGTACGTAGGAGTCTTTGCTTGGG -CATGGAAATTACTATTTGGGTATGGGTATGATAATACAGCTTATTCTTTAACATAGTGTATGCGTTTGGA -GGTTATGGATAATGCTATTGTAGCGAAAATTCATGCTATAAATGTAGTCGTAGCCATTTGATTTTCTTAA -ATATCTAAACTAGATAATTGTGAAATATTAAAATATTTTCATGAAAGCCTTTACATAACTTGTCTAGACA -AGTTATACTCTTTTTAAGACATTAAGGGAGTGAAGTTCATGGCTGTAAAAAGAGAAGATGTAAAAGCCAT -CGTTACCGCAATTGGGGGAAAGGATAATCTAGAAGCTGCAACACATTGTGTAACAAGATTGCGTTTAGTA -CTTAAAGATGAAAGTAAAGTTGATAAGGAAGCGTTAAGTAATAATGCTTTAGTTAAAGGGCAGTTCAAAG -CAGACCATCAATATCAAATTGTCATTGGTCCAGGAACAGTCGATGAAGTGTATAAGCAGTTTATTGATGA -AACAGGTGCTCAAGAAGCTTCTAAAGATGAAGCGAAAAAAGCAGCTGCGCAAAAAGGGAATCCAGTACAA -CGTTTGATTAAATTGTTGGGGGATATTTTTATACCAATATTACCTGCGATTGTGACAGCTGGTTTGTTAA -TGGGGATCAATAATTTACTTACAATGAAAGGATTATTTGGTCCGAAAGAACTCATTGTGATGTATCCACA -AATAGCTGATATTTCAAATATGATAAACGTCATAGCAAACACGGCATTTATTTTCTTACCAGCATTAATT -GGTTGGAGTAGTATGCGTGTATTTGGTGGTAGTCCGATTCTAGGTTTAGTCTTAGGTTTGATTTTAATGC -ACCCGCAATTAGTATCTCAGTATGATTTGGCAAAAGGTAATATTCCGACGTGGAATTTATTTGGCTTAGA -GATTAAGCAGTTGAATTACCAAGGTCAAGTGTTGCCTGTTTTAATTGCAGCTTATGTTCTAGCTAAAATT -GAAAAAGGATTAAATAAAGTTGTTCACGATTCGATAAAAATGTTGGTCGTTGGACCCGTAGCGCTTTTAG -TTACTGGATTTTTAGCATTTATTATCATTGGACCAGTTGCATTATTGATTGGTACAGGTATTACATCTGG -TGTTACATTTATATTCCAACATGCTGGTTGGTTAGGTGGCGCAATTTATGGTTTGCTATATGCACCGCTT -GTAATTACTGGCTTGCATCATATGTTTTTAGCAGTAGATTTCCAATTAATGGGTAGCAGTTTAGGCGGTA -CATACTTATGGCCAATTGTTGCAATCTCAAATATTTGTCAAGGTTCAGCAGCATTTGGTGCATGGTTTGT -CTATAAACGACGTAAAATGGTTAAAGAAGAAGGTTTAGCATTAACATCTTGTATTTCTGGTATGTTAGGT -GTTACGGAGCCAGCCATGTTTGGTGTGAACTTACCTTTAAAATATCCATTTATCGCCGCAATATCAACGT -CTTGTGTATTAGGGGCAATCGTTGGTATGAATAATGTACTTGGAAAAGTTGGTGTTGGTGGTGTACCGGC -ATTCATTTCAATTCAAAAAGAATTTTGGCCTGTATATCTTGTTGTAACAGGAATTGCAATTGTTGTACCA -TGTATATTAACGATTGTGATGTCTAATTTTAGTAAACAAAAAGCAAAAGAAATTGTTGAAGATTAATAAA -ATAAAAAAGGGGCGTTCGTTATTTGGACGCCTTTTATTATGTTATAAGGTGGTCATCGTGTGTTGAAAGA -AATAGATTGGAGAAAGTCAGTAGTATATCAAATATATCCTAAGTCATTTAATGATACGACAGGAAATGGT -ATAGGTGATATCAACGGTATTATAGAAAAATTAGATTATATCAAATTGTTAGGTGTTGATTATATTTGGT -TAACACCAGTGTATGAATCGCCAATGAATGATAATGGTTATGATATAAGCAATTATTTAGAAATAAATGA -GGACTTCGGTACGATGGATGATTTTGAAAGGTTAATTAATGTTGCGCATGAAAAAGGTATTAAAGTGATG -TTAGATATTGTAATCAATCATACATCGACGGAGCATGAATGGTTTAAAGCGGCTCGTAAATCTAAAGACA -ATCCATATAGAGATTATTACTTTTTTAAAGCATCTGAAGATGGGCCTCCAACAAATTGGCATTCCAAATT -CGGAGGTAATGCATGGAAGTATGATTCTGAGACAGATGAATATTATTTACATTTATTTGATGTCAGTCAA -GCTGATTTAAATTGGGATAATCCGGAAGTACGTCAATCGTTATATCGCATTGTCAATCATTGGATAGACT -TCGGCGTTGATGGTTTTCGATTTGATGTCATTAACTTAATTTCTAAAGGTGAATTTAAGGACTCTGACAA -AATAGGTAAAGAATTTTATACGGATGGTCCTAGAGTGCATGAGTTTCTGCATGAATTAAATCGTCAAACG -TTTGGTAACACTGACATGATGACTGTAGGAGAAATGTCTTCGACGACGATTGAAAATTGTATTAAGTATA -CACAGCCAGAACGCCAAGAATTGAATAGTGTTTTTAATTTTCATCATCTAAAGGTTGATTATGTTGATGG -TGAAAAGTGGACAAATGCGAAGCTTGATTTTCATAAGTTAAAGGAAATTCTGATGCAATGGCAACGAGGT -ATTTATGACGGTGGCGGATGGAACGCGATTTTCTGGTGTAATCATGATCAGCCACGGGTAGTGTCTAGAT -TTGGTGATGATACGTCGGAAGAGATGAGGATACAAAGTGCTAAAATGTTAGCTATCGCACTGCATATGTT -GCAAGGGACGCCATATATTTACCAAGGTGAAGAAATTGGTATGACGGACCCACATTTTACATCAATAGCA -CAATATCGTGATGTTGAATCGATTAATGCCTACCATCAGTTGTTAAGTGAAGGGCATGCTGAAGCGGATG -TGTTAGCGATTTTAGGACAGAAGTCACGAGATAATTCGAGAACGCCTATGCAATGGAGTGATGATGTTAA -TGCTGGATTTACAGCTGGTAAGCCTTGGATTGATATTTCGGAAAATTATCATCAGGTCAACGTTAGACAA -GCACTTCAGAATAAAGATTCTATTTTCTATACGTATCAAAAATTAATACAATTAAGACATACGCATGATA -TTATTACGTATGGAGACATTGTGCCACGTTTTATGGATCATGATCATTTATTTGTTTATGAACGTCATTA -TAAGAATCAACAATGGCTAGTAATTGCGAATTTCTCAGCATCGGCTGTTGATTTGCCAGAAGGATTGGCG -TGCGAAGGTCGTGTTGTGATTCAAACTGGTACAGTGGAAAATAATACGATAAGCGGGTTTGGTGCAATTG -TAATCGAAACAAACGCGTAAAATAAATTGAGTGGATGCGTTTATATGGCGAAACAAAAAAAGTTTATGAA -GATTTATGAGGCGTTGAAAGAAGATATATTAAACGGGCAGATTCAATATGGTGAACAAATTCCGTCTGAA -CATGATTTGGTGCAATTGTACCAGTCATCTCGAGAGACCGTGCGTAAGGCATTAGATTTGTTGGCATTAG -ACGGCATGATTCAAAAGATTCATGGTAAAGGGTCACTTGTCATTTATCAAGAGGTTACAGAGTTTCCATT -TTCTGAACTTGTTAGTTTTAAAGAAATGCAAGAAGAAATGGGTGTCGCATATTTAACTGAAGTTGTTGTG -AATGAGGTTGTTGAAGCGCATGAAGTGCCAGAAGTTCAACATGCTTTAAACATCAATTCTAGTGAATCAC -TCATTCATATTGTTAGAACTCGTCGGCTTAACCAACATGTGAAGATTGTTGATGAAGATTATTTTCTAAA -GTCGATTGTTTCAGACATAGGTAATGATGTTGCGAGTGATTCTATTTATGATTATTTGGAAAAGGTATTA -AATCTTAATATTAGTTATTCAAGTAAGTCTATTACTTTTGAACCGTTTGATGAACAAGCATATCAATTGT -TTGGTGATGTATCAGTGGCTTATTCAGCAACAGTTCGAAGTATTGTGTATTTAGAAAATACAATGCCGTT -TCAATATAATATTTCAAAACATCTTGCAAATGAATTTAAATTTAATGACTTCTCAAGACGTCGTACAAAG -TAAACAATGATATAAATGATTTATACTTGCAATTAACTATTAAAATATAGTAATATATATCTTGCCGTGC -TAGGTGGGGAGGTAGCGGTTCCCTGTACTCGAAATCCGCTTTATGCGAGGCTTAAATCCTTTGTTGAGGC -CGTATTTTTGCGAAGTCTGCCCAAAGCACGTAGTGTTTGAAGATTTCGGTCCTATGCAATATGAACCCAT -GAACCATGTCAGGTCCTGACGGAAGCAGCATTAAGTGGATCATCATATGTGCCGTAGGGTAGCCGAGATT -TAGCTAACGACTTTGGTTACGTTCGTGAATTACGTTCGATGCTTAGGTGCACGGTTTTTTATTTTTAAAA -ATATTAAACCGATTATTAAGAGTTGAAAATATATAATTATAGAAGCTACTTTCTTGAAGACAATTCAGCG -TATTATACGTGGAACATGTTTGTGGGAAGTAGCTTTTTTATATATGAAGTTTGATTCAAGTGGAATGGAT -GCGCAGTTTGAATGATTTTTTACGGATATAAAAAGTAAGAAGTTATTATTTGATGATAAAGAAATGATGG -TGAAATGAGGGGGAGTACCTTACAATAGAATTATTAATGAGATACGTTATGATTATTGACAATCAAATGC -CTACGGAGGACATATGCAAATATATTTAAGTACTTTAACAGAGTTAGATTATGATAAATCTTTAAATAGT -ATTGAAGAAAGTTTTGATGATAATCCTGAAACGAGTTGGCAAGCACGTGCGAAAGTAAAACATTTAAGAA -AATCTCCTTGCTATAATTTTGAATTAGAAGTAATTGCGAAAAATGAAAATAACGATGTCGTTGGACACGT -TTTATTAATTGAAGTAGAAATGAATAGTGATGATAAGACGTATTATGGTTTGGCGATTGCTTCTTTATCA -GTCAACCCTGAATTGCGTGGACAAAAATTAGGTCGTGGCTTGGTTCAAGCAGTAGAAGAGCGTGCAAAAG -CGCAAGAGTATAGTACGGTTGTTGTAGACCATTGTTTTGACTACTTTGAAAAGTTGGGTTATCAAAATGC -TGCTGAGCATGACATTAAATTAGAATCTGGTGATGCACCGTTACTTGTAAAATATTTATGGGATAATTTG -ACGGATGCACCACACGGAATCGTAAAATTTCCAGAACATTTTTATTAATTGTTCATTTAAGAAGTAAAGG -TATTATCATGCTATAATGAAAGGTAATTGTTTATGGAGGTGCTAACTTGAATTATCAAGCCTTATATCGT -ATGTACAGACCCCAAAGTTTCGAGGATGTCGTCGGACAAGAACATGTCACGAAGACATTGCGCAATGCGA -TTTCGAAAGAAAAACAGTCGCATGCATATATTTTTAGTGGTCCGAGAGGTACGGGGAAAACGAGTATTGC -CAAAGTGTTTGCTAAAGCAATCAACTGTTTAAATAGCACTGATGGAGAACCTTGTAATGAATGTCATATT -TGTAAAGGCATTACGCAGGGGACTAATTCAGATGTGATAGAAATTGATGCTGCTAGTAATAATGGCGTTG -ATGAAATAAGAAATATTAGAGACAAAGTTAAATATGCACCAAGTGAATCGAAATATAAAGTTTATATTAT -AGATGAGGTGCACATGCTAACAACAGGTGCTTTTAATGCCCTTTTAAAGACGTTAGAAGAACCTCCAGCA -CACGCTATTTTTATATTGGCAACGACAGAACCACATAAAATCCCTCCAACAATCATTTCTAGGGCACAAC -GTTTTGATTTTAAAGCAATTAGCCTAGATCAAATTGTTGAACGTTTAAAATTTGTAGCAGATGCACAACA -AATTGAATGTGAAGATGAAGCCTTGGCATTTATCGCTAAAGCGTCTGAAGGGGGTATGCGTGATGCATTA -AGTATTATGGATCAGGCTATTGCTTTCGGCGATGGCACATTGACATTACAAGATGCCCTAAATGTTACGG -GTAGCGTTCATGATGAAGCGTTGGATCACTTGTTTGATGATATTGTACAAGGTGACGTACAAGCATCTTT -TAAAAAATACCATCAGTTTATAACAGAAGGTAAAGAAGTGAATCGCCTAATAAATGATATGATTTATTTT -GTCAGAGATACGATTATGAATAAAACATCTGAGAAAGATACTGAGTATCGAGCACTGATGAACTTAGAAT -TAGATATGTTATATCAAATGATTGATCTTATTAATGATACATTAGTGTCGATTCGTTTTAGTGTGAATCA -AAACGTTCATTTTGAAGTATTGTTAGTAAAATTAGCTGAGCAGATTAAGGGTCAACCACAAGTGATTGCG -AATGTAGCTGAACCAGCACAAATTGCTTCATCGCCAAACACAGATGTATTGTTGCAACGTATGGAACAGT -TAGAGCAAGAACTAAAAACACTAAAAGCACAAGGAGTGAGTGTTGCTCCTACTCAAAAATCTTCGAAAAA -GCCTGCGAGAGGTATACAAAAATCTAAAAATGCATTTTCAATGCAACAAATTGCAAAAGTGCTAGATAAA -GCGAATAAGGCAGATATCAAATTGTTGAAAGATCATTGGCAAGAAGTGATTGACCATGCCAAAAACAATG -ATAAAAAATCACTCGTTAGTTTATTGCAAAATTCGGAACCTGTGGCGGCAAGTGAAGATCACGTACTTGT -GAAATTTGAGGAAGAGATCCATTGTGAAATCGTCAATAAAGACGACGAGAAACGTAGTAGTATAGAAAGT -GTTGTATGTAATATCGTTAATAAAAACGTTAAAGTTGTTGGTGTACCATCAGATCAATGGCAAAGAGTTC -GAACGGAGTATTTACAAAATCGTAAAAACGAAGGCGATGATATGCCAAAGCAACAAGCACAACAAACAGA -TATTGCTCAAAAAGCAAAAGATCTTTTCGGTGAAGAAACTGTACATGTGATAGATGAAGAGTGATACATG -ACAAGCGATATAATCGTATGTATAATGAAAGAAACATCATTTTATTGATAAATATTTATTGATTTTCAAG -GAGGAAATGGAATATGCGCGGTGGCGGAAACATGCAACAAATGATGAAACAAATGCAAAAAATGCAAAAG -AAAATGGCTCAAGAACAAGAAAAACTTAAAGAAGAGCGTATTGTAGGAACAGCTGGCGGTGGCATGGTTG -CAGTTACTGTAACTGGTCATAAAGAAGTTGTCGACGTTGAAATCAAAGAAGAAGCTGTAGACCCAGATGA -TATTGAAATGCTACAAGACTTAGTGTTAGCAGCTACTAATGAAGCGATGAATAAAGCTGATGAGCTTACT -CAAGAACGTTTAGGTAAACATACTCAAGGCTTAAACATCCCTGGAATGTGATCATAGATGCATTATCCAG -AACCTATATCAAAGCTTATTAATAGCTTTATGAAATTGCCAGGCATTGGTCCAAAGACAGCCCAACGTCT -GGCTTTTCATACCTTAGATATGAAAGAAGACGATGTTGTTCAGTTTGCCAAAGCATTAGTAGATGTTAAA -AGAGAATTAACATATTGTAGCGTATGTGGTCACATTACTGAAAATGATCCATGTTATATTTGTGAAGATA -AGCAAAGAGATCGTTCAGTTATTTGTGTTGTGGAAGATGACAAAGATGTCATAGCTATGGAAAAAATGAG -AGAATACAAAGGTTTATATCACGTTTTACATGGGTCTATTTCGCCTATGGATGGAATTGGACCAGAAGAT -ATTAATATTCCTTCATTGATTGAACGCTTGAAAAACGATGAAGTTAGCGAATTAATCTTAGCTATGAACC -CGAACTTAGAGGGGGAATCTACAGCCATGTATATTTCTAGATTAGTTAAGCCTATAGGTATCAAAGTGAC -GAGATTAGCACAAGGGTTATCTGTAGGTGGCGATTTAGAGTATGCTGACGAAGTAACATTATCTAAAGCA -ATCGCAGGTAGAACAGAAATGTAATGTCTTCTATTAAACATTTTAGAATTTAATACTATAGTAAGAAAAG -TCACAGTGTAATCATTGTGGCTTTTTTTATGGTGTGGTGTACTACTTTATTTGTGGTGTGACGGTGGCAT -GGTTTACCTAGTTTTACTGAGGGGTGGGGAATCTTTAGGAAGCAAACCATTGGTTGTGATTTGTTATTTC -TAATAGTAATGAAGTGAATTGGATTATCGAAGTAGATCTATGGTTATGGTGTGTTGGTGGCATGGTTTAC -CTGGTTTTACTGAGGGATGGGTAATCTTAAAGAAGCAAATCGTTGGTTGTGATTTGTTACTTCTAATAGT -AATGATTCGAATTGAATCATCGAAGTAGGAATACTGTTGTGGTGTGTTGGTGCTATTAATTTGATAAATG -CGGTTGATGGTTAATGACTAGGCAAATGAAATTCTTTTGTAATTGAAATGATAGATGCTGGCTTAGTAGT -TGTACTTCTTTGGTCTAAAGCTTATTAAATCAGCCTGTAAAGCGGTGTTTTGAGAGATTATTTAAAACTT -GTAAATTTATTTTTAATTTCTGGTAAAAAAATAAAGTTCTGTTTTGCGGTTTTTTCGATTGATATATTTA -GAGAAAAACCTGTTTCTTGTTCTAAAAAACGTACTATCTATAAGTGGGGGTTTTTTAAGTTCGATTTTTA -GAATGAGAGCGTTCAGAATGGATAGTAAAGGTGTAATTTTTACTGTTGTTAAGCAGTTTGAAAGCCTGTA -TAGTATTTATTTGTTGAGGCAAACAAAACAACTCAACTTAAGAAATAACTTGAATTACTAACGAAAATTA -ATTTTAAAAAGTTGTTGACTTAAATGTTAATAAAATGTATAATTAATTCTTGTCGGTAAGAAAAATGAAC -ATTGAAAACTGAATGACAATATGTCAACGTTAATTCCAAAAAACGTAACGATAAGTTACAAACATTATTT -AGTATTTATGAGCTAATCAAACATCATAATTTTTATGGAGAGTTTGATCCTGGCTCAGGATGAACGCTGG -CGGCGTGCCTAATACATGCAAGTCGAGCGAACGGACGAGAAGCTTGCTTCTCTGATGTTAGCGGCGGACG -GGTGAGTAACACGTGGATAACCTACCTATAAGACTGGGATAACTTCGGGAAACCGGAGCTAATACCGGAT -AATATTTTGAACCGCATGGTTCAAAAGTGAAAGACGGTCTTGCTGTCACTTATAGATGGATCCGCGCTGC -ATTAGCTAGTTGGTAAGGTAACGGCTTACCAAGGCAACGATGCATAGCCGACCTGAGAGGGTGATCGGCC -ACACTGGAACTGAGACACGGTCCAGACTCCTACGGGAGGCAGCAGTAGGGAATCTTCCGCAATGGGCGAA -AGCCTGACGGAGCAACGCCGCGTGAGTGATGAAGGTCTTCGGATCGTAAAACTCTGTTATTAGGGAAGAA -CATATGTGTAAGTAACTGTGCACATCTTGACGGTACCTAATCAGAAAGCCACGGCTAACTACGTGCCAGC -AGCCGCGGTAATACGTAGGTGGCAAGCGTTATCCGGAATTATTGGGCGTAAAGCGCGCGTAGGCGGTTTT -TTAAGTCTGATGTGAAAGCCCACGGCTCAACCGTGGAGGGTCATTGGAAACTGGAAAACTTGAGTGCAGA -AGAGGAAAGTGGAATTCCATGTGTAGCGGTGAAATGCGCAGAGATATGGAGGAACACCAGTGGCGAAGGC -GACTTTCTGGTCTGTAACTGACGCTGATGTGCGAAAGCGTGGGGATCAAACAGGATTAGATACCCTGGTA -GTCCACGCCGTAAACGATGAGTGCTAAGTGTTAGGGGGTTTCCGCCCCTTAGTGCTGCAGCTAACGCATT -AAGCACTCCGCCTGGGGAGTACGACCGCAAGGTTGAAACTCAAAGGAATTGACGGGGACCCGCACAAGCG -GTGGAGCATGTGGTTTAATTCGAAGCAACGCGAAGAACCTTACCAAATCTTGACATCCTTTGACAACTCT -AGAGATAGAGCCTTCCCCTTCGGGGGACAAAGTGACAGGTGGTGCATGGTTGTCGTCAGCTCGTGTCGTG -AGATGTTGGGTTAAGTCCCGCAACGAGCGCAACCCTTAAGCTTAGTTGCCATCATTAAGTTGGGCACTCT -AAGTTGACTGCCGGTGACAAACCGGAGGAAGGTGGGGATGACGTCAAATCATCATGCCCCTTATGATTTG -GGCTACACACGTGCTACAATGGACAATACAAAGGGCAGCGAAACCGCGAGGTCAAGCAAATCCCATAAAG -TTGTTCTCAGTTCGGATTGTAGTCTGCAACTCGACTACATGAAGCTGGAATCGCTAGTAATCGTAGATCA -GCATGCTACGGTGAATACGTTCCCGGGTCTTGTACACACCGCCCGTCACACCACGAGAGTTTGTAACACC -CGAAGCCGGTGGAGTAACCTTTTAGGAGCTAGCCGTCGAAGGTGGGACAAATGATTGGGGTGAAGTCGTA -ACAAGGTAGCCGTATCGGAAGGTGCGGCTGGATCACCTCCTTTCTAAGGATATATTCGGAACATCTTCTT -CAGAAGATGCGGAATAACGTGACATATTGTATTCAGTTTTGAATGTTTATTTAACATTCAAATAATTTTT -GGTTAAAGTGATATTGCTTATGCGAGCGCTTGACAATCTATTCTTTTTAAAGAAAGCGGTTGTCAGACAA -TGCATTGAGAAAAATTAAAGCGGAGTTTACTTTTGTAAATGAGCATTTGATTTTTTGAAAATAAAGCAGT -ATGCGAGCGCTTGACTGAAAAGAAATTGTACATTGAAAACTAGATAAGTAAGTAAAATATAGATTTTACC -AAGCAAAACCGAGTGAATAAAGAGTTTTAAATAAGCTTGAATTCATAAGAAATAATCGCTAGTGTTCGAA -AGAACACTCACAAGATTAATAACGCGTTTCCTGTAGGATGGAAACATAGATTAAGTTATTAAGGGCGCAC -GGTGGATGCCTTGGCACTAGAAGCCGATGAAGGACGTTACTAACGACGATATGCTTTGGGGAGCTGTAAG -TAAGCTTTGATCCAGAGATTTCCGAATGGGGAAACCCAGCATGAGTTATGTCATGTTATCGATATGTGAA -TACATAGCATATCAGAAGGCACACCCGGAGAACTGAAACATCTTAGTACCCGGAGGAAGAGAAAGAAAAT -TCGATTCCCTTAGTAGCGGCGAGCGAAACGGGAAGAGCCCAAACCAACAAGCTTGCTTGTTGGGGTTGTA -GGACACTCTATACGGAGTTACAAAAGACGACATTAGACGAATCATCTGGAAAGATGAATCAAAGAAGGTA -ATAATCCTGTAGTCGAAAATGTTGTCTCTCTTGAGTGGATCCTGAGTACGACGGAGCACGTGAAATTCCG -TCGGAATCTGGGAGGACCATCTCCTAAGGCTAAATACTCTCTAGTGACCGATAGTGAACCAGTACCGTGA -GGGAAAGGTGAAAAGCACCCCGGAAGGGGAGTGAAATAGAACCTGAAACCGTGTGCTTACAAGTAGTCAG -AGCCCGTTAATGGGTGATGGCGTGCCTTTTGTAGAATGAACCGGCGAGTTACGATTTGATGCAAGGTTAA -GCAGTAAATGTGGAGCCGTAGCGAAAGCGAGTCTGAATAGGGCGTTTAGTATTTGGTCGTAGACCCGAAA -CCAGGTGATCTACCCTTGGTCAGGTTGAAGTTCAGGTAACACTGAATGGAGGACCGAACCGACTTACGTT -GAAAAGTGAGCGGATGAACTGAGGGTAGCGGAGAAATTCCAATCGAACCTGGAGATAGCTGGTTCTCTCC -GAAATAGCTTTAGGGCTAGCCTCAAGTGATGATTATTGGAGGTAGAGCACTGTTTGGACGAGGGGCCCCT -CTCGGGTTACCGAATTCAGACAAACTCCGAATGCCAATTAATTTAACTTGGGAGTCAGAACATGGGTGAT -AAGGTCCGTGTTCGAAAGGGAAACAGCCCAGACCACCAGCTAAGGTCCCAAAATATATGTTAAGTGGAAA -AGGATGTGGCGTTGCCCAGACAACTAGGATGTTGGCTTAGAAGCAGCCATCATTTAAAGAGTGCGTAATA -GCTCACTAGTCGAGTGACACTGCGCCGAAAATGTACCGGGGCTAAACATATTACCGAAGCTGTGGATTGT -CCTTTGGACAATGGTAGGAGAGCGTTCTAAGGGCGTTGAAGCATGATCGTAAGGACATGTGGAGCGCTTA -GAAGTGAGAATGCCGGTGTGAGTAGCGAAAGACGGGTGAGAATCCCGTCCACCGATTGACTAAGGTTTCC -AGAGGAAGGCTCGTCCGCTCTGGGTTAGTCGGGTCCTAAGCTGAGGCCGACAGGCGTAGGCGATGGATAA -CAGGTTGATATTCCTGTACCACCTATAATCGTTTTAATCGATGGGGGGACGCAGTAGGATAGGCGAAGCG -TGCGATTGGATTGCACGTCTAAGCAGTAAGGCTGAGTATTAGGCAAATCCGGTACTCATTAAGGCTGAGC -TGTGATGGGGAGAAGACATTGTGTCTTCGAGTCGTTGATTTCACACTGCCGAGAAAAGCCTCTAGATAGA -AAATAGGTGCCCGTACCGCAAACCGACACAGGTAGTCAAGATGAGAATTCTAAGGTGAGCGAGCGAACTC -TCGTTAAGGAACTCGGCAAAATGACCCCGTAACTTCGGGAGAAGGGGTGCTCTTTAGGGTTAACGCCCAG -AAGAGCCGCAGTGAATAGGCCCAAGCGACTGTTTATCAAAAACACAGGTCTCTGCTAAACCGTAAGGTGA -TGTATAGGGGCTGACGCCTGCCCGGTGCTGGAAGGTTAAGAGGAGTGGTTAGCTTCTGCGAAGCTACGAA -TCGAAGCCCCAGTAAACGGCGGCCGTAACTATAACGGTCCTAAGGTAGCGAAATTCCTTGTCGGGTAAGT -TCCGACCCGCACGAAAGGCGTAACGATTTGGGCACTGTCTCAACGAGAGACTCGGTGAAATCATAGTACC -TGTGAAGATGCAGGTTACCCGCGACAGGACGGAAAGACCCCGTGGAGCTTTACTGTAGCCTGATATTGAA -ATTCGGCACAGCTTGTACAGGATAGGTAGGAGCCTTTGAAACGTGAGCGCTAGCTTACGTGGAGGCGCTG -GTGGGATACTACCCTAGCTGTGTTGGCTTTCTAACCCGCACCACTTATCGTGGTGGGAGACAGTGTCAGG -CGGGCAGTTTGACTGGGGCGGTCGCCTCCTAAAAGGTAACGGAGGCGCTCAAAGGTTCCCTCAGAATGGT -TGGAAATCATTCATAGAGTGTAAAGGCATAAGGGAGCTTGACTGCGAGACCTACAAGTCGAGCAGGGTCG -AAAGACGGACTTAGTGATCCGGTGGTTCCGCATGGAAGGGCCATCGCTCAACGGATAAAAGCTACCCCGG -GGATAACAGGCTTATCTCCCCCAAGAGTTCACATCGACGGGGAGGTTTGGCACCTCGATGTCGGCTCATC -GCATCCTGGGGCTGTAGTCGGTCCCAAGGGTTGGGCTGTTCGCCCATTAAAGCGGTACGCGAGCTGGGTT -CAGAACGTCGTGAGACAGTTCGGTCCCTATCCGTCGTGGGCGTAGGAAATTTGAGAGGAGCTGTCCTTAG -TACGAGAGGACCGGGATGGACATACCTCTGGTGTACCAGTTGTCGTGCCAACGGCATAGCTGGGTAGCTA -TGTGTGGACGGGATAAGTGCTGAAAGCATCTAAGCATGAAGCCCCCCTCAAGATGAGATTTCCCAACTTC -GGTTATAAGATCCCTCAAAGATGATGAGGTTAATAGGTTCGAGGTGGAAGCATGGTGACATGTGGAGCTG -ACGAATACTAATCGATCGAAGACTTAATCAAAATAAATGTTTTGCGAAGCAAAATCACTTTTACTTACTA -TCTAGTTTTGAATGTATAATCTACATTCATATGTCTGGTGACTATAGCAAGGAGGTCACACCTGTTCCCA -TGCCGAACACAGAAGTTAAGCTCCTTAGCGTCGATGGTAGTCGAACTTACGTTCCGCTAGAGTAGAACGT -TGCCAGGCAAAAAAATGGATGCGATGAGCCGCATTGAACTGCACCCAGTCTAGTAGACAATTAAATAATT -AAAATTAATGGTTGGTTTTGTTGTTATACAGAATCAGCCATTTTTAATGTAATTCTTTCATGATTAAAGA -AAAGAATAAAATCATGAATTGTTTTTGTAGCTTCTTCTACACTATTAAATTTAAAGTGCTTATTTCCTCT -AAAAATTTCACTTTTTATTGTACCCCATACACCTTCCATTGGACCGTTATCGATACATTTGCTAACACGT -GACATACTTTGAATCATGCCACATTCATCCAACATATGTTTAAATGTTTTCGATGTATATTGAAAACCTC -GGTCACTATGAAATAAAATACCTTTTGTATTTTCTACTTTTTCTATCGCTTGATTGAATGTTTTAAATAC -TAATTGATTATTGTTAGAAGGGCCTAGCTCATAACTAACAATACGTTTAGCACCTAAGTCATAAATGGCA -CTCAAATATATCTTACTACCTTCTTTGATTTTAAATTCTGTTACATCTGTTAACCAAACTTTATTTGGCG -TATCAATGTCAAATTGTCGATTAAGCTTATTTTCTGATGTGATTTGTGGCGTTGAACGTCGATAAGGTTT -TCGCTTTTGACGTATTACTGCTTTTAAATTAAGTTCTTTCATCAAACGATAAATTCGCTTTCGGTTTACT -TGTTTACCTAGTTTTAAGCGAATATAGATATAAATGCGACGATAGCCATAAATACCATTATACTTATGAT -AGATTGATTCTATTTCTCGCTTAAGCTGTTCATTCTCTAATTCAAGTTCACTCGATTGATAATGTACCCA -CTTATAATAACTCGCTCTAGAAATGCCTAAAATACGACACAAGCGTTGGATAGGGTATTGATGTTTTAAC -GCTTCGATCGTTTTGTATGCCGTGATTTGTTTTCTCTTTGAATCATCTCTCTTTCCAATGCTTGAAACTT -TTTTAAAACGTCATTTTCCATCTCTAATAATCGATTTTGTGCTTTTAATGCTTGAATTTCAGCTTCTTTT -TGTTCTTCTGGCGTCATCATAGATTTGGGTTTTCCTTTGCCTCTGCCATCTACTAATCCATTTTTACCAT -GTGCTTGATACTTATGAACCCACTGGTAAATTTGACCGTATGAGATATTAAAGTGTTCTGCAACTTCTCT -ATAAGATTGTTTATGATTCAAGTAATATTCAACAATTGTTACACGTTCTTCAAATGTGGTTTTTCTTGCT -TTCATGATATACACCCCAGTTTTAGGAGATTGATTCTTAATCTCTTTTCCTACAGTATACATTTTTATCC -AATTTTTGACTTGTGTCGAACTACGAATATTGTATTTGATTGCGATGTCTTGGGTTGATTGATTTGAATT -CAAATATTCATTTACAACTTTTAATTTTAGTTCCTTTGAATAGTGATTGTATTGTTTTTGTGTAAGTAGT -GTTTCAATACCATGGGTTTTATAATATTTATACTTAGGATACAAAGTATTGACATTAATATCTAATTGTA -ATGTATCGATTAAGTATTGAAACGACACGCCTTTTTCATATTCTTGAAACATATATAGCAGTACATCTAT -GTCTACTTTAGGTTTTATTGACATAAATAAAGCTCCCTTCAAAGTTTTCATTTTTTCAATGTCTACTTTG -AAGGGAGCATTTCACATTGAGACCGCAAGGTCTCTTTTTTTTATGTCTAAAACGTTGAAATAAAGGTTAA -CACAAAGAAAGATGGCTTGGCGAAGTGTGAAATTGATAATTTAATAATGTGCACTTTTGATTGTTTAAAT -CTGTGACTAGAAGTATAAGCGAAGACATTCAGAAGTATTATAAAAAGTGAACAGCAGTAAGATAGTTTTT -AATCATAAATCATCTTACTGCTGTTTTTAGGTTTTATGTCTAATATCTTTTAAATCGAAATACAAAAAGG -AAATTAATTATTATACAATAGACAAGCTATTGCATAAGTAACACTAACTTTTGTCAAAGAAGTGTTACTA -TATAATTAATACTTTTGAAAGTAACTAATTCCAAAACATTGTAAACAAAGGAAGCGTATATCATGAAGCA -ACCTATTTTAAATAAATTAGAAAGTTTAAATCAAGAAGAAGCGATTTCTTTGCATGTTCCGGGTCATAAA -AATATGACTATCGGTCATTTATCTCAATTATCAATGACAATGGATAAAACTGAAATACCTGGATTAGATG -ATTTACATCATCCTGAAGAAGTCATTTTGAAAAGTATGAAGCAGGTGGAGAAACATTCAGATTATGATGG -TTATTTCTTAGTGAATGGCACCACTTCGGGAATATTATCTGTCATCCAGTCTTTTTCACAGAAAAAAGGC -GATATCTTAATGGCAAGAAATGTACATAAATCTGTATTACATGCGCTCGATATTAGCCAACAAGAAGGGC -ATTTTATTGAAACGCATCAAAGTCCGTTAACGAATCATTATAATAAAGTTAATTTAAGCCGTTTGAATAA -TGACGGTCACAAACTTGTTGTGTTGACTTATCCTAACTATTACGGTGAAACATTTAATGTAGAAGAGGTT -ATCAAATCTTTGCACCAATTAAATATTCCTGTACTCATTGACGAAGCACACGGCGCGCACTTTGGATTGC -AAGGATTTCCAGATTCTACATTAAATTATCAAGCTGACTATGTTGTTCAATCTTTTCATAAAACGTTACC -AGCTTTAACGATGGGCTCGGTACTTTATATTCATAAAAATGCACCTTATAGAGAAAATATTATAGAATAT -CTAAGCTACTTCCAAACATCTAGTCCTTCATATTTGATTATGGCTAGTTTAGAGTCAGCTGCCCAGTTCT -ATAAAACATATGATAGTACCTTGTTTTTTGCTAAGAGAGCGCAATTAATCGAATGTTTGGAGAATAAAGG -TTTTGAAATGCTTCAAGTTGATGATCCGTTGAAGCTGTTGATAAAATATGAAGGCTTTACAGGTCATGAT -ATTCAAAATTGGTTTATGAATGCACATATCTATTTAGAATTAGCGGACGACTATCAAGCATTAGCGATAT -TGCCGTTATGGCATCATGATGATACGTATTTATTTGATTCGCTTTTACGTAAAATTGAAGATATGATTTT -ACCGAAAAAATCAGTTTCTAAAGTTAAACAAACACAACTTTTAACAACTGAAGGTAACTATAAACCAAAA -CGCTTTGAATATGTTACTTGGTGTGATTTGAAAAAGGCAAAAGGTAAAGTTTTGGCGCGACATATTGTCC -CGTATCCGCCAGGGATTCCTATTATTTTCAAAGGAGAAACAATAACTGAAAATATGATAGAATTGGTAAA -TGAATATCTGGAAACTGGAATGATAGTTGAAGGAATTAAAAATAATAAAATTTTAGTTGAGGATGAATAA -AATGTCAGCTTTTATAACTTTTGAGGGCCCAGAAGGCTCAGGTAAAACAACTGTAATTAATGAAGTTTAT -CATAGATTAGTAAAAGATTATGATGTCATTATGACAAGAGAACCGGGCGGCGTTCCTACTGGTGAAGAAA -TACGTAAAATTGTATTAGAAGGCAATGATATGGACATTAGAACTGAAGCGATGTTATTTGCTGCATCTAG -AAGAGAACATCTTGTATTAAAGGTCATACCAGCTTTAAAAGAAGGTAAGGTTGTGTTGTGTGATCGCTAT -ATCGATAGTTCATTAGCTTATCAAGGTTATGCTAGAGGGATTGGCGTTGAAGAAGTAAGAGCATTAAATG -AATTTGCAATAAATGGATTATATCCAGATTTGACGATTTATTTAAATGTTAGTGCTGAAGTAGGTCGCGA -ACGTATTATTAAAAATTCAAGAGATCAAAATAGATTAGATCAAGAAGATTTAAAGTTTCACGAAAAAGTA -ATTGAAGGTTACCAAGAAATCATTCATAATGAATCACAACGGTTCAAAAGCGTTAATGCAGATCAACCTC -TTGAAAATGTTGTTGAAGACACGTATCAAACTATCATCAAATATTTAGAAAAGATATGATATAATTGTTA -GAAGAGGTGTTATAAAATGAAAATGATTATAGCGATCGTACAAGATCAAGATAGTCAGGAACTTGCAGAT -CAACTTGTTAAAAATAACTTTAGAGCAACAAAATTGGCAACAACAGGTGGGTTTTTAAGAGCAGGTAATA -CAACATTCTTATGTGGTGTCAATGATGACCGTGTAGATGAAATATTGTCTGTGATTAATCAAACGTGTGG -TAATAGAGAACAGTTGGTTTCACCTATTACACCTATGGGAGGCAGTGCGGATTCGTACATTCCATATCCA -GTTGAAGTTGAAGTTGGCGGTGCTACTGTATTTGTTATGCCAGTTGATGCATTCCATCAATTTTAATTCT -ATAATACAATCATCAATTAGAGATACTTAAAATAGTGTATTAATAAGTTATTAACAATTTTGGGTTGCTT -GACTGCGACTAGTTCAGATGCCAATAGATTTGATTTTTGTGGTTCTAAGAATAATCACAAATCATGGTCG -CTATTGTTGCAGTAATTAGTTGCTCTTTGGCAACCTTTTTATATAAAAGCAAAAGGGAGTTTGTAATGAA -TGGATGAACAGCAACAATTGACGAATGCATATCATTCAAATAAATTATCGCATGCCTATTTATTTGAAGG -TGATGATGCACAAACGATGAAACAAGTTGCGATTAATTTTGCAAAGCTTATTTTATGTCAAACAGATAGT -CAATGTGAAACAAAGGTTAGTACATATAATCATCCAGACTTTATGTATATATCAACAACTGAGAATGCAA -TTAAGAAAGAACAAGTTGAACAACTTGTGCGTCATATGAATCAACTTCCTATAGAAAGCACAAATAAAGT -GTACATCATTGAAGACTTTGAAAAGTTAACTGTTCAAGGGGAAAACAGTATCTTGAAATTTCTTGAAGAA -CCACCGGACAATACGATTGCTATTTTATTGTCTACAAAACCTGAACAAATTTTAGACACAATCCATTCAA -GGTGTCAGCATGTATATTTCAAGCCTATTGATAAAGAAAAGTTTATAAATAGATTAGTTGAACAAGACAT -GTCTAAGCCAGTAGCTGAAATGATTAGTACTTATACTACGCAAATAGATAATGCACTGGCTTTAAATGAA -GAATTTGATTTATTAGCATTAAGGAAATCAGTTATACGTTGGTGTGAATTGTTGCTTACTAATAAGCCAA -TGGCACTTATAGGTATTATTGATTTATTGAAACAGGCTAAAAATAAAAAACTGCAATCTTTAACTATTGC -AGCTGTGAATGGTTTCTTCGAAGATATCATACATACAAAGGTAAATGTAGAGGATAAACAAATATATAGT -GATTTAAAAAATGATAGTGATCAATATGCGCAAAAGTTGTCGTTTAATCAATTAATTTTGATGTTTGATC -AACTGACGGAAGCACATAAGAAATTGAATCAAAATGTAAATCCAACGCTTGTATTTGAACAAATCGTAAT -TAAGGGTGTGAGTTAGATGCCAAATGTAATAGGTGTTCAGTTTCAAAAAGCGGGAAAATTAGAATATTAT -ACACCTAATGATATACAAGTAGAGTTAGATGACTGGGTAGTTGTCGAATCTAAAAGAGGCATAGAGATAG -GTATTGTTAAAAATCCATTAATGGATATTGCTGAAGAGGATGTTGTGTTACCTCTTAAAAATATTATTCG -CATTGCTGATGACAAAGATATTGATAAATTTAATTGTAATGAACGCGATGCTGAAAATGCATTAATACTA -TGTAAAGACATTGTAAGAGAACAAGGTTTGGACATGCGTTTAGTCAATTGCGAATATACATTAGATAAAT -CGAAAGTTATTTTTAATTTTACGGCGGATGATCGTATTGATTTTAGAAAATTAGTAAAAATATTAGCGCA -ACATTTAAAAACACGTATCGAGTTGAGACAAATTGGTGTAAGGGATGAAGCCAAATTGCTTGGCGGTATC -GGACCTTGTGGTAGATCGTTATGTTGTTCTACATTTTTAGGTGATTTTGAACCAGTATCGATTAAGATGG -CTAAGGATCAAAATTTATCATTAAATCCAACTAAAATTTCCGGTGCATGTGGTCGTTTGATGTGTTGTTT -AAAATATGAAAATGACTATTATGAGGAAGTACGTGCGCAATTACCTGATATCGGTGAAGCAATTGAAACG -CCTGATGGTAACGGGAAAGTAGTTGCTTTAAATATATTAGACATTTCTATGCAGGTGAAGCTTGAGGGAC -ATGAACAGCCACTTGAATATAAATTAGAAGAAATAGAAACTATGCATTAAGGAGGCATTATTACATTTGG -ATCGCAATGAAATATTTGAAAAAATAATGCGTTTAGAAATGAATGTCAATCAACTTTCAAAGGAAACTTC -AGAATTAAAGGCACTTGCAGTTGAATTAGTAGAAGAAAATGTAGCGCTTCAACTTGAAAATGATAATTTG -AAAAAGGTGTTGGGCAATGATGAACCAACTACTATTGATACTGCGAATTCAAAACCAGCAAAAGCTGTGA -AAAAGCCATTACCAAGTAAAGATAATTTGGCTATATTGTATGGAGAAGGATTTCATATTTGTAAAGGCGA -ATTATTTGGAAAACATCGACATGGTGAAGATTGTCTGTTCTGTTTAGAAGTTTTAAGTGATTAATCAAGC -ACACTCAAATAGTGTTATAATTATAAATGAATATGGTTTGGATAAGTCTGAGACAATGCATGTTTCAGGC -TTTAATTGTGTATAAAGTTTTGGTGATTGCATAAGAGATAGCGGTACTAAATGTTATTATTAAGTGTGCA -CGCAGTATCATTAGTTATAAAATGTAGCTGTTAAAAGTCAAAAATACATCGAATGTAGATAGGCATATAA -TATAAAAAGAGATTTCAATTACTCAATAGAAAAAGGTTGTCTTCATAGGAGTTAAAAATGTTAAAAGAGA -ATGAACGATTTGATCAACTAATCAAAGAAAATTTTAGTATTATTCAAAATGATGATGTTTTTTCGTTTTC -AACGGATGCTTTGTTGTTAGGACATTTTACAAAACCTAGAACAAAAGATATAGTGTTGGACTTATGTTCA -GGCAATGGGGTGATACCCTTGTTATTGTTTGCGAAACATCCACGACATATAGAAGGTGTTGAGATTCAAA -AAACACTTGTCGATATGGCGCGACGCACATTTCAATTCAATGATGTTGATGAATATTTAACAATGCATCA -CATGGATTTGAAAAACGTTACTAAAGTATTTAAACCTTCACAATATACTTTAGTAACGTGTAATCCGCCT -TATTTTAAAGAGAATCAGCAACACCAACATCAAAAAGAAGCACATAAGATAGCGAGACATGAGATTATGT -GTACACTTGAAGATTGCATGATTGCAGCCCGTCATTTATTAAAAGAAGGTGGCAGGCTAAATATGGTACA -TCGTGCAGATAGACTCATGGATGTCTTGTTTGAAATGAGAAAAGTAAATATTGAACCTAAGAAAGTCGTT -TTTATATATAGTAAAGTAGGGAAATCGGCACAAACGATAGTTGTAGAAGGTCGAAAAGGTGGAAATCAAG -GTTTAGAAATCATGCCCCCATTTTATATTTATAATGAAGATGGTAATTATAGCGAAGAAATGAAGGAAGT -ATATTATGGATAGTCATTTTGTATATATTGTAAAATGTAGTGATGGAAGTTTATATACAGGATACGCTAA -AGACGTTAATGCACGTGTTGAAAAACATAACCGAGGTCAAGGAGCCAAATATACGAAAGTAAGACGTCCG -GTGCATTTAGTTTATCAAGAAATGTATGAGACAAAGTCTGAAGCATTGAAGCGTGAATATGAAATTAAAA -CTTATACCAGACAAAAGAAATTGCGATTAATTAAGGAGCGATAGTATGGCTGTATTATATTTAGTGGGCA -CACCAATTGGTAATTTAGCAGATATTACTTATAGAGCAGTTGATGTATTGAAACGTGTTGATATGATTGC -TTGTGAAGACACTAGAGTAACTAGTAAGCTGTGTAATCATTATGATATTCCAACTCCATTAAAGTCATAT -CACGAACATAACAAAGATAAGCAGACTGCTTTTATCATTGAACAGTTAGAATTAGGTCTTGACGTTGCGC -TCGTATCTGATGCTGGATTGCCCTTAATTAGTGATCCTGGATACGAATTAGTAGTGGCAGCCAGAGAAGC -TAACATTAAAGTAGAGACTGTGCCTGGACCTAATGCTGGGCTGACGGCTTTGATGGCTAGTGGATTACCT -TCATATGTATATACATTTTTAGGATTTTTGCCACGAAAAGAGAAAGAAAAAAGTGCTGTATTAGAGCAAC -GTATGCATGAAAATAGCACATTAATTATATACGAATCACCGCATCGTGTGACAGATACATTAAAAACAAT -TGCAAAGATAGATGCAACACGACAAGTATCACTAGGGCGTGAATTGACTAAGAAGTTCGAACAAATTGTA -ACTGATGATGTAACACAATTACAAGCATTGATTCAGCAAGGCGATGTACCATTGAAAGGCGAATTTGTTA -TCTTGATTGAGGGTGCTAAAGCGAATAATGAGATATCGTGGTTTGATGATTTATCTATCAATGAGCATGT -TGATCATTATATTCAAACTTCACAGATGAAACCAAAACAAGCTATTAAAAAAGTTGCTGAAGAACGACAA -CTTAAAACGAATGAAGTATATAATATTTACCATCAAATAAATTAATCACTTTATCGATTATATGAAATTT -TAAACGATTTTATAAACGCAAGCTGTAATTTTAAATGGTAAGTTATCATTTTGCATTGATACTGATAAAA -TGATGTTGACTATGATAAAAAAATGATGACATCGACGTTTTTTAATGTAAAATAAATACATTGAAAGTAA -TAAATACCTTAACATTGAATAAGATGAAAATGAGATGACGAGATAAATGTTCGCGTCCGTTGAAATGCAT -AGAAATCTTAGATATTATTTGAAGTGAGACATTACGAGGAGGAACAGTTATGGCTAAAGAAACATTTTAT -ATAACAACCCCAATATACTATCCTAGTGGGAATTTACATATAGGACATGCATATTCTACAGTGGCTGGAG -ATGTTATTGCAAGATATAAGAGAATGCAAGGATATGATGTTCGTTATTTGACTGGAACGGATGAACACGG -TCAAAAAATTCAAGAAAAAGCTCAAAAAGCTGGTAAGACAGAAATTGAATATTTGGATGAGATGATTGCT -GGAATTAAACAATTGTGGGCTAAGCTTGAAATTTCAAATGATGATTTTATCAGAACAACTGAAGAACGTC -ATAAACATGTCGTTGAGCAAGTATTTGAACGTTTATTAAAGCAAGGTGATATCTATTTAGGTGAATATGA -AGGTTGGTATTCTGTTCCGGATGAAACATACTATACAGAGTCACAATTAGTAGACCCACAATACGAAAAC -GGTAAAATTATTGGTGGTAAAAGTCCAGATTCTGGACATGAAGTTGAACTAGTAAAAGAAGAAAGTTATT -TCTTTAATATTAGTAAATATACAGATCGTTTATTAGAGTTCTATGACCAAAATCCAGATTTTATACAACC -ACCATCAAGAAAAAATGAAATGATTAACAACTTCATTAAACCAGGACTTGCTGATTTGGCTGTTTCTCGT -ACATCATTTAACTGGGGTGTCCATGTTCCGTCTAATCCAAAACATGTTGTTTATGTTTGGATTGATGCGT -TAGTTAACTATATTTCAGCATTAGGCTATTTATCAGATGATGAGTCACTATTTAACAAATACTGGCCAGC -AGATATTCATTTAATGGCTAAGGAAATTGTGCGATTCCACTCAATTATTTGGCCTATTTTATTGATGGCA -TTAGACTTACCGTTACCTAAAAAAGTCTTTGCACATGGTTGGATTTTGATGAAAGATGGAAAAATGAGTA -AATCTAAAGGTAATGTCGTAGACCCGAATATTTTAATTGATCGCTATGGTTTAGATGCCACACGTTATTA -TCTAATGCGTGAATTACCATTTGGTTCAGATGGCGTATTTACACCTGAAGCATTTGTTGAGCGTACAAAT -TTCGATCTAGCAAATGACTTAGGAAACTTAGTAAACCGTACGATTTCTATGATTAATAAGTACTTTGATG -GCGAATTACCAGCGTATCAAGGTCCACTTCATGAATTAGATGAAGAAATGGAAGCTATGGCTTTAGAAAC -AGTGAAAAGTTATACTGAAAGCATGGAAAGTTTGCAATTTTCTGTGGCATTATCTACGGTATGGAAGTTT -ATTAGTAGAACGAATAAGTATATTGACGAAACAACGCCTTGGGTATTAGCTAAGGACGATAGCCAAAAAG -ATATGTTAGGCAATGTTATGGCTCACTTAGTTGAAAATATTCGTTATGCAGCTGTATTATTGCGTCCATT -CTTAACTCATGCGCCGAAAGAGATTTTTGAACAATTGAACATTAACAATCCTCAATTTATGGAATTTAGT -AGTTTAGAGCAATATGGTGTGCTTACTGAGCCAATTATGGTTACTGGGCAACCTAAACCTATTTTCCCAA -GATTGGATAGCGAAGCGGAAATTGCATATATCAAAGAATCAATGCAACCGCCTGCTACTGAAGAGGAAAA -AGAAGAGATTCCTAGCAAACCTCAAATTGATATTAAAGACTTTGATAAAGTTGAAATTAAGGCAGCAACG -ATTATTGATGCTGAACATGTTAAGAAGTCAGATAAGCTTTTAAAAATTCAAGTAGACTTAGATTCTGAAC -AAAGACAAATCGTATCAGGAATTGCCAAATTCTATACACCAGATGATATTATTGGTAAAAAAGTAGCAGT -TGTTACTAACTTGAAACCAGCTAAATTAATGGGACAAAAATCTGAAGGTATGATATTATCTGCTGAAAAA -GATGGTGTATTAACCTTAGTAAGTTTACCAAGTGCAATTCCAAATGGTGCAGTGATTAAATAACTGTATT -TTTAAAAATTAGGAGAGATAATTATGTTAATCGATACACATGTCCATTTAAATGATGAGCAATACGATGA -TGATTTGAGTGAAGTGATTACACGTGCTAGAGAAGCAGGTGTTGATCGTATGTTTGTAGTTGGTTTTAAC -AAATCGACAATTGAACGCGCGATGAAATTAATCGATGAGTATGATTTTTTATATGGCATTATCGGTTGGC -ATCCAGTTGACGCAATTGATTTTACAGAAGAACACTTGGAGTGGATTGAATCTTTAGCTCAGCATCCAAA -AGTGATTGGTATTGGTGAAATGGGATTAGATTATCACTGGGATAAATCTCCTGCAGATGTTCAAAAGGAA -GTTTTTAGAAAGCAAATTGCTTTAGCTAAGCGTTTGAAGTTACCAATTATCATTCATAACCGTGAAGCAA -CACAAGACTGTATCGATATCTTATTGGAGGAGCATGCTGAAGAGGTAGGCGGGATTATGCATAGCTTTAG -TGGTTCTCCAGAAATTGCAGATATTGTAACTAATAAGCTGAATTTTTATATTTCATTAGGTGGACCAGTG -ACATTTAAAAATGCTAAACAGCCTAAAGAAGTTGCTAAGCATGTGTCAATGGAGCGATTGCTTGTTGAAA -CCGATGCACCGTATCTTTCGCCACATCCATATAGAGGGAAGCGAAATGAACCGGCGAGAGTAACTTTAGT -AGCTGAACAAATTGCTGAATTAAAAGGCTTATCTTATGAAGAAGTGTGCGAACAAACAACTAAAAATGCA -GAGAAATTGTTTAATTTAAATTCATAAAGTTAAAAGTGAGAAAGATCACCGCCATAAATGTAAACGATGC -TATATTCGTTTAATATGCTATGGTTCTTTCTCACTTTTTTAAATTAAAATATCGTGCATGTGCAATACGT -GCGATAGAGATGGTTAGAGCTTTGAAATTAAGAATTGTAGGAAGGCGTTTTAAATGAAAATCAATGAGTT -TATAGTTGTAGAAGGACGAGATGATACTGAGCGTGTTAAACGAGCTGTTGAATGTGATACGATTGAAACG -AATGGTAGTGCCATCAACGAACAAACTTTAGAAGTAATTAGAAATGCTCAACAAAGTCGAGGCGTTATTG -TATTAACAGATCCAGATTTCCCAGGAGATAAAATTAGAAGTACAATTACTGAACATGTCAAAGGTGTTAA -ACATGCGTATATTGATAGAGAAAAAGCTAAAAATAAAAAAGGGAAAATTGGTGTTGAACATGCCGACTTA -ATTGATATTAAAGAAGCGTTAATGCATGTTAGTTCACCCTTTGATGAAGCTTATGAATCAATTGATAAAT -CTGTGCTAATAGAGTTGGGGTTAATCGTTGGGAAAGATGCAAGGCGCCGTAGAGAAATTTTAAGTAGAAA -ATTGCGAATCGGCCATTCCAATGGTAAGCAGTTATTGAAAAAGTTAAATGCATTTGGTTATACCGAAGCG -GATGTAAGGCAAGCTTTAGAAGATGAATGAGGAAGTGAAAATGTTGGATAATAAAGATATTGCAACACCA -TCAAGAACGCGAGCGTTGTTAGATAAATATGGCTTTAATTTTAAAAAAAGTTTAGGACAGAACTTTTTAA -TAGATGTGAATATCATTAATAATATCATTGATGCAAGTGATATTGATGCACAAACTGGGGTGATTGAAAT -TGGTCCAGGTATGGGGTCGTTGACAGAACAATTGGCCAGACATGCTAAAAGAGTATTGGCATTTGAAATT -GATCAACGATTAATACCGGTATTAAATGATACACTATCACCTTATGATAATGTGACGGTGATTAATGAAG -ATATTTTAAAAGCGAATATTAAAGAAGCTGTTGAAAATCATTTACAAGATTGCGAAAAAATAATGGTTGT -TGCAAACCTGCCGTACTATATTACGACGCCAATTTTATTAAATTTAATGCAACAAGATATACCAATTGAT -GGCTACGTGGTGATGATGCAAAAAGAAGTGGGCGAACGCTTAAATGCTGAAATAGGTTCAAAAGCATATG -GTTCATTATCAATTGTCGTACAATACTATACAGAGACTAGTAAAGTATTAACGGTACCTAAATCTGTATT -TATGCCACCACCTAATGTTGATTCAATAGTTGTAAAACTGATGCAGAGAACTGAACCGTTAGTAACAGTA -GATAACGAGGAAGCATTCTTTAAGTTAGCAAAAGCAGCATTTGCACAAAGAAGAAAGACAATTAACAATA -ACTATCAAAATTATTTTAAAGATGGTAAACAACACAAAGAAGTGATTATACAATGGTTAGAACAAGCGGG -TATTGATCCAAGACGTCGCGGTGAAACGCTATCTATTCAAGATTTTGCTAAATTGTATGAAGAAAAGAAA -AAATTCCCTCAATTAGAAAATTAAATGATTGACAAAGCAAAGCACTATTGTTAAAATTTAAATTTTGTTT -GACGAAAACGCTGCAAATATGGTATTATGTAACTTGTAGCGAGGTGGAGCAATATGCCAAAATCAATTTT -GGACATCAAAAATTCTATTGATTGTCATGTAGGAAATCGTATTGTACTGAAAGCCAATGGAGGCCGTAAG -AAAACAATAAAACGTTCTGGAATTTTAAAAGAAACATATCCGTCAGTTTTCATTGTTGAGTTAGATCAAG -ACAAACACAACTTTGAGAGAGTATCTTATACATACACTGATGTGTTAACTGAAAATGTTCAAGTTTCATT -TGAAGAGGATAATCATCACGAATCAATTGCACACTAAATAAGACATATAGAGATGTTAGACGTTTCTTAG -TATAAGAAGTAAATATTATGATAATTATTTGAGTGTTGGGCATTATGTTCAATACTCTTTTTATTTACAA -AATGTTTAACACTGATGTTTCGCTTATAGATTTTTCAGTAAATGGATAATTGTATTTATAAACACAAATA -CAAGTAAATACTAAGTAATTAGATGGAGAAAATTACTTTTTTATTAAAAAAACACTAAAAAACAAATTAA -AATGTCAAATATTAATTCTCTTTATGTTAAAATCATCATATTAAGATAACGAAAAGAGGGCGCAAAAATG -ATATATGAAACGGCACCAGCCAAAATTAATTTTACGCTCGATACACTTTTTAAAAGAAATGATGGCTATC -ATGAGATTGAAATGATAATGACAACAGTTGATTTAAATGATCGTTTAACTTTTCATAAAAGAAAAGATCG -AAAGATAGTTGTTGAGATTGAACATAATTATGTGCCTTCTAATCATAAAAATCTCGCATATCGTGCAGCG -CAACTATTTATTGAGCAATATCAACTAAAGCAAGGTGTAACAATTTCTATCGATAAAGAAATACCTGTTT -CTGCTGGCTTAGCTGGAGGTTCGGCTGATGCAGCAGCAACGTTAAGAGGATTGAATCGACTTTTTAATAT -AGGGGCGAGTTTGGAAGAATTGGCTCTACTAGGCAGTAAAATCGGGACAGATATTCCGTTTTGTATTTAT -AATAAAACTGCACTATGTACTGGAAAAGGAGAAAAAATCGAGTTTTTAAATAAACCACCTTCAGCTTGGG -TGATTCTTGCTAAACCAAACTTAGGCATATCATCACCAGATATATTTAAGTTGATTAATTTAGATAAGCG -TTACGACGTACATACGAAAATGTGTTATGAGGCCTTAGAAAATCGAGATTATCAACAATTATGTCAAAGT -TTGTCTAATCGATTAGAGCCAATTTCTGTTTCAAAACACCCACAAATCGATAAATTAAAAAACAATATGT -TGAAAAGTGGTGCAGATGGTGCGTTAATGAGTGGAAGCGGACCGACTGTGTATGGGCTAGCACAAAAAGA -AAGCCAAGCAAAAAATATTTATAATGCAGTTAACGGTTGTTGTAATGAAGTGTACTTAGTTAGACTATTA -GGATAGAAGGGTTGAAAAGATGAGATATAAACGAAGCGAGAGAATTGTTTTTATGACGCAATATTTGATG -AACCATCCGAATAAATTGATTCCATTAACTTTTTTTGTGAAAAAATTTAAACAGGCGAAGTCTTCAATAA -GTGAAGATGTCCAAATTATAAAAAATACATTCCAAAAAGAAAAGTTAGGTACAGTAATTACTACTGCTGG -CGCAAGTGGTGGTGTTACGTATAAACCAATGATGAGTAAAGAAGAGGCGACTGAAGTTGTTAATGAGGTC -ATTACTCTATTAGAAGAGAAAGAACGTTTGTTACCTGGCGGGTATTTATTTTTATCAGATTTGGTAGGTA -ATCCATCGCTACTAAACAAAGTTGGTAAGTTAATTGCCAGTATTTACATGGAAGAAAAATTAGATGCTGT -TGTTACCATTGCGACAAAAGGTATTTCATTGGCAAATGCGGTTGCTAATATTTTAAATTTACCAGTAGTA -GTGATTAGAAAAGACAACAAGGTGACTGAAGGTTCTACAGTTTCAATTAATTACGTTTCAGGATCTTCAA -GAAAAATAGAGACAATGGTACTTTCGAAGAGAACTTTAGCAGAAAATTCAAATGTTTTAGTTGTCGATGA -TTTTATGAGGGCTGGTGGCTCTATCAATGGTGTTATGAATTTAATGAATGAGTTTAAAGCCCATGTAAAA -GGGGTATCAGTACTTGTAGAATCAAAAGAAGTTAAACAAAGATTGATTGAAGATTATACTTCCTTAGTGA -AATTATCTGATGTAGATGAATATAATCAAGAGTTTAACGTAGAACCTGGCAACAGTTTATCTAAGTTTTC -ATAAAAGGAGTTTTAGTATTATGAAAATCATTAACACAACAAGATTACCGGAAGCACTTGGACCATATTC -GCATGCAACAGTTGTGAATGGTATGGTTTATACTTCTGGTCAAATTCCATTGAATGTTGATGGGAAAATC -GTAAGCGCTGATGTTCAAGCACAAACAAAACAAGTTTTAGAAAATTTAAAGGTTGTTTTGGAAGAAGCAG -GATCTGATTTGAATTCTGTTGCGAAAGCGACCATTTTCATTAAAGATATGAATGATTTCCAAAAAATAAA -TGAAGTGTATGGTCAATATTTTAATGAACACAAGCCAGCGCGTAGTTGTGTAGAGGTTGCGCGTTTGCCA -AAAGATGTGAAAGTAGAAATTGAATTAGTAAGTAAAATTAAGGAATTATAATTTTCGATTAATATGTTTA -ATCAAGCTTCTAAATAAAACAGAGAGAGATATACTATAGGGGGGGCTCACTACATGAAAGTGACAGATGT -AAGACTTAGAAAAATACAAACAGATGGACGAATGAAAGCACTCGTTTCCATTACATTAGATGAAGCTTTC -GTAATTCATGATTTACGTGTAATTGAAGGAAACTCTGGCTTGTTCGTTGCAATGCCAAGTAAACGTACAC -CAGATGGTGAATTCCGCGACATCGCGCATCCTATTAATTCAGATATGAGACAAGAAATTCAAGATGCAGT -GATGAAAGTATATGATGAAATAGATGAAGTAGTACCAGATAAAAACGCTACATCAGAAGATTCAGAAGAA -GCTTAATCAATTTTATATTTAGCGATGTAATACATTTGCAATAAGTTGATTTGATACTGTCGATAAAGCA -TAAAGCTTTGTCGGCAGTTTTTTTAGTTTGTATTAATATTAATTTTATGAAATGAAAGGCTAATAAATAT -ATATGTTAACAGATTATGATGATATGAAAATTATTGATACATTGCTGATAAAAATTGCGTTTGAATGATG -CTCGTATTTTTGAAGTAAGGAAAAAGTTGTTTTTAAAATTACAACGAATTAAAAACAATGCCTTTTATAT -GTTGAAAGAGTATTGCAGATTAAATTATAATAATGACGAAGTGTAAAATTTAATGGGGGTTAATGTTCAT -GCGAAGACACGCGATAATTTTGGCAGCAGGTAAAGGCACAAGAATGAAATCTAAAAAGTATAAAGTGCTA -CACGAGGTTGCTGGAAAACCTATGGTCGAACATGTATTGGAAAGTGTGAAAGGCTCTGGTGTCGATCAAG -TTGTAACCATCGTAGGACATGGTGCTGAAAGTGTAAAAGGACATTTAGGCGAGCGTTCTTTATACAGTTT -TCAAGAGGAACAACTCGGTACTGCGCATGCAGTGCAAATGGCGAAATCACACTTAGAAGACAAGGAAGGT -ACGACGATCGTTGTATGTGGTGACACACCGCTCATCACAAAGGAAACATTAGAAACATTGATTGCGCATC -ACGAGGATGCTAATGCTCAAGCAACTGTATTATCTGCATCGATTCAACAACCATATGGATACGGAAGAAT -CGTTCGAAATGCGTCAGGTCGTTTAGAACGCATAGTTGAAGAGAAAGATGCAACGCAAGCTGAAAAGGAT -ATTAATGAAATTAGTTCAGGTATTTTTGCGTTTAATAATAAAACGTTGTTTGAAAAATTAACACAAGTGA -AAAATGATAATGCGCAAGGTGAATATTACCTCCCTGATGTATTGTCGTTAATTTTAAATGATGGCGGCAT -CGTAGAAGTCTATCGTACCAATGATGTTGAAGAAATCATGGGTGTAAATGATCGTGTAATGCTTAGTCAG -GCTGAGAATGCGATGCAACGTCGTACGAATCATTATCACATGCTAAATGGTGTGACAATCATCGATCCTG -ACAGCACTTATATTGGTCCAGACGTTACAATTGGTAGTGATACAGTCATTGAACCAGGCGTACGAATTAA -TGGTCGTACAGAAATTGGCGAAGATGTTGTTATTGGTCAGTACTCTGAAATTAACAATAGTACGATTGAA -AATGGTGCATGTATTCAACAGTCTGTTGTTAATGATGCTAGCGTAGGAGCGAATACTAAGGTCGGACCGT -TTGCGCAATTGAGACCAGGCGCGCAATTAGGTGCAGATGTTAAGGTTGGAAATTTTGTAGAAATTAAAAA -AGCAGATCTTAAAGATGGTGCCAAGGTTTCACATTTAAGTTATATTGGCGATGCTGTAATTGGCGAACGT -ACTAATATTGGTTGCGGAACGATTACAGTTAACTATGATGGTGAAAATAAATTTAAAACTATCGTCGGCA -AAGATTCATTTGTAGGTTGCAATGTTAATTTAGTAGCACCTGTAACAATTGGTGATGATGTATTGGTGGC -AGCTGGTTCCACAATCACAGATGACGTACCAAATGACAGTTTAGCTGTGGCAAGAGCAAGACAAACAACA -AAAGAAGGATATAGGAAATAATCATTTACGTATTTAAAATGGCTAGGATAAAAGGATAATCCTATGTAAT -ATTAATGTAATCTTTATGATTTAATGATTCGCATAGTAATGGAGTTACATTTTATATATAATAGTAATTG -CGTAAGTAAATAATTGGAGGACTATAAATGTTAAATAATGAATATAAGAATTCGTCATTAAAGATTTTTT -CATTGAAAGGAAACGAAGCATTAGCGCAAGAAGTTGCTGACCAAGTAGGAATTGAACTAGGTAAATGTTC -AGTTAAACGTTTTAGTGATGGAGAAATTCAAATTAATATCGAAGAGAGTATTCGTGGTTGTGACGTATTT -ATTATTCAACCAACATCATATCCTGTGAATCTACATTTAATGGAATTATTAATTATGATTGATGCTTGTA -AACGTGCTTCTGCAGCAACAATCAATATTGTAGTGCCATATTATGGATATGCAAGACAAGATAGAAAAGC -CCGTAGCCGTGAGCCAATCACTGCTAAATTAGTTGCAAACTTAATCGAAACAGCTGGCGCAACTCGTATG -ATTGCGTTAGACTTACATGCACCACAAATTCAAGGATTCTTTGATATTCCAATTGACCACTTAATGGGTG -TGCCAATTCTTGCTAAACATTTCAAAGATGATCCGAATATTAACCCAGAAGAATGTGTCGTTGTTTCACC -AGACCATGGCGGTGTTACACGTGCACGTAAATTAGCTGACATTTTAAAAACTCCAATTGCAATTATAGAT -AAACGTCGTCCTAGACCAAATGTTGCTGAAGTGATGAACATTGTTGGTGAGATTGAAGGACGTACGGCAA -TTATTATTGACGATATTATTGATACAGCAGGTACAATCACTTTAGCTGCACAAGCATTAAAAGATAAAGG -TGCTAAAGAAGTATATGCTTGTTGTACACACCCTGTTTTATCAGGACCGGCTAAAGAACGTATCGAAAAT -TCTGCTATAAAAGAATTAATCGTAACAAACTCAATTCATTTAGATGAAGATCGCAAACCATCTAACACTA -AAGAATTATCTGTTGCTGGTTTAATCGCACAAGCTATCATTCGTGTATACGAAAGAGAATCAGTTAGCGT -ATTATTTGACTAATATTTAAAAGGCGTTTGACGAACATATTCCAAACGTGTATAATAGTTTCGTTCGTGA -TTATACGAATAAATAAACACTTGCAAGCAACGATGATGTTGATGGGTAAGTGAGGTGCTCGTTTTGAGCA -AAAATGAAAGGTGGAAATGAGAATGGCTTCATTAAAGTCAATCATCCGTCAAGGTAAACAAACACGTTCA -GATCTTAAACAATTAAGAAAATCTGGTAAAGTACCAGCAGTAGTATACGGTTACGGTACTAAAAACGTGT -CAGTTAAAGTTGATGAAGTAGAATTCATCAAAGTTATCCGTGAAGTATGTCGTAACGGTGTTATCGAATT -AGGCGTTGGTTCTAAAACTATCAAAGTTATGGTTGCAGACTACCAATTCGATCCACTTAAAAACCAAATT -ACTCACATTGACTTCTTAGCAATCAATATGAGTGAAGAACGTACTGTTGAAGTACCAGTTCAATTAGTTG -GTGAAGCAGTAGGCGCTAAAGAAGGCGGCGTAGTTGAACAACCATTATTCAACTTAGAAGTAACTGCTAC -TCCAGACAATATTCCAGAAGCAATCGAAGTAGACATTACTGAATTAAACATTAACGACAGCTTAACTGTT -GCTGATGTTAAAGTAACTGGCGACTTCAAAATCGAAAACGATTCAGCTGAATCAGTAGTAACAGTAGTTG -CTCCAACTGAAGAACCAACTGAAGAAGAAATCGAAGCTATGGAAGGCGAACAACAAACTGAAGAACCAGA -AGTTGTTGGCGAAAGCAAAGAAGACGAAGAGAAAACTGAAGAGTAAGTTTAACTGATTACCATAAAGTTT -TTATACTTTGTTAAACAAGCACTGTGCTTATTTTAATATAAGCATGGTGCTTTTTGTGTTATTATAAAGC -TTAATTAAACTTTATTGCTTTGTACTAAAGTTAAATTAATTTTAGTGAGTAAAAGACATTAAACTCAACA -ATGATACATCATAAAAATTTTAATGTACTTGATTTTAAAATACATACTTACTAATCTAAAGAATAATGAT -AATTGATGGCAATGGCGGAAAATAGATGTTGTCATTATAATAATAAATGAAACAATTATGTTGGAGGTAA -ACACGCATGAAATGTATTGTAGGTCTAGGTAATATAGGTAAACGTTTTGAACTTACAAGACATAATATCG -GCTTTGAAGTCGTTGATTATATTTTAGAGAAAAATAATTTTTCATTAGATAAACAAAAGTTTAAAGGTGC -ATATACAATTGAACGAATGAACGGAGATAAAGTGTTATTCATCGAACCAATGACAATGATGAATTTGTCA -GGTGAAGCAGTTGCACCGATTATGGATTATTACAATGTTAATCCAGAAGATTTAATTGTCTTATATGATG -ATTTGGATTTAGAACAAGGACAAGTTCGCTTAAGACAAAAAGGAAGTGCGGGCGGTCACAATGGTATGAA -ATCAATTATTAAAATGCTTGGTACAGACCAATTTAAACGTATTCGTATTGGTGTGGGAAGACCAACGAAT -GGTATGACGGTACCTGATTATGTTTTACAACGCTTTTCAAATGATGAAATGGTAACGATGGAAAAAGTTA -TCGAACACGCAGCACGCGCAATTGAAAAGTTTGTTGAAACATCACGATTTGACCATGTTATGAATGAATT -TAATGGTGAAGTGAAATAATGACAATATTGACAACGCTTATAAAAGAAGATAATCATTTTCAAGACCTTA -ATCAGGTATTTGGACAAGCAAACACACTAGTAACTGGTCTTTCCCCGTCAGCTAAAGTGACGATGATTGC -TGAAAAATATGCACAAAGTAATCAACAGTTATTATTAATTACCAATAATTTATACCAAGCAGATAAATTA -GAAACAGATTTACTTCAATTTGTAGATGTTGAAGAATTGTATAAGTATCCTGTGCAAGATATTATGACCG -AAGAGTTTTCAACACAAAGCCCTCAACTGATGAGTGAACGTATTAGAACTTTAACTGCGTTAGCTCAAGG -TAAGAAAGGGTTATTTATCGTTCCTTTAAATGGTTTGAAAAAGTGGTTAACTCCTGTTGAAATGTGGCAA -AATCACCAAATGACATTGCGTGTTGGTGAGGATATCGATGTGGACCAATTTCTTAACAAATTAGTTAATA -TGGGGTACAAGCGGGAATCTGTGGTATCGCATATTGGTGAATTCTCATTGCGAGGAGGTATTATCGATAT -CTTTCCGCTAATTGGGGAACCAATCAGAATTGAGCTATTTGATACCGAAATTGATTCTATTCGGGATTTT -GATGTTGAAACGCAGCGTTCCAAAGATAATATTGAAGAAGTCGATATCACAACTGCAAGTGATTATATCA -TTACTGAAGAAGTAATCAGCCATCTTAAAGAAGAGTTAAAAACTGCATATGAAAATACAAGACCCAAAAT -AGATAAATCAGTGCGCAATGATCTGAAAGAAACGTATGAAAGCTTTAAATTATTCGAAAGTACATACTTT -GATCATCAAATACTACGTCGTTTAGTAGCGTTTATGTATGAAACACCTTCGACAATTATTGATTATTTCC -AAAAAGATGCAATCATTGCGGTTGATGAATTTAATCGTATTAAAGAAACTGAAGAAAGTTTAACAGTAGA -GTCTGATTCGTTTATTAGCAACGTTATTGAAAGTGGTAATGGATTTATAGGACAAAGTTTTATAAAATAT -GATGATTTTGAAACATTGATTGAAGGCTATCCTGTCACTTATTTTTCATTATTCGCTACAACAATGCCGA -TAAAACTAAATCATATTATTAAATTTTCATGTAAACCTGTCCAACAATTTTATGGGCAATATGACATTAT -GCGTTCTGAATTTCAACGATATGTTAATCAAAATTATCATATCGTGGTTTTGGTCGAAACCGAAACTAAA -GTTGAACGTATGCAAGCGATGTTAAGTGAAATGCATATTCCATCAATAACAAAATTGCATCGCTCAATGT -CATCGGGGCAAGCAGTGATTATTGAAGGCAGTTTATCTGAAGGATTTGAACTACCTGATATGGGATTAGT -TGTCATTACTGAACGTGAGCTTTTTAAATCAAAACAGAAAAAGCAACGAAAACGTACGAAAGCTATCTCA -AATGCTGAAAAAATTAAGTCTTACCAAGATTTAAATGTGGGAGATTATATTGTTCATGTGCATCATGGTG -TTGGTAGATATTTAGGTGTTGAGACGCTCGAAGTAGGGCAAATACATCGTGATTATATTAAATTGCAATA -TAAAGGTACGGATCAACTATTTGTTCCAGTAGATCAAATGGATCAAGTTCAAAAATATGTAGCTTCGGAA -GATAAGACGCCAAAATTAAATAAACTCGGTGGCAGTGAATGGAAAAAAACAAAAGCTAAAGTTCAACAAA -GTGTTGAAGATATTGCTGAAGAGTTGATTGATTTATATAAAGAAAGAGAAATGGCAGAAGGTTATCAATA -TGGGGAAGACACAGCTGAGCAAACAACATTTGAATTAGATTTTCCATATGAACTTACGCCTGACCAAGCG -AAATCTATCGATGAAATTAAAGATGACATGCAAAAATCGCGTCCAATGGATCGCTTGCTATGTGGTGATG -TTGGTTATGGTAAAACTGAAGTTGCAGTGAGAGCAGCATTCAAAGCTGTAATGGAAGGAAAGCAGGTTGC -ATTTTTAGTTCCTACAACTATTTTAGCTCAGCAACATTATGAGACGTTAATTGAGCGTATGCAAGATTTT -CCTGTTGAAATTCAATTAATGAGTCGTTTTAGAACGCCAAAAGAGATAAAACAAACTAAGGAAGGACTTA -AAACTGGGTTTGTTGACATAGTTGTTGGTACACACAAATTACTTAGTAAAGATATACAGTATAAAGATTT -AGGGCTGTTGATTGTAGATGAAGAACAACGATTTGGTGTACGCCATAAAGAGCGTATTAAAACATTAAAA -CATAATGTAGATGTACTAACATTGACTGCAACCCCAATACCTAGAACATTGCATATGAGTATGCTAGGTG -TGCGCGATTTGTCAGTGATTGAAACGCCGCCAGAAAATCGTTTCCCAGTTCAAACATATGTATTAGAACA -GAACATGAGTTTTATCAAAGAAGCTTTAGAAAGAGAACTATCCCGTGATGGCCAAGTATTTTATCTTTAT -AATAAAGTGCAATCCATTTATGAAAAACGAGAACAACTCCAGATGTTAATGCCAGATGCTAACATTGCAG -TTGCTCATGGACAAATGACAGAGCGCGATTTAGAAGAAACGATGTTAAGTTTTATCAATAATGAATATGA -TATTTTAGTAACGACGACGATTATTGAAACAGGTGTCGATGTCCCAAATGCAAATACTTTGATCATTGAA -GATGCAGATCGCTTTGGATTGAGTCAGTTGTATCAATTAAGAGGTCGTGTTGGTCGTTCAAGTCGTATTG -GTTATGCATACTTCTTACATCCAGCAAATAAGGTACTAACTGAGACTGCAGAAGATCGATTACAAGCGAT -TAAAGAATTTACGGAGTTAGGCTCAGGATTTAAGATTGCGATGCGTGATTTGAACATTCGTGGTGCTGGT -AATTTGTTAGGTAAACAACAGCACGGCTTTATTGATACAGTTGGATTTGATTTGTACAGTCAAATGTTAG -AAGAAGCTGTAAATGAAAAACGTGGTATTAAGGAACCAGAATCTGAGGTGCCAGAAGTCGAAGTTGATTT -AAACTTGGATGCATATTTGCCAACAGAATATATTGCAAATGAACAAGCTAAAATTGAAATTTATAAAAAG -CTAAGAAAAACTGAAACATTTGATCAAATTATCGACATAAAAGATGAATTAATTGATCGTTTCAATGATT -ATCCTGTTGAAGTAGCACGTTTGCTTGATATAGTGGAAATAAAAGTACACGCATTACATTCAGGTATCAC -GTTGATTAAAGATAAAGGGAAAATAATTGATATTCATTTATCTGTAAAAGCCACTGAAAATATTGATGGC -GAAGTGCTGTTCAAAGCAACACAACCTTTAGGTAGAACAATGAAGGTTGGTGTTCAAAATAATGCAATGA -CAATTACTTTAACGAAACAAAATCAATGGCTTGATAGTTTGAAGTTTTTAGTTAAGTGCATTGAAGAAAG -TATGAGAATCAGTGATGAAGCATAAAGAAGCATTTAATGGCGTTGTCGTGTTAACTGCTGCATTAATTGT -CATTAAAATTCTGAGTGCTGTATATCGAATTCCATATCAAAATATATTAGGCGATACAGGTTTGTATGCA -TATCAACAAGTGTATCCAATTGTAGCATTAGGAATGATATTATCGATGAATGCCATTCCTAGTGCAATTA -CACAAAATATAGGGAAGTATCATAGTGACGAAGCATATGCAAAAGCAGTCGCTTATATACAATTAGTTGG -TATGTTATTATTTATTGCTATTTTTGTGTTTGCGAACAATATTGCACATATGATGGGTGATAGCCATTTA -ACACCTATGATTCAAGCTGCAAGTTTAAGCTTTATATTTATAGGTATGCTTGGCGTGTTAAGAGGTTATT -ATCAATCTGCAAATAATATGACAGTTCCGGCTATTTCCCAGGTTATAGAACAAGTTATACGAGTAGGTAT -TATCATTGTTACTATTGTTATTTTTGTAGATAGAGGTTGGACGATATATGAAGCGGGTACAATTGCTATT -TTAGCATCAACGATAGGTTTTTTAGGTTCTTCAATTTATTTAGTAGCGCACCGACCTTTTAAGTTTAAAA -TGGTAAATAACACTGCAAAGATTGTTTGGAAACAGTTCGCACTTTCGGTTTTGATTTTCGCTATCAGTCA -ATTAATCGTAATTTTATGGCAAGTGATTGATAGTGTTACTATTATTAAGTCACTTCAAGCGATACGCGTG -CCATTCGATGTTGCTATAACTGAAAAAGGAGTCTATGACCGTGGTGCATCATTTATTCAGATGGGATTGA -TTGTAACTACAACATTTAGTTTTGCGCTCATTCCTCTGTTAAGTGACGCAATCAAAATGAATAATCAGGT -ACTTATGAATCGTTATGCAAATGCGTCATTAAAGATTACGATTTTAATAAGTACAGCAGCGGGAATAGGA -TTAATTAATTTATTGCCTTTAATGAACGGTGTATTTTTTAAGACGAATGATTTAACCTTAACGTTAAGCG -TTTATATGATTACGGTTATTTGTGTATCGTTAATTATGATGGATATGGCATTATTACAAGCTCAACATGC -TGTGAGACCAATTTTTGTCGGTATGACGGCAGGATTGGTTATTAAATTTATACTTAATATCATTTTGATT -CGTTTAAGTGGCATTATTGGTGCGAGCATTAGTACTGTTGTATCATTAATTATATTCGGTACGATTATCC -ATATTGCTGTCACGAGAAAATACCATTTACATGCGATGAGACGATTTTTTATCAATGTTGTTTTAGGTAT -GGTATTTATGTCGATTGTTGTTCAATGCGTGTTAAACATAGTGACAACACACGGTAGAATCACTGGACTC -GTTGAATTATTATGTGCAGCAGTATTAGGTATCATTGCATTGTTTTTCTATATTTTTAGATTTAATGTTT -TGACATATAAAGAGTTAACTTATTTACCATTTGGTTCAAAGTTGTATCAAATTAAGAAAGGAAGACGTTG -ATGGAACATACCATTACGATTGTTGGCTTAGGAAACTATGGCATTGATGATTTGCCGCTAGGGATATATA -AATTTTTAATGACACAAGATAAAGTTTATGCAAGAACGTTAGATCATCCAGTTATAGAATCGTTGCAAGA -TGAATTAACATTTCAGAGTTTTGACCATGTTTATGAAGCACATGACCAATTTGAAGATGTCTATAATGAT -ATTGTGGCGCAATTGGTTGAAGCTGCTAATGAAAAAGATATTGTCTATGCGGTTCCGGGTCATCCTAGAG -TTGCTGAGACAACTACAGTGAAATTACTGGCTTTAGCAAAGGACAATACTGATATAGATGTGAAAGTTTT -AGGTGGGAAAAGCTTTATTGATGATGTGTTTGAAGCAGTTAATGTAGATCCAAATGATGGCTTCACACTG -TTAGATGCGACATCATTACAAGAAGTAACACTTAATGTTAGAACGCATACATTGATTACGCAAGTTTATA -GTTCAATGGTTGCTGCTAATTTGAAAATCACTTTAATGGAACGATATCCTGATGATTATCCTGTTCAAAT -TGTCACTGGTGCACGAAGCGATGGTGCGGATAACGTTGTGACATGCCCATTATATGAATTGGATCATGAT -GAAAATGCATTCAATAATTTGACGAGTGTATTCGTACCAAAAATCACAACACCGACATATTTGTATCATG -ACTTTGATTTTGCAACGGAAGTGATTGATACTTTAGTTGATGAAAATAAAGGTTGTCCATGGGATAAAGT -GCAAACGCATGAAACACTTAAGCGTTATTTACTTGAAGAAACATTCGAATTGTTCGAAGCTATTGACAAT -GAAGATGATTGGCATATGATTGAAGAACTAGGAGATATTTTATTACAAGTGTTATTGCATACTAGTATTG -GTAAAAAAGAAGGGTATATCGACATTAAAGAAGTGATTACAAGTCTTAATGCTAAAATGATTCGTAGACA -CCCACACATATTTGGTGATGCTAATGCTGAAACTATCGATGACTTAAAAGAAATTTGGTCTAAGGCGAAA -GATGCTGAAGGTAAACAGCCAAGAGTTAAATTTGAAAAAGTATTTGCAGAGCATTTTTTAAATTTATATG -AGAAGACGAAGGATAAGTCATTTGATGAGGCCGCGTTAAAGCAGTGGCTAGAAAAAGGGGAGAGTAATAC -ATGAGATTAGATAAATATTTAAAAGTATCACGGTTAATAAAGCGACGTACGCTAGCAAAAGAGGTAAGTG -ATCAAGGTAGAATTACAATAAATGGTAATGTTGCTAAAGCTGGATCGGATGTTAAAGTTGAAGATGTGCT -GACGATTCGCTTTGGTCAAAAATTAGTAACAGTTAAAGTAACTGCATTAAATGAACATGCATCTAAAGAT -AACGCGAAGGGCATGTATGAAATCATTGAAGAGCGTCGACTTGAAGAAGCGTAAATTGGAGGTGACAAGC -AATGAAAAATAAAGTAGAACATATAGAAAATCAGTACACGTCGCAAGAGAACAAGAAAAAACAACGTCAA -AAAATGAAAATGCGTGTTGTTCGTAGGCGTATTACAGTATTTGCGGGTGTATTACTTGCGATAATTGTTG -TTTTATCAATCTTGCTTGTTGTCCAAAAACATCGCAATGATATTGATGCACAGGAGCGAAAAGCGAAAGA -AGCACAGTTTCAAAAGCAACAAAATGAAGAAATTGCGTTAAAAGAAAAGTTGAATAATCTGAATGACAAA -GATTATATTGAAAAAATTGCGCGTGATGATTATTACTTAAGCAACAAAGGTGAAGTGATTTTTAGGTTGC -CAGAAGACAAAGATTCGTCTAGCTCAAAATCTTCGAAAAAATAAATCCAAATTGATTCAAAATTATCCGA -GTATAGACATTGTGAAAAAATCCAAACAAGGATATAATAAGGGAAAATCGAATCAAATCGGGAGGATTTA -TTTAACATATGTCAATCGAAGTTGGAAATAAGCTTAAAGGTAAAGTCACTGGTATTAAAAAGTTTGGTGC -ATTCGTAGAATTACCTGAAGGAAAAAGTGGTTTAGTTCACATTAGTGAAGTCGCAGATAATTATGTTGAA -AACGTAGAAGATCACCTTTCTGTTGGTGATGAAGTAGACGTAAAAGTATTATCTATTGCTGATGATGGAA -AAATTAGTCTTTCAATAAAGAAAGCTAAAGACCGTCCACGTAGACAACATACGAGTAAACCAAGTCATCA -AAAACCAGTGCAAAAAGCCGAAGATTTTGAAAAGAAATTAAGCAATTTCTTAAAAGATAGTGAAGATAAA -TTAACTTCAATCAAACGTCAAACAGAATCTAGACGCGGTGGCAAAGGTTCTAGACGTTAATTAAAATAAA -TAAAGACTGTTTCGATAAGGAATATATTTAGAATGATGCGTATCGAATAATCGATTGCAGCGTTAGACAA -TCTAAGACTGTTTCTTAAATAAGGAGCAGTCTCTTTTATTTGTAATGATATAACTAAGACTTATACCATT -TTTGAAAATTGTAAAAGTGAGGTGATGTTATGCAGTTAAATAGTAATGGTTGGCATGTTGATGACCATAT -TGTTGTCGCTGTTTCTACAGGTATTGATAGTATGTGTTTATTGTATCAACTACTAAATGATTATAAAGAT -AGTTATAGAAAACTAACATGTTTACATGTCAATCATGGCGTTAGGTCAGCTTCAATCGAGGAAGCCAGAT -TTTTAGAAGCATACTGCGAACGTCATCACATCGATTTACATATCAAAAAGTTGGATTTGTCGCATAGTCT -CAATCGAAATAACAGCATTCAGAATGAAGCTCGAATTAAACGTTACGAATGGTTTGATGAAATGATGAAT -GTATTAGAAGCGGATGTATTGCTAACGGCGCATCATTTGGACGATCAATTAGAAACTATTATGTATCGCA -TTTTTAATGGGAAATCAACGCGTAATAAACTAGGATTTGATGAGTTGTCGAAGCGAAATGGTTATCAGAT -TTATCGACCACTTTTAGCTGTCTCTAAAAAAGAAATAAAACAATTCCAAGAGAGATATCATATACCATAT -TTTGAAGATGAATCTAATAAAGATAACAAATATGTTAGAAATGATATTCGTAATAGAATTATTCCAGCTA -TTGATGAAAATAATCAACTTAAAGTATCGCATTTATTAAAATTAAAACAATGGCATGATGAACAATATGA -TATTTTGCAATATTCAGCTAAACAATTTATTCAAGAATTTGTGAAGTTTGATGAACAGTCAAAATATTTA -GAGGTTTCTAGGCAAGCTTTTAATAACTTGCCAAACTCATTAAAGATGGTTGTGTTGGATTGCCTATTAT -CAAAGTATTATGAGTTGTTTAATATTAGTGCTAAAACATACGAAGAGTGGTTTAAACAATTTAGTAGTAA -GAAAGCACAATTCAGTATTAATCTCACGGATAAATGGATAATTCAAATCGCATATGGTAAATTAATAATA -ATGGCTAAAAATAATGGCGATACATATTTTAGAGTTCAAACTATTGAAAAGCCAGGTAATTATATTTTTA -ACAAATATCGATTAGAGATACATTCTAATTTACCAAAATGTTTATTTCCACTTACAGTGAGAACACGACA -AAGTGGCGATACATTTAAACTGAATGGGCGCGATGGTTATAAGAAAGTAAATCGCCTGTTTATAGATTGT -AAAGTGCAACAGTGGGTTCGGGATCAAATGCCAATCGTATTGGATAAACAACAGCGCATTATTGCGGTAG -GAGATTTATATCAACAACAAACAATAAAACAATGGATTATAATTAGTAAAAATGGAGATGAATAGCGTTA -TGCATAATGATTTGAAAGAAGTATTGTTAACTGAAGAAGATATTCAAAATATCTGTAAGGAATTGGGAGC -ACAATTAACAAAGGATTATCAAGGTAAACCATTAGTATGCGTGGGTATCTTAAAAGGCTCAGCAATGTTT -ATGTCAGATTTAATTAAACGAATTGATACCCATTTATCAATTGATTTCATGGATGTTTCTAGTTATCACG -GAGGCACTGAGTCAACTGGTGAAGTTCAAATCATTAAAGATTTAGGTTCTTCTATTGAAAATAAAGACGT -ATTAATTATTGAAGATATCTTAGAGACTGGTACTACACTTAAGTCAATTACTGAATTATTACAATCTAGA -AAAGTTAATTCATTAGAAATAGTTACTTTATTAGATAAACCAAACCGTCGTAAAGCGGACATTGAAGCTA -AGTATGTAGGTAAAAAAATACCAGATGAATTTGTTGTTGGTTACGGTTTAGATTATCGTGAATTATACCG -AAACTTACCATATATCGGTACGTTAAAACCTGAAGTGTATTCAAATTAATTTTTTAATCGATTTCAGTTA -TTATTACTATGCGTTTGAGAAATAATAGTGTAGACTCAAAAATATGAAAAATGTATTTCATATATATTTA -ATTTTAGACAAGACATATGTCTTAAAAAGTTGAAAAATATAGAGATTGATAAAACTAACACAGGGTGTGA -ATGACATTGATGTTAAGCTCAATTACTAGCTTATAAAACATGTCATATGTTACAATTTTTGTTAGTTTTA -TTATGGGAAGTAGGAGGAAATGACGCATGCAGAAAGCTTTTCGCAATGTGCTAGTTATCGTAATAATAGG -CGTTATTATTTTTGGTCTATTTTCATATTTAAACGGTAATGGAAATATGCCGAAACAGCTTACATATAAT -CAATTTACTGAGAAGTTGGAAAAAGGTGACCTTAAAACTTTAGAAATCCAACCACAACAAAATGTCTATA -TGGTAAGTGGTAAAACGAAAAATGATGAAGACTATTCATCAACTATTTTATATAACAACGAAAAAGAATT -ACAAAAAATTACTGATGCTGCTAAAAAGCAAAACGGTGTAAAATTAACGATTAAAGAAGAAGAAAAACAA -AGTGTCTTTGTGAGTATACTTTCAACATTAATTCCAGTTGTAGTCATAGCGTTATTATTTATTTTCTTCC -TAAGCCAAGCACAAGGTGGCGGTAGTGGCGGTCGTATGATGAACTTTGGTAAATCTAAAGCAAAAATGTA -CGATAATAATAAACGTCGTGTTCGTTTCTCTGATGTAGCAGGGGCAGATGAAGAAAAACAAGAATTAATT -GAAATTGTTGATTTCTTGAAAGACAATAAAAAATTCAAAGAAATGGGATCTAGGATTCCTAAAGGTGTCT -TACTTGTTGGACCTCCAGGTACTGGTAAAACATTACTTGCTAGAGCGGTTGCAGGTGAAGCAGGCGCACC -ATTCTTCTCTATTAGTGGTTCAGACTTTGTAGAGATGTTTGTTGGTGTTGGTGCGAGCCGTGTTCGTGAC -TTATTCGATAATGCTAAGAAAAACGCGCCTTGTATCATCTTTATCGATGAGATTGATGCTGTTGGTCGTC -AACGTGGTGCAGGTGTTGGTGGCGGTCATGATGAACGTGAACAAACCCTAAACCAATTATTAGTTGAAAT -GGATGGATTCGGTGAAAATGAAGGTATCATTATGATAGCTGCTACAAACCGTCCTGATATCCTTGACCCA -GCCTTATTACGTCCAGGTCGTTTTGATAGACAAATTCAAGTTGGTCGTCCAGATGTGAAAGGCCGTGAAG -CAATTCTTCATGTTCATGCTAAAAATAAACCACTTGATGAAACGGTTGATTTAAAAGCGATTTCACAACG -TACACCTGGTTTCTCAGGTGCTGATTTAGAAAACTTATTAAATGAAGCATCTTTAATTGCTGTACGTGAA -GGTAAAAAGAAAATTGACATGAGAGATATCGAAGAGGCAACGGATAGAGTTATAGCCGGACCTGCTAAGA -AATCTCGAGTTATTTCTAAGAAAGAACGTAATATTGTTGCTCATCACGAAGCTGGTCATACAATTATCGG -TATGGTACTTGATGAGGCAGAAGTAGTGCATAAAGTTACTATCGTTCCACGTGGACAAGCTGGTGGTTAT -GCAATGATGCTACCTAAACAAGATCGTTTCTTAATGACTGAACAAGAGTTATTAGATAAAATCTGTGGTT -TACTTGGTGGACGTGTATCAGAAGATATTAACTTTAACGAAGTATCAACAGGTGCTTCAAATGACTTCGA -ACGTGCAACACAAATCGCACGCTCAATGGTTACGCAATATGGTATGAGTAAAAAATTAGGGCCATTACAG -TTCGGTCATAGCAATGGTCAAGTATTCTTAGGTAAAGATATGCAAGGTGAGCCTAATTATTCAAGCCAAA -TCGCATATGAAATTGATAAAGAAGTTCAACGAATCGTTAAAGAACAATACGAACGTTGTAAACAAATTTT -ATTAGAGCACAAAGAACAATTAATTTTAATTGCTGAAACATTATTAACAGAAGAAACATTAGTTGCTGAA -CAAATTCAATCATTATTCTACGAAGGTAAATTACCTGAAATTGATTATGATGCAGCTAAAGTTGTTAAAG -ATGAAGATTCTGAATTTAATGATGGTAAATTCGGTAAATCTTATGAAGAGATTCGTAAAGAGCAATTAGA -AGATGGACAACGTGACGAAAGTGAAGATCGTAAAGAAGAAAAAGATATTGCTGAGGATAAAAAAGAAGCT -GATAAATCTGATGAAAAAGATGAACCAGCACATCGACAAGCCCCAAATATCGAAAAACCTTACGATCCAA -ATCACCCAGACAATAAATAATCGATTATATTCAGTACCTCTTTCTATGATAAAGTTATAGAAAGAGGTAC -TTTTATGATTTAAGGAATACGAGCCTGAGACATAAAACAATGTTCAATGCTCTACAAAGTTATATTGGCA -GTAGTTGACTGAACGAAAAAGCGCTAGTAACAAGCTTTTTTCAATTCTAGTCAGGCGCCCCAACACAGAG -AATTTCGAAAAGAAATTCTACAGGCAATGCGAGTTGGGGTGGGACGACGAAATAAATTTTTTGAAAATAT -CATTTCTGTCCCACTCCCATTATGGCACGAATAATTAATAATCAAACAAGTTGCTTCATTATTTAGAATG -ATGGGTGTAGAATAAGTACAATTGTTGCATTTTATGAAGTAAAGTAATTTTTAAAATATAGAGTAATAGA -GGAGATTGAAATAATGACACACGATTATATTGTTAAAGCATTAGCATTTGATGGGGAGATTAGGGCTTAT -GCTGCTTTGACAACTGAAACTGTTCAAGAAGCACAAACGAGACATTATACATGGCCGACAGCATCTGCTG -CAATGGGAAGAACAATGACAGCAACAGCTATGATGGGCGCAATGTTGAAAGGTGATCAAAAATTAACAGT -CACTGTAGATGGCCAAGGACCTATTGGACGAATTATTGCCGATGCAAATGCTAAAGGCGAGGTGCGTGCT -TATGTAGACCATCCACAAACTCATTTTCCATTAAATGAGCAAGGTAAACTTGATGTAAGACGAGCAGTAG -GGACAAATGGATCTATTATGGTTGTTAAAGACGTTGGAATGAAAGACTATTTCTCTGGAGCAAGTCCAAT -TGTTTCAGGAGAACTTGGTGAAGATTTTACTTATTATTATGCTACAAGTGAACAAACACCTTCATCGGTA -GGTCTTGGTGTATTGGTAAATCCTGATAATACGATTAAAGCAGCAGGAGGATTTATCATTCAAGTTATGC -CAGGTGCTAAAGATGAAACAATTTCAAAATTAGAAAAAGCAATTAGTGAAATGACACCAGTTTCTAAATT -AATTGAACAAGGATTAACGCCAGAAGGATTACTAAACGAAATCTTAGGTGAAGACCATGTGCAAATTTTA -GAGAAAATGCCTGTTCAATTTGAATGTAATTGTAGTCATGAGAAATTTTTAAATGCTATTAAAGGATTGG -GCGAGGCTGAGATTCAAAATATGATCAAAGAAGATCATGGTGCTGAAGCAGTATGTCATTTCTGTGGAAA -TAAATATAAATATACTGAAGAAGAATTAAACGTGTTGCTAGAAAGTTTAGCGTAATTTAATTTAAATCAA -TACGCTAAAATGTTTATTTTTAGCGGTTTAGTGAAATGTAGAACTAAATAGTTGTATAATCCTTAGTAAT -TTTGTTTGCTTTCTAGAATTTATTTGATAAAATAATTCTATATCCGATAAATAAACTAAGATTTCAACAA -CTAACTAAAAAGGAGTGTTCTTAATGGCACAAAAACCAGTAGATAATATTACTCAAATTATTGGCGGTAC -ACCGGTAGTCAAATTGAGAAATGTAGTAGATGACAATGCAGCAGATGTTTATGTAAAATTGGAATATCAA -AATCCAGGTGGTTCTGTAAAGGATAGAATTGCTTTAGCAATGATTGAAAAAGCAGAGCGAGAAGGCAAAA -TTAAACCTGGCGATACAATTGTAGAACCAACTAGTGGTAATACAGGTATCGGTTTAGCATTTGTATGTGC -TGCTAAAGGATATAAAGCAGTATTTACTATGCCTGAAACAATGAGCCAAGAGCGTCGTAATTTATTAAAA -GCATACGGTGCGGAATTAGTCTTAACGCCTGGATCAGAAGCGATGAAAGGTGCAATTAAAAAAGCTAAAG -AATTAAAAGAAGAACATGGTTACTTCGAGCCACAACAATTTGAAAACCCTGCGAACCCTGAAGTTCATGA -GTTAACTACAGGTCCTGAGTTATTACAACAATTTGAAGGGAAAACTATCGATGCGTTCCTAGCTGGTGTT -GGTACTGGCGGTACGTTATCTGGTGTAGGTAAAGTTCTGAAAAAAGAATATCCTAACATCGAAATTGTTG -CTATAGAGCCTGAGGCTTCTCCAGTATTGAGCGGTGGTGAGCCAGGTCCACATAAATTACAAGGTTTAGG -TGCTGGATTTATTCCAGGTACTTTGAATACAGAAATCTATGACAGTATTATTAAAGTAGGAAATGATACA -GCGATGGAAATGTCTCGTCGAGTTGCTAAAGAGGAAGGTATTTTAGCAGGTATTTCATCAGGTGCTGCGA -TTTATGCTGCCATTCAAAAAGCAAAAGAATTAGGAAAAGGTAAAACAGTAGTAACAGTATTGCCGAGTAA -TGGTGAACGCTACTTATCAACACCTTTATATTCTTTCGATGACTAATTAATGTCATTTAAAAGAGTGAGC -TATCTTTTTGAGATAACTTGCTCTTTTTTTCTACCATGTATAATTTTAAAAATATGAGCGTTAAATTAAA -CATTTTTCTGATAAAAACATCCAGTGAATGATAAGATAATAAACGTACATACTAATAACTAGTAAATCGC -AGGAGTAAATTTTATTAGAGTTAAACAATACATAATTAAAGGGTGGTTAACATGACTAAAACAAAAATTA -TGGGCATATTAAACGTCACACCTGATTCATTCTCAGATGGTGGAAAATTTAATAATGTTGAATCAGCAGT -AACTAGAGTGAAAGCGATGATGGATGAAGGTGCTGACATTATAGATGTTGGAGGTGTTTCAACGAGACCC -GGCCATGAAATGATTACTGTGGAAGAAGAGTTGAATAGAGTATTACCAGTTGTTGAAGCGATTGTCGGTT -TTGATGTAAAAATTTCGGTTGATACTTTTCGTAGTGAAGTTGCTGAAGCTTGTTTAAAGCTAGGTGTTGA -TATTATTAATGATCAATGGGCAGGCCTTTATGATCATCGCATGTTTCAAGTTGTAGCCAAATACGATGCG -GAAATTGTTTTAATGCATAATGGCAATGGTAATCGTGATGAACCGGTTGTCGAAGAAATGTTAACATCTT -TGTTAGCACAAGCACATCAAGCTAAAATAGCTGGTATACCTTCAAATAAAATTTGGCTAGATCCAGGTAT -AGGTTTCGCTAAAACTAGAAATGAAGAAGCCGAAGTTATGGCAAGACTGGATGAACTTGTTGCAACAGAA -TATCCAGTTTTATTAGCGACAAGCCGGAAACGTTTCACTAAAGAGATGATGGGTTATGATACAACACCGG -TTGAAAGAGATGAAGTAACTGCAGCTACGACTGCATATGGTATTATGAAAGGCGTTAGAGCAGTACGCGT -TCATAATGTCGAGTTGAATGCTAAATTAGCTAAAGGTATAGATTTTTTAAAGGAGAATGAAAATGCAAGA -CACAATTTTTCTTAAAGGTATGCGCTTTTATGGATATCATGGTGCTTTATCAGCTGAAAATGAAATAGGA -CAAATTTTCAAAGTGGATGTAACTTTGAAAGTAGACTTATCTGAAGCTGGTCGTACTGATAATGTTATTG -ATACAGTTCATTATGGTGAAGTGTTCGAAGAGGTTAAATCAATTATGGAAGGTAAGGCCGTTAATTTACT -TGAGCATCTAGCTGAACGTATTGCAAATCGTATAAATTCACAATATAATCGTGTAATGGAAACGAAAGTG -AGAATCACTAAAGAAAACCCACCGATTCCGGGTCATTATGATGGAGTAGGTATCGAAATTGTGAGGGAGA -ATAAATGATTCAAGCATACTTAGGATTAGGTAGTAATATTGGTGATAGAGAAAGCCAGTTAAACGATGCT -ATAAAGATTTTGAATGAATATGATGGTATTAACGTATCTAATATTTCTTCGATTTATGAAACAGCACCAG -TTGGGTATACTGAGCAACCTAACTTTTTAAATTTGTGTGTTGAGATTCAAACAACACTCACAGTATTACA -ACTGTTGGAATGTTGTTTGAAGACAGAAGAATGTTTACACCGTGTTAGAAAGGAACGATGGGGTCCTAGA -ACTTTAGATGTGGATATTTTGTTGTATGGAGAAGAAATGATAGATTTACCAAATCTGTCGGTGCCACATC -CGAGAATGAATGAACGTGCATTTGTTTTAATCCCATTAAATGATATAGCAGCAAATGTCATAGAACCACG -TTCGAAATTGAAAGTGAAAGATTTAGTTTTTGTCGATGACAGTGTAAGGCGATATAAATAATGTATTGTT -GAGAACATTCATATTTATTAGGAATAGATGATTGATTATTGGAGATGTTTCGGCATTTTGATTATCTCTA -AATGCATTTGATTTCGAATTAGTATATGATGATTTAGTATGTGTTAGAATTAAGTTATTTCATAAAATCA -AAGTAAGCAATATTTGATAAATTGCTGTAATTTATTTGGACTTTTGTTGAAGTTTGTGAAAGATAATTTT -TATACATTTACTTAGGGTTGTATTAATGATAATCGTATTTTAAATGAATAAGTAATTCATAAACGAAAAC -AGAAATTGCTTTATTACATTTACAACCTCTTGTAAAATTAAAAAAGTGATAAAATTGATGTTATGAATAT -AAGAAAACATGCCACATCATAACTTTAAGGTGCAATGGTTAATGGTAAAGTATTAGAAACATCGAAAGAG -ATGTATGTTGAGCAAAAATGTCTGATATTTTATAAAACTTTAAAGGAAAATGTTTGAGTGTACCAGTTGG -AATACTAAAGGATTACAACAAGTTAAAGGAGAGAAAGTTATGTCAGAAGAAATGAATGACCAAATGTTGG -TTCGACGTCAAAAATTACAAGAATTATATGATCTTGGTATAGACCCGTTTGGTTCTAAATTTGACCGTTC -AGGTTTATCTAGTGATTTGAAAGAAGAGTGGGACCAGTATTCTAAAGAAGAATTGGTAGAAAAAGAAGCG -GATAGTCATGTCGCTATAGCTGGACGATTAATGACTAAGCGTGGTAAAGGTAAAGCAGGATTTGCACACG -TTCAGGACTTAGCTGGACAAATTCAAATATACGTTCGTAAAGATCAAGTTGGCGATGACGAATTTGATTT -ATGGAAAAATGCTGATTTAGGCGATATCGTTGGTGTTGAAGGTGTAATGTTCAAAACAAATACTGGCGAA -TTATCGGTTAAAGCGAAGAAATTCACGCTACTAACTAAATCATTGCGACCATTACCGGATAAATTCCACG -GTTTACAGGATATTGAACAGAGATATCGTCAAAGATATTTAGATTTAATTACGAACGAAGATAGCACTCG -TACATTTATTAATCGTAGTAAAATCATTCAAGAAATGCGTAATTATTTAAATAATAAAGGTTTCTTGGAA -GTAGAAACACCTATGATGCACCAAATTGCTGGTGGAGCAGCTGCTAGACCATTTGTAACACATCATAATG -CATTAGATGCAACGTTATACATGCGTATTGCTATTGAGTTGCATTTAAAACGTTTAATTGTCGGTGGACT -TGAAAAAGTATATGAAATTGGTAGAGTATTCCGTAATGAAGGTGTATCAACTAGACATAACCCTGAATTC -ACAATGATTGAATTATATGAAGCATATGCAGATTATCATGACATTATGGATTTAACAGAATCTATGGTGA -GACATATTGCCAATGAAGTATTAGGTTCTGCAAAAGTACAATACAATGGGGAAACGATTGATTTAGAATC -TGCTTGGACTCGTTTGCATATTGTTGATGCTGTAAAAGAAGCTACTGGTGTAGATTTTTATGAAGTTAAA -AGTGATGAAGAAGCTAAAGCTTTAGCTAAGGAACATGGTATTGAAATTAAAGATACAATGAAATATGGTC -ATATTTTAAATGAATTCTTTGAGCAAAAAGTTGAAGAAACACTTATTCAGCCAACGTTTATCTATGGTCA -TCCGACTGAAATTTCACCTTTAGCGAAGAAAAATCCTGAAGATCCTAGATTTACTGATCGTTTCGAATTG -TTCATTGTAGGTAGAGAGCATGCAAATGCATTTACTGAATTAAATGATCCTATTGATCAAAAAGGTCGTT -TTGAAGCGCAACTTGCTGAAAAAGCGCAAGGTAATGATGAAGCGCATGAAATGGATGAAGATTACATTGA -AGCGTTAGAATATGGTATGCCTCCGACAGGTGGTCTTGGTATCGGTATTGACAGATTAGTTATGTTATTA -ACTGACTCTCCATCAATCAGAGACGTATTATTATTCCCTTATATGAGACAAAAATAAATGACGTTGATTG -TTAGTAAGAGCTCTCGTGTATACAACATGTGTATGCGAGGGTTTTCTTAATTATGGTAATTAGTTCGTGT -TTGAATGTTTTTGATAGTAATAGTTAACGATAATGGTGCTATTTTTGACTGTTAAACAAGGTAGTTAGCT -GTTAGATGAAAATGACGATACGTATATAGATTAGTTCTGATGAGAAATGTTAATGATAGACATTGAGATA -TCTTATAACAAAAATTTCTATATTAGTATAATTTATCTTAATCAGCTATAAAAGTACTTTAAAATTGTAT -AGAATGTGTATGGTTTTGTACATATGTGTATGATAGAATACTAAAAGTGTTATGAATTAGAGAGCACGAG -AAATGTCAGTTTTGAAGAATAAAAAAGTTGATTAAAAGTGTTGACTTTATCAATTGAATGAAGTAATATA -TAAAAGTCGTCAAAAACAGACGAAACACACTAAAAACTGATGTGACAAAGTTCACAACAAAGTGTAAAAT -TAACTATTGCGCCTTATTAATTAAGCGTGTATCATAAATAAGTAAGTTATTTTGTCTGGTGGCTATAGCA -AGGAGGTCACACCTGTTCCCATGCCGAACACAGAAGTTAAGCTCCTTAGCGTCGATGGTAGTCGAACTTA -CGTTCCGCTAGAGTAGAACGTTGCCAGGCAAATGACAAATCGGAGAATTAGCTCAGCTGGGAGAGCATCT -GCCTTACAAGCAGAGGGTCGGCGGTTCGAACCCGTCATTCTCCACCATTTATTCTTACATATAGCCGGCC -TAGCTCAATTGGTAGAGCAACTGACTTGTAATCAGTAGGTTGGGTGTTCAAGTCCTCTGGCCGGCACCAT -CTTTTGAGCCATTAGCTCAGCTGGTAGAGCATCTGACTTTTAATCAGAGGGTCAGAGGTTCGAATCCTCT -ATGGCTCATTACGATTTAATTTTTATATTTAGCAAAATAATGCAGAAGTAGTTCAGCGGTAGAATACAAC -CTTGCCAAGGTTGGGGTCGCGGGTTCGAATCCCGTCTTCTGCTCCATTATTTTGCCGGGGTGGCGGAACT -GGCAGACGCACAGGACTTAAAATCCTGCGGTGAGAGATCACCGTACCGGTTCGATTCCGGTCCTCGGCAC -CATTTTAGCGCCCGTAGCTCAATTGGATAGAGCGTTTGACTACGGATCAAGAGGTTATGGGTTCGACTCC -TATCGGGCGCGCCATTTTTAAATTAATTGAATAACGGGAAGTAGCTCAGCTTGGTAGAGCACTTGGTTTG -GGACCAAGGGGTCGCAGGTTCGAATCCTGTCTTCCCGATTACTTCTCAAATTCCATTTTATGGGGGCTTA -GCTCAGCTGGGAGAGCGCCTGCTTTGCACGCAGGAGGTCAGCGGTTCGATCCCGCTAGTCTCCACCATTT -ATTTTTACACGATGAACATTGAAAACTGAATGACAATATGTCAACGTTAATTCCAAAAAACGTAACTATA -AGTTACAAACATTATTTAGTATTTATGAGCTAATCAAACATCATAATTTTTATGGAGAGTTTGATCCTGG -CTCAGGATGAACGCTGGCGGCGTGCCTAATACATGCAAGTCGAGCGAACGGACGAGAAGCTTGCTTCTCT -GATGTTAGCGGCGGACGGGTGAGTAACACGTGGATAACCTACCTATAAGACTGGGATAACTTCGGGAAAC -CGGAGCTAATACCGGATAATATTTTGAACCGCATGGTTCAAAAGTGAAAGACGGTCTTGCTGTCACTTAT -AGATGGATCCGCGCTGCATTAGCTAGTTGGTAAGGTAACGGCTTACCAAGGCAACGATGCATAGCCGACC -TGAGAGGGTGATCGGCCACACTGGAACTGAGACACGGTCCAGACTCCTACGGGAGGCAGCAGTAGGGAAT -CTTCCGCAATGGGCGAAAGCCTGACGGAGCAACGCCGCGTGAGTGATGAAGGTCTTCGGATCGTAAAACT -CTGTTATTAGGGAAGAACATATGTGTAAGTAACTGTGCACATCTTGACGGTACCTAATCAGAAAGCCACG -GCTAACTACGTGCCAGCAGCCGCGGTAATACGTAGGTGGCAAGCGTTATCCGGAATTATTGGGCGTAAAG -CGCGCGTAGGCGGTTTTTTAAGTCTGATGTGAAAGCCCACGGCTCAACCGTGGAGGGTCATTGGAAACTG -GAAAACTTGAGTGCAGAAGAGGAAAGTGGAATTCCATGTGTAGCGGTGAAATGCGCAGAGATATGGAGGA -ACACCAGTGGCGAAGGCGACTTTCTGGTCTGTAACTGACGCTGATGTGCGAAAGCGTGGGGATCAAACAG -GATTAGATACCCTGGTAGTCCACGCCGTAAACGATGAGTGCTAAGTGTTAGGGGGTTTCCGCCCCTTAGT -GCTGCAGCTAACGCATTAAGCACTCCGCCTGGGGAGTACGACCGCAAGGTTGAAACTCAAAGGAATTGAC -GGGGACCCGCACAAGCGGTGGAGCATGTGGTTTAATTCGAAGCAACGCGAAGAACCTTACCAAATCTTGA -CATCCTTTGACAACTCTAGAGATAGAGCCTTCCCCTTCGGGGGACAAAGTGACAGGTGGTGCATGGTTGT -CGTCAGCTCGTGTCGTGAGATGTTGGGTTAAGTCCCGCAACGAGCGCAACCCTTAAGCTTAGTTGCCATC -ATTAAGTTGGGCACTCTAAGTTGACTGCCGGTGACAAACCGGAGGAAGGTGGGGATGACGTCAAATCATC -ATGCCCCTTATGATTTGGGCTACACACGTGCTACAATGGACAATACAAAGGGCAGCGAAACCGCGAGGTC -AAGCAAATCCCATAAAGTTGTTCTCAGTTCGGATTGTAGTCTGCAACTCGACTACATGAAGCTGGAATCG -CTAGTAATCGTAGATCAGCATGCTACGGTGAATACGTTCCCGGGTCTTGTACACACCGCCCGTCACACCA -CGAGAGTTTGTAACACCCGAAGCCGGTGGAGTAACCTTTTAGGAGCTAGCCGTCGAAGGTGGGACAAATG -ATTGGGGTGAAGTCGTAACAAGGTAGCCGTATCGGAAGGTGCGGCTGGATCACCTCCTTTCTAAGGATAT -ATTCGGAACATCTTCTTCAGAAGATGCGGAATAACGTGACATATTGTATTCAGTTTTGAATGTTTATTTA -GCATTCAAAAAATGGGCCTATAGCTCAGCTGGTTAGAGCGCACGCCTGATAAGCGTGAGGTCGGTGGTTC -GAGTCCACTTAGGCCCACCATTATTTGTACATTGAAAACTAGATAAGTAAGTAAAATATAGATTTTACCA -AGCAAAACCGAGTGAATAAAGAGTTTTAAATAAGCTTGAATTCATAAGAAATAATCGCTAGTGTTCGAAA -GAACACTCACAAGATTAATAACGTGTTTAAATCTTTTTATAAAATAAAACGTTTAGCAGACAATGAGTTA -AATTATTTTAAAGCAGAGTTTACTTATGTAAATGAGTATTTAAAATAATGAAAACGAAGCCGTATGTTAA -CGTTTGACTTATAAAAATGGTGGAAACATAGATTAAGTTATTAAGGGCGCACGGTGGATGCCTTGGCACT -AGAAGCCGATGAAGGACGTTACTAACGACGATATGCTTTGGGGAGCTGTAAGTAAGCTTTGATCCAGAGA -TTTCCGAATGGGGAAACCCAGCATGAGTTATGTCATGTTATCGATATGTGAATACATAGCATATCAGAAG -GCACACCCGGAGAACTGAAACATCTTAGTACCCGGAGGAAGAGAAAGAAAATTCGATTCCCTTAGTAGCG -GCGAGCGAAACGGGAAGAGCCCAAACCAACAAGCTTGCTTGTTGGGGTTGTAGGACACTCTATACGGAGT -TACAAAGGACGACATTAGACGAATCATCTGGAAAGATGAATCAAAGAAGGTAATAATCCTGTAGTCGAAA -ATGTTGTCTCTCTTGAGTGGATCCTGAGTACGACGGAGCACGTGAAATTCCGTCGGAATCTGGGAGGACC -ATCTCCTAAGGCTAAATACTCTCTAGTGACCGATAGTGAACCAGTACCGTGAGGGAAAGGTGAAAAGCAC -CCCGGAAGGGGAGTGAAATAGAACCTGAAACCGTGTGCTTACAAGTAGTCAGAGCCCGTTAATGGGTGAT -GGCGTGCCTTTTGTAGAATGAACCGGCGAGTTACGATTTGATGCAAGGTTAAGCAGTAAATGTGGAGCCG -TAGCGAAAGCGAGTCTGAATAGGGCGTTTAGTATTTGGTCGTAGACCCGAAACCAGGTGATCTACCCTTG -GTCAGGTTGAAGTTCAGGTAACACTGAATGGAGGACCGAACCGACTTACGTTGAAAAGTGAGCGGATGAA -CTGAGGGTAGCGGAGAAATTCCAATCGAACCTGGAGATAGCTGGTTCTCTCCGAAATAGCTTTAGGGCTA -GCCTCAAGTGATGATTATTGGAGGTAGAGCACTGTTTGGACGAGGGGCCCCTCTCGGGTTACCGAATTCA -GACAAACTCCGAATGCCAATTAATTTAACTTGGGAGTCAGAACATGGGTGATAAGGTCCGTGTTCGAAAG -GGAAACAGCCCAGACCACCAGCTAAGGTCCCAAAATATATGTTAAGTGGAAAAGGATGTGGCGTTGCCCA -GACAACTAGGATGTTGGCTTAGAAGCAGCCATCATTTAAAGAGTGCGTAATAGCTCACTAGTCGAGTGAC -ACTGCGCCGAAAATGTACCGGGGCTAAACATATTACCGAAGCTGTGGATTGTCCTTTGGACAATGGTAGG -AGAGCGTTCTAAGGGCGTTGAAGCATGATCGTAAGGACATGTGGAGCGCTTAGAAGTGAGAATGCCGGTG -TGAGTAGCGAAAGACGGGTGAGAATCCCGTCCACCGATTGACTAAGGTTTCCAGAGGAAGGCTCGTCCGC -TCTGGGTTAGTCGGGTCCTAAGCTGAGGCCGACAGGCGTAGGCGATGGATAACAGGTTGATATTCCTGTA -CCACCTATAATCGTTTTAATCGATGGGGGGACGCAGTAGGATAGGCGAAGCGTGCGATTGGATTGCACGT -CTAAGCAGTAAGGCTGAGTATTAGGCAAATCCGGTACTCATTAAGGCTGAGCTGTGATGGGGAGAAGACA -TTGTGTCTTCGAGTCGTTGATTTCACACTGCCGAGAAAAGCCTCTAGATAGAAAATAGGTGCCCGTACCG -CAAACCGACACAGGTAGTCAAGATGAGAATTCTAAGGTGAGCGAGCGAACTCTCGTTAAGGAACTCGGCA -AAATGACCCCGTAACTTCGGGAGAAGGGGTGCTCTTTAGGGTTAACGCCCAGAAGAGCCGCAGTGAATAG -GCCCAAGCGACTGTTTATCAAAAACACAGGTCTCTGCTAAACCGTAAGGTGATGTATAGGGGCTGACGCC -TGCCCGGTGCTGGAAGGTTAAGAGGAGTGGTTAGCTTCTGCGAAGCTACGAATCGAAGCCCCAGTAAACG -GCGGCCGTAACTATAACGGTCCTAAGGTAGCGAAATTCCTTGTCGGGTAAGTTCCGACCCGCACGAAAGG -CGTAACGATTTGGGCACTGTCTCAACGAGAGACTCGGTGAAATCATAGTACCTGTGAAGATGCAGGTTAC -CCGCGACAGGACGGAAAGACCCCGTGGAGCTTTACTGTAGCCTGATATTGAAATTCGGCACAGCTTGTAC -AGGATAGGTAGGAGCCTTTGAAACGTGAGCGCTAGCTTACGTGGAGGCGCTGGTGGGATACTACCCTAGC -TGTGTTGGCTTTCTAACCCGCACCACTTATCGTGGTGGGAGACAGTGTCAGGCGGGCAGTTTGACTGGGG -CGGTCGCCTCCTAAAAGGTAACGGAGGCGCTCAAAGGTTCCCTCAGAATGGTTGGAAATCATTCATAGAG -TGTAAAGGCATAAGGGAGCTTGACTGCGAGACCTACAAGTCGAGCAGGGTCGAAAGACGGACTTAGTGAT -CCGGTGGTTCCGCATGGAAGGGCCATCGCTCAACGGATAAAAGCTACCCCGGGGATAACAGGCTTATCTC -CCCCAAGAGTTCACATCGACGGGGAGGTTTGGCACCTCGATGTCGGCTCATCGCATCCTGGGGCTGTAGT -CGGTCCCAAGGGTTGGGCTGTTCGCCCATTAAAGCGGTACGCGAGCTGGGTTCAGAACGTCGTGAGACAG -TTCGGTCCCTATCCGTCGTGGGCGTAGGAAATTTGAGAGGAGCTGTCCTTAGTACGAGAGGACCGGGATG -GACATACCTCTGGTGTACCAGTTGTCGTGCCAACGGCATAGCTGGGTAGCTATGTGTGGACGGGATAAGT -GCTGAAAGCATCTAAGCATGAAGCCCCCCTCAAGATGAGATTTCCCAACTTCGGTTATAAGATCCCTCAA -AGATGATGAGGTTAATAGGTTCGAGGTGGAAGCATGGTGACATGTGGAGCTGACGAATACTAATCGATCG -AAGACTTAATCAAAATAAATGTTTTGCGAAGCAAAATCACTTTTACTTACTATCTAGTTTTGAATGTATA -ATCTACATTCATATGTCTGGTGACTATAGCAAGGAGGTCACACCTGTTCCCATGCCGAACACAGAAGTTA -AGCTCCTTAGCGTCGATGGTAGTCGAACTTACGTTCCGCTAGAGTAGAACGTTGCCAGGCAAAAAAATGG -ATGCGATGAGCCGCATTGAACTGCACCCAGTCTAGTAGACAATTAAATAATTAAAATTAATGGTTGGTTT -TGTTGTTATACAGAATCAGCCATTTTTAATGTAATTCTTTCATGATTAAAGAAAAGAATAAAATCATGAA -TTGTTTTTGTAGCTTCTTCTACACTATTAAATTTAAAGTGCTTATTTCCTCTAAAAATTTCACTTTTTAT -TGTACCCCATACACCTTCCATTGGACCGTTATCGATACATTTGCTAACACGTGACATACTTTGAATCATG -CCACATTCATCCAACATATGTTTAAATGTTTTCGATGTATATTGAAAACCTCGGTCACTATGAAATAAAA -TACCTTTTGTATTTTCTACTTTTTCTATCGCTTGATTGAATGTTTTAAATACTAATTGATTATTGTTAGA -AGGGCCTAGCTCATAACTAACAATACGTTTAGCACCTAAGTCATAAATGGCACTCAAATATATCTTACTA -CCTTCTTTGATTTTAAATTCTGTTACATCTGTTAACCAAACTTTATTTGGCGTATCAATGTCAAATTGTC -GATTAAGCTTATTTTCTGATGTGATTTGTGGCGTTGAACGTCGATAAGGTTTTCGCTTTTGACGTATTAC -TGCTTTTAAATTAAGTTCTTTCATCAAACGATAAATTCGCTTTCGGTTTACTTGTTTACCTAGTTTTAAG -CGAATATAGATATAAATGCGACGATAGCCATAAATACCATTATACTTATGATAGATTGATTCTATTTCTC -GCTTAAGCTGTTCATTCTCTAATTCAAGTTCACTCGATTGATAATGTACCCACTTATAATAACTCGCTCT -AGAAATGCCTAAAATACGACACAAGCGTTGGATAGGGTATTGATGTTTTAACGCTTCGATCGTTTTGTAT -GCCGTGATTTGTTTTCTCTTTGAATCATCTCTCTTTCCAATGCTTGAAACTTTTTTAAAACGTCATTTTC -CATCTCTAATAATCGATTTTGTGCTTTTAATGCTTGAATTTCAGCTGCTTTTTGTTCTTCTGGCGTCATC -ATAGATTTGGGTTTTCCTTTGCCTCTGCCATCTACTAATCCATTTTTACCATGTGCTTGATACTTATGAA -CCCACTGGTAAATTTGACCGTATGAGATATTAAAGTGTTCTGCAACTTCTCTATAAGATTGTTTATGATT -CAAGTAATATTCAACAATTGTTACACGTTCTTCAAATGTGGTTTTTCTTGCTTTCATGATATACACCCCA -GTTTTAGGAGATTGATTCTTAATCTCTTTTCCTACAGTATACATTTTTATCCAATTTTTGACTTGTGTCG -AACTACGAATATTGTATTTGATTGCGATGTCTTGGGTTGATTGATTTGAATTCAAATATTCATTTACAAC -TTTTAATTTTAGTTCCTTTGAATAGTGATTGTATTGTTTTTGTGTAAGTAGTGTTTCAATACCATGGGTT -TTATAATATTTATACTTAGGATACAAAGTATTGACATTAATATCTAATTGTAATGTATCGATTAAGTATT -GAAACGACACGCCTTTTTCATATTCTTGAAACATATATAGCAGTACATCTATGTCTACTTTAGGTTTTAT -TGACATAAATAAAGCTCCCTTCAAAGTTTTCATTTTTTCAATGTCTACTTTGAAGGGAGCATTTCACATT -GAGACCGCAAGGTCTCTTTTTTTTTATGTCTAAAACGTCAAAATAAAAGTTAACACAAAGAAAAATGGCT -TGGCGAAGTGAAAACGTTTGAATCTGACGAAACAAGAAAAGAGCGTAACGAGTTTAGTAGAGCTAAATGA -GTAAGCGAGAGCCGAAGGAGAGGAAAGAAGCAAGCGATTGTCACAAGTCAAGAAAGGTTCTTAGCGACGA -TGGTAGCCAACTTACGTTCCGCTAGAGTAGAACGTTGCCAGGCAAAAAAATGGATGCGATGAGCCGCATT -GAGTTTTGGAAATGATAATTTAATAATGTGCATTTTCGATTGTCTAAATCTGTAACTAGAAGTATAAGTG -AAGACATTCAGAAGTATTATAGAAAGTGAACAGCAGTAAGATAGTTTTTAATCATAAATCATCTTACTGC -TGTTTTTAGGTTTTATGTTTAATATCTTTTAAATCGAAATACAAAAAGGAAATTAATTATTATACAATAG -ACAAGCTATTGCATAAGTAACACTAACTTTTGTCAAAGAAGTGTTACTTTATAATTAATGATTTTATTAG -AGCGTCTACATGCGGTTTTAAAGCATCATCGTCTATACCGCCAAAGCCTAATATAAATTTAGGGGTTTTC -TTATAGTCTTGGTCATCATCAAAATTATAAACTTGTAATTTTAACTTTACTTTATTTGCTCTATCAAGAC -ACTCTTGTAATGTTAATCCATTTTTTACTGTAATTGTAAAATGCATACCTGTTTCAGCACCTTGAATATC -AAGTTGCTCTTTGTATGGTTTTAATCTTTTTAAAATATAGGTTAGTTTTCTACGATAAATTCGTCTCATT -TTATTTAAATGCCTTTCAAAACCACCGGAAGATATAAACGTTGCAATAAGGTTTTGCATATGAACAGGTA -CAGTGTTGCCTTCAATGTGATTTTGAGAATGATATTTTTTCATTATAGAATAGGGTAACACCATATATGC -AACACGACAGCTAGGAAAAATAGACTTTGAAAATGTACTGATATAAATCACTTTTTCTCCTCTTGAATAT -AGACCTTGAATTGCTGGAATAGGTTTACCGAAATATCTAAACTCGGAATCATAATCATCTTCTATAATAA -ATCGTTCTTCTTTTTCTTGAGCCCATTGTATTAATTGAGTTCGTTTTTTTAAATCCATTACATATCCAGT -TGGAAATTGATGGGAAGGCGTTATATATACTATATTTTTTTGTGATTTAATAACTTCATCTACGTTTATT -CCATTATCTTCAACTTCAATTTGTTCATATTCAACTTGTTTTTTATCTAAAATATTTTTGATTGGTGGAT -AACTAGGTTTTTCGATAATAAACGTTGAAGTATAAAGTAAATCGACTAATTGATTTACTAATTGTTCGGT -AGATGAACCAATTATAATTTGATTAGGATCACAAATTACGCCACGATTAGTAAATAAATAAAATGCCAGT -TGAAACCGCAAATGTAATTCTCCTTGAAAGTGTCCTCTACGTAATTGATTTAAATGATTTGTATCATAAA -GATCTTTGGAATACTTTCTGAAAAGTTCTATAGGGAAATGTTTCGTATCTATTTCATCCAAATTAAAAGC -ATAATCATAAGCTTCATCACTCGCTTTTGGTTTATATGAATCATCATCAAAAAGAGAAGGGATAGGTTGA -TTGTTTAAAATTGTTAAAGATTCAATTTCGGACACAAAATATCCAGAGCGAGGTCTTGAATAAATGTAAC -CTTCATCTAATAGAAGTTGATATGCATGTTCTACGGTTGTTTGGCTGATAGATAAATGTTTGCTTAATTG -TCTTTTAGAATAAAATTTATCACCTTCTTTAAATTGACCTTCAATTATTTGTTTTTTTAATTTTTCATAA -AGTTGATGGTATAAAGTGTTTTTCAATTTTATAACTGACCTCCTAAATTTGTCTTATTTTGTACCTTTTT -AAATATCAGTTTATACATTACAATGTATTTAATCAACTTGAAAAGGGGTTTTATGTATAATGAGTAAAAT -TATTGGATCAGACAGAGTCAAAAGAGGTATGGCTGAAATGCAAAAAGGCGGCGTTATTATGGATGTCGTT -AATGCTGAGCAAGCAAGAATTGCAGAAGAAGCTGGCGCGGTAGCAGTTATGGCATTAGAACGAGTACCTT -CTGATATTAGAGCTGCTGGTGGCGTTGCACGTATGGCAAACCCTAAAATTGTAGAAGAAGTAATGAATGC -TGTTTCTATTCCAGTCATGGCTAAAGCACGTATTGGTCATATCACTGAAGCAAGAGTATTAGAGGCGATG -GGTGTTGACTATATTGATGAATCAGAAGTGTTAACACCAGCAGATGAGGAATATCACTTAAGAAAAGATC -AATTTACAGTACCATTTGTATGTGGATGTCGTAATTTAGGTGAAGCTGCGCGTAGAATTGGTGAAGGTGC -TGCTATGTTACGTACTAAAGGTGAACCAGGTACAGGTAATATTGTTGAAGCTGTAAGACATATGAGACAA -GTTAATTCAGAAGTTAGTCGATTGACTGTAATGAATGATGATGAGATTATGACTTTCGCGAAAGATATCG -GTGCGCCTTATGAAATTTTAAAACAAATTAAAGACAATGGTCGTTTACCGGTAGTTAACTTTGCAGCTGG -TGGCGTTGCGACTCCTCAAGATGCTGCTTTAATGATGGAATTAGGTGCCGATGGTGTATTCGTTGGATCA -GGTATTTTTAAATCAGAAGATCCAGAAAAATTTGCTAAAGCAATTGTTCAAGCAACAACACATTACCAAG -ACTATGAACTAATTGGAAGATTAGCAAGTGAACTTGGCACTGCTATGAAAGGTTTAGATATCAATCAATT -ATCATTAGAAGAACGTATGCAAGAGCGTGGTTGGTAAGATATGAAAATAGGTGTATTAGCATTACAAGGT -GCAGTACGTGAACATATTAGACATATTGAATTAAGTGGTCATGAAGGTATTGCAGTTAAAAAAGTTGAAC -AATTAGAAGAAATCGAGGGCTTAATATTACCTGGTGGCGAGTCTACAACGTTACGTCGATTAATGAATTT -ATATGGATTTAAAGAGGCTTTACAAAATTCAACTTTACCTATGTTTGGTACATGCGCAGGATTAATAGTT -CTAGCGCAAGATATAGTTGGTGAAGAAGGATACCTTAACAAGTTGAATATTACTGTACAACGAAACTCAT -TCGGTAGACAAGTTGACAGCTTTGAAACAGAATTAGATATTAAAGGTATCGCTACAGATATTGAAGGTGT -CTTTATAAGAGCGCCACATATTGAAAAAGTAGGTCAAGGCGTAGATATCCTATGTAAGGTTAATGAGAAA -ATTGTAGCTGTCCAGCAAGGTAAATATTTAGGCGTATCATTCCATCCTGAATTAACAGATGACTATAGAG -TAACTGATTACTTTATTAATCATATTGTAAAAAAAGCATAGCTTAATGTATGCTAAATCAACGAATTATT -GATATTTATAGATTTGTTGAGAAGAAAATTACTCCTTCAAACTTAGCTTTGGAGGAGTTATTTTTTATGT -CAAAATTAAAAATGATAAAAGATAAAGATATACATAAGAAAAAACCCTTCAAAGAGACTGAGAATAGTCA -AAATTTTGAAGGGGTTAATTCGATGTTGATGTATTTGTTAAATAAAGAATCCAGCGATTGCAGCTGAAAT -GAAAGATACTAGTGTTGCACCGAATAATAATTTCAAACCAAAGCGGGCAACTGTATCTCCTTTTTTGTCA -TTAAGTGATTTAATCGCACCTGAAATAATACCAATAGAGCTAAAGTTAGCAAATGATACTAAGAATACAG -ATGTAACACCTTTTGCGTGTTCAGATAAATCACTAAGTTTACCAAGTGCTTGCATTGCTACAAATTCGTT -AGATAATAGTTTTGTTGCCATAACTGAACCGGCTTGAACTGCATCTTGCCATGGCACACCTACTAAGAAT -GCAAATGGTGCAAAGACAAAACCAATTAATGTTTGGAAATCCCAAGAAATAGCGCCACCTGAAACTGTAC -TAAAGATATTGCTTACAATTCCATTTAATAGAGCGATAATGGCAATGTAACCGATTAGCATTGCGCCTAC -AATGACAGCTACTTTAAATCCATCTAAAATATATTCTCCTAGCATTTCAAAGAATGATTGTTGTCTTTCT -TCAGTTTCTTCAACTAATAATTTGTCATCTTCTTCATTAACTTTATAAGGGTTAATAATTGAAGCGATGA -TAAAACCACCAAATAAGTTTAAGACAACAGCCGTTACAACATATTTAGGTTCAATTAAGGTAAAGTATGC -ACCGATAATTGAAGCAGAAACAGTCGACATTGCTGAAGCTGTTAATGTGTATAAACGTTGCTTAGGTATG -TATGGTAATTGTTTTTTAATTGAAATAAATACTTCAGATTGTCCCAAAATTGCTGCAGCAACTGCATTGT -ATGATTCTAAACGTCCCATACCATTAATTTTAGAAATTAAGAATCCTAAAACATTAATGATTAAAGGTAA -AATCTTTGTGTATTGAAGGATACCGATAATCGCTGAAATAAATACGATAGGTAATAATACACTGAAGAAG -AATGGTGGTTGCTTAGGATCGATATATTGAATACCACCGAATACAAAGTTAACACCATCTGCAGCTTTTA -ATAATAAGTAGTTAAAACCGTTCGAAATACCACCAATAACCTTGATTCCCATTGTAGTTTTAAGCAAGAT -AAATGCAAAGATAAGCTGAATTGCAAGTAAAATTCCTACATATTTCCAGCGAATATTTTTCCTGTCTGAG -CTAAATAGAAACGCAAGTGCTAAAAAGAAGATAATTCCGATAATCCCAATTAGAATATGCATATATTTCT -CATTCCTTTAGTTTTTTCTACAATCTATCATACAATAAAATGGAAGGGCTAACATCATAAATTTTTGAAA -ATATAAAAACAAATTAATTGAAAAAGGTCAAAATAGGTCATATAATATAGTCAAAGAAGGTCAAAAAGGG -GTGATATACATGCACAATATGTCTGACATCATAGAACAATACATCAAACGTTTATTTGAAGAGTCGAATG -AGGATGTCGTTGAAATTCAGAGAGCGAATATCGCACAGCGTTTTGATTGCGTACCATCACAGTTAAACTA -TGTAATCAAAACACGATTCACTAATGAACATGGTTATGAAATCGAAAGTAAACGTGGTGGTGGTGGTTAC -ATCCGAATCACTAAAATTGAAAATAAAGATGCAACAGGTTATATTAATCATTTGCTTCAGCTGATTGGAC -CTTCTATTTCTCAACAACAAGCTTATTATATTATTGATGGGCTTTTAGATAAAATGTTAATAAATGAACG -TGAAGCTAAAATGATTCAAGCAGTTATTGATAGAGAAACGCTATCAATGGATATGGTTTCTAGAGATATT -ATTAGAGCAAATATTTTAAAACGTTTGTTACCAGTTATAAATTATTACTAAATGAAATGAGGTGTTGAAG -TGCTTTGTGAAAATTGTCAACTTAATGAAGCGGAATTAAAAGTTAAAGTTACAAGTAAAAATAAAACAGA -AGAAAAAATGGTGTGTCAAACTTGTGCTGAGGGGCACCATCCGTGGAATCAAGCTAATGAACAACCTGAA -TATCAAGAACATCAAGATAATTTCGAAGAAGCATTTGTTGTTAAGCAAATTTTACAACATTTAGCTACGA -AACATGGCATCAATTTTCAAGAAGTAGCGTTTAAAGAAGAAAAACGTTGCCCATCATGTCACATGACTTT -GAAAGATATTGCACATGTTGGTAAATTTGGGTGTGCTAATTGTTATGCAACATTTAAAGATGACATCATT -GATATCGTCCGCAGAGTTCAAGGTGGACAATTTGAGCACGTTGGAAAGACACCACATTCTTCACATAAAA -AGATAGCTTTAAAGCGAAAAATCGAAGAAAAGAATGAATATTTGAAAAAACTTGTTGAAATCCAAGATTT -TGAGGAAGCAGCCATTGTTAGAGATGAAATTAAAGCACTAAAAGCTGAGAGTGAGGTGCAACATGATGAC -GCATAATATTCATGATAATATCAGCCAATGGATGAAAAGTAATGAAGAAACACCAATTGTTATGTCTTCT -AGAATTCGGTTAGCGCGTAATTTAGAAAATCATGTGCATCCACTAATGTATGCTACTGAAAATGATGGAT -TTAGAGTTATAAATGAGGTACAAGATGCCTTGCCAAATTTTGAATTAATGCGTCTTGATCAAATGGATCA -ACAAAGTAAAATGAAAATGGTTGCAAAGCATTTGATTAGCCCTGAACTAATAAAACAACCAGCAGCCGCA -GTATTAGTGAATGATGATGAATCTTTAAGTGTCATGATAAATGAAGAGGACCATATTCGTATTCAAGCTA -TGGGAACTGACACGACATTACAGGCTTTATATAATCAAGCTTCATCAATTGATGATGAATTAGATCGAAG -CCTTGATATAAGTTATGATGAACAACTTGGTTATTTAACTACATGTCCTACCAATATAGGTACTGGTATG -AGAGCAAGCGTGATGCTACATTTACCAGGTCTATCTATTATGAAAAGAATGACACGGATTGCTCAAACCA -TTAATCGTTTTGGATATACAATCAGAGGTATTTACGGTGAAGGTTCGCAAGTTTATGGACATACTTATCA -AGTATCCAACCAACTTACACTTGGTAAATCTGAGTTAGAAATCATAGAAACATTAACAGAAGTTGTTAAT -CAAATCATTCATGAAGAAAAACAAATACGACAAAAGTTAGACACTTATAATCAACTAGAAACACAAGACC -GTGTTTTTCGCTCGCTAGGTATTTTACAAAACTGTAGAATGATAACTATGGAAGAGGCTTCTTATAGATT -AAGCGAAGTTAAACTTGGTATAGATTTAAATTACATTGAATTACAAAACTTTAAATTTAATGAATTGATG -GTAGCTATACAGTCACCATTTTTATTAGATGAAGAAGATGACAAATCTGTAAAAGAAAAACGAGCAGATA -TACTAAGAGAACATATAAAGTAGGAGGTCATTATTTATGTTATTTGGTAGATTAACTGAACGTGCACAGC -GCGTATTAGCACATGCACAAGAAGAAGCAATTCGTTTAAATCATTCAAATATAGGAACAGAACACCTATT -ATTGGGGTTAATGAAAGAACCTGAAGGAATTGCTGCAAAAGTATTAGAAAGTTTTAATATCACTGAAGAT -AAAGTAATTGAAGAAGTTGAAAAATTAATCGGACATGGTCAAGATCATGTTGGTACATTGCATTATACAC -CTAGAGCTAAAAAAGTCATTGAATTATCGATGGATGAAGCTAGAAAATTACATCACAATTTTGTTGGAAC -GGAACATATTTTATTAGGCTTGATTCGTGAGAATGAAGGTGTTGCAGCAAGAGTTTTTGCAAATCTAGAT -TTAAATATTACTAAAGCACGTGCACAAGTTGTGAAAGCTTTAGGAAACCCTGAAATGAGTAATAAAAATG -CACAAGCTAGTAAGTCAAATAATACTCCAACTTTAGATAGTTTAGCTCGTGACTTAACAGTCATTGCCAA -AGACGGTACATTAGATCCTGTTATAGGACGTGATAAAGAAATTACACGTGTAATTGAAGTATTAAGTAGA -CGTACGAAAAACAATCCTGTGCTTATTGGAGAGCCAGGTGTTGGTAAAACTGCTATTGCTGAAGGTTTAG -CGCAAGCCATAGTGAATAATGAGGTACCAGAGACATTAAAAGATAAGCGTGTTATGTCTTTAGATATGGG -AACAGTAGTTGCAGGTACTAAATATCGTGGTGAATTTGAAGAGCGTCTGAAAAAGGTTATGGAAGAAATC -CAACAAGCAGGTAATGTCATCCTATTTATTGATGAATTGCATACTTTAGTTGGTGCTGGTGGTGCTGAAG -GTGCTATCGATGCTTCGAATATTTTGAAACCGGCATTAGCACGTGGTGAATTACAATGTATTGGTGCTAC -TACATTAGATGAATATCGCAAAAATATTGAAAAAGACGCGGCTTTAGAACGTCGTTTCCAACCTGTACAA -GTTGATGAACCTTCAGTAGTAGATACAGTTGCTATTTTAAAAGGATTAAGAGATCGTTACGAAGCACACC -ATCGTATTAATATTTCAGACGAAGCTATTGAAGCAGCTGTTAAATTAAGTAACAGATATGTTTCAGATCG -TTTCTTACCAGATAAAGCAATTGATTTAATTGATGAAGCAAGTTCTAAAGTAAGACTTAAGAGTCATACG -ACACCTAATAATTTAAAAGAAATTGAACAAGAAATTGAAAAAGTTAAAAATGAAAAAGATGCCGCAGTAC -ATGCTCAAGAGTTTGAAAATGCTGCTAATCTGCGTGATAAACAAACAAAACTTGAAAAGCAATATGAAGA -AGCTAAAAATGAATGGAAGAACGCACAAAATGGCATGTCAACTTCATTGTCAGAAGAAGATATTGCTGAA -GTCATTGCAGGATGGACAGGTATCCCATTAACTAAAATCAACGAAACAGAATCTGAAAAACTTCTTAGTC -TAGAAGATACATTACATGAGAGAGTTATTGGGCAAAAAGATGCTGTTAATTCAATCAGTAAAGCGGTTAG -ACGTGCCCGTGCAGGGTTAAAAGATCCTAAACGACCAATTGGTAGCTTTATCTTCCTTGGACCAACTGGT -GTTGGTAAAACTGAATTAGCTAGAGCTTTAGCTGAATCAATGTTTGGCGATGATGATGCGATGATCCGTG -TAGACATGAGTGAATTTATGGAAAAACACGCAGTGAGCCGATTAGTTGGTGCTCCTCCAGGATATGTTGG -TCATGATGATGGTGGACAATTAACTGAAAAAGTTAGACGTAAACCATATTCTGTAATTTTATTTGATGAA -ATTGAAAAAGCACATCCAGATGTATTTAATATTCTATTACAAGTTTTAGATGACGGACATTTGACAGATA -CAAAAGGACGTACAGTTGATTTCAGAAATACAATTATCATAATGACATCAAACGTTGGAGCACAAGAATT -ACAAGATCAACGATTTGCTGGATTCGGTGGTTCAAGTGATGGACAAGATTATGAAACAATTCGAAAAACG -ATGTTAAAAGAATTAAAAAATTCATTCCGTCCAGAATTTTTAAACCGTGTAGATGATATCATTGTATTCC -ATAAACTAACAAAAGAAGAATTAAAAGAAATTGTAACTATGATGGTTAATAAATTAACAAATCGATTATC -CGAACAAAACATAAATATTATTGTTACTGATAAAGCGAAAGATAAAATCGCAGAAGAAGGATATGATCCA -GAATATGGTGCAAGACCATTAATTAGAGCGATACAAAAAACTATCGAAGATAATTTAAGTGAATTAATAT -TAGATGGTAATCAAATTGAAGGTAAGAAAGTTACAGTAGATCATGATGGTAAAGAGTTTAAATATGACAT -TGCTGAACAAACTTCAGAAACTAAAACACCATCGCAAGCATAATTATAAAACAGTCCAAAACAAATTAAA -GTTTTGGGCTGTTTTTTAGTAGCATTGAACTATAGAAATTCGTGAAAGTATCCACCAACGAAACAACCTA -ATAAAATAATCATCAAAGGATAGTTAAGAATTATATGAAACAAGTTAATGAGCATACAGCGATAGTAAAA -AGGTATGAATTTTTATAAAGGTTTTTTGTTTGAAGATACTAGCAACTTACGTCAAAATAAAATAGGTCTA -TATAATATTGTGATAAATCTAGAGAAAAGAGTTTACTAAGAAATTATTAAGATTTTATCTTTGAAAGATA -CCTACTATCAACATGATGTAAGTTTATTTTATAATATTCATAAAAAATAAATATGATAAAACAGTTTGCG -TTAGTAGTCATGTTAAAATACAAACAAATGTAACTCACATTTAATTTGTCATAATGGGAATGTGCGTTTA -AAATAGATTTGTTCAAAGGAAAGTGGAGGTGCAATTTTGGCCAAGAAAAAAGTGATTTTTGAATGTATGG -CTTGTGGTTATCAATCTCCTAAATGGATGGGGAAATGTCCTAATTGTGGCGCTTGGAATCAAATGGAGGA -AATTGTTGAAAAAGCAGCCAATCCTAAACATGGAGTGAAAACCAAGGAATTAGTAGGTAAAGTACAAAAA -TTAAATAGTATTAAACATGAAACAACGCCGAGAGTGTTAACAGATTCAGCAGAATTTAACCGTGTATTAG -GTGGAGGTATTGTGAGCGGATCGTTAGTACTTATTGGTGGGGATCCAGGTATTGGTAAGTCAACGTTACT -TTTACAAATTTGTGCATCGTTATCTCAAAAGAAAAAAGTACTATATATTACTGGAGAAGAATCGCTTAGT -CAGACTAAATTACGTGCAGAGCGATTAGATGAAGATTCAAGTGAATTGCAAGTATTAGCTGAAACAGATC -TTGAAGTTATTTATCAAACAGTAAAAGAGGAACAACCTGATTTACTAGTAGTGGATTCGATTCAAACAAT -ATATCATCCTGAAATCAGCTCTGCGCCAGGTTCTGTTTCACAAGTTCGTGAAAGTACACAAAGTTTAATG -AATATTGCTAAACAAATGAACATTGCAACTTTTATAGTGGGTCATGTAACGAAAGAAGGTCAAATTGCTG -GCCCAAGATTGCTAGAACACATGGTTGATACTGTACTTTATTTTGAAGGCGATGAACACCACGCATATCG -AATTTTGCGAGCTGTTAAAAACCGTTTTGGTTCAACGAATGAAATGGGAATCTTCGAAATGAAGCAAAGT -GGATTAAAAGGTGTAAATAATCCATCTGAAATGTTTTTAGAAGAACGTTCAACAAATGTTCCAGGTTCAA -CAATTGTTGCAACCATGGAGGGAACTAGACCACTTTTAATAGAAGTTCAAGCGCTGGTAACTCCAACGAC -TTTTAACAATCCGAGACGAATGGCAACAGGGATTGATCACAATCGATTAAGTTTGTTGATGGCTGTTTTG -GAAAAGAAAGAAAATTATCTATTACAACAACAAGATGCTTATATCAAAGTAGCTGGCGGTGTAAAGTTAA -CGGAGCCAGCAGTTGATTTAAGTGTAATTGTAGCAACTGCGTCTAGCTTTAAAGATAAAGCTGTCGACGG -ATTAGATTGCTATATTGGAGAAGTTGGTTTAACAGGTGAGGTACGTCGTGTATCTCGGATAGAACAACGC -GTGCAAGAGGCTGCAAAACTAGGTTTCAAACGTGTAATTATTCCTAAAAATAATATAGGCGGATGGACAT -ATCCTGAAGGTATACAAGTAATAGGTGTAACTACTGTACATGAAGCATTGTCGTTTGCTCTTCATTCATA -AAACATCAAGAAAGGAGGACATTGTGTGAATATCGTTAAACTAATGGTTATTATTATTTACTTAATTATT -GGGAGCGCATTAGGAATAATTATTATTCCTGAAATTGCAAATGATCTTGGATTACAAAACTCCAGCTTTT -TAAAAAATCACTATGTAGATGGCATTATCGGTAGTATTTTTATGTTCTTAATTTTTGGTGTATTTATTAG -ACGAGTTACTAACGCTATAATAGGTTTAGAACATTTTATTATGCGTAGAAGTGCTGTTGAAATACTATTC -GCAACAATAGGTTTAATAATCGGATTACTTATTTCTGTTATGGTGTCGTTTATATTGGAATCAATTGGCA -ACTCTATTTTTAATCATTTCATTCCTGTCATAATTACGATATTACTATGTTATTTCGGTTTCCAATTTGG -CCTTAAAAAACGAGATGAAATGTTAATGTTTTTACCTGAGAATATAGCGCGTTCCATGTCACAACATACT -AAAAGTGCTACACCAAAAATTATCGACACAAGCGCAATTATTGATGGTCGTATTTTAGAAGTCATTCGTT -GCGGTTTTATCGATGGCAATATTTTAATTCCACAAGGTGTTATTAATGAATTACAAATTGTTGCAGATTC -AAATGACAGTGTTAAACGTGAAAAGGGTAAAAGAGGCTTAGATATCTTAAATGAATTGTATGATTTAGAC -TATCCTACAAAGGTTATACATCCAACTAAAACACATAGTGATATTGATACAATGCTATTAAAACTAGCAA -AACAATATCATGCAAGTATTATTACAACAGATTTCAACCTAAATAAAGTATGTCATGTACATGGTATCAA -AGCATTAAATGTTAATGATTTATCAGAAGCAATCAAACCTAATGTACATCAAGGTGATCAACTTCATATT -TTACTGACAAAAATGGGTAAAGAGCCTGGTCAAGCAGTAGGATATCTAGATGATGGTACGATGGTAGTTG -TTGATAATGCTAAAAATCTTATTGGCAGTCATGTCAATTTAGAAGTAGTGAGCTTATTGCAAACATCTTC -AGGAAGAATTGTTTTTGCTAAAAAAATCGAAGATACAGTATCATTATAAAAACTGTAGTTGACGGAAACA -AAATAGATATTAAAAGGTATATGAAATGGCGAAGTTTGTAATTTGAAGTATAACTATAAATAAATACAAA -ACATATCAGTTATCAAAAAATACAAATAGTGCTAACATATCATTGAAACAAGTTCATTAAGTGTTAAATT -TTAGATATTAATAAAGTTATTCTTATAGCAATCAAGACATACAAAATTAGAATCAATTTTAACGTATTTG -AATAGTTAATTTGAAGTTTAATTTTACAGTACATAATATTCATTTTTAAGTCGTTGAAATGCGTATGTAG -TGCAGTCTTGATTCTTAGGGATAGCTTTTTTAAAGTGTTGAAAAAACAACTGCTTTCTATTTAAAATTTA -AGCATATTACCCAGGGAATTATGTTATGATTAAACAATGAAATTATTTTAAGGTCATGTTAAAAAGCATT -GTTTCGTTTTAACAATAAGACGAGTTACACATTTGTTATGACGGTCGAAGATAGCAAATGAACAATTTAT -ATGAACTAACTTGAAAATCTGATATTTAATTTAGGAGTGAAAAAAATGAGCGATCGTATAAGAGTAAGAT -ATGCACCAAGTCCAACTGGTTATCTTCATATTGGTAATGCAAGAACAGCATTATTCAATTACTTGTATGC -TAAACATTACAACGGAGATTTTGTGATTCGAATTGAAGATACTGATAAAAAACGTAATTTAGAAGATGGA -GAAACATCACAATTTGATAATCTTAAATGGTTAGGATTAGATTGGGATGAGTCTGTAGATAAAGACAATG -GCTACGGACCATATCGTCAATCTGAACGTCAACATATCTACCAACCATTAATAGATCAGTTACTAGCAGA -AGATAAAGCATATAAATGCTATATGACAGAAGAAGAATTAGAAGCTGAACGTGAAGCGCAAATCGCTCGT -GGTGAAATGCCTCGCTATGGTGGTCAACATGCGCATTTGACTGAAGAACAACGTCAACAATTTGAAGCAG -AAGGACGCCAACCATCAATTCGTTTCCGAGTACCTCAAAATCAAACGTATTCATTTGATGATATGGTTAA -AGGGAATATTTCATTTGATTCAAATGGTATTGGTGACTGGGTTATCGTTAAAAAAGATGGCATTCCAACG -TACAATTTTGCAGTAGCTATAGATGATCATTACATGGAAATTTCAGATGTCATTCGTGGTGATGATCATA -TTTCAAACACGCCTAAACAAATTATGATTTATGAAGCATTTGGCTGGGAGCCACCTCGTTTTGGTCATAT -GTCATTAATTGTTAATGAAGAACGTAAAAAGTTAAGTAAACGTGATGGGCAAATTTTACAATTTATTGAG -CAATATCGTGACTTAGGTTATTTACCTGAAGCGTTATTTAATTTTATTGCGTTATTAGGTTGGTCTCCTG -AAGGTGAAGAAGAAATCTTTTCTAAAGAAGAATTTATCAAAATCTTTGATGAAAAGCGTTTATCAAAATC -ACCAGCATTTTTCGATAAGCAAAAATTAGCATGGGTTAATAACCAATATATGAAACAAAAAGATACTGAA -ACAGTATTCCAATTAGCATTACCTCATTTAATTAAAGCGAATTTGATTCCTGAGGTGCCGTCAGAAGAGG -ATTTATCTTGGGGACGCAAATTAATTGCGCTTTATCAAAAAGAAATGAGTTATGCCGGTGAAATTGTACC -TTTATCAGAAATGTTCTTTAAAGAAATGCCAGCTCTTGGTGAGGAAGAACAACAAGTGATCAATGGAGAG -CAAGTACCAGAGTTAATGACGCACTTATTCAGTAAATTAGAAGCACTTGAACCATTTGAAGCGGCTGAAA -TTAAAAAGACAATTAAAGAAGTTCAAAAAGAAACAGGAATAAAAGGCAAGCAATTATTTATGCCTATTCG -TGTTGCTGTAACAGGCCAAATGCATGGTCCTGAATTACCAAATACAATTGAAGTACTTGGTAAAGAAAAA -GTGCTAAACCGTTTAAAACAATATAAGTAATGAAATAGACAAGATCAAGGTAGTATATACTTGAATTTTA -TAACGTAACCACATATGATAAAGTTGTATTAACAAATTACAACAATATGAATAGAGTACTTTATATAAAA -CGAAGGATTAGTAATTAAATTTATACGATGCAGAGAGTGTACGGTTGCTGTGAGTACAACGTAGAAATTA -ATGAATGCACCTTCGTAAAATGAATTAAATATATAATGAGAGTGATGAGCATTAAGTTGACTTAGTTTCC -TTGATAATTTGGAAGCGCCCGCAATTTTATTAATGTAATTCGCTAAATTCAGAGTGGAACCGTGCGGAAG -CGCCTCTAACAATACAATTTGTATGTTAGTGGTGCTTTTTTTGATATTTAATTTCGCAGGTACTTCAATT -ATGTATTTACGTAGTTCAATCATTGAGGAGGAAATGATCTTGTTAAAAAGAATGAGAGACGATATAAAAA -TGGTATTTGAGCAGGATCCAGCGGCACGTTCAACATTAGAAGTCATTACAACGTATGCAGGTTTACATGC -AGTTTGGAGTCATTTGATTGCACATAAGTTATACAACCAAAAAAAATATGTTGCAGCACGCGCGATATCT -CAAATTTCAAGATTTTTCACAGGTATAGAAATCCATCCAGGTGCTAAAATTGGAAAGCGTCTATTTATAG -ATCATGGTATGGGCGTTGTAATAGGAGAAACATGTACAATTGGTGATAATGTGACAATCTATCAAGGCGT -GACACTTGGTGGGACAGGGAAAGAAAGAGGGAAAAGACACCCAGATATAGGAGACAATGTTTTAATAGCA -GCGGGTGCGAAAGTTTTAGGAAATATTAAAATAAATTCAAATGTAAATATTGGTGCAAATTCAGTTGTTT -TACAATCAGTTCCAAGTTATTCAACGGTTGTTGGTATACCAGGACATATTGTTAAGCAAGATGGTGTTCG -AGTTGGAAAAACATTTGATCATCGCCATCTACCTGATCCAATTTATGAACAAATTAAGCATTTAGAACGA -CAACTTGAAAAGACTAGGAATGGAGAGATTCAAGATGATTACATTATATAATACGCTTACACGTCAAAAA -GAAGTGTTCAAGCCAATAGAACCAGGAAAGGTAAAAATGTATGTATGTGGTCCTACGGTATATAACTACA -TTCATATTGGTAATGCAAGACCAGCAATTAATTATGACGTAGTGAGACGTTACTTTGAATACCAAGGATA -TAATGTAGAATATGTATCAAATTTTACAGATGTAGATGATAAATTAATTAAACGTTCTCAAGAATTAAAT -CAGACTGTTCCCGAAATTGCAGAAAAATATATCGCTGCTTTTCATGAAGATGTTGGTGCTTTAAATGTTA -GAAAAGCGACTTCAAATCCAAGGGTAATGGACCATATGGATGACATTATTCAATTTATTAAAGATTTGGT -TGATCAAGGTTATGCATATGAAAGTGGTGGCGATGTTTACTTTAGAACACGTAAATTTGAAGGTTATGGT -AAATTAAGTCATCAATCCATAGATGACTTAAAAGTGGGTGCTCGTATAGATGCAGGAGAGCATAAGGAAG -ACGCACTTGATTTTACATTGTGGAAAAAAGCGAAGCCTGGCGAGATTAGTTGGGATAGCCCATTTGGTGA -AGGGAGACCAGGATGGCATATTGAATGTTCTGTAATGGCATTTCATGAGCTAGGAGCTACAATTGATATA -CATGCGGGTGGTTCAGATTTACAATTTCCACATCATGAAAATGAAATAGCACAATCGGAAGCACATAATC -ATGCGCCATTCGCTAATTATTGGATGCATAATGGTTTTATTAATATTGATAATGAAAAAATGAGTAAATC -ACTAGGCAACTTTATTTTAGTTCACGATATTATTAAAGAAGTTGATCCAGATGTATTAAGATTCTTTGTG -ATTAGCGTACATTATAGAAGTCCAATTAACTATAATCTAGAATTGGTTGAATCAGCACGTAGTGGACTAG -AGCGTATTCGCAATAGTTATCAATTAATTGAAGAGCGCGCACAAATTGCTACTAATATTGAAAATCAACA -GACATATATTGATCAAATTGATGCGATTTTAAATCGTTTTGAAACAGTTATGAATGATGATTTTAATACA -GCTAATGCAATTACAGCTTGGTATGATTTAGCAAAACTTGCAAATAAATATGTACTAGAGAACACAACAT -CAACAGAAGTAATTGATAAATTTAAAGCAGTTTATCAAATTTTCAGCGATGTTTTAGGTGTACCGTTAAA -ATCTAAAAAAGCAGATGAATTATTAGATGAAGATGTTGAAAAATTAATCGAAGAGCGTAATGAAGCAAGG -AAAAACAAAGATTTTGCACGAGCAGATGAGATTCGAGACATGCTGAAATCACAAAACATTATATTAGAAG -ACACACCTCAAGGGGTTAGATTTAAACGTGGATAATCAACAAGATAATCACATTAAATTATTGAATCCAT -TGACCTTAGCATATATGGGAGACGCAGTCTTAGATCAATATGTACGTACGTATATCGTTTTAAAGCTTAA -AAGTAAGCCTAATAAACTACATCAAATGTCTAAAAAATATGTATCTGCCAAAAGTCAGGCGCAAACGTTA -GAATATTTAATGGAGCAAGAATGGTTTACAGACGAAGAAATGGATATTTTGAAACGAGGGCGTAACGCGA -AAAGTCATACTAAAGCTAAAAATACTGATGTTCAAACATATCGTAAAAGTTCAGCGATAGAAGCAGTGAT -AGGTTTTCTTTATTTAGAAAAAAGAGAAGAACGATTAGAGGCATTATTAAATGAAATAATAACAATAGTA -AACGAAAGGTAGTGACAATGTGGAAGATACGGTTATTGTTGGTAGGCATGCTGTTAGAGAAGCGATTATT -ACTGGGCATCCGATAAATAAGATATTGATTCAAGAAGGAATTAAAAAGCAACAAATTAATGAAATTTTAA -AAAATGCAAAAGATCAAAAAATCATTGTTCAAACTGTACCAAAATCTAAATTAGATTTTTTAGCAAATGC -ACCACATCAGGGGGTTGCAGCGCTTATTGCACCATATGAATATGCTGACTTCGATCAATTTTTAAAACAG -CAAAAAGAAAAAGAAGGTTTATCGACAGTGCTTATATTAGACGGCTTAGAAGACCCGCATAACTTGGGAT -CAATTTTAAGAACAGCAGATGCAACGGGAGTTGATGGTGTTATTATTCCTAAACGTCGTTCAGTTACACT -AACGCAAACAGTTGCAAAAGCCTCAACAGGTGCAATTGAACATGTACCAGTTATTCGAGTGACAAATTTA -GCTAAAACTATCGATGAACTAAAAGATAATGGTTTTTGGGTAGCTGGCACTGAAGCTAATAATGCAACAG -ATTATAGAAATCTTGAAGCGGACATGTCATTGGCTATTGTAATTGGCAGCGAAGGACAGGGTATGAGTCG -TCTAGTAAGTGATAAATGCGATTTTTATATTAAGATTCCAATGGTTGGCCATGTAAACAGTTTGAATGCT -TCGGTTGCAGCAAGTTTAATGATGTACGAAGTATTTCGAAAAAGACATGATGTTGGAGAAATATAATGAA -AGAACGTTACTTAATCATTGATGGATACAATATGATAGGACAATCACCAACGCTAAGCGCCATTGCAAAA -GAGAATTTAGAAGAAGCTAGAATGCAATTAATAGATACAATTGCAAATTATAATGCAGTTATTTCAGATG -AAATTATTTGTGTTTTCGATGCTTATGACCAATCGGGTGTTGAAAGAGAATACATGTATCATGGCGTTAA -AACAATTTTTACCAAGGAAAAAGAAACAGCTGATAGTTTCATAGAACGTTATGTCTATGAACTTTATGAC -AAGCACACTAAGCATATTACAGTTGTAACAAGTGATATGAGTGAGCAACATGCTATCTTTGGATCAGGTG -CATATAGAATATCATCTCGCGAAATGTGGAGAGATTTAAAAGAAAATGAAATTGATGTGAGTAAATCATT -AGATGATATAAGTGAAAACAAGCCAAGAACTCGAATTCCGTTATCTTCTGAAATCCTTGCAGAATTTGAA -AAAATACGAAGAGGACATCATAAGAAATGACATTTCCATCATCTTGAAATTTTGAATGTAACAATATTAA -ACTAACCTTAAATTTTAGATAGAAGGGGTTAGTTTAATACTTGAAATATGATTTGACAACTCAAGACAGT -ACAATCAAACGTAACAATGCAATAAATGATAAAGACTTCGAAAAGTTAGTAATGGATCTACAACCATTAA -TTATACGGCGCATCAAAACATTTGGATTTAATCATTATGATTTAGAAGATTTATATCAAGAAATACTTAT -ACGGATGTATAGGTCGGTCCAAACATTTGATTTTAGTGCAGAGCAGCCTTTCACAAATTATGTTCAATGT -TTAATTACGTCTGTAAAGTATGATTATTTGAGAAAATATTTAGCTACAAATAAAAGAATGGATAATTTGA -TTAATGAATATAGAGTTACGTATCCATGTGCAATAAAGCGTTATGATGTTGAAAACAATTATTTGAATAA -ATTAGCAATTAAAGAGTTGATTCGTCAGTTTAAGTATTTGAGTGCATTTGAAAAAGATGTCATGTATTTA -ATGTGTGAACAATATAAGCCGAGAGAAATTGCTCAACTGATGCATGTAAAAGAGAAAGTGATTTATAATG -CCATACAACGATGTAAAAATAAAATAAAACGTTATTTCAAAATGATTTGAAAAGCGTCTTAGGACGTGAA -TTGAATTAGAACGTGTTACTTCCTGATGGTTTGACATTTGTTATAAATTTTATGTATAGTATACTGGTAT -TATAATGAATAAAGGTGAATTATTGTGAGGAAAATACCTTTAAATTGTGAAGCTTGTGGCAATAGAAATT -ATAATGTTCCTAAGCAAGAAGGCACGGCAACAAGATTAACCTTAAAGAAATATTGTCCAAAATGTAACGC -GCACACAATTCATAAAGAATCGAAATAAATACATTCGAAATAATACTTTGATAATATGTTCAAAGGATTT -GGAGGTTGAGCAGATGGCTAAAAAAGAAAGTTTCTTTAAAGGCGTTAAGTCTGAAATGGAAAAAACAAGT -TGGCCGACGAAAGAAGAGCTATTTAAATATACTGTAATTGTAGTTTCTACTGTTATATTCTTCTTAGTCT -TTTTCTATGCCTTAGATTTAGGAATTACAGCATTGAAAAATTTATTATTTGGTTAGAGGAGTGAAGACAT -GTCTGAAGAAGTTGGCGCAAAGCGTTGGTATGCAGTGCATACATATTCTGGATATGAAAATAAAGTTAAA -AAGAATTTAGAAAAAAGAGTAGAATCTATGAATATGACTGAACAAATCTTTAGAGTAGTCATACCGGAAG -AAGAAGAAACTCAAGTAAAAGATGGCAAAGCTAAAACGACTGTTAAAAAAACATTCCCTGGATATGTTTT -AGTGGAATTAATCATGACAGATGAATCATGGTATGTGGTAAGAAATACACCAGGCGTTACTGGTTTTGTA -GGTTCTGCAGGTGCAGGGTCTAAGCCAAATCCATTGTTACCAGAAGAAGTTCGCTTCATCTTAAAACAAA -TGGGTCTTAAAGAAAAGACTATCGATGTTGAACTCGAAGTTGGCGAGCAAGTTCGTATTAAATCAGGTCC -ATTTGCGAATCAAGTTGGTGAAGTTCAAGAAATTGAAACAGATAAGTTTAAACTAACAGTATTAGTAGAT -ATGTTTGGCCGAGAAACACCAGTAGAAGTTGAATTCGATCAAATAGAAAAGCTTTAATTAACAATTAAAG -TTATTAAACTAACCAAAAGATAAAAAAGAGTATTGATTTTTTAATTAGAAAAGTGTTAAAATTATGTGGT -CGCGCTTTTAGAGCGCCCATTTCGTCACGAAATGTTAAGAGTGGGAGGGCAAAACTGAGCCCTGTGACCA -CATCACGATATCAAGGAGGTGCACATCGTGGCTAAAAAAGTAGATAAAGTTGTTAAATTACAAATTCCTG -CAGGTAAAGCGAATCCAGCACCACCAGTTGGTCCAGCATTAGGTCAAGCAGGTGTGAACATCATGGGATT -CTGTAAAGAGTTCAATGCACGTACTCAAGATCAAGCAGGTTTAATTATTCCGGTAGAAATCAGTGTTTAT -GAAGATCGTTCATTTACATTTATTACAAAAACTCCACCGGCTCCAGTATTACTTAAAAAAGCAGCTGGTA -TTGAAAAAGGTTCAGGTGAACCAAACAAAACTAAAGTTGCTACAGTAACTAAAGATCAAGTACGCGAAAT -TGCTAACAGCAAAATGCAAGACTTAAACGCTGCTGACGAAGAAGCAGCTATGCGTATTATCGAAGGTACT -GCACGTAGTATGGGTATCGTTGTAGAATAATTTTACGAATATTAAATTTGATTACATGATTTAAACGATG -AAGCAGATAACAGAGATAATAATGATGAATTATAAATATAATCTGAATGACTAGATTAATGATTGATTTA -TTCATATGATTAATTCTTCTGTTGTCTGCTCTTAACTTGCATCTAGCAAGTAATGTGGGAGGAAATTCCG -CTAAAACCACTAAAGGAGGAACTATAAATGGCTAAAAAAGGTAAAAAGTATCAAGAAGCAGCTAGTAAAG -TTGACCGTACTCAGCACTACAGTGTTGAAGAAGCAATTAAATTAGCTAAAGAAACAAGCATTGCTAACTT -TGACGCTTCTGTTGAAGTTGCATTCCGTTTAGGAATTGATACACGTAAAAATGACCAACAAATCCGTGGT -GCAGTTGTATTACCAAACGGAACTGGTAAATCACAAAGTGTATTAGTATTCGCTAAAGGTGACAAAATTG -CTGAAGCTGAAGCAGCAGGTGCTGACTATGTAGGTGAAGCAGAATACGTTCAAAAAATCCAACAAGGTTG -GTTCGACTTCGATGTAGTAGTTGCTACACCAGACATGATGGGTGAAGTTGGTAAATTAGGTCGTGTATTA -GGACCAAAAGGTTTAATGCCAAACCCTAAAACTGGAACTGTAACAATGGATGTTAAAAAAGCTGTTGAAG -AAATCAAAGCTGGTAAAGTAGAATACCGTGCTGAAAAAGCTGGTATCGTACATGCATCAATTGGTAAAGT -TTCATTTACTGATGAACAATTAATTGAAAACTTCAATACTTTACAAGATGTATTAGCTAAAGCTAAACCA -TCATCTGCTAAAGGTACATACTTCAAATCTGTTGCTGTAACTACAACAATGGGTCCTGGAGTTAAAATTG -ATACTGCAAGTTTATAATAATAAATGATATAAACAATTACAGGCTGAAAGAAATATCTTTCAGTCTGTAA -AAATATATTGACAATAAGTAATTTCCAAGTTATATTACTTATTGTGATTATTTTACCTAAGACAGTAGGA -GTTATTTATAACTTAAAATTTATCCTGCCGAGGCTAAAATTGACTTGAACGTGATGATCTATGATCTTTC -AAGCACTTTTTGCCGTGGGTAGAAAGTGCTTTTTTTATTAATTTTAAAAAAAGCACCAAAAATTTAAATG -GAGGTGTCTGAATGTCTGCTATCATTGAAGCTAAAAAACAACTAGTTGATGAAATTGCTGAGGTACTATC -AAATTCAGTTTCAACAGTAATCGTTGACTACCGTGGATTAACAGTAGCTGAAGTTACTGACTTACGTTCA -CAATTACGTGAAGCTGGTGTTGAGTATAAAGTATACAAAAACACTATGGTACGTCGTGCAGCTGAAAAAG -CTGGTATCGAAGGCTTAGATGAATTCTTAACAGGTCCTACTGCTATTGCAACTTCAAGTGAAGATGCTGT -AGCTGCAGCGAAAGTAATTTCTGGATTTGCTAAAGATCATGAAGCATTAGAAATTAAATCAGGCGTTATG -GAAGGCAATGTTATTACAGCAGAAGAAGTTAAAACTGTTGGTTCATTACCTTCACACGATGGTCTTGTAT -CTATGCTTTTATCAGTATTACAAGCTCCTGTACGCAACTTCGCTTATGCGGTTAAAGCTATTGGAGAACA -AAAAGAAGAAAACGCTGAATAATTTTTAGCGTAAAAAAATTAAAAATAATGGAGGAATTATAAAATGGCT -AATCATGAACAAATCATTGAAACGATTAAAGAAATGTCAGTATTAGAATTAAACGACTTAGTAAAAGCAA -TTGAAGAAGAATTTGGTGTAACTGCAGCTGCTCCAGTAGCAGTAGCAGGTGCAGCTGGTGGCGCTGACGC -TGCAGCAGAAAAAACTGAATTTGACGTTGAGTTAACTTCAGCTGGTTCATCTAAAATCAAAGTTGTTAAA -GCTGTTAAAGAAGCAACTGGTTTAGGATTAAAAGATGCTAAAGAATTAGTAGACGGAGCTCCTAAAGTAA -TCAAAGAAGCTTTACCTAAAGAAGAAGCTGAAAAACTTAAAGAACAATTAGAAGAAGTTGGAGCTACTGT -AGAATTAAAATAATTCAAGTATCTTAAACTTAATAATCAAAGTTTTATAGCAAGTATTGCTATAATATAA -TGATTCTTTGAGAAGTTAAAACCCCGTTATTTTGATAACGGGGTTTTATTCATTTAAAGACTAAGTGAAA -TGTTATAATTATAATGACGAGTTACAAAGTGAAGATGAGGTGGAATAATGAGTCATTATTACGATGAAGA -TCCAAGTGTAATTAGCAATGAACAACGTATTCAATATCAATTAAACCATCATAAAATTGATTTAATAACT -GATAACGGAGTGTTTTCGAAAGATAAAGTAGATTATGGTTCAGATGTTCTTGTTCAAACTTTTTTAAAAG -CGCATCCACCTGGTCCAAGTAAGCGAATTGCCGATGTTGGTTGTGGTTACGGACCAATTGGTTTGATGAT -TGCTAAAGTATCACCACATCATTCAATTACAATGCTAGATGTTAATCACAGAGCGCTAGCCTTAGTTGAA -AAAAACAAAAAATTAAATGGTATTGATAATGTGATCGTAAAGGAAAGTGATGCTTTGTCTGCTGTGGAAG -ACAAAAGTTTTGATTTTATTTTAACCAATCCACCAATAAGAGCAGGGAAAGAAACCGTGCATCGTATATT -CGAGCAAGCATTACATAGATTAGACTCGAACGGTGAACTATTTGTTGTAATTCAGAAGAAGCAAGGTATG -CCATCTGCAAAGAAAAGAATGAATGAACTTTTTGGAAATGTAGAAGTGGTAAATAAAGATAAAGGATATT -ACATTCTGAGAAGTATAAAAGCTTGAAATGAAATGGATATTCTGTTATAGTTATTTAATGTAAAAATTTA -TGTTCAATAAGTGTGTACTTTTACGTTAAATAGATAAGTTAATTAAGAATAAATATAGAATCGAAAATGG -TGTCATCATTAGTGTTGCCGTTTTCTTTTTGTCTTTTTATTAATATGCTTATGGTATTTAGCTAAAAGCG -GATCACATAATTTTTGAGGGGTGAATCTGTTTGGCAGGTCAAGTTGTCCAATATGGAAGACATCGTAAAC -GTAGAAACTACGCGAGAATTTCAGAAGTATTAGAATTACCAAACTTAATAGAAATTCAAACTAAATCTTA -CGAGTGGTTCCTAAGAGAAGGTTTAATCGAAATGTTTAGAGACATTTCTCCAATTGAAGATTTTACTGGT -AATTTGTCATTAGAGTTTGTGGATTACCGTTTAGGAGAACCAAAATATGATTTAGAAGAATCTAAAAACC -GTGACGCTACTTATGCTGCACCTCTTCGTGTAAAAGTGCGTCTAATCATTAAAGAAACAGGAGAAGTTAA -AGAACAAGAAGTCTTTATGGGTGATTTCCCATTAATGACTGATACAGGTACGTTCGTTATCAATGGTGCA -GAACGTGTAATCGTATCTCAATTAGTTCGTTCACCATCCGTTTATTTCAATGAAAAAATCGACAAAAATG -GTCGTGAAAACTATGATGCAACAATTATTCCAAACCGAGGTGCATGGTTAGAATATGAAACAGATGCTAA -AGATGTTGTATACGTGCGTATTGATAGAACACGTAAACTACCATTAACAGTATTGTTACGTGCATTAGGT -TTCTCAAGTGACCAAGAAATTGTTGACCTTTTAGGTGACAATGAATATTTACGTAATACTTTAGAGAAAG -ACGGCACTGAAAACACTGAACAAGCGTTATTAGAAATCTATGAACGTTTACGTCCAGGTGAACCACCAAC -TGTTGAAAATGCTAAAAGTCTATTGTATTCACGTTTCTTTGATCCAAAACGCTATGACTTAGCAAGCGTG -GGTCGTTATAAAACAAACAAAAAATTACATTTAAAACATCGTTTATTCAATCAAAAATTAGCTGAGCCAA -TTGTGAATACTGAAACTGGTGAAATTGTAGTTGAAGAAGGTACAGTGCTTGATCGTCGTAAAATCGACGA -AATCATGGATGTACTTGAATCAAACGCAAACAGCGAAGTGTTTGAATTGCATGGTAGCGTTATAGACGAG -CCAGTAGAAATTCAATCAATTAAAGTATATGTTCCTAACGATGATGAAGGTCGTACGACAACTGTAATTG -GTAATGCTTTCCCTGACTCAGAAGTTAAATGTATTACACCGGCAGATATCATCGCTTCAATGAGTTACTT -CTTTAACTTATTAAGTGGTATTGGATATACAGATGATATTGACCATTTAGGTAACCGTCGTTTACGTTCT -GTAGGTGAATTACTACAAAACCAATTCCGTATCGGTTTATCAAGAATGGAAAGAGTTGTACGTGAAAGAA -TGTCAATTCAAGATACTGAGTCTATCACACCTCAACAATTAATTAATATTCGACCTGTTATTGCATCTAT -TAAAGAATTCTTTGGTAGCTCTCAATTATCACAATTCATGGACCAAGCAAATCCATTAGCTGAGTTAACG -CATAAACGTCGTCTATCAGCATTAGGACCTGGTGGTTTAACACGTGAACGTGCTCAAATGGAAGTGCGTG -ACGTTCACTACTCTCACTATGGCCGTATGTGTCCAATTGAAACGCCTGAGGGACCAAACATTGGATTGAT -TAACTCATTATCAAGTTATGCACGTGTAAATGAATTCGGCTTTATTGAAACACCATATCGTAAAGTTGAT -TTAGATACACATGCTATCACTGATCAAATTGACTATTTAACAGCTGACGAAGAAGATAGCTATGTTGTAG -CACAAGCAAACTCTAAATTAGATGAAAATGGTCGTTTCATGGATGATGAAGTTGTATGTCGTTTCCGTGG -TAACAATACAGTTATGGCTAAAGAAAAAATGGATTATATGGATGTATCGCCGAAGCAAGTTGTTTCAGCA -GCGACAGCATGTATTCCATTCTTAGAAAATGATGACTCAAACCGTGCATTGATGGGTGCGAACATGCAAC -GTCAAGCAGTGCCTTTGATGAATCCAGAAGCACCATTTGTTGGTACAGGTATGGAACACGTTGCAGCACG -TGATTCTGGTGCAGCTATTACAGCTAAGCACAGAGGTCGTGTTGAACATGTTGAATCTAATGAAATTCTT -GTACGTCGTCTAGTTGAAGAGAACGGCGTTGAGCATGAAGGTGAATTAGATCGCTATCCATTAGCTAAAT -TTAAACGTTCAAACTCAGGTACATGTTACAACCAACGTCCAATCGTTGCAGTTGGAGATGTTGTTGAGTT -TAACGAGATTTTAGCAGATGGACCATCTATGGAATTAGGAGAAATGGCATTAGGTAGAAACGTAGTAGTT -GGTTTCATGACTTGGGACGGTTACAACTATGAGGATGCCGTTATCATGAGTGAAAGACTTGTGAAAGATG -ACGTGTATACTTCTATTCATATTGAAGAGTATGAATCAGAAGCACGTGATACTAAGTTAGGACCTGAAGA -AATCACAAGAGATATTCCTAATGTTTCTGAAAGTGCACTTAAGAACTTAGACGATCGTGGTATCGTTTAT -ATTGGTGCAGAAGTAAAAGATGGAGATATTTTAGTTGGTAAAGTAACGCCTAAAGGTGTAACTGAGTTAA -CTGCCGAAGAAAGATTGTTACATGCAATCTTTGGTGAAAAAGCACGTGAAGTTAGAGATACTTCATTACG -TGTACCTCACGGCGCTGGCGGTATCGTTCTTGATGTAAAAGTATTCAATCGTGAAGAAGGCGACGACACA -TTATCACCTGGTGTAAACCAATTAGTACGTGTATATATCGTTCAAAAACGTAAAATTCATGTTGGTGATA -AGATGTGTGGTCGACATGGTAACAAAGGTGTCATTTCTAAGATTGTTCCTGAAGAAGATATGCCTTACTT -ACCAGATGGACGTCCGATTGATATCATGTTAAATCCTCTTGGTGTACCATCTCGTATGAACATCGGACAA -GTATTAGAGCTACACTTAGGTATGGCTGCTAAAAATCTTGGTATTCACGTTGCATCACCAGTATTTGACG -GTGCAAACGATGACGATGTATGGTCAACAATTGAAGAAGCTGGTATGGCTCGTGATGGTAAAACTGTACT -TTATGATGGACGTACAGGTGAACCATTCGATAACCGTATTTCAGTAGGTGTAATGTACATGTTGAAACTT -GCGCACATGGTTGATGATAAATTACATGCGCGTTCAACAGGACCATATTCACTTGTTACACAACAACCAC -TTGGCGGTAAAGCGCAATTCGGTGGACAACGTTTCGGTGAGATGGAGGTATGGGCACTTGAAGCATATGG -TGCTGCATACACATTACAAGAAATCTTAACTTACAAATCCGATGATACAGTAGGACGTGTGAAAACATAC -GAGGCTATTGTTAAAGGTGAAAACATCTCTAGACCAAGTGTTCCAGAATCATTCCGAGTATTGATGAAAG -AATTACAAAGTTTAGGTTTAGATGTAAAAGTTATGGATGAGCAAGATAATGAAATCGAAATGACAGACGT -TGATGACGATGATGTTGTAGAACGCAAAGTAGATTTACAACAAAATGATGCTCCTGAAACACAAAAAGAA -GTTACTGATTAATACGCAATTTACAAAACAGGCAAAAAGATACTAAGCTGAATTTTATTGATGATTCGGT -TTAGTACTTTAAGCCATTTTAAATAAATGCAAATCAATCAAATAGCACAGCTAATCTAAATTGAAGGAGG -TAGGCTCCTTGATTGATGTAAATAATTTCCATTATATGAAAATAGGATTGGCTTCACCTGAAAAAATCCG -TTCTTGGTCTTTTGGTGAAGTTAAAAAACCTGAAACAATCAACTACCGTACATTAAAACCTGAAAAAGAT -GGTCTATTCTGTGAAAGAATTTTCGGACCTACAAAAGACTGGGAATGTAGTTGTGGTAAATACAAACGTG -TTCGCTACAAAGGCATGGTCTGTGACAGATGTGGAGTTGAAGTAACTAAATCTAAAGTACGTCGTGAAAG -AATGGGTCACATTGAACTTGCTGCTCCAGTTTCTCACATTTGGTATTTCAAAGGTATACCAAGTCGTATG -GGATTATTACTTGACATGTCACCAAGAGCATTAGAAGAAGTTATTTACTTTGCTTCTTATGTTGTTGTAG -ATCCAGGTCCAACTGGTTTAGAAAAGAAAACTTTATTATCTGAAGCTGAATTCAGAGATTATTATGATAA -ATACCCAGGTCAATTCGTTGCAAAAATGGGTGCAGAAGGTATTAAAGATTTACTTGAAGAGATTGATCTT -GACGAAGAACTTAAATTGTTACGCGATGAGTTGGAATCAGCTACTGGTCAAAGACTTACTCGTGCAATTA -AACGTTTAGAAGTTGTTGAATCATTCCGTAATTCAGGTAACAAACCTTCATGGATGATTTTAGATGTACT -TCCAATCATCCCACCAGAAATTCGTCCAATGGTTCAATTAGATGGTGGACGATTTGCAACAAGTGACTTA -AACGACTTATACCGTCGTGTAATTAATCGAAATAATCGTTTGAAACGTTTATTAGATTTAGGTGCACCTG -GTATCATCGTTCAAAACGAAAAACGTATGTTACAAGAAGCCGTTGACGCTTTAATTGATAATGGTCGTCG -TGGTCGTCCAGTTACTGGCCCAGGTAACCGTCCATTAAAATCTTTATCTCATATGTTAAAAGGTAAACAA -GGTCGTTTCCGTCAAAACCTACTTGGTAAACGTGTTGACTATTCAGGACGTTCAGTTATCGCGGTAGGTC -CAAGCTTGAAAATGTACCAATGTGGTTTACCGAAAGAAATGGCACTTGAACTATTTAAACCATTTGTAAT -GAAAGAATTAGTTCAACGTGAAATTGCAACTAACATTAAAAATGCGAAGAGTAAAATCGAACGCATGGAT -GATGAAGTTTGGGACGTATTGGAAGAAGTAATTAGAGAACATCCTGTATTACTTAACCGTGCACCAACAC -TTCATAGACTTGGTATTCAAGCATTTGAACCAACTTTAGTTGAAGGTCGTGCGATTCGTCTACATCCACT -TGTAACAACAGCTTATAACGCTGACTTTGATGGTGACCAAATGGCGGTTCACGTTCCTTTATCAAAAGAG -GCACAAGCTGAAGCAAGAATGTTGATGTTAGCAGCACAAAACATCTTGAACCCTAAAGATGGTAAACCAG -TAGTTACACCATCACAAGATATGGTACTTGGTAACTATTACCTTACTTTAGAAAGAAAAGATGCAGTAAA -TACAGGCGCAATCTTTAATAATACAAATGAAGTGTTAAAAGCATATGCAAATGGCTTTGTACATTTACAC -ACAAGAATTGGTGTACATGCAAGTTCATTCAACAACCCAACATTTACTGAAGAACAAAACAAAAAGATTC -TTGCTACGTCAGTAGGTAAAATTATATTCAATGAAATCATTCCGGATTCATTTGCTTATATTAATGAACC -TACGCAAGAAAACTTAGAAAGAAAGACACCAAACAGATACTTCATCGATCCTACAACTTTAGGTGAAGGT -GGATTAAAAGAATACTTTGAAAATGAAGAATTAATTGAACCTTTCAACAAAAAATTCTTAGGTAATATTA -TTGCAGAAGTATTCAACAGATTTAGCATCACTGATACATCAATGATGTTAGACCGTATGAAAGACTTAGG -ATTCAAATTCTCATCTAAAGCTGGTATTACAGTAGGTGTTGCTGATATCGTAGTATTACCTGATAAGCAA -CAAATACTTGATGAGCATGAAAAATTAGTCGACAGAATTACAAAACAATTCAATCGTGGTTTAATCACTG -AAGAAGAAAGATATAATGCAGTTGTTGAAATTTGGACAGATGCAAAAGATCAAATTCAAGGTGAATTGAT -GCAATCACTTGATAAAACTAACCCAATCTTCATGATGAGTGATTCAGGTGCCCGTGGTAACGCATCTAAC -TTTACACAGTTAGCAGGTATGCGTGGATTGATGGCCGCACCATCTGGTAAGATTATCGAATTACCAATCA -CATCTTCATTCCGTGAAGGTTTAACAGTACTTGAATACTTCATCTCAACTCACGGTGCGCGTAAAGGTCT -TGCCGATACAGCACTTAAGACAGCTGACTCAGGATATCTTACTCGTCGTCTTGTTGACGTGGCACAAGAT -GTTATTGTTCGTGAAGAAGACTGTGGTACAGATAGAGGTTTATTAGTTTCTGATATTAAAGAAGGTACAG -AAATGATTGAACCATTTATCGAACGTATTGAAGGTCGTTATTCTAAAGAAACAATTCGTCATCCTGAAAC -TGATGAAGTTATCATTCGTCCTGATGAATTAATTACACCTGAAATTGCTAAGAAAATTACAGATGCTGGT -ATTGAACAAATGTATATTCGCTCAGCATTTACTTGTAACGCAAGACACGGTGTTTGTGAAAAATGTTACG -GTAAAAACCTTGCTACTGGTGAAAAAGTTGAAGTTGGTGAAGCAGTTGGTACAATTGCAGCCCAATCTAT -CGGTGAACCAGGTACACAGCTTACAATGCGTACATTCCATACAGGTGGGGTAGCAGGTAGCGATATCACA -CAAGGTCTTCCTCGTATTCAAGAGATTTTCGAAGCACGTAACCCTAAAGGTCAAGCGGTAATTACGGAAA -TCGAAGGTGTCGTAGAAGATATTAAATTAGCAAAAGATAGACAACAAGAAATTGTTGTTAAAGGTGCTAA -TGAAACAAGATCATATCTTGCTTCAGGTACTTCAAGAATTATTGTAGAAATCGGTCAACCAGTACAACGT -GGTGAAGTATTAACTGAAGGTTCTATTGAACCTAAGAATTACTTATCTGTTGCTGGATTAAACGCGACTG -AAAGCTACTTATTAAAAGAAGTACAAAAAGTTTACCGTATGCAAGGGGTAGAAATCGACGATAAACACGT -TGAGGTTATGGTTCGACAAATGTTACGTAAAGTTAGAATTATCGAAGCAGGTGATACGAAGTTATTACCA -GGTTCATTAGTTGATATTCACAACTTTACAGATGCAAATAGAGAAGCATTTAAACACCGCAAGCGCCCTG -CAACAGCTAAACCAGTATTACTTGGTATTACTAAAGCATCACTTGAAACAGAAAGTTTCTTATCTGCAGC -ATCATTCCAAGAAACAACAAGAGTTCTAACAGATGCAGCAATTAAAGGTAAGCGTGATGACTTATTAGGT -CTTAAAGAAAACGTAATTATCGGTAAGCTAATTCCAGCTGGTACTGGTATGAGACGTTATAGCGACGTAA -AATACGAAAAAACAGCTAAACCAGTTGCAGAAGTTGAATCTCAAACTGAAGTAACGGAATAACAAGTATA -TAACAGAGGCTAAGGCTTTAGCCTCTTGTTATTTTTATGTAAATTATTTGATTTAATGTTGACGAATTCT -CTTGTTCAATGTTAATATATTAAAGGTTGATGCAAGCAGAACTTTGGAGGATAAATTATTGTCTAAGGAA -AAAGTTGCACGCTTTAACAAACAACATTTTGTAGTTGGTCTTAAAGAAACGCTTAAAGCGTTAAAGAAAG -ATCAAGTTACATCTTTGATTATTGCTGAAGACGTTGAAGTATATTTAATGACTCGCGTGTTAAGCCAAAT -CAATCAGAAAAATATACCTGTATCTTTTTTCAAAAGCAAACATGCTTTGGGTAAACATGTAGGTATTAAC -GTCAATGCGACAATAGTAGCATTGATTAAATGAGAATTAGTAAGTGTTTAACTTACTAAATTTTATTTAA -CCTAAAAATGAACCACCTGGATGTGTGGGATTAAAAAGTGAAGAGAGGAGGACATATCACATGCCAACTA -TTAACCAATTAGTACGTAAACCAAGACAAAGCAAAATCAAAAAATCAGATTCTCCAGCTTTAAATAAAGG -TTTCAACAGTAAAAAGAAAAAATTTACTGACTTAAACTCACCACAAAAACGTGGTGTATGTACTCGTGTA -GGTACAATGACACCTAAAAAACCTAACTCAGCGTTACGTAAATATGCACGTGTGCGTTTATCAAACAACA -TCGAAATTAACGCATACATCCCTGGTATCGGACATAACTTACAAGAACACAGTGTTGTACTTGTACGTGG -TGGACGTGTAAAAGACTTACCAGGTGTGCGTTACCATATTGTACGTGGAGCACTTGATACTTCAGGTGTT -GACGGACGTAGACAAGGTCGTTCATTATACGGAACTAAGAAACCTAAAAACTAAGAATTTAGTTTTTAAT -TAAATCTTAAACTTAAAATATTTAATATAAGGAAGGGAGGATTTACATTATGCCTCGTAAAGGATCAGTA -CCTAAAAGAGACGTATTACCAGATCCAATTCATAACTCTAAGTTAGTAACTAAATTAATTAACAAAATTA -TGTTAGATGGTAAACGTGGAACAGCACAAAGAATTCTTTATTCAGCATTCGACCTAGTTGAACAACGCAG -TGGTCGTGATGCATTAGAAGTATTCGAAGAAGCAATCAACAACATTATGCCAGTATTAGAAGTTAAAGCT -CGTCGTGTAGGTGGTTCTAACTATCAAGTACCAGTAGAAGTTCGTCCAGAGCGTCGTACTACTTTAGGTT -TACGTTGGTTAGTTAACTATGCACGTCTTCGTGGTGAAAAAACGATGGAAGATCGTTTAGCTAACGAAAT -TTTAGATGCAGCAAATAATACAGGTGGTGCCGTTAAGAAACGTGAGGACACTCACAAAATGGCTGAAGCA -AACAAAGCATTTGCTCACTACCGTTGGTAAGATAAAAGCTTTTACCCTGAGTGTGTTCTATATTAATGAA -TTTTCATTAAGCGTTCATGCTTAGGGCATCGCCATATCTATCGTATTTATTCAGTAATATAAACTGGAAG -GAGAAAAAATACATGGCTAGAGAATTTTCATTAGAAAAAACTCGTAATATCGGTATCATGGCTCACATTG -ATGCTGGTAAAACGACTACGACTGAACGTATTCTTTATTACACTGGCCGTATCCACAAAATTGGTGAAAC -ACATGAAGGTGCTTCACAAATGGACTGGATGGAGCAAGAACAAGACCGTGGTATTACTATCACATCTGCT -GCAACAACAGCAGCTTGGGAAGGTCACCGTGTAAACATTATCGATACACCTGGACACGTAGACTTCACTG -TAGAAGTTGAACGTTCATTACGTGTACTTGACGGAGCAGTTACAGTACTTGATGCACAATCAGGTGTTGA -ACCTCAAACTGAAACAGTTTGGCGTCAGGCTACAACTTATGGTGTTCCACGTATCGTATTTGTAAACAAA -ATGGACAAATTAGGTGCTAACTTCGAATACTCTGTAAGTACATTACATGATCGTTTACAAGCTAACGCTG -CTCCAATCCAATTACCAATTGGTGCGGAAGACGAATTCGAAGCAATCATTGACTTAGTTGAAATGAAATG -TTTCAAATATACAAATGATTTAGGTACTGAAATTGAAGAAATTGAAATTCCTGAAGACCACTTAGATAGA -GCTGAAGAAGCTCGTGCTAGCTTAATCGAAGCAGTTGCAGAAACTAGCGACGAATTAATGGAAAAATATC -TTGGTGACGAAGAAATTTCAGTTTCTGAATTAAAAGAAGCTATCCGCCAAGCTACTACTAACGTAGAATT -CTACCCAGTACTTTGTGGTACAGCTTTCAAAAACAAAGGTGTTCAATTAATGCTTGACGCTGTAATTGAT -TACTTACCTTCACCACTAGACGTTAAACCAATTATTGGTCACCGTGCTAGCAACCCTGAAGAAGAAGTAA -TCGCGAAAGCAGACGATTCAGCTGAATTCGCTGCATTAGCGTTCAAAGTTATGACTGACCCTTATGTTGG -TAAATTAACATTCTTCCGTGTGTACTCAGGTACAATGACATCTGGTTCATACGTTAAGAACTCTACTAAA -GGTAAACGTGAACGTGTAGGTCGTTTATTACAAATGCACGCTAACTCACGTCAAGAAATCGATACTGTAT -ACTCTGGAGATATCGCTGCTGCGGTAGGTCTTAAAGATACAGGTACTGGTGATACTTTATGTGGTGAGAA -AAATGACATTATCTTGGAATCAATGGAATTCCCAGAGCCAGTTATTCACTTATCAGTAGAGCCAAAATCT -AAAGCTGACCAAGATAAAATGACTCAAGCTTTAGTTAAATTACAAGAAGAAGACCCAACATTCCATGCAC -ACACTGACGAAGAAACTGGACAAGTTATCATCGGTGGTATGGGTGAGCTTCACTTAGACATCTTAGTAGA -CCGTATGAAGAAAGAATTCAACGTTGAATGTAACGTAGGTGCTCCAATGGTTTCATATCGTGAAACATTC -AAATCATCTGCACAAGTTCAAGGTAAATTCTCTCGTCAATCTGGTGGTCGTGGTCAATACGGTGATGTTC -ACATTGAATTCACACCAAACGAAACAGGCGCAGGTTTCGAATTCGAAAACGCTATCGTTGGTGGTGTAGT -TCCTCGTGAATACATTCCATCAGTAGAAGCTGGTCTTAAAGATGCTATGGAAAATGGTGTCTTAGCAGGT -TATCCATTAATTGATGTTAAAGCTAAATTATATGATGGTTCATACCATGATGTCGATTCATCTGAAATGG -CCTTCAAAATTGCTGCATCATTAGCACTTAAAGAAGCTGCTAAAAAATGTGATCCTGTAATCTTAGAACC -AATGATGAAAGTAACTATTGAAATGCCTGAAGAGTACATGGGTGATATCATGGGTGACGTAACATCTCGT -CGTGGACGTGTTGATGGTATGGAACCTCGTGGTAATGCACAAGTTGTTAATGCTTATGTACCACTTTCAG -AAATGTTCGGTTATGCAACATCATTACGTTCAAACACTCAAGGTCGCGGTACTTACACTATGTACTTCGA -TCACTATGCTGAAGTTCCAAAATCAATCGCTGAAGATATTATCAAGAAAAATAAAGGTGAATAATATAAC -TTGTTTTGACTAGCTAGCCTAGGTTAAAATACAAGGTGAGCTTAAATGTAAGCTATCATCTTTATAGTTT -GATTTTTTGGGGTGAATGCATTATAAAAGAATTGTAAAATTCTTTTTGCATCGCTATAAATAATTTCTCA -TGATGGTGAGAAACTATCATGAGAGATAAATTTAAATATTATTTTTAATTAGAATAGGAGAGATTTTATA -ATGGCAAAAGAAAAATTTGATCGTTCTAAAGAACATGCCAATATCGGTACTATCGGTCACGTTGACCATG -GTAAAACAACATTAACAGCAGCAATCGCTACTGTATTAGCAAAAAATGGTGACTCAGTTGCACAATCATA -CGACATGATTGACAACGCTCCAGAAGAAAAAGAACGTGGTATCACAATCAATACTTCACACATTGAGTAC -CAAACTGACAAACGTCACTACGCTCACGTTGACTGCCCAGGACACGCTGACTATGTTAAAAACATGATCA -CTGGTGCTGCTCAAATGGACGGTGGTATCTTAGTAGTATCTGCTGCTGACGGTCCAATGCCACAAACTCG -TGAACACATTCTTTTATCACGTAACGTTGGTGTACCAGCATTAGTAGTATTCTTAAACAAAGTTGACATG -GTTGACGATGAAGAATTATTAGAATTAGTAGAAATGGAAGTTCGTGACTTATTAAGCGAATATGACTTCC -CAGGTGACGATGTACCTGTAATCGCTGGTTCAGCATTAAAAGCTTTAGAAGGCGATGCTCAATACGAAGA -AAAAATCTTAGAATTAATGGAAGCTGTAGATACTTACATTCCAACTCCAGAACGTGATTCTGACAAACCA -TTCATGATGCCAGTTGAGGACGTATTCTCAATCACTGGTCGTGGTACTGTTGCTACAGGCCGTGTTGAAC -GTGGTCAAATCAAAGTTGGTGAAGAAGTTGAAATCATCGGTTTACATGACACATCTAAAACAACTGTTAC -AGGTGTTGAAATGTTCCGTAAATTATTAGACTACGCTGAAGCTGGTGACAACATTGGTGCATTATTACGT -GGTGTTGCTCGTGAAGACGTACAACGTGGTCAAGTATTAGCTGCTCCTGGTTCAATTACACCACATACTG -AATTCAAAGCAGAAGTATACGTATTATCAAAAGACGAAGGTGGACGTCACACTCCATTCTTCTCAAACTA -TCGTCCACAATTCTATTTCCGTACTACTGACGTAACTGGTGTTGTTCACTTACCAGAAGGTACTGAAATG -GTAATGCCTGGTGATAACGTTGAAATGACAGTAGAATTAATCGCTCCAATCGCGATTGAAGACGGTACTC -GTTTCTCAATCCGTGAAGGTGGACGTACTGTAGGATCAGGCGTTGTTACTGAAATCATTAAATAATTTCT -AATTTCTTAGATTTTATATAAAAAGAAGATCCCTCAATCGAGGGGTCTTTTTTTTAATGTGTAAATTTTG -TAATGGCTGTTCAATTTAGAAGAACAATAATTGATGAGAGGTTGACTAATAAAACTTATAACTGATAATA -CAGTTTAAATAAAATTGTTGAGCCTTGGACATTGTAAAATGCTCCTCTCAAAGTTTTCATTTTTCAATGT -CTACTTTGAAGGAGCATTACATTAGTTTATGTCTCAGATTCATATCTTTCAATTAATTTAAATGCTTAAT -TTGTTTTAAATACTTGCTCTAATTCAATGATTTTCAAAAATACAGCTACAGCGTATTTTAATGATTTTTC -ATCAATATCAAATTTGGGATTATGGTGTGGCGCTGTAATACCTTTACTTTCATTACCGCAACCAGTCAGA -AAGAATGCACCTGGTCGTACTTTCAAATAATGTGAAAAATCTTCTCCAATCATCATTAAATCTGATTCAT -TAAAGCGTACATGTAAGTCATTTGTTGCTTCTTTAATAACTTGATATGCTTTCTCGTTGTTATGGACAGG -CAAGTATCCTTTAATATAATTCAAGTCATATTCAATGTCATTTGCAATTGCCAAACCTTGTAGTAGCTTA -TCCATTTTATGCATGACATGTTCTTGTATTTTCGAGTCAAATGTACGAACTGTACCTTTACAAAATGCTT -GATCAGGAATAACGCTATCTGTGGTGCCTGCTTGAATCATTCCAAATGAAAGTACAGCTTGTTTAACTGG -ATCAATCGTACGTGAAATTATTTTTTGTGCACTTAAAATGAACTCTGCCATGATTACTATTGGGTCAATG -GTTTCATGAGGTTTGGCACCATGACCGCCACGACCTTTAATTGTGACACTAAATTCATCTGGAGAGGCCA -TGATTGCCCCCGCACGCGAATGAATAGTTCCAGTAGGATAACCACTCCATAAATGTGTACCGTAAATTCT -ATCTACATTTTCCAGACATCCAGCATCAATCATTTCTTGAGAACCACCTGGCATGATTTCTTCACCGTAC -TGGAATATTAATACAACATTACCTTCTAATAAATGTTTATGTTCATCTAAAATTTCTGCTACGGTAAGTA -AAATTGCTGTATGACCATCATGCCCACACGCATGCATACATCCTGGATTTTTAGACTTATAAGGCACATC -GTTTAATTCCTCGACAGGTAACGCATCAAAGTCAGCTCTTAATGCAATGGTAGGTCCTGTGCCCAAACCT -TTAAATGTGGCTTTGATACCATTGCGGCCGATAGGAGTTTCAATATCACAAGATAACTGGCTTAATTGGT -TAACAATATAATCATGTGTTTGAAATTCTTCAAAAGATAACTCAGGATATTGGTGTAAATAACGTCTGAG -TTGAATTGTTTTATTTTCTTTATTATTTGCTAGTTGAAACCAATCTAACACCCTAATCACTACTTTCTAA -AATATTGTTTATAGTATAACATTTTATGAAATTATCGTACTAAATGATTGCTTTGAGATATTTTATCTAT -GAATGATAAGGCTTTCAAGTTATGTAGAATTACTGTATGATAAAGGTATTACCAAACAATACTTAAGGGG -GATTATATACTGTGGTTCAATCATTACATGAGTTTTTAGAGGAAAATATAAATTATCTAAAAGAAAATGG -TTTGTATAATGAAATAGATACAATTGAAGGTGCAAACGGACCAGAAATCAAAATCAATGGGAAATCATAC -ATTAACTTATCTTCAAATAATTATTTAGGACTAGCAACAAATGAAGATTTGAAATCAGCTGCAAAAGCAG -CTATTGATACACATGGTGTAGGTGCAGGCGCTGTTCGTACAATCAATGGTACATTAGATTTACACGACGA -ATTAGAAGAAACACTAGCAAAATTTAAAGGAACAGAAGCTGCAATAGCTTATCAATCAGGATTTAATTGT -AATATGGCTGCTATTTCGGCTGTTATGAATAAAAATGATGCTATTTTATCAGATGAGCTTAATCATGCAT -CAATTATTGACGGATGTCGCTTATCAAAAGCTAAAATTATTCGAGTTAACCATTCAGACATGGATGATTT -ACGTGCGAAAGCAAAAGAAGCAGTTGAATCAGGTCAATACAATAAAGTGATGTATATCACTGATGGCGTT -TTTAGTATGGATGGTGATGTGGCTAAATTACCTGAAATTGTAGAAATTGCAGAAGAATTTGGTTTATTAA -CTTATGTTGACGACGCTCATGGTTCAGGTGTTATGGGCAAAGGCGCTGGTACGGTTAAACATTTTGGTTT -ACAAGATAAAATCGATTTCCAAATTGGTACGCTTTCTAAAGCAATTGGTGTCGTTGGCGGTTATGTAGCA -GGTACAAAAGAGTTAATAGATTGGTTAAAAGCACAATCACGACCATTCTTATTCTCTACATCATTAGCAC -CTGGGGATACTAAAGCAATCACTGAAGCAGTTAAAAAGTTAATGGCTTCAACTGAATTACATGATAAATT -ATGGGACAATGCACAATATTTAAAAAACGGATTGTCAAAATTAGGATATGATACAGGAGAGTCAGAAACT -CCGATTACACCAGTAATTATTGGTGAAGAAAAAACAACTCAAGAATTTAGTAAGCGTTTAAAAGACGAAG -GTGTCTATGTGAAATCTATCGTTTTCCCAACAGTGCCAAGAGGTACAGGACGTGTAAGAAATATGCCTAC -AGCTGCACATACAAAAGACATGTTAGACGAAGCAATTGCGGCTTATGAAAAAGTAGGAAAAGAAATGAAT -TTGATTTAATTTAATATATATTTATTCCCACGGCAAATATCGTCGTGGGTTTTTTCTTTTATAAATGCTT -AGTTTATTAACAGTAAGTTCTTATAACAATGTTTAGTGTTGTCAACCATTAAAGTTTGAATTTTAAAAGC -ATCTTGTAGAATTTAGTTGTATTTTTACGATTAAATTCATTTTGATTATTTTTGATAATAAGCATTTTAA -TAGTAATACATGTTTATAGTGTGTAGCATATGTCTATACTAGTAGTAACTATATAGAGAAAGTAGGAATA -AACTATGTCACAAGATGTAAATAAATTAAGTAAGCAACCAACGCCAGATAAAGCAGAAGATAACGCATTT -TTCCCATCACCATATTCCCTTAGTCAATATACAGCACCTAAAACAGATTTTGATGGTGTTGAACACAAAG -GTGCCTATAAAGATGGTAAATGGAAAGTATTGATGATTGCTGCTGAAGAGAGATATGTATTATTGGAAAA -TGGAAAAATGTTCTCTACGGGTAATCATCCTGTTGAAATGTTATTACCTTTACATCATTTAATGGAAGCA -GGTTTTGACGTTGATGTTGCGACATTATCTGGTTATCCAGCTAAATTAGAATTATGGGCTATGCCAACTG -AAGACGAGGCAGTTATAAGCACTTATAATAAATTGAAAGAAAAATTAAAACAGCCAAAAAAATTAGCAGA -TGTGATTAAAAATGAATTAGGACCTGATTCAGACTATTTATCTGTCTTTATCCCAGGCGGGCATGCTGCA -GTTGTTGGTATTTCTGAAAGTGAGGACGTTCAACAAACATTAGATTGGGCATTAGAAAATGACCGCTTTA -TAGTTACATTATGTCATGGACCAGCCGCACTACTTTCAGCAGGTCTTAACAGAGAAAAATCTCCATTAGA -AGGATACTCTGTTTGTGTTTTCCCTGACTCATTAGATGAAGGTGCAAATATTGAAATAGGTTATTTACCT -GGACGTTTGAAATGGTTAGTTGCTGATTTATTAACTAAACAAAGTTTAAAAGTAGTTAACGACGATATGA -CAGGAAGAACGTTAAAAGATCGTAAATTATTAACAGGTGACAGTCCTTTAGCTTCAAATGAGTTAGGAAA -ATTAGCAGTTAATGAAATGTTAAATGCAATACAAAATAAATAATTAAATATTAATTAGAGGAGCCCCATA -TGTAAATGTATGAGGGCTCTTTTTTTGGCAAAATTTTAGTGATACTTGTAAAATAGAACCTATTATGAGT -ATGATTTAAGAAAACGCTTGCAAAACTAATAACTGCAACTAGCGATATGGAGGAAACATGATGTCTTATA -GCATTGGAATTGATTATGGAACTGCTTCAGGCCGTGTGTTTTTAATTAATACAACTAACGGTCAAGTAGT -ATCAAAATTTGTGAAACCATATACACATGGTGTCATTGAGGGTGAATTAAATGGTTTAAAAATACCACAT -ACATATGCACTTCAAAATAGTAATGATTATTTAGAAATTATGGAAGAAGGAATATCATATATAGTACGTG -AATCAAAAATAGATCCAGTCAATATAGTAGGTATTGGTATAGACTTTACTTCATCTACTATTATTTTTAC -TGACGAAAACCTTAACCCGGTACATAATTTAAAACAATTTAAAAACAATCCACATGCGTATGTGAAACTT -TGGAAACATCATGGTGCATATAAAGAAGCAGAGAAATTATATCAAACTGCTATTGAAAATAATAATAAGT -GGTTAGGCCATTATGGATATAATGTTAGTAGTGAATGGATGATTCCCAAAATAATGGAAGTCATGAATCG -AGCACCAGAAATTATGGAAAAAACGGCTTATATTATGGAAGCGGGCGATTGGATTGTAAATAAATTAACT -AATAAAAATGTACGGTCGAATTGTGGATTAGGTTTCAAAGCATTTTGGGAAGAAGAAACAGGGTTTCATT -ATGATTTGTTTGATAAAGTAGACCCCAAATTATCAAAAGTAATTCAAGATAAAGTATCTGCACCGGTTGT -TAATATTGGTGAAGCAGTAGGGAAACTGGATGATAAAATGGCACAGAAATTAGGATTATCAAAAGACACT -ATGGTAAGTCCTTTTATTATTGATGCCCATGCTAGTTTATTAGGTATTGGATCTGAAAAAGATAAAGAAA -TGACTATGGTGATGGGAACAAGCACATGCCATCTTATGTTAAATGAAAAGCAACATCAAGTGCCAGGTAT -ATCAGGTTCTGTAAAAGGAGCAATTATTCCAGAATTATTTGCTTATGAAGCGGGGCAATCAGCAGTAGGT -GATTTGTTTGAGTATGTCGCTAAGCAAGCACCAAAGTCATATGTAGATGAAGCAGCAAATAGAAATATGA -CTGTATTTGAATTAATGAATGAAAAGATAAAACATCAAATGCCAGGTGAAAGTGGGCTCATTGCTCTTGA -TTGGCATAATGGAAATCGAAGTGTATTAAGTGATAGCAATTTAACAGGTTGTATCTTTGGATTAACTTTA -CAAACTAAGCATGAGGATATTTATAGAGCATATTTAGAAGCTACAGCATTTGGTACTAAGATGATTATGC -AACAGTATCAAGATTGGCATATGGAAGTAGAAAAGGTATTTGCATGTGGCGGTATACCTAAAAAGAATGC -TGTTATGATGGATATCTATACGAATGTACTGAATAAAAAACTAATTGTTATGGATAGTGAGTATGCACCA -GCAATAGGAGCAGCAATATTAGGTGCAGTCAGTGGTGGCGCACATAATTCAATTAATGATGCAGTTGATG -CTATGAAAGAGCCAATTTTATACGAAATTAATCCAGAAGCGGAAAAAGTACAAAGGTATGAAACATTATT -TAAAGCTTATAAGGCTTTACATGATATCCATGGTTATAAAAAAGCTAATATAATGAAAGATATCCAGAGT -TTAAGAGTTGAGGGATAAAAAATTTAATTTGACAGTAATTAGCAATATTAAACGCTATAAATTACTAAAA -TCAATTAATACAGCTAGAATTTCCATTTACAGAAATATCAGCAAAATGTACATGTCATATATACAAGAAA -GCGCTTTTATATTATAATTATTATGAAAATGAATATTATGTCCTCTTGTGATGGACTATGGTTATATAGA -AGAGACAAAGGAGATATTTCTATGAAAAAAATTATGATTACTGGTGCATTAGGACAAATTGGTACAGAAT -TAGTTGTTAAGTGCAGAGAAATTTATGGGACAGATAATGTTCTTGCTACAGATATTAGGGAACCTGAAGC -AGACTCACCTGTACAAAATGGACCATTTGAAATCTTAGACGTAACAGATCGTGACCGTATGTTTGAGTTA -GTTAGGGACTTTGAAGCGGATAGTCTAATGCATATGGCAGCATTATTATCAGCAACTGCTGAGAAAAATC -CAATTCTTGCTTGGGATTTAAATATGGGTGGATTAATGAATGCATTAGAAGCTGCAAGAACTTATAATTT -GCACTTTTTCACACCAAGTTCAATTGGTGCATTTGGAGACTCAACTCCTAAAGTTAATACGCCACAAGTA -ACGATTCAGCAACCTACGACAATGTATGGTGTAAATAAAGTAGCTGGCGAATTGTTGTGTCAATATTATT -TCACACGATTTGGTGTAGATACAAGAAGTGTTAGATTCCCTGGTTTAATCTCGCATGTTAAAGAACCGGG -TGGTGGCACAACGGACTACGCAGTTGAAATTTACTTCAAGGCTGTAAGAGAAGGACATTATACAAGCTTC -ATAGATAAAGGGACATATATGGATATGATGTATATGGATGATGCGATTGATGCAATTATTAAACTTATGG -AAGCAGACGATGCGAAATTAGAAACAAGGAATGGTTATAATTTAAGTGCAATGAGCTTTGATCCAGAAAT -GGTTAAAGAAGCAATACAAGAATATTACCCAGATTTCAAATTAGAATATGATGTTGACCCTATTAGACAA -GGTATCGCTAATAGTTGGCCGGATTCTATTGATACAAGCTGTTCACGTGGCGAATGGGGATTTGATCCTA -AATATGATTTAGTGAGCATGACTAAATTAATGTTAGAAGCTATTGAACAAAAAGATACTGTTAAAAATAA -TAACTAATCATTTCCATTCACTTTAATACACGGAATGATATTTTAAATTACTCTTTATTTTAATAAACTA -GTGCATGAATTCTAATATTATTAATTATACATATTGAATTCGCGAGCTTAGTTCATTTTTAAATAAAGAG -TTTTTTGTATTAAAAAGATATAATTCAAACACAGATTACTTGTCTCTATGAAAATAATACGTTTATACTA -AAAGATATAGGCTTTCTGAAAAAGTGTTAATTAATTTCGAATTTTTAGAAAATTTATTGAACAGTAAAAT -AGGGATTGTTATAATTTATGTTAAACAAATTCTTATACTATATTATTAGGAGGCAATCACCATGTCACAA -GCAGTTAAAATTGAATTACGCGAAACATTAAAAGAAAAACCAGATACATCTCAATTAGGATTTGGTAAGT -ATTTTACAGATTATATGTTGAGTTATGATTATGATGCGGATAAAGGATGGCATGATTTGAAGATTGTACC -TTATGGTCCAATTGAAATTTCGCCAGCAGCACAAGGTGTTCACTATGGACAATCAGTGTTCGAAGGTTTA -AAAGCATATAAAAAAGATGGAGAGGTTGCACTTTTCCGTCCAGATGAAAACTTTAAGCGTCTTAATAACT -CGTTAGCACGCTTAGAAATGCCTCAAGTCAATGAAGGTGAATTGCTAGAAGGACTTAAGCAATTAGTTGA -TTTAGAGAGAGAATGGGTTCCGGAAGGTGAAGGTCAATCATTATATATTCGTCCTTTTGTTTTTGCGACA -GAAGGGGTACTTGGCGTTGGTGCATCACATCAGTATAAATTATTAATTATTTTATCTCCTTCAGGTGCAT -ATTATGGTGGTGAAACTTTAAAACCAACTAAAATCTATGTAGAAGATGAATATGTACGTGCTGTTCGTGG -CGGTGTAGGCTTTGCGAAAGTTGCAGGTAACTATGCGGCAAGTTTATTAGCACAAACTAATGCAAATAAA -TTAGGTTATGACCAAGTATTATGGCTTGATGGTGTTGAACAGAAATATATCGAAGAAGTTGGTAGCATGA -ACATTTTCTTCGTTGAAAATGGCAAAGTAATTACACCAGAGTTGAATGGCAGTATTCTACCTGGTATTAC -ACGTAAATCTATTATCGAATTAGCTAAAAACTTAGGATATGAAGTCGAAGAGCGCCGCGTTTCAATCGAT -GAATTATTCGAATCATATGATAAAGGTGAGTTAACAGAAGTATTTGGTAGTGGTACTGCAGCAGTTATTT -CACCTGTAGGTACATTGAGATATGAAGATCGTGAAATCGTTATTAATAATAATGAGACTGGTGAAATTAC -TCAAAAATTATACGACGTCTATACTGGTATTCAAAATGGTACTTTAGAAGATAAAAATGGTTGGAGAGTC -GTTGTACCAAAATATTAATAAAAATTGAATATGATCATGAAAACAAAATGTAAAAGTTAATCATGACTAA -AATCCCTTTCAATGAAGCGAAGCATGGTAATAAATTAAGTTTACAATGTTTATTGTTAAGTATTGAAGGG -GATTTCACTTATTATTATATTTAATTCAATATTTAAAAAGAACAATACTACGAGTTCATTTTCAGGGGAA -TAACGAACATCATAGAATCAGCATAATACGAAATAAATAAATAGGAGTATTGATATTAATGGAATGGATA -TTATTTGATAAAGATGGTACGTTAATTGAATTTGATAGAAGTTGGGAAAAAATAGGGGTACGATTTGTAC -AATCATTGCTTGAGACTTTTCCAGTACATAATAAAGAAGCTGCTTTAAGACAACTCGGTGTCATTAAAGA -ATCTATTGATCCAAAATCAGTGATGGGTTCAGGATCTTTACAACAAATTATTCAGGCATTTAATGATGTG -ACGGGACAAGATACAACCGACTGGTCCAAGTCAACAAGTCAAAAGTTGGTAGATGAACGTATTCCTGAAA -TTAATTGGGTAGAAGGTGTTAAAGAAGCACTTATCGATTTGAAAGCAAAAGGCTATCAACTAGGTATTGT -TACGAGTGATACTAAAAAAGGTGTAGAACAATTTTTAGCACATACCAATGCTACCTCGTTGTTCGATTTG -ATCATTTCTACCGAAGCGGATGCCTATGAGAAGCCAAATCCTAAAGTATTATCGCCTTTATTTGAGCAAT -ATAATGTAGATCCTCAGAAAGTAGCTATAGTAGGAGACACTGCTAATGATATGAAAACCGCTAGTAATGC -AAATTTAGGTATGGCAATAGGTGTATTAACAGGTATTGCAACAAAAGAAGAATTACATGAAGCTGATATT -ATTTTAAATAGTGCGGCAGATATTTTAGAAGCTTTAATTTAAAAAGTAAGACATAGTGTATATGTGAATC -AATGTAACCAATAGAATTGATAATGTAATCGATGATATCTATGGAATATACATTGAATATAAACATATAC -GCTATGTCTTTAGTCTTTTATCGTGTATCTACTTGTCGATATGTTTGAATAATTCGAGCAATTTTGTCTA -TCATAGGATTTAAAGATTCGGGGTCCTTATGGATATCATATTCATTAATATTGATACGTACCACAGGACA -TGCATTAAAGCTATTAATCCAATCGTCATAGCGTTTAAATAGCTTTTTCCAGTATTCAGGGTCTGTATTA -ATTTCCATTTCGCGACCGCGTTCAATAATACGATCAATGACCTCATCATAGTTACATTCTAAATAAATCA -TTACATCAGGTTTAGGAAAATAAGGTGTCATGACCATGGCATTAAATAAGTCTGAATATGTTTTGAAATC -CTCTTTACTCATTGTGCCTTCTTCTTCATGCATTTTTGCAAAAATATCAACATCTTCATAAATTGATCGA -TCTTGGACAAAGCCACCACCATATTCAAACATACGCTTTTGTTCTTTAAAGCGTTCAGCTAAGAAATAAA -TTTGTAAATGGAAACTCCAACGTTCAAAATCGCTGTAAAATTTATCTAAATATGGATTATGTTCGACATT -TTCAAAAGACGTTTTAAAGTTTAATTTATCTGCAAGTGCTTGCGTTAGTGTTGATTTCCCAACACCAACT -GTACCTGCAATGGTTATAATGGCATTTTGTGGAATACCGTAATTATTCATTGGTAATATCTCCTATCATA -GGTAATATAATATGTAATATATCTTCGTAATCTTGTTCATTTTTTAGAAAATCAATAGAAGTTGTATCGA -TTAAAACTACATTTGAACCATTACTTTGTAAGGACTCATAATACTCACGATAATCTTTTTTTAACTTTAA -CAGATATTCATCTTCTATTTGATGCTCAAAACTACGGTTACGTTTAGCAATTCTAGATTTTAACACATCA -AGGTCTGCATCTAAAAAGATAATCATATTCGGCATAATCATATCTTCAGTTAAAATATCATAAATTTTAC -TGAATTTCTGAAATTCAACAGAACTCAAAGTATTTTTAGCAAATATCTTATTTTTATGTATATGATAATC -ACTAACTACACCTTGATTTAGTTGTGTTACATCTTGAAATTGCTTATATCTATTGCATAAAAAGAACATT -TCAGTTTGAAAACTCCATTTAGAGATATCTTCATAAAAGTCTGATAAAAATGGATTTTCTGTGATGATTT -CTTTTTCTTCATAAAAATCTAAAGTTTGACTTAATTTGTGTGCAAGTGAAGATTTACCTACGCCAATAGG -ACCTTCAATTGCTATAAAAGGTTTGTTCATATTCACATCTCCAAATGTTAAAATAGACATTGAGTATTGT -ACCATAAGTGAGGTATCTGGACATAAATGACAAATGATATATATTTTATGACATTAGCGATTGAAGAAGC -TAAAAAGGCAGCTCAACTAGGCGAAGTACCTATAGGTGCTATCATCACTAAAGATGATGAAGTTATCGCT -AGAGCACATAATTTAAGAGAAACACTACAACAACCAACGGCGCATGCTGAACATATTGCAATTGAACGTG -CAGCCAAAGTGTTAGGTAGTTGGCGTTTAGAAGATTGCACATTATATGTAACCTTAGAACCATGTGTCAT -GTGCGCAGGAACAATTGTAATGAGTCGCATTCCAAGAGTCGTCTATGGCGCAGATGATCCTAAAGGTGGT -TGTAGTGGCAGTTTAATGAATTTATTGCAACAATCTAATTTTAATCATCGTGCAATTGTTGATAAAGGTG -TACTTAAAGAAGCATGTAGCACATTATTAACAACATTTTTTAAAAACTTAAGAGCCAATAAGAAATCCAC -CAATTAGACGATAGTACATACTAATTAAAATTTGTTAGAATTACATTATATGATAAATTAATGACAATAT -AAATGTTAATAGAAAAGTATGTGCACTGAGTATATATTCTTATGTAAGAACAAGATTTTAAATTTACGAA -ACGAGGTAACATAATGATAAAACTAATAGCCACTGATATGGATGGCACGCTACTTAATGCAGCACATGAA -ATTTCTCAACCTAATATTGATGCGATTAAATACGCTCAAGAACAAGGGATAACGGTTGTTATCGCGACAG -GTCGAGCATTTTATGAAGCACAAGCACCAGTTGCTGACACAGATTTAACAGTACCATATATTTGTTTGAA -TGGTGCTGAAGTACGTGATGAAACTTTCAATGTAATGAGCACTTCACACCTTAATAAATCGTTAGTACAC -AAAATTACAAATGTTTTAAAAGATGCAGGTATTTATTATCAAGTATACACGAGTCGTGCGATTTATACTG -AAGATCCACAAAGAGATTTAGACATTTACATAGATATTGCTGAGCGTGCAGGTCAACACGCAAACGTTGA -GCGTATTAAAAATGGTATTCAAAGACGCATAGATAATGGTACGTTGAAAGTTGTTGATAATTATGATGCT -ATTGAAAACATACCTGGTGAATTAATTATGAAAATATTAGCATTTGATGGAAATTTAGAAAAAATTGACA -AAGCTAGTAAAATTTTAGCTGAATCTCCGAATTTAGCTATATCATCATCTTCGAGAGGAAATATAGAAAT -AACGCATTCAGATGCACAAAAAGGCATTGCGCTAGAAACAATTGCCGAAAGATTAGGGATTGAAATGAAA -GATGTCATGGCAATAGGTGACAATTTAAATGACGTATCAATGTTAGAGAAAGTTGGCTATCCAGTTGCGA -TGGAAAATGGTGCTGAAGAAGTTAAAAAAATAGCGAAATATGTCACAGATACGAATGAAAATAGTGGTGT -TGGAAAAGCTATTATGAAATTATTACGTGAACAACAAGTTTAATAAAAAAGAGGGGTCAAATATGAAAGG -ATTAATTATTATTGGCAGTGCACAAGTGAATTCACATACAAGTGCACTAGCAAGATACTTAACTGAGCAT -TTTAAAACACATGATATTGAAGCGGAAATATTCGATTTAGCAGAAAAACCGTTAAATCAATTAGATTTTT -CAGGAACAACACCGTCTATTGATGAAATCAAACAAAATATGAAAGATTTAAAAGAGAAAGCAATGGCGGC -GGACTTTTTAATATTAGGAACGCCAAACTATCATGGTTCATATTCTGGAATATTGAAAAATGCATTAGAT -CATCTAAATATGGATTATTTTAAAATGAAACCTGTAGGCTTAATAGGAAATAGTGGTGGAATTGTTAGTT -CAGAGCCATTGTCACATTTAAGAGTAATCGTCAGAAGTTTACTAGGCATTGCAGTACCAACTCAAATAGC -AACACATGATTCTGATTTTGCTAAAAATGAAGATGGTTCATATTACTTAAATGATAGTGAATTCCAATTA -CGAGCAAGATTATTTGTCGATCAAATTGTATCTTTTGTGAATAATAGCCCATATGAACATTTAAAATAAA -TTAAAAAATATGTAAATATACATTAAAAATAGGTATGTAGCTTAAGGTATTTCATTGAGAATGCTTTTAA -GTCACATGCCTATTTTTTTGTTCTAATGCACCAATAGTAAGCCTTTGAGTTTACTATTGTGAGCAATGTT -ATTAAATAAAATAAGATGTAATAGCGAATTGAAAACAAGCTTAGATTAAAAGGAAAGTTTAAAAATATAG -ATAAATAATTTAAAACAATGGAAGAAAAAAAGTATTAAAAATTGCAATTCTTAATCTGAAATGCATATTA -ATATTTACTATAAATAACATTGTAAAATAAAAGAAAAAAATTAAAACATTGTACTTTATCGAAAAGTGTA -TTAAGATAGAAAGGCAGAAATTTTTATATGCAAAATATTATATTTATCAAATTTTGATATTTTAAAGGAG -TATTATTAAATGAATAATAAAAAGACAGCAACAAATAGAAAAGGCATGATACCAAATCGATTAAACAAAT -TTTCGATAAGAAAGTATTCTGTAGGTACTGCTTCAATTTTAGTGGGGACAACATTGATTTTTGGGTTAAG -TGGTCATGAAGCTAAAGCGGCAGAACATACGAATGGAGAATTAAATCAATCAAAAAATGAAGCGACAGCT -CCAAGTGAGAATAAAACAACTGAAAAAGTTGATAGTCGTCAACAAAATAATGTTGAACAAAGTACAACGT -CAAACCAACCAAAAGTAAATGAGTCTGATAATACTTCAGTTAAAGAAACTACTGAAGAACCTCAAAATAC -AACTTCTACACAACCAACTAAAAAAAATAACGATGCGACAGCAAATAAAGATAATTTAGCGGCTCAAAAT -ATTTCAACGCAGGCTAATGATGTTTCAGCTACTCCTAAAACAACGACTATTAAACCAAGAACATTAAACC -GTATGGCTGTGAACACAGTAGCAGCACCACAACAAGGTACAAATGTAAATGATAAAGTTCATTTTTCAAA -TATTGATATTGCTATTGATAAAGGACATGTCAATTCTACAACAGGTAAAACTGAATTTTGGGCGACTTCT -AGTGATGTTTTAAAATTAAAAGCGAATTACACAATCGATGATTCTGTTAAAGAGGGCGATACATTTACAT -TTAAATATGGACAGTATTTCCGTCCGGGTTCTGTAAGATTACCTTCACAAACTCAAAATTTATATAATGC -CCAAGGTAATATTATTGCAAAAGGTATTTATGATAGTACAACAAACACAACAACATATACTTTTACGAAC -TATGTGGATCAATATACAAATGTTAGTGGTAGCTTTGAACAAGTTGCATTTGCGAAACGTGAAAATGCAA -CAACTGATAAAACTGCTTATAAAATGGAAGTAACTTTAGGTAATGATGCGTATAGCGAAGAAATCATCGT -CGATTATGGTAATAAAAAAGCACAACCGCTTATTTCAAGTACAAACTATATCAATAATGAAGATTTATCA -CGAAATATGACTGTTTATGTAAATCAACCTAAAAATACATACACAAAAGAAACATTTGTTAGTACTTTAA -CAGGTTATAAATTTAATCCAGATGCAAAAAACTTTAAAATTTATGAAGTGACAGATCAAAATCAATTTGT -TGATAGCTTTACACCTGATACTTCAAAACTTATAGATGTTACTGATAAATTCAAAATCACATACAGCAAT -GATAATAAGACTGCAACAGTTGATTTAATGAATGGTCAAACAAATAGTAATAAACAATATATTATTCAAC -AAGTTGCTTATCCAGATAATACATCAACAGATAATGGAAAAATTGATTATACATTAGATACAGACAAAAC -TAAATACAGTTGGTCGAACAGTTATTCAAGTGTAAACGGCTCATCAACTGCTAATGGCGACCAAAAGAAA -TATAATCTAGGTGACTATGTATGGGAAGATACAAATAAAGATGGTAAACAAGATGCCAATGAAAAAGGGA -TTAAAGGTGTTTATGTCATTCTTAAAGATAGTAACGGTAAAGAATTAGATCGTACTACTACTGATGAAAA -TGGTAAATATCAGTTTACAGGATTGGGAAATGGGACTTACAGTGTAGAATTTTCAACGCTAGCAGGGTAC -ACACCAACTACTGTAAATGCAGGAACTGATGATGCTGTAGATTCTGATGGACTAACTACAACAGGTGTCA -TTAAAGACGCTGATAACATGACATTAGACAGTGGTTTCTATAAAACGCCAAAATACAGTTTAGGTGATTA -TGTTTGGTACGACAGTAATAAAGATGGCAAACAAGATTCAACTGAAAAAGGAATTAAAGGTGTTAAAGTT -ACTTTGCAAAATGAAAAAGGCGAAGTCATTGGTACAACTGAAACAGATGAAAATGGTAAATACCGCTTTG -ATAATTTAGATAGCGGTAAATACAAAGTTATTTTTGAAAAGCCTGCTGGCTTAAAACAAACAGGTACAAA -TACAACTGAAGATGATAAAGATGCAGATGGTGGCGAAGTTGACGTAACAATTACGGATCATGATGATTTC -ACACTTGATAACGGATACTTCGAAGAAGAAACATCAGACAGTGACTCAGACAGTGATTCAGATTCAGATA -GCGATTCAGACTCAGATAGCGATTCAGACTCAGACAGTGAATCAGACTCAGACAGCGACTCAGATTCAGA -CAGCGACTCAGACTCAGACAGCGATTCAGACTCAGATAGCGACTCAGATTCAGAAAGCGACTCAGACTCA -GACAGCGATTCAGACTCAGACAGTGACTCAGATTCAGATAGCGACTCAGATTCAGATAGCGACTCAGACT -CAGATAGTGACTCAGACTCAGATAGTGACTCAGACTCAGACAGTGACTCAGATTCAGACAGCGATTCAGA -CTCAGATAGCGACTCAGATTCAGACAGTGACTCAGACTCAGATAGCGATTCAGATTCAGACAGTGACTCA -GACTCAGATAGCGATTCAGATTCAGATGCAGGAAAACATACACCTGTGAAACCGATGAGTGCTACTAAAG -ACCATCACAATAAAGCAAAAGCATTACCAGAAACAGGTAGTGAAAATAACGGCTCAAATAACGCAACGTT -ATTTGGCGGATTATTCGCAGCATTAGGTTCATTATTGTTATTTGGTCGTCGTAAAAAACAGAATAAGTAA -TTTGCTTAACCAAACCAGGTCCGTGAGGCCTGGTTTTTTATTTCAAAATTTATGAAATGTATCTTATGTT -TGAGATTAAATAGTGCAATATTTTAAAAGATATAACATACATCAACATAAATTTAATTCATCTTTATATT -AAAAGTACAGACAAATAAGAAAAACAATTAAACACAGTTTCAAACCATTTAAAACAATTAGTATAAAAAG -TAAATAGATAATTAAAAATCAATAAAATTAAGTTATTCAAACCAAAGTGTAAAATAACAGTTGAAAATAA -ATAAATTTATTTAAAGTATTGTGCTTTATCTAAAAATGTATTACGATGGGAATACAAATTTTTATATGTA -AAAATATTAGTTTTTTGCAAATATTGATATTTTAAAGGAGATTTATATGATTAACAGGGATAACAAAAAG -GCAATAACAAAAAAGGGTATGATTTCGAATCGCTTAAACAAATTCTCGATTAGAAAGTATACTGTAGGAA -CTGCATCGATTTTAGTAGGTACGACATTGATTTTTGGTCTAGGGAACCAAGAAGCTAAAGCTGCTGAAAA -CACTAGTACAGAAAATGCTAAGCAAGATGAGGCATCGGCTAGTGATAATAAAGAAGTAGTGTCAGAAACT -GAAAATAATTCGACACAAAAAAATGATTTAACAAATCCAATTAAGAAAGAAACAAATACTGATTCACACC -AAGAAGCTAAAGAAGCACCAACTACATCTAGTACTCAACAACAGCAAAATAATGCTACAACTTCAACTGA -AACTAAGCCTCAAAACATTGAAAAAGAAAATGTTAAACCTTCAACTGATAAAACTGCGACAGAAGATACA -TCTGTTATTTTAGAAGAGAAGAAAGCGCCAAATAATACAAATAACGATGTAACTACAAAACCATCTACAA -GTGAAATTCAAACAACACCAACTACACCTCAAGAATCTACAAATATTGAAAATTCACAACCGCAACCAAC -GCCTTCAAAAGTAGACAATCAAGTTACAGATGCAACTAATCCAAAAGAACCAGTAAATGTGTCAAAAGAA -GAACTTAAAAATAATCCTGAGAAATTAAAAGAATTAGTTAGAAATGATAGCAATACAGATCGTTCAACTA -AACCAGTTGCTACAGCTCCAACAAGTGTTGCACCAAAACGTGTAAACGCAAAAATACGCTTTGCAGTTGC -ACAACCAGCAGCAGTTGCTTCAAACAATGTTAATGATTTAATTACAGTGACGAAACAGATGATTACTGAA -GGTATTAAAGATGATGGTGTTATTCAAGCACATGACGGTGAACATATTATTTATACATCCGATTTTAAAA -TTGATAATGCTGTAAAAGCTGGGGATACAATGACAGTAAAGTATGATAAGCATACAATTCCTTCAGATAT -TACGGATGATTTCACACCAGTTGATATTACAGATCCATCAGGTGAAGTAATAGCGAAGGGAACATTTGAT -TTAAATACGAAAACAATTACTTACAAATTTACTGATTATGTTGATAGATATGAGAATGTCAATGCAAAAT -TAGAACTAAACTCATATATTGATAAGAAAGAAGTCCCAAATGAAACAAATTTAAATTTAACATTTGCTAC -AGCAGATAAAGAAACTAGTAAAAATGTTAAAGTTGAATATCAAAAACCTATTGTAAAAGATGAGTCAAAT -ATTCAATCTATATTTAGCCATTTAGATACTACTAAGCATGAGGTAGAACAGACTATTTATGTGAATCCAT -TAAAATTAAATGCTAAAAACACAAATGTTACTATAAAAAGTGGTGGTGTAGCAGATAATGGTGATTATTA -TACTGGAGACGGTAGTACTATAATTGATAGTAATACGGAAATTAAAGTCTATAAAGTTGCATCGGGTCAA -CAATTACCTCAAAGTAATAAAATTTATGATTATAGTCAATATGAAGATGTTACCAATTCAGTAACTATTA -ATAAAAATTATGGTACTAACATGGCTAATATTAATTTTGGTGACATTGATTCTGCATATATAGTTAAAGT -TGTTAGTAAATATACACCGGGTGCTGAGGATGACTTAGCAGTTCAACAGGGTGTAAGAATGACTACAACA -AATAAATATAATTATTCATCATATGCAGGTTACACTAATACTATTTTATCAACTACTGACTCTGGTGGTG -GTGACGGTACTGTTAAACCTGAAGAAAAGTTATACAAAATTGGTGACTATGTATGGGAAGACGTTGATAA -AGACGGTGTTCAAGGTACAGATTCAAAAGAAAAGCCAATGGCAAACGTTTTAGTTACATTAACTTACCCG -GACGGTACTACAAAATCAGTAAGAACAGATGCTAACGGTCATTATGAATTCGGTGGTTTGAAAGACGGAG -AAACTTATACTGTTAAATTCGAAACGCCAGCTGGATATCTTCCAACAAAAGAAAATGGAACAACTGATGG -TGAAAAAGACTCAAATGGTAGTTCTGTAACTGTTAAAATTAATGGTAAAGATGATATGTCTTTAGACACT -GGTTTTTATAAAGAACCTAAATATAATCTTGGTGACTATGTATGGGAAGATACGAATAAAGATGGTATCC -AAGATGCTAATGAACCTGGTATCAAAGATGTTAAGGTTACATTAAAAGATAGTACTGGAAAAGTTATTGG -TACAACTACTACTGATGCCTCGGGTAAATATAAATTTACAGATTTAGATAATGGTAACTATACAGTAGAA -TTTGAAACACCAGCAGGTTACACGCCAACGGTTAAAAACACTACAGCTGAAGATAAAGATTCTAATGGTT -TAACAACAACAGGTGTTATTAAAGATGCAGATAATTGGACATTAGACAGTGGTTTCTATAAAACACCAAA -ATATAGTTTAGGTGATTATGTTTGGTACGACAGTAATAAAGACGGCAAACAAGATTCAACTGAAAAGGGT -ATTAAAGATGTGACAGTTACATTGCAAAACGAAAAAGGCGAAGTAATTGGAACAACTAAAACAGATGAAA -ATGGTAAATATCATTTCGATAATTTAGATAGCGGTAAATACAAAGTTATTTTTGAAAAGCCTGCTGGCTT -AACACAAACAGGTACAAATACAACTGAAGATGATAAAGATGCAGATGGTGGCGAAGTTGACGTAACAATT -ACGGATCATGATGATTTCACACTTGATAATGGATACTTCGAAGAAGATACATCAGACAGTGACTCAGACT -CAGATTCAGACAGCGATTCAGATTCAGACAGTGATTCAGACTCAGACAGCGACTCAGACTCAGACAGCGA -CTCAGACTCAGACAGTGATTCAGACTCAGACAGTGACTCAGACTCAGACAGTGATTCAGATTCAGACAGC -GATTCAGATTCAGATAGCGACTCAGATTCAGACAGCGATTCAGATTCAGACAGTGATTCAGACTCAGACA -GCGACTCAGATTCAGACAGTGATTCAGACTCAGACAGCGACTCAGACTCAGACAGTGACTCAGATTCAGA -TAGCGACTCAGACTCAGACAGTGACTCAGACTCAGATAGCGACTCAGATTCAGACAGTGACTCAGACTCA -GATAGCGATTCAGATTCAGATAGCGACTCAGATTCGGATAGCGACTCAGATTCAGATGCAGGAAAACATA -CACCTGTGAAACCAATGAGTGCTACTAAAGACCATCACAATAAAGCCAAAGCATTACCAGAAACAGGTAG -TGAAAATAACGGCTCAAATAACGCAACGTTATTTGGTGGATTATTCGCAGCATTAGGTTCATTATTGTTA -TTCGGTCGTCGCAAAAAACAAAACAAATAATACAATTTGACCCAGGTCCTTGTGGCCTGGTTTTTTTATG -ATTACACATGCAATAGATGTATTTTTCATATAAAATAAACAATAAAGATACGGAATAAAACTTATATGAG -GCGATAATATGAATTACATTTTAGGAACAATTTTAGAAAGTAAAATTACAGGTGTAGAAAAAGCACAAAT -AAATAGACTGAAGTTGTTCAAACAACACGGCATATCTTCAAAATGTGTATATGTTAAATGGAATCCTTAT -TCATACACATATGCGAAGCAACATCAGATTGAAAATGATCTGTTTACAATGTATGACTATTTTCAAAAAG -CAATCAATTATAAAAAGACAAAGCAAGTTAACTGGATACAGTATTGGGAAAAGTCATGTAGGTACACGTT -GAAATTTGTGGAAAATTCAAATGATGTCAGAATATATGATGAAGAGCAATTTATAATGTATGCTCATTTT -TTAGATAAACAGTATCATCAATTAAACTATGTGAATTATTTTGATCATAAAAGAAGAAAAGTAAAACGTG -AATTGTATGATGGAAGAGGCTTTTTAAGTTGTTCTCGAATTTTAGGTGAAGGACAACGGATTGTACTCGA -AAATTACTATACACCTAATGGGGAAATCGTCATCCAAAAATATTTCGACGATATAAAAGGGAAAAACACG -CTCACAAAGGTTATCTTAAATGAAGACCAGCATCAACAATTTTTTGATACAGAAGATGAATTAGTTCAAT -ATTTTCTCCATCAATTATGTAAAAATAATGATCAAATCATATTAGACCGTCCTCATGAATTAGGAAATGT -TATTGCGGGATTAAATCAAAGTATTCCAGTTATTGTTGTGCTCCACAGTACACATTTATCCGGCACCGGT -AATGATATAAAAAATTTTTATAAAACAGTGTTTAATAATTTAACACGTTATAAAGCGATTGTTGTATCAA -CAGAAAAGCAATGCCAAGATATTTCACAATATATTGAAAATAAAATACCAGTTATCAATATTCCGGTTGG -CTACGTGGCAAACTTAAAGTATCAATTTGACATCAATCAAAAGGATAAAAATCATATCATATCAATTGCT -CGCCTCGTTGAAAACAAACAAATTACACATCAAATTGAAGTGATCAAGCAATTAGTAACCAAACATCCCA -AAATTCAATTGAATATTTATGGACATGGAAATGGTTTGTCAGAATATCGACAACTTGTAGAAGGTTATCA -TTTATCGGAACATGTTAAATTTCATGGTTTTAAGACGCATATTAATGAAGAGATTGCTAAAGCAGAACTG -ATGTTATCGACAAGTAAAATGGAAGGTTTTGGCTTAGCAATTTTAGAGTCGCTTTCAGTAGGTACACCAG -TGATCAGTTATGATGTAGATTATGGGCCATCAGAACTGATTCAAGATGGATTTAATGGCTATTTAGTACC -TCCAGGTGACATCAATCAAATGGTTGAAAAGGTTGACCAATTATTAAATAATAGCCAAATGATGCAACAA -TTTTCAATTAATAGCATAGAATCTGCACAACAGTACAATGCAACTACTATCAGTACAAAGTGGCAAAAAA -TTTTAAACTAAGTCAAAAGAAAAAAGCATTTTCCTAAAATCATCTATTTAACAATCCACGTTCATAAGAA -CTGACAAGTTTGATTAAATGACATAGGAAAATGCTTTTTTTTTATAAAAATAAAGGTAAAGTACATTTAT -ATTAGACGAACAAATTGGTCCCATTGTTTAATTAACGACGCTTTACTATATTGTTGCGCTTTTGCCAAAC -TACCTTTTGACAGTCGTTGTTGTACTTCAGGATGATCAATCACATATTTTACTTTATCAAATAGGGCATC -TTCATCATTTTTAGTAATTAAATAACCATTGAAATCTGAAGTAATTAATTCACCAGGACCATATTTAATA -TCATAACTAATAACTGGAACACCATGTGCTAAAGATTCAAGTAGCGCTAACGAGAAACCTTCCATGTTAC -TCGTTATTAAACTTAAGTAAGCATCGCTGTATTCTTGGTCTAGATTGCTTAAAAAGCCACGTAAATAAAC -ATGATTTTCCAATCCGTATTTTTGTATCAATTCATTTAATTTTTTACTTTCAGAACCAAAACCATACATA -TGAAGTTCTACTTTCGGTACATAAGGGACTAAGCGTTTAACTAATTCAATTTGTTGATGTAATTGTTTTT -CAGGTGAATAACGAGCAACGGAAATTAATTTAACACTGTGCTGATCTAATGTTTGGACTGGTGTATCAAT -TGTTTCACTATAGCCGACAGGAATATTAACAACTGGAATAGTATGGTTAATACGTTTTTCAACATCTAAT -TTTTGCTGCTCAGTAGAAACGATAATGGCACGATATCGAGATAAATTTTCAAACATCGCTTTATAGACAT -TTTTAAATGGCGATGAATCTAATGCATCAATATTTTTAATGTGTGTACTGTGAAGCACAGCTACTACTGG -GATTGACTCAGGTGTTAAGTTGAAAATAGGTGCTGTATACACATTACGGTCACTGAAAAATAAATCCCCA -TGTTGATATAGTTGTTTAATGAAAAATGCGCCTAATTCCGTTTCATTATTAAAGAAATATTGTTTGTTAG -CATAGTAAACAATAATTTTTTGTACTTCTGGTTTGCCATCTTTGTAAGAAAAATACTTTTCTAATTTTGT -GTCACCTTCTGGATTATAGAAAAATTCACATAATGTTTGTTGTTTATCAACAAGAATCCTACTACAACTT -AAAAAGCCACGCACATCATAAAAATCACGTTTTACTTTTCGTCTTTGACTATCAAAATGATTCACATAAT -CTAATATACGATATTTAGGATCTTGAAAATGGGCATACATTAAGAAACGCTCTTGATCATATATTCTAAA -GTCATGACTATTTTCAACATGTTTTAAAGTATAATGACATTCATCAGTCCAATATGACAACCAGTCAAAT -GGTTCATTGCGTTCTAAATATGTTGCTTCTTGGAAGAAATCATACATATTGATATAGTCAGAGCTAGTAA -TATAATTTTGGGCATTTCTATATAAATATCTATTCCATGACAGAAATACACATTGTACTGGTCTTCCCAT -TTCTTTAAATAAATTTAAACGATTAATAATTGCTTTTTCTATCCCAGTTAAATTAACACCTAAACTATTA -CCTACAAAATAATTCATTTACAACACCACTTATATCTATTTTTTATAATTATATCACATAATATTTAATT -ACTTCTTTTAACTAGAAGATGTGTTTATTTATAAAACAACAAATTTTTATATTTATAATGGTAGTAGTTA -TTCAGTCAAATACTACCAATATATCATTGTAGAGCTTAGGATATTGATTTATGACTCAGGCACATCAAAT -GAGAAGATTTATAAAAGAGATATACAACTCTAGGAGGTATAATAAAAACGCGCAACTACTGTTACGCGTT -TGAATTAATCATATGATATTATTTGCGATACTTTAATTTAGCGAAAGCATCATGTTGATGGATAGACTCT -TCGTTACGACATTCGATATCGAAACCTTCTAACCAATCAAATTCAACTAAGTCCGCGGCAATTAAACGAA -TTAAGTCTTCGACAAAGCGTGGATTTTCATATGCACGCTCTGTCACACGTTTTTCATCAGGACGTTTTAA -AATAGGGTATAGAATTGAACTTGCATTAGCTTCCATTGCATCTAAAATTTTGTTTTTATAGTCATCAACT -ATGTCTTGATCTTTATTAATATATGTTTTAACAGTGACAACACCACGTTGGTTGTGCGCTGAATATTCAC -TTATTTCTTTTGAACAAGGGCATAGCGTTGTGACAGTTGCTTCAATAGTAAGTTCTTTACGTGTAACTTT -ATCACCGTCAATTGCTAATCCATAAGTGACATCGGCATTACCAACTGCTTTAATATTTGTGGTTGGACTA -TAGCGATCAAAGAACCATTTCCCAGAAACATCAACGCCTGCCGCATTTTGTTTCATATTCGTTTGTAAAG -TGCATAACACCTGATAAAGTGTATTAAATTCAAGTTCAATACCATTATCATAGTGCTTTTCAACACTTTC -AATAATACGGCTCATATTAATACCTTTTTCGTCTTTTGTTAAACTTGTTGAAAAACTAAATGTGCCAGCT -GTTTGATACTGGTCAACAAGTACAGGGTACACTAAGTTTTTAATACCAACTTCTTCTATTTCAAATAAGA -AATCTTTATGTGTACTTTGTAAATCTGTCATTTCGTTCTTAGTAGTAGGTTTCGTGCCTTCAATAGGATC -TACGGAACCAAAGTGTTTCCAACGACCTTCTCGTGTCGATAAATCAAATTCAGTCATTTTTTTCCTCCGT -TAAGATTTAAAGTGATATGTCCAATATGGTTCGACTGTTAAAAAGCTGTGTTGTTTACCATCGATTTCAG -GACTTGCTAATTGTTTTAAAAATGGACCTGTTTGAGAAGCATGTGCTTCAAATGCCTTAATTTTAAGTTC -TTTAAAATCTGTAATATCATTTTGGATATCAGGTTCTCCAAGTGCTTCGGTTGCATCATTACTGAACGCA -ACTAAAGTTAAACGAGGGCGTTCTTCTTTAGGTATGCGTTCAACCGTTCGAATTACAGCGTCTGCTGTTG -CTTCGTGGTCAGGATGTACTGCATATCCAGGATAAAATGAAATAATCAATGATGGATTTGTATCATCGAT -TAAAGATTTAATCATACCATCTATATGTTCATAGGGTTCAAATTCGACAGTTTTGTCACGTAAACCCATT -TTTCTTAAATCAGTAATACCAATAACTTTACAAGCTTCTTCTAGTTCACGCTCACGAATACTTGGTAATG -ATTCGCGTGTTGCAAATGGGGGATTACCTAAATTTCTGCCCATTTGTCCTAGGGTTAAACATGCATATGT -TACAGGTGTGCCTTTTTGGATATAACTTGCTAATGTGCCTGCAGATGAGAAGGTTTCATCATCAGGATGT -GGAAATATTACTAATACATGTCTTTCGTCAGTCATGTTGATGCCTCCTCTATAAATTAAATGGTCGCTCA -CTAATTTGAAGTGCTGCAGCGAGTTGACCTTCGTAATTAAAACCTGCAATTAAAAATTCATCATGCTCAT -TGATTTCAAAATGCGTTAGACCTTGTACATAAACCCAACCACCATTTGATAGTTTAAGACCAATGCGATA -AGGTTCTTTATTACCACCTTTTAGTTGTGCATGTGTATATGTTACTTGTATGTTTCTTAAAAAAGTACCA -GCATTAAAAACACGTTGATCGAAATGGTTCGCATAGGCCCCATTTGTCGTTTCAACATGCAGATACACAG -GTTTATGTTCAAAAGAAGCAAGTAAATCTATAACTTCTTGTTCTTTAATTGGTTCCAACACGTTCACTCC -TTACACTATCAATGTGTTTATCTTTCTATTTTACTAAAAACTATTCAATAATTGTATACGATTGCTCAAT -TATTTATAAATTAATTTTCATGAAGCTGAATGACTCAGGATTACGCAATCATACAGCATTAGTTTTTTAC -TTTTAAAAATCAAAAAAATTGTTGGAATTTGAAAAGTGTTAAACATTAAAAATGATGCTATATTAATGGT -GTATGAATGAATTCATAAGTTTTTAAAATGTATTAAATTTGTGGAGGCATGTAAACAATGAAAGTATTAA -ACTTAGGTTCAAAAAAACAAGCATCATTCTATGTTGCATGTGAGTTATATAAAGAGATGGCATTTAATCA -GCACTGTAAACTTGGTTTAGCAACTGGCGGCACAATGACAGATTTGTATGAGCAACTTGTTAAGTTATTA -AATAAAAATCAGTTAAACGTAGACAATGTATCCACGTTTAATTTAGACGAATATGTAGGTTTAACCGCAT -CACATCCGCAAAGTTATCACTATTATATGGATGACATGCTTTTCAAACAATACCCTTATTTTAATAGAAA -GAACATTCATATTCCGAATGGAGATGCCTATGATATGAATGCGGAAGCGTCAACATATAATGACGTTTTA -GAACAACAAGGTCAACGTGATATTCAAATTTTAGGTATTGGTGAAAATGGTCATATTGGATTTAATGAAC -CTGGTACGCCGTTTGATAGCGTTACTCATATCGTTGATTTGACTGAAAGTACTATTAAGGCTAATAGTCG -ATATTTTGAAAACGAAGATGATGTTCCAAAGCAAGCCATTTCGATGGGACTTGCTAATATTCTTCAAGCT -AAACGTATCATTTTACTCGCATTTGGTGAAAAGAAACGTGCTGCTATTACACATTTATTAAATCAGGAAA -TTTCTGTTGATGTTCCAGCCACATTACTTCACAAACACCCGAATGTTGAGATATATTTAGACGACGAAGC -TTGCCCGAAAAACGTTGCGAAAATTCATGTCGATGAAATGGATTGATTGCAATGTTTAATTAAGAAATGC -CTCGGGAAAGGTTCCAATAGAAAGATAAAAAGCATTGGAAGGATGATTTTTAGTGGAATTACAATTAGCA -ATTGATTTATTAAACAAAGAAGACGCGGCTGAGTTAGCAAATAAAGTAAAAGATTATGTAGATATCGTAG -AAATCGGTACGCCAATCATTTACAACGAAGGTTTACCAGCAGTTAAACATATGGCAGACAACATTAGTAA -TGTAAAAGTATTAGCAGACATGAAAATTATGGATGCAGCTGATTATGAAGTTAGCCAAGCAATTAAATTT -GGCGCGGATGTAATTACAATACTAGGTGTTGCAGAAGATGCATCAATTAAAGCAGCTATTGAAGAAGCTC -ATAAAAATAATAAACAATTACTAGTTGATATGATTGCTGTTCAAGATTTAGAAAAACGTGCAAAAGAACT -AGATGAAATGGGTGCTGATTATATTGCAGTACACACTGGTTATGATTTACAAGCAGAAGGGCAATCACCA -TTAGAAAGTTTAAGAACCGTTAAATCTGTTATTAAAAATTCTAAAGTTGCAGTAGCAGGTGGAATTAAAC -CAGATACAATTAAAGAAATTGTCGCTGAAAGTCCTGATCTTGTTATTGTTGGTGGCGGAATCGCAAATGC -AGATGATCCAGTAGAAGCTGCAAAACAATGTCGCGCTGCAATCGAAGGTAAGTAATATGGCTAAATTTAG -TGACTATCAATTAATTCTAGATGAATTAAAGATGACTTTGTCACATGTTGAAGCGGATGAGTTTTCAACG -TTTGCGTCCAAAATACTACATGCTGAACATATATTTGTAGCTGGCAAAGGACGTTCAGGATTCGTGGCGA -ATAGTTTTGCAATGCGCTTAAATCAGCTCGGCAAACAGGCACATGTTGTTGGAGAATCAACGACACCTGC -GATTAAGTCGAATGATGTATTTGTAATTATCTCTGGTTCAGGTTCCACGGAACATTTAAGATTATTAGCA -GATAAAGCAAAATCAGTAGGTGCTGACATCGTATTAATTACTACAAATAAAGATTCTGCAATAGGCAATC -TAGCTGGGACGAACATCGTTTTGCCTGCAGGTACAAAATATGATGAACATGGTTCTGCACAACCGTTAGG -AAGTTTGTTTGAACAAGCATCTCAACTATTTTTAGATAGCGTTGTAATGGGATTGATGACTGAAATGAAT -GTTTCAGAACAAACGATGCAACAAAATCATGCTAATTTAGAATAAAACAAAGATAGTCGATAATATGATG -CCTAGGCAGAAATATTATCGATTATTTTTTTATTTAAATAATAAATTATAGTATAATATCAATAATAAAC -GAATAGGGGTGTTAATATTGAAGTTTGAAAATTATATTTTTGATTTTGATGGTACGTTGGCAGACACGAA -AAAATGTGGTGAAGTAGCAACACAAAGTGCATTTAAAGCATGTGGTTTAACAGAACCATCAGCTCAAGAC -ATATCGCATTATATGGGAATACCTATTGAAGAATCATTTTTAAAATTAGCAGACCGACCATTAGATGAAG -CAACATTAGCAAAGTTAATCGATACATTTAGACATACATATCAATCTATTGAAAAGGACTATATTTATGA -ATTTGCGGGTATAACTGAAGCCATTACAAGTTTGTATAACCAAGGGAAAAAACTTTTCGTGGTGTCTAGT -AAGAAGAGTGATGTATTAGAAAGAAATTTATCGGCTATAGGGTTAAATCATTTAATCACTGAAGCTGTTG -GATCCGATCAAGTAAGTGCATATAAACCAAATCCTGAAGGCATACACACAATTGTGCAACGCTACAATTT -AAATAGCCAACAAACGGTTTATATTGGTGATTCAACATTTGATGTTGAGATGGCGCAACATGCTGGTGTA -CCATCTGCAGCAGTAACATGGGGAGCACATGATGCAAGGTCATTACTTCATTCAAATCCAGATTTTATAA -TCAATGATCCATCAGAAATTAATACCGTATTATAAAATTTGTTAAAACAGAGAATACCATGGTTAAAATC -CATATTTATAAATATTAGATTATACATAGAAATATTTCGCTTTAGATTAGGAATTTAAAATAAATATTTA -TTAATAATCGTGTATGTTTAAATAGAAAAGTCTGCGTAATTAATTATTTGATATTAATACAAATAACTCC -GACTGATGACATATTACTTGCAGTCAATTGAATATCTTACTTTAAATACGATGTCGAAAATGGCGATAGC -ATATGACTTATATGAAGTTGTATGCTATCGCTATTTTTAGTTATAATTCCAAAAAGTTAATCGTTCGATG -ATTTAAGAATTATTATTGTTTAATTCAAATGTACGAGGGTATAAAATCATTGAATTTAATTCGATAAAGT -GAAATTTTTGAACAAACATACTTTTGTATTTATATAAAAGTTTAAATTCTTATAAATTTGACAAAACTAA -TTAACTCCGTATAATTATGAAACATACAAGAGGGAGTGTATGAATTCATGGATTTTAATAAAGAGAATAT -TAACATGGTGGATGCAAAGAAAGCTAAAAAGACTGTTGTTGCAACCGGTATCGGTAATGCAATGGAATGG -TTCGATTTTGGTGTCTATGCATATACAACTGCGTACATTGGAGCGAACTTCTTCTCTCCAGTAGAGAGTG -CAGACATTCGACAAATGTTGACTTTCGCAGCATTAGCCATTGCGTTTTTATTAAGACCAATTGGTGGTGT -TGTATTTGGTATTATTGGTGACAAATATGGACGTAAAGTTGTATTAACATCAACAATTATTTTAATGGCA -TTTTCAACATTAACCATTGGATTATTACCAAGTTATGATCAAATTGGACTTTGGGCACCAATACTATTAT -TACTTGCACGAGTACTACAAGGATTTTCAACAGGTGGAGAGTATGCGGGGGCAATGACATATGTAGCCGA -ATCATCTCCAGATAAGCGTCGTAACTCATTAGGTAGTGGATTAGAAATAGGGACATTATCAGGTTATATA -GCTGCGTCAATTATGATTGCCTTACTCACTTTCTTCTTAACTGATGAACAAATGGCATCATTTGGTTGGA -GAATCCCATTCTTACTTGGTTTATTCCTAGGATTATTCGGCTTATATTTACGTCGTAAGCTTGAAGAATC -ACCAGTTTTCGAAAATGATGTTGCAACACAACCAGAACGAGACAACATTAACTTTTTACAAATCATCAGA -TTTTATTACAAAGATATATTTGTGTGTTTTGTAGCTGTTGTATTCTTCAATGTTACGAACTATATGGTAA -CCGCATACTTACCAACTTACTTAGAACAAGTTATTAAACTAGATGCAACGACAACTAGTGTATTAATTAC -TTGTGTCATGGCAATAATGATTCCATTAGCATTAATGTTTGGTAAGTTAGCGGATAAAATAGGTGAAAAG -AAAGTATTTCTAATCGGTACTGGCGGGTTAACATTATTTAGTATCATCGCATTTATGTTATTACATTCAC -AATCATTTGTTGTGATAGTCATCGGTATATTTGGATTAGGATTCTTCTTATCAACATACGAAGCGACAAT -GCCAGGGTCTTTACCAACAATGTTTTACAGTCATATAAGATATCGAACTTTATCGGTAACCTTTAATATC -TCTGTTTCAATATTTGGTGGTACGACGCCATTAGTTGCAACATGGTTAGTCGCGAAAACTGGTGATCCAT -TAGCACCTGCGTATTATTTAACAGCAATCAGTGTTATTGGGTTTTTAGTGATCACATTCTTACATTTGAG -CACAGCAGGAAAATCTCTCAAAGGTTCATATCCAAATGTAGATAACGAGCAAGATAGAGCTTATTATGTA -GAACACCCAAAAGAAGCATTATGGTGGGTGAAAGAACGTAAAGATTAGAGATTTCAGTAAATAAGTAATA -ATCAATCGTATAAAAGCACTTTAAAGCTAGTAAACGCTACTAACTTTAAAGTGCTTTTTAAATTAGGGAA -TGTAATTAGCCGAAATAAAGTTTTTGTATATACATAAACCCCCACTGCAATGATTATCGCAATGGGGGAA -AGAGGGGACTTAAAGCATATGTTTAGCTTTGAATACTTAAAATTCTCTTGCTATTGAAATGTTAGGATGT -AAATATGTCTTAGAGTATTTTGTCCAACGCAATTAATATTGAGACTCTAACCTTCAATATTATTATAGAG -AACACAAACTTAAATAGATTGGGTGACTTATTTGTGTCAGTTATTGCGATTGCGATAACTTCTTTTCTCT -ATATACATATAGTATCGTCTTATCTAATAAAAAACATGGTACTACAGTATCAAATTTATCTAGGGCTTAA -GTTTGATTTTTATAATAGGCAGGTTTACCTGATAAAAATACTTATTCATTATATAATGTTAACAAGATGT -ATTATAAAGTTTACATTGAGTGAGGGATATTGATGGACGTAATTTTAGAACAGTTGGAAACACATACTCA -AAATAAGCCTAATGACATAGCATTACATATAGATGATGAAACAATTACATATAGTCAACTAAATGCCCGC -ATCACTAGCGCAGTTGAATCTTTGCAGAAATATTCACTTAACCCTGTTGTTGCTATTAATATGAAATCAC -CGGTTCAAAGTATTATTTGTTATTTAGCTTTGCATCGTTTACATAAAGTGCCTATGATGATGGAAGGTAA -ATGGCAAAGTACTATACATCGTCAATTGATTGAAAAATATGGTATTAAAGATGTAATTGGAGATACATGT -CTCATGCAGAATATAGACTCACCTATGTTTATTGATTCAACGCAATTACAGCACTACCCCAATTTATTAC -ATATTGGTTTTACTTCAGGGACAACTGGACTGCCAAAAGCATATTATCGTGATGAAGATTCATGGTTGGC -TTCTTTTGAAGTTAATGAAATGTTGATGTTAAAAAATGAAAATGCAATAGCAGCCCCCGGACCACTATCG -CACTCGTTAACATTATATGCGTTATTGTTTGCTTTAAGTTCCGGTCGTACTTTTATAGGACAGACCACTT -TTCATCCTGAAAGGTTACTTAATCAATGTCGTAAAATATCATCATACAAAGTTGCTATGTTTCTTGTTCC -AACGATGATTAAATCATTATTGTTAGTTTATAACAATGAACATACAATCCAATCATTTTTTAGCAGTGGG -GATAAGCTGTATTCTTCTATTTTTAAAAAGATAAAAAATCAAGCAAATGACATAAATTTGATTGAATTTT -TTGGTACATCGGAAACCAGTTTTATCAGCTATAACTTGAATCAGCAAGCACCAGTTGAATCTGTAGGTGT -GCTATTTCCAAATGTGGAATTGAAAACAACGAATCACGATCACAATGGTATAGGAACTATTTGTGTAAAA -AGTAATATGATGTTTAGTGGCTATGTAAGCGAACAATGTATAAATAATGATGAATGGTTTGTTACTAATG -ATAATGGCTATGTAAAAGAGCAGTATTTATATTTAACGGGACGACAACATGATATGTTAATTATTGGTGG -TCAAAATATATATCCAGCACATGTTGAACGCCTTTTAACGCAATCGTCGAGCATTGATGAAGCAATTATC -ATCGGTATTCCAAATGAGCGTTTTGGTCAAATAGGTGTATTGCTTTATTCTGGTGATGTGACACTTACAC -ATAAAAATGTAAAACAATTTTTAAATAAGAAAGTGAAACGCTATGAAATTCCATCGATGATTCATCATGT -AGAAAAGATGTATTACACTGCAAGTGGTAAAATTGCTAGAGAAAAAATGATGTCGATGTATTTGAGAGGT -GAATTATAATATGAATCAAGCAGTCATAGTTGCAGCTAAACGAACTGCATTTGGGAAATATGGTGGCACT -TTAAAACATTTAGAGCCAGAACAATTGCTCAAACCTTTATTCCAACATTTTAAAGAGAAGTATCCAGAGG -TAATATCTAAAATAGATGATGTAGTTTTAGGTAATGTTGTTGGGAATGGTGGCAATATTGCAAGAAAAGC -ATTGCTTGAAGCGGGGCTCAAAGATTCAATACCTGGCGTCACAATCGATCGGCAATGTGGGTCTGGACTT -GAAAGTGTTCAATATGCATGTCGCATGATTCAAGCCGGAGCTGGCAAGGTATATATTGCAGGCGGTGTTG -AAAGTACAAGTCGAGCACCTTGGAAAATCAAACGACCGCATTCTGTGTACGAAACCGCATTACCTGAGTT -TTATGAGCGTGCATCATTTGCACCTGAAATGAGCGACCCATCAATGATTCAAGGTGCTGAAAATGTAGCC -AAGATGTATGGTGTTTCAAGAGAATTACAAGATGAATTTGCTTACCGAAGTCATCAACTGACAGCGGAAA -ATGTAAAGAATGGAAATATTTCTCAGGAAATATTACCTATAACCGTTAAAGGAGAACTATTCAACACTGA -TGAAAGTCTAAAATCACATATTCCGAAAGATAACTTTGGCCGATTTAAGCCCGTAATCAAAGGTGGGACC -GTTACCGCTGCGAATAGTTGTATGAAAAATGATGGTGCAGTTCTATTGCTTATTATGGAAAAAGATATGG -CATACGAATTAGGTTTCGATCATGGTTTATTATTTAAAGATGGTGTTACGGTAGGTGTTGATTCTAATTT -ACCTGGCATTGGTCCAGTACCAGCCATTTCCAACTTACTAAAAAGAAATCAATTAACGATAGAAAATATT -GAAGTCATTGAAATTAACGAAGCGTTCAGTGCACAGGTGGTTGCCTGCCAACAAGCTTTAAATATTTCGA -ATACGCAATTAAATATATGGGGTGGTGCATTAGCATCAGGTCATCCATACGGTGCAAGCGGTGCCCAATT -AGTGACGCGATTATTTTATATGTTTGACAAAGAGAGTATGATTGCATCTATGGGGATTGGGGGAGGTCTA -GGAAATGCAGCATTATTTACTCGATTCTAACCAGCGATTAAATGTGTCATTTTCTAAGGATAGTGTGGCT -GCATATTATCATTGTTTTAACCAACCTTATAGTAAAGAAGTACCACCATTAATGTGTGCGTCATTATGGT -CAAAATTTGATTTATTTAAAAAATATGCAAATAGCGAACTGATTTTAACAAAATCAGTAATTAATCAAAC -TCAAAAGATAAAAGTAGACACAATATATGTAGGACATTTAGAAGATATTGAATGCCGACAGATTCGCAAT -ATCACACGTTATACAATGGCTTTAACATTAACTAAAAATGATCAACATGTCATAACGGTTACACAAACTT -TTATTAAGGCGATGAAGTAGAGATGAAGTTTAATGAGATATGGATAAATGAATATTTGGCGCTCGTAAAT -GATGATAATCCAATACATAATGAGATTGTGCCAGGACAATTAGTGAGTCAAATGATGTTGATGGCTATGT -CATTAGAGGCGAACCAGTGTCAAATTAACTATGTTAAACCTATTTTAATAAATGAAAATATCAAATTCAT -TGAAGAACACGAGCAAGAAATTATAGCAATTAATGACGATGGAGAGATTAAAATAAAGATTTCTTTGAGC -ACAAAAAAATAACCGATATTAGCTGCATGAACGCATATTAATTAGGAGATGAAAGGACAGCTAATATCAG -TTATGTATTGTTATTATTATTGGGAACAGAGATAAATATAGGTTACGTTTCTTTCTTTGCACGGGGATGC -ATTAATCTAAAATAATAATAACAACTATATCAATGTTTAATAAATTCTGGATTATTGGAACGATTAGTCA -ATTTAACTAACTTTCATATGATCTATATCGTCTTGTAATAAAGAGAGCAATTTGAATATTTCAGTATCAC -TAAATGAATCGTCACATTTAATTGAAACATGCTGAAACGTTTTGGTTATAATTTCATAAACTGGTGCGCC -TTCATGTTGATACTGTCGATAAATAATCATAACCTATATTACCTCCTTTGCTACTCTATGGTTATATTAT -AAATAACATTTTTATGTGTGACATCAACCTTAAGTATCAACTTTTTATCAGACATAGAACGTATAATTTA -CTAAGACTATTTATGTATCATGTTTTAAAAGGAATATATTTTTATAAAGTCGTTGAGAAGTTATTTTTAA -TTTCAAAAAATGGCAGAATTAGTAGAGCGGGATAAAACATTATGTTTAAACAAGGGCATAATAAAGTTCC -GAAAGGATTTGTTTTTTTAGGATAACTGATTCGTGACACTGTAAATGAATATTATATACATATGTTGAAA -TAAAACTATCTATAACGATTTCTTACAAAACTTATTTGCACAATTTAACTGTGAAAATCAAACAAGTATT -TAATAACTAAAATAACCACACCGAAAGTGACTTTATTGTGTACTGAGCCCCAAAGTTAGACTCAAAAAGC -TAACTTTACAGGCGCACAGCAATGACAATCAAATCATAAGGTGTGGTTAATCTATTTTTTATGAACGAAG -CATTAAACCTCTGTTACTTCAACATCGATATGTTCAATACGGTTGTATGCACCGTGATCCACAGGACCAA -CAAAATCATTCATTTTCCAACCGTTTTTAATAGCAGAAGCGACGAAAGCTTTCGCGCTAATCACAGCTTC -TTTCGGTGACTTACCGTTAGCTAAATATGCAGTTGTTGCCGCAGCAAATGTACAACCAGCACCATGGTTA -TAACTTTGTTGGAACATGTCTGTAGTTAGTTGATAAAATGTTTGACCATCATAGTATAAGTCATACGATT -TATCTTGATCTAAAGCTTTGCCACCTTTAATGATGACATGCTGTGCGCCTTTATCAAAGATAATTGTTGC -AGCCTTTTTCATATCTTCAATTGAATTTAATTTACCTAATCCTGATAATTGACCCGCTTCAAATAAGTTT -GGCGTCACTACCGTTGCTTTAGGTAGTAAATATTTAATCATCGCCTCAGTATTTCCAGGGTTAAGCACTT -CATCTTCGCCTTTACAAACCATGACAGGATCTACTACAAAATATTGTGCATTAGATGCCTCATATACTTC -TCCAGCACGTTTGATTATCTCCTCAGTACCTAACATACCTGTTTTAATAGCATCAGGTCCGATTGATAAA -GCCGTTTCAAGTTGCTTTTCAAATACGTCCATAGGTAATGGTGTGACATCGTGTGACCATGTATCTTTAT -CCATAGTAACGATGGCAGTTAAAGCGACCATGCCATACGTATCTAATTCTTGGAACGTTTTCAAATCTGC -TTGCATACCTGCGCCAGCACTTGTGTCAGAACCGGCAATTGTTAAAACTTTCTTTAAAGCCATTGAGCTT -CACTCCTACATAATAATATTGTATTCATCATATCATTTTTAACCTAATTGAAAAATATTAAGCATTCAAT -ATTTGATGATTGTTGAAATGAATCATTCATACTATTGTAACTTTTGAAAATGTCATTCACTTTAGATAAG -TGTGATATGTTAAAATATGTCCTGAGGTGAGATTGAATGGAATGGTCGCAAATTTTTCATGACATAACAA -CGAAACATGACTTTAAAGCTATGCATGATTTTTTAGAAAAAGAATATTCGACTGCAATCGTATACCCTGA -TAGGGAAAATATTTATCAAGCGTTTGATTTAACACCGTTTGAAAATATCAAAGTTGTTATATTAGGACAA -GACCCGTATCATGGTCCGAACCAAGCACATGGATTAGCATTTTCAGTGCAACCTAACGCAAAATTCCCTC -CATCTTTACGTAATATGTATAAAGAATTAGCAGATGATATTGGATGTGTTAGACAAACACCACATTTACA -AGATTGGGCAAGAGAAGGTGTCTTGTTATTGAATACAGTTTTAACCGTAAGACAGGGTGAAGCAAATTCT -CATCGTGATATTGGTTGGGAAACATTTACTGATGAAATTATTAAAGCAGTGTCTGATTATAAAGAACATG -TTGTCTTTATTTTGTGGGGGAAACCTGCACAGCAAAAAATAAAGCTTATCGATACATCTAAACATTGTAT -TATAAAATCAGTGCATCCTAGTCCACTGTCTGCATATAGAGGATTCTTTGGATCAAAACCGTATTCCAAA -GCGAATACCTATTTAGAGTCAGTAGGAAAATCACCAATTAATTGGTGTGAAAGTGAGGCGTAGATGGTGA -ATAGAGAAACTTTAATAGCACGAATTGAGCAAGAATTAGTACAAGCAGAGCAGGCGCAGCATGACCATGA -CTTTGAAAAACATATGTATGCCATACATATATTAACATCTTTATATGCTCCAACATCAAATACACCACAT -ATTGGTGAACAACAAATGAATCATCGTATTGCTAACCATAATCAAATGCCACATTCACAAATTACGCAGT -CAACACATCAAGTGACAGCTGCTGAAATTGAAGCGATGGGTGGTAAAGTAAATACGCATTCAGCACATCA -TCATAATAAGTCATATTCACAACCTTCAAACCAACAACAAAGATTAGCGACAGATGATGACATTGGCAAT -GGTGAATCCATATTTGATTTTTAAAAAGCAACAATGAAACATAATTACTTAATAGCTTGTTAAGTATGTA -GGTTAATAATCAAGATGCATATACTTTTATTCGAGTGTTCGGATTTAAACATTTATTAATACTGAATTAT -ATAAGGAGAGGTAGCAATGAAATTATTTATTATTTTAGGTGCATTAAACGCGATGATGGCTGTCGGAACA -GGTGCATTTGGTGCACATGGTTTACAAGGAAAAATAAGTGATCACTATTTATCAGTATGGGAAAAAGCAA -CGACGTATCAAATGTACCATGGCTTAGCATTATTAATTATAGGTGTAATTAGTGGTACAACTTCAATCAA -TGTTAACTGGGCTGGCTGGTTAATATTTGCTGGTATTATTTTCTTTAGTGGATCATTATATATTTTAGTA -TTAACTCAAATTAAAGTTTTAGGTGCGATTACGCCAATTGGTGGCGTATTGTTCATCATTGGATGGATAA -TGTTAATCATTGCGACATTCAAATTTGCTGGTTAAATTTTAAAACTTTAGATTACCTATGTAACTAAACA -TTAAATTTTTAATAAAAATAATCAAGAAAAAGAGTTACAAACTCATCTTTTGGGTATAGAATACCTTCGA -GGTGAGTTTTTATTTATGGAAAAAAAGAATAAGCAAATAGATAGAGGCGATTTAAAACAAAACCTATCTG -AAAAGTTTGTATGGGCGATTGCATATGGTTCATGTATCGGATGGGGCGCATTCATCTTACCAGGAGACTG -GATTAAGCAGTCAGGTCCGATTGCAGCATCAATTGGTATTGTTATTGGTGCATTATTAATGATATTAATT -GCGGTTAGTTATGGCGCATTAGTAGAGAGATTTCCAGTATCAGGGGGCGCGTTTGCCTTTAGTTTCTTAA -GTTTCGGCAGATATGTGAGTTTCTTCTCATCATGGTTTTTAACTTTTGGTTATGTCTGTGTTGTTGCTTT -AAATGCGACAGCATTCAGTTTACTAGTTAAATTCTTATTGCCAGATGTCTTAAATAATGGGAAACTATAC -ACCATTGCGGGCTGGGACGTTTATATTACGGAAATCATTATTGCGACCGTATTACTACTTGTATTCATGC -TAGTAACGATTCGTGGCGCAAGTGTATCTGGATCATTACAATATTATTTCTGTGTGGCGATGGTAATCGT -CGTATTATTGATGTTCTTTGGTTCATTCTTTGGTAATAATTTTGCACTTGAAAATTTACAACCGTTAGCT -GAACCTAGCAAAGGATGGTTAGTGTCTATTGTGGTTATTGTATCCGTGGCACCATGGGCATATGTTGGAT -TTGATAATATTCCACAAACAGCAGAAGAGTTTAACTTTGCACCAAACAAGACATTTAAGCTTATCGTGTA -CAGTTTATTAGCAGCATCATTAACTTATGTTGTCATGATTTTATACACTGGTTGGTTATTAACAAGTCAT -CAAAGTTTAAATGGACAATTGTGGTTAACAGGTGCTGTTACACAAACAGCATTTGGTTATATTGGATTAG -GTGTATTAGCAATTGCAATTATGATGGGTATATTTACTGGTTTAAATGGATTCTTGATGAGTTCAAGTCG -CTTGTTATTTTCTATGGGACGTTCAGGTATAATGCCAACAATGTTTAGTAAATTACATAGTAAATACAAA -ACACCATATGTCGCAATCATATTCTTAGTAAGTGTGTCTTTAATTGCACCTTGGCTAGGAAGAACGGCAT -TGACTTGGATCGTAGATATGTCATCTACAGGTGTATCCATTGCCTACTTTATTACATGTTTGTCTGCTGC -GAAATTATTCAGTTATAACAAACAAAGTAATACGTATGCACCGGTTTACAAAACGTTTGCTATTATTGGC -TCATTTGTATCATTCATTTTCTTAGCGTTGTTATTAGTGCCAGGTTCTCCTGCAGCACTGACTGCACCAT -CTTATATTGCATTACTTGGATGGTTAATCATCGGTTTAATATTCTTTGTGATTCGATATCCTAAATTGAA -AAATATGGATAATGATGAATTAAGTCGCTTGATTTTAAATAGAAGTGAAAATGAAGTTGATGATATGATT -GAAGAACCTGAAAAAGAAAAAACTAAATAATAAAAGAATCGCACAATATACCTTCTTAATTTGAAGGCGT -ATCGTGCGATTTTTTGTATCATAAATTGACATTTAAGACGAGGCAGTTGAACCTTATATAAAATTGCCAA -GAGTTAAGGCTGAGGCATTTCTAACAAATATTTATAATCGTTTAAAAGATTTCACGAATCCAGAAACAAT -TAATTTGGAAATTTGGTCGGCGAATAATAAACCTAATGCGATAGCTCCTGCAATAAGTGTAACCTCTAGC -ATGGTATTGATTGCTGTACTGAAATTTAATAATACTAAATTTTTCGTTGCATCGTAAGCTAATCCACCTG -GCACTAACGGGATGATACCTGTCACCATAAAAATGATTGCAGGTTCTTTTTGTTTACGAGCCATATAGTG -ACTTAATAAACCTAGGGCAAGACTGCCGAAGAAACTAGAGTATATAGTGTGCACATTAAAGCCGTTGAAG -AATAAGGTGTAAACCATCCATCCACACGTACCAACGAAACCACATGATAAATATAATTTTCTAGGTGCAT -CAAAAATGACGCAGAAGAACATTGAAGCTAAAAAGCTAAAGATAAAGTTTAATATCCAAAACATAGTCTG -ATACTCCTATACTAAAATTAATACGCTACCAACGCCAGCACCGATGCCAAACGCAGTAACCAATGCTTCT -AATGATTTCGTTGTGAACATCAACATGTGCCCACCAAATAAATCTTGTATTGCGTTTGTTATTAATACAC -CAGGAACAATAGGCATGACTGCCGCAATGATAATACTTGCCAAGTCACCTGTTGGAATAAGTGTATGTCC -AATAACGGCGATAATCCCAATAACTAATGAACCAATGAATTCTGGGATAAACTGTGCGTGTAACTTACGA -TCTAAAATCTTAGTGACTAGGTATCCTAGACTACCTGCTAATATCGCAGTTAAAACATCAATCAATCTAC -CACCTTGTAAATATAAGAAACTCATTGCAATCATTGCTGCAGCAAAACCTTTAAAGGGAAGACTGCTGTC -ACGCTTGGCAACATATATTTTTTCAAGTTGTGTTTTTGCCTCGGCTAAAGAAATTTCATTATTTGTAATT -TGACGCGAAATTTTATTAGCTTGAGAAATTTTTATTAAGTTTGTATCTCGAGAGGTAATTCTAAATATTC -TAGGAAACGATTCCGAATGTAACGTAAACTGGATGACAGTGTTTGTAACAAAGCTGTTACTTTCACTGTA -ACCAAGTTTTTTTGCAATACGTGTCATGGTATCTTCTACACGCGTACCTTCTGCACCAGATTCTAATAGT -ATGCGAGCAGCAAGCATGACAACATCTTTGATAAGTACCTCTTGTTTGTATTCTTCTGAATTTATGTCCA -TTTCATCACCATTGTTTATAAGAATTTAATACTCATTATAGTTTATACACTATAAAATAACCACATGAGC -TTTTTGATAAGTTGTTATTGATTTTAAAAAACTAATATTTGATACTATTGTAATAATAATCATCGGAATT -TTTAGTAGTTAAAATTCTCTTGAAGTATAAAAAGGAAAGAATATTGAAAAAAATTCGACAAAAATATGTT -TCAAATATTTCAAATAGGTTAAAATAATATTAGTTAACCATTACAAAAATTGTATAGAGTAGCGACTGTA -TAATTTCTATTGAGGTTAACGTTTATATGTAGTGATAGTAGTTAAAGTTCTCCCAAGGAAGACTACTCGG -GTACACTTTGCTATGAGCAAAGTGTACTTTGTTATTGATATTACATTAGCACATATATATAAGTTTAAAC -ATACAGATTTCAACTATTTACCAAATCACGTCTTATGTATACGGGAATATACTGAAGATAAACGAAAAAT -TCCAAGCTTAAACCGATAAGCTTGGAATTTTTTATTAATTTATAAACGTACCAATGTATTAAGAAATCGC -AAAGAATTGATTGAATTCGTTTGTGTTAATAATATGTCCTACAAAGAAACTACCGAATTCACCGTATCGT -GCTGTTGTTTCATCAAAGCGCATTTCGTATACAATTTTTTTGAATTGTAATACGTCGTCTGAGAACAATG -TTACGCCCCATTCGAAATCATCAAAACCTACAGAACCAGTAATAAATTGTTTGATTTTGCCAGCATATTT -TCTACCAATCATACCATGGTCATACATTAATTTTTGGCGTTCTTCCATAGTTAACATGTACCAGTTATAA -GTTTCATTACGACGTTTGTTCATTGGATAGAAACAAATATAATCAGAATGTGGTAATTCTGGGTATAATC -TTGCTTTGATATGAGGGTTCTCATAAGGATCTTCATCAGATTTACCAGCTAAATAATTGCTCAATTCAAT -GACTGATACATATGAATATGTAGGGATTAAGAAGTCAGCAATGCGCAATTTGTTAAATTCATTTTCAATA -TGATTTAAAGACTTCATTTCAGGACGTAAGAACCATAATAACAAATCTGCTTTTTGACCAGTTATATTAT -AAATAGCTTGATCACCAGATTTTGATGATCTTACAGTTGCTGTATTTTCTAAAAATGATTGAAATTCAGT -GACAAGTGCATCGCGTTCGTCCTTTGGAACTAGACGTAATGATGCCCAATCAACTGCATAAAATAAATGT -AGACTATACCAACCATCTAATGTTTCGGCTGCTTGACTCATGTTTATCGCTCCTTTTCAAAAATCATCAG -TTCTTTATAAATTTTATCATAAAGCAAAGGGGTAACGATAAAATTATGATTACAAATTGGTGACGTGGCA -TTATGAAATAAAATGGCGTATAATTATACCGTGAATGATTAATAAGATTTATATTACAGGAGGACATTAT -GGCTGATTTATTAAATGTATTAAAAGACAAACTTTCTGGTAAAAACGTTAAAATCGTATTACCTGAAGGA -GAGGACGAGCGTGTTCTAACAGCTGCAACACAATTACAAGCAACAGATTATGTTACACCAATCGTGTTAG -GTGATGAGACTAAGGTTCAATCTTTAGCGCAAAAACTTAATCTTGATATTTCTAATATTGAATTAATTAA -TCCTGCGACAAGTGAATTGAAAGCTGAATTAGTTCAATCATTTGTTGAACGACGTAAAGGTAAAACGACT -GAAGAACAAGCACAAGAATTATTAAACAATGTGAACTACTTCGGTACAATGCTTGTTTATGCTGGTAAAG -CAGATGGTTTAGTTAGTGGTGCAGCACATTCAACAGGCGACACTGTGCGTCCAGCTTTACAAATCATCAA -AACGAAACCAGGTGTATCAAGAACATCAGGTATCTTCTTTATGATTAAAGGTGATGAACAGTACATCTTT -GGTGATTGTGCAATCAATCCAGAACTTGATTCACAAGGACTTGCAGAAATTGCAGTAGAAAGTGCAAAAT -CAGCATTAAGCTTTGGCATGGATCCAAAAGTTGCAATGTTAAGCTTTTCAACAAAAGGGTCTGCTAAATC -AGACGATGTGACAAAAGTTCAAGAAGCTGTCAAATTAGCACAACAAAAAGCTGAAGAAGAAAAATTAGAA -GCAATCATTGATGGCGAATTCCAATTTGATGCTGCGATTGTACCAGGTGTTGCTGAGAAAAAAGCGCCAG -GTGCTAAATTACAAGGTGATGCAAATGTCTTTGTATTCCCAAGTTTAGAAGCTGGTAATATTGGTTACAA -AATTGCACAACGTTTAGGTGGATATGATGCAGTTGGTCCAGTATTACAAGGTTTAAATTCTCCAGTAAAT -GACTTATCACGTGGCTGCTCAATTGAAGATGTATACAATCTTTCATTCATCACAGCAGCGCAAGCCTTAC -AATAACGATGGATTTAGCGAGTAAATATTTTAATGGCGTCAACTGGCGATATATCGATCATTCTTCTGGA -TTAGAGCCTATGCAATCTTTCGCATTCGATGATACATTTTGTGAAAGTGTGGGCAAAGATATATCAGATA -ATGTTGTGCGTACTTGGATTCATCAACATACTGTTATTCTTGGTATTCATGATTCAAGATTGCCGTTTTT -AAAAGATGGCATTGATTATTTAACGAATGAGATTGGTTATAATGCCATTGTTAGAAATTCTGGCGGCCTA -GGTGTCGTTCTAGATCAAGGTGTATTAAATATATCGCTGATGTTCAAAGGACAAACAGAAACAACGATTG -ATGAAGCGTTTACTGTGATGTATCTCTTAATTAGCAAAATGTTCGAAGATGAGAATTTTGATATTGATAC -GATGGAAATTGAACATTCTTATTGCCCAGGAAAATTTGACTTAAGTATCGATGGTAAGAAATTTGCAGGC -ATATCGCAACGAAGAGTTAGAGGCGGTATTGCTGTACAAATTTATCTTTGTGTTGAAGGCTCTGGTTCAG -AACGTGCATTGATGATGCAAACATTTTATGAACATGCTTTAAAAGGTGAAGTGACTAAATTTAAATACCC -TGAAATTGAACCATCTTGTATGGCCTCACTAGAGACATTACTTAACAAAACGATTACTGTTCAAGATGTA -ATGTTTTTACTATTATATGCAATCAAAGATCTTGGCGGTGTATTAAATATGACGCCAATTACTCAAGAAG -AATGGCAAAGATACGATACGTATTTTGATAAAATGATTGAAAGAAACAAGAAAATGATAGACCAAATGCA -ATAGTTAAATATTTAACAGCCCCTTTCAAGTTATCGTTTGGGGCTGTTATTTTTGAAAGTATCCATAAAT -AGCATAAATATGTTATTGACCTAATATTTAAATTGAACATCATTAAATTAAAAGTAATGATATGATTGAA -ATAATAAATTTAATAAGGAAATTTCATGTTTTACGTATTAAATAGATTGAGAATAGGGTATATATAATGC -GTATGACTATGAAAGAAACGACCTTCTATTGAAATGTTCTAATACTTTAGTAGTAAATCTATATATTCCA -ATTATTATTTGTAGTATTATAGTTAGGGTGGAAAATTATAAATTGTAGGGCTATTTTATAAAAAGATAAA -GAATCTGAAATATCACTCGATAAGATTTAAACTTTGAAGTAAACGAAAGTTAGTTTTATACTAATCAAGT -TAAGTCATATATAAATTTAAAATAAAGTTTATACATAATATGAATAATGTGAGATAAAGACTGCAATGAA -ATTTAACGCGAATGCGTATGCAACTTAGAATATGATGTCTTTTACTAATAAATAAAAACAATGTATCAAG -TATAGGATAAATATAAAAGGTGATATTGACATGACAAGAAAAGGATATGGGGAATCGACAGGTAAGATTA -TTTTAATAGGAGAACATGCTGTTACATTTGGAGAGCCTGCTATTGCAGTACCGTTTAACGCAGGTAAAAT -CAAAGTTTTAATAGAAGCCTTAGAGAGCGGGAACTATTCGTCTATTAAAAGCGATGTTTACGATGGTATG -TTATATGATGCGCCTGACCATCTTAAGTCTTTGGTGAACCGTTTTGTAGAATTAAATAATATTACAGAGC -CGCTAGCAGTAACGATCCAAACGAATTTACCACCATCACGTGGGTTAGGATCGAGTGCAGCTGTCGCGGT -TGCTTTTGTTCGTGCGAGTTATGATTTTTTAGGGAAATCATTAACGAAAGAAGAACTCATTGAAAAGGCT -AATTGGGCAGAGCAAATTGCACATGGTAAACCAAGTGGTATTGATACGCAAACGATTGTATCAGGCAAAC -CAGTTTGGTTCCAAAAAGGTCATGCTGAAACGTTGAAAACGTTAAGTTTAGACGGCTATATGGTTGTTAT -TGATACTGGTGTGAAAGGTTCAACAAGACAAGCAGTAGAAGATGTTCATAAACTTTGTGAGGACCCTCAG -TACATGTCACATGTAAAACATATCGGTAAGTTAGTTTTACGTGCGAGTGATGTGATTGAACATCATAAAT -TTGAAGCCTTAGCGGATATTTTTAATGAATGTCATGCGGATTTAAAGGCGTTGACAGTTAGTCATGATAA -AATAGAACAATTAATGAAAATTGGTAAAGAAAATGGTGCGATTGCTGGAAAACTTACTGGTGCTGGTCGT -GGTGGAAGTATGTTATTGCTTGCCAAAGATTTACCAACAGCGAAAAATATTGTAAAAGCTGTAGAAAAAG -CTGGTGCAGCACATACATGGATTGAGAATTTAGGAGGTTAATGCGTTGATTAAAAGTGGCAAAGCACGTG -CACATACGAATATTGCACTTATTAAATATTGGGGTAAAAAAGATGAAGGACTAATCATTCCAATGAATAA -TAGCATATCTGTTACATTAGAAAAATTTTACACTGAAACGAAAGTCACTTTTAACGACCAGTTAACACAG -GATCAATTTTGGTTGAATGGTGAAAAGGTTAGTGGCAAAGAATTAGAGAAAATTTCAAAATATATGGATA -TTGTCAGAAATAGAGCTGGCATCGATTGGTATGCAGAAATTGAAAGCGACAATTTTGTACCAACAGCAGC -AGGATTGGCTTCATCAGCAAGCGCATATGCAGCTTTAGCAGCAGCTTGTAATCAAGCGCTAGACTTGCAG -CTGTCAGATAAGGATTTATCGAGATTGGCGCGAATCGGTTCGGGTTCTGCGTCGCGTAGTATTTATGGTG -GATTTGCAGAATGGGAAAAAGGGTATAATGATGAGACGTCATATGCCGTTCCACTTGAATCGAATCATTT -TGAAGATGACCTTGCCATGATATTTGTTGTGATTAATCAACATTCTAAAAAGGTACCTAGTCGATATGGT -ATGTCGTTGACACGAAACACATCAAGATTTTATCAATATTGGTTAGATCATATTGATGAAGATTTAGCTG -AAGCAAAAGCAGCGATTCAAGACAAAGATTTTAAACGCCTTGGTGAAGTAATTGAAGAAAATGGTTTGCG -TATGCATGCCACGAATCTAGGATCAACACCGCCGTTCACATATCTTGTGCAAGAAAGTTATGATGTAATG -GCGCTCGTTCACGAATGCCGAGAAGCGGGGTATCCGTGTTATTTTACAATGGATGCGGGACCTAATGTGA -AAATACTTGTAGAAAAGAAAAACAAGCAACAGATTATAGATAAATTATTAACACAGTTTGATAATAACCA -AATTATTGATAGTGACATTATTGCCACAGGAATTGAAATAATTGAGTAAGGAAGAGATAAAATGATTCAG -GTCAAAGCACCCGGAAAACTTTATATTGCTGGAGAATATGCTGTAACAGAACCAGGATATAAATCTGTAC -TTATTGCGTTAGATCGTTTTGTAACTGCTACTATTGAAGAAGCAGACCAATATAAAGGTACCATTCATTC -AAAAGCATTACATCATAACCCAGTTACATTTAGTAGAGATGAAGATAGTATTGTCATTTCAGATCCACAT -GCAGCAAAACAATTAAATTATGTGGTCACAGCTATTGAAATATTTGAACAGTATGCGAAAAGCTGCGATA -TAGCGATGAAGCATTTTCATCTGACTATTGATAGTAATTTAGATGATTCAAATGGTCATAAATATGGATT -AGGTTCAAGTGCAGCAGTACTTGTATCAGTTATAAAAGTATTAAATGAATTTTATGATATGAAGTTATCT -AATTTATACATTTATAAACTAGCAGTGATTGCAAATATGAAGTTACAAAGTTTAAGTTCATGCGGAGATA -TTGCTGTGAGTGTATATAGTGGATGGCTAGCGTATAGTACTTTTGATCATGAATGGGTTAAGCATCAAAT -TGAAGATACTACGGTTGAAGAAGTTTTAATCAAAAACTGGCCTGGATTGCACATCGAACCATTACAAGCA -CCTGAAAATATGGAAGTACTTATCGGTTGGACTGGCTCACCGGCGTCATCACCACACTTTGTTAGCGAAG -TGAAACGTTTGAAATCAGATCCTTCATTTTACGGTGACTTCTTAGAAGATTCACATCGTTGTGTTGAAAA -ACTTATTCATGCTTTTAAAACAAATAACATTAAAGGTGTGCAAAAGATGGTGCGTCAGAATCGTACAATT -ATTCAACGTATGGATAAAGAAGCTACAGTTGATATAGAAACTGAAAAGCTAAAATATTTGTGTGATATTG -CTGAAAAGTATCACGGCGCATCTAAAACATCAGGCGCTGGTGGTGGAGACTGTGGTATTACAATTATCAA -TAAAGATGTAGATAAAGAAAAAATTTATGATGAATGGACAAAACATGGTATTAAACCATTAAAATTTAAT -ATTTATCATGGGCAATAAATGATTTGATAGGGGAGCAATCATCTAATTTAATTAGAAGATAAATGCTCCA -TTTTTTATTGCCAGCTGTGTTACGTATCTTGAAAAAAATATTAAAAAGAGTAAAATAGATAGAGTTAACG -AAAAAATTAATGAAATCGACGATATAGATATGATAAAGAAAGGTGGGTAGCAATATGAAAAATACATTCC -TTATTTGTGATGAATGTCAGGCAGTCAATATAAGAACGTTACAAAAGAAGTTGGAAAAATTAGATCCCGA -TGCTGAAATCGTGATAGGTTGTCAATCTTATTGTGGACCTGGACGCCGAAAAACATTCGCTTTTGTTAAT -AACCGCCCACTGGCTGCGCTTACTGAAGAAGAATTAATCGAAAAAGTTTCTCAACAATTAAAGAAACCAC -GTGATCCTGAAGAAGAAGAGCGTTTAAGAAAACGACATGAAGAACGTAAACGTCGTAAAGAAGAACAAGA -TAGAAAGCTTAAAGAAAAATTAGAAAAGCGAAAAGCACAACAATAAAGCCTGATGGCAGCATCATTCAAT -GCGTGCCACCAGGTTTTTATGTTTTGTCTAGAAATTAAATAAATCATTAAATGATTCGGCCATCGTAGGA -TGCGTATAAATATTATCTCGTAATATGGTATATGGAATGTTTTGATCAATCGCAAGTTTAATTATATTAA -TTAATTCTTCAGATTGCTTACCATATAATGTAGCACCTAAAATCATATTATTTTCATTATTAATGACTAC -TTTAAATAAACCTCTTGGATCATTGTTAATTTTGTGACGAGGTATAGCACTTACTAAAAGTTGATGCTCA -GTGTAATCATAATGTTGAGCGGCAGCTTCTTTGCTAGTTAATCCAACACGTGATAATGGTGGATCTATAA -ATACTGTATAAGGCACGCTGCCTCTATTGTCAGTCGTACGTGACTGATTACCATATAAAGATGATTTGAT -AATTCGATAATCATCTAAAGATATATACGTAAATTGAAGTCCGCCTTTAACATCACCTGCAGCATAAATA -TGCGGCACAGTTGTTTGAAGATGAGCATTGACTTTAATTTCGCCTCTGTCGCCTAATTCGATATCAGTAT -TTTCTAATGCTAAATCCGTATTCGGTTTGCGTCCGATAGCCAAAAGTACTGCATCAGCCTCAAAGTTACC -AACGTTAGTATGGACAGTTGTATGATAATTGTCAGATGACAATTCAGTCGTTTCAACATTTGTATGCAAT -GCAATGCCTTTATTTTCTAAGTCAGTAATAGCATGTGCAACGACATCTTGATCTTCGCGTGGCATAAATG -ATTCACCACGTTCTAATACTGTAACCTTACTACCTAAATTCGCAAACATTGAAGCAAATTCTAAGGCGAT -ATAACCGCCACCTACAATAACGAGGTGCTTAGGTTGATAGCTAATGTTTAATAAACCTGTTGAATCGAAG -ACGTGTTTAGCTTGATCAAGGCCTTTTATGTTAGGAATGATAGAGGTAGCACCGGTATTAATAATGATAT -GAGGTGCAGTAATACTATCGACGATATCACCATGCTGATCTAATAAATTCACTTCAGTATTAGATTTAAA -CTGCGCTTTAAAATCCAATACATCAATGTTACTGTCGTCTGCTAATAAGTGGTAATTTTTATTGTTTAGC -GCATTGACAACATCGTTTTTACGGTTATAACTTGCTTCAAAGGATTTGCCTTCTAATCCATCATGTACAA -GTGTCTTCGAAGGTATACATCCTACGTTGATACAAGTGCCGCCATACATTTTCGAAGATTGTTCGATAAC -TGCGACGTGTTGACCTGTTGATGCAGCGTATTTCGCTAAAGTTTTACCAGCTTTCCCAAATCCTATTACA -ATTAAATCATATGTTTTCATGACATAAATCCTCCTTTTGAATGTCTTCAATGACATCTTTGATTGTTTTT -TCTTTATAAAAATTAATAATGTTATTCTGTTCGTCTTGTTGATAATGTGACATGGTAGTTGCAATATTAC -GAGCAATTTGACAGTGACTACCTTCGTCGCCAGTAAATAGTCGTGTGTGATGTTCTTTCTCTAAGACAAA -ATGTTTATATAATGTTGCTAATGAGACATCAGCGCTACGATCATTTGCTAAATAACCACCATCTTTACCC -CGTATTGTGTTAATCATTTTTAAATCGACAAGTTGAGTCGTCACGCGGCGTAATTGAACAGGATTTAAAC -AAGTTAATTCAGCTAATGAACTACTATTGAATTTTTCTGAATGATGCTTAGTTAAAAAAGTTAATACATG -TACGGCAATGTTAAATTCTAAATTCAATGGTTCTCACCTCGTAATTGTAACTGTATTAGTTACAATTAAA -AATCATTTTGCTCAATGTGTCAATACTTATGTTTGAAAAGTGTTGAATTAGGTGTGATTATTATGATGAT -TTATTATTTGAAAGTTGTTGCATTAACGGTGAGATTGCGTAATTGAATTTTAGTTATGTATGAACTAATA -GATATGAAATGAGTATTGAAAATAAGGGCAATAAAATTTTGAATGATGATGTTGTGTGATTGTATAAACT -TGTTCGTATTTTAGAGACGTTTTGATATTTCGCATAATGAGGAAATACTTTTAACAACTGATGACATATT -TTAATAGTGAATATATTTTGAGATATTAATATATTTAATGTTAAGGATGTTGTCGCAATAAAATTAAAAT -ATTGAAAGATAATTTTTATTTATTAATTGCGAATATACAAAGACACCATTATATCCATATGCTAAAATAA -GAAAAAAGGCGACATGTTATCTCAATTTACCTGCATCTAGACTCCTTTACATAAGAAATAATCATCGCCG -AGTTTTAAAATTTTACAATTTTGTAGATGTAAAAAGCATTTGATTTTAAATAGTTTGAAAATCATATATT -TTTGAAAAAGGAGCATGCCGATGAGTATTGACATGTATTTAGACAGATCTCGAAACCAAGCTTCAAGTGT -GGGTAATTTGAGTCAAACAATGAATTCAAATTATGATGCGTTGGAAAAAGCAATTACTCAATTTATCAAT -GATGATGCGCTTAAAGGTAAAGCGTATACGTCAGCTAAGCAATTTTTTAGTACGGTGTTAATTCCATTAT -CAACAAGTATGAAAACATTGAGTGATTTAACGAAGCAAGCTTGCGATAATTTTGTGTCACGTTATACGAG -TGAGGTTGATAGCATATCTTTAAAAGAATCAGAGCTTGAAGAAGATATCAGATCATTAAGTCAACAAATT -ACGCGATATGAAAATTTGAATAACAATTTGAAAAAGCATGCTTCCGATAATCAGCAAGCCATTTCATCGA -ACCAACAAATAATACGAACATTAGGTCAACAAAAACATGAATTAGAAGAGAAGCTACGCAAATTGCGTGA -GTTTAATCAAAAATCACCAGAAATATTTAAAGAAGTTGAAGAATTTCAAAAAATTGTACAACAAGGACTT -ACCCAAGCGCAAAATTTTTGGAACTTTTCAACAAATCAATTTAATATACCTTCAGGTAAAGAACTTGATT -GGGCTAAAGCAAGTCATGAAAAATATTTGAAAGTTGCTATGGGGAAAATTGAACAAAAAGCAGAGAAAGA -AACTTTAAATAAAGCAGACTTTGCTGTTATAAAGGCATATGCTAAAGAACATCCAGAAGACGATATCCCG -AAAAGTATAATGAAATATATAAATGACAATAAAGATAGTATTAAACGAGATATAGGATTAGATATTACGT -CAACACTTTTAGAGCAAGGCGGTATAAATGCAAGTAAATTCGGTGTATTTATTAATACAGCAGGTGGAGT -GAAAGGCCCAGCCGGTCCAAATTCATTTGTGGAAGTCAAACGTACATCAGGTAATGTGTTTATAGAAAAT -GGTAGTAAATTTGCAAAAGGCGGAAAATACCTAGGCAAAGGTGTTGCAGGTGTAGGATTTGGTATAGGTA -TGTATGATGATATGGCAAACGATGATAAAACAGTTGGAGAGGCATTGTCGCATAATGCTTTAACTACAGG -AATAGGTATTGGCGCAGGTGCGGGTATGACTGCTACTATCGCGTTATTTGCAAGTAATCCAGTAGGATGG -GCTGTTATAGGTGGCTTTGTGTTTGGTTCGGTTTCGACAATGCTTGTAGATTGGGCTTATCAAAATAATA -AGGCTGGTATAAAAGATAAAGCAGACTGGGTAGGACATAAACTAGACGATGGTATCGATGTTGTTAAAAA -ATCTACAGAAAAAGCCGTAGATAGTGTTGGTGAAGCTACAAAAAGTATTTCTAATCATTTAAACCCTATG -AAATGGAGCTGGTAAATGTTGCTATGTGAATCTAAAGTTATCAACAAAAATCCTAAGTATAGAGTTATTA -AATATGGTGATGAATATTTAATGATTGATTTAGTAAGTACCTGGTTAACTTTATTTCTTCCTATGATTAA -TTGGTTAATTCCAAAAAAATATGTCAAAATCAGTAAAAAAGAATTTGACGATTTAAACATTGTCAAACCT -GTTAAAAATAAAGCTTTTTGGCCAGTTGCAGGTAGTACTATTTTGTTCGGAGTTACGTTTAGAAAATATA -TTCCTTCACTTAATATTCAATTAGAGAAAAACATGGTGATTGTAATATGTTGTGCAATATTTCTGGGTGT -TTTAATACTTTTTTTATTTCTGAATCGTAAGCTAAGATTGGAAATTTATAATAATAACTCTAGTAAAGGG -AAAATAATTTTATTTCCTTCATTAAAAAACTTTTGCTTTACAATATTTTATTATTTTTTATTTGGCGGTC -TTTCAATAATGGCTCTAAGTATGTTATTAACTTTAAATCCTCAAAATATAATAGGCTTTATTGGTTGGTT -GGTAATGACTGCAGGTTTCTTTCTGTTAAACATGTCATCGATTATTGACAAAAAAATTTATGTATTATCT -AAAACTAACACGGTGGAAAAATGATGGTTTAGCTGGATTTACTGCGAGTTCTGTTTCGTCAATACTTGTA -TATTGGACCAATCAAAGAAATGAATTTGGAATAAAAGGTAAAAACGATTGGATAGGACATAAACTAGACG -ATGGTATCGATAGTGTTAAAAAATCTACAGAAAAAGCCGTAGATAGTGTTGGGAATGTTGTTGGTGAAGG -TTCAAAAAGTATTTCTAATCATATAAGCCCTAAGAAATGGAGCTGGTAAATGTTGCTATGCGAATCTAAA -ATCATCAATAAAAACCCCAAATATAGAATTATTAAATATAATGATGAATACTTAATGGTCGATATAATAA -GCACTTGGATTAGTTTATTTTTTCCATTTATCAATTGGTTCATCCCAAAAAGATATGTCAAAATCAGTAA -AAAAGAATTTGACGATTTAAATATTGTTAAACCTGCTAAAAAATGTTTTTTGGCCAGTTGCAGGTAGCTC -TGCTTTGCTGGGAGTTGCATTAAGAAAATATACACATTTACTTGACGTTCAACTTGATAAAAAATTAGTT -ATTGCCATATGTTGCATCACATTTATAGGGATTTTAATATTTTATGTACGCCTAATTAAAAAATCATCTT -TAAATATTTATAATACTAAAAATAAAAGGTCAAAAATTTTTTTAATACCTACACTAAAAAATGTTTGTTT -CACATTATTTGGATATATTTTATTTGGCGGATTGACTATGCTATTCCTAGATGCACTATTATCAATGAGT -TACCAAAACATAATAGTATATTTTGCTTGGATTGCAGTTATGATGGGTTTTTTTCTAGTGAATATAGCTT -TAATTATAGATAAAAACATTCATGTCATACTTAAAAATTAAATGGTAGTAATAAATTTAGATTAAAGATA -TGCAAATAACAATGAATAAAATTTTTAATGATAGTAAGTTGATAATATTTTAATGTCTTTTGAAGTATCG -AAAAATGTATTACACATAAAATTAAAGGGATGTGGAGACATTGCTTTGCGAGGTTATAGCTATATACAAA -AATCCCAAATATAGAATTATTAAATATAATGATGAATATTTGATGGTGAATATAATAAATAATTGGTTAG -TTTTATTTATTCCATTGCTTAATTGGTTGACACCAAAAAGATACATCAAGATCAGTCAAGAAGAATTAGA -AAATTTAAATACTTTCAAACCTGCTAAAAACAATGCATTTTGGCCAGCATTAGGTAGTTCAGTTTTATTT -AGTGTGACTTTTAGAAAGTATATGCCTTTATTTAATGTTAGATTGGAAAAAACAATAGTAATAGCCATAT -TTTTTGTTGTATTTCTTGGTATTTTATTTTTCTACCTAAATTTAAATCGTAGGTTAGCATTAAGTGTTTT -TACTATGAATAAAGAAAAAAGTCAGAAAATGATATTGCTACCTAATTTAAAACATTTTTTCTTTATAATA -TTTGCATATTTATATTTCGGTGGTTTTTCATTTTTCACTTTATATGCCCTGATAACTATAGATGTTCAAA -ATATAATTATATTTATCTGTTGGGGTGCAGTAACTATGTTTTTCTTTTTTATAAACATTGTTCCCATTGG -CATTAAAAAAGCTCATGTAATACTTCTTAAAAAAAGCTGAATAATAAAGGAGTTTTTTAAATCTAAAATT -ATTAAATTTAATATAAAAATTCGACTCATAGATAGAATGAATAAAAATCCGAAATATAGAATTATCAACT -ACAAAGATGAATGTTTTATAATGGATATCCCATGTTAATATTAACAGTTTTAATTTCTTTGTTATGCAAA -TCAAAACATTATAGTATTTCTAATTGAATTTGCAATGGCTTTAATGTTGTCGTTCTTAAATGATTTTTCA -ATTTCTGATTCAAAAGTACATGTAATTTAAAGGCTAACAAGCAATCGCACTATGTGAATATCAACTTAAG -CAATACTTATTTTAACTGAGTTCTACATAACATTTTTCTAATACACCGCCTAAATTCAAACCCTAATTCT -AACATTTGGAAGTTGTATTAAATCATGATAGTGTGATAGTGGAAAAGTTATAAAGATAAGGAGCTGGGTC -TAATGAAGCAATTTGTAAACTTAGGTAAATCTGATGTTGAAGTGTTTCCAATCGCACTTGGGACGAACGC -AGTAGGTGGGCATAATTTATATCCGAACTTAGATGAAGAACAAGGAAAAGATGTTGTTCGTCAAGCCATT -AATCATGGTATTAATTTATTAGATACGGCATATATTTATGGGCCAGAACGATCAGAAGAATTGGTTGGAG -AAGTTGTTAAGGAATATCCGCGAGAGCAAATTAAAATTGCTACGAAAGGGTCTCATGAATTTGATGAAAA -TCAAGAAGTACATCAGAACAATCAACCGGAATATTTAAAACAACAAGTTGAGAATAGTTTGAAACGTCTA -CAAACTGATTATATCGATTTATATTATATTCATTTTCCAGATGACAACACTCCGAAAGATCAAGCAGTTG -CAGCATTACAAGAGCTTAAGGAACAAGGGAAGATTAAAGCCGTTGGTGTATCAAATTTCACATTAGATCA -ACTTAAAGAAGCAAATAAAGATGGTTACGTTGATGTTGTACAGTTAGAATATAATTTATTGCATCGTGAA -AATGAGGCAGTATTACAATATTGTGTTGATCACCAAATCACATTTATTCCATATTTCCCTTTAGCATCCG -GTATTTTAGCTGGAAAATATGATGAGAACACTAAATTTAGTGACCATCGTACTACACGTCGTGATTTTAA -ACCAGGTGTATTTGAAGAAAATGTGCGTCGCGTAAAAGCTTTGGAAAGCATAGCTGCAGCACATCAAACT -TCAATTGCGAACATTGTATTAGCATTTTATTTAACGAGACCAGCTATCGATGTGATTATTCCTGGTGCAA -AACGTGCAGAACAAGTCATTGAAAATATTAAAGCTGCAGATATCGTTTTATCAGATGATGAGATTCAATA -TATCGATGAACTGTTTCCAATTGAAGACTAAATGAATTGTATTTAATGGTGACATATGTATCTAATTCAT -CATGAATTAGCCCCGTATCACAAACGACTTTATATAAGGCATGACGAAATTTCGTCAAATTTATATAAAA -GTTGTAAGCGTTTTACTATTCGGTAGGTAAAGCTTATGATAGTATAATTAGGTAACGAAAAACACAGATA -TTTATTAATCAAAAGTGAGGTTAGGCTAAAATGATTACTGTTTTGTTTGGTGGGAGTAGACCAAACGGTA -ATACTGCACAATTAACAAAATTCGCTTTGCAAGATTTAGAGTATCAATGGATTGACGTGACACAACATCA -GTTTAAACCGATACGTGACGTGAGACATACAGCAGAGACTATTACTTCATATGACGATGACTATTTGCCG -ATTCTAGATAAAATATTGGCTAGTGATACGATTATTTTTGCATCACCAGTGTATTGGTATAGCATTTCAG -CACCATTGAAAGCATTTATCGAACATTGGTCAGAAACATTACAAGATAAACGATATCCTAATTTTAAGGC -ACAAATGGCCGAAAAGGATTTTAGAGTTATTTTAGTTGGTGGAGATTGTCCAAAAATAAAAGCGAAGCCA -GCAATTACGCAAATGAAATATAGTTTAGACTTTTTAGGTGCCACTTTAAATGGTTATATTATTGGAACTG -CTGAAAAGCCTGGTGACATCATGAAAGACAACTATGCCTTAGCACGTGCAACTGAGTGGAATAGTATATT -GCAATAAGACATACCTCATACTAAACGAAGTGATTTTTTGCTTCGTTATTTTTTATTTTTAATTTTAACG -GAAAATATAAATATATAAATTGAATAGACAATCATTGTTTATTAAGTATTGAGCAAGTTGTGGTATAATG -CCGTTATTAAAACTTGTTAATAAGGGGAGAAAGTCATGTTCAAGGTAAGACAAGCAACTGAAAAAGATGT -TGTTCAAATTAGAGATGTCGCAACTAAAGCTTGGTTTAATACATACTTAAATATATACGCTGCGACAACA -GTTAATCACTTGTTAGAAGCTTCATATAATGAACATCATTTAAAGAAAAGACTTCAAGAACAATTATTCT -TAGTCGTTGAAGAAGGTAATGACATCGTTGGCTTTGCTAACTTTATTTACGGTGAAGAATTATATTTATC -AGCTCATTATGTTAAACCAGAATCGCAACATACAGGTTATGGTACAGCATTGTTAAATGAAGGATTATCA -CGTTTTGAAGATAAATTTGAAGGTGTTTACTTAGAAGTAGATAATAAAAATGAAGAAGCAGTAGCTTACT -ATAAAGAGCAAGGTTTTACAATCTTACGCTCTTATGAGCCAGAAATGTATGGCGAAAAGTTAGACTTAGC -ACTTATGTACAAAGCATTTTAAGTAAATTAAATATTATATTAAACGAAAAGGAGGGGAATAATGACTAAC -GCATATGTAGATTTAAAATTAGTAGAAGAAAAAGTTTTTAAAGACCCGATACATCGATATATTCATGTTG -AAGATCAATTGATATGGGATTTAATTAAAACTAAGGAATTTCAAAGGTTACGTCGAATTAGACAATTAGG -AACACTGTACCTATCTTTTCACACAGCAGAACATAGTCGCTTTGGACATTCTTTAGGTGTGTATGAAATA -GTTAGACGATTAATTGATGAGTCATTTATTGGTCATGATGCATGGGACAATAAAGATAGACCGTTGGCAT -TATGTGCTGCATTATTACATGATTTAGGACATGGTCCATTTTCACATAGTTTTGAAAAAATATTTAATAC -AGACCATGAAGCATACACTCAAGCGATTATTACTGGAGATACTGAGGTGAATGCTGTATTACGTAAAGTA -TCGCCTGAGTTTCCAAGAGAAGTTGCGGAAGTAATTAATAAAACGCATCATAATAAATTGGTCATTTCGA -TGATTTCTTCACAAATCGATGCGGATAGAATGGATTATTTACAACGTGATGCGTATTTCACAGGTGTGTC -ATATGGTGCTTTTGATATGGAACGTATTTTAAGATTAATGCGACCTTCTAAAGATGAAGTACTAATTAAA -GAAAGTGGTATGCATGCAGTTGAAAACTTTATTATGAGTCGTTATCAAATGTATTGGCAGATTTATTTCC -ACCCAGTTAGTCGTGGTGGAGAAGTGCTGCTTAATAATTGTTTGAAACGCGCAAAACAGCTTTATAATGA -AGGCTATGAATTTAAGTTGCATCCACATGATTTTATTCCATTTTTTGAAGAGACAGTTACGATTGAACAA -TATGTTGAACTCGATGAAGCGGTAGTTACGTATTATTTGGAAAAATGGACAAAAGAAGATGATGCCATTT -TAAGTGATTTAGCAAGTCGATTTATTAATCGAGACTTATTTAAATATATTCCATTTGATGGCTCAATTAT -TACAATATCAGAACTGCAAGAACTGTTTGAAGCAGGTGGTATTAATCCAGATTATTATTTTGTGAGTGAA -GCATTTTCGGATTTGCCATATGACTATGATCGACCTGGGTCAAATCGCAAACCGATTCATTTATTAAGAC -AAGATGGTAAGATTAGAGAAATAAGCAATCAATCTTTAGTCATTCATAGTATTACAGGCATTAATCGCCA -AGACTATAAATTATATTATCCTAGAGAAATGGTTGCAAAGATTAAAGATAAGACAATTAGAGAAGCTATT -GAAAATTTGATTAATGAGCTTAATTAAACAGGGCTAAAATTGTTATCGTTAAATATGGAGGTTATATCAT -TGTCTGAGAAAAAAGGCTTTAATTTTAATATCATAAAAAATGACCCTCTAGATGGTCATAAAGGTACAAA -TATTGGTTCAATTAGCTTAGACAATATTGCACCAGTTTTTATCGATGTTGCTAACAAAGAAGCATTTATT -GATATTGGAGGCATGCATGCTCGCGCCAAAGTTGAAAAAGGCGTGAAATGGATTACTGATAAAGCTGCTG -TTGAAGGCGATGAAGCTAAAGAATATTGGTTGTGTTGGGTAACAACAGAACGTAATGAACAAGGACCATA -TTATGCTGGTTTAACAGCGTGCTATTTATTAGTGAATAAAGCAATTCGTCGTGGTTATAAAAGTATGCCT -GAACATGTTAATATGATGGATAAATCAATGAAACATCATATTATCATTGATCAAATTGGTGACGAGAATA -AAGCTATTTTAAAAGACTTTTTAATGAACCATGATGAAGGTATGTGGAAGCATTCTTCTGATGCATTACA -TCAAGCATTTAATTAAATATTAGAAACTAAAATTTCCCAATTAATCTATAAAGATATGATTCATTTCTCA -ATGACGACGTAAATCTTGAGGTGAAAATAAAGTCTTAGATTGATTGGGAGTTTTTTTAATTTTTTTGAAA -TTAAATTAATCTGTAGTTAATAAAAAATTTGAATAACTGACACATTTTTTTGATCATAGCTATATACTTT -GTGAATTAATTCACATTATAATAAGAGTGAAGATAAGAGTATTATAAATTATCTTTAAATAAATATATGT -GAAGTAAAAATTACACGTTAGCATATCGATTATGTCATTTCTTTTAACATATTAACTAGGGAAACGTTAA -AAGTTAACGGTTGATATCTAACTAAAAACAAAGTCACAATAGTATGTTTTAATTTGGCGTCTATTACAAA -TAAAAATTACATCTATAATTATTCGTTTTCATTTTTGAAAGTAATCACCAATTAATATCATACATACTGG -AGTGACTATAAGGAGGACATTATTATGAGAGCAGCAGTTGTAACGAAAGATCACAAAGTAAGTATTGAGG -ACAAAAAGTTAAGAGCTTTAAAACCTGGTGAAGCATTGGTACAAACGGAATATTGTGGCGTTTGTCATAC -CGATTTACATGTTAAGAATGCTGATTTTGGTGATGTTACAGGCGTTACTTTAGGTCATGAAGGTATTGGT -AAAGTCATCGAAGTTGCAGAAGATGTAGAATCATTAAAAATTGGAGACCGTGTGTCTATCGCTTGGATGT -TCGAAAGCTGTGGAAGATGTGAATATTGTACAACAGGTCGTGAAACACTTTGCCGTAGTGTGAAAAATGC -TGGTTATACAGTAGATGGTGCAATGGCTGAACAAGTTATTGTTACTGCAGACTATGCTGTGAAAGTACCT -GAAAAATTAGATCCAGCAGCAGCGTCTTCTATTACATGCGCAGGTGTGACAACTTATAAAGCTGTAAAAG -TAAGTAATGTTAAACCTGGACAATGGTTAGGTGTTTTTGGTATAGGTGGTTTAGGTAACCTAGCTTTACA -ATATGCTAAAAACGTTATGGGGGCTAAAATTGTTGCCTTCGACATTAATGATGATAAATTAGCATTCGCA -AAAGAATTAGGTGCAGATGCTATTATTAATTCTAAAGATGTTGATCCAGTTGCAGAAGTTATGAAATTAA -CTGATAACAAAGGATTAGATGCAACAGTGGTAACTTCAGTTGCTAAGACGCCATTTAACCAAGCGGTTGA -TGTTGTAAAAGCTGGTGCAAGAGTTGTTGCCGTTGGTTTACCTGTTGATAAAATGAACTTAGATATCCCA -AGATTAGTGCTAGATGGTATTGAAGTAGTAGGTTCACTTGTTGGTACAAGACAAGACTTACGTGAAGCGT -TTGAATTTGCTGCTGAAAATAAAGTAACACCTAAAGTTCAATTAAGAAAATTAGAAGAAATCAATGATAT -TTTTGAAGAAATGGAAAATGGTACTATAACTGGTAGAATGGTTATTAAATTTTAAAAATATCAAATGACT -TTATAGATAAAGAAGGTAGTGCTCTGAACACTATCATTATAATCAAACACGAGGTTTTCATGAAAGATAG -TGAAAATCTCGTGTTTTTTTGGTTTTGAGGTTTTGTTTGTATTTTATAAAATGGCTTACATATATCAAGC -GTTGATTAAGTATGGAATTGTTAATTAATTGAACCTATTTAGCTTTAAGAAGGCATAACAAGATGACCTT -ATTTTATGCTATAATATTTCTATTATGCGAAGATTAAGGTGAGTAGTAAATTGGATAAAAAAGTAAGTAT -TCATACAAAGCAAGTGTTGAAACAGCACAACGAAAAAGAAAAATTTGAATTTACTACTGAAGGAACTTGG -CAACAAAGGCAATCTAACTTTATTCGGTATGTAGAACAAATTGAGGATGCAACAGTTAATGTTACAATAA -AAGTGGATGATGATAGCGTTAAGTTGATTCGTAAAGGCGACATTAATATGAATTTGCATTTTGTTGAAGG -ACAAACGACAACAACTTTTTACGATATATCGGCTGGACGAATTCCACTAGAAGTTAAAACATTACGCATT -TTACATTTCGTAAGTGGAGACGGTGGCAAGTTAAAGATTCATTATGAATTATATCAAGATAATGAAAAAA -TGGGTTCTTATCAATATGAAATTAACTATAAGGAGATAGGCGAATGAATATTATTGATCAAGTGAAACAA -ACATTAGTAGAAGAAATTGCAGCAAGTATTAACAAAGCAGGATTAGCAGATGAGATTCCTGATATTAAAA -TTGAAGTTCCTAAAGATACAAAAAATGGAGATTATGCTACTAATATTGCGATGGTACTGACTAAGATTGC -AAAGCGTAATCCTCGTGAAATTGCTCAAGCGATTGTTGATAACTTAGATACTGAAAAAGCACATGTAAAA -CAAATTGACATTGCTGGTCCAGGATTCATTAATTTTTACTTAGATAATCAGTATTTAACAGCAATTATTC -CTGAAGCAATTGAAAAAGGTGATCAATTTGGACATGTAAATGAATCAAAAGGTCAAAATGTATTGCTTGA -GTATGTTTCAGCTAACCCTACAGGAGATTTACATATTGGTCATGCTAGAAATGCAGCAGTTGGTGATGCT -TTAGCTAATATTTTAACTGCAGCTGGCTATAATGTAACACGTGAATATTATATTAATGATGCTGGTAATC -AAATTACTAACTTAGCGCGTTCGATTGAAACACGTTTCTTTGAAGCTTTAGGTGACAATAGTTATTCAAT -GCCAGAAGATGGCTATAATGGCAAAGATATTATTGAAATAGGTAAAGATTTAGCAGAGAAACACCCTGAA -ATTAAAGATTATTCTGAAGAAGCACGTTTGAAAGAATTTAGAAAATTAGGCGTAGAATACGAAATGGCTA -AACTGAAAAATGATTTAGCAGAGTTCAATACGCATTTTGATAATTGGTTTAGTGAAACATCTTTATATGA -AAAAGGCGAAATTCTTGAAGTTTTAGCTAAAATGAAAGAATTAGGTTATACGTATGAAGCTGATGGCGCT -ACATGGTTACGTACAACTGATTTTAAAGACGACAAAGACAGAGTATTAATTAAAAATGACGGTACATATA -CGTATTTCTTACCAGATATTGCGTACCACTTCGATAAAGTTAAACGTGGTAATGACATTTTAATCGATTT -ATTTGGTGCTGATCATCATGGTTATATTAACCGTTTGAAAGCATCTCTTGAAACGTTTGGTGTAGATAGT -AATCGTTTAGAAATTCAAATCATGCAAATGGTTCGTTTAATGGAAAATGGTAAAGAAGTGAAGATGAGTA -AACGTACTGGTAATGCGATTACATTAAGAGAAATTATGGATGAAGTTGGCGTTGACGCTGCACGTTATTT -CTTAACTATGCGTAGTCCTGATAGTCACTTTGATTTTGATATGGAATTAGCGAAAGAGCAATCTCAAGAC -AATCCAGTTTACTATGCTCAATATGCACATGCGCGTATTTGTTCAATTTTAAAACAAGCGAAAGAGCAAG -GAATTGAGGTAGCTGCTGCGAATGATTTTACAACGATTACAAATGAAAAAGCGATCGAATTGTTGAAAAA -AGTAGCTGATTTCGAACCTACAATTGAAAGTGCTGCTGAGCATAGATCAGCACATAGAATTACTAATTAT -ATTCAAGATTTAGCTTCTCATTTCCATAAATTCTATAATGCTGAAAAAGTGTTAACAGATGATATTGAAA -AAACAAAAGCACATGTTGCTATGATTGAAGCGGTCAGAATTACATTGAAAAATGCATTGGCAATGGTCGG -TGTAAGCGCACCTGAATCAATGTAAGAACATTTATATACACTCCAACGTAGAGTTTCTCGAAAGATACTT -TGTGTTGGAGTGTTTTTTTATTTGGTATGTGACATATTGGGGAATGCTTAGTATGTGAATAAGGTTAAAG -GAATACAGTTGGTTTGCGCAGCAACTGCAAAAGAGCCCCTAATCGCTAAAGCTCAAGGGGGGAAAGGAAT -ACAGTTGGCTTGCTTGCGCACAACTGCATAAGAGCCCCTAATCGCTAAAGCTCAAGGGGGTTAAAGGAAT -ACAGTTGGTTTGCTTGCGCAGCAACTGCAAAAGAGCCCCTAATCGCTAAAGCTCAAGGGGAGTTAAAGGA -ATCCAGTTGGTTTGCTTGCGCAGCAACTGCAAAAGAGCCCCTAATCGCTAAAGCTCAAGGGGCTCTAAAA -GGAGGATGTAAATGTTAGGAACTGATGAATTGTATAAATTGTTATATAGGCATATGGGACCTCAAAATTG -GTGGCCTGCTGATAATGACATTGAAATGATGTTAGGTGCAATTTTAGTTCAAAATACTAGATGGCGAAAT -GCAGAAATTGCATTGAATCAGATTAAAGAACACACGCATTTTAATCCAAATCATATATTAGAACTACCTA -TTGAAACGTTACAATCATTGATACGTCCAAGTGGCTTTTATAAAAGTAAATCACTGACGATTAAAACATT -ATTAACATGGTTAGCACGACATCATTTCAATTATCAAGAGATTAATGAGCGATATAAAGGTGAATTAAGA -AAAGAATTATTATCTTTGAAAGGTATTGGAAGTGAAACAGCAGATGTCTTACTTGTTTATATATTCGGAC -GTATTGAATTTATTCCAGATAGCTATACAAGAAAAATATATAATAAATTAGGATATGAAAACACTAAAAG -TTATGATCAATTAAAAAAAGTAGTCACATTACCAAATCATTTTACAAATCAAGATGCTAATGAATTTCAT -GCTCTGTTAGATGTATTTGGTAAACATTACTTTAGAGATAAAGATATAAAGAATTGTGATTTTTTAGAAC -CTTACTTTAAAAAGTAAACGCTGTGAAGTTAGATAGATGAGTTTATATGAAATATAAAAAATAATTTACT -ATTTTCTTTTAGTATGTGGACTTATATAATAAATAGAAGCATATAAAGAAAAAAGTTGTTTGTTTGTGCA -GCAACTGCATAAAAGCCTCTAATGACTAAAGGTGAAGAGGAACGCAGTTGGATGCTACCGCACAACTGCA -TAAATCCCTCTAATCGCTAAAGCGAAAAGTGGGATTAAAGGAACGCAGTTGGATGTAACCGCACAACTGC -ATAAAAGCCTCTAATCACTAAAGTTCAAGAGGCTTTAAAAAGGAGATGTGATAATGTGAAGAAATCGTTA -ATTGCTTTTATTTTGATTTTTATGCTTGTTCTGAGTGGCTGTGGTATGAAAGATAATGATAAACAAGGTA -GCGACGATAATGGCTCGTCTAAATCGCCGTACCATAGAATTGTTTCGTTAATGCCTAGTAATACTGAAAT -TTTATATGAATTAGGATTAGGTAAATACATAGTTGGTGTTTCAACGGTTGATGATTATCCAAAAGATGTG -AAAAAGGGTAAGAAACAATTTGATGCTTTGAATCTAAATAAAGAGGAACTTTTAAAGGCAAAGCCAGATC -TAATTCTTGCGCATGAGTCGCAAAAGGCAACTGCTAATAAAGTATTGTCATCATTAGAGAAACAAGGCAT -CAAAGTAGTGTATGTTAAAGATGCACAATCAATTGATGAAACTTACAACACATTTAAGCAAATTGGGAAA -TTAACGCATCATGAAAAGCAGGCTGAACAACTTGTTGAGGAAACTAAGGATAATATCGATAAAGTCATAG -ATTCAATTCCTGCTCATCATAAAAAATCAAAAGTATTTATTGAGGTTTCATCAAAGCCTGAAATATATAC -AGCAGGGAAGCATACATTTTTCAATGATATGTTAGAAAAATTAGAAGCCCAAAATGTTTATAGTGACATT -AATGGTTGGAACCCTGTAACGAAGGAAAGTATTATTAAAAAGAACCCAGATATATTAATTTCGACGGAAG -CTAAGACAAGATCAGATTATATGGATATCATCAAAAAAAGAGGTGGATTCAATAAAATTAATGCTGTCAA -GAATACACGTATTGAAGTTGTAAATGGTGATGAAGTATCAAGACCGGGTCCACGTATTGATGAAGGATTA -AAAGAATTAAGAGATGCAATTTATAGAAAATAAACCATTCTAATTATGCCCCTTATTGCTACATGTAATA -AAAATTACATGTTTGAGATAAGGGGTTTTAAAATATATTTAGTGAATGATAGCAACGCGAGTATGTGATT -GCTATAATGAATGTAATTATCGATGAAAGAAAAGAGAATGCTATGACATTTAATAAAGTATTATTGAGCT -GGATAGTCATATTGATTATAACAACTAGCATATATCTATTTTGGCAGTTGGGGGATATCAATGATGTATT -TAACCAGTCTATTTTAATCAATGTTAGATTACCGAGATTATTAGAAGCATTGTTGACAGGTATGATATTA -ACTGTTGCAGGTCTTATATTTCAAACAGTTTTAAATAATGCATTGGCAGATAGCTTTACATTAGGATTGG -CAAGCGGTGCTACATTTGGTTCAGGATTAGCATTATTTTTAGGATTAACAACGTTATGGATTCCTGTATT -TTCAATAACATTTAGTTTAATAACATTAATAACTGTATTAGTCATTACGTCGGTATTGAGCCAAGGCTAT -CCAGTTAGAATCTTAATATTAAGTGGTTTAATGATTGGTGCACTATTCAATTCACTTCTATATTTTTTGA -TTTTATTAAAACCTCGCAAATTAAATACAATTGCCAATTATCTGTTTGGTGGTTTTGGTGATGCAGAATA -CTCAAATGTATCCATAATAGCAATCACATTTATCATTGCACTGTTTGGTATATTTATCATTCTTAATCAA -CTAAAGTTATTGCAATTAGGAGAACTAAAAAGTCAGTCACTAGGCTTAAATGTTCAAATAATTACATATA -TCGCGTTATGTATAGCTTCTATGATAACGGCGATAAATGTCGCATATGTTGGCATAATTGGATTCATTGG -TATGGTGATACCACAACTCATTAGAAAATGGCAGTGGAAACAATCATTAGGAAGACAATTGGCTTTGAAT -ATTGTAATTGGAGGACAAATAATGGTTATGGCAGATTTTATTGGTAGCCATATATTGTCACCCGTCCAAA -TACCGGCAAGTATTATCATTGCATTAATTGGTATACCAGTGTTATTTTACATGCTAATATCTCAGTCGAA -ACGGTTACACTAGCACATGACATTTGCTAAAATAAAAATAACTATAAACATAAAGAGGGCATAAGCGATG -GATTTGAATCAAATTAAAGCAGTTGTATTTGATTTAGAAGGTACGTTGTTGGACAGAGTTAAATCTCGAG -AGAAATTTATCGAAGAGCAATATGAACGATTTCATGACTACTTAATTCATGTTCAACTGGCAGATTTTAA -AAAAGCATTTATTGAGCTAGATGACGATGAAGATAATGATAAACCTGATTTATATAAAGAAATCATTAAA -CGTTTCCATGTAGATAGGTTAACTTGGAAAGACTTATTTAACGATTTTGAAATGCATTTTTATCGTTATG -TATTTCCTTATTACGATACTTTGTATACACTAGAAAAGCTATCGCAAAAAGGCTTTCAAATTGGTGTTAT -CGCAAATGGTAAATCTAAGATTAAACAATTTCGATTACATTCACTTGGTTTGATGCATGTTATTAATTAT -TTATCAACATCAGAAACAGTTGGTTTTCGTAAACCACATCCTAAAATTTTTGAAGATATGATTGATCAAC -TAGGGGTATTACCTGAGCAAATTATGTATGTCGGTGATGATGCATTGAATGATGTAGCTCCAGCACGAGC -TATGGGCATGGTTAGTGTATGGTATAAACAAGAAGATGCAGAAATTGAACCACTCGAAGAAGAAGTTGAT -TTTACAATTACAACAGTGGAAGAATTATTAACCATTTTACCAATAAAAATTGATAATAAAGGAGAAAATT -ATGGATCTATTTACTAGAAAAGATGGAACATCGATACATTACAGTACATTAGGTGAAGGCTATCCTATCG -TATTGATTCATACTGTACTTGATAATTATTCTGTGTTTAATAAATTAGCAGCAGAATTAGCAAAATCATT -TCAAGTTGTGTTAATTGATTTACGTGGACATGGCTATTCTGATAAACCTCGTCACATTGAAATAAAAGAT -TTTTCTGAAGATATTGTTGAATTACTTAAATATCTATACATTGAAGAAGTTGCATTTGTATGCCATGAAA -TGGGTGGAATCATTGGTGCGGATATTTCAGTACGTTATCCTGAATTTACATCATCACTTATGTTGGTAAA -TCCAACATCTATTGAAGGTGAATTACCGGAAGAACGTTTATTTAGAAAATATGCCCATATTATTCGAAAC -TGGGATCCTGAAAAACAAGATAAATTTTTAAATAAGCGTAAGTATTATCGTCCGAGAAAAATGAATCGAT -TCCTCAAACATGTCGTAGATACAAATGAAATATCAACTAAAGAAGAAATTCAAGCAGTTAAAGAGGTATT -CAAAAACGCTGATATTTCTCAAACTTATAGAAATGTCGTAGTACCGACAAAAATTATTGCAGGAGAATTC -GGTGAAAGAACAACAAGATTAGAAGCTAAAGAAGTAGCTGATTTAATCCAAAATGCGGACTTTGAAGTAT -ATCAAGAATCAAGTGCATTCCCATTTGTTGAAGAGCAAGAAAGATTCGTTGAAGATACAGCTTCATTTAT -CAACAAACATCACGATGAAAAGCATGTTTAATTTTTAGTGATAAGTGAAATATAAAAGTAGTAATTATTA -TTTGTAATATAATTGTAATATGACTGTTGTTTTAGAAATGATTGTTGTATAATGGTTGTGAGCACAAGAC -GATATAAATAAAAGGAGAGAGTGCTTATGAAAAAGCTACTAACGGCAAGTATAATTGCATGTTCTGTTGT -AATGGGAGTAGGCATAGCGAACACTAGTGCCGAAGCAGCAAGTGGCAACTCTATTGATACTGTTAAACAA -TTAATTAAGGGTGACCAGTCATTAGAAAATGTGAAAATTGGCGAATCTATTAAAGATGTTTTAACTAAGT -ACAAAAATCCAATGTATTCTTACAATGAAGATGGAACTGAACATTATTACGAATTCCATACTAAAAAAGG -TATGTTATTAGTAACTACTGATGGTAAGAAAAACAATGGTAAAGTAACTCATATTTCAATGATGTATAAT -GATGCTAATGGTCCAACATATCAAGCTGTTAAAAATTATGTTGGCAAAGCAGTAACACATACGGAATATA -GCAAAGTTGCTGGTAATTTTGGATATATTGAAAAAGGCAAAACGACTTATCAATTTGCCTCAGCACCAAA -AGATAAAAACATAAAATTATATCGTATTGATTTGGAAAAATAATAATTAAATTAATCGTGCTTAACCGAC -AAGTTAAATCGCAATACTTGTCGGTTATTTTATTACATGGCATAATACAGTGAATATTAATTTTTATGAT -TTGCGAAGGGGATATTAAACCAATACAATAAATAAAGATGTTTCATTTTAAAGGAGTACTACCAATGCGT -ATTAACGATAAAATTTTACTAGAAAATATAGAAGATTACTTTAATCATAAAGGTTTATCACCGCATTTGA -TTGATGATATTAAAGAGAAAGTAATTACTGATATAAAAAATTCTGAAAAGAAAGATCAAGATTATATTGA -ATATAAAAGAAAATCTCCAGCACAAATCATATTAATGATTCAAAGGAATTTGTTTGCTTTACAAATGAAT -CCAGTTATTTTCTTTATTATAAATTTCATTCTCATATCCTATTTATATGATAAACAGTATGTTCAGTTTC -AAGCTATTACTGGAATGAGTCTATTTTATTGTTTAGTGATTTTTCCAATGACTATTGTTGTATACCTAAG -GGTGTCTCAAAAGAATTACTTGCGTAGTAATAAAATAGAAATGGTTATGGGTACAATTATCGCTATCATA -TCCCTGTTATTAATTATATTACAAGCATTTAATATTACTTGGGGCGTTATACCAATTACAAATTTTGGAC -ATCAATTTTTCTTTTTCATTGGTATTATTTTAGTAATTGCCGGCATATTTTATAAGCGACTTGAGTTTTC -GGGAATCGGCTTATTATTTTGTCAAAAAACCGTAGATGCAATGATTCATAATCCACAATCAGCCCAGACT -TTTTCATTAATTATATGGATATTATTAGTAGTTCTAGTTATATATTTCACAATTAGATTATCTTCACGTA -CAAGATTATAAATATGATAAAACTATTCACTTGATTAATTGTATTAATTGAGATGAATAGTTTTTTTATT -GTTGGAATAACTTTTGGTAATTTATAAATAATTTAAAAAAATTGTTTATAAAATGGAAGCGTACATAGAA -TGAAGGTTGGGTATATAGTTTATTGAGGGAGGTGTCACAATGAATAAAGTCACAATTAATCCTCAAATCC -AATTAACTTATCAAATTGAAGGTAAAGGGGATCCTATAATATTACTTCATGGATTGGATGGTAATTTAGC -TGGATTTGAAGATTTGCAACATCAACTAGCATCATCATATAAAGTAATTACCTACGATTTAAGAGGTCAT -GGCAAGTCTTCTAAAAGTGAATCATACGATTTAAACGATCACGTTGAGGATTTAAAAATTTTAATGGAGA -AGTTAAATATTCATGAGGCACATATTCTAGGACATGATTTAGGTGGGGTAGTTGCTAAGTTATTTACAGA -TAAATATGCTTATCGTGTAAAATCATTAACTACCATTGCATCGAAGAAAGATGACTTAATACACAGCTTT -ACTCAATTGTTAATTCAATATCAAGATGATATAGCGGGTTTTAATAAGTCTGAAGCGTATATTCTTTTAT -TTTCTAAATTGTTTAGAAATCAAGAGAAGACGATGAAATGGTATCAAAAACAAAGAATATATAGCATTAA -GTCTGAGGATGATAGTGCGGTGGCAATTCGTTCATTAATTTTGCATAAAGATGAACCTATGTATTTAAAA -AAACGTACATGTGTACCTACTTTGTTAATTAATGGGGAACATGATCCTTTGATTAAAGATAAGAATCATT -TTAAATTAGAAGCGCATTTTTTAAATGTAACGAAAAAAATCTTCGAACATTCAGGACATGCACCGCATAT -TGAAGAACCAGAAGCATTTCTAAGTTATTATCTAAATTTTTTAAAAAGCGTATCATAATATGTGATATAT -AAAGCTAGGGCATAAAGCCCTTAGGCAATGTGAAAAAGCTGATTACTATTCATTATTTGATAGAAATCAG -CTTTTTTGAAATGTATTTGATATATACTGCTCGTTAAGCGGCTATCTTCCTTATATTAAGTGCCATTAGT -GCAAAACCGCTTAACAATTAGGTAAAAAGAGCATAAAAAAAGGAAGTTTAATAGAATGTATCATCTATCA -AACTTCACCAAATTGCGCTAAACAAAATTATAGTTCAATTTCGTTGTTTGCTTCAGTGATTCGTTTATTT -ACTCGACTCAATAATGATTCGATTTTTTTACGTTGTTGTGCATTAACAAGAATTAATACAGTTCTTTCAT -CATGCTCATTACGTTTTTTATCGAAGTAATCTTCTTGAGATAAAATTTTAACTGCTTTAACAACTTGTGG -TTGTTTGTAGTTTAAATGATTAATAATATCTTTAAGATAGTATTCTTTCTCTTTGTTTTCGCTGATGTAT -GTCAATACAGCGAATTCTTCAAAGCTAATTGAAAATTCCTTTTTAATTAAACTTTTTAATTTGTCAGCAT -AAGTGACCATTGATAACAACTCAAAGCAATCATTGATTTTTGTAATTGCCATGGTTAAAACCTCCCTATT -TGATGCATCTTGCTCGATACATTTGCCCGATAATATATTGATATCTAATCTTTATTTATTATAGATATGT -TAGTCATAATTTTGCATTAAATAAGTTTTATTAAATATATTTAATGCTCTATTATTTAGTTAATTATAAC -TAATTAAAAATGAGAAGTAAACAAAAAAGTGTTTATAAAACAAATTATTTATTAGACACAGTGATTGTAT -TTCTGGGTTAGCATTTGGATTAGTCAAAAAGATCAGCATTTTTTATTATTTACCTTAATTTAATCGTCAG -TACAAGGTAATTTATTTAATGAAACGATTTAGCGCAATTAAATGTTTCAATATTCAATGTGTATCTAAAG -TGATTCTTTGTCATAGCTTAACGCTTTCAAGTTAACTTCTTCTAATATTTATACCCATTTTTCGAACTTT -TATCACTAAAAAAGAAAAATTTTTATAATTTTTTTAATTTAGTAATTCCCAGTGCAGTTTTAATGATAAG -AAAAATACACTATTTTAATGACAAAAGTAAAACTATAGCACTTTAAAGTAAATGTATAGTAATCCGATTG -ATAACAAGTAATCAATATTAGAAAGTACGATTATGGTTCATAATTTAAAGCATCTTCAATCTTTAAAGTC -GACTCAATGAATGAATTAAAGTTGTACATTTTGACTTATTTTTAATTAATTGAATAACCAACTATGAAAT -ATTAGCACGAATAACATAAATTTTGCTATTAATTTGGTGTAAATTATTAAAAAATAACATTAATTTAGGT -CTTAAGAATGAGTTGACTATCGAATTTGCTAAATTAAAATTTGTTGTGTCAAAGCATACTACCCATATTA -GTACTTATTAAAACTAATTTAGACCACAAAAAATAGCTTATCACTTTTAAAAATAATTACAAGTTAAAAT -GATAAGCTAAATGTTAAATTAAAATAATCTTAAAAATATAATCCCTGTCAATATACACAACAGGCCTATA -GTTTTTCTTGATGTCATAGCTATTTTAGGTGAACCAAATAGGGCAAAGTGATCAATGAGTATGCCCATAA -GTATTTGACCAAACATACCAATAAGTGTTGTTAATGCTGCACCTAAATGGGGCATTAAAATTATATTAGA -TGTTACAAAAGCCATGCCTAGTATACCGCCAGTAAAATAGATAGGTTTTAATTTACCGAATTTTAAATGA -CTTGTTTTTAGTTTTAAAGAACGATTAAAAATAGCGGTTAAAATCAATAGCGTTATTGACCCAATTGTAA -ATGATACTAATGATGCAAAGGCTGGTGAATGAGTATGACTTGCTAATAAACTGTTAATTGTCGTTTGAAT -AGGTGGAAAGAAACCAAAAATAAATCCTAAGAGAAGCCAAAACAATAAATACTTTTGATCAGTTAGTAAT -AAATTATTCTTGTTAAATTGATTCATTATGACGATACCGATAATGAGTAACAATACTCCAATTGCTTTAA -TTAAATTAAAATCATGAATTGTAGCACCAAATAATCCAAATGTATCAATAATGACACCCATAATAATTTG -ACCCGCAACTGTTGCAATTACAGTTAATGTTGCACCTAATTTTGGCAATAACAATAAATTGCCAGTTAAA -TAGCCAACACCGAGTAATCCGCCAACGAACCAAGTATAGTTGAATGTTTGATTACTAAAAAAGTGTAATG -AGAAAACGTCAGGATTTATAAAAATATTTAAGACGATTAAGCATATAGTACCTACTGAAAATGAAATAAA -TGATGTATAGAAAGGTGATTTAGTATACAGTGATAGTCTTGAATTGACAGATGTTTGGATAGGAATAAGC -ATTCCAACTAGGACACCAATGATATAGAAAAGAAGCATATGAATAAAGTCTCACTTTCCAAAGTTAATAA -TAAAAAACATATGTATAGATTATCACTATAGAGAAAAAATACAACTTATTTTTAAAAGAGATAAAAGTAA -AGCGAGTGCCATAATAATACCCCAGTCAATCAAGAAGAAAGACTGGGGCGTTAATGATTATATTCAATGA -ATGACTACCTATGTTTGAGACTATTTCTTTGCTTCAAATAAAACGGTCGTCGTTTTATCAATAATTTGAG -CAGAATGTACTTTGGTGATAGCGCCACTATTAGACTTTAAAATATTTAAATCTACTAATGCATTCATACT -ATCACGTGCAACTTGCTCGGTTACGATGTTGTTTAATTGTGGTAATTGCAATTTGACAGGTTTGTCTAAT -GAAGATTTAAAACTTAATTCAAGTGTTTTGGTCATGAAAGTGTCCTCCTGATTAAATTGATACAGATTTG -ATGACTTCGATGTTATTGTATGTTTCTCCAGTAAGTCGCTCGATAAGTTTGCTAAATGTTTTAATTTGGT -CGTTTGATACTTCAGGATTAATATTGGCGAATCGACGTTTAAATTCTGTTTGTTTACCATTTGTATCTAG -TTTTGTAAATGATAATACAATTGTAATGTGATTTGTTTTACTCATATTTTAAAACCTCCTTTCACACTAT -ATATCGAAAGAAAAAAATAATTGGGTTAATTTTATTATTCTTGTTTAAATTCTATAAAAAAGGTTATAAT -TATATGTGACTTAAATACTTAATGTTTATGATTAAGACACTTAAAGCAAGGAGGGACATATGAACAAGGT -AGAAGTAATTAAATGCAATGATGATATTAATAAAATGTATGACGCGCTCAAAGCTCGATCTGATAGGGAT -TATTTGTTTTTTAAATTAGCTATACATAGTGGTATGAAAATAACAGAATTATTAACAATTACTGTTGAAG -ATACTAAACGACTGATAGAAAAGGGGACACTAAGCGAATTGTGTAAAGCCCATTATCACTCATTGATTAA -AATTAGATTGCCAGAAACATTATCTAATGAGTTACTTCATTATATTGAAAACAAAAGTCTGTCAAATGAA -GATGTATTATTTCAATCATTGAGAACTAATCAAGTATTATCTAGGCAACAAGCCTATCGTATTATTCATC -AAGCAGCAATTAAGGCTGGCATAGAGAATGTAGGACTAACGACATTGCGTAAGACATTTGCGTATCATGC -ATATCAAAAGGGCATACCTATTCCTGTCATTCAAAAGTATTTAGGGCATCAATCAGCTATAGAAACATTG -AATTTTATCGGTTTAGAAAATGAATGTGAACACAGTATTTATATTTCATTACAATTATAACGAAAAAGGA -GGCTAATAATGAGTTTGGTTTATCTATTAATTGCTATACTAGTAATTATGGCGATGATATTATTAACATC -TAAACGTAGAGCAATGGCTAAATATGCAGGATACATAGCGCTGACTGCACCTGTAATAGCATCTATTTAT -TTTTTGTTACAAGTTCCATCAGTAATTAAACAGCATTATTTGTCTGTTTCCATTCCGTGGATGACCTCAT -TAGATATTAATGTAGATTTACGTTTAGATGGTTTGAGTTTAATGTTTTCCCTTATTATTTCCCTTATTGG -AATCGCTGTATTCTTCTATGCAACACAATATTTATCCTCTCGTAAAGATAATTTACCAAGGTTTTACTTA -TACTTAACGCTATTTATGTTTAGCATGCTCGGTATTGTATTAGCTGATAATACAATATTAATGTATGTGT -TTTGGGAACTAACTAGCGTATCATCATTTCTATTAATTTCATATTGGTATAACAACGGAGATAGTCAATT -TGGTGCGATGCAGTCATTTATGATTACAGTATTTGGTGGTTTGGCATTATTAGTTGGTTTTATCATGTTG -TATATCATGACAGGAACGAATAACATCACAGAGATATTAGGACAAGCAGATCATATTAAGAACCATGCTT -TATTTATCCCCATGATTATCATGTTTTTATTAGGTGCATTTACAAAGTCTGCACAATTCCCATTTCATAT -TTGGTTACCAAGGGCAATGGCAGCGCCTACACCTGTAAGTGCATATTTACATTCAGCCACTATGGTTAAA -GCTGGTATCTTTTTATTACTTAGATTTACACCTTTGTTAGGTCTAAGCAATATGTATATTTATATCGTAA -CCTTTGTCGGGTTAATAACTATGTTATTTGGATCAATCACAGCTTTAAAACAATGGGATTTAAAAGGAAT -CCTAGCATACTCTACAATCAGTCAACTTGGGATGATTATGGCTATGGTGGGTATAGGTGGCGGATATGCT -CAACACCAACAAGACGCAATAGCATCTATTTATGTATTTGTGTTATTTGCAGCATTGTTCCATCTTATGA -ATCATGCAATTTTCAAGTGTGCGCTTTTCATGGGTGTAGGGATTTTAGATCATGAAGCAGGTTCAAGGGA -CATACGAATTTTAAGTGGCATGCGTCAATTATTTCCAAAAATGAATCTTGTTATGATGATTGCGGCGCTA -TCTATGGCTGGTGTTCCATTTTTAAATGGATTTTTAAGTAAAGAAATGTTCTTAGATGCTTTAACACAAA -CTGGACAATTGTCCCAATTTAGTTTGATTTCAATGATTATCATCGTATGTATGGGTGTTATTGCTAGTAT -TTTTACATTCACATATGCACTTTACATGGTTAAAGAAGTATTTTGGACTAAATATGATTCTAAAGTGTTT -ACTAAAAAAAATATCCACGAACCATGGTTGTTTAGTTTACCCTCTCTTATATTAATGGTGCTAGTACCTG -TAATCTTTTTTGTGCCAAATATATTTGGGAAGGGGATTATCGTTCCAGCATTAAGAGGTGTATCAGGTGG -TAATCATCAAATTGATCCATTGGTACCACATGTTTCGCAATGGCATGGATTTAACATACCGCTTCTTTTA -ACCATCATCATTATTTTATTGGGTAGTGTACTAGCAATCAAAGTAGATTGGAAAAAAGTGTTCACAGGTA -AAATTAGACAAATTTCAGTTTCAAAAGGGTACGAAATGGTTTACCGACAATTTGAAAAGTTTACTACGAA -GCGATTTAAACGTGTTATGCAAGATCGTTTAAATCAATACATTATTATGACACTGGGCATATTTATGGTA -ATCATCGGATACGGTTATATTCGTATAGGACTACCAAAAGTTCATCAGTTACATGTTTCCGAATTTGGAC -CGTTAGAAGTTATATTAGCAATTGTTACAGTTATCATTGGTTTGTCATTAATATTTATACGTCAACGACT -AACCATGGTCATTTTAAATGGGGTCATCGGTTTTGTTGTAACTTTATTCTTTATAGCAATGAAAGCACCT -GATTTAGCATTGACACAACTTGTAGTTGAAACGATTACGACAATTTTATTTATTGTTAGCTTTTCAAGAT -TACCCAACGTACCAAGGTCTAAAGTTAATAAAAAACGAGAAATAATTAAAATTTCAGTATCTCTTATGAT -GGCGCTGATTGTTGTGTCACTTATTTTCATCGCGCAACAAGCAGATGGATTGGCATCGATTTCTAATTTT -TATCTTAGAGCGGATAAATTAACAGGTGGCAAAAACATTGTGAATGCGATATTAGGAGACTTTAGAGCAT -TAGATACATTGTTTGAAGGTTTAGTATTAATTATTACTGGATTAGGTATTTACACATTATTAAATTACCA -AGATAGGAGGGGACAAGATGAAAGAGAATGATGTCGTTTTAAGAACGGTCACGAAACTCGTTGTATTTAT -TTTATTGACTTTCGGATTCTACGTCTTCTTCGCTGGCCACAATAACCCAGGTGGTGGCTTTATAGGTGGT -TTAATATTTAGTTCCGCGTTTATTTTAATGTTTCTAGCTTTTAATGTCGAAGAAGTATTAGAAAGCTTAC -CGATAGATTTTAGAATTTTAATGATTATTGGTGCATTAGTTTCATCTATTACTGCGATAATGCCAACATT -TTTTGGAAAACCTTTTTTGTCGCAATATGAAACAACATTGACACTACCAATTTTAGGGCACATTCATGTA -ACGACAATAACACTGTTTGAATTGGGCATTTTGTTCTCGGTTGTCGGGGTTATTGTAACGGTGATGCTGT -CTCTTAGTGGAGGTCGATCATGAATTTAATTTTATTACTAGTTATAGGATTTTTAGTATTTATAGGGACA -TATATGATATTATCTATAAATTTAATTCGTATTGTCATAGGTATTTCAATTTATACACATGCTGGTAACC -TTATTATCATGAGTATGGGCACTTACGGCTCTAATAAATCAGAACCGCTGATTACAGGTGGAAATCAATT -GTTTGTCGACCCACTGTTGCAAGCTATTGTATTAACTGCAATAGTTATAGGTTTTGGGATGACTGCGTTT -TTACTTGTCCTCGTTTATAGAACTTATAAAGTAACTAAAGAAGACGAAATTGAAGGCTTAAGGGGGGAAG -ATGATGCTAAGTAATTTGTTAATATTACCAATGTTATTACCATTCCTTTGTGCCTTAATCCTTGTATTTT -TAAAAAATAATGACCGTATTTCTAAATATTTATACTTAGGTACAATGACTATCACCACAATTATTTCATT -AATGCTATTAATTTATGTTCAGCGGCATCGTCCAATTACATTGGATTTTGGTGGTTGGACTGCACCATTT -GGAATACAGTTTTTAGGAGATTCGTTAAGTTTAATCATGGTTACAACCGCTTCGTTTGTGATTACTTTAA -TTATGGCATATGGATTTGGGCGTGGCGAACATAAAGCAAATCGTTATCATTTACCTTCATTTATATTATT -TTTAAGTGTTGGTGTGATAGGCTCTTTTCTAACATCAGATTTATTTAATTTATATGTCATGTTTGAAATT -ATGTTACTTGCGTCATTTGTACTCATTACACTTGGACAATCTGTAGAACAATTACGTGCCGCAATTATTT -ATGTTGTCTTGAATATTATTGGTTCATGGCTATTCTTATTAGGTATAGGTTTACTTTATAAAACAGTAGG -TACATTAAACTTTTCACATATTGCAATGCGTTTGAATGACATGGGAGATAATCGCACTGTTACAATGATT -TCATTAATCTTCTTAGTCGCTTTTAGTGCGAAGGCAGCGCTGGTCCTTTTTATGTGGCTACCCAAAGCAT -ACGCAGTGTTAAATACTGAGCTTGCAGCATTATTTGCAGCGTTAATGACCAAAGTGGGCGCTTATGCATT -GATTCGCTTCTTTACATTATTATTTGACCAACATAATGGTCTTATACATCCATTGCTAGTAACAATGGCA -GCTATAACTATGGTCATCGGCGCTATTGGTGTCATTGCTTATAAAGATATTAAAAAGATTGCAGCTTACC -AAGTCATAATCTCAATAGGATTTATCATTTTAGGTTTAGGAACAAACACGTTTGCAGGTATTAATGGTGC -AATATTTTATTTAGTAAATGATATTGTTGTAAAAACATTGCTATTCTTTATTATTGGTAGTTTAGTTTAT -ATTACTGGTTATCGACAATATCAATATTTAAATGGTTTAGCAAAAAAAGAACCATTCTTTGGTGTTGCGT -TTATTATAATGATTTTTGCTATTGGCGGCGTGCCCCCATTTAGTGGCTTTCCGGGGAAAGTACTTATTTT -CCAAGGTGCATTGCAAAATGGCAACTATATTGGACTAGCGTTAATGATTATTACTAGTCTAATTGCTATG -TACAGCTTGTTTAGAATACTTTTCTATATGTATTTTGGAGATAAAGATGGCGAAGAAGTTCATTTTAAGA -AAATCCCACAATATCGTAAAGGTATTTTAAGTATTTTAGTAGTTGTGGTTATCGCAATCGGGATTGCAGC -GCCTGTGCTGTTAAAAATAACTAATGATGCAACAGAACTTAATACGAACGATCAATTATATCAAAAGCTT -GTTAATTCACATTTGAAAGGAGAGGAATAAATGAATCAAATTGTTTTAAATATTATCATTGCATTCTTAT -GGGTTTTATTTCAAGATGAAGATCATTTTAAATTCTCGACTTTCTTTTCTGGATATCTAATTGGTTTAAT -TGTCATTTATATATTACACAGGTTTTTCAGCGATGATTTTTATGTTAGAAAAATTTGGGTAGCTATTAAA -TTTTTAGGTGTTTATTTATATCAATTAATAACATCTAGCATTAGCACGATTAATTATATTCTTTTTAAAA -CAAAAGATATGAACCCTGGATTACTTTCTTATGAAACAAGACTAACAAGTGACTGGGCAATAACATTTTT -AACAATTTTAATTATTATAACTCCAGGGTCTACAGTAATACGAATTTCTCAAGACTCAAAAAAGTTTTTT -ATTCATAGTATCGACGTGTCTGAAAAAGAAAAAGATAGTTTGTTAAGAAGTATTAAGCATTATGAAGACT -TAATATTGGAGGTGTCGCGATGATACAAACAATCACACATATTATGATTATTAGTTCACTCATTATTTTT -GGAATTGCATTAATCATCTGTTTATTTAGATTAATCAAGGGACCTACAACAGCAGATCGTGTCGTTACAT -TTGATACAACAAGTGCTGTTGTCATGTCTATTGTGGGTGTCTTAAGTGTACTAATGGGCACCGTTTCTTT -CCTAGATTCAATCATGCTCATTGCCATTATATCTTTTGTAAGCTCTGTATCGATTTCAAGATTTATTGGT -GGGGGGTATGTGTTTAATGGAAATAACAAAAGAAATCTTTAGTCTTATTGCTGCTGTGATGTTGTTGTTA -GGTAGTTTTATTGCTCTTATTAGTGCAATAGGTATCGTGAAATTCCAAGATGTTTTCTTAAGAAGTCATG -CTGCAACAAAAAGTTCGACTTTATCCGTGTTATTAACTTTAATTGGTGTATTAATTTATTTTATTGTGAA -TACAGGATTTTTCAGTGTGCGTTTATTACTGTCACTTGTTTTTATTAATTTAACTTCACCAGTCGGCATG -CACTTAGTCGCTCGCGCTGCTTATCGCAACGGCGCTTATATGTATCGAAAAAATGATGATCACACACATG -CATCAATATTATTAAGTTCAAATGAATAAAACTCTACAAAAGCATTACAATTACGTGCTAAAAAACGAGA -AGAGTATCGTAAGAAATGGTATCAAAACGATTGAAGTATTGGCTAAATTGTTAAGCATAACAATACTTTT -GAAGATTTGTTTTCAAAATTAATCATTAAAAGAGTACTTTGAAATTGGTTAGTCGATTTTAAGGTGCTCA -TTTTTTGTATTATAAGTTAATGTTGTTATGTGAAAGCAAGTTGTTTATTTATACAAACAATTAGTGATAA -AATAAAATTAAATAATTGCAAATTTAAGTACTGCAATCGTAGACATATATCTATATTAAAGTGCTTTTGT -GGTCGCTAACTCAATTTATCCTCTAAAGTATAATTACAACGAGATGTGATACTTATTTTTCAATTAAACA -ATACTTTTTAGAGAGGTGAAAGTTTGGAAATATTTGAAACAATTCTTATATTTATAGCTGTTGTGATACT -AAGTTCGTTTGTCCATACTTTCATACCTAAAGTACCCCTAGCATTTATACAAATTTTCTTGGGCATGTTA -CTATTTATTACCCCAATCCCTGTTCAATTTAATTTTGATTCTGAATTATTTATGGTAACAATGATTGCGC -CTTTGTTATTTGTAGAAGGTGTTAATGTTTCTAGAGTCCATTTAAGGAAATATATTAAGCCAGTGATGAT -GATGGCATTAGGATTAGTCATTACTACTGTGATAGGTGTCGGTTTATTTATTCATTGGATTTGGCCAGAT -TTACCTATTGGAGCAGCATTTGCAATTGCTGCCATTCTTTGTCCTACTGATGCAGTAGCAGTGCAAGCAA -TTACTAAAGGAAAGGTCTTGCCAAAAGGAGCAATGACAATTCTTGAAGGTGAGTCATTATTGAATGATGC -TGCTGGTATTATTTCATTTAAAATAGCTGTTGGAGTATTAGTTACAGGTGCTTTTTCACTTGTTGATGCT -GTTCAGTTGTTTTTAATTGCATCAATTGGTGGCGCAGTGGTTGGTTTACTTATAGGTATGGCATTAGTAA -GGTTCCGATTAACATTGATGCGTCGAGGATATGAAAACATTAATATGTTTACAATTATTCAATTGTTAAC -ACCATTTGTTACGTATTTAATTGCTGAATTGTTTCACGCATCAGGAATCATTGCAGCAGTAGTTGCAGGA -CTTGTACATGGTTTCGAACGTGACAGAATTATGCAAGTACGTACACAACTACAAATGAGTTACAATCATA -CATGGAATATACTAGGTTATGTTTTAAATGGCTTTGTTTTTTCAATACTAGGATTTTTAGTACCTGAAGT -TATTATTAAAATTATCAAAACAGAACCGCACAATTTAATCTTTTTAATAGGCATCACTATTGTTGTTGCT -TTAGCTGTCTATCTATTTAGATTTGTTTGGGTTTATGTCTTATATCCTTATTTTTATTTAGCCATCAGTC -CATTCCAAAAAATGATGACTAAAAATGATGATGATAATCCAACGACTGAGAAACCACCAAAGCGAAGTTT -ATACGCTTTAATTATGACGTTATGTGGTGTGCATGGAACAATTTCTTTAGCAATCGCATTAACGTTACCG -TATTTTTTAGCAGGTCATCATGCTTTTACGTATAGAAATGATTTATTATTTATTGCATCTGGTATGGTTA -TTATTAGTTTGGTAGTTGCGCAAGTATTATTGCCATTATTAACGAAACCTGCACCTAAAACAGTAATTGG -CAATATGTCGTTTAAAGTTGCTAGAATTTATATATTAGAACAAGTTATTGATTATCTAAATCAAAAATCT -ACTTTCGAAACAAGTTTTAAATATGGTAATGTGATTAAAGAATATCATGATAAATTAGCATTTTTAAAAA -CTGTAGAGAAAGATGATGAAAACTCTAAAGAATTAGAACGTCTACAAAAAATTGCTTTTAATGTAGAAAC -AAAGACTTTAGAGTCTTTAGTAGATGAAGGACAAATAACGAATAGTGTACTTGAAAACTATATGCGTTAT -GCTGAAAGAACACAAGTATATAGACAAGCATCATTAATAAGAAGAATGATTGTATTATTACGAGGTGCTT -TATTAAAACGAAGAGTACAAACGAGAGTGAACTCGGCATCTTCACTTAGTGTTACGGATAACTTAATGGA -ATTAAATAAAATTAATAAATTAGTCCATTATAATGTGGTTAGTCGTTTGTCTAAGGAAACAACAAAAGAT -AATACACTTGAAGTTGGAATGGTTTGTGACGGTTATTTAATGCGAATTGAAAACTTAACACCATCTAATT -TCTTCAACTCAGCAAGTGAAGATACGATTACTAAAATTAAATTAAATGCATTGAGAGAACAACGTCGCAT -TTTACGTGAGTTGATTGATACAGATGAAGTATCAGAAGGTACAGCGTTAAAACTAAGAGAAGCCATCAAT -TATGATGAAATGGTTATTGTAGATAGTATGACGTAGTTCGTAATTATGCTAAAAGGGATTGATGAAAAAC -TGAATGGCTTTTCATCAATCCCTTTTATTTAGGGGAATTGAATAGATAGTTTTAATTTTTCTCTGTATGA -ACAGCTGTTTTTAATAATATAGATGAAACCATTGCTAATATCATAGCAACAACAATTGATAAGTTGAACT -GATTATCGATAGAAAATAATATACCACCAATTAATGATCCTAATCCGATTCCTAAATTTAATATTGAAAT -ATCATAGCTCAATATTTGACTTGGATCGCCTTTTAAAAATTTAAGTAAAGCATATTGAACTGTTGGATTT -GTTCCCCAATGAAATAAATTCCATGTAAATATAGATAAAATTAAAAGTATGACATTTTGTCCAGTCAATA -AGATGCTCATAATAGAAATAATATAGACAATTATAATGATATTTCCAGCAATCCTATAGCCTTTCTTTTC -AGTTAAATTATTTCCTAATTTTGAACCTAAAACACCTGCAATACCTGAGAAAAATAAACACAAACTTACT -ATCCAGATGCTATGACCTTTACTTTTTACTAAAGGCTCTATATATGTAAATAACATGCTATTAGATATCA -TCATGATTAATAAAAAGCCCAACATGATTAATGTGCCTCTGAAATTTACTAATTGGTATTTAGAATGATT -ATTAATACTATAATGTGATTTATTCGGGATAAATAACATAATACCTAGTAGACATAAAAAAGTGATAATC -GCAATGATATAAAACGGAATCTTCCAATTGTAATGGGAAGCAATTAATGTACCTATGGGTATACCAAGTA -TATTTGCTGCACTAAAGCCTACGTATATGTTAGCGATAACTGATGCTTTGTATTCTACTGGAACAATATT -TGCTCCAGTAGACATTAATTTTACAGTGATTAATGAAGCGATGCCCGCCATAAAGATTCTAACAATACAT -AGAAAGAAATAATTGGTCATTACAGTTGTAAGCATGCTGAAAATAATAAAAAGTATTAAACAGGATACTA -ATAATTTTTTGTCATTAATTTGACTAGTTACCTTTGTTAAGAGAGGGCTTAGAATTGAAAAAGCAACAGC -ATACAATGTTACCAACTGACCTATTAAAGCATTACTTACATGAAATTCTTTACTCATTTCATTTAACATT -CCTACAACAATTAAGTCTGAAACACCAACAATAAACATTGTGAAAAAGCCAATCAAAGTTACAATTTTAA -TATTTGACATATCTTACTCCTCAAAATTAAGTTCTTTAACATTATTAATTATAAAATTTGGATTTTCAGT -GTTTAATACTTCAATACTATGACTTCCCCAAGTTACAGCACAAGAATCAATATTGGCATTTTTAGCCATT -TTAATATCAAAAACAGCATCTCCAACATATATAGTGTCTTTGTTATGTAAGTCATATTTTTGTAATATAT -ATATAATTCCATCAGGAGAAGGTTTATAATTCGTTACTTTATACTTCAACAAATAGATTATCAACACCTA -ATTTAGAAAGATTTCTTTCTAATACATTTGTTTTTTTACTAGAAACAACGAATAACTTATGGTTTTGATG -AAGTGTTTTGAGCTGTTCTTGCATTCCGTCATATATTTTTAAATGTTTTGCTTCAGTTTCTTTATAATTT -TCTCTAAACAATGTCATTAGTTCGGTGAGTTCTTTGTCATTTAGCTTAAAATCACTCATTAAATTAAAAG -ATTTTTCAATCGGAATACCCATATAATATTCTATTTGTTCATCGCTAGGTATATTCAAACCTCTTTTTTG -TGGCCATGTACACCAAAAACACAGGGAAAACCTTGAGATTGAATTACTTCTTGAGAAGTGTTGATTTCAG -CTTCTAACTATGCATGTGAGTTCTTAGAATTTTTTATTTCACTTTGCAAAAGCAACATTTTATCACCTCA -AAATAGTATCGATTAATTTATATTATATATAAATTAATTAAATATTGCAAATTAATTTTATGTAAACTTA -ATTAAAGGGATTTGAAGGTGTTGTTAACATTTGAGATTTAATTGAAATAAGTTTTAAAAATTGGAGGAGA -TAGATTAATCGAAGTCATTTAAAGATGAAGATAAGTGCATTCACAAAAAATAGCCACACTCATATGACAT -CGGATGAGTGTGGCTTAAGGATCTATGGGGGGAGGAAACCATAGATGTTTACTTTGATAGGCCAGATTAA -ATATCAAAGTATGCGATTATTTATAGCTTGATGCAAAAGTGGTATGCCTATTAAAAGTTACTGCACATAG -CTTTTAATATTCCGTTCAAAGGAAAGGGGCATACAATTGAACAATCTGTAATAGTACTTTTAACCAGCTA -TGCTAAAAGTCTAGTAGGGAGAACAGTTGTCCAATCGCATAAGAACCTCTAACTTCGTTAGTACGATTAA -GAAAAGCTTTTTAGTTAGTATGTAATACAATTTATTGACGCGCGTGAATCTCTTTTATAAGAGTGTGTAG -GGAATGGCGTTGTATAAATTGTATTAGAAGAACTTCTAACGCATCTCTGTGGTTAAAAGAGATGAAGGGA -ACGACAGTTTAATTAAAAACACATAAAGCTTTTAACTTTACTCTTTGATTTAAAGAGTGACAAATGTTTA -TAGTTTAATTAAAACTGCATAAGAACTTCTAGCTTTTCTCTTTCGCTCAAAGAGAAGTTCTAATACCACC -ATATCGTGCGATCGGGAACGGTATATATATTAATAGGAGGGTAATATATATTTAACGCACGATATGGGAC -TATTAGCCTTCGACTTTGTTATGTTGATGTGTGGCCTAAAATATTGGAGATACCAATATTTTAGGTTGCA -TCAACATCAATTCATCTTACTTCATTAAAACACAGCGTGTTATTTCATGCTTCCGTGTACAGTTTCAATA -TTTGATTTCATCATTTTGTAGTAAGAGTCACCTTTAGTGCCTTCTTTACCGATTGAATCTGTGTACACTT -CACCAAAGATATCTTTCTTCGTTTCTTCAGATAAACTTTCCATTGCTTTCTTATCAACACTTGTTTCTAC -TAATAAGTGTTTTAATTTGTGCTTTTTAACAAACTCAATAGCTTGTCTCATTTGTTCTGGTGTACCTTGT -TTTTCAGTGTTAATTTCCCAAATATAACCTGGTGTAATACCGTATTGTTTTGAGAAGTACTTGAAGGCAC -CTTCACTTGTAATCATGGCACGTTGTTCTTTTGGAATGTCATTAAATTTGTCTTTACTGTCGTTATTTAA -TTTTTCCAATTGAGCAATGTATTTGTTACCTTGCTTTTCATAATCTGCTTTATGTTTTTTGTCGTTATCG -ATAAATGTTTGTTGAATTGTTTTTACGTATTTAATACCGTTATCTAAACTTAACCATGCGTGTGGATCTT -GTTTATCTTTGTTGCCTTCTTCACCGTTTAAATAGATAGGTTTAACATCTTTTGATACTGCGATAACTTT -TTTATCTTTTAATGATTTACCAGCCTGTTCTAAGGCTTTTTCAAACCAACCGTTACCAGTCTCTAAATTT -AATCCGTTGTATAAAATAACGTCAGCGTCAGTTAACTTTTTAATATCTTTAGGTTTAACTTCATATTCAT -GAGGATCTTGACCAACAGGTACAATACTATGAATATCGACGTTGTCTCCACCAACATTTTTAGCCATATC -ATATAAAATTGAATTCGTCGTTACTACTTTTAGTTTGCCATTTGACTTATCACTGCTTTGTTTACCACCA -GTACCACATGCAGCAACTAAAAGTAATAAGGCTAATAATAAAGGTACTAATTTTTTCATGTTAAACTTCC -TCGTTTCTTTCTATTCGTAAATTTTGTGAAAAATAATGTGATGATATAAATTACAAACGTACAAAGTACG -ATTGTTGCACCACTAGGAATGTTGTAAATATAGCTGTAATAAAGTCCGACAATTGAACTTATGACACTTA -TTAAACTTGCTATAATCATCATTGAGTATAGTTTTTTACTAATTAAAAATGCTGTAGATGCAGGTGTAAT -TAATAATGCAACTACAAGAATAATACCTACCGTTTGAATACTTGCTACTGTTACTAATGAGAGTAACAAC -ATCACAAAGTAATGTAATAACGTCGTATTTAGACCACTCATTCTACTAAAAGTTGGATCGAATGTAGAAA -TCATTAATGGACGATAGAAAATAATGATTAGAATAAGGACGATTGAACCAATCACTATAGTTGTTAAAAA -TGCACTATTTGTGATTGCCAGTAAATTACCAAACAGAATATGGTACAAATCTGTCGTAGTGTTTATTAAG -CTAATAATAATAATCCCCGAAGCTAAGAAAGCGGTAAAACTAATTCCAATAGCGGCGTCAGGTTTCGTTT -TACTACTAGATGTGATATAACCGATAAAAATACTTGCGATCATACCAGTTATAAGTGCGCCTACAAACAT -TGGAATACCAAATAAGAATGATAGGGCAACACCAGGTAATACTGCGTGACTCATTGCATCTCCCATTAAT -GAAAGACCACGTAATACAATTAAACTACCAACTGTACCACAAACTATCCCTACAATAATTGAAGTTATCA -ATGCTCGATTCAAGAATTGATATGTAAATAAATGTTCGACAAACTCTAACATGTTATATTGCTCCTTTGA -CTAGGGTCACTACAGTCAGTGCTACTCATAAATGTTTCGTTTAAGCGAGTGACACTCATAGCCTCTTCAC -TATCACCAAAGTATCGTAATGTTTGATTTAATAGAATAATGCGATCAAAGTATTGCTTTGCTTTTGATAA -ATCATGGTGGATGATAAGAATAAGTTTTCCTTGTTGTTTTAAGTTCTCGATTTTTGTCATGATTAATTTT -TCACTACTAAAATCAATTCCGACAAACGGCTCATCTAGAAAATAAACTTCACTTTCGGACATCAATGCTC -TCGCTACTAGCACACGTTGTAATTGTCCACCACTTAATTCTGAAATTTGTCGATGACGTAAAGATTCTAA -TTCTAAATCGCTTAATAACTGTTTGAGTTTATCCCTTGCTGATTTATTAGGTCGTCTAAACCATCCAATT -TCTTTGTAGCAACCTGATAAAATCACTTGTTCCACACTTATAGGAAAATCTAAATCAATATGTGCTTTTT -GTGGAATATATGTAATATGTTGCAGTTGTTGTTGTATAGGTTTGTTATGTAACAATTTAGTACCGGTAGC -ATTAAATTCACCAATTAAAGACTTGATAAGGGAAGATTTACCAGCACCATTCGGGCCCATGATACCAATT -ATTTCGCCGCGTACTGGTATCGATAAGGAAATGTTTTTAAGTACATGCTTATTACCTAAAAACAGATTTA -AATCTTTTGTTTCTAACAAACGTTTATACCTCCTAATTAAAAGTTTAGGCTAACCTAATTAATTGTATAA -TAAACTGAGAATATTTATCATGTCAAGTAAATTCGTGATATAATATAGACAATGTATGTGAGGTGAAAGT -ATGTTAACTGAAGAAAAAGAGGACTATTTAAAGGCAATCCTTACGAATAATGGCGATAAAAATTTTGTGA -CAAATAAAATCTTATCTCAATTTTTAAATATTAAGCCTCCATCTGTAAGTGAAATGGTAGGACGTCTCGA -AAAAGCAGGCTATGTTGAAACAAAACCGTACAAAGGTGTTAGATTAACAGAGGATGGTTTAACGCATACG -CTTGATATCATTAAGAGACATCGACTATTAGAATTATTTTTAATAGAAATATTGAAATATAATTGGGAAG -AAGTACATCAAGAAGCAGAAATTTTAGAACATCGAATTTCAGATTTATTTGTTGAAAGGCTGGATAGCTT -GTTAAATTTCCCAGAAACTTGCCCGCACGGCGGTGTGATTCCTAGAAATAATGAATATAAAGAGAAATAT -ATAACAACGATTTTGAATTATGAACCTGGTGATATCGTTACAATCAAACGTGTGAGAGATAAGACTGATT -TGCTAATATATTTGTCTAGTAAAGATATCTCTATTGGTAATGAAGTGGAAATTGTATCGAAAGATGAAAT -GAATAAAGTAATTATCATCAAACGTAATGATAATGTAATTATTGTCAGTTACGAAAATGCAATGAACATG -TTTGCTGAAAAATAAAATAAAGAAGCCATAAAGATATCCATGATTGTACTGATAAAGACATATGGATAAT -TGCTTTAGGCTTCTTTTTTATTAGTTAATTTATCAAGTGAGTATATTTGAGTAAAATATTCACTGCATAA -AGATTGAAGATAATCCAGATTGTACTATAAATGAAGATAGGTACATGACTGAGTTCTTTAAGTGCACTAC -CATCCCACTGTGGACTCGGACGCTGGAAAGTCAATTTAGCAATCGTCCAACTAGATTGTAGAACTTCGCC -TAATAATACACCTAAAATATATTGATAACTCATTGTGACAAGTAGTTGAATTTCTACTATATTTTCATCT -TTTAATATAAAATACAACATGATAGAAATTAAAGTTATAACAACAATGGGTGAGCCTTTTCTAGATGTTA -AAATTAAAAAATAAATAAATATCAATAAATAGGTAAATATAAAGAAACTAGGTATCTGATAATGGCTCGA -CGCTAGACCAATCAATAACATAATAGGTGGCATAAAATAACCACCAATCGTTGTAAGCCATTGGCCTGCT -AGATGTCTAGATTGTGTAATTGCGAATCCTTGTTGTAATGTCTGTTGTCGCTCTCGTGGGCTTGTTACAA -TGACTAAATCTTTTGCACGGCCACCAGCGAGTTTATTAAACAGTACATGACCAAATTCATGTGTTAAAAC -AGGGATATAGTTTAAAATGACATCTAAATAGTTCAAAACAGGCTTATGTCTATATTGATGAATAGCAATA -TAACAAGCTGCAACAATAACGATAATGTATATATTAAGTTGAATTGTCGTATTAAAAAAGTTGGATAAAT -AATTCATTGTTAACCTCATATAAGATATTAATTTAAAGTTTGCTTATCACTTATTATAAATGATATTGGC -ATCAATAGCGTTAGACTTTAGACTTACCTTAGTTAAACTAATTTTAATTTTTGAAAAGGTGAATATGTGT -TAAAATAAAGCAAAATCATTTCGATATAAATAGGATGAATATAAATACTGTTAATATTGATTACACTAAC -ATAATAATGAAATAAGATAGGAGATTCCTGTTATGACTGTTGAAGAAAGATCCAATACAGCCAAAGTTGA -CATTTTAGGGGTCGATTTTGATAATACAACAATGTTGCAAATGGTTGAAAATATTAAAACCTTTTTTGCA -AATCAATCAACGAATAATCTTTTTATAGTAACAGCCAACCCTGAAATAGTGAATTACGCGACGACACATC -AAGCGTATTTAGAGTTAATAAATCAAGCGAGCTATATTGTTGCTGATGGGACAGGAGTAGTCAAAGCTTC -GCATCGTTTAAAGCAACCTCTAGCGCATCGTATACCTGGTATTGAGTTGATGGATGAATGTTTGAAAATT -GCTCATGTAAATCATCAAAAAGTATTTTTGCTAGGGGCAACTAATGAAGTTGGAGAAGCGGCACAATATG -CATTGCAACAAAGATATCCAAACATATCGTTTGCACATCATCATGGTTATATTGATTTAGAAGATGAGAC -AGTAGTGAAACGAATTGAACTGTTTAAACCTGATTACATATTTGTAGGTATGGGATTCCCTAAACAAGAA -GAATGGATTATGACACACGAAAATCAATTTGAATCTAAAGTGATGATGGGCGTAGGTGGTTCTCTTGAAG -TATTTGCTGGGGCTAAAAAGAGAGCGCCTTATATCTTTAGAAAATTAAACATTGAATGGATATATAGAGC -ATTAATAGATTGGAAACGTATTGGTAGATTAAAGAGTATTCCTATATTTATGTATAAAATAGCCAAAGCA -AAAAGAAAAATAAAAAAGGCAAAATAGTCATGATGACAAAATAAAACCGAGGAAATCCTTAAATGGAGAT -TCTCGGTTTTTTCGGTTTATTTAATAACGAAGCGGGACTCATCGAGTTTGTTTCTAAATTCTTTTTGTTC -GGCTTTGGATTTCTTTTTAAAATCGTTTAGGAAAGCTTCATATTTAGGTAATACATCATCAAGTTCACCG -TAATCTTTTAACTTTCCGCCTTCAATCCAAGCAATCTTAGTACAAAATTGTCTCACTTGGCCTAAGTTAT -GACTAACGAAAAAGATGGTTTTGTTTTGCTCTTTAAACTCGTAAATATTATCTAAACATTTTTGTGCAAA -AGTTTGGTCACCTACAGATAAAGCTTCGTCAATGACTAAGATATCTGGATTAACTGTGATATTAATTGAA -AAACCAAGTTTTGCACGCATACCACTTGAATACTTTTTAACTGGTTGATAGATAAACTCACCAAGTTCAC -TAAATTCAATAATCTTAGGTGTCATCGCTTTAATTTCTTTACGCTTAAAGCCCATACATAACATTTTAAA -TTCGATATTTTCAATCCCTGTAAGTTGTCCACTCAAGCCAGCACTAATTGCGATAACGCTGACTTCACCA -TTACGATCCACTTTTCCAACAGTAGGCGACAATGAACCCCCAATGATATTGCTCAACGTTGATTTGCCGG -AACCATTGATGCCAACAAGCCCTATGACGTCACCTTCATATGCTTTTAAACTAATGTCATCTAAAGCGAA -AAATGTTTTGTTTTTATGTTTGGGAATGAGCGCATCTTTCATACGTTCTTTATTTGTACGATAAATACGA -TATTCTTTTGTTACATTTTTAATGTTTACCGAAACGTTCATTTGTAGACCTTCCTTATTCACATTTATCT -AGATTATAATATACTACTCAACAGTTGTTAAATTTTAAAACCTGTTGTAAAGTGTATAGAAGATTTTGTT -ATTATCAGAGTTGGTGTTTTGACACAAAATGTTAATCATCAATGATAACAATGATATTTAAAAACTAAAC -TTATTTCAACTTACATGATTGTATACTATAATGTATTTGTAATAAACTAATATTTTAAAGAACTAGACAA -TAATTTTGATAGCATCCATGTATAGTGATAGTATTTACAACAATTATTATAATACTATTTAGTTAAGTAG -AGAAATAGTTAAACATTTGAAAGTGTGGTTTAATGGAATGTCAGCAATAGGAACAGTTTTTAAAGAACAT -GTAAAGAACTTTTATTTAATTCAAAGACTGGCTCAGTTTCAAGTTAAAATTATCAATCATAGTAACTATT -TAGGTGTGGCATGGGAATTAATTAACCCTGTTATGCAAATTATGGTTTACTGGATGGTTTTTGGATTAGG -AATAAGAAGTAATGCACCAATTCATGGTGTACCTTTTGTTTATTGGTTATTGGTTGGTATCAGTATGTGG -TTCTTCATCAACCAAGGTATTTTAGAAGGTACTAAAGCAATTACACAAAAGTTTAATCAAGTATCGAAAA -TGAACTTCCCGTTATCGATAATACCGACATATATTGTGACAAGTAGATTTTATGGACATTTAGGCTTACT -TTTACTTGTGATAATTGCATGTATGTTTACGGGTATTTATCCATCAATACATATCATTCAATTATTGATA -TATGTACCGTTTTGTTTTTTCTTAACTGCCTCGGTGACGTTATTAACATCAACACTCGGTGTGTTAGTTA -GAGATACACAAATGTTAATGCAAGCAATATTAAGAATATTATTTTACTTTTCACCAATTTTGTGGCTACC -AAAGAACCATGGTATCAGTGGTTTAATTCATGAAATAATGAAATATAATCCAGTTTACTTTATTGCTGAA -TCATACCGTGCAGCAATTTTATATCACGAATGGTATTTCATGGATCATTGGAAATTAATGTTATACAATT -TCGGTATTGTTGCCATTTTCTTTGCAATTGGTGCGTACTTACACATGAAATATAGAGATCAATTTGCAGA -CTTCTTGTAATATATTTATATGACGAAACCCCGCTAACCATTAATAAATGGAAGTGGGGTTCATTTTTGT -TTATAATTTAAGTAAATAACATATTAAGTTGGTGTATTATGAACGTTTTAATAAAGAAATTTTATCATTT -GGTAGTTCGAATACTTTCTAAAATGATTACGCCTCAAGTGATTGATAAACCGCATATCGTATTTATGATG -ACTTTTCCAGAAGATATTAAGCCTATCATCAAAGCATTAAATAATTCGTTGTATCAGAAAACGGTTTTAA -CAACACCAAAACAAGCGCCTTATTTATCTGAACTTAGCGACGATGTTAATGTGATAGAAATGACTAATCG -AACACTGGTAAAACAAATTAAGGCTTTGAAAAGCGCGCAGATGATTATTATCGATAATTATTACCTATTA -CTAGGTGGATATAATAAGACTTCTAATCAACACATTGTTCAAACGTGGCATGCAAGTGGTGCGTTAAAAA -ACTTTGGCTTAACAGATCATCAAGTCGATGTGTCTGACAAGGCAATGGTTCAGCAGTACCGTAAAGTTTA -TCAAGCGACAGATTTTTACTTAGTGGGTTGTGAACAAATGTCACAATGTTTTAAACAGTCTTTAGGTGCA -ACAGAAGAGCAAATGTTGTATTTTGGGCTTCCGAGAATTAATAAATATTACACAGCTGATAGAGCAACGG -TTAAGGCAGAGTTAAAGGATAAATATGGAATTACAAATAAGTTGGCATTATATGTACCAACATATAGAGA -AGATAAAGCAGATAATAGGGCTATTGATAAAGCTTATTTTGAAAAATGTTTACCAGGATATACACTGATT -AATAAACTACATCCATCAATTGAACATTCAGACATTGATGATGTATCTTCGATCGATACGTCTATATTAA -TGTTAATGTCAGATATAATTATTAGCGACTATAGTTCGCTGCCAATAGAAGCTAGCTTGTTAGATATTCC -AACTATATTTTATGTGTATGATGAAGGAACATATGATAAGGTGAGAGGCCTGAATCAATTTTACAAAGCA -ATACCGGATAGCTACAAAGTGTATACTGAAGAGGATTTAATAATGACGATACAAGAAAAAGAACATCTAT -TAAGTCCATTATTTAAAGATTGGCATAAGTATAATACTGATAAAAGTTTACATCAGCTCACAGAATATAT -AGATAAGATGGTGACAAAATGAGGCTTACGATAATCATACCTACATGTAATAATGAGGCAACAATTCGAC -AATTGTTAATCTCTATTGAGAGTAAAGAACACTATAGAATCCTTTGTATTGATGGTGGTTCTACTGATCA -AACAATTCCTATGATTGAACGGTTACAAAGAGAACTCAAGCATATTTCATTAATACAATTACAAAATGCT -TCGATAGCTACGTGTATTAATAAAGGTTTGATGGAGATCAAAATGACAGATCCACATGATAGTGACGCAT -TTATGGTCATAAATCCAACATCAATCGTATTGCCAGGTAAATTAGATAGGCTAACTGCAGCATTCAAAAA -TAATGATAATATTGATATGGTAATAGGGCAGCGAGCTTACAATTACCATGGTGAATGGAAATTGAAAAGT -GCTGATGAGTTTATTAAAGACAATCGAATCGTTACATTAACGGAACAACCAGATTTGTTATCAATGATGT -CTTTTGACGGAAAGTTATTCAGTGCTAAATTTGCTGAATTACAGTGTGACGTAACTTTAGCTAACACTTA -CAATCACGAAATACTTGTCAAAGCGATGCAAAAAGCTACAGATATACATTTAGTTTCACAGATGATTGTC -GGAGATAACGATATAGATACACATGCTACAAGTAACAATGAAGATTTTAAAAGATATATCACAGAAATTA -TGAAAATAAGACAACGAGTCATGGAAATGTTACTATTACCTGAACAAAGGCTATTATATAGTGATATGGT -TGATCGTATTTTATTCAATAATTCATTAAAATATTATATGAATGAACACCCAGCAGTAACGCACACGACA -ATTCAACTTGTAAAAGACTATATTATGTCTATGCAGCATTCTGATTATGTATCACAAAATATGTTTGACA -TTATAAATACAGTTGAATTTAATGGTGAGAATTGGGATAGAGAAATATACGAATTGTGGCGACAAACATT -AATTCAAGTGGGCATTAATAGGCCGACATATAAAAGATTCTTGATTCAACTTAAAGGGAGAAAGTTTGCA -CATCGAACAAAATCAATGTTAAAACGATAATGTGTACATTGATGACCATAAACTGCAATCCTATGATGTG -ACAATATGAGGAGGATAACTTAATGAAACGTGTAATAACATATGGCACATATGACTTACTTCACTATGGT -CATATCGAATTGCTTCGTCGTGCAAGAGAGATGGGCGATTATTTAATAGTAGCATTATCAACTGATGAAT -TTAATCAAATTAAACATAAAAAATCTTATTATGATTATGAACAACGAAAAATGATGCTTGAATCAATACG -CTATGTCGATTTAGTCATTCCAGAAAAGGGCTGGGGACAAAAAGAAGACGATGTCGAAAAATTTGATGTA -GATGTTTTTGTTATGGGACATGACTGGGAAGGTGAATTCGACTTCTTAAAGGATAAATGTGAAGTCATTT -ATTTAAAACGTACAGAAGGCATTTCGACGACTAAAATCAAACAAGAATTATATGGTAAAGATGCTAAATA -AATTATATAGAACTATCGATACTAAACGATAAATTAACGTAGGTTATTATAAAATAAATATAAAACGGAC -AAGTTTCGCAGCTTTATAATGTGCAACTTGTCCGTTTTTAGTATGTTTTATTTTCTTTTTCTAAATAAAC -GATTGATTATCATATGAACAATTAGTGCTAATCCAGCGACTAGGCATGCACCACCAATGATAGTGAATAA -TGGATGTTCTTCCCACATACTTTTAGCAACAGTATTTGCCTTTTGGATAATTGGCTGATGAACTTCTACA -GTTGGAGGTCCATAATCTTTATTAATAAATTCTCTTGGATAGTCCGCGTGTACTTTACCATCTTCGACTA -CAAGTTTATAATCTTTTTTACTAAAATCACTTGGTAAAACATCGTAAAGATCATTTTCAACATAATATTT -CTTACCATTTATCCTTTGCTCACCTTTAGGCAATATTTTTACATATTTATACTGATCAAATGAACGTTCC -ATTAATGCATTCCCCATCATATTACGTTGCTTCTCGCCACCAAGGTTTTTATAGTCTCCTGCACCCATGA -TAACTTGATTAATTCTAAATTTACCTCGTTTAGTAGTAATCGTATGGTTGTAATTTGCTGTATCACTTGA -TCCAGTTTTTAAACCATCTGTACCAGGCAAACTCATTTTTGCACCTTCCAATGAAAAGTTGAATGTGTAA -TACGTAACTGCATGCGTTGTTGGTGCTAACTGCTTTGTAAAGTCTAATATTTTAGGTGTCTCTTTAATCA -CGTGTAAATCTAAAATGGCGTAGTCTCTAGCAGTCGTTACAGTACGTTCTTGGTCTTTATATTTTGTTGG -TGCAAATGTACGTAATCTTGAATTTTCAGCACCCGTTGGATTGACGAAATGTGTATTTTTCATTCCGATA -GCTTTAGCTTTGTTATTCATTAAATCAACGAAATCGCTGGTGTTTTTTGATACCTTCTTAGCTAAAATTA -ATGCCGCGGCATTACTAGAATTAGATACTGTAATTTGTAATAGGTCTGCGATTGTCCATACTTGTCCAGG -ATATAGTTTCGTATTACTCAACTCAGGTAGTGTAGACATAATATATTCTTTGTTCGTCATTGTGACTGTG -TCATCAAGTGAAAGCTGCCCCTTATTTACAGCTTCCAATGTTAAGTACATTGTCATTAATTTAGTCATAG -ACGCTGGATTCCACTTAGTATCGATATTGTATTGATACAGTAATTGTCCAGTTTGACTAACATTAACAGC -ACTCGTCGGTTCGTATGCAGCCGACAAACCTGCATAACCATATTGATTTGCTGCTTGTACAGGGGTTACG -TCACTGTTAGCAGCTTGTGCATATGGTGTCATAATACTTAATGTTAAACATAAAATGATGATAATAGATA -TTAAATTTTTCATAAAGCGTTAATCTTCCCTTTTCCAATTCTTAAATATTCCCTAAAAGCAATGGTCATT -CCTACTTACGGAAATCATTGCTAATTCACTTCACCTTAATTAAATTGTTGAAAATTAAGTTTCTTGCGGT -TTATTTGAAAAATAATGCAAATATATTACGTACGTAGCTAAAGATGTTATAATGTTTGTACGAAGAGCAA -ACTTACTCAAAAGTGATTAATTATCATGTTTTAATATAAAAACTTTGAGAAGTTATTACAAAAAATGCAA -TAGAAATATTCTATCATATAAATGTTATGAGCGGTATTTTGGGGCAATACTTTATTTGATTTTTAAAGTT -TTGTTGGGAGAAAATATATGATAGAAATGCATGTATCTATCTAAATGAATTAACTATAAATTTCAAACAG -AAGAGGTAAAACTATGAAACGAGAAAATCCATTGTTTTTCTTATTTAAAAAACTATCATGGCCAGTGGGT -CTTATCGTTGCAGCTATCACTATTTCATCACTAGGGAGCTTAAGTGGACTATTAGTGCCACTGTTTACTG -GACGAATTGTAGATAAATTTTCCGTGAGTCATATCAATTGGAATCTAATCGCATTATTTGGTGGTATCTT -TGTCATCAATGCTTTATTAAGCGGATTAGGTTTATATTTATTAAGTAAAATTGGTGAAAAAATTATTTAT -GCGATACGCTCAGTTTTATGGGAGCATATCATACAATTAAAAATGCCATTCTTTGACAAAAATGAAAGTG -GTCAATTAATGAGTCGATTAACTGACGATACGAAAGTGATAAATGAATTTATTTCACAAAAGCTACCTAA -CTTATTACCATCAATCGTTACATTAGTTGGGTCACTAATCATGTTATTTATTTTAGATTGGAAAATGACA -TTATTAACATTTATAACGATACCGATATTTGTTTTAATTATGATTCCTCTAGGACGTATTATGCAAAAGA -TATCGACAAGTACACAATCTGAAATTGCAAACTTTAGTGGTTTGTTAGGGCGTGTCCTAACTGAAATGCG -TCTTGTTAAAATATCAAATACAGAGCGACTTGAATTAGATAATGCACATAAAAATTTGAATGAAATATAT -AAATTAGGTTTAAAACAGGCTAAAATTGCGGCAGTTGTACAACCAATTTCAGGTATTGTTATGTTGCTAA -CAATTGCAATTATTTTAGGTTTTGGTGCATTAGAAATTGCGACTGGTGCAATCACTGCAGGTACATTAAT -TGCAATGATATTTTATGTTATTCAATTATCGATGCCTTTAATCAATCTTTCAACGTTAGTTACAGATTAT -AAAAAGGCAGTCGGTGCAAGTAGTAGAATATACGAAATCATGCAAGAACCTATTGAACCGACAGAAGCTC -TTGAAGATTCTGAAAATGTATTAATTGATGACGGTGTGTTGTCATTTGAACATGTAGACTTTAAATATGA -TGTGAAGAAAATATTAGATGATGTGTCGTTCCAAATCCCACAAGGGCAAGTGAGTGCTTTTGTAGGTCCT -TCTGGATCTGGTAAAAGTACGATATTTAATCTGATAGAACGTATGTATGAAATTGAGTCAGGTGATATTA -AATATGGCCTTGAAAGTGTCTATGATATCCCGTTATCTAAGTGGCGACGCAAAATTGGATATGTTATGCA -ATCAAATTCGATGATGAGTGGTACAATTAGAGACAATATTTTATACGGAATTAATCGCCATGTTTCAGAT -GAAGAACTTATTAATTATGCTAAATTAGCGAACTGTCATGATTTTATCATGCAATTTGATGAAGGATATG -ACACGCTTGTAGGTGAACGAGGATTGAAACTGTCTGGCGGACAACGTCAACGTATTGATATTGCTAGAAG -TTTTGTTAAAAATCCTGATATTTTGTTACTTGATGAAGCAACAGCTAATCTCGATAGTGAAAGTGAATTG -AAAATTCAAGAAGCTTTAGAAACATTGATGGAAGGTAGAACAACGATTGTCATTGCGCATCGTTTGTCTA -CAATTAAAAAAGCCGGTCAAATTATATTCTTAGACAAAGGACAGGTAACAGGTAAAGGTACGCATTCAGA -ACTGATGGCATCACATGCGAAGTATAAAAACTTTGTAGTGTCTCAAAAATTAACAGATTAAATTTATATA -TATAAGTAAGCTTGGAGCAAGTACAGATATACCATCGAGAAAATTAAAATGTGGCACATTGATGGATATA -GATGTTAATAAATTGCTTCAAGCTTTTGTCTATTTTAAATCATGTGAGAAGTTACGACATAATAATTCTT -AAATTAATGAAATCGATATTTTAAGAAAAAAATGCTCATGGTATAATACAAGTTATAAGCAAACATACAT -ATATTAAATACTGTAGCCACGAGTCATAATTCTTCATATTTTACATAGCAATTTAACTGATTTTAGAGTC -CACGGTACAGAAGTTTGATATTTCAATGTTTCTAAATTTTTAAAAAATTAAATCATAGGTGGGTGCCAAA -TGTTTTTATTAATCAACATTATTGGTCTAATTGTATTTCTTGGTATTGCGGTATTATTTTCAAGAGATCG -CAAAAATATCCAATGGCAATCAATTGGGATCTTAGTTGTTTTAAACCTGTTTTTAGCATGGTTCTTTATT -TATTTTGATTGGGGGCAAAAAGCAGTAAGAGGAGCAGCCAATGGTATCGCTTGGGTAGTTCAGTCAGCGC -ATGCTGGTACAGGTTTTGCATTTGCAAGTTTGACAAATGTTAAAATGATGGATATGGCTGTTGCAGCCTT -ATTCCCAATTTTATTAATAGTGCCATTATTTGATATCTTAATGTACTTTAATATTTTACCGAAAATTATT -GGAGGTATTGGTTGGTTACTAGCTAAAGTAACAAGACAACCTAAATTAGAGTCATTCTTTGGGATTGAAA -TGATGTTTTTAGGAAATACTGAAGCATTAGCCGTATCAAGTGAGCAACTAAAACGTATGAATGAAATGCG -TGTATTAACAATCGCAATGATGTCAATGAGCTCTGTATCGGGAGCTATTGTAGGTGCGTATGTACAAATG -GTACCAGGAGAACTGGTACTAACGGCAATTCCACTAAATATCGTTAACGCGATTATTGTGTCATGCTTGT -TGAATCCAGTAAGTGTTGAAGAGAAAGAAGATATTATTTACAGTCTTAAAAACAATGAGGTTGAACGTCA -ACCATTCTTCTCATTCCTTGGAGATTCTGTATTAGCAGCAGGTAAATTAGTATTAATCATCATCGCATTT -GTTATTAGTTTTGTAGCATTAGCTGATCTATTTGATCGTTTTATCAATTTGATTACAGGATTGATAGGAG -GATGGATAGGCATAAAAGGTAGTTTCGGTTTAAACCAAATTTTAGGTGTGTTTATGTATCCATTTGCGCT -ATTACTCGGTTTACCTTATGATGAAGCGTGGTTGGTAGCACAACAAATGGCTAAGAAAATTGTTACAAAT -GAATTTGTTGTTATGGGTGAAATTTCTAAAGATATTGCATCTTATACACCACACCATCGTGCGGTTATTA -CAACATTCTTAATTTCATTTGCAAACTTCTCAACGATTGGTATGATTATCGGTACATTGAAAGGAATTGT -AGATAAAAAGACATCAGACTTTGTATCTAAATATGTGCCTATGATGCTATTATCAGGTATCCTAGTCTCA -TTATTAACAGCAGCTTTCGTTGGTTTATTTGCATGGTAATATGTCGAAGAGTGACTACGATAATACATTT -TAACTAAAAAAGATGTCCAGGCATGTCGTCTATTGATATAGGTGAGATGCTTGGACTTTTTTATTATTGA -TATAAAGATATTTAAATATTTTTAAAGTTATCGAAATTGATGCAATATAAAAACCAAGTGCACATGGTAA -TACACTTGGCTTTTATGGGAAATGAATATTATTGTACATATGACAGTAAGGACTAGGTACAGTCATAGTA -CTTCGAGCAAAATTTGTTTTGTTATTATAAACAACACAAAGGAGATAACTTCTCTATTGAAGAAGTTAAA -AACATTATAGCAGACAATGAAATGAAAGTAAATTAAAAATTCAGAATATTTTTAATTATTATATTGTGAG -TGATATTTATTAGGGAAAGCTATTCTTCATATAAATTAGTTAAATAGTAAATCTTTGTTAGAACTCTTTC -CATAGAGTTGTGACAGTATTTTTGTTGTGCTACTATTTTTATAGTCTAATAAATATATAAAGGGGATGGT -TTCGTGAATAAAACGGTTAAAGATTTAATACTAGTTGTCTTAGGTTCATTTATCTTTGCTGCAGGTGTAA -ATGCATTTATTATTTCTGGTAACTTAGGTGAAGGTGGGGTTACAGGTTTAGCAATTATTTTATATTATGC -GTTTCATATTTCACCAGCCATCACTAACTTCTTGGTCAACGCAGCATTGATTGCCATAGGTTATAAATTT -TTGAGTAAGAGAAGTATGTACTTAACTATTCTTGTAACAATTCTTATTTCAATATTTCTGAGTTTAACAG -AATCATGGCAAGTAGAAACTGGAAACAGCATTGTGAATGCCATTTTTGGTGGTGTAAGCGTTGGACTAGG -AATCGGAGTAATTATCCTTGCAGGCGGTACAACAGCAGGTACAACAATTTTGGCGAGAATTGCAACGAAA -TACCTCGATGTAAGCACGCCATATGCTTTGCTTTTCTTTGATATGATCGTTGTTGCAATTTCACTTACAG -TTATTCCACTTGATAAAGTATTAGTAACAGTAATATCACTTTATATAGGAACAAAAGTGATGGAATATGT -CATAGAAGGTTTAAACACTAAAAAAGCTATGACGATTATTTCAACTAATCCCGACAAACTTGCCAAAGCA -ATAGACGAGCAAATTGGAAGAGGTTTAACCATTTTAAACGGACATGGCTATTATACACGTGAAGAAAAAG -ATGTCTTATACGTTGTTATTTCTAAAACACAAGTATCAAAAGCAAAGCGATTAATTAAACAAATCGATAA -AGATGCATTCCTCGTAATTCATGATGTAAGAGATGTCTATGGTAATGGTTTTCTTGCAGATGAATAAATA -AATGGTAAGAGCACACATACTTAAATAGAAGTCCGCGGACAAGTTTTTGAATTATGAAGACTTATCTGTG -GACGTTTTTTATTTTATAAAAGTAATATACAAGACATGACAAATCGAGCTATCCAATTTAAAAAGTAATG -TTAGTCAATAAGATTGAAAAATGTTATAATGATTTTCATGATAATCATTATCAATTGGGATGCCTTTGAA -AATTGATAATTTAAAAATAGAAATTATTTTTTATAAACAGAAAGAATTTTATTGAAAGTAGGGAAATTAT -GAATCGTTTGCATGGACAACAAGTTAAAATTGGTTACGGGGATAACACGATTATAAATAAATTAGATGTT -GAAATACCAGATGGCAAAGTGACGTCAATCATTGGTCCTAACGGCTGCGGGAAATCTACTTTGCTAAAGG -CATTGTCACGTTTATTGGCAGTTAAAGAAGGCGAAGTATTTTTAGATGGTGAAAATATTCATACACAATC -TACGAAAGAGATTGCAAAAAAAATAGCTATTTTACCTCAATCACCTGAAGTAGCAGATGGCTTAACTGTT -GGAGAATTAGTTTCATATGGTCGTTTTCCACATCAAAAAGGATTTGGTAGATTAACTGCTGAGGATAAGA -AAGAAATTGATTGGGCAATGGAAGTTACAGGAACTGATACATTCCGACACCGCTCAATCAATGATTTAAG -TGGTGGTCAAAGACAACGTGTTTGGATTGCAATGGCATTAGCACAAAGAACTGATATTATCTTTTTAGAC -GAACCAACCACATATTTAGATATCTGTCATCAATTAGAAATACTAGAATTAGTTCAGAAGCTAAATCAGG -AACAAGGTTGTACAATTGTCATGGTTCTTCATGATATCAACCAAGCGATTCGTTTCTCAGATCATCTTAT -TGCGATGAAAGAAGGCGATATCATCGCTACAGGTTCAACAGAAGACGTATTAACACAGGAAATTTTAGAA -AAAGTTTTCAATATTGATGTTGTTTTAAGTAAAGATCCTAAAACTGGAAAACCTTTACTGGTAACTTATG -ACTTATGTCGCAGAGCTTATTCTTAATTAAGTAAGTTAATATGATAAAAAGGACAATTAACATGACAAAT -AGAGAGAATCCAACGCCATTGAAGTTTTTATCCTATATTATAGGTTTAAGTATGATACTACTAATCACAC -TTTTTATTTCTACATTAATAGGTGACGCCAAAATTCAAGCCTCTACAATTATAGAGGCTATTTTTAATTA -TAATCCTAGCAATCAACAGCAAAACATCATCAATGAGATTAGGATTCCGAGAAATATAGCAGCAGTAATT -GTGGGTATAGCGCTTGCAGTTTCTGGTGCGATTATACAAGGTGTTACTCGTAATGGTCTTGCTGATCCGG -CGCTCATAGGTTTAAATTCAGGTGCTTCATTTGCTTTAGCATTAACATATGCAGTTTTACCAAACACTTC -ATTTTTAATATTGATGTTTGCTGGATTTTTAGGTGCTATTCTAGGAGGTGCTATTGTATTAATGATAGGC -CGATCTAGACGTGATGGATTTAATCCGATGCGTATTATTTTAGCGGGTGCAGCAGTAAGTGCTATGTTAA -CAGCGCTAAGTCAAGGTATTGCATTAGCTTTTAGGTTAAATCAAACAGTAACATTTTGGACTGCTGGAGG -CGTTTCAGGCACAACATGGTCACACCTTAAGTGGGCAATTCCATTAATTAGTATTGCGTTAATCATTATA -TTAACAATTAGTAAACAACTTACCATTTTAAATCTTGGTGAATCATTAGCTAAAGGTTTAGGTCAAAATG -TAACAATGATCAGAGGCATATGTTTAATTATTGCTATGATTCTAGCAGGTATAGCAGTTGCTATCGCTGG -ACAAGTTGCATTTGTAGGATTGATGGTGCCTCATATAGCAAGGTTTTTAATTGGAACTGATTATGCTAAA -ATTCTACCATTAACAGCCTTGTTAGGTGGGATACTCGTGCTTGTTGCTGATATGATAGCACGATATTTAG -GAGAAGCGCCTGTTGGTGCAATCATTTCATTTATCGGTGTTCCTTACTTTTTATATTTAGTTAAAAAAGG -AGGACGCTCAATATGATTAGTTCAAATAATAAACGCAGACAATGGATAGCACTGGCTGTTTTTAGCATTC -TACTATTTCTAGGTTGTACTTGGAGTATTACCTCAGGTGAATACAACATACCTGTAGAAAGATTTTTCAA -AACTTTAATTGGACAAGGTGATGCCATTGATGAATTAATCTTATTAGATTTCAGATTACCTCGGATGATG -ATTACTATTTTGGCAGGTGCAGCGCTTAGTATTAGTGGTGCAATAGTGCAAAGTGTCACGAAAAATCCAA -TAGCTGAACCAGGTATATTAGGTATTAACGCAGGTGGCGGATTTGCAATCGCATTATTTATTGCAATTGG -TAAAATTAATGCTGACAACTTTGTTTATGTACTGCCGTTAATAAGTATACTAGGTGGTATCACCGCTGCA -TTGATTATTTTTATTTTCAGTTTTAATAAAAATGAAGGTGTTACACCTGCGAGTATGGTATTAATAGGTG -TAGGTTTACAAACAGCATTATATGGTGGCTCAATTACAATTATGTCAAAATTTGATGATAAGCAATCTGA -TTTCATCGCTGCTTGGTTTGCAGGTAATATTTGGGGTGACGAATGGCCATTTGTCATTGCATTTTTACCG -TGGGTGTTGATTATTATTCCTTACTTACTATTTAAATCGAATACACTAAATATTATTCATACGGGTGATA -ATATTGCACGAGGTCTAGGTGTAAGGTTAAGCAGAGAACGTTTAATATTATTCTTTATCGCAGTGATGTT -ATCATCTGCTGCTGTAGCAGTAGCAGGTTCAATTTCGTTTATCGGATTAATGGGCCCGCATATTGCCAAA -CGTATCGTTGGACCACGTCACCAGTTGTTTTTACCAATTGCCATTTTAGTAGGGGCATGTTTACTTGTTA -TAGCTGATACAATTGGCAAAATTATATTACAACCAGGTGGGGTTCCAGCAGGTATAGTCGTAGCAATTAT -TGGCGCACCGTATTTCTTATATTTAATGTACAAAACGAAAAATGTATAGTGTCAAAGGACACAACTTATT -GCTATGAAAGGCACTTTATTATATGGCTTTTCATAGCATTTTTTATTTAATGAGTCACTCAAGACTATTT -ACATTTTCAATAATGAACCATTAAGTTATCAAGACTGTCTTATCATAAATATATTTTATAACGGTATCAG -GTTAATTCTTTATGTTAGCGCATTCATTTATTCTGTTTTATACTATGACTGACAATACCAAGGAGGTACA -ACATGATGAAAAAGTTAATTAATAAGAAAGAAACATTTTTAACTGATATGATAGAGGGCATGTTAATTGC -GCATCCAGAGTTAGATCTGATTGCTAATACAGTTATAGTAAAAAAAGCTAAAAAAGAACAAGGTGTAGCA -ATAGTCTCTGGAGGTGGAAGCGGACATGAACCTGCGCATGCTGGATTTGTAGCTGAAGGTATGCTAGATG -CAGCGGTTTGTGGCGAAGTATTTACATCACCTATACCAGATAAAATATTAGAAGCTATTAAAGCAGTAGA -TACTGGTGATGGTGTATTACTAGTTGTGAAAAACTATGCAGGTGACGTGATGAATTTTGAAATGGCACAA -GAGCTTGCAGAAATGGAAGGTATAAATGTTGAAACAGTTATTGTTCGTGACGACATTGCTGTGACAAATG -AAGTACAACGTCGTGGTGTTGCAGGAACAGTGTTTGTTCATAAGCTTGCCGGTTATCTTGCTGAAAAAGG -TCATTCATTAACAGAGATTAAATCGCGTGTAGAAGCGTTGTTACCTGAAATTAAAAGTATTGGTATGGCA -ATTGAGCCACCGCTTGTTCCAACTACTGGAAAATATGGCTTTGATATTGAAGACGACAAAATGGAAATCG -GTATTGGTATACATGGTGAAAAAGGTATTCATAGAGAAGAAGTAAAGGATATTGATCATATTGTTGGAAC -ATTATTAGACGAATTGTATAAAGAAGTAACTGCCAATGAAGTCATAGTAATGGTAAATGGTATGGGTGGT -ACGCCGTTATCTGAATTAAATATCGTAACTAAATATATTCAACAAAATTTGGCTGCAAGAACGGTTAATG -TTGCTAAATGGTTTGTTGGTGATTATATGACATCTTTAGACATGCAAGGTTTTTCTATAACTATCGTGCC -TAATAAACCAGAATATCTGGAAGCATTTTTAGCACCAACAACAAGTCAATACTTTAAATAAGCAGTGAAT -ATGAATAAATATACATTTATGAGGTGGCACAAATGAAAGTGAATGATATGAAAGCGCGTTTATTAAATTT -AGAAGAAACTTTTAAAAAACATGAATCTGAATTAACTGAATTAGATCGAGCAATTGGTGATGGTGACCAT -GGGGTTAACATGGTTCGTGGGTTTAGTAGTCTTAAAGACAAACTTGATGATAGCTCAATGCAGTCATTGT -TCAAATCTACTGGTATGGCATTGATGTCAAATGTTGGCGGTGCATCAGGACCACTGTATGGCTTTAGCTT -TGTTAAAATGTCTGCAGTCGCCAAAGATGATATGGATAATCAAGATTTTATTAAACTAATTCAGGCATTT -GCCGAAGCGGTTGAATCACGTGGGAAAGTTACTTTAAATGAAAAGACAATGTATGATGTAGTAGCACGAG -CAGCAGAGAAGCTTAAAAATGGTGAAACTTTAACATTTAATGATTTACAGCAATTAGCAGATAATACAAA -AGATATGGTAGCAACGAAAGGTAGAGCTGCATATTTTGGAGAAGAATCAAAAGGTTATATAGATCCAGGT -GCTCAAAGCATGGTTTATATTTTAAACGCTTTGATTGGAGATGAAGATAATGCCTAAAATTATACTTGTT -AGCCACAGTAAAGAAATTGCAAATGGTACAAAATCTTTGTTAAAGCAAATGGCTGGTGACGTTGATATTA -TACCAATCGGGGGATTACCAGATGGTTCAATTGGAACTTCATTTGATATCATCCAAGAAGCTTTGACTAA -ATTAGATGATGATGCATTGTGTTTTTACGATATTGGATCTTCAGAAATGAATTTAGATATGGCAATTGAA -ATGTATGATGGTAATCATCATGTGTTAAAAGTTGATGCGCCAATTGTTGAAGGTAGTTTTATCGCAGCAG -TAAAGCTGTCAATTGGCGGTTCAATTGATGATGCATTAGCAGAAATCAAACAATCATTTTAGTTAAAATT -TACTAATAATGAAAAATGTAAACCTTTTTCAAATGAAACTTTATAAAAAATATGATAGTATATATGTAAA -TGTTTAATAAAATCTGGAGAAATAGGAGGACATTGCCATGCAACACCTTATAAAAAAACATGTATTGAAT -GGCGAGTTTGATTTAGTACGACAATTGATGTCCGAAACAGATTTTATGGAATTTGAAGAAGCATATATTT -CAAGTGCGCATGAAGTAGAAAGTATGATGTTTTATACATGTATTTTAGATATGATTAAGTACGAAGAATC -ATCTGAAATGCATGACTTAGCATTTTTATTGCTTGTGTATCCACTAAGTGAATATGAAGGTGCTTTGGAT -TCTGCTTATTATCATGCAGACGCTTCCATAAAACTAACTGACGGCAAAGAAGTTAAAAGTTTGTTACAAA -TGTTATTATTGCATGCGATACCAACACCTGTTATTTCAGATAAGAAGGCTTTTGATATCGCCAAGCAAAT -TTTAAAATTAGATCCTAATAATAATGTTGCTCGTAACGTCTTAAAAGACACCGCCAAACGTATGGACAAC -GTTGTTGTTGATATAAATGAATTACACCAACGTAATGCACGTTAATTACATTTCAATTATATTAGCTTAA -TAATAGTTTTAACATTTGGTTGGGTTGGGACATATGTTCCAGCCTTTTTTAATACTTAAAAACTAACGAA -GTAAACTTGTGTGCACAAATGGTTTTTATACAACATTTTATAAATTTATACATTTTAATAAAGAACATAC -GATAGATAGTTTAAACCTTTTTAACTGAGAAATTTTGATATGTATTTTCGAAACTTAACTAAAAATACGT -AAGTCAAGAAGCACAATTATTAATCATTTTTCCTATAAAAAAGTTCGTATGACTGCATTATAAAAGCATA -AATTTATAATTTTTTTAAATGTCATTGAACGTGATAATGTGAATGGATTGAGCAATTTTGAAAAAGTGAA -AAATAACCTATGCGACTTGCAATTAATTTTCAGTACGTTATAATGCACACTGTGCAAAATTAAGGAGGTC -TATTATTCACATGATGATGAATAAAGAAGCAACAAAAATTGGATTTGCCTACGTCGGCATTGTAGTGGGC -GCAGGATTTTCAACAGGACAAGAAGTTATGCAATTTTTCACTAAATATGGCTTGTGGGCTTATTTAGGTG -TCATTATATCTGGTTTTATTTTAGCTTTTATTGGGCGCCAAGTAGCAAAAATTGGTACTGCCTTTGAAGC -GACAAACCATGAATCAACATTACAATACGTATTCGGTGAAAAGTTTAGTAAAGTCTTTGATTATATTTTA -ATCTTCTTCTTATTTGGTATAGCTGTAACCATGATAGCAGGTGCAGGCGCAACATTTGAAGAAAGTTATA -ACATACCTACATGGTTAGGTGCATTAATTATGACATTAGCAATTTATGTAACATTGCTATTAGACTTTAA -TAAAATAGTACGTGCCCTTGGTGTCGTTACACCATTTTTAATTGTTTTAGTTGTATTAATCGCTGGCGTG -TATTTATTTAAAGGTCATGTTTCATTAGCAGAAGTTAACCAAGTAGTGCCTGAAGCAAGTATCTGGAAGG -GAATCTGGTTTGGTACAATATATGGTGGATTAGCTTTTTCTGTAGGTTTTAGTACCATCGTAGCAATCGG -TGGGGATACTGAAAAGCGTACAGTGTCAGGTGCAGGCGCGATGTACGGTGGTATTATCTATACTGTATTA -CTAGCATTGATCAACTTTGCATTGCAAAGTGAATATCCAACTATTAAAAATGCCTCAATTCCAACATTAA -CATTAGCCAATAACATTCATCCGTTAATAGCAACAGTGTTATCTGTTATTATGCTGGCGGTTATGTACAA -TACTATTCTAGGACTAATGTATTCATTTGCAGCACGTTTTACAGAACCGTATAGCAAAAAATACCATATC -TTTATTGTTATAATGATGATAGCAGGTTATTTATTAAGTTTCGTAGGATTTGCTGAATTAATTAATAAGT -TATATACAATTATGGGATATGTAGGCCTATTTATTGTAGTAGCTGTAATTATTAAATATTTCAAACGTAA -AAATGCGGATAAAAAACATATTGCTTAATATCATATGATGGATATCCGAAACTTTACAATTGAATCACTT -TGTTTTAATCTTAAAAGCAATTCGTCTCTACTCTTATCGGGCGAATTGCTTTTTATATTTATTCAGTCTA -TTAATATGAGCGTCTAACAAATAGAGAGGTACGATGTAATGAATAAAGATAATAAATGGACGATGATAAC -TGCGCTTTTTATAGCAGTAATCAGTGTATTGTTAGCATTTCATCTGAAACAACATTATGACCAAACTACA -AATGAGAACCATGCTAATAAAGACAAAATTAATATTAAAAATAAAAATGTGCGCATTTATCAAAACCTTA -CATACAATAGAGTTTATCCTAACAGTAAATTAGATATTATTACACCTGTTGATATGTCTTCTAATGCCAA -ACTGCCAGTTATTTTTTGGATGCACGGTGGTGGTTATATTGCGGGTGATAAGCAGTATAAAAACCCATTA -TTAGCGAAAATTGCTGAACAAGGGTACATTGTTGTGAATGTAAATTATGCATTGGCGCCACAATATAAAT -ATCCCACACCATTAATTCAAATGAATCAAGCGACTCAATTCATTAAAGAAAATAAAATGAATTTACCTAT -TGATTTTAATCAAGTAGTTATTGGCGGTGATTCTGCTGGCGCTCAATTAGCAAGTCAATTTACTGCAATA -CAGACAAATAATCAATTAAGAAAAGCCATGAAATTTGATCAGTCATTCAAACCATCGCAAATTAAAGGTG -CTATACTATTTGGTGGTTTTTATAATATGCAAACAGTTAGAGAAACTGAGTTTCCGCGAATACAATTATT -TATGAAAAGTTATACAGGTGAAGAAGATTGGGAAAAGAGTTTTAAAAATATTTCACAAATGTCGACAGTA -AAACAATCGACAAAAAATTATCCACCAACATTTTTATCTGTTGGAGATAGTGATCCATTCGAAAGTCAAA -ATATAGAATTCAGTAAGAAATTACAAGAATTGAAAGTACCAGTAGATACATTGTTTTATGATGGTACGCA -TCATTTACATCATCAGTATCAATTTCACCTTAATAAACCTGAATCGATAGATAATATCAAAAAAGTGTTA -CTTTTCTTAAGTCGTAATACATCTTCTAGTGGTATTCAAACTGAAGAGAAACCACAAATAGAAAATCCGA -GTAATGAATTACCGTTAAATCCATTAAACTAATGATAAACAGTAGTAATTTATTACTTAAGCAACATTTA -AGATCTTCAAATTGAAAACGAAGAATTTAAAACATGTGGGGCTAATGTGTAAGTGTCTGAGATATAATAA -ATTGTTAGCGGTTCTTTATCATTTCTGTCCCCCCCTATTATGATGTGACATTTATTTACAAACTAATTTG -TTTTGAACCTGAAAATAACTTTTTACAACTAAATAGTCGAAAAACAGTGTGTACATGATATAATAAATTT -ATAAATTGAAAAGAATTCAAAAGAAAAATTAAAATATAGATTGAGCACGAAGTGATTTGAAATAAGGTTG -TGAAAGGGAATGACAAGGTCAGCATTAAAACCATTTAAAAATAAACGCGTTATGGTTACTGGACGTATAC -ATCGTGTGTTGTTTAAAAATTATTTAGATAGACATAGCACATTTAAGCCGAATGTAAGGATATTATTAAA -AGATGTAATTGTTTCAGGTGTTTCAATAGATCATTTATGGCTATATGAGACAAATAAATACTATGCATTA -GCAATGGAACTTATTCATCAACGAGTAAAATTTAGTGCGAATGTTGTACCGTATTACAAAATAAATAGAA -ATAATAATTTATTCGTACAAGATTATGGAATTAAGCGTAAAGGTAATTTAGTTACTGAAGAAGCTTACAT -TCAAAACAATCAGTATCAGGATAAAATATATGAAAAATTACCGGATATAGATTTTAGACTCGAAGATTTT -TATAGTAAGGAAAACTAAATAATATAAAGCACCACTAATCGTAGTTGATCAATTACACATTAGTGGTGTT -TTATTTTGAATTTAAATTTGATAAATGAATAAGAGTATACGCATTCATTTAAGATTAGATGACATTGATA -AGTATGAGTAATGTATTAGGTAACCATTGAATTCGTTGTTATACGATTCTAATACAAGATTATGATAAAA -TAGCTTTAATTAAGAATTTTAGCCATCATATAGTCATCGTAATATTTACCATCGATGAATAACTTATCTT -TTAAAACGCCTTCGATTTGAAAATCGGCACTTTTAAAAAGCTCTAGGGCAGGTTGGTTATTGAGTGGTAC -ATTTGCTTCAATTCGGTGTATTTGATTGTTTAAACACCAAGCCATAATGGCATCAAGAAGTGCTTGGCCA -ATTCCACGATGTTGATATAATTTCTTTACACCTAAATCAATTTTAGCAACATGTTTAATGCGTTGAAATG -GTGTCGTATTAACAAAGGCAAAGCCTACAAGTTGTTCATCACTTTCAGCAACAAAGATGACTTTATGTGG -AGAAGTGATATATTCTTCTAATTGTTTACTAGCCGATGTGACGCTAGGATCATATTCTCCTGGTGTGTAG -AACATATACGGAGATTCGTCGTATATTTTCGCTAACATTGAAATGAAATTTTCTACATCTTTGATACTAA -CTCTACGTATAATATGGGCCATAAAAAGCCTCCAGTATTTTGAAATTTTAAAACATTTGCTACTATTATA -ATATATATTTAACCAAAAGGTAGAGTAATATGTTTTTTGGTTACAGTTTAAAGGAGTATTTTAGATGAAA -CCTAAAGTTTTATTAGCAGGTGGAACAGGGTATATTGGTAAGTATTTAAGTGAAGTGATTGAAAATGATG -CTGAACTTTTTGCTATATCAAAATATCCAGACAATAAAAAAACAGATGATGTTGAAATGACTTGGATTCA -GTGTGATATATTTCATTACGAACAGGTTGTTGCCGCAATGAATCAAATAGATATTGCTGTATTCTTTATC -GATCCAACAAAGAATTCTGCCAAAATAACACAATCATCAGCAAGAGATTTAACATTAATCGCAGCAGATA -ATTTTGGTCGAGCAGCGGCTATCAATCAAGTAAAAAAAGTAATCTACATACCTGGGAGTCGTTATGATAA -TGAAACAATTGAACGCCTAGGTGCATATGGTACAACTGTAGAAACAACAAATTTAGTTTTTAAACGTTCT -TTAGTTAATGTAGAATTACAAGTTTCAAAGTATGATGATGTTAGATCAACGATGAAGGTAGTTTTACCAA -AGGGATGGACATTAAAGAACGTTGTAAACCATTTTATTGCATGGATGGGTTACACTAAAGGAACTTTTGT -GAAAACAGAAAAATCACATGATCAATTTAAGATATATATTAAGAATAAGGTGCGACCACTCGCAGTATTT -AAAATAGTAGAAACAGCTGATGGAATAATAACTTTAATTTTATTGAGTGGAAGTTTAGTGAAAAAATATA -CAGTTAATCAAGGGAAGTTAGAATTTAGATTAATCAAAGAATCATCAGTCGTTTATATACATCTATACGA -TTATATCCCTCGATTATTTTGGCCGATTTATTACTTTATACAAGCACCAATGCAAAAAATGATGATTCAT -GGCTTTGAAGTTGACTGCCGGATTAAAGATTTTCAAAGTCGATTAAAATCAGGAGAAAATATGAAATATA -CTAAATGATATTGGGTGATATGGATGCAAATACTACTAGTAGAAGATGACAATACTTTGTTTCAAGAATT -GAAAAAAGAATTAGAACAATGGGATTTTAATGTTGCTGGTATTGAAGATTTCGGCAAAGTAATGGATACA -TTTGAAAGTTTTAATCCTGAAATTGTTATATTGGATGTTCAATTACCTAAATATGATGGGTTTTATTGGT -GCAGAAAAATGAGAGAAGTTTCCAACGTACCAATATTATTTTTATCATCTCGTGATAATCCAATGGATCA -AGTGATGAGTATGGAACTTGGCGCAGATGATTATATGCAAAAGCCTTTTTATACAAATGTATTAATTGCT -AAATTACAAGCGATTTATCGACGAGTGTATGAATTTACTGCTGAAGAAAAACGCACGTTAACATGGCAAG -ATGCTGTCATTGATCTATCAAAAGATAGTATACAAAAAGGTGATCAGACGATTTTTCTATCCAAAACAGA -AATGATTATTTTAGAAATTCTTATTACTAAAAAAAATCAAATCGTTTCTAGGGATACAATTATTACTGCG -CTATGGGATGATGAAGCATTTGTCAGTGATAACACATTAACAGTTAATGTGAACCGATTACGTAAGAAAC -TATCTGAAATAGGGATGGACAGCGCAATTGAAACAAAAGTAGGAAAAGGATATATGGCACATGAATAATT -TGAAATGGGTAGTTTATTTTCTGAAATCAAGAAAGAATTGGATATTTTGGATACTGTTTTTAAATATTCT -TATGTTAGGCATTAGTCTTATTGACTATGACTTTCCAATCGATAGTTTGTTTTATATTGTTTCTTTAAAT -TTAAGCTTAACACTGATTTTTCTTATATTGACTTTTTTTAAAGAAGTAAAATTATATAGACATTTTGAAA -AAGATAAAGAAATCGAAGAAATAAAACATAAAGATTTAGCGGAAACCCCATTCCAACGTCATACAGTTGA -TTATTTATATCGTCAAATTTTAGCGCATAAAGATAAAGTGGTCGACCAACAGTTGCAATTAAACATGCAT -GAACAAACCATCACAGAATTTGTGCACGACATCAAAACACCAGTGACTGCTATGAAATTGTTAATTGACC -AAGAAGAGAATCAAGAAAGAAAACAAGCGCTATTATTTGAATGGTCACGTATTAACTCGATGTTAGATAC -GCAATTGTATATTACGAGATTAGAGTCGCAACGTAAAGATATGTTTTTTGATTATGTCTCATTGAAGCGC -ATGGTTATTGATGAAATTCAATTAACAAGGCATATAAGTCAAGTTAAAGGTATCGGATTTGATATTGATT -TTAAAGTGGATAATCATGTGTACACGGATATAAAATGGTGTCGTATGATTATTAGACAGATTTTATCAAA -TGCTTTGAAATATAGTGAGAATTATAATGTTGATATTTCAACGGAATTAATTGATCAACATGTTGCGTTA -ATCATCAAGGATCATGGAAGAGGTATTAGTAAAAAAGATATGCCTCGAATATTTGAACGTGGGTTTACGT -CAACGGCTAACAGAAATGAAACGACATCATCCGGCATGGGTCTATACTTAGTGGATAGTGTGAAAGATCA -ATTAGGAATACAATTACAAGTTACTTCGACTATTGGAAAAGGAACAACGGTTAAATTGATCTTCCCATTA -CAAAATGAAATTGTTGAGCGCATGTCAGAAGTGACAAATCTGTCATTTTAAACATGCGTTTTGTTACTTA -GAATTGATACATCATGACCACTTCAACGATATAATCAAATAGATGTTAATTAAATACAAAATTGAAGGTA -AGCGTGCCAAATTGAATATAAAGGAAATGAAGTTAAGATAAATATAGGAGTGTTAAAGTGACAATATTAG -AAGTAAAACAATTAACAAAAATATATGGCAACAAGAAAATGGCACAAGAAGTTCTGCGAGATATCAATAT -GTCTGTTGAAGAAGGTGAATTTATTGCCATTATGGGACCTTCAGGATCTGGTAAAACGACCTTATTAAAT -GTTTTGAGTTCAATTGATTATATTTCGCAAGGTTCTATCACACTAAAAGGACACAAACTTGAAAAGCTTT -CAAACAAAGCATTATCTGATATTCGAAAGCATGATATTGGTTTTATTTTTCAAGAATATAATTTACTTCA -TACATTAACTGTTAAAGAAAATATCATGTTACCATTAACGGTTCAGAAATTAGATAAGGACACAATGTTA -GATCGTTATGAAAAAGTGGCAGAAGCATTAAATATATTAGACATCAGTGATAAATATCCATCCGAATTGT -CTGGTGGTCAAAGACAACGAACATCAGCTGCCAGAGCATTTATAACATTGCCTTCTATTATATTTGCCGA -TGAACCTACAGGTGCACTCGATTCGAAAAGTACACAAGATTTATTAAAGCGATTAATGAAAATGAATGAA -GAGATTAAGACGACAATTATTATGGTGACACATGATCCGGTTGCAGCTAGCTATGCAAATCGAGTAGTGA -TGCTTAAAGATGGGCAAATATTCACGGAGTTATATCAAGGTGATGATGACAAACATACTTTCTTTAAAGA -AATCATACGTGTACAAAGTGTTTTAGGTGGCATTAATTATGAGTTTTAATGAGATTATATTTAAAAATTT -CCGCCAAAATTTATCACATTATGCCATTTATCTTTTTTCGCTAATTACAAGTGTAGTTTTATTTTTTAGC -TTCGTAGCACTAAAATATACGCATAGCATTAACATAACTGAGACATATCCCATTATTAAAGAAGGATCGC -AAGTAGGTAGTTACTTTCTATTTTTTATCATTGTTGCCTTTTTGCTATATGCCAATGTACTATTTCTTAA -ACGTCGTAGTTCTGAACTTGCATTATATCAAACATTAGGTTTATCCAAATTCAACATTATATATATATTG -ATGTTTGAACAATTATTAATATTTTCAATAACAGCTATATTGGGCATTACGATTGGTATCTTTGGTTCTA -AAATTTTATTAATGATAGTGTTTACTTTATTAGGTATCAAAGAAAAGGTTCCAATTATTTTCAGCTTTAG -AGCAGTGTTTGAGACACTATTATTAATTGGCGTTGCTTATTTCCTAACTGCAGCTCAAAATCTTATCTTA -GTATTGAAACAATCTATTTCAGAACTATCAAAGCATAATCAGGCTAAGCAAATGAATCATAATAAAATTA -CATTTGAAGAAGTTATACTAGGAATTCTAGGTATTATTTTAATCATCAGTGGGTATTACTACTCTTTACG -CATTGTACATTACTATGATGCAATTGGCGTCCTTATGTTTATATTGTTTGCGACAGTAATTGGGGCGTAT -TTATTTTTTAAAAGTTCAGTATCCTTGGTATTTAAAATTATTAAAAGCTTTAAAAAAGGTGTAATAAGTG -TAAATGATGTCATGTTTTCTTCATCTATTATGTATCGTATTCAGAAAAATGCATTTTCACTTACTGTTAT -GGCAATTATTTCAGCTATTACTTTATCAGTACTTTGTTTTGCTGCTATCAGTAGAGCAACTTTATTAAGT -GAAATTAAGTATACGTCACCTCATGATGTTACGATTAAAGATCAACAGAAAGCGAATCAGTTAGCAAGTG -AATTGAACAACCGAAAAATTCCTCATTTTTATAATTATAAAGAAGTGATTCATACAAAACTTTATAAGGA -TGACTTATTTGATATAAAAGCAAAGGAACCATATAACGTAACAATTACTAGTGACAAATATATTCCTAAT -ACGGATTTGAAACGTGGTCAGGCTGATTTATTTGTAGCGGAAGGCGCTATTAAAGATTTAGTGAAGCATA -AGAAACATGGTAAGGCAGTAATAGGAACGAAAAAGCACCATGTGGATATTAAATTACGTAAAGATATCAA -TAAAATTTACTTTATGACTGATGTTGACTTAGGTGGACCGACGTTTGTGTTAAACGATCAAGATTATCAA -GAGATAAGAAAGTATACTAAGCCAAAACACATTGTTTCTCAATTTGGATTTGATTTAAAACATAAAAAAG -AAATGTTAGCATTGGAAAAAGCAACAAATAAAGTTGACAAATCTATTGAAACAAGAAGTGAAGCCATAAG -TTCGATATCGAGTTTAACGGGAATATTGTTATTTGTAACCTCATTTTTAGGAATTAGTTTCCTAATTGCC -GTATGTTGTATCATATACATTAAACAAATAGATGAAACTGAAGACGAGTTAGAAAATTATAGTATTCTTA -GAAAACTTGGATTTACACAAAAAGATATGGCAAAAGGATTAAAATTTAAAATTGCGTTTAATTTTGGGTT -ACCATTAGTCATTGCACTTTCACATGCATACTTTACATCATTAGCATATATGAAATTGATGGGGACAACG -AATCAAATACCGATATTTATAGTAATGGGACTATATATTTGTATGTATGCCATTTTTGCAATGACAGCTT -ATAATCATTCTAAGCGTACAATCAGACATTCAATTTAATATATATATAGCGGCTTTCAGTAGGCTAGTGG -ATTAAGATTCATGAGCTTTACTGAAAGCTTTTATTTTTGGATAGTTATAGGTCCGGGCACGACAGTTTTA -TTGTATATGCTTCAACTTTGTAAATTGTATTAAATGTGAGAAAATAGAGGCATAGGCATTGAAAGAAATA -TGAATTAAGAATAGTTAGAAGAAAGATAAGTGTATTTTAATATGTAAAAGTTATGTAATAAATATTGTAT -CGTTGCAAATTTTCCGAGTATGTCCATTTACAATTATTAGAGTTTTGTAGATAAAAAATTGCCTATATAT -CAAGTTTTTCAAAACAAATGCCTACCACTATTTAAATTTTATGTAAAAGTTAAGTTTCGGAATTGTTAAA -AATTTGTAAATTGAATTGTGGGATTGTAAATTTTGTGCTATTTTCATATAAGGGCAAATACAGTAAATTG -TTTACTGTGAGGCATTTTTGAAATTAATATCAGTACACTAAAAATATACTGACGATTGATAATAACAAAT -TTGTATCATTAGTTTGTAAATTCACTTGTCTTAATTTGAAACAAATTATAACTGAATGTGATTGGTGACA -ATCGCTTAAATGGAGGATTTTAAATGTTTAGTAAGAAAAAAGATAAGTTTATGGTTCAATTAGAAGAGAT -GGTTTTTAACCTAGATCGTGCAGCTATTGAATTCGGTAAAATGGATTTCAATACACATCTAGATTTAAAG -GCATACTCAGACAACATTAAAACTTATGAGTCACATGGTGACGAATTAGTACATCAAGTAATTACTGATT -TAAATCAAACATTTATCACACCAATTGAACGTGAAGATATTTTATCATTATGTGATGCAATTGATGATGT -TTTAGATGCAATTGAAGAAACGGCAGCTATGTTTGAAATGTATTCAATCGAATACACAGATGAATATATG -GCTGAGTTTGTTGATAACATTCAAAAAGCAGTTGCAGAAATGAAACTTGCTGTCGGCTTATTAGTCGATA -AAAAATTATCACATATGCGTATTCATTCAATTAATATTAAAGAATTTGAAACAAACTGTGATGGTATTTT -AAGACAGTCAATTAAACATATTTTCAATAGTGAAACAGATCCAATCACATTAATTAAAATAAAAGATATT -TATGAAAGCATGGAAGAAATTGCTGATAAATGTCAAATCGTAGCAAATAATTTTGAAACTATTATTATGA -AAAATAGCTAAGGGGAGTATATATTTATGTCATATATAATCATCGTCACTATAGCTGTAGTTATTTTCTC -GCTGATATTTGACTTTATCAATGGATTCCATGATACAGCCAATGCAGTAGCTACTGCTGTATCTACTAGA -GCGTTAACGCCTAAAACGGCAATTTTAATGGCAGCAGTGATGAACTTTATAGGTGCTTTAACATTTACGG -GCGTTGCAGGCACCATTACTAAAGACATTGTCGATCCATTTAAATTGGAAAATGGATTAGTTGTTGTGTT -AGCTGCAATACTTGCGGCTATTATTTGGAATTTAGCTACTTGGTTTTACGGAATTCCAAGTTCGTCTTCA -CATGCACTTATAGGTTCAATTGCGGGTGCAGCAATCGCATCTGAAGGCTCATTTGGCGTATTACATTACC -AAGGTTTCACAAAAATTATTATTGTATTAATCGTTTCACCGATTATCGCATTTTGTGTTGGTTTCTTGAT -GTATTCAATTTTTAAAGTTATCTTTAAAAATGCAAATTTAACAAGAGCGAATCGTAACTTTAGATTTTTC -CAAATTTTCACAGCAGCGTTACAATCATTCTCTCACGGTACGAATGATGCGCAAAAATCAATGGGTATTA -TTACGTTGGCATTGATTGTTGCTAATGTACAGAATGATGGCAGCGTTGAACCACAGTTATGGGTAAAATT -TGCCTGTGCGACAGCAATGGGGCTTGGTACTGCAATTGGTGGCTGGAAAATTATCAAAACTGTAGGTGGT -AATATTATGAAAATACGCCCAGCAAACGGTGCTGCGGCCGATTTATCATCTGCATTAACAATTTTTGTTG -CATCATCGCTACATTTCCCATTATCAACAACTCACGTTGTGTCATCATCAATCTTAGGTGTTGGTGCTTC -TAACCGAGCTAAAGGTGTAAAATGGAGTACTGCGCAACGAATGATCATTACATGGGTGATTACATTACCT -ATTTCAGCATTGTTAGCAGGTTTATTATTCTATATACTTAATTTATTTTTCTAATTGAAAATTAAGCTAT -ACTGAACTTCAGTATCACAAATATATGGTGGTATTGAAGTTCATTTTTTTATGTAAATAGACAACCTATT -TTATAGAGTTTACATAGAATGACCAAGACAAAGCATTTTAATTAGGGGCTAAGTTATAAATGTATTCCAT -GGAACATAATAAGTTAGGTCATTAAAATATAAGTAAGCGTAAAATAATGATTTAACAGTTTATATTCTTC -AATGAATGAATAATTAAATAGCTATCAACTTGTTTAATTAACCTAAATTGTATTGGACTTTATTTAATGT -AAATTTGTATATGTAGACGAAAAAGCGTAAAATACTGGTATAACAAATTAAATCATTATATAGTCAACTT -GGTTGCATTATTTTGGTTTTTAATATATTATGCATTTAATTTAATCAAATAGGTAGGTTATTATTTTTTA -CCTAACTACCATTCATACAAAATATAAATAAGTATGATAGGGAAGGGTGAGATAATTTTTTGTACCAAAA -TGAAAATTTTTTTCAAAAATAAAAAACTAGCAATCTCACATGATGTGAATTGCTAGTATATATCAGTACA -ATTTATTTAATTAATGGATGAATGCATAGCTAGAAACTTCTGAAGCTGGAATTGTACGGTAGTTCATATT -GTATGGACCATATGTGTAATTCATTTCAGAAATCAAGATACTACCATCACCATTGACACGTTCAACATAA -GCAACATGACCATATGGACCAGGTGTGCTTTGCATGATTGAACCAACTGATGGTGTGTTGTTTACTTGGT -AACCATCATTAGCTGCGTTACCAGCCCAATACTTAGCGTCTGACCAATATGTGCTAATTGGACTACCAGC -TTGAGCACGACGGTCAAATACGTACCATGTACATTGACCAGCAGTGTATAAATTTTGGTGATTAAAAGAT -GATGCATTGCCATTGCTACCTGTTGTAGCTGTTGGTGTTGTACCACCTGATCCACCATTAGGAATTTGTA -ATGTTTGGTTAGGCATAATTAAATAACCACGTAAGTTATTGGCTGCCATTAATTGATCAACTGAAACACC -ATATCTGTTAGCGATGATATTTAATGATTCACCAGCTTGTACAGTATGAGATGATGCTGAACCAGCTTGT -GGAGAAGTGTTTGACGTATTTTGTGCATCACTTCCACCTACTGAGATAACTTGACCAGGGAATACCAAGT -TGTTATCTAATTGGTTATTTTGTTTAATACTCTCTACTGAAGTGTTGTATTTTTGAGCAATACTCCATAA -TGATTCACCAGATTGTACTGTATGTTGTGTAGAAGCTTGCGCATCATGATGCGTTAAAAATGCAGCTGCA -CCAGATGTTGCTGTTATTGCAAATGCTAATTTTTTCAAAGGGACTCCTCCTTAAAATTAAGATTTACTAC -TTTTAAAAATTATTAAGACAATTTATATAGTAAATTAAGTTTTCGTTTTATATTACGCTTTCCATATTAT -CAAAAATAAGTAGCTTTGTGTGGTTTGTTATTATCTTGTAATATTATTAACATTTTAGGATATCGGTTCA -TATTTTTATAAATGCTGATTTGATAGTGTATAAAAGCGTTTTAGTGATTTTAACTAATTATAAAAAATTA -TATTTTGTAACATTATAAAATGTAAAATTACTATACTTGTTAAAGGTTATTTCTTTTGATGAAGCAAAAT -TTACTGTAAAATTTGACGCATAAAACGACAGTAGAAGGAGGAATTATTTTGTCGCAAAATACAAATCATT -CATATTATCATCAAAACCAGCATGCTCAAGCAATAAGTAAAGTGTGGCTTTATTTTATGTATTATTGGAT -TATATTTGGCATAGGATGCTATCTAGGTCAGTTTTTACCATTAAGTTGGCGACAACCCTTGTCATTTGGA -TTACTGATTATTATTTTAGCAACACTTGTTTTTGAAAGAGCGAGACGGTTCGGTTTAATTATTTCACATA -TATACGCTGTAGTGATTGGCTTATTGTCATACGCAACGTTTACCACGTATTTACAAAATTTAGGACCAGA -TATTTTCTATAAAAATATCGCATTAGCAATTTTTGCATTTATAGCATTTGGTATTATTGGTTATTTCTTC -GTTGGAGATGCATCGAGTATAGGCAAGTATTTATTCGTTACATTAATAACATTAATTATTGCGAGTCTAA -TTGGTATTTTTCTTCAAAATCCTATTTTTTATACTATTATTACCGTCGTTAGTCTGTTGTTATTTCTACT -TTATACTTTGTATGATTTTAATCGTTTAAAAAGAGGTGACTATTCACCAAGAGAAATGGGATTTAATCTA -TTTATTAATTTGTTGAATATTATTAAGGATATACTTTATCTTGCTAATATGTTCAGAAGATAAACAGTTA -AATTAATAAAGAAATTCATATAAAGTTTTAGAATAATCAATAATGAATATCAACTTTAAATTGGAGCGAT -TGTCATAAATTAGAAATTTAGATAGGGTAATTTAAATATATTACCTTAATTGTAAAGATATTATTAATCA -TTGAAATGATTAACTGCTATAGTTCTAAAGTAAACAAATCTTAGAAGATAAACTTTAAACAGGTGTACTT -GCCTTTCTAATTACACTTTTATTAGAAAAGTAAAGTATAGCTACGTATTAATTTTAAAATCGAAATATTA -ATAGGAATAAGTATAGATAATATAAACAATTTAATGTTAGTTTGAGCTCATCTCAAAAGTAGAATGTGAT -TTAAATAAGTGTTTATTTTTAAATTGAAAATGAATGTAAAGCTAACAAAAGATAATAGTAATACGTTGTA -GATGTGGTCATTTAAAATTATTTTGAAAATACTAAAAAATAGTGTGTTTTCAATTGGATAGTTTAATTAA -ACTGACTACATCTATTTTTGTAATATTTAAATGATTGATATATATAAGTTTAAAAATTACCCATTATATA -GTTTTATTTATTTTTGATTTGGTATTCGTATTGTGTTAAATTTACGTTTAATTAAATAAGTTAAATATTA -TAGGGAATGATAAAAGTGGTACTTAAATATAGAAAGAGGTAAAGTTATGGCAAAATCATGCTTGCATATA -CTTACTAATAATGAATATGCGACAACGCGTTGCCAAGATGGCATAGTCTTATTTTGGCCAATTGACGGGG -AAATCGAACTACAAAAATTTCGTAAAAGTAAAATAATTGAAGATGATATATATATATTATTAATCATCTG -GATGTATTTAGTATTAAGAATAATAAAAAAACGATCATGTTGTATTTGAGTAGCGATTGGTTTGCGGAAT -TAGGCTTTACTTTCTTTAATTACCACTATACAGCAAAGTTAATTAAATCATCTTATAATTTGAAATGTTT -ACTATTAAAATTGACTTATCGATACCTTGATAATCAACCTCTCAATGACGCTGATGTTAGAAAATTACAG -GATATTATTAAAATTATTGCAAAAGAAGCAAGTATGGATAAAAAGATTGCGCAAAATCAATATCGATATG -CCTATTATGGTGATTTGCGTGACGAGCTCGAATATATTTATCAAAATGTAAATCAACGATTGACATTAAA -AAGTGTCGCTGATAAATTATTTGTCTCAAAGTCAAATTTGTCATCACAATTCCACTTACTTATGGGCATG -GGTTTTAAAAAATATATTGATACTTTGAAAATTGGTAAATCGATTGAAATTCTACTTACTACTGATAGTA -CTATAAGCAACATAAGTGAACATTTAGGTTTTAGTAGTAGCTCAACTTACTCTAAAATGTTTAAAAGTTA -TATGGATATAACACCGAATGAATATCGTAATTTATCAAAATTTAATAAATCTATAATGCTTAATCCAGAG -CCACTTGTAGGCGGTATGGCGCAAGAAGTAAAAGAAGTCATATTGAATTATATTGATCATTATAAAAATC -ACCTAACTGATGTTATACATATTGACGAAGACAAATTTGAAATACCTAAGTTATTTCAAACGGTTATTCA -AATTAATACTTATACAGAAATGAAACTAGTTTTCTTAGAAGGACTTTTTAAAACCTTATTGAATAAGAAT -AGCCAAGTTGTCTTTTTCATCATGCCATCGATTTTAAAAAGTAAAAATACCATGTCCGAAGAAGAAAAGT -TTACAATCATTAAAACCATAATTGAAAGTAATTTAAAGATAGCATTTAATATAAATGATATTGAAACGAC -TTATTATGTTGAAGAAGCTTTTATGAATGTTATTAGACAATTATCTCCAAACGAAATAAATCATCATAAT -AATTACGAAGTGCATTTTGTTTTTGATTTATCATTGATGGAAATTAGGACAATTTACCGTATGATTTTAA -AACTACATAACATCATGTTAAATGTGAAATTAGGATTGAATATTACCTGTTTATTTGATAAACCTTCAGT -TTTTAAATCACTAGTATCACAAATAAAGCGACTTAAATTCGATTCGTTAATAATAGATAATGCAAATTTA -AGTAGCCCTTATTTGATGGGGGAAAGTGATGAGTTACTATTGAAAAATATTTTGCATTTTAAAAATTTAA -AACAAGTTATTAACGAATTGGATATAGAACAAGAAAAGCTGATTTTTCTAAATGTTGAAAATCATAAACT -GCTTAATAATAAAGAACGAGATTTAAGTAATAGTGCTCCATTAATTTATAAGACATTAAGTGCGCTGTAT -CATAACTTTCATGGTTTTGGATTAAACATTTTTGATAATCATCAAACATTTAATGCGATGCATCTATATG -ATAAAAATGGATTTAAAACAACACTAGGTCTTATATTAGAAAAGTTTATCGAATATGTCTCGAAACCAAA -ATACGAAAACAGTTATTATTCTATTTTTGATATAGAGAATTATTATTGTCTGGTTATTTATGATTGGCGA -GTGATAGAGAGCGAGACAATTATGAGCAATTTTGAAGATAGTCAAGTTTATATTAATTTCAAAAATAATA -TTTTAAACGATAAATATCTAATTGTAATAGAAACGTTGGATGAAAATAGTGGGAACATTAATCATTTGAT -CTCTAAAGAATTAAGAGATAAATATGAATGGAACCTCAGTTTACTCTCTAAAATTGACAACTACCTTAAA -CCGGCAATCGAGATTAAAGAGCATAACTTTAGTAATAATTCCTTAAATATTAACGTTACTTTTAATGCGT -TATACATAATTAAAATAGGAAAAAAATAACACCTTGATATGTATTGCAAAATTTAATTTGCATTTGTTGG -TAATTTTGACAACGTATTAAAAACAAATGAGAAAGACAATGGCAGAAAAATTTAAGATAATAATGACAGA -AGCATTGTCTTTATATATTTGGGGGTGCAACATTTTGAATACTGAGAAATTAGAAACATTGCTTGGCTTC -TATAAACAATATAAAGCATTATCTGAATATATTGATAAAAAATATAAGTTGTCGCTAAATGATTTAGCAG -TCTTAGATTTAACGATGAAGCATTGCAAAGATGAGAAAGTACTTATGCAATCATTTTTAAAAACTGCAAT -GGATGAGCTAGATTTAAGTAGGACAAAATTATTAGTTTCTATAAGAAGACTAATTGAAAAAGAAAGACTT -AGTAAAGTTAGATCATCTAAAGATGAGCGTAAAATTTATATTTATTTAAATGATGATGATATATCTAAAT -TTAATGCTTTATTTGAAGATGTAGAACAATTTTTAAATATTTAATTGAAATTGAGTGTCGAAAGCGTAGA -AATTGCTTATCGGCACATTTTTAATTTATACATATTTTAAAACTAAGTAACAGATTGAAGAAATCGTAGT -TCAATAATGTTAATTGTGAAAATGTATATAATCATAAAAAAATCATGTATAATATATGTTGTTAATTAAA -CAGTTCGAAAGCGAGATGACATTATGGGACGTAAATGGAATAACATTAAAGAAAAAAAGGCCCAAAAAGA -TAAAAATACAAGTAGAATATATGCGAAATTTGGTAAGGAGATTTATGTTGCAGCAAAATCTGGTGAACCA -AATCCAGAATCTAACCAAGCTTTAAGATTGGTACTTGAACGCGCTAAGACATATTCAGTACCGAATCATA -TTATTGAAAAAGCAATAGATAAAGCTAAGGGTGCTGGAGACGAAAACTTTGATCACCTAAGATATGAAGG -ATTTGGCCCAAGCGGATCAATGCTTATTGTTGATGCGTTAACAAACAATGTAAATCGTACTGCATCTGAT -GTGCGTGCTGCTTTTGGTAAAAACGGCGGTAATATGGGTGTATCTGGGTCAGTTGCTTATATGTTTGACC -ATGTGGCAACATTTGGTATTGAAGGTAAATCTGTTGACGAAATACTTGAAACATTAATGGAACAAGATGT -AGATGTAAATGATGTGATTGACGATAATGGATTGACAATAGTCTATGCTGAACCAGATCAATTTGCAGTC -GTTCAAGATGCGCTTCGTGCAGCAGGTGTTGAAGAATTTAAAGTTGCTGAATTTGAAATGTTACCTCAAA -CAGATATTGAGCTTTCTGAAGCGGACCAAGTAACATTTGAAAAATTAATCGATGCATTAGAAGATTTAGA -AGATGTACAAAACGTATTCCATAATGTGGATTTGAAATAATGAAATCAGCAGAACAATGGATTGATGAAT -TGCAACTTGAATCGCATCCTGAAGGTGGTTTCTATAGAGAGACAATCCGAGAAGTATTGAAAGATGGACG -AAGAGCGCCGTTTAGTAGTATTTATTTTTTGCTTACAGATGACAATATTTCGCATTTTCATCGAATTGAT -GCTGATGAAGTATGGTACTATCATGCTGGTGATTCTCTAACAATTCATATGATAAATCCGGATGGGGAAT -ATACGACTGCAACATTGGGTACTGATATCCAAAATGGAGATGTATTGCAATATGCAGTGCCTAAAGGAAC -AATTTTTGCTTCTTCAATCGAAATTTCAAATACTTATAGTTTAGTAGGTTGTATGTGTCAACCAGCATTT -GAGTTTAAGCAGTTTGAATTGTTTAAGCAATCTGAATTAATTACACAATATCCGCATCTTAAATCAGTAA -TCGAAAAATATGCTTTAAAATAAAAAGAATCAATGAAGTGATTTGAAGGTTGTTAGTAAACCTTTGAGTC -ACTTCATTTTTGTATGTATTCTTGATTGAATCAGAATAGATTTGGTGCTTCAGCTGATTTTAATGAAAAT -AGCATTAAATGATTTTGAAAAAGATAAGAGTGTGTTATTTATATTTTTGAAAAATCACTTTTATGAAGAA -ATGTGTGTACTATCTAATTAATATTGTCTATTTTAAGTAAATTGAAGCGAGTTGTAGTAAAATAATAATA -AATATTTTCATATGATTAACAAAAACTATAAAACTGTATCATGACATGACATCATCCATGTAGTTTTATA -TAATAATGACAAGGAGTTGGTGACTGTGAAAGTAAAGTATATAGATAAACGTCACTGGCGTCGCCTAATT -GATAGGGAATACACAGAGGTAAAAGTTAATAATAATAGGTTCAAGGGTATTATAGGCTTAGTCACGATGA -AAAAGGTTCGTGATCCTTTAGAGGTGACGGTAGTTGGACAAAATATTATTGTCGCAGATGACAATTATAA -ATGGTTGCAAATACTACCTGAAAAGAAACGTTATAGTATTACTGTAATGTTTGATAATAAAGGCAATCCA -TTAGAATATTACTTTGATATAAATATTAAAAATATAACGCAAAAAGGTAATGCGCGTACAGTAGATTTAT -GTTTAGATGTTTTAGCATTACCTAGTGGTGAATATGAGTTGGTAGATGAAGATGATTTAATGTTTGCATT -AGAAAGTGAGCAAATTACAAAAAAGCAATTTCATGAAGCATATATGATTGCGCATCAAATTATGGCAGAG -TTAGAAAATGATTTTAAAGGATTCCAAAAGAAAATCATGTACTGCTTTAATAAAATTAATGCAAAGGCTC -AAAAAATTCATCAAAAGCCACAAAATAAAACTAATTTTGAAAAAAGCAAACAAATAAAACCTAAGCAATA -TAATCAAACTAAAAATCACCAACAACAAAAGAAAAACTAAGTAATTCAAGCTGCAGCCATACCAATAAAA -TTGGTGAAAATTATTCGTTAGTAATGAACTCTTGAATGCTCGTAGTCATGAAAGTTCAATAATTGAATAA -TTTATGGGGGGGAAATTATGAAGATTGAAGACTATCGTTTACTAATAACATTAGACGAAACGAAAACGTT -ACGTAAAGCGGCTGAAATTTTATATATATCTCAACCTGCTGTTACACAAAGACTAAAAGCTATTGAAAAT -GCTTTTGGAGTAGATATTTTTATCAGAACAAAAAAACAATTGATTACAACAACTGAAGGAACAATGATTA -TTGAGCATGCCCGTGACATGTTGAAAAGAGAGCGATTATTTTTTGACAAAATGCAGGCACATATTGGTGA -AGTGAATGGAACGATATCAATCGGGTGTTCTTCATTGATTGGACAAACCTTACTTCCTGAAGTTTTGAGC -CTATATAATGCCCAATTTCCTAATGTTGAAATTCAAGTACAAGTTGGTTCAACTGAACAAATTAAAGCAA -ATCATAGAGATTATCATGTTATGATAACTCGTGGAAATAAGGTAATGAATTTAGCTAATACACATTTATT -TAATGATGATCATTATTTTATTTTTCCGAAAAATAGACGAGATGATGTTACAAAGTTACCATTTATAGAG -TTTCAAGCTGATCCGATTTATATAAATCAAATAAAACAATGGTATAACGATAATTTAGAACAAGATTACC -ATGCAACTATTACAGTGGATCAAGTAGCAACTTGCAAAGAAATGTTGATTAGTGGTGTAGGTGTTACAAT -CTTGCCAGAAATCATGATGAAAAATATCAGCAAAGAACAATTTGAGTTTGAAAAAGTAGAAATTGATAAT -GAACCGCTGATTCGTTCGACATTTATGAGTTATGATCCGAGTATGTTGCAATTACCACAAGTTGATTCAT -TTGTAAATCTTATGACGAGCTTTGTTGAAGAACCAAAGGCGTAGTCTTAGACTAATTTAAGGTTAGTATT -TAATTTTAAGATATACGGTTAAATTGAACACAGTTGGATGCTAATGCACCAACAGCAAAAGAGCCCCTAA -TTAATAAATTAAAAGGGGCTCTAAGAAGCGGGGTTATGGATATGTTTGCAGCGTTATTACAAATAAAGAA -TTATAAACTCTTTGTTGCTAATATGTTTCTATTAGGTATGGGTATTGCGGTTACGGTCCCATATCTTGTT -CTTTTTGCAACTAAAGATTTGGGTATGACAACAAATCAGTATGGATTACTTCTAGCATCTGCAGCGATTA -GTCAGTTTACAGTAAATTCAATTATTGCTAGATTTTCGGATACGCATCACTTTAATAGAAAAATTATTAT -TATTCTCGCATTATTAATGGGTGCGCTTGGTTTTTCAATATACTTTTTTGTAGATACAATCTGGTTATTC -ATATTACTATATGCGATTTTCCAAGGATTATTTGCACCAGCAATGCCCCAACTTTACGCATCTGCTAGAG -AATCTATCAATGTTTCAAGCTCTAAAGATAGAGCCCAATTTGCCAATACAGTATTACGTTCAATGTTCTC -ATTGGGCTTTTTATTTGGTCCATTTATTGGTGCGCAATTAATCGGATTAAAAGGCTATGCTGGATTGTTT -GGTGGAACAATAAGTATCATTTTATTTACTTTAGTACTTCAAGTGTTTTTCTATAAGGATTTAAACATTA -AACACCCTATTAGTACGCAACAACATGTTGAAAAGATTGCTCCTAATATGTTTAAAGACAAAACGCTTTT -ATTACCATTTATTGCATTTATTTTATTACACATTGGACAATGGATGTATACGATGAATATGCCTTTATTT -GTTACTGATTATTTAAAAGAAAATGAGCAACATGTCGGTTATTTAGCTAGTTTATGTGCTGGTTTAGAAG -TGCCATTTATGATCATTCTTGGCGTTTTATCATCTAGATTACAGACTCGAACATTGTTGATTTATGGAGC -GATTTTTGGAGGTTTATTCTACTTCAGCATTGGGGTATTTAAAAACTTCTATATGATGTTAGCAGGACAG -GTGTTTTTAGCTATTTTCTTAGCGGTTCTTTTAGGAATTGGTATTAGTTATTTCCAAGATATCTTACCAG -ATTTCCCAGGATACGCCTCAACACTATTTTCTAATGCAATGGTTATTGGACAGTTAGGCGGTAACTTATT -AGGTGGTGCTATGAGTCACTGGGTAGGTTTGGAAAATGTATTTTTTGTATCAGCAGCATCAATCATGTTA -GGTATGATACTTATATTCTTTACTAAAAATCAAAAAATTACAAAAGAGGATGTGATATCAACATGACAAT -TGTTTTATGGCTACTTATCATCGCTGCCTTCATGTTAGCATTTGTTGGGTTGATTAAGCCGATTATTCCT -TCTGTTTTAGTATTATGGGTTGGCTTTCTAATCTATCAATTTGGCTTTCATAATCAGCATTTATCATGGG -TGTTTTATGTATCTATGGCATTGCTAACAATATTAATTTTATGTGCGGACTTTTTAGCTAATAAATATTT -TGTGAATCGCTTCGGTGGTTCTAAGTTTGGAGAGTATGCAGCTTTAATTGGTGTCGTTATTGGATGTTTT -GTTTTACCGCCATTTGGAATTATTATCATTCCATTTATTTTGGTATTCATAGTTGAATTAATACAAGGCT -ATTCATTTGAAAGAGCAGTTAAAGTAAGTATAGGTTCAATCGTAGCATTTTTAACAAGTAGTATAGCTCA -AGCGAGTCTGGGACATAAATCCCTAAAAAAACAGCAGTAAGATATTTTTCAATTAGAAAATATCTTACTG -CTGTTCTCTATTTATACAATACTTCGTATTGAATGGCTTCGCTTTCCTAGGGTGCCGTCTCAGCCTTGGT -CTTCGACTGGCACTGCTCCCTCAGGAGTCTCGCCATTAATACTACGTATTAACATGTAATTTTACTTTGA -AATACTTTAAAAAAATAAGACACTTTCGTATAATTTAATAAATACCACTAAACTAAATTAACGAGGTGCC -TTATGTATAAAAATTATAACATGACCCAACTTACACTACCAATAGAAACTTCTGTTAGAATTCCTCAAAA -TGATATTTCACGATATGTTAATGAAATTGTTGAAACGATACCTGATAGCGAATTCGATGAATTCAGACAT -CATCGTGGCGCAACATCCTATCATCCAAAAATGATGTTAAAAATTATCTTATATGCATACACTCAATCTG -TATTTTCTGGTCGTAGAATAGAGAAATTACTTCATGACAGTATTCGAATGATGTGGTTAGCTCAAAATCA -AACACCTTCTTATAAAACTATTAATCGTTTTAGAGTAAATCCTAATACTGATGCATTAATTGAATCTTTA -TTTATTCAGTTTCATAGTCAATGTTTAAAGCAAAATCTTATTGATGATAGTTCAATTTTTATTGATGGTA -CAAAAGTAGAAGCTAATGCCAATAGGTATACATTTGTGTGGAAGAAAAGTATTCAAAATCACGAATCGAA -ATTGAACGAAAATTCAAAAGCATTATATCGTGACTTAGTTGAAGAAAAAATAATACCAGAGATAAAAGAA -GATGGAGATAGCGATTTAACAATAGAAGAAATAGATTTAATTGGTAGTCATTTAGATAAAGAAATCGAAG -ATTTAAATCATTCTATTCAGAACGAAGATTGTACTCAAATTAGAAAACAGACCCGTAAAAAAAGAACTGA -GATTAAGAAGTTCAAAAAGAAATTTGATGATTATTCCGAAAGAAAAAGTAAATATGAAGAACAAAAATCG -ATTCTTAAAGATAGAAATAGCTTTTCTAAAACTGATCATGATGCAACTTTTATGAGAATGAAGGAAGACC -ATATGAAAAATGGCCAACTTAAGCCAGGATACAATTTACAAATAGCGACAAATTCTCAATTTGTTTTATC -CTATGACCTATTTCAAAACCCGACAGATACTAGAACTTTAATTCCATTTTTAACAATGATTCAAAATACC -TTCGGTTATTTACCGGAGTATATTGTAGCTGATGCAGGTTATGGTAGTGAGCAAAACTATATGGCTATTA -TAGATGATTTTAATAAAACGCCACTTATTACGTATGGTATGTTTATTAAAGATAAAACGAGAAAGTTTAA -AAGTGACATTTTTAACACTCAAAACTGGAAATATGACGAACTTAATGATGAATTTATATGTCCTAATAAC -AAAAGAATAGGTTTTAAAAGGTTCTGTTGCAAAGTTAGAAATATAGTATAATAGTCAACAAAAATGAGGT -GCAGAGGATGAATTATTTCAGATATAAGCAATTTGACAAAGATGTCATTACTGTAGCCGTTGGCTACTAT -CTAAGATATGCATTAAGTTATCGTGATATATCTGAAATATTGAGAGAACGAGGCATCTATGTTCATCATT -CAACAATTTATCGATGGGTACAGGAATATGCTCCTATTTTGTATCAAATTTGGAAGAAAAAGAATAAGCA -AGCTTATTATAAATGGCATATAGATGAGACGTATATCAAAATTAAAGGGCAATGGAATTATTTATATCGC -GCTATTGATGCAGATGGCCATACACTAGATATTTCGTTACGTAAGAAACGAGATAATCACTCAGCATATA -CGTTTATTAAACGTCTTATTAAACAATTTGGCAAACCTCAAATGATAATTACAGACCAAGCCCCTTCAAC -GAAGGTGGCAATGTCCAAAGTGATTAAAGATTTTAAACTTACCCCCAACTGTCATTGTACCTCTAAATAT -TTAAATAATCTCATTGAACAAGATCATCGTCATATCAAAGTAAGGAAAATAAGTTATCAAAGTATCAATA -CGGCAAAGAATACGATCAAAGGCATTGAATGTATTTATGGACTATATAAAAAGAACCGCAGATCTCTTCA -GATCTACGGGTTTTCGCCATGCCGTGTAATTAGCATCATGCTAGCTAGTTAATACGAAGTATTATTTTAA -ACATAAGGTTAGACACTTATTTTTTAACTTTGCAACAGAACCTCCTATTTTTAGTAATATTTATAGCCCT -AACAGTTAGATAAACTGCATTTATAAAACCCAAAATAGTATATGGAATTAAAATATATAAATTTTCTAAT -TGAACTAAGAAAGTTAACCCAACTAAAAATAAAACATTCAAAACGGTAGACATAATAAAAGCTATATCTA -ACTCATTTTTTTTATTCAAAATACATTCCTCCTTTTTTAAAATTTTACCATAGTTGCTTTATTGATGTTG -AGCCTCGGAACCCTTAACAATCCCAAAACTTGTCGAATGGTCGGCTTAATAGCTCACGCTATGCCGACAT -TCGTCTGCAAGTTTAGTTAAGGGTTCTTCTCAACGCACAATAAATTTTCTCGGCATAAATGCGTGTCTAT -GCGTAGACATGGAGACACTTCAGAATTATGGAGTGATTACATGAGTTTAACTATTTTTCTTTATTCAGTT -TTAGGAAGTTTATTAGCAAATTATATCTACGAAAAATCTTCGAAAAGAAGTTCAGCTCATGATAACGAGT -TTACCTATGATGAATGAAGTCATTGGAAATCCACTACTAGATAAATTTATGAAAGATTTAATTATTCAAA -TTTTAGCAATGATTTCAGAACAAGAAAGAAATGAAAGTAAACGTCGACAAGCTCAAGGGATTCAAGTCGC -CAAAGAAAAAGGTATATATAAAGGGAGACCTATTCTGTATTCTCCCAATGCTAAAGACCCACAAAAGCGT -TTAGTTTATTACCGAGTTGTTGAATTACTTGAACAGGGTAAATCTATAAGTACTATAGCTAAAGAAGTTG -GTATTACACGTCAAACTATATATAGAATAAAAAATAGTAAATAAAATAACATAGACAATAATCTATATAG -ATGTTAATCTATTTAATGTCTAGGAGGTTTATTCATGTCTTATAAAGAACTATCAACAATATTAAAAATT -TTATCAGATTCAAGTAGGTTAGAAATATTAGATTTACTTTCTTGTGGTGAGCTATGCGCTTGTGACTTAT -TAGAACACTTTCAATTCTCACAACCTACACTAAGTCATCATATGAAGTCATTAGTAGATAATGAATTAGT -TACAACACGAAAAGACGGCAATAAACATTGGTATCAACTTAATCATGCTATTTTAGATGATATTATCCAA -AACTTGAACATCATTAATACATCTAATCAAAGATGTGTATGTAAAAATGTGGAATCAGGTGACTGTTGAT -GACTATTTTAGCAATTGTAATTTTTCTTTTAACTTTAACCTTTGTGATTTGGCAACCAAAAGGTTTAGAT -ATTGGTATTACAGCTTTAATTGGAGCTGTTGTTGCTATCATTACAGGAGTCGTAAGTCTTTCTGATGTAT -TAGAAGTAACAGGTATTGTTTGGAATGCAACTTTAACTTTTGTGGCTGTTATTCTTATTTCATTAATATT -AGATGAAATTGGTTTTTTTGAATGGTCTGCGATACATATGGTCAAGGCTTCAAACGGTAATGGCTTAAAA -ATGTTTGTTTTTATTATGTTACTTGGAGCAATTGTAGCAGCATTTTTCGCAAATGATGGTGCAGCTTTAA -TCTTAACGCCTATTGTATTAGCGATGGTAAGGAATCTAGGATTTAATCAAAAAGTGATTTCCCCCTTTAT -TATTGCCAGTGGTTTTATTGCTGATACTACATCACTTCCCTTAATTGTAAGTAACTTAGTTAATATCGTT -TCTGCAGATTACTTCGATATTGGATTTATTGAATATTTTAGCCGAATGATCATTCCTAATATATTCTCTC -TGATTGCTAGTATTCTCGTTTTATGGTTATATTTCAGAAAATCCATACCTAAAACGTTCGATACAGAAAA -TCTATCAGATCCTAAAAGTGCAATTAAAGATTCTAAGTTATTTAAGCTTTCATGGATAGTATTAGCAGTA -CTACTCGTTGGATATCTTGTTAGCGAGTTTATCCAAATTCCTGTATCAATTATTGCTGGTATTATTGCTT -TTATCTTTGTAATATTAGCTCGTAAATCTAAAGCAGTTCATACAAAACAAGTGATTAAAGGTGCACCATG -GAATATCGTTGTATTCTCTATTGGTATGTATCTTGTTGTGTTTGGACTAAAAAATGTAGGTATTACAACG -GTCCTTGGGGATGTTTTAACAAACATTTCAAATTATGGGTTATTTAGCAGCATCATGGGTATCGGCTTTA -TAGCTGCTTTCTTATCTTCGATTATGAACAACATGCCAACTGTTTTAATAGATGCAATAGCGATTGGCCA -ATCCAGTGCTACAGGAATATTAAAAGAAGGCATGGTTTATGCGAATGTCATAGGTTCTGATTTAGGACCT -AAAATTACGCCAATTGGTTCTTTAGCAACATTATTGTGGCTACATGTCTTAACACAAAAAGGTGTGAAGA -TTTCGTGGGGAACATACTTTAAAACTGGAATTATCATCACTATTCCAGTCCTATTTGTAACACTCTTAGG -TTTATACCTTACACTAATCATATTTTAAGAAAAGGGGCTTTAATTATGGATAAGAAAACAATTTATTTTA -TATGTACAGGAAACTCTTGTCGTAGCCAAATGGCTGAAGGTTGGGGAAAGGAAATATTGGGTGAAGGTTG -GAATGTCTATTCTGCTGGTATTGAAACACATGGTGTTAATCCTAAAGCAATAGAAGCTATGAAAGAAGTA -GATATTGATATATCAAACCATACGTCAGACTTGATTGATAATGATATTTTAAAACAATCAGATTTGGTCG -TAACGTTATGTAGTGATGCAGACAATAATTGTCCTATTTTACCACCAAACGTTAAAAAAGAGCATTGGGG -TTTTGATGATCCAGCAGGTAAAGAATGGTCAGAATTCCAACGTGTTAGAGACGAGATTAAATTAGCTATA -GAAAAGTTTAAATTGAGATAATCATAAACACCTCTTATTTAGTTAATAAGAGGTGTTTTGCCATTTAAAG -AACAAAATTTGTGCCATATACAATATGCCCTCTCTTTTTCTCATTAACGAACGTTTATAACGCAATCATG -ATGAGAGTATTAATACAGTTAATTATTTGAAATACTTTAGTTTACATAATGTTGAATTATAGGTAGTGAA -ATTGTATTTATTATACATTGTCATATCGTTGTTTAATGATAGTTAATTTAAGGATAATAGAATTAATATT -ATATATAGATGAACAAAACAAGCAACAGAGCAAAAAAACACTTTTAGATTATTTTTACTCATTCTCTATT -TTATTTATTTTTGCTATAATAAATAAAGAATATTAAATGGAGGTGTTTTTATGAAAAAGAAATTTGTTTC -TAGTTGTATTGCTAGTACAATCTTATTCGGCACTTTATTAGGTGTAACTTATAAAGCTGAAGCTGCAACA -GTACATGTAGCTGGTGGTGTTTGGAGCCATGGTATTGGAAAACATTACGTATGGTCTTATTATAGTCACA -ATAAAAGAAATCATGGTTCAACAGCAGTAGGGAAATATTCATCTTTTAGTGGTGTTGCTCGACCTGGTGT -TCAATCTAAGGCATCTGCTCCAAAGGCTTGGGGTGGAAACAAAACATTTTATAGTCTTCACTAATTACAT -ATATTAATTAAGGAGAATAGACAGAATTAAGTAAACTTAATTCTGTCTATTCTCTTGAAAGAGGCAATAT -GAAAAAATTCAAATTATTTTTAGATTTTAGTACTTTATTATTAATTTCAGGGCTATTATTTTTATTTTTC -TTCAAAGAAAATGAAGAAATTATACCTGAAAGTTCCAATATTTTAACAATCTCTAATTGGGATAAATCTA -ACAGTAAATCAAAAGTGTTAGATGTCATTGAATCAGGCGCCAAAAATCAAAATATACAAATAATTAAATC -CGTTAAAGATTTTGATAATAAAAAAGAATTTTTTGTTTTCAACTCAAAACGAAATAATTCTGACTTTATA -CGTAATAAAACATCACTTTTAACTCCATCAGATTTATTAAACAGAGAGATAAAAGGAAAGTATTATATTA -TTGGTGAACATTTCAATGTAGAAGAGCTTACGAGTGAATTAAAAAAAGCTGGTTTAACATCTGAAGTTGA -ATACATAAATAGAAACATATTATTTTTTGAATTAGTCATAGATAATGATTTATTAGTGCCTTTCATATTC -TTAGGCGTATTATATCTTTTGTACTTCTTATATGACAGAGGATATAATTTGAAATTTTATGCTATTCAAA -AGCTACATGGCTTTTCAACTACACGCATTATTTTTCATAATATTCATATAAAAATCATTTATTGGCTAGT -ACTTACCACTATTTTCTTTATTGCTAATATATTAATCATTCATATAGCCAATTTAGAATTGGATTTCTTA -ATGTTTATTCGTAGATTTATCGTGTTGCTTTTTGTTTTTGCTTGTATTACTACATTGTTGTGGCTGATTT -CGTATAGTCTTCTTTTGAAGTTAAGTATTCCATTAACCTTAAAAGGGAAAAAAGGATATAAGTTTTCAAT -ATTTATGGGTACCTTCACCAAATGTATCATGGTGCTAATACTATCTTTTTTACTGGCACAAAATTTAAAT -GCTTATACGAAGTTAAAGAATATATATGACTCTGAAAAAATCTGGCAAAAGTTAGATAATTACTATACAT -TAGAGATTTCTCCTAATATTAGAAATTCAGAAGAAAAACAAATTTTAGAAACTAATATATACAATTTAAT -TAAGAAAAGCGAACAACTTGGTGGATTGCTTTTAAAGAATAATAATATAGCCAATCCCGATAAAAACAAT -TACATTCCTGAAAATGGCAATGTCTTTTTTATCAATAACAATTTTCTGAATTTCTATAAAAATATAAATC -ATGATTTTAAAATGATTGTCAATCATTCGGATAAAATAAACGTGTTTATTCCTCCAAGGTTACAATATCA -AAAATCTGAAATTCAAAAAAATCACCAAGGATGGATTGACTTTCAAAAGCAACAAAACAAAAAAGTAGAT -GTGCAAGTACTGTCAAAAAACGTATCTGTTTTTTCTTTTGATCGCACAACTAATTTGAAATTTGGATATC -TAGATTCTCCAATAGTAATGTTGTTGACACCTGACGATTTAACAGGAGATTTTTATTTAGCTGCTGTTTC -TCAAGGTGGATATCTATTTAAAGATTTAGATACACTTAAACAGTTGCTTAAAGATAATCACCTAGAAGAA -GAAATTAGCGGTATAACTAATTACAAGGATTCTGTGTTAAATGAATTAAATGAAACGAAAACAAAAATGA -TAATAACAATAGTTACTATTATTATTAACGTTTTCATTCTTTTGATAGCTACTGTATTTGAAACAATTCA -ATATTTTAGCTGGAATAAAAAGCAACTATTATTAAGAAAAATTCATGGTTATTCATTATTCAGCAGTAAT -GTACGTTATTTAACAATTTCTATTTTACTTTCTATTATGTTAGCTTACACTACGCATATTTTATTTGGTT -CAAAGATATTACTATTCATAATAATGTCTATTGCTATTATTCAACATTTACTTCAAATTGCTTATATTAA -ATATCTTGAAAAATACTTTAAAGATTTAATGAGGGAGATTTAAACAATGAAAAGAACTTTAATTATTGTA -ACAATTGTACTATTAATCATCATACTTAGTCTGTTATTGGTTAGAAATGAGCATTTAGATCGTTTTAACC -CACTGTTAAAAGAAAAAGTATCTTATGCCAAAGTTCCAAAAGATACCCAGGACTATAGAAATATAACTGT -ATACTCTAAAAATGGAGAAAAAAAGAGTTATAAATTGGATTTTTTAGGTTATGATCCTACAAAAGAATAT -GTGAAAGTAAATCATAAAGGGAAATATGTGCGTTCGATAGAATACATTACAAAAGATATTCCTAGCTTTT -TAAAATGAGGTGACCGATAGTGATAAAACTTGAAAATGTTTTTGTAAAAAAAGGTAATAAAAACATTTTA -GACGGATGTAACTTTAATTTTGAAAAAGGAAAATCATATGCTTTAGTTGGAGAAAGTGGCGCTGGAAAAT -CTACTTTACTTAACATAATCGCCGGGTTCGAAGATGTATCACAAGGAAGCATATATATTGAAGATAAGTT -ACTAAAAAAGAAAGTCGATTTTTATAGATATACGTTAGGGTATTTGTTTCAAAATTTTGCTTTACTTGAA -AATCAAACAATCAGTCAAAATTTAGGTTTAGCCCTAAAGTTCAAAAAGAATAAAAAAGATAATATGAACT -TAAAGAAAGAAGTATTAAAAAAGGTCGGCCTAGATTTAGATATCAAGAGAATTGTTAGTTCTCTAAGCGG -TGGTGAACAACAAAGAGTAGCATTGGCAAGATTAATATTAAAAGATCCGAAAATCATTTTAGCTGATGAA -CCTACTGGATCACTAGATACGAAAAATGGAAAAATAGTTATTGATTTATTATTGAAGCTACTTGATGAAA -ATAAAACTATGATTGTCGTAACGCATGATTTAGAGCTTGCGAAACGATTTGATGTCATAGTCAATATTTC -TGAGCTTAGAAGTTAAGAAATATTGATAGGTATAGCCATACATAGAGAAAAAACAATATGAAATATGATT -AGTCATTACTTTTGAGTTTTTTAATTTAGAGTCTGGGACATAAATCCCTAAAAAAACAGCAGTAAGATAT -TTTCTAATTGAAAATTATCTTACTGCTGTTCTCTATTTATACAATACTTCGTATTGAATGGCTTCGCTTT -CCTAGGGTGCCGTCTCAGCCTTGGTCTTCGACTGGCACTGCTCCCTCAGGAGTCTCGCCATTAATACTAC -GTATTAACATGTAATTTTACTTTGAAATACTTTAAAAAAATAAGACACTTTCGTATAATTTAATAAATAC -CACTAAACTAAATTAACGAGGTGCCTTATGTATAAAAATTATAACATGACCCAACTTACACTACCAATAG -AAACTTCTGTTAGAATTCCTCAAAATGATATTTCACGATATGTTAATGAAATTGTTGAAACGATACCTGA -TAGCGAATTCGATGAATTCAGACATCATCGTGGCGCAACATCCTATCATCCAAAAATGATGTTAAAAATT -ATCTTATATGCATACACTCAATCTGTATTTTCTGGTCGTAGAATAGAGAAATTACTTCATGACAGTATTC -GAATGATGTGGTTAGCTCAAAATCAAACACCTTCTTATAAAACTATTAATCGTTTTAGAGTAAATCCTAA -TACTGATGCATTAATTGAATCTTTATTTATTCAGTTTCATAGTCAATGTTTAAAGCAAAATCTTATTGAT -GATAATTCAATTTTTATTGATGGTACAAAAGTAGAAGCTAATGCCAATAGGTATACATTTGTGTGGAAGA -AAAGTATTCAAAATCACGAATCGAAATTGAACGAAAATTCAAAAGCATTATATCGTGACTTAGTTGAAGA -AAAAATAATACCAGAGATAAAAGAAGATGGAGATAGCGATTTAACAATAGAAGAAATAGATTTAATTGGT -AGTCATTTAGATAAAGAAATCGAAGATTTAAATCATTCTATTCAGAACGAAGATTGTACTCAAATTAGAA -AACAGACCCGTAAAAAAAGAACTGAGATTAAGAAGTTCAAAAAGAAATTTGATGATTATTCCGAAAGAAA -AAGTAAATATGAAGAACAAAAATCGATTCTTAAAGATAGAAATAGCTTTTCTAAAACTGATCATGATGCA -ACTTTTATGAGAATGAAGGAAGACCATATGAAAAATGGCCAACTTAAGCCAGGATACAATTTACAAATAG -CGACAAATTCTCAATTTGTTTTATCCTATGACCTATTTCAAAACCCGACAGATACTAGAACTTTAATTCC -ATTTTTAACAATGATTCAAAATACCTTCGGTTATTTACCGGAGTATATTGTAGCTGATGCAGGTTATGGT -AGTGAGCAAAACTATATGGCTATTATAGATGATTTTAATAAAACGCCACTTATTACGTATGGTATGTTTA -TTAAAGATAAAACGAGAAAGTTTAAAAGTGACATTTTTAACACTCAAAACTGGAAATATGACGAACTTAA -TGATGAATTTATATGTCCTAATAACAAAAGAATAGGTTTTAAAAGATATGCATACCGTAATGATAGATAT -GGTTTTAAACGTGACTTCAAACTATATGAATGCGATGACTGTTCAGCATGTTCTTTGAGGCAACAATGCA -TGAAGCCAAATTCGAAAACCAATAAGAAAATCATGAAGAATTATAATTGGGAATACTTTAAAGCCCAAAT -TAATCAAAAGCTTTCTGAACCAGAAACGAAAAAAATCTATAGTCAAAGAAAAATTGATGTAGAGCCTGTT -TTTGGATTTATGAAGGCTATTTTGGGTTTCACTCGAATGTCAGTTCGAGGAATAAATAAAGTTAAACGAG -AGCTAGGTTTTGTATTAATGGCACTTAATATAAGGAAAATAGTAGCTCGACGAGCTGTATATTATCAAAT -ACATTTAAAAAAAGCTGATTTCTATCAAATAATTAATAGAAATCAGCTTTTTTACATTGCCTAAGAACTT -AATGTCCCAAGCTCTTTTTGTGATGACAAAAAACAAGCCTCGCAGAGCACACGTTTTTAATGACTTATTT -GGTTTTTAATAAGTCTAGTATGTTAAAACTTTTCTGTGTTTAGGTGTTATAATCATATGCAGTGGAAGTT -GATTTATTATGTCTTATTCAATTATTCGAGTTGTTAAAGTGAAATCAAAAACAAATACAAGAGGTATTCA -AAGAGAAAATAAAAATTATGAAAATATAGATATTGATTTAAGTAAGTCATATTTAAACTATGATTTAGTC -AATGATACTAAGTTTGATTTTAATAAAAAAATTGATGAGAAAATCGAAAAAAATTATAAAGGGAAACGCA -AAATTAGAACAGATGCCATTAAACATATTGATGGATTAATTACATCAGATAATGTGTTTTTAATCAATTA -TCTGAAGAAGAGACAAAATAGTTTTTTAAGCATGCTAAAGCGTTCTTGGAAGAAGAATACGGTAAAGAAA -ATCTTTTATATGCGACAGTACATATGGATGAGATAACACCACATATGCATTATGGCGTAATTCCTATTAC -TAAAGATGGACGTTTAAGTGCGAAAGAAGTTGTAGGTAATAAAAAAGCATTAACCGAATTCCAAGATAGA -TTCAATACGTATATTAATAAGCAAGGCTATGATTTAAAACGAGGAATTTCTAGACAACTTACAAAAGAAA -AACATGATCAAGTTAGCGGCTATAAACAAAAAACAGAATATCATAAACAAATGTATATGCGCGAGAAGCA -AATAGAGGATCATTTAAAGTGAGAAAATGATAAATTGATATAAAACTACCAAAAATCATTAGATACGCTT -AAAAATCTTCTGAGTGTCATGTATGAAATTAAAACTAAAAATGTAGGTGGATGGTTTCATAAAGAGAAGC -AAGAAACAGGCAATATTGTAATTACTAAAACTTATTTTGAAAAATACACTAAACAAATTAAAGCAGCACA -GATGATATTAGATGATTATGAATGGATTAAAAGTGGGAAGTCATTAAAAAAATCAGAGAAACAAAATGAA -AGTTTAGTTAATGAATTGACTAGTGTCCATATGGAAAATGAAAAGCTGGTTGAAGAATTTAATGATTTAG -CACAACGTTATAATTATTTGTTGTCAGAGAATGAAAAGAAAGATAAAGAACTAAATTATACGCTTAAGTT -ATTCAATCAAGTTTTTAAAATCATTAAAAGTATGATGAAAGAAGAGCGTTATCATACGCTAATAAATCAT -ATTGATAATCATTTAGACAATTCTAAAATACGTGAAGTAATGACGATAGATAACAATGATGAACAGTTCT -TTAAGAAGAAATATCAAGCACAAGAATGAGAAATCATTTTTAAAGAAGATAGAGAAGATGGTTATACATT -ATAAAAATAGATATTTAAATGCATTTGTTTGAGGTTAATTATTTTTTAGGATGAAAAATAGGTAGCCCCC -CTCTAACTTTTTAATATATTTTTATAAATCTTTTTAAAAACCTTTTTAGGGGCTTGTTCAGACCTAGATC -AACAAGGGATTTCAATGCCTAAAGGAGTGTTTTTGCCACATAAAAGGAGTGTTTTAAAAAGTTGTACTCC -TTTTATGGTTTGACATTGATAATAAAGTAGTTTATTGTGAATAAAAGTTTTCAAATGGGAGTGTATATTC -AAACGATACTCCTTTAGGTTCGTAATAAAGGGGGGGCTGTATCATGACAGGAGAGACAGTTGTATATAAA -AATGAAATGAATTTAGTTCCATTAAGGCGATTTACAGCTACTGAAATTAATTTATTTTTTGCGATGTGTA -ATAAATTAAAAGAGCAAGATACTAATACATTACGTTTGTCTTTTGATGAATTAAAAAAATTAAGTAATTA -TAGTCCAGAAACACGTAATATTAATAGATTTGCTAATGATTTAGATAATGTGTATAAAAAGATGTTGAAT -TTAACCATTAGATATGAAGATGATGATGTAATAGAAAGATTCGTTTTATTCAATCATTATAGAATCCATA -AGCGAGAACAATATCTAGAAATATCAACTTCTTCAAATTTAAAACACATATTGAATTCAATTACTAATAA -TTTTACAAAATTTGAATTAAAAGAAATGACTAGGCTTAAATCTACATATTCTAAAAATATGTTTAGATTA -CTTAAACAATACAAACATACAGGCTATTTAAAAATTCACATCGATGATTTTAAAAATCGTTTAGATATAC -CTAAATCTTATCGTATGACTGATATTAACAAAAATGTTTTTAAACCTATTATTATTGAATTAGGTTCTAT -ATTTAATAATCTTACTATCAATAAAATCAAAGCGAAAAAAGGGCGTAAAATTGAATGGATAGAGTTCACA -TTTGACGCTGAGAAACGCATTCATAACAAACGACAACCTCAAATGTCCAAGATAGATAAATCAAGACAAT -ATGTGAGGCGTGAAAAGACGCCTAAATGGTTAGAAGAACGGTCATATGAAAAGCAACCTCAAAAAGATTA -CGACCCACAATTAGAGAAAGAACGAGAGGATTTTTTAAAACAACTTGAACTGAATTGGGAATAACGCAAC -TTTTCGTTGCGAGTTGGTTAACTAAAAGTATCGTGACTTTTCAATTATTTTAATTATAGTTTGAGTTAAG -GAGTGATTTTATGAAATTAGCTGAAGCTATAAAAGAACAGAGAGAATTAAAAAGATGGTCTCAAGAGGAA -TTAGCCAATATATTAAAGGTTTCCAGACAAAGTGTTTCTAAATGGGAAAGTGCCAAAAACTATCCTTCCT -TAGATATTTTGATTGCTATGAGCGATTTATTTGGAATCTCTTTAGAGCATTTAATTAAAGGAGATGCACG -TTTTAAAAAAGTTATTTTAGAGGGAAATTATAGAGAGAGTAACAGGGCACCTTCCATAGTTGATTTTCTT -TATGATTTTTGGTGGCTTTTCTTTCCTGTTGCCGGATTTTTAGTTTGGGCCATTCATTCGTTCATGGGTT -GATTTTAAAATCAAAATTTAATGCACATCAGGCAATATGAAAAAGGAAAGTATTTTTACGACACCTTGAA -ATGTATTGATAAGAATAGAAGAGTTTACAAAAGGCAATATGAAATATATACTAAAAGTAACAAGAATTTC -GTTTGTAAACGCACCAAACCCCGAACTATTCGCCGTAGTTCGGGGTTTTTTGGTGAATTGGCTTTAATCG -TCTATATTATTTTTTATCACGTTTATGGAGCCAATAACCAAATAACGTAACGAGACAACCACTGATTGCC -GTTGTCATGATGTGAACAAGAATTTCATTCATAAATCGCACCTCCTCTCTACGCCGAATTGACGTCTGAG -AGATAGACGACCTTCACATTATAACAAATCTCTTCTTCCATGAAATAACATGAATATTAATAAATGTTGT -TATATATTAAAGATAAATAAATATAAGGGTGGGATTGATAATGTTTGGCGATCAAAGATAAGAAGCTACA -AAATATGTCATTAAAGAAGGTTATCAAGATATTTATTTCCTCAACAAAAACGGGGAATGGTATTATTTCG -AAGTAAGAAGTGCCTGGCGTGGCAAACATATTATTAGAGTTAAAGATGGTTTGTTAGGTTGGAGAAAAGA -AATAGTAACTGAATAAAGATACAAAATACTTGCCAATGCAAAAGAATGAAAACGCGTCAAATCAACGATG -TATAAAAGATGCATAAAAGATAATGAAAGTAAAAAGCCATAAATGCCTATATGACGGCATTTATGGCTTT -TTGTTTGGTTAACATAATCGATGATTACCAGAAGTTCTCACTATATAAAAGACACTAAAATTTTATAACT -TTTAGTGCCTAATCAATTATTTTAGCTACCAAACAAACGACTCCAAAACCCCTTTTTAGGTTCCGTTTCT -TCACTCTTTTCTTCTATATCACTATCATTGTCATTTAGATTAGCTGGAACGTCTTCTCTTTTTGCTTCTT -CACCTTGTGTACTTTCGTCGCTTTGACTTCCAGATATATCCTTATATTGAATCTCTGTTTCTTTGGTTTC -TTCCTGATCTCTGTTAATATTTACAGGATTAGTAGTATATGTTTTTTCTTGTGCATCAACGTTTTGTCTA -GTGTTAGTAGATGTATCAAAGGGATAATTAAGGTGTTTTTCTTTTTCTAATTGATTTTCTAATTTTTGAA -TCTTTTTATTACTCTCTAATGCCAGAACTTGCTGATTTTCAAGCAATTTTGATCTTTCTTGCAACTCTTT -TCTGTAAAATTCAATTGTTGTTTCATGACGACTTTCTTGTTTTTCAATTTGATTATTTAAAGTATCAATC -TGATTTTTAAGGATTTCTACTATTTGAGCATCGCTTTTCGATTCAAAATTAATATTATCCGACCCTTTTT -TTGTTTGTCTTCAGTAGTACTTTCAAAACCATATTTCTTTTTATTTTCATTTACTCTTTGAATGATTTTT -TCTATATCGGTATCTTCTTTAATAAACGAAGTGTTTTCCTGTTTTATTGTCTCTATATTCAATCGCTTAA -TATTATTAAAAATCGTTTGCTTACTAACCCCTAATTCTTCACTCAACTTTTTCACACTTTTCATATCATC -AACCCTTTATAAACCCTTGATAAAACTATATTTTCCCTTTTATAAGTTTATTTAAAGTGCTATAATAAAC -TTAATATAACAAAAACCCCAACTACTGGTAATAGTCGGGGTTTGGTAATAAAACGTTTAGAAACTGTTTA -TTTATATAATTTTCGATACTTGTATTATATAATGAATAATATCTTAGTGCAAGCACCTAAATCATTAAAT -AAATGTAAAGCTAAATAAAAACGTTTTATTACCTCTTACCAAACTAAAATATGGAAAGAGGTTTTTTGTC -ATGTAAAATCAATATTTTACAGTGCAAGAAAATTACAAAGAAAGATTTTATCAAATCCCTAAAGTATTCT -TTACCAGTGAAAATTATAAAAATCTAACTAATGATATGAAAATAGCCTATGCTATCTTACGTGATCGCTT -AAATTTATCTATTAAAAATAACTGGGTTGATGAAGATGGTAACATTTACTTTGTTTATTCAAATGAAAAG -CTAATGGAAATCTTAAATTGTAAAAAAGAAAAGTTAACAAAAATAAAAAAAGGGTTAGAAAACGATGGTC -TACTCATTCAAAAACGACGTGGTTTAAATAAACCAAATATTCTATATTTAATGAAACCTATTGTCACAGA -ACGTGATATTTACAAAATAGAAAAAGAAGAAAACGATGTTGAACTTTACGGCGAGAAGGAAGTTCGAAAA -TCGAACGTCCAGAAGTTCGAAAATCGAACGTCCAGAAGTTCGAAAATCGAACACTAATGATACTGACTTT -AATGACATTGACTTTAATGATACTGAGAATAATGATATGAATGACTTGAATGATATAAAGTACAAAAATG -AAATTAGTAATCATTCAAATCAATTTACACATAATTTTGATGATAAAGAAATGCTATTGCAAGAATTCCC -AGAACAACTAACTAATTATTTATTAAAATATGATTATAGAGATTTAGAAATCATAAAGGCTGTTATTCTT -AAAGCAAAAAAATCATTTAATTCAAGGCATGAAGATATGCATTACATGTTAGAGGACATTGAGGATGAAA -TATTAACTTCTTTAAAAAGACTTAAAAAAGCTATACATGATAGGGGAGTTAAAGGCCAAAAGGAAACAAT -AAAGTCAATGCAAGCTTATTTAATGCAAACAATTCTAACTGAACTTGAAGAAACACATGCCCTTTATATG -CGCCGTAAAAACATGAAACAATATAATATCTTTAATCAATAATTCAAATGATTTTATAACACTCGAAGAG -ACATCAAAATATTCCGTTAAATCATCTGACTTTTTAACTGATGACGACGAAAAAATCAAGAAATTGTAAG -TGATTTAGAAAAAGGTTTGTATCGAAAACGTATGTTAAGTTATGGTGGATTGCTTAAACAAAAGCATAAA -ATTTTAAACTTAGACGATGCCGAAGATGGTAATTTGATTAATACAAGTGATGAAGATAAAACGACAGACG -AAGAAAAAAAGCACATTCAATTACCGCAATTTGGAATTTCGAAAAGCAAAATTATTATTTAAGACATTAG -TGATAACTGATGTCTTTTTTTATTGTTTTTCTGTAAAAAAGTGCTGTCTTATTTTTGTGACAAATGCTGT -ATGTAGTGTCACAAAAGTGTGACACTACAGCTTTTTATGACCTCACACAAAAACATTTTCGAAGCCTTGA -AATATCTGGCTTTGCCAGATCCCCCATTCATTGATGGGGACAAATTTCCCTTATGCTCTTACGGAGTTTT -TAGAGAAAAATTGAAATTTATCGATTTTTGATAAAAAACGCCCTGCAGGAATTTAGAAAAACATGGGAAA -GTTTTAAAGAATTTTATGCTCATTTTTAATTTGCATGTAAATGGGCAGTGTTAAAAAATTAGTCACTGGT -TTTGCTGAAATTTTTGTTTGTGAAATTACCATATATTTATTTGGCTCGTATTTTCGTTTTAAGAGCTTAT -ATAAGTTTTAGATAGAAAACTACGCGATTTATCTTTTAATCTTTAAAATCCCCCTTTAAAATTCAAAATA -GGGGCATTCATTATTTTAGTAAGTCTTGTGATAAAGTTTGTTAAAAAATTGGAGGAGTCTATTATGAAAA -AGTTTTTTATGTTTTTTGTTTGTTTATTAACTGTGTTTTTAAGTTTTAATTTTGTTAATTCGATTTTATT -TGACGGTTCTTTTGTCTTTTTAGAAAGTTTTATTTATTCATTGGTTTTTACACTCGTTTTTTTAGGATTA -GAGGGGGATAAGGAGAAAAAGAAGTAGGAAACGCATTTATGCCGAGAAAATTTATTGATATTGAGAAGAA -CCCTTAACCAAAATTGAAGACGAATGTCGGCATAGCATAAGCTATTAAGCCGACTATTCGACAAGTTTAG -GGATTGTTAAGGGTTCCGAGGCTCAACGTCAATAAAGCAATTGGAATAAAGCAATATAGATTTGCTATCT -AATAATCTTTAGAAGTTTTTTTCATTAATTTTTCAAAATCAGTATCGCTAATATTTGATTGAGTAAGTGT -GATTAAGTTTCCATCTGGATCTTTTATTGTCATTTCTTTAGCGTTCCATGGTTGTTCTTCTAATTGGCTT -ACTATAAATTTTTGTGAAATGTTTTGTGATTTTTCTTCGATATCTTTTACTAAGATATTTAAGTATATTG -AGTTTCCAACTTCAAAATCTTTTTGAGAAATTAGCATTAAGTCTTGATATTTCTCTAGTCTCAAATGATT -CATTAGCACTTTATTAAACATTGGCATTTGATAAAATTCCATTGTTTTCACCTCTTTTTTTATTTATTGT -AATGTATTACGTTACGTTAATGTCAAAAAGAGGTGGTTTTTGAAACGAGTTTCTTCTTGTCTTGATACTA -TAAAAAAACAAAGTTATATAACATAAGACGACTTATCGGAAGTAGATATGCTTGTATATTCACAGATGGT -ATAATAATAGAGTCGCCTATCTCTCAGGCGTCAATTGACGAAGAGAGGAGGTGCATTACTTTGCTAATCA -TTTTCGTTCACATCATAGCACCAGTCATCAGTGGCTGTGCTGTTGCGTATTATACTTATTGGCTTAGTAA -ACGCAACAAATAATTAATAGGCGACTTTATAAGCCAGCATCGAAAAAATCCCCACACTACTGCAATAGTG -TGGGGATTGGTGCATTAATTGTTAATCATTTTCGTTATATAGATTATAACACTGGTTAGTAAAGAAATGC -AAAGTGATATGTACAGTATCAGTTACAAGGTATCGTTTCAATATTTTGACGCTAATTGTCAATAATTTAA -AGGATAATTTATGAATGTTATGTATTGAGAGTTTATCCTTTTTTTATATAGATTGTCATTAGAACGTGCA -TTAAATTTAGAATAAATAATACAAAGATCAAAATTCATGAAATCAAATTTTTAATAACTTCATTAAGCTT -CGTATCAATATACTTATCCTTATGTATGACTAAATAGAAATAACGTTTGATGTCTAAGTTTGTTACTTCT -AGCTTTTCTAAATCATAAGGTGTTAATGTTGATTTAGAAACAATAGAAAAGCCTTTATCAGCGTGGACCA -TATTTTTAATTAGATTTGTGTTGTTAATTTCTACTAAATAAGAGGATGAAGTCATTTGTGATAACGCATT -TTCCTGATAGACTCTTGTCCCTGATCCACGTTCTCTGATAAAACATATTGACTTATTTGAAGATGATGAT -TTTTTGCGAATTAATACTATTTCATCTTGAGCAATACGTCTACTGTGTATAATATTACTTTGAACCTCTT -TTTCGATTATACCTAAATCGATAGTGTTATTCTTAATATGTTGTAATACTGTATCAGAATTATTTAAATA -CACATGAATGTATAATTCAGGATAATTTTTGGCTAAATCAGCAAGATGTTGTGACAATCGATATTCGCCA -TAAGTGTAACTACTCCCTATCGTTAAATCTCCTGAAATTATATCAGGTTGCATTTTCAAATCGTGTCTTA -AGTTTTGTTCTAATCGCTCACGTTGTAAAGCATATTGAAATAGTTTCTCCCCATCACTTGTTAAAGACAT -TTTAGAATGTCTAAATTCGAAAATTTTTACATCGTATTCCAGTTCTAATCGTTTAATATCGCGACTTATT -GATGGCTGTGAAGTATATAAATTTTCTGCAGCTTTAGTAAAACTTTGCGTTTTAACTACTTCAGTTAGAA -CTTTTAATGAATCCATTAACTAGGTCTCCTGACATTTGAATACCTCTATTATAACAAAAATGTTATGAGT -AATATACTTAATATTTATTTTACGTTATAACTATGCGATGCTAAGCTTTTGATAAAGGAGGAGTTAAAAA -GTGAAGTCCTTAAAAAGCAAAGCCTTTATTTATGGTTTATTATTCACATTTATCATCGCAGTTATAAGTT -TATTAGGCTCAAAGTTACCATTTTTAGATAAGATAGGTGCTTTAACAATTGCTATACTGATTGCGATTCT -ATATAGACATTTTAAGGGTTACCCTGAAGCATATCGTTCAGGAATCGCATTTTCGTCTAAACGGTTACTG -AAATTAGCTATTATATTATATGGATTAAAGTTAAATATTTATGATGTAATTGGAAAAGGTAGCGATTTGG -TATTAATCGATATTGGAGTCATCCTTTTTAGTATCGGATTAATGTTGTTACTAAATAAATATATTAAAGG -AGATAAAAACCTCATCCTATTATTAGGTATTGGCACTGGGGTGTGTGGCGCGGCAGCTATTGCAGCAGTA -TCTCCAATATTAAAATCTAGAGAAAAAGATTCTGCGATTAGTATTGGTATTGTCGCACTTATTGGCACTA -TATTTTCGCTTGCATATACTGTAATATATTCTATTTTTACAATATCTCCTGAAGTATTTGGGGTCTGGTC -AGGTACAAGTTTACATGAAATTGCACATGTAATTCTTGCTTCAGACTTCTCAGGCCAAGAGGCTTTGAGT -ATGGGACTGTTAGGAAAACTGGGACGTGTGTTTTTATTAATACCTCTGAGTATTATTTTAATTTTAATTA -TGAGAAAAAAATCGCATAGTGAGAATGAAAAAAAGCGTATTGATGTACCTTACTTTTTACTTGGTTTTGT -CATGATGGCATTATTCCATACTTATGTATCCTTGCCACACATGGTTATGCAAATTATAGATAATATCACT -ACTATATGCTTATTGATGGCAATGGTTGCATTAGGGTTAAATGTTTCATTTAAAGACTTAAAAGATCGTG -CTTTCAAACCATTAATAGCTGTCATTATTGTATCTATTTGTTTATCAACTGTGACATTTATTGTTGCTAA -GTACTTTTATAGTTAGACTATAAGTATATTAAAAAATTGATATAGATTCTCACAAACAAACACAACACAT -TGAAGGCATTCCATATTACTACGGTCAAAAAAAGATCAGCCTTTTTCTTACTAGGCCTATTCTTCTTTAT -TATTACTGACATATCAAGCTTTACAATGCATATTCCGACTTACCTTGACAGTTTAATTATAGTAAATTTC -AATATTTCTATTAACTATGGAACAATATAATTTAGGGTACATTCTAATCATACAAATGAAGTTGTTGAAT -TTATAATAGCTTAAACGTATGATTAGTGTGTATTTTTTAACTTTTATTATTGTTGAAAGTTAAGTTGTAT -TTACTTATCACTCTTTTCATCTTCTAATTTATTGAGATAACGATAAATTGTTGTACGTGAAACTTGCCAT -TGTTCAGCAATTGTCTTAATTGGCGTACCATTATCATAAAGTGTTTTGAGCAATTTTAAATCTTGTTTGT -TTAATTTTTCGGGTCTTCCACCATACCGTCCTCTAGCACGTGCTGCAATTCTACCAGCTGAAGAACGTTC -TAAAATTAAATTACGTTCAAATTCTGCAAATGCTGCGAATAAATGAAATAATAATTGTCCGGTAGAACTT -GATTTATCCATCGTTATATTTTCTTCTAAACTATGGAAACTTACACCTCGTTCATTAAGCTCATTAACTA -ATGTAATTAAATCCTCCATATTACGTCCTAGTCTATCTAATCTCCAAACAACAATAGTATCTCCAGACCT -TGCAAATTCAATTGCTTTATCTAAACCAGGTCTTTTACTTTTTGAACCACTCATATGATCGTTAAATATC -TTTTCACAACCATATGCATTTAATCGATCTTCTTGTAAATTTAAATTTTGTAATCCTGTTGAAACTCTTG -CATAACCTATTTTCAAAATACAAACCTCCTATATCCATCATTAGTGTACCATAACTTAAATACGGGTACT -TTTATGAACATAGATTTTTTATTGGGTTTCTGAACATAAAAATAAATGTAATCCTCACTTATTTCGATAT -AAAAAAAGAGTGTACAGAAAATGGTTATTTTCTGTACACTACAAAATAAAAAAGTCAAATGGTATATACC -CCTATCCCGTATATGTTACACTCAAATTGTCTTATTACTATCTTTAAAAATATAAAATTAGGAGGTTTAA -TTTTGTCGAATAACAAAAAACACCAAAATCATGAGCATCATAGTCATCAAGAACATGAAAATCACACTAG -TCATGGTAATCATGAACATCACCATCATGGAAATTTTAAAAGTAAATTCTTTATTTCTTTGATTTTTGCG -ATACCGATTATTATTTTATCGCCCATGATGGGAGTTAAATTACCGTTTCAAATTTCATTTACAGGGTCAG -ATTGGATTGTATTAATTCTTGCTACAATTTTATTCTTTTACGGAGGAAAGCCATTTTTATCAGGGGCTAA -AGATGAAATTTCAACTAAAAAACCTGGAATGATGACGCTTGTTGCTCTAGGTATTTCAGTAGCTTATATT -TATAGTTTATACGCCTTTTATATGAATAACTTCAGTGGTTCATCCACACATACAATGGACTTTTTCTGGG -AATTAGCGACTTTAATTTTAATCATGTTATTAGGTCATTGGATTGAAATGAACGCAGTAGGTAATGCAGG -CAATGCACTGAAGAAAATGGCAGAACTTTTACCTAATACTGCAGTGAAGCTGATTGATAACAATCAACGA -GAAGAAGTTAAAATATCAGATATTCATATTGACGATATTGTGGAAGTCAGAGCAGGCGAAAGTATACCCA -CAGACGGAATCATTGTTCGAGGAGAAACATCAATTGACGAATCATTAGTTACTGGCGAATCAAAAAAAGT -TCATAAAACTCATAATGATGATGTTATTGGAGGTTCAATTAATGGTTCAGGTACAGTACAAGTTAAAGTG -ACTGCTACGGGTGAAAATGGCTACCTATCTCAAGTTATGGGTCTTGTTAACCAAGCTCAAAACGATAAGT -CAAAAGCTGAACTCCTCTCTGATAAAGTCGCAGGTTATTTGTTTTACTTTGCAGTAAGTATTGGCCTGAT -TTCATTTATCGTATGGATGCTTATTCAAAACAACGTCGATTTCGCACTTGAACGGCTAGTAACCGTATTA -GTCATTGCTTGTCCACATGCATTAGGCTTGGCAATACCTTTAGTTACAGCACGTTCTACCTCTATAGGCG -CACATAATGGTTTAATCATTAAAAACAGAGAATCTGTAGAAATCGCACAACATATTGATTACATCATGAT -GGATAAAACTGGGACACTAACTGAAGGTAACTTTTCAGTGAATCACTATGAAAGTTTTACAGACGAGTTA -AATAATGAAGAAATATTGAGTCTATTTGCTTCATTAGAAAGTAATTCTAATCATCCACTTGCCACTGGTA -TTGTTGATTTTGCTAAAGGCAAAAATATTTCATATGCTACTCCTCAAGAAGTTAATAATATTCCAGGTGT -AGGCTTAGAAGGCACAGTTGATAATAAAAAACTCAAAATAGTGAATGTTTCTTATCTCGATAAAAGCAAT -TTTGATTATAATAAAGAACAATTTACGAATCTCGCTCAACAAGGGAATTCTATTAGTTATCTAATTCATG -ACCGACAAGTTATTGGTATTATCGCACAAGGCGATAAAATTAAAGAAAGTTCAAAACAAATGGTTTCGGA -TTTATTATCGAGAAACATTACGCCAGTCATGCTTACAGGCGATAATAAAGAAGTGGCACAAACAGTGGCT -GAAGAATTAGGTATTAGTGATGTCCACGCGCAATTGATGCCCGAAGATAAAGAAAGTATTATCCAAGATT -ATCAAAGCAATGGTAGCAAAATCATGATGGTTGGTGATGGTATCAATGATGCGCCAAGCCTTATTAGAGC -AGATATTGGTATGGCAATTGGCGCAGGGACAGATGTAGCTATTGAATCGGGGGATGTCATACTCGTTAAA -AGTAATCCTTCTGATATTATCAATTTTTTGTCCCTTTCAAAAAATACGATGAAAAAAATGGTTCAAAATT -TATGGTGGGGCGCAGGATATAACGTGATTGCAGTTCCTCTTGCAGCTGGTATATTAGCTTCTATTGGTTT -AATATTATCACCTGCTGTGGGTGCAATACTTATGTCTTTAAGTACGATCATCGTAGCAATTAATGCATTT -ACATTAAAATTAAAATAAAAGAGGTAAATATAATGTATAAAAAAATGTTCACAATTTTAATTACGTTATT -TTCTATAATGTTTATGGTTCCTAATGATACTTTTGCAGAAGGTAAGCACAACATGATGGACATGAAAGAA -AATGATCAAAAGCGAAATGATATGATGGATATGAAAAGTCATGACGAAAGAAAAAATTTGAATTCTTCAC -AAGGAAAAAATGAAATAACATTTCCCAAAGTTTTAGATCCTAAAAAAGATAACAATGGTTATAAAAGTTA -TACATTAAAAGCGCAGAAAGGAAAGACAGAATTTTACAAAGGTAATTTCTCTAACACTTTAGGATACAAT -GGAAATTTACTTGGGCCAACTTTAAAATTAAAAAAAGGAGATAAGGTTAAAATTAAGTTAGTCAACAACT -TAGATGAAAATACAACATTTCATTGGCATGGGTTAGAAATAGATGGAAAAGTGGATGGAGGCCCTTCTCA -AGTTATAAAACCAGGAAAAGAAAAAACAATAAAATTTGAGGTTAAACAAGAGGCTGCTACATTATGGTAT -CATCCCCACCCCTCCCCAAATACAGCTAAACAAGTTTATAATGGTTTATCAGGGTTATTATATATAGAGG -ATGACAAAAAGAATAATTATCCTAGCAATTATGGGAAAAATGATTTGCCTATAATAATCCAAGATAAAAC -ATTTGTATCTAAAAAGTTAAATTATACAAAAACGAAAGATGAAGATGGTACTCAAGGTGATACAGTCCTT -GTGAATGGGAAAGTAGATCCTAAATTAACAACAAAAGAAGGAAAAATACGTTTGAGACTTTTAAATGGCT -CCAATGCTCGGGATTTAAATCTTAAGCTAAGTAATAATCAAAGTTTTGAATATATTGCTTCAGAAGGCGG -CCATTTAGAAAAGACTAAAAAGTTAAAAGAAATTAATTTAGCTCCTTCAGCAAGAAAAGAAATAGTAATA -GATTTATCTAAAATGAAAGAAGAAAAAGTCAATCTTGTTGATAATGATGAAACAGTAATTTTACCAATTA -TTAACAAAGAAAAAAGTACTAACAAAGACACTACTCCAAAAGTAGATAAAAAAATCAAATTAGAAGGTAT -GGACGATAATGTTACTATTAATGGCAAAAAATTCGATCCTAACAGAATAGATTTCACACAAAAGGTAAAC -CGTAAAGAAACTTGGGAAATTGAAAACGTCAAAGATAAAATGAGTGGTATGAAGCACCCGTTCCATATCC -ACGGAACGCAATTTAAAGTTTTATCAGTGGATGGGAAGAAACCTTCAGAAGATATGAGAGGCAAAAAAGA -CGTTATATCTCTGGAACCTGGACAAAAAGCCAAAATAGAAGTGGTTTTTAAAAATACTGGGACATACATG -TTCCATTGTCACATACTTGAGCATGAAGATAATGGAATGATGGGACAAATAAAAGTAACAAAATAATTTA -TATCGTCGCGATCATTTTATCATCTCCAAATATTTTAGGGATGAGGCTGGGACATTAAGTTCTTAGGCAA -TGTAAAAAAGCTGATTTCTATTAATTATTTGATGGAAATCAGCTTTTTTGATATTTATTTTATAATGTAC -AGCTCGTTGAGCTGCTATTTTCCTTATATTAAGTGCCATTAATACAAAACCTAGCTCTCGTTTAACTTTA -TTTATTCCTCGAACTGACATTCGAGTGAAACCCAAAATAGCCTTCATAAATCCAAAAACAGACTCTACAT -CAATTTTTCTTTGACTATAGATTTTTTTCGTTTCTGGTTCAGAAAGCTTTTGATTAATTTGGGCTTTAAA -GTATTCCCAATTATAATTCTTCATGATTTTCTTATTGGATTTCGAATTTGGCTTCATGCATTGTTGCCTC -AAAGAACATGCTGAACAGTCATCGCATTCATATAGTTTGAAGTCACGTTTAAAACCATATCTATCATTAC -GGTTTGCATATCTTTTAAAACCTATTCTTTTGTTATTAGGACATATAAATTCATCATTAAGTTCGTCATA -TTTCCAGTTTTGAGTGTTAAAAATGTCACTTTTAAACTTTCTCGTTTTATCTTTAATAAACATACCATAC -GTAATAAGTGGCGTTTTATTAAAATCATCTATAATAGCCATATAGTTTTGCTCACTACCATAACCTGCAT -CAGCTACAATATACTCCGGTAAATAACCGAAGGTATTTTGAATCATTGTTAAAAATGGAATTAAAGTTCT -AGTATCTGTCGGGTTTTGAAATAGGTCATAGGATAAAACAAATTGAGAATTTGTCGCTATTTGTAAATTG -TATCCTGGCTTAAGTTGGCCATTTTTCATATGGTCTTCCTTCATTCTCATAAAAGTTGCATCATGATCAG -TTTTAGAAAAGCTATTTCTATCTTTAAGAATCGATTTTTGTTCTTCATATTTACTTTTTCTTTCGGAATA -ATCATCAAATTTCTTTTTGAACTTCTTAATCTCAGTTCTTTTTTTACGGGTCTGTTTTCTAATTTGAGTA -CAATCTTCGTTCTGAATAGAATGATTTAAATCTTCGATTTCTTTATCTAAATGACTACCAATTAAATCTA -TTTCTTCTATTGTTAAATCGCTATCTCCATCTTCTTTTATCTCTGGTATTATTTTTTCTTCAACTAAGTC -ACGATATAATGCTTTTGAATTTTCGTTCAATTTCGATTCGTGATTTTGAATACTTTTCTTCCACACAAAT -GTATACCTATTGGCATTAGCTTCTACTTTTGTACCATCAATAAAAATTGAATTATCATCAATAAGATTTT -GCTTTAAACATTGACTATGAAACTGAATAAATAAAGATTCAATTAATGCATCAGTATTAGGATTTACTCT -AAAACGATTAATAGTTTTATAAGAAGGTGTTTGATTTTGAGCTAACCACATCATTCGAATACTGTCATGA -AGTAATTTCTCTATTCTACGACCAGAAAATACAGATTGAGTGTATGCATATAAGATAATTTTTAACATCA -TTTTTGGATGATAGGATGTTGCGCCACGATGATGTCTGAATTCATCGAATTCGCTATCAGGTATCGTTTC -AACAATTTCATTAACATATCGTGAAATATCATTTTGAGGAATTCTAACAGAAGTTTCTATTGGTAGTGTA -AGTTGGGTCATGTTATAATTTTTATACATAAGGCACCTCGTTAATTTAGTTTAGTGGTATTTATTAAATT -ATACGAAAGTGTCTTATTTTTTTAAAGTATTTCAAAGTAAAATTACATGTTAATACGTAGTATTAATGGC -GAGACTCCTGAGGGAGCAGTGCCAGTCGAAGACCAAGGCTGAGACGGCACCCTAGGAAGGGATCCGTCAT -CAAAAATTCTATTTATAGAATTTTACAGTAATGTGCCAGACGGGCAAAGCGAAGCCATTCAATACGAAGT -ATTGTATAAATAGAGAACAGCAGTAAGATATTTTCTAATTGAAAATTATCTTACTGCTGCTTTTTAGGGA -TTTATGTCCCAGCCTCTCCGTAAATTGCACACATATAGTACCTATTTATCCTTCACTCTCATCAGTCGCA -AACTATTTAATGCTACCAAAATAGTGGCTCCCATATCGGAAAGAATCGCAATCCAAAGGGTTAGCCAGCC -TGGAATAACCAATAGTAAGGCAATTATCTTAATTCCGATGGCAAACGTGATGTTCGCTTTGATGATATTT -AGCGTTTTCCTGCTAAGTCTTACTGCAAATGGAAGCTTACTTAAATCATCTCCCATTAATGCAATATCAG -CTGTCTCGATGGCAGTATCTGTTCCAGCACCGCCCATTGCAATGCCAACAGTGGATGCAGCAAGTGCAGG -AGCATCATTGACGCCATCGCCAATCATAGCTACATTACCATGCTCGGCTTTCATTTTTTTAATATAGTCC -AACTTATCCTGTGGCATCAATTCGGACTGAATATCAGAAACGCCTACATGAGCACCGATTGCTTCTGCGG -TACCTTGATTATCACCTGTCAGCATAATTGTTTGCTTGATTCCTAACTGATGAAGTTTTTGAATCACATT -TTTACTTGTTTCGCGGACCTCATCTGCTACAGCAATCACGCCGAGGATTGTTTGGTCCGTTCCAATAATC -ATGGCCGTTTTCCCTTGGTTTTGTAAAACTTTCACTTTATTTTCAAACTCAAGGCTAAAATCGGAAACAT -TTAATTCTTTAAAAAGCCTTGGACTGCCAATGTAATAGGTTGTTCCATCTATATTCCCTTGAATGCCCCG -ACCTGTAATAGAAGTGAAGTCCTCCACTCTAACATCGGAATAAGTAATATTATCTTGCTCTGCTTTCTTC -ATTATTGCTGAAGCAAGTGGATGTTGTGATCGATATTCTAAAGCTGTAATAATGGAAAACAGCTCTTTTT -CTTCCACTTGATCATTTAACACTTTAAAATCTGTTACCACTGGTACACCTTTTGTCAGTGTTCCTGTTTT -ATCAAATGCGATTGCCTTAATGGCTCCTAATTCCTCTAGATAGACACCGCCTTTAATCAACACACCTTTT -TTAGCTGCATTTCCAATTGCCGAGACAATCGAGATTGGAGTAGAAATAACTAATGCACACGGACATCCAA -CTACAAGTACCGCTAATCCTTGATAAACCCAAGTATCCCAACTTCCACCAAAGAATAAAGGTGGAACGAC -TGCAACGAGCGCCGCAATAACCATAATGATCGGCGTATAATATTTCGCAAATTTATCTACGAATGCTTGC -GCTGGAGCGCGCTCCCCTTGTGCTTCCTCAACCAGATGAATAATCTTGGAGATAGTTGTATCCTCTACGT -ATTTGGTGATTTTTACTTCAAGTAGTCCCTCTTCGTTAAGCGTACCTGCAAATACTTCATCATCTACCGT -TTTGGCAACAGGGACAGATTCTCCTGTTATAGCAGCCTGGTTGACAGCCGACACACCATTTATAATGATC -CCATCCATGGCAATTTTCTCCCCTGGTTTGACGATCATAATATCACCCACGGCAATATCGTCCACATGGA -TCATTATTTCCTGACCATTCCGCATAACAAGTGCTTCTTTTGGGGCAATATCCATCAATGAACGAATGGA -CTGTCTTGCTCTATCCATAGAAAAACGTTCAAGTGCTTCACTGATTGCAAAGAGAACGACAACAATGGAT -GCCTCTGCCCATTCACCAATGATGGCAGCTCCAATAACTGCTACGGTCATCAGGGTTTTCATGTCGAAAT -CAAAGCGTATCAAATTTTGAAAACCAACTTTAAATAGTGAATATCCGCCAATTACAATCGAACCTACAAA -TAACATGGAAGTTACAAGGTTATCTTCTCCATTTACAAAGTGAGAAAGGTAACCAAAAGCAATCAGTAAT -GTGGCAAACAGCAATGTGCTGTGTTTTTTATAAAACGGTATTTTCTCTTCTTTAGGAGCCTTAGTGTCTT -CTTTGACCGCTTGCATCGATGAATTCGCTAGTTTTTCGGGAAATACCTTAAGATTCTCGAAAGCACCTGC -TTTTTCAAGCTCTTGAACCGATGCATTTCCATATACATCAATTTTGGAAGCGCCAAAGTTCACTTTTGCA -TCCTGAACTCCAGCTAGTTGTTTTACATTTTTTTCAAACTTCCCAGCACAATTCGCACACGAGAAACCCT -CCACACGGTAAACCTGTTTATCTTCTGTTAATGTTTTTGCTGAACTATCCAATACTAGCAACCTCCCTTT -GATACAAGAAAGCTTTTTCTACAAGCTGTTTAACATGCTCATCATCTAGTGAATAATAGACTACTTTTCC -TTCTTTACGGTATTTTGCTATACCTAAATTTTTCAATAATCTTAAATGATGGGATGCCGTAGCCGTTGAA -GATTCAATGATATTAGCTACATCACAAACACATAACTCTCCCTCTAAAGACAAAACATAAGCAATTTTAA -CTCTTGTATCATCTGATAGAGCCTTAAAAACTTTCGCTACATCCATAGGATTCTGTTTAGCAAGGTCTTT -TTTAGCCCTGTTTACCTTATCTTCATGAATATAGGTAACTTCACACATATCTTTTGTCATAATTATCCTC -CTTATTCAAATGACTGTTTGTTTGATGATTATAATATATCCCACCATAAACAAATAGTCAAATGATTGTT -TGAATGATATATAATTAATATTAAAAAGGATTGATTTCTAATGTTAGAAACCAATCCTTTCGGAGATTTT -AACCAAATTTTAAAGTATCTTAAACATAACTGCCCCGTTAGTTTAAGTGCATCCTTTCACAATCTGTCTA -CAGATTAATAATTAAAACTACTCTTTATTATACAGATCTCCATATAATTTTTGAATTTGGTTCTGTAATT -TTTTATTTTCTTTTTTTAATTCCATAACCCTTCTTTTTAAGGTTTTTATAAGGATTTCCTCCGAACGAGA -ACTTTTCTTGGGTTTTGAGACTACATTTGATGTTATTTGACGCTCACGAAGGGATTCGATTCTTTGCCTA -ATATCGTGTTCCTTATAAAGCCATGATTTAGAAACATTAGCTTCCTTTGCTATTGAATTAAAATTAATAG -CTTTACCTTCAATCGAAAATTTAGAAATCGCTTTGTCTACTTTTTCCCTTGTCTTTTGTGATTTCTGCTT -CGCCAAACGTACAATTTCTGTTGTATTTCTAACTTGTTTATCCATTGATAATTACCCCGTCAAACTTCCA -ATGATTTGTTCGGTTCTGTTGCAAAGTTAGAAATATAGTATAATAGTCAACAAAAATGAGGTGCAGAGGA -TGAATTATTTCAGATATAAGCAATTTGACAAAGATGTCATTACTGTAGCCGTTGGCTACTATCTAAGATA -TGCATTAAGTTATCGTGATATATCTGAAATATTGAGAGAACGAGGCATCTATGTTCATCATTCAACAATT -TATCGATGGGTACAGGAATATGCTCCTATTTTGTATCAAATTTGGAAGAAAAAGAATAAGCAAGCTTATT -ATAAATGGCATATAGATGAGACGTATATCAAAATTAAAGGGCAATGGAATTATTTATATCGCGCTATTGA -TGCAGATGGCCATACACTAGATATTTCGTTACGTAAGAAACGAGATAATCACTCAGCATATACGTTTATT -AAACGTCTTATTAAACAATTTGGCAAACCTCAAATGATAATTACAGACCAAGCCCCTTCAACGAAGGTGG -CAATGTCCAAAGTGATTAAAGATTTTAAACTTACCCCCAACTGTCATTGTACCTCTAAATATTTAAATAA -TCTCATTGAACAAGATCATCGTCATATCAAAGTAAGGAAAATAAGTTATCAAAGTATCAATACGGCAAAG -AATACGATCAAAGGCATTGAATGTATTTATGGACTATATAAAAAGAACCGCAGATCTCTTCAGATCTACG -GGTTTTCGCCATGCCGTGTAATTAGCATCATGCTAGCTAGTTAATACGAAGTATTATTTTAAACATAAGG -TTAGACACTTATTTTTTAACTTTGCAACAGAACCTTTTAAAAGATATGCATACCGTAATAATAGATATGG -TTTTAAACGTGACTTCAAACTATATGAATGCGATGACTGTTCAGCATGTTCTTTGAGGCAACAATGCATG -AAGCCAAATTCGAAATCCAATAAGAAAATCATGAAGAATTATAATTGGGAATACTTTAAAGCCCAAATTA -ATCAAAAGCTTTCTGAACCAGAAACGAAAAAAATCTATAGTCAAAGAAAAATTGATGTAGAGCCTGTTTT -TGGATTTATGAAGGCTATTTTGGGTTTCACTCGAATGTCAGTTCGAGGAATAAATAAAGTTAAACGAGAG -CTAGGTTTTGTATTAATGGCACTTAATATAAGGAAAATAGTAGCTCGACGAGCTGTATATTATCAAATAC -ATTTAAAAAAAGCTGATTTCTATCAAATAATTAATAGAAATCAGCTTTTTTACATTGCCTAAGAACTTAA -TGTCCCAAGCTCGTATGGTTCTTTATAGATGCTTTATTGATTAATTAATAAAAAGCTTATTGCAAAATAT -GTTTTTAGGTAACTGTAATTTAGTGATTTTATCATTAACAGTACCAAATTAGCATATGATGTAATAAGCT -TTTTGTTTATAAAAATGTATGAGAATGTTTTTTCGAAATATTTCTTTCAATGCGTAATCCAATAGGCATA -ACTATAAATGAAAATATAATAAATACCCAATTGCTTACCTGAATATATGGTCCAAAGGCAAGTAATGATT -GTGGAATAAAGAATACATAGAAAAATCCTACAATTAGTAGAATGATTGCTAAATAGGTGAATATCCATAT -CCAATTTGAATTGTTAAAACACTGCAGTTGAATTGTTTTAAAACTAAACCATATAAATAAAAAGACAATA -AAGAATCCAACGACTACTGAAAACGGGAATGAAACAAAATATAAATTACTTCCACTTTTTTCCATGAAAA -ATCCTAAAAATCCTTTGAGAAAACTAACAATACCAATTAATAGAACGATGTGCTGATATATATATTTAAA -AATATTTTTAAATGTTTCATTAGGCATCGCTTTTAGTTCTTTTATTGCATGTGCTTTTGGGTCGTGATTG -AAAAAATCTAAGGCTAATAAACCATGTTGTTCTGCGCTTAATAATTGTTTAAGTATACGGTTAATAATTA -ACTCTGTATCATGAGGATTGACGCGAAAGTCAGAGCGCATATAAGTCATATAATTCTCGAAGATTTCTCT -ATCAGTATTGCTTAATCTTAATGATTTAACATTATTTTCTTTTGTTAATTGCGCAGTACTTTTCATTGTT -ACTAAAGCGCTCCTTTAAAAATGTTTAATTCCAAACTAAAATGGAAATGATTTTATAGTATTAATAAGGT -CAATCATATCATATTAAACGCATAAATATAACGATTAATATCGGAGAAGAAAATGAGGACACTTAATAAA -GATGAACATAATTATATCAAGCAAATAGCTAATATACATGAGACATTATTGTCGCAAGCAGAATCCAACT -ATAAATGTACTAAACTGAGTATTGCTCTTAGGTACGAGATGATATGTTCAAGATTAGAACATACAAATGA -TAAAATTTATATATATGAAAATGAAGGTCAATTAATAGCGTTTATTTGGGGACATTTTAGTAATGAAAAA -AGTATGGTTAACATTGAACTGCTATATGTTGAACCACAATTTCGCAAACTGGGAATAGCTACGCAACTGA -AGATTGCGCTTGAAAAATGGGCAAAAACTATGAATGCAAAGCGAATAAGCAGTACAATTCATAAAAGTAA -TTTACCAATGATATCTTTGAATAAAGATTTAGGTTATCAAGTGAGTCATGTAAAAATGTATAAAGATATT -GATTAGAATTAGGATTATGTTGCTAATTCATGTTAAAATTAAAAAAGATTTAATGACGTTAAGGAGTTTT -ATATGAAGAAATTAATCATCAGCATTATGGCGATCATGCTATTTTTAACAGGTTGTGGTAAAAGCCAAGA -GAAAGCCACTCTGGAAAAGGATATCGATAATTTACAAAAAGAAAATAAAGAATTAAAAGATAAAAAAGAA -AAGCTTCAACAAGAAAAAGAAAAATTAGCAGATAAGCAAAAAGACCTTGAAAAAGAAGTGAAAGATTTAA -AACCTTCAAAAGAAGATAACAAGGACGATAAAAAAGACGAAGACAAAAATAAAGACAAAGATAAAGAGGC -ATCACAAGATAAGCAATCAAAAGATCAAACTAAGTCATCGGATAAAGATAATCACAAAAAGCCTACATCA -ACAGATAAAGATCAAAAAGCTAATGACAAACACCAATCATAATTGAATTGCTTACTTGTTATAGATGAAA -GGTACAGCGTTTTAAACCTTATTTTAAGGGTATGTATTAATTAAAATGTGGTCATGATTGAAACAGAACG -TAAAAATAGACAACGTAATTAATAAAGGAGAGAAACGGCATGCATGAACAAGATTTTAGAATTTTAGAGG -GTCAAGATATTACTTTGCCAGAATTAGGTAGAGAATTAGAAAATATTACAGGACGCACGATTGCTGATTC -TACTGGCGAAATTAAGCGTGTAATTGCACATTTACCAAACTTTGAGTCCGATACAGATACTTTTGTTGCT -ACATATCGTTTAAACCATCAACAAGATTTTATAGATGCAACTTTTACTGCGCTGAAATCAGATAGAGCAC -GTTTAAAAGAAGTGCCAGTTCATGTTGAACTTATAAGCTATATTTCTAAATCAAAATAAACTGCTATCTA -AAACGCAAAGTTGATCAAAATATCGATTTTGTGTTTTTTATTGAGAAATTATATAGGAGTGTCAATCGAT -GATTTATTGTGAAACAGAGCGTTTAATATTAAGAGACTGGCATGAAGATGATCTGTTACCTTTTCAAAAA -ATGAATGCGAATTATGACGTACGTAAATATTTTCCAAGTTTATTGAGTTATCGTCGTTCAGAATTAGATA -TGAGAACTATGGATGCGGTTATTAAAGATTATGGCATTGGATTATTTGCTGTAGAAGATAAAGAGTCCCA -TCAATGGATAGGCTTTATAGGTTTGAATTATATTCCAGAAACAAGCGATTATCCATTTAAAGAATTACCG -CTTTATGAAATAGGTTGGCGCTTGTTGCCAGAATTTTGGGGAAAAGGATTAGCAACTGAAGGCGCAAAGG -CAACGTTGAAGTTAGCAGAACAACATCAAATATACGATGTCTATAGTTTTACAGCAGAAGCAAATAAAGC -TTCACAACGTGTAATGGAAAAAATTGGCATGACAGTGTATGATCATTTCGAATTACCCAATCTAAGTAAG -TATCATTTATTAAAAAGGCAAGTGCGCTATTACATTAATCTTCGAAAGTGAAAATTTATACATAAGCGTA -ACAAACACCCCTAATATTGTTTAGCTGATGATAACAATATTAGGGGTGTTTGTTTATTTTTTAACCTTAG -AATGATTAATCGTATGAACGAGTACCTAGAGGTTTGAAATTTAATATTGATTCTATTAATGATTCCTTAG -TGTCGCATAACGGTGCAAGTGCACGATACTTAGGATCAATAAAACCTTCCTCAATCATATGGTCAATCAT -TGTTTGTAGTGGATTGAAAAAGCCATTAATATTATAAATGGCAATAGGCTTTTCATGGATACCTATTTGA -GCCCAACTATACATTTCGAAAAATTCTTCTAGTGAACCTGCGCCACCAGGAGCCATGACAAATGCATCTG -CAAGTTCTGCCATTTTATTTTTACGTTCATGCATAGAATCAACTAAAATTAATTCAGTTAAACGTTGGCT -TGTGATTTCATGTTCATCTAACATTTTAGGCATGACGCCAATAGCTTTGCCACCATGATCTAATACACCA -TCTTGAATGGCACCCATAATACCAATTGACCCTGCACCAAATACTAATTCATAACCTTGTTCAGCAAAAT -ATTTACCTAAATCGTATGCTTTTTGTACATATGAAGGGTCATGACCTTTGCTTGCACCACAATAAACTGC -GATTCGCTTCATATTAATCCAGCTCCTTAATTCGATGAATGACTCTTAATAGTGATTTTTCAAACACTTT -TTGATCTTGCTTTGTAAAAGGTGGGGGACCTTTGTGGCGACCACCTTGTTTTCTAATTTGTGCATTCATA -TATCGTTTATCTAATAGTTGTTGAATATTTTTGGAATTGTATATCTTCCCATTATGATGCATGACAATTA -AGACTTTGTCGACTAATAAACTTGCGAGTCCATAATCTTGAGTGATTACGATATCATCTTTCGTTGATAA -TTGAACAATTTTGTAATCAACTGCATCTGGTCCATCATCAACATATAATGTTGATACATGTGGGGGATAT -AATTGGTTCGAAAAATGGCTGAAGCTCCGAATAATTGTCACAAAAATGCCTGTCTCAGTTGTTAAATCTA -TAATAGAATCAACAACAGGACAAGCATCTCCATCAATAATAATATGTGTCACAATTATGCCTCTGTATTG -TTTTCTTTATTTTGTTGAGAGGCGCTTTTGGCAACATAATCTTTATATTTTTTAAATGACTTGATGCGTG -CTTTATCAGCTTCTTGTTGGCGTTTTTGTTCTTCTTTGTGTCGTTTTTCAATATTTTTTTGTAACTTTTT -ATTCATTTTAGCGATTTCTTTGCGATTTTTTTCAGCTAGTTTATCGCCTTTTTTCTCAGTTTTCTCATCT -AATTTATTAGGTGTTAAGCCTGCTTTTACTTCGTATTTTTGTGACTTTTTCATATCTTTAATACGTTGTA -TTTCATTCTTTTCGCGGGCTTTTTGCTCTTCTTTATGACGCTTTTCGATATTTTTTTGAAGTATTTTATT -CATTTTATCAGCGTCTTTACGATTTTGTTTAGCTAATTTTTCGCCTTTTTTCTCAATATAGGCAGGATCA -TGTTCTCTAGCAAACTTTTTAAGTTCACGCTTATTTTCAAAATCTTGTTTTTTATCGCCGACATATTCTT -TAACATCACTCGCTGTGTTACTGATTGCTGCAGATGTTTTTGAAGCAACTTTACTTGTAGCATCTGTAAC -TTTTTGTACGTCCGGATGTTGTTTGATACGTTTACGTTCAACAATTAACGGTACCAATACAATTGGTAAT -ACATTAATCATAAATTTGATGACTTTTTTCTTATCCATAGATCTTGCCTCCATAATTACTTTATTAATTT -TACATACCCTATGATACATCAATATAAACGATGAGAGTAGTGAATCACTTATAAGTATTTCAGATGTTTT -TTCAAAGAAGACAATAAAAACTGCCAATCAAGTGGTTCCTTAATTGACAGTCTATATTTTAAAAGGAAAT -TAAATACCTTTACCAATGCCAAATCCGAAGTAAAGTATAGCAATAAAGATTACTAATACAATTCTGTAAA -TGGCAAATGGAATTAATTTGATTTTGTTAATAAGATGCAAGAATGTTTTGATTGCAATTAGTCCAACAGT -AAATGCAGCTAAAAAGCCTAAAATATAAAAAGGTATATCAGCAATCTGAATATCTTGATAATGTTTTAAT -AAAGATAAACCACTAGCCGCTAACATAATTGGAACAGCCATAATAAATGTAAAGTCTGATGCAGCTTTGT -GATTTAATTTCATTAATACCCCAGTTGAAATCGTTGAACCTGAACGACTGAAACCAGGCCACATAGCTAC -AGCTTGAGAAATACCGATGACAAATGCTTGGAAATAACTGATTTGATCTACTGTTTGTGGATTTTTAACT -TTAGCTGAGTATTTATCAGCAATAATCATATAGATAGCACCTACGAATAAGCCAATCATAACAGTTGGCA -CACTAAATAAATGTTCTTCGATGAAATCATCAAATAGTAAGCCTAAAATACCTGCTGGCACCATACCCAC -TAATACATGTAATAAATTTAAACGTCTTGGCTTTGAACGTCTTTGTTGATTGTTATCTCCTTCAACATGT -TTGTGTTTACCAATATGTAAAATCTCTAAGAAGCGTTCGCGGAACACCCATGCTGCTGCAAAGACGGATC -CTAATTGGATGACGATTTTAAATGTAAATGCTGATTGAGAACCTAAAAATTCAGATGATTTTAACCACAT -ATCATCAACTAGAATCATATGTCCAGTAGAGGAAACAGGGGCAAATTCCGTTAATCCTTCGACGATCCCT -AAGATAATACCTTTTATTAATTCAATGATAAACATAATGTACCCACTTTCATTACTCAATTTAATTTATT -TAAATATCAAAATTACCATATCATGATAGCATATTCATTTAAAGACATGCTAGTTATAGTTATAATACTA -GACTAAAGATGTATATATTCATTTTCTTTTACATGTAAAACTACAATATTTTATTGAGCTATTTAATTTG -ATTTTAAGGAAAACCTTTTATAATAGGTTTAGGTGATATAATTGTGAAAAAATTAACAACAATACTGTTT -CAATATAAAATTTTTCCGGTACTCATGTTCTTGGTCAGTACTGGTCTCGGCATACTCGTTATAACGCAAA -ATATTTTAATAGCAGATTTTTTAGCTAAAATTATAAGACATCAATTTCAAGGTTTATGGATTGTATTATT -TATTTTATTAGGTGTTTTACTTTTAAGAGCAACTGTGCAATTTCTAAATCAATGGTTAGGTGATACATTA -GCATTTAAAGTTAAGCATATGCTTAGACAGCGGGTTATTTATAAAAATAATGGTCATCCAATCGGTGAAC -AAATGACTATACTCACAGAAAACATTGATGGTCTAGCACCTTTTTATAAGAGTTATTTGCCTCAAGTGTT -CAAATCAATGATGGTTCCGCTCATCATAATCATTGCAATGTTTTTCATCCATATCAATACCGCATTAATT -ATGTTAATAACTGCACCATTTATTCCTTTGTTTTATATTATTTTCGGTTTGAAAACGCGAGATGAGTCAA -AAGATCAAATGACTTATTTGAATCAATTTAGTCAACGGTTTTTAAATATTGCTAAAGGTTTAGTGACGTT -AAAGCTATTTAATCGTACAGAGCAAACAGAGAAGCATATTTACGACGATAGTACTCAGTTTAGAACTTTA -ACAATGCGCATTTTACGCAGTGCTTTTTTATCGGGATTAATGCTCGAATTTATAAGTATGTTAGGTATTG -GATTGGTTGCATTGGAAGCAACGCTAAACTTAGTAGTATTTCATAATATTGATTTTAAAACTGCGGCAAT -TGCGATTATTTTAGCGCCTGAATTTTATAATGCAATTAAGGACTTAGGACAAGCATTCCATACTGGAAAA -CAAAGTGAAGGTGCCAGTGACGTTGTGTTTGAGTTTTTAGAACAACCGAACAATAATAATGAATTTCTAT -TAAAGTATGAGGAAAATCAAAAACCATTTATTCAGTTAACAGACATATCATTTCGATATGATGATTCTGA -TAGATTGGTATTAAATGATTTAAATTTGGAAATATTTAAAGGTGATCAAATTGCACTTGTAGGTCCAAGC -GGGGCAGGTAAATCAACTTTGACACATCTTATTGCAGGTGTTTATCAGCCAACAATAGGTACTATAAGTA -TAAACCAGCGTGATTTAAATATAGGAATACTTAGTCAACAGCCATATATTTTCAGTGCTTCTATAAAAGA -GAATATTACGATGTTTAAAGATATAGAAAATAATACTGTTGAAGAAGTGCTAGACGAAGTAGGTTTATTA -GACAAAGTTCAATCTTTCACACAAGGCATTAATACAATAATAGGTGAAGGAGGCGAAATGTTATCTGGTG -GACAGATGAGACGCATAGAACTTTGCCGTCTTTTAGTTATGAAGCCAGATCTCGTTATATTTGATGAGCC -TGCAACTGGTTTAGATATTCAAACAGAACACATGATTCAGAACGTTCTGTTTCAACATTTTAAAGGTACA -ACGATGATTGTCATTGCACATAGAGATAATACAATTCGCCATTTACAACGACGTTTGTATATAGAAAATG -GAAGACTGATTGCTGATGATCGCAATATTTCAGTAAATATAACAGAAAATGGTGATGACTTATGAAAACA -CGACTAAAATTTCAAGTAGATAAGGATTTATTGTTAGCTATAGTTGTTGGTGTTTGTGGAAGTTTAGTTG -CGCTCGCCATGTTTTTCTTAAGTGGTTATATGGTGACACAAAGTGCACTTGGTGCGCCACTATACGCTCT -GATGATTTTAGTCGTTACAGTAAAATTGTTTGGGTTTTTAAGAGCTATTACTCGATACGTAGAGCGCCTT -ATTTCTCATAAAGCTACATTTACAATGCTACGTGATATTCGGGTACAGTTTTTCGGTAAATTAGTAAATG -TCATTCCTAATGTTTACCGTAAACTGAGTTCTAGTGATTTAATTTCACGTATGATTAGTCGTGTTGAGGC -GTTACAAAATATTTATTTACGTGTTTATTATCCACCAGTCGTCATCGGTTTGACAGCGCTAGTTACAGTA -ATAGTATTGGCGTTCATTTCAATCGGCCATGCGCTATTGATTATGGTTAGCATGTTGTTTACTTTACTCA -TTGTTCCTTGGTTAAGCTCAAAAAAAGCACGTACTTTAAAGAAACATGCAGCTAATGAACAGGCTCGATT -TTTAAATCATTTTTATGATTATAAAGCTGGTATGGATGAACTACGTCGATTTAATCAAATTAATCATTAT -CGAAATAATTTGATGGCTAAATTAAATCATTTTGATAAATTACAACTTAAAGAGCAACGCTTTTTAACGA -TTTATGATTTTATATTAAATATTATTGCTATGCTTTCGATTTTTGGTAGTTTAGTTCTAGGATTAATTCA -AATTAATGCAGGCCAACTAAATATTATTTATATGACGAGTATAGTTTTAATGGTCTTAACTTTATTTGAA -CAAGCTGTACCAATGACAAATGTCGCGTATTATAAAGCCGATACTGACCAAGCATTGCACGATATTAATG -AAGTGATATCTGTACCTTCTACCAATGGAAATAAACGCCTTAATGATAAGTATGATGCAACGAACATTTA -TGAAGTTAAGGACGCTAGTTTTAAGTATTGGAACCAGCAAACGTATGTGTTGTCGGATATTAATTTTAAT -GTTAATAGAGGCGAAAAGATTGCGATTGTGGGTCCTTCTGGTTCAGGAAAAAGTACATTACTACAAATTA -TGGCAGGGTTATATCAATTAGATAGTGGCTCTATTCGTTTCGAAAATATGGATATGTTTGAAATAGATGA -CAAAGATAAGTTTGAAGCGTTAAATGTCTTGCTACAATCTCAACAATTATTTGATGGTACAATACGTCAA -AATTTATTTACCGATGAAAAAGATGAAGCGGTGCAAGCAATATTTAAGCAATTAGATTTAGAACATTTGG -CACTAGAACGTCAAATTGACTTAGATGGTCATACATTATCTGGCGGAGAAATTCAGCGTTTAGCGATTGC -GAGGATGTTATTAAAAGATACTGCATCAACGTGGATTTTAGATGAACCAACAACGGCATTAGATAAACAA -AATAGTTTGAAAGTTATGGATTTAATTGAAGCACATGCAGAAACATTAATTGTTGCTACACACGATTTAA -CTTTATTGTCACGTTTTGAGACCATCATTGTGATGATAAATGGTAAAATAGTTGAAAAGGGAAACTATCA -ACAATTACTCGCTAATCAAGGTGCTTTATGGAATATGATTCAATATAATGCATAAAAAAACTGCTTGATA -GGCTAAGAAACCTTTCAAGCAGTTTTTTAACTAACAAGCTTACGCGTGCTAATTGTTTTTCTATTCTTAA -TAAATTCTAAACATTACTTTAATTGTCATGACAAAAGTTAATTATTTTTCCTTTGTTTCATCAAATGCAT -GAATGACTTTACCTAATAAGCGATTAAGTTCTTTAACTTCATCTTGAGATAAAGAAGAAGCTGAAGCGAC -TTTGTCAGATGCATTACTTAATTCTGGTCTAATAGTTTCACTTTTGTCAGTCAAGTGAATAAATACTTCA -CGTTGATCGACTTCGGAACGTTCACGCTTAATTAAGTCTACTTGTTCCATTCGTTTTAATAATGGTGATA -CTGTACCAGTATCGAGTGCTAATTCAGTTACGACTTTCTTGACGTTTACAGGAGATTCATCCCATAAAAT -AGTTAAGACAAGAAATTGTGGGTATGTTAGATTGTACTTCTTAAAAACTTTGTTAGAGTAGTAGCGATTA -ACTTGTCTTTGAGCATTGTACAAACTAAAGCATAGCTGTTCTTTTAAATTATGTTGATCAGACATTAAAG -TTCTCCTCCAGACATACTATCCGTTTTTTTCTCTTTTCGGATTGGTAATCATTAAAAAGTTGATTGTTTA -TTAATTCACAACTTTCTTTGATTCAATGCCATGCTAAAATTAAAGTATGTTTAAAGTTTAGAAGATATTT -TTGATTAAATCAAGCAAAAAGATAATTTAATATATATGTTATCATTTTTAAAAATAACTGTAATAGAAAA -GAGAATATAAAATGAAAAATAATAAAGATGAAAAAATAAGAATATCCATAATTAACGGATTTTTGGGTAG -TGGTAAAACCACGTTACTGACACATTATATTAGTGAATTATTAAAAAATGATGAGAAAATTAAAATCATC -ATGAATGAATTCGGTACTGTTGATATCGATAGCAATAGTATTTCAAATGAAATTGAAGTCCATTCATTGA -TTAATGGTTGTGTTTGTTGCGATCTTAAACAAGAACTTGTCTATGAACTAAAAGCCATTGCTTTAAAAGG -GGACGTTAATCATGTCATCATAGAAGCGACAGGCATTGCGCATCCTTTAGAATTACTAGTTGCATGTCAA -GATCCGCAAATCGTTAATTTCTTTGAAAAGCCAATTATTTATGGTGTATTAGATGCGACTCGATTTTTGG -AACGTCATCAATATACCGAAAATACAGTTTCGCTGATGGAAGATCAGTTGAAACTAAGTGACATGATTAT -TATTAATAAAATTGATCTTGTAACTGATGACAGTATTGAGAAAATTGATAAGCAATTAAGTTTGATTTGT -GCAAGTATTCCAACTTATAAAACAACCTATGGACAAGTTTCGTTGGAAGAATTGGACTTACCTGGTAAAG -ACAGAGAGATATCGTCGCATCATCACCATCATCATGGGATTAAAAGTATGACTTACACATTTACAGGTCC -GATTGATCGTCAATTGTTTTATCAATTTATAATGAAATTATCGGAATCTGTTCTACGTTTGAAAGGTTAT -GTATCATTTAGAGATCAACCAAATGCAATTTATGAATTTCAATATGCTTATGGTTTACCAGATTATGGAA -TAATTGGCATGCAATTACCATTAACGATTGTTATTATTGGTGAAACTTTAGATACAAATCACATACGTAA -TCAATTGGATATGCTACAATTTACGTAAATCAGAAAATGTGTTGTTTCAATTTAACGGAAATAGCACATT -AATTTCTTAATACTTTTATTGTGAATATTTTGTGACATTGAGGGATGGAGTGGATGAGATATGGAACAAA -TAATGATTAATCACTATGTTCATTTTTCTAGGCTTGTACAAGGTTTTTGGCGTGCAAATGAATGGAAGAT -GACTGCGAAAGAGTTAAATTATTTTATAAATGAATTAGTTGAACGTGGGATTACAACGATGGATCATGCT -GATATTTATGGGGATTATCAATGTGAATCACTGTTTGGTAATGCTTTGGATTTATCACCCGAATTAAGAA -ATAAAATTCAAATTGTTACGAAATGTGGTATCATTTTGCCTTCTAAGCAATTTGATTTTACAAATGGACA -TCGTTATGATTTGAGTAGTAAGCACATCGTGAAATCTGTTGAACAGTCATTAATCAATTTGAATGTAGGT -TATTTAGATAGTCTACTCATTCATCGTCCTTCACCATTGATGGATCCAGAACAAGTTGCTGATGCATTAA -CTAAACTTGTTAAACAAGGTAAGTTGAAGTCATTCGGGGTGTCGAATTTTAATCATTCACAATACCAATT -GTTAAATCAATATATTATGAAAGAAAGACTACATATTAGCATCAATCAATTAGAATTATCGCCATATCAC -GTTGATAGTTTACAAGATGGAACAATGGATTCAATGTATCAAAACCATGTTCAAATCATGGCTTGGAGTC -CTTTTGCAGGCGGTAAAATTTTCGACAAGGAAGATATTAAAGCGCAACGTATTATGAAAGTTATTCAATC -AATAGCTGACAAATATGGTGTGAGTGACACAGCTGTGATGATAGCATGGTTAGTAAAAATACCGCATCGT -ATCATGCCGATACTTGGAACAAGTCAGTTAAAGCGTATTGATCAAGCAATCGAAGGGCTGCAACTTAATT -TAGATGATCAGTCGTGGTTTGACATTTACACCGCTATTATCGGACAAGATATTCCGTAAACTTATTTACT -TTTAAATCATAAAGGAGCATATCATGACAAACGAAGATAAACGTTTCGAACAATTAAGATTTGAACGCAA -ATTTATAGTTATTCCGTATGTAATTTATGCAGTCATTGTATTACTATTAAATATTTTCTATTCTGATTTG -AAAATAACAATGACATTATTCGGACTTTTCTTTGCGTATAATGTAGTCATTTTGTTCATAGCATTTATTA -AACATTATAAACGCACATTGTTACTAAGTCTTATATTAACAGTGCTTAGTGGCGCGGCATTCTTTGGAAT -TATTTATGTTTATGGCATTAATCATTTTTAAATATTAAAAAGAGACTATCTACAATAATCTCATTTGCAT -TTTATCTAACTAAGTTTAACTTTTGCTTAGAAAAATGATGCTATGAGGATATTCAGTAGATAGTTTTTTT -ATGATCTAATATTTAAACCTAGATATCGTTTTGTAATTAACCGAGATAACTCATCACCTAGCAATATTAT -TTACAAAATATTTCGATAAATTTGTGTATTTTGCATAAATCAAAAAAGGATGTTTATAAAAATTGTTATA -ATTAAATTAAGATTAAACAAAGGGGTGACTGTTATGTCAGAAGTAAAAAAGGTAGTTAAACATGAACAAC -AAAAGAAAGAAAAGACAAAAAAGCAATACAAGCCATTTTGGATTGTTATGAGTTTTATAATACTTATAGT -TGTACTATTACTCCCGGCACCTTCAAGTCTGCCAATAATGGCTAAGGCAGTACTAGCTATTTTAGCTTTT -GCAGTTATTATGTGGGTAACGGAAGCTGTATCATATCCGGTGTCAGCAACTTTAATTATTGGTTTAATGA -TATTACTTTTAGGATTTAGTCCAGTTCAAAATTTAGGGGAGAAGCTAGGTAATCCGAAAAGTGGCAGTGC -TGTTTTAGCTGGAAGTGATCTTCTAGGAACAAATCATGCATTATCATTAGCATTTAGTGGATTTGCAACA -TCAGCTGTAGCTCTCGTTGCAGCCGCATTATTTTTGGCTGCTGCTATGCAAGAAACGAATTTGCATAAAA -GACTAGCTCTTTTAGTGCTATCAATTGTTGGTAATAAAACTAGAAATATAGTTATTGGAGCAATTATTGT -TTCAATTGTACTTGCATTTTTCGTTCCTTCTGCAACAGCTAGAGCAGGGGCAGTTGTACCAATCTTGCTG -GGTATGATTGCAGCATTTAAAGTTTCTAAAGATAGCAAGTTAGCGTCTTTATTAATAATTACTTCAGTAC -AAGCTGTGTCAATTTGGAATATTGGTATCAAAACGGCGGCAGCACAAAATATCGTAGCGATTAATTTTAT -AAACCATCAATTAGGATTTGATGTTTCATGGGGCGAGTGGTTCTTATATGCAGCGCCTTGGTCCATAGTT -ATGTCTATAGCTTTATATTTCATCATGATTAAAGTGATGCCTCCAGAAATTAATACAATAGAAGGTGGCA -AAGATTTAATAAAAGAAGAATTGCATAAACTTGGCCCCGTTAGCGCACGTGAATGGCGTTTAATTGTTAT -ATCGATGTTATTATTACTGTTTTGGTCAACTGAAAAAGTATTACATCCGATTGACTCTGCATCCATTACT -ATTATTGCTTTAGGTGTTATGTTAATGCCGAAAATTGGTGTCATGACATGGAAACATGTTGAAAATAAAA -TACCATGGGGAACAATTATCGTGTTTGGTGTAGGTATTTCACTAGGTAACGTTCTTTTGAAAACAGGAGC -AGCTCAATGGTTAAGTGATCAAACTTTTGGTGTTTTAGGTTTAAAACATTTACCTATTATCGCGACAATT -GCACTTATCACGCTTTTTAATATATTGATTCATTTGGGCTTTGCGAGTGCAACAAGTTTATCATCAGCGT -TAATACCTGTTTTTATTTCGCTAACCTCTACGTTACACTTAGGAGACCAGTCTATAGGATTTGTTTTAAT -TCAACAATTTGTTATTAGTTTTGGTTTCTTATTACCTGTTAGTGCACCTCAAAATATGTTGGCTTATGGC -ACTGGTACTTTTACTGTGAAAGATTTCTTGAAGACAGGTATACCATTGACAATTGTAGGGTATATTCTAG -TGATAGTTTTTAGTATGACTTATTGGAAATGGTTAGGTTTGCTTTAATTTAAAATATAAATAAGAATCTA -GGTTATTTTAAAGTGACAAAAAGTTTAATAAAATAAAAAGATAATTGAAGGGTGTTTTGTTTATGGCAAT -AGCTGTGTTATTAAATCGAATGTTTCGAATGGAACACAATCCATTATTTGAATATATTTATCAACAAAAA -GAAGACATTGATGCATGTTATTTTATCATTCCGGAAGAGGACATGTCTTCAGCTTCTGATTTGAAAGCAC -AGTTTTATCGCGGTACTTTGCAGCGCTTTTACCAATCGTTGCACGCAGAAAAGCTCACACCTTATGTCAT -GTCTTATGACGATATCATTTCATTTTGTAAAGAAAACAATATCTCTGAAGTAGTGATTGCAGGTGATATT -ATGAGTTATCACCTTGAAGAATATGATATTTTACATCAACGCTCTTTATTCAATGAAGCACGCATTGCCG -TTACTTTGATACGTGGGAATCATTACTTTAAAGCGAGTAAAACAATGAATCAACAAGGGGAGCCATACAA -AGTTTTTACTAGTTTCTCTAAAAAATGGCGACCTTACTTGAGGCATAGAGACGTATATCACTATGATTTA -AAATCATTCGAAGACTTCGTCATTGCATCACCTGATGATTTAGTGTTTGATGACATAGCATTTGGATCCT -CACAAATAATTGAACAGAATAAATGGCAACATTTTTTAGATCAAGATATACAGAATTACGAAAGCGGAAG -AGACTATTTACCTGAAGTGTTAACAAGTCAGCTAAGTGTTGCTTTAGCATATGGATTATTAGATATTATT -GAAATTTTTAATGATTTATTGGCGCGTTATGATGAGGATGAGGCAAACTATGAAGCATTTATACGTGAAC -TCATTTTTAGAGAATTTTATTATGTGTTAATGACACAGTATCCAGAAACCTCATACCAAGCTTTCAAATC -TAAATATCGACAGATAAAATGGTCGCAAAATGAAGCGGATTTTAATGCATGGTGCGAAGGGCAAACAGGA -TTTCCAATCATTGATGCAGCAATAATGGAATTGACACAAACTGGTTTTATGCACAATCGAATGAGAATGG -TTGTGTCGCAATTTTTAACCAAAGATTTATTTATAGATTGGACATGGGGAGAAAAATTCTTTAGAAAGCA -CCTTATTGACTATGATGCAGCATCAAATATTCATGGATGGCAATGGTCTGCTTCTACAGGTACGGATGCA -GTGCCGTATTTTAGAATGTTTAATCCAATAAGACAGAGTGAACGCTTTGATCCTAAAGCTTTGTATATCA -AAACATATCTTCCGATTTTTAATCAAATTGATGCTAAATATTTGCATGATACACAACGCAATGAGTCCAA -CCTTTTTGAACTGGGGATTGAATTAGGTCGTCATTATCCAAGACAAATGGTAGATCATCAAGAAAAACGT -ACACAAGTTTTAGCTGCATTTAAAGCGCTAGACTAATTCGGCTGAATTGATAGATCAGGCATGAGTAAAA -TCTGGAGCAGAATTTAAAGTTCTTAAGCAATATAAATAAGCCAATTTCTATTATTGATGTGATAGAAATT -GGCTTTGCTCAAATATATAAGTTGTATTTAGTTTTCTTATTAATTTGGTGTTATCTTAGTATGTCCGTAA -ATAAAGTGAGGTATAGTACGACATACTCTAAAAATGTAGCGAGATAGATATATTTCAATCTAACTTTTAT -GTTTTGAGGCACTTGCCATTTAGGATATTGTCGTTCGTAATACGACACTTGTTGTATAAATACACCTAGT -CCAAATGGTAGCATCATGAGTAAGATACTTCTTAAATAACTTAAACCAATATCATGCCATATGTGTCCAA -TAATCAATTGAAAGACAATGATAGATACTATTAAAACGATTATATTTATTGTCACTTGTTCAAACGCACT -CCTTTTCCAAATAATAGAATTGCTGCTTGCATCACAACCATAAAACATACAAACATAGCAGTTTTAAGCG -TTAGACTTTCTAGAATGTGATTTAGAACATGTAAGGGTTCATTAAAGAAATAAACGGAATGTAAGCGTAA -GAAACGACCAATATAAATTCCGAATCCATTTAAAAACATTAGTACGACAACAATTAATCTATTAAGCCAA -CGGTGAGAAGTCAATGTTAGTATTTCAAAATAGATTAAAATCATCACATAAACCGCTAAGAAGACACCAA -GCAGTAAATAGGTAAAGTATTTCCACTCACCTAAATTTAGTCCTGCGTAAAAGTTGAATTGAAATTGGTT -CAAATGGATTAAATCAGTTACCATATAAAATGTATTTGGTAAAAGTAACACAAATATAAAACTATATATG -ATAAAGAGTGGCCATTCATACTTTTTATTCGGTTTGAATAATCGTAATAATAGACTAAGCTCAAAAGGTA -TATATGCTAAAAACAAATTTAAAGTCATAAATTGAAAAATTTTAGTCTCAAAAAGGGAGACGATAAATAA -TATTAAAAAGTAAATTCTAGCGATGTATCGAGATTGCATCAATAATAAACACTACTTTCTAATGAAAAAA -GTTATTCATTCAAATGTGATAGTTATAAACGCATTCAAGTCCTAATTAAAAATTTAATTTAACTCGTTGA -AGTATATTAATAAACGAGAATGCATTTATGATTAAGCACTTATGATAACTTGTAATAAAATTTGATTCAA -CTAAAAAGTAAAGTGCTATTGAAGATCAAGTAAATTTAAACCGACTGCATCGTTGAATGAACGTTGAATG -TCCCAATCAGTTACAGTAAGAATGATTTCAGCAGTTGCAGAAACAATTGCTTTAGCGAGATGTCCGCTAA -AAGTTTCATATGATTGAGTACCGAAAGTAGCATGCAAATGTGCAAAATGTCCATTATCTAGACGAGAAAT -ATTACCTAATAAGCTCGTCAATTCTAGTGGCTCAGTAATATGTTTTTCTTCATATTGTTTCGTTGTTAAA -TTGAAAAATTTTAAAACGACGTCATCACATGCACCAATGCCGCTGACAGATGTAAATGTTAAGTCTTGGT -CATCTGCAAAGTTTGTTATACATTCAACGATATCTTCTCCTTTTTCTAACACTAGTAGTATAGTATGATT -ACTTTTTTGCAATTTCATATGATCAATCCCCTTTATTTTAATATGTCATTAATTATACAATTAAATGGAA -AATAGTGATAATTACAAAGAAAAAAATATTGTCAAATGTAGCAATGTTGTAATACAATATCAATATAGAA -ACTTTTTACGAATATTTAGCATGAATTGCAATTTGTCGTGGAAAAGAAGAATAACAGATTTAAGAATGAC -ATGGAGAAAAAAGAGGTGAGCATATGAATAAACAGATTTTTGTCTTATATTTTAATATTTTCTTGATTTT -TTTAGGTATCGGTTTAGTAATACCAGTCTTGCCTGTTTATTTAAAAGATTTGGGATTAACTGGTAGTGAT -TTAGGGTTACTTGTTGCTGCTTTTGCGTTATCTCAAATGATTATATCGCCGTTTGGTGGTACGCTAGCTG -ACAAATTAGGGAAGAAATTAATTATATGTATAGGGTTAATTTTATTCTCAGTGTCAGAATTTATGTTTGC -AGTTGGCCACAATTTTTCGGTATTGATGTTATCGAGAGTGATTGGTGGTATGAGTGCTGGTATGGTAATG -CCGGGTGTGACAGGTTTGATTGCAGATGTTTCACCAAGCCATCAAAAAGCAAAAAACTTTGGCTACATGT -CAGCGATTATCAATTCTGGATTCATTTTAGGACCAGGGATTGGTGGATTTATGGCAGAAGTTTCACATCG -TATGCCATTTTATTTTGCAGGTGCATTAGGCATTTTAGCTTTCATAATGTCAGTTGTATTGATTCATGAT -CCGAAAAAGTCTACGACAAGCGGCTTCCAAAAACTTGAGCCCCAATTATTAACAAAAATTAATTGGAAAG -TCTTTATTACGCCAGCAATTTTAACGCTCGTCTTAGCGTTCGGTTTATCGGCATTTGAAACACTGTATTC -TTTATATACATCGTATAAAGTAAATTATTCACCTAAAGATATTTCGATTGCGATTACGGGTGGCGGTATC -TTTGGTGCACTTTTCCAAATTTATTTCTTTGATAAATTTATGAAATACTTCTCTGAGTTAACATTTATTG -CATGGTCATTAATATATTCAGTTATTGTATTAGTGCTATTAGTTATTGCCGATGGTTACTGGACAATTAT -GGTAATTAGCTTTGCTGTCTTTATCGGGTTCGATATGATAAGACCTGCTATTACAAATTATTTCTCAAAT -ATTGCTGGTGATAGACAGGGATTTGCAGGTGGGTTAAACTCGACATTCACTAGTATGGGTAATTTCATAG -GTCCTTTAATCGCAGGTGCGTTATTTGATGTACACATTGAAGCACCAATTTATATGGCTATAGGTGTGTC -ATTAGCAGGTGTTGTTATTGTTTTAATTGAAAAGCAACATAGAGCTAAGTTAAAACAACAAGATTTGTAA -TATCGCACATGGTTGTCATTCGATTAATGTATTTCGACAACTAAAGCATTTCAAAATAAGCATCGATTTT -CTTACAATTATAGTGAAGAAAAGTCGATGCTTTAAATTTATAAAGATTAAAAACTTTTAAATGTTTTAGT -CTTTATATTTAAATGTTATATGTAACAAAAAATGATTTTGAGTAATAAACATGTTACAAATATTACATTC -TTTTTAAATTGCAATCCACATACCTAATTCATTAACGTTAATGTGTTAAGATGATAAAAAATGAGTAAGG -AAATGTGGGTAAGGGGATGACAGTAAAAAATTTATTTTTAGGCTTTGTTGCTGTAATATTAACCGTTTGT -TTAATTGGTTTATTAATATTAGCAACAAATGAAGATGCGCTTGCTAAGGTACATAAAACGATTAATACGC -TTAACGCGATAAATGTATCAACTGAAGATACTTATAAAAAGAAAATGGATATTCTCAATATTCATACTGC -TAAAGCATCTGAAGTGAATGAAAATGTGAAAAAGCAAAATCATTTTAAGCATCGTGTGAATGCAAATAAA -TCAAATTCTTTTAACGAACAAGAGTGCCAAGTTATTGCTGATCGTTATGCAGATAAGCATATCAATGATA -ATTATGGTTTAGAAAGAATTTCTAAGACAAATCATGGATATAATTATGTTTATTCCAATGATAATTCAAC -GAGTAAGCAACATGTAAGTATTTCAAATCAAGGCATAATAACGAAATAATAGATGGAACAGTGTATTCTA -ATTGGATATACTGTTTTTATTTTGCAATATTTTAATTTAAAAAGGTGAAATCAACTTATAAAATGATGTA -AATGTTATGTCAAAATCAACCAATCCGTAATGTATTTTAAAATGTTAATATAGTTCTGAAGAAGTATAAA -TGAGGTGTTGAAATGGCTAAAAATAAGAAAACTAACGCGATGCGTATGCTTGATCGTGCAAAAATTAAAT -ACGAAGTTCATAGCTTTGAGGTACCAGAAGAACATTTATCTGGCCAAGAAGTCGCAGAACTCATACAAGC -AAATGTTAAAACAGTATTTAAAACACTTGTTCTAGAAAATGCAAAACATGAACATTTTGTATTTGTTATC -CCAGTAAGTGAAACTTTAGATATGAAAAAGGCAGCTGCTATGGTTGGAGAGAAGAAATTGCAACTTATGC -CTTTAGATAATTTAAAAAATGTAACGGGATACATTCGTGGTGGGTGTTCACCTGTTGGTATGAAAACATT -GTTTCCAACAGTCGTTGACAAATCCTGTGAAAATTATAGTCATATCAGTGTGAGTGGTGGGCTTCGAACA -ATGCAAATCACGATAGCTGTTGAGGATTTGATTACAATAACTAAAGGGAAAATTGGAGCAGTTATCCATG -AATGATTAATAACAACAAAAAGTATGGGGCAAGATTAGGAGTGCGACAGAGATGAAATTTTTATAAAATT -CATTTCTGCTACACTCCTTTTTGATTGAAATAGCATTTTACGATCATAAACAGTCATGATAATTGAGTAT -TTGAACATAAAAATGTAATTTTATCGTCACAATTTGATTGTTTGTGATTGTTTTTGGTAATTTATGATTG -AAAAGTGAAAGCGTACTCATTATAATACAGAGTGAGATGGGGTGATGATGATAATTACAGAAAAAAGACA -CGAGTTAATATTAGAAGAACTTTCGCACAAAGATTTTTTGACTTTACAAGAATTAATAGATCGAACTGGC -TGCAGTGCTTCAACAATACGAAGAGATTTATCTAAACTACAACAATTAGGGAAATTACAACGTGTGCATG -GTGGTGCAATGTTAAAAGAAAATCGTATGGTTGAGGCGAATTTAACTGAAAAATTAGCAACTAATCTCGA -TGAAAAGAAAATGATTGCTAAAATAGCAGCTAATCAAATCAACGATAATGAATGCTTATTTATCGATGCT -GGTTCATCTACATTGGAGCTAATTAAATATATTCAAGCGAAAGATATCATTGTGGTAACCAATGGTTTAA -CACATGTAGAAGCTTTACTTAAAAAAGGTATTAAAACAATTATGCTAGGTGGTCAAGTTAAAGAAAATAC -ACTTGCTACGATTGGTTCAAGTGCCATGGAGATATTAAGACGATATTGTTTCGATAAAGCTTTTATCGGG -ATGAATGGATTAGATATTGAACTTGGATTAACTACTCCCGATGAGCAAGAGGCATTAGTTAAACAAACAG -CAATGTCATTAGCCAATCAATCATTTGTACTTATAGATCATTCTAAGTTTAATAAAGTATATTTTGCTCG -TGTACCTTTGCTAGAAAGTACGACAATCATCACATCTGAAAAAGCATTAAATCAAGAATCGTTAAAAGAA -TACAAACAAAAGTATCACTTTATAGGAGGGACTTTATGATTTATACAGTGACTTTCAACCCTTCAATTGA -CTATGTCATTTTTACGAATGATTTTAAAATTGATGGTTTGAACAGAGCAACAGCAACATATAAATTCGCT -GGGGGAAAAGGTATTAATGTCTCACGTGTTTTAAAGACATTGGATGTTGAGTCAACTGCTTTGGGATTTG -CAGGTGGATTTCCTGGGAAATTCATTATAGATACATTAAATAACAGTGCAATTCAATCGAATTTTATTGA -AGTTGATGAAGATACACGTATTAATGTGAAATTAAAAACAGGACAAGAAACAGAAATCAATGCACCGGGT -CCTCATATAACGTCAACACAATTTGAACAACTGTTGCAACAAATTAAAAATACAACAAGCGAAGATATAG -TTATTGTTGCTGGAAGTGTACCAAGTAGTATTCCAAGCGATGCGTATGCACAAATTGCACAAATTACAGC -ACAGACAGGTGCTAAATTAGTAGTCGACGCTGAAAAAGAATTAGCTGAAAGCGTTTTACCATATCATCCA -CTATTTATTAAACCTAATAAAGATGAATTAGAAGTGATGTTTAATACAACAGTGAACTCAGACGCAGATG -TTATTAAATATGGTCGTTTGTTAGTTGATAAAGGTGCGCAATCTGTTATTGTCTCACTTGGCGGTGATGG -TGCTATTTATATTGATAAAGAAATCAGTATTAAAGCAGTTAATCCACAAGGGAAAGTGGTTAATACAGTT -GGCTCTGGTGATAGTACAGTTGCAGGCATGGTGGCTGGAATTGCTTCAGGTTTATCGATTGAAAAAGCAT -TTCAACAAGCAGTCGCATGCGGTACTGCCACGGCATTTGATGAGGACTTAGCAACACGGGATGCTATAGA -AAAAATAAAATCACAAGTTACGATTTGCGTACTTGATGGGGAGTGAAAATAATGAGAGTAACAGAGTTAT -TAACAAAAGATACGATAGCAATGGATTTAATGGCAAATGACAAAAATGGTGTTATTGATGAGTTAGTAAA -TCAATTAGACAAAGCAGGTAAATTAAGTGATATCGCGTCATTTAAGGAAGCGATTCACAATCGAGAATCA -CAAAGTACAACTGGTATCGGTGAAGGTATTGCTATTCCACATGCCAAAGTGGCCGCAGTTAAGTCACCAG -CTATTGCATTTGGTAAATCTAAAGTAGGCGTAGATTATCAAAGTTTGGATATGCAACCAGCACACTTATT -CTTTATGATTGCAGCGCCAGAAGGTGGCGCACAAACACATCTAGATGCTTTAGCTAAGTTGTCTGGTATT -TTAATGGATGAAAATGTACGTGAAAAATTATTACATGCATCGTCTCCAGAAGAAGTGTTAGCAATTATTG -ATCATGCTGATGATGAAGCGACAAAAGAAGAAGAGGCAGAAGCTGAAGCACAACAAGTTGCAACTGCAGA -ACAATCATCTAAACAATCTAACGAGCCATATGTATTAGCTGTAACTGCTTGTCCAACAGGTATTGCACAC -ACATATATGGCACGTGATGCATTGAAAAAGCAAGCGGATAAAATGGGCATTAAAATTAAAGTTGAAACGA -ACGGTTCAAGTGGTATTAAAAACCATTTAACGGAACAAGATATTAAAAATGCAACAGGTATCATTGTTGC -TGCTGATGTTCATGTTGAGACGGATCGCTTCGATGGTAAAAATGTCGTAGAAGTACCAGTAGCAGATGGT -ATTAAACGCCCAGAAGAATTAATTAATAAAGCATTAGATACAAGTCGTAAACCTTTTGTTGCCCGTGATG -GTCAAAGAAAAGGTAACTCAAATGACAGTCAAGAAAAATTAAGCCCAGGTAAAGCTTTCTATAAACACTT -AATGAACGGTGTTTCTAACATGTTGCCACTTGTAATATCTGGTGGTATTTTAATGGCAATCGTGTTTTTA -TTTGGTGCAAACTCATTTGATCCAAAAAGCTCAGAGTACAATGCGTTTGCAGAGCAGCTTTGGAACATTG -GTAGTAAAAGTGCATTCGCGTTAATCATTCCAATTTTATCTGGATTCATTGCACGTAGTATTGCGGATAA -ACCTGGATTCGCTTCAGGTCTTGTAGGTGGTATGTTAGCAATTTCAGGTGGTTCAGGATTTATTGGTGGT -ATTATTGCAGGTTTCTTAGCAGGTTACTTAACACAAGGTGTTAAAGTGATGACACGTAAGTTACCACAAG -CATTAGAAGGATTAAAACCAACATTAATTTACCCATTATTAACAGTGACAGCTACAGGCTTATTGATGAT -TTATGTCTTTAATCCACCAGCATCTTGGTTAAATCATTTATTATTAGATGGATTAAATAATTTATCAGGT -TCTAATATTGTATTATTAGGTTTAGTCATTGGCGCTATGATGGCGATTGATATGGGCGGTCCATTCAACA -AAGCGGCATATGTTTTTGCAACAGGTGCGTTGATTGAAGGTAATGCAGCACCAATTACAGCTGCAATGAT -TGGTGGTATGATTCCACCGTTAGCAATTGCGACAGCGATGTTAATTTTCAGACGTAAATTTACAAAAGAA -CAACGTGGTTCAATTATCCCTAACTATGTGATGGGTATGTCGTTTATTACAGAAGGTGCGATCCCATTCG -CGGCTGCCGATCCATTACGTGTTATCCCTTCAATGATGATTGGGTCAGGTATAGGTGGCGCAATCGCTTT -AGGTTTAGGTTCTCGAATTACTGCGCCACACGGTGGTATTATCGTAATTGTTGGTACGGATGGTGCACAT -TTACTACAAACACTTATTGCACTTGTAGTAGGTACATTAGTTTCAGCATTAATTTATGGACTTATTAAAC -CAAAGTTAACTGAAACAGAAATCGAAGCTTCAAAATCAATGGACGAATAACTTTTATGATTTAAAATGAT -TGTTAGAAATGACGTTACATCAATTTGTCAGTCGATTGAATGTATGTTAATTTAATATATCGTGTTAACG -GTAGTTTATATAAAACTATTAAAACACCTTCCATTAATTCAGTTTTTATGAATGGATGCGAAGGTGTTTT -TAATTTTTAGTATGTGAATGTAGTCATTACAAAAATAAATATAGTTTTTAAAGTTTTTGCAAAAAGTTAT -GCCAAACGAAGCAGATATAGTAAAATATGAGTGTCTTAAAGTGAAAATTTATAAATAAAGAAGGGTTTAT -ACGTGTCAGAATTAATTATATATAACGGCAAAGTTTATACTGAAGATGACAAAATCGATAATGGTTACAT -TCATGTGAAAGATGGACAGATTGTTGCAATTGGAGAAGTGGATGATAAAGCAGCGATTGATAATGATACG -ACAAATAAAATTCAAGTGATTGATGCAAAAGGTCATCATGTATTACCAGGTTTTATCGATATACATATTC -ATGGTGGTTATGGACAGGATGCAATGGATGGGTCATACGATGGCTTAAAATATCTATCCGAAAATTTGTT -GTCTGAAGGGACGACATCGTACTTGGCCACTACAATGACGCAATCGACTGATAAAATAGATAAAGCACTT -ATAAATATTGCTAAATATGAAGTGGAGCAAGATGTTCACAATGCAGCGGAAATTGTAGGTATACATTTGG -AAGGGCCATTTATATCTGAAAATAAAGTTGGTGCTCAACATCCGCAATACGTTGTACGCCCATTTATCGA -TAAAATTAAACATTTTCAAGAGACTGCTAACGGACTAATAAAGATTATGACGTTTGCACCTGAAGTTGAA -GGTGCAAAAGAAGCGCTTGAAACGTATAAAGATGACATTATTTTTTCAATTGGTCATACAGTGGCAACAT -ACGAAGAAGCAGTTGAAGCTGCTGAGCGAGGAGCTAAACATGTCACGCATTTATATAATGCAGCGACGTC -ATTCCAACATAGAGAACCAGGTGTTTTTGGAGCAGCATGGTTGAATGATGCTTTACATACCGAAATGATT -GTTGATGGCACACATTCTCATCCGGCATCGGTTGCAATTGCTTACCGTATGAAAGGTAATGAACGTTTTT -ATTTAATTACCGATGCAATGCGTGCAAAAGGTATGCCTGAAGGAGAATATGATTTGGGTGGTCAAAAAGT -AACTGTTCAATCGCAACAAGCACGTCTTACAAATGGTGCACTTGCTGGTAGTATTTTAAAAATGAATCAT -GGGTTACGTAACTTAATATCATTTACAGGTGATACATTAGATCATTTATGGCGTGTAACAAGTTTAAATC -AAGCCATTGCATTAGGTATCGATGATAGAAAAGGTAGTATTAAAGTAAATAAGGATGCAGATCTTGTTAT -TCTAGATGATGACATGAATGTAAAATCTACAATAAAACAAGGTAAGGTTCACACATTTAGCTAATAGATA -ATCATAATTAAATGTATGCAATAGATTTAATCTGTTAACATAAGCACTTTATATTATGATAAAATAGAGG -CAATAACATTTTTTTCTGGGGGTGTCTAAATGGGAAGGCGATAACATGTAGTTGTAATTTAAGTCATAGT -GATAAATTTGAATGCGTGTTACCCATGAGTGACACATATAACATGGAGGTGAATCCCTAGAAATAGGGAA -TTAATTGGAAACTTCGACCATAATTAGTTTGATTATATTTATTCTATTAATTGCATTAACCACAGTATTT -GTTGGTTCAGAATTTGCATTAGTAAAAATTAGAGCAACAAGAATTGAACAGCTAGCAGATGAAGGAAATA -AACCTGCTAAAATAGTAAAAAAGATGATTGCTAATCTAGATTATTATCTTTCTGCTTGTCAGTTAGGTAT -AACTGTAACATCTTTAGGGTTAGGTTGGCTTGGTGAACCAACGTTTGAAAAGCTATTACACCCGATATTT -GAAGCAATCAATTTACCAACTGCATTAACGACGACGATTTCGTTTGCAGTATCATTTATAATCGTTACGT -ATTTGCATGTAGTACTTGGTGAATTAGCGCCTAAATCTATAGCGATTCAACATACTGAAAAGCTTGCTTT -AGTATATGCAAGACCATTGTTCTATTTCGGTAACATTATGAAACCATTGATTTGGCTGATGAATGGTTCT -GCACGTGTTATTATTAGAATGTTTGGTGTAAATCCTGATGCCCAAACTGATGCAATGTCAGAAGAAGAAA -TCAAAATTATTATTAACAATAGTTATAATGGTGGAGAAATCAACCAAACTGAATTGGCATATATGCAAAA -TATCTTTTCATTCGATGAAAGACATGCAAAAGATATAATGGTACCTAGAACGCAAATGATTACACTAAAT -GAACCTTTTAATGTAGACGAATTACTTGATACAATAAAAGAACATCAATTTACACGTTATCCAATTACTG -ATGATGGTGATAAAGACCACATTAAAGGATTTATCAACGTTAAAGAATTTTTAACTGAATATGCTTCTGG -AAAAACGATTAAAATAGCAAACTATATACACGAGTTGCCAATGATTTCAGAGACAACACGTATCAGTGAT -GCATTAATTAGAATGCAACGTGAGCATGTACATATGAGTCTTATTATAGATGAATATGGTGGAACGGCAG -GTATTTTAACGATGGAAGATATTTTAGAAGAAATCGTTGGGGAAATTCGTGATGAATTTGATGATGATGA -AGTGAATGATATCGTTAAAATTGATAATAAGACATTCCAAGTAAATGGTAGAGTACTATTGGATGATTTA -ACTGAAGAGTTCGGTATAGAATTTGATGACTCTGAGGATATTGATACGATAGGTGGATGGTTACAATCTC -GCAATACAAACTTACAAAAAGATGATTACGTGGATACAACGTATGATCGCTGGGTTGTTTCAGAAATCGA -TAACCACCAAATTATTTGGGTAATGTTAAACTATGAATTTAATGAACCGAGACCTACTATCGGACAGTCT -GATGAAGATGAAAAATCAGAATAGATAATAATATATAAACCAACTAAGAATGATTTAATTCATTTTTGGT -TGGTTATTTTTTTGACTAAAATTAATGAAAAGTGAAAATAGTATTGGAACTCAATATCTTTAATGAATAT -TTTTTATTGAAAGCGATAATTCGTATTAATTGAGTTTGTTGAAAAATTTAGGGTAATGTAAAGATATAAA -AGATACATAGATTGGAGAGATATAAAGATGTTGAATGAGATACAAATATTAAATAATGGATACCCGATGC -CTTCAGTTGGGTTAGGTGTTTATAAAATTTCTGACGAAGATATGACTAAAGTTGTAAATGCTGCAATTGA -CGCAGGCTATAGAGCGTTTGATACAGCATACTTTTATGATAATGAGGCTTCACTAGGACGAGCATTAAAG -GATAATGGCGTCGATAGAGAAGATTTGTTTATAACAACGAAGTTATGGAATGACTATCAAGGTTATGAGA -AAACATTCGAATATTTCAACAAATCGATTGAAAATTTACAAACTGATTATCTTGATTTATTTCTAATACA -TTGGCCTTGTGAAGCAGATGGTCTATTTTTAGAAACATATAAAGCTATGGAAGAACTTTACGAGCAAGGT -AAGGTAAAAGCAATAGGTGTATGTAATTTTAATGTTCATCATCTAGAAAAATTAATGGCTCAATCAAGTA -TCAAACCAATGGTGAATCAAATTGAGGTACATCCATATTTTAACCAACAAGAATTACAAGAATTTTGTGA -TCGTCACGATATTAAAGTGACTGCATGGATGCCTTTGATGAGAAATAGAGGACTACTAGACGACCCTGTC -ATTGTTAAAATTGCTGAAAAATATCATAAAACACCAGCACAAGTTGTATTGCGTTGGCATTTAGCACACA -ATAGAATTATTATTCCAAAATCTCAGACACCTAAACGCATTCAAGAAAATATAGATATTTTAGATTTTAA -TTTAGAATTAACAGAAGTAGCTGAAATTGATGCTTTAAATAGAAATGCAAGACAAGGTAAAAATCCAGAT -GATGTGAAAATTGGGGATTTAAAATAACTGGATGTTAAATTTTACGTTTATGAATGCCTTTTAATGTGTA -CATTAAAATAAATGAGTTGGTTTTTACTATTTGATAAAACAATACTCAGGTACATTCAAAATCTTTTAAA -TAAAAAGGATGGACATAGATGAAAATTAGAGTCGTCATTCCTTGTTTTAATGAAGGGGAAGTCATTACAC -AAACACATCAACAATTAACTGAAATACTTTCACAAGATAGTAGTGTGAAAGGCTATGATTATAATATGCT -TTTCATAGATGATGGTAGTACGGATACCACTATAGATGAAATGCAACATCTTGCCACAATAGATAGACAT -GTCAGCTTTATTTCTTTTAGTAGAAATTTTGGAAAAGAAGCAGCTATGATTGCAGGTTACCAGCATAGTA -CTGAATTTGATGCAGTCATCATGATAGATTGTGATTTGCAACATCCACCTGAATATATTCCGAAAATGGT -TGAAGGTTTTATGGAAGGCTATGATCAAGTGATTGCAAAGCGTGATAGAAGTGGTGAAAATTTTAGTCGC -AAAACATTAAGCCATTTGTACTATAAGTTAGTTAATTGCTTTGTAGAAGAAGTACAATTTGATGATGGTG -TTGGTGATTTTAGACTTTTAAGCCAAAGAGCTGTTAAATCCATTGCATCACTTGAAGAATATAATCGATT -TTCAAAAGGGTTATTTGAATGGATAGGATATAATACTAAAGTGTTTACGTATCAAAATGTTGCGAGACAA -AAAGGAGAATCTAAATGGTCCTTTAAAAAGTTATTTAATTATGGTATTGATGGATTGATTTCCTTTAATA -GTAAACCTTTGAGAATGATGATATATCTTGGCTTATTTATTTTTTCAATAAGCGTGTTATATATTATCTA -TTTATTCATCAATATTATGATTTCTGGTGTTAATATCCCAGGATATTTTTCAACGATTGCAGCTATTTTA -TTATTAGGCGGCATACAGTTAATTTCAATTGGTGTTGTAGGTGAATATATTGGCAGGATATATTATGAAG -TTAAGGCACGTCCTAAATACATTATTCAAGCTACAAATCTTTCAAGTATTGAAAATGATGAGAAGGATAC -CCATAAAGTTTATTCTAAATAAACAAAAAAAGAAGCCCTCATTAATGGGAGCTTCTTTTTAGTCTTTGCA -GTTTATTTTATAAATAAATCGGATTATGTCGTAATGTCTAATTTGTGTAATGTTACAGTCATCGTAGTTC -CTACATCTATATCACTGCTTACACTGATTTTTGCGTTATTTTGTTGCGCGAGTTCATTAGCTATATATAA -GCCTAATCCAGAACCACCCGTTTTTGTATTACGAGAGTTTTCTACTCTGAATGTACGTTCGAATATACGT -TCTTGTAGTTCTGGTATAATGCCAATACCTTCATCGCTAATAGCAATGTCGATAGTATCTTGATCTTTGT -TTTCACTAATATTAATATCAATGCGACTACCAACATTTGAAAATTTTAGCGCATTATCAAGTAAGTTTGT -TAAAATACGCTCAAGTGGCGTTCGATATTGATAAAATGCATCAATTTCGCTACAGAAATTCACTTCTAAT -GTGCGGTTTTCATGTTTGATGCGTTGCTCATATGGTTGCAATATTGATACAAGTAATTGGTCTAGTTGTA -TTAATTCTGGGGGATATGTTTTACCTGTATTTAAAGTGATAATATGAGTCATATCATCAAATAATGTTGA -TAATCTGTTTGCTTGTTTAATTAATATGTCGTATGACTCTTTAATCTCATGATCCTTTGTGATTATACCA -TCACGTAGTCCTTCAGAATATGAAATAATGCTTGCTAAAGGTGTTTTTAAATCATGGGCTAAGTTTTGAA -TCAGTTCTGTTTTTTCTTGTTGTTCGGATTTAATTTGATTCATTTGTTGCGTAATTTCAGAAGCCATTTT -ATTAAAAGATTGATTTAATTCATAAATTTCTTTTGGTGAATTAAACGTTTTATCATTGCTTGCGTAATTT -CCGTTAGCAAATTGCTTAGTTTTTATATTAAACTGCTTAATTTTTTGTATAAGTGGATTAATAAAAATAC -TACATATTAATAAGGTTAAACAGCTTGTAATTATTGTCGTTAAGGTCAAAGTTAGTGTCATATGGCCGTT -AAACCACATTAAAATATATGCAATTGCTAAAATAGTTGAAGTTAATAGTATACTCGATACGACGCCAATA -ATGATTTGACTTCTAATTGATAACACCATTATCGGCTCCTTTCAAATTTATATCCTAATCCCCATACAGT -TGTGATGGTATATGTTGTAAAGCTCTCTTTTTCTAATTTTTCTCTAATACGGTGTATATGGACATTCACG -GTATTAGCATCTTCGTAATAGTCATATCCCCAAACTTTTTCAAGTAATTCTGATTTAGAAATAACTTCAT -TTTCTCTAGAAGCTAAATACCACAGTAACTCAAATTCCTTAATACGCATAGGGACTTCATGACCATTTAC -AGTCACAACTTTACTTAAGTTAATAAGTGTTAATTCATCAAATGACAGTTGTTCAACTGGTTGATGATGG -TATTTCTTCATTCTTGTAAGTAAATTATTAATACGTAAAACGAGTTCCCTTGGACTAAATGGTTTTTTGA -CATAGTCATCTGCACCTAAAGTTAAGGCGTAAATGGTATCATGTTCTTGTGTTTTGGCAGTTAAATAGAT -AAAGGGGATATCTAATTTTTGCCTTTTCATTTCTTTGACAATGTCGTAACCATTAACTTCTGGCATCATG -ATATCAAGTACCATGATATCAATATCATTTGATAGTAAAGAAATTGCTTCTTTACCGCTAGTTGTCGTTG -TTACTTTGTAACCTTCATATTCAAAATAGGTTTGACAAATGTCTACAATGTCTTGTTCATCATCCACGAT -CAGTAAGTGGGTCATCTATTTTTTCACCTCTGTTCTTACGACCTCTAAAGTAATTAATGATTTCTTTAAG -TGAAATCTGTTTTAACAATGAGTGACTCATTAATAAAAGGATAAAGAAAGTTAATTGAAGAGGATACGTA -AATATCATATCTGCTAAGATATAATTTATCATAACAAAGGCTCCAAAGAAACTAGCAGCATATGCAAAAA -CTCCAAAAATTAAACCTAATCCAATTGCAATCTCTCCGAGTGGGACAACAATATCAAATAATGACGTCGT -ATGTGCAACTATATTTGCGAAAAACCACTTATACCACTCTGGTGAATCAGTATTGTTAGCGATGACTGGT -ACTAAACCTTTCAGCGTAAATCCGCCCGTTAATTTTTCGTAACCTTGCATTAACATAACAATACCTGAAC -CCACACGAATGATAAATGTAACGAGTAGCAATAATTTATTCATGATGTTCACATTCTTTCTATTTATTGT -GTGTAATTTATATAAACATAAGATTTAGCAACATAATGTGATTTGTAGTGTTATGTGAACAGGAAGTGTT -TGAGCTCATGGGTTGCTTAAGCTAAACAAACCTCAAGCTCTAAAAAAATTTACTTATGTGCTCTACAATC -TTATGGGATTTAATAGTTGTATATATATTGAAAAAAGGAAAGTATGATTTCTACAAGCTAGGGGGGCTGT -GAAATCATACGCTTTCCATTGAGTAATGAGTGTAATGTATATTTTTAAAATTTGTAATGTATAGTAATAG -TATGTTGTAAATAAAAGTTTAACTCAGAAATTGATTATTTTAATTTAGCGCCGCCGAAGATGACGTGAGC -TTTTTTACAATAGATTGTTACTTCATCATATTTGCTTAAATCTACATTTTTAAGATCAAATGTTTGTTTT -TCTTTATCGTAGTCAACCATTGCGATTTCTTTACCGTTTTTAATGTCGCCATTTTTTGTTAGGTAGACGT -ATAAATCTGGACCTTTTGATGATTTGTAGTTAGTAAGCATTAATTTACCATTTTTAATCTCAGCTTTACC -TTCAACAGTTTCACCGTTTTTAGAACTGAATGTACCTGTTAGGTGTTTTGTTTTATCAGTTTTAACATTG -CTATCTTCTGACTTTGTTTTTTGTTCAGTTTTGTTACCTTGATCTTGTGAATTAGAATTACCACAAGCGC -CTAAAGCTAATGTTGTGATAATAGCACCAGCTGCTAAAAAATATTTTGTATTCATGCTAACTCCTCATTT -CTTCAATTTGATAAGTTAAGTTTAAAATGAAGGCAAATAATATGCCATTAACTAATTCTTAACTTCGTTT -AAATATCGCTTAACTAATATTGAAGAAAGAATAATTTGAAAATGAAAATAATTGTCTGATTTAAATAAAT -AGGAGTCAAAATAAGAGGAGGGCGGTTTTTTAAGTGAGAAAATATTTATCTAAACTAGTTATCACTATAA -AACACTTCTGATATAGCGAACTAAGAATATCAGAAGTGTTTTTTAGTTTTGGTATTAAAATTTATAAACC -TTTTGCCACAATAAAAACAACAAGAAAATAAGATAGACGATTAAATACAAGTACCAATATGGTGTTAAAA -CCATCATAACGATAAATGAAATGTTAATAATGATAAGTCCTTTAATCATTAGTTTCTTTATTTTATTATT -ATTTTCAGCAGATTCATCTAAGCTATTAAATGTTGAAATAAATAACATAATACCACCAATGATGAAAATG -GCAGGGGCTAAAAATGGAATAGACATATATATTGATTGTGTACTTGAAAAGTCGGTAACACGTTGCGTTA -AACTGACAACAATCGTTAATATGATAGCAATAAATTTTTGGTCTGTAATGTATACAGGTTTTAATTTTTT -ATCAATGTAAAACTGTAGTATCGTCCAAATGATAAACATCGTTATAGTACACAGAGTAATAAAGTTATAT -TTATCAATTATGAATGTATTTATAAAGGCGTTTATAGTAATAGATAACAACATTGCACTTAATGATAAAT -GTTGCATTTGATGCCTATATAAATTGAATCCAGTTATAAGTACGACGATAGCAATATTAATTAATATATA -TACAATCATGATGGACTCCTGTTCGTTATACTTCAATCAACTATTATATCAATTAATATATTGTTATTCA -TTAGATATGACTTGTAAAAAGTAAAATAAGTTATCCTTTATACACCTTTTTTATTACTCCAAAGTAATGT -ATGAAGTTGTGGTAACACATAAACGTGATTCATATCATTACTTTGCATAACTAAATCTACCAACTGCTCG -TAGCGTTCTAACAACTTTTCGGTATGATTATCTACGCTGTCTGATAAATATGGGTTACCAACTTGTAAAT -AGAAGGGAATATCTGGATAACGGTGGTGTATCATTTTGGCAAAATCATAATCTTTATCGTCGAATACAAC -TACTTTTAAGTTTAATGAGGAAGGTACGCATTGTGCAATCACTTCATCTAACTTTTTTAAATCAGGCGTC -ATAGTTGAACTTGGTGGTTTTGGACTAATCGTTAAATCATCAATTTGTGTCATCCAAGGTTGGAATTTAC -TGCCTTGTGTCTCCAGTGCGCTGAAAATACCTTTATCTTGAAATAAGTCAACTAACTCTTGGATACCTTT -AATTAATGCTGGGTTACCACCAGAAATTGTAACGTGGTTAAATAAATCGCCACCAATTCGTTTTAATTCA -TCATAAATTTCTTCAGCGGTCATGAGTTTTATATCGCCTTTAGCACTACCATCCCAAGTAAATGCAGAAT -CACACCAGCTACAGCGATAATCACATCCAGCTGTTCTCACAAACATCGTTTTTCTACCGATTACTCGACC -TTCACCCTGAATGGTTGGACCGAATATTTCGAGTACAGGAATTTTAGCCATTAGTTACACCTGTTCCTTT -GGTCTAAATACGACATAACTTGTTGGTGTTTCTCTTACAAATACTTGAATACATTTTGGTTGGTGTTCGA -GCGATGCCAAATTTTCTTTAACAATTTGATAAATTGTTTCCGCTACGATTTCAGTTGAAGGGATTTTGTT -TTTAAAAGCAGGTAAGTTATTTAACAGTTGATGGTCAAATTTACCGTGTATCATCTTTTTCAAATGGCTA -AAGTTCACTAAAAAGCCAGTGTCATCTAGTTTATCACCGACAATTGTTAAATTAACAAAGTAAGTATGAC -CATGGACATTTTGACAAATACCTGCTTCTTCACACGGAATGTGATGTGCAGCTGAAAAATTAAAATCTTT -ATTTAATTCGAATTGATATGGATGCGTTGTACTAGGATAGATTTGTTGTAACATTTTAAAGCGCTCCTTT -ACTTTCAAGATATTGATTTAGTCCACGTTGACGTAAATGACAAGCTGGACATTCACCACAGCCATCCCCA -ATGATACCGTTATAGCATGTTAATGTTTTTGTACGAATATAATCTAAAACTTCGAGTTCATCACTTAATT -TCCACGTTTCTGCTTTGTTTAACCACATTAAAGGAGTATGAATAACAAAATCTTTGTCCATAGCTAGGCT -TAATGTTACGTTCATTGATTTTATAAAACTATCGCGACAGTCTGGGTAGCCTGAAAAGTCTGTTTCACAT -ACGCCTGTAATAATATGCTTAGCCCCAATTTGATAAGCTAGAGCACCTGCAAACGACAAGAAAAGTAAAT -TTCTAGCTGGAACAAATGTATTAGGTATACCATCTTCATTATTAGTAATTTCCATATCATGTTGTGTTAA -TGCGTTTGGAGTAAGTTGTGATAATAATGACATATCTAAAACGTGATGTTTCATTCCTTGATCTTGTGCA -ATTTGTTTTGCGACTTCAATTTCAGTATCATGTCTTTGACCATAATTAAACGTTACGAGTTCAACTTCTT -TGAAATGTTTTTTTGCATAAAAGAGACATGTTGTACTGTCTTGACCACCACTAAAGACAACGATGGCTTT -TTCATTATTTAATACACTTTCCATTTTGTAATTGCTCCTATCATTAATAATATTAATAAAGAGGTTAATG -GCATTGATAAGCCCGTTTTTAATTTATAAAATAAAAAAAGCCTATCTCCATAAAAGATAGACGAAAGAAA -TGGGTTGCTCCTATAATATATATTAAAGGTTTACCAACGAATGTTTGAAATTTCAATGTCTAGTTTTTTA -TAGAGGGTTTCAGCTAGGAACCTCTGATATTCATTTATGTACGATGAATAGAATATACCATATAGTAGTT -AAAATCAAGGTCAGGATAATGACAATGCCTTTAAAGTTTTAGCTACATCCAATACATATTATAAAAATAA -AACACATTTAGAACGGAGTATACAATGATTCTAGTCATAGATAATAATGATTCATTTACATATAATTTAA -TAGACTATATTAAGACTCAAACGAAACTAACAGTTCAAGTTGTTGGTATTGATAATCTGCTGATAGAAGA -CATCATTAATATGAAGCCAAAAGCAATTGTTATTTCGCCTGGGCCGGGTAATCCGGATGATTATCCTATC -TTGAATGAAGTGTTAGAACAATTTTATCAGCGTGTACCTATACTAGGTGTATGTTTAGGATTTCAATGTA -TCGTGTCTTATTTTGGTGGAAATATCATTCACGGCTATCATCCTGTACACGGACATACTACACAGTTACG -CCATACCAATGAAGGTATTTTTCAAGGACTGCCTCAAAATTTCAATGTAATGCGTTATCATTCATTAATT -GCTGACGGAGCGACTTTTCCAAATTGCTTAAAGATTACAGCAAAAAACGATGAAGCAATTATTATGGCAT -TTGAGCATATTACATTTCCGGTTTTTGGTGTGCAATATCATCCTGAATCTATTTTGAGTGAATACGGTTA -TCGACAAGTTGAATTATTTTTATCGAAGGTAGGTGATTACTGTGAGAATAGAATATAATTATCGCTACTA -TTTAACTGAAAATGAATATAAGCAATACCATATTCAATTAAAGGGATTTATAAAGAAGTATGTTGCCACT -AAGTTGGCTGATGTGGGAGAAGTGATACACTTTGCACAAGCGCAGCAACGACAAGGTAGATATGTTTCGT -TATATTTAAGTTACGAAGCGGCAAAGTATTTTAATCATGTTATGTGTACACATTCATTAGCTAAAGATGA -TATTTATGCAGTAGCTTATAGTTTTGAAAATGCGGAAAGCATAAATTCAACATATGAACATCAAACTACT -TATGTATCAAAGCATCATTTTTCATTTGTTGAATCTTCTGAGGTTATGATGACTAATATTAAACGTGTCC -AACAAGCAATTGTTGAAGGCGAAACGTATCAAGTGAACTATACGGCGCGCTTAACGGACAACATTTATTA -TCCTATTAGTACTTTATATGAACGATTAACTCAATTTAGTAATGGTAATTATACTGCGTTATTACAAACA -GATGAAATCCAAGTAGCGTCTATCTCACCAGAATTATTTTTTCAAAAAGGACAGTTTAACAATGTCGATA -ACGTTATCATAAGCAAACCGATGAAAGGGACAATGCCTAGAGGTAAAACGGAAGCTGAAGATCAACAGTA -TTATAAAACATTGCAAACTTCTTCGAAAGATCGTGCAGAAAATGTCATGATTGTTGATTTACTAAGAAAC -GATATAGGGAGAATATCACAGAGTGGCTCAATTAAGGTGTATAAACTATTTTTCATTGAGGTATATAAAA -CTGTATTTCAAATGACTTCGATGGTAAGTGGAACTTTAAAAACTAATACAGACTTAACTCAAATTTTAAC -ATCGTTATTTCCTTGTGGTTCGATTACAGGTGCACCGAAACTGAATACAATGAAATATATTAAACAATTA -GAAAGTTCACCTCGTGGTATATACTGCGGAGCAATTGGACTATTACTTCCAACTGAAGATGATAAAATGA -TTTTTAATATTCCAATTCGTACTATTGAGTATAAATATGGACAAGCGATTTATGGAGTCGGAGCAGGTAT -TACAATTGATTCTAAGCCAAAAGATGAAGTAAATGAATTTTACGCAAAAACCAAGATTTTGGAGATGTTA -TAATGCAATTATTTGAAACAATGAAAATTGATAATGGACATATCCCTAGAATTACTTATCATACTAATCG -CATAAAATGTTCTTCTGAGCGATTAAACTTTAAATTTGATGAACATGCATGGCGAAATGAATTAAACGAT -GTAACAACAAAGTATCACAATGGCCAATATAGACTTAAAATCGTATTACATGCTGAAAGCGAATTCGAAA -CGATAGTGTCACCTTTACCTGAGAAAAGTAGTTTTACAGCAAAATTTCAAGTGTTGCCCAAAGCAGTTAA -TCCAACTTTTATAAATAATAAAACGACAGAACGAAAGCATTTAGCACACAATCATGAAACAGATTTAATA -TTGCTAACTTCAGAGGACGGCAAGGTCCTTGAATTTGATATTGGCAACATTGTCATTGAAGAGGATGGAA -AATGGTACACACCAAGTTATAAAGATGATTTCTTAAAAGGATGCATGCGTGATTATTTAATAGATAGTGA -CAAACTTGTTGAAAAAGACTTTAATAAAAACGAATTGATTTATAAATATCATAACAATGAGATACGTATA -TTTTTGATAAATAGTTTACGAGAGGTTGCCGATGTCCACCTTTGCCTTTAAAATTAGTATGATAATAATG -TAGAAAATGAAGTTAAAACAAATTTAAAAATTAAATGGGGCCAAATATGATTATTGTTTATATTGTGCTG -TTGTTAATTCTTGTATACGTAAATTATCGATTAGTGAATCGATTGCTATCTGAAAATAGAATATATGTTG -TTCGTTTGATAGCAACAATTACTACTGTTATAAGCTTTATCCTTGTATACGCATTAATTCACGAACTCAT -GCCTTTTGTTGTGCGAGCAATGGATTTATTGTATCACCAGTAAATTTAATGAGTAGGTAAAATGAACTAT -TCAATCGATTCTATAATTAAAAATCAAAGTAAAGTAACCAAATATTGAAGAGGTGTACAAATGAAAATAT -ATAGTCAAGGTGACCAAGCCATTGTAGTAGCAATTGAAAAAGAAGTATCTAAAAGTTTAACCGAAGATTT -ATTAACACTTCGCTCATATTTAATTGAACAAAATTATCCATTTATTATAGAAATTGTGCCATCAGAATCA -GACATGATGATTGTCTACGACGCAAGGGATATGATTAAACACCATAATATACAATCACCTTTTTTATACA -TGAAAGCACTAATAGAATCGATTCATTTAAACATAAAACATGATTTTAACCAGCAAGATTTGATTGAAAT -ACCAATTGTGTATGGTTCGAAATATGGTCCGGATTTAGAATCACTTTTAAAACATTACAAAATCAAGCTA -GAAACATTTATTGAATTACATTCTAAGGCGCAATATTTTGTTTCGATGATGGGATATTCACCTGGGTTTT -CTTATTTAACTGGATTAAATAAGAAATTGTATATTAATCACACGAGTAAACAGAAAAAATTCATTCCAGC -TGGTTCTGTAGTACTTGAAGGGAAAAAATGCGGTATTGTAACTACGGATACAATTAATGATTGGTTAGTT -ATTGGTTATACACCATTATCACTTTTTAATCCGAAAGAATCAGATTTCGCACGCTTAAAGTTAGGCGATA -ATATTAAATTTAGACCTATCAATGAAAATGAATTAGAAGTAGGAGCGTTTAAAGATGTCAATCATAATTG -AAAAAAGTGGCTTATTCAGTAGCTTTCAGGACTTTGGTAGAAGGGGATATGAACATGATGGTGTAATTCC -ATGTGGTGCACTTGATACTTTAGCACATGAAATTGCTAATCGATTAGTTGCAAATGACAAGAATGAAGCA -ACTTTGGAAATGACTAATAAAATGGCAACGATTCGTTTTACAGAACCTACGCTGATTGCATTAGCAGGGG -GTAATGTCAAAGCTTACACTGAGCAAATGACTATATCTCCATATAAATTGTATTTGTTAGATAAAGGCGA -TGTTTTAAAGTTTAGAGAAACAAGTTATACATCGCGAGTGTATTTAGCTGTGGGAGGTGGATTTGAATTA -GATGCATGGTTAGGATCTAATTCAACCGACTTTAATGTAAAAATTGGTGGTTTTAAAGGAAGAACATTAC -AAGATGGCGATGAAATAAAGCTTAAGAGAGATTATACAGCTCGTCATCATAAGTTATTTGAAAACCTTGC -TCACACGAAACAAACAGATTGGGGTATTGATGGGTACGCCTTGTCATTTAATTATATGTCTGATGTATTT -CATGTCGTTAAAAATAAAGGTACGGAAGATTTTAAAGAAGATGCCATTCAAAGATTTGTGAAACATGATT -ATAAAGTAACGAGCAAAGCAAATCGCATGGGGATGATGCTTGAAGGTGAAAAAATCAAAGCTTTTTATGA -AGATATGCCACCGTATCAGACTGTCAAAAAAGGAACGATACAAATTAAGCGTGATGGCACACCTATTATC -TTATTAAATGATCATTACACGTTAGGTAGCTACCCGCAAATCGGTACAATCGCAAGTTATCATTTAACGA -AATTAGCACAAAAACCGCAAGGATCACGTTTGAAATTTCAATTTATAGATATTTTAACGGCTGAAAAGAA -CCTCGTTAAGTATAGTAACTGGTTAAACCAATTATTCCATGGAATAGAATATAGAATGCAATTAGAAATG -ATGAAATAATATTTGGTACGTAGCTCATACTAGAGTCCGATGCAAATAATTTCCTCCTAATGTATAATGA -AATAATACTGTGTTTTATCTGCGAAATGTATTATATTCTAATTCGTTTCACAGTAAAATGAAAAGATAAA -GTGTGTTTTTACTTGAATTTTGACTAAAATTACTCTATATTTATTAATTGAGCTATGCTTATTATTACAA -TTTGATTACAAATTTTAAATTTGTTAATTGAATGATAATATTAAATAAAGAAACTTACACAAGCAAATAT -GAGTTGTAGCCCAAAATACTTGTTAAATCAAAGTTGAAAGCTACAAATAATGAAAATTATAAACTTGAAT -CTGAAAGTAATTACTATAATTATGACAATGTTAACTTTTAAACGCACTTATTAATTAACTACATAATGTT -AATATCTAATTTATTCAAGTACTTTCGCAAGATTTATTATCTAAATAACGGGGGAAAGAATCATGAGTTC -ACAAAAAAAGAAAATTAGTCTTTTTGCGTTCTTCTTATTAACCGTAATAACGATTACCTTGAAGACGTAT -TTTTCTTATTATGTTGATTTTTCTTTAGGTGTTAAAGGTTTAGTACAAAACTTAATATTATTGATGAATC -CTTATAGTTTAGTAGCACTGGTTTTAAGTGTGTTCCTATTCTTTAAAGGCAAAAAAGCATTTTGGTTTAT -GTTCATAGGCGGCTTCTTATTGACGTTCCTATTATATGCCAATGTTGTGTACTTTAGATTCTTCTCGGAT -TTTTTAACGTTTAGTACTTTAAACCAAGTAGGTAACGTAGAATCTATGGGTGGTGCGGTTAGTGCATCAT -TCAAATGGTATGACTTTGTTTATTTCATTGATACGTTAGTTTACTTATTCATTTTAATATTTAAAACAAA -ATGGTTAGACACAAAAGCATTTAGTAAGAAATTTGTTCCTGTCGTAATGGCGGCTTCAGTAGCATTATTC -TTCTTAAACTTAGCTTTTGCTGAAACTGACAGACCAGAATTATTAACACGTACATTTGACCATAAATATT -TAGTGAAATATTTAGGACCGTATAACTTTACAGTATACGATGGTGTTAAAACTATCGAAAATAATCAACA -AAAAGCGTTAGCATCTGAAGATGACTTAACAAAAGTATTAAATTATACGAAACAACGTCAAACAGAGCCT -AACCCAGAATATTATGGGGTAGCAAAGAAGAAAAATATTATTAAGATTCACTTAGAAAGTTTCCAAACCT -TCTTAATTAATAAAAAGGTTAATGGTAAAGAAGTAACACCGTTTTTAAACAAATTATCAAGTGGGAAAGA -GCAATTCACATACTTCCCTAACTTTTTCCATCAAACAGGTCAAGGTAAAACATCTGACTCTGAATTTACA -ATGGATAACAGTTTATACGGTTTACCGCAAGGTTCTGCCTTTTCATTAAAAGGAGATAATACGTATCAGT -CATTACCAGCAATTTTAGATCAAAAGCAAGGCTACAAATCTGATGTCATGCACGGTGACTATAAAACATT -CTGGAACAGAGACCAAGTATATAAACACTTTGGTATCGATAAATTCTATGATGCAACATACTATGACATG -TCAGATAAAAACGTTGTAAACTTAGGCTTGAAAGACAAAATTTTCTTTAAAGATTCTGCTAATTATCAAG -CTAAGATGAAATCACCATTCTATTCTCATTTAATTACATTGACTAACCACTATCCATTCACATTAGATGA -AAAGGATGCAACTATTGAGAAGTCAAACACAGGTGATGCAACAGTTGATGGTTATATTCAAACAGCACGT -TATTTAGACGAAGCATTAGAAGAATATATTAATGACTTGAAGAAAAAAGGATTATATGACAATTCAGTGA -TTATGATTTATGGTGACCACTATGGTATCTCTGAAAACCATAACAATGCCATGGAAAAACTATTAGGTGA -AAAAATCACACCAGCTAAATTTACAGATTTAAACAGAACTGGTTTCTGGATTAAAATCCCTGGTAAATCT -GGTGGTATCAATAATGAATATGCTGGTCAAGTCGATGTAATGCCAACAATTTTACATTTGGCTGGTATAG -ATACGAAGAACTATTTAATGTTCGGTACTGATTTATTCTCTAAAGGTCATAATCAAGTAGTTCCATTCAG -AAATGGTGACTTTATAACAAAAGATTATAAATATGTTAATGGTAAGATTTATTCTAATAAAAATAATGAA -CTCATAACTACTCAACCAGCTGATTTCGAAAAGAATAAAAAGCAAGTTGAAAAGGATCTCGAAATGAGTG -ACAACGTGCTTAATGGTGATTTATTTAGATTCTACAAAAATCCAGACTTCAAAAAGGTAAATCCTTCGAA -GTATAAATATGAAACAGGACCTAAAGCAAACTCTAAAAAATAATATTTAAACATGAACCCGGATTGATAA -AATATCAATCCGGGTTTTTATTTATGTTCTTTTATATTATGTTTTACATTATATGTGTTGATAAAAAGGT -ATATTATAAAAATCATTAGCATAGTCATCAAAGCCTTATCAAGTTTTATTTAGAGTTGAAGCAACAATAT -ATTAAATTATGACACTTAACAGTATCGATTTCTTTTGATTTCAAAAAGGTGTATAATGTATAGAACTGAT -TTAAGTACGTAGAGATTTCAACAGAAGAAGGAAGATGGGTATGGAAGCATATAAAATTGAACATTTAAAT -AAATCTTATGCCGATAAGATTATATTCGATAATCTAGATTTATCAATTTCAGAAGGTGAAAAAATAGGTT -TAGTAGGCATAAATGGTACAGGGAAAAGTACGTTGTTAAAAGTAATTGGTGGTATTGATGATGATTTTAC -AGCCAATGTTATGCATCCAAATCAATATCGAATTCGTTATTCGTCTCAGAAACAGGATCTTAATGAAGAT -ATGACTGTTTTTGATGCAGTATTAAGTTCTGATACAACAACTTTACGCATCATCAAGCAATATGAACAGG -CAGTACAAGCTTATGCGGATGATCAAAGTGATAAATTGTTCAAGCGAATGATGGATGCGCAAGATGCTAT -GGATCAACATGATGCTTGGGACTATAACGCTGAAATTAAAACGATCCTCTCAAAACTAGGTATACATGAT -ACTACTAAATACATTAAAGAATTATCCGGCGGACAACAAAAACGTGTTGTACTTGCTAAAACATTAATAG -AACAACCAGATTTATTGTTATTAGATGAACCTACGAACCATTTAGACTTCGAATCAATCAGCTGGTTGAT -CAATTATGTGAAGCAATATCCTCATACAGTTTTATTCGTAACCCATGATCGATATTTTTTAAATGAAGTT -TCCACTAGAATTATTGAACTAAACAGAGGTAAGTTAGCGTCATATCCTGGTAACTATGAATCTTATATTG -AAATGCGCGCTGAAAGAGAACTAACACTTCAAAAGCAACAACAAAAGCAACGAGCTTTATATAAGGAAGA -ACTTGCTTGGATGAGGGCTGGAGCTAAGGCACGTACTACAAAGCAACAAGCTAGAATTAATCGATTTAAT -GACCTAGAAAATGAAGTTAACCAGCAATATAAAGACGATAAAGGTGAATTGAATCTTGCTTATTCAAGAT -TAGGTAAGCAAGTGTTCGAATTAGAAGACTTATCAAAGGCTATTAATGATAAAGTATTATTTGAACATCT -GACGGAAATTATTCAAAAAGGTGAGCGTATTGGTGTTGTTGGGCCAAATGGAGCTGGTAAAACAACACTC -TTAAATATTTTGAGTGGAGAAGACCAACAATTCGAAGGTAAATTGAAGACTGGGCAGACGGTTAAAGTAG -CTTATTTTAAGCAAACAGATGAGACCCTGGATAGAGATATTCGTATGATTGATTATTTAAGAGAAGAAAG -TGAGATTGCAAAAGAAAAAGATGGAACCTCGGTATCTATTACACAACTTCTTGAACGATTTTTATTTCCA -AGTGCAACTCATGGTAAAAAAGTTTATAAATTATCTGGTGGAGAGCAAAAGCGTTTGTATTTATTACGTC -TACTCGTACACCAGCCAAATGTTCTGTTGTTAGATGAACCGACAAATGATTTAGATACTGAGACTTTAAC -AATACTTGAAGATTATATTCATACTTTCGGTGGTACAGTGATTACCGTAAGCCATGATCGCTACTTCTTA -AATAAAGTTGCACAGTCATATTGGTTTATTCATGATGGTCAGATGGAAAAGATTATCGGAACTTTTGAAG -ATTATGAAAGTTATAAAAAATCATTAGATAAAAATAAATCCACATTGAAGCAACACTCTAAATCTTCTAC -AACTGTACGTAAGAAAAATGGTTTATCATATAAAGAAAAATTAGAATATGAACAATTGATGAAACGCATA -GAACAAGCGGAAGTAAGAATGGAAGAAATTGATGTGCTCATGATTGAGGCAAGTGCAGATTATGGGAAAA -TTAAAGAATTAAACGAAGAAAAAGAACAACTTGAAATTCAATATGATTTAGACATCACAAGATGGAGTGA -GTTAGAAGAAATTAAAGAACAACAATAAGGGGTCAATTTATGATGCAACAAACATTATCGCATTACTTTG -GGTATGAAACGTTTCGACCAGGACAAGAAGAAATTATTAGCAAAGTATTAGACCATCGTAATGTGCTTGG -TGTCTTACCAACTGGTGGAGGTAAGTCTATATGCTATCAAGTACCAGGTTTATTGTTAGGTGGTACAACA -ATTGTAATAAGTCCACTAATATCATTAATGAAAGATCAAGTGGATCAATTAAAAGCGATGGGAATTCAAG -CTGCTTTTTTAAATAGTAGTTTGACTCAAAAAGAGCAACAACGTATTGAAAAAGCATTATCAAATGGAGA -AATTCAATTTTTGTATGTTGCACCAGAACGATTTGAAAACCGATATTTTTTAAATATGCTTCAGCGTATA -AAGATTCATTTAGTCGCGTTTGATGAAGCGCATTGTATATCTAAATGGGGACATGATTTTAGACCGAGTT -ATCAAAACGTTATTTCTAAAGTATTTACGTTACCTCAAGATTTTACAATAATAGCGTTGACAGCAACTGC -CACGGTTGAAGTACAGCAAGATATTAGAGAAAAGTTAAATATCGCTCAAACTGATCAAATTAAAACGAGT -ACTAAGCGTAGAAACTTAATTTTTAAAGTAAATCCTACTTATCAACGTCAAAAATTTATATTGGATTATA -TTAAAACACACGATGAAGATGCAGGCATTATTTATTGTTCTACACGTAAGCAAGTTGAAGAGCTTCAAGA -AGCCTTAGAAAGCCAGAAAATTGAAAGTGTTATATATCATGCAGGTTTGAGCAATAAAGAAAGAGAAGAA -GCGCAGAATGATTTCTTATTTGATCGTGTTAAAGTAGTCGTTGCTACAAATGCTTTTGGCATGGGTATTG -ATAAATCCAATGTACGTTTTGTTATTCATTATAATATGCCTGGAGATTTAGAATCTTATTATCAAGAAGC -GGGTCGTGCAGGTCGTGATGGGTTGAAAAGTGAATGTATTTTGTTATTTAGTGAACGCGATATCAATTTA -CACGAGTATTTTATAACAGTCTCTCAAGCTGATGATGACTATAAAGATAAAATGGGCGAAAAGTTAACTA -AAATGATTCAATATACAAAAACAAAAAAATGTTTAGAAGCAACAATTGTCCATTATTTTGAACCGAATGA -AAAATTAGAAGAATGTGAACAATGTAGTAATTGTGTTCAACAAGATAAATCATATAATATGACACAAGAA -GCTAAGATGATTATTAGTTGCATCGCTCGTATGAAACAACAAGAGAGTTATAGTGTTATCATTCAAGTGC -TAAGAGGAGAGTCAACAGATTATATTAAGTATAAAGGTTATGATCAAATTTCAACCCATGGTTTAATGAA -AGGCTACACAACATCAGAATTAAGTCACTTAATAGATGAATTAAGATTCAAAGGGTTCTTAAATGAAAAT -GATGAAATATTAATGTGTGATACTTCAATTAAAAAATTACTCAGTAATGAAGTAGAAGTATTCACAACAC -CATTTAAGCAAAAAGCGACTGAAAAAGTATTTATAAATACGGTTGAAGGGGTTGACCGAGTATTATTCAG -TCAATTGGTAGAAGTTCGTAAAAAGTTAAGTGACAAATTAACGATAGCACCTGTAAGTATATTTTCTGAT -TACACGTTGGAGGAATTTGCTAAACGTAAGCCTGCTTCGAAACAAGATATGATTAATATTGATGGCGTAG -GTAGTTATAAATTAAAACATTATTGTCCAGCATTTTTAGAAACGATTCAAAATTATAAAGCCAAAGTATA -ATGAAGGCACCTAGTAAACATTCCTTGTTTTACTGGGTGTTTTTTGAATTTAAAGTAAAATAACACTATT -TCTTAACTTGAGATTACCTATTATTCATTATTTTGTTAAAAAAGTTCAAGGATAAATCATTTAAATTTGA -AAATTGTAATAAACGTGGTTAAATAGGGAATACATACATATAATCTCGGTTTTATGCTATGAGAAAAAAA -GAGGTGGCAAAGTGATTAAGTTTAAAAATGTAACTAAGCGTTATGACAAACATGTTGCTGTCGATAACAT -TAGTTTCGATATTAATGAGGGTGAATTCTTTGTACTAATTGGACCTTCAGGTTGTGGAAAAACTACGACA -TTAAAAATGATTAATCGACTCATTCACTTAAGTGAAGGTTATATTTATTTTAAAGATAAACCAATAAGTG -ATTATCCAGTATACGAAATGCGTTGGGATATTGGATACGTATTGCAGCAGATTGCATTATTCCCACATAT -GACAATCAAAGAAAATATTGCACAAGTGCCACAAATGAAAAAGTGGAAAGAAAAAGATATAGATAAAAGA -GTAGATGAATTACTTGAAATGGTTGGATTAGAACCTGAAAAATATAAAAACAGAAAACCTGATGAATTGT -CAGGGGGACAACGACAACGTGTAGGAGTTATACGTGCGTTAGCAGCTGATCCACCAGTTATTTTAATGGA -TGAACCGTTTAGTGCATTAGACCCAATCAGCCGAGAAAAACTTCAAGATGATTTAATTGAATTACAAACT -AAAATTAAGAAGACAATCATATTTGTTACACATGATATTCAAGAGGCGATGAAACTTGGTGATAAGATTT -GTCTTTTGAATGAAGGTCATATTGAACAAATTGACACACCAGAAGGATTTAAAAATAATCCTCAAAGTGA -ATTTGTTAAACAATTTATGGGTAGTCATTTAGAAGATGATGCGCCATGTGTTGAAGAGAATGCGATTATC -CGTGACTTGGATATTATGAAACCAATCGATGAGGTTACATCTATGAGCGCTTATCCAATTGTTTATGACA -ATCAACAAATTGAAGTATTGTATCAACATTTATCAGAGAGCGAGCGTGTCATTGTCATGCAAGAAGATGG -CGTAGGTCAATATGTTATTGATAGGAAAGATATCTTCAAATATTTGTCCCAGAAAAAGGAGGTAGCTCAA -CATGACTAACTTTTTCGACATATTGAGTGAGCGTAAGGGGCAACTATTTTCGACAATGATAGAACATATT -CAAATATCATTTATCGCATTATTGATTGCAACTGCTATTGCGGTACCATTAGGTATTTTATTGACGAAGA -CTAAAACGATATCTGAAATCGTAATGAATATTGCGGCAATTCTTCAAACCATACCATCGTTGGCATTATT -AGGTTTAATGATTCCTTTATTTGGTATCGGTCGTGTGCCAGCAATTATCGCACTTGTAGTGTATGCATTG -TTACCAATTTTAAGGAATACGTATACTGGAATTAAAGAAGTTGATCCATCGCTCATTGAAGCGGCTAAAG -GTATAGGTATGAAGCCATTTAGACGTTTAACTAAAGTTGAACTTCCAATAGCAATGCCTGTTATAATGGC -TGGTGTAAGAACGGCTATGGTATTAATTATAGGTACAGCAACACTAGCAGCATTAATTGGTGCAGGCGGA -CTAGGAGATTTAATTTTATTAGGTATAGACCGTAACAATGCATCATTGATATTATTAGGTGCAATTCCAG -CAGCCTTATTGGCAATTATATTTGATTTAATTTTAAGATTTATGGCTAAATTATCTTATAAAAAGTTATT -GATGACGTTAGGTGTTATAGTGATGATTATTATACTGGCCATCGCTATTCCTATGTTTGCACAAAAAGGT -GATAAAATTACGTTAGCTGGAAAGCTTGGCTCCGAGCCTTCGATTATTACAAATATGTATAAAATTTTAA -TAGAAGAAGAGACCAAAAATACTGTAGAAGTGAAAGATGGTATGGGCAAAACAGCATTTTTATTTAATGC -TTTAAAATCTGACGATATAGATGGGTATTTAGAGTTTACTGGAACAGTTTTAGGTGAATTAACAAAAGAA -CCATTGAAGTCAAAAGAAGAGAAAAAAGTATATGATCAAGCTAAGCAAAGTCTTGAAAAGAAATATCAAA -TGACTATGTTAAAACCAATGAAATATAACAATACGTATGCTTTAGCTGTAAAACGTGATTTTGCTAAACA -ACATAATATACGTACAATTGGTGATTTAAATAAGATTAAAGATCAACTTAAACCAGGATTTACATTGGAA -TTTAATGATCGTCCAGATGGGTACAAAGCTGTTCAAAAGGCTTATAATTTAAATTTAGATAACATACGTA -CAATGGAACCTAAGTTGAGATATCAAGCGATTAATAAAGGTAATATTAATTTAATTGATGCATATTCAAC -TGACGCTGAATTAAAACAATATGATATGGTTGTGTTAAAAGATGATAAGCACGTATTTCCACCATATCAA -GGAGCACCATTATTTAAAGAAAGCTTTTTAAAGAAACATCCAGAAATTAAGAAACCGTTAAACAAACTAG -AAAACAAAATATCTGATGAAGATATGCAAATGATGAACTATAAAGTAACAGTTAAAAATGAAGACCCATA -TACAGTTGCGAAAGATTATTTAAAAGCAAAAGGGTTAATCAAATAACGACCAACGCCACATAAGATGAGG -GGCACGCCATTATATCTTATGTGGCGTTGCTATATTTACATCTATGTTTATGTTCAATTTAAACATGCAA -TACTGATTAAAAAATATGACATGTTAAACACAATGTAAGCTAGTAATGTGTGAAAATAGTAGCATTGCAT -TTTAGAAACATAGAGCGATATAATGAATATAAGTTTTTTAAAATTTCAGTTAATTCTAAGGAGGTTGTTT -TTATTATGAAAGAACAACTTAATCAACTATCAGCATATCAGCCTGGTTTATCACCAAGGGCATTGAAAGA -AAAGTATGGCATTGAAGGAGATTTATATAAACTTGCATCAAATGAAAATTTGTATGGACCATCGCCTAAA -GTTAAAGAAGCGATATCAGCACACTTAGATGAGTTATATTATTATCCTGAAACAGGATCACCGACATTAA -AAGCGGCGATTAGTAAACATTTAAATGTAGATCAATCACGCATTTTATTTGGTGCGGGATTAGATGAAGT -TATATTAATGATTTCTAGAGCAGTATTAACGCCAGGGGACACTATTGTTACAAGTGAAGCGACATTCGGT -CAATATTATCACAATGCGATTGTTGAATCAGCTAATGTGATACAGGTACCTTTAAAAGATGGTGGCTTCG -ACTTAGATGGCATTTTAAAAGAAGTTAATGATGACACGTCATTGGTATGGTTATGTAATCCAAATAATCC -TACAGGTACGTATTTTAATCATGAGAGCTTAGATTCGTTTTTATCTCAAGTACCATCACATGTTCCGGTA -CTCATAGATGAAGCTTATTTTGAATTTGTGACAGCAGAGGACTACCCGGATACACTTGCTTTGCAACAAA -AATATGACAATGCATTCTTATTACGTACATTTTCAAAGGCGTATGGATTAGCGGGTTTACGTGTAGGATA -TGTGGTAGCAAGCGAACATGCGATTGAAAAATGGAACATCATTAGACCACCATTTAATGTGACACGTATA -TCTGAATACGCAGCAGTTGCAGCACTTGAAGATCAACAATATTTAAAAGAGGTAACACATAAAAATAGTG -TTGAACGTGAAAGATTTTATCAATTACCTCAAAGTGAGCATTTCTTACCAAGTCAAACGAATTTTATATT -TGTAAAAACAAAGCGGGTAAATGAACTTTATGAAGCACTTTTAAATGTAGGGTGTATTACGCGACCATTT -CCAACTGGTGTTAGAATTACAATTGGTTTTAAAGAACAAAATGGTAAAATGTTAGAAGTTTTATCAAACT -TTAAATACGAATAGTAAGTGGGCACCACATGGTATGAATATGTGACAAAATGCAGTGTGAATGATGAGGT -GAGAGTATTCAGTGTAAAAAGCAACAATAGATGATATTGTTTTGTATCAATTGCTTTTTTGCTATACTGA -ATCAATACTGATATTTTGAGGAGAAGATTAAAATGACCCGTAAATCAATCGCGATTGATATGGATGAAGT -ATTGGCAGATACATTAGGAGAAATCATTGATGCTGTCAATTTTAGAGCGGATTTAGGTATTAAAATGGAA -GCTTTGAATGGTCAAAAACTTAAACATGTTATTCCTGAACATGATGGATTAATTACAGAAGTATTAAGAG -AACCAGGCTTCTTCAGACACCTTAAAGTGATGCCGCATGCACAAGAAGTTGTAAAAAAATTAACTGAACA -TTATGATGTATATATTGCTACAGCAGCAATGGATGTACCAACATCATTCAGTGATAAATATGAATGGTTA -CTAGAGTTCTTTCCATTCTTAGATCCACAGCATTTTGTTTTTTGTGGTAGAAAAAACATCGTTAAAGCTG -ATTATTTAATAGATGACAATCCTAGACAGCTTGAAATTTTTACTGGTACACCGATTATGTTTACAGCAGT -GCATAATATTAATGATGATCGATTTGAACGCGTAAATAGCTGGAAAGATGTAGAACAGTATTTTTTAGAT -AATATTGAGAAATAAAAATATGTCACTCGAAGCCTTTCATGTAGCAAATAAAATGCATATACTGGGGCCC -CAACAAAGAGAATTTCGAAAAGAAATTCTACAAACAATGCAAGTTGGGGCGGGGCCCCAACATAAAGAAA -TACTTTTTCTTTAGAAATTAGTATTTCTTATGCATGAGTGTAACTCATGCAATCCTATTTTTAAGTACAC -ATTAGCTGTGACTAATGATAAAGAATCGCTACATAATCAACCATTAGTCGTTCTTTATCATTTCCATCCC -ACTCTCAATAAATGTTAGTCTATCTCATTATTATAAATCGGATGAATGTGTTAATCTATGGCAGATTACA -CTTCATCCGATTTTTTATAGAATTTGAAAAAGGCACATAAACCACTATGATTTAAAATACAACATCAATC -ATTTTAGTGGCATGCGCCAAAATTATATGTCTGTTTTTGAAACAGGGTAATAGCTTAAAGCTAATACCAA -CAAATATTACGTACGTTGAATCTTATGATTACACTTTAAACCTAATATAATATCGCGTTAATATCATTCC -GGATGCTTACAAATCATTGACAGTAAGCAACTGAATGGCATTTGGTATAACCTCAATATCAATAGGTGTT -TCTAATGAAATTTCGCCATCAATATCAACTTTCATTGTTGGATCTGTTGTAAGTGAAATCTTTTTACCAG -GTATATGCTCAATACCTTGAGTAATTTCATTCCAATTCATACTATCACGCTTTTTAAAAATATCATTTAA -AATACTGAAACTTTGTTCATTAAAAATGAAAGTGTTCAGTTCACCATCTTGAGGAGACAAATCAGTCAAT -GGTATTCGACTACCACCAATGAATGGACCATTTGCTGATAGTATCATGGTCGTTTCGCCAGAATATGTCT -TATCATCAATTGATAATTGATAATTAAATTGTGTTGGATTTAGCAGTGTTTTGACAGTTGATCCAATATA -ACTCAATTTACCAAATATATCTTTTGAACCATCTTGTACGTTTTCAGCGTTTTGAACAATTAGACCTAAG -CCAACAAAGTTGAGTGCATATTGATTATTTATTTTAATTACATCGTATGTACCAACTTGTGCAGAAATCA -TTTGTTCACTAGCTTGTTTATGATTAGGTGCTATATTTAGCGTTTTTGTAAAATCATTAAAAGTACCGCC -TGGTAAAATGCCAATAGGGAGTTGAAGGTCGTGTGTCATAACACCATTTATAAGTTCGTTAACCGTGCCA -TCACCGCCAAGAATAAATAATATATCTACATCTTTTGCATAATCTTTAGCTTTAATTTCTTGGCAATATT -TAATTATGTCACCTTCGTTTTCACTCAATTGAATAGAAAGATGCTTACAAATTGAACTTAATGCCGTTGT -AACTTCCCCGATACCTTGATTAATATTTTTTAATCCACTGTGTTCATGGTAAAAGAGGACACCATGTGTA -TATTTATTTTCCATAGTTTAGCCTACTTTCTAAAAATTGGTTCATTAAATATATATACCCACTTTTAATT -GTTAATACCAAAAATATGTTTTTAAATAGAGAAAATGGTAATAACTGAAATTGATGTCTATAGAGTGGGA -CGAGAAAATATAGTTATAGTTGTCTATAACGAGCATATTAAGTTTTTATTTATACTGATATCTTGAATTT -AATTATTAGAAACCAATAAAAAAACAGTAAGCCATTTAAATGACTTACTGTTTTTTGAATTAGGCCAACA -ATATTAACGAATACCTTTCATTGCTTTAATAATTAAAGGTGAGAATGCTAATACAATTGTTGTAACAATA -ATTGCAACAACACCTAAGAAGATAAAGTAATTTGTTTGACCTAGTGGTTCTATTAACTTAACTAATGTAC -CATTGATTGCTTGTGCAGAAGCGTTAGTTAAGTACCAAATACTCATCATTTGGGCATTAAATGCTTTAGG -TGCTAACTTAACAGCAGCACTATTACCCGTTGGTGATAAGCAAAGTTCACCGATAACACAGATAATGTAC -GATAAAATAACCCAGTTAACTGAGAAGTTTGATGAACCTGATGCATAACCTACAATACCAATTAGTATGT -ATGACGCACCTGCTAAGAACGTACCAATTGCAAATTTCACTGGCAGGCTAGGTTGTTTAGTTCCAAGCTT -TTGCCATAAAAGTGAAATAATTGGAGCTAATAATAAAATAAATAATGGGTTAATTGATTGGAAAATCGCT -TCACCAAAGTTTGTTTTCCAACCAAATAAGTTTAATTTCATATCTGAATGTTCAATTCCATAAATGTTCA -ATACATTAGACCCTTGTTCTTGAATAGCCCAGAACACCATTCCAAGAATAAATAATGGAATAAATGCTTT -AACACGAGAACGTTCAGTATCAGTGACATCTTTACTTCTAATAATTAAAGTGAAGTAAATGATTGGTAAT -GCAATACCTAATACTAAAACAGTATTACTAACTAAGTTAAATGATAATGAGTTAGTTAATGCACCAATAA -CGATAATTAATACAATTGCTAAGATAACACTTCCGATAATAAGACCATACTTTTTCTTTTCAGCTGGTGT -CAATGGGTTAGTAGGTTTCATACCAACGCTACCTAAGTTTTTGCGGTTGAAAAGTACATACCATACTAAA -CCTAATGCCATACCAACAGCTGCAATCAAGAATCCACCGTGGAAGTTTTTAACATTAACAAAGTGTTGCA -AAATAATAGGTGATAATAATGCACCCATATTAACTGACATATAGAAAATAACAAAACCTGCATCCATACG -TCTATCATTTTCAGGATATAAACGGCCAACGATATTTGAAATGTTTGGCTTCATTAAACCTGAACCAATA -ATGATGAAGAACATTGATGTGAATAAGCCGATTAATGCAAATGGTAAGCTTAAACAAATATGTCCGATAA -TAATAAAGACTGCACCTAATAAAGTAGCGCCTCTAGTACCTGTAATTCTGTCAGCAATCCATCCGCCTGG -TATTGATGTCATATAGATTAATGAACCATAAACTGACATAATTGACATAGCTGTTGTTTTATCAATTCCA -AGGCCATTATCTGTTACGGCAAAGTACATGTAGAAAATGAGTAGGGCACGCATGCCATAATAACTAAACC -TTTCCCAGAACTCTACAAAGAAGAGTACGCCTAGCCCTCGAGGATGCCCGAAAAATCCTGTTTGAGGTAT -GTCTTGAATTTGATTTCCATGGGAGTTTTGTTGTGTCATTTATACATCCCATCCTTTCTTCCCCTAATAC -AATAGTTTAAGTAAATTTGATTGTGCCTTATCAACTAAATATTTCACAAATCACAAAAAAATAAAAATAT -TGAGAATATTCTGTTATTAAGCGCGCACAATTAATTAGAGATAATATAAAAATATACTTATTGACGTTAA -AGTGCAATAGGTTTCTATAAAAATGTTGTTTAATTCGTGTACTAATATTCTTTTGGTGTACTTTGGTATA -AAATGTTATTTTAATGTAACCTATTATGTATGCTAAATGAAAAACACACCAATAAGTTAGGAAAATCAAC -TTATTGGTGTGTTTATTAAATGATACATTTAACGATTATCTATTTTTTCGGGATATAAATCATGATTCAT -TAAACGATGTTCAGCCATTTGTTCGTATTTAGAATTTGGTCGTCCATAGTTTGTATAAGGGTCAATAGAA -ATTCCACCACGTGGTGTGAACTTGCCCCAAACTTCAATATAATGTGGATCCATAAGCTCTATCAAGTCAT -TCATAATTATATTCATACAATCTTCATGGAAATCACCGTGATTTCTGAAACTAAATAAGTAAAGTTTCAA -CGATTTTGATTCAACCATTTTAACATTTGGAATATAAGAAATATAGATAGTTGCAAAATCTGGTTGCCCA -GTAATCGGACATAATGATGTGAATTCTGGACAGTTGAATTTTACGAAATAGTCACGACCTTGATGCTTAT -TATCAAACGATTCTAATACATCAGGACGATAGTCAAAATTGTACGTATTGTCTTGATTTCCTAATAAAGT -TATATCTTGTAATTCATCTTGTTGACGGCCATGTGCCATAAAAAGCGCTCCTTTAAATTTATTTTTTTAT -TACTTTGGCGTCTCGGCGTGCTTTTTCAAACATGTAATAACTTGCACCGATAATAACGACGTAACCTAAT -GTTGCATAGAAATCTGGAGATTCTCCAAATAGAATAAATCCAAGTATTGCTGTGAAAATTATAGATGCAT -ATGTGAAAATAGAAATATCTTTCGCAGCAGCAAAACTATATGCCAATGTAACGCCAATTTGACCTACAGC -TGCAGCTAAACCAGCACCTAATAGATAAAGCACTTGCGTTTGACTCATTGGTTCATAGGTATATGCAGTG -AAAGGTATTAAAACGATGACAGAAAATAAGGAGAAGTAAAATACTATAGTATATGGTGCTTCTCTAGTAC -TAAGTGCGCGTACACACGTATATGCCGATGCAGCAAAAATACCTGAAAATAGTCCAGCTAGTGATGGAAT -CATAGATGATGAAAATTCAGGTTTCACTATTAAAAGCATACCTAAAATAGCAATTATCATTGCTGTTATT -TGATATTTCCTTACCTTTTCATGTAAGAAAACAATACTTAATAAAATCGTCCAGAAAGGATTGAGTTTCA -TTAGTGAATCAGCATCGCTAAGTACCATATGGTCAATGGCGTAAATATTTAATAATACACCTATGAGTCC -AAGTGTTGATCGTGTTAATAATAATGGTTGGCTTGAGAGTTTACCAAACATTGGTTGATGATATTTATAT -ATAAAAAATAATGGAATAAACATTGCTACTAAGTTTCGTGCTAATGATTTTTGAAAAACAGGAAGATCAC -CTGCAAGTCTGAAAAACACTGACATAAAACTGAAACCAATAGCCGAAATTAAAATGGCAATGATACCTTT -TACTTTAGGATTCAATTTTATCGCCTCTTTTATATAAAATTAACGTATTTATATTAGCATAAAACAACAT -GTTGTGCATAAATAGTTGAAATTTACTATAAAAAGACTATAATAGACTTTATCGAACAAGTGTTCTGTGT -TTATTTGTCGGAATAATAGGGCATTACACTTTTATGAATGTTTGTGTTATTACATAAAACAAATATCAAT -TCAGTATCAAGCTAATAAGCTTTTTCTTGATTTCTGTTGATACAATTGAGATTGACACAGATTTTAAAAA -ATCAAGTGATATCTACTGAAAAAATTTTTTTAATTTGTTCAAGTTTTTCTAATTAAGTATTGGTGCCTAG -TTGGAACGTTTTACGAACATTCGATTAGAAAATGACACTTTAAATCATAGTGTGTCTTATGTATAATGAA -ACACATAATATAGTGTTGGTTAAACGAAAAAGACACAATATCTTGTGTTTTGTATGCAAATGCTTTATTT -ATGAAGAAATTACATTTAAAAGTAATTTAACACAGAAATTTAATAGTTATTATCAATGAATAGTCATATT -TTTTAGAAAATGTACTGAGCAAATGGAAGGTATCTAATGATCTAAACACTACATATAGTGATTTTTATAC -ATTCAACCCATATAAGCTACTATTTTCTCAAATATAAATCTATGCAATTGGTTTACATTTGAGAAAATAA -GTAGCTTCATTATAGTTAATACAATGCTGAGATAACCATAGTAGCGACGTTGTTAAAGCATTTTTTAATT -GTAATGACTACTTAATTTAAAAGGGTTGAAGAAAGAAGGTGATCCAATGAAAATAATATATTTTTCATTT -ACTGGAAATGTCCGTCGTTTCATTAAGAGAACAGAACTTGAAAATACGCTTGAGATTACAGCAGAAAATT -GTATGGAACCAGTTCATGAACCGTTTATTATCGTTACTGGCACTATTGGATTTGGAGAAGTACCAGAACC -CGTTCAATCTTTTTTAGAAGTTAATCATCAATACATCAGAGGTGTGGCAGCTAGCGGTAATCGAAATTGG -GGACTAAATTTCGCAAAAGCGGGTCGCACGATATCAGAAGAGTATAATGTCCCTTTATTAATGAAGTTTG -AGTTACATGGAAAAAACAAAGACGTTATTGAATTTAAGAACAAGGTGGGTAATTTTAATGAAAACCATGG -AAGAGAAAAAGTACAATCATATTGAATTAAATAATGAGGTCACTAAACGAAGAGAAGATGGATTCTTTAG -TTTAGAAAAAGACCAAGAAGCTTTAGTAGCTTATTTAGAAGAAGTAAAAGATAAAACAATCTTCTTCGAC -ACTGAAATCGAGCGTTTACGTTATTTAGTAGACAACGATTTTTATTTCAATGTGTTTGATATTTATAGTG -AAGCGGATCTAATTGAAATCACTGATTATGCAAAATCAATCCCGTTTAATTTTGCAAGTTATATGTCAGC -TAGTAAGTTTTTCAAAGATTACGCTTTGAAAACAAATGATAAAAGTCAATATTTAGAAGACTATAATCAA -CACGTTGCAATTGTTGCTTTATACCTAGCAAATGGTAATAAAGCACAAGCTAAACAATTTATTTCTGCTA -TGGTTGAACAAAGATATCAACCAGCGACACCAACATTTTTAAACGCCGGCCGTGCGCGTCGTGGTGAGCT -AGTGTCATGTTTCTTATTAGAAGTGGATGACAGCTTAAATTCAATTAACTTTATTGATTCAACTGCAAAA -CAATTAAGTAAAATTGGTGGCGGCGTAGCAATTAACTTATCTAAATTGCGTGCACGTGGTGAAGCGATTA -AAGGAATTAAAGGCGTAGCGAAAGGTGTTTTACCTATTGCTAAGTCACTTGAAGGTGGCTTTAGCTATGC -AGATCAACTAGGTCAACGCCCTGGTGCTGGTGCTGTGTACTTAAATATCTTCCATTATGATGTAGAAGAA -TTTTTAGATACTAAAAAAGTAAATGCGGATGAAGATTTACGTTTATCTACAATATCAACTGGTTTAATTG -TTCCATCTAAATTCTTCGATTTAGCTAAAGAAGGTAAAGACTTTTATATGTTTGCACCTCATACAGTTAA -AGAAGAATACGGTGTTACATTAGACGATATTGATTTAGAAAAATATTATGATGATATGGTTGCAAATCCA -AATGTTGAGAAAAAGAAAAAGAATGCACGTGAAATGTTGAATTTAATTGCGCAAACACAATTACAATCAG -GCTATCCATATTTAATGTTTAAAGATAATGCTAATAGAGTTCATCCGAATTCAAATATTGGACAAATTAA -GATGAGTAACTTATGTACTGAAATTTTCCAATTACAAGAAACTTCAATTATTAACGACTATGGTATTGAA -GACGAAATTAAACGTGATATTTCTTGTAACTTAGGTTCATTAAACATTGTAAATGTAATGGAAAGCGGAA -AATTCAGAGATTCAGTTCACTCTGGTATGGACGCATTAACTGTTGTAAGTGATGTAGCAAATATTCAAAA -TGCTCCAGGAGTTAGAAAAGCTAATAGTGAATTACATTCAGTTGGTCTTGGTGTGATGAATTTACATGGT -TACTTAGCAAAAAATAAAATTGGTTATGAGTCAGAAGAAGCAAAAGATTTTGCAAATATCTTCTTTATGA -TGATGAATTTCTACTCAATCGAACGTTCAATGGAAATCGCTAAAGAACGTGGTATCAAATATCAAGACTT -TGAAAAGTCTGATTATGCTAATGGCAAATATTTCGAGTTCTATACAACTCAAGAATTTGAACCTCAATTC -GAAAAAGTACGTGAATTATTTGACGGTATGGCTATTCCTACTTCTGAGGATTGGAAGAAACTACAACAAG -ATGTTGAACAATATGGTTTATATCATGCATATAGATTAGCTATTGCTCCAACACAAAGTATTTCTTATGT -TCAAAATGCTACAAGTTCTGTAATGCCAATAGTAGATCAAATTGAACGTCGTACTTATGGTAATGCGGAA -ACATTTTACCCTATGCCATTCTTATCGCCTCAAACAATGTGGTACTACAAATCTGCATTCAATACTGATC -AGATGAAATTAATCGATTTAATTGCGACAATTCAAACGCATATTGACCAAGGTATCTCAACGATACTTTA -TGTTAATTCTGAAATTTCTACACGTGAGTTAGCAAGATTATATGTATATGCGCACTATAAAGGATTAAAA -TCACTTTACTATACTAGAAATAAATTATTAAGTGTAGAAGAATGTACAAGTTGTTCTATCTAATAAGTAA -ACGTAAAAAATGACAAACAACTAATCATCTCGTTTAAAATAACAGATGATTAGTCTGCCATGTCTATATT -TGTCAATTATTGAGAGTAACATTACAGGAGGAAATTATATTCATGATAGCTGTTAATTGGAACACACAAG -AAGATATGACGAATATGTTTTGGAGACAAAATATATCTCAAATGTGGGTTGAAACAGAATTTAAAGTATC -AAAAGACATTGCAAGTTGGAAGACTTTGTCAGAAGCTGAACAAGACACATTTAAAAAAGCATTAGCTGGT -TTAACAGGCTTAGATACACATCAAGCAGATGATGGTATGCCTTTAGTCATGCTACATACGACTGACTTAA -GAAAAAAAGCAGTTTATTCATTTATGGCGATGATGGAGCAAATACACGCGAAAAGTTATTCGCATATTTT -CACAACGCTATTACCATCTAGTGAAACAAACTATTTATTAGATGAATGGGTTTTAGAAGAGCCACATTTA -AAATATAAATCAGATAAAATTGTTGCTAATTACCACAAACTTTGGGGTAAAGAAGCTTCCATATATGACC -AATATATGGCCAGAGTTACGAGTGTATTTTTAGAAACATTCTTATTCTTCTCTGGTTTCTATTATCCGCT -ATATTTAGCTGGTCAAGGAAAAATGACGACATCAGGCGAAATCATTCGTAAAATTCTTTTAGATGAATCT -ATTCATGGTGTGTTTACTGGTTTAGATGCGCAGCATTTACGAAATGAACTATCTGAAAGCGAGAAGCAAA -AAGCTGACCAAGAAATGTATAAATTGCTAAATGACTTGTATTTAAATGAAGAGTCATACACAAAAATGTT -ATACGATGATCTTGGAATCACTGAAGATGTGTTAAACTATGTTAAATATAATGGAAATAAAGCACTTTCA -AATTTAGGTTTTGAACCTTATTTTGAGGAACGTGAATTTAACCCAATTATTGAGAATGCCTTAGATACAA -CAACTAAAAACCATGACTTCTTCTCTGTAAAAGGTGATGGTTATGTATTAGCATTAAATGTAGAAGCATT -ACAAGATGATGACTTTGTATTTGACAACAAATAATAATTAAAATTAAAAAGACCTTCACATGAAAGGGTA -ATAGCGATTCGTTTCGTCTTGACTCCTACATGTTGAAGGTCTTTTTTCTATAACTTAAAAACGTATGCAC -ATTTTGAAAAAGTAAAAATGGCATTTAATGATGCCAATGAGGCTAGAAAGTATACAAGATACTGCATTAC -AAAAGGGTGTGCTATTTTACTATATACATCTAAATTACACATTTACAAAAAATGATTTCTATTTTAATTG -CAAATATCAATAAAATTGACAATAAATTATTTGAAAGGCTATTGAAATGAGTGACAAAAAACGATACCAT -TAATGAGAAATGTTATCAATGATAATAATTATCATTAAATTAAAGGGAGAAAATTTTGTAATGAAGTATT -TATTAAAGGGAAAAATTTTGCTTCTATTACTTATATTGCTAACAATTATTTCGTTGTTTATAGGTGTCAG -TGAACTGTCTATTAAAGATATCTTTCATTTGTCAGACTCACAGCAAAATATATTGTTCTCAAGCCGAATA -CCGAGAACGATGAGTATTTTAATTGCTGGAAGTTCATTAGCTTTAGCTGGCCTAATCATGCAACAAATGA -TGCAAAATAAGTTTGTTAGTCCAACTACAGCTGGGACGATGGAGTGGGCAAAATTAGGAATCTTAATTGC -CCTATTATTCTTTCCAACTGGTCATATTTTATTAAAACTAGTATTTGCTGTTATTTGCAGCATCAGCGGA -ACATTTTTATTTGTTAAAATTATTGATTTTATCAAAGTGAAAGATGTCATCTTTGTACCACTATTAGGGA -TTATGATGGGTGGCATTGTCGCTAGTTTTACAACGTTTATCTCATTACGTACAAACGCAGTTCAAAGCAT -TGGTAACTGGCTTAACGGGAACTTTGCCATTATCACAAGTGGACGTTATGAAATCTTGTATTTAAGTATT -CCTCTTTTAGCATTGACATATCTTTTTGCAAATCATTTCACAATTGTAGGTATGGGTAAAGACTTTACCA -ATAATTTAGGTTTGAGTTATGAAAAATTAATCAATATTGCTCTATTTATTACTGCCACAATTACGGCATT -AGTCGTTGTGACAGTTGGAACTTTACCCTTCTTAGGTTTAGTTATTCCAAATATTATTTCGATTTATAGA -GGCGATCATTTAAAAAATGCAATTCCTCATACGATGATGTTAGGTGCCATCTTTGTATTGTTTTCTGATA -TAGTTGGCAGAATTGTAGTTTATCCATATGAAATTAATATTGGTTTAACAATAGGTGTATTTGGAACAAT -CATTTTCCTTATCTTACTTATGAAAGGTAGGAAAAATTATGCGCAACAATAATAAAAAAATAATGCTTTT -AATTGCAGTCACGTTCTTAATTAGTATGCTGTACTTATTTGTTGGTATTGATTTTGATATATTTGAATAT -CAATTTTCAAGTCGTTTAAGAAAGTTCATATTAATTATTTTAGTAGGTGCTGCCATTGCAACATCCGTTG -TTATTTTCCAAGCGATTACAAATAATCGTTTATTGACACCATCAATAATGGGATTAGATGCAGTTTATTT -ATTTATCAAAGTATTGCCCGTCTTTTTATTTGGAATTCAATCGGTATGGGTTACTAATGTATATTTGAAC -TTTATATTAACACTTATAACGATGGTGTTATTCGCACTAATCCTATTCCAAGGTATCTTTAAAATTGGAC -ATTTTTCAATTTACTTTATCTTACTTATAGGTGTCCTTTTAGGAACATTTTTTAGAAGTATTACAGGTTT -TATTCAATTGATTATGGATCCTGAGTCATTTTTAGCAATACAAAGTAGTATGTTTGCTAATTTTAATGCT -TCTAATTCGAATTTAGTTACTTTTTCAGCAGTATTATTAGTAATCATATTAGTCATTACAATTTTTCTAT -TGCCATATTTAGATGTATTGCTTTTAGGTCGTGCTGAAGCAATTAATCTGGGGATATCGTATGAAAAATT -AACGCGGATTCTACTTGTAATAGTTTCTGTCTTAGTCTCTGTGTCAACTGCATTAGTAGGACCAATTACA -TTTTTAGGCTTATTGACTGTAAATCTAGCGCATGAACTAATGAAGACGTATGAACATAAATATATATTAA -TCGCGACAATTTGCTTGAGTTGGATTAGTTTATTTAGTGCGCAATGGGTAGTTGAAAATGTGTTTGAGGC -TACGACAGAAATGAGTATACTTATTGATTTAATTGGTGGAAGTTATTTCATTTATCTATTAGTTAGAAGG -AGAAATGCGCAATGATTCAAGTTGGGAATTTAACTAAAACTATAAATAATCAAATGATATTGGACGATAT -TAGCATAGAAATTGAAAAAGGTAAGTTGACTTCTTTAATTGGACCTAATGGAGCAGGGAAGAGTACGTTA -CTTTCAGCGATATGTCGCTTAATTCGGTTTGATGAAGGGGAAGTAAAAATAGATGGACAGCTTATGTCTG -ATTATAAAAACAATGATTTGTCGAAAAAGATATCGATTTTAAAGCAAACGAACCATACAGAAATGAACAT -TACTGTAGAACAATTAGTTAATTTCGGACGATTTCCATATTCTAAAGGACGTTTAACGAAAGAAGACCAT -GAAATTGTTAATGATGCTTTAGATTTGTTGCAATTACAAGATATTAGAAAGCGTAATATAAAATCATTGT -CTGGTGGACAACGTCAACGTGCCTATATAGCGATGACCATTGCACAAGATACTGAATATATTCTTTTAGA -TGAACCGTTAAATAATTTAGATATGAAGCATGCTGTTCAAATTATGCAAACGTTAAAAATGTTAGCGCAT -AAAATGAATAAAGCGATTGTCATTGTGTTACATGATATTAACTTTGCGTCCTGTTATTCAGATCAGATTG -TAGCAATGAAAAACGGACAACTAGTTAAATCAGATTTGAAAGATAATGTCATTCAAAGTAGTGTTTTAAG -TGATTTATATGACATGGATATTCAAATTGAACATATAAGAAATCAAAGGATTTGTTTATATTTTAAGGAT -TGATAATTTGGAGACACTTTAAAGGGGTGATGCGCCAATTAAAGAAGGGTTAACAAGTATTTATTCGTAT -TTCACATCAAGCACACAGATTAAGCCAAAAGAGGAGAATATTATATTATGAAGAAAACAGTCTTATATTT -AGTAGTAGCAGTAATGTTTTTATTAGCGGCATGCGGTAACAATTCTGATAAAGAACAATCAAAATCAGAA -ACTAAAGGTTCTAAAGATACAGTAAAAATTGAAAACAACTATAAAATGCGTGGCGAGAAAAAAGATGGTA -GCGATGCTAAAAAAGTTAAAGAAACTGTTGAAGTACCAAAGAACCCTAAAAATGCAGTTGTATTAGATTA -TGGCGCATTAGATGTAATGAAAGAAATGGGCTTATCAGACAAAGTAAAAGCATTACCTAAAGGTGAAGGC -GGCAAGTCATTACCGAATTTCTTAGAGTCATTTAAAGATGACAAGTATACAAATGTTGGTAACTTGAAAG -AAGTTAATTTCGATAAAATTGCAGCAACAAAACCGGAAGTAATCTTTATCTCTGGCCGTACAGCAAATCA -AAAGAATTTAGATGAATTTAAAAAAGCTGCACCAAAAGCAAAAATTGTTTACGTTGGTGCAGATGAAAAG -AATTTAATTAGTTCAATGAAACAAAACACTGAAAATATTGGTAAAATTTACGATAAAGAAGATAAAGCTA -AAGAATTAAATAAAGATTTAGATAACAAAATTGCTTCAATGAAAGATAAAACTAAGAAGTTCAACAAATC -AGTTATGTATTTATTAGTTAATGAAGGTGAATTATCAACATTTGGACCTAAAGGTCGTTTCGGTGGATTA -GTTTACGATACATTAGGTTTCAACGCGGTTGATAAAAACGTAAGCAATAGTAACCACGGACAAAATGTCT -CTAACGAATACATTAATAAAGAAAATCCAGATGTTATTTTAGCAATGGATAGAGGACAGGCTGTAAGTGG -TAAATCAACTGCGAAACAAGCATTAAATAATCCTGTATTAAAAAATGTTAAAGCAATTAAAGAAGACAAA -GTTTATAATTTAGACCCTAAATTATGGTACTTTGCAGCTGGATCAACTACAACTACAATTAAACAAATTG -ATGAACTTGAAAAAGTTGTAAAATAATTTTAAAAGAGGGGAACAATGGTTAAAGGTCTTAATCATTGTTC -CCCGCTTTGCTTTAAAAAAGGGAATCTGGGACGTCAATCAATGTCCTAGACTCTAAAATGTTCTGTTGTC -AGTCGTTGGTTGAATGAACATATACTTGTAACAAGCTCATTTCAATACCTGTGGGCTCCAAACATAGAGA -AATTGGATTTCCAATTTCTACAGACAATGTAAGTTGCCGGGCTCCAAACATAGAGAATATCAAAAAGAAA -TTCTACAGAAGTGGTGCTTTATCATGTCTATCCCACTCCCTATAATTTTTTGGCTATGTTGTTTAAATTT -CGAAATAAATATGATAGTGATATTTGCAGCGATTGTTAAATCGAGATTGGCAATTAGGACAACGCTCAAC -CATCATATATTCATTGATTGTTAATTCATGTTTGCATACACCGCATAAGATTGCTTTTTCGTTAAATGAA -GGCTCAGACCAACGCTTAATGGCGTGCTTTTCAAACTCATTATGGCACTTATAGCATGGATAGTATTTAT -TACAACATTTAAATTTAATTGCAATAATATCTTCTTCGGTAAAATAATGGCGACAGCGTGTTTCAGTATC -GATTAATGAACCATAAACTTTAGGCATAGACAAAGCTCCTTAACTTACGATTCCTTTGGATGTTCACCAA -TAATGCGAACTTCACGATTTAATTCAATGCCAAATTTTTCTTTGACGGTCTTTTGTACATAATGAATAAG -GTTTTCATAATCTGTAGCAGTTCCATTGTCTACATTTACCATAAAACCAGCGTGTTTAGTTGAGACTTCA -ACGCCGCCAATACGGTGACCTTGCAAATTAGAATCTTGTATCAATTTACCTGCAAAATGACCAGGCGGTC -TCTGGAATACACTACCACATGAAGGGTACTCTAAAGGTTGTTTAGATTCTCTACGTTCTGTTAAATCATC -CATTTTAGCTTGTATTTCAGTCATTTTACCAGGAGCTAAAGTAAATGCAGCTTCTAATACAACTAAGTGT -TCTTTTTGAATAATGCTATTACGATAATCTAATTCTAATTCTTTTGTTGTAAGTTTAACTAACGAGCCTT -GTTCGTTTACGCAAAGCGCATAGTCTATACAATCTTTAACTTCGCCACCATAAGCGCCAGCATTCATATA -CACAGCACCACCAATTGAACCTGGAATACCACATGCAAATTCAAGGCCAGTAAGTGCGTAATCACGAGCA -ACACGTGAGACATCAATAATTGCAGCGCCGCTACCGGCTATAATTGCATCATCAGATACTTCGATATGAT -CTAGTGATAATAAACTAATTACAATGCCACGAATACCACCTTCACGGATAATAATATTTGAGCCATTGCC -TAAATATGTAACAGGAATCTCATTTTGATAGGCATATTTAACAACTGCTTGTACTTCTACATTTTTAGTA -GGGGTAATATAAAAGTCGGCATTACCACCTGTCTTAGTATAAGTGTATCGTTTTAAAGGTTCATCAACTT -TAATTTTTTCATTTGGGATAAGTTGTTGTAAAGCTTGATAGATGTCTTTATTTATCACTTCTCAGTACAT -CCTTTCTCATGTCTTTAATATCATATAGTATTATACCAATTTTAAAATTCATTTGCGAAAATTGAAAAGA -AAGTATTAGAATTAGTATAAATATAAAATACGGCATTATTGTCGTTATAAGTATTTTTTACATAGTTTTT -CAAAGTATTGTTGCTTTTGCATCTCATATTGTCTAATTGTTAAGCTATGTTGCAATATTTGATGCTTTTT -AGTATTGAATTGTAAAGCGATCTCATCATTAGTCGATAAGAGACGATCAAGTGCAAGATAAGATTCAAAT -GTTTGGGTATTCATTTGAATGATATGTAGACGCACCTGTTGTTTTAGTTCATGAAAATTGTTAAACTTCG -CCATCATAACCTTTTTATTATATTTATGATGCAAACGATAAAACCCTACATAATTTAAGCGTTTTTCATC -TAAGGATGTAATATCATGCAAATTTTCTACACCTACTAAAATATCTAAAATTGGCTCTGTTGAATATTTA -AAATGATTCGTACCGCCAATATGTTTTGTATATTTTACTGGGCTGTCTAAGAGGTTGAATAATAATGATT -CAATTTCAGTGTATTGTGATTGAAAACAATTAGTTAAATCACTATTAATGAATGGTTGAACATTTGAATA -CATGATAAACTCCTTTGATATTGAAAATTAATTTAATCACGATAAAGTCTGGAATACTATAACATAATTC -ATTTTCATAATAAACATGTTTTTGTATAATGAATCTGTTAAGGAGTGCAATCATGAAAAAAATTGTTATT -ATCGCTGTTTTAGCGATTTTATTTGTAGTAATAAGTGCTTGTGGTAATAAAGAAAAAGAGGCACAACATC -AATTTACTAAGCAATTTAAAGATGTTGAGCAAAAACAAAAAGAATTACAACATGTCATGGATAATATACA -TTTGAAAGAAATTGATCATCTAAGTAAAACTGATACAACTGATAAAAATAGTAAAGAATTTAAGGCACTA -CAAGAAGATGTTAAAAACCATCTCATACCTAAATTTGAAGCATATTATAAGTCAGCAAAAAATTTGCCTG -ATGATACAATGAAAGTTAAGAAATTAAAAAAAGAATATATGACGCTTGCAAATGAGAAGAAGGATGCGAT -ATATCAATTAAAAAAATTCATAGGTTTATGTAATCAATCTATCAAGTATAACGAAGACATTTTAGATTAT -ACGAAACAATTTGAAAAAAATAGATACAAAGTTGAATCAGAAATTAAATTAGCTGATAATAAAAGTGAAG -CAACTAATCTTACGACAAAATTAGAACATAATAATAAAGCGTTAAGAGATACTGCGAAAAAGAACCTAGA -TGATAGTAAAGAAAATGAAGTAAAAGGCGCGATTAAAAATCACATTATGCCAATGATTGAAAAACAAATT -ACCGATATTAACCAAACTAATATTAGTGATAAGCATGTTAATAATGCAAGGAAAAACGCAATAGAAATGT -ATTACAGTCTGCAGAACTATTATAATACACGTATTGAAACAATAAAGGTTAGTGAGAAGTTATCAAAAGT -CGATGTAGATAAGTTGCCGAAAAAGGGTATAGATATAACTCACGGCGATAAAGCCTTTGAAAAAAAGCTT -GAAAAATTAGAAGAAAAATAACTATAATCATTTTTCAAAGTTAAAAATTTTGAATTTATGGTTAACATGT -CAACTTACTATGTGTATAATGGTAAACATTGATATTAACTATATGTATAAAAATGTCACGCAGATGCTAT -TTAAATGTGATAAATATTTTTAGAGGTGAATAGAGTGGCTATAAAGCTAAGTTCAATTGACCAATTTGAA -CAGGTTATTGAGGAAAATAAATATGTTTTTGTATTAAAACATAGTGAAACTTGTCCAATATCGGCAAATG -CGTACGATCAATTTAATAAATTTTTATATGAACGCGATATGGACGGTTATTATTTGATTGTCCAACAAGA -ACGCGATTTGTCAGATTATATTGCTAAAAAAACGAACGTTAAACATGAATCACCTCAAGCATTTTATTTT -GTAAATGGTGAAATGGTTTGGAATCGAGACCACGGTGATATTAATGTGTCGTCATTAGCACAAGCAGAAG -AATAATGAAACTATAGGGTTGGAACATTTTGCCTTACACTACTAGACGTGAATAGCACAACTTAAATTCG -TGTGAATCAGAGTAGTTTGGCTATAATGATGTTCTGACCTTTTATTTTATGTAACCTTTAGAAGCAGTTA -AGTTAGTACTTTTTTACAAACATATGTATAATGTATTCGAGTATTTTTATTGAAAATATTTTGGAAAACG -ACGAATCCAATAAGAAAATTTTAACATGATTTGTAAGTTAGTTTAATAGGAAATACATGCTAAACCATAA -GAAGTATACTGTTATTTGCTGGAATAATTAATAATCATGTCATGTTAAATGTTCGCATATAATCACGAGA -TAAAATCTAAAATTTAAGATTAATCTTTTATGAATAAAAAACGTATCACAACAAATAATAAAGTAAGGTG -GTCAAGGTTATGAAAGTATTAGTAGCCATGGATGAGTTTCATGGAATTATTTCGAGTTATCAAGCTAATA -GATATGTTGAAGAGGCAGTTGCAAGCCAAATTGAAACTGCAGATGTAGTTCAAGTACCATTGTTTAATGG -AAGACATGAATTATTAGATTCTGTATTTTTATGGCAATCTGGGCAAAAGTATCGTATACCAGTACATGAT -GCAGATATGAATGAAGTTGAAGGTGTTTACGGACAAACTGATACAGGGATGACCGTTATCGAGGGGAATT -TATTTTTAAAAGGTAAAAAACCAATTGTTGAACGAACAAGTTATGGTTTAGGAGAAATGATTAAACATGC -ATTAGATAACGACGCAAAACATGTTGTAATTTCATTAGGTGGGATTGATAGTTTTGATGCTGGTGCAGGT -ATGTTACAAGCATTAGGTGCTCAATTCTATGATGACGAAGGGCGTGTCGTAGATATGAGACAAGGTGCTG -GTGTAATTAAATATATTCGTCGTATGGATATGTCGAACTTACACCCTAAAATGGAAACAGCAAGAATTCA -AGTAATGTCGGATTTTTCAAGTCGATTATATGGTAAGCAAAGTGAAATCATGCAAACTTATGATGCGCAT -CAGTTGAACCATAATCAAGCAGCAGAAATCGATAATTTAATTTGGTATTTTAGTGAGTTATTTAAAAGTG -AATTGAAAATTGCAATTGGTCCAGTTGAACGTGGTGGTGCTGGTGGTGGAATTGCAGCAGTCTTGAATGG -ACTGTATCAAGCTGAAATATTAACCAGTCATGCATTAGTAGACCAACTAACACATTTAGAAAATTTAGTT -GAACAAGCGGATTTAATTATTTTTGGAGAAGGATTAAATGAAAATGATCAGTTGCTAGAAACGACAACAT -TGCGTATTGCAGAACTTTGTCATAAACATCAAAAGGTTGCCATTGCAATTTGTGCAACTGCTGAAAAGTT -TGATTTATTTGAATCACAAGGGGTTACAGCAATGTTTAATACATTTATCGATATGCCGGAAAGTTATACC -GACTTTAAAATGGGATTACAAATTAGGCATTATACTGTTCAGTCTTTAAAACTGTTGAAAACACATTTTA -ATGTTGAGGTTTAGTAAAGAAGGACTAAATTGGTGATGCTGTCATGATGGTTAATAACATTTATGATGGT -TAGCAAAACGAATTAGAAGATCGAAAGTATACGTAAAAAATATGAAAAATCACGCTATCATTGCACTGAA -TGTTAGCGTGATTTTTTATATTAATTAAGCCTGAGTTGAACTAGTATATAATCGTTTGTTTTTAGTTATT -TTCAGCGGTATCTTCTACAATTCCAATGATTACTTGTACTGCTTTTTCCATGACATCAATGGATGCATAT -TCATATGGGCCGTGGAAGTTACCGCAACCTGTAAAGATGTTTGGAGTTGGTAATCCCATAAATGACAATT -GTGAACCATCTGTACCACCACGAATAGGTTCAGTGTTTGCTGGAATATCTAATTTAGCAAAGACACGTTT -AGGTATATCAATAATATGAGGCAATGGTAATATTTTTTCTGCCATATTGAAATATTGATCCGATATATCA -ACTTTAACTGGATAATTTTCAAAATGGGCATTGATATCGTCACGTATTTCTAAAATACGTTTCTTACGCA -ATTCGAATTGTTTTTTATCATGATCACGAATAATGTATTGCAAAGTTGCTTTTTCAACAGTTCCTTCAAA -GTTCATTAAGTGGTAAAAGCCTTCATATCCTTCTGTTCGCTCCGGAACTTCACTATCAGGTAGCAAACTA -TCGAATTGTTCACCTAAACGTATTGCGTTTACCATTGCATTTTTAGCTGAACCAGGATGAACATTCACAC -CGTGGCATGTAATAACCGCTTCAGCAGCGTTAAAGCTTTCATATTGTAATTCTCCATATTGACTACCATC -CATAGTATAAGCAAAATCAGCATTGAAGCGGTCAACATCAAATTTATGTGGACCACGACCGATTTCTTCG -TCTGGTGTAAATCCAATGCGAATGGTACCATGTTTAATTTCTGGATGTTCTTGTAAATAACAAATAGCTT -CCATAATTTCCACAATACCCGCTTTATCGTCTGCACCTAGTAACGATGTACCATCAGTTACCATTAATGT -ATGACCAACTAAACTGTTAAGTTCTGGAAATACTTTAGGATCTAAGACACGTTTAGTATTGCCTAGTTTG -TATGGCTTGCCATCATAGTTTTCAATAATTTGCGGTTTAACATTTGAAGCATTGAAATCAGGTGATGTAT -CAACATGAGCCAAAAAACCAACAGTTGGGACGTCGGCATCGATGTTACTTTCTAATGTAGCAAATAAGTA -GCCATTTTCATCTAAATCAGTTGGCAATCCTAATTGTTGTAATTCTTTTTCTAATAAATGTAACAAATCC -CATTGCTTTTCAGTTGAAGGTGTTGTTGTAGATTTTGGATCAGATTGCGTATCAATTGTCGTATATCTTG -TTAATCTATCTATCAATTGGTTCTTCATTATATTCGACCCCTTAAACTCTATTATTCATGTTGTAAGATT -TTTTATATGTCTTACCTTTGATTTTACCATACAGTTGTTTGATACGTGTGTACAGGTAATATAGAATTTC -AGAAACTAATATACCGAAAGCAATCGCACCTGAAATCAGTGTAACTTCTAAAAATGTATTTACAGCACTT -GTATAATCATTCGATACTAAAAAACGAGTCGCTTGATAAGCTGCACCACCAGGTACTAATGGTATAATGC -CTGGCACTATGAATATAATTACCGGTCGTTTATAACTGCGACTCATAGTATGACTCATTAAGCCTAAAAT -TAAGCTTCCCAAAAATGAAGCGCCAACTTTTCCAAACTCTAAATCTACCGTTAATTGGTAAATCGTCCAT -GCAATGGCACCTACAAATCCACATGCTACTAAGAGACGTTTGGGTGCATTGAAAATGATAGAGAAAAGTA -CTGTTGATATAAAGCTGATTGTAAAATGAAATAAATAAAATAGCATGCTTTAACAGTCCTTCCTTAAATG -ATTAATAAAACGATTGCGACACCAGCACCGATTGCGAATGCTGTTAATGCAGCTTCAACACCACGAGACA -TACCTGCAAGTAATTCACCCGCTAATAAATCTCGAATGGCATTGGTAATTAATATACCAGGGACAAGTGG -CATGACACTGGCTATAGTAATGATATCTTGATTGGTTGCAATACCTAATTTAGTAAATGTGGCTGCAATG -GATATGACCACAGCGGCTGCAACAAACTCTGAGAAAAATTTAATTTGTATATAGCGTTGCACAAAGCTGA -ATGTTAAAAATGCGGATCCACCAGCAATGACTGCAATCCAACAATCTGATGCGACACCACCAAACATGAA -CAGGAAGAAGCCACATGCAATGGCAGCTGCAAAGAAATTCGTTAAAAAAGAATATTGTAATGATGCATGC -TGTAAATGAATAAATTCAGATTTAGCTTCATCAATTGTGAGTTCTTTATTTGATATTTTACGTGAAAGAC -TATTCGTTAAAGCGATTTTCTCTAAATCTGTTGTACGCTCTTGTACACGAATTAATCTTGTACTTGTACG -ATCATTTAATGAAAAAATAATTGCAGTTGAACTGACAAAACTATATGTATTATGAAGACCATAACTATGT -GCGATACGGTTCATTGTATCTTCAACTCGATATGTTTCAGCACCTGATTCAAGTAAAATTCTACCTGCAA -TTAATACAACATCAATCACTTTGTTTTCATCTATAATTGTGATTGAATCTGGCATATCAATTCACCTCCA -ATGATATGTGTTATTTATTTGAACAATTGAAGTTTACAACTTGTTGTTGCAACTTTCAATAGTGAGACTT -TGTGTTAGTATGATGAACTTGTATGGTTCAAATTTAAATAAGAAAAACTGTTAATCTTTGCTATTATACT -ATGATTTAATAATAGCAAAGGATTAACAGTTTTGTCGTTGTTATAGATTGATGATAGGGTTAAACATTAC -TTTATTTCGGCCTTGATTTTTGGCTACATGCACCATATCGTCTGCATCTTTAAACACTTTACGCTGTGAT -TTTGGATCGTCATCTGTTAAATAACCAACACCGATAGACACTGACAATTTAATAACTTCTTTGTTTGGTA -AATGGAATGATGATTTTTCAACACCCGAACGAATATTTTCAGCTAATTTAACACTTTGATCAAGTGAATA -GTTGTGAATGACAACTGAGAACTCTTCGCCACCATTTCTAAAAATTTTAAATTGATTCGGCACATAGTTT -TTAAGTAATTGAGACATTTGTTTTAATACAGCATCACCTGATTTGTGTGAGTAGGTATCATTGACATCTT -TAAATCCATCGATATCGATTAATAATAATGCGATACTTTGATGTTCTTTTTCAGCTTTTCGTGAAATTTC -ATTTAAATGTCTATCAAATTCTTTTACATTACCTAAGCCTGTTAAGTAATCATATTTATCTTCGTTTTCA -TAACGATTTACGAGTGAGAAGAAATGCCAAATATCGACAAATGTTATCGCTGAAGCTAAAGTGATAATTA -ATGAAATTGGTATTAAAATGATAACTTCCGATAGTGTGTAAATAGGACTCACTAATGCGACACCAAATAA -AATGATTATTGTAACAACATTAAGTATTAACAATGATAGCACATCATTTTGTTTTAAAAATGGTCCAATA -GCACTTGTTACTGCGGCAATAACAATCAACGTAACACCGTACATAATCGAGTTGTTAAATACTACAATTT -CAACAATTGCTACAATTACTGTGGCAGATAATGTATAGACCATATTTGTAAATCTACCTAAAAACAATAA -AGGAACGAATGTTAAGTGAATTAAATAATCTTCACGATAAGGGATAGGGTAGACAGATAATAATAATGAT -ACGATTGTCATTAATACAGTGACATATGCCTTAGAAAAAACCATACGTTTGTTTTCTGAATACTGTAAGC -GATGGAATAAATAGATTCCAGCGACTATAACAGATATATTGTATATAAATGCTTCGAACATGTCTGAATC -GACTCCTTTAATTGACCACTAGCTATTGTAAGTGAAAACTTACAATTTGTCATTAGTTTACATATAAAAT -TAATGTATGATATAGACTTTGATGTTAAAATGTTGCCTTAAATGATATGATGAAAAAATGAATAATAGGC -GATATATAAGAAATGAATCGTATAGTTGTAAATATGATATCATTGATTGAGCGAATTAATTTATAATAAA -GCTATAAGATATACGTAGAAAATAGATATATCATTCTATAAAGACAATATTAAATAAATATAACGTTAAA -AACAATTAATATCGATGAAGGTGAATAAATGGTTACATTATTACTAGTTGCAGTAACAATGATTGTCAGT -TTGACGATAACACCAATTGTTATTGCAATATCGAAAAGATTAAATTTAGTTGATAAACCAAATTTTAGAA -AAGTACACACTAAACCTATTTCAGTTATGGGTGGTACGGTGATTCTCTTTTCATTTTTAATAGGTATTTG -GATTGGTCATCCTATTGAAACAGAAATCAAACCACTTATTATTGGTGCGATTATTATGTACGTACTTGGG -CTTGTAGATGATATCTACGATTTGAAACCGTATATAAAATTGGCTGGTCAAATTGCTGCTGCCTTAGTAG -TTGCTTTTTATGGTGTGACTATTGATTTTATTTCGTTGCCAATGGGTACAACTATTCATTTTGGATTTCT -TAGTATTCCAATTACTGTGATTTGGATTGTTGCTATTACAAATGCAATTAACTTAATTGATGGACTCGAT -GGTTTGGCATCGGGTGTTTCTGCAATCGGACTCATTACAATAGGATTCATTGCAATTTTACAAGCTAATA -TTTTCATAACGATGATTTGTTGTGTTTTATTAGGCTCTTTAATTGGGTTTTTATTTTACAATTTCCATCC -TGCCAAAATATTTTTAGGTGATAGTGGCGCTTTAATGATTGGATTTATCATCGGATTCCTTTCTTTACTC -GGATTCAAAAATATTACAATTATTGCATTGTTCTTCCCAATTGTTATCTTAGCAGTTCCATTCATTGATA -CCTTGTTCGCAATGATTCGACGTGTGAAAAAAGGGCAGCATATAATGCAAGCTGATAAATCGCATTTGCA -TCATAAGTTATTAGCTTTAGGCTACACACATAGACAAACGGTATTATTAATCTATTCAATTTCTATTTTA -TTTAGTCTTTCGAGCATTATCTTGTATGTATCGCCACCATTAGGTGTTGTATTAATGTTTGTATTAATCA -TATTTAGTATTGAATTAATTGTTGAATTTACAGGATTAATAGATAACAACTACCGACCAATATTAAATTT -AATTAGTCGTAAGTCATCTCATAAAGAGGAATAGATTTTAAAACGGTAAGTAATAAAATAAAAAATGATG -TCTGTACTTTTATGTTGTTATAAAGAAGGCATACTCACAAAAAACACTAGCATGGAACGTGCTTTCCAAA -TTGCAAAGTAACAATACGCAATTAGAGTTAGCCATCCTAAGCTAGTGCTTTTTATTTTTATTCAGTTGGT -ATATCGAAAGGTAACTGCTTTGGAGTTTCTTCAGTCAAATCGAAATTTCCAGCAGTCATTTGATTTAAAA -AATTAATAAACGCTTCATAGTCACTTTTAACGACATCGATATAGTAGCTTACCTTATCAGTGTAAGTTTG -GTTTCTTAACATAAAATGAGTTGAGGCTAATTCATATTCAAATTTACCAGTTTGATCATAATTCAGTGTT -ACTATACATGGTACTGCTTCTCGTAGTTCGACACGTCCGATATCATAAATGACGTCTCTGACAGCACCGC -TATAGGCGCGAATTAAACCGCCACCACCTAATTTAATACCACCAAAATATCTTGTTACTACGACACACGC -ATTATGAACATCGAGCTTTTTTAATATGTCTAACATTGGGACACCGGCAGTTCCTGTCGGTTCACCATCA -TCATTCGCTTTTTGAATATTCATTTCAGGTCCAATAGTATATGCAGAACAATTATGAGTGGCATCTTTAT -GTTCTTTTTTTATTGCAGCAATAAATGCTTTAGCTTCATCTTCATTTTGAACAGGTTTGATATGAGCAAT -GAATCTTGATTTACTAATCACATTTTCAATAATGTGTTCTTTTTTAACAGTAATGATATTTTGTGTCATA -ATAACTCCTTAATTCATAAGCTTAAGATTATTTAATCTTCATTATACACTGAAAATGATATGACTATAAA -TCGTTTGATTGCCATTTTCTTTTTAACTGAAATATTGTATCATTGCTATGAGTATATTTTAGGAGGACGA -CTATGAAAATTGCTGTGATGACCGATTCTACAAGTTATCTGTCGCAGGACTTAATCGATAAATATAATAT -TCAAATAGCGCCATTAAGTGTGACTTTTGATGATGGGAAGAACTTTACAGAAAGTAATGAAATAGCAATT -GAAGAATTTTATAATAAAATGGCATCGTCTCAAACGATTCCAACAACAAGCCAACCAGCAATTGGCGAAT -GGATTACTAAATATGAAATGTTAAGAGATCAAGGTTACACAGATATCATTGTCATTTGCTTATCAAGTGG -AATTAGTGGAAGTTATCAATCTAGTTATCAAGCAGGGGAAATGGTTGAAGGTGTTAATGTACATGCATTT -GATAGTAAGCTTGCAGCAATGATTGAAGGATGTTATGTATTACGTGCTATTGAAATGGTTGAAGAAGGAT -ACGAACCACAGCAAATTATTGATGATTTAACTAATATGCGTGAACACACAGGTGCATATTTAATTGTTGA -TGACTTAAAGAATTTACAAAAAAGTGGTCGAATTACTGGTGCTCAAGCATGGGTTGGAACATTATTGAAA -ATGAAGCCAGTTCTTAAGTTTGAAGATGGCAAGATTATACCAGAAGAAAAAGTTCGTACTAAAAAGCGTG -CCATTCAAACATTAGAAAAGAAAGTATTAGATATTGTAAAAGACTTTGAAGAAGTAACTTTATTTGTCAT -AAATGGAGACCATTTCGAAGATGGACAAGCGTTATACAAAAAGTTACAAGATGATTGTCCTTCAGCTTAT -CAAGTAGCATACTCTGAGTTTGGTCCAGTTGTTGCAGCACATTTAGGTTCAGGTGGATTAGGTTTAGGCT -ATGTTGGCAGAAAAATAAGATTAACATAATTATAAAATTTTAATAAAAGAGTCTATATTGTAATTGGAAA -TTATCTCTCGTATACATGGCTTTAAATGTTCATCATTTGAATGTCAAAATGCTAAAGATATAAGAAAATC -ATTATAATATTAGACTCTTTTTTACGTTGAAATGAGGTTTTAAGCATTAAACATTACGGGAAATTAATTC -ATCCTCATACTTCACTTACTAATGAAAAAATTAATAAAGAAGTAACAGGTGTCATCAAACAAAAGTCAAA -CTATTATTGTGTTCAATGTGAAAGTACAAATCCAAAGCATTTTTATCAGTATGATTCCTCAGTACATTCC -AAGAAAATTGTATATTGCAGAAATTGTATATCACTGGGTCGAATGGATAATGTAACAAGATATAAAATAA -CAGAAAGTTCGCAAAGTTCATCACAAGCATATTATCATCTCTCATTTGAATTATCGGAACAACAGTCTTA -TGCCTCAGAACATATTGTTCGAGCCATTAGAATGAGACAAACGATTTTGTTATATGCAGTAACAGGTGCA -GGTAAGACAGAAATGATGTTTCAAGGCATTCAATATGCAAGACGACAGGGAGATAATATAGCTATTGTGT -CACCACGTGTAGATGTTGTTGTAGAAATTAGTAAACGTATTAAAGACGCATTTCTTAATGAAGATATAGA -CATACTACACCAGCAATCAAGTCAACAATTTGAAGGGCATTTTGTTGTATGCACAGTGCATCAACTTTAC -CGATTCAAACAGCACTTTGATACTATTTTTATTGATGAAGTCGACGCCTTTCCTTTATCAATGGATAAAA -GTTTACAACAAGCATTGAAGTCATCTTCTAAAGTTGAACATGCAACGATTTATATGACAGCAACACCACC -GAAACAACTTCTGTCAGAGATTCCCCTCGAAAATATAATTAAATTGCCAGCTCGCTTTCATAAAAAATCA -CTTCCAGTTCCTAAATATCGCTATTTCAAACTTAACAATAATAAGATTCAGAAAATGTTATATCGAATTT -TACAAGATCAAATTAATAATCAACGTTATACACTGGTGTTTTTTAACAATATAGAAACAATGATTAAAAC -ATTTTCGATTTATAAGCAGAAAATTACTAAATTAACATATGTCCATAGCGAGGATGTTTTTCGCTTTGAA -AAAGTTGAACAATTAAGGAATGGACAATACGATGTCATTTTTACTACGACAATATTAGAACGTGGATTTA -CAATGGCAAATTTAGATGTTGTTGTTATCGATGCACATCAATATACTCAAGAGGCTTTAATACAAATTGC -TGGACGTGTTGGACGAAAATTAGAATGTCCTACTGGAAAAGTATTGTTTTTTCATGAAGGTGTAAGTATG -AATATGATTCAAGCTAAAAAAGAGATTCAAAAGATGAACAAATTAGCATTAAAAAGAGGTTGGATTGATG -AATAATTGTTTGAGTTGTGGTGCTAAGTTATATGAAAATATAACCATTTATAATTTGTTCAAGAAACCTA -ATAGATTATGTGACAGATGCAAAGAGAATTGGGACAATATTAAACTTGATATTAAAGCAAGGCGATGTTC -AAGGTGCTTAAAATACTTAGATCAAAATGAAGCGTATTGTTTAGACTGCAAGTTTCTATCGGCACACTTT -AATTTAATGGAACAATTATATTGTCAATTTCAATATGACGGTTTAATGAAAGAGATGATACATCAGTATA -AATTTTCGAAAGACTATTATTTATGTGAATTATTGGCACATTTGATTGAAATACCACAAACATCTTATGA -CTATATTGTGCCAATTCCTTCTTCGCCGGCACATGATTTATCTAGAACATTTAACCCGGTAGAAGCAGTA -CTAAAAGCAAAAGGGATTCGCTTTGATAAGATTTTAAAGATGTCAAATAGACCAAAACAGTCTCATTTAA -CTAAGAAAGAGCGTCTGGCAGATGAAAATCCATTTATTATTGATACGGAATTAGATTTAAATGGTAAGGA -AATATTACTCGTTGACGATATTTATACAACTGGATTAACAATTCATCGTGCAGGGTGTAAATTATATGCT -AAAAATATCAGAAAATTCAAAGTGTTTGCGTTTGCACGATAGCGTAAAAATGTTAAAATATAATAAAGAG -TTACCAATAAAGAGGTTTAAGGAGAGATTACTATGATTAGATTTGAAATTCATGGAGATAACCTCACTAT -CACAGATGCTATTCGCAACTATATTGAGGAAAAAATTGGTAAGTTGGAACGTTATTTTAATGACGTACCA -AATGCAGTGGCGCATGTTAAAGTTAAAACTTATTCAAATTCAGCTACTAAAATTGAAGTAACAATTCCAT -TGAAAAATGTTACGTTAAGAGCTGAAGAGCGAAACGATGATTTATACGCAGGTATTGATTTAATTAATAA -TAAACTTGAAAGACAAGTTCGAAAATATAAAACACGTATTAATCGTAAGAGCCGTGATCGAGGAGATCAA -GAAGTGTTTGTTGCCGAATTACAAGAAATGCAAGAAACACAAGTTGATAATGACGCTTACGATGATAACG -AGATAGAAATTATTCGTTCAAAAGAATTCAGCTTAAAACCAATGGATTCAGAAGAAGCGGTATTACAAAT -GAATCTATTAGGTCATGACTTCTTTGTATTCACAGACAGAGAAACTGATGGAACAAGTATCGTTTACCGC -CGTAAAGACGGTAAATATGGCTTGATTCAAACTAGTGAACAATAAATTAAGTTTAAAGCACTTGTGTTTT -TGCACAAGTGCTTTTTTATACTCTAAAAGCAATTTCTAACAATTTCATAGTTCGATAATGTAATTTGTTG -AATGAAACATAGTGACTATGCTAATGTTAATGGATGTATATATTTGAATGTTAAGTTAATAATAGTATGT -CAGTCTATTGTATAGTCCGAGTCGAAAATCGTAAAATATTTATAATATAATTTATTAAGAAGTATAATTG -CGTTTTGAGAATATATTTATTAGTGATAAACTTGTTGACAACAGAATGTGAATGAAGTATGTCATAAATA -TATTTATATTGATTCTACAAATGAGTAAATAAGTATAATTTTCTAACTATAAATGATAAGATATATTGTT -GTAGGCCAAACAGTTTTTTAGCTAAAGGAGCGAACGAAATGGGATTTTTATCAAAAATTCTTGATGGCAA -TAATAAAGAAATTAAACAGTTAGGTAAACTTGCTGATAAAGTAATCGCTTTAGAAGAAAAAACGGCAATT -TTAACTGATGAAGAAATTCGTAATAAAACGAAACAATTCCAAACAGAATTAGCTGACATTGATAATGTCA -AAAAGCAAAATGATTATTTAGATAAAATTTTACCAGAAGCATATGCACTTGTTAGGGAAGGCTCTAAACG -TGTATTCAATATGACACCATATAAAGTTCAAATTATGGGTGGTATTGCAATTCATAAAGGTGATATCGCT -GAGATGAGAACAGGTGAAGGTAAAACGTTAACAGCGACAATGCCAACATACTTAAATGCATTAGCTGGTA -GAGGTGTTCACGTTATTACAGTCAATGAATACTTATCAAGTGTTCAAAGTGAAGAAATGGCTGAGTTATA -TAACTTCTTAGGTTTGACTGTCGGATTAAACTTAAACAGTAAGACGACTGAAGAAAAACGTGAAGCATAT -GCGCAAGACATTACTTACAGTACTAACAATGAGTTAGGTTTTGACTATTTAAGAGATAACATGGTGAATT -ATTCTGAAGATAGAGTAATGCGTCCATTACATTTCGCAATCATTGATGAAGTTGACTCAATTTTAATTGA -TGAGGCACGTACGCCATTAATTATTTCTGGTGAAGCTGAAAAGTCAACGTCACTTTATACACAAGCAAAT -GTTTTTGCAAAAATGTTAAAACAGGACGAAGATTATAAATATGATGAAAAAACAAAATCAGTACATTTAA -CAGAACAAGGTGCGGATAAAGCTGAACGTATGTTCAAAGTTGAAAACTTATATGATGTACAAAATGTTGA -TGTTATTAGTCATATCAACACAGCTTTACGTGCGCACGTTACATTACAACGTGATGTAGACTATATGGTT -GTTGATGGCGAAGTATTAATTGTCGATCAATTTACAGGACGTACAATGCCAGGACGTCGTTTCTCGGAAG -GTTTACACCAAGCTATTGAAGCGAAGGAAGGCGTTCAAATTCAAAATGAATCTAAAACTATGGCGTCTAT -TACATTCCAAAACTATTTCAGAATGTACAATAAACTTGCGGGTATGACAGGTACAGCTAAAACTGAAGAA -GAAGAATTTAGAAATATTTATAACATGACAGTAACTCAAATTCCGACAAATAAACCTGTGCAACGTAACG -ATAAGTCTGATTTAATTTACATTAGCCAAAAAGGTAAATTTGATGCAGTAGTAGAAGATGTTGTAGAAAA -ACACAAGGCAGGGCAACCAGTGCTATTAGGTACTGTTGCAGTTGAGACTTCAGAATATATTTCAAATTTA -CTTAAAAAACGCGGTATCCGTCATGATGTGTTAAATGCGAAAAATCATGAACGTGAAGCTGAAATTGTTG -CAGGCGCTGGACAAAAAGGTGCCGTTACTATTGCCACTAACATGGCTGGTCGTGGTACAGATATTAAATT -AGGTGAAGGCGTAGAGGAATTAGGCGGTTTAGCGGTAATAGGTACAGAACGACATGAATCTCGTCGTATT -GATGACCAGTTACGTGGTCGTTCTGGACGTCAAGGTGATAAAGGGGATAGTCGCTTCTATTTATCATTAC -AAGATGAATTAATGATTCGTTTTGGTTCTGAACGTTTACAGAAAATGATGAGCCGACTAGGTTTAGATGA -CTCTACACCAATTGAATCAAAAATGGTATCAAGAGCTGTAGAATCAGCACAAAAACGTGTAGAAGGTAAT -AACTTCGACGCGCGTAAACGTATCTTAGAGTACGATGAAGTATTACGTAAACAACGTGAAATTATCTATA -ACGAAAGAAATAGTATTATTGATGAAGAAGACAGCTCTCAAGTTGTAGATGCAATGCTACGTTCAACGTT -ACAACGTAGTATCAATTACTATATAAATACAGCAGATGACGAGCCTGAATATCAACCATTCATCGACTAC -ATTAATGACATTTTCTTACAAGAAGGTGACATTACAGAGGATGATATCAAAGGTAAAGATGCTGAAGATA -TTTTCGAAGTCGTTTGGGCTAAGATTGAAGCAGCATATCAAAGTCAAAAAGATATCTTAGAAGAACAAAT -GAATGAGTTTGAGCGTATGATTTTACTTCGTTCTATTGATAGCCATTGGACTGATCATATCGACACAATG -GATCAATTACGTCAAGGTATTCACTTACGTTCTTATGCACAACAAAATCCATTACGAGACTATCAAAATG -AAGGTCATGAATTATTTGATATCATGATGCAAAATATCGAAGAAGATACTTGTAAATTCATTTTAAAATC -TGTAGTACAAGTTGAAGATAATATTGAACGTGAAAAAACAACTGAGTTTGGTGAAGCGAAGCACGTTTCA -GCTGAAGATGGTAAAGAAAAAGTGAAACCGAAACCAATCGTTAAAGGCGATCAAGTTGGTCGTAACGATG -ATTGTCCATGTGGTAGTGGTAAAAAATTCAAAAATTGCCATGGAAAATAAATGATATAAAATAACTCCTT -CCAATTAAACACCTATAGTTTGTGTTATGGGAGGAGTCTTTTTATTTTACAAGCGTTAAATACTTTAAAA -AATGTGAAGAAGTTGTTAAACGTTGTTATGTACTTAGTTTAAAAAAATAGGTTTAAGCATATGTCTATGA -TAAATGTACTGTTTTTTAACAATAAAAGTATAAACTAATTGTCAGTGGGCTTATATTTCTTAACATTGTT -ATTTAACAAAATTATGTTAAAATTTAGCATTATAAAAGATATAAATCAATGACTTGAATTGAATTATAAA -TAGGAGCGAAGGCTATGGAATTATCAGAAATCAAACGAAATATAGATAAGTATAATCAAGATTTAACACA -AATTAGGGGGTCTCTTTGACTTAGAGAACAAAGAAACTAATATTCAAGAATATGAAGAAATGATGGCAGA -ACCTAATTTTTGGGATAACCAAACAAAAGCGCAAGATATTATAGATAAAAATAATGCGTTAAAAGCAATA -GTTAATGGTTATAAAACACTACAAGCAGAAGTAGATGACATGGATGCTACTTGGGATTTATTACAAGAAG -AATTTGATGGAGAAATGAAAGAAGACTTAGAGCAAGAGGTCATTAATTTTAAGGCTAAAGTGGATGAATA -CGAATTGCAATTATTATTAGATGGACCTCACGATGCCAATAACGCAATTCTAGAGTTACATCCTGGTGCA -GGTGGCACGGAATCTCAAGATTGGGCTAATATGCTATTTAGAATGTATCAACGTTATTGTGAGAAGAAAG -GTTTTAAAGTTAAAACTGTTGATTATTTACCTGGAGATGAAGCAGGGATTAAAAGTGTAACATTGCTCAT -CAAAGGGCATAATGCTTATGGTTATTTAAAAGCTGAAAAAGGTGTACACCGACTAGTACGAATTTCTCCA -TTTGATTCATCAGGACGTCGTCATACATCATTTGCATCATGTGACGTGATTCCAGATTTTAATAATGATG -AAATAGAGATTGAAATCAATCCGGATGATATTACAGTTGATACATTCAGAGCTTCTGGTGCAGGTGGTCA -GCATATTAACAAAACTGAATCGGCAATACGAATTACCCATCACCCCTCAGGTATAGTTGTTAATAACCAA -AATGAACGTTCTCAAATTAAAAACCGTGAAGCAGCTATGAAAATGTTAAAGTCTAAATTATATCAATTAA -AATTGGAAGAGCAGGCACGTGAAATGGCTGAAATTCGTGGCGAACAAAAAGAAATCGGATGGGGAAGCCA -AATTAGATCATATGTTTTCCATCCATACTCAATGGTGAAAGATCATCGTACGAACGAAGAAACAGGTAAG -GTTGATGCAGTGATGGATGGAGACATTGGACCATTTATCGAATCATATTTAAGACAGACAATGTCGCACG -ATTAATATATATTTTAAGGGAGTGGGACAGAAATGATAAAGAGCCACTAATGATTTATTATGTAGTGGTT -CTTACACATTAGCCACAGCTAATGTGTACTTAAAAATAGGAATACATGAGTAAAACTCATGCATAAGAAA -TACTAATTTCTATAGAAAAAGTATTTCTTTATCGTCGTCCCACCCCAACTTGCATTGTCTGTAGAAATTG -GGAATCCAATTTCTCTTTGTTGGGGCCCACACCCCAACTTGCATTGCCTGTAGAATTTCTTTTCGAAATT -CTCTTTGTTGGGGCCCCTGACTAGAATTGAAAAAAGCTTGTTACAAGCGCATTTTCGTTCAGTCAACTAC -TGCCAATATAACTTTGTAGAGCATTGAACATTGATTTATGTCTCAGGCTCTTTGGTTTTTTTAAAGGTAG -CTAAATAAATTGTAAATTAGATTTTGGAATATGATTTGTTTATGAATATTTAAGTACAATTCGGTGGTTT -TTGACGAAATATTATCCTTTATAAAAGTTTCGTTTGTTAAACAAATCTATGTACTGTGCATTAAGTAATA -TTACCTTCAACGAATTTCAATGTATTGAATTAAATGTTGAAAACGTTGTCAATCATTTGCAGTGAATACA -TTTTACACCGAGTAGGTAGTTTGCATTCTTTTTTATATTGTTAACCATTTGATTACATCGTTATAACAAT -AGCTTTTGACAAAATGTATTGTGCTATAGTATTTGCATACTTAAAATACTAACAGCAAAGGAATGACAGC -AAGATGAAAAAATCTCTTACAGTGACGGTTTCGTCAGTGTTAGCTTTTTTAGCTTTAAATAATGCAGCAC -ATGCACAACAACATGGCACACAAGTAAAAACACCTGTTCAACATAATTATGTATCAAATGTTCAAGCACA -AACGCAATCACCGACAACTTATACAGTAGTTGCTGGCGATTCATTATATAAGATTGCTTTAGAGCATCAC -TTAACGTTGAATCAATTATATTCATACAATCCTGGTGTAACACCTTTAATTTTTCCTGGTGACGTGATTT -CACTTGTGCCTCAAAATAAAGTGAAACAAACTAAAACGGTTAAATCACCAGTAAGAAAAGCAAGCCAAGC -TAAAAAGGTAGTACAACAACCTGTACAACAAGCGTCTAAAAAAGTAGTAGTTAAGCAAGCACCTAAGCAA -ACAGTAGCTAAGACAGTTAATGTAGCATACAAACCTGCTCAAGTACAAAAATCAGTACCAACTGTACCTG -TTGCACATAACTACAATAAATCAGTTGCTAACAGAGGAAACTTATATGCTTATGGAAACTGCACATATTA -TGCTTTCGATCGTCGTGCACAATTAGGTAGAAGTATAGGAAGTTTATGGGGCAATGCAAATAACTGGAAT -TACGCAGCAAAAGTTGCAGGATTTAAAGTAGATAAAACACCAGAAGTTGGCGCTATTTTCCAAACAGCTG -CTGGACCATATGGACATGTTGGTGTTGTTGAATCTGTAAATCCTAATGGAACAATTACTGTTTCGGAAAT -GAACTATGCTGGATTTAATGTTAAATCTTCAAGAACAATTTTAAATCCAGGAAAATATAATTACATCCAC -TAAGTAACATATCAAGACAAGACTATCCTCTTAACCTGTTTAAGTAACAGGTTGAGAGGATTTTTTGGTA -TCATCTAATCAGACTTATATAAAGAAGATATTTAAATGATATTTAATTGAATGATATGTAAAAAGAAAGT -ATAATTTATGATTAATTAATGGAGGAGGTAATTGAAATGGGTGTACATCAATATTTTAAAAGATTATCAG -ATATGGAAAGACTTATAAGATTACCTGGAAAATTTAAATATTTTGAACACAATGTTGCAGCGCACTCCTT -TAAAGTAACTAAAATTGCTCAATATCTAGCAACAGTTGAAGAATATCATGGACGAAAGATTAATTGGAAA -AGCTTATATGAAAAAGCATTAAATCATGATTTCGCTGAAGTGTTTACTGGTGATATAAAAACACCTGTTA -AATATGCGAGTAGTGAATTAAAAAAATTATTTTCGCAAGTTGAAGAAGAAATGGTAGAGACCTTTATTGA -AGAAGAAATTCCATTACAATATAGAGATGTTTATAAGCAACGACTGCAAGAAGGTAAAGATGATTCATTA -GAAGGCCAAATACTTTCAGTTGCTGATAAAATTGATTTGCTTTATGAAACATTTGGAGAAATACAAAAAC -GTAATCCCGAAGAATTATTTTTCGAAATTTATGAAATGAGTCTAGAAACAATTATTCAATTTGACCATTT -AGCATCTGTACAAGATTTTATTAATAATATCATTCCAGAAATGTTGACTGAAAACTTTATACCTAGAACA -GAATTAAGAGAAACAACTATGAACATTTTAAATAAAGGAAAAGAGGAAAATGAATGATATGGTATTTTAG -CGCAGCATTCTTTCCATGTGTCTTGGTAGTATTGTTTAGTGTAATAACAAGAAGTAAATGGGTCGGTACT -ATTCTGACATTAATTTTAATTGGTGCCTCAATCTATAAAGAGTATTTCCATAACGAGTGGATTATTTTTA -TTGATGTGGTGTCATTATTAGCTGGTTATTTAATTATAGATCAACTCGAATTTCATAAACATCAAGATGA -AGATCGCTAAGATTAACTTTAAAATAATGTTTCAAACAAATTTGTTGAAACAAAATGATGATTAATATAA -TGTGTATTTACATACTAAAAATAACAAGATAAACGATTTGATTTAAGGCAAGCATAGTTAGCACAACTAT -GTTTGTTTTTCTTTGTTCGACATTTTTACGAACAAACGTTTGCTTTTTGTGTGACTACTTTGCTAAAATA -TGTAATGAGAAAGCGAAGAGTTGAGCGGAAATATAAATAATACGTTGAAAGAGGAGGCATATGTGACTAT -GGTTGAACATTATCCTTTTAAAATACATTCTGATTTTGAGCCTCAAGGTGACCAACCGCAAGCAATTAAG -GAAATCGTGGAAGGTATTAAAGCGGGGAAAAGACATCAAACTTTATTAGGTGCAACTGGCACAGGGAAAA -CATTTACGATGAGTAATGTTATTAAAGAAGTTGGGAAACCAACGTTAATTATCGCGCATAACAAAACATT -AGCAGGACAATTATATAGTGAGTTTAAAGAATTTTTTCCTGAAAACAGGGTGGAATACTTTGTAAGTTAC -TATGATTATTATCAACCTGAGGCATACGTACCGTCTACTGACACTTTTATTGAAAAAGATGCCTCAATCA -ATGATGAAATTGATCAACTACGACATTCTGCTACAAGTGCATTATTTGAACGCGATGATGTAATTATTAT -TGCTAGTGTAAGTTGTATATATGGTTTAGGTAATCCTGAAGAATATAAAGATTTAGTAGTAAGTGTTCGA -GTTGGTATGGAAATGGATAGAAGTGAATTACTTAGAAAACTTGTAGATGTGCAATATACACGAAATGACA -TCGATTTCCAACGAGGAACGTTTCGAGTGCGTGGTGATGTTGTTGAAATATTCCCAGCCTCTAAAGAAGA -ACTTTGTATAAGGGTTGAGTTTTTCGGCGATGAGATTGACCGTATTCGAGAAGTTAACTACCTAACTGGT -GAAGTGTTGAAAGAAAGAGAACATTTTGCGATATTCCCAGCTTCTCACTTCGTAACACGTGAAGAAAAGT -TGAAAGTTGCGATTGAACGTATTGAAAAAGAATTGGAAGAACGATTGAAAGAATTACGAGATGAGAATAA -ATTACTAGAAGCGCAAAGGTTAGAACAGCGTACCAACTATGATTTAGAAATGATGCGAGAGATGGGATTC -TGTTCAGGAATTGAAAACTATTCCGTACATTTAACTTTGCGACCACTGGGTTCGACACCATATACTTTAT -TGGATTACTTTGGCGATGATTGGTTAGTAATGATTGATGAATCACATGTGACATTACCGCAAGTTCGAGG -CATGTATAACGGAGACAGAGCGCGTAAACAAGTTTTGGTGGATCATGGATTTAGATTACCGAGTGCATTA -GATAACCGTCCTCTTAAATTTGAAGAATTTGAAGAAAAGACAAAACAACTTGTGTATGTATCTGCAACGC -CTGGACCATACGAAATTGAACATACGGATAAGATGGTTGAACAAATTATTCGTCCTACTGGTTTACTGGA -TCCTAAGATTGAGGTTAGACCTACTGAAAATCAAATTGACGATTTATTAAGTGAAATTCAAACAAGGGTT -GAGCGTAATGAACGCGTACTTGTTACAACGCTCACTAAAAAGATGAGTGAAGATTTAACCACATACATGA -AAGAAGCGGGTATTAAAGTTAATTATCTGCATTCAGAAATCAAGACATTAGAACGAATCGAAATAATTAG -AGACTTACGAATGGGTACATATGATGTTATCGTAGGTATTAATTTATTAAGAGAGGGTATTGATATACCA -GAAGTTTCTCTAGTTGTCATATTAGATGCAGATAAAGAAGGATTTTTACGTTCTAACCGCTCATTAATTC -AAACAATAGGTAGAGCTGCGCGTAACGATAAAGGTGAAGTCATTATGTATGCCGATAAAATGACTGATTC -GATGAAGTATGCAATTGATGAGACACAACGTCGTCGAGAAATACAGATGAAACATAATGAAAAACATGGT -ATTACACCTAAAACAATTAATAAAAAAATACATGATTTAATTAGTGCTACTGTTGAAAATGACGAAAATA -ATGACAAAGCACAAACTGTGATACCTAAGAAGATGACGAAAAAAGAACGTCAAAAGACAATCGACAATAT -AGAAAAAGAAATGAAACAAGCAGCGAAAGATTTAGATTTCGAGAAAGCTACAGAATTAAGAGATATGTTA -TTTGAATTAAAAGCAGAAGGGTGACAAGTAAATGAAAGAACCATCCATAGTAGTAAAAGGTGCTCGTGCG -CATAACTTGAAAGATATTGATATCGAACTACCTAAAAATAAATTAATTGTTATGACAGGATTATCTGGGT -CAGGTAAATCGTCATTAGCATTCGATACTATATATGCTGAAGGACAACGACGTTATGTTGAATCATTAAG -TGCCTATGCGCGTCAATTTTTAGGGCAAATGGACAAACCAGATGTTGATACTATTGAAGGATTATCGCCA -GCAATTTCAATAGATCAAAAAACAACAAGTAAAAATCCAAGGTCAACTGTTGCAACAGTAACAGAAATAT -ATGATTATATACGTTTGTTATATGCACGTGTTGGTAAACCTTACTGTCCAAATCACAATATAGAAATTGA -ATCGCAAACAGTACAACAAATGGTTGACCGCATTATGGAATTAGAGGCACGTACAAAGATTCAATTATTA -GCACCTGTCATCGCTCATCGTAAAGGTAGTCATGAAAAGCTAATCGAAGATATTGGTAAAAAAGGTTATG -TACGTTTAAGAATCGATGGCGAAATTGTTGATGTAAATGATGTACCTACATTAGATAAGAACAAGAATCA -TACAATAGAAGTTGTTGTAGACCGATTAGTTGTTAAAGATGGAATTGAAACACGACTAGCTGACTCTATA -GAAACTGCGTTAGAGCTTTCAGAAGGACAATTAACAGTCGATGTCATTGACGGGGAAGACCTTAAGTTTT -CAGAAAGCCACGCTTGTCCTATATGTGGATTTTCAATCGGAGAATTAGAACCAAGAATGTTTAGCTTTAA -CAGTCCTTTTGGTGCTTGTCCAACATGTGATGGCTTAGGTCAAAAGTTAACAGTCGATGTAGACTTGGTT -GTTCCCGACAAAGATAAGACGCTAAACGAAGGTGCAATAGAACCATGGATACCGACGAGTTCTGATTTTT -ATCCAACATTGTTAAAACGTGTTTGTGAAGTTTATAAAATCAATATGGATAAACCTTTTAAAAAGTTAAC -AGAACGTCAACGTGATATTTTATTGTATGGTTCGGGTGACAAAGAAATTGAATTTACATTTACACAACGT -CAGGGTGGTACTAGAAAACGAACAATGGTTTTCGAGGGTGTAGTTCCTAATATAAGTAGACGATTCCATG -AATCTCCTTCAGAATATACACGTGAAATGATGAGTAAATATATGACTGAACTACCTTGCGAAACTTGTCA -TGGAAAGCGATTGAGTCGTGAAGCGTTATCTGTTTATGTAGGTGGTTTAAATATTGGTGAAGTAGTCGAA -TACTCAATTAGTCAAGCGCTGAACTATTATAAAAACATTAATTTGTCAGAACAAGATCAAGCGATTGCAA -ATCAAATATTGAAAGAAATTATTTCCCGACTCACTTTTTTAAATAATGTGGGACTTGAATATTTAACGCT -AAACAGAGCTTCAGGTACACTTTCAGGTGGTGAAGCACAACGTATTCGATTGGCAACGCAAATTGGGTCG -CGTTTGACTGGTGTCTTATATGTATTAGATGAGCCATCAATTGGACTGCATCAAAGAGATAATGATCGAT -TAATTAATACACTTAAAGAAATGAGAGATTTAGGAAATACTTTAATTGTAGTTGAACACGATGATGATAC -AATGCGTGCGGCTGATTACTTAGTGGACATAGGGCCTGGTGCTGGTGAGCATGGAGGACAGATTGTGTCT -AGTGGTACACCTCAAAAGGTAATGAAAGATAAAAAATCTTTAACAGGACAATACTTGAGTGGTAAGAAAC -GTATTGAAGTACCTGAATATCGCAGACCGGCTTCAGATCGTAAAATTTCTATACGTGGAGCTAGAAGTAA -CAACCTTAAAGGGGTTGATGTGGACATACCACTTTCAATCATGACGGTCGTTACAGGTGTATCAGGTTCT -GGTAAAAGCTCATTAGTAAATGAAGTATTATACAAATCATTAGCTCAAAAAATCAATAAATCTAAAGTAA -AGCCAGGATTGTACGATAAAATTGAAGGTATTGATCAACTTGATAAAATTATTGATATTGATCAATCACC -GATAGGTAGAACGCCACGCTCTAATCCAGCAACATATACTGGCGTGTTTGATGATATACGTGATGTGTTT -GCGCAAACAAATGAAGCTAAAATTCGAGGATATCAAAAAGGTCGTTTTAGTTTTAATGTAAAAGGTGGAC -GCTGTGAAGCTTGTAAAGGTGACGGTATTATTAAAATTGAAATGCATTTTTTACCTGATGTTTATGTTCC -TTGTGAAGTGTGTGATGGTAAACGATATAATCGCGAGACACTAGAGGTTACTTACAAAGGTAAAAATATT -GCTGACATTTTAGAAATGACTGTTGAAGAAGCAACACAATTTTTTGAAAATATTCCTAAGATTAAGCGCA -AGCTACAAACACTAGTTGATGTTGGTCTTGGATACGTCACATTAGGTCAACAAGCTACAACATTATCAGG -TGGTGAGGCTCAACGTGTGAAACTTGCATCTGAACTTCATAAACGTTCAACTGGTAAATCTATTTATATC -CTAGACGAACCGACAACAGGGTTACATGTTGACGATATTAGTAGATTATTAAAAGTATTAAACCGATTAG -TTGAAAATGGTGACACTGTTGTAATTATTGAACATAACCTAGATGTTATCAAAACAGCAGACTATATTAT -AGACTTAGGTCCTGAAGGTGGTAGTGGCGGTGGTACTATTGTTGCGACTGGAACACCCGAAGATATTGCT -CAGACAAAGTCATCATATACAGGAAAGTATTTAAAAGAAGTACTTGAACGAGATAAACAAAATACTGAAG -ATAAATAAGATTAAAAGAAGTGAAGGATGTTGTAAATTTATCCTTCACTTCTTTTTATTAATTTAGTAAT -GAATAGTAGAAAGAAAAGATGCGTAAAAAGAATTATGTTAAGATAAGGTCAATCTAGAGTAGCTAAACAT -AAATCGAAACTGGGAGCGGGACAGAAATGATAAAGAATCACTAATGATTTATTATGTAGTGGTTCTTTGT -CATTAGCCACAGCTATTGTGTACTTAAAAATAGGAATGCATGAGTGCAACTCATGCATAAGAAATACTAA -TTTCTAAAGAAAAAGTATCTCTTTATGTTGGGGGCCCGCCCCAACTTGCATTGTCTGTCGAAATTGAGAA -TCCAATTTCTCTGTGTTGGGGCCCCGCCAACTAATTCGAATTTATCATTTTAGAGCTTAGGTCATTGATT -TATGGCTCGGACTTTTATGGCGATATGAAACATGTAAATTAAGCAAGCAATAAATTAATGATTGATATTG -ACTTGTAAAATAATAACAATAATGAACAATTAATATTTATTTTAGCTTTTCAATGTAGATTGGTGTTATA -TTTTTGATATGATAAGAAGAGATGTAAGAGTAGGGATAAATACAATTGAGGTGAACCCATGTTAACGACA -GAAAAACTAGTTGAAACATTAAAGTTAGATTTAATCGCTGGTGAAGAAGGGCTATCGAAGCCAATTAAAA -ATGCTGATATATCAAGACCGGGCTTAGAGATGGCAGGTTATTTTTCACATTATGCGTCAGATAGAATACA -ACTATTAGGAACAACGGAACTATCGTTTTACAATTTATTACCAGATAAGGATCGCGCAGGTCGTATGCGT -AAACTATGCAGACCAGAAACGCCTGCAATTATTGTGACACGTGGATTGCAGCCACCAGAAGAATTAGTTG -AAGCTGCAAAAGAATTAAATACGCCACTTATAGTTGCTAAAGATGCCACTACAAGTTTAATGAGTCGCTT -AACGACGTTTTTAGAGCATGCACTTGCAAAGACGACATCTTTACATGGAGTTTTAGTAGATGTTTACGGT -GTTGGTGTACTAATTACCGGTGATTCAGGAATAGGTAAAAGTGAGACTGCGTTAGAATTAGTGAAGCGTG -GGCATAGATTAGTAGCAGATGATAATGTAGAAATACGTCAAATTAATAAAGATGAACTAATAGGGAAACC -ACCAAAGTTAATAGAACATCTATTAGAAATACGTGGACTAGGTATTATCAATGTTATGACTTTATTTGGC -GCGGGTTCAATATTAACTGAAAAACGAATTAGATTAAATATTAATTTGGAAAACTGGAACAAGCAAAAGT -TATATGACCGCGTAGGTCTTAATGAAGAGACGTTAAGTATTTTAGATACTGAAATAACTAAAAAAACAAT -ACCTGTAAGACCTGGTAGAAATGTTGCGGTAATTATTGAGGTCGCTGCAATGAACTATCGATTAAATATC -ATGGGCATTAACACTGCCGAAGAATTTAGTGAAAGATTAAATGAAGAAATTATCAAGAACAGTCATAAGA -GTGAGGAGTAGGTTGAATGGGTGGTATTGTATTTAACTATATAGATCCTGTGGCATTTAACTTAGGACCA -CTAAGTGTACGATGGTATGGAATTATCATTGCTGTCGGAATACTACTTGGTTACTTTGTTGCACAACGTG -CACTAGTTAAAGCAGGATTACATAAAGATACTTTAGTAGATATTATTTTTTATAGTGCACTATTTGGATT -TATCGCGGCACGAATCTATTTTGTAATTTTCCAATGGCCATATTACGCGGAAAATCCAGGTGAAATTATT -AAAATATGGCATGGTGGTATAGCAATACATGGCGGTTTAATAGGTGGCTTTATTGCTGGTGTTATTGTAT -GTAAAGTGAAAAATTTAAACCCATTTCAAATTGGTGATATCGTTGCGCCAAGTATAATTTTAGCGCAAGG -AATTGGACGCTGGGGTAACTTTATGAATCACGAGGCACATGGTGGACCTGTGTCACGCGCTTTTTTAGAA -CAATTACATTTGCCTAATTTTATAATAGAAAATATGTATATTAACGGCCAATATTATCATCCAACATTCT -TATATGAATCCATTTGGGATGTCGCTGGATTTATTATCTTAGTTAATATTCGTAAACATTTAAAATTAGG -AGAAACATTCTTTTTATATTTAACTTGGTATTCAATTGGTCGATTCTTTATAGAAGGATTACGTACAGAT -AGCTTAATGCTCACAAGTAATATTAGAGTTGCACAATTAGTATCAATTCTTTTAATTTTAATAAGTATAA -GTTTAATTGTATATAGAAGGATTAAGTATAATCCACCGTTGTATAGCAAAGTTGGGGCGCTTCCATGGCC -AACAAGAAAAGTGAAGTAGTGATATTTTGAGAAAATTTTTATCAAAAGAATATCATCGTACAAACCCTTT -ATGGCATGTATACCGTCTTGTTAAATTTTCGAAAGTTTTTAAGAATGTAATCATCATTGAATTTTCGAAA -TTTATTCCAAGTATGGTACTGAAAAGACATATATATAAACAAATTTTAAATATTAATATCGGTAATCAAT -CGTCGATAGCTTATAAAGTAATGTTAGATATTTTTTATCCAGAACTGATTACGATTGGTAGTAACAGTGT -TATTGGTTACAATGTAACAATTTTGACGCATGAAGCATTAGTTGATGAATTTCGTTATGGACCAGTGACG -ATAGGATCTAACACTTTGATTGGTGCAAATGCTACCATTTTACCCGGTATAACGATTGGTGACAATGTAA -AAGTTGCAGCTGGTACGGTTGTTTCAAAAGATATACCGGATAATGGATTTGCATATGGCAACCCTATGTA -TATAAAAATGATTAGGAGGTGACAATTTTATGGCGCAAAAGAATAATAATGTAATTCCAATGACTTTTGA -TGATGCATTTTATCGTAAAATGGCTAATCAGAAGTTTAAACAAAGAGAATATAAACGAGCTGCTGAATAC -TTTGAAAAAGTGTTAGAATTGTCACCTGATGATCTGGAAATTCAAATTGATTATGCACAATGTCTAGTGC -AACTTGGTATTGCTAAAAAAGCAGAACATTTATTTTATGACAATATTATTTATAATAGGCATCTAGAAGA -TAGCTTTTATGAATTGAGTCAGCTCAACATTGAAGTTAACGAACCAAACAAGGCATTCTTGTTTGGTATT -AATTATGTTATTGTTAGCGACGACCAAGATTATAGAGATGAATTAGATCAAATGTTTGATGTGAAATATC -AAAGTGAAGAACAAATTGAACTTGAAGCTCAATTGTTTGTAGTTCAAATACTATTCCAATATCTTTTTTC -TCAAGGTCGATTAAAAGATGCAAAGAATTATGTCTTACATCAACCACAAGAAGTTCAAGATCATCGTGTC -GTACGTAATTTACTGGCAATGTGTTATTTATATCTCGGCGAATATGATACGGCTAAAGCATTGTACGAAG -CACTATTAAAAGAGGATAGTACAGATATATATGCATTATGCCATTATACTTTGCTACTTTATAACACTAA -GGAAAATGAACAATACCAAAAGTATTTAAAAATATTAAATAAAGTTGTACCTATGAATGACGATGAAAGT -TTTAAATTAGGTATTGTTTTAAGTTATTTAAAGCAGTATCGTGCTTCACAACAATTGTTGTACCCTTTAT -ATAAAAAAGGGAAATTTTTATCAATTCAAATGTACAATGCTTTAGCATATAATTATTATTATTTAGGTGA -AGAAGACGAAAGTCATTACTACTGGGATAAATTGAAGCAAATTTCTAAAGTGGAAATTGGACATGCTCCT -TGGGTAATTGAAAATAGCAAAGAAGTTTTTGACCAACATATTTTGCCGTTACTTCAAAGTGATGACAGTC -ATTATCGTTTATATGGTATTTTTTTATTGGATCAATTAAATGGTAAAGAAATTGTGATGACGGAAAGTAT -TTGGCAGGTTCTGGAAAATCTAAATAATTATGAGAAATTGTATTTAACGTATTTAGTTCAAGGTTTAACG -CTCAATAAATTAGACTTCATTCATCGCGGCTTGTTAACGCTTTACCATAATGAATTATTTGTAAGTGAAA -ATGATTTAATGGTTGCATGGATTAATCAAGGTGAACTCATAATTGCTGAAAAAGTAGATTTAACTGATGT -TGAGCCATATATCGGTGCGTTTATTTATTTGTATTTTAAAAATCAACCTCGAAACGTTACAAAGAAGCAA -ATTACAACATGGTTAGGCATAACACAATATAAACTGAACAAAATGATTGAATTTCTCTTGAGCATATAGA -TTTATGAAAAGTTAGATTTATTATATAATGCGCATAATGATTAATAATGAGGAGGCGTTAATAAAATGAC -TGAAATAGATTTTGATATAGCAATTATCGGTGCAGGTCCAGCTGGTATGACTGCTGCAGTATACGCATCA -CGTGCTAATTTAAAAACAGTTATGATTGAAAGAGGTATTCCAGGCGGTCAAATGGCTAATACAGAAGAAG -TAGAGAACTTCCCTGGTTTCGAAATGATTACAGGTCCAGATTTATCTACAAAAATGTTTGAACACGCTAA -AAAGTTTGGTGCAGTTTATCAATATGGAGATATTAAATCTGTAGAAGATAAAGGCGAATATAAAGTGATT -AACTTTGGTAACAAAGAATTAACAGCTAAAGCGGTCATTATTGCTACAGGTGCAGAATACAAGAAAATTG -GTGTTCCGGGTGAACAAGAACTTGGTGGACGCGGTGTAAGTTATTGTGCAGTATGTGATGGTGCATTCTT -TAAAAATAAACGCCTATTCGTTATCGGTGGTGGTGACTCAGCAGTAGAAGAGGGAACATTCTTAACTAAA -TTTGCTGACAAAGTAACAATCGTTCACCGTCGTGATGAGTTACGTGCACAACGTATTTTACAAGATAGAG -CATTCAAAAATGATAAAATAGACTTTATTTGGAGCCATACTTTGAAATCAATTAATGAAAAAGACGGCAA -AGTGGGTTCTGTGACATTAACGTCTACAAAAGATGGTTCAGAAGAAACACACGAGGCTGATGGTGTATTC -ATCTATATTGGTATGAAACCATTAACAGCACCATTTAAAGACTTAGGTATTACAAATGATGTTGGTTATA -TTGTGACAAAAGATGATATGACAACATCAGCACCAGGTATTTTTGCAGCAGGAGATGTTCGCGACAAAGG -TTTACGCCAAATTGTCACTGCTACTGGCGATGGTAGTATTGCAGCACAAAGTGCAGCGGAATATATTGAA -CATTTAAACGATCAAGCTTAAATCGAAGTCGAATTAAGATGTTGCGTTGTAAATTATTTGGATATTTATT -TTAATAGTGACATCACATTGTTAAAATAATGTCTTACTTTTAAATTAAAGCAAATTATATAGAAAACTAG -AACTTAGTACGTATCATTTGTGCGTTTCAATGAGTTCTAGTTTTTTTATATGTTATATTAAACTTATAAC -TTTATGGGAGTGGGACAGAAATGATAAAGAGCCACTAATGATTTATTATGTAGTGGTTCTTACACATTAG -CCACAGCTAATGTGTACTTAAAAATAGGAATACATGAGTAAAACTCATGCATAAGAAATACTAATTTCTA -TAGAAAAAGTATTTCTTTATCGTTGTCCCGCCCCAACTTGCACATTATTGTAAGCTGGCGGAAAGTCAGC -TTCTGTGTTGGGGCCCACCCCCCAACTCGCATTGCCTGTAGAATTTCTTTTCGAAATTCTCTGTGTTGGG -GCCCCACCCCAACTTGCACATTATTGTAAGCTGACTTTACGTCAGCTTCTTTGTTGGGGCCCCTGACTAT -AATTGAAAAAAGCTTGTTGCAAGCGCATTTTCATTCAGTCAACTACTAGCAATATAATATTATAGACCCT -AGGACATTGATTTATGTCCCAATCTCCTTTTAAATGATGTATATTTTTAGAAATTTAATCTAGACATAGT -TTAAAATAAATATAAAACATCGTTGCTTAATTTTGTCATAGAACATTTAAATTAACATCATGAAATTCGT -TTTGGCGGTGAAAAAATAATGGATAATAATGAAAAAGAAAAAAGTAAAAGTGAATTATTAGTTGTCACAG -GTTTATCTGGCGCAGGTAAATCTTTGGTTATTCAATGTTTAGAAGACATGGGATATTTTTGTGTAGATAA -TCTACCACCAGTGTTATTGCCTAAATTTGTAGAGTTGATGGAACAAGGAAATCCATCCTTAAGAAAAGTG -GCAATTGCAATTGATTTAAGAGGTAAGGAACTATTTAATTCATTAGTTGCAGTAGTGGATAAAGTCAAAA -GTGAAAGTGACGTCATCATTGATGTTATGTTTTTAGAAGCTAGTACTGAAAAATTAATTTCAAGATATAA -GGAAACGCGTCGTGCACATCCTTTGATGGAACAAGGTAAAAAATCGTTAATCAATGCAATTAATGATGAG -CGAGAGCATTTGTCTCAAATTAGAAGTATAGCTAATTTTGTTATAGATACTACAAAGTTATCACCTAAAG -AATTAAAAGAACGCATTCGTCGATACTATGAAGATGAAGAGTTTGAAACTTTTACAATTAATGTCACAAG -TTTCGGTTTTAAACATGGGATTCAGATGGATGCAGATTTAGTATTTGATGTACGATTTTTACCAAATCCA -TATTATGTAGTAGATTTAAGACCTTTAACAGGATTAGATAAAGACGTTTATAATTATGTTATGAAATGGA -AAGAGACAGAGATTTTCTTTGAAAAATTAACTGATTTGTTAGATTTTATGATACCTGGGTATAAAAAAGA -AGGGAAATCTCAATTAGTAATTGCCATCGGTTGTACGGGTGGACAACATAGATCTGTAGCATTAGCAGAA -CGACTAGGTAATTATCTAAATGAAGTATTTGAATATAATGTTTATGTGCATCATAGGGACGCACATATTG -AAAGTGGCGAGAAAAAATGAGACAAATAAAAGTTGTACTTATCGGTGGTGGCACTGGCTTATCAGTTATG -GCTAGGGGATTAAGAGAATTCCCAATTGATATTACAGCGATTGTAACAGTTGCTGATAATGGTGGGAGTA -CAGGGAAAATCAGAGATGAAATGGATATACCAGCACCAGGAGACATCAGAAATGTGATTGCAGCTTTAAG -TGATTCTGAGTCAGTTTTAAGCCAACTTTTTCAGTATCGTTTTGAAGAAAATCAAATTAGCGGTCACTCA -TTAGGTAATTTATTAATCGCAGGTATGACTAATATTACGAATGATTTCGGACATGCCATTAAAGCATTAA -GTAAAATTTTAAATATTAAAGGTAGAGTCATTCCATCTACAAATACAAGTGTGCAATTAAATGCTGTTAT -GGAAGATGGAGAAATTGTTTTTGGAGAAACAAATATTCCTAAAAAACATAAAAAAATTGATCGTGTGTTT -TTAGAACCTAACGATGTGCAACCAATGGAAGAAGCAATCGATGCTTTAAGGGAAGCAGATTTAATCGTTC -TTGGACCAGGGTCATTATATACGAGCGTTATTTCTAACTTATGTGTCAATGGTATTTCAGATGCATTAAT -TCATTCTGATGCGCCTAAGCTATATGTATCTAATGTGATGACGCAACCTGGGGAAACAGATGGTTATAGC -GTGAAAGATCATATCGACGCGATTCATAGACAAGCCGGACAACCGTTTATTGATTATGTCATTTGTAGTA -CACAAACTTTCAATGCTCAAGTTTTGAAAAAATATGAAGAAAAACATTCTAAACCAGTTGAAGTTAATAA -GGCTGAACTAGAAAAAGAAAGCATAAATGTAAAAACATCTTCTAATTTAGTTGAAATTTCTGAAAATCAT -TTAGTAAGACATAATACTAAAGTGTTATCGACAATGATTTATGACATAGCTTTAGAATTAATTAGTACTA -TTCCTTTCGTACCAAGTGATAAACGTAAATAATATAGAACGTAATCATATTATGATATGATAATAGAGCT -GTATAAAAATGAAAATAGACAGTGGTTCTAAGGTGAATCATGTTTTAAATAAGAAAGGAATGACTGTACG -ATGAGCTTTGCATCAGAAATGAAAAATGAATTAACTAGAATAGACGTCGATGAAATGAATGCAAAAGCAG -AGCTCAGTGCACTGATTCGAATGAATGGTGCACTTAGTCTTTCAAATCAACAATTTGTTATAAATGTTCA -AACGGAAAATGCAACAACGGCAAGACGTATTTATTCGTTGATTAAACGTGTCTTTAATGTGGAAGTTGAA -ATATTAGTCCGTAAAAAAATGAAACTTAAAAAAAATAATATTTATATTTGTCGTACAAAGATGAAAGCGA -AAGAAATTCTTGATGAATTAGGAATTTTAAAAGACGGCATTTTTACGCATGAAATTGATCATTCAATGAT -TCAAGATGACGAAATGAGACGTAGTTACTTGAGAGGAGCTTTTCTGGCAGGTGGCTCAGTGAATAACCCT -GAAACATCTTCATACCATTTGGAAATTTTTTCTCAAAATGAGAGTCATGCAGAAGGCTTAACGAAACTAA -TGAATAGTTATGAGTTGAATGCCAAACATTTAGAGCGAAAAAAAGGAAGTATTACGTATTTAAAAGAAGC -GGAAAAGATTTCGGATTTTCTTAGTTTGATAGGTGGCTATCAAGCGTTATTAAAATTTGAAGACGTACGT -ATTGTAAGAGATATGCGTAATTCTGTTAACCGACTCGTTAATTGTGAAACGGCAAATCTAAATAAAACAG -TTAGTGCTGCGATGAAACAAGTTGAGAGCATTAAATTGATTGATAAAGAAATTGGTATTGAAAATTTACC -AGACAGGTTGAGAGAGATTGCTAGAATTCGAGTAGAACATCAAGAAATTTCGTTGAAAGAGCTTGGAGAA -ATGGTATCAACTGGTCCAATTTCAAAATCAGGTGTAAATCATCGATTAAGAAAACTTAATGATTTAGCCG -ATAAGATTAGAAATGGTGAACAAATAGAATTATAAGTAAGAAGGTGTTTTTGGTATTGAATTATCAAAAA -TACCTTTTTTATGATTAAAAAGTGTTTAATGAATAATAGTCGACTAACCATTAAATTAAGCTGGGAAGTT -TAATGAAGGAAATTCAATAACCAAGCGTTACCTAATTTTCTCATTAAGTAGCATCATATATATCAATTTG -GTCATAAGAAAATATGAATGTGATAATTAATTGAGTCCCTGAAAGTCCCTGATCATAGACAAAAAATCAA -CATAAAAAGAATCCCGACATTGCGGGATTCTCTGTATTGAAAAGTATTGTATTTTATTAAAATGCCTCCT -TGAAGGGAATCGAACCCCTATCTTAAGAACCGGAATCTTACGTGTTATCCATTACACCACAAGGAGTAAA -TGTGTTAATCAAATCACTGTACTATGAGAAGTAAAATAAGTACAATCTAAAATAGATATTATCAGTTTAC -AAAGGAAAGAGACAAGCGTCAAACAATGTAACTATTTAAAGTCAAAGTGTTTGACCAAATTTGACTTAAT -ATGTAAAATAATGAGTAACAGTTATTACAAGGAGGAAATATAGATGAATTTAATTCCTACAGTTATTGAA -ACAACAAATCGCGGTGAACGTGCATACGATATATACTCACGTTTATTAAAAGACCGTATTATTATGTTAG -GTTCACAAATTGATGACAACGTAGCAAATTCAATCGTATCACAGTTATTATTCTTACAAGCACAAGACTC -AGAGAAAGATATTTATTTATACATTAATTCACCCGGTGGAAGTGTAACAGCTGGTTTTGCGATTTATGAT -ACAATTCAACACATTAAACCTGATGTTCAAACAATTTGTATCGGTATGGCTGCATCAATGGGATCATTCT -TATTAGCAGCTGGTGCTAAAGGTAAACGTTTTGCGTTACCAAATGCAGAAGTAATGATTCACCAACCATT -AGGTGGTGCTCAAGGACAAGCAACTGAAATTGAAATTGCTGCAAATCACATTTTAAAAACACGTGAAAAA -TTAAATCGCATTTTATCAGAGCGTACTGGTCAAAGTATTGAAAAAATACAAAAAGACACAGATCGTGATA -ACTTCTTAACTGCAGAAGAAGCTAAAGAATATGGCTTAATTGATGAAGTGATGGTACCTGAAACAAAATA -ATTCAAAGTAAAGAGTAGACTAAGCAGTCTGCTCTTTTTGTATGATTAAACCAATTTATAAATAAATAGT -TCAAAATATTTTGAGTAAAAGCAAAAAATAACGGGTAAAAATATTTATAAGAATTTAATTAGACACGTTA -CGTCTGCGGTTCTACAATCTAAAAAATATAAAGGATGATTTTATGAAAGGCATTGAATTACTTAACAATC -CATTTTTAAACAAAGGTACAGCTTTTACTAACGAAGAAAGAAAACAGTTAGGGCTTGAAGGATTATTACC -TGCGAATGTTCGAACTTTAGAACAACAAGCAGAACAATGTTATGAACAATTCAAGGCGAAACAAACCGAT -TTTGAGAAACGTTTATTTTTAATGGCAATTTTTAATCGTAATCGTACATTGTTTTACAAATTGACTTCTG -AGCATTTAGTTGAATTTATGCCAATTATTTATGACCCTGTTATTGCACAATCGATTGAACAATATAATGA -GAATTTCAGTAGACCCCAAGATGCAGTATTTTTATCTGTTGATAGACAAGACCAAATTGAACAAGAATTG -CGCAACGTTGCAAATGGCAGAGATATTCGATTAATCGTAGTAACAGATGCGGAAGGTATATTAGGTATCG -GCGATTGGGGCGTTGATGGTGTAGATATTGCGATAGGAAAATTAATAGTATATACAGCGGCAGCTGGAAT -AAATCCCGCACAAGTATTACCTGTATCTTTAGATGTAGGTACTAATAATGAACAATTACTGAATGATGAA -CTTTATTTAGGAAATCGTCATAAACGTGTCGATGATGAGACATATTACACATTTGTAGATAAATTTGTGA -GTGCAGTGCGTAAAGAATATCCTAATGCACTATTACATTGGGAAGATTTTGGTAGAGGGCATGCTAAAAA -TATTTTAGATAAATATGAAGATACTTTACCAACATTTAATGATGATATTCAAGGTACAGGTATAGTTACA -TTAGCCGGCGTACTAGGTGCATTAAATATTTCTAAAGTAGACTATACGAATCAGACGTTCTTAGTTTATG -GTGGTGGTACAGCTGGTATGGGTATTACCAATATTTTAAAAGATGAACTAATTAAACAGGATGTTTCAGA -AGATAAAGCAAATCAGCATTTCTATATTATGGATAAACAAGGATTGTTGTTTGATGATATGGATGACTTA -ACTGAAGCTCAACAAGTATTTGCTAAAAATAGGAATGAATTTTCAAATACAGTAAACTGGAAAAATTTAA -AAGAAGTAATTGAAAATATTAAGCCTACTGTTTTAATCGGTACATCAACTCAAACAGGTGCATTTACAGA -AGATGCAGTAAAAGAGATGTTAAAACATACAGAACGTCCAATGATTTTCCCATTGTCTAATCCTACAAAA -TTAGCAGAAGCAACTGCACAAGATTTATTAAAATGGACTAATGGAAAAGCATTAATTGGAACTGGTATCC -CATATAATGACATTGAATACAATGGTGTGAATTACAGTATTGGTCAAGCAAATAATGCATTGATGTATCC -TGGTTTAGGTTTGGGTCTTATTGCGTCAAAAGCGAAGAAAGTAAATCAACAGATTCTATCAGCTGCGAGT -CATGCACTTGGTGGCATGGTCAATCCAGATGAACCAGGAGCTGCAGTCTTACCACCTGTTGAGAAAATAC -ATCAATGTTCTCGTGCCATAGCCAAAGCGGTTGCACAAAGTGTCATTGATCAAGGATTAAACGCTGAAAC -TATTGATGATATTGATGAAGCAATTGAAGCTGAAATTTGGTATCCTGAATACAAATCATACATTTAATTT -TATAAAGTAGTAAAAGGTCATTTGAACATTTTGTTTCAAGTGGCCTTTTCGTATTTACTTTAAAATTAAT -CAACCAATATTCATAAGTGACTTTAAAGTTATATCTATATGTAATATCAGCAAATAGAAAAGTCTAGAGA -GATTTAACGAATTATCTCCTAGACTTTTTGCTTGAAGTGGAGTAGGAGAGATCAATGTCCCACTCACTTA -CTAATTAAATCTTCAAGTGCCATTTTTAAATTACTATATTTAAATTGGAATCCCAATGCTTGAATTTTAT -TAGGTAATACTTTTTGAGTATCCAATACTACTGTTGACATTTGACCAAGTATGAGACGCATTGCAAGACT -TGGTACCCAAGTTTCATGAGGCTTATGCATAGCTCTTGCTAAAGTGTAGCCAAATAAATTTTGACGCTCA -GGTATAGGTGCAGTTAAATTAAACGGACCACTAGCTGACTCGTTATTTATTAAAAATAAAATAGCTTGAA -TTAAATCATTGATATGAATCCATGAATACCATTGTTGACCAGAACCTAATTTACCACCAATGTAATATTC -GTATGGTAGTTTCATTGTTTGTAACGCACCGCCTTCATTCGATAAAATTATACCGAAACGACCGATGACA -ACTCGTGTACCTAATTGTTCAAATTGTTGTGCGAAACGTTCCCATTGATACACAATATCTGATAAGAAAT -CAAATGGTAAAGTTTTATAAACTTCTGTGTAACTCATAAATAAATCAGGAGGATAGTAACCAGTGGCACT -AGCATTAAATAAAACTTTAGGTGCTTTATTACGTGATTTAAACAATTCATATAAAGCTTGCGTAGATTGA -ATTCTACTTAGCATTAGCGTTTGTTTATATTCCGGTGTCCATCGTTTATTCAATGTAGCACCTGCTAAGT -TGATGACCACATCGATATTTTGAGGAACTTTGTGTTCCCACCCAGATTTAGCCCAGTTGACATATGAAAT -TTTCTTATTATTTGAAATTTGGTCGTGTCGCGTTAATATCGTGATATGTGAATCTGATTTTTTGATTTCA -TTAACTAATTGAGATCCAACCATACCAGTCCCACCAGTAATTAAGTATTGTTTCATTATCATTCACCCCA -TGTAATTTTGTATTTAGTTACTATTTAATAATCATTATTGTTGTTCAAAGGTTATACATTATTTAGACAA -TAATATGTCAATAACTTTTTTTGAATTGTATTTTAATAAAAATGATATAAGTTATAATAAAGGTGTACCT -TCGATAACGAATAAACATCTCTTAAAAGTATGTGTAAAACGCTGCATGATACAAACGAAGGTAAAAATTT -GACTCCCTTTAGTAGTGGACCCGTACGTTTATCGTGCGGGTCGTTTTTATTTATATCTTATTCCCGTTAT -ACATCAATTCAAAGCATTAATTTTTTAAACAAATTTAAGAATAGATAGTAATATAACAATCTAAACATAA -AAACTTTTAACACAACACTTAAACTAATGCTTTAATTTTCAATACGTAGCTATAATTTGTTGTAAAATCA -AAAAGGTTAATATGTTAATTTTCAAAAAAAGGCTCAAAATATGTTTGATTTAGTTATTAAATGTTAAGAT -ATATAAGACTACTATTTCTTTGTAAAAATGAATCCGATTTACGAGTGAGTAATAGTGAATATAGTTTTAA -GTTGAAGAAGGCAAAAAGAGTAAATGTTTATTAATGTTTGTAGAAACAAGGTAAGCAAATTAGTTGTGAA -AATGTTAATAGTTACGTGATAATTTCTATATTTAAATTAGTTTGAAGTGAGGGAGAGTATGTCGAATCAA -AATTACGACTACAATAAAAATGAAGATGGAAGTAAGAAGAAAATGAGTACAACAGCGAAAGTAGTTAGCA -TTGCGACGGTATTGCTATTACTCGGAGGATTAGTATTTGCAATTTTTGCATATGTAGATCATTCGAATAA -AGCTAAAGAACGTATGTTGAACGAACAAAAGCAGGAACAAAAAGAAAAGCGTCAAAAAGAAAATGCAGAA -AAAGAGAGAAAGAAAAAGCAACAAGAGGAAAAAGAGCAGAATGAGCTAGATTCACAAGCAAACCAATATC -AGCAATTGCCACAGCAGAATCAATATCAATATGTGCCACCTCAGCAACAAGCACCTACAAAGCAACGTCC -TGCTAAAGAAGAGAATGATGATAAAGCATCAAAGGATGAGTCGAAAGATAAGGATGACAAAGCATCTCAA -GATAAATCAGATGATAATCAGAAGAAAACTGATGATAATAAACAACCAGCTCAGCCTAAACCACAGCCGC -AACAACCAACACCAAAGCCAAATAATAATCAACAAAACAATCAATCAAATCAACAAGCGAAACCACAAGC -ACCACAACAAAATAGCCAATCAACAACAAATAAACAAAATAATGCTAATGATAAGTAGTATTTAGTCAAA -CAAAAATGAACCAGTATGACAGACAACACAATTAATTAGGTTGTCTCGAATATTGGTTCTTATTTTTATA -ATTGTTAATTAGGGGAGAGATGATACTTAAATAGTTAGTTGTTTATTTTGCAGATAGTGAAATTTATTTT -TTCAGTCAACTACTGGCAATGTAACTTTTCAGATTCTAGAGCATTGATTTATGTCCTAGTCTCAAATAAT -AAGCAAATGATTAGAGAATCAGTATAAGGGTATACATTTGACTACAGCGAATAAAATAAAACGTTTTGTT -GTATAATAAATCGAAAATATATTGCAAGCGCTTTATCAAATTATTTAGAAAATTTAAGTTTTATGCTTGC -AATTTTTGAAATAGAATAGTACTATTGCAAGTGTAAAGAGGTTAATTTTTGTCCCACGTGGGACTTAAAA -AGGCAACCACTGGTTGTGACATATCCTTATTTACATTTATAAATATAAGGAGGAGGTAGTAGTGAAAGAC -TTATTGCAAGCACAGCAAAAGCTTATACCGGATCTCATAGATAAAATGTATAAACGTTTTTCTATTCTTA -CTACTATCTCAAAAAATCAGCCTGTCGGACGTCGAAGTTTAAGCGAACATATGGATATGACTGAACGTGT -ACTGCGTTCTGAAACAGATATGCTTAAGAAACAAGATTTGATAAAAGTTAAGCCTACCGGAATGGAAATT -ACAGCTGAAGGTGAGCAACTGATTTCGCAATTGAAAGATTACTTTGATATCTATGCAGATGACAATCGTC -TGTCAGAAGGTATTAAGAATAAATTTCAAATTAAGGAAGTTCATGTTGTTCCTGGTGATGCTGATAATAG -CCAATCTGTTAAAACAGAATTAGGTAGGCAAGCAGGTCAATTACTTGAAGGCATATTACAAGAAGATGCG -ATAGTTGCTGTAACTGGCGGATCCACGATGGCATGTGTTAGTGAAGCAATTCATTTATTACCATATAATG -TATTCTTCGTACCAGCCAGAGGTGGACTAGGCGAAAATGTTGTCTTTCAGGCAAACACAATTGCAGCCAG -TATGGCACAACAAGCTGGCGGTTATTATACGACGATGTATGTACCTGATAATGTCAGCGAAACAACATAT -AACACATTGTTGTTAGAGCCATCAGTCATAAACACTTTAGACAAAATTAAACAAGCAAACGTTATATTAC -ACGGCATTGGTGATGCGCTGAAGATGGCGCATCGACGTCAATCACCTGAAAAGGTCATTGAACAACTTCA -ACATCATCAAGCTGTCGGAGAGGCATTTGGTTATTATTTTGATACACAAGGTCAAATTGTCCATAAGGTT -AAAACAATTGGACTTCAATTAGAAGACCTTGAATCAAAAGACTTTATTTTTGCAGTTGCAGGAGGCAAAT -CGAAAGGTGAAGCAATTAAAGCATACTTGACGATTGCACCCAAGAATACAGTGTTAATCACTGATGAAGC -CGCAGCAAAGATAATACTTGAATAAGAGATAAAAAGTTTAATACTTTTTAAATATCATTTTAAAGGAGGC -CATTATAATGGCAGTAAAAGTAGCAATTAATGGTTTTGGTAGAATTGGTCGTTTAGCATTCAGAAGAATT -CAAGAAGTAGAAGGTCTTGAAGTTGTAGCAGTAAACGACTTAACAGATGACGACATGTTAGCGCATTTAT -TAAAATATGACACTATGCAAGGTCGTTTCACAGGTGAAGTAGAGGTAGTTGATGGTGGTTTCCGCGTAAA -TGGTAAAGAAGTTAAATCATTCAGTGAACCAGATGCAAGCAAATTACCTTGGAAAGACTTAAATATCGAT -GTAGTATTAGAATGTACTGGTTTCTACACTGATAAAGATAAAGCACAAGCTCATATTGAAGCAGGCGCTA -AAAAAGTATTAATCTCAGCACCAGCTACTGGTGACTTAAAAACAATCGTATTCAACACTAACCACCAAGA -GTTAGATGGTTCTGAAACAGTTGTTTCAGGTGCTTCATGTACTACAAACTCATTAGCACCAGTTGCTAAA -GTTTTAAACGATGACTTTGGTTTAGTTGAAGGTTTAATGACTACAATTCACGCTTACACAGGTGATCAAA -ATACACAAGACGCACCTCACAGAAAAGGTGACAAACGTCGTGCTCGTGCAGCAGCAGAAAACATCATCCC -TAACTCAACAGGTGCTGCTAAAGCTATCGGTAAAGTTATTCCTGAAATCGATGGTAAATTAGATGGTGGT -GCACAACGTGTTCCTGTAGCTACAGGTTCATTAACTGAATTAACAGTAGTATTAGAAAAACAAGACGTAA -CAGTTGAACAAGTTAACGAAGCTATGAAAAATGCTTCAAACGAATCATTCGGTTACACTGAAGACGAAAT -CGTTTCTTCAGACGTTGTAGGTATGACTTACGGTTCATTATTCGACGCTACACAAACTCGTGTAATGTCA -GTTGGTGACCGTCAATTAGTTAAAGTTGCAGCTTGGTATGATAACGAAATGTCATATACTGCACAATTAG -TTCGTACATTAGCATACTTAGCTGAACTTTCTAAATAATTTTAGTATAGTTTTTATTCAAATACGCTAGT -GCTCAGAACTATTTAGCATTAATTAAAGCTTATGAGTAAGCGGGGAGCACAAACGCTTCTCCGCTTATTT -TTATATAAAATTTCCTAATTACAAGGAGGAAACACCATGGCTAAAAAAATTGTTTCTGATTTAGATCTTA -AAGGTAAAACAGTCCTAGTACGTGCTGATTTTAACGTACCTTTAAAAGACGGTGAAATTACTAATGACAA -CCGTATCGTTCAAGCTTTACCTACAATTCAATACATCATCGAACAAGGTGGTAAAATCGTACTATTTTCA -CATTTAGGTAAAGTAAAAGAAGAAAGTGATAAAGCAAAATTAACTTTACGTCCAGTTGCTGAAGACTTAT -CTAAGAAATTAGATAAAGAAGTTGTTTTCGTACCAGAAACACGCGGCGAAAAACTTGAAGCAGCTATTAA -AGACCTTAAAGAAGGCGACGTATTATTAGTTGAAAATACACGTTATGAAGATTTAGACGGTAAAAAAGAA -TCTAAAAATGATCCAGAATTAGGTAAATACTGGGCATCTTTAGGTGATGTGTTTGTAAATGATGCTTTTG -GTACTGCGCATCGTGAGCATGCATCTAATGTTGGTATTTCTACACACTTAGAAACTGCAGCTGGATTCTT -AATGGATAAAGAAATTAAGTTTATCGGTGGCGTAGTTAACGATCCACATAAACCAGTTGTTGCTATTTTA -GGTGGAGCAAAAGTATCTGACAAAATTAATGTCATCAAAAACTTAGTTAACATCGCTGATAAAATTATCA -TCGGCGGAGGTATGGCTTATACTTTCTTAAAAGCGCAAGGTAAAGAAATTGGTATTTCATTATTAGAAGA -AGATAAAATCGACTTCGCAAAAGATTTATTAGAAAAACATGGTGATAAAATTGTATTACCAGTAGACACT -AAAGTTGCTAAAGAATTTTCTAATGATGCCAAAATTACTGTAGTACCATCTGATTCAATTCCAGCAGACC -AAGAAGGTATGGATATTGGACCAAACACTGTAAAATTATTTGCAGATGAATTAGAAGGTGCGCACACTGT -TGTATGGAATGGACCTATGGGTGTATTCGAGTTCAGTAACTTTGCACAAGGTACAATTGGTGTATGTAAA -GCAATTGCAAACCTTAAAGATGCAATTACGATTATCGGTGGCGGTGATTCAGCTGCAGCAGCAATCTCTT -TAGGTTTTGAAAATGACTTCACTCATATTTCAACTGGTGGCGGAGCGTCATTAGAGTACCTAGAAGGTAA -AGAATTGCCTGGTATCAAAGCAATCAATAATAAATAATAAAGTGATAGTTTAAAGTGATGTGGCATGTTT -GTTTAACATTGTTACGGGAAAACAGTCATAAGATGACATCGTGTTTCATCACTTTTCAAAAATATTTACA -AAACAAGGAGTGTCTTTAATGAGAACACCAATTATAGCTGGTAACTGGAAAATGAACAAAACAGTACAAG -AAGCAAAAGACTTCGTCAATGCATTGCCAACATTACCAGATTCAAAAGAAGTAGAATCAGTAATTTGTGC -ACCAGCAATTCAATTAGATGCATTAACTACTGCAGTTAAAGAAGGAAAAGCACAAGGTTTAGAAATCGGT -GCTCAAAATACGTATTTCGAAGATAACGGTGCGTTCACAGGTGAAACGTCTCCAGTTGCATTAGCAGATT -TAGGCGTTAAATACGTTGTTATCGGTCATTCTGAACGTCGTGAATTATTCCACGAAACAGATGAAGAAAT -TAACAAAAAAGCGCACGCTATTTTCAAACATGGAATGACTCCAATTATTTGTGTTGGTGAAACAGACGAA -GAGCGTGAAAGTGGTAAAGCTAACGATGTTGTAGGTGAGCAAGTTAAGAAAGCTGTTGCAGGTTTATCTG -AAGATCAACTTAAATCAGTTGTAATTGCTTATGAACCAATCTGGGCAATCGGAACTGGTAAATCATCAAC -ATCTGAAGATGCGAATGAAATGTGTGCATTTGTACGTCAAACTATTGCTGACTTATCAAGCAAAGAAGTA -TCAGAAGCAACTCGTATTCAATATGGTGGTAGTGTTAAACCTAACAACATTAAAGAATACATGGCACAAA -CTGATATTGATGGGGCATTAGTAGGTGGCGCATCACTTAAAGTTGAAGATTTCGTACAATTGTTAGAAGG -TGCAAAATAATCATGGCTAAGAAACCAACTGCGTTAATTATTTTAGATGGTTTTGCGAACCGCGAAAGCG -AACATGGTAATGCGGTAAAATTAGCAAACAAGCCTAATTTTGATCGTTATTACAACAAATATCCAACGAC -TCAAATCGAAGCGAGTGGCTTAGATGTTGGACTACCTGAAGGACAAATGGGTAACTCAGAAGTTGGTCAT -ATGAATATCGGTGCAGGACGTATCGTTTATCAAAGTTTAACTCGAATCAATAAATCAATTGAAGACGGTG -ATTTCTTTGAAAATGATGTTTTAAATAATGCAATTGCACACGTGAATTCACATGATTCAGCGTTACACAT -CTTTGGTTTATTGTCTGACGGTGGTGTACACAGTCATTACAAACATTTATTTGCTTTGTTAGAACTTGCT -AAAAAACAAGGTGTTGAAAAAGTTTACGTACACGCATTTTTAGATGGTCGTGACGTAGATCAAAAATCCG -CTTTGAAATACATCGAAGAGACTGAAGCTAAATTCAATGAATTAGGTATTGGTCAATTTGCATCTGTGTC -TGGCCGTTATTATGCAATGGACCGTGACAAACGTTGGGAACGTGAAGAAAAAGCTTACAATGCTATTCGT -AACTTTGATGCCCCAACTTATGCAACTGCCAAAGAAGGTGTGGAAGCAAGTTATAATGAAGGCTTAACTG -ACGAATTCGTAGTACCATTCATCGTTGAGGATCAAAATGACGGTGTTAATGATGGAGATGCAGTGATCTT -CTATAATTTCCGACCTGATAGAGCGGCACAATTATCGGAAATTTTTGCGAACAGAGCATTCGAAGGATTT -AAAGTTGAACAAGTTAAAGACTTATTCTATGCAACATTCACTAAGTATAATGACAATATCGATGCGGCTA -TCGTCTTCGAAAAAGTCGATTTAAATAATACAATCGGTGAAATTGCACAAAATAACAATTTAACTCAATT -ACGTATTGCAGAAACTGAAAAATATCCTCACGTTACTTACTTTATGAGTGGTGGACGTAATGAGGAATTT -AAAGGTGAACGTCGTCGTTTGATTGATTCACCTAAAGTTGCAACGTATGACTTGAAACCAGAAATGAGTG -CTTATGAAGTTAAAGATGCATTATTAGAAGAGTTAAATAAAGGTGACTTGGACTTAATTATTTTAAACTT -TGCTAACCCTGATATGGTTGGACATAGTGGTATGCTTGAGCCGACAATCAAAGCAATCGAAGCGGTTGAT -GAATGTTTAGGCGAAGTGGTTGATAAGATTTTAGACATGGACGGTTATGCAATTATTACTGCTGACCATG -GTAACTCTGATCAAGTATTGACGGATGATGATCAACCAATGACGACGCATACAACGAACCCAGTACCAGT -GATTGTAACAAAAGAAGGCGTTACACTTAGAGAAACTGGTCGTTTAGGTGACTTAGCACCTACATTATTA -GATTTATTAAATGTAGAACAACCTGAAGATATGACAGGTGAATCTTTAATTAAACACTAATATTGTAAAA -GATGTTAAGTAAACGCTTAATGACACTTATTTTTTGAAAATAATAGTAATATCATTTTGTTAAATGAAAG -AATAAAGCTATAATAATTATAGAATAACTATTTAAAGGAGATTATAAACATGCCAATTATTACAGATGTT -TACGCTCGCGAAGTCTTAGACTCTCGTGGTAACCCAACTGTTGAAGTAGAAGTATTAACTGAAAGTGGCG -CATTTGGTCGTGCATTAGTACCATCAGGTGCTTCAACTGGTGAACACGAAGCTGTTGAATTACGTGATGG -AGATAAATCACGTTATTTAGGTAAAGGTGTTACTAAAGCAGTTGAAAACGTTAATGAAATCATCGCACCA -GAAATTATTGAAGGTGAATTTTCAGTATTAGATCAAGTATCTATTGATAAAATGATGATCGCATTAGACG -GTACTCCAAACAAAGGTAAATTAGGTGCAAATGCTATTTTAGGTGTATCTATTGCAGTAGCACGTGCAGC -AGCTGACTTATTAGGTCAACCACTTTACAAATATTTAGGTGGATTTAATGGTAAGCAGTTACCAGTACCA -ATGATGAACATCGTTAATGGTGGTTCTCACTCAGATGCTCCAATTGCATTCCAAGAATTCATGATTTTAC -CTGTAGGTGCTACAACGTTCAAAGAATCATTACGTTGGGGTACTGAAATTTTCCACAACTTAAAATCAAT -TTTAAGCAAACGTGGTTTAGAAACTGCAGTAGGTGACGAAGGTGGTTTCGCTCCTAAATTTGAAGGTACT -GAAGATGCTGTTGAAACAATTATCCAAGCAATCGAAGCAGCTGGTTACAAACCAGGTGAAGAAGTATTCT -TAGGATTTGACTGTGCATCATCAGAATTCTATGAAAATGGTGTATATGACTACAGTAAGTTCGAAGGCGA -ACACGGTGCAAAACGTACAGCTGCAGAACAAGTTGACTACTTAGAACAATTAGTAGACAAATATCCTATC -ATTACAATTGAAGACGGTATGGACGAAAACGACTGGGATGGTTGGAAACAACTTACAGAACGTATCGGTG -ACCGTGTACAATTAGTAGGTGACGATTTATTCGTAACAAACACTGAAATTTTAGCAAAAGGTATTGAAAA -CGGAATTGGTAACTCAATCTTAATTAAAGTTAACCAAATCGGTACATTAACTGAAACATTTGATGCAATC -GAAATGGCTCAAAAAGCTGGTTACACAGCAGTAGTTTCTCACCGTTCAGGTGAAACAGAAGATACAACAA -TTGCTGATATCGCTGTTGCTACAAACGCTGGTCAAATTAAAACTGGTTCATTATCACGTACTGACCGTAT -TGCTAAATACAATCAATTATTACGTATCGAAGATGAATTATTTGAAACTGCTAAATATGACGGTATCAAA -TCATTCTATAACTTAGATAAATAATCATTTTAAACATTAAGTACTGCCATAATTTTAGTTGAGGATTATT -ATGTCGGTATAAATTGAATAAAGTTTTTGAGTTCACGCTTAAAAAGTTCACGCTTTTATTTATAACCTGC -CACAGAGTTGAGACTGTGGCAGGTTTTTTTTTGAAGTATTATTCATAACAGACTAATAATCATGAGGTAA -CTAATAACACATATTTAACTTGTATTATTAAACTGGTATAATAAATTTATGTTGAAATGAATATTGTATG -ACAGGGTATTCACTTTTATTAAAAGGTAAAATTAAATAAAGGTTTTATAGAACGTATTTAAATATATGAG -GAGTAAACAAATGGCTGATAGAACGAATAAAGAAATTAAAACAGGACGCTTTATTGCAACTGCATCAATC -GCATTCTCAATATTGTTGATTATTCATTACTTTGTTTCGTTGGATAATGCGACTGCCAAAGCATTACTCA -ATTTAACGAATCAAAACACTTCAGATAAAGCGATAGATTACATTTTAAACAGCTTTAGATTCACTGGTAT -TATGTATATTTTGGCTTATCTAGCAGGCTTCATCACTTTTTGGAATCGACATACTTATGTGTGGTGGTTT -ATGTTTGCAGTTTATGTATCAAATAGTTTGTTTACGTTGATTAATTTATCAATCACAATTCAAGCAATAA -AAGCTGCACACGGTGCGTACTTAACATTGCCAATTTTAATTGTTATTATAGGTTCGGTTGCATTAGCGAT -TTATATGCTTGTTGTTTCTATCAAACGTAAAAGTACATTTAATCGCTAGAAAATTGATTTTAACAATGAA -AATATGATATACTACTTGTCGTATATAAGGAACGGAGGACAATTTATGCATACATTTTTAATCGTATTAT -TAATCATTGATTGTATTGCATTAATAACTGTTGTACTACTCCAAGAAGGTAAAAGCAGTGGATTTTCAGG -TGCCATCAGTGGTGGTGCTGAGCAGTTATTCGGTAAACAAAAACAACGTGGCGTCGATTTATTCTTAAAT -AGATTAACAATTATTTTATCAATATTATTTTTTGTACTTATGATTTGCATAAGTTATCTTGGTATGTAAG -GTCCGGCGATGTAAATGTCGGGCTTTTTTATTTATAATTAGAATAATAAAGGACTCATGTTCAATTATTA -GAAACATATTGTTTAATTAAGTACGTTTGTTAATTGTGAAAAAGGAGCGTTAGATTTATGCAAATAAAGT -TACCAAAGCCTTTCTTTTTTGAGGAAGGTAAACGTGCCGTGTTATTACTACATGGTTTTACAGGCAATTC -GTCTGATGTTCGTCAATTAGGTCGATTTTTACAAAAGAAAGGTTATACATCGTATGCACCACAATATGAA -GGTCATGCAGCACCACCAGAAGAGATACTTCAATCAAGTCCTTTTGTTTGGTTTAAAGATGCCTTAGATG -GCTATGACTACCTTGTTGAACAAGGTTATGATGAAATCGTTGTTGCTGGCTTGTCATTAGGTGGCGATTT -TGCATTAAAATTAAGCTTAAATCGAGATGTAAAGGGTATTGTAACGATGTGTGCTCCTATGGGTGGCAAA -ACTGAAGGTGCCATTTATGAAGGCTTTTTAGAATATGCACGCAATTTTAAAAAGTATGAGGGTAAAGATC -AAGAAACGATTGACAAAGAAATGCATCATTTCAAACCAACTGAAACTTTAAAAGAATTAAGTGAAGCATT -AGATACGATTAAAGATCAAGTTGATGAGGTGCTTGACCCAATTTTAGTGATTCAAGCAGAAAACGACAAT -ATGATTGATCCACAATCCGCAAATTATATATATGAACATGTAGACTCTGACGAAAAAGATATCAAATGGT -ATAGTCAGTCAGGACATGTTATTACAATTGATAAAGAAAAAGAACAAGTTTTCGATGATATTTATCAATT -TTTAGAGTCATTAGACTGGTCAGAATAAAAAGAGATTTTAACATTAGAAAGGAGGGGCATAATGAATTTA -AAGCAATCAATAGAAGAGATTATTAATCAACCTGAATATGAACCTATGTCAGTTTCAGATTTTCAAGATG -CATTAGGTTTAAGCAGTGCCGACTCGTTTAGAGATTTAATTAAGGTGCTTGTGGAGTTAGAACAATCAGG -ATTAATCGAACGTTCGAAAACAGATAGATACCAAAAAAAGCATAGTTCCAAAGGTCAATCGAAATTGATA -AAAGGAACGTTAAGTCAAAACAAGAAAGGTTTTGCTTTCCTAAGACCTAAAGATGAGGATATGGAAGATA -TATTTATTCCCCCAACAAAAATTAATCGTGCCTTAGACGGAGATACTGTAATTGTAGAAATACATCAATC -TAAAGGTGAACATAAAGGTAAAATTGAAGGGGAAGTTAAGTCGATTGAGAAGCATTCTGTAACTCAAGTT -GTTGGTACGTATAGTGAAGCTAGACATTTCGGCTTTGTTATTCCAGATGATAAACGTATTATGCAAGATA -TTTTCATTCCTAAAGGTCAAAGTTTAGGTGCAGTAGATGGGCATAAGGTACTAGTTCAAATTACTAAGTA -TGCTGATGGTTCAGATAATCCTGAAGGGCATATTTCAGCAATATTAGGACATAAAAATGATCCAGGTGTA -GATATTTTATCTATTATTTATCAACATGGTATTGAAATTGAGTTTCCTGATGAAGTATTAGAAGAAGCTG -AAGCAGTACCTGATCATATTGAAAATACTGAAATTAAAGGCCGTCATGATTTACGTGATGAATTGACAAT -CACAATTGATGGTGCGGATGCTAAAGACTTAGATGACGCAATCAGTGTTAAAAAGTTAGCGAACGGTCAT -ACGCAATTAACTGTAAGTATTGCTGATGTCAGTTATTATGTAACGGAAGATTCAGCTTTAGATAAAGAAG -CTTATGATAGAGCGACAAGTGTATATCTTGTTGACCGTGTGATTCCGATGATTCCACATCGATTAAGCAA -TGGTATTTGTTCATTAAATCCTCACGTTGATCGTTTAACGTTAAGCTGTCGCATGGAAATTGATGCAAGT -GGTCGTGTTGTTAAACATGAAATTTTTGATAGTGTTATACATTCTGATTATCGAATGACGTATGATGCAG -TTAACCAGATTATTACTGAAAAGGATCCTAACATTCGCGAGCAATATAAAGAAATTACGCCTATGTTAGA -TTTAGCACAAGATTTATCTAATCGTTTGATTCAAATGAGAAAACGTCGTGGTGAAATTGATTTTGATATT -AGCGAAGCGAAAGTACTAGTTAACGAAGATGGTATACCTACAGATGTTCAATTGAGACAACGTGGTGAAG -GCGAACGTCTTATTGAGTCATTTATGTTAATTGCAAATGAAACAGTTGCTGAACATTTTAGTAAGTTAGA -TGTACCATTTATTTACCGAGTGCATGAGCAACCTAAATCAGATCGCTTAAGACAATTCTTTGATTTTATT -ACTAACTTTGGCATTATGATTAAAGGAACAGGCGAAGATATTCATCCAACAACACTTCAAAAGGTCCAAG -AAGAAGTAGAAGGTCGACCTGAACAAATGGTCATTTCAACAATGATGTTACGTTCAATGCAACAAGCGCA -TTATGATGATGTGAACTTGGGACATTTTGGCTTATCAGCTGAATATTATACGCATTTTACATCACCAATA -AGACGTTATCCTGATTTAACAGTTCATCGTTTAATCCGTAAGTATTTAATTGAGAAATCAATGGATAACA -AAGAAGTGAAGCGTTGGGAAGACAAATTGCCTGAGTTAGCTGAACATACTTCTAAACGTGAACGTCGTGC -TATTGAGTCAGAACGTGATACTGATGAATTGAAAAAAGCAGAATATATGATTCAACATATTGGTGATGAA -TTTGAAGGTATTGTCAGCTCAGTAGCTAACTTCGGTATGTTCATTGAATTGCCAAATACGATAGAAGGTA -TGGTTCATATTGCGAATATGACTGATGATTATTACCGTTTTGAAGAGCGTCAAATGGCATTAATTGGTGA -GCGTCAAGCTAAAGTATTTAGAATTGGTGACACAGTTAAGGTTAAAGTGACGCATGTTGATGTAGATGAA -CGATTAATTGATTTTCAAATTGTAGGTATGCCTTTACCGAAAAATGATCGATCACAGCGCCCAGCACGAG -GTAAGACAATTCAAGCTAAAACGCGTGGTAAATCATTAGATAAATCGAAATCTGATGATAAAGGTCATAA -GAAAAAAGGTAAGCAACGTAAAGGTAAAAACCAACGTAAAAATGACAAATCAGGAAACAGTAAACATAAG -CCATTTTATAAAGATAAAAGTGTGAAAAAGAAAGCACGTCGTAAGAAAAAATAAGCAGCAATGAGGTGAG -TATGAATGGCTAAGAAGAAATCACCAGGTACATTAGCGGAAAATCGTAAAGCTAGACATGATTATAATAT -TGAAGACACGATTGAAGCGGGAATTGTATTGCAAGGCACAGAAATAAAATCAATTCGCCGAGGTAGTGCT -AACCTTAAAGATAGTTATGCGCAAGTTAAAAACGGTGAAATGTATTTGAATAATATGCATATAGCACCAT -ACGAAGAAGGGAATCGTTTTAATCACGATCCTCTTCGTTCTCGAAAATTATTATTGCATAAGCGTGAAAT -CATTAAATTGGGTGATCAAACACGTGAGATTGGTTATTCGATTGTGCCGTTAAAGCTTTATTTGAAGCAT -GGACATTGTAAAGTATTACTTGGTGTTGCACGAGGTAAGAAAAAATATGATAAACGTCAAGCTTTGAAAG -AAAAAGCAGTCAAACGAGATGTTGCGCGCGATATGAAAGCCCGTTATTAAGCGATTTAGTTGCTTAATCG -GGCTATATTTGATATAGTTATATGTGCTTTTGTAAATTGCAAAAGTATGATTTGTTTGATTTATTATTTC -GGGGACGTTTCTGGATTCGACAGGGGTCCCCCGAGCTCATTAAGCGTGTCGGAGGGTTGTCTTCGTCATC -AACACACACAGTTTATAATAACTGGCAAATCAAACAATAATTTCGCAGTAGCTGCCTAATCGCACTCTGC -ATCGCCTAACAGCATTTCCTATGTGCTGTTAACGCGATTCAACCTTAATAGGATATGCTAAACACTGCCG -TTTGAAGTCTGTTTAGAAGAAACTTAATCAAGCTAGCATCATGTTGGTTGTTTATCACTTTTCATGATGC -GAAACTTTTCGATAAACTACACACGTAGAAAGATGTGTATCAGGACCTCTGGACGCGGGTTCAAATCCCG -CCGTCTCCATATTTGTAGCCTACAACCTTTGCGGATGTGGGCTTTTTTATTTGTTTTTTATCTCTTCTTG -TGAGGAAGGTTAAATTAGCTGTGAACGTTGATATGATAGTATCTGATTAGGTTCAAATTTTCATGAATGA -AAAATTAATACTTGTGTACATATAAGATTTTGCGTTAAGGGTTGAAAGAATATGTGTCAAATAAGTGTCA -AAAAAGTTGAGCTTTGAGTTTTAAAATGTAAATTTTATTTGCAAAATTAATTAAGCTAAAGAAGTATCAT -AAATAAGAGAATTAAATATATAGTTTAGAATTAGAATCAAGATTTTTATAAATATTATATTTTTCTTTTA -ATTGACTTAAATTTGATATATTGTTTAAATGTAATGAGGAAAAGTTGTGATAGTTTTAGCTGGTAAATTA -AAGGTTTTAATATAGCTGGTTTTTAATAGATTTTTAAGGATGATATCGTTTGCGAGTGAACGTATCTATT -TAGTGAAATAGTATTTATAGATGGGGGCATAATCAATGAATGACTTGAGTTTATCTTCATTTTTGAAACG -CAGTAACAAATTTATGCAATTCAATTGTTTTATTTGTTTGATTCTAATAATAGTATTTTACATAATTGGT -ATGAATATACAGGACTTTAGTGATTTTCCTAGTAAAGATTTAAATCATAAAGTGACTTATAATCTTAATG -GGTTTTTGGAGATATTTGTTAATAATGCTTTTATAGTTCCTTTTGTGTCACTTATATTATCGATAATACC -AATACCATATTTGTATTTTATTCCTACAATATCTACAATTTATTCATTGTCGGTTATTATTGGGGTTACA -TTTTCATATAAATTAAACGAAGGGATAGCTATTTTTATTGGTATTTTGCCTCATGGTATTTTAGAAATAT -ACTTAACAAGCATTGAACTATCAATGTTATTCTTATTAAATGCGTACATCAGAAAAAATTCAATGAATTT -ATTTAGAAAAAGAAAAGAGACATTGCCAAATTTTTTTGTTTTATTAAAATCAATAGTAAAGTGTTACCTG -CTAATATTTTTACCTGTGGCATTTTTATGCGCTTTAATTGAAATTACTGTTACACCAACTGTTTACAAAT -TTTTAACTAATATAATATAGAACTTTTAAAAGGGCATAGCTAACTATGTGTATAGGTTTATTTTTGATCG -ATAAATATTGATTTGTAAAATATGAGTTCACGAAAAATGTTGCATGGTATTCGTGAAACTATAATCGAGT -CATTTCAAAAATGACCATTTCAAAACAACAAAAAAGAGTAGGCGAGCTACTCTTTTTTGTTATATTTAAC -AATTAAATTAGTGTGTCATTATGAGTGTAAGTAAGCTAATTTATAATGACAATAATAACAACAAAGATTA -TAACGCTGAATGCGAGCATTCATAAATTTATACTTCATCTAAACCACTGTGGTCGTCATCTTTTTGCTTT -TCTTTTTCTTTCTCTCGTTCTTGTTCTTTTTTGTACTCTTCTTCAAATTCTTTTTCTTTCTTTTCTACTT -CTTCCCTTGTTTCCGCTCTATGAGAAAAATCTTCGGTTTTAAGTTTACTAAATTTGAATGATTTAGAATC -AACTGTTTTATCTTCTGAGTATTTATGGACATTTAAATTAATGTTTCCATCACCTCTTAACTCATAGATA -AACATGGCTTGTGCAGTTTTGCCTTTTTTAATTTGATCTTGGTTATGTTCTGTCCAATCTTTATAATTTT -TATCACTTAAAAGATAACCATCTCTTAATTTATTTACTGTATTTTTATCATCTTGAGTGATATTAATATA -GTCATGAGAAATAGAAGATGGATTTAAATCTTTATCGTCTTTTTTAGCAGTAATTTCCATTTTAAAAGCG -ATATATTTCTTTTTCTCATCTTTTTCATTGATGATAAACGGTTCTTTTATTTTAGCTTCAAATTTGTCAC -TAACAATAGTATCGCCTTTAATTTTTATATCCATATTTTTTTTGCTTTTAAATTCTTTAAGTTCTTCATT -TAATTCTTCATTGTCATTTTCTTTCTTTTTGTGACTAGTGCTCTCTTTTTTTGCACTATCTTGATGATGT -CCACAAGCACCTAAGATAAGTGTACTTGCTAATAATATCCCCATTACTTTTTTCATTTAACATGTCTCCT -TTATTTCGCAAAAATTTATTTTAAAAACTCTAAACGACTTATCGTTTTGAGTAATTAAACAAAGTTGATA -TTTTGTGAGATTCTAAGATGATATTAAATAATTCTTGTAATAATGATTCTATGTATTGTTGCAATAAATT -AATGGAACTATAATTACTAATATTATATTACTTTTATTGATAGAAATATATTACTTTTTTAAAAAACTTG -TAATATATCGAAAGATTTAAATGTAAAATTTTGATTTGTTAAGAAATTACGTTTATAAAAAATAAAAAAA -TTCAACTTATTTGTATGAGATGAATATGTATTGAAGAAGATGTTTTATTAATTTTGAAATACTGGTCAAA -GATGGGTGCCCTCAAAAGCGTTATTGTATTTTTTAGTCAATGCAAATAGATTGCCGTAATAATAAGCGTA -CTTGATAGTTAAAAAATTACTTAAGGCTATAAAGCAAAATTTTTTATATGAGCAGTCGAATATAACGTTT -AAAATGATTCTTTTTGGATATAAACGATTAAGTAAAATGATTTTTCAGTTTGAAATTAATCATATGAATT -TCTTAAGAGAAGGGTGATATCTTAATGATTAATATTATTTCAGCTATAGGATCTATTGGAACATTTATTA -TGGCTTTATTTTATTTTGTATCAGTTTCAGTTCAACTTTATCAAATGAAAATTAGCTTTCTGCCAGCTTT -AGGTTTTAACCAAATTTTATTAGAAAGGGAGGGGGATCAACTTAATATAATGAATTCCGCTACAGAAGAG -CATCATCATAAAGATTATATTAAACTATATAATTTAGGTGGCGGTGCTGCTAAAAAAATTGCAATAGAGG -TTTTATTGGGTAATGATAAAGTCATTCAGAAAAAGTACGTGAATATTTTACCTAGTAAAGAAGGGTACAT -GTTATCAATTAATAAAAATGTGTACGAAGAATTAGAAAGAACGATTGAGAACAATGGTTATGAAGCTGAT -TTGAATGTACGTATGACTTATTATCATAATGTAAGTCACAAACAACAGGAAGTTATATTAAAAGGTCAAA -TCGACCGTTTTAATACTTATAATAATAAAGAAATTTATGATTTGCAGTTTATCTGAAAATTGATTTAAGA -GGATAGTTGTTTATTGCAAAAAATATCATTCAATTTTAATGAAATAATGGCGTCATTACTATAAAATATT -ACTTTATGTTGTAATGCATTTTTCTATAAGATAGAACTAAAAGGAGGGGCAAAGATGCAAATTAGACAAA -TACATCAACATGACTTTGCTCAAGTTGACCAGTTAATTAGAACGGCATTTGAAAATAGTGAACATGGTTA -TGGTAATGAATCAGAACTAGTAGACCAAATTCGTCTAAGTGATACGTATGACAATAACTTAGAATTAGTA -GCTGTTCTTCAAAATGAAGTTGTAGGGCACGGTTTACTAAGTGAAGTTTATCTTGATAACGAGGCACAAC -GGGAAATTGGATTAGTGTTAGCACCTGTATCTGTTGATATTCATCATCAAAATAAAGGTATTGGGAAGCG -ATTGATTCAAGCATTAGAACGAGAAGCAATATTAAAAGGATATAATTTTATCAGTGTATTAGGATGGCCG -AATTATTATGCCAATCTAGGATATCAACGCGCAAGTATGTACGACATTTATCCACCATATGATGGTATAC -CAGATGAAGCGTTTTTAATTAAAGAATTAAAAGTGAACAGTTTAGCGGGAAAAACAGGTACCATAAATTA -CACATCTGCTTTTGAAAAAATATGATTTCAAGCTAGGATTACATTAGGCAGAGTTCATATTAATAATACA -AATTGTTTACAATGAAATCGCGCATTGTCGTTTGCAATTTTTAAAACAGAGAAAATGAAAAACTTTTCGT -TGTAAATATTTATTGTAGTTAATAAAATTCTAAAACAAATTAATTGCCATTATGCAATTTTGGTGTATAA -TTGCATTAATAGAGATTAAATATATATTAAAAGGGTATACAGTTAATATAAAATGACTTTTTAAAAAGAG -GGAATAAAATGAATATGAAGAAACAAGAAAAACACGCAATTCGTAAAAAATCGATTGGCGTGGCTTCAGT -GCTTGTAGGTACGTTAATCGGTTTTGGACTACTCAGCAGTAAAGAAGCAGATGCAAGTGAAAATAGTATG -ACACAAACGGAAAATACGAGTAATGAGAGCAAAAGTAATGATCCAAGTAGCGTTAATGCTGCACCTAAAA -CAGACAACACAAACGTGAGTGATTCTAATACAACGACAAACACTAATAGTGACGAAACGAATGTAGCGCA -AAATCCAGCACAACAGGAAACGACACAATCAGCATCAACAAATGCAACTACAGAAGAAACACCGGTAACT -GGTGAAGTTACTACTACGGCAACGAATCAAGCTAATACACCGGCAACAACTCAATCAAGCAATACAAATG -CGGAAGAATCAGTGAATCAAACAAGTAATGAAACGACTTCTAATGATACTAATACAGTATCATCTGTAAA -TTCACCTCAAAATTCTACAAATGCGGAAAATGTTTCAACAACGCAAGACATTTCAACTGAAGCAACACCT -TCAAACAATGAATCAGCTCCACAGAGTACAGATGCAAGTAATAAAGATGTAGTTAATCAAGCGGTTAATA -CAAGTGCGCCTAGAATGAGAGCATTTAGTTTAGCGGCTGTAGCTGCAGATGCACCGGCTGCTGGCAAAGA -TATTACGAATCAGTTGACGAATGTGACAGTTGGTATTGACTCTGGAGATACAGTTTATCCGCACCAAGCA -GGCTATGTCAAACTGAATTATGGGTTCTCAGTACCAAATGAGGCTGTTCAAGGTGACACATTCAAAATAA -CTGTGCCCAAAGAATTAAACTTAAATGGTGTAACTTCAACTGCTAAAGTGCCACCAATTATGGCCGGAGA -TCAAGTATTGGCAAATGGTGTAATCGATAGTGATGGTAATGTTATTTATACATTTACAGACTATGTAAAT -ACTAAAGATGATGTTAAAGCAACTTTGACCATGCCCGCTTATATTGACCCTGAAAATGTTACAAAGACAG -GTAATGTGACATTGGCTACTGGCATAGGTAGTACAACAGCAAACAAAACAGTATTAGTAGATTATGAAAA -ATATGGTAAGTTTTATAACTTATCTATTAAAGGTACAATTGACCAAATCGATAAAACAAATAATACGTAT -CGTCAGACAATTTATGTCAATCCAAGTGGAGATAACGTTATTGCGCCGGTTTTAACAGGTAATTTAAAAC -CAAATACGGATAGTAATGCATTAATAGATGCACAAAATACTAGTATTAAAGTATATAAAGTTGATAATGC -ATCAGACTTGTCTGAAAGTTATTATGTGAATCCAGATAACTTTGAAGATGTCACTGATAGTGTGAATATT -ACATTCCCAAATCCAAATCAATATAAAGTAGAGTTCAATACGCCTGATGATCAAATAACAACACCATATA -TTGTAGTTGTTAATGGGCATATTGATCCTAATAGTAAAGGTGATTTAGCTTTACGTTCAACTTTATATGG -ATATAATTCGAATATAATTTGGCGATCAATGTCATGGGATAATGAAGTAGCATTTAATAACGGATCAGGT -TCTGGTGACGGTATCGATAAACCTGTTGTTCCTGAACAACCTGATGAGCCGGGTGAAATTGAACCAATTC -CAGAGGATTCAGATTCTGACCCAGGTTCAGATAGTGGTTCAGATTCTGGCAGCGATTCTAATTCAGATAG -CGGTTCAGATTCGGGTAGTGATTCTACATCAGATAGTGGTTCAGATTCAGCGAGCGATTCAGATTCAGCA -AGTGATTCAGATTCAGCGAGTGATTCAGATTCAGCAAGTGATTCAGATTCAGCGAGTGATTCAGATTCAG -CAAGTGATTCAGATTCAGCGAGTGATTCAGATTCAACGAGTGATTCAGATTCAACGAGTGATTCCGATTC -AGCAAGCGATTCAGATTCAGATAGTGACTCAGACTCAGACAGCGATTCAGATTCAGATAGTGACTCAGAC -TCAGATAGCGATTCAGATTCCGACAGTGACTCGGATTCAGATAGCGATTCCGACTCAGACAGTGACTCAG -ATTCAGATAGCGACTCAGACTCAGAAAGCGACTCAGATTCAGACAGCGATTCCGACTCAGATAGTGATTC -AGATTCAGACAGCGACTCAGACAGTGTTTCAGATTCAGACAGTGACTCAGACTCGGATAGTGAATCAGAC -TCAGACAGCGACTCAGATTCAGACAGCGACTCAGACTCGGATAGTGAATCAGACTCAGACAGTGACTCAG -ACTCAGACAGCGACTCAGACTCAGATAGCGACTCAGATTCAGATAGCGATTCAGACTCAGACAGCGACTC -AGACTCAGATAGCGATTCCGACTCGGATAGCGACTCAGACTCAGATAGCGATTCCGACTCGGATAGCGAT -TCAGAATCAGATAGTGACTCAGATTCAGATAGCGATTCCGACTCAGATAGCGACTCAGATTCCGACAGCG -ATTCAGATTCAGACAGTGATTTAGACTCAGACAGTGACTCGGATTCAGATAGCGATTCCGACTCAGACAG -TGACTCGGATTCCGACAGCGATTCAGATTCAGACAGTGATTTAGACTCAGACAGTGACTCGGATTCAGAT -AGCGATTCCGACTCAGATAGTGCCTCAGATTCAGATAGCGACTCAGACTCAGACAGCGATTCAGAATCAG -ATAGTGACTCAGATTCAGATAGCGATTCCGACTCAGACAGTGCCTCAGATTCAGATAGTGACTCGGATTC -AGCGAGTGATTCCGATTCAGATTCAACGAGTGACACAGGATCAGATAACGACTCAGACTCAGAAAGTGAT -TCGAATAGCGATTCCGATTCAGGTTCTAACAATAATGTAGTGCCGCCTAATTCACCTAAAAGTGGTACTA -ATGCTTCAAATAAAAATGAGGCTAAAGAAAGTAAAGAACCATTACCAGATACAGGTTCTGAAGATGAAGC -TAATACGTCACTAATTTGGGGATTATTAGCATCATTAGGTTCATTACTACTTTTCAGAAGAAAAAAAGAA -AATAAAGATAAGAAATAAGTAATAATGATATTAAATTAATCGTATGATTCATGAAGAAGTCACCTAAAAA -GGTGGCTTTTTTACTTGGATTTTCCAAATATATTGTTTGAATATAATTAATAATTAATTCATCAACAGTT -AATTATTTTAAAAAGGTAGATGTTATATAATTTGGCTTGGCGAAAAAATAGGGTGTAAGGTAGGTTGTTA -ATTAGGGAAAATTAAGGAGAAAATACAGTTGAAAAATAAATTGCTAGTTTTATCATTGGGAGCATTATGT -GTATCACAAATTTGGGAAAGCAATCGTGCGAGTGCAGTGGTTTCTGGGGAGGAGAATCCATATAAATCTG -AGTCATTGAAATTAAATGGGAAAAGAAGTACTACAATAACTAGTGATAAATATGAAGAAAATTTAGATAT -GTTAATATCGTCATTATCATTTGCAGATTATGAAAAATATGAGGAACCAGAATACAAAGAAGCAGTTAAA -AAGTATCAACAAAAATTTATGGCTGAAGATGATGCATTAAAAAATTTTTTAGTGAAGAGAAAAAAATAAA -AAATAGAAATACTAATACATCAAATTATCTGGGATTAACACACGAAAGATATGAGTCAATTTATAATTCA -TTAAAAAATCATCGTGAAGAATTTTCAAAAGAAATCGAAGAAATTAATAATAAAAATCCAGTGTTAAAAG -AATATAACAATGAGGAACAAACTAAAGCTGATACGGAATTAAACACTCTTGAAAATCAAGTACTAATGAT -AGGTTATACATTTTATCACTCGAATAAAAATGAAGTAGAAGATTTATATAACAAATTAGATATGATTCTT -GGTTATAAAGATGAAGAGAGAAAAAAGAAGAGGGCTACCAATCAAAGAATGTTCAATAATAAAAAAGAGG -ATTTAGAAACTATTATTGATGAATTCTTTGGAGAAATTGGACAACAAAGGCCAACATCTATACCAACATT -AGCGCCTAAAGAAGAAAAAGAAACAAATATAAAAAATGCAAATAAATTAAAATCTGACACTGAAGCAGCA -AAAAATGATGAAGCAAAAAGAAGTTTAAATACCCACAATCACAAATCTGTATCTCAAGAAGTCTCTGAAC -AACAAAAAGCTGACTACGAAAGAAAAGCTGAAGAAAGAAAAGCGAGATTTTTAGATAAGCAAAAAAATAA -GAAAACTCCTGTAGTTTCATTAGAATATGATTTTGAACATAAACAACGTGTTGACAACGAAAACGACAAG -CAACTTGTGGTTTCTGAGCCATCAAAGAAACCAACAACACCGCCTACATACACTGAAACAACCACACAGC -TACCAATGCCTACAGTTGAGCGTCAAACACAGCAACAAATCGTTTACAAAGCACCAAAACCATTAGCTGG -ATTAAATGGTGAAAGTCATGATTTCACAACAACGCATCAATCACCAACTACTTCAAATCACACGCATAAT -CATCTTATTGAAATTGAAGAAACATCTGCTTTACCTGGTAGAAAGACAGGTTCATTGGTTGGTTTGAGTC -AAATTGATTCTTCGCATTTAACTGAACGTGAGAAGCGCGTGATTAAACGTGAACACGTGAGAGAAGCTCA -AAAGTTAGTTGATAATTATAAAGATACACATAGTTATAAAGACCGATTAAATGCCCAACAAAAAGTAAAT -ACTTTAAGTGCAGGTCATCAAAAACGTTTTAATAAACAAATTAATAAAGTATATAATGGCAAATAATTAA -TGCATGGCTGCAAAGGAAATAATGAGTTTGCCGTAAAAATAACAACATTTTAAACTAGCAATAAATAATA -TCAAAGTCATCATTTCAATGATGCAATCTAGTATAGTCCACATTCTAAACAGGTGTGGACTATTACTTTT -TTCACTTTATATTACGAAAAAATTATTATGCTTAACTATCAATATCAATAATTAATTTTAAGCTGAAAAA -CAATAAAAATGTTAAGACAACGTTTACTTCAAGTTAATTATTATACTGAAAATTCTGGTATATAATGCTG -TTAGTGAATATAACAGGAAAATTAAATTGGTTATGATATTGAGTCTATATAAAGGAGAAATAACAGATGA -AAAAGAAATTATTAGTTTTAACTATGAGCACGCTATTTGCTACACAATTTATGAATTCAAATCACGCTAA -TGCATCAACAGAAAGTGTTGATAAAAACTTTGTAGTTCCAGAATCGGGTATTAATAAAATTATTCCAACT -TACGATGAATTTAAAAAAGCACCAAAAGTAAATGTTAGTAATTTAGCTGACAACAAAAACTTTGTAGCTT -CTGAAGATAAATTGAATAAGATTGCAGATCCATCGGCAGCTAGTAAAATTGTAGATAAAAACTTTGCCGT -ACCAGAATCAAAATTAGGAATCATTGTACCAGAGTATAAAGAAATCAATAATCGAGTGAATGTAACAACA -AACAATCCAGCTTCAAAACAAGTTGACAAGCAAATTGTTGCTAAAGACCCAGAGGTGAATAGATTTATTA -CGCAAAATAAAGTAAACCATCGTTTCATTACTACGCAAACCCACTATAAGAAAGTTATTACTTCATACAA -ATCAACACATGTACATAAACATGTAAACCATGCAACATCTTCTATCCATCATCACTTTACTATTAAACCA -TCAGAAGCACCTAGATATACACACCCATCTCAATCTCAATCGTTAATTATAAATCATCATTTTGCAGTTC -CTGGATACCATGGTCATAAAGTTGTAACACCAGGACAAGCTAGTATTAGAATTCATCACTTTTGTGCTGT -ACCTCAAATAAATAGTTTTAAGGTCATTCCATCATATGGTCACAATTCACATCGTATGCATGTACCAAGT -TTCCAAAATAACACAACAGCAACACATCAAAATGCAAAAGTAAATAAAACTTATAACTATAAATATTTTT -ATACTTATAAAGTAGTCAAAGGTGTAAAAAAACATTTCTCATTTTCAAAATCACATGGTTGTAAAATTGT -TAAACCAGCATTAAACATCAAAAATGTAAATTATCAATATGCTGTTCCAAGTAATAGCCCTACACACGTT -GTTCCTGAGTTTCAGGGTATCTTACCAGCACCACGAGTATAAAAATTGACATTAAGTTTACGAGATATGA -TAAATACCTATTATTTTAAACATAGTCTGCAATCTATGAGGTTGTAGGCTATGTTTTTTGCAGTTTATCA -ATAAACACCCATCAACAAATTATACCGTTTTTCTACTTTAAAAGTTGGAAGTAACATAATCTTAAATAAA -TATATTATTAATTAAGATAAATATAAGACTCGAGATTATTGTTAATAGTTTGTTCATCGCAAGTTAATTA -TTGTTTCTAAAATATTGGTATATAATTTTCAATGGCGAAGAAAACAGGGTAAAAAAGTCGGTTTTTAAAT -CAAAGCAAATAAGGAGTAAAAAATGAAAAGGAAAGTACTAGTATTAACAATGGGCGTACTTTGTGCGACA -CAATTATGGCAAACGAATAATGCAAAAGCTTTAGTGACAGAGAGTGGCGTTAATGATACTAAGCAATTTA -CTGAAGTAACATCGGAAGAAAAAGTTATAAAAGATGCTATTTCGAAAGTCAATGAAAGCTTTATTTACTA -TCCCCAAAATGATTTGAAGGGATTAGGTGGAGAACACAACGATTACGAAAAAATTACATATAGCACTTCT -TCTAATAATGTTTTAGAATTATCAATGAGTTCAAAATACGTAGGCGGTAAATCAGGAGCTATGGTTGGTT -ATAGTGAAATTTACTCATCACATTTCACAGACCGCGACAAACGTGCTATCAGACGTGATCATGTTAAAGA -AGCACAAAACTTGATTAATGATTATAAATATACGCAAATATATGAAGACTTTGCTAAAGCTACTGCAAAG -GTAAGTACACTTAGTCAGTCTCACCAAAATTATTTAAATAAACAAATTGATAAAGTGAATAATAAGATAG -AGAAAACTGAAAAACGCTAATACAAAGTAATTTATAAGTTATACATTTCGTTTTTAAATGACAATTTATC -CCCGTAAATATAATAAATAATCTTTTCAAATTCCGCATAGATATAGAGACGCTAATAAACCTCTTTGTCT -CGATATGATAGTCTGCAACGATTCATGTTGTAGGCTTTTTAATTTTACAAATACGACTAAATATATAAGT -TCTGACACCTAAAATATAGAAAATACATAAAAGTAAGTATAGTTATTTTATTATAATTATTAAATTTTTA -TTAATTAATTGTAAAAATGTAGAATTATAATTAATTAACGTTTAATATTAAAATTAACTAAAAAGAAAGA -GGTGTTAGTTATGACAGAATACTTATTAAGTGCTGGCATATGTATGGCAATTGTTTCAATATTACTTATA -GGGATGGCTATCAGTAATGTTTCGAAAGAACAATACGCAAAGAGGTTTTTCTTTTTCGCTACTAGTTGCT -TAGTGTTAACTTTAGTTGTAGCTTCAAGTCTAAGTAGCTCAGCAAATGCATCACAAACAGATAATGGCGT -AAATAGAAGTGGTTCTGAATATCCAACAGTATATAGTGCAACTTCAACTAAAAAATTACATAAAGAACCT -GCGACATTAATTAAAGCGATTGATGGTGATACTGTTAAATTAATGTACAAAGGTCAACCAATGACATTCA -GACTATTATTGGTTGATACACCTGAAACAAAGCATCCTAAAAAAGGTGTAGAGAAATATGGTCCTGAAGC -AAGTGCATTTACGAAAAAGATGGTAGAAAATGCAAAGAAAATTGAAGTCGAGTTTGACAAAGGTCAAAGA -ACTGATAAATATGGACGTGGCTTAGCGTATATTTATGCTGATGGAAAAATGGTAAACGAAGCTTTAGTTC -GTCAAGGCTTGGCTAAAGTTGCTTATGTTTATAAACCTAACAATACACATGAACAACTTTTAAGAAAAAG -TGAAGCACAAGCGAAAAAAGAGAAATTAAATATTTGGAGCGAAGACAACGCTGATTCAGGTCAATAATGC -TCATTGTAAAAGTGTCACTGCTGCTAGTGGCACTTTTATAATTTTTAGATCACGTTATGATTTATTATCA -AATCAGAATTAAAAAAGTAAATCGTATCAAAATCAAGTGTATTTAATATTAGAAAATAAAAATTTTAAAT -TTAGTATTAAAATGGAATATTACTATATATTTCAATGTGTATTATCACAGAAAATAAAATAATGCTTTAC -TTCTATATTTAAAAGTGTATAATGAAGGTTAAGTAATAAAGAGCGTGAAGAAAAATGTGAGTTATTTATA -TAGAATATTCTCCTTTTCATTTATGAATTTGTTACAAAATATTTAGTGCAAAAGCACGACGGAGGTATTC -AATATGAATAACGGTACAGTTAAATGGTTTAATGCAGAAAAAGGTTTTGGTTTCATCGAAAGAGAAGATG -GTAGCGACGTATTCGTACACTTCTCAGCAATCGCTGAAGATGGATACAAATCATTAGAAGAAGGCCAAAA -AGTTGAATTCGACATCGTTGAAGGCGACCGTGGCGAGCAAGCTGCAAACGTAGTTAAAATGTAATTTTAA -CTTATTCAAACAGTCCTTATTATAGGGCTGTTTTTTTATGCTTTAAATCGATAGCAGTTGGTGTGGTAAA -AGCACTAGCTGTTATTTTTTTGTCCAATAAATTTAGGTGGAGATCTAACAATATATAATGGTTCTAAAAT -AAATCGAACTGATGGAAAAGTTTTTTACTTTTCATCTGTCCGACTTTTGATTTTGAATATAAAAAAAGCG -CCAATACAGAACTTTAATAATGACGAGAATTAAAGTCTGTATATGGCGATAACAAGAAGTAATGTTAAAC -ACTCAAAATGTTTAACAATAATAGGATACCACATCGCATAATATCTTACTACTTAATTAATAATTTAACT -AATCAACTTTTTGTTAATTTTTTATTAAGACTGATTAATTATTGAGAATATTTATTGTTTTTAAAATCTC -ATAATAATTCAGTAATCTTGTTTTCATTTAAAAGGCGAAACATTAAAATAATTAAATAAAAATATTGTGT -TTAATTTACAGCGTCAAATATACTTATTTCTAATGCTTTGGGGTCTACTGAAACAAGTAGAGAATGATCG -ATGTTACTAACATTGCCATTATCCAAATCTATTTCTGTGAGTATTTGGAAGCTACCATTAGGCAACGGTT -TAACAATAGACAATTGCTTTTCCGCTTGTTGTATTAAAAAAGGTTTTGTAGATTGATTATTAATATGCCA -TTCACTCATGTATGTTTTTCACTCCTGCTTTAAATTAGGGTTAGAAAGTTTATAGTTGAGACATTCATGT -TCAACCAAAATTTTGTTCAAATTCAATAAATGTCTTGTTTAAAATAGAAATATTGTAAATGTTATCGTCC -AAAACTTCACCAGTTAAGTATTTGTTTTGAATTAAAATTTGGCAGTTAGTTAAGAAGTCTTGATAATCAC -GATCGCAAAAATAGTTTTCACGTGCATCTTTAGCATCGCCAAAAAAGTTAGCGACTGTTTCTGTTTCTCC -ATTATTCGAACGTTCAATATATAATTTGTAAAATTTAGCTATTGTATACTTTTGTTCTTTAGTTAGTTCA -TTCAAAATATTGGGCCTCCTGAAATATCATTTGTAATCTATACCCAATTTATTGCAAAACACAAACTAAT -TTAACTATTTGATGAAACTGTGTTAATAAGCTTTAACAAGTCTTAGTTTATATGGATCTATAAAATTATC -TTTAATTGCATAGGGTGAAATAATATGTAGTCCATAACTTTTAACTGATTTTTCACTTACACCAAATTTA -TAAGCTTGATAGATAATTTTAGTACAATACGTAAATTTTTTGCTGTTCAAATTTAATGTAACTAGATAAC -GATGATTTGTATTTTCATAGTTTTTCTTAACCCAGTCAGCCGCTTTTTTACCTGCACCAGGATAGCTGCA -ACGATAAACTTTCATCCAATCATTTTTGCCACTTGCATAATTATATTTAAAAGATTCGAAGGATTGTGTA -GTTGGTTTGTCGCCAGGCCCCTCAATTTGCAAAATCGTTTTATCATCAATCGCGATACTACAATGACCAA -AAAATCCCCACATGACAGGGCCTTTTGTAATAATAATATCACCAGGTTGTAATTGGAATTTGTCATCTTG -AATTTCTGAATACTTATTATCTGCAATTGTTTTTGGTGAGTTTATAGGGGATACGACAACGAATAATATA -AGTAAAATTAACGTTCGTTTAATATAGTTCACTTAAAAGCTCCTTGTTGAAGAAATATATGTAAATAGCC -TTGAATTATAATTTTAATCTTTAATAAGCATGCAAGACTAAAACATATCTTAAATATTAAAGTATGAGAG -TGTGAAATGTCTATTAAGAATAAAAAACAGTCTAAAACATCTTTGAGACGTTTCAGACTGGATATAAAAT -GAATTTCATTTATAGCACACCAAATATAAATGTGTATATTAAAATAGCGAATCCGAAAATATAGAGAATG -ACAGTGAAACTTAAATAGGACTCTTTTTTAGATTCTTTGCCAGTTTTTTTCATTAATACGAGTATAAACG -TAGCGGCAACTAAGAAAATTAATGCTAGCCAAAACAGAATTGCAAAATGTAAAGACATGTGAAACCCTCC -TTATATACCGTAATTATTAACCTATAAAACTATAAAAAATAGGATAAATGTAATAGAGAACGAGTACGAT -ATTTATAAAAAATAATATTTCACTTAACCAGTTTTTAGTTATCATTGCAATGGTAAAGGATACTATGAGT -ATCACACCACAAATGATAATACCAGGCAGGAGCCAACATAAATCATCTAAATCTTTATTATATGTGATTA -AAATATTAAAGATAACAAAAGTGGTAGTAATAACTATATTGATAGCATTTAACAAAATGTTATTCATGAC -TGACACCTACTAGTATAAAAATAGCTTCTTAATAAATATGATAACACTATTTTCCAATAGGTAAATAAAA -AGTATAGTTATTTTTAAAATATTATTTGTAGAATGCTAAAGTTTATTAATTCAAACAAGTGAGCATATAT -AGGGGAGTATAGTATTAATGTGAAAAGAATATTTACATACTAAAAACCCTTAAAGTTGTACAATTCGTTA -ATATTTTTAGAATCAGATAACAAAAAAATGTGCAAAATCACTTTTGCACATTTACAAATACTAGTTTTCT -GATAAGATTAATAATAACACTTTAAATAGCGTTTAATAAATGAAGGGGGCAAGTCTTATGACGTTTTACA -ATTTCATCATGGGTTTTCAAAATGATAACACACCATTTGGTATATTGGCCGAACACGTTAGTGAAGATAA -AGCATTCCCTCGATTAGAAGAAAGACACCAAGTAATTAGAGCATATGTGATGTCTAATTACACAGATCAT -CAATTAATTGAAACTACAAATAGAGCTATTAGCTTATATATGGCAAATTAATTTGAGTAGTACCAATTAT -GATGTATTAGTGCATCCCAAATATCTTTTGTTTTAAAGTTTATTTCATCATTTCTTATCGAAAATGGTGT -AATAATGTCTTTATCTAACCAAGTGTTTATAAGTTCATTTGGTACACCATCTAACAACATTTCACTTTTA -CTAATTATAAAACATTCCCAGTCAAGTGAAACATTTTGTGGATTCACATAATTACATTGATTATGATTAT -CCATAAACACTCACTCCTTTAAAATTCTGTACTCTTCATTGCGTTTTACCCCGTCACATTATCTTTTAAA -CTAAAATCATCATTACTTATGAAAAAAATGTTCATCAAAAGCAAAGGTTTTCGCTACCGAAAAAGTTTAA -ATAATGGTTTAATATATTTGGTACTCATTTTAATAAAAAGAGAATACATTTTGAGCTATCAATACTTTTT -ATTGAAGAGGTGTTATTGTTGGCTAAAACGTTATATTTAATGCGCCACGGACAAACTTTGTTTAATTTTA -AGGGACTAATTCAGGGATTTGGAGATTCGCCGCTAACAGAACTTGGAATTGCTCAAGCTCAAAAGGCACG -TAGCTATTATGAAACTAAGGGGATAAACTTCGATTTATATGCATCATCAACGCAAGAACGTGCAAGTGAC -ACACTTGAAAATGTTGCACCTAATCAATCGTATCAACGTTTTAAGGGACTGAAGGAATGGCATTTTGGAT -TATTTGAAGGTGAGTCAGTCTATCTATTTGATAATCTATACAAGCCTGAAGACTTATTCGGAGATCGAAT -TGTTCCTTTCAAAGGAGAGGCAAGGCAACAAGTTGAAGATCGCATTGTGAAAACTTTACATGACATTATG -TCTCAAACAAAGAATAATGCATTAGTCGTGAGTCATGGAACAATAATGGGAGTATTTTTAAGATATTGCC -TTAAACTAGATGAAGCATTAAAGCATAATATCGGTAATTGTAATATCTTGAAATTTGAATATGACAATGG -AACATTTAAATTTGTTGAGTTAATTGATCCAAATTTATAATAAATAAAGCGTTATACATAGACACAAGTA -TGTCTTTTGTATAACGCTTTTAAAATACAACTACATGACGCTTTAGAATAATAATTGAATAAGTTTTTGT -AATATCATCAGAGCAACAATAATAATTATTATGCTTGATATTTTATTGATTATTGTTAATAATTTTCCGG -TTTTATCAATTGATCCAACCATTTTTCCTAAAATTGCGAGTAAAAAGAACCATAACCATGAAACGCTAAT -ACAAGCGATTGTAAACGCAATTTTATTGCTGCCACTATATAATGCAGCACTACTACCAATTACACCAATT -GTATCTAAAATAGCATGTGGATTGAGTAATGAAACTGATAAAGCAAAACTTACTTGTTTCATTGGAGACA -TAATTTGAGCTTCTCCATCTGTTGAGGGTTTATCATGCCAAATGGTCCAAGCCATATACATCAAGAAAAT -TAAACCAACTATATAAATAATTGCTTGAAGTATAGGTAAAGACATAATAATGATAGAAACTCCTACCACT -GCAATAATAATAAATAAGCTGTCTGACAACCCGGCTGTAATTATTGCAGGCAATACATATCTATATTTTG -GTTGATTAGCTCCTTGGTTAAAAATAAATACATTTTGTGCACCTAAAGGTAAAATTAGACCAATCGCTAA -GATAAATCCATGAATAATTGCGGTTACCATTAAGTTTTGACACCCCTAAAACATAGAATATTCTGAAAAA -ACTTATTGATATCATACCAAATAAAAAACAACTACTCAATAGTAGAGTAGTTGTATGAAAAATAGATTAA -TATATGATTTGAATTTATGAGAAATGTAGAATATATAAAACTGTATTACTTATTAATCAAATCATAAAAA -AGCCAATGTTCATCGAAATAGGTATTTCCGATTTTAATTGCATTTTTCTCAAAACCAAGAATGTCGAATC -CTAGTGCACTATAGAAAACTTTAGCACCTATGTTGTTTGACACAATTGATGTAAGTAAAGATTCGTAATT -GTTCTGCCGTGCATAATTAATAATGAAATTAATGAGCTCGCTATTAATCGATTTATCGTTATTAGTAACA -AAGTTGTATTTAATTAATGATTTATGTTCTTTTCCAACGTATCGAATTTGTTCTAAGGCAGCTGTTGCGA -TAAGTGTTTCGTTTTCATAACAGCCAAATACAATACATTTCGGTGAACCTTGATTTAAAATGTCATGTAT -TAAGGTGTCAGTCATTGTTTGACTATAATGTGAATCTTGAGTGAATTCTTCATTGACTGTCGAAACAAGT -CTCTTATACTCATTAAAATCATTATTCGTTAATGTTTTAATTTCAATCATTACTGACCTCCTTAATCATT -ATTAAGAAAGATTTTGTACTAAAAAAATTTCTTAATTACATATTAAAATGTTTATTAAAATTTTGCAATC -ATTGATTTATATGCACATTCTTGTAAATGGATTATCAATTTAATTATATTTATTTTTAAGTTCAGGGAAT -TATGGAATTGGTTATTGGTCGACACTGGACTTTTATTTGTAGACGGTATGCGAAGAAGTCAAGCCAGTAT -TGGAACCGGTCACATTTATGATGACTAAGGGACAATCATTTTCAGTTAAATATTGCCAGAAATTTCAATC -ACGATTAGAAAAAATAACCAACCAAAAATTTTTGGTTGGCAAATTTGAATTTTATGTGAATTTTATTAAT -AACGTTGAATAATCTCTTTAAGTTAATGCTAATCTACAACATTTACATTTAAATCGACATTAATATTTCC -TTGAGTCGCTTTTGAATATGGACAAAATTCATGAGCCATTTGTAAATATTTTTCAGCTTCTTCTTGAGAT -ATAACATTTTTAATTGTCGCATCAATTGAAACACTTAATTTAGGACTTTCTGAGTCTGGATCATCTTCTA -GTCTCACTGTTAGTGTTACTTCTGGATGAGCATCACGCACTTTGTTTTGCTTTAAAATTAGGTCGAAGGC -ACCGTTGAAGCAAGATGCATAACCTGCTGCAAATAATTGTTCGGGGTTAGTAGCTTTACCATCTGCTTGA -GCAGGCGGAACGATATCAATATCTAATGCTCGATCATCAGTATAAACATGTCCTTTACGTCCGCCAACAT -TCGTCGCTTTAGTTTCATAATGTATTGCCATTCTTATAACCTCCTAATTTAAAATACATTTATGCTTTAC -CCATTCGAAAATACCTTAATCATATTCATTTATAGCATTGTTTGATTGAAGGATAAAAAGTTGTTGTTTA -CAATAAAAATAATGAGTATCTGAAATGAGGGATTTACTATGACACATGTGGAAGTAGTAGCGACTATCAC -GCCACAATTATATATCGAAGAAACTTTAATTCAAAAAATTAATCATCGTATTGATGCAATAGACGTATTA -GAATTACGAATTGATCAATTTGAAAATGTCACAGTTGATCAAGTGGCAGAAATGATTACAAAGCTGAAGG -TTATGCAAGATTCATTCAAATTATTGGTTACGTATCGTACAAAGTTACAAGGTGGCTATGGGCAATTTAC -AAATGACTCGTATCTTAATTTAATATCAGACTTAGCAAATATCAATGGCATAGATATGATTGATATAGAA -TGGCAAGCAGATATTGACATTGAAAAACATCAACGAATCATTACACATTTGCAACAGTATAATAAAGAGG -TGATTATATCACATCATAATTTCGAAAGTACGCCTCCATTAGATGAATTGCAATTTATATTTTTTAAAAT -GCAAAAATTCAACCCAGAATACGTTAAATTAGCAGTAATGCCACATAATAAAAATGATGTGCTAAATTTA -TTGCAGGCAATGTCTACATTTTCAGATACTATGGACTGCAAAGTTGTTGGTATTTCAATGTCTAAACTTG -GACTAATAAGTAGAACGGCTCAAGGCGTTTTTGGTGGTGCGTTGACTTATGGTTGTATCGGAGAACCACA -AGCTCCAGGACAGATTGATGTTACTGATTTAAAAGCACAAGTGACTTTATACTAATAAAATGAATTAGGT -TGCTTTTGTGTAAGTGCTGTCTTATAATTGAGAAGTATTATCATTGTTCGTGGAGGAGCGATTTTAGATG -GAATTACAACAAGCAATAGCTAATAGAAGAAGTGTGAAAAAATTTAAAAGAGATATGCACATAGATGACG -CATTGCTATATCAAGCAATTGAGAAAGCTGCTGATGCTCCAAATCACGGAATGAGGGAACCATGGAGAGT -TGTGCATGTTCCGAAAGACAGATTAGGAGATATGAGTAAGGATATTTCTAAATTTGCATTTCCTAATGAA -TTAGATAAGCAACAATGTCATTATGATGCAGTAACGAAACTAGGTGGCATGTTATTGCTTATTTTAAAAA -CAGATCCAAGACAACGTCAAAATGATGAAAACTACTTTGCATTTGGTGCATATGCACAAAATCTTATGTT -GTTACTTTATGAAGCGGGAATAGGTACATGTTGGAAATCGCCATTATATATCTATGATCCTAAAGTAAGA -AAAACACTTGGTATAAAGAAAGATGAAGTTCTTGCTGGATTCTTATATTTAACGGATTTAGAAGAAGATA -TGCCTAAAGCACCACGTAAAAATAGAAACTTAATTACATTATATTAATATGTATAATTATAGAAACATTA -ATAAAAGCTGAGTCATGAATTGATGGACATCTATCGAGTTAGAGATTTAATCTAACTTACTAGAGTCGGT -ACAATCACAGTCTCAGCTTTTTATTGTGCAGTATATACACATTTGTATTTTAGTATTTATTTAAAAGTTT -CTGCTAAAAATGATTCAACTTGTTCAGGTGACTTAGCATTTGCTGAATGAAGGTGTGCAATTTTGTCGCC -GTTTTTAAATACTAGCAAGCTAGGGATACCCATAACTTCATTTTCAACAACTACATCTTCTAATTCATCA -CGATTAACAGTATACCATTGGTAATCATTATATTGTTCTACGATTGGGTCAATCCATAAATCCATAGCAC -GACAGTCTGGGCACCATCCTGCCTCAAATTTAACGATTACAGGTGTATCGCTATTAATTACAGATTTAAA -TGATTCATTACTTTTGATTGCTTGCATTGTAACAACTCCTCTAGATAGTTTAATAATTTTTATTATAGCT -AAATTTATATCATAATAAAAAATTTTAGCTTCAAAATGAAAGCCTTTTGCTATGGAAAATGATATATTTA -TTTTAAATACATAAAGGAGGTTGCAGTCGTATGATTAAATTTTACCAATATAAGAATTGTACAACTTGTA -AAAAGGCAGCAAAGTTTTTAGATGAATATGGCGTAAGTTATGAACCAATTGATATCGTTCAACATACACC -TACAATAAATGAATTTAAAACAATAATTGCAAATACAGGCGTAGAAATTAATAAATTGTTTAATACACAC -GGTGCGAAATATCGTGAGCTTGATTTGAAAAATAAATTACAAACTTTATCAGATGATGAAAAGTTAGAGT -TGTTATCATCTGATGGTATGTTAGTAAAGCGTCCTCTAGCAGTAATGGGCGATAAGATAACATTAGGATT -TAAAGAAGATCAATATAAAGAGACTTGGTTAGCGTAAGTATAATGTAAACGTTTACTAAATATCTCGATA -TTTAGATTCATTACATGTAAAATGAAATAAGCTATACAATTGTTAATTTTTATAAATATAGTTGAATAGC -ATCTAGCCTTATGGCATCATTAATGATGTAAAGATTAATTAGGAGGGGATTCTCTTGGCAGTACCAAATG -AATTGAAATATTCAAAAGAGCATGAATGGGTTAAAGTTGAAGGTAATGTAGCAACAATTGGAATCACAGA -ATACGCACAAAGCGAGTTAGGTGATATTGTTTTTGTTGAATTACCAGAAACAGATGATGAAATTAATGAA -GGGGATACGTTTGGTAGCGTAGAATCAGTTAAAACTGTATCAGAATTATATGCACCAATCTCTGGTAAAG -TAGTTGAAGTCAACGAAGAACTAGAAGATAGTCCCGAATTTGTAAATGAATCTCCATACGAAAAAGCATG -GATGGTAAAAGTAGAAATTAGTGATGAAAGTCAGCTTGAAGCTTTATTAACAGCTGAAAAATATTCAGAA -ATGATTGGTGAATAATCACCGTGTAACTCCTTAATCTAAGATTGAGGAGTTTATTTTTAGTCTGAGCAAG -TAAATAATATGAAAGAAAATTTATTAGGTACTATTATTTGGAGTATTGCTACATTTTATTATTCAAGAAT -GATGAAAATAATGAATTTAGCTATTTTAAAAATAAAAATTGGGGGAGTAAATATGCTAAACATTCAAGAC -GTTAGTCATCTTTCTAAAAAGGAGCAAAAAGCATATAACCGTTTCGTAGAATCTGTAGAAAACGGTAATT -TACCAGTACTACCATGTATTGAAATGGATCTAAAAGAGATGCAAGAAGAAACATTAAACCAGAGTAAGAT -TGGTGGAATGCCATTTTTAAAATCTTTTAAAGATATACCATTAGATGAAAATAATGTACCAATGGTATTG -TTAGCACAGATTAATTTGAATGATCTTCCAGAACAACAAGAATTATTTCCTGTAAATGAAGGGATATTGC -AGTTTTGGATTAGTTCAGAAGATCAAATGTATGGTATGTCTGAAAATTTAAAGGGAAACAATATAAACTC -AAGGCTTGTTTATATAAAAGAGCCAATTACAGATTTATCACTCAAAGATATTCAAGCGCATTTGAAGTCA -TTAGATGCTGATAATGAGGATATCCCGTTCAGCGGAGCATTTTCTATAGAATTTAGATTGTCGAAACAAA -CTATTACATGTACTGATTATAAGTACGATGAGGACGATCTTGCATTGTGGAATAAAGTCAATCCATCCTT -CGCGCTAAAATCAATGTTTGGTGGTTATGATGAATTAATGGAACCTGTGTGTAACACATTTACTGCTAAG -GAACCATTTAATCAACTTGGTGGTTATCCATATTTTGACCAAATAGATCCAAGAACGAACGATCAAGAAC -TGAAAATGTATGATAGAGTCTTACTGCAAATTGATTCTACAAGAGATGGTAATTCTTCGATTATATGGGG -TGATTTAGGTATTGCCAATATCTTAGTAAAATCTACTGACCTTGAGGCTATGAAGTTTGATGATTACATG -TATTCATGGGATTGCAGCTAAGAGAATCATAAAAATATATTACTTTAATAAGTGTAGTATCTGTAGATCA -ATCTAGGGAGTGGGACAGAAATGATAAAGAACCACTAGTGATTTATAATGTAGTGGTTCTTTTTCATAAG -CCACAGCTAATGTGTACTTAAAAATAGGAATACATGAGTAAAACTCATGCATAAGAAATACTAATTTCTA -AAGAAAAAGTATATCTTTATGTTTGGGCCCACCCCAACTTGCACATTGCTTGTAAGCTGACTTACCGTCA -GCTTCTGTGTTGGGGCCCACCCCAACTTGCATTGCTTGTAAGCTGACTTTCCGTCAGCTTCTATGTTGGG -GCCCCGCTATAATTGAAAAAGGCTTGTTATAGGTGTATTTTCTTTTGGTTAACTATTGGTAATATATCAT -TGTAGATTTTAGGATGTTGATTTATGGTTTAGCCTTTGTCTGCTTATGTTAAATGTCCCAGCTAGTCAAA -CATTGATTTTGTAATTATTATATTAAGCTAGTTTAAATTTTTTGTGATTTATGTTTTATTCATACCAATT -TTGTGAAATGATACAGTGACAGATGTTTATTGATTTTAAAGGGTGATGATGATGGCTATTGTAAATAAAG -TGATAATTGTTGAAGGGAAATCTGATAAAAAAAGGGTGCAACAGGTTATTGCAGAACCAGTCAATATTAT -TTGTACTCATGGAACAATGAGTATAGATAAGCTTGATGATATGATAGAATCACTATATGATAAACAAGTT -TTTGTATTAGCCGATTCTAATGACGAAGGAGATCGAATTAGAAATTGGTTTAAACGTTATTTGAGTGAAA -GTGAACATATATTTATTGATAAAACTTACTGTCAAGTTGCGAATTGCCCCAAACAATATTTGGCGCATGT -ACTTTCAAAACATGGCTTTACTTGTAAGAAAGAAACACCTTTCTTACCGAATATAAATAATGAAAGGTTA -GTTTTAGTAAATGAATAATTCATTAGACATCAAAGATGTAACTACATTTTATGAGGAAGGTAAACATTTA -ATCTATGGTTATACACCAACTTGTGGTACGTGTAAGGTTTCAGAAAGAATGTTAGACATTACTAATGAAA -TATTGCAGTTGCCATTATTGAAAATAGATTTAAACTTTTATCCTCAGTTTTGTAAAGATATGCAAATCAT -GTCTACGCCGATTTTATTGTTGATGAATAAAGATAAAGAAGTAAAACGAATTTATGCATTTCAATCGGTG -ACTGATTTGTTAGAAAATTTAAAATAGTTATTGACGAAATTTTACTAAGGTGTTAGGATTAATACAAATT -AAATGATGCGTAAACTCTTATCGAGAGTGGTGGAGGGATGTGCCCTACGAAGCCCGGCAACCGTCTTATA -TAGAAATGGTGCCAATTCACATAAAGTTTTAACTTTTGAAGATGAGAGAAACAATACTACTATTGCTTTC -TCAATTTTTCTATCGATATTGAGAAAGCATTTTTTATTTTATTAAGCAACACAGGGAGGAATCAACGTGA -TTGAATTAAAAGAAGTTGTTAAAGAATATCGGACTAAAAATAAAGAAGTCCTTGCTGTAGATCACGTTAA -TTTATCGATTCGAGCAGGATCGATTTATGGCGTCATTGGTTTTTCTGGAGCAGGAAAAAGTACTTTGATT -CGAATGTTTAATCATTTAGAAGCGCCTACATCAGGTGAAGTTATTATAGATGGAGACCATATAGGCCAAT -TGTCCAAAAATGGATTAAGAGCAAAAAGACAAAAAGTAAGTATGATCTTCCAACATTTTAATTTGTTATG -GTCAAGGACTGTGTTAAAAAATATTATGTTTCCGCTTGAAATTGCAGGTGTCCCTAGAAGGAGAGCAAAG -CAAAAAGCATTAGAACTTGTCGAACTCGTCGGTTTAAAAGGTAGAGAAAAGGCTTATCCATCAGAGTTAT -CAGGCGGACAAAAGCAACGCGTTGGGATTGCACGAGCGTTAGCTAATGATCCAACAGTCTTGCTTTGTGA -TGAGGCAACAAGTGCACTTGATCCGCAAACAACAGATGAAATTTTAGATCTACTACTAAAAATTAGAGAA -CAACAAAATTTAACAATTATACTAATTACGCATGAAATGCATGTCATTCGTCGTATTTGTGATGAAGTTG -CAGTTATGGAAAGTGGTAAAGTGATAGAACATGGACCGGTGACACAGGTTTTTGAAAATCCGCAACACGC -TGTGACAAAACGATTTGTGAAAGAAGATTTAAATGATGATTTCGAAACATCTTTAACAGAATTAGAGCCA -TTAGAAAAAGATGCTTATATCGTTAGATTAGTTTTCGCTGGTTCAACAACAACCGAGCCTATTGTATCGA -GTCTATCAACTGCCTATGATATTAAAATTAATATTTTAGAAGCAAATATTAAAAATACAAAAAATGGAAC -AGTCGGCTTTTTAGTTCTGCATATTCCATATATTTCAAGTATAGATTTCGGAAAATTCGAAAAAGAGTTA -ATTGAGCGACAAGTTAAAATGGAGGTGTTAAGACATGGGTAAATCATTTAGTGAAATTATAAATGAAATG -ATTACAATGCCTAATATTCAGTGGCCAGAAGTTTGGACTGCAATAGTCGAAACACTATACATGACAGTCG -TCTCAACTATATTTGCATTTATACTCGGTCTTATTTTAGGTGTGTTATTATTCTTGTCTGCTAAAGGTAA -GTCTATTGGTGCAAGGTTATTTTATTCTATCGTTTCTTTCATTGTTAACTTATTTAGAGCGATACCATTT -ATTATTTTAATTTTATTATTAATTCCATTTACAAGTTTGATACTTGGAACGATAAGTGGTCCGACAGGTG -CGTTACCAGCATTGATCATTGGCGCAGCGCCGTTTTATGCAAGGCTCGTAGAAATTGCTTTTAAAGAAAT -TGATAAAGGTGTCATCGAAGCGGCCTGGTCAATGGGTGCTAATACTTGGACAGTAATTCGTAAAGTCCTC -TTACCTGAAGCCATGCCAGCGCTAGTGTCTGGCATTACAGTTACAGCAATCGCTTTAGTTGGTTCAACGG -CAGTTGCAGGTGTAATTGGTGCCGGTGGTTTAGGAAATTTAGCATACTTAACAGGTTTCACTCGAAATCA -AAATGATGTCATTTTAGTATCAACAGTTTTTATTTTAATTATTGTATTTATAATCCAATTCATTGGGGAT -TGGCTTACAAATAAACTTGATAAACGATAAATTGGGGGTTTCATTTTATGAAAAAATTATTTGGTCTTAT -TTTAGTATTAACATTTGCAGTTGTATTAGCAGCTTGCGGTAATGGAAGCAAAAGTGGCAGTGACGACAAG -AAAATAACAGTAGGTGCTTCACCAGCACCACATGCTGAAATTTTAGAAAAAGCAAAACCATTATTAGAGA -AAAAAGGTTATGAACTAGATATTAAAACAATTAACGATTACACTACGCCTAATAAATTACTAGACAAAGG -TGAAATTGACGCAAACTATTTCCAACATACACCATATTTAAACACAGAGAAAAAGGATAAAGGTTACAAA -ATCGTAAGTGCCGGTAATGTTCACTTAGAACCTATGGCTGTATACTCTAAAAAGTATAAAAGTTTAAAAG -AATTACCAAAAGGTGCAACAGTTTATGTGTCTAATAATCCAGCTGAACAAGGACGCTTCTTAAAATTCTT -CGTTGATGCAGGTTTAATTAAGATCAAAAAAGGCGTAAAAATTGAAGATGCTAAGTTTAGTGATATTACA -GAGAATAAAAAAGATATTAAGTTTAATAATAAACAATCAGCAGAATTCTTACCTAAAATTTATCAAAATG -AAGACGCGGATGCTGTTATCATTAATTCAAACTTTGCAATCGAACAAAAACTAAATCCTAAAAAAGATTC -TATTGCTGTAGAAAGTGCGAAAGATAATCCTTATGCAAACTTAATTGCTGTTAAAGAAGGACATCAAGAT -GATAAGAAAATCAAAGCATTAATTGAAGTATTACAATCTAAAGATATTCAAGACTTCATTAATGAAAAAT -ACAACGGTGCAGTTATTCCTGCTAAATAATTAATAATTAAGCTCATTGACTGATATGCTCCCATCAAAGT -AGACATTGAAAAAATGCAAACTTTGATGGGGGTTTTTTTTAATTAGAATCAATATGAAATGTAGAAGATT -TAATATGATAAGAGATGAATAACTATATATAAATGATTATCAAGTCATTATGTATTAAGTGAAGCCTATA -CGCTTCTGTGACTTCAATCAATGTCCAAAGCTTTACAATGATATATAAGCAGTAGTTGATTGAATGAAAA -TACGATTGTAACAACCTTTTTACAATAATTGCGGGGCCCCAACATAGAGAATTTCGAAAAGAAATTCTAC -AGGCAATGCGAGTTGGGGTTGGGCCCAACATAGAAGCTGATGGAAAGCCAGCATACAATAATGTGCAAGT -TGGCGGGGCCCCAACACAGAGGATTTCGAAAAGAAATTCTACAAACAATGCGAGTTGGGGTTGGTCCCAA -TACAGAAGCTGACGAAAAGCCAGCTTACAATAATGTGCAAGTTGGGGGGGCGGGGCCCCAACACAGAGAA -TTTCAAAAAGAAATTCTACAAACAATGCAAGTTGGGGTTGGATGACGAAATAAATTTTGCGAAAATATCA -TTTCAGTCCCACTCCCAAGAACCATTTCATAATAAATCATTAGTGATTCTTTATTATTTTAGTTCCGCTC -CCTCAAGTTAATGATGAATCTATTTCGCTAGTTATAAAATGACGTCAAATCAATATCAAAAATTATTTAA -GTAAAATGTTTAGATAATTTTTCAGTGGGTAAGTATTATATATAACATTTAATTATTCCGAGGAGGCATT -TATTATGGCAGACGAAAGTAAATTTGAACAAGCAAAAGGTAATGTTAAAGAAACAGTAGGTAATGTTACT -GATAATAAAAATTTAGAAAACGAAGGTAAAGAAGATAAAGCTTCTGGTAAAGCGAAAGAATTCGTTGAAA -ATGCAAAAGAAAAAGCAACTGATTTTATTGATAAAGTAAAAGGTAACAAAGGAGAGTAATTTTACTTTAT -ATTCCTAATACACTGCACATGCCACTTAGTCGGTATAACCATCGGCTAGGTGGTTTTTTGTATTAAAAAA -GTGGATACCAAAATTTATTAATAATTATTTTAATGTTAGAAAAAAACTAAATAAAAACTCGTTAATGATA -TCCAATAATATGTATACAAAACGAGACATATATTGCATATGATTAACGAGATACTGAATATATTTTATCA -CCCCTAAAATGATTATTCATTTTCAGCGGTAATTCGACCTAAAGTCAAACTTACAATAAAACCGATGATA -AATACTACTAATGAAACGAACCACATCACGATATTAGTTGGTAAACCTGGAAATACTGCAAAGAGGGAGC -CAACAACAAAACCAATGATTAATGCAAAAGTCATTAGTTTATGATGTGTTAGGAAATACTGGATAATTTT -GCTTGAAATAATGAATCCAGCAAGCACGCCAAATCCGACTGCAAGTAATATAGGAAGACCGGCAAAGTTA -AGTTTAACAACTTCAGATATTGCTAGCATGACCGTACCATAGACGCCAAATACTAATAACATAAATGACC -CTGAAATACCTGGGAGTAACATAGCACTAGATGCACACATACCTGCAATAAAGTATTTAATAATAAGACC -AGTTGATAGAGTAAGTGTTTCTCCAGCATGTTTATCGCTATTATTCATTAATGTAATAACAATTAAGATA -GCGATACCAGCTATAACCATCATGTAATGTTTAGTTGTAAATGACGTTTTATAGTTAGAAATTTTCAATA -AATATGGAACGATACCAATGATTAATCCACCAAAGAAAAACATAGTTGGAATATGGTGTTGGCTTAATAA -ATAATTAAAAAGATTACTTAGTGATCCCATTGCCAGTAACATTCCAATTATAATAGGGATTAAAAATGTA -AAACTTGGCCAAAAACGTCGTGAGAATATGCCACTAATTGAAGCGATAAATTGATTGTATATACCTAACA -ATAATGCAATAGTCCCACCGCTAACACCAGGTACCAAGTCACTCGTTCCCATAGCAAAACCTTTTAGAAT -ATTAATCCATTTAAATTGTTGCATGAATAACTCCTTTCAAACGATTGGAATAAAATCATAAATAGCATCA -TACCATATTACAAATGTCCTAGTGAAATGATAACATATTTTAAATTCATAAAATCCATTGAGAAATTATG -TGTTCTTATTATCATTTATATTTTTAAAGAGAGCGGATTAGAGTTGTACTTTAGAGTTATTAAAAATAAT -AAAAAGGGTTTAAGTTGTTTATATTAAGGTATAAGTAAGTTATAATTAACTGAACGCATTATTACAAAGT -CTTTTTGACTACAAATTAAAATTATTATAAACTAGTTAAGAAAACTTTATATTTTACGGAGGGAATATAA -AATGGCATCAACATTAGAAATCAAAGACCTACATGTGTCTATTGAGGATAAAGAAATCTTAAAAGGTGTT -AACTTGACAATTAACACTGATGAAATACATGCGATTATGGGACCAAACGGGACAGGTAAATCAACTTTGT -CATCTGCAATTATGGGACACCCAAGTTATGAAGTAACTAAAGGAGAAGTACTTTTAGACGGTGTAAATAT -TTTAGAATTAGAAGTTGATGAAAGAGCAAAAGCAGGATTATTCTTGGCAATGCAATATCCATCAGAAATT -ACAGGTGTTACAAATGCTGATTTCATGCGTTCAGCTATCAATGCGAAACGTGAAGAAGGACAAGAAATCA -ACTTAATGCAATTTATTAAGAAATTAGATAAAAATATGGATTTTCTAGACATAGATAAAGACATGGCACA -ACGTTATTTAAATGAAGGTTTCTCAGGTGGAGAGAAGAAACGTAACGAAATCTTACAATTAATGATGTTA -GAACCTAAGTTTGCAATCTTAGATGAAATCGATTCAGGGTTAGACATCGATGCATTAAAAGTTGTATCTA -AAGGTATTAACCAAATGCGTGGGGAAAACTTTGGTGCATTAATGATCACACACTATCAACGATTATTAAA -TTACATTACTCCTGATAAAGTACATGTAATGTATGCTGGTAAGGTCGTTAAATCTGGTGGTCCAGAATTA -GCAAAACGTCTTGAAGAAGAAGGATATGAATGGGTTAAAGAAGAGTTCGGTTCAGCTGAATAATCTTATT -AATACAGTATCCATGAGATGTTCATCTATATATGATGAAAATGAACATTTATACGAAATAGTAAATTTCA -TCAAGTAGGAGGAAAAAGTTATGACAACTGATATTTTGAACATTTCTGAAGAACAACTTGTTGATTATTC -TAAAGCCCACAATGAACCTTCTTGGATGACAGAATTACGTAAAAAAGCTTTGAAATTAACAGAAACTTTA -GAAATGCCAAAACCTGATAAAACAAAATTAAGAAAATGGGATTTTGATTCTTTTAAACAACACGATGTAA -AAGGTGATGTTTATCAATCTTTATCACAATTACCTGAGTCAGTAAGAGAAATTATTGACGTAGATCATTC -TAAAAACTTAGTAATTCAACATAATAATACGATTGCGTACACACAAGTTGATGATAATGCATCGAAAGAT -GGCGTTATCGTTGAAGGTTTAGCAGATGCTCTTATGAACCATAGTGATTTAGTACAAAAGTACTTTATGA -AAGATGCAGTAACAGTAGATGAACATCGTATCACAGCGCTACACACGGCATTAGTTAATGGTGGCGTATT -TGTTTATGTTCCTAAAAATGTAGTTGTAGAACATCCAGTACAATACGTTGTGTTGCACGACGACGAAAAT -GCAAGCTTTTATAACCATGTCATCATCGTTACTGAAGAAAGCGCCGAAGTCACATATGTTGAAAATTACT -TATCAAATGCATCTGGTGAAGGAAATCAATTAAATATTATTTCTGAAGTGATTGCTGGTGCAAATTCAAA -TATCACATATGGCTCAGTAGACTATATGGATAAAGGCTTTACAGGTCATATCATTCGACGTGGTATTACT -GAAGCGGATGCCTCAATTAATTGGGCATTAGGTTTAATGAATGAGGGTAGCCAAATTATTGATAATACAA -CAAATTTATTTGGTGATCGTTCAACAAGTTCACTTAAATCAGTAGTTGTAGGTACAGGCGAACAAAAAAT -TAATCTAACATCTAAAATCGTACAATATGGTAAAGAAACTGATGGTTATATCCTTAAACATGGTGTTATG -AAAGAACATGCATCATCTGTATTTAATGGTATCGGCTACATTAAGCATGGTGGAACTAAATCAATTGCTA -ATCAGGAATCACGTGTATTAATGTTATCTGAACATGCTCGTGGTGACGCGAATCCTATTTTATTAATTGA -TGAAGATGATGTACAAGCTGGTCATGCTGCATCAGTAGGTCGTGTTGATCCAGATCAACTTTACTATTTA -ATGAGTCGTGGGATTTCTCAAAGAGAAGCGGAACGTCTTGTTATACATGGTTTCTTAGATCCAGTAGTAC -GTGAATTACCTATCGAAGACGTTAAACGTCAATTGAGAGAAGTAATTGAACGCAAAGTTTCTAAATAATA -TTTTGAAAATAAAAGTTTGTAATAGATATAGACTGTCGATATTGGTATAAGACTAATACAACGTCAGTAT -TTAAATGATTAGGATTTTTATTTAAGAAAGGTCGTGAATGAAGTGGCCGAACACTCATTTGACGTTAATG -AAGTAATCAAGGATTTTCCGATATTAGATCAAAAAGTCAATGGCAAACGTTTAGCATATCTTGATTCAAC -AGCGACAAGTCAAACGCCTGTGCAAGTGTTAAATGTTTTAGAAGATTACTACAAGCGTTATAATTCAAAC -GTTCATCGTGGTGTTCATACATTAGGATCATTAGCAACTGATGGTTATGAAAATGCCCGTGAAACCGTTC -GTCGTTTTATTAATGCGAAGTATTTTGAAGAAATCATTTTTACACGCGGAACAACTGCGTCGATTAACCT -TGTAGCACATAGCTATGGTGATGCAAATGTTGAAGAGGGCGATGAAATTGTTGTCACTGAAATGGAACAT -CATGCCAATATTGTTCCTTGGCAACAGTTAGCAAAGCGTAAAAATGCGACATTGAAATTTATACCAATGA -CAGCTGACGGTGAATTAAACATCGAGGATATTAAGCAAACGATTAATGATAAAACAAAGATCGTTGCTAT -TGCACATATTTCTAATGTACTCGGTACAATTAATGATGTTAAAACCATTGCAGAAATAGCTCATCAACAT -GGTGCAATTATCAGTGTTGATGGGGCGCAAGCAGCACCACATATGAAACTTGATATGCAAGAAATGAATG -CTGATTTTTATAGTTTTAGTGGACATAAAATGCTTGGACCAACAGGTATTGGCGTATTATTTGGTAAACG -TGAGTTACTACAAAAAATGGAACCGATTGAGTTCGGTGGCGACATGATTGATTTTGTAAGTAAGTATGAT -GCAACATGGGCTGATTTACCTACTAAATTTGAGGCGGGTACTCCATTAATTGCTCAAGCAATTGGGCTTG -CAGAAGCTATTCGCTATTTAGAACGCATAGGTTTTGATGCAATTCATAAATATGAACAAGAATTAACGAT -ATATGCTTATGAGCAAATGTCTGCAATTGAAGGAATTGAAATTTATGGCCCGCCAAAGGATCGTCGTGCA -GGTGTAATAACGTTTAATTTACAAGATGTACATCCACACGATGTTGCTACAGCCGTAGATACAGAAGGTG -TAGCGGTTAGAGCTGGGCATCATTGTGCGCAACCGTTAATGAAATGGTTAAATGTGTCTTCAACAGCTAG -AGCGAGTTTTTATATATACAACACGAAAGAAGACGTTGATCAGTTAATTAATGCCTTGAAACAAACGAAG -GAGTTTTTCTCTTATGAATTTTAATAATCTAGATCAATTATATAGATCTGTCATTATGGATCATTATAAA -AATCCTAGAAATAAAGGTGTATTAGATAACGGGTCTATGACAGTAGATATGAATAACCCGACATGCGGTG -ACCGTATACGACTAACATTTGATATAGAAGACGGCATTATAAAAGATGCTAAGTTTGAAGGTGAAGGTTG -TTCGATTTCAATGGCAAGTGCATCGATGATGACACAAGCCGTTAAAGGTCATTCACTTGGAGAAGCAATG -CAAATGAGCCAAGAATTTACGAAAATGATGCTTGGTGAAGACTATGTGATTACAGAAGAAATGGGAGATA -TTGAAGCATTGCAAGGTGTATCTCAATTCCCAGCTCGTATTAAATGTGCCACATTAGCTTGGAAAGCATT -GGAAAAAGGTACTGTTGCTAAAGAAGGTAAAGCAGAAGGTACGACTGAAGAAGAATAGAATGCTGTTAAT -CATAGATGATTTTGATATTAGACATATAATAGTAAAAAAATTTTTATATGATGTCATGTCATTGTTATAA -TATGGTTTACATCATGAATTAAAAACTTACGCACGCCGTTGTAAATATATTTTTAAGGAGTGATTGAAAT -GGCTAAAAAAGCACCTGATGTTGGGGATTATAAATATGGATTCCACGACGATGATGTGTCCATTTTCAGA -TCAGAACGTGGTTTAACTGAGAATATCGTTAGAGAAATTTCTAACATGAAAAATGAGCCGGAATGGATGT -TAGATTTCCGTCTTAAATCATTAAAATTGTTTTATAAAATGCCAATGCCTCAATGGGGTGGCGACTTATC -AGAATTGAATTTCGATGACATTACTTACTATGTAAAGCCTTCAGAACAAGCTGAACGTTCATGGGATGAA -GTGCCTGAAGAAATTAAAAGAACTTTCGATAAATTAGGAATTCCTGAAGCTGAACAAAAATATTTAGCTG -GTGTTTCTGCTCAATATGAATCTGAAGTTGTTTACCATAATATGGAAAAAGAACTTGAAGAAAAAGGTAT -TATCTTTAAAGATACAGATAGTGCTTTACAAGAAAATGAAGAATTATTCAAAAAATACTTTGCTTCTGTA -GTACCTGCAGCAGATAACAAATTTGCGGCGTTAAACTCAGCAGTATGGTCAGGTGGTTCGTTCATTTATG -TACCTAAAAATATCAAACTAGATACGCCACTACAAGCTTATTTCCGTATTAACTCTGAGAACATGGGTCA -ATTTGAACGTACATTAATCATTGCTGATGAAGGTGCTTCTGTACATTACATAGAAGGTTGTACTGCACCA -GTTTATACAACTAGTTCTTTACACTCTGCTGTTGTGGAAATCATTGTGCATAAAGATGCGCACGTTCGTT -ATACTACGATTCAAAACTGGGCGAACAATGTATACAATTTAGTTACGAAACGTACTTTTGTTTATGAAAA -CGGAAATATGGAATGGGTAGATGGTAACTTAGGTTCTAAGTTAACGATGAAATATCCAAACTGTGTTCTT -TTAGGTGAAGGTGCAAAAGGTAGTACATTATCTATTGCATTTGCTGGTAAAGGACAAGTTCAAGATGCCG -GTGCTAAAATGATTCATAAAGCGCCAAATACATCTTCAACGATTGTTTCTAAATCTATTTCTAAAAATGG -TGGTAAAGTTATTTATCGCGGTATTGTTCATTTTGGACGTAAAGCAAAAGGCGCTCGTTCAAATATTGAA -TGTGATACATTAATCTTAGATAACGAATCAACATCAGATACAATTCCATATAACGAAGTATTCAACGATC -AAATATCATTAGAACATGAAGCGAAGGTTTCAAAAGTTTCTGAAGAACAATTATTCTATCTAATGAGTCG -TGGTATTTCTGAAGAAGAAGCGACAGAAATGATTGTTATGGGATTCATCGAACCATTTACAAAAGAACTT -CCAATGGAATACGCGGTCGAAATGAACCGTTTAATCAAGTTCGAAATGGAAGGTAGTATTGGGTAGCTTT -AAACCGCGTTGTTAAGCCATTCTTAACTGTCGAAAACGGTTATTGATACCATTTTGATACTGAATATAAC -AAAAAGCCACATTACTGTGGCTTTTTTTGTTTTATAACTAAATCGGATTGATAGATAAGCTTTGTACTTA -TTTATATCAGTCCGATTTTTTGATTGGTGTAAAAAATAATCATTGATGCTAGATAAAGCGACAACATAAA -TACAACATGATTGTGGCATTAGAGTGCTGGTCTTTATTAAATTAATTGAAAACTACATCAAATATCCTTT -AAAGATAATTCGATAATAGTTCGATTAAGTTTCGTTGTATAAGTGAGTTAAAATAAGAAAACTATTAATA -AAATTAAGTTCACTACAGATGTTGCTAATGGACCGTAAGTTTTAAAGACATCTTTACTTTTATAACCAAC -AATCGCATCTAAAAATTGAACTAAAATCATTGCAATGGATATAGTTATCAAAAATATAGCACTATGAATG -ACTAAAGAAAAAATAGCTAATAAAAATAAAGGTAAGCTTCGACTAAGTGCATAATATGCATTTATATTAT -GGCTAGATGCACAAGCTTGAATTGAATAACCTAAACTCACACTGGCACTAATGAGTGTAAATATTGCTAA -AACAAAATACATGTTAATCCTTCTTTCTATATTTGAATATCTGTAAACAAGTACTTGTCTAAAGATATTT -AAAAGATAATTAGAATAAATTTATGAGAAACTTTTTGTTATCATTATAGCGATTTCAAATCATTATAACT -ATGTCATAAACTAAATTTGTTAAAATTTTTCATTATGTAAATTTATTAATAACAATTAGGTCGAATTATA -GCATCATTTTACTAATAAATACATTAAAGTAGCTATGATTAAAAATGCATATTAATTATCATTATTAAGT -CTATTATATATAATGAATTTTAACTGGTTTATTAAACGAGAACGTCGGGAATTAGGTAACTACAATAAAA -ATAAGATATGACAATAAGGAGACTACACGCGTGATCATTGCCATAATTATATTGATATTTATTTCGTTTT -TCTTTTCAGGAAGCGAGACGGCATTAACGGCTGCCAATAAAACAAAATTTAAAACTGAAGCTGACAAAGG -TGATAAAAAAGCAAAAGGCATTGTAAAGTTACTTGAAAAACCAAGTGAGTTTATTACAACTATTCTAATT -GGGAATAATGTCGCGAATATTTTATTACCAACACTTGTTACAATTATGGCTTTACGTTGGGGGATTAGCG -TTGGGATTGCATCAGCTGTTTTAACAGTTGTTATCATTTTGATTTCCGAAGTGATTCCCAAGTCTGTCGC -TGCGACATTTCCAGATAAAATAACAAGGCTTGTATATCCAATTATAAATATTTGTGTCATTGTGTTCCGT -CCTATCACATTACTTTTAAATAAGTTGACGGACAGTATTAATCGAAGTTTATCTAAGGGTCAACCTCAAG -AACATCAATTTTCAAAAGAAGAATTTAAAACAATGTTAGCAATTGCTGGACATGAAGGTGCTTTAAATGA -AATTGAGACGAGTAGGTTGGAAGGTGTCATTAATTTTGAAAATTTAAAAGTAAAAGATGTTGATACAACA -CCTAGAATTAATGTGACGGCATTTGCTTCAAATGCGACATACGAAGAAGTTTATGAAACGGTTATGAATA -AGCCATACACTAGATATCCAGTGTACGAGGGAGATATTGATAACATTATTGGGGTGTTTCATTCTAAATA -TCTGTTGGCTTGGAGTAATAAAAAAGAAGATCAAATTACAAACTATTCAGCTAAGCCATTATTTGTGAAT -GAACACAATAAAGCTGAATGGGTATTACGTAAGATGACTATTTCTAGAAAACATTTAGCAATTGTGTTGG -ACGAATTTGGTGGTACTGAAGCGATAGTGTCACATGAAGACTTAATTGAAGAATTATTAGGTATGGAAAT -TGAAGATGAGATGGATAAAAAGGAAAAAGAAAAACTTTCTCAACAGCAAATTCAATTTCAACAACGGAAA -AATCGCAACGTATCTATATAAGGAGCGAACAGCTATGTGGAATAAGAACCGACTTACTCAAATGTTAAGT -ATTGAATATCCAATTATACAAGCAGGTATGGCAGGAAGTACGACACCGAAATTAGTTGCATCAGTAAGTA -ACAGTGGTGGATTAGGCACAATAGGCGCAGGTTACTTTAATACGCAGCAATTAGAAGACGAAATAGATTA -TGTACGCCAATTAACGTCAAATTCTTTTGGTGTAAATGTCTTTGTACCAAGTCAACAATCATATACCAGT -AGTCAAATTGAAAATATGAATGCATGGTTAAAACCTTATCGACGCGCATTACATTTAGAAGAGCCGGTTG -TAAAAATTACCGAAGAACAACAATTTAAGTGTCATATTGATACGATAATTAAAAAGCAAGTGCCTGTATG -TTGTTTTACTTTTGGAATTCCAAATGAATCTATTATAAAAAGATTGAAAGAAGCAAACATTAAGCTAATA -GGTACAGCAACAAGTGTTGATGAAGCTATTGCGAATGAAAAAGCAGGTATGGATGCTATCGTTGCTCAAG -GTAGTGAAGCAGGTGGACATCGTGGTTCATTTTTAAAACCTAAAAATCAATTACCTATGGTTGGAACAAT -ATCTTTAGTGCCACAAATTGTAGATGTCGTTTCAATTCCGGTCATTGCCGCTGGTGGAATTATGGACGGT -AGAGGAGTTTTGGCAAGTATTGTCTTAGGTGCAGAAGGGGTACAAATGGGCACCGCATTTTTAACATCAC -AAGATAGTAATGCATCAGAACTACTGCGAGATGCAATTATAAATAGTAAAGAAACAGATACAGTCGTTAC -AAAAGCGTTTAGTGGAAAGCTTGCACGCGGTATCAACAATAGGTTTATCGAAGAAATGTCCCAATACGAA -GGCGACATCCCAGATTATCCAATACAAAATGAGCTAACAAGTAGCATAAGAAAAGCCGCAGCAAACATCG -GCGACAAAGAGTTAACACATATGTGGAGTGGACAAAGCCCGCGACTAGCAACAACGCATCCCGCCAACAC -CATCATGTCCAATATAATCAATCAAATTAATCAAATCATGCAATATAAATAATCGACCGCAATCCACAAA -AGCACAAGCACCCCCAAACATTATTTTAGTGCTTGTCATTTTTGTGGATTGCGTTTCTATTTTACCAATC -TAGTCAAACGAAATTATCGAGCTAAAGTTCGCTGAAATGTTTATGATCAAACGAAATCATCAAGCTAAAG -TTCACTGAAATGATTATGATCAAACGAAATTATCGAGCTAAAGTTCACTGAAATGATTATAATCTAACGA -AAACATCAAACTAAAGTTCGCTGAAATGATTATGATAAAAGTTATATGGTATGATGACATTGGTGATATA -TATGATAAACATCGGATTAACAGGTTGGGGTGATCACTATTCATTATATGAAGATTTAGAACGCCAAACC -GATAAACTTAAAACATATGCTGGACATTTTCCGGTTGTCGAATTAGATGCGACATACTATGCGATACAAC -CGGAAAGAAATATATTGAAATGGATAAAAGAAACGCCTGATACATTTGAATTTGTGGTCAAAATTCATCA -AGCACTCACATTGCATGCAGACTACAAAACATTTGCAGATACAAGGCAAGAACTATTTGATCAATTTAAA -AATATGTTAGAGCCCTTACATACACAGAAAAAATTAGCAATGGTATTAGTTCAATTTCCTCCGTGGTTTG -ACTGCAATGCACAAAATATCAAATATATTTTGTATGTAAGACAGCAATTACAAGCATTTCCAATGTGTGT -AGAATTTAGGCATCAATCATGGTTTAGTGATGCATTTAAAGAACAAACATTGGCATTTTTAACAGAACAT -CAGATCATTCATGCAGTAGTTGATGAACCACAAGTGAAAGATGGCAGTGTACCTTTAGTCAATCGAATCA -CAAATGAAATTGCGTTTGTACGTTATCATGGACGTAATCATTATGGTTGGACTAAGAAAGATATGTCAGA -TCAAGAATGGCGAGATGTACGCTATTTATATGATTATAATGAGCAAGAATTAATAGACTTAGCACAAAAG -GCACAAATATTAGCACAAAAAGCTAAGAAAGTTTACGTCATATTTAACAATAATTCTGGTGGTCATGCAG -CAAATAATGCCAAAACATATCAGCGATTATTGAATATAGAATATGAAGGGTTAGCACCACAACAATTAAA -ATTATTTTAAGAGGCGACGACTATGTTATTAACAATTACATTATTAGTTCTAATCGGTGGTTTGTCAGCG -ATTATAGGGTCAATCGTAGGCATTGGAGGCGGTATTATTATCGTTCCAACAATGGTTTACCTCGGTGTTG -AACATGGATTACTACATAATATTACAACGCAAATAGCGATTGGGACATCGTCTGTCATTCTAATTGTGAC -AGGACTTTCTTCATCGCTTGGATATCTAAAAACAAAACAAGTTGATATTAAAAATGGCTCTATCTTTTTA -TTTGGATTATTACCAGGTTCATTGCTTGGGTCATTCATTAGTAGATATTTAACATTTGAGTCATTTAATT -TATATTTTGGAATCTTTTTAATCTTTGTAGCTATTTTATTAATGGTAAGAAATAAGATTAAACCGTTTAA -AACATTTGATAAACCAAAGTATGAAAAAACTTATGTAGACGCTAAAGGTAAAACATATCATTATAGTGTG -CCACCATTGTTTGCTTTTATTACAACGTTTTTAATTGGTATATTGACAGGTTTATTTGGTATTGGAGGTG -GCGCACTAATGACGCCACTAATGCTTATTGTATTTAGATTTCCACCTCATGTAGCTGTTGGAACAAGTAT -GATGATGATTTTCTTTTCAAGTGTCATGAGTTCTATAGGGCACATTGCTCAAGGTCACGTAGCTTGGGGT -TATGCAATCATTTTAATTATATCTAGTTATTTTGGTGCGAAAATCGGTGTCAAAGTGAATCAATCAATTA -AATCAGATACGGTAGTAACATTATTGAGAACAGTAATGTTGTTAATGGGTATATATTTAATTATTCGTGC -GTTGATTTAATACAACTTTAAAAGGAGGACGTCAATTTGAGGCTTACAATTTATCATACGAACGATATTC -ATAGTCATTTACATGAATACGAACGCATTAAAGCATATATGGCAGAACAACGGCCACGACTTAATCATCC -TTCTTTATATGTTGATCTAGGTGATCATGTAGATTTATCCGCACCTATAACAGAAGCAACTTTAGGTAAA -AAGAATGTAGCATTACTAAATGAAGCAAAATGTGATGTTGCAACAATCGGTAATAATGAAGGGATGACCA -TTTCACACGAAGCTTTAAATCACCTTTACGACGAAGCAAAATTTATAGTGACATGTAGCAATGTTATAGA -TGAATCAGGTCATTTACCAAATAATATCGTTTCTTCTTATATTAAGGATATAGACGGTGTGAAAATACTA -TTCGTTGCAGCGACAGCACCTTTTACCCCATTTTATCGTGCACTAGATTGGATTGTTACCGATCCACTTG -ATTCTATAAAAGAAGAAATTGAACATCAACGAGGTAAATTTGATGTATTAATCGTGCTAAGTCATTGTGG -CATTTTCTTCGATGAAACATTATGCCAAGAATTGCCTGAAATTGATGTCATTTTTGGTAGTCATACGCAT -CATTATTTTGAACATGGTGAAATTAATAATGGTGTACTGATGGCGGCAGCTGGAAAGTATGGTAATTATC -TTGGAGAGGTTAATTTAACTTTTGAGGCACATAAAGTAGTACATAAAACTGCAAAGATTATTCCTTTAGA -AACATTACCTGAAGTTAAAACTTCATTTGAAGAAGAAGGAAAAACGCTAATGTCTAATCCAGTAATTCAA -CATCCAGTAGTGCTTAAGCGTAGTATGAACCACATAACTGAAGCTGCATACTTATTAGCTCAAAGTGTTT -GTGAGTATACACATGCTCAATGTGCTATCATCAATGCTGGCTTACTCGTTAAAGATATTGTAAAAGATGA -AGTGACTGAATATGACATTCATCAAATGTTACCGCATCCGATTAATATGGTAAGGGTTAGACTTTCTGGT -GTGAAATTAAAAGAGATTTTAGCTAAAAGTAATAAACAAGAATATATGTATGAACATGCACAAGGTTTGG -GTTTCAGAGGGAATATATTTGGAGGATATATTCTTTATAATTTAGGGTACATTCATTCTACAGGGCGTTA -CTATCTGAATGGAGAAGAAATCGAAGACGACAAAGAATATGTATTAGGTACGATAGATATGTATACGTTC -GGTCGTTATTTCCCAACATTGAAAGAATTACCAAAAGAGTATTTAATGCCAGAGTTTTTAAGAGATATAT -TTAAAGAAAAATTATTGGAATATTAAAAAGTAAGATTATTGGATTTTCATTTGTCATGAATTTCGATATA -ATGTTTAAAGATACACTTAACAGGAGGGTATGTGTTGTTATGGCGACAAAAAACGAGGAAATATTACGTA -AACCGGATTGGTTGAAAATAAAATTAAATACCAACGAAAACTATACAGGACTTAAGAAGATGATGAGGGA -AAAAAATCTTAATACTGTATGTGAAGAAGCTAAATGTCCTAATATACATGAATGTTGGGGTGCACGTCGT -ACAGCGACATTTATGATTTTAGGTGCCGTATGTACAAGAGCTTGTCGTTTTTGTGCGGTTAAGACAGGTT -TACCTAATGAACTTGATTTAAATGAGCCTGAACGTGTAGCTGAATCAGTTGAATTAATGAACTTGAAACA -CGTTGTTATCACTGCTGTTGCGCGTGATGATTTAAGAGATGCTGGTTCAAATGTTTATGCTGAGACAGTA -CGTAAAGTTAGAGAAAGAAATCCATTTACAACGATTGAAATTTTACCATCAGATATGGGCGGGGACTATG -ATGCGTTAGAAACATTAATGGCTTCAAGACCTGACATTTTAAACCATAATATTGAAACTGTTCGTCGATT -AACACCGAGAGTTCGTGCGCGTGCGACATACGACAGAACATTAGAGTTTTTACGTCGTTCAAAAGAATTA -CAACCGGATATCCCAACTAAATCAAGTATTATGGTTGGATTAGGTGAAACTATAGAAGAAATTTATGAAA -CGATGGATGATTTACGTGCGAATGATGTAGATATTTTAACGATTGGTCAATATTTACAACCTTCACGTAA -ACATTTAAAGGTTCAAAAATATTACACGCCTTTAGAGTTTGGTAAATTAAGAAAAGTGGCAATGGATAAA -GGGTTTAAACATTGTCAAGCTGGACCTTTAGTACGTAGTTCATATCATGCGGATGAGCAAGTAAATGAAG -CTGCTAAAGAAAAGCAACGCCAAGGTGAGGCACAGTTAAATAGTTAATATTTAACCATTAATAAGGCATA -AAGGCTTAGTTTGTACAAAACGAACGTGTCATAGAAGTAATCATTATTTTTATGAAACACTAAAGTATAA -ACTGAGCCTTTCATTGTCATAGATAGGTGAAGAATTTGATAAAAGTAGATCAACATTACTTTGAATTAAT -AGAAAATTATCGCGAATGTTTTAATGAAGAACAATTTATTGCTAGGTATTCAGATATTTTAGATAAATAT -GATTACATTGTTGGTGACTATGGTTACGATCAATTACGATTAAAAGGTTTTTACAAAGATTCTAATAAAA -AAGCAGAGATGAGTAAACGTTTTTCAAATATTCAAGATTACATATTTGAATATTGTAACTTTGGTTGTCC -TTACTTTGTATTAAGACATTTGTCTAAACAAGAGGTTAAAAAGTTAATCGAAGAAGTTCATCCGTCTGAT -GTGATAGATGACGACAATAAACTTCAAGATGTGAAGATTAAGCCAACCATTCAAGATACTGAACATTAAT -AAAACCCTTAGCTAGATTGAAAATGGGAATCATGCAATTCAAGCATGGACCTGTAATCTAGTTAGGGGTT -TTTATCTTTAATGAATGACTTCATTTAAATACTCTGTAATTTCATCGCCTTCTTCAGCATTTACACCTAA -AATATGAGCAATATAGCCTTCTTCTTTTAAATCATCAGTACCGATAATACCGAATTTATTTGTTTGCATA -TTAAGTACGAGTGTCTTACCATAATGTCTATTTGTATGGACTAGCATTAAATCATATCGACTATGCTCGC -CAACAAAACCAACAAACTGAACTTGACTCTCTTCGTTGTCATCATATAAATACATATCAATCATTTTGTA -GCGACTCCTTTTAAAAGTAGTAAAGTTAGTATAACGACAAATGAAGTATACTGCAAAATTATGATAATAT -ATAAGCGAGAGGTGACAAGGAATGTATTTTGTAGACAAAGATAAACTAACTCAGAAATTAGCCTATTTAC -AAGCATTAACTGATGATTATCATGAGAGTAAGCACAATCATTATGCATTTGAACGCATTGCTCAAATGTT -GATAGAATCATCGGTAGATATAGGGAATATGATTATCGATGCATTTATTTTAAGGGATCCTGGTAATTAT -AAAGATGTGATTGATATATTAGAACTAGAAAATGTTATTACTAAAGAAACACAGCAGGCGATTAATAAAA -CTGTCGATATTCGTAAACAATTTACATATGATTACACAGCCTTAGATATTAAGGTTATCATGCCAATGTT -TGATGACGCATTACCTTATTACAAACAATTTATTACAGAAGTAACGACATTTTTACATCAAGAAAATGTA -CCAGTAACAGCTTTTGGTAAAGGAGAAAATCAATAATGAAACAGTATAAAGCGTATTTAATCGATTTAGA -TGGCACAATGTATATGGGAACAGATGAGATTGATGGAGCAAAACAATTCATCGATTATTTAAATGTAAAA -GGTATTCCTCATTTATACGTAACTAATAATTCAACGAAAACACCTGAGCAAGTAACTGAAAAATTACGTG -AAATGCACATTGATGCTAAACCAGAAGAGGTTGTAACGTCAGCGTTAGCCACTGCAGATTATATTTCAGA -ACAATCACCAGGAGCATCAGTATATATGTTAGGTGGTAGTGGTTTAAATACTGCGTTAACCGAAGCGGGA -CTTGTCATTAAAAATGACGAGCATGTTGATTATGTAGTTATTGGACTTGACGAACAAGTTACATATGAAA -AGCTTGCGATTGCAACGTTAGGTGTAAGAAATGGGGCAACATTTATTTCTACAAATCCAGATGTGTCAAT -TCCAAAAGAGCGAGGATTTTTACCAGGGAATGGTGCTATTACAAGTGTTGTAAGTGTATCGACAGGTGTA -TCGCCACAATTTATTGGTAAACCAGAACCGATTATTATGGTTAAAGCATTAGAAATTTTAGGACTAGATA -AATCCGAAGTTGCTATGGTAGGCGATTTGTACGATACCGATATTATGTCTGGTATTAACGTAGGTATGGA -TACGATTCATGTACAAACAGGTGTATCTACGTTAGAAGATGTGCAAAATAAAAATGTGCCACCAACGTAT -TCTTTTAAAGATTTAAATGAAGCAATAGCTGAATTAGAAAAATAGATATAGTCATTTTATAAAGTAGGTG -AATTGATTTGGTAAAAATAGTTGTTTCGAGGAAAATTCCAGATAAATTTTATCAACAATTGAGTAAACTT -GGTGACGTTGTTATGTGGCAAAAATCATTAGTGCCTATGCCTAAAGATCAATTTGTGACAGCACTTCGTG -ACGCAGATGCTTGTTTTATCACATTAAGTGAACAGATCGATGCAGAAATTTTAGCACAATCACCAAATTT -AAAAGTAATTGCGAATATGGCTGTAGGATATGACAACATCGATGTTGAAAGTGCAACAGCGAACAACGTG -GTTGTCACGAATACACCAAATGTTCTTACTGAAACAACTGCAGAATTAGGATTTACATTAATGCTTGCTA -CAGCACGTCGTATTGTAGAAGCTGAAAAATATGTAGAAGCAGATGCATGGCAAAGCTGGGGTCCTTATTT -ATTGTCAGGTAAAGATGTCTTCAATTCAACTGTTGGAATATATGGTATGGGAGATATTGGTAAAGCTTTT -GCAAGAAGGTTGCAAGGGTTTAATACTAAAATTCTTTATCATAATCGATCAAGACATAAAGATGCAGAGG -CGGACTTTAATGCAACATATGTTTCTTTTGAAACGTTGTTAGCAGAAAGTGATTTTATCATCTGTACAGC -GCCACTTACAAAAGAAACACATCATAAATTTAATGCTGAAGCATTTGAACAAATGAAAAATGATGCAATT -TTTATTAATATCGGTAGAGGGCAAATTGTAGATGAAACAGCATTAATCGATGCACTAGACAATAAAGAAA -TATTAGCATGTGGTTTAGATGTATTAGCAAATGAACCAATTGATCATACACATCCATTAATGGGACGTGA -TAATGTTCTGATTACACCGCACATTGGTAGCGCATCAGTAACAACACGGGACAATATGATTCAATTATGT -ATTAATAATATAGAAGCGGTTATGACAAATCAGGTACCACATAATCCAGTAAATTGAAAATAAGTATGGT -TTTTAATCATTGGTAAACAAGCAAAGCAATTGTTAAATATGTTATGCTTGACATGCGAATGTATATATTT -GCGCTGATGATAATTCAATAACGTTATAAACTCGTCATATTAATGTGATGAGTTTATTTGATTTTGACGT -ATATAACAAAATTGTTATATAGACTGTAATTGTTTATTGTTTAAATAACCTTTAAAATGAATGATGTTCT -CAACATAGTGTATCATTTACAATAATTGAGTGATGACAACCAATTACTATGTTGAATCTATAAAATTAAA -ATTGAATTTCATTATGAATATCGATATAATGAATTGTAAAAAACAAATTTTAAAACGTATTTTATATTGA -ACGGTCTTTATAAAGGCGTTTTTACTAAGAACTTTAAGAGGTGCAATATGAAATCTAAAAGTAAACAGCC -ACCTAATAAATATGTTGAAGCATTCAAACCATATTTATTAACACTATTGTATTTGGCAATATTTATTACT -TTATATTTAATTTATGGCAGTGGCGACACACACAATAACTTCATTTATAATGAGTTCTAATGAGGGAGAC -TTAATATGACAGATATTATTAACAAGCTGCAAGCGTTTGCGGATGCAAATCCACAAAGCATTGCTGTTAG -ACACACAACTGATGAATTAACTTATCAACAGTTAATGGATGAGTCTAGTAAATTAGCACATCGATTACAA -GGTAGTAAGAAACCGATGATTTTATTCGGTCACATGTCACCATATATGATTGTTGGGATGATTGGTGCCA -TTAAAGCAGGATGTGGATATGTACCTGTAGACACTTCAATTCCTGAAGACCGTATTAAAATGATTATTAA -CAAGGTTCAACCAGAGTTTGTATTTAATACGACTGATGAATCGTTTGAAAGTTTAGCAGGTGAAGTATTT -ACAATAGAAGATATTAAAACATCTCAAGACCCAGTAATTTTTGATAGTCAGATTAAAGATAACGACACAG -TATACACAATCTTTACATCTGGTTCTACTGGGGAACCTAAAGGTGTTCAAATTGAATATGCAAGTTTAGT -TCAATTTACTGAGTGGATGTTAGAACTTAATAAATCAGGAAATGAACAACAATGGCTTAACCAAGCGCCA -TTTTCATTTGATTTATCTGTAATGGCTATTTATCCATGTTTAGCGTCAGGCGGTACATTAAATCTTGTAG -ATAAAAACATGATTAATAAACCTAAACTATTAAATGAAATGCTAACAGCAACACCGATTAACATTTGGGT -ATCAACACCATCATTTATGGAAATGTGTTTATTATTACCAACGCTTAATGAAGAACAGTATGGTAGTCTT -AACGAATTCTTCTTCTGTGGTGAAATTCTACCTCACAGAGCAGCAAAAGCGTTAGTAAGCCGTTTCCCAA -GTGCGACGATTTACAACACATATGGTCCAACTGAAGCTACGGTAGCAGTTACAAGTATTCAAATTACACA -AGAAATCTTAGATCAATATCCGACATTACCTGTTGGCGTTGAAAGACCAGGCGCAAGATTATCTACGACA -GATGAAGGTGAACTTGTTATCGAAGGTCAAAGTGTAAGTTTAGGATACTTAAAAAATGACCAAAAAACTG -CTGAAGTATTTAATTTCGATGACGGTATTCGTACTTATCACACTGGTGATAAAGCGAAGTTTGAAAATGG -TCAATGGTTCATTCAAGGTCGTATTGATTTCCAAATCAAATTGAATGGCTACAGAATGGAATTAGAAGAA -ATTGAAACACAATTACGCCAGTCTGAGTTCGTAAAAGAAGCGATTGTTGTACCTGTATATAAAAATGATA -AAGTTATTCATTTAATTGGTGCAATTGTGCCAACGACTGAAGTTACGGACAATGCAGAAATGACTAAAAA -TATTAAAAATGACTTGAAATCACGCTTACCAGAGTATATGATTCCTAGAAAGTTTGAATGGATGGAACAA -TTGCCATTGACTTCAAATGGTAAAATTGACAGAAAGAAAATTGCAGAGGTAATTAACGGATGATTCCATA -TGGTGATTTTACATTCTTCTTAATTGCTTTAATTGCATTATTACCAGTCATTATACTTGGATTTTTAGGT -AAGCGAAGTTACATTTATAATGGCGTAGTTACAGCATTTATGATTGTGTTAATCTTTTCTTCTGATAAAC -ATAATCTGTTTGACCAAAAGTATTTAAGTGTTCAATTAATTAGTTTTATTATTTACGTCGTATGGCAAGT -TTTATTGATAATGTTTTATTATCATTCAAAACCAAAAAATAATTCATTTTCAAAATTTGTAACTGTAATG -GTTTTATCAATATTGCCATTAGCACTTGTGAAAGTGTTACAAAGTACATGGTTAGGTGGACATCAGATTC -ACTTCCATGAAAGTAAATTAATTGAATTTGTTGGTTTCTTAGGAATTTCTTATGTTACATTCAAAAGTGT -GCAGTTAATTATGGAAATTCGTGATGGTTCTATCAAAGAAATTAAAGTATGGAAATTAATTCAATTTATT -TCATTCTTCCCAACGATTTCATCTGGACCAATCGATCGTTACAAACGTTTCGTTAAAGACGATAAAAAAG -TACCAACAGGCAATGAATATCGTGAATTAGTATTAAAAGCAATTCACATGATTATGCTTGGTTTCTTGTA -TAAATATATTGTTGCTTACTTTATTAACACATATGCAATCATGCCGTTACAATTAGACTTACATGGCTTT -GTCAATTTGTGGTTATATATGTACGCATACAGCCTATATTTATTCTTTGACTTTGCAGGTTATAGTTTAT -TTGCGATAGCATTTAGTTATTTATTCGGTATTAAAACACCACCAAACTTCGATAAACCTTTCAAAGCGAA -AAATATTAAAGATTTCTGGAATAGATGGCATATGACATTATCATTCTGGTTCAGAGATTGTATTTACATG -AGATCTTTATTCTACATGTCTCGTAAAAAATTATTGAAGAGTCAATTTGCAATGTCTAACGTGGCATTCT -TAATCAACTTCTTCATAATGGGAATTTGGCATGGTATCGAAGTGTATTACATTGTTTATGGTTTATACCA -TGCAGCATTGTTTATAGGTTATGGCTATTATGAACGTTGGCGCAAGAAACATCCGCCACGTTGGCAAAAT -GGTTTCACAACAGCACTTAGCATTGTGATTACATTCCACTTTGTAACATTTGGCTTTTTAATCTTCTCAG -GTAAACTTATATAATAAAGGAGAATTTAATTATGGAATTTAGAGAACAAGTATTAAATTTATTAGCAGAA -GTAGCAGAAAATGATATTGTAAAAGAAAATCCAGACGTAGAAATTTTTGAAGAAGGTATTATTGATTCTT -TCCAAACAGTTGGATTATTATTAGAGATTCAAAATAAACTTGATATCGAAGTATCTATTATGGACTTTGA -TAGAGATGAGTGGGCAACACCAAATAAAATCGTTGAAGCATTAGAAGAGTTACGATGAAATTAAAACCTT -TTTTACCCATTTTAATTAGTGGAGCGGTATTCATTGTCTTTCTATTATTACCTGCTAGTTGGTTTACAGG -ATTAGTAAATGAAAAGACTGTAGAAGATAATAGAACTTCATTGACAGATCAAGTACTAAAAGGCACACTC -ATTCAAGATAAGTTATACGAATCAAACAAGTATTATCCTATATACGGCTCTAGTGAATTAGGTAAAGATG -ACCCATTTAATCCTGCAATTGCATTAAATAAGCATAACGCCAACAAAAAAGCATTCTTATTAGGTGCTGG -TGGTTCTACAGACTTAATTAACGCAGTTGAACTTGCATCACAGTATGATAAATTAAAAGGTAAGAAATTA -ACATTTATTATTTCACCACAATGGTTTACAAATCATGGTTTAACGAATCAAAACTTTGATGCTCGTATGT -CTCAAACTCAAATTAATCAAATGTTCCAGCAGAAAAACATGTCTACTGAATTAAAACGTCGTTATGCACA -ACGTTTATTACAGTTTCCACATGTACACAATAAAGAATACTTGAAATCTTATGCTAAAAACCCTAAAGAA -ACTAAAGATAGTTATATTTCTGGTTTTAAAGAGAATCAATTGATTAAAATAGAAGCGATTAAATCATTGT -TTGCAATGGATAAATCTCCATTAGAACATGTTAAACCTGCTACAAAACCAGACGCTTCTTGGGATGAGAT -GAAACAAAAAGCAGTTGAAATTGGTAAAGCTGATACTACATCGAATAAATTTGGTATTAGAGATCAATAC -TGGAAATTAATTCAAGAAAGTAAGCGTAAAGTTAGACGTGACTATGAATTCAATGTTAATTCTCCAGAAT -TCCAAGATTTAGAATTACTTGTAAAAACAATGCGTGCTGCTGGTGCAGATGTTCAATATGTAAGTATTCC -ATCAAACGGTGTATGGTATGACCACATTGGTATCGATAAAGAACGTCGTCAAGCAGTTTATAAAAAAATC -CATTCTACTGTTGTAGATAATGGTGGTAAAATTTACGATATGACTGATAAAGATTATGAAAAATATGTAA -TCAGTGATGCCGTACACATCGGTTGGAAAGGTTGGGTTTATATGGATGAGCAAATTGCGAAACATATGAA -AGGTGAACCACAACCTGAAGTAGATAAACCTAAAAATTAAAATACAAATAGCACATAACTCAACGATTTT -GATTGAGGGTATGTGCTATTTTTATATTTTAAATTTCATAGAATAGAATAGTAATATGCGCTTGGATATG -TGGCTATTATAAAATAATTAATCAGATAAATAGTATAAAATAACTTTCCCATCAGTCCAATTTGACAGCG -AAAAAGACAGGTAATAACTGATTATAAATAATTCAGTATTCCTGTCTTTGTTGTTATTCATAATATGTTC -TGTTAACTTAATATCTTTATATTAGAATACTTGTTCTACTTCTATTACACCAGGCACTTCTTCGTGTAAT -GCACGCTCAATACCAGCTTTAAGAGTGATTGTAGAACTTGGGCATGTACCACATGCACCATGTAATTGTA -ATTTAACAATACCGTCTTCCACGTCAATCAATGAGCAGTCGCCACCATCACGTAATAAAAATGGGCGAAG -ACGTTCAATAACTTCTGCTACTTGATCAAACATCGTTGTATCTTCAGTAGGCATCAGGCAAGTCTCCTTT -CGAGAGATGAATTTGATAATCTTTATTAGTATATTATAATAGATAGTGTAATAAAAATCTATCAAACCAA -TGGGGGATAAATATATGGAGCACGTGAGTGTGATAGTATATGGGGCAGATGTTATATGTGCAAGTTGCGT -TAATGCGCCAACATCGAAAGATATTTATGACTGGCTACAGCCGCTATTAAAAAGAAAATACCCAAATATA -TCATTTAAATATACGTATATAGATATTACAAAAGATAATGACAACTTAACAGATCATGATTTACAATTTA -TTGAAAGAATAGAACAAGATGAACTATTTTATCCATTAATTACAATGAACGATGAATATGTAGCAGATGG -TTATATACAAACAAAGCAAATCACTCGATTTATAGACCAAAAGCTTGTGAATGAATAATATACACATAAT -AAAAAGCAATGTCAGTAATAGTGTGAACTGACATTGCTTTTTAATTTTTAACCATTATGATATTTATATA -ACCAAAGTACGCCGGATTTCAAAATAGAAGCGAGTCGTCCTGTTACAGTGCGATCCATGATATATGCAAA -ACCTTGTTTATCTCCTAATGACCCAACGATACCTTGTACCTTTAGTTCCGGCATTTTGTCAGGTAATGGT -TCATTTAGCCATTGCTTTTTAAGCACATCGGCAATTTGATCACCTTGAACTTCTGCTAACTGAGCACTTG -GCGCATGTGGTAAATCAGCACAATCACCAACTACATAGACGTTACGATATGTTGGTACTTGATGATACTG -GTTAACTATCACACGTCCATTACTATTTATATCAATCGGCAAGTTACGAACAACTTCAACAGGTTGAATT -CCTGCTGTCCATACAACTAAATCAATATCTTTAGGTTCATCACAGTTATATATTTTACCAGGTTCAACTT -TATTAATATTTGAATTTGGAACAACGGTAACATTATTTTTGGCGAACCATTTCGCAACATACTTACTTAA -TTTTTCTGGAAAATTTCTTAAAATTCGTGGCCCACGGTCATAAAGATATATTTCCAAGTCTGATCTACTT -TCTCTTAATTCGCTGGCAAGTTCTATGCCGCTTAATCCAGCACCAACGATACCAACTTTAGCACCTTCTG -GTAGTTCACTAATACTATGGAAAGTATCCCGAGCCTTTGAGAGTGTTTGAATACTATGTGTATATTCTTC -GGCTCCTGGAACGTTATGATATTTATCTTCACATCCTAAACCAATAATTAGCTCATCATAATCAATTTTA -GAATTACCGACTGAGACAATTTGAGCATCTAAATCTATGTCGTTAATTTCACCATAAACCGTATTCACTT -GTGGATGATTAGGGAATTTCATGCGAACATCTTTATCTGATTTCGTGCCCGCAGCTAAAGCATAAAATTC -TGGTTTCAATCCATGAAATGGCATACGATCAACTAATGTGACTGTATAATCTTGTGGTAAAGATGTAGTT -AAAATGCGTGACATGATACGCATATTACCATATCCGCCGCCTAACAAAACTAAGTTTTTCATAATGAAGT -ACCCCTTTTATATGTTAATATTTACTTTAATTTTGAAAAGATCAAAGTGCATAGATATATTTGTTAATGA -ACAGTTATAAAATGCAAGTGTCTTTGATTCATCAATAACCCCTAAAAAAGTAAATATGTATTTATATGCT -TATTATATATTTTTTTGAAAATGACTACAAATAAATATTTGTCCTAACTAAGGCACTATTACATAACTGG -GATAAGAAACATCAGTTGTTGCTAATTGAGCACATCATGTTAAAATACCAGTTTTAAAATGCTATAATAT -TGTAACAAATGAAATAAGAAGGTGAAGTATGAATCCGATCGTAGAATTTTGTCTCTCTAACATGGCAAAA -GGTGGAGATTATGTTTTTAATCAACTGGAAAATGACCCAGATGTCGATGTGTTAGAGTATGGTTGCCTGA -CACATTGTGGTATATGTTCAGCCGGGTTGTATGCTTTAGTAAATGGTGATATTGTTGAAGGTGATTCGCC -GGAAGAATTATTACAAAATATATATGCACATATAAAAGAAACTTGGATTTTTTAAGGAGGAGTTATCATG -CCAACAGTTATATTAACAGAAGCAGCTGCCTACGAAGTAAAAGATATGCTTAAAGCAAATGAAATGCCAG -ATGGCTATTTAAAAATTAAAGTGAATGGTGGCGGGTGCACTGGTTTAACATACGGAATGGGTGCAGAAGA -AGCGCCTGGTGAAAATGATGAAGTCTTAGAATACTTTGGATTAAAAGTTTTAGTAGACAAAAAAGATGCA -CCCGTATTAAATGGTACGACTATTGATTTTAAGCAATCATTAATGGGTGGCGGTTTCCAAATCGACAATC -CTAATGCAATTGCATCATGTGGCTGTGGTAGTTCATTTAGAACTGCAAAAGTTGCAGGTAATCCTGAAAA -CTGCTAATAAAATAACTTTTTAATGATTAACCCAATTTTGGGGATACAAATTGATATCAATTACGATTAG -GGACATATTTGATTATGTCCTATTTTTGCGTAAAGATATTTTGTTTTATTAAAAATCTCATTAAAAATTA -AGAATCTGACTATTAATAGTATTTTAAATGATCGTGATAACGGATACATTTTTAATCGAAATCAGGTTAC -GAAAAAATTAATTAATTTTTTCACAATCTGACTGAATCTTGCTTGAAAATATAACATAAAAGCTATAGAA -TTAGTATTGGATTAAAAATGTCTTTTTTGTGAACATCACAGGTTTTTACATAATTTAAAAGACTTAAATA -ACAAAATGATGATAAACTAGTATACATTGTGGTAAAAGTAGTAATGACCAGTTGTTACTAGTAATTATCA -GCATTTGGTTAAAAAAATATGAAAGCTTAGGTGAAATTAAATGGCTCAAGATCGTAAAAAAGTACTTGTA -CTTGGTGCTGGTTATGCAGGTTTACAAACTGTAACTAAATTGCAAAAAGCGATATCAACAGAAGAAGCAG -AAATTACGCTTATTAATAAAAATGAATATCACTATGAAGCAACATGGTTACATGAAGCATCAGCAGGTAC -ACTAAACTATGAAGATGTATTATATCCTGTGGAAAGTGTCTTGAAGAAAGACAAAGTGAACTTTGTTCAA -GCAGAAGTAACAAAAATTGACCGTGATGCTAAAAAGGTAGAAACAAATCAAGGTATTTATGACTTTGATA -TTTTAGTAGTAGCATTAGGTTTCGTTAGTGAAACATTCGGCATCGAAGGTATGAAAGATCATGCTTTCCA -AATTGAAAATGTTATCACAGCACGTGAATTATCACGTCATATCGAAGACAAATTTGCTAACTATGCAGCA -TCAAAAGAAAAAGATGATAACGATTTATCTATCTTAGTTGGTGGTGCTGGATTCACTGGTGTTGAATTCT -TAGGTGAATTAACAGACAGAATTCCTGAATTATGTAGCAAATATGGTGTGGATCAAAATAAAGTTAAAAT -CACTTGTGTTGAAGCAGCACCTAAAATGTTACCAATGTTCTCAGAAGAATTAGTTAACCACGCAGTTAGC -TACTTAGAAGACCGCGGTGTTGAATTTAAAATTGCTACACCAATCGTTGCTTGTAACGAAAAAGGTTTCG -TAGTTGAAGTAGATGGTGAAAAACAACAATTAAATGCAGGTACTTCAGTATGGGCTGCTGGTGTACGTGG -TAGTAAATTAATGGAAGAATCATTTGAAGGCGTTAAACGTGGACGTATCGTTACAAAGCAAGATTTAACA -ATCAATGGTTACGACAACATTTTTGTTATTGGTGACTGTTCAGCGTTTATCCCAGCTGGAGAAGAGCGTC -CATTACCAACTACAGCACAAATTGCAATGCAACAAGGTGAAAGTGTTGCTAAAAACATTAAACGCATCTT -AAACGGTGAATCAACTGAAGAATTCGAATACGTTGATCGTGGAACTGTTTGTTCTTTAGGTTCACATGAC -GGTGTAGGTATGGTATTTGGTAAACCTATCGCTGGTAAAAAAGCAGCATTCATGAAAAAAGTGATTGATA -CACGTGCGGTATTCAAAATCGGTGGTATCGGTTTAGCTTTCAAAAAAGGTAAATTCTAGGCTTTAAATTA -AGTTACAGCTAAACACATAAAATTAAATTATTCATTTATAAAGTCCTTCAGTGTCACTGAAGGGCTTTAT -TGTTGTACAATTTGAAGTGAGTAACATATCAAATCTAAGGAGGTACATTATGAATTTTAAATTAAATAAC -ACAATAAGCAACGAAATAAATACATTGATTATTGGTATACCAGAACATTTAAATCAGTTAGAGCGCATTA -GTTTTAATCATATCGATATTACAGAATCACTTGAAAGACTAAAACATCAACATATTATTGGTAGTAAAGT -TGGGAAGATTTATACAACTGCATTTGATGTACAAGATCAAACATATCGTTTAATTACAGTTGGTTTAGGA -AACTTAAAAACACGTAGTTATCAAGATATGTTGAAAATATGGGGACATCTTTTCCAATACATAAAGTCAG -AACACATTGAAGATACGTATTTACTTATGGATTCATTTATTTCAAAATATGATCAGTTATCAGATGTATT -AATGGCATGCGGTATTCAAAGTGAGCGTGCAACATATGAATTCGATCATTATAAATCAAGTAAGAAGGCA -CCGTTTAAGACAAATTTAAACCTTATTAGTGAATCATTAATTGAATTAGATTTTATTCATGAAGGTATCA -GTATTGGCCAGTCCATTAATTTGGCAAGAGACTTTAGTAATATGCCACCGAATGTATTAACACCACAAAC -ATTTGCAGAAGATATTGTTAATCATTTTAAAAATACAAAGGTCAAAGTAGAGGTTAAAGATTATGACACT -TTAGTTTCTGAAGGATTTGGACTTTTACAAGCGGTAGGTAAAGGTAGTAAGCATAAACCGAGATTAGTAA -CCATCACATATAATGGCAAAGACAAAGATGAAGCACCAATTGCCTTAGTTGGTAAAGGTATAACGTATGA -TTCTGGTGGTTATAGTATTAAAACGAAGAATGGCATGGCTACAATGAAATATGACATGTGTGGCGCTGCG -AATGTCGTTGGTATCATTGAAGCGGCTAGTCGTTTACAACTGCCTGTAAATATTGTCGGAGTGCTTGCTT -GTGCTGAAAATATGATAAATGAAGCATCAATGAAGCCAGATGATGTATTTACAGCGTTAAGTGGTGAAAC -TGTAGAAGTAATGAATACAGACGCTGAAGGTAGATTAGTCCTTGCAGATGCTGTGTATTATGCAAATCAA -TATCAGCCTAGTGTGATTATGGACTTTGCTACATTAACGGGTGCAGCCATCGTTGCACTTGGCGATGATA -AAGCTGCTGCATTTGAATCGAATAGTAAAGTGATATTAAACGACATATTACAAATAAGTTCTAAAGTCGA -TGAAATGGTATTTGAATTACCGATTACTGCAACCGAACGTGCAAGTATTAAACACAGTGATATCGCTGAT -TTAGTTAACCATACGAATGGACAAGGTAAAGCGCTATTTGCGGCAAGTTTTGTAACACATTTTAGTGGTC -AAACACCTCACATTCATTTCGATATTGCAGGTCCAGCAACGACTAATAAAGCTTCATATAATGGTCCAAA -AGGGCCAACAGGATTTATGATTCCGACGATAGTACAATGGTTAAAACAACAATAATTTAATTATTTGCCT -GATACAACTTGTGTCTTGTTATACATTTCTAATTTAACTCTTGAAAGTATAAAGGATCGCATTGTATCAG -GCATTTTCATTGTTGTAAGAAAATATAAATCGCATATCCTTGTGAGCATAAATCAACTTGATTAGCATTG -CAAAAACTTATTATAAGCATATGTTCATTCAGTCAACGACTACTAATATAACATTATAGAACTTAGGATT -TTGATTGGTGTTCCAGACTTGTAAAATTGTTTAATTTAATGAAAGCGAAAATTATTTTAAGAAAGACAAT -TAACTAAAAAATAAAGATTATTGGTATAGTTTGCTATTGACAGGTGTTAAAGCTACTGATACTATGTAGT -CTATAAACGCTTTAGTTCGATAGAGTGATAAAGGGTGGTTGTCATATGATAAATGCAGTAGTAATAGCAG -TAATATTAATGATTGTGCTATGTTTATGTCGATTAAACGTAGTTATAAGCTTATTTATCAGTGCGCTAGT -AGGTGGCTTAATTTCAGGCATGAGCATTGAAAAAGTTATAAATGTATTTGGGAAAAATATAGTCGATGGT -GCTGAGGTAGCATTAAGCTATGCCTTATTAGGTGGATTTGCAGCATTAATTTCATACAGTGGTATCACAG -ACTATTTAGTAGGAAAAATAATAAATGCAATTCACGCTGAAAATAGTCGATGGTCAAGAGTTAAAGTGAA -AGTGACAATAATCATTGCATTATTAGCTATGAGTATCATGAGTCAAAACTTAATTCCTGTACATATTGCA -TTCATTCCAATTGTCATCCCACCATTATTAAGTCTGTTTAATGACTTAAAAATAGATAGACGTTTAATCG -GTTTGATTATCGGTTTTGGTTTATGTTTCCCGTATGTGTTATTACCATATGGATTCGGTCAAATTTTCCA -GCAAATTATTCAAAGTGGCTTTGCAAAGGCGAATCACCCAATTGAGTTTAATATGATTTGGAAAGCAATG -CTTATTCCTTCAATGGGGTATATTGTTGGCTTACTTATCGGTTTATATGTATATCGTAAACCACGTGAAT -ATGAAACACGTAAAATTTCAGATAGTGACAATGTTACAGAGTTAAAACCATATATCTTAATAGTAACAAT -TGTGGCAATACTAGCTACATTTTTAGTACAAACGTTTACAGATTCAATGATTTTTGGTGCACTGGCCGGG -GTACTCGTATTCTTTATTTCACGTGCATATAATTGGTATGAATTAGATGCTAAGTTTGTTGAAGGTATTA -AAATTATGGCTTATATTGGTGTAGTTATTTTAACAGCAAATGGATTTGCTGGTGTAATGAATGCTACTGG -TGATATAGATGAATTAGTTAAAACTTTAACAAGTATTACTGGTGATAATAAATTATTTAGCATTATCATG -ATGTATGTGATAGGTTTAATTGTCACTTTAGGTATTGGATCATCATTTGCAACAATTCCTATTATCGCAT -CATTATTCATTCCTTTTGGAGCGTCAATTGGACTAGATACAATGGCATTAATCGCATTGATTGGAACAGC -GAGTGCATTAGGTGACTCAGGTTCACCTGCAAGTGATTCAACATTAGGACCAACTGCGGGATTAAATGTT -GATGGCCAACATGATCATATACGCGATACATGTGTACCAAACTTCTTGTTTTATAATATTCCTTTAATGA -TTTTCGGTACTATTGCTGCTATGGTACTATAAGCATAAAGAGGTGAAAATATGACTCATTTATTAGAGAC -ATTTGAGATGTCAATAGATCACCAGGAAGATGGTTTAGTTGTTATTTCTATGCCTGTTACTGATAAAGTA -AAACAACCATTTGGATATTTACATGGCGGTGCTTCGATTGCTTTAGGTGAAACAGCATGTTCATTAGGAT -CTGCTAATCTAATTGATACAACCAAATTTATTCCATTAGGTTTAGAGATGAATGCCAATCATATTCATTC -TGCTAAAGATGGTCGTGTTATTGCGACAGCTGAAATTATTCATCAAGGTAAGTCAACACATGTATGGGAT -ATAAAAATTAAGAATGACAAAGAACAATTAATTACAGTTATGCGTGGTACAGTTGCTATTAAACCTTTAA -AATAAAAGAACTGCTAGCTGAAAAGTTATGAGATATTCATAACTACGGCTAGCAGTTTTTTTATGCGCTA -TATTGTTGTAATTTTAGAAATGCTTGTTCAATGCGTTCGGCAGCTTTACGGCCACCCATAACATTTCTAC -CAAATGGTCCTAATTCTAAGTCTGCAAAGCATCCTGCGACATATAGATTTGGTATCCATTCTAATTTTTC -GGAAATAACAGGGTAATTACATTCGTTGATAGGTGCATCATAATTTTGTATTAATTGCTTAATAAGTGGT -TGTGACATAAAATCTTGTTCAAAACCAGTTGCAACCATAATCTGTTGATATGGAACAGAATCATTTTCAG -TGTTAATTAAACCATCACTAATTTGAGTGATAGGTGTTTTATGCACATTTATACGACCATTTTTAATATG -TTTTTTAAGGCGTAAGTACAGTTCGTGAGGCATTGATCCTTTATGACGTTCACGTTGTACAATGGCATTT -CTTTCAGGCATACTTTTAGTACTTAAAAATGAAGACATATTTTTCGGACCTAACCAACCAGGATCAGCAT -CAAAGTCATGTATTTCAATATCTTTATTTAGCCATAAATGAATCTTTTTATCGTCATCATGATTTAACAA -TTTAAGTGCAAGATGTGCAGCAGTAATACCACTACCAACGATATGATCGGTCTTATCATATACTACTTGA -TCATGTTCTTTCTCGAAGATATGATTTACATTCTGTTTGTCTTTTAAAATGTCAGGCATAAACGGAATAT -TTGTACTGCCTATTGCAATAACGACGCAATCTGTAGTGATAATTTGTCCATCTTCTAACTTGATATGCCA -TTTGTCTTCTTGTTTATCTAAAGTTTGAACTAAACCTTGAACCAAGCAATCCTCTAATTGATATTGTTTA -GAAGCATGTGCAATATGATCCATAAACATTGTCAATTCAGGTCGCTGATAAGGACCATAAAAAGCATTTG -TATATTGGTGCTGTTTAGCGAATTGTTTTAGATGGAACGGTTGTGGATGTACGTGATGTACAATCGGTGA -TCTTAAATAAGGCATTTCTATTCGATTTGTATATGAGTTAAACCTTTGGCAAAAAGTTTCATGTGGGTCA -ATGATTGTTAATCGGTCTGTTGTTAATCCGCTTGATAATAGTTTTTGTGCGATTGCAGTTCCCTGTATGC -CACCGCCGATAATTGTCCAATGCATAATAAAACCTCTCTCTTTTTAAAGCGTAATCGTTACGATTTATAA -TCATTATTATCATAATACATAACGACATGAAAGGCAATTAAATTAAAGAGATATACCTAGATAGGGCGAA -GGTGTAGTCAAAGAAGTATGTACTAAACTAAAATCATTGAAAAAGAGGTAACAATGTCAAAAGAAAACAG -CAGTAAAATCATTCCTAATTTGGAATCATCTTACTGCTGTTTGTTGTTGATTTATATTCATGACTTTGTT -ATATAATCTATAATTTTGTGTCTTTTAAGTCTTCAGAAATTTCATCGACTTTAGTCTTTTTAGTATAAGG -CGTTTTAATATTATATGCTGCTTTCATAATCATATGACTTGAAAGAGGACCTGTAATTAATACAAAGATA -ATCGCAACGATTAATTGCATATTTACAAAACCTTGAGTAGCAATAAAATATAAAAACGTACCAAATAGTA -ATGACATTGCACCTAATGTTGATGCTTTTCCGGCAGCATGTGCACGTGAATATACATCTTCAAGTCTCAA -TAATCCTATGGCTGCTAGGGCGCTAATTAAAGCACCGATGATAACAAAGATAAGTGCAAGACTAATCAGT -ATGATTTTGATCATGTTCAATCACCTTACCTTTGTCCATAAATTTAGAGAATACTGCAGTACCTAAAAAG -GCTAATATACCAATCATCATAATAACGACAATCATGTATTTAATATTTAATAAAATACTGAATAATGCTA -TAACTGCCATTAATTGAAGACCAATCGCATCTAATGCGACAACACGATCGGCAAGTGATGGGCCTAGCAC -AACGCGAATGAGCATAGCTAACATAGAAATGACAACTATGATTAATGCAATAACGATAATAACATTATGA -TTCATTATATTTCGCCCACCTCTCTTACAATCTTCTCTAATGATGTTTTAATACTTTCTACTTCTTGCTC -TTTAGTTGAAAAATCTATGGCATGAATATAAATTTTTGTACGATCATCACTTACACCAAGCACTACAGTA -CCAGGTGTTAATGTAATTAAATTAGACAACAAGACAATTTGCCAATCTTTTTTTAAATCTGTGTGATAAA -CAAAGAATCCTGGTTCATTTTTAATCGAAGGTTTAATAATAATTTTCAAAACATCAAAATTAGCTTTAAT -CAGTTCGATTAAGAAAATAATAACTAATTTAATAATACGATATAGCGTGATGACATAAAATCTACCTGGT -AACACTCTGTGTAAGAGGTAAACAAGAACTAGGCCAAAGATGAAACCTAACACAAAGTTATTTGTTGTGT -AACTATTTGTCACAAACAACCAAAACACTGCAATAATAAAGTTTAAAACTAATTGTACAGCCATGTTATT -TACCTCCTAATACAGCTTTAACGTAGGTTGATGGATTGTAGAATGTTTCTGCACCAGCTTTTACCATTGG -ATATAAGTAATCTGCTGACAATCCATATAAAACAGTTATCACAACTGCAACGATTGCAATCGTAGTTAAA -TATTTGACGTCGACTTTGTTATTAAGATCATATCCTTTTGGTTGACCGAAAAAGCCTTGTAGGAATATGC -GAATGACAGAATATAATACGACTAAACTTGATAATAAGACGATGACACCACTTAAATAAAATCCTCTTTC -AAATGTTGATTGGACAATGAAAAATTTTCCATAAAAGCCACTGAGTGGGGGAATGCCAGCTAAACTTAAT -GCTGCGATAAAGAATGACCAACCAAGTACAGGATATCGTTTAATTAAGCCACCAAATTGTCTTAAATCAG -CAGTGCCTGTAATTTTAATCATAATTCCGATAAGCAAGAATAATGCAAGTTTTACTAACATGTCGTGCAA -TGTATAGTAAATAGCACCAATCATACCTGACTCTGTCATCATTGCAACGCCGACTAAGATCACACCTACA -GCAATCATGACATTGTATAGGATGATTTTTTTAATGTTGGCATATGCAACAGCACCGACACAACCAAAGA -TGATCGTTAATAGTGCTAAGAATAAAATGACATAATGTGAAAAGCTTACATTATCACTAAAGAATAGGCT -CAATGTTCTAGTGATTGCATAAACACCAACTTTTGTTAACAAAGCACCAAAGAATGCAATGATTGGAATT -GGTGGTGCATAGTATGCACTAGGTAACCAAACAAACATTGGGAATACGCCAGCTTTTGTAGCAAAAACAA -AGATAAATAGTATGAAAACGATATTGACTAAGCCACTGTCATGCGCTGAAAGGTTAGCTAATTTATTGCT -TATATCTGCTAGATTCAATGTTCCTACTACTGAATACAAAATCGCTACACCCATTACGAAGAAGGATGAC -GATACAACGTTAACAAGAACATATTTTATTGTTTCTTGTAGTTGAATTTTTGTAGAACCAATTACTAATA -AGAAATAAGATGACATTAAAAATACTTCGAAAAATACGAATAGGTTGAAAATGTCACCAGTTGTGAATGC -ACCAATGATACCTATTAACATAAATAGTACTGAAAAATAATAATAATATCTTTCACGTTCAATACCAATT -GTTTGGTATGAATATAAAATCACAATAGCTGTAATAATAATACTAGTAATAATTAGTAGGGCACTGAATA -TGTCTAAAACAAAGACAATACTGTAAGGCGCTTTCCATGAACCTAGTTCAACTCGTAATGGTCCATGTTT -TACAACATTTGCTAAATTGATAATTGCCGCGACCAAGGTTAATAATGTACCGCCTAGTGCGACATAACGC -TTTATAATAGGACGTTTTCCAATAAAGACAAGTAATATGGCTGTAATTACTGGAATGACGAGCGTTAACA -CAAGCATATTACTTTCAATCATCTTCTGGAACTCCTTTCATACTCTCAACGTTATCTGTGCCTAATTCTT -TATATGTTCTAAATGCTAATACTAAGAAAAAGGCTGTTGTCGCAAAGGCGATAACGATTGCTGTTAAAAT -AAGTGCTTGCGGGATAGGATCAACATAGCTTTTTACGTTCGCTTCATAAATTGGAACAGTACCATGTTTA -AGTCCGCCCATAGTTATTAAAAATAAATTTGCTGCATGTGTTAATAGCGTAGTTCCCATAACAATTCGTA -TCAGACTTTTAGACAAAACGAGATAGACACTAATTGCTGTGAGAATACCACTAACAAAAATCATAATAAT -TTCCACTATTCGTTCTCTCCAATCGAAATAATAATTGTCATGACAGTACCAACTACTGCACATAAAACAC -CGAAATCAAAGAATACTGCTGTTGTCATATGAACAGGTTCTAATATAAATAACGGTATATCAAATGTGAC -ATGCGTAAAGAAATTTTTGCCTAAAAACCAACTTGCAATAGGCGTCGCAATACAAAAAACTAATCCGATA -CCTATCAAGATTTTAAAATCTAATGGGAAAATTTTACGCATTGTTTCTATATCAAATGCAATCGTAATGA -TAACAAGTGAACTTGCGAATAATAATCCGCCGACGAAACCGCCACCAGGTGTATAATGTCCTGCTAAGAA -AAGTGAAAAACCAAAGACCATTACCATGAAAAAGATAATAACTGCAGCAAATTGCAAAATTAGATCATTT -TGTTGTCTATTCATGATTTTTCACCTCGTTACCTTGCGTTTGACGCTTTTTACGTAATTTAATCATTGTA -TATACAGCTAATCCTGCGATACCAAGCACAGATGACTCGAATAAAGTATCCATACCACGGAAATCAACTA -GTATAACGTTTACCATGTTTTTACCGTGAGCTAAATCATAAACGTGCTCTTGATAAAACTTAGAAATCGA -TTCAAAATGTCTATTTCCGTATGCAATTAAACCGATAATAATGACGGACAAACCAACACCACCAGCAATT -AAAGCATTAGTAAGCTGGAATGAGCGCTTTTCATTATAACGATTTAAATTTGGTAAGTGATAGAAGCATA -ATAAGAACAATGCTGTTGAAATAGATTCAACGACAAACTGTGTCAATGCTAAGTCGGGTGCTTTAAAGAA -TATAAACAATACAGACACAGCATATCCAACTGCACTTAACATAATGATGCTAAATAATCTTGATTTAGCG -AAAAGAATTAAAAAGGCAGCACTTAATAATAAAATTACGATACAAACTTCGAAAATTCTAATCGGACTAA -CGTCTTTAAAATTAATGTTGAAAGGTACTGAGAATACAGTGACAAATGTTAATAAAATTAATGCACCAAA -AATGATAACTAAATTATTACGTGAATAATCGGTAACATAGCTATTCGTCATCTTTTCAGAGTAGTTTGGA -ATAACATTTGCACTTCTGTTGTACCAATAATTGAATGTTAGTTTACCAGGTTGTCGTTGCAACAATTTCA -CCCAATAACTAAATGTCACAATTAGTAAGATACCTAAAATATAAATCACTAATGTTGATAAAAAGGCAGG -CGTTAATCCATGGAACATATGGAATTCAACATCATCAATTACCGTATGATTAATCGAAGATGTAGCTGGT -TCAATAATCGAATTAGTTAAAATGCCAGGGAATAAACCAAATACAATTACTAATGTAGCTAAAATAGCTG -GTGATAAAAGCATTAATATTGATACTTCGTGTGCTTTTTTAGGTAATTGTTCAGGTTTATATTGTCCGAA -AAATATATGCATTATAAATTTAATTGAATATACAAATGTGAAGACACTGCCCACTATACCAATGATTGGG -AATAGGTAGCCTAATGTATCAACACTGAATAAATTTGCTTTGCTTGCTGTAAATGTTGTTTCTAAAAATG -ATTCTTTTGATAAGAAACCATTGAACGGTGGTACACCAGCCATACTTAATGCTGTAATAACAGTGATTGT -AAATGAAATAGGCATAATTGTTAGTAAGCCACCTAATTTCTTAACATCACGTGTACCAGTAGAATGATCC -ACTGCACCAGTAATCATAAATAGGGCACCTTTAAATGTTGCATGGTTGATTAAATGGAATATTGCAGCCG -TGAATGCAGCAGCATATATTTTGCTATCATCGCCTTGATAGTGATAACTAATGGCACCGATTCCAAGCAT -CGCCATAATCATACCTAATTGGGATACTGTTGAAAATGCCAGTATACCTTTCAAGTCTTGTTGTTTTGTT -GCGTTTAGCGAAGCCCAGAATAACGTAATTAAACCAACAAGTGTGACAGTCCATATCCAACCTTGCGATG -CTGCGAAGATTGGTGTCATTCGAGCGATTAAATATAACCCTGCTTTAACCATTGTTGCTGAATGAAGATA -AGCACTGACTGGTGTAGGTGCTTCCATTGCATCTGGTAGCCAAATATAAAATGGAAACTGAGCAGATTTT -GTAAAAGCACCAATCATGATTAAAATCATCGCAAAAATGAAGAATGGGCTATTTTGAATTTCAGAAGCAT -GTTGAATCATGTACTGAATGCTAAATGATTGTGTTGGTATAGCGAGTAAGATGATACCACCTAATAATGA -TAGACCACCAAATACTGTGATTATAAGCGATTTTTGAGCACCATATATAGATGCTTGTCGTTCGCGCCAG -AATGAAATAAGTAAAAAACTAGAAAATGACGTTAGCTCCCAGAATAAATATAGAATAATAACATTATCTG -AAAGTACGACACCTAACATTGCACCCATAAATAGTAATAAATAACAATAAAAATTCCCTAGTTGTTCTGA -CTTACTTAAGTAGCCGATTGAATATAATACTACTAAACTGCCGATTCCTGAAATAAGCAAACTAAAGAGT -AAACCTAAGCCATCAAGATATAAATCAAAGTTCATACCAAAATGAGGCATCCAATTTAAGGTTTTCATTA -CAGTATTACCTGACATCGTCGTTTTAATTAATGTAAGCATATAAATAAATATGACGATAGGGACAGGTAA -TACGAACCATCCTAAATGTATACGTTTAAAAAATCTATACAGGATAGGAATAATGAGTGCGAATATTAAC -GGTAATATCACCGCAATATGTAACAAACTCACTATGTTGTCCTCCTTTAAAAAATATTTATGTTATTCAT -TATACATGAATGATATAGTTCTGAAAAACGTACACACTCCTTGTTGTGCTTTATTTTCAGAAGTATTTAA -ATAAGAAGAAACACGTCATTTTTTATTTAAAATTTTCTTTGTATTGAAGTGAATAATCTTCTTTTAAGCG -TGCTAAACTAGCTAAAGACATTTCAGCATGTTTTGTTTGCTGAGTTTTAAGTTTAGTTTCTAAATCTGTA -ATTGCTTGTTGAAGTGAATCTTCATAGCGCAATACATCAACATTGAAGTCGCGTAATTGTGAACGTTTCG -TATAGCGTTTTTCAAAATGACTTAATGCTTTGCGTTCATGGAAAAATACACCTTCAGTTTCAGTAGGGTT -ATGTAAATCACCTTGTTTCGGGTGTTTGATAACTTGTTCAACTTTAACAAGGACATCGTCTCCATTTTCT -TCAACAATCGTGACACCATAGCTACCTGTTTTGTGTGAAAATCGATATAGCTTCATGCTATTTTCCTCCC -TTAAAAGTATGTTAATATATATGTATCATAACATGAATGGAGAATATAAATGGCTAACTATCCACAGTTA -AACAAAGAAGTACAACAAGGTGAAATTAAAGTGGTTATGCACACAAATAAAGGTGACATGACATTCAAAT -TATTTCCAAATATTGCACCAAAAACAGTTGAAAATTTTGTGACACATGCAAAAAATGGTTATTATGATGG -AATAACATTCCACCGTGTCATTAATGACTTCATGATTCAAGGTGGCGATCCAACAGCTACTGGTATGGGT -GGCGAAAGTATTTATGGCGGTGCTTTTGAAGATGAATTTTCGTTAAATGCATTTAACTTATATGGCGCAT -TATCAATGGCTAACTCAGGACCTAATACAAATGGTTCACAATTTTTCATTGTTCAAATGAAAGAAGTACC -TCAAAATATGTTAAGTCAACTTGCAGATGGTGGCTGGCCTCAACCAATCGTTGATGCATATGGCGAAAAG -GGTGGTACACCATGGTTAGATCAAAAACATACAGTATTCGGTCAAATCATTGATGGTGAAACTACTTTAG -AAGATATTGCAAATACAAAAGTGGGACCACAAGACAAACCACTTCATGATGTTGTAATTGAATCTATTGA -TGTTGAAGAATAATATCTAAACATAATTAACTGCCAACATTTTAAACTCGGATAAAGCTAATTTATGAAT -GGATTAGTATATATTCCAACGAAAACAAATAAACTAATATGATGAGCAATCTCAATATATTTATCAAGAA -AGCACAGTTTTTAAATAGATGTGTATTCTAGAGATAATAGTTGAGGTTGCTTTTTATGTTTTACAGAGAA -TTGCTATTCAAATAGTTAATAAATTGAAAACAAAGTAGCTGGATATCATATTGATTTAGATAGGAATTTG -TTGCTGATTTTATTTGTAAATCCAAGTTTGTAGTATTCTTATTCATTTATAAAATAATATTCGTATGATT -TGATGTTTTAATTAGTCCACCATTTCGATTTGTGCTATGATAATAGTGTTAAGTAAACGAAATAAGGGGT -TATTAAGTTGAATAACTACAAAATTGGCCAACATATCAAGGTGCGTGTAACTGGTATTCAACCATACGGT -GCGTTTGTTGAGACCCCTAATCATACTGAAGGACTGATTCATATATCAGAAATTATGGATGACTACGTTC -ATAATTTGAAGAAATTTCTATCAGAAGGCCAAATTGTTAAAGCTAAAATTTTGTCTATAGATGATGAAGG -AAAGCTCAATCTATCATTAAAGGATAATGATTACTTCAAAAATTATGAGCGTAAGAAGGAAAAACAATCA -GTATTAGATGAAATCAGAGAAACAGAAAAATATGGGTTTCAAACACTTAAAGAACGCTTACCAATCTGGA -TAAAACAGTCAAAGCGAGCAATTCGAAACGACTAAAGGAACAGATAAATCGTACCGAAAATCATACAAAG -GGTCTGAAATGAAAGTTTCTTAGACTATAAAAGAGATTAGTATCTATTAAATTATATTAGATACTAATCT -CTTTTTGTCTGCGTTAACGTAATATGATTGATTCTATTTACACGTACAAATGGTTTAAGGTGACATATCC -ATTATCTTTATTAGATAGAATCGTTGATTTGCAATGATGTATGTGGATTTGTTTTTTTAATTTATTTTAG -AAATGAGAACTACAACTTAAAGTATTAAACGAATTGCAACTATATAAACAGATAATTGGAGAATGAAAAA -ATTACATGTTATAGTCAACTCAATAATTTTAAGGAGGAATTAAGTAATGAAAAGTAAATACGAACCATTG -TTTGATAAAGTAGTATTACCAAATGGAGTAGAGTTGAGAAATCGATTTGTGTTAGCCCCTTTAACACATA -TTTCTTCAAATGATGATGGTACTATTTCAGATATAGAACTTCCTTATATTGAAAAGCGTTCACAAGATGT -TGGTATTACAAGTAATGCTGCGAGTAATGTGAGTGATGTCGGAAAAGCATTTCCAGGACAGCCGTCAATC -GCGCATGACAGTGATATTGAAGGACTAAAACGATTAGCTACAGCAATGAAGAAAAACGGTGCCAAAGCAC -TCGTACAAATACATCATGGCGGTGCACAAGCATTGCCTGAATTAACACCTGATGGAGACGTCGTAGCACC -AAGTCCAATTTCTTTAAAAAGTTTCGGTCAGAAACAAGAACATAGTGCTAGAGAAATGACGAATGAAGAG -ATTGAACAAGCAATCAAGGATTTTGGTGAAGCAACGCGACGTGCAATTGAAGCAGGGTTTGATGGTGTTG -AAATTCATGGCGCGAATCATTACTTAATTCATCAATTTGTATCACCATACTATAATAGAAGAAATGATGT -ATGGGCAAATCAATATAAATTCCCGATCGCTGTGATTGAAGAAGTGCTTAAATCGAAAGAAGTGTATGGT -AATAAAGACTTTATAGTTGGATACAGATTATCTCCAGAGGAAGCGGAGTCTCCAGGAATCACAATGGAAA -TTACAGAGGAACTCGTTAATAAAATTAGCCATATGCCAATCGACTATATTCATGTTTCAATGATGGATAC -GCATGCAACGGCACGTGAAGGTAAATACGCTGGACAAGAAAGACTGCCTTTAATTCACAAATGGATAAAT -GGTCGTATGCCACTTATCGGTATTGGTTCAATTTTCACAGCTGACGACGCTTTAGATGCAGTTGAAAATG -TTGGTGTTGACTTAGTAGCCATTGGTAGAGAGCTACTACTAGATTATCAATTTGTTGAAAAAATTAAAGA -TGGACGGGAAGATGAAATTATTAATTACTTTGATCCAGAGAGAGAAGATAATCATCACTTAACTCCTAAT -TTATGGCATCAATTTAATGAAGGGTTCTATCCATTACCACGTAAAGATAAATAAGTGTTTGACTGTTACC -ACTAATGATATTGTGTATGCAATTTGTTAGTGGTTTTCAATATTTATAAATAAAAATATTCTTAGTAAAA -TATACTTTTGATTAAGTGTAAAATTATCAATTCTTTTGCTTGTAATCATTTAAGTAATTATGTCATTATA -AATGTAAGGGTTTTCAAAATAGACAAATTTAATGAAACTTAGTGATTAATTCATCTTTTCGGGTGAAAAA -GTATCTGCTTTGAAAACTAATGTAATTATTTGGATAATGTTTCATGTATAATAGTTATAAATGATGAAAA -GGGGAGATATGATGACTAAATCTGAAAAAATTATTGAGTTAACAAATCATTACGGAGCACATAATTATTT -ACCATTGCCAATTGTCATTTCAGAAGCTGAAGGGGTATGGGTTAAAGATCCTGAAGGCAATAAATATATG -GATATGTTATCTGCATATTCCGCTGTTAACCAAGGTCATAGACATCCGAAAATTATTCAAGCATTAAAAG -ATCAAGCTGATAAAGTGACTCTAGTTTCACGTGCTTTTCATAGTGATAACTTAGGAGAATGGTACGAAAA -AATTTGTAAACTGGCAGGTAAAGATAAAGCTTTACCAATGAATACAGGTGCTGAAGCAGTAGAAACAGCT -TTGAAAGCAGCACGACGCTGGGCATACGATGTTAAAGGAATTGAGCCAAATAAAGCAGAAATCATTGCAT -TTAATGGTAACTTCCATGGTCGAACAATGGCGCCAGTTTCATTATCATCAGAAGCAGAATACCAACGTGG -TTATGGTCCATTATTAGATGGGTTTAGAAAAGTTGATTTTGGTGATGTAGATGCATTGAAAGCTGCAATT -AATAAAAATACTGCAGCAGTTTTAGTAGAACCAATTCAAGGTGAAGCGGGTATAAATATACCACCAGAAG -GATATTTGAAAGCAATTAGAGAATTATGTGATGAACATAATGTCTTATTTATTGCTGACGAAATCCAAGC -AGGATTAGGTCGTTCGGGTAAATTATTTGCTAGGGATTGGGATAATGTAAAACCTGATGTCTATATTTTA -GGTAAAGCACTAGGTGGTGGTGTCTTCCCAATTTCTGTTGTATTAGCAGATAAAGAAGTATTAGATGTCT -TTACACCTGGCTCACATGGTTCAACATTTGGTGGTAATCCACTTGCTTGTGCAGCATCAATTGCTGCATT -AGATGTTATCGTTGATGAGGATTTACCAGGTCGCTCTTTAGAATTAGGAGATTATTTTAAAGAACAATTA -AAGCAAATTGATCATCCATCAATTAAAGAAGTCCGTGGACGTGGTTTGTTTATAGGTGTGGAACTTAATG -AAAGTGCTAGACCATACTGTGAAGCATTAAAAGAAGAAGGCTTATTATGTAAAGAAACGCATGATACTGT -CATTCGTTTTGCACCACCATTAATTATTACTAAAGAAGAATTGGACCTTGCACTTGAAAAAATAAGACAT -GTATTTCAATAATGTCAAAAAGTTGTAACAATCAGTTTGTAAGGGCTTTAAAAAGGAATACGTTATGTTA -CAATATGTTTGAAAGCGAAATCATTAGGTAAAGAAGAGGCGAAAAGGATCATGACTGAGAACAATAATTT -AGTAACTTCTACTCAAGGAATTATTAAAGAAGCATTGCATAAATTGGGATTTGACGAAGGAATGTACGAT -TTAATTAAAGAACCTTTAAGAATGTTACAAGTGCGTATCCCTGTACGAATGGATGATGGCACTGTTAAAA -CATTCACAGGTTACCGTGCGCAACATAATGATGCTGTTGGACCAACAAAAGGGGGCGTGCGTTTCCACCC -AGATGTTGATGAAGAAGAAGTAAAAGCATTATCAATGTGGATGACTTTGAAATGTGGCATTGTTAACTTA -CCATACGGTGGTGGTAAGGGTGGTATCGTTTGTGATCCACGTCAAATGAGCATTCATGAAGTTGAACGTT -TATCACGCGGATATGTAAGAGCAATTTCACAATTCGTAGGTCCGAACAAAGATATTCCAGCACCAGATGT -ATTTACAAACTCACAAATTATGGCTTGGATGATGGATGAATATAGTGCATTAGATAAATTTAATTCACCA -GGTTTCATCACAGGTAAACCAATTGTATTGGGTGGTTCTCATGGACGCGATAGATCAACTGCACTAGGTG -TAGTTATTGCAATTGAACAAGCTGCAAAACGTCGTAATATGCAAATTGAAGGTGCCAAGGTTGTTATTCA -AGGTTTCGGTAATGCCGGAAGTTTCTTAGCTAAATTCTTATATGATTTAGGTGCAAAAATTGTAGGTATC -TCTGATGCTTACGGTGCATTACACGATCCAAATGGCTTAGATATAGATTATTTATTAGACCGTCGTGATA -GTTTTGGTACGGTAACAAATTTATTTGAAGAAACAATCTCAAATAAAGAATTGTTTGAATTAGATTGTGA -CATTTTAGTACCAGCGGCTATTTCAAACCAAATTACAGAAGACAATGCACATGATATTAAAGCTAGCATC -GTTGTTGAAGCTGCTAATGGACCTACAACACCAGAGGCAACACGTATTTTAACTGAACGTGGTATATTAT -TAGTTCCAGACGTATTAGCAAGTGCTGGTGGTGTAACGGTTTCATACTTCGAATGGGTACAAAATAATCA -AGGTTATTATTGGTCTGAAGAAGAAGTTAATGAAAAGCTACGTGAAAAATTAGAAGCGGCATTTGATACG -ATTTACGAATTGTCTCAAAATCGAAAAATAGATATGAGACTTGCAGCATATATCATAGGTATTAAACGTA -CAGCAGAAGCAGCTAGATATCGTGGTTGGGCATAATTAATTATCATATGTGATTTAACGAGCTTGGGACA -GAAAACAAAGCCCTAAGCTCGTTAATTATATTTTAGCAGTAGTTGACTGAATAAAAATACACTTGTAACA -AGCTTATTTCAAAAATAGCCGGGGCCCCAGCACAGAAGCTGGCGAAAAGTCAGCTTACAATAATGTGCAA -GTTGGCGGGGCCCCAACACAGAAGCTGGTGGAAAGCCAGCTTACAATAATGTGCAAGTTGGGGTGGGCCC -CCAACACAGAGAATTTCTAATTAAACGCTCAACTATATATAGTTGAGCAAAAAGACAGCAGTAGGATAAT -TTCAATTTGGAAATATCTTACTGCTGTTTTTTATAGTAATAGCTATATTTTTGTATTTATGTTTTCTAGT -TTAACAATACTATTTAATGACTTCTTTATATTTATCAGCGAAATTTGTAAAGACACCATCAACGCCGTAT -TTATTTAATCGTAACATATCAGCTTTTTCATTCACTGTATAAGGATGTACTATAAATCCTAAGTCTTTTA -AATGATGGGTATTTTGTTCAGTTAAATCTGTATAATCAGGACCTAATCCAATCGCATAAGAGCGTATCTC -TTTTAAGCGTTGGTCGTTAAATTGTTGTAGTTCACCTTTATCAACTAATTTTACTAATGGCACATGCTTA -TTTTGACGATGAATTTTCTTTAAACTTTCGTCAGAAAATGATTGAATCATTACATGTCCATTTTTTAATT -TATTTTTATTTAAAAGGTGATGCTTTTTCAATGAAGCTAATAATTGTTCTTCCATTCCTGGGTATACATC -AGGTGACTTTGTTTCAATATAATAGTTTGCATTTGGACCATAACGTTCTAAAATTTCATCTAAAGTGGGT -ACTTTAGCATTTTTATAACTTGCTCTTGCGTATTTTGGATATTTTTTATTAAACCAACTTCCTGCATCTA -ACTGTTTTAATTCATCAAGGGTATAATCCTCAACTTTACCGTGTCCATTTGTTGTACGGTTAACATTTTC -ATCATGCATAGCAACTAAATGGCCATCTTTGGTACGTTGTAAATCAATTTCGATATACGATGCTTTTAAC -TCATTATGACTCTTATCATATGCTTGAAACGTATGCTCGGGTGCATAGCCACTTGCGCCACGATGTGCGA -TAGTAGTGAATCGCTCATTCGTTAAATTTGTATGCCATTGAATAGCCTGAGGTTTATTTGCAATATGATT -AGTTTGTTCAGCGCCAGCAGTAGGTACTGATAAAAATCCCATAGTAAAAACAGCAGAAGCAGCCATAAAT -TTAGTGAAGCTTTTCGAAGAGTTAGTCATAGTCTTTATCCTTTCATCTCTTTATTTGTAGTCTAACAATT -TTAAAATACTACAAAAACCTGCTTGTGAAAACGCTTTACACATTTCTTTTACAATTTATAACATTTCTGT -AATATAAATTTAAAAGAATTATCAAACATTTTAGGAATCTTAAAAATGTGATGTTCAACAAGACGAAGAG -AGCATTAAAATACCCACAATGTAATTTTCATAGACATTGTGGGTAGGTAGATTAACGTATTTATTGTGAT -AGTAATTGTTTAGCAACATCAAGTTGTTGTTTGACCGATGATTGACCCGTAGAACCGTAACTTTGACGTC -GTTTTAAGCAATTTTCAGGCTGCAAATAATCGTAAATATCGGCATCGATACTAGAATGATGTTGTTGATA -TGTTGATAAAGGAACATCTAATAAATAATGACCTTGTTGTATACATTCTAAGACGATTTTTCCTACAATT -TCATGTGCAGTTCTAAATGGAATATTTTTAGTTACTAAATAATCTGCTAGTTCCGTTGCATTTGAAAAAT -CTTCTTTAACAGTTTGATTGAGTCGTTCTTTATTAATGGTCATCGTTTGAATCATACCTTCGAAAATACG -TAAAGAACCTTTAATTGTATGGACAGCATCGAATAAACCTTCTTTATCTTCCTGCATATCTTTGTTATAT -GCTAGAGGTAATCCTTTTAAAGTCATAAGCATGCTCATTAAATGACCAGTCGTTCGACCAACTTTACCTC -TAATTAATTCTGCCATATCAGGATTTTTCTTTTGTGGCATAATAGATGAGCCAGTAGAAAATGCATCTGA -TAATGTAATGAATTTAGCTTCGTCTGTGGACCAGAAAATAATTTCCTCTGCAAAACGTGATAAGTGAACC -ATCGTTAAAGAAATATTATGCAATGTTTCAATAATATAGTCTCTGTCACTAACAGCATCTAGGCTATTCT -CATAGAGGCTGCCAAAGTTCAACAATGCTGTTGTCTCGTGTCTATCGATAGGGTATGTGGTACCACTTAA -GGCTGCTGCACCTAAAGGATTAATATCGATTCGTTTTAAACTATCTTCAAATCGTTGTTGGTCTCGTTGT -AACATCCAAAAATAAGTCATAATATGATGTGCAAATGAAATTGGCTGTGCACGCTGTAAATGAGTATAAC -CAGGCATAATTGTATCAACATTATTGGAAGCGATGTCTACAATTACACTTTGTAACGACTTAATTAATGC -GATGATATCTTGCACTTGTTTCTTAGTGTACAAGTGCATGTCTGTTGCAACTTGATCGTTTCTACTGCGT -CCAGTATGCAACTTACCACCAGCATCACCAATACGTTTAATTAATTCATGTTCAATATTTAAATGAATAT -CTTCTAATGATGCACTAAATTGAATTTGATCTTGATGATAATCATGTTGAATAGATTTTAGTCCTTGTAT -AATTTGTTCGCTGTCTTGTTGACTAATAATGCCTTGATTCGCAAGCATAGTTGCATGCGCAATGCTGCCT -TCGATATCTTGATCTATGAGCGTTTGATCAAAAGTAATGGATGCGTTAAAGTCGTCAACCCACTCTTCAG -GTTGTACTTCAAATCTACCGCCCCAAGCTTTATTGCTCATTGCTATAGCCTCCATGTAACATCGCATTTA -CTTGAGTAGGTAAACCATAGATATCGATAAAGCCAACAGCAGCGTCTTGATTAAATGCATCTTCTTTTGT -ATAAGTTGCTAATTTTTCATCATATAATGTGTAAGGTGATTTTCTACCATTCACGATAGCATTACCTTTG -AATAATTTAATTCTGACATCACCACTTACGTATTGCTGAGTACTATCAATAAATAATTTCAAGCTATCAG -TTAAAGGTGAGAACCAAAGTCCATTGTATAGTTGTTCAGCAAATTGCTTCTCAATGATTGGTTTAAAGTG -TGCAACATCTTTCGTTAACGTAATCGTTTCTAATGCTTTATGTGCTTTTAAAATAACTTCTGCAGCAGGT -GCTTCATAAATTTCTCTTGATTTGATACCTACAAGTCTATTTTCTACATGGTCAATTCTTCCGATACCAT -GCTTACCAGCTAATGCATTCAACGTTAAAATTAAATCGTCTAATTCATATGTTTTGCCATCAATTTGAAC -TGGGATGCCTTTATCAAACGTTAAAATGATTTCATCAGCAGTATCTGGTGTTTCTTCTAAAGCATTTGTT -AGATCGAACGCATCCTCTGGTGGTGCAGCATAAGGATCTTCTAAAATACCACATTCATTCGCTCTGCCCC -ATAGGTTTTGATCGATAGAATAAGGTGAATCATGGTTAATTGATACAGGGATATTATGTTTAATTGCATA -ATCAATTTCTTCTTCACGACTCCATGCCCACTCACGTACAGGTGCGAATGCTTTCAATGATGGGTTTAAT -GCTTTAATGGCAACTTCGAAACGTACTTGGTCATTCCCTTTACCAGTACAACCATGTGCAATACCTACTG -AATTTGTTTTCTCAGCAATCTCTACTAATTTTTTAGCGATTAATGGTCTTGATAAAGCAGAAACTAATGG -ATATGCATTTTCATACATTAAATTTCCTTTGATTGCATAACTTACATACTCATCACTAAATTCTTTTGTT -GCATCAATAATATGACATTCAACAGCTCGCATATCTAAAGCTTTTTTATAAACGATGTCTAAATCTTTAC -CTTCACCAACATCTAGGCAACAAGCTACAACGTCGTATCCTTTGTCGATAAGCCATTGAACGGCCACACT -TGTATCTAGTCCTCCTGAATATGCTAAAACAATTTTCTCTTTCATAAAATTCACCTCATTGTAGTTATCT -GAATATTTCGTATGAACACATGATAGCAAACTTTTAATGAAAATAAAACCATTATTTTACATATTTATTC -ATAAAATATGATAGAGGTAGTTAGAGTTGTAAGTATAAATACTTATTTATCAATGTTTAAAAGTGTTTTA -AAAAACATGCAAATTGTATAAAAAATGTTTGAGTGTTTGACGCCGGTTTGAAATGTTTGTTGAAAAATAG -GTGTGAAACGTCACATAAATATCAATTTTATTGATTAAGTACAAACTTGTGAATTGAATCGCAAACGTAA -ACTTAGTAAAATTAAGATATTAAATGAAACAGGAGGCTTTTATAGATGACTCATATTCAATTAGATTTTA -GTAAAACGTTAGAATTTTTCGGTGAACACGAATTAAAACAACAACAAGAAATTGTTAAATCAATTCACAA -AACAATTCATGAAGGTACTGGTGCAGGTAGTGACTTCTTAGGCTGGGTTGATTTACCAGTTGATTACGAC -AAAGAAGAATTTTCAAGAATTGTTGAAGCATCAAAACGCATTAAAGAAAATTCTGATGTTTTAGTAGTCA -TCGGTATTGGTGGTTCTTACTTAGGTGCACGTGCAGCAATCGAAATGTTAACGTCATCATTTAGAAACAG -CAATGAATACCCTGAAATTGTATTTGTTGGTAATCACTTATCATCAACATACACTAAAGAGTTAGTTGAT -TATTTAGCAGACAAAGATTTCTCTGTAAACGTTATTTCTAAATCTGGTACAACTACAGAACCAGCAGTTG -CATTTAGATTGTTCAAACAATTAGTTGAAGAAAGATACGGTAAAGAAGAAGCACAAAAACGTATATTTGC -AACAACGGATAAAGAAAAAGGTGCTTTAAAACAGTTGGCTACAAACGAAGGTTATGAAACGTTTATCGTA -CCTGATGATGTAGGTGGAAGATATTCTGTTTTAACAGCAGTAGGATTATTACCAATTGCAACAGCTGGAA -TTAACATCGAAGCTATGATGATTGGTGCTGCAAAAGCACGTGAAGAATTATCTTCAGATAAATTAGAAGA -AAACATTGCATACCAATATGCGACAATTCGAAACATTTTATATGCAAAAGGTTATACAACAGAAATGTTG -ATTAACTATGAACCATCTATGCAATACTTTAATGAATGGTGGAAACAATTATTTGGTGAATCAGAAGGTA -AAGACTTCAAAGGTATTTATCCTTCAAGTGCCAACTACACAACTGATTTACATTCTTTAGGTCAATATGT -ACAAGAAGGCCGTCGTTTCTTATTCGAAACAGTTGTAAAAGTAAATCATCCTAAATATGATATTACTATT -GAAAAAGATAGTGATGATCTAGACGGATTAAATTATTTAGCTGGTAAAACAATCGATGAAGTTAACACAA -AAGCATTCGAAGGTACATTATTAGCGCATACTGATGGTGGTGTTCCTAACATGGTAGTGAACATTCCACA -ATTAGATGAAGAAACTTTCGGTTATGTCGTATACTTCTTCGAACTTGCTTGTGCAATGAGTGGATACCAA -TTAGGCGTAAATCCATTTAACCAACCTGGTGTAGAAGCATATAAACAAAACATGTTCGCATTATTAGGTA -AACCTGGTTTTGAAGACTTGAAAAAAGAATTAGAAGAACGTTTATAAAATACATTACTTCAATGATTAGT -GAAGTTTGAAAAGATAGAACTAGACGTTAACTATTTAAAGCATATTTCCGAGGTTGTCATTACAAATGTA -AAAATGTAATGACAACCTCGTTTTTATTTTATATGCAAGATATAGGTTACTAGCTAATGTGACAAGATGT -TAAGAGAAAATTAAAGAGAAAATAATATCTGCCATACAATAAAATTGTTATACTACTAGAGACTGATTTA -TTAGCATGATTACATGTTAATGTTTCTTTACTTAGTAATTAACTTTATAATGTAAGAATAATTATCTTCA -GCCAAAGAAAGGGATTGATGATTTGTCGTTTCATCAAGTAGAAGAATGGTTTGAGATATTTCGACAGTTT -GGTTATTTACCTGGATTCATATTGTTATATATAAGAGCGATTATTCCAGTATTTCCATTAGCACTCTATA -TTTTAATTAATATTCAAGCCTATGGACCTATTTTAGGTATATTGATTAGTTGGCTTGGATTAATTTCTGG -AACATTTACAGTCTATTTGATCTGTAAACGATTGGTGGATACTGAAAGGATGCAGCGAATTAAACAACGT -ACTGCTGTTCAACGCTTGATTAGTTTTATTGATCGCCAAGGATTAATCCCATTATTTATTTTACTTTGTT -TTCCTTTTACGCCAAATACATTAATAAATTTTGTAGCGAGTCTATCTCATATTAGACCTAAATATTATTT -CATTGTTTTGGCATCATCAAAGTTAGTTTCAACAATTATTTTAGGTTATTTAGGAAAGGAAATTACTACA -ATTTTAACGCATCCTTTAAGAGGGATATTAATGTTAGTTGTGTTGATTGTATTTTGGATTGTTGGAAAAA -AGTTAGAACAGCATTTTATGGGGTCGAAAAAGGAGTGACATCGTGAAAAAAGTTGTAAAATATTTGATTT -CATTGATACTTGCTATTATCATTGTACTGTTCGTACAAACTTTTGTAATAGTTGGTCATGTCATTCCGAA -TAATGATATGTCACCAACCCTTAACAAAGGGGATCGTGTTATTGTAAATAAAATTAAAGTTACATTTAAT -CAATTGAATAATGGTGATATCATTACATATAGGCGTGGTAACGAGATATATACTAGTCGAATTATTGCCA -AGCCTGGTCAATCAATGGCGTTTCGTCAGGGACAATTATACCGTGATGACCGACCGGTTGACGCATCTTA -TGCCAAGAACAGAAAAATTAAAGATTTTAGTTTGCGCAATTTTAAAAAATTAGATGGAGATATTATACCG -CCTAACAATTTTGTTGTGCTAAATGATCATGATAACAATCAGCATGATTCTAGACAATTTGGTTTAATTG -ATAAAAAGGATATTATTGGTAATATAAGTTTGAGATATTATCCTTTTTCAAAATGGACGATTCAGTTCAA -ATCTTAAAAAGAGGTGTCAAAATTGAAAAAAGAATTATTGGAATGGATTATTTCAATTGCAGTCGCTTTT -GTCATTTTATTTATAGTAGGTAAATTTATTGTTACACCATATACAATTAAAGGTGAATCAATGGATCCAA -CTTTGAAAGATGGCGAGCGAGTAGCTGTAAACATTATTGGATATAAAACAGGTGGTTTGGAAAAAGGTAA -TGTAGTTGTCTTCCATGCAAACAAAAATGATGACTATGTTAAACGTGTCATCGGTGTTCCTGGTGATAAA -GTAGAATATAAAAATGATACATTATATGTCAATGGCAAAAAACAAGATGAACCATATTTAAACTACAATT -TAAAACATAAACAAGGTGATTACATTACTGGGACTTTCCAAGTTAAAGATTTACCGAATGCGAACCCTAA -ATCAAATGTAATTCCAAAAGGTAAATATTTAGTGCTTGGGGATAATCGTGAAGTAAGTAAAGATAGCCGT -GCGTTTGGCCTCATTGATGAAGACCAAATTGTTGGTAAAGTTTCGTTTAGATTCTGGCCATTCAGCGAAT -TTAAATATAATTTCAATCCTGAAAATACTAAAAATTAATATGAAACAAATACAACATCGTTTGTCGGTTT -TAATACTGATAAACGATGTTTTATTTTGTAATAGGTATGATAAAAGCTAAGTTCGAAATGAACTTATAAT -AAATCAATCACAATCACTTTGTGTTAAAATATGTGTCAAAGGAAGTGAGGGTTTGTCATGACATTACATG -CTTATTTAGGTAGAGCGGGAACAGGTAAGTCTACGAAAATGTTGACCGAAATAAAACAAAAAATGAAAGC -AGATCCGCTTGGAGATCCAATCATTTTAATTGCGCCAACTCAAAGTACATTTCAATTAGAACAAGCCTTT -GTCAATGATCCGGAATTAAATGGTAGTTTAAGAACAGAAGTGTTGCATTTTGAACGATTAAGTCATCGTA -TTTTCCAAGAAGTTGGTAGTTATAGCGAACAAAAGTTATCTAAAGCTGCAACGGAAATGATGATTTATAA -CATTGTTCAAGAACAACAAAAGTATTTAAAACTTTATCAATCACAAGCAAAATATTATGGATTTAGTGAA -AAATTAACAGAACAAATTCAAGATTTTAAAAAATATGCAGTAACGCCTGAACATTTAGAAAGCTTTATTG -CTGATAAAAATATGCAAACTCGAACTAAAAATAAGTTAGAGGATATTGCTTTAATATACCGAGAGTTCGA -ACAACGCATTCAAAACGAGTTTATTACGGGTGAGGATGCATTACAATATTTTATTGATTGTATGCCGAAA -TCAGAGTGGCTAAAACGTGCTGATATATATATTGATGGTTTTCACAACTTTTCAACGATTGAGTATTTAA -TAATCAAAGGATTAATTAAATATGCGAAGAGTGTCACAATTATATTGACGACAGATGGTAACCACGATCA -ATTCAGTTTATTTAGAAAACCATCGGAAGTGTTACGACATATTGAAGAAATATCAAATGAACTCAATATT -TCTATTGAACGTCAATATTTCAACCAATTATATCGCTTTAATAATCAAGATTTAAAGCATCTTGAACAAG -AATTTGATGCACTTCAAATCAATCGAGTGGCATGTCAAGGTCATATCAATATTTTAGAATCTGCGACTAT -GAGAGAGGAAATAAATGAAATTGCACGACGTATCATCGTTGATATTCGTGATAAACAATTACGATATCAA -GATATTGCTATTTTATATCGTGACGAGTCTTATGCTTATTTATTTGATTCCATATTACCGCTTTATAATA -TTCCTTATAACATTGATACAAAGCGTTCGATGACACATCATCCGGTCATGGAAATGATTCGTTCATTGAT -TGAAGTTATTCAATCAAATTGGCAAATTAATCCAATGCTACGCTTATTGAAGACTGATGTGTTAACGACA -TCATATCTAAAAAGTGCATACTTAGTTGATTTACTTGAAAATTTTGTACTTGAACGTGGTATATACGGTA -AACGTTGGTTAGATGATGAGCTATTTAATGTCGAACATTTTAGCAAAATGGGGCGTAAAGCGCATAAACT -TACCGAAGATGAACGTAACACATTTGAACAAGTCGTTAAGTTAAAGAAAGATGTCATTGATAAAATTTTA -CATTTTGAAAAGCAAATGTCACAAGCAGCAACTGTAAAAGACTTTGCAACTGCTTTTTATGAAAGTATGG -AATATTTTGAACTGCCAAATCAATTGATGACAGAGCGAGATGAACTTGATTTAAATGGTAATCATGAAAA -GGCGGAAGAAATTGATCAAATATGGAATGGCTTAATTCAAATCCTCGATGACTTAGTTCTAGTATTTGGA -GATGAACCAATGTCGATGGAACGTTTCTTAGAAGTATTTGATATTGGTTTAGAACAATTAGAATTTGTTA -TGATTCCGCAAACATTGGACCAAGTTAGTATTGGTACGATGGATTTGGCTAAAGTCGACAATAAGCAACA -TGTTTACTTAGTTGGAATGAATGATGGTACGATGCCACAACCAGTAACTGCGTCAAGCTTGATTACAGAT -GAAGAAAAGAAATACTTTGAACAGCAGGCTAATGTCGAGTTAAGTCCAACATCAGATATTTTACAGATGG -ATGAAGCATTTGTTTGTTATGTTGCTATGACTAGAGCTAAGGGAAATGTTACATTTTCTTATAGTCTAAT -GGGATCAAGTGGTGATGATAAGGAAATCAGCCCATTTTTAAATCAAATTCAATCATTGTTCAACCAATTG -GAAATTACTAACATTCCTCAATACCATGAAGTTAACCCATTGTCACTAATGCAACATGCTAAGCAAACCA -AAATTACATTATTTGAAGCATTGCGTGCTTGGTTAGATGATGAAATTGTGGCTGATAGTTGGTTAGATGC -TTATCAAGTAATTAGAGATAGCGATCATTTAAGTCAAGGTTTAGATTATTTAATGTCAGCATTAACGTTT -GACAATGAAACTGTAAAATTAGGTGAAACGTTGTCTAAAGATTTATATGGTAAGGAAATCAATGCCAGTG -TATCTCGATTTGAAGGTTATCAACAATGCCCATTTAAACACTATGCCTCACATGGTCTGAAACTAAATGA -GCGAACGAAGTATGAACTTCAAAACTTTGATTTAGGCGATATTTTCCATTCCGTTTTAAAATATATATCT -GAACGTATTAATGGTGATTTTAAACAATTAGACCTGAAAAAAATAAGACAATTAACAAATGAAGCATTGG -AAGAAATTTTACCTAAAGTTCAATTTAATTTATTAAATTCTTCAGCTTACTATCGTTATTTATCAAGACG -CATTGGCGCTATTGTAGAAACAACACTAAGCGCATTAAAATATCAAGGCACGTATTCAAAGTTTATGCCA -AAACATTTTGAGACAAGTTTTAGAAGGAAACCAAGAACAAATGACGAATTAATTGCACAAACATTAACGA -CAACTCAAGGTATTCCAATTAATATTAGAGGGCAAATTGACCGTATCGATACGTATACAAAGAATGATAC -AAGTTTTGTTAATATCATTGACTATAAATCCTCTGAAGGTAGTGCGACACTTGATTTAACGAAAGTATAT -TATGGTATGCAAATGCAGATGATGACATACATGGATATCGTTTTACAAAATAAACAACGCCTTGGATTAA -CAGATATTGTGAAACCAGGTGGTTTATTATACTTCCATGTACATGAACCTAGAATTAAATTTAAATCTTG -GGCAGATATTGATGAAGATAAATTAGAACAAGATTTAATTAAAAAGTTTAAGCTGAGTGGTTTAGTGAAT -GCAGACCAAACTGTTATTGATGCATTGGATATTCGTTTAGAACCTAAATTCACTTCAGATATTGTACCAG -TTGGTTTGAATAAAGATGGTTCTTTGAGTAAACGAGGCAGCCAAGTTGCAGATGAAGCAACGATTTATAA -ATTCATCCAACATAACAAAGAAAATTTTATAGAAACCGCTTCAAATATTATGGATGGACATACTGAAGTT -GCACCATTAAAGTACAAACAAAAATTGCCATGTGCTTTTTGTAGTTATCAATCGGTATGTCATGTAGATG -GCATGATTGATAGTAAGCGATATCGAACTGTAGATGAAACAATAAATCCAATTGAAGCAATTCAAAATAT -TAACATTAATGATGAATTTGGGGGTGAGCAATAGATGACAATTCCAGAGAAACCACAAGGCGTGATTTGG -ACTGACGCGCAATGGCAAAGTATTTACGAAACTGGACAAGATGTACTTGTTGCAGCCGCGGCAGGTTCAG -GTAAAACAGCTGTACTAGTTGAGCGTATTATCCAAAAGATTTTACGTGATGGCATTGATGTCGATCGACT -TTTAGTCGTAACGTTCACAAACTTAAGTGCACGTGAAATGAAGCATCGTGTAGACCAACGTATTCAAGAG -GCATCGATTGCTGATCCTGCAAATGCACACTTGAAAAACCAACGCATCAAAATTCATCAAGCACAAATAT -CTACACTTCATAGTTTTTGCTTGAAATTAATTCAACAGCATTATGATGTATTAAATATTGACCCGAACTT -TAGAACAAGCAGTGAAGCTGAAAATATTTTATTATTAGAACAAACGATAGATGAGGTCATAGAACAACAT -TACGATATCCTTGATCCTGCTTTTATTGAATTAACAGAGCAATTGTCTTCAGATAGAAGTGATGATCAGT -TTCGAATGATTATTAAACAATTGTATTTCTTTAGCGTTGCAAATCCAAATCCTACAAATTGGTTGGATCA -ATTGGTGACACCATACGAAGAAGAAGCACAACAAGCGCAACTTATTCAACTACTAACAGACTTATCTAAA -GTATTTATCACAGCTGCCTATGATGCTTTAAATAAGGCGTATGATTTGTTTAGTATGATGGATGGCGTCG -ATAAACATTTAGCTGTTATAGAAGATGAACGACGTTTAATGGGGCGTGTTTTAGAAGGTGGCTTTATTGA -TATATCTTATTTAACTGGTCACGAATTTGGTGCGCGTTTGCCTAATGTAACAGCGAAAATTAAAGAAGCA -AATGAAATGATGGTCGATGCCTTAGAAGATGCTAAACTTCAGTATAAAAAATATAAATCATTAATTGATA -AAGTGAAAAGTGATTACTTTTCAAGAGAAGCTGATGATTTGAAAGCTGATATGCAACAATTGGCGCCACG -AGTAAAGTACCTTGCGCGTATTGTGAAAGATGTTATGTCAGAATTCAATCGAAAAAAGCGTAGCAAAAAT -ATTCTGGATTTTTCTGATTATGAACATTTTGCATTACAAATTTTAACTAATGAGGATGGTTCGCCTTCAG -AAATTGCCGAATCATACCGTCAACATTTTCATGAAATATTGGTCGATGAGTATCAAGATACGAACCGAGT -TCAAGAGAAAATACTATCTTGCATCAAAACGGGTGATGAACATAATGGTAATTTATTTATGGTTGGAGAT -GTTAAGCAGTCCATTTATAAATTTAGACAAGCTGATCCAAGTTTATTTATTGAAAAGTATCAACGGTTTA -CTTTAGATGGAGATGGCACTGGGCGTCGAATTGATTTGTCGCAAAACTTCCGTTCTCGTAAAGAAGTACT -GTCAACGACAAACTATATATTCAAACATATGATGGATGAACAAGTCGGTGAAGTAAGATATGATGAAGCA -GCACAGTTGTATTATGGTGCACCATATGATGAATCGGACCATCCAGTAAACTTAAAAGTGCTTGTTGAAG -CGGATCAAGAACATAGTGATTTAACTGGTAGTGAACAAGAAGCGCATTTTATAGTAGAACAAGTTAAAGA -TATCTTAGAACATCAAAAAGTTTTTGATATGAAAACAGGAAGCTATAGAAGTGCGACATACAAGGATATC -GTTATTCTAGAACGCAGCTTTGGACAAGCTCGCAATTTACAACAAGCCTTTAAAAATGAAGATATTCCAT -TCCATGTTAATAGTCGTGAAGGATACTTTGAACAAACAGAAGTCCGTTTAGTATTATCATTTTTAAGAGC -GATAGATAATCCATTACAAGATATTTATTTAGTTGGGTTAATGCGTTCCGTTATTTATCAGTTCAAAGAA -GATGAATTAGCTCAAATTAGAATATTGAGTCCGAATGATGACTACTTCTATCAATCGATTGTAAATTACA -TTAATGACGAAGCAGCAGATGCTATTTTAGTTGATAAATTAAAAATGTTTTTATCAGATATTCAAAGTTA -CCAACAATATAGTAAAGATCATCCGGTGTATCAGTTAATTGATAAATTTTATAATGATCATTATGTTATT -CAATACTTTAGTGGACTTATTGGTGGACGTGGACGACGTGCAAATCTTTATGGTTTATTTAATAAAGCTA -TCGAGTTTGAGAATTCAAGTTTTAGAGGTTTATATCAATTTATTCGTTTTATCGATGAATTGATTGAAAG -AGGCAAAGATTTTGGTGAGGAAAATGTAGTTGGTCCAAACGATAATGTCGTTAGAATGATGACAATTCAT -AGTAGTAAAGGTCTAGAGTTTCCATTTGTCATTTATTCTGGATTGTCAAAAGATTTTAATAAACGTGATT -TGAAACAACCAGTTATTTTAAATCAGCAATTTGGTCTCGGAATGGATTATTTTGATGTGGATAAAGAAAT -GGCATTTCCATCTTTAGCTTCGGTTGCATATAAAGCTGTTGCCGAAAAAAAACTTGTGTCAGAAGAAATG -CGATTAGTCTATGTAGCATTAACAAGAGCGAAAGAACAACTTTATTTAATTGGTAGAGTGAAAAATGATA -AATCATTACTAGAACTAGAGCAATTGTCTATTTCTGGTGAGCACATTGCTGTCAATGAACGATTAACTTC -ACCAAATCCGTTCCATCTTATTTATAGTATTTTATCTAAACATCAATCTGCGTCAATTCCAGATGATTTA -AAATTTGAAAAAGATATAGCACAAATTGAAGATAGTAGTCGTCCGAATGTAAATATTTCAATTATATACT -TTGAAGATGTGTCTACAGAAACCATTTTAGATAATGATGAATATCGTTCGGTTAATCAATTAGAAACTAT -GCAAAATGGTAATGAAGATGTTAAAGCACAAATTAAACACCAACTTGATTATCAATATCCATATGTAAAT -GATACTAAAAAGCCCTCAAAACAATCTGTTTCTGAATTGAAAAGACAATATGAAACTGAAGAAAGTGGCA -CAAGTTACGAACGAGTAAGGCAATATCGTATCGGTTTTTCAACGTATGAACGACCTAAATTTCTAAGTGA -ACAAGGTAAACGAAAAGCGAATGAAATTGGTACGTTAATGCATACAGTGATGCAACATTTACCATTCAAA -AAAGAACGCATATCTGAAGTTGAGTTACATCAGTATATCGATGGATTAATCGATAAACATATTATCGAAG -CAGATACGAAAAAAGATATCCGTATGGATGAAATAATGACATTTATCAATAGTGAGTTATATTCGATTAT -TGCTGAAGCAGAGCAAGTTTATCGTGAATTACCGTTTGTAGTTAACCAAGCATTAGTTGACCAATTGCCA -CAAGGAGACGAAGACGTCTCAATTATTCAAGGTATGATTGACTTAATCTTTGTTAAAGATGGTGTGCATT -ATTTTGTAGACTATAAAACCGATGCATTTAATCGTCGCCGTGGGATGACAGATGAAGAAATTGGTACACA -ATTAAAAAATAAATATAAGATACAGATGAAATATTATCAAAATACGCTTCAAACGATTCTTAATAAAGAA -GTTAAAGGTTATTTATACTTCTTCAAATTTGGTACATTGCAACTGTAGTATTTTGATTTTCAAAAGAATA -AAAAATAATTTCGATTAAGTGCAAAGTCCTTGTAGCAGAATGAACACAACTCATTTTCAAAATTGTCTTA -CTTATTTATTTGTTATTTGATAACGAAAAAAGTTATAATGTGAATTAAGATAAAGATGAGGAGTTGAGAA -TGAATGAAATTCTTATCATTCAAGTATAATGACAAAACTTCATATGGCGTTAAAGTAAAACGCGAAGATG -CTGTATGGGATTTAACACAAGTATTTGCTGACTTTGCAGAAGGAGATTTCCATCCTAAAACATTGTTAGC -TGGTTTACAACAAAATCATACTTTAGATTTTCAAGAACAAGTACGTAAAGCAGTTGTAGCAGCAGAAGAT -AGCGGCAAAGCTGAAGACTATAAAATTTCATTTAATGACATTGAATTCTTACCACCAGTAACACCTCCGA -ATAATGTGATTGCTTTTGGTAGAAATTACAAAGATCATGCGAACGAATTAAATCATGAAGTAGAAAGATT -ATATGTATTTACAAAAGCAGCGTCATCTTTAACAGGAGATAATGCAAAAATTCCAAATCATAAAGATATT -ACTGATCAATTAGATTATGAAGGTGAATTAGGTATTGTTATTGGTAAGTCTGGTGAAAAGATTCCAAAAG -CATTAGCTTTAGATTATGTTTACGGCTATACAATTATTAACGATATCACTGATCGCAAAGCACAAAGTGA -ACAAGATCAAGCATTTTTATCAAAAAGTTTAACTGGCGGTTGCCCAATGGGTCCTTATATCGTTACTAAA -GACGAACTACCATTACCTGAAAATGTAAATATTGTTACAAAAGTTAACAACGAAATTAGACAAGATGGCA -ACACTGGCGAAATGATTCTTAAAATTGATGAATTAATAGAAGAAATTTCAAAATATGTTGCACTACATCC -GGGAGATATTATTGCAACTGGTACACCAGCAGGCGTTGGTGCAGGTATGCAACCACCAAAATTCTTACAA -CCAGGTGATGAAGTTAAAGTGACTATTGATAATATTGGAACGCTGACAACTTATATCGCTAAATAATTAT -CATTTAAAAAGCTAACCAGTCTTTATATAGATTGGTTAGTTTTTTCTTGCTTTTCTAAAAAGTGTTAAAG -ATCATTGTTTATAATGTTACCATTTTGAGACGAAAGTGAAATATTGATATTAAGAAGTAGTTGATTATTT -TACAGTAGATGCACAGTATTCTAATAAGTAATAAAATGTCATGTTCTTCCTCTAAAATATAGAAGTGTGG -TAAAATATATATTTGTGTATGAACAAATAATGATTAAATTATAAGAAAGTGGGTATTTATCCCACGAAGT -TTTAATTTAATAACTAAAATTATTAAAGTGGGGGAATTAATATGTTACATTTACATATTTTAAGTTGGGT -ATTAGCAATCATTTTATTTATCGCTACATACTTAAATATTTCAAAAAATCAAGGTGGTACGCCATATTTC -AAACCATTACATATGGTGCTACGATTATTTATGCTGTTGACGTTAATTTCAGGATTTTGGATATTAATTC -AGTCATTTATGAATGGCGGGGCAAATCATATGTTGCTTACATTGAAAATGCTGTGTGGTGTAGCAGTAGT -TGGATTGATGGAAGTGTCGATTGCTAAAAGAAAGAGACATGAACAAAGTCACACAATGTTTTGGATAACA -ATTGCATTAATTATCATCACAATGGTATTAGGTGTCATTCTACCGTTAGGGCCTATATCAAAATTATTCG -GTATTGGCTAATTGATAAGACATATAGTATATGACATAAGGCATGGACAATTATTAGTCCAAGACCTTAT -GTCTTTTTTGATTCTAAAAATGTTTAAACAAAAAAAATGAGTCTGGGACATAAATCCCTAAAAAAACAGC -AGTAAGATAATTTTCAATTAGAAAATATCTTACTGCTGTTCTCTATTTATACAATACTTCGTATTGAATG -GCTTCGCTTTCCTAGGGTGCCGTCTCAGCCTTGGTCTTCGACTGGCACTGCTCCCTCAGGAGTCTCGCCA -TTAATACTACGTATTAACATGTAATTTTACTTTGAAATACTTAAAAAAAATAAGACACTTTCGTATAATT -TAATAAATACCACTAAACTAAATTAACGAGGTGCCTTATGTATAAAAATTATAACATGACCCAACTTACA -CTACCAATAGAAACTTCTGTTAGAATTCCTCAAAATGATATTTCACGATATGTTAATGAAATTGTTGAAA -CGATACCTGATAGCGAATTCGATGAATTCAGACATCATCGTGGCGCAACATCCTATCATCCAAAAATGAT -GTTAAAAATTATCTTATATGCATACACTCAATCTGTATTTTCTGGTCGTAGAATAGAGAAATTACTTCAT -GACAGTATTCGATTGATGTGGTTAGCTCAAAATCAAACACCTTCTTATAAAACTATTAATCGTTTTAGAG -TAAATCCTAATACTGATGCATTAATTGAATCTTTATTTATTCAGTTTCATAGTCAATGTTTAAAGCAAAA -TCTTATTGATGATAATTCAATTTTTATTGATGGTACAAAAGTAGAAGCTAATGCCAATAGGTATACATTT -GTGTGGAAGAAAAGTATTCAAAATCACGAATCGAAATTGAACGAAAATTCAAAAGCATTATATCGTGACT -TAGTTGAAGAAAAAATAATACCAGAGATAAAAGAAGATGGAGATAGCGATTTAACAATAGAAGAAATAGA -TTTAATTGGTAGTCATTTAGATAAAGAAATCGAAGATTTAAATCATTCTATTCAGAACGAAGATTGTACT -CAAATTAGAAAACAGACCCGTAAAAAAAGAACTGAGATTAAGAAGTTCAAAAAGAAATTTGATGATTATT -CCGAAAGAAAAAGTAAATATGAAGAACAAAAATCGATTCTTAAAGATAGAAATAGCTTTTCTAAAACTGA -TCATGATGCAACTTTTATGAGAATGAAGGAAGACCATATGAAAAATGGCCAACTTAAGCCAGGATACAAT -TTACAAATAGCGACAAATTCTCAATTTGTTTTATCCTATGACCTATTTCAAAACCCGACAGATACTAGAA -CTTTAATTCCATTTTTAACAATGATTCAAAATACCTTCGGTTATTTACCGGAGTATATTGTAGCTGATGC -AGGTTATGGTAGTGAGCAAAACTATATGGCTATTATAGATGATTTTAATAAAACGCCACTTATTACGTAT -GGTATGTTTATTAAAGATAAAACGAGAAAGTTTAAAAGTGCCATTTTTAACACTCAAAACTGGAAATATG -ACGAACTTAATGATGAATTTATATGTCCTAATAACAAAAGAATAGGTTTTAAAAGATATGCATACCTTAA -TGATAGATATGGTTTTAAACGTGACTTCAAACTATATGAATGCGATGACTATTCAGCATGTTCTTTGAGG -CAACAATGCATGAAGCCAAATTCGAAATCCAATAAGAAAAGCATGAAGAATTATAATTGGGAATACTTTA -AAGCCCAAATTAATCAAAAGCTTTCTGAACCAGAAACGAAAAAAATCTATAGTCAAAGAAAAATTGATGT -AGAGCCTGTTTTTGGATTTATGAAGGCTATTTTGGGTTTCACTCGAATGTCAGTTCGAGGAATAAATAAA -GTTAAACGAGAGCTAGGTTTTGTATTAATGGCACTTAATATAAGGAAAATAGTAGCTCGACGAGCTGTAT -ATTATCAAATACATTTAAAAAAAGCTGATTTCTATCAAATAATTAATAGAAATCAGCTTTTTTACATTGC -CTAAGAACTTAATGTCCCAAGCTCAACAAAATTCTAACCTAGACAATTAAGATTAGATTGAATCGCATGA -TTCATTTATTTAGCTTTGTAACCAATCATATTGATTAAATCTTTAGGGTGGCTATATGGTGGTGCATAAG -CCACTTCAAACTCAGTTAACTCATCTACAGTTAGCTGGTTCATCATTGCCATCGATAGTACATCAATACG -TTTATCTGCGCCTTCTTTTCCTACTGCAGCTGCTCTTAAAATCTGACGGTTTGAAGTGTCATAATATACT -CTTAAGTGTAAAGGGGAATTTCCTGGGTAATAATTCGCGTGTGCACCTTGAGTGACTTCCACCATTTTAT -AGTCAAATTGCTTTAGTTCGTTTGGTTTAACGCCGACACTCGCAAATGTATAATCAAAGAACTTCACAAT -ATTGTTGCCTAAGAAGCCTTTGAATTCAATAGTGTCATTTCCAGCAATTTGTTCGGCAACAATACTTGCT -GCACGGTGAGCGCCCCAAGCTAAAGGAACACTAGCCGGTAGATCGACATGTCGATAATGTGATGTTGCAA -TATCGCCTATTACATAAATGTTTGGAACATTTGTTTCAAATTTATCGTTTACCGGTATGAAACCTTTTCG -ATCAAGTTTGATATTTGAACTTTCGATAAATTTTGAATTGGGGTGAGTACCGACACCTTCAATAATCATA -TCGTAATGTTCAACTTTTCCTGATTTAAATGTAATTTCATTTCCATTGATAGCATCAATTTCCTCATTTA -AACGGTATGGAATCTCCCGCTTATCTAATTCATCAAGTATAGGTTGATTCATATCGGCATCCATTAATTT -ATTTATCTTATCAGATCGATGAATTAAAGTAGGGTGTAAACCACGTTCATAAAGATTTTCAAGAACTTCT -AATGAAACATACCCTGCACCTACAACCAATACTTTATCAACTTGATTTGCTTTGATGAATTGATCGATAG -CATCAGTGTCTTCTAAATTTCTAAGTGTAAATGTAATATCACTTTCAAAGCCAAGGCTATTTGCACTTGC -ACCAGGGCTTAAAATGAGTTTATCGTATGATTCTTCAAATTGTTCGTTGGTCTTTCTATTTAATACAGAT -ACAGTTTGTCTTTCATCATTGATTGCAATAACTTCATGATAAGTTTTTACTGTAATTTGTTTTCTATCAT -AAAATTTTTCAGGTGTATACGCTAAAGCATATTTTCTATCTTCAACAACTTCGCCAATGACATAAGGCAA -TGCACAATTAGCAAAGCTCATATCACGATCTTTTTCAAAAATAATAATGTCACTTTCTTTATCTAAACGT -CGAATTTGGCTGGCACATGTTGCTCCGCCAGCGACTGCTCCGACTACGACTATTTTGGGCATCGTAACTT -ACCTCCTATTGTTTTAAAATATTATAAAATGATTAGTTATAAATTAACAGTAATATCTAATATTTAAATT -AAAGAAATCATTTAAATATCGACCAATTCCATCTTCATTATTGTTGAATGTAATATTGTTCGCTACATCT -TTAAGTTCTTGCAAACCATTTTCCATAGCAACACCGTGACGCGCGTACTCAATCATTTCTATATCATTAT -CTTCATCACCGAATGCAATAATATTATTTCGTTCAATATTTAAAAATTGTCTAACTTGTTCAATGCCTCT -TGCTTTATTAATTCCAAGTTTTACAATTTCAATGACAGGGAATGGTGCGCCCCAGCGTCGATGCTCAATA -TGATCGGCATAAAAATGAGTAAGCATATTTTTGATTTCAGGTATTTTACTTTCTTCGGCTTCAATTAAAA -TTGAGGTAGGGGATTCTTTCAAGTGGACAAGTAAATTACCAGTTTGAATTCTTGGATTACCCATTGAAAA -ACCTTCAAATAATCTTGGATCATGATTATTAATGAAAACATAATCTTTCACTTCTGCAATAATATTCGAT -ACTTGATATTGTTGTAATCCTTGAATAATATTTTGTGCGATGCCTAAATCTAAAATTTCATGGCAAGTTT -TGAAGTTTTTATCTTTAGGGTGATGTACGTAAGCGCCATTAAAATTAACAATTGGTGTCGTTAAATTTAA -TTCATGATAATACATTTGACTTGCACGATAAGGTCTGCCAGTCGCAATCATAATTTGGTGTCCACGTTGT -TGTAATTCATTTAATACTTGTTTAGTATATGATGAAATTTCTTTGTTATCGTTTAATAATGTTCCGTCTA -AGTCTAGACATATTAAATGTGGTTGCATATCTCTCTCCTCATAAGTTGCTTAGTTCATATAGATACATCA -TAGCATTTTATTGGCGTTTTGTCGGATATTTGATATATTATGAATAATATGACATTAAAGAGGTGATATG -GATGGAAGAGGCATTGAAAGATAGTATCTTAGGTGCATTAGAAATGGTAATTGACCCTGAATTAGGAATT -GATATCGTTAATTTAGGTTTAGTATACAAAGTGAATGTTGATGATGAAGGCGTATGTACAGTTGATATGA -CTTTAACATCAATGGGATGTCCAATGGGACCTCAAATTATTGATCAAGTTAAAACAGTATTAGCAGAGAT -TCCTGAAATTCAGGATACTGAAGTGAATATCGTATGGAGTCCACCTTGGACAAAAGATATGATGTCACGT -TACGCTAAGATTGCACTTGGTGTGAGCTAACATAAACTTGCATTACTTGTAGAAATTGGAAATCCAATTG -GGGCTCCGCTCCCAACTTGCATTGCTTGTAGAATTTCTTTTCGAAATTCTCTGTGTTGGGGCCCCGCAGT -CAATATAACATTGTAGAGTATAATTCATTGTGAATAAGCTCCCTTCAAAGTAGACATTGAAGGGAGCCTT -ATTTACGTTCTAGGTTCTGACTTTATTTTGAAAATTTATATCTAACTTGTTTCAGAAAATATGAATTAAG -ACAGTGACTTGCACTTCTAAGAGTGCACAATTCATTTCCTATTTGAATATTTTCTTGAAAATTTCTATAA -TAAATTGAATTTATATTACAGTTATATTACAATACATAATACTTCATAGTTTTTAAGTTGCCGAGTTGCA -TTACAAATTGGATTTCGAAATAAGAATCATCATTGGTAATTTTTTAATTTAACAGTATTTTAGTCAATAT -GATTTTGATGATGTCGTAATTCAATAATATACATATGCATTTCAATATTCTTTTAAACAGCATAACTAAA -TTTAATTAAGCATCTAAGAAGAACAGTTTTAAAAGGGAAGAATGCAAAAATGAACAAAACAAAGGGTTTT -ACAAAATATAAGAAAATGAGATATATGCCAGGGCTCGATGGTTTGAGGGCAATCGCTGTTCTAGGAATTA -TTATTTACCACTTAAATAAGCAATGGTTGACAGGTGGCTTTTTAGGTGTGGATACATTTTTTGTGATCTC -TGGTTATTTAATTACAAGCTTATTACTCAAAGAGTATGATGACACAGGTATCATTAAATTGAAAAGCTTT -TGGATACGTCGTTTAAAACGTTTATTACCAGCAGTCATAGTTTTATTAATGGTTGTAGGGACAGCAACCT -TATTATTAAAATCAGATAATATCATTAGGGTTAAACATGATATTATTGCTGCGATATTTTATGTATCAAA -CTGGTGGTATATAGCAAAAGATGTTAATTATTTTGAGCAATTTTCATTTATGCCATTAAAGCATTTATGG -TCTTTAGCAATTGAAGAACAGTTTTACATATTTTTCCCAGTTATTTTGGTTACATTATTGTTAACAATTA -AAAAGCGATACAAAATAGGATTTATTTTTTGGGGAGTATCTATAATTTCTTTAGGGTTAATGATGTTTAT -CTACAGTATTAATGGGGATCATTCACGAGTGTATTTTGGTACAGATACTAGATTACAGACATTGTTACTG -GGTGTTATTTTAGCTTTTTTATGGCCGCCGTTTAAATTGAAAAATGATCCACCTAAAGTTGTAAAATATG -TTATTGATAGCATAGGTAGTTTATCATTTATAGTACTTATATTATTATTTTTCATTATTAATGATGAGAC -GAATTGGATATATGATGGTGGTTTCTATTTAATATCCATATTAACGTTATTTATTATTGCCAGTGTCGTT -CATCCATCTACATGGATAGCGAAGATATTTTCAAATCCAGTGTTAGTATTTATCGGGAAAAGGTCTTATA -GTCTATATTTATGGCATTTTGCAGTAATTAGTTTCGTACATAGTTACTATGTAGACGGACAGATACCTGT -ATATGTGTACTTTATAGATATAAGTTTAACAATTATATTTGCAGAGCTATCATATCGCTTTATAGAAACT -CCATTTAGAAAAGAAGGTATTAAAGCTTTAAATTGGCGATCTTCTTATATACCACAATTTATAAGAATGG -TAATTGTAGTAACCTTGTTAATTCCATTTATGTTGATTTTAGTAGGTGCATTCAATAAATATGGTAAAGA -CATTATAGGAGAAAAAGCGAATAGCTTTGATACCACTATTGAAGATAATTATTCAATGCGGATAGCACCA -ATTGATAACATTCACATTGATGGCTTAGTAAGTGAGAAGAAAAAGGAATCTTCCGATGTATATAATAATA -TTAAACCTCTTTTAATCGGTGATTCAGTAATGGTTGATATCGGTGAGTCATTTAAGTCATCAGTTCCTAA -GTCTAGAATTGATGGAAAAGTAGGGCGTCAATTGTATCAAACCTTACCTTTAGTTAAAGCGAATTATTCA -CAATATAAAAAATCATCTGATCAAGTCGTATTAGAATTAGGTACAAATGGCGACTTTACTGTCAAACAGC -TCGACGATTTACTTAATCAATTTGGAAAAGCCAAGATTTATTTAGTTAATACACGTGTTCCAAGAATTTA -TGAGGCAAATGTAAATCGATTATTAGCTGACGCGGCGAAACGAAAGTCCAATGTCACATTAATTGATTGG -TATAAGCGATCACAAGGACATAGTGAATATTTTGCACCAGACGGTGTACATTTAGAGTACAAAGGAGTCC -TAGCTTTAAAAGATGAAATATTAAAAGCACTTAAAAAGAAATAACATATGTTTAATAAGTCTAGTTAATG -TGTAACGTAACATTAGCTAGATTTTTTTAATTCAAAAAATTATTTACAAATATTAGGAAATTTAAGTGTA -AAAGAGTTGATAAATGATTATATTGGGACTATAATATAATTAAGGTCAAAGAAAGTCAAAGTCAAAAGTG -CAACTTGACCAACTCTACAAATTAGAGGTGAAATTAATGGATATAAATAAAATGACATATGCTGTTCAAA -GTGCTTTACAACAAGCAGTTGAACTGAGTCAGCAACATAAATTACAAAATATAGAAATTGAGGCAATTTT -AAGCGCTGCCTTAAATGAAAGTGAAAGCTTATATAAAAGTATTTTAGAACGAGCAAATATTGAGGTAGAT -CAATTAAACAAAGCTTATGAAGACAAACTAAACACGTATGCATCTGTAGAAGGTGACAATATACAATATG -GTCAATATATTAGCCAACAAGCAAACCAATTGATAACTAAGGCTGAATCATACATGAAAGAATATGAAGA -TGAATATATTTCAATGGAGCATATTTTACGTTCGGCAATGGACATTGATCAAACAACAAAACATTATATA -AATAATAAAGTAGAAGTTATCAAAGAAATTATTAAAAAAGTAAGAGGGGGAAATCACGTGACATCACAAA -ATCCAGAAGTTAATTACGAAGCATTAGCTAAATATGGCCGCGACTTAGTAGAAGAAGTTAGACAAGGTAA -AATGGATCCTGTTATAGGAAGAGATGAAGAAATTCGAAATACGATTCGTATTTTAAGTCGTAAAACTAAA -AACAACCCTGTGCTCATTGGTGAACCAGGTGTTGGTAAAACTGCAATTGTTGAAGGATTAGCGCAGCGTA -TAGTTAAGAAAGATGTGCCAGAATCATTATTAGATAAAACTGTTTTTGAGTTAGATTTAAGCGCATTAGT -AGCGGGCGCTAAATATCGTGGTGAATTTGAAGAGAGATTAAAAGCAGTCCTAAAAGAAGTTAAAGAGTCT -GATGGTAGAATTATATTATTTATTGATGAAATCCATATGCTTGTAGGTGCTGGTAAAACAGATGGTGCCA -TGGATGCAGGCAACATGTTAAAACCAATGTTAGCACGAGGAGAGTTACATTGTATTGGTGCAACAACTTT -AAATGAATATCGAGAATATATTGAAAAAGATTCGGCATTAGAGCGTCGTTTCCAAAAAGTAGCAGTTAGT -GAGCCTGATGTTGAAGATACAATTTCAATTTTACGTGGTTTAAAAGAACGATATGAAGTATATCATGGTG -TGCGTATTCAAGATAGAGCCTTAGTTGCTGCCGCTGAATTGTCTGATCGTTACATCACTGATCGTTTTTT -ACCAGATAAAGCGATTGATTTAGTTGACCAAGCATGTGCAACAATTCGTACGGAAATGGGATCAAATCCA -ACTGAATTGGATCAAGTTAATAGACGTGTCATGCAATTAGAAATTGAAGAAAGCGCACTTAAAAATGAAT -CTGACAATGCGAGCAAACAGAGATTACAAGAACTACAAGAAGAGCTTGCCAATGAAAAAGAGAAACAAGC -AGCACTTCAATCTCGTGTAGAATCAGAAAAAGAAAAAATAGCAAATTTACAAGAAAAACGTGCGCAACTA -GATGAAAGTAGACAAGCGTTGGAAGATGCACAAACAAATAACAATTTAGAAAAAGCAGCTGAACTACAAT -ATGGAACAATTCCTCAATTGGAAAAAGAGCTTAGAGAATTAGAGGATAATTTCCAAGATGAGCAAGGTGA -AGATTCAGATCGAATGATTCGTGAAGTTGTAACAGACGAAGAAATTGGTGATATTGTCAGCCAATGGACA -GGCATACCAGTTTCAAAATTAGTTGAAACAGAACGTGAAAAATTACTTCACTTAAGTGATATCTTGCATA -AACGTGTTGTAGGTCAAGATAAAGCGGTTGACCTGGTTTCAGATGCAGTAGTTAGAGCTAGAGCAGGTAT -TAAAGATCCAAACAGACCTATTGGTAGTTTCTTATTCCTAGGTCCAACTGGGGTAGGTAAAACTGAATTA -GCTAAATCATTAGCTGCATCATTATTTGATTCTGAAAAACATATGATTCGTATTGATATGAGTGAATATA -TGGAAAAACATGCAGTATCAAGATTGATAGGGGCACCTCCAGGATATATTGGACATGATGAAGGGGGTCA -ATTAACTGAAGCGGTTCGTCGTAATCCATACTCAGTTATTTTATTAGATGAGGTTGAAAAAGCGCATACT -GACGTCTTTAATGTATTATTGCAAATTTTAGATGAAGGCCGTTTAACTGATTCTAAAGGACGTAGCGTTG -ATTTTAAAAATACTATTATTATTATGACAAGTAATATTGGATCTCAAGTTTTACTAGAAAACGTAAAAGA -GACTGGTGAAATTACAGAATCAACAGAAAAAGCTGTTATGACAAGTTTAAATGCATATTTCAAACCAGAA -ATTTTGAATCGTATGGATGACATCGTATTATTTAAACCTTTATCTATTGATGACATGAGTATGATTGTAG -ACAAAATATTAACGCAATTAAATATAAGATTACTAGAACAACGAATCTCAATTGAAGTTTCTGATGATGC -TAAAGCTTGGCTAGGTCAAGAGGCTTATGAACCTCAATACGGTGCAAGACCATTAAAACGTTTTGTACAA -CGCCAAATTGAAACACCATTAGCACGTATGATGATTAAAGAGGGATTCCCAGAAGGTACAACTATTAAAG -TTAATTTAAATTCAGACAATAACTTAACGTTTAATGTTGAAAAAATTCATGAATAAAATTGAACCAAGAA -TGTGATGATTAATCGCATTCTTGGTTTTTTAGATTTGAAATTTATTATAATTGTTCATTGGCAATATACT -TTTTAAATGATTTAATAAACGCCAATATTTCTGGATTTTCTTTTTTGCTGTATATATATGTAAATGAAAT -AGGTGCTTGTAAAATTTTCGTGTTAATAACCGAAATATTGTAATTACTATTTTTTGTTATATAAATAGGC -AGGAATGATATACCTTGATTCATTTCGATTAATTTAATTGAAGTATGCACATCATTGATAGATAGAAATT -GTGCTTTTTCATAAATATTTAAAATATTATTTTTAAGTGATGACCAATATTCTGGATGGTTATCACTTAT -TATTTTGTATTTTTCAAATAAAGATGCCTCAGTTAGAAGATGATTATTCTCTTTATTGGGAGCAATCAAT -ACAATTTTACCTTCGCATACTTTTTCAGAATGAACTTCTCTTAGTTTAGGTTGATTTCTGCTAATCCCGA -TGTCATACGTATGATTATTAATATCTTTTTCAATATTTTCATTTTTGACATGGAGAGAAACATCGATAAA -CGGATGCTCGTTAAAGAAAGATTTTAAAAATTTGGGCATAATGAATGTCGCGATATATGAAGACACGACA -ACATTTAATTTCGATTGAAACATCGTCTTTTTAAGTTGGATATGTTTGATGCCACTTTCATATTGTTCAA -TAAAACTTTGCGCAATTGGAAGAAATGTATGACCATCTTCAGTCAAGATAATTTGATTTTTATAAGTTTC -AAATAGTTTCACATTGAGATGCTGTTCTAAATTTTTAATTTGCTTATGTATAGAAGGTATAGTGAGATTA -ATTTCTTCACTAGCTAATCGATAGTTTAACGTCTTCGCTAAAATGACAAATGTATAGTACCAATCCAAAT -TCATGAACTTACCTCTTTCAAAAAAAGTTAATAATTCATTAGATAATATTTAATTTTTATTGCATAAAAA -TAATATTAATATTATATCAGAGGTTATCGAGGGGGTGAAGTAATATGATTCGAATTCAAGATAATACAAT -AAGGGATGGTATGCAACAAAGTAATGTTCGAAAAAGTCTAATTATAAAAAAAGAAGTATTGAAACAAATT -AACAAGTTAAATATAAATTCTGTTGAAGTAGGCATGTGTACAACTATCGAGGATGAATTTAATATTCATC -AATTCAGAGACATTTTAAGTCCTGAAAAAGAATTAGTAGTATTGACTAGGCTTAATGAAAAAGAAATAAA -AAAAATAGTCAAATTAAAAATTCATAATTTAGTGGTAAAAATACTATTGCCAATATCTGACTTGCATATA -AAAGAAAAGCTTAATTTTTCAAATAAATATTATATTCAGAAAATCAAAGACTGCTTGGATATATTAAAGA -AAGATAAAAAAGGAGTAGATATTTGTTTTGAAGATGCAACAAGGACTTCTAGAGAAAAATTGAAAGAATA -CATGGAAATTATTTCAAAATATCAAGTTAGAACAGTTACATTTGCGGACACTGTAGGATGTTCGACACCA -TTAGAATACGGAGATATTTTTAATTACTTTGTAAAAAAATATTCTAACATAATTTTTTCTGCTCATTGTC -ATAACGATCTAGGGTTGGCTACTGCAAATACATTAGCTGCAATTTTAAATGGTGCGAAGCAAATAGAAAC -TACATTTTTGGGAATTGGTGAGAGAGCGGGTAATGCTCCTATTGAGGAAATAATTACTATTTTGACAAAA -AAACAAATAGAAAGTACGGAATTCACTTTACCCGACGTATATAAAACTAGTATTAATATTTCTAAAATTC -TCGATTTTCAAATATCAGAAAACAAACCTATAATTGGTGAAAATATATTTAAACATGAATCAGGAATTCA -TCAAGATGGTACTAAAAAAAATATAAATATGTATCAATATTTAGTTCCTAGTGATTTAGGATTGAAAAAT -TCACAAGTTGTTCAGTTTCCAATAAGTAATATTTCTAGTAAGAAAATCTTGCACAATAAATTTAAATCAA -TAGTTAACACTGAAGAAATTGATGAAAATATTTCTTTTTATAAACTTGTGAACAAGTTTTCACCTGAAGT -AGCACCTGAAGATACAGTGGATTTACTTCAGATAATAAAAAGGAGGAGTAAAGATGGAAATTTTAAATGA -TTCTGTAAAAAGTTTTGAAAAACTTTATTTACAATTACAAGATGGTTTTCCAGTGATTGTTCCTACTGAT -ACTAATTATAATTTATGTAGTTTACCAAACAACGATCTTTGTATCGATAAAATATTTGAATATAAAAAGC -GATCGAAAGATAAGCCATTATCATTATTTATTGATAAGCCAGAGGATTGGAAATTGTATGGAGATAATCA -AAATACGGAAATAGTTGATAAACTAGTTGAAATATTTTGGCCTGGACCATTAAATATTATTTTAAAAAAT -AAAACAAGCTATAATTATATGCTCAATAATTCAGATAGTATAGCTATAGGATGTGTACAAAATAAAACGA -TGAGAAGGTTTATTTCATATATTAATTCACCTATAGCAATTACTTCAGCAAATATCTCTGGAACTGCCAA -TGATATTTTAATAACTGAAAATGAAGCGATTAAGCACATGGGTGAAAATGTAAGATATATGCTAAGAAGT -CAAAATAAAACTAACTATAAAACGTCTAGTACGATTATTAAAGTGACAGATAATAAAATTGAATTATTAA -GAGAAGGAGATATAAAGTTTGAAGAAATAAAAGAAAGACTAGGTACAGGTATTATTTATGAATAAGTTAA -TACTTGGGATTTATTTATACCGAATTTTTTCACGAGCGTACTTTTATTTACCTTTTTTATTAATTTACTT -TTTGGTTCAAGGTTATTCCATAATACAATTAGAAATATTAATGGCGTCTTATGGCATTGCAGCATTTTTA -TTCTCTCTATACAAAGAGAAGTGTTTTAAAATTTGTAACTTAAAAGATTCTAATAAATTAGTTGTTAGTG -AAATATTCAAAATCATCGGTTTATTGTTGTTATTATATCAAAATCAATATTTAATTTTAGTAGTGGCACA -AATATTATTAGGGTTAAGTTACTCAATGATGACGGGTGTTGATACAGCAATAATTAAAAGAAATATAACA -AATGAGAAATACGTACAAAATAAGTCAAATAGCTACATGTTCCTATCATTATTAATTTCAGGGATTATAG -GTAGTTATCTTTATGGAATAAATATTAAATGGCCTATAATAATGACTGGTATATTTTCAATTCTAACAAT -TATAATTATTCGCTGCACATTAGTTGAAAATAGGGAATTAAATTTAATAGGAGAAACAAAGGGAAAGATA -AAGAAATTTCTACCGGAAGAGAAGTTTTGGATATTGCATTATTCTTTTTTAAGAGCGTTAATATTAGGAT -TTTTTATAGGATTTATTCCAATTAATATATATAATGATTTAAAACTGAATAATTCACAATTTATTTCAGT -ATTAACTTGCTACACAGTTATGGGTTATTTATCTTCACGTTATTTAACCAAATACTTGAACTATAAGTTT -GTGTCAGAAATTTGTTTAGTAATATTTTTAATAATATATACATATCAAAGTTTCATAGCAGTTACTATTT -CTATGATATTTTTAGGTATTTCTTCAGGGTTAACTCGTCCACAAACTATAAATAAACTTTCTAGCAGTAG -TAACTTAAGAGTGATGCTTAATTATGCAGAAACGTTATATTTTATTTTTAATATCGCATTTTTACTTATG -GGTGGTTACTTATATACAATAGGAACTATTCAATACTTAATATTATTTATTGCATTATTAATTTTTATAT -ATTTAATAATAATATTTTATTTTACAAGGAGAGAGCAACATGAAACTAAAAACTGAATTTAAAGGGAACA -ATATACCATATGAATACGCAGCAGGTGCAGATGTGAGTGATTCTATTAACGGGAATCCAATTAAATCATT -TCCATTTGAAGTAACTGAATTACCGGAAGGGACTAAATATCTTGCTTGGTCTTTAATTGACTATGATGCA -ATCCCAGTATGTGGCTTTGCTTGGATTCATTGGAGTGTAGCTAATGTAAGTGTTAGTGGCAATTCAATTT -CTATTAAAGCAGATTTATCAAGAACAAAGGGCGACTATGTACAAGGTAAAAATAGCTTCACTAGTGGTTT -GTTAGCTGAAGATTTTTCAGAAATAGAAAATCACTATGTAGGACCAACACCACCTGATAAAGATCATCAA -TATGAATTAACAGTTTATGCGTTAGATCATTCTTTAAATTTGAAGAATGGGTTCTACTTGAATGAATTTT -TAAAAGAAGTAAATCAACATAAAATAGATCAAACAAGTATTAACCTTATAGGAAGAAAAATTTAATATTA -AATATCTCATCAATATAAAATTGTTCAATTAAAAGTACGAAGAAACAAGGGATTTAATTTATATATTAGG -TACGGCGTTCGCTATAATGCAATGAAGTAATTAAATTTAAGAAATGTAAACTTAGTTATTGTAATGTGAA -TTTATTTGAAAAAATAGAAAGTATTAACAATTATAGCTTTTACATTAATTAAAATTTATTTTTAAAAACA -AGTAAACAATTTACATACTTATAATTTTTGAAACTTTTAGATTTGTGTTATATTGATTTTGTAAGATACT -TTAACTCACAAAGGAGAGAGATTATATGAAATTAAAATCATTTATAACTGTAACTTTGGCACTGGGCATG -ATCGCAACGACTGGCGCTACTGTGGCAAGTAATGAGGTATCTGCAGCAGAAAAGGACAAACTACCGGCAA -CTCAAAAAGCTAAAGAAATGCAAAATGTTCCATATACAATTGCAGTAGATGGCATTATGGCTTTCAATCA -ATCTTACTTAAATTTACCAAAAGATAGCCAATTATCATATTTAGATTTAGGGAATAAAGTTAAAGCTTTA -TTATATGATGAACGTGGTGTAACACCTGAGAAGATTCGAAATGCAAAATCTGCCGTTTACACGATTACTT -GGAAAGATGGCAGTAAAAAAGAAGTGGATTTAAAGAAAGATAGTTATACAGCAAACTTGTTTGATTCAAA -TTCAATTAAGCAAATTGATATTAATGTAAAAACTAAATAAACACTTAAAATTATCAAATTCAACATGAAG -CATTTAATTTTACAGTGATGATTATAATATAATTGCCTTGATACAAAGATTACTCGTAAATGACATCTTT -GTATTAAGGCTTTTTCTAAATTTAAAAGTGATGGGTTAGAGGTCATTGAGTTTTAAAATATTCCAAATAC -AAAACATTAATGGCCAAAAATAAAAGCCGCCTTTATCTGGGCAGCTTCAATAATAAGAAAGACATATTTC -ATTTTATACTAAATAGTTATTGTGATGAATCTTTCGGCGGTTTAATTACTGCAGCGAAAATTGCTGTGAA -AATCGTGAACAATACTGCCATGATAATTGGATTCACTACATTTAAGCTGTCTCCACCTACTAGGCTATTA -AGTACAAAGTTAACCATTTGCATTAATAATAATGCCCAAAAGAATGTTACGAGGTGTTTCATGTCATTCT -ACCTCCACTTTAATTATATATATTTTATTTTAAGTGAAAGTTAGAAATTTGTATAGTAACATCTCATATA -TTTTGACCATATTATACAGTTTAAATAAATGATTTTATCTGAATGGCTATTCTAAATTAAGCGCATTAAA -ATCAATTTCATACTGAAATTTGACGATAATAAAGCATTAAAATTTTATTAACTAGTCAATATTCCTACCT -CTGACTTGAGTTTAAAAAGTAATCTATGTTAAATTAATACCTGGTATTAAAAAATTTTATTAAGAAGGTG -TTCAACTATGAACGTGGGTATTAAAGGTTTTGGTGCATATGCACCAGAAAAGATTATTGACAATGCCTAT -TTTGAGCAATTTTTAGATACATCTGATGAATGGATTTCTAAGATGACTGGAATTAAAGAAAGACATTGGG -CAGATGACGATCAAGATACTTCAGATTTAGCATATGAAGCAAGTGTAAAAGCAATCGCTGACGCTGGTAT -TCAGCCCGAAGATATAGATATGATAATTGTTGCCACAGCAACTGGAGATATGCCATTTCCAACTGTCGCA -AATATGTTACAAGAACGTTTAGGGACGGGCAAAGTTGCCTCTATGGATCAACTTGCAGCATGTTCTGGAT -TTATGTATTCAATGATTACAGCTAAACAATATGTTCAATCTGGAGATTATCATAATATTTTAGTTGTCGG -TGCAGATAAATTATCTAAAATAACAGATTTAACTGACCGTTCTACTGCAGTTCTATTTGGAGATGGTGCA -GGTGCGGTTATCATCGGTGAAGTTTCAGAAGGCAGAGGTATTATAAGTTATGAAATGGGTTCTGATGGCA -CAGGTGGTAAACATTTATATTTAGATAAAGATACTGGTAAACTGAAAATGAATGGTCGAGAAGTATTTAA -ATTTGCTGTTAGAATTATGGGTGATGCATCAACACGTGTAGTTGAAAAAGCGAATTTAACATCAGATGAT -ATAGATTTATTTATTCCTCATCAAGCTAATATTAGAATTATGGAATCAGCTAGAGAACGCTTAGGTATTT -CAAAAGACAAAATGAGTGTTTCTGTAAATAAATATGGAAATACTTCAGCTGCGTCAATACCTTTAAGTAT -CGATCAAGAATTAAAAAATGGTAAACTCAAAGATGATGATACAATTGTTCTTGTCGGATTCGGTGGCGGC -CTAACTTGGGGCGCAATGACAATAAAATGGGGAAAATAGGAGGATAACGAATGAGTCAAAATATAAGAGT -AGTTATTACAGGTATGGGAGCCCTTTCTCCAATCGGTAATGATGTCAAAACAACATGGGAGAATGCTCTA -AAAGGCGTAAATGGTATCGATAAAATTACACGTATCGATACTGAACCTTATAGCGTTCACTTAGCAGGAG -AACTTAAAAACTTTAATATTGAAGATCATATCGACAAAAAAGAAGCGCGTCGTATGGATAGATTTACTCA -ATATGCAATTGTAGCAGCTAGAGAGGCTGTTAAAGATGCGCAATTAGATATCAATGAAAATACTGCAGAT -CGAATCGGTGTATGGATTGGTTCTGGTATCGGTGGAATGGAAACATTTGAAATTGCACATAAACAATTAA -TGGATAAAGGCCCAAGACGTGTGAGTCCATTTTTCGTACCAATGTTAATTCCTGATATGGCAACTGGACA -AGTATCAATTGACTTAGGTGCAAAAGGACCAAATGGTGCAACAGTTACAGCATGTGCAACAGGTACTAAC -TCTATCGGTGAAGCATTTAAAATTGTGCAACGCGGTGATGCAGATGCAATGATTACTGGCGGTACGGAAG -CTCCAATTACTCATATGGCAATTGCAGGTTTCAGTGCAAGTCGAGCGCTTTCTACAAATGATGACATTGA -AACAGCATGTCGTCCATTCCAAGAAGGTAGAGACGGTTTTGTTATGGGTGAAGGTGCTGGTATTTTAGTA -ATCGAATCTTTAGAATCAGCACAAGCTCGAGGTGCAAATATTTATGCTGAGATAGTTGGCTATGGTACTA -CAGGTGATGCTTATCATATTACAGCGCCAGCTCCAGAAGGTGAAGGCGGTTCTAGAGCAATGCAAGCAGC -TATGGATGATGCTGGTATTGAACCTAAAGATGTACAATACTTAAATGCCCATGGTACAAGTACTCCTGTT -GGTGACTTAAATGAAGTTAAAGCTATTAAAAATACATTTGGTGAAGCAGCTAAACACTTAAAAGTTAGCT -CAACAAAATCAATGACTGGTCACTTACTTGGTGCAACAGGTGGAATTGAAGCAATCTTCTCAGCGCTTTC -AATTAAAGACTCTAAAGTCGCACCTACAATTCATGCGGTAACACCAGACCCAGAATGTGATTTGGATATT -GTTCCAAATGAAGCGCAAGACCTTGATATTACTTATGCAATGAGTAATAGCTTAGGATTCGGTGGACATA -ACGCAGTATTAGTATTCAAGAAATTTGAAGCATAATTATAAAAATCTTCAGTAACGTTGTTTTAGTTACT -GAAGATTTTTTCTGTTTCTTTATACTAAGATGAGCGACAGCACAATCGTCATAATAAAATATAAAATATT -TATTAATAATAAGGGTATTATCCATGTAGAAACAAAGTAATGCTCTTTTTTTACCTCTTGTGGGTTGAAA -AATGGATCATCAGAGATAGACTTCTTCTTTTTCGAAGATGACATTTGATACTTTAATCTTCTAAAACCAT -AACTTGTCGCATCAAAAATGCCTTCTTGTACAAGTAAAATCAAAAAAATGCTAATAAAAATAATTAATGA -AACATAAAACAATATATTTAAATATGTAATGATAGTATGGCTATTAAAAACCCATATAATAAACGTTAGC -ATTGGGGTTATTAGTGCCATTCCAAGCCATTTTTTCAACATTTGATCACTCCCACTTATAGAAAACTCTT -ACGCATAGTTTACATTAAAATGAGACATTGAGGAATGATTTTTTAATTTCTTCAGCTTTATTGAAATTCT -AAAATCAATCATTCTTCATTAGTTTAAAGCAAAAAAATATTGATATATAGTAAATATTGTATATATAATA -TTAGTTAAGATTTCAGAAAATTTTGAAGGGAATGGAAATTTAGAAATCGGAATTTGTTAGAGGAGGGGAT -TAGATGGGGAAATATATTTTTAAACGATTTATTTATATGCTTATTTCTTTATTTATTATTATTACAATTA -CATTTTTCTTAATGAAATTAATGCCAGGTTCACCATTTAACGATGCTAAATTAAATGCTGAACAAAAAGA -AATTTTAAATGAAAAATATGGATTAAATGATCCTGTAGCAACGCAGTATTTACATTATTTAAAAAATGTT -GTTACAGGGGATTTTGGTAATTCATTCCAATATCATAATCAACCTGTGTGGGATTTGATTAAACCGAGAC -TATTACCTTCTTTTGAAATGGGTCTTACAGCAATGTTCATCGGTGTGATACTGGGTCTTATTTTAGGTGT -TGCAGCAGCTACTAAACAAAATTCTTGGGTTGATTATACAACTACAGTTATTTCAGTTATTGCAGTATCT -GTACCATCTTTTGTACTTGCTGTACTTTTACAATACGTATTTGCAGTTAAATTAAGATGGTTCCCAGTAG -CTGGATGGGAAGGTTTTTCGACCGCGGTATTACCGTCACTTGCATTATCTGCAGCTGTTTTAGCAACTGT -CGCCAGATACATAAGAGCAGAGATGATAGAGGTATTAAGTTCAGACTACATTTTATTAGCGAGAGCTAAA -GGTAATTCGACAATGCGTGTACTTTTTGGACATGCACTTAGAAATGCTTTAATTCCAATTATTACAATTA -TCGTTCCCATGTTAGCAAGTATTTTAACAGGCACTTTAACAATTGAAAATATTTTTGGAGTTCCTGGATT -AGGGGATCAATTCGTACGTTCAATTACAACAAATGATTTCTCAGTAATCATGGCAATCACACTATTATTT -AGCACACTGTTTATCGTTTCTATTTTTATTGTAGATATTTTGTACGGTGTGATAGATCCACGAATTCGTG -TTCAAGGAGGTAAAAAATAATGGCTGAAAATAAAAACAATTTGTCGATTAACGACGATCATTCTAATGCA -GCTATGACGCATACCTCTGACGCTATCGCATCATCTGATTTTATTATTAGAGAATTAGATTTGAATCAGG -AACCTGAAATGCAACGAGAAAGCAAAAACTTTTGGCAAGATGCTTGGGCTCAGTTAAAACGAAATAAGTT -AGCTGTTGTCGGTATGATAGGTTTAATTATCATTGTAATATTTGCTTTTATCGGTCCAGTTATAAATAAA -CATGATTATGCTGAACAAAATGTACAACATAGAAATCTTCCGGCAAAAATACCTTTATTAGACAAAGTTC -CATTTTTACCTTTTGATGGTAAAGATGCAGATGGCAAGGATGCTTATAAAGCAGCAAATGCTAAAGAAAA -TTATTGGTTTGGTACTGATCAGTTGGGTCGAGATTTATGGACAAGAACATGGAAAGGTGCTCAAATTTCA -TTGTTTATCGGTGTTGTTGCAGCGATGTTAGATATTTTTATTGGCGTTGTATATGGTGCGATTTCTGGAT -TCTTCGGTGGACGTGTCGATACGATTATGCAACGTATACTTGAAGTCATAGCATCTATTCCGAATTTAAT -TGTCGTAATTTTATTTGTATTAATTTTTGAACCATCCATTTGGACAATTATATTGGCTATGTCTATCACA -GGCTGGTTAGGCATGAGCAGAGTTGTACGTGGAGAATTTTTAAAATTGAAAAATCAAGAGTTTGTCATGG -CTTCGAAAACATTGGGGGCTTCTAAATTCAAATTGATATTTAAGCATATTTTACCTAATACGTTAGGTGC -TATCGTGGTTACATCAATGTTTACAGTACCTAGTGCTATTTTCTTCGAAGCATTTTTAAGTTTCATTGGT -ATAGGTGTACCCGCACCTCAAACATCGTTAGGGTCATTAGTAAATGATGGGCGCGCAATGTTATTAATTT -ATCCACATGAATTATTTATACCAGCAATGATTTTAAGTTTATTAATTCTATTCTTTTACTTATTTAGTGA -TGGATTACGTGATGCATTTGATCCGAAAATGCGTAAATAAAAGGGGGCATAGCATATGACTGAAAGAATA -TTAGAACTAAATGATTTGCATGTTTCCTTTGATATTACAGCAGGGGAAGTGCAGGCAGTGAGAGGTGTAG -ATTTTTATTTAAACAAAGGGGAAACATTGGCAATTGTTGGTGAATCAGGTTCAGGTAAATCTGTGACAAC -AAAAGCAATTACAAAATTATTCCAAGGGGACACAGGAAGAATTAAAAAGGGAGAAATTTTATTTTTAGGG -GAAGATTTAGCAAAAAAACCTGAAAATGAGTTAATTAAATTACGTGGAAAAGATATTTCAATGATCTTTC -AAGATCCAATGACATCTTTAAACCCAACGATGCAAATTGGTAAACAAGTCATGGAACCATTAATTAAGCA -CAAAAATTATAGTAAAGCACAAGCTAAAAAGCTCGCATTGGAAATACTAAATCTTGTAGGATTACCAAAT -GCAGAAAAAAGATTTAAAGCATATCCACATCAATTTTCAGGTGGACAAAGGCAAAGAATTGTTATTGCAA -CCGCATTAGCTTGTGAACCTAAAGTGCTGATTGCTGATGAACCAACGACTGCATTAGACGTAACGATGCA -GGCACAAATTTTAGATTTAATGAAAGAACTACAACAAAAAATCGATACAGCAATTATTTTTATAACGCAT -GATTTAGGGGTTGTTGCGAATATTGCTGATAGAGTGGCAGTTATGTATGGTGGTCAAATGGTTGAAACAG -GAGATGTTAACGAAATATTTTATGATCCAAAGCATCCATATACATGGGGATTATTATCGTCAATGCCTGA -TCTATCAACAACAAATGACACACCATTACTAGCGATTCCTGGAGCGCCACCTGATTTATTACACCCACCT -AAAGGTGATGCATTTGCGAGACGTAGTCAATATGCATTAGATATTGATTTTAAAGTAGAACCGCCGTGGT -TTAAAGTTTCACCGACACATTTTGTGAAATCTTGGTTATTAGACGCACGTGCACCAAAAGTTGAACTACC -CGAGCTGGTAAAACAACGTATGAAACCGATGCCTAATAATTATGAAAAACCACTCAAGGTAGAAAGGGTG -TCGTTCAATGAAAAATGATGAAGTGCTATTATCTATTAAAAATTTAAAGCAATATTTTAACGCAGGAAAG -AAAAACGAAGTGAGAGCGATTGAAAATATTTCGTTTGAAATATACAAAGGAGAAACATTAGGTTTAGTAG -GAGAATCGGGGTGTGGTAAATCTACAACTGGTAAATCAATTATCAAACTTAATGATATTACAAGTGGAGA -AATTTTGTATGAGGGTATTGATATACAAAAGATTCGTAAACGTAAAGATTTGCTTAAATTTAATAAAAAG -ATACAGATGATTTTTCAAGACCCATATGCGTCTTTAAATCCTAGGTTAAAAGTAATGGATATAGTAGCTG -AAGGTATTGATATCCATCATTTAGCAACTGATAAGCGTGACCGTAAAAAACGTGTCTATGATTTACTTGA -AACTGTTGGATTAAGTAAAGAACATGCCAATCGTTATCCTCATGAATTTTCAGGTGGACAACGCCAACGT -ATTGGAATTGCCCGTGCATTAGCCGTTGAACCAGAATTTATTATAGCAGATGAACCTATTTCAGCATTGG -ATGTTTCAATTCAAGCTCAAGTAGTCAATTTGTTATTAAAATTACAGCGTGAAAAAGGTATTACATTCCT -ATTTATTGCACATGATTTATCGATGGTGAAGTATATCTCTGATCGAATTGCAGTCATGCATTTTGGGAAA -ATTGTAGAAATCGGACCAGCAGACGATATTTATCAATATCCATTACATGATTATACTAAGTCTTTATTGT -CGGCAATTCCTCAACCGGATCCTGAATCGGAACGTAGTCGTAAACGATTTAGTTATATTGATGATGAAGC -AAATAATCATTTAAGACAATTACATGAAATAAGACCACAGCATTTTGTCTTTAGTACTGAAGAAGAAGCG -GCACGACTACGAAAAAATTTGTTGGTAACACAAGATTAAGGGGAAGGGAGAAATGAAATGACAAGAAAGT -TAAAAACGCTGATTTTAATATTTGTTGCCACAATTGCATTAAGTGGTTGTGCTAATGATGATGGTATTTA -TTCAGATAAAGGTCAAGTATTCAGAAAAATTTTGTCAGCAGACTTAACATCACTTGATACATCATTAATT -ACGGATGAAATATCTTCTGAAGTGACTGCGCAAACATTCGAAGGTTTATATACATTAGGAAAAGGTGACA -AACCGGTGTTAGGTGTTGCGAAAGCTTTTCCTGAAAAGAGTAAAGATGGGAAAACTTTAAAGGTTAAATT -AAGAAGCGATGCTAAATGGAGCAATGGTGACAAAGTGACTGCACAAGACTTTGTTTATGCTTGGAGAAAA -ACAGTTGACCCTAAAACTGGTTCTGAATTTGCATACATTATGGGGGACATTAAAAATGCGAGTGATATTA -GTACTGGTAAGAAACCTGTAGAGCAATTAGGTATCAAAGCATTAGATGATGAAACATTACAAATTGATTT -AGAAAAGCCGGTACCATACATTAATCAATTATTAGCACTTAATACATTTGCACCTCAAAATGAAAAAGTT -GCCAAAAAATATGGTAAAAATTATGGTACGGCAGCTGATAGAGCGGTATACAATGGTCCATTTAAAGTTG -ATGATTGGAAACAAGAAGATAAAACGTTACTATCTAAAAATCAGTATTATTGGGATAAAAAGAAAGTAAA -ATTAGATAAAGTGAATTATAAAGTTATTAAAGACTTACAAGCAGGTGCATCATTGTATGATACTGAATCT -GTAGATGACGCAGTTATTACAGCAGATCAAGTAAATAAATATAAAGATAATAAAGGATTAAACTTTGTGT -TAACGACTGGGACATTTTTTGTAAAAATGAATGAAAAACAATATCCTGATTTTAAAAACAAAAATTTAAG -ACTGGCTATCGCACAAGCAATAGATAAAAAAGGATACGTTGATTCAGTGAAAAACAATGGTTCAATTCCT -TCCGATACACTAACAGCCAAAGGCATTGCGAAAGCACCTAATGGCAAAGATTATGCGAGTACCATGAATT -CACCTCTAAAATATAATCCTAAAGAAGCAAGAGCGCACTGGGACAAAGCTAAAAAAGAGTTAGGTAAAAA -TGAATTGTCATTTTCGATGAACACAGAAGATACACCAGATGCAAAAATATCTGCTGAATACATCAAATCA -CAAGTTGAGAAAAATTTACCAGGAGTTACTTTGAAAATTAAGCAATTGCCGTTTAAACAAAGAGTATCAC -TAGAACTGAGTAACAATTTTGAAGCATCACTTAGTGGTTGGTCTGCAGATTACCCTGATCCTATGGCTTA -TTTAGAAACAATGACCACAGGTAGCGCACAAAATAATACAGACTGGGGTAATAAAGAATACGATCAATTA -CTTAAAGTAGCGAGAACCAAATTGGCACTTCAACCGAACGAACGATATGAAAACTTGAAAAAAGCAGAAG -AAATGTTCCTAGGAGATGCACCGGTAGCACCAATTTATCAAAAAGGTGTTGCACATTTAACAAATCCTCA -AGTAAAAGGATTGATTTACCATAAATTTGGTCCAAATAACTCACTTAAACATGTATATATTGATAAATCG -ATAGATAAAGAAACAGGTAAGAAGAAAAAATAATTTGCTTTGTAAATTAGACTGGAGATATATCTCCAGT -CTTTTTGTGTTGCAGAAAAACTTTGGGAATAAAAAATTAAAATAAGTCGTTTTTTAAATTACTGAAATTG -ATTAAATGCATAAATGACTGAATATTCTAAAAATAAACTTGTAATAATTTTTTCTATGAGTAAACTAAAA -AGAAAATATTAGATTGAAAGTAGGAGGCATATGTATGGGGAAGCTTATTAAATATATTTCAATACTTCTT -ATTGTCGTTTTAGTGTTGAGCGCTTGCGGAAAAAGCAGTAATAAAGATGAAGGAGTAAAAGATGCTACTA -AAACAGAAGCGTCAAAACATAAAGGTGGTACTCTAAATGTAGCGTTAACAGCACCGCCAAGTGGTGTTTA -TTCTTCGTTATTAAATAGTACACATGCGGATGCTGTAGTTGAAGGATATTTTAATGAAAACTTATTAACA -ATTGTTGATTTGTCAATTTAAGTGCAACAGTTCATCACATAAAACTTCATAAGGAAACTTCCAATTTAAA -CACTTTCTTGGTCGATAATTAATTGAGTCTAATGCATAGTTAAGTTGCTCTTGATTTACTTTAGCTAAGT -CTGTTTTCTTAGGGAAAAATTCTCTTAGTAAACCATTGGTATTTTCATTTGTACCTCTTTGCCATGCGGA -ATATGGATCAGCGAAGTAGACATTAATATTAAATTGGTTTTCAATATTTTGATAACAAGAGAACTCTTTC -CCTCTATCGACAGTAATAGTTTTAACGGCACCTTTAGGTAGATGTTTGATAAGGTTATTAATTGCCGTCT -CCATAGAATTAGAGGAACGATCAGGCATAAGTACACAATAATAATAACGTGATTTTCTTTCTGCGAAAGT -AGCAATGCACCCTTTACTTTTGCCTCTGCTGGATACAATTGTGTCAGCTTCCCAATGACCGAATGTATTA -CGTTTCTTTATTTCCTTAGGACGTTGTGAAATAGGACGGCCAATATTAAACTTACCTCTAGTTTCTTTAG -GTTTCTGTCTTTTTCCTTTTTGACGAAGGCATGAAATAAGTTCGAAATTAATCATATTAGAGTTAATCCA -TCGATAGATGGTTTTAAAACAGATTTGGTTTTGTAATAGACGACCTACGATTTGTTCAGGAGACCAGTGG -CATTTTAAATAATATTTAATGATATTACCAAGTTCTGGAGTAAATCGAGTAGGACGACCACAAAGTTTTC -TTTTGGTTTCATAATTTTTTTGAGCTGTTTCAGCTTGATATGACTGATTTAAATTATTCCTACTAATTTC -ACGTGAGATAGTAGATACAGATCGTTTTAATTTACGTGCAATAGATCTTAAAGAATAATTTTCTTGACGT -AAAACCTCTATACGTGCGCGTTCAGTTAGTGTAAGATGGTTATAGCTCATGTTGGCACTCCTTGTATGTG -TTTTTGTGGTTATTAACATCTTACAACAAAGTGCCAATTATGGGCATTTTTTATGAATTTTTATAGGTGT -TGCACTTAATATTACAATCCGTCAATTGATAAAAAAATACATCCTAAAGCATATATTGCTTCATGGAAGG -ATATCGAGCCGGCTAAGAAAATAGAATTTAAAATTAAAAAAGGTATTAAATGGCATGATGGTAATGAATT -GAAAATTGATGATTGGATTTATTCAATTGAAGTCTTAGCTAACAAGGATTACGAAGGTGCTTATTATCCA -AGTGTAGAAAATATCCAAGGTGCAAAAGATTATCATGAAGGAAAAGCTGATCATATTAACGGATTGAAGA -AAATAGATGACTACACAATGCAGGTTACATTTGATAAAAAGCAAGAAAATTACTTAACAGGATTTATTAC -TGGACCTTTATTAAGTAAAAAATATTTATCAGATGTACCAATTAAAGATTTAGCGAAATCAGATAAAATC -CGAAAATATCCTATTGGTATTGGACCATATAAAGTTAAGAAAATCGTCCCAGGTGAGGCTGTTCAACTTG -TTAAATTTGATGATTATTGGCAAGGTAAGCCTGCATTAGATAAAATCAATTTAAAAGTTATTGATCAAGC -TCAAATTATTAAGGCAATGGAAAAAGGCGATATTGATGTTACGAATGATGCTACCGGTGCAATGGCAAAA -GATGCTAAGTCATCTAATGCTGGTCTCAAGGTATTATCTGCGCCAAGCTTAGACTACGGTTTAATAGGAT -TCGTATCTCATGATTACGATAAAAAAGCTAATAAAACTGGTAAAGTGAGACCAAAATATGAAGACAAAGA -ATTACGTAAAGCAATGCTTTATGCAATTGATAGAGAAAAATGGATCAAAGCATTTTTCAATGGTTACGCT -AGTGAAATAAATAGTTTTGTACCATCAATGCATTGGATAGCAGCTGATCCTAAGGAACTAAACGATTATA -AATATGATCCTGAAAAAGCTAAAAAAATCTTAGATAAGTTAGGTTATAAAGATCGAGATGGTGACGGATT -TAGAGAAGATCCTAAAGGTAATAAATTTGAGATTAACTTTAAACATTATTCAGGTTCAAATCCTACTTTT -GAACCAAGAACTGCTGCGATAAAAGATTTCTGGGAAAAAGTTGGCTTGAAAACAAATGTGAAGTTAGTAG -AATTCGGTAAATATAATGAAGACTTAGCAAATGCATCAAAAGATATGGAAGTGTACTTCAGATCATGGGC -AGGTGGTACAGATCCAGACCCATCAGATTTATACCACACTGATAGACCTCAAAATGAAATGAGAACAGTT -TTACCAAAATCAGATCAATATTTAGATGATGCATTAGACTTCGATAAAGTAGGCATTGATGAAAAGAAAC -GTAAAGATATTTATGTTAAATGGCAAAAATATATGAATGATGAGTTACCTGGATTACCAATGTTCCAAGG -TAAATCGATAACTATAGTTAATGATAAAGTACGAAACTTAGACATTGAAATTGGAACTGATCAAAGTTTA -TATAATTTAACTAAAGAAGCTTAGTAATGTAACCTCGACGATTTTGTCGAGGTTTACTTATATGGGGGGA -TGTTATGAATAATGTATTGTTAGAGGTTAAAGATTTAGAAACATCATTAAAAATAAATAATGAATGGTTA -GCAACTGTTGAAAATATTTCTTTTGAATTATCTAAAGGAGAAGTTTTGGGTATAGTAGGGGAATCTGGTT -GCGGTAAGTCCATATTAAGTAAGTCAATTATTAAATTATTACCAGAAAAGATATCTAAACTAAGTAATGG -AGAAGTTATATTTGATGGTAAACGAATCGATACGCTCAATGAGAAGCAATTGCTAGATATTCGAGGAAAT -GATATTGCTATGATTTTTCAAGAACCTATGACTGCTTTAAATCCGGTATTTACTATAAAAAATCAACTTG -TGGAATCTATAAAATCACATAAAAAAATTTCTAAAAAAGAAGCAAATAACTTAGCAAAAGATTTACTAAA -AAAAGTTGGAATTGCAAGACAAGATGAAATATTAAATAGCTATCCCCATCAATTATCTGGTGGTATGAGG -CAAAGAGTAATGATTGCAATGGCCATTTCATGTTCTCCCAAATTATTAATTGCTGATGAACCTACAACTG -CTTTGGATGTCACGATTCAAGCGCAAATATTAGACTTATTAAAAGAATTGCAAAAGGAAACGCAAATGGC -AATTATGATGATTACACATGATTTGAGTGTGGTTGCTGAATTTTGCGATAAAGTTTTGGTTATGTATGCA -GGTCAAATTGTAGAATTTGGAGGCATAAAAGAAATACTACACAATCCGAAACATCCTTATACCCAAAAAT -TATTATCTACAATTCCAAAACTTAAAGAAGAGCAGAAACGACTTGAAACAATAGAAGGAATTGTGCCATC -AATCCAAGCATTTCACGTTAATAAGTGCAGATTTGCAAATAGATGTAACAAAAAACTGGATATTTGTAAT -AATCAATCTCCTAAAATGCATGTTTGTGAAGACGTCATTGTACGGTGTCATTTATACCAAAATGAATATA -AGGAGATATAAGAATGGAAAATATTTTAGAAGTAAATCAAGTAAAAAAATACTACAAAATTAAAACTGGA -TTATTACAAAAAACTCAGTACGTTAAAGCTGTTGATGACGTATCGTTTTCAATAAAAAAAGGACAAACTT -TTGGATTGGTAGGCGAATCAGGTTGTGGTAAGTCAACGTTAGGTAAAGTGATTATCAGACTTGAAGATGC -AACTTCAGGCTCAATAATTGTTAATGGTGAAGATATAACAAGATTACAAGGTAAAAAACTGAGAAAATCA -CGACAACAATATCAGATGATATTTCAAGATCCGTATGCATCATTGAATCCGATGCAAATGGTTGGAGATA -TCATTTCAGAACCTATTTTAAATTATAAAAAATTGCCAAAAGAAGAAATAAAAAAAGAAGTTCTATATTT -ATTAAAATGTGTTGGTCTAAGTGAAGATGCATATTATAAATATGCACATGAATTTTCAGGTGGACAGAGA -CAAAGAGTGGGAATTGCAAGAGCATTGGCTTTGCGTCCGAGTTTAATTGTTGCTGATGAGCCTGTAAGTG -CATTAGATGTATCTGTTCAATCTCAAGTACTGAATTTATTAAAAGATTTACAAGAACAATTTAACTTAAG -CTATTTATTTATCGCACATGATTTAAGTGTAGTAAAACATATAAGTGATGTCATTGGAGTTATGTATTTA -GGTCATATAGTTGAAATCGCATCTGATAAAGAAATTTATGAAAATCCCAAACATCCTTATACAAAAGCGT -TGATTTCATCAATACCACAAATTGATAAGCTAAATAAAAATAGAATTATATTAAAGGGAGAATTACCTTC -GCCAAGTAATCCGCCACAAGGTTGTCCTTTCCATACTAGATGTCCAATTGCTCAAGATATGTGCAAAAAA -AGTATGCCAGAATTAAAGGACATTGGTAACGAACATCAAGTCGCTTGTTTCTACGTAGATAAAGTAGGTG -ATTTAAATGATTAAATTAATACTTAAAAGATTAGGGTTAATGATCCCGTTACTAATTTTAATTTCAATAG -TTGTATTTTCATTAGCAATCATACAACCAGGAGATCCATTTTCAGATCTACAAAACGGTAAAATAAAACA -AGAAGCAATAAATGCACAAAGGGAAAAATTAGGTCTCAACGACTCAATACCACATCAATACATTAGATGG -GTCAATCATGTTATACACGGTGATTTAGGGGAGTCAATCAAATATAAAAGGCCGGTAATTGATGTTATTG -AGGAAAGAATTCCAAATACAATATTACTCGGTGCTATGTCATTAATTATTACTTATATTATCTCATTTGC -TTTAGGAATAACGTCAGGTAGATATTCTTACAGTTTGACGGATTATACTGTGCAAATATTTAATTATTTG -ATGTTAGCCATTCCATCTTTTATTGCGGGAGTATTTGCAATTTTTATTTTTTCTTTTGAATTACAATGGT -TCCCGTTTCAAGGTTCTGTTGATATTAACCTTAAAGAAGGTACTTTTGAATATTATATGAGTAAAATATA -TCACACATTTTTACCTGCATTCACTTTAGGTTTACTGGGTAATTTGATTTCTGATATTACTTATGGATTT -ATAGATCCAAGAATTAGAAGTAACTAGGGGGGATTAGAATGCAAAATAAGTCAAAATCGCCTTTTAAAAT -TGCATTGTCTAAATTTATTCATAATAAAATTGCAATGTTATCGGTTATTTTTTTATTAATCATAACTATT -GTATCAATTATAGCGCCATTAATAGCTCCTTTTCCAGTGAACCAACAAGATTTATTAAATATAAAAGGTG -AAATGACAGCACAAAACATTCTTGGTACAGACTCTGGTGGTAGGGATAACTTTAGTCGTTTGTTATATGC -AGGTCGTATTTCATTATCCATTGGAATTACATCTACAATAGGAATGCTTTTGATTGGAATTACAGTTGGA -GTGATTTCTGGTTATTTTGGAGGTATTGTTGATACATTATTAATGAGAATAACCGAATTTGTTATGTTAT -TTCCATTTTTAATATTTGCAATTGTATTAAATGCTGCACTTGGAGATAAAATTAAAAATCCTTATGGATC -TGCCATAATTCTTGTTCTAGTTATTATCGTATTAAGTTGGGGAGGTATTGCAAGACTTGTTCGTGGTAAA -GTACTTCAAGAAAAAGAAAATGAATACTTTTTGGCAGCAAAATCAATTGGTACACCCACATATAAAATTA -TTTTGAAACATCTTTTGCCGAATATATTAAGTGTAGTTATCGTACAAGCAACATTGTTATTTGCCGGTAT -GATTGTAGTGGAATCAGGATTGAGCTTTTTAGGATTCGGAATTAGTAAAGCAATTCCATCTTGGGGTAAT -ATGTTGAGTGATGCTCAAGAAGGGGATGTTATAAGTGGTAAACCGTGGATATGGATGCCACCTGCTATAA -TGATTACATTAACTATATTAAGTATAAACTTTGTAGGGGAAGGGCTTAAAGATGCTTTTAATCCTAGAGG -TAGACGTTAAATAATAAAAGAGTCTGGGACATAAATCCCTGAACTGCACCCAGTCTAGTAGACAATTAAA -TAATTAAAATTAATGGTTGGTTTTGTTGTTATACAGAATCAGCCATTTTTAATGTAATTCTTTCATGATT -AAAGAAAAGAATAAAATCATGAATTGTTTTTGTAGCTTCTTCTACACTATTAAATTTAAAGTGCTTATTT -CCTCTAAAAATTTCACTTTTTATTGTACCCCATACACCTTCCATTGGACCGTTATCGATACATTTGCTAA -CACGTGACATACTTTGAATCATGCCACATTCATCCAACATATGTTTAAATGTTTTCGATGTATATTGAAA -ACCTCGGTCACTATGAAATAAAATACCTTTTGTATTTTCTACTTTTTCTATCGCTTGATTGAATGTTTTA -AATACTAATTGATTATTGTTAGAAGGGCCTAGCTCATAACTAACAATACGTTTAGCACCTAAGTCATAAA -TGGCACTCAAATATATCTTACTACCTTCTTTGATTTTAAATTCTGTTACATCTGTTAACCAAACTTTATT -TGGCGTATCAATGTCAAATTGTCGATTAAGCTTATTTTCTGATGTGATTTGTGGCGTTGAACGTCGATAA -GGTTTTCGCTTTTGACGTATTACTGCTTTTAAATTAAGTTCTTTCATCAAACGATAAATTCGCTTTCGGT -TTACTTGTTTACCTAGTTTTAAGCGAATATAGATATAAATGCGACGATAGCCATAAATACCATTATACTT -ATGGTAGATTGATTCTATTTCTCGCTTAAGCTGTTCATTCTCTAATTCAAGTTCACTCGATTGATAATGT -ACCCACTTATAATAACTCGCTCTAGAAATGCCTAAAATACGACACAAGCGTTGGATAGGGTATTGATGTT -TTAACGCTTCGATCGTTTTGTATGCCGTGATTTGTTTTCTCTTTGAATCATCTCTCTTTCCAATGCTTGA -AACTTTTTTAAAACGTCATTTTCCATCTCTAATAATCGATTTTGTGCTTTTAATGCTTGAATTTCAGCTT -CTTTTTGTTCTTCTGGCGTCATCATAGATTTGGGTTCTCCTTTGCCTCTGCCATCTACTAATCCATTTTT -ACCATGTGCTTGATACTTATGAACCCACTGGTAAATTGACCGTATGAGATATTAAAGTGTTCTGCAACTT -CTCTATAAGATTGTTTATGATTCAAGTAATATTCAACAATTGTTACACGTTCTTCAAATGTGGTTTTTCT -TGCTTTCATGATATACACCCCAGTTTTAGGAGATTGATTCTTAATCTCTTTTCCTACAGTATACATTTTT -ATCCAATTTTTGACTTGTGTCGAACTACGAATATTGTATTTGATTGCGATGTCTTGGGTTGATTGATTTG -AATTCAAATATTCATTTACAACTTTTAATTTTAGTTCCTTTGAATAGTGATTGTATTGTTTTTGTGTAAG -TAGTGTTTCAATACCATGGGTTTTATAATATTTATACTTAGGATACAAAGTATTGACATTAATATCTAAT -TGTAATGTATCGATTAAGTATTGAAACGACACGCCTTTTTCATATTCTTGAAACATATATAGCAGTACAT -CTATGTCTACTTTAGGTTTTATTGACATAAATAAAGCTCCCTTCAAAGTTTTCATTTTTTCAATGTCTAC -TTTGAAGGGAGCATTTCACCCTAAAAAAACAGCAGTAAGATAATTTTCAATTAGAAAATATCTTACTGCT -GTTCTCTATTTATACAATACTTCGTATTGAATGGCTTCGCTTTCCTAGGGTGCCGTCTCAGCCTTGGTCT -TCGACTGGCACTGCTCCCTCAGGAGTCTCGCCATTAATACTACGTATTAACATGTAATTTTACTTTGAAA -TACTTTAAAAAAATAAGACACTTTCGTATAATTTAATAAATACCACTAAACTAAATTAACGAGGTGCCTT -ATGTATAAAAATTATAACATGACTCAACTTACACTACCAATAGAAACTTCTGTTAGAATTCCTCAAAATG -ATATTTCGCGATATGTTAATGAAATTTTTGAAACTATACCTGATAGCGAATTCGATGAATTCAGACATCA -TCGTGGTGCAACATCCTATCATCCAAAAATGATGTTAAAAATCATCTTATATGCATATACTCAATCTGTA -TTTTCTGGTCGTAGAATAGAGAAATTACTTCATGACAGTATTCGAATGATGTGGTTAGCTCAAGATCAAA -CACCTTCTTATAAAACTATTAATCGTTTTAGAGTGAATCCTAATACTGATGCGCTAATTGAATCTTTATT -TATTCAGTTCCATAGTCAATGTTTAAAGCAAAATCTTATTGATGATAAATCAATTTTTATTGATGGTACA -AAAGTAGAAGCTAGTGCCAATAGATATACATTTGTGTGGAAGAAAAGTATTCAAAATTACGAATCGAAAT -TGAACGAAAATTCAAAAGCATTATATCGTGACTTAGTCGAAGAAAAAATAATACCAGAGATAAAAGAAAA -TGGAGATAGCGATTTAACAATAGAAGAAATAGATTTAATTGGTAGTCATTTAGATAAAGAAATCGAAGAT -TTAAATCATTCTATTCAGAACGAAGATTGTACTCAAATTAGAAAACAGACCCGTAAAAAAAGAACTGAGA -TTAAGAAGTTCAAAAAGAAATTTGATGATTATTCCGAAAGAAAAAGTAAATATGAAGAACAAAAATCGAT -TCTTAAAGATAGAAATAGCTTTTCTAAAACTGATCATGATGCAACTTTTATGAGAATGAAGGAAGACCAT -ATGAAAAATGGCCAACTTAAGCCAAGATACAATTTACAAATAGCGACAAATTCTCAATTTGTTTTATCCT -ATGACCTATTTCAAAACCCGACAGATACTAGAACTTTAATTCCATTTTTAACAATGATTCAAAATACCTT -CGGTTATTTACCGGAGTATATTGTAGCTGATGCAGGTTATGGTAGTGAGCAAAACTATATGGCTATTATA -GATGATTTTAATAAAACGCCACTTATTACGTATGGTATGTTTATTAAAGATAAAACGAGAAAGTTTAAAA -GTGACATTTTTAAGACTCAAAACTGGAAATATGACGAACTTAATGATGAATTTATATGTCCTAATAACAA -AAGAATAGGTTTAAAAAGATATGCATACCGTAATGATAGATATGGTTTTAAACGTGACTTCAAACTATAT -GAATGCGATGACTGTTCAGCATGTTCTTTGAGGCAACAATGCATGAAGCCAAATTCGAAATCCAATAAGA -AAATCATGAAGAATTATAATTGGGAATACTTTAAAGCCCAAATTAATCAAAAGCTTTCTGAACCAGAAAC -GAAAAAAATCTATAGTCAAAGAAAAATTGATGTAGAGCCTGTTTTTGGATTTATGAAGGCTATTTTGGGT -TTCACTCGAATGTCAGTTCGAGGAATAAATAAAGTTAAACGAGAGCTAGGTTTTGTATTAATGGCACTTA -ATATAAGGAAAATAGTAGCTCGACGAGCTGTATATTATCAAATACATTTAAAAAAAGCTGATTTCTATCA -AATAATTAATAGAAATCAGCTTTTTTACATTGCCTAAGAACTTAATGTCCCAAGCTCTTTATTTTATCTC -TTACGTCCTAAACCCATCGCTTTTTCCATTTTTTTGACAGTTTTAAATGAAGCTTTATGTGCTTTATCTC -TACCTTGATCTAAAATATCATCAAGTTTATCTGAGTTATAGAAACTTTCGTATTTTTCTTGGAATTCTAC -TAAAAATGCTTTAACTATTTCAGCAAGGTCGCCTTTGAATTTACCGTAACCTTCGCCTTCATATTTTGCC -TCAATATCTTTAATAGGCATGTCTGTTAATCCAGCGTATATTGAAATTAAATTTGTAATACCTGGTTTAT -TGTCGCGGTCGAATTTAATAATACCGTCTGAATCAGTCACAGCACTTTTAATTTTTTTAGCAGCAACATT -TGGTTCGTCTAATAATGAAATAAAGTTTTTAGCGTTGTCATCACTTTTACTCATTTTTCTTGTTGGATCT -TGTAAACTCATAACACGGCCACCGACTTTAGGCATACGAATTTCAGGTTTCACAAGGACATCATTATAAC -GACTATTAAATCTATCTACAAGATTACGTGTTAATTCAATGTGCTGCTTTTGGTCATCGCCAACTGGAAC -GATATTAGTATTGTAAAGAACAATATCAGCTGCCATTAAAGGTGGATATGTTAATAGACCAGCTGGTATA -CCTTCAACTGCTTTCTGAGCTTTATCTTTGTATTGCGTCATACGCTCTAATTCGCCAACAGAAGCAATTG -TAGTTAACATCCATCCTGCTTGTACGTGTGCAGGGACTTCAGATTGTATGAACAATGTTGCTTTGTCTGG -ATCTATACCAGAAGCTAAATAAATCGCTGCTAATTGTCTAGTTTGTTTACGTAATTTTAAGCGATCTTGT -GGCATTGTAATTGCATGTTGATCTACGATACAGAAATAACAATCATAGTCGTTTTGCACATCAACAAATT -GCTTTAATGCGCCAATATAATTTCCAATAGTAGGAATTCCACTAGGTTGAATGCCTGAAAATAATGTTTC -CATTTAAATGCCTACTTTCTTAGTAATAATTTAACAATTATCATTATAACAGTATTTCTTAAAAATGTAA -GATGTGTTAGAATATATGTATAACTTGCTACTAACAAAGGGATTAATAATCTTTTTTATAAGTGTAGAAA -CTTATCTGAAAAATTAGGTTTTTCTCATTTAATTTTAATGTTAGATAGTTATAATAAATAGTAACGATTA -AGAATTTTAGAAAAAAATGTTTTTTCTTGATCTATAACTAAATTTTAAGCAATGAATTTTATTCATTCAA -ATAGGAGAGTGAGATGTATGGTAACATTATTTACTTCACCAAGTTGCACATCTTGCCGTAAAGCGAAAGC -ATGGTTACAAGAACATGACATTCCGTATACGGAGCGTAATATTTTTTCTGAACATTTAACAATTGATGAA -ATTAAGCAAATATTAAAAATGACTGAAGACGGTACTGATGAAATCATTTCTACACGTTCTAAAACATACC -AAAAATTAAATGTTGATATTGATTCACTACCATTACAAGACTTATATTCAATCATTCAAGATAATCCTGG -CTTATTACGTCGTCCAATTATTTTAGATAATAAACGACTACAAGTTGGTTATAATGAGGACGAGATTCGA -CGTTTCTTACCTAGAAAAGTTCGTACGTTCCAATTACAAGAAGCACAACGTATGGTTGACTAATAACCAT -TTAACTATGTGTCATACTTTACTAAAAGATATGTCAAGCAACGCTATTTCTATAGTGTTGCTTTTTTGGT -TTTAAATTTACAATAATTGCTTAGTATCTTTTAAATCAAATGTGCAATTGTTAATATAGCTCTATATTAG -AGTGTTTTGGATGAAACATTTGCTATGATAAGGTAAAATTAAATTAAGAAAGTGCTTTAATGCTTTAACT -GTATAAATCATTTAAATAGTTTTGCTACAACGAATATGTTATTATAAGTTACCAAAATATTTTAGAGAAA -GAAATCAAACAAATATATTGTATTTTGTTTGATGCTTTAATACAATGTGGATACTATTCATCGACTGTAA -GGAGTGAGATGATATGAGAATAGAACGAGTAGATGATACAACTGTAAAATTGTTTATAACATATAGCGAT -ATCGAGGCCCGTGGATTTAGTCGTGAAGATTTATGGACAAATCGCAAACGTGGCGAAGAATTCTTTTGGT -CAATGATGGATGAAATTAACGAAGAAGAAGATTTTGTTGTAGAAGGTCCATTATGGATTCAAGTACATGC -CTTTGAAAAAGGTGTCGAAGTCACAATTTCTAAATCTAAAAATGAAGATATGATGAATATGTCTGATGAT -GATGCAACTGATCAATTTGATGAACAAGTTCAAGAATTGTTAGCTCAAACATTAGAAGGTGAAGATCAAT -TAGAAGAATTATTCGAGCAACGAACAAAAGAAAAAGAGGCTCAAGGTTCTAAACGTCAAAAGTCTTCAGC -ACGTAAAAATACAAGAACAATTATTGTGAAATTTAACGATTTAGAAGATGTTATTAATTATGCATATCAT -AGCAATCCAATAACTACAGAGTTTGAAGATTTGTTATATATGGTTGATGGTACTTATTATTATGCTGTAC -ATTTTGATAGTCATGTTGATCAAGAGGTCATTAATGATAGTTACAGTCAATTGCTTGAATTTGCTTATCC -AACAGACAGAACAGAAGTTTATTTAAATGACTATGCTAAAATAATTATGAGTCATAACGTAACAGCTCAA -GTTCGACGTTATTTTCCGGAGACAACTGAATAACGATATTAATTAAGCAACGCACTATGAAAGGAGACTC -TTTGGAGTCTCTTTTTTTTATTGTTTCAAAAGCTGAAAAAGTAATAGTAGTTAAACTTACGTGTAATATT -TTGAGGTGAAGATATGTTAGTAGCTTTAAATGAAGAAAAGGAACGCGTGTTAGCAACTACTGCATTGAGA -AAGACACAATATTTTTGTCCGGTGTGTGGCAAGCAAGTTATTTTAAAGCGTGGGCTCAAAGTAATTAGTC -ATTTTGCACATAAACATTTAGCGGAACAAAAATGTTTTAATAATGAATCGATTAAACATTATAAAAGTAA -ATTGATTTTAGCACAGATGATACAGCAACAAGGATGTAAAGTAGAGATAGAGCCATTTTTAAAAGAAATA -AAACAAATTCCGGATATTTTGATTAATAATAAATATGTTATTGAGCTACAGTATTCGCCAATTCCTTATA -AACAGATTCTTCAACGAACGGAAGGTTTAAAGAAAATGGGATATAAAGTAAGTTGGTTATTAAATGATGT -TGATTATTGTCATAATAAAGTGAAGTTCAATCATTTTCAAAGTATGTTTATTAATCCAATCACTCGAAAA -CTTCATACGTTCAATTTAGAGAAAAAACAAATAATTATGTTTCAACAAATACAATATTTAGGCGGGCACA -AATATGTCGCTGAAAAAAAGAATGCCAAAATTAGTGAGTTGTTTAATGAGGCGCCTTGTGATTATCATGC -TGTTTATAAATTATCAAAGTTCGCAATTAATCAATATATCAAATATTGTCGCTGGCAAAATTCTGTTTTA -GAACCCACTTTAAGTGCAATGTATCAGTTACAGTTAACTGATCACGAAGTAGTGCACAATTATGGTTATA -TTTTTCCAGAGCAAATTTATATTGAAAATCATCCAATTGAGTGGCAATTACAAGTTGATTTATGGTTAAA -GAATGGAAAAAGCAAATTAGTAAGTGACAATCTTAATTATTTTAAACTGAAAAAGTTTATTGTTGCTCTA -GAAAGTAAAACAGCAATTATAGAAAAACTTATTAACAATTATTTAAATATTAGTTCAGATAGAGGTAATG -ACGTGCAAATTTTGTTCTAAAATGAGAAAATTATATCAATTATATTTTATTAGGAGGTTTACTACATATG -AGTCAACAATTATCGAGAGAAGAACAGGAACGTAAATATCCTGAATATACATGGGACTTAACAACAATTT -TCAAAGATGATGAAGCTTTTGAGGCTGCATTTAAAGAAGTTGAAAATGAGTTAGGCAAAGAAGAACAATT -TAAAGGACACATTGGTGATAGTGCTGAGACATTATACAATGCGTTAGAATTAGAAGATACATTAGGTACT -AAATTAGAAAAAGTATATGTATACGCGCATCTAAAACAAGACCAAGATACAACGAACGACAAGTATACTG -GTATGGAGTCAAGAGCACATCAATTAATTATTAAATTTAGCTCGGCATGGAGTTTCTTAGTGCCAGAGAT -TTTACAAATTGATGAAGATAAAATTCAATCATTTGTAAATTCATATGATAAATTACAAAAATTCGCATTT -GATTTGAAGTTGATTAATGAAAAACGTCCTCATATTTTAGATGCTGAAACGGAAAAGTTATTAACAGAAG -CGCAGGACGCGTTATCAACGCCATCAAATGTATACGGTATGTTTAGCAACGCTGATTTAGTATTTGAAGA -TGCGATTGATAAAGATGAAAATGCACACCCGTTAACACAAGGTACATTTATTAAGTATTTAGAATCAGAT -GATCGCAAACTAAGAGAAAGTGCTTTTAGAAATGTATATAAAGCATATGGTGCTCATAATAATACGCTTG -GCGCTACGCTAGCAGGTGAAGTGAAGAAAAATGTATTTAATGCTCGTACACACAATTACAAAACTGCAAG -AGAAAAAGCATTGAGTAATAATCATATTCCAGAAAATGTATATGACAATCTAGTAAAAACTGTACATAAA -TATTTACCATTGCTACATAGATATACTGAATTGCGCAAAGAATTGCTAGGTTTAGATGACTTGAAAATGT -ATGATTTATATACACCATTAATTAAAGATATTAAGTTTGAAATGCCTTATGAAGAAGCTAAAGAGTGGAT -GCTAAAAGCTTTAGAACCAATGGGTGAAGAATATTTAAATGTAGTTAAAGAAGGCTTAAACAATCGTTGG -GTCGATGTCTATGAGAATAAAGGTAAACGTTCAGGTGGCTATTCATCAGGTGCACATTTAACTAATCCAT -TTATTCTACTTAACTGGTCTAATACTATTTCAGACTTATACACATTAGTTCATGAATTTGGACATTCAGC -ACATAGTTACTTCAGTAGAAAATTCCAACCGTCAAATTCTAGTGACTACACTATTTTTGTCGCTGAAGTA -GCATCAACTTGTAACGAAGCACTTTTAAGTGATTATATGGATAAACATCTTGATGATGAAAAACGCTTAT -TATTATTAAATCAAGAATTAGAACGTTTCAGAGCTACATTATTCCGACAAACAATGTTCGCAGAATTTGA -GCATAAAATTCATGCCATTGAAGAAGCAGGTGAACCATTAACGCCAACTAGAATGAATGAAGAATATGCC -AAATTAAATAAATTATACTTCGGTGATTCTGTAGAAACTGATGAAGATATTAGTAAGGAATGGTCACGTA -TTCCACACTTCTATATGAATTATTATGTATATCAATACGCAACTGGTTACAGTGCAGCTCAAAGCTTAAG -TCATCAAATTTTAACAGAAGGTAAGCCAGCAGTAGATAGATATATTAATGAATTCTTGAAAAAAGGTAGC -TCAAATTATCCAATTGAGATATTAAAAAATGCTGGTGTAGATATGACAACACCTGAACCAATTGAACAAG -CTTGTGAAGTTTTTGAACAAAAATTGAACGCTTTTGAAAAATTAATGAAAGCTTAGCACTGTTGTATTCG -CTTACATTATGAACAGATTGTGACAATTTAAATTAAGTACTATTAAAAGGTTGAAATGGGAGAGATAGCG -TGTTATATTATGAACATGAAATTAATCACATAACAAACATACCCCTTTGTTTGAAGTGAAAAATTTCTCC -CATCCCCTTTGTTTAGCGTCGTGTATTCAGACACGACGTTTTTTTATGTTCTTTTTTAATAAGAGGGAAG -TGAAGTTGTATAAAAATGTATTAAATATGCACTTTTTATACATTAACGATTAATATATGTCTATTATGTA -CCAAATTCATAATTTGTATAATTTTCGAACTGGTTAAATTCGAAAAACATCACTAATATATTTAGATCGA -TGCGTAACATTACGTTCTAATAATTTAATGTTGCAAAATTAAGAGTCAATAAAAAGACCTCGTTACATTT -ATGGTGTACGAGGTCTTTAATTTATTTATTTTGATTTGATTTTAGGCATTTTAGATTTCCAGAAATCGCC -ATCTGGATATTTAAGTTTTTCAATTTTTTGTTGAATAGCTAACTTCTTTAACTCTTTGTTTAAAAGTTTT -TCTGGCCATTCATAAATAGTAAGTAATTCTTCCATCGTTACAAGTTGTTGTTGCTGTATATAAGTTTCTA -ATTTAGGAGGAAGATTCTTTTCGATAGGTTTACCCATCAATTCATTAATTATATAAGTATAGATGTGATA -TGGGTATAATCCTTCGACTTTTAAACCTTCTTCATGAACATCTTCACTAAAGAAAACGAGAGAAGGGGCT -TGTTCGATTTCCATTTCTCTTGCAATATGCAAATCAATTTTCAAGCTTTCGGTTAATTTACTTTTTTGTA -AGTCGTCTTTAAATACTTCTAAATCAATACCTGCATTTTGAATACAGTCACAAATCATTGATTTTGTAAT -AATATCTCTTTTAGGTATGATTTCATTTTGCATTAAATGTATAAATCGTTCGGCACGTAAACGACCTTGT -AACTCAGCTGCTTTATAAGCTAGGGCGATGTTATCAAAGTTGGATGTACTTTGAGCTTGGCATTTCGTTA -ATACTTTTAACGAAGGATTTAATATATGTCTGATACGTATATATTGATTATATTCAATTCTTAATTTGGA -TAAGATTGCTGATAATTTGAAGCAATCGGAGCTAAATGGATCGAAAAATGAATAAATTTCGATTTTACTT -ACAGGTGATAGATTAATATCTTCACGACTCTTATTTTCCATTATTCGTAATTCTCCAGCCATGTTTATTC -ACCTACAATTAATTTTAGGAATTCACCATATGATTAGCAGTTAATCTTAAGCGCTCAAATAAATAATCTC -CAACACCTTGTGGAAACGCAGCGCGATTAATTGCTGTCTGCATATTTTCTAACCATGCATCTCTTTCAAA -TTCAGTGATTGTAAACGCCATATGTCTTTTTCTTAGCATAGGATGTCCGTGTTCTTCGGTATAAATGTTT -GGACCGCCCAAAAACTGTGTTAAAAATTGTTTTTGTTTACGACTTGTTTCTGCAAAATCTCCTGGAAACA -GGTGATTAAGTCGTTCATCCTTTTCTACAAGGGTGTAAAAATAATCAATCATATCGTATAACGCTTCTTT -ACCAATGATGTCATATGGTGTTGTTGTCATTTAATCACCCATTTTCAAAAATTTACTGTTACGAACTTAA -GTTAATATATAACTAATATAACATGATTTTAAACATTTGAAAGAAATATGCATATTTGCCAATTTAATTT -ATATTGTTTGAAAGTGTTTCTTTTTTCTTAAAAAAACGTTGAACTTTATTTAAAGGTTGATGATGTTCGA -GGTTTAGTTCATTTAATAAAGATTGGAACTTTTCTAAACCTTGATTATAGTCTTTAACTTCGAACTCTAA -CTCATAATCCGTAGTGTCGAAATACTCACTTTTATCTAAAACAAGTAAATCACCTTTATATTTAGTTTCT -TGGCGATATGTCGTTAATGCGCCAAGTATTGATAAAGTTGTATCCTTTACACCAAACTGTTCAACTATAA -TTTGACGAATGTCATCTGGAAGATTGTCGTTTGAAATAATCAAGTTCATCTCTGGTTTAATGTCGACGAT -ATAGTTGTATTCTAATAGACCAACCTTTGCTGGTGTCTTTAAAGTCATTTCATATTGATTGTCTTTAACT -CTTATGCGTAGTGCAGAGCGATGTTCCTTTAATTTGAAATCGGGTGTATCAATATAGTAATTGACTTGCT -TAAAAAGCACACTGTCTTTAAAATATTTCTCTTGCAATTTATTATAGATTGATGCAGTTATCATTTGTTT -AAATTCTATTTCATGATTTGTTGCCATGATATGTATACACCTCGTATCAAATTCAATTTATCTTAACTAT -ATTATGAATGACAAAGTTGAATTTTAAAAGTAATTTCCTTTATCTATTATCAATGTTAATTTGACCATTA -AAAATAGTGTTCGTAAGTGTTTTGTATTATTGAATTGTGTTAAAATGTTATGGAATAAGAGGAGGATTAA -GCATGCGTTTATATATTAATGAAATTAAAATTAAAGATGACATACTTTATTGTTATACAGAAGATTCTAT -TAAAGGATTATCTGAAGTAGGACAAATGCTCGTTGATAGTGATAATTATGCCTTTGCGTATACATTAGAT -GATGGTAAAGCGTATGCTTATCTCATTTTCGTACAAGAAACATGGACGATGTTGCATGAAAACATGACTA -AAAAAATTATTATCAATGATGAACTAGAATTGACTGAATTCCACCAAGAACTTACTTATATTTTAGACAA -CATAAAAGGAAATAATAATTATGGTAAGGAATTTGTTGCAACCGTTGAAGAAACATTCGACATTGAATAA -AGCGGGGTGAAGCACTATGAATCAATGGGATCAGTTCTTAACACCTTATAAGCAAGCGGTTGATGAGTTG -AAAGTGAAACTTAAAGGCATGCGCAAACAATATGAAGTTGGTGAACAAGCGTCGCCAATAGAATTTGTTA -CTGGTCGTGTTAAACCAATCGCTAGTATTATAGATAAGGCAAACAAACGACAAATACCATTTGATAGGTT -AAGAGAAGAAATGTACGATATCGCTGGTTTAAGAATGATGTGCCAATTTGTTGAAGATATTGATGTTGTC -GTCAATATTTTAAGACAAAGAAAAGATTTTAAAGTAATTGAAGAACGAGATTATATTCGTAACACTAAAG -AAAGTGGTTACCGCTCGTATCATGTCATTATTGAATATCCAATCGAAACATTACAAGGCCAAAAGTTTAT -ATTGGCTGAGATTCAGATTCGTACATTAGCAATGAATTTCTGGGCAACGATTGAACATACTTTACGATAT -AAATATGATGGTGCTTATCCGGATGAAATTCAACATCGTTTGGAAAGAGCGGCAGAAGCAGCGTATTTAC -TTGATGAAGAGATGTCTGAAATTAAAGATGAAATTCAGGAAGCTCAAAAATATTACACGCAAAAACGTTC -TAAAAAACATGAAAATGATTAACGAGGTGTTATAAATCATGCGCTATACAATTTTAACTAAAGGTGACTC -CAAGTCTAATGCCTTAAAGCATAAAATGATGAACTATATGAAAGATTTTCGCATGATTGAGGATAGTGAA -AATCCTGAAATTGTTATTTCAGTTGGTGGTGATGGTACATTACTACAAGCATTCCATCAGTATAGCCACA -TGTTATCAAAAGTGGCATTTGTTGGTGTTCATACAGGTCATTTAGGATTTTATGCGGATTGGTTACCTCA -TGAAGTTGAAAAATTAATCATCGAAATTAATAATTCAGAGTTTCAGGTCATTGAATATCCATTGCTTGAA -ATTATTATGAGATACAACGACAACGGCTATGAAACAAGGTATTTAGCATTAAATGAAGCAACGATGAAAA -CTGAAAATGGCTCAACACTTGTTGTGGATGTTAACTTAAGAGGGAAACACTTTGAGCGATTTAGAGGCGA -TGGATTATGTGTATCAACACCTTCGGGTTCAACGGCTTATAACAAAGCGCTAGGTGGCGCACTTATACAT -CCTTCACTTGAAGCAATGCAAATTACAGAAATTGCCTCAATAAATAATCGTGTGTTTAGAACGGTAGGAT -CACCACTTGTATTACCAAAGCATCATACATGTTTAATATCACCAGTTAATCATGATACCATTAGAATGAC -GATAGATCATGTTAGTATCAAACATAAAAATGTTAATTCAATACAATACCGTGTAGCAAATGAAAAAGTG -AGGTTTGCACGTTTTAGACCATTCCCATTCTGGAAACGTGTACACGATTCTTTCATATCAAGTGATGAAG -AACGATGAAATTTAAGTATCATATATCACAACAAGAAACTGTTAAAACTTTTTTAGCACGACATGATTTT -TCTAAGAAGACAGTGAGCGCCATTAAAAATAATGGCGCTTTAATTGTTAATGATGAACCAGTCACAGTGC -GTAAGCAATTAATGCCAAATGATATATTAGAAATTCATTTGCCGCGAGAAATACCGAGTGTTAATTTAAT -ACCTTATGCTCGTAAGCTAGAAGTATTGTATGAAGATGCTTTTGTCATCATAGTTACTAAACCAAACAAT -CAAAATTGTACGCCTTCGAGAGAACATCCTCATGAAAGTTTAATCGAACAAGTACTATATCATTGTCAAG -AACATGGTGAAAATATTAACCCACATATTGTTACGCGTCTAGATCGTAATACAACTGGTATTGTGATATT -CGCTAAATATGGACACATCCATCATTTATTTTCTAAAGTAAACTTGAAAAAAATATATACTTGCCTTGTA -TATGGTAAAACCCATACATTTGGTATTATTGAAGCTAATATTAGACGGTCAAAGGATAGTATTATAACTA -GAGAAGTTGCCTCGGATGGTAAATACGCTAAAACATCTTATGAAGTAATAAATCAAAATGATAAATATAG -TTTGTGTAAAGTTCATTTGCATACGGGACGTACACATCAAATTCGTGTACATTTTCAACATATTGGGCAT -CCAATTGTGGGAGATTCTTTGTATGATGGTTTTCATGACAAAATTCATGGTCAAGTACTGCAATGTACGC -AAATATATTTTGTTCATCCAATCAATAAGAACAATATTTATATTACAATTGATTATAAGCAATTACTTAA -ATTATTCAATCAACTCTAATTCACACAGGGGGTGTAAGTATGTCAATGAACACAGATGAAAAAGAGCGTG -TTCAAGAGGAATTATATGATGAGACATTATTAGATCAATACTTAGAAAATGATGATATTGATCAATTTAG -AGATGAATTTCTAGCATTACACACATATGAACAAAGTGAGTATTTTGAAGATACTACCGATGAAAATAGA -CAAAAGATTTTTCAATATTTATCACCTGAAGAGGTTGCAAATTTCTTTGATCAATTAGATATTGATGACG -ATGAATATGAGTTGCTATTTGATAAGATGAATGCGACATACGCTAGTCACATATTAGAAGAAATGTCATA -CGATAATGCAGTAGATATTTTAAATGAGTTGACTAAACCAAAAGTTGCTAGTCTTTTAACATTGATGAAT -AAAGATGACGCGAATGAAATCAAAGCATTACTTCACTATGATGAGGATACGGCCGGCGGTATTATGACGA -CGGAGTATTTATCACTTAAAGCGCATACGCCTGTTAAAGAAGCGTTATTATTGGTCAAAGCACAAGCGCC -AGACGCAGAAACAATATATGTTATCTTTGTTGTTGATGATGATGGTAAATTAGTAGGTGTTTTATCGCTA -AGAGATTTAATTGTAGCTGAAAATGATGCGTATATTGAAGATATTATGAACGAACGTGTCATTAGTGTGA -ATGTAGCAGACGACCAAGAAGATGTTGCTCAAGTTATGAGAGACTATGATTTCATGGCTGTACCTGTTAT -AGATTACCAAGACCATTTGCTGGGGATCATCACGATTGATGATATTTTAGACGTTATGGATGAAGAGGCT -AGTGAAGACTACTCTCGTTTAGCCGGGGTTTCAGATATCGATTCGACTAATGATTCAATCATTAAAACAG -CATTAAAGCGTTTACCATGGTTGATTATTTTAACATTTTTAGGAATGATTACTGCGACAATTTTAGGGAG -ATTCGAAAAAACATTAGAAAATGTAGCGCTACTCGCAGCGTTTATTCCTATTATTAGTGGTATGTCAGGA -AATTCAGGTACACAATCTTTAGCCGTTTCAGTTCGTAACATTACGACAGGGGAAATTAATGAGCAAAGTA -AATTTAGAATTGCATTAAGAGAAGCGGGAAGTGGTGTATTATCGGGTGTTGTATGTTCAACAATATTATT -TACAATTATTGTTGCAATATATCATCAGCCACTTTTAGCATTAATTGTTGCAGGAAGTTTAACTTGTGCG -ATGACGGTGGGGACGTTTGTAGGTTCGATGATTCCATTATTGATGAATAAATTGAATATCGATCCAGCAG -TGGCTAGTGGACCATTTATTACAACAATTAATGATATTATTAGTATGTTGATTTATTTTGGTTTAGCTAC -ATCATTTATGGCTTACTTAATTTAAGGAGGAGTTATGGAGTTTTTATCTTTAGTTATTGTTGTTTTAGCA -GCGTTTTTAACTCCAATAATTGTCAATCGATTAAATATTAATTTCTTGCCAGTTGTTGTTGCAGAAATTT -TGATGGGAATTGTGATTGGAAATTCATTTCTAAATATAGTAGAAAGGGATTCAATTCTAAATATTTTATC -AACGTTAGGCTTTATCTTTTTAATGTTTTTAAGTGGTTTAGAAATTGATTTTAAAGCTTTTAAAAAAGAT -AAACGCGCACGTCAAGGACAAAATGATGATGAATCCTCAATTCCAGGGCATCTTAATCTAGCGTTAACTG -TATTTGCATTTATTATGATTATTTCGATTCTTTTAGCGTATGTATTTAAATGGCTTGGATTAGTGGATGA -TGTGTTATTAATGGTCATTATCATTTCAACTATTTCCTTAGGCGTAGTTGTTCCAACTTTAAAAGAAATG -AATATTATGAGAACAACTATAGGGCAATTTATCCTATTAGTAGCAGTGCTTGCGGATTTAGTAACTATGA -TTTTATTAACGGTCTATGGTGCAATCAATGGTCAAGGCGGCAGTACAATATGGTTAATAGGTATATTAGT -TGTTTTCACAGCAATTTCATATATTTTAGGTGTTCAATTTAAAAGAATGTCATTTTTACAAAAATTGATG -GATGGTACGACGCAAATCGGTATTCGTGCGGTGTTTGCATTAATAATATTATTAGTAGCCCTAGCAGAGG -GAGTTGGCGCAGAAAATATATTAGGTGCATTCTTAGCAGGTGTCGTTGTTTCATTATTAAATCCAGATGA -AGAAATGGTTGAAAAGTTAGACTCATTTGGTTACGGGTTTTTTATTCCTATTTTCTTCATAATGGTTGGT -GTAGATTTAAACATACCTTCATTAATTAAAGAACCGAAATTACTAATTATCATACCGATTTTAATCGTTG -CATTTATCATTTCAAAATTAATTCCAGTCATGTTTATTCGACGTTGGTTTGATATGAAAACAACGATTGC -ATCAGCATTTTTATTAACATCAACATTATCGCTCGTGATAGCTGCAGCCAAAATTTCAGAAAGATTAAAT -GCTATTTCAGCTGAAACGTCAGGTATATTAATTTTAAGCGCAGTCATTACATGTGTATTCGTTCCGATTA -TTTTCAAAAAACTGTTTCCAGTTCCAGATGAGTTTAACCGTAAAATTGAAGTTAGTTTAATTGGTAAAAA -TCAATTAACGATTCCTATAGCGCAAAATTTAACATCTCAGTTATATGACGTGACATTATATTATCGCAAA -GACTTGAGTGATCGTCGTCAATTGTCGGATGATATCACGATGATAGAAATTGCTGATTATGAACAAGATG -TTTTAGAACGACTAGGTCTGTTTGACCGAGACATAGTTGTTTGTGCCACGAATGACGATGATATTAACCG -AAAAGTTGCTAAATTAGCCAAAACACATCAAGTTGAGCGTGTCATTTGCAGACTTGAAAGCACAACGGAC -GATACAGAGTTAGTTGATTCAGGTATTGAAATTTTCAGTAGCTACTTAAGTAATAAAATCTTATTAAAAG -GTTTAATTGAAACACCTAACATGTTGAATTTATTAAGTAATGTTGAAACGTCACTATATGAAATTCAAAT -GTTAAATTATAAATATGAAAATATTCAATTACGTAATTTCCCATTCGGAGGAGACATCATCTTCGTGCGT -ATTATCCGTAATAATGAGTCGATTGTTCCGCATGGAGATACACAATTGCGATATGGTGATCGCTTAATTG -TTACCGGTGCTAAAGAATACGTTGATGAATTGAAGCAAGAGTTAGAATTTTATTTTTAACAATAATGATA -TTAAAATGCAGACGTATTTTAGTACGACGTAAAATTAATGATTTTAAAATGCTTGTATGTATATGATTTT -GATAAATACATGCTTTTTACGTAAATCAAGTTTGATACAGAAAGGACTAAATCAAACATTTATCGTTGTA -ATACGTTTAAATAACTTTATTAAAAAGTCATAATAGTGTTAAAATGTATTGACGAATAAAAAGTTAGTTA -AAACTGGGATTAGATATTCTATCCGTTAAATTAATTATTATAAGGAGTTATCTTACATGTTAAATCTTGA -AAACAAAACATATGTCATCATGGGAATCGCTAATAAGCGTAGTATTGCTTTTGGTGTCGCTAAAGTTTTA -GATCAATTAGGTGCTAAATTAGTATTTACTTACCGTAAAGAACGTAGCCGTAAAGAGCTTGAAAAATTAT -TAGAACAATTAAATCAACCAGAAGCGCACTTATATCAAATTGATGTTCAAAGCGATGAAGAAGTTATTAA -TGGTTTTGAGCAAATTGGTAAAGATGTTGGCAATATCGATGGTGTATATCATTCAATCGCATTTGCTAAT -ATGGAAGACTTACGCGGACGTTTTTCTGAAACTTCACGTGAAGGTTTCTTGTTAGCTCAAGACATTAGTT -CTTACTCACTAACTATCGTTGCTCATGAAGCTAAAAAATTAATGCCAGAAGGTGGTAGCATTGTTGCAAC -AACATATTTAGGTGGCGAATTCGCAGTTCAAAACTATAATGTGATGGGTGTTGCTAAAGCGAGTTTAGAA -GCAAATGTTAAATATTTAGCATTAGACTTAGGTCCAGATAATATTCGCGTTAATGCAATTTCAGCTGGTC -CAATCCGTACATTAAGTGCAAAAGGTGTGGGTGGTTTCAATACAATTCTTAAAGAAATCGAAGAGCGTGC -ACCTTTAAAACGTAATGTTGATCAAGTAGAAGTAGGTAAAACAGCGGCTTACTTATTAAGTGATTTATCA -AGTGGCGTTACAGGTGAAAATATTCATGTAGATAGCGGATTCCACGCAATTAAATAATATCATTCAACAG -CTTTGTTCACGTTATTATATATGTGAGCAAAGCTTTTTTGCTTTTATAATAATCGGACTGATGGAAAATT -ATTTGATATTTCATCTGACTGATTTTTTTATGCACAAAAAAATCGCCTCAAAAGCTGTAGTTTCAACTTT -TGAGGCGATAGTATCTTATATTATTAAAAGACATCCACAGAATTAGTCCTTAACATTACTGTTTGCTTTA -TCAATAATGCGTTGGCGGTATTTAAAAATATTACTAACAACCGTTTTAAGTACAGCATATAATGGCACTG -CAATCAGAACTAATGTAAAGCCACCTAAATCTCCTGCTGCTAAAATAACAACGATAATTGTTAAAGGATG -GATACTTAAAGATTTACCCATTACATTTGGTGTAATGATATTACCTTCAAGTTGGTGTGCAATTAATGTA -ATGATACAAACCCATATAAATGTAGTAGGACTATCTATAATACCGAGTATTGCTGCAGGTGCAAATGATA -ACCATGAACCTAAGAAAGGAATTAAGTTTGCGACACCAGCAAATAGTACTAATAAAGGAATATATGGTAA -GTCAATAATTGAATAACCGATATATAAGAATATACCTAAAATAACACTGACAGTTACTTGACCTTGAATG -TAAGATTTTAATGTAAAGTTTAAATCAGTTAATAAATCTACGAAAAATACTTTACGTTCACCTTTGAAAA -ATTTAGCAACAGCTGGGATAAATTTTTCATGGTCTTTTAACATATAAATTAAGAAGAATGGAACCATAAT -CAATAAGAAGATGGTTGAAATTAATGATGTAATGTACTGTAATGAATTAGATAAAATATTAGTAACGCCA -TCACCCATTGATTTAACCATATTTGTAATTCTACTTGTTACATCTTCAGGTAATTTATCCATTTGAGCTA -GTGCGAATTTAATAATTTGCTCTGCTTCTTTTTGTAAGGCAGGTGTTTGACTAATTAAATTGTTGATATT -TGAAATGATGATTGGTGCAACAAACGCAACAATTAAGCCGATAATAGCAAACAAAGCTAACATGATTGTT -GTTATACTAGCCCATCTTGGAAAACCGACTTTTTCAAGTAAGTTTTGAAAAGGTAGACAGATATAAAATA -AAAAACCACTAATTAAAAATGGAAGAAATACAGAACCGATGATTGTAGCTATTGGAGTAAATACTTCGTG -CACTTCCATAAATAGTTTGATGAGAATGAACAGCATAATCAGAGCGATGCCAGTTCGGAACCAAACCTTG -TTTAACATAAACGATGTTCCTCCTATTTTTCTAAACTTAGTTATTATTTAGTATATCCTAAATAGCAGTG -CTTAAAAAGGTTAATATTTTTTAAATATACTTAAATTAACCATTTACTTTCTATTTTAAGATATTTACTT -TCAATAGTTTGTGAGACTTTTCAATGACTCGTAAGTCTGCAAATGGATCAAACAGTACCAATTTATATGA -ATAACTTATTTTAATATTAAACGTGTTTAAATAATGAAATGATCATATTAATATTTATAAGAATATTCTG -AAAAATATATTGAAGTGTCTCGTGCTTAATCGTATAATATTTTTATGTTTAAACAATAGGGGGAATCTTA -TGATTGAAAAATTAGTAACCTTTTTAAATGAGGTTGTTTGGAGTAAGCCATTAGTTTATGGTTTGCTAAT -TACTGGTGTGCTATTTACATTGCGTATGCGATTTTTTCAAGTTAGACATTTTAAAGAAATGATTCGATTA -ATGTTTCAAGGAGAGAAGTCTCCAAATGGTATTTCAAGTTTTCAAGCGATAGCCATGTCTTTAGCAGGCA -GGGTTGGTACAGGTAATATTGTCGGTGTATCTACTGCAATATTTATAGGAGGACCTGGTGCAGTATTTTG -GATGTGGATTACTGCATTTTTAGGTGCAAGTAGTGCTTTTATTGAATCTACACTTGGTCAAATATTCAAG -AGAGTTGAAAATAATGAATACCGTGGTGGACCAGCGTATTATATAGAATATGGTATTGGTGGTAAATTTG -GTAAAATTTACGGAATTATCTTTGCTATTGTTACGATTATCTCAGTAGGTCTATTGCTTCCTGGTGTGCA -ATCTAACGCTATAGCAAGTTCTATGCACAATGCGATTCATGTTCCACAATGGTTAATGGGTGGTATTGTT -GTAGTTATTTTGGGATTAATTATTTTTGGTGGTGTACGTAGTATTGCCAATGTTGCAACAGCCGTTGTAC -CATTTATGGCAATTATTTACATACTAATGGCTGTCATTATCATTTGTATCAATATACAAGAAGTGCCAGC -GTTATTTGCATTAATTTTCAAATCAGCATTTGGATTACAATCTGCTTTTGGTGGTATCGTTGGCGCAATG -ATAGAGATTGGTGTTAAACGTGGATTATACTCAAATGAGGCTGGTCAAGGTACAGGTCCACACGCAGCAG -CGGCAGCAGAAGTATCACATCCAAGTAAACAAGGTCTAGTACAAGCATTTTCAGTTTATATTGATACATT -ATTTGTATGTACTGCAACTGCTCTGATTATACTTATTTCTGGTACATATAATGTGACTGATGGTACGGTT -AATGCGAATGGCACACCGCATTTAATTAAAGACGGTGGGATTTATGTTGAAAATGCAACAGGTAAAGATT -ATTCAGGTACTGCGATGTATGCACAAGCCGGCATTGATAAAGCGTTCCATGGCAGTGGTTATCAATTTGA -TCCTACTTTCTCTGGCGTAGGTTCGTACTTTATTGCATTTGCTTTATTCTTCTTTGCATTTACTACAATT -TTGTCGTACTACTACATTACAGAAACAAATGTTGCTTATTTAACGCGTAATCAAAATAATCAAGTTTCAT -CGGTATTTATTAATATTGCTCGTGTGATTATTTTGTTCGCTACATTTTACGGTGCAGTTAAAACAGCTGA -TGTAGCATGGGCATTCGGTGATTTAGGTGTAGGTCTAATGGCTTGGTTAAATATCATTGCGATTTGGATT -TTACATAAGCCTGCCGTAAATGCTTTAAAAGATTATGAAATTCAAAAGAAACGTTTAGGCAGCGGTTATA -ATGCAGTTTATCAACCTGATCCGAATAAATTACCTAATGCTGTCTTTTGGTTGAAGACATATCCAGAACG -TTTAAAACAAGCACGTGCCAAAAAGTAGTCAACTTTTAGTTATGGTATATGTAGTGATCATTTGATAAAA -AAGAAAAAGTATTGAGAATTTTAGGTGCTCAGAAATTTGAATTTTAAAATATAGTGTCTCTTGGTACAAT -AATAATACAATTACTAGGGGGCACTTTTTTATGTTGGAATTTAAAGCTGGAAAGATTAATAAACATGTTT -TATATAGTGATATTTTAAATAGAGATGTCACACTAAGTATTTATTTGCCAGAATCTTATAATCAACTTGT -TAAATATAATGTCATTCTTTGCTTTGACGGATTAGATTTTTTACGTTTCGGGAGAATACAACGTACATAT -GAATCGTTAATCAAAGAAGCGCGTATTGATGATGCGATCATTGTCGGATTCCATTATGAAGACGTTGATA -AGCGTAGAGAAGAATTTCATCCACAAGGAAGTCGTTCTCATTTAACTATTCAATCAGTCGGTAAAGAAAT -ATTGCCATTTATTGACTCGACGTTTTCTACACTGAAAGTAGGTAATGCAAGGTTATTAGTAGGAGATAGT -TTAGCGGGTAGTATTGCCTTATTAACGGCGTTGACCTATCCAACGATTTTTAGTCGTGTAGCAATGTTAA -GTCCACATTCAGATGAAAAAGTATTAGATAAGCTAAATCAATGTGCTAATAAAGAACAATTGACAATTTG -GCATGTCATTGGTCTAGATGAAAAAGATTTCACTTTACCAACAAATGGTAAGCGTGCCGATTTCTTAACA -CCGAATAGAGAATTAGCTGAACAAATTAAGAAATATAATATAACTTATTATTACGATGAATTTGAAGGTG -GTCACCAATGGAAAGATTGGAAACCATTGCTGTCAGATATATTATTGTATTTTTTTAGTAATCAGTCACC -GGATCAATTATATGAGTAATATGTTCTTATATAACTGATTATTGTAGTGGTTTTATCTTCAAAAGAGGGG -CAATTTTAGGGCACTTAGGTATTATATTAAGAGAAAAGCATATTCCTGCAATAACAACGGATAAAGAGCT -TCAAGAAGGTGAAATGTATAGAATAGTGAAGGGGGGAATTTACAGTGAATAATAAGCTTATATATACCTC -TTATGATGGTGATAACATACTATTGATAGATAGTTTTATTAAACTTGTTATTGATTTTAAATATATTCCA -ATAAATCCAACTAAATCATTAGGATATTATATATCTACATCGATTCATGACAATGACAAAGGTGAGTGTT -TAAGAGACTGCTTGTCTTTGGAAATGATTTGTGATGAACTTTGGGTATTCATAGACAATAATAAATATAT -TCCAGAAGGAGTTCGGTTAGAAATAGCCTCATGGTTAAAATATAAATCCTCTCCAGTTAAGTATATAAGC -ATACCTTCTTTATTAGAGAATTCGAGTATAAATGACGATTTATTTTTAGACTTTGATGATTCAAATATAC -TTAAAGAAAAGGAAATTTCCGAACCAGTACCGAAAAAAAGTGAGTTAAGACCTGTAAATTGTATTAATAT -ACTACCGGAACACCATAAATATATAGACTGGATAAAGTATCATTTATTTTATAACAAATTCGTACCATTG -GATTATTTAAGTATAAAGCCATATATTTATTTTGATAATATAGAACATTATAAAAGTGAGTTATCGCTAT -TGAATGAACGATGTAATAACATTTCTGTTATGCCATATTATGTGAGTGAAGATAATTTTAATTTATCTTT -TTCAGAATGCAAAATACCTAAATATATTAAGAAAGATTGGGCTATAACAACAATGGAGAATAAAAATTAA -CATGGATATATCATTAAATTTCAATCATTATATTGATTTAAAAAAGAGTATTAAAAATTTATGCTTAATG -AAAAAGTTTGAGCCCTATGTAACCAATGAAAATTATGATTTTATTGAAATGCCTTTGGTAGTAGATGGAA -ATTATGTGCTCTTAAAAATTTATCAAGAAAAAGACGCTTTAATTAAACTTCATTATCAGGAAGTATTAAA -CTCTAATCGAAAAAGTGTAATACAAGAAAGTGATATAGTTAGAATTTCACGAAGCATACTTAATGAAGCT -CTTGATATCAATAGTAATATAAAATATAAATCTGATACTTTTGGATTAACTATTATATCCGATGCAGATA -ATTACACAACATTAATACGGACTATACTTGCTCAGCAAGTGAGCATAGAACAATCCAATAAACTATTTTT -ATTATTTATTAATACTTATGGTGAAATTTTTGAACTAAATAATAAAGAATACACTTTTTTAAATTGGGAT -AAAATATTCAGTCGAATATATAAAGAACAAAAAGTTTTAGTAGGTACGACTAATAATAGAAAGCAGGCTA -TCATAACTCTTGCTGAATTACATATAAAAAACGGCTTAAGAGAAAATGTTTTACAAGTTATTTCAAGTAT -AAAAGGTATAGGTTCTTGGACAGTGCAAATGTTTATGCTATTTCAATTTCCTCACGTAGCTTTTGAAAAT -ATTCCTGTAGCAGACATAGGATTGCACAGGGCCATAGAAAAAAATCATGATCTTCCACATAAATCGATTG -ATAAAAGTAAGGGAGAATCTTACTTCCAAAACATGAAATCTATAGATGTGTTTAAATATTGGTATATATA -CATGGTTGAATAGATGTTTAAGCAGTTTGTTGTACAGTAAAAATAAAACCTATTAAATATAAGGATTGCT -TAATCTCTTTTCTAATTATTCAACTCCCGATGTAATATTCTGTAAATTACTTTACAGAATATGTTTACTT -TACGTACTTTTTAAATGAAAGGTAAGAGTAGATAAACTTTTTAAAGACCTATTTCTGAAATAATAGAAGA -TACTACTTTATTTATATAAATGTTGGATTATCTTAAATAGGCAGTATAGTGACTATTTATCATGCCAGTT -CTATCATTTTTTTAAAGGAATTATTAAGATGATTATCACATTACTACCGGAAAGGTTTAAGGTAATTGTT -GTAGAAAATTCTCAATATATTTTTTCAGCGATACATTTTTATATCTATAAACCAATTACATACGAATGTT -GTATGGAGTTCTTTAACTAAAAATAATATACAACTGTTACTAGAAATCAATATTTTTTGTTTATTATAGA -ATCCTATCACAACAAGCTTAAATGAACATTGTAATAGAAACGCACTGAATTATAAAACAGAATTAAAATT -ATTTATAGGGTTATCTAGGCTGTCTAGATAAATTTGACAATGCTATAGTTAAATATATTTATAAAAGATT -TTACTGTTTAATTTAATTTAAATTTGTCGAAATTGCAAAAGATGTATAATGAATTATTTTTAATGTAACG -GTTTTCAAAGAAATTTGATATAATAGCAATAGGTTAAACAAAGGAGGAATTCAGATGATTTTAGGATTAG -CATTAATTCCATCAAAGTCATTTCAAGAAGCGGTGGATTCTTACCGTAAAAGATATGATAAACAGTATTC -ACGAATTAAACCACATGTGACAATTAAAGCACCATTTGAAATTGAAGATGGTGATTTAGATTCTGTCATT -GAACAGGTTAGAGCTCGTATTAATGGTATACCAGCAGTAGAAGTTCATGCTACAAAAGCTTCTAGCTTCA -AACCAACGAACAATGTGATTTACTTTAAAGTTGCGAAGACGGACGACTTAGAAGAATTGTTTAATCGCTT -TAATGGAGAAGATTTCTATGGAGAAGCTGAACATGTTTTTGTGCCACACTTTACAATAGCACAAGGACTA -TCTAGCCAAGAATTCGAAGATATTTTTGGTCAAGTAGCATTAGCTGGGGTAGACCATAAAGAAATTATCG -ATGAATTAACTTTGTTACGTTTTGACGATGACGAAGATAAATGGAAAGTTATTGAAACGTTTAAATTAGC -TTAAGTAACATAATAGTATTGTTAATCGTAGTATGTTTGAATTAATAAGAAAATGGTCATTTTTATTGAA -TGTAATAAAAATGACCATTTTCTTTATTTTAAAATACGTTTTAACCTTACTTAGCTTTTTCTCTATTTGC -TATAAAGTAGCTTCCATAAAATACAGCTAAGACTAAAAAGATTAATGCCGAGAAATAAAATGTATTGTTT -AAATTGTTGGTAAATTGTGTAATTAATCCGCCAAATAATGGCCCGATCATTGAGCCGAATCCTTGGATAC -TATTAAAAACACCCCAAGTTTCTTCTTGTTCATCTGATTTGATAAATCGTGCCATAAAGGTATTCCATGC -TGGTAATAAGATGCCATACATTAGACCGATAGCTAAAGCGATAATCCACACGATGTGAATATTAACAATC -ATAGATAGAGTAAAAATTAATATCATGTATAAAATAAATCCGCTTAGAATAACACCATACATAAAGTTTC -TGCTGCGGTTATCTATTAGTTTCGATAAAAATAGCATCGAAACTGCACAGCCGATACCACCAATAATGAT -TGCAACAGTATATTCAATTGTGCTTACGTTAATAACCTTAGTAGCATATGTTGGTAATATAGGAACTAGT -GCAGCAATTGCGGCACCTTGTAAAAGAATACCAGGGAACAACAATAAATGGCGCTTTGTCACATCAACAA -TTTGTCTCAATTGAGCTTTAACTGGACGAGTATTATAATTTGTTAACTTTACATCGACAAAATAATATAA -TATCCAAGCAATTAAAACGACTAAAGACATCATGAAGGCAAAGCGTGTTGGGTGCACTTTGATAAGTAGA -TTCATAAAAACCATACCTACCAATAGGCCTAACAACCATGAAAAATAAACATAGCCCATTTGTTTGCCAC -GTTTATCTTCTTCAACACTGGATAACATAATGACCCAAATAGGACTAACTGCAATACCGAGCATCATAGC -ACTAAATATGATTACAAAAGGTGATGCTGGAAACCAAATAACTAAAAATAAACTTGTAAATGCTAAAATA -AATCCAGTCGTTAAAACGATTTTTGTGCCGAATTTTTTCAGTAAAAATCCTATAACAAAGTTTGTAGATG -CATCAGCAATAAAATGTATTGAAAATGCTAGAGACGTTATTGCTACAGCAATGGATGTTACTGTTGGCAA -GAAATTAATATAGCTTAGGATATACATGCCTCTCGCAAATTCCATTAAAAATAAGATAATAAGCATTAAA -ATGAAATTTTTATGATTAGCGTAATTATTTAACGAAGAATCTTGCATATAAAGGAACCTTTCCATAAATC -TCTTGTGGTTGTGATGAATGACCGATTAAATCAAGTAAGTCTTGACATATTGTCTGTGTAGCATACTTAA -TTTTATCTTGTTCCATTGTACTAATCATGTTAGTTAATTGCTCATTACCATTCGTTAAACTAGCTACAAT -TTTTATTGCTTCTTCTGGAGTATCAGCGATTTTACCAAAACCTTTTTCTTCAAAGTAAAGGGCATTTTCA -AGCTCTTGACCAGGTGCAGGATTTAGGAAAATCATTGGAATACAACGGGCGAAACCTTCAGTTATTGTGA -TACCACCAGGTTTCGTAATCATAAGTTGACTTGATGCCATCCATTCATTCATGTGTTTGGTATAACCTAG -AATCAATACATTCTCGTTAGATTTAAACTTAGCTGTTAAAGAACGCTTTAGCTCTTTGCTCTTACCACAA -ATCATAACTACTTGTGCATTTGCACTTTTCGCTAATATATCAGTGATCATCGTGTCAAAGCCTTTAGATA -CACCAAATGCACCAGCTGACATTAAAATAGTTTGCTTATCTGGATCTAAGTTGTTGTCTATTAACCACTG -CTTTTGATTAATAGGTGTTTCAAATTTGTTATCAATAGGAATACCTGTCACTTTAACTGTTGAAGGATCA -ATACCTACGTCTATAAAGTCTTGTTTCGTTTCTTTTGTTGCCACATAATATCTTGTTGAATACGGCGTAA -TCCAGTTTTTATGTAAGCGATAGTCTGTCATCACTGTAGCAACTGGAATATTAATGTTAAATTGCTCAGT -TAGTACCGACATAACTGGTGTAGGAAACGTTAATAATATTAAATCCGGCTTTTCTTTTATCAATAAATTT -ATTAATTTATTAAGTCCATAGTATTTGTAGAAACATTTGTTTAGTTTATCTGGGCGGCTGTAATAAAACC -CTTTGTACATATTTCTAAAATATTTAAAGCTATTGATATACCATTTTTTACAAATAGAAGTCAAAATTGG -GTGAGCTTCCATAAATAAATCGTGCTCAATGACGCTTAAATGGTCTAGATTCATATCATTAAGTTGATTA -ACGATACTCTGTGTAACTTGCATATGACCGTTACCGAAAGAGCCAGTAATAATCAATATCTTTTTATTTT -GAGTAACCATTAATAGCCACCCTCCGTTAGTTTGAAAATTTTATTTAAGTGTAACTTATTTTACGGCATT -ATAAAAGAAATAAAGACGCAAAGTCGTTACATTTATAGCATTTTAATCAATAGATGAATTGATACAAAAT -AAAACGTTATTTTATTAAGCAATTTATTGTTCTATGTTTTATTTGTATATTTAAAATTATCCAGTATACA -ATTATAGCATATTTTTGGAAACAATTATGATATTATACCATGTTACAAGATGGTTTTAATAATTTAAGAT -GAACCATAATTGTGAAACTAATTCATAATACCTTATGTTTTATTTTTAATAGTAGAAATTAGAAAATGCT -GATTAGTAGGATATAACAGTGAAATTATAAATTTATTAACATCAACAAAACGTGTATAATAAACATATTG -TAGAAAAAGGAGCGGTTCAGTTTGGATGCAAGTACGTTGTTTAAGAAAGTAAAAGTAAAGCGTGTATTGG -GTTCTTTAGAACAACAAATAGATGATATCACTACTGATTCACGTACAGCGAGAGAAGGTAGCATTTTTGT -CGCTTCAGTTGGATATACTGTAGACAGTCATAAGTTCTGTCAAAGTGTAGCTGATCAAGGGTGTAAGTTG -GTAGTGGTCAATAAAGAACAATCATTATCAGCTAACGTAACACAAGTGGTTGTGCCGGACACATTAAGAG -TAGCTAGTATTCTAGCACACACATTATTTGATTATCCGAGTCATCAGTTAGTGACATTTGGTGTAACGGG -TACAAATGGTAAAACCTCTATTGCGACGATGATTCATTTAATTCAAAGAAAGTTACAAAAAAATAGTGCA -TATTTAGGAACTAATGGTTTCCAAATTAATGAAACAAAGACAAAAGGTGCAAATACGACACCAGAAACAG -TTTCTTTGACTAAGAAAATTAAAGAAGCAGTTGATGCAGGCGCTGAATCCATGACATTAGAAGTATCGAG -CCATGGCTTAGTATTAGGACGACTGCGAGGCGTTGAATTTGACGTTGCAATATTTTCAAATTTAACACAA -GACCATTTAGATTTTCATGGCACAATGGAAGCGTACGGACACGCGAAGTCTTTATTGTTTAGTCAATTAG -GTGAAGATTTGTCGAAAGAAAAGTATGTCGTGTTAAACAATGACGATTCATTTTCTGAGTATTTAAGAAC -AGTGACGCCTTATGAAGTATTTAGTTATGGAATTGATGAGGAAGCCCAATTTATGGCTGAAAATATTCAA -GAATCTTTACAAGGTGTCAGCTTTGATTTTGTAACGCCTTTTGGAACTTACCAAGTAAAATCGCCTTATG -TTGGTAAGTTTAATATTTCTAATATTATGGCAGCAATGATTGCGGTGTGGAGTAAAGGTACATCTTTAGA -AACGATTATTAAAGCTGTTGAAAATTTAGAACCTGTTGAAGGACGATTAGAAGTTTTAGATCCTTCGTTA -CCTATTGATTTAATTATCGATTATGCACATACAGCTGATGGTATGAACAAATTAATCGATGCAGTACAGC -CTTTTGTAAAGCAAAAGTTGATATTTTTAGTTGGTATGGCAGGCGAACGTGATTTAACTAAAACGCCTGA -AATGGGGCGAGTTGCCTGTCGTGCAGATTATGTCATTTTCACACCGGATAATCCGGCAAATGATGACCCG -AAAATGTTAACAGCAGAATTAGCCAAAGGTGCAACACATCAAAACTATATAGAATTTGATGATCGTGCAG -AAGGGATAAAACATGCAATTGACATAGCTGAGCCTGGGGATACTGTCGTTTTAGCATCAAAAGGAAGAGA -ACCATATCAAATCATGCCAGGACATATTAAGGTGCCACATCGAGATGATTTAATTGGCCTTGAAGCAGCT -TACAAAAAGTTCGGTGGTGGCCCTGTTGGTCAATAAAAGACTTCTTGATGAAGGTAAAACTATTGATGTT -TATTTATTCGAAGCATTAAATGACCAGATAATCATTGCTATACCAGATTGGTTTTGGTCATATCAGATGG -CAATGACATTAAATGAAGAAACTTGTTTTGAAGCAATACTCATGCAATTGTTTGTTTTTAAAGAAGAGGA -AGAGGCAGAATCGATTGCATCACAACTAACAGATTGGATAGAAACATATAAAAAGGAGAAAGACTAATGA -ACTTAAAGCAAGAAGTTGAGTCTAGAAAGACTTTTGCGATTATTTCACATCCCGATGCAGGGAAAACAAC -GTTAACTGAAAAACTATTGTACTTCAGTGGTGCCATTCGTGAAGCGGGTACAGTTAAAGGGAAGAAGACT -GGTAAATTTGCGACAAGTGACTGGATGAAAGTTGAACAAGAGCGTGGTATTTCTGTAACAAGTTCAGTAA -TGCAATTTGATTACGATGATTATAAAATCAATATCTTAGATACACCAGGACATGAAGACTTTTCAGAAGA -TACGTATAGAACATTAATGGCAGTTGACAGTGCTGTCATGGTCATAGACTGTGCAAAAGGTATTGAACCA -CAAACCTTGAAGTTATTTAAAGTTTGTAAAATGCGTGGTATTCCAATTTTTACATTCATTAATAAATTAG -ACCGAGTAGGTAAAGAACCATTTGAATTATTAGATGAAATCGAAGAGACATTAAATATTGAAACATACCC -TATGAATTGGCCAATTGGTATGGGACAAAGTTTCTTTGGCATCATTGATAGAAAGTCTAAAACAATTGAA -CCATTTAGAGATGAAGAAAATATATTACATTTGAATGATGATTTTGAGTTGGAAGAAGATCATGCAATTA -CAAATGATAGTGCTTTTGAACAAGCAATTGAAGAATTAATGTTGGTTGAAGAAGCGGGTGAAGCCTTTGA -TAATGACGCGCTGTTGAGTGGAGACTTAACACCTGTATTTTTCGGTTCAGCTTTAGCTAACTTTGGTGTA -CAAAATTTCTTGAATGCATATGTTGATTTTGCGCCAATGCCAAATGCGAGACAAACAAAAGAAGAGGTTG -AAGTAAGCCCGTTTGATGATTCATTTTCAGGATTTATCTTTAAAATTCAAGCCAACATGGACCCTAAACA -CCGTGATAGAATTGCCTTTATGCGTGTCGTTAGTGGTGCATTTGAACGTGGTATGGATGTCACTTTGCAA -CGTACTAATAAAAAGCAAAAGATCACACGTTCAACGTCATTTATGGCAGACGATAAAGAAACTGTGAATC -ATGCTGTAGCAGGCGATATCATTGGACTATATGATACAGGTAATTATCAAATTGGAGATACTTTAGTTGG -TGGAAAACAAACCTACAGTTTCCAAGATTTACCACAATTTACGCCAGAAATTTTTATGAAAGTTTCTGCT -AAAAACGTCATGAAACAGAAGCATTTCCATAAAGGTATTGAACAATTAGTTCAAGAAGGTGCGATTCAAT -ACTATAAAACATTACACACAAACCAAATTATTTTAGGTGCTGTTGGTCAGTTACAATTTGAAGTTTTCGA -ACATAGAATGAAAAACGAATATAATGTTGATGTTGTTATGGAGCCAGTAGGCCGTAAAATTGCACGTTGG -ATTGAAAATGAAGACCAAATTACAGATAAGATGAACACATCAAGATCGATTTTAGTGAAAGATAGATATG -ACGATTTAGTATTCTTATTTGAAAATGAATTTGCAACAAGATGGTTCGAAGAGAAATTCCCTGAAATTAA -ATTGTATAGTTTACTTTAACGGCTCAATTGTATAATCGAATTTGTTACATTAAAAATAATTGTTTCCTTG -AAGAAAAATAAATTGTATATTTTAAAAGAAAAAGGTATACTATGATGTATCAAATGAATAACCTATGGCA -TTTTGTCAGAGGGGAGTAACTTAAGAATCATGACCGTATAAATGATTCGACACTTTATCGTCATTACGAA -GATATCTTCCGGTAAAGTGGGCAATTAAAATTGCTTAGTGAGACCTTTGCTATTTATTTAGCATAGGTCT -TTTTGTTTGTACTTAACTTATTTATTTAAAGGAGTTGTACATGTTAATGGATCCAAGTTTGATCTTACCT -TATTTATGGGTACTTGTCGTTTTAGTATTTTTAGAAGGCTTATTAGCAGCAGATAACGCAATCGTTATGG -CTGTAATGGTTAAGCACTTACCACCCGAACAACGTAAAAAAGCTTTGTTTTACGGTTTGCTAGGTGCATT -TGTATTTAGATTTTTAGCATTATTCTTAATTAGTATTATCGCGAACTTTTGGTTTATTCAAGCTGCAGGA -GCGGTTTACTTAATTTATATGTCAATCAAAAATCTATGGCAGTTCTTTAAACACCCAGAAATTGAAAGTC -CTGAAGCTGGAGATGATCATCATTATGATGAGTCTGGTGAAGAGATTAAAGCAAGTAACAAATCATTCTG -GGGAACTGTGTTGAAAATAGAATTTGCAGATATCGCATTTGCCATTGATTCTATGCTTGCTGCTTTAGCT -ATTGCTGTAACACTTCCTAAAGTTGGTATTCACTTTGGTGGTATGGACTTAGGTCAGTTCGTAGTCATGT -TCCTAGGTGGAATGATTGGTGTTATTCTAATGCGTTATGCAGCAACATGGTTCGTAGAGCTATTAAACAA -ATATCCAGGACTTGAAGGTGCAGCCTTCGCGATCGTTGGTTGGGTAGGTGTTAAGTTAGTTGTCATGGTA -TTAGCGCACCCAGACATCGCTGTATTGCCTGAGCACTTCCCACATGGCGTATTATGGCAATCTATTTTCT -GGACGGTACTAATTGGATTAGTAATTATCGGTTGGTTAGGTTCAGTTGTTAAAAATAAAAAATCGCATAA -ATAAATGATGTGAAGCGGACAATCTTAATTTAGTTTAAGGTTGTCCTTTTTCATTTAATTAAGTGATCTA -TGAAAAATGGATTTTGAAGAATATGTATCAAAAGATGCGATATAGTATTAAGAAAATGTGCCTTTTATAT -TTAGCATTTTTTCAATAGAAATTATATAGATTTTAAAGCAAATTAAGTGTTAATGTGTCATAATGAAAAG -TGATTTTATTGAATGGAGTGGACATTAGTGGATATTGGTAAAAAACATGTAATTCCTAAAAGTCAGTACC -GACGTAAGCGTCGTGAATTCTTCCACAACGAAGACAGAGAAGAAAATTTAAATCAACATCAAGATAAACA -AAATATAGATAATACAACATCAAAAAAAGCAGATAAGCAAATACATAAAGATTCAATTGATAAGCACGAA -CGTTTTAAAAATAGTTTATCATCGCATTTAGAACAGAGAAACCGTGATGTGAATGAGAACAAAGCTGAAG -AAAGTAAAAGTAATCAGGGTAGTAAGTCAGCATATAACAAAGATCATTATTTAACAGACGATGTATCTAA -AAAACAAAATTCATTAGATTCAGTAGACCAAGATACAGAGAAATCAAAATATTATGAGCAAAATACTGAA -GCGACTTTATCAACTAATTCAACCGATAAAGTAGAATCAACTGACATGAGAAAGCTAAGTTCAGATAAAA -ACAAAGTTGGTCATGAAGAGCAACATGTACTTTCTAAACCTTCAGAACATGATAAAGAGACTAGAATTGA -TTTTGAGTCTTCAAGAACTGATTCAGACAGCTCGATGCAGACAGAGAAAATAAAAAAAGACAGTTCAGAT -GGAAATAAAAGTAGTAATCTGAAATCTGAAGTAATATCAGACAAATCAAATTCAGTACCAATATTGTCGG -AATCTGATGATGAAGTAAATAATCAGAAGCCATTAACTTTGCCGGAAGAACAGAAATTGAAAAGGCAGCA -AAGTCAAAATGAGCAAACAAAAACTTATACATATGGTGATAGCGAACAAAATGACAAGTCTAATCATGAA -AATGATTTAAGTCATCATACACCATCGATAAGTGATGATAAAGATTACGTTATGAGAGAAGATCATATTG -TTGACGATAATCCTGATAATGATATCAATACACCATCATTATCAAAAATAGATGACGATCGAAAACTTGA -TGAAAAAATTCATGTCGAAGATAAACATAAACAAAATGCAGACTCATCTGAAACGGTGGGATATCAAAGT -CAGTCAAGTGCATCTCATCGTAGCACTGAAAAAAGAAATATGGCTATTAATGACCATGATAAATTAAACG -GTCAAAAACCAAATACAAAGACATCGGCAAATAATAATCAAAAAAAGGCTACATCAAAATTGAACAAAGG -GCGCGCTACAAATAATAATTATAGCGCCATTTTGAAAAAGTTTTGGATGATGTATTGGCCTAAATTAGTT -ATTCTAATGGGTATTATTATTCTAATTGTTATTTTGAATGCCATTTTTAATAATGTGAACAAAAATGATC -GCATGAATGATAATAATGATGCAGATGCTCAAAAATATACGACAACGATGAAAAATGCCAATAACGCAGT -TAAATCGGTCGTTACAGTTGAAAATGAAACATCAAAAGATTCATCATTACCTAAAGATAAAGCATCTCAA -GACGAAGTAGGATCAGGTGTTGTATATAAAAAATCTGGAGATACGTTATATATTGTTACGAATGCACACG -TTGTCGGTGATAAAGAAAATCAAAAAATAACTTTCTCGAATAATAAAAGTGTTGTTGGGAAAGTGCTTGG -TAAAGATAAATGGTCAGATTTAGCTGTTGTTAAAGCAACTTCTTCAGACAGTTCAGTGAAAGAGATAGCT -ATTGGAGATTCAAATAATTTAGTGTTAGGAGAGCCAATATTAGTCGTAGGTAATCCACTTGGTGTAGACT -TTAAAGGCACTGTGACAGAAGGTATTATTTCAGGTCTGAACAGAAATGTTCCAATTGATTTCGATAAAGA -TAATAAATATGATATGTTGATGAAAGCTTTCCAAATTGATGCATCAGTAAATCCAGGTAACTCGGGTGGT -GCTGTCGTCAATAGAGAAGGAAAATTAATTGGTGTAGTTGCAGCTAAAATTAGTATGCCAAACGTTGAAA -ATATGTCATTTGCAATACCTGTTAATGAAGTACAAAAGATTGTAAAAGAATTAGAAACAAAAGGTAAAAT -TGACTATCCCGATGTAGGTGTTAAAATGAAGAATATTGCCAGTCTAAATAGTTTTGAAAGACAAGCAGTT -AAATTGCTAGGAAAAGTTAAGAACGGTGTTGTTGTAGATCAAGTTGACAACAATGGTTTAGCAGATCAAT -CTGGTCTGAAAAAAGGTGATGTAATTACTGAATTAGATGGCAAACTTTTAGAAGATGATTTACGCTTTAG -GCAGATTATATTTAGTCATAAAGATGACTTGAAATCAATTACAGCGAAGATTTATAGAGATGGTAAAGAA -AAAGAAATTAATATTAAACTAAAATAATGTTGAGGTGAACAACGTGTCAATTTTTAGCCAGTTTTTAAAA -AGATCAAGCCCTCAACAAGGTATTGTATTGTATTATATCGTCGCAATTGTCGTTGCATTTTTATTATTAA -ACTTACCGTATGTTCATAAACCAGGTGTAGAAGTAAATCCAATTGACACATTATTTGTTGCCGTATCCGG -AATTAGTGTTACTGGATTGTCTCCGATAAGTATTGTCGATACCTATTCTACATTTGGACAATTAATTATC -CTCGTGATATTAAATATTGGTGGAATTGGCGTCATGGCAATTGGTACGATGTTATGGGTGGTACTAGGTA -AACATATTGGAATTAGAGAACGTCAGTTAATTATGTTAGATAATAACAAAAACACAATGAGTGGTACCGT -CAAATTGATTATTGATATTGTAAAATCAATATTTGTAATCGAACTCGTAGGAGCCATGTTATTAGCATTT -TACTTTTATCGAGATAATCCAGATTTAAAATATGCAATCATGCAAGGTGTTTTTGTTTCTATTTCTGCCA -CTACCAATGGTGGATTAGATATTACAGGTAAGTCATTAATTCCTTATGCACATGATTATTTTGTACAAGC -GATAGTTATATTTTTAATAATTTTAGGATCAATCGGCTTCCCAGTATTATTAGAGGTTAAAGCTTACATT -CAAAATAGGGTTACTAATTTTAGATTTTCATTATTTACTAAAATTACGACATCAACATATTTATTCCTAT -TTATTGTTGGGGTATTAGCCATTCTATTATTTGAACATAACCATGCGTTCAAAGGATTAAGTTGGCATCA -ATCGTTATTCTATTCGCTGTTTCAATCAGCGACTACAAGAAGTGCGGGTCTTCAAACAATTGATGTGACA -ACACTAAGTGACCCTACGAATATTATCATGGGTATTTTAATGTTTATAGGTTCTTCGCCAAGTTCGGTTG -GTGGCGGTATTCGTACAACAACTTTCGCTATTTTAATTTTGTTTTTAATTAACTTTAGTAATAATGCCGA -TAAAACATCCATAAAAGTATACAATAGAGAAGTACACATTATGGATATTCAACGTTCATTTGCAGTATTT -ACAATGGCGACAATTTTAACATTTTTAGGAATGCTAATTATATCAGCTACTGAAAATGGTAAGCTTACAT -TTTTACAAGTATTTTTTGAAGTCATGTCTGCATTTGGAACTTGTGGACTATCGCTTGGTGTCACAAGTGA -TATTAGTGATATTTCCAAGGTCGTACTAATGGTACTCATGTTTATAGGACGTGTTGGCTTAATATCATTT -ATCATTATGATAGCAGGACGTCGAGAACCAGATAAATTCCATTATCCAAAAGAACGTATTCAAATAGGAT -AATATAATAGCAATCTAAGTTTAGTTAATGTAGATTTTAACTGGAACTTAGATTGCTTTTTTAGTTTGTA -TTTTTAACTTATATTATAAGACGATTGGATTTGAAAATGGTAAACTAGTAACAATGAGAGGTGTAACATG -ATGGAAAAAAATGAAAACATTAATGTAGAGATTTTAACTACGTCAGATATGCATAGTCATTTCTTAAATG -GTGATTATGGTTCAAATATTTATAGAGCTGGTACTTATGTTAACCAAGTAAGAGCACAAAATCATCGCGT -CATTTTATTAGATAGTGGCGGAAGTTTAGCTGGCTCGTTAGCGGCCTATTATTATGCTATTGTTGCACCT -TATAAACGACATCCAATGATAAAGTTGATGAACAGAATGCATTATGATGCTAGCGGTGTGAGTCCAAGTG -AATTCAAGTTTGGTTTATCATTTTTAACTCGTTCAATTGCTTTGGCACGTTTTCCATGGTTATCAGCAAA -TATTGAATACAATGTTACTAAGGAGCCTTATTTTTCAACTCCATATTGTATTAAACATTTTGGTGACTTA -AAAATTGCTATCGTAGGCGTTACAGCAGATGGTTTAATGGAAAATGAGTATTCTGAAATGGAGCAAGATG -TATCTATTGAAAAGACATTAGTGGCATCAAAACGATGGATTAGATATATCCATGAAGTTGAAGAGCCGGA -TTTTTTGATTGTAATTTATCATGGTGGATTGAATAAAATTAGTAATAGCACGAAAAATAAAAAGGCAAGT -TCGAATGAAGCTGAAAAATTAATGGAAGAAATTGGTGTTATAGATTTAATGATTACAGCTCATCAGCATC -AAACAATAGTAGGTCAAGATCATGAAACGTATTATGTTCAGGCTGGTCAAGATGCAAAAGAGCTTGTACA -TCTTTCGATTAATTTTAAAAAGAGAACAACAACTTATGATGTTGAAAGCATTGATTCTAAAGTGATTGAC -TTAAATGAGTATGAAGAGGACCAAGAATTATTAGATTTAACATTCTATGATAGAAAAGCAGTGGCTTATT -GGTCACAGGAAATCATAAGTGATAAAGGTTTGATGTTATCAGTAAATGGGTTACAAGATTTAGTCTGTCA -AACACATCCATTTTCGCAATTATTACATGATGCAATTCACCTTGCATTTGATAATGATATAACATGTGTC -CACGTGCCTATGAACGGAGAGAAGGGGTTGAATGGACAGATTCGAAATGAAGATTTGTATCATGCATACC -CTTATCCAGATAAGCCAATGGATATGACAATTAGTGGTCAAAATATCAAAGATATATTGGAGTATAGTTA -TTCACATTTAGATTTTGTTAACGAGCAATTAAGCTTAACAATTATTGATGAAACATTATGTACAATGTGG -CAAGGATTCAATTATGAGATTGATATGAATCTAGAACCTGGGCAACGAGTAATGTTAGATCAAATTGATT -CGACTAAGAGTTATAGAGTTACAATGACTGACTATTGTTATCGTAACTACAAGAATTATTTAAAAAATGC -TATTATACATGAATCATACGATGAAACAATGAGTACATTAATTGCAGAGAAGTTAAGAGATCCGAATTAT -CTTATTTCATGTAGTGATAATTTTGTAGTTAAAAACAGGTGAATATTGCTATGTAATAAATTAATTATAA -GTTTAACAAGTATAAAAACCTTTCTTAGAGAAGATTATCTAGGAAAGGTTTTTAGAATTATAAAATTGAT -ATAAAAGAACAGTGAAATTCTCATTCATTATATATATAAGTAAACGAAAAAGCTTAAATGGTATATACCA -TTTAAGCAAGTAACGGAAACGGAGGGATTCGAACCCTCGCGCCGCTTTCGCGACCTACACCCTTAGCAGG -GGCGCCTCTTCAGCCAACTTGAGTACGTTTCCAATGGCTCCACAGGTAGGACTCGAACCTACGACCGATC -GGTTAACAGCCGATAGCTCTACCACTGAGCTACTGTGGATTAATTTGTATGTGTTTGAATATCAAGCACA -AATATTATTATAACAAGATTAAGTTAATTTGCAATAGATACCTTAAAAAAATATGCAGAACATTTACACT -ATATTTATAAAACATTCCGCATATTTTAAAAATAAACAATTTATTTATCTTCAAATAAAGAATAGCGTGT -CAATGCTTCAAACACATTCAATGTGGCTTTATTATAATCTATTGGTTGGTCGGGATTTTTTGATATCATG -CGAGATTGTTTATCTACCATGTAATAGTAAAAAATGGAATTGTTATATTGGTGCCATAAACTGTGGTATG -AAACATGAAGAATGATTGATTCATTATTAATAAATGTCACTTTACATTTACGATTTTTTAATTCTTTAAT -ACTTTCGATATAATGCATATTTAACCAAATATTTTCATTTTGTCTGTCAGAATGTGTTGGGAAAAAATAA -GTTGGAAATAATGGTGTTAGTAAAATAGGTGGTTTACTAGAAATGCCAGTAATGCGGTTTGTCTCTGCTT -TCTTGCCAAGATAAGTATTACCATAAAATTTGCAAGAGCGTTCAATGATTTTCTGGACTTTAAAAGGATT -TTGAATACGCGTTTTGTCAAACCGAATTATTTCACTACCATTTCTTTGATCGTCATCATCAAATGCTGGT -CGAATAACCATGTCTCCTTTGCGTATCACATAAATATTTTGAGAATACATAAGCAAAACCTCGCTTTATT -AAGTTTTAAACCATTAATATAAAAATGCAATTAATGATATAAAGATATTTTATAATAAAATTCTGAGTTG -TCAAGTTATTATTTTGGTGAAAATGTACAATAATTTTTAACTAATAGTCAGAATATTCATTGATTTCAAA -ATTAGAAAAATGTATACTTATTATAAATTAAAGAAAGGTAGTGGTTTCTATGAAATACAATACTAATGTT -AAACATACAACTTTAGAAGCGTTTGTCACAACCGTCAATGATTTGGGTATTGAATTAATTATCAATGAAG -CACTTCGAGAGGTAAGAAAACGACAGCTCATAGAACTTATAGATGACGCACTCGTCAATAAAGATGAAGC -AGCATTTAATCAATATATGGCAGAATACAAAAATTTGGAGGCATTTCTCGGTGAATAACATTGATTCGAA -TTCCATAACGCAATCATAAAAGGACTATTCTTAACATCTCATACATGTAAGAATAGTCCTTTAATCGTTT -ATGACATTAATCTAATTAATTCATGTCTATCTATGTCACCGAAATAGTGATATAAATCATATTCTGATAG -TGCTTCTTCTATGTGCTCAAAGTCGTGTAGACAGCCAACTAATGCATTTTCAAGATCAGTGACATCTCCG -ACACCAAAGAAATCACCGAAAATTTTTGCATGTTCGATTTTACCTCGTTTAACATCAAACTTGATTTGTA -CAAATCCTTTTTCAAATTTTTCCTCGCGTTCAAAGTTATATTTAGGGTTTCTTCCATAATTCCATTCCCA -AGTTCTATATTTGTCGTTACTTAACTTTTCAATATTTTCCCAATCTTCATCCGTTAATTTATATTCTTCT -ACTTCAGTTTCTCCAAAGATAGTTTTCAAGATGATTTTTTTAAATTCTTCAATTTCTAAAGGGTCATTTA -AAAATTCTTGAATGTTTGCTACTCGTTTACGAACAGATTTAATACCTTTTGATTTAATCTTAGCTGGATT -AACTTTTAGTGCATTCTGAACTTCGTCTAAATCACTATTTAACATCAACGTACCATGACTAAACATTCTA -TTTTTAACTTTAACCATGGCATTTCCTGAGATTTTCGCTTGTCCAACTTGAATATCGTTACGACCAGTTA -ATTCAGCATTTACGCCTAAAGATTGTAATGCTTGAACAATTGGTTCAGTGAATTTTTGGAAATTGTGGAA -ACTGTTACCATCATCATCTGTTATAAAACTAAAGTTTAAATTGCCAGTATCATGATAAACAGCGCCACCA -CCAGAAATTCTTCTTACTACATCGATGTTATGAGCATCTATATATGTCTGATTTACTTCCTCTATCGTAT -TTTGATTCTTTCCAACAATGATAGATGGTCTATTTATGTAAAATAAAAAGTAACTTTCTTCTGCTGGTAA -ATTTTTTAAAACATATTCTTCCATTGCTAAGTTTAAAGTTGGATCTGTAATATTATTATTACTAATGAAT -TTCATTACAATCTCTCCCTTATATCTATATATATTCTCTACTTATTTATGCCTTAACTTTGCTGAAAATG -CCAATTATATACTCACAAATCGTTCTAAATATCGGCTTAAAGTTACATTTTATTATTTTTGATTGTTAAT -AGTTTATTTGTTAAGTGAATTTTAGTACAATATAATTTAGTTATGATTTAAGGAGGACTTAAAATGACTG -TTGCAGAAGTGGGTAACATTGTTGAGTTTATGGATGGATTAAGAGGTCGTGTTGAAAAAATCAACGATAA -CTCTGTTATTGTTGACTTAACAATTATGGAAAATTTTAATGACCTTGATTTACCGGAAAAAACTGTTATC -AATCATAAACGATATAAGATTGTTGAATAAGAAGGTAAGTTATAATGAATAAAATCTCGAAGGCTTTAAC -TTGGTTTATTATAAGTTTCATTATATTTCATCTCATATTATTTATTATGTGGGGCGAACACCAAGAATAC -TGGTATTTATATACAGGTATAATGCTAATTGCTGGTATCAGTTATGTGTTTTATCAAAGAGATATTGAAT -CTAAGCGGTTGCTTACATCAATTGGTGTTGGTATTATTACGGCAATTATTTTAATTATGCTTCAACTTTT -ATTCTCACTTATAACTTCTAATTTAAGTTATAGTTCATTAATTAAAGAATTAGCAAGAACAGGTGTCAAT -TGGAAGTGGCAAATGTTAGTAACTTTACTTTTTGTCATTCCATGTCACGAGTTATATATGAGAACTGTTT -TACAAAAAGAATTAACACATTTTTCAATACCGAAATGGGTAGCTATATTAATAACTGCAATTTGTTCTAG -TTCATTATTTATTTATTTAGATAATTGGTGGATAGTAACATTTATATTTGTTGCACAAGTGATATTATCA -TTAAGTTATGAGTATACTCGACGTATAGCAACAACATCCGTTGCACAAATTGTAGCTATTATATTGTTAT -TAATTTTTAATGCTTAAATAAGCTTTTCTTAGACGTCTGTGTTCTAAGAAAAGCTTTTTTGCTTTAGAAT -AGCAATACGAAGATTCGAGGCATGCTTCATTATAGTGTACACGTTTTTAACGGCAAGCTGTTATTATTGA -GATTAGGTTTTAGTCAGTTTTTATTACTAAATATTTTATAAAAACAGTATAATATTTTGCGAGCAAGTTT -AATTGATGGTGGCTATCTGAGTAAAGGGGGGTGGTGCCTATGGCATTACTTAACACTTTTGAAAGGAAAA -GCCTATTGTGATATCTATTGCAAACGCATTACATTTAATGTTAAGTTTCGGTATGTTTATCGTCACTTTC -ATTGGTGTAGTAGTCGCAATAATTAATTTAAACAATAAAAAATAACCATCATTTCAAAACTTTGACAACG -AATGATGGTTAAAGAAAATCTCATTTAGTCACCGTCTTTTTAACGGGCTCATTAGGCGACATGTTCCTGC -ATGTCGTCTTTTTACATTTTTATAGTAACATATCTTTTATTTAATTGTCTATTTTTATTAGATGTGTAAC -AAAATTTTGAAGTATTTTCCGTATATTGCCTGCTAAACATGTCAGATTTGAAAGGAAAATCATACTGTGG -TAGAAATCAATTATGATTATATGGTAGTACTTATAAATAAGTGATTTCTATTGAATATGTAATGAAGTTC -ATATATTAATATAACTTTCATTGATATAGAAGTCGCAATGATTAATTTAAACAATAAAAAACAACCATCA -TTTCCAAACTTTGACAAAGAATGATGGTTAAAGCAAATCTCATTTAGTCACCGTCTTTTTAACGGGTTCA -ATAGGGGACATGTTCCTGCATGTCGTCTATTTATGCACTGCGCAATTTAATAATAATACAATTATACTTT -GATGTCCATTTAATATAAAGTGGTTGAAATTTGCAGCAAATAAATTAACCTTGACTATTTTCAGAAAATT -CTGTATAAATAACGAAAAAGAGATATGGATTAAATATGAAGAGGTGTTTTTATAGAAGAATAAAATTTTT -GGCACTATATTATATTTATCTTTAGCACTTGGATTATCAACAGCAGCTTATGCATCTACAGAATACGCTG -AAGGAGGCACTTGGAGTCACGGTGTCGGCAGTAAGTATGTTTGGTCGTATTATTATCATGCTCATAAAGG -TCATGGTGCAACAGCTATCGGAAAATATAGATCATTTAGTGGTTATACAAGAGCCAGTGTAAAAGCAAAA -GCATCAGCTACTAAACATAATTTGCGGGTCAATAGAGCGTATTATAACATTTATTAAATACTAAAAAATC -ATAGAAAGTAAACAACGCAAGAGGTACAACATGAAATGGTTCAAATTAATACTTGATGTTACAATCTTCA -TTCTGATTGCTATATTGTTATTTGTTTATACATATAAAGAAAACGAAGAAATATTGCCTGATACTAAATA -CCCTATAGCGGTAACTGACTGGAATAAAAAATATAGTAAAAATGAGATTTATAAACGTATAAATCAATTC -GCTAAAAATGAGAACGTAGCAATCTATAAATCAACTTCAAATTATACAAACAAAAACGTAGATAAAGATA -TATATGTATTTAATAAATCAAAAGCAACAACTATCACTCCTTTTAATGCTAAATATAACATTCATTATTT -AAGTGACGACGAATTATTAAAAAAAGATATCAAAGGGAGTTATTTTGTAAAAGACAAAAATTTTGACGTG -ACTAAATTCATAAATTTTTTAAAAGAATATGGTGTTACTGCTGAATCATACAAAATAGATTATATGATGA -TTGCCGTTGGTGTCATTAAACAAATGAATATAGTAGTGCCATTATCCTCACTTTTAATCGTTTATTTTAT -TTATTATATTTTCGAAAAGAACATTAATTTCAAAGCGTATGCGATTAAGTATTTAAATGGTTTTACATTA -AGAAAAATAATTTTCGAAAATTTTTCAAAGAAATGCACGTATTGGGTAACGTTAATCATAACTCAAATTC -TTTTAACTACAAGTGTACTTTGGATATTAAATTACACGGGTAATTTAGATTTATTCATATTAAGATTAGT -TCTGCTTTCATGTCTTTTCATTTTAACGATTAGTGTTATTAATTTATGGACTTTCTTAATGTTACTAAAT -TTAAATATTGCCAATATGATTAAAGGTAAGCAGCACTTTAAAACAATTCGTTTTATTAATACAGTTTGTA -AAAGTGTTCTCTTAGTACTAATAGCTAGTGTAATGATAGAAAATACTAGTGTTATTAAAGATTTGAATAA -AATAAAAGAAACTGAGAAATATTGGAATGTATTAGATGATTATTACACGATTGAATTTGCACCTTATCAC -GAAACAAAACAAAGTTTGATTGATAATATGGTGCGATCAGAACAATTAGTAAAGGCTAGTGAAGCAGAAA -ATAATGCGATTTTATTCAAACCAAAGGGTGACTCCGTTGACAATGACAACTTTTCACCTGATGAGGGGAA -TGTAATATTAGTAAATAATCAGTTTTGGTCGATTTATCACAAGCAGTTTCAACCTGATATTCCAATAAAA -AATCAAAAAAATAATGTCGAAGTAATTATTCCACAAAAGTTTCATGCAATGCGTAATGAAATCAATCAAG -CATATCATTCATGGTTTGAATTTGTACAAAATAAAAATAATAAAGAGAGTAAGTTATCTATACAGTTTAT -CAACAAAAATGATTATCGAATTTTTACATTTGATGCACGAGATAGTCGCCATTTGTCATTTATAGAGGCG -CCAATCATTGTGAATGTTCAGGCATCAGATTTATCGAAGGATTTTTATTATGCCATGATCAGTCAAGGCG -GGTATTTATTCAAAAATTATGACGCGCTAGTAAAAAATATTGAAAAGTATCATCTTGATGGGGAAATCAG -TGGAATAACCAATTATAAAGATAGCGTGATGGAAATGTATCATGAAAACAATTTGAAATTAACAGTACTC -AACTTTTCACAAATCATTATCGCAATCATTTTAATAATTATTATTTTATTTGATGTGAAATATTATTTTG -AACAACATCGAAAATTACTCGTAATCAAAAAGCTATATGGTTATTCAACATTAAGAGCCAATTACCAATA -CTTATTAATAAATAATATAGTTGTTGTTTTTATTGGAATATTGACGAATGTAATTTTACATTCTCACTAT -ATAATGATGATATTTGCAACGATTATTGTCGTTCAAATATTATTGCAGATTTGCAGCCTATACTATCATG -GCCGACGTTTTAATGAAGTTATCAAGGAGTTTTAACTATGAAATATATCATTGCAATATTATTAGGATTA -ATCGTATCTATTACTATTGCTTTTACAATCATACATCATCCTATACTTGATCGTTTTAATCCTTTCTTAA -AAACGGAATATAGTTATGCCAAAGTGCCAAAAGGTACGCAACAATATGTTAATATTACGGCTTATAGTGA -AAGAGGGGAAAAGCTTGATTATAAATTAACATTTAATGGATTTTCTCCTAGTAGAACGTATGTCGAAATA -AAGCATAAAGGGCAATATGTTATATCAATCACATATGTTGAAAAAGATGATACACCAAAAGAGGTAAGAC -AAGAATGATAGAATTAAAAGATTTAACCATACAAAAAGGTAATACACATATTTTGAAGAAACTTAATTTG -AAATTTCAATGTGGAAAATCATATGCACTTATTGGTAAAAGTGGATGCGGTAAATCTACATTATTAAATA -CTATTGCTGGACTTGAAAAAACAGGAAAACAATATGTCTATTTTAATGGTCAATTAGAACAATTTAAATC -TAATTTTTACAGAGATAAATTAGGGTATTTATTTCAAAATTATGGATTAATCGTTAATCTGACAGTAAAT -GAAAATTTAGATATTGGATTAGCATATAAAAAAATAAGTAAGAAAGAAAAAGAACAATTAAAGATACGTT -ATATAGAACAGTTTGGTCTGTCAAACAGTTTAAAAAGAAAAGTTCATACGCTAAGTGGAGGTGAACAACA -ACGTGTCGCTTTAATTAGAATGATGTTAAAAGATCCGATTGTTATGTTAGCTGATGAACCAACGGGTGCG -TTAGATCCTAAAACAGGACAGATGATTATTCAATCATTATTTGATTTGATCGATGAAAATAAAGTGCTGA -TTTTAGCAACACATGATATGGCTATTGCAAATCAATGTGACGAAATAATAGATTTAGAACAGTATAGAAA -AGTAGCATCTATGTGATATCCAAAAGATAAAATTAAAAGCCAATCAATTGGGAATGTTAATTTCAACACT -CCATTTGATTGGCTTTTATAATGCGTTGCTATGTTATGAAAGTAACAACGGCAAACTGAAAAAAAACAAT -ATAATAATATTTAATACGAGTAGTAATAAATGTAATTGATTTTTTGTTTTAATGTAGCAAAAAACAATGA -CTAAAGATAGCAGCAATATCATGATTGCACCTGGGAAGAACCATAATGCTGAAGCTACATACCAAATCAT -TGGTAACGCCATAATAATAAAAGATATAAGACAAGAAAGGATACCAATAATATTATAAGTTCTAGTCAAA -ATTACACCTCCAATTTTCATTTTAAAATGACATGCAAAAAACAATCATTTTAAATACATCATACAATAAA -AATAAATTATATGATAGATGAATTTGAAATTAAATTGAATTGGCTTATCATTCGTAAACATTATTATGAC -GTAACAATTCTTATAAGTGGAACGAGTGTAATTATACCATCTGTATAGAGAGTCGTATCAATCGTAAAAT -TTAATCTATGTTGTTATTGATTTTTATACTACAAATACCGTTCTAACATTGTGTGAAATATTATTTTTCA -AAAATAAACGAAATTAAATATTTTAATTATTGTATATATAGTTGCTCTAAATGGTTGCGGAGTATAAAAT -ATATTTTGTTAAATATTTTATTAAGAGGTGCGCTATGGAAAAGGGGATTTTCAATTACGATAATGCGAAT -GTATTAAAATTAGATACTAATCAGTTAAATGAAAACATAAAAGTCATTGACGATATATTTAAAAATTATG -AGCAGATAGAGCCAACTATAGAAATCGAAAATGGAAATACAAAATTAAAATTAAATGGATATTTTATTGC -GTCAATTATAAGCCCATTAAATTTAAATAAACTTAATAATTTATATGTTGAAGAAGAATTTTATCATACA -TATAACGAATTAATTGTTAAATATACTGAGGTAAAGGAATAATTATAATGAAAAAAATATTTATGATGGT -ACATGAGTTAGATGTCAATAAAGGTGGTATGACCTCTTCGATGTTCAATAGAAGTAAAGAGTTTTATGAT -GCGGACATACCTGCTGATATTGTTACTTTCGATTACAAAGGAAACTATGATGAAATTATTAAAGCTTTGA -AAAAACAAGGTAAAATGGATCGAAGAACGAAAATGTATAATGTATTTGAGTATTTTAAACAAATTTCAAA -TAATAAACATTTTAAGTCTAATAAATTGTTATATAAACATATTTCAGAAAGACTAAAAAATACGATTGAA -ATTGAAGAGAGTAAAGGTATTTCAAGATATTTTGATATAACGACTGGTACATATATTGCCTACATTAGAA -AAAGTAAATCTGAAAAAGTGATTGATTTCTTTAAAGATAATAAACGAATTGAACGGTTTAGTTTTATAGA -TAATAAAGTGCATATGAAGGAAACATTTAATGTAGATAATAAAGTTTGTTATCAAGTATTTTATGATGAA -AAGGGATACCCATATATTTCAAGGAATATTAATGCTAATAATGGTGCTGTAGGTAAAACTTATGTGTTAG -TTAATAAAAAAGAATTTAAAAACAATTTAGCACTGTGTGTTTACTATTTAGAAAAACTAATAAAAGATTC -TAAAGATAGTATTATGATTTGTGATGGACCAGGGAGTTTTCCAAAAATGTTTAATACAAATCATAAAAAT -GCTCAAAAGTATGGCGTTATCCATGTTAATCATCATGAAAATTTCGATGATACGGGTGCATTTAAAAAAA -GTGAGAAATATATTATTGAGAATGCGAATAAAATTAACGGTGTAATTGTATTAACAGAGGCACAAAGATT -AGATATTCTTAATCAATTTGATGTAGAAAATATTTTCACTATTAGCAATTTTGTTAAGATACATAATGCT -CCAAAACATTTTCAAACTGAAAAAATCGTAGGTCATATTTCTAGAATGGTACCAACGAAGCGAATTGATT -TGCTTATTGAAGTGGCTGAGTTAGTCGTAAAAAAAGATAATGCTGTTAAATTTCATATATATGGAGAAGG -ATCTGTCAAAGATAAAATAGCTAAAATGATTGAAGATAAAATTTAGAAAGAAATGTTTTTCTTAAAGGAT -ATACAACAACTCCACAAAAATGCTTGGAAGATTTTAAATTAGTTGTTTCTACATCTCAATATGAAGGTCA -AGGGTTAAGTATGATAGAAGCAATGATTTCTAAAAGGCCTGTTGTTGCCTTTGACATCAAATACGGACCA -AGTGATTTTATAGAAGACAATAAAAATGGTTATTTAATAGAAAACCATAATATTAACGACATGGCTGATA -AAATACTAAAGCTTGTTAATAATGATGTTTTAGCAGAGGAGTTTGGTTCGAAAGCGAGAGAAAACATTAT -AGAAAAATATTCAACGGAATCAATATTAGAAAAATGGTTAAATCTTTTCAATAGCTAAATGAAAAAATCC -TAGGTATTCATGAGTACCTAGGATTTTTACGCATGATATATACAAAAAAAGAGAGGATAGTCCTCTCAAA -TAATAGTTAATAAAATTGTAGCCATTTCTTCCAGCTGTAACTACTAATACAAGCTAAGTTCATTACGATG -TGTATGATTTCAAATTCATAACCACTTACATATCCTCTTGTAAGTTTAAGTGTGAAGATTGAGCCTAACA -TAACACAAATATAAAAAACATTAACATAAGGCGTTAAAAAGCCGATAATAAGTGCTAAACCTCCAACAAC -CTCACCAATTGACATCAATACTGCGATGGTAGGTGGTAAACCTAAAGACCCTAAGAAGTGAATTGTTCCA -TCTAAATCTACAAATTTCAATGTGCCGTGTACTAAGAATGATGTTGCTAGCATCCATCTAATTAATAGCA -TACCTAATTTCATCATGTCACCTCCAACATACATTTTTTTCTTAAAACATAGTCCAAATTATATTTGTAA -AGAAGTGGAAAGTAAAGATTATTTATAAAAATAATTATTAAATATTTATTAAATGTTCTATTGTATTGAA -CAATTGTTGTAGAAAGATGTTTAAGTCATCAGTTACTTTTTGTATTTATAAATTAAGATTAGTACAGCAT -AGTGCAAAGTTTATAGGTAAATGAATTAATTATGGCATCAAAATATACGTATCTTGAACACTGTTGTGGA -GGCTTAGTAGTAGTGAGAACAAACAGAATACTACTTTAAGCGATATGATTAATATTAACCAGTGCGTCAT -CATCAAAATTAGAGGCCATTTGCTGTTTATAATACGAAGATTTGATAATCAACTATGATAAGAAAAAATA -ATGACCGTTTAAATATATTATAAGTTTATTAAATGATAAAATAATAATATAGTTCTCTATAAAAATTGTT -TGGAGGTAAATGTGTGAATAGGAATATCGTTAAATTAGTTGTGTTTATGCTAATCTTAGTTGTAGCAGTA -GCGGGTTGTGGTCAAAAAGATACTGAAGAGAAAACTGAAATGACGACGATAAAAGATGAATTAGGAACTG -AAAAAATTAAGAAAAATCCGAAACGTATTGTTGTATTAGAATATAGTTTTGCTGATTATTTAGCAGCATT -AGATATGAAACCTGTTGGTATTGCAGATGATGGTAGTACTAAAAATATAACAAAGTCAGTAAGAGATAAG -ATTGGGGCATATGAATCGGTTGGATCTAGACCGCAACCGAATATGGAAGTGATAAGTAAATTAAAACCGG -ATTTGATTATTGCAGATGTCAGCAGACATAAGAAAATCAAATCAGAATTGAGCAAAATTGCGCCGACAAT -CATGTTAGTTAGCGGTACGGGAGATTACAATGCAAATATTGAAGCATTTAAAACAGTCGCTAAAGCAGTT -GGCAAAGAGAAAGAAGGCGAAAAGCGTCTGGAAAAGCATAATAAAATATTAGCGGAGATTAGAAAGAAAA -TTGAACAGAGTACGTTAAAATCTGCATTTGCATTTGGTATCTCAAGAGCAGGTATGTTTATTAATAATGA -AGATACATTTATGGGACAATTCTTAATTAAAATGGGTATTCAACCTGAAGTCACAAAAGACAAAACTGCG -CATGTTGGTGAACGCAAGGGTGGCCCTTATATTTATTTAAATAATGAAGAGCTTGCCAATATCAATCCAA -AAGTTATGATTTTAGCTACGAATGGAAAAACAGATAAAAATAGAACGAAATTCATTGATCCTGCAGTTTG -GAAATCATTAAAAGCTGTGAAAGATAATAAAGTATATGATGTTGATCGAAATAAGTGGTTGCAATCAAGA -GGTATTATGGCAAGTGAAAGTATGGCAGAAGATTTAGAAAAAATTGCAGAAAAAGCAAAATAAAAATACA -GCGCCACTCGTAAATCATATAAGAGTGGCGCTGTATTTTTTATTTATGTTTATTATCTGTCGGATGTGAT -GATTTACCTGAAAGTTTATTTCGAATAAATTTAATTACATAACCGACAAGGATTGTTTTAACAATTCTTT -TAATGAATTGACGCATCGTTACATACCTCATTTCTCTTTATCTTATGTACTATATACCCATTCATATATG -CTTTTTAAACGTCATTGTCACAATTTAATTTTTAGGGAATATAATATAACCGTCTTTATCTGCTTTTTTA -GTAAAAATGACAATAATGGCATGTATTATTGAAATGATGGTAGGGATACCTGTCCAGAAAAATAATAAGT -GAAAAAGACCTTGTCCAAATTTATCAGCATAAAATTTATGAATACCTAAACCTCCAAGAAATAATGCAAC -AATAACATAAATGGCTTTATTGACTTTCATTTGTAAATCCTCCTTAATTATAATTCTACTTAAATTCGTT -GTGAAAACCAATCTTTCTAACTTTAGAATTTTCAAACTTTCTAAAATTATAAGTATATCTTTTTAAAATA -AGCTAGAATTTCTATATAATAAATGTTAATAACGTAAAAGGGAATGATGACATAGTGATACGTCAAGCAC -GTCCAGAGGACCGATTTGATATTGCGAAGTTAGTTTATATGGTTTGGGATGATATGGAATTAGAATTGGT -AAAGCATCTACCTAAAGACATAGTATTAGATGCAATTGAAAAAAGCTGTGTTGATGCAACATATAGAACT -TTTTATCAGCATGTTTTAGTTTATGAAATAGAAAATAAAGTAGCAGGTTGTATTATTAGCTATAGCGGTG -AAAATGAATTGAAATATGAAAAAGCATGGGAACAACTTGACTTGCCAGAAGAAATAAAACAATATGGCAC -GCCATTACCCGTAAAAGAAGCTAAAGACGATGAGTATTATATAGAAACAATTGCGACATTTGAAGCATAT -AGAGGTAGAGGTATCGCGACAAAGTTATTAACGTCATTACTTGAATCAAATACACATGTTAAATGGAGTT -TGAATTGCGATATTAATAACGAAGCAGCATTAAAGTTATATAAAAAAGTAGGCTTTATATCTGATGGACA -GATTGAATTATATAAGCACATGTATCATCATTTAATTGTTAAATAAAAAAACTCGACAGTTCGATGTAAG -TCGATTGCCGAGTAGAATCATCTTATATTAAATGCCTGCAAATAATGTACTAATATAAATACCTAGTGCA -TATAATAAACCGAAAAATGTATTTGTTTTACCAGCAGCAGCCATTGCTGGCATCATTGTAGGCGGTGTAT -CATTCTTCTTGAAACGTCTGATAACTTTAACAGGCATTGGGAATGATAACAACGCAAGTAAGTAAAATAA -TGAGCCACCAGGTTTAATAATGATCGTAAGTACAATAAATGCATAAGCGATAAAGTACATGATTGCCATA -AATGTTAAAGAAGCATTTTTACCTAATAGAATGGGTAAAGTTTTACGACCACTTGCTTTATCTTTGACAC -GGTCGCGAATATTGTTGGCCATATTAATTAAACCGATAGTGATTACTATAGGTACACTTAACCAAATTAC -ATAGCTTTGAATATTGCCAGTTTGAATAAAGAATGCAATAACGATAATAAACATACCCATAAATACGCCT -GAGAATAATTCACCGAAAGGCGTCCATGAAATAGGGAAAGGGCCACCTGTATATAGGTAACCAACAGCCA -TACATACTAATCCAACTGGTAATAACCAAAATGAAGAGTTAGCAGCTAAAAACAAACCTAATATCGCTGC -TAAGATGTAAAATGCAATGGCTAATCGTAGCACAAGCTCTGGGCTCATACCGTTGCGTACAATTGCACCA -CCAATGCCTACAGATTCATGATCATCAAGGCCTTTTTTATAATCATAGTATTCGTTAAACATATTAGTTG -CTGCTTGAATAAGTAAGCATGCTAGTAACATGGCAATGAATAGGCTGATTTTAATATGATCTTCGCTACC -AAGAAAATATATTTTAGATGCTGCTGTACCAACTAAAACGGGTACTACGGAAGCAGTTAATGTATGAGGA -CGCATTAAATGCCAATATTTCTTAACTGTAGAATATTGCTGATATTGATTACTCATTGAATACAAAACCT -CTTTAAATCATATTTTTTATAACAAAGATATTTTAATAGAAAGTAGCATAAAGGTCAATTGACGTGAAAA -ATTGCAAGATAAGTTTAAGCAATTCTTGTAACACAATTATCCAAAAATGATACAATATAATAATGAGTGA -AAAAAGACGAAGAAAGAAGTGAAATGGATGGCTACGGGCGTATTAGAGGACGATATTGTCAAAGAGATAT -ATGACAGCTCAAAGGAATGGGTTTCAGTTGAAGTGAAATTATCACAGTCACTAGACCCGAGCACATTATT -TCATCTCACTGACAATGAGGCAGGAGATCGCTTTTATATGCGTTTGAATGATAATCGAACGTCATATTTT -GGCTACAAAGCAATTCAATTATTCAAAAATAATTCTAAAAATAAACAATCTATTTTTAAAGACTGGGAAA -AATTAAAACATAACATCACATTTATACATCCGCAATCTGAGAAACATCATCTTCGAGTTGTTGGAGGGTT -CCAATTTTCAAGTCATAAATCAGATGATGAATGGCGAGAGTTTGGACTAAATCATTTTGTATTACCTGAA -GTTTTAATTTCAACAGATAATAATGGGACATTTTTAACTTATACAGTTAAAAGGGAATGTTTTACTGTTG -AGGCATTGAACGATTTAACGGATTTGTTCAACAATATATCGGATATAGATGTGGACGAGCAAATTGGGGA -AATTACTAGAAATGAAGATATTTATAAAGATGACTGGCGTCAACTTGTAGTAGAAGCAATAGAATCTATT -AATAATGAAGAAAAAATTGTACTAGCACGTAGACGGTTAATAAAGTTCGATAAAGATATCAGTATTCCAT -ATATTCTAAAGCAAGCATATTCTAAAGAAAAAAACAGTTATATATTCTTGTTAGAATCACAAGATTCTAT -ATTCTTTTCACAGACACCTGAACAATTAATAAAGGTCAATAATAAAATACTATCGACTAAAGCTGTAGCA -GGTACAATTAAACGTTCACAAGATGAGGACGAAGATACAAAAAATGTTGAAGCATTTTTAAAAGATAATA -AAAACTTAATCGAACATCGATTTGTTGTTGACAGTATTTTACATGATATTAAACCTTATATCACTGAATT -ACATTATGATAAGACGCCTAAAATTCTAAAAAATGATCATTTATATCACTTGTACACTGAAATAAAGGCG -CCACTGAAGGATGATTCGTATATTAGTTTAATTGATAATTTACATCCAACACCTGCTTTAGGTGGCTATC -CAAAAGAATTTGCGATGGATTTTATTGAACAGAAAGAATTTGGTACACGAGGATTATATGGTGCGCCGGT -TGGCTATATAGATATATATGATGATTGTGAATTTATTGTTGCAATTCGTTCAATGCTTATTAAGAAAGCA -CAAGCAACTTTATTTGCTGGGTGTGGCATTGTTAAAGATTCTGATCCAGATAGTGAATTGGCAGAAACGA -ACCTTAAGTTCACACCTATGATGAATGCATTAGGAGTCGATATGAATGGGAAATCATAAAGCAGCTTTAA -CGAAGCAAGTTTTTACATTTGCATCTGAGTTATATGCGTACGGCGTAAGGGAAGTAGTTATCAGTCCGGG -ATCACGCTCAACGCCACTTGCACTTGCATTTGAAGCACATCCAAATATTAAAACATGGATACACCCCGAT -GAGCGAAGTGCAGCGTTTTTTGCAGTGGGGTTAATTAAAGGCAGTGAAAGACCTGTCGCTATATTATGTA -CGTCAGGTACAGCAGCAGCGAATTATACGCCAGCAATTGCTGAAAGCCAAATTAGTAGAATTCCATTAAT -CGTTTTAACAAGTGACCGTCCGCATGAATTAAGAAGTGTAGGCGCACCACAAGCGATTAATCAAGTAAAT -ATGTTTAATAATTATGTAAGTTATGAGTTCGATATGCCGATTGCGGATGATAGTAAAGAGACCATTGATG -CAATTTATTATCAAATGCAAATTGCTAGTCAATATTTATATGGACCACATAAAGGGCCGATTCATTTTAA -CTTGCCATTTAGAGATCCGTTAACACCTGATTTGAATGCAACAGAATTGTTAACTTCTGAGATGAAGATT -TTACCGCACTATCAAAAAAGTATAGATGCATCGGCATTAAGACACATTTTAAATAAGAAAAAAGGTTTAA -TTATTGTAGGAGATATGCAGCATCAAGAAGTTGATCAAATACTGACGTATTCAACGATATATGATTTGCC -TATTTTAGCTGATCCTTTAAGTCATTTAAGAAAATTTGATCATCCGAATGTTATCTGTACATATGATTTG -CTGTTTAGAAGCGGCTTAGACTTAAAAGTGGATTTCGTAATTCGTGTTGGGAAACCAGTGATTTCTAAAA -AATTGAATCAATGGTTAAAGAAAACTGATGCATTTCAAATATTAGTGCAAAACAATGATAAGATTGATGT -CTTTCCAATAGCACCAGATATTTCATATGAGATTTCTGCGAATGATTTCTTTAGGTCATTAATGGAAGAC -ACGACAGTTAATCGAGTAAGTTGGTTAGAAAAATGGCAACGCATAGAGAAAAAAGGGCGTAAAGAAATTA -AATGTTATTTGGAACAAGCTACAGATGAGAGTGCATTCGTTGGTGAATTGATTAAGAAAACATCTGAAAA -AGATGCATTATTTATTAGTAATAGTATGCCAATCAGAGATGTAGATAACTTGTTATTGAATAAAAATATA -GATGTCTATGCGAATCGTGGTGCAAATGGTATTGATGGTATCGTATCAACTGCACTTGGTATGGCTGTCC -ATAAACGAGTTACATTATTGATAGGTGATTTGTCATTTTATCATGATATGAATGGACTATTAATGTCAAA -ATTAAATAATATTCAGATGAATATTGTATTATTGAACAACGATGGTGGCGGTATTTTTTCATATTTACCA -CAAAAAGAAAGTGCAACCGACTATTTTGAACGGTTGTTTGGCACACCGACGGGATTGGATTTCGAGTATA -CAGCTAAGTTATATCAATTCGATTTTAAACGTTTTAACAATGTTTCAGAATTTAAAAATGCCACATTGTT -ATCTGAAACTTCGACGATTTATGAATTGATAACGAATCGCGAAGATAACTTTAAACAGCATCAAATTTTA -TATCAGAAATTGAGTGAAATGATTCATGACACATTATAATTACTATGAAGCAAACGTTGAGACCAATCAA -GTTTTAGTATTTCTGCATGGATTTCTTAGCGACAGTCGTACTTATCATAATCACATCGATAAATTTACTG -ATAACTATCATGTCATCACTATAGACTTACCAGGACATGGCGAAGATCAGTCTTCAATGGATGAAACGTG -GAATTTTGATTATATTACGACGTTGTTAGACCGAATTTTAGATAAATATAAAGATAAATCAATAACATTG -TTTGGATATTCAATGGGTGGGCGTGTTGCATTATATTATGCAATTAATGGTCATATCCCTATATCTAATT -TGATATTAGAAAGTACGTCACCAGGTATTAAAGAAGAAGCAAATCAATTGGAACGTCGCCTTGTTGATGA -AGCGCGTGCTAAAGTATTAGACATAGCAGGTATTGAATTATTTGTTAATGATTGGGAAAAGTTGCCATTA -TTTCAATCGCAACTAGAATTACCAGTTGAAATACAACATCAAATAAGACAACAACGATTGTCTCAATCGC -CACAGAAAATGGCCAAAGCATTAAGAGATTATGGTACAGGTCAAATGCCAAACTTATGGCCGCGCCTGAT -AGAAATTAAAGTACCAACATTAATATTAGCTGGAGAATATGATGAAAAATTTGTACAGATTGCGAAAAAA -ATGGCAAATTTAATTCCTAATAGTAAATGTAAATTAATTTCTGCTACAGGTCATACAATTCATGTGGAAG -ATAGTGATGAATTTGATACAATGATATTAGGATTTTTAAAGGAGGAGCAAAATGACTAACAGACAATGGG -AAACACTTAGAGAATATGATGAAATCAAATATGAATTTTACGAAGGGATTGCTAAGGTAACAATAAATCG -CCCTGAAGTACGCAATGCGTTTACACCTAAAACAGTTGCTGAAATGATTGACGCATTTTCACGTGCACGT -GATGATCAAAACGTTTCAGTTATCGTATTAACTGGGGAAGGTGATTTAGCATTCTGTTCTGGTGGTGACC -AGAAGAAACGTGGACATGGTGGTTATGTAGGTGAAGACCAAATCCCTCGCTTAAATGTATTAGATTTACA -GCGTTTAATTCGTATTATTCCAAAACCAGTTATCGCGATGGTAAAAGGTTATGCTGTAGGTGGCGGTAAT -GTACTAAATGTTGTTTGTGACTTAACGATTGCTGCTGATAATGCTATTTTTGGACAAACTGGTCCTAAAG -TAGGTTCATTTGATGCGGGTTATGGTTCAGGATATTTAGCACGTATCGTTGGACATAAGAAAGCACGTGA -AATCTGGTACTTATGTCGTCAATACAATGCACAAGAAGCTTTAGATATGGGCCTAGTAAATACAGTGGTA -CCTTTGGAAAAAGTTGAAGATGAAACTGTGCAATGGTGTAAAGAGATTATGAAACACTCACCAACTGCTT -TACGATTCCTTAAAGCAGCTATGAATGCTGACACAGATGGTTTAGCTGGTTTACAACAAATGGCTGGGGA -TGCAACATTGCTTTATTACACAACAGATGAAGCGAAAGAAGGCCGTGATGCGTTTAAAGAAAAACGTGAT -CCTGACTTCGATCAATTCCCTAAATTCCCATAAGTTATTTTGAATATGATATTAAGTCACTTGCGTCGTT -TATTAGCGACGATGGGTGGCTTTTTTATTTTATAAGTATTTAAAAGGGCATTTTTATTAATTATCATAAA -GATAAGTTAGTTTGAGAAAAATTAATAGAGAAAGAATAAATGTTAAAGATTATTACAATGAAAAAACGAG -CTGGTGAGAAATTGAATTCTCGCCAACCCGCTTTATGAAGTGAAATCATTTAAATTAGTTATACTAAGCG -CTCATAAACAATTGGTCGCGAAGTGCCAATACCTTGTTTGGATGACGTTTGCATGAGGATATGCTGTGTA -TCATCATAATCAAGAATATAAATGATTTCTTCATTATCAAAAGATGAAAATTTAATGCGTTGATGTGCCG -TATCTATAAAAAGAATATGATATTGATTGTGACTTGTATCATCGCCATGACGTATACAAATTGATTTTTG -TAATTGATGATTACTCCAATTACCAATGAATAAATTGATATTGGTTTGTTCTAGATGTGTGAGTTTGGTT -GTGTCGTAAACTAAATTTATAAATTGTAGTTGATACATAGTTTTACCTGCCTTTAATCAATATCTATATT -ACTTTTTAGTAACCTATCATTGAACCATACCAGTTATAATCACGATTGAATGATAAATGTAATAGGCTTG -AATCTGCATCTTGGATTGATAATTCTGTATCCCAAGGATTCCAGTAAATAAGTTTTTCTTGGTCATTAAT -TTTAGCATTAGCAACAACTGCTAGGGCATGTCCTAAATGTGGGTCATTAGGATTTTGAGATACACTTTGT -GCAAGAATCATAATACCCACATTATCTTTTGTAAGTTGATCAACTTGATTATATGATGGTACGCCTTCTT -GATAATGAATATCTCTACCTTGTGATTTACCGTATTCAATCATTTGATTAGGGAATGTTGCACAATTAGG -AAGGTCTTGCTCACTTACTTCAGGGTATAATGTACGCATAATATCATGTGCATTATAAGTGTCTGTATTT -TTAGTTGCATTTAATAACGCTGCCATACTGAATCCTGCACACCATGAGTTATCGAATTGTTGTTCTCTAA -TTTTGAAGTTTTTTAGTGTGTTTTCATATTGAACTTGATCTTCTTGTATCGCTTCGTTTTCTTCAACTTT -TGTAGGTGTTACTGTAGTTTTTAGCTCTTGCTTTAATTGTGGTGAAACTGTTTTAGCACTTTCTTTTTCT -TTGATGTTATTAGCTAGTGGCGTAGCTTTTACTAATCTAACTTTGCCATCTTCTTCAAAATAAAATCCTT -TTTCATCAGTAAGAACAGTGATATTTGAATTTTTATCTTTAATTTGGTCTAAATCTTTAGCGATGAAGTT -TGAAATTTTAACACTGTAATTCATGTCTTCTTTTGATTTGTTTAAATCATCTTTATTTTTAGGGCTAAGT -GTTAAAGTATAAACAATTTTACCGTCTTTTATAACTGGATAATAGTAACTATTATCTTCTTCGCCATTAA -ATTTATAAATTTTAAATGCTTCACCAAGTTCGTATTTACCAGTTTTTGCATTACTTTGTTTATCTAATGC -TTTAGCATAACCAGCAAATTGTTGTTGTGCTAGATCTTTTACTTTTTGAGGTACTTTGTCACTCTTAACA -TTAATTTCTAGCTGTTTAGAGTGTGAATCGGCTTTGGCTTTATTGTTATTAGCAAATGCGCCTAGTGATA -AAATAAGCATTGAAACCATTATGATGCTTATAATATTGAATACTCTAGTTTTACATGAACTATTCATATA -ATACCCTCCATTTAAGTCAAAATATTTTGCGTTGTTAAGTTTTTGCTTCTATATACTAAATCCAAATTAA -GATGAAGTTTATGCAGCGTCAGGGTTGTCTGAATTATTGTTATCGCCATTGTCCGGGTTATTTGGGTTGT -TAGGTTGGTCAGGGTTATTTGGATTGTCCGGGTTGTTAGGGTTATCAGGATTATTAGGATTGTCTGGATT -ATCAGGGTTGTTAGGGTTATCAGGGTTGTTAGGATTGTCCGGATTATTTGGATTGTCTGGATTATCAGGG -TTGTTAGGGTGGTCATCATTTGCGAAATTGATATCTTCAATATTTTGTTTTAAGAAGTTGCGTACATTTT -CATTAATAAATACTGCACCGTTAAATTGATTTGGAACGCCACCCCAATGAATGCCAATGACTTCATTTTT -TTCATTAAATACAGGTGAACCTGAGTTACCACCAGTTGTACTTAAATCATATTGCATTGCTTCACCTTTT -AAGTACGTTATTTTTCCTTTACTTTCCCACATTGTTGCGACAGGTTTATCACCAGGATATCCTGTTACAG -TAATATTTTGGTTAACTTGTGTTTCAGCATTATTACTCATTGTTGCTGGTTTAACTACTTCGCCAATATG -TTTGTTTTGCTCATTAGGGGAGAATTTAACGATTGCTAAATCACCTTCGCCTGAATATTTAGTGATTTGT -TCAGCAGTGAAACCACCATTAGGATAATTGTCTTGGTTAATTGCAGAAGCGAATGCTTTTAAAGCATGAG -GATCACCGTGCGTAGCATCTACGATGTGTTTATTTGTTAAAAGTGTATCTTTACCTACAACTACACCAGA -AGCAATAAATGTACCAGTAGGTGCTTCAACTTGAATATAAGTAACAGGTGCATAATGACCATTCGTTGTA -TCTGTGATTTGGTGACGATCGTTATTTGGTAATATAACATTAGCGCGTTCACGTTGTTCTAATGGTTTAA -GGTTACCGCCTTTTTGAATCTTAGGTGTTTGCTGTTTGTCTGTCTGCGTTTGTTGTGGATGATTGTCCAT -AGCTTTTGAAGATAACGCATTTGCTGCTGGAGAACTCACAAGTGTCGCTGTTGTCAAAGTTGCAACGAAT -AAAGAACTAACTTTTAAAAATTTACCTTTCATCTAAAAACCTCCAAAAAATTTATTTACAAGTTAAATAT -AACACTAAAAATTTTTAAGTCAATAAGAATATATAAATAAATTAAAAAGTTTCTGTAAAGATTAGAGTTT -ACAAAAACATTAAGAGAATTAAAATTGAATTGTATTATACTTTATTCGATTGTATTAAATTGGTAAGGTC -GTCAATTGTTTGCATTTATCTAAAAGAATAAATAAGAAAGGAATTGAGAGCGAAGAGAAAGTATTTGTTT -ATAATAATAAATAGTAACGTTTGAATAATAATTGTTTGGTCAAAGGTAGATTAATATGAATGCTGATATA -TTATTTGAGTGCTTAAGTTTCGAAGAACAATTATCAGTTAGCATATTAAAAGCTTTTGATAGAATCATTT -TGAGTGAGGTGTTTAAAGGAGAGGAATATAACTCGGTAGTATTTACAGTCTCTTTAGAGTATTATTTAAA -ACATATAGAATATAAAAAACTGAACGTACTATGAATTTCGTTCACGACGTCCAGTTCAACATATCATTTT -TATTTAGTATTTAAATATTTAGCAAGTCTCTTCATACCTTCTTTTAAAACATCCATTTCATAAGCATAGG -AAATCCTCACAAATCCTTTACCGAATTCTGTAAAGGATGAGCCTGGAACGATTGCTAAATGTGTTGATTC -AAGTAAATCGACACAAAATTCGAAATCGTCATCGGTGATATGCTTAATATTTGGGAAAATATAAAACGCG -CCTTCAGGTTGAGCGGTAATCTCAAAACCTAATTTAGTTAATTCAGATACTAAATAATTTCTTCGTTCTA -CATAAGCTTCATTCATATATTTAGGAGCTTCTAATCCTTCGTTAAGTGCTGTTATACATGCTATTTGAGC -TGGAACATTGGCACAAATACAATTATAGGCGTGCATAAATGTTAATTTATCAATCAAATATTGAGGTCCT -AATAGAAAACCAATTCTTATTCCTGTTGCTGAGTGTGATTTACTTAAACCACCAATTAATATTAATTGAT -CACGAATGTCTTCAAATTCAGCGAAGGATACATGTTTACCACTAAATGTATTTTCAGCATAAATCTCATC -GCTAATAATAAATATCGGATATTTTTTTAATACATTTACGATATTTAAAACTTCATTTCTTTTTAAAACT -ACGCCAGTTGGATTAGTCGGATAATTTAACAAGACAGCTTTTGTCTTTGGAGAAATATGACTTTCTAACG -CATCAGGTGTAATTTTGAATTGTGTTGCTGTTGTATCAATATAAATTGGTTTACCACCTAGTACTTCGAT -GAGTGGTATGTAGCCTGCATAAATTGGTCCCGGTATTATAATTTCATCTCCAGGCTCTATGATAGAACGT -AACGTTGTGTCTATTGCTTCACTTGCTCCATTTGTCACAATAATTTCTTCAGGATCATAGGAAAAATGAT -AACGATTTTTGAAGTATTGACTAATAGCTTCGCGAGTTTCTAATAAGCCTTTATTGTGAGAGTAAGATGT -CTTGTCATTGTTAATAGCATCTATATATGCCTTTTTCACAACATCAGGCATAGGGAAGTCTGGTTGGCCA -ATAGTTAAATTAACACAATCATCCAAATTATTCATACGATTTGAAAATTGGCGAATACTTGGTGCTCTTA -AAAATTTAGAATTAGAGTTTAAAGAAAGTTTCATCGTGACACCTCAAATATAAATCAAATATTGTCTAAA -AATTTAGAAATTAATAATATCATAACATACTTTTAAAGCAAAAAAGGGTAAATTACTTAAGCTTTATTTG -AAAAATGAAAAATGTCTAAATACACTGTAGTAACTACTTTTCAAAATGAATGAAGTGGTTACAGTTAATG -TACTTAGACATTATATAATTATGAGTCTTTAAACTGTGATGGTCTTTGTAAATTAATTATTGGATTTGTC -CATTTACAAACAAAGTTTGTAGATAATACATATACGATGATTACAGATATACTTATTAAATAAAGATACG -TCATTAATGATATAGGATTATCGAATGGGTACCATTCAAATCCTCTAACAATGCCAATAATTAAACCATG -TAATAAATATACGTATAGCGTACGACTGCCAATATAAGTATATAATTTTTTCTTTGTTGACATTAAATTT -AGAAACGCAGTCATTGCGATTAATATAATTCCATATAATATAAGTCGTTTAAAAGGACTGAATACACTCT -GTCCTTCATTTTCAAGTGAAGTATATGGTGAACTTCCTAATAACCAATCTGCATTGATAGGATGAATCAC -GTAAATGATAAAAAATAAAATAAACGTAATGATAGATACTGGTATTAGTTTTTTATTTTTAAAAATAGCC -GTATGTTTTTTGGTGAAAATGTAGCCTAGGTAAAATATTGGGAAAAATACGATTGTCCTTGAAATGCTTA -AGTAGCTATCGATGTTATCTGAAAAACCTGCTCCAATAGATATAATAATTGAAACTGATAGCACTTTATA -TGGATTAAATCTTCTAACTATTACTAAAATGACATGAAAGAAAAATAGCGTGATCAAAAACCATAACGCA -AATACTGGGTTAAAAGGATCAAGTTGTAATTCGTCACTTTTACCTGTTAAGAAATAATATATTGAAAAGA -ATGCAAAAAATATCATATAAGGTACTATCAAGCGTTTTGAAATTTTTTCTAAATAGTATGGTTTATCAAT -ATTTTTCGCGAAATAACCAGATATAAACAAAAATGTTGGCATATGGAAACTATAAATAACTAGGTATAAT -GCTGATAAATATTTATCGCCACTAGTGTAGGGTTGTAACATATGTCCAAATACGACTAATAATATTAAAA -TTGCTCTTGCGTTGTCAAAAAAAATAATCTCTCTCTTTTAATGAAGTCATATTTTATCTCCTTTATGTCC -ATAAGACTCTTACTAATTTATTATATTTTGTATTAGTTATGCAACAAATTTGTCTATTGTGTCGAATAGT -ATTGTAAAAATTATAAAAAAAGCATATAATATTATAAATAATATGTAGTGGAGTAGAACAACATGTATAA -ACAACTTGAAAAACTTATTACACTGACTAACAATGACTTAAACTTAGTGAATAGAAGATTTGGACAACGC -ACGGATATCACATCTGAACAGCTAGAACTTCTCCGTATTTTATTTAATTACGATCGCTTATCACAGTATG -ATTTGACGATGAAGATTAGTAGGGAACAATCTATAGTTTCAAGGTGGATTAAGAAATTAGTTTTGAAAGG -GTACATCACAAGTCAACAATCTAGCGAAGATTTAAGATGTAAAGAATTAATTTTGACTGATCAAGCACGT -ACATTAATTTCACAAATAAATAATGCACGTTGCGAATTGATTGAAGCAAGATGTCAATGTTTATCGGAAG -TCGAATTAGACAATTTAAATCAATTACTTGATAAGTTAAATCAACGACGCATATCGTTGTAACACGGCAA -TAGCAAACACATAATTTAGTGTCATTGTGCACACAACAAAAATTGAATCATGAATTACAAGCAAAAGTAG -CGGTGATTGTTAAAATTGATGGTAAACAATCACCGCTATTTTTGCTTGTGTATGTATAAAAAAGGGATCA -AAGGTCATCCCCCATGATTGATAGTGGGGGGATGACTTTTGATCCTATGTTCATGTTGCTTATTTATATT -GTGGGATGTCGAAGTATTTGCCGACTTCGCCAATTTTATCATAGTAGCCTTTGATGATTTTAGCATTGAT -GTTAGCCCAATCTACATCTGTAGCATATTGGTGTGTTCCTGGATGTGCAGGATTCCATCTCATTTTGTAA -AGCGTATTTTGACCAGCTTTAACATATGAGTTGCCGATGAATTTAGCACCACCAACGATTGCTTTTGATA -CTGTGTCCCAACCAGCTTGTTTAGCATATTTAATACCTTCACGTAAAGGATCGTTATCATATGCAGCAAT -ACCAAATACGTTATGGTATTTCGTGTTAGAGTTAGTTACAACTTTGTTGTTCACTACATCTGCACCTTTT -GCTAATTGAGAAGTACCGTTACCTGTTTCTAATAGGGCATGTGAGATAAGATAAACTTCATTAATGCCAT -ACATTTGAGCAGCTTTGTTAAATGCAGCACCTTGGTTTTCTAATACACCTTTACCTTTTAAGAATTGATT -AATTTTATCAATAGAAATATTTTGTGGTTGGTCTAAGCGTAAGAATTGATATTTTAATGCTGGATCTTGA -GCTAAACGCTTCGTATCCATTGCATGCTTAACATCATTAAAGTTAGCATCTGTCCACTTACCTGGTACAC -GTTGTACTTGTGGTTTATATTGTAAACCAGCTTGTATTTGAGCAACTTGGTTTAATGTCATACCTATTTG -ATTATACTTAATTAATTCTTTAGCTAAATCAGTTGATTTAATCCATGCTAATTTACCGTTAGATAATTTA -CCATAGTACCAAGTTTGTCCATTAATGACTTGTTCTTTAACAACTGCGAATGGTTGTTCATTAAATGCTT -TTAATGAGTATTTAGCTGTATCAGAATTTGGTGTTACATAGTAATAACCATTACCATTTTTAATTACATA -AGTGTAGTTATAATCTTTGGCAGCTGATGTAGTTGGTTTAACAGCAGTTGGTGCAGTTAAATCTTTTGAA -TTTACCCAACCAGTGCGGTTATTAATAGTACCGTATAAATAAACATCTTTGCCTACAGATACTTGTTTCG -TTGCATTAAATGTACCTTGAGCAATGTTATTGCCTGTTAAAATGACTTGGTTTTTAGTACCCCAAGGAAC -CATTGATAAGCCGTTATTTGATCTGTTAACAGTATATTTTTGAGTCGTTTTAACTTCTTTGCCTAAGTTT -TGAACATTTAAGTCTTTTACATTGAACCAACCTAATGGAATATTATGACTTGTATTATTTAATAATACGT -ATGTTTCATTACCATGTGCACGTTCTTTTGTTACATAGAATGTACGATCCGCATATTTTGCACCGTTTTT -CGCTGTTTTTTCATAAACAGAAGCACGAATACCAGTGTTGTTTGGTTTAACTTGAGCAATTTTGCTAACT -GTTTGAGTCGTTTGAGGTTTAGTAACAGCATAAGCTTTTACAGCAGTTTTTGGTTGTGCTACAGCTTTTT -TAGGTGCAGCAGGTACAGCTAAATATGCTTTACTTATCCAACCAGATTTACCATTTACAGTTCCATATAA -ATAGATAGATTTATCAATTTGTTGTTGCTTAGTCGCTTTAAAAGTTTGGTTACCTGTACCAGATACCGCA -CCAGCTTCTTGTTTATAAGTACCCCAAGGTACTGAATATAATTTAGTGCCTGGTTTTACTGTATAAGTTT -GCATTACATTTACAGGTGATTTTGCATTGTTATAAATAACGTCACCTTGTTTAACCCAACCAATTAAAGT -TGGACTATTGTAATCTTTAACTAAGTAGAATTTGTTTCCACCTAGACTTGCTTCTTTTGTTACAGCAAAT -GTTTTTTGAACTTCTTTCGTTGGCTTACCAGTTTTGTCATAAACTGTAGTGAATAAGCCATTGTTTTTAG -CATTAATTTGAGCAACACCGTTTAATGATGAAACTGTTAATTTATTATTTGTTGTAGGTGTTGATGGCTT -AGGTGTTGGTGTAGGCGTAGGTTTAGCAGTATCAACTAAATATGCTTTACTTACCCAACCAGATTTACCA -TTCACAGAGCCATATAAATAAATTGATTTATCAATTTGTTGTTGCTTTGAAGCCTTAAATGTTTGGTTTC -CAGAACCAGACACGCTACCAGCAACTTGTTTAGATGTACCCCAAGGTACTGTATAAAGTTTCGTACCAGG -TTTGATTGAATATGATTGATTTACATTTACAGGTGATTTAGCTGTGTTGTAAACCACATCGCCTTCTTTA -ACCCAACCAAATTTATTACCAGAATTGTAATCTTGAACAAGATAGAATTTTTGATTACCTAATGTAGCTG -TTTTAGATACAGCAAATGTTTTTTGAACTTCATTAGTTGCTTTACCAGTTTTGTCGTAAACAGTAGTATA -TAAACCACTATTTGTAGGTTTGATTTGTGCGACACCATTATTAGCAGCAACTGTTAATTTACCAGTTGAT -GGTGTTGATGGTTTCGACGGTGTTGATGGTTTTGATGGTGTAGTAGGGGTAGTTGTAGATTGCGTACCCC -ATGGCGCCACTTTACCCATTTTTATTAAATATTTTTCATTAATTAAGTCATATAGTTGATCATAACTATA -ATTATGACTTCTTAAATATCCATGTGGATCGGCATGGTCCGTACCACCTAAATATTTACTTACAGCGTAG -TGAGTCCATACTGTACCATTTCCATCATATTCAGCACTATCAGGTTTTAAACCATAATATTGTAATTGTG -TAGCTGCATAGTCAGCATAGTTATTCATTGAACGTGCAAATGAAGCATAATCGTGTGTGTGCACGATTTC -AACATTGATGAATCTAGGGTTACCGACTGCACCGACACCCCAAGATAAGTAATCCGTTGGTGCTGTTTCG -ATTATACGATCCCCATCAACAAATGCATGTACGAATGCGTTTTGATAGTTGTTTTTCATATAACTAATTT -CGCCATTTATCGTCGAACGATCATTAGCTGTATCATGAACAACGATACCTTCAGGACGACCTACACCGTT -ACGGTATGCGTATTTAGGGAAGTAAGATGTATAATCTTCCTCTATCTTAGGTGCTTTTAAATTATTTTTA -CGAATGTAATCATTAATTGATGAGTTTACTTGCGGTTTATATTTTGGCAAACTCGTTTTAGGTGCTGCAG -CGGCTGATCTTGGTTGTGCTGAAGCACTAAAAGTAGTTACTTTTGGTGTAGCTTCAGTTTTAGCTTTAGG -TGCAACAGGTGTTGCTTTTGGTGCTGCGGCTTTATATTGCGTTTCAAGAGCAGCAGGTTTAGCAGCTGAT -TTAATTAATTCTGGATTAATTTGATTTTCTGAATTATCATCTTCATCATCAACTAAACTATATCCAGCAC -TTGTAACATTATTGTTCGTTTTAGGTGCTGTTGTGTTTGTTGACTTTGTAACAGGTTTCGCATTATTTGA -TGTAGTTGATTGAGTCGCACGAGTGTCACCATTTACTTGTGTAGTATCAACCTTTTGATTTACTTGAGCA -TTGCCTGTTTTATTCGCTGCTTTTGGTTGGACAATAGCAGGGTCTTGATATACTTGAGTGCCAGAAATGT -TTTGCGTTGGATTTTTTACCTCAGCTTTTGCTTGTTCAGTAGTTGCTTTAACTTTATTACTATCTAAAAC -ATTTTTATTAGTAGTTTGATCTTGTGTCGTCTCAGCTGCTTGAACTTGATGTGCAGTGACTGCTGAACCT -ACAAGCGTTAATGCAACCATTGATGGTAGTTTGTAATTAAATTTTTTCGCCATTCTATTTATTACTCCTA -ACATTTATTAATTATTAATCTCATTATAGTACCTGTTTTATACACCTGTGCGTATTTAACCAATTTGTAA -TATACTCTTAATTTATATTTTCACTGTAAAAAAATGAAAAAAATTTTGAATCTCAATGGTGACGTGACAA -ATCAAATAGAATTGATGTCAATTTAAGAATTGGTTTATTACAAATGTTTCTATAATAGATACAACTTTTT -TTAATTAAGCGAGGTCAACTTTTTTGTCATTTCAATATGCTCGATGCCTTCCTCAAGAAATATATTACCT -CTCATTTTAAAATTTAAACTTTCATAGAATGGGATTGCATGACATTGGGCATTCATGGTAGCTACGTAAA -AACCTTCATCTTTAGCTAATGATTCTACAGCTTGCATAAGCATTTTACCCATGCCTTGTCCGCGATGTGA -TTTTATCACAGCCACTCGTTCTATTTTGACAGTTGTTTCATTGATAGGACGTATACGAGCTGTGGCAACT -GGCTGTCCATTATCATATCCAATGAGGTGAATAGATTCAGATTCATATTCATCAATTTCACTTTCCTCTG -GGACGCCTTGTTCTTCTACAAACACTTTCTTTCTTATATAAAAGCAATCTTCTAACATCTCTGGATCAAT -CACTTTTGAAAACATAAAATCCCTCCATATCCTAACAAAATCATTTACATTTAATTTACTAATAATAACA -TAGAATAACGATTGTTATTTTCCACAAAAATAATTAGACATAAAAAAGCTATAAAGATGATTCATAGGAA -CCATCTTTATAGCTAGATAGAGTGTATTTGTTATAATGCTTCTTTTCTAATAATTGCTGTATATTGCCAA -AAGATTCGCATTTGAGCAATATTCCAATTATTCATTCCCATTGTAAACCCAGAAGGTTTAAAGATATTTA -CATCTGTCACTTCTAAAGCTGCTGCGACTAAATATTGTAATGGAATACTAAGTGATTTCATTGTTTCAGT -AATGCCATTTTCATCATATACCCATGAAAATGGTAACTCTGATTCGAAAACATCAACACTATTGAAAATT -TCAGGTAGGGCTAAAATATAACATGCACCATCTACAATAGGATTCTCGATACTATTTTTGTAATAAATTA -GGAGTGCTTCATAGTTTTCTCGATGCTCATGATTGACGTAAAAAAATTCACTTCTAAAATGAGCCATATC -TTGGCTATGAATAATTTGTTGTTCTAACATATTAAACATCCCATTTATATTTGCAATCTTTTCGTATGTT -TTTCTACTCATGTATGATGCTCCTTTCATAAATAGTAAATGTTAATCGTCATATAATATTAGTTTACAAC -ACCATTTTGGTTATTTGAAGCTTGTGGCGTTTGTTGAGTGCCACCTTGATTTTGATTTAAGTTTTGATCT -GTAGCAGGTTGTTGTTGATTATTGACGCTATTGTTGTTATTACTATTATTACTGTCATCAGTATTATTCG -AAGATTTATCTTTATCAGTGGTATCGTTTTGTTCTTTTCTTAATAAACTACTATCTAAAGGTGTTAAAGG -TATGAGAGAACCATAATGATTAATGACACGTTGATCTAAGAAATCATTTTTATCATTAATAGGTGATAAT -TCTAAGTCTTTACGAAGTAAGTTTGCATATTTTTGAATGCTTTCTACACTTGGATGATAATAGTAAATAC -CATTTAACATATCATCTTTACCTTTTAATTGCGCAGTTTTAATTTCAACATCATTTGTTAAGTACATTTT -TGCTAAAGCTTTAATTTCAGAGTTAGTTAAATTATGCTTTGCATTTTTACCTACAATTTGAATCACGTTA -TCAAGTTTATCAATAGAATCAACTTCCTGTGCTTTTTGGAATAAAATCTTAATTAATTCCATTTGACGTT -GTCCACGTTTCAAGTCTGAATCATGATGTCTAGTTCTAGCAACTGCTAAAGCCTCATCACCATTTAATTT -TTGGTACCCTTTTTTAATTTTAATCTTACCAGTATCATCTGTGTTTGGCTCATTTAAATCATATGGTACA -TCATAGTATATGCCACCAAGTTCATTTACAGCTTCTACAAAGGCCTTCATATTAACGCGTACATAGTAAT -CAACAGGAACATTCATCGTTGCTTCAACAGAGTCCATTGCTGCAATTGGACCACCATATGCATGTGCATG -GGTAATCTTATCGTAATAGCCGACTTTAGGAATGTAGCTGATTGTATCACGAGGAATACTAAGCATTCGA -ATTTGGTGTTTAGATTGATTAAAAGTAGTTAAAATCATAGCGTCTGATCTAGAGTGTTCAGCATCTTGGC -CTTTTTTTCTTCTTCCGTCATTATCATCGATACCTAAGAAGAGAATAGAGATAGGTTGTTCTTCAGGATT -GACTTTATTGTCTCGTAAATTTGATTGACGATTAGCATTTTTACTATCTTGAGAAGATTCAAATGCATCT -TGAGACGTTTTAAAAAGTAACGTAGCGAAGACAATTGGAACAACAATAAGAACCAATGCTAGAAGGATCA -AAAAGTATTTTAAAAATTTATTCATGATTGATGCTCCTATATTAAATTTTTGTTAAATCATAATCATAAT -TTTAAAATATAATTAGTTGAACGATATTTATACAACTTCATTACTAATACATTATAGCCTTAAATTGTAG -TACTTTATAGTAAAAAATACAAATGTTATGTCAAAGTTCCTTGTAATTTGAATGTTTTGTTAAAATCAAA -AAGCATTTTAAAAAATATAATGCGACTTTAGTATGATGTCTTAAAAAAATTAAAGGGGTAATATAAATTT -GAGTGATTTATACAATGTGATAAGGTATAATTAAATTTGTTGTAATAAGAGCTTATATGAAGAAAATATT -ACTAAGTAGTATAACGTATAAGTGGGTGACAGATGAAATTGTAAGTTATATTATAACGAAGTTAAGTTTA -TTGTTTTAATTATTTAATTTGAATACAATGAGAGGCTATTAGCGAATGAAATTTAATAAAGAGAAATTGG -TTATACATGCGTGCGTGCTTTTGTTCATCATTATCTCCATAGGATTAGTTTTTCATCGATTACAAACGAA -AACGAACTCTATAGAACCTATACATAAAGAAACAAAATTATCGGATAATGCGAAATATTTGGTTGATCGT -AATAAAGGCAAAGGTGAGCCATCGAAATTAAAGGAAGTATACAATAGTAAAGATCCAAAGTATAAGAAGA -TTGACCGGTATTTACAAAATTCATTATTTAATGGTTCTGTAGCGGTATATGAAAATGGCAAATTGAAAAT -GAGTAAGGGCTATGGATATCAAGATTTTGAAAAAGGAATTAAAAATACACCAAATACGATGTTTCTAATT -GGTTCAGCTCAAAAATTTTCAACAGGATTACTGTTAAAACAGTTAGAAGAAGAACATAAAATTAATATTA -ATGATCCAGTAAGCAAATATATTCCATGGTTTAAAACATCTAAGCCTATTCCTTTAAAAGACTTGATGCT -GCATCAAAGTGGATTATATAAATATAAATCTTCAAAAGACTATAAGAACTTAGATCAAGCAGTGAGAGCA -ATTCAAAAACGTGGCATTGATCCTAAGAAATACAAAAAGCATATGTATAATGATGGAAATTATTTAGTGC -TAGCTAAAGTTATCGAAGAAGTTACCGGCAAATCATATGCCGAGAATTACTATACTAAAATAGGTGATCC -ATTAAAACTTCAGCATTCGGCATTTTATGATGAAAAATCATTTAGAAAATATTTTGCAAAAGGTTATTCT -TATAATAGTACAGGACTTTCTTTCTTGAAGCCAAATGTTTTAGAACAATATTATGGTGCAGGTAATATAT -ACATGACACCAACAGATATGGGTAAATTAATTACTCAGATACAACAATATAAATTATTTAGTCCTAAAAT -AACCAATCCATTATTACATGAGTTTGGTACGAAACAGTATCCAGATGAATATCGATATGGTTTCTATGTT -AAGCCAACATTGAATAGACTTAACGGGGGACTCTTCGGACAAGTCTTTACTGTTTACTATAATGATAAGT -ATGTAGTTGTGCTTGCATTAAATGTAAAAGGAAACAATGAAGTTCGAATCAAACATATTTATAATGATAT -TTTAAAACAAAATAAACCTTATAATACGAAGGGTGTTATTGTTCAATAATTAATATAGAAGATATAACTT -GTATATGGCATTAAGGCATTGACCTTATTTGACTAGTATACGAGTTATATCTTCTTTTTTATAGAGGTGA -AAAGTTTAAAGGATAAGGTTGAAGTAGTAGGGTGATAAATTTGCGTTAAGTTAAAAAGATATAAACAATT -GATGTGACTGTCAATATAAAAATGTACATAAATGATTGTATAAGAATGTATTAATTGAATGGATAATAAT -GATTGTCTTATTAGATATAGAAGGGGACTTAACCATTTAAAAATTGAAAGATAATAAAAACCAGCTAACA -AAAGTGTTAGCTGGTTAAACTTTACATTATTAAAATGTGGTTTATAAGTGTGAAGAGTGACCGCCTTGCA -TAACCCAATATGTTCCGACAACGAAACAAAGTGTGATTACAAGAGCAAAGATAACTTTGAATGTTTGTAA -ACGTCCATCTTTACCTTCAGTTAAATGCATGAACATTAATAATTGAAGTCCAGCTTGGATGAATGCAAAG -CCAAAGATAATTGTCAACTTCGCGTGGAATGTTAATGACGTGTATAGTGTTACGTAAACTGCTAAAAGCG -TTAATACGATAGATGCGATAAATCCTACAGTATGTTTCATTATTGTACTCATCCGCTATACACCATCCCT -ATCATATATACGGCAGTAAAGATGAAAACCCAAACAACATCTAAGAAGTGCCAGTATAAACTTACTATAA -ATAATTTTGGCGCATTATATTTGTCTAATCCGCGTCGTTGGATTTGGATTAATAAACAAATGGCCCAAAC -GATACCTAGCGATACGTGACAACCATGCGTTCCTAATAGGATAAAGAAACTAGACCAGTAAGAACCAATT -GTTGGGTTAACGCCTTCTGATGCATAGTGTGCGAATTCATAAATTTCGAATCCAACAAAGACTAAACCTA -AAAGTAACGTAATGATCATCCAAAACATCATTAACTTTTGTTTTTCTTGGCGCATGTAGTAAATAGCAAT -ACCACATGTGTAAGAACTGAATAATAATGCAAACGTCATTATTAAAACAAGAGGCAATTCAAATAACTCA -GTAGTCATTTTACCTGCATAATCGCCACCATGTTGCAAAGTTAATAGTGTCGCAAATAGGGTACCGAATA -ACGCAAATTCGGCTGTAATGAAAATCCAAAAGCCAAGCTTATTTAATTCGCCTTCATGTGTGCGTGAATC -AATAGTGTTTGTATCATGACTCATGACTTACAGCCTCCCTTTCTTTAATACGCGCTTCTCTTAATCTAGC -TTCAGTTTCAGCAACTTCAGCAGCAGGGATATGATATCCGTGATCGATTTGGAAACTGCGATAAATCATA -GTACCAAAAATACCGAATAAACAAATTAATGCTGGAATTACAGTTTCGAAAATTAAGAAGAAACCGCCGA -TAGTCATAAAGATACCAATCCAGAATCCAACAGGAGTATTGTTTGGCATATGAATGTCTTTGTAATTATG -GTTGTCTAAATAATGACGACCATGTTCTTTCATATCAACAAATGTGTCGTAGCCATTCCAATCTGGTGTA -ATGGCAAAGTTGTATTTAGGTGGAATTGCTGATGCAGTAGTCCACTCTAGAGTACGACCAAGGCCATCCC -AGTTATCTCCAGTTGCTTCACGTGGAGATTTGAAGTGACTGTATACGATACTAACAACAAGGAATAAGAA -TCCGATTGCCATTAATAATGCACCGATAGTTGAAATTAAGTTTAATAAGAACCAACCATCTGATGGCATA -TAAGTGTATAAACGACGTGGCATACCATCTAATCCAAGAATGAATTGTGGTAAGAAACAAACGTTAAATC -CGATCATGAAGAACCAGAAGCACCATTTGTTTAATGTTTCGTTTAATTTGTAACCCATCATCTTTGGATA -CCAGAAGATTAAACCAGCTAAGCAGGCAAATACAACACCAGTAACCAATGTATAGTGGAAGTGAGCTACT -AAGAAGTACGTATTGTGATATTGATAGTCAGCAGATGCCATTGCTAACATTACACCCGTAACACCACCTA -AAAGGAAGTTAGGGATGAATGCTAATGAGAATAACATTGGTGACTCAAATGTAATACGTCCTTTATATAA -TGTTAATAACCAGTTAAACAATTTCACACCAGTTGGAATACCAATCAGCATTGTTGAAATTGAGAAGAAT -GAGTTGATTAACGCACCATTACCCATTGTGAAGAAATGGTGAACCCAAACTAAGAAACTAAGGAAAGCGA -TACCGGCAGTTGCCCATACCATACTTTGATGTCCGAATAAACGCTTACGAGCGAATGTCGGAATAATTTC -TGAGTAAATACCAAATGCTGGAAGGATAACGATATAAACTTCAGGGTGCCCCCATACCCAGAAGAAGTTA -GCCCAAAGCATTGGCATACCACCATGTGCAACTGTGAAGAATGCTGTGTCAAATATTCTATCAGTTGTCA -TTAATGCTAACGCTACTGTTAAAGGAGGGAAAGCAAGAATAACAATTAATGTAGTAATAAATGTTGTTAC -TGTAAACATTGGCATTTGCATAAACTTCATAGTTGGTGTTTTACATCTTAAAATTGTTACAAAGAAGTTG -ATACCTGTAGCTAAGGTACCAAGCCCTGAAATTTGTATAGCTATTAAGTAATAGTTAACACCCGGACCAG -GACTGAATTCACCTGCTAGTGGCGCATAGTTTGTCCAACCAGCTGCTGGTGAACCACCAATAATAAATGA -CAGGTTGAATAAAATCATACCTGCAAAGAATAGCCAGAAACTTACGTTGTTTAATACTGGGAATGCAACA -TCACGTGCTCCAATTTGTAATGGAACAACGATATTCCATAAACCAAAGATAAATGGCATTGCCATGAAGA -TAATCATGATTACACCATGTGTACTAAAAATTTCGTTATAGTGGTTAGATTCTAAAAATTTGTTATCAGG -TACTGTTAGTTGCGCACGAATAAGTAACGCATCAATACCACCACGGACGAACATTAATACGGCACAGATT -AAATACATAATACCGATTTTCTTATGGTCTACAGATGTGAACCATTCTTTGTAAAGATATTTCCATAATT -TAAAGTAAGTAATTACTGCGATTAAACCAATAACTAAGAATGGGGCACCAATTTGTGCCATTGTAATCAT -CCAGTTACCTTTAACTAGTAATTGATCCCATGGAAAATTCATTAATGTCCACCTCCATGATCATCATTGT -CTTGATCTTGCGCATCTTTTGAAATTTTCTTCATTTCTTTCGCATTTTTCGATTCATCTTTCTTGAACTC -ATTGTTATATGGTTCGTCATTTCCAAGAATCATCAATTTCATACCATGTCGTTTATAGTTCGCATTTGTA -ATTTGAGCTTTACGAGCAGGTATTAATGGTTTGTCTGATACATCTTTAAACATATTTTCTTCACTAGTGA -AGTTTGGATCTTTCAATTCGAAATTGAAACGTTTATATGCATAGAAGATGTATTCTGGATCGGCTGCTGG -ATCAACAAACGCCATATGTGTACCATTAAATTCTAAAGCTTTATTAGGTGTGCTTGGTAATAATTGTTTA -TCAAATGTATCTTGATCTAACGTTTTCTTACCTTTAACTTCTTTCACCCATTTGTCGTAGTCTTTTTGAC -TAACGGCATTTACTTTAAATGTTTGACGCGAGAATCCTTCACCATTGAAGTTAGAATTACGACCTCTGAA -CGTACCAGTTTGAGATGCTTCTAACGTCCAATTCATTGTCATGCCAGTCATGGCATATTTTTGACCACCT -AATTGTGGAATCCAGAAACTTGTCATTGTATCCATAGCTTGAAGCTTAAATACAACAGGACGATCTTTAG -GGATTGTTAATGTATTAACAGTCTCTATATGTTCATCTGGATAAGCAAAGAACCATTTGTATCCTGCACT -TACTGCATATACAACCATTGGATCTTTCTCACTCTTCGGTGGTTTTTCGTAATCGTATAAAGTTTTAACT -GTAGGAATAGCTAAAGCAGCAACGATTATGATAGGTATTACAAACCATATTGTTTCAATGATGGCATTAT -GGTGCATCTTACCAGATTCGGCATTCTTATTATAACTATACTTGTAAATAAAAATGGCGAACATGCCAAG -TACAACGAAACAAATAACAAGCATGAAGACGATTGAATAAAGAATCAAGAACTTCTGACTACTTGCTACT -GGCCCTTTTGCGTTGAAAATTTCTATATTTGAACAACCACTAAGTAAAATTAGTGTGCCAAATAATAGAA -GCAAAGACTTAAATTTTGACACTTTTTTGACCTCCTAATACTACAAATGTAGGGCTTAACATTAATTTTA -AGTTATTACACAATATTTACAAGGGCTTATGGGAAAAAAATTAATAAAATTGTATCAAAAATGTTGATAA -ATCAAGGTGTGACGTGGGTTCACACATTTGTTAAAATTATGTGTACATTTTGTGACTAATAGCGTTTTTG -AAAAAATTGCTTCATATTTAAAAGGGAAGTTGAGAATAGCTTTCAATTAAAGGTTAATTGAATGAAAATA -AAAAAAGTTTGAAATTGTCTAATAAATTGAAAATGATGGCTAGTTCATTGAAAGGAAGCGCAAACATTTT -AATGAGGAATTTGCCAAAAGTAATTTATCGTTAAACAATGAAAAGAGGAAATTTGTTTGTTCAAAATCAA -AACATTCTTTTAAAAAGAGCAGTTAAGTTTTAATAATTTGATAGGTAGTCCTTTGGTATACAGAAAAAAT -ACAATATTGGGGTTAAAGTTGCAGATGAAGTTGGAATAACAAATAAAATGGTAGCAAAACATGTACGTTT -GCTACCATTTTATTTGCAGTATAGTGATGAGGGCTATTTAACCTCAATATACCTAGTGGAAATTTTAATT -GCACCATCTGAATCAGTGACATGATATTTAATTTGATATTTACCAGATTTAGATGTATCAATTTGGCCAT -CGACTTTAATTTTATCGGTTAAATCTCCATCTTCTTTATCAAATGCACTTATGCCGTTTAGAAGGTTATA -ATCTTGACCTTTCTTAATAACGATATCATTAGCGCCTTTAATTTGTGGTGTAGTATTCGTCGTTGCATCT -GCATTTAAATTTGGTGTTACTAGTGTAGCAGAAACACCGAGGGCTGATAATGACTGTAATAGTTTATTCA -TAATGTAACCTCCGAATGATAAGTCATTTCTGAGTTAGCTTTACTATACCTTAATTTATATTATTTACAC -ATCATACTATAGTCCTAATCTTACCCTATAAAGAATGAAATTTAAATATAAATTTATAAATAATGAGGAA -ATAATTATTATTTTGAAAATCTGCCACAATTGTAAAATTAATAATTCAGGGATAATTTGAAATCAAATAT -AACTTTATTCGACAGTTTGAACTTAAATTGTTGTGCATCATAACAATAAGAAAAGGGAGGCAAAAATAAT -AAAGAACCACTAATGATTTATTATGTAGTAGTATTTTATCATTAGTCACAGCTTCTGTGTTGGGGACTCG -CTGACTTGCATTGTCTGTAGAAATTGGGAATCCAATTTCTCTGTGTTGGGGCCCATCCTCAACTTGTACA -TTATTGTAAGCTGACTTTTCGTCAGCTTCTGTGTTGGGGCCCACACCCCAACTTGCATTGCCTGTAGAAT -TTCTTTTTGAAATTCTCTGTGTTGGGGCCCACACCCCAACTTGCATTGCCTGTAGAATTTCTTTTTGAAA -TTCTCTGTGTTGGGGCCCCTGACTAGAATTGAAAACTTGTTACAAGCTTAATTTCATTTAATTAACTATT -GTCTATATAAAATTGTTGAGCCTAGAACAATGTGAAATGCTCCCTTCAAAGCCTTCATTTATTCAATGTC -TACTTTGAAGGGAGCATTTGATCGATTAATGTCCCAGATTTTTCTTGTTATTCATTGCAATTGCAAAATA -ATATTTAATTTGGGTTAAAAGAGTTCATTAAAACTCATTTATTAATTCACATTACATAACTTATGTGAAT -TTACGAATCAATACCTCGACGCATTTTTTCTGCAAGCAAAGTATTATTTAATACCATAGTAATTGTTAAT -GGACCAACGCCACCAGGAACTGGTGTAATAGCTCCAGCAATTTCTTTAACCGCATCATAATCAACGTCAC -CTTTTAATTTGCCATTTTCATCTGGCGTATTGCCAACATCTATAATTACTGCTCCTTCTTTGACAACATC -TTTTGTTACTAAACCAGGCTTACCAACTGCACTGACAATGACATCAGCATCTTTTAAATATGATGCCATA -TCCTTTGAACGAGAATGTAAGATTGTTACTGATGCATTTTTTTGAAGTAGTAACTTAGAAACTGGTTGTC -CGACAATATGACTTCGTCCGATTACAACTGCATTTTTACCTTCTAAATCAATATCAGCATGTTTTAATAT -TTCCATGATGCCGAGCGGTGTGCAAGGTACAAAAGTTTGTTCGTCGATATATAATTTCCCTATATTTATT -GGATGGAAACCGTCCACATCTTTATCAGGATTGATTGCTTCTAATATTTTCTGTTCGCTAACTTGTTTTG -GTAGTGGTACTTGTACCAAAATACCACTTACAGAATCATCATTATTTAGTCTGTTTAGTTCGTTTAATAC -TTCTTCTTCAGTAGCTGTTTCTTCCAAATGTACGATTTCTGAAATCATACCAATTTTTTCAGCTGCTTTC -TTTTTTGATCTAACATAACTTTGACTAGCGCCATCATTACCAACTAATATAACGGATAATTTAGGTGTAA -AACCCTTTTCTTTTAGCGCTTCAACTTGATTTTGTAACCCCTGTCTGTAGTCTTTGGCAATTTGTTTACC -ATCTAAAATTTTAGCAACCATAAAAACTTCTCCTCCTATTGTCAATATCCTAACTTTGTTAGTTTATAAA -ACTAATTTACATAGCAAAAGACGTAAATTCAAACAAAAAATCAAAATAAAGTTCGATTTTTGATTGAAAA -AGCAGAAATTGCTTGTTATGCTATATCTATAATATACAACTAAAGTAATTCACAATTCAAACTTTTGAAA -GGGTGTACAAAGTGAAAGTAGCAGTCATTATGGGCAGTTCTTCCGATTGGAAAATTATGCAAGAGAGTTG -TAACATGTTGGATTATTTTGAAATTCCGTACGAAAAACAAGTAGTATCCGCACATCGTACGCCAAAAACG -ATGGTTCAATTTGCTTCTGAAGCGAGAGAAAGAGGTATAGACATTATCATTGCAGGCGCTGGCGGTGCGG -CACATTTACCAGGTATGGTTGCATCATTAACGACGCTACCAGTTATTGGAGTGCCGATTGAAACAAAAAG -TTTAAAGGGTATAGATTCTTTATTATCAATTGTTCAAATGCCAGGAGGTATTCCGGTTGCAACGACTGCA -ATTGGTGCAGCAGGTGCTAAAAATGCAGGTATACTTGCAGCAAGAATGTTAAGTATTCAAAATCCTTCTT -TAGTTGAAAAACTAAATCAGTATGAATCTTCGTTAATTCAAAAAGTGGAGGACATGCAAAATGAACTTCA -ATAAATTAAAGTTTGGTGCGACTATTGGCATTATTGGTGGTGGTCAGCTTGGAAAGATGATGGCACAATC -AGCTCAAAAAATGGGTTATAAAGTGGCTGTATTGGATCCTGCTGAAGATTGTCCATGTAGATACGTTGCA -CACGAATTTATACAAGCCAAGTATGACGATGAAAAGGCACTCAATCAATTAGGACAAAAATGTGATGTGA -TTACTTATGAATTTGAAAACATTTCAGCCCAACAATTAAAACTATTATGTGAAAAGTACAATATTCCGCA -AGGTTACCAAGCTATACAGTTATTACAAGACCGCTTAACTGAAAAAGAAACATTAAAAAGTGCTGGTACC -AAGGTTGTCCCATTCATTTCAGTAAAAGAATCTAAAGATATTGACAAAGCAATTGAAACATTAGGATATC -CTTTTATTGTAAAAACTAGATTTGGTGGCTACGATGGCAAAGGTCAAGTTTTAATTAACAACGAAAAAGA -CTTACAAGAAGGTATTAAATTAATTGAAACTAGTGAATGCGTAGCTGAAAAATATTTGAATATCAAGAAA -GAAGTATCACTTACTGTTACAAGAGGAAACAACAATCAAATCACTTATTTCCCATTACAAGAAAATGAGC -ATAGAAATCAAATACTTTTCAAAACAATTGTTCCAGCGAGAATAGATAAAATAGCTGAGGCGAAAGAGCA -AGTTAATAAAATTATCCAATCGATTCATTTCATTGGAACATTTACAGTTGAATTTTTTATAGATAGTAAT -AACCAATTGTATGTGAACGAGATTGCACCAAGGCCTCACAATTCCGGACATTATTCAATTGAGGCATGTG -ATTATTCACAATTTGATACTCATATTTTAGCAGTTACCGGACAATCATTACCAAATTCAATTGAATTATT -AAAGCCTGCAGTCATGATGAACTTACTAGGTAAAGACTTAGATTTATTGGAAAATGAATTTAATGAACAT -CCAGAGTGGCACTTACATATTTATGGTAAGTCTGAGCGTAAAGATAGCAGAAAAATGGGGCATATGACTG -TACTAACGAATGATGTAAACCAAACTGAACAAGATATGTACGCTAAATTTGAGGGGAGTAATTAAAGCAT -GACATTACTATATGAAGGAAAAGCGAAGCGCATTTTCTCAACAAATCAAGAAAATGAATTAAGAGTTGAA -TATAAAGATGAAGTTACTGCTGGAAACGGGGCTAAGAAAGACACAATGGCAGGTAAGGGGCGATTAAATA -ATCAAATTACTTCTATTATATTTAAATATTTACAAGAAAATGGAATAGAAAGTCACTTTATTAAGCAATT -ATCTGAAACAGAACAATTAGTTAAGCCTGTGAAAATAATTCCATTAGAAGTAGTTGTTCGTAATATTGCT -AGCGGATCTATTACAAAGCGTTTAGGTTTTGAAAATGGTGAAGTTTTTAGAGAACCACTTGTGGAATTTT -TCTATAAAAATGATGCATTAAATGATCCTTTGATTACAGATGATCACATCAAATTACTGAATATTGCGAC -AGATAAAGATATTGAAACATTAAAAACGAAAGCGCTAGAAATTAATCAAGTATTAAAACAATTAATGCAT -GCGATGAGTTTAAAATTAGTAGATTTTAAAATCGAATTTGGAAAGACTGAGACTGGTCAAATTTTGTTAG -CGGATGAAATATCTCCAGATACATGTCGAATTTGGGATAAAGCTACCAATGCAAACTTTGATAAAGATGT -ATATAGAAATAACACTGGATCACTGATTGAAACATATCAAATATTTTTAAACAAATTGGAGGATTTAAAA -TAATGAAAACAATTGAACTACATATCACATTACAACCACAAGTATTAGATACGCAAGGACAAACGCTTAC -TCGAGCTGTACATGATTTAGGTTATGCACAAGTGAATGATATTCGTGTAGGAAAAGTATTATATATGACA -GTGGATGAGGTTAGTGATGAAAAGGTACACAACATTATTACAACTCTAAGTGAAAAATTGTTTGCAAATA -CAGTGATTGAAGAATATAGCTATAAAGTTTTAGAAGATGAAAAGGAGAATGCATAAAATGAAATTTGCGG -TTCTTGTTTTTCCAGGTTCGAATTGTGATAGAGACATGTTTAATGCTGCTATTAAAAGTGGTGTTGAAGC -GGAATATGTAGATTATAGAGAAACATCACTAAGTGGATTTGATGGAGTACTTATTCCTGGTGGATTTTCA -TTCGGGGATTACTTAAGATCTGGGGCAATGGCTAGTGTAGCGCCGGTTATTTCTGAAGTTAAACGTCTTG -CAGCTGAAGGTAAGCCAGTATTAGGTGTTTGTAATGGGTTTCAAATTTTAACTGAAATAGGCTTATTACC -TGGTGCATTATTGCATAACGATTCACATTTATTTATTAGTAGAAATGAAGAGTTAGAAATAGTGAATAAT -CAAACGGCTTTTACAAATCTTTATGAACAAGGTGAAAAAGTTATATATCCTGTAGCTCACGGCGAAGGTC -ATTATTATTGTACTGATGAAATATATCAAAAATTAAAAGCTAACAATCAAATTATTCTGAAATATGTGAA -TAATCCGAACGGTTCATATGACGATATTGCAGGAATTGTTAACGAAAAAGGCAATGTGTGTGGCATGATG -CCACATCCTGAAAGAGCTTTAGAAACGTTGTTAGGTACTGATAGTGGTGTGAAATTATTTGAAGCGATGG -TAAAAAGTTGGAGGGAACAACATGTCTAAATTTATCGAACCAAGCGTTGAAGAAATTAAACTTGAAAAAG -TATATCAAGATATGGGATTAAGTGATCAAGAATATGAAAAAGTTTGCGATATTTTAGGCAGACAACCTAA -CTTTACAGAAACAGGTATCTTTTCTGTTATGTGGAGTGAACATTGCTCTTATAAACATTCTAAACCGTTT -TTAAAACAATTTCCTACGTCAGGTGAGCATGTGCTTATGGGTCCAGGTGAAGGTGCAGGGGTAGTCGATA -TAGGTGATAATCAAGCCGTAGTATTTAAAGTAGAATCTCACAATCATCCATCAGCAATTGAGCCATATCA -AGGTGCTGCTACAGGCGTTGGTGGAATCATTCGTGACATTGTCTCTATTGGGGCTAGACCTATTAATTTG -TTAAACAGTCTTAGATTTGGAGAATTAGATAATAAACAAAACCAAAGATTACTTAAAGGTGTTGTAAAGG -GTATCGGAGGTTATGGTAACTGCATTGGTATTCCAACAACTGCTGGAGAAATCGAATTTGATGAACGTTA -TGATGGTAATCCACTTGTTAATGCAATGTGTGTTGGTGTTATCAATCACGACATGATTCAAAAAGGCACA -GCAAAAGGTATAGGTAATTCGGTCATTTATGTTGGTTTGAAAACTGGTCGAGATGGTATTCATGGTGCTA -CTTTTGCATCTGAAGAATTGACGGAAGAAAGCGAAAGTAAACGACCTTCTGTACAAATCGGTGATCCATT -TGTAGGTAAAAAATTAATGGAAGCAACACTTGAAGCAATTACATTTGATGAATTAGTTGGTATTCAAGAT -ATGGGTGCTGCTGGTTTAACATCTTCATCTTCTGAAATGGCGGCAAAAGGTGGTAGTGGTTTACATTTGA -GATTAGAACAAGTGCCAACACGTGAGCCAGGTATTTCTCCTTACGAAATGATGCTTTCAGAAACTCAAGA -ACGTATGTTACTAGTTGTTGAAAAAGGTACTGAACAAAAATTCTTAGATTTATTTGATAAGCACGAATTG -GATAGTGCTGTTATAGGTGAAGTAACAGATACAAATCGTTTTGTTTTAACATATGAAGACGAAGTTTATG -CTGACATTCCAGTTGAACCACTAGCTGATGAAGCACCTGTATATATTTTAGAAGGAGAAGAAAAAAATTA -TAATACTTCTAAAAATGATTATACACACATCGATGTTAAAGATACTTTCTTTAAATTACTTAAGCATCCG -ACTATAGCATCTAAACACTATTTATATGATCAATACGATCAACAAGTTGGTGCCAATACGATAATTAAGC -CAGGACTTCAAGCATCGGTAGTACGTGTGGAAGGCACAAATAAGGCAATTGCTTCAACAATTGATGGTGA -AGCGCTTTATGTATATAACAATCCATATGAAGGTGGAAAGATGGTAGTAGCTGAAGCTTATCGTAATTTA -ATTGCCGTGGGTGCAACACCATTAGCAATGACTGACTGCTTAAATTATGGTTCTCCTGAAAAGAAAGAAA -TTTATCAACAATTAGCAGATTCAACGAAAGGTATGGCAGAAGCTTGCGACATACTTAAGACACCTGTTGT -TTCTGGAAACGTTTCTTTATACAACGAAACGAAAGGCACTTCTATTTTCCCTACACCAATTGTTGGTATG -GTAGGTCTGATTGAAAACGTAGACTATTTAAATGATTTTCAACCTCAAGTTGGAGATAAGTTATATGTAA -TTGGTGATACTAAGGACGACTTTGGTGGTAGTCAACTTGAAAAATTGATTTATGGCAAAGTAAATCACGA -ATTTGAATCTATAGATTTGAGTTCAGAAGTTAAAAAAGGTGAATCAATCAAGACCGCTATTCGTCAAGGG -GTATTATCACATGTTCAAACGGTTGGTAAAGGTGGCTTACTGATTACCTTAGCTAAACTAAGTGCGCATT -ACGGTTTAGGATTAAAGTCTTTAATAGATATAACAAATGCACAATTGTTTAGTGAGACACAAGGCCGATA -TGTTGTTTCTGTTAAATCAGGTAAAACTTTAAATATTGATAATGCAATAGAAATTGGGCTTTTAACAGAT -AGTGATAATTTCAAAGTAACAACACCATATACAGAGATTAGTGAAAATGTTTCAGATATTAAACAAATAT -GGGAAGGGGCAATTGCTCAATGTTTAACTACTCAGGATTAAACGAAGAATGTGGCGTGTTTGGTATTTGG -AATCATCCTGAAGCAGCGCAACTAACATATATGGGACTTCATAGTTTGCAACATCGTGGTCAAGAAGGTG -CAGGTATAGTTGTTTCTGATCAAAATGAATTAAAAGGCGAGCGAGGATTAGGCTTACTAACTGAAGCGAT -TAAAGATGACCAAATGGAACGATTAAAAGGATATCAACATGCAATTGGTCACGTCCGTTATGCTACTTCA -GGTAATAAAGGTATTGAAAATATTCAACCGCTTCTGTATCACTTTTATGATATGAGTGTAGGTATTTGTC -ATAATGGTAACCTCATTAATGCTAAATCATTACGTCAAAATTTAGAAAAACAAGGTGCTATCTTCCATTC -GTCTTCAGATACAGAAGTTATTATGCATTTGATTCGACGCAGTAAGGCGCCAACTTTTGAAGAAGCATTA -AAAGAAAGTCTTCGAAAAATTAAAGGTGGTTTTACATTTGCAATTTTAACAAAGGATGCGTTATATGGCG -CAGTAGATCCAAATGCTATCAGACCACTTGTTGTAGGTAAAATGAAAGATGGGACATACATCCTTGCAAG -TGAAACATGTGCAATTGATGTGTTAGGTGCAGAATTCGTTCAAGATATTCATGCGGGTGAATATGTCGTG -ATTAATGATAAAGGTATTACAGTTAAATCTTATACACATCATACGACAACTGCAATTTCTGCGATGGAAT -ATATTTATTTTGCGAGACCAGATTCAACGATTGCTGGTAAAAATGTTCATGCAGTGCGTAAGGCTTCAGG -TAAAATGTTAGCACAAGAAAGTCCGGTAAAAGCTGATATGGTCATCGGTGTACCTAATTCATCATTATCT -GCAGCGAGCGGTTATGCTGAAGAAATCGGTTTGCCATATGAAATGGGACTAGTTAAAAATCAATATGTTG -CAAGAACATTTATTCAACCAACGCAAGAGTTACGTGAACAAGGTGTAAGAGTTAAGCTATCTGCAGTGAA -AGATATTGTAGACGGTAAAAATATTATTCTTGTTGATGATTCCATTGTTCGAGGTACGACAATTCGACGT -ATTGTGAAAATGTTAAAAGATTCTGGTGCAAATAAAGTGCATGTGCGTATAGCATCACCGGAATTTATGT -TCCCAAGTTTTTATGGAATCGATGTTTCAACTACGGCAGAATTAATTTCTGCAAGCAAATCACCTGAAGA -AATTAAAGATTATATTGGCGCTGATTCGTTAGCATATCTATCTGTAGATGGGTTAATTGAATCAATTGGT -TTAGATTATGACGCGCCATATAGTGGCTTATGTGTAGAAAGTTTCACTGGAGATTATCCTGCAGGGTTAT -ATGATTATGAAGCAAATTATAAAGCACATTTAAGTCATCGACAAAAGCAATATATTTCTAAAAACAAACA -CTATTTTGATAGCGAGGGAAATTTAAATGTCTAAAGCATATGAACAATCTGGTGTAAATATTCATGCTGG -TTATGAAGCTGTAGAAAGAATGTCTAGTCATGTTAAACGTACGATGCGTAAAGAAGTTATCGGTGGTTTA -GGTGGATTCGGTGCTACATTTGATTTATCACAATTAAATATGACAGCACCAGTTTTAGTTTCTGGAACAG -ACGGAGTAGGTACGAAATTAAAACTAGCTATCGACTATGGTAAACATGATTCGATAGGTATCGATGCAGT -CGCAATGTGTGTTAATGATATTTTAACGACAGGTGCAGAACCATTATATTTTTTAGATTACATTGCTACA -AACAAAGTTGTTCCTGAAGTTATTGAACAAATTGTTAAAGGTATTAGTGATGCATGCGTTGAAACGAATA -CTGCACTTATCGGTGGAGAGACTGCTGAAATGGGTGAAATGTATCACGAAGGCGAATATGATGTAGCTGG -ATTTGCTGTTGGAGCAGTTGAAAAGGATGACTATGTAGATGGTTCAGAAGTGAAAGAGGGACAAGTTGTT -ATAGGGCTTGCGTCAAGTGGCATTCATTCAAATGGATACAGTTTAGTGCGCAAATTAATTAATGAATCAG -GCATTGATTTGGCATCAAACTTCGATAATCGTCCATTTATAGATGTCTTTTTAGAACCAACTAAATTATA -TGTTAAACCTGTACTTGCTTTGAAAAAAGAAGTTTCTATTAAGGCAATGAATCATATTACTGGTGGAGGT -TTTTATGAAAATATTCCACGTGCATTGCCAGCCGGATATGCTGCTAGAATTGATACTACATCATTTCCAA -CGCCAAAAATATTTGATTGGTTACAACAACAAGGCAATATAGAGACAAATGAAATGTATAACATTTTTAA -CATGGGTATTGGCTATACGGTTATCGTTGATGAAAAAGATGCACCACGTGCTTTGAAGATTTTAGCAGAA -CAAAATGTGGAAGCCTATCAAATTGGTCATATTGTGAAAAATGAGTCAACTGCAATTGAATTGTTGGGGG -TATAACAATGGTTAAAATTGCGATTTTTGCATCAGGTTCAGGAAGTAACTTTGAAAATATAGTTGAGCAT -GTTGAATCAGGAAAACTTGAAAATATTGAAGTTACGGCGCTATATACGGATCATCAAAATGCGTTTTGTA -TAGATAGAGCAAAAAAGCACGATATTCCTGTTTATATTAATGAACCAAAACAATTTGGTTCAAAAGCAGC -GTATGAACAACATTTAGTAACATTATTAAATGAAGATAAGGTAGAGTGGATTATTCTAGCTGGCTACATG -CGTCTAATTGGTCCAGATTTATTAGCTTCATTTGAAGGTAAAATATTAAATATACATCCATCACTATTGC -CGAAATATAAGGGGATTGACGCAATAGGCCAAGCATATCATAGTGGCGATACTATTACTGGTTCGACAGT -ACATTATGTTGATAGTGGTATGGATACGGGAGAAATTATTGAACAGAGACAATGTGATATTAGACCGGAC -GATTCAAAAGAACAATTAGAAGAGAAAGTAAAAAAATTGGAATATGAGTTATATCCAAGTGTTATTGCTA -AAATTGTAAAATAAGGAGTATGTATGTGATGAAGAAAGCTATTTTGAGCGTATCAAATAAAACAGGTATT -GTAGAGTTTGCTAAAGCGTTAACGCAATTAAATTATGAATTATATTCAACTGGTGGTACTAAGCGTATAT -TAGATGAAGCAAATGTACCAGTTCGTTCTGTTTCAGACTTAACACATTTTCCAGAAATAATGGATGGCCG -TGTTAAAACATTACATCCAGCTGTTCATGGTGGTATTTTGGCTGATCGAAATAAACCGCAGCATTTAAAT -GAATTATCAGAACAACATATAGATTTAATTGATATGGTAGTAGTTAATTTATATCCATTCCAACAAACTG -TTGCTAACCCTGATGTGACGATGGACGAAGCAATTGAAAATATTGATATTGGTGGTCCAACAATGTTACG -TGCTGCAGCTAAAAACTATAAACATGTAACAACAATTGTACATCCTGCAGATTATCAAGAAGTATTGACG -CGATTAAGAAACGATTCGTTAGATGAGTCATATAGACAATCATTAATGATCAAAGTTTTTGAGCATACTG -CAGAATATGATGAAGCGATTGTACGTTTCTTTAAAGGGGATAAAGAAACTTTAAGATATGGAGAAAATCC -ACAACAATCAGCGTATTTTGTGAGAACTTCGAATGCAAAGCACACGATTGCAGGCGCTAAACAATTACAT -GGGAAACAATTAAGCTATAACAATATTAAAGATGCAGATGCTACACTAGCTTTAGTTAAAAAGTTTGATA -CACCTGCTGCAGTTGCAGTTAAACACATGAATCCATGTGGTGTTGGTATCGGTGACACGTTAGAACAAGC -ATTTCATCATGCGTATGAAGCGGATAGTCAATCAATATTTGGTGGAATTGTTGCATTAAACCGAGCTGTA -ACACCTGAGTTAGCAGAGCAATTGCATAGTATCTTTTTGGAAGTCATTATTGCACCAAAATTTACAGATG -AAGCATTAAATATTTTAAAACAAAAGAAGAATGTAAGATTATTAGAAATTGATATGACTATAGACAGTAA -CGAAGAAGAGTTTGTTTCAGTATCTGGCGGATATTTAGTTCAAGATAAAGACAATTATGTCGTGCCAAAA -GAAGAAATGAAAGTTGTTACAGAAGTTGCACCTACTGATGAACAATGGGAAGCAATGTTATTAGGATGGA -AAGTTGTACCATCAGTAAAAAGTAATGCAATTATTTTAAGTAATAATAAACAAACTGTAGGTATAGGTGC -TGGACAAATGAATCGTGTCGGTGCTGCTAAAATTGCGTTAGAGAGAGCTATTGAAATCAATGATCATGTA -GCGTTAGTATCTGATGGATTTTTCCCTATGGGAGATACAGTTGAACTTGCAGCACAACATGGTATAAAGG -CAATTATCCAACCGGGTGGTTCGATTAAAGATCAAGATTCAATTGATATGGCTAATAAACATGGTATTGC -AATGGTAGTCACAGGCACTCGACATTTTAAACACTAATTTTAAAGGGGCGTAACATAAATGAATGTATTA -GTAATTGGTGCTGGTGGACGAGAACATGCACTTGCATATAAACTTAATCAATCGAATCTAGTTAAACAAG -TGTTTGTCATTCCAGGTAATGAGGCAATGACACCTATAGCTGAAGTACACACTGAAATTTCAGAATCTGA -TCATCAAGGGATACTAGATTTTGCTAAACAGCAAAATGTTGATTGGGTAGTTATAGGTCCAGAACAACCG -CTAATTGATGGATTAGCAGACATTTTACGAGCGAATGGTTTCAAAGTGTTTGGTCCAAATAAGCAAGCAG -CTCAAATCGAAGGCTCAAAGTTATTTGCTAAAAAGATAATGGAAAAATATAATATTCCAACTGCTGATTA -TAAGGAAGTAGAGCGAAAAAAGGATGCATTAACATATATTGAAAACTGTGAATTCCCTGTTGTTGTCAAG -AAAGATGGGTTAGCTGCTGGGAAAGGCGTTATTATTGCAGATACAATTGAAGCAGCCAGAAGTGCTATTG -AGATTATGTATGGTGATGAAGAAGAAGGTACTGTTGTGTTCGAAACGTTTTTAGAAGGTGAAGAGTTCTC -GCTAATGACATTTGTTAATGGTGAATTAGCAGTTCCTTTCGACTGTATTGCACAAGATCATAAACGCGCA -TTTGATCATGATGAAGGACCAAATACTGGTGGTATGGGGGCTTATTGTCCAGTACCACATATTAGTGACG -ATGTTTTAAAACTTACAAATGAAACAATTGCACAACCCATTGCAAAGGCAATGCTTAATGAAGGTTATCA -ATTCTTCGGTGTATTATACATTGGTGCTATTCTAACTAAAGATGGTCCAAAAGTAATAGAATTTAATGCC -CGTTTTGGTGATCCTGAAGCTCAAGTATTATTAAGTCGCATGGAAAGTGATTTAATGCAGCATATTATTG -ATTTAGATGAAGGAAAACGTACTGAATTCAAATGGAAAAATGAAGCTATTGTAGGGGTCATGTTGGCATC -AAAAGGATATCCTGATGCATATGAAAAAGGGCATAAAGTAAGTGGCTTTGATTTAAATGAAAACTATTTT -GTTAGTGGATTAAAGAAGCAAGGTGATACCTTTGTTACTTCAGGTGGTAGAGTTATACTTGCCATCGGAA -AAGGTGACAATGTACATGATGCACAGCGAGACGCATACGAAAAAGTATCTCAAATACAAAGTGACCATTT -ATTCTATCGTCATGACATTGCGAATAAAGCACTACAACTTAAATAAGTATATTTAAAAATACTAAGATTA -GCTATGAACGAATCTATAACGATAGATTTGTTCATAGCTTTTTTAGTTGTAGAGTCTAGGACATTGATTT -CTGTACCAAATTTGTGATTATCATATGTTGTAATACAAAAGAGGCGCCACAACATGTTTGGATGAACAAA -ATAACATGTTTGTGGCACCTCTTTTGTTTAGTATGGAATAAATGGTTTTCTTTTTCTATACAATGAATTT -CTAATTTAGTATCTATACAATTATGGATAAAATTTAACCTACACGACCAAGACGAACATCATCAATGCCC -GTGATGGGTAAGGTGATTGAACAATAATATGCCAAAATAATAATGGCAATTAAAACTATAATAAAGATTA -CATCTTTATATGAGAAAGGTACGTTGTAATAGTAAGTACGAGGACCATCTCTAAATCCTTTCGACTCCAT -CGCAACTGATAATTGATGTGCCTTTCTAATGTTTTGACTTAATAGAGGTATGATTAAATGCTTAAATCGC -TTTAATCCTCTATAATTTGCTGCGTCTATCATCTGATAGCGCATTTTTAAAGATCTGCGAAGCTGTATTA -AAGAACTAATCATTAAAGGTATCATACGAATGGCAGCCATGAATGCATAAGCAACTTTTGATTTAACCTT -TAAATGTTGCATTAAACTATAAAAAATCATGACAACCTGAGATGTGAGTGCGATTAAGATACCGAAAAAT -GAAATAGCAATAGTTCTTAATGATACATGTAAACCACGAACTAAACTTTCTGTTGTAATATGGATAAATC -CGAATTTCAAAATTGTATGGCTACCATTCCCGTATAAAATCATGAACAGGGAAGAGAGTAATGCAAAGCC -AATACTTATAGTTATAAAAATTGCTGTAATTTTAAACTGAGTACCATTAAACATCAATAAGAAAACTAAC -ATTAAGATAGTGATATAAAGCATAAAATCGAAATTATGCACAAATATAATAAAGAAAAATAGTATAATTC -CAAGAAATAGTTTCGTTATAATGTTGACATCATCAACAAATGATTGCCGAACCTTCCATTGCTCATACAT -TCGTATCACCATCACAATCTAGTAACGCACCATCTGAAATTTTAAGTCTTCTTGATGGGTAACGTTCAAT -TATTTCATCGTCATGTGTAACCATGACAATACTTTGTCCCAAATTAATTCGTTTTTGGAAAAGTTTGATC -AACTGGAATGTATTATGGCTATCAAGTCCAAATGTCGGTTCATCTAAAAAGATGATATCAGCTTTAGAAC -TTAGTGCGGTAGCTACGCTAAGGCGTCGTTTTTGACCAATAGACAACTCATAAGGATGTTGATCTTTAAC -ATTTTCTAAATCTAAAAGTTTTAAAAGTTGTATCGTTTCATCATCACTTTGATCTTTAGAAAGGTGATTA -AAATGAATGTTAATTTCATCATAAACCGAATTTGTTATAAATTGTAACTCTGGGTTTTGATAAACTAGAT -ACATGTGTTTTGCTGCATGTTTAATTTTTGTTAAATGCTGATTTTCAAAATAAACATCACCTTGATATTT -AATCAATTGCATAATTGATTCAAGCAAGGTTGTTTTACCACTACCATTTGCCCCTGTAATTGTAATCCAC -TCACCTAGACCAATTTCTAAATCTGAGAATGAGAGCAACGTTGATTTACCGCGAATAATACGTCCATTTT -TAAATTGTAATAAGTGTGAGTTTGTTGTTGGAAAGTCAACACGACTTGGTGCGAATTCCCATGCACGTGG -ATGCCACACACCATATTCACTGAGTAAATGAACATACTTCTGTAATATGATTTCAGGACATTCATCGGCA -ATGATATTTCCGTTATAATCCATCAAAATGACGCGGTCGACATGATTCCAGATGTGTTTAACTTTATGTT -CAACGATTACAACAGTTTGATCTTCCCAAAGTTCAATTAGTTTAGTCCATAAATCTTCCGTTGCTTGAAC -ATCTAACATTGCTGTCGGTTCATCTAAAAACAATGTTTTTGATTGTTGAAGAATGGTTTCAACAATTGCC -AATTTCTGTTTCATCCCGCCACTTAAATCTTTGATATACGTTTCAGGGGTAACATTTAAATTGACCATAT -TTAAAGCATTGATAATTAACGCATCCATGTCTTCACGTGGTACTTGTCTATTTTCTAAAACGAATGCAAG -TTCTTCGTATACTTTTGGCATACAAAACTGGCTATCAGGGTCTTGGAAAATAACGCCACTTAATGGGTCA -ACGATTAGTTCATCATATTTCATAGGTAATTCAATTAAATTAGGAACAATACCACTTAATACATTCAGAA -GTGTACTTTTACCGCAACCAGAAGGACCGAGTAAAAGTACTTTTTCTTTGTCTTGAATAGTGATATTTAA -ATGATCGAAAACTTTACGCTGACCACTTGGATATTTTAATCGTAAATCACTTACTTTTAACACTCTGAAT -GCTCCTCTTATAAGTTGTCGTAATCTTCTTTAGCAGCTGGCCTAAATAATTTTGTTACGCCTGTCTTATC -TAAAGCTTTTACTAAAAGGTAAGATAGGACGCCGGCGACTACTGCACCACTAATTAATCTAAATACGATG -AATAATGTTAAGTTCCAACCTGCAACTTCATTTAAATAACCATAGAAATAATCGATCGGGAAAGCCGCGA -TAGCTGTACAAAAACCTGCTAACATAGCTACCATAACTGAACGAGATTGATATTTAAAAATTGCAAAGAC -AAGTTCACACGCTAAACCTTGTATGAAAGCGTAAACGATTGTCGGAATATCGAAACGACCCATAATGATA -GTTTCGCCGGCACCTGCAGCAAATTCAGCCAATAAAGCAATACCTGGTTTTGGAATAATTAGATAGCAGA -CAATCGCTGCCATGAACCAAACCCCGTTTGTTAATTGTTCGAGGTGAAGGCCTGTAGCTTGCACACCATT -GTAAACAAACCACCATAAATTGTAAATAACTGCGAATACTACTGAAATAAGTACGGTTACTAGAATTTCA -GATAGCTTTAAACCTTTTGACATTTTTACATCCTCCTAATAAAAAAACGCACAACCATCCATAGGAAAGT -TATGCGTTCACAATATATATTAGTAAAACATATGTATAGTAACACTTTCCTACGCTAGTTCAAGCTAGAT -CAGGTTCAAAGGGTTTGAGGGCAAGCCTCATCTCAGTATAAAACACCCCTAGTGTGTGCGATTTATTTAA -TTAATTATACTGTAAGACGTTTATAAACTTATGTCAATAGGTTGTCTTCATGAAATTTCGTTTAATTCGA -TTTAAAATTTATAATATTAGCATTAGATTTAAATTAAAGATGTAGTAGAAATGTTAGTAATTAAAGATAT -AAAAATATGTGACATGTAATAATATTAAGTTGATAAGTGAAGAGGGATACTTATCAATCATACCTCTTTA -ACAACAGTGAACAACCCGTGCATAATGGCTTGTGAATTATTGTTTGTAAGGTAAAAGAGGGATACCAGCG -GCGAGCGCAAGCAAAAAAGCCCCAAACAACTAAAAGTTATAAGGTAAAAGAGGGATACTTGCGCCGAGCG -CATGCATAAAATCCCCTAACAACGAAAAGTTGTAAGGGGATTTAAATTAATTTAGTGTATCTTGGATATC -TTGTTTTGTTTGATTAATATCTTCTGTTTTTTCTTCTTTTTTATCTTTTAGTTTTTCTTCAACTTCTTTA -GCTTTTTCTGCTGCTTTTTTATTTTGATTTTCATTTGACATGATTAATTCCTCCCAAATTGGATAATTAT -TTATATATAAATCTTACCCGGTTGTACTTTCGTTAAACTTTTCTAAGTCTATAGCACTATTTATTCATTT -ATCTAAAGACAACAACATTAGATTAATATATAATGATTTTGAGGTGAACATAATGTCTTTTCTTAGGAAA -CACGCCGAAATTATTTTTAGCTATTTAATCGGTATCGTTTCACTCTTCACTGGTCTCATTATTTTAATTA -ACTTGCCTTTAATTAAACAATTAAATGGTGGTAAAAAAGTTGATACACATGTTCATAATGTGTGGGAATT -TCTGAATGCATTTTTCAGTGAAATTATTAAAGTAATGAGTCGATTTATAGGTAATTTCCCTATAGTTAGT -GCAATTGTGATAATTATATTCGGTATTTTAGTTATGTTGATTGGTCATACATTACTTAGAACTATTAAGT -ATGACTATGATATTTCTATCTTTTTCTTAGTTATCGGTATCATGTACTTTATTATTACGCTTATATTAAT -GACGCAAGTATATGGATTCTTTGCGGTAATTTTCATTATTCCATTTACAATTCATATTGGATATATCGTT -TATAAAGATGAATTGAATCAGGAAAATGTTAAAAATCATTACATGTGGATTATTGTAAGTTATGGTATAA -GTTATTTAATTACACAAATTGCATTGTATGGCAGAATTGATGCTAATGAAATAGAATCAATTGATATCTT -AAGTGTCAATGCTTTCTTTATAATTATGTGGTTACTTGGTCAAATGGCTATTTGGAATTTCTTGTTCTTG -CGCCGAGCTTTACCTTTAACAAAGCAAGAATTAGGTGAAGAGGAGCCAGAATTATCAAGAACAAGTAAAG -GGAATGTCACGAATCAAACTAAAATTCACTTGAAGCAACTCCAAGATAAGACTACAGAATATGCACGTAA -GACAAGAAGAAGTGTCGATTTAGATAAAATTAGAGCTAAAAGAGATAAATTCAAAAAGAAAGTTAATGAT -ATTATCGATATTCAAGAGGACGATATTCCTGATTGGATGAGAAAACCGAAATGGGTTAAACCGATGTATG -TCGAACTATTTTGTGGTGTCGTCATCTTTTTATTCACATTTTTAGAATTTAATAATCGTAATGCATTATT -TGTATCTGGTGATTGGAAATTATCACAGACACAATATGTTATTGAATGGGTTACATTACTAATTCTGCTA -TTCATTATTATCGCATATATCGCTACAACGTTAACTTTCCACTTGAAAGGTAAGTTTTATTATTTACAAT -TATTTATGGGGAGCATTTTATTCTTTAAATTGTTAACGGAATTTATAAATATAATGATTCATGGACTTCT -ACTTTCAGTGTTCATTACGCCAACATTACTATTAATGTTATTGGCAATCATCATTTCTTATTCGTTACAA -TTACGAGAGCGACCATAATTAAAAGCATTATAAAAGTACTATCTATTAAACATTTTGATGTGTACGCTAT -AAGTTAGATATATCTCTAACTTACTTAGATACAGGTCAATGAAGTTTATGGATAGTACTTTTTTTGTAAC -TAGATTTGATTGATTCAGGTAATGTGAATTAAGTATTGAAAATTGTATACAAAGTTTTAGTGCAAATAAA -ATAGTTGAAAAGTTATCCATTTGTAAAATTAAGAAAACTAGTAAATAGTTGAAGTGACAAGTGGAATTTG -CGAAACGATATATAGTATCTCATTTATAGAAGTTTAACATATATCATTCGAATTACTAATTTGTTAAAAT -CAACAGTAAGATTAGAAGTAGATGATATTGAAATTTGGCAAACAATTTAATCTATATAAAACTACAACGA -AACACAGAAAGGAAGTTGTCAGATGAAAATAGCAACTCTGAACAAAGGCAAAGAAACAAAATATTTTAAT -GGATATCCTTTAATTGAAGAAGAGGATATCTATTCACAAGATCATTTAAAAGAAGGAGATATTTTTCAAA -TTGTGACTGATAAATCACAATATGTTGCAACGGCTTATGTTGGTCGCCAACATAAAGGATTAGGTTGGGT -TCTAACATACGATAAAGCTCAAGAAGTCAACACAGCTTTCTTTGTGAAATTGTTTAATACTGCATTAGCA -GAACGTGATTATTATTTTAATATAGATGGAACAAATGCTTTTAGATTATTTAATGCTGAAGGTGATGGAG -TTGGGGGATTAACGATCGACAATTACGATGGTCATTTGTTGATTCAATGGTACTCAAAAGGTATTTATAA -ATTTAAATATGCCATTCTTGAAGCGGTTAGAAAGGTATTTGATTATAAATCTATATACGAAAAAGTAAGA -TTTAAAGACAGCGAATATAGTGGTGGTTTTGTTGAAGGCGATGCACCTGAGTTTCCAATTGTTATCGAAG -AAAACTTCACATTTTATAATGTAGACCTTGAAGATGGTTTGATGACAGGTATCTTTTTAGATCAAAAAGA -AGTGCGCAAGAAATTAAGGGATCAATATGCCAAAGAACGCCATGTTTTAAACTTATTTAGTTATACAGGT -GCTTTTTCTGTAATAGCAGCAAGTGAGGCATCTTCAACAACAAGTGTAGATTTGGCTAATCGTTCTCGTA -GTTTAACTGAAGAAAATTTTGGATTAAATGCTATTGATCCTAAATCTCAATATATTTATGTCATGGACAC -TTTTGATTTCTATAAATATGCTGCACGTCATGGACATAGTTATGACACGATCGTGATTGATCCACCTAGC -TTTGCACGCAATAAAAAACGTATATTTTCAGTGCAAAAAGATTATGACAAATTAATTACTGGCGCCTTAA -ATATCTTATCATCTGAAGGAACATTATTATTATGTACAAACGCAAGTGTATATCCATTAAAGCAATTTAA -AAATACTATTAAAAAGACTCTTGAAGAGAGTGGCGTTGATTATGAATTAACTGAAGTTATGGGATTACCA -AAAGATTTTAAAACACATCCACATTATAAGCCATCTAAATATTTAAAAGCTGTTTTTGTAAATATTAGAC -ATTAATTTGATAAAAAGGGGTATAGTATCTTATTGAGAAAAAGAAGGGTGATGATACAATGGGATTCAAA -AATAATTTAACATCAAATTTAACAAATAAAATTGGTAATTCAGTTTTTAAAATAGAAAATGTTGACGGAA -AAGGTGCAATGCCAACGACGATTCAAGAATTGAGAGAAAGACGCGAACGTGCTGAAGCAATTGTAAAGAG -AAAGTCTTTAATGTCATCAACAATGAGCGTTGTTCCAATTCCTGGATTAGACTTTGGTGTTGATTTAAAA -TTAATGAAAGATATTATCGAAGATGTAAATAAAATATACGGATTAGATCATAAGCAAGTTAATAGCCTTG -GGGATGATGTGAAAGAAAGAATTATGTCTGCAGCGGCAATTCAAGGTAGTCAATTTATTGGTAAAAGAAT -TTCAAGTGCATTTTTAAAAATTGTAATTAGAGATGTAGCAAAACGAACTGCAGCTAAACAAACAAAATGG -TTTCCTGTTGTAGGACAAGCTGTGTCTGCATCTATTAGTTACTATTTTATGAATAAAATTGGAAAAGATC -ACATTCAAAAATGCGAAAATGTTATTAAAAATGTCATGTAGGTGCTATAATAGTTTTGCAATTTGCAAAT -TTTACTGAAACCGGTTTTAAACGAATTGAATTTAAAGCATGGTTTTGGTAAAGTTAAGGTATAAAACTAA -GTTAGTATTGTAATAATATTGAAGATTCTAACTATACGAAGGAGAAATGTAATTATGGAACAAAATTCAT -ATGTAATCATCGACGAGACTGGTATTCACGCTAGACCAGCAACAATGTTAGTTCAAACAGCTTCAAAATT -CGATTCTGATATCCAATTAGAATATAACGGTAAAAAGGTTAACTTAAAATCAATCATGGGTGTTATGAGC -CTTGGTGTTGGTAAAGATGCTGAAATTACAATTTATGCTGACGGTAGTGATGAATCTGACGCCATTCAAG -CAATCAGTGACGTCTTATCAAAAGAAGGATTGACTAAATAATCATGTCTAAATTAATTAAAGGAATTGCT -GCATCTGATGGTGTTGCAATTGCTAAAGCTTATTTGTTAGTTGAGCCAGACTTAACATTCGACAAAAATG -AAAAAGTCACTGATGTTGAAGGAGAAGTTGCTAAGTTCAATAACGCTATCGAAGCTTCTAAAGTTGAGTT -AACTAAAATTAGAAATAATGCAGAGGTTCAATTAGGTGCTGATAAAGCTGCTATCTTTGATGCACATTTA -TTAGTTTTAGATGACCCTGAATTAATTCAACCAATTCAAGATAAGATTAAAAATGAAAACGCTAATGCTG -CTTCAGCATTAACAGATGTAACAACACAATTTGTTACGATTTTTGAATCTATGGATAATGAATACATGAA -AGAACGTGCGGCTGATATTCGCGACGTTTCTAAACGTGTGTTATCACATATTTTAGGTGTAGAATTACCG -AATCCGAGTATGATTGATGAAAGCGTTGTTATTGTAGGGAATGACTTAACGCCATCAGATACTGCTCAAT -TAAATAAAGAATTCGTACAAGGTTTTGCTACAAACATTGGCGGAAGAACAAGTCACTCTGCGATTATGAG -TCGTTCTTTAGAAATTCCAGCAATTGTTGGTACAAAATCAATTACTCAAGAAGCTAAACAAGGCGACATG -ATTATCGTAGATGGATTAAATGGTGATGTAATCGTTAATCCAACTGAAGATGAGTTAATCGCTTATCAAG -ATAAACGTGAGCGTTATTTTGCTGACAAGAAAGAATTACAAAAACTACGTGATGCTGATACTGTTACAGT -TGATGGTGTTCACGCAGAGCTTGCTGCAAATATTGGTACACCTAATGATTTGCCAGGTGTTATTGAAAAT -GGTGCACAAGGTATCGGCTTATATAGAACTGAGTTTTTATATATGGGTCGTGACCAAATGCCTACAGAAG -AAGAACAATTTGAAGCTTATAAAGAAGTATTAGAAGCAATGGACGGTAAACGTGTTGTTGTACGTACTTT -AGATATAGGTGGAGATAAAGAATTATCATACTTAAACTTGCCTGAAGAAATGAATCCATTCTTAGGTTAC -CGTGCGATTCGTTTATGCCTTGCGCAACAAGATATTTTCAGACCACAGCTACGTGCATTATTACGTGCAT -CAGTTTATGGTAAGTTAAATATCATGTTCCCAATGGTTGCAACAATTAACGAATTTAGAGAAGCTAAAGC -TATATTATTAGAAGAAAAAGAAAACCTTAAAAATGAAGGTCATGACATTTCAGATGATATAGAATTAGGA -ATCATGGTAGAGATACCTGCAACAGCAGCATTAGCTGATGTCTTTGCTAAAGAAGTAGATTTCTTCAGTA -TCGGTACAAATGATTTAATTCAATACACATTAGCTGCTGACCGTATGTCAGAGCGTGTATCATATCTATA -CCAACCATATAATCCTTCAATCTTACGTTTAGTTAAACAAGTTATTGAAGCGTCACATAAAGAAGGTAAA -TGGACAGGTATGTGTGGTGAAATGGCTGGAGATGAAACAGCTATTCCATTATTGCTTGGTTTAGGTTTAG -ATGAGTTCTCTATGAGTGCAACGTCTATTCTGAAAGCAAGAAGACAAATTAATGGTTTAAGTAAAAATGA -AATGACTGAACTTGCTAACCGTGCAGTCGACTGCGCAACGCAAGAAGAAGTTATTGAATTAGTTAACAAC -TACGTAAAATAATTAATTCTTTCGAAAGACAGAATTATAAATAAACCCGAAGTATTCATTGTGAGTAATT -ATGAATACTTCGGGTTCTTTTTTTGATTTATGTTAATTTCAATGGAATGTTGTTGCTAACTAATTAAACA -ACTAGGTGTCATTGACATAAATATTGTTCTTTAATTAATGTTAGTTAATTTAAAAATCGATATTTAATTT -ATGATAGCTAAAAATGATGAAGTTAATTTAGATGAAAATTAATCTTGGATATTTAATACTTTGTTGATTT -CATCAAGATCAACATGGTACATTGGATTGCCATTCAACAAAATAAACGGAGTTGAAAAAGCATCAAAATC -TATCATTTCGTTTCGATATTGTTGATTTTTGATATTTCTCTCTTCAAAATCAATTTGACGCTCATTTAGA -TAATTTTTTACAAATGTACAAGGTGGACAATCATTCTGTGTATAAACGATTATTTCTGACATGTATCATG -CTCCTTCGTGCTTTATTCTAATGTAATATACACAATTATACATTGAAATTCAAATTTGTGAACACATTGT -GAACTGACATAAATTATACACAATTTCATAGCGCATAATGTTTTAAAAATACACATTATAGCAATTATAA -TTAAGTTCATTGTGTTGTCATCAAAAAAAGAAAAAGGTGATGTTTTTAAATGGATACAGTTGAAATCAGT -CGGTTTTTGACAGCTATGACTTTAGCAGTTCATATCATTTTTGCAACGATTGGTGTTGGTATGCCTTTAA -TGTTCGCAATTGCAGAATTTTTAGGTATTCGCAAAAATGATCTTCAATATATAGCTATGGCCAAAAGATG -GGCTAAAGCTTATACAATTACTGTAGCAGTGGGAGTTGTTACAGGTACAATTATAGGACTTCAATTATCA -TTGATTTGGCCTACATTTATGGAAATGGGTGGACACGTTATTGCACTTCCATTATTTATGGAAACATTTG -CGTTCTTCTTTGAAGCTATTTTCTTAAGTATATATTTATATACTTGGGACCGTTTTAAAAATAAATGGAC -ACATTTCTTAATTAGTATACCAGTAATTATTGGTGGCTCTTTCTCAGCATTCTTCATTACTTCAGTGAAT -TCATTTATGAATACGCCTGCAGGTTTTGAGTTGAAGAATGGAAAGATGGTCAATGTTCAACCTATAGAAG -CGATGTTTAACCCATCGTTTATAGTTCGATCATTTCACGTAATTACTACAGCCGGTATGACGATGGCATT -TGTTATTGCATCAATAGCAGCTTTTAAATTATTGCGTAATCGTCAACCTAAGGATACTGTCTACCATAAG -AAAGCTTTGAAAATGTCTATGATTGTTGGATTCTTTTCAACTTTACTTTCTATGTTGGCAGGGGATTTAT -CTGCAAAATTTTTGCATAAATTCCAACCTGAAAAATTAGCAGCTTATGAATGGCATTTCGATACATCTTC -CCATGCCAAATTATTATTATTTGGTGTGTTAGATGAAAAGACTCAGCAAGTTAAAGGTGCGATTGAATTA -CCTGGACTATTGAGTTTCTTAGCAGATAATAGTGTCAAAACTAAAGTGCAAGGGTTAAATGATTTTCCGA -AAAGTTTACATCCGCCTATGATCGTCCATTATTTCTTTGATTTAATGGTAACGATGGGAATTTTATGTTT -TGTCATTTCAGGTGTTTATGTTTTAACTTTAATGTTTAAAAAGCTTAGAAATTTTTCTACTCATAAATGG -ATGCTTTACGGAATATTATTAACAGGACCAGCTTCAATGCTAGCTATAGAATTTGGATGGTTCTTAACAG -AGATGGGTAGACAGCCTTGGATTGTTCGTGGTTATATGCGCGTGGCAGAAGCAGCAACACAAGCAGGCGG -AATAACCTTTGTTACAATTTTATTTGGCATATTGTACACCATTTTAATGTATACATGTGCATACGTATTA -ATTCGTATGTTTAAAAATAAACCGGCGTATGAAGATGTAAATCGTTTAGCCAAGAAGCAAGGAGGAGAAA -TAGAAAAATGATTTATGCATTTATAGGTATAACAGTGTTATGGTTGTTTTTATTTTGCTATATCATTATT -GCTTCTATAGATTTTGGGGCAGGTTTCTTCGCATTGCATTCAAAGTTAACTGGTGATGAAAAGAAAATTA -ATCACTTAATTTCACGTTATTTGAACCCAGTTTGGGAAGTTACGAATGTATTCTTTGTTTTCTTCTTCGT -AGGATTCGTAGGTTTCTTTCCAGAGTCAATCAAATATTTAGGCACGGTATTGTTAATACCAGGTTCAATA -GCACTGATTATGATATCGTTGAGAAACAGTTTTTATGCATTTGAAAATTATGGTCAAGATACAAAATTAG -CATGGATGATCATGTATGGGGTAAGTGGATTGTTAATTCCAGCTTCATTATCTACTGCTTTAACTATTAC -AGAAGGTGGTTATATTAATGTTCGAAACAATGTTATCGATCTAGATTGGGTGCAGTTACTGTTAAGCCCA -TTTGCTTGGTCTGTAGTATTCTTGGCAATTATTTCAGTTTTATATATTTCATCAGGATTTTTGACATATT -ATGCTAAAAAAGCAAATGACGAACCAGCATATAATTTAACAAGACAATGGCACATATTTTTAGGGCCACC -GATGATTATCATTTGTTTATTCGTATTTCTATCATTACGCATTCAAAATTCTGAACATTTTTATTCAGCT -GTTTTTGACTACTGGTGGATGTTTGCTATAAGTTTCCTATTCTTTGCATTAGCTTCATTGTTAACATTCT -TTAAGAAAAAACATGGTTTGGCTTTTGTATTTGTTATTTTACAAATGATGTTCGCGTTCTTTGGCTATGG -AATTAGTAAATTGCCATACCTTTTATATCCGTTTGTAAAAATTACAGATGCATATGTTAATCCAGAAATG -GGCTGGACATTAGTGATTGTCTTTATTTTAGGTTTACTTTTATTACTTCCATCGTTAATATTATTATTAA -GATTATTTGTTTTCGACAAAGAATATGTTGAAGGAAAGAAATCATAAGTTGAGACGATACCCCAACTTTC -ATTTACTTGCATTACTGCATTTAGATAATTTAGTTGGGGTACTCATTTATAATAATTTTAAATTTATATT -TTCAATGAATTGATGAAAATCATTTAATGGAGGGCGAGTATGGGTAAAGAATATGTAGTCATCGGTCTAG -GTCGTTTTGGAGGTAGTATCGTTCGTGAGTTGAATGCATTAGACATGGATGTAATGGCCATCGACCATGA -TGAAAATAGAGTGAATGAATATAGTGATATCGCTACTCATGCGGTTGTTGCAGATACTACAGATGAAGCA -GTTATGAAAAGTTTAGGTATCCGTAACTTTGATCATGTCATTGTGGCAATTGGTGAAAATATTCAATCAA -GTACGTTGACGACTTTGATTTTAAAAGAGTTAGGTGTAAAAAAAGTAACTGCTAAAGCACAAAATGATTA -TCATGCAAAGATTTTAAATAAAATTGGAGCAGATACGGTTGTGCACCCTGAGCGTGATATGGGTAGACGT -ATTGCGCATAATGTTGCGAGTGCAAGTGTACTTGATTATCTTGAGTTGGCAGACGAGCATTCTATTGTAG -AATTGAAAGCGACTGAAAAGATGGCGGGGCAGTCTATCATTGATTTAGATATAAGAGCACAATATGGAAT -TAACATTATTGCAATTAAACGAGGCAAAGAGTTCATCATTTCACCAAATCCAAATATTAATTTAGAAATA -GGTGATATTTTAATTATGATTGGACATGATAATGATTTAAATCGCTTTGAAAAAAATATTGCGACGAGAT -AATCGGGAGTGGTACAGATATGATATTTTCTCAAAATTTATTTCGTCGTCCCACCCCAACTTGCATTGCC -TGTAGAATTTCTTTTCGAAATTCTCTGTGTTGGGGCCCATCCCCAACTTGCACATTATTGTAAGCTGACT -TTTCGTCAGCTTCTTTGTTGGGGCCCCTGACTAGAATTGAAAAAAGCTTGTTACAAGCGCATTTTCGTTC -AGTCAACTACTGCCAATATAACTTTGTAGAGCATTGAACATTGATTTATGTCTCAAGCTCATCATATATA -AAGAAAAAGCTACTAACAATGTGTGGTGAGTTTAATTAAAACTTCACTTCAAAGTTAGTAGCTTTTTGAT -TATTTATTGTTTGATTCTTTTTGTTCGTTTACCTTCATAATGACTGGTAAAATCATTGGTTTTCTAGCTG -TTTTTTCAAATAAATAAGGTTGTAATGTTTCAATGATAGAAGATTTAATCTGATGCCATTGAATATCTTT -ATTTTGATTTAACTTACTAATAACATCAGTTTTGATTTTGCGTTGTGCATCATAAATTAATTGTCCTGAT -TCTCTCATATATACAAATCCTCGAGAAATAATATCTGGACCAGAAAGTAATTTATTTGTATTAAAATCAA -TGCTAACAACAACGATAACTAAACCTTCTTCAGATAATAGCTTACGGTCTCTTATTACAACATTACCGAT -ATCACCGATACCACTACCATCAACAAGTACATTACCAGATGGAATGCGACCAGCTTTACGTGCTGAATCG -TGTGTTAAAGCTAAGACATCTCCGATATCAAAGATGAAGACATTATCTTCTTCAACGCCGCATTCAACAC -CAGTCTCACCATGTGCTTTTAACATACGGTATTCACCATGAATAGGTAAGAAATATTTCGGCTTGATTAA -TCGAAGCATTAATTGTTGATCACCTTGAGAACCATGCCCTGAAGTATGGATGTTAGAAATCTTGCTGTGG -ATAACATCTGCACCAGCTTTATACAAGGAATTAATCGTTCTGTTAATACTTTTTGTATTACCTGGGATAG -GTGATGAACTAAATACAACGGTATCTTCAGGTATAATTTTAATTTGCTTATGAGTACCATTAGCAATTCT -AGATAATGCTGCCATTGGTTCACCTTGAGAACCAGTACATAGTATTAATAACTCATGCTTCGGTACAGTA -TTAATTTTATTAGGTTCAATAAATGTTTCAGGTGGTGCTTTAATATAACCAAGTTCCATACCGATTTTAA -TATTGTTTTCCATCGAACGACCGAACGTAACAATTTTACGGTTATTTTTGATAGCAGCTTCAACTGCTTG -TTGAACTCGGTAAATATTAGAAGCAAAGGTAGCAAATATAATACGACCTTTACAATTGCGGAAGATCTTA -TCTACGTTTTGACCAACTTCACGTTCGCTTAAAGTAAAATCAGGCACAAGTGAATTTGTTGAGTCTGAAA -GTAAACATAGAACGCCTTCTTCGCCTAATTGAGCCATTTTAGCAATGTTTGCTGGTTTGCCTACAGGTGT -AAAATCAAATTTAAAGTCACCGGTATGAACTACTTTTCCTTCAGGTGTATCTACGATGACGCCATAAGTT -TCAGGAATACTATGCGTAGTTAAGTAGAAAGAAATCGTAAAGTGCTTAGATTTAATCACACTGTCCTCAT -TGATTTCATTTAGTTTAGCAGTACGTAATAAATGATGTTCTTCAAGTTTATTACGGATTAAACCTAATGC -TAAAGGACCACCATAAATAGGTATATTAAGTTGTTTTAATAGGAAGGGCACACCGCCTATATGGTCTTCG -TGACCATGTGTTATAAATAGGCCAACAATTTTATCTTGGTTTTGAACTAGATATGTGTAGTCAGGTATAA -CATAATCAATCCCTAATAAGTTATCATCAGGGAATTTGATACCTGCATCGATAATGACAATTTCGTCTTT -ATACTCAACTGCATAAGTATTTTTACCGATTTCACCTAGACCTCCAAGTGCATATACACCTACTTCATTT -GGATGTAATTGTTTCATTATTTAGCAATCTCCACATTAAAGTGTTCTGAGTTTTCTTTTTCGTAATCTAA -ATGTGCGCCCTCTAATTTAGTGATAAATTCGATATTAAAATTACGATCTTTCAAGTAACGACGTACTTGT -TCTTCTGTTTGAGCTTCAACATAAAGTGATTGTGTATTTTCACGCACAATTACCTCGTCTCTGTTATGTT -GATAAAAAACTTTAAATACTGCCATGTTAAAAATTCCTCCTAAGAATGTTTGTTTAATTTATTGTTAACC -CTAGTAAAATCGTATTGGAGTATATATCGATAAATTCATTCCAATCATCTCTATAATGTAACTTAATAAC -GATTTGGTTAATAACTAGGTTCATCATGTCGTTCATTTTAAAAAATTAGTGAAATAACACTAAAATTTCA -GTTAAATCTTATTTTACATGATGAATGATAATAAATAAAGCAGTTTATCTCACTAGAAATCTAAGTATTT -CGAATAAATGTGCAGTTCTATTTATTAAAATAAATGTAGAGATTATAAATTAATGTTAAGAAAGAATTAA -AGGATTTTATATGAAACGGTAAAATTTAAATGAGGGGATAAAAAGTTTGGTAGAAAGGTGAAAATATTTT -ACTGTTATTTTTTAGGAAAAGTTGTAAAAGAAAAAGCTTAGGACATCATATTTATCCTAAGCTTTGATAA -TTAGTAATAGTGTGTTTTAAACTTCTACAGCATCTGTATGTGGTTGTAATGGGTGGTCTTTGTCAATGTG -ATCATAGAACATTACACCATTTAAATGATCAATTTCATGTTGGAAAACAATTGCTGGATATCCTTTTAGT -CGTAACTGTATATCATTACCTTCGATGTCTTTGGCTTTAATTGTAATTCTATTATGACGGTGAACTAGAC -CAGCAACATTATCATCGACACTAAGGCAACCTTCACCAGTTGGTAAATAAGCTTCTTGAACGCTATGACT -TACAATTTTAGGGTTCACAAGCATATAGTCATAAGATTTGCCACTGCCATCATCTGGTATTAAAACAGCA -ATCATACGTTTAGAAATATTAATTTGAGGTGCAGCCAAACCAACGCCTGAACGTAAACCGTAACGTTTCG -CGATTTCCTCATCTTGACTATTTACTAAAAACTCTCTCATGGCGATTAATGTTTCTTTTTCTTCTTTAGT -TAATGGTAATTCTAGCTCAGCTGCTTTTTGACGCAAAGTTGGATGACCATCTCTAATGATGTCTTTCATT -GTTAACATATATTGCACCTTCCTTATTTTAATTTGTTTTAGTTGAATGACAGTAAAAAGGTTGTTAAGAT -ACTCATACATTTTTATGTGTAAGTATGTACAAAGTTAACCAACTACTGCCAAGGTTTATTTTAGATAGTA -TATGTAAATTTTCAGATATGCTAATTGCCTAAAAAATGATTAAAGTGTTGATTTCAGGCAATGATACTTT -AGAAATTTATTTATCGTCTTGACTTTAAAAATTATATTATAAATGACGTAACTGTCAACAGATATACTTA -GTAATGAAGATGTGTAATGTAATTGTTTAAAATTGATTTCCAAGCAGATTTTATTTATCATTTAATTTAA -ATAGCAAGTGGAGGTACAAGTAATGAAATTTGGAAAAACAATCGCAGTAGTATTAGCATCTAGTGTCTTG -CTTGCAGGATGTACTACGGATAAAAAAGAAATTAAGGCATATTTAAAGCAAGTGGATAAAATTAAAGACG -ATGAAGAACCAATTAAAACTGTTGGTAAGAAAATTGCTGAATTAGATGAGAAAAAGAAAAAATTAACTGA -AGATGTCAATAGTAAAGATACAGCAGTTCGCGGTAAAGCAGTAAAAGACTTAATTAAAAATGCCGATGAT -CGTCTAAAGGAATTTGAAAAAGAAGAAGACGCAATTAAGAAGTCTGAACAAGACTTTAAGAAAGCAAAAA -GTCACGTTGATAATATTGATAATGATGTTAAACGTAAAGAAGTAAAACAATTAGATGATGTATTAAAAGA -AAAATATAAGTTGCACAGTGATTACGCGAAAGCATATAAAAAGGCTGTAAACTCAGAAAAAACATTATTT -AAATATTTAAATCAAAATGATGCGACACAACAAGGTGTTAATGAAAAATCAAAAGCAATAGAACAGAACT -ATAAAAAGTTAAAAGAAGTATCAGATAAGTATACGAAAGTACTAAATAAGGTTGGTAAAGAAAAGCAAGA -CGTTGATCAATTTAAATAATTAATATGATACAGATGGTAGGAAACAACTAATACAGTTCCTGTTATCTGT -ATCTTTTTTTATTAAAACAGAACTTTTTCAAATGGTTTAACAGTCCCATTTATTTGTGGTACAATTAGTA -AGGATAAAATGAATTTCTATACAATTATGGGAAAGGTATGGTGAATTGAATGGCTCCTAAGTTACAAGCC -CAATTCGATGCAGTAAAAGTTTTAAATGATACTCAATCGAAATTTGAAATGGTTCAAATTTTGGATGAGA -ATGGTAACGTCGTAAATGAAGACTTAGTACCTGATCTTACGGATGAACAATTAGTAGAATTAATGGAAAG -AATGGTATGGACTCGTATCCTTGATCAACGTTCTATCTCATTAAACAGACAAGGACGTTTAGGTTTCTAT -GCACCAACTGCTGGTCAAGAAGCATCACAATTAGCGTCACAATACGCTTTAGAAAAAGAAGATTACATTT -TACCAGGATACAGAGATGTTCCTCAAATTATTTGGCATGGTTTACCATTAACTGAAGCTTTCTTATTCTC -AAGAGGTCACTTCAAAGGAAATCAATTCCCTGAAGGCGTTAATGCATTAAGCCCACAAATTATTATCGGT -GCACAATACATTCAAACTGCTGGCGTTGCATTTGCACTTAAAAAACGTGGTAAAAATGCAGTTGCAATCA -CTTACACTGGTGACGGTGGTTCTTCACAAGGTGATTTCTACGAAGGTATTAACTTTGCAGCAGCTTATAA -AGCACCTGCAATTTTCGTTATTCAAAACAATAACTATGCAATTTCAACACCAAGAAGCAAGCAAACTGCT -GCTGAAACATTAGCTCAAAAAGCAATTGCTGTAGGTATTCCTGGTATCCAAGTTGATGGTATGGATGCGT -TAGCTGTATATCAAGCAACTAAAGAAGCACGTGACCGCGCAGTTGCAGGTGAAGGCCCAACATTAATTGA -AACTATGACATATCGTTATGGTCCTCATACAATGGCTGGTGACGATCCAACTCGTTACAGAACTTCAGAT -GAAGATGCTGAATGGGAGAAAAAAGACCCATTAGTACGTTTCCGTAAATTCCTTGAAAACAAAGGTTTAT -GGAATGAAGACAAAGAAAATGAAGTTATTGAACGTGCAAAAGCTGATATTAAAGCAGCAATTAAAGAGGC -TGATAACACTGAAAAACAAACTGTTACTTCTCTAATGGAAATTATGTATGAAGATATGCCTCAAAACTTA -GCAGAACAATATGAAATATACAAAGAGAAGGAGTCGAAGTAAGCCATGGCACAAATGACAATGGTTCAAG -CGATTAATGATGCGCTTAAAACTGAACTTAAAAATGACCAAGATGTTTTAATTTTTGGTGAAGACGTTGG -TGTTAACGGCGGTGTTTTCCGTGTTACTGAAGGACTACAAAAAGAATTTGGTGAAGATAGAGTATTCGAT -ACACCTTTAGCTGAATCAGGTATTGGTGGTTTAGCAATGGGTCTTGCAGTTGAAGGATTCCGTCCGGTTA -TGGAAGTACAATTCTTAGGTTTCGTATTCGAAGTATTTGATGCGATTGCTGGACAAATTGCACGTACTCG -TTTCCGTTCAGGCGGTACTAAAACTGCACCTGTAACAATTCGTAGCCCATTTGGTGGTGGCGTACACACA -CCTGAATTGCACGCAGATAACTTAGAAGGTATTTTAGCTCAATCTCCAGGTCTAAAGGTTGTTATTCCTT -CAGGCCCATACGATGCGAAAGGTTTATTAATTTCTTCTATTAGAAGTAATGACCCAGTCGTATACTTAGA -GCATATGAAATTGTATCGTTCATTCCGTGAAGAAGTACCTGAAGAAGAATATACAATTGACATTGGTAAG -GCTAATGTGAAAAAAGAAGGTAATGACATTTCAATCATCACATACGGTGCAATGGTTCAAGAATCAATGA -AAGCTGCAGAAGAACTTGAAAAAGATGGTTATTCTGTTGAAGTAATTGACTTACGTACTGTTCAACCAAT -CGATGTTGATACAATTGTAGCTTCAGTTGAAAAAACTGGTCGTGCAGTTGTAGTTCAAGAAGCACAACGT -CAAGCTGGTGTTGGTGCAGCAGTTGTAGCTGAATTAAGTGAACGTGCAATCCTTTCATTAGAAGCACCTA -TTGGAAGAGTTGCAGCAGCAGATACAATTTATCCATTCACTCAAGCTGAAAATGTTTGGTTACCAAACAA -AAATGACATCATCGAAAAAGCAAAAGAAACTTTAGAATTTTAATACATTGTAAAAGTTAACGAAGTTAGC -GTATTTTAGTCTCATTGATTAAAATGAAATGTTTAATTTACGAAATCTTAGGAGGGCAAAAACGTGGCAT -TTGAATTTAGATTACCCGATATCGGGGAAGGTATCCACGAAGGTGAAATTGTAAAATGGTTTGTTAAAGC -TGGAGATACTATTGAAGAAGACGATGTTTTAGCTGAGGTACAAAACGATAAATCAGTAGTAGAAATCCCA -TCACCAGTATCTGGTACTGTAGAAGAAGTTATGGTAGAAGAAGGTACAGTAGCTGTAGTTGGTGACGTTA -TTGTTAAAATCGATGCACCTGATGCAGAAGATATGCAATTTAAAGGTCATGATGATGATTCATCATCTAA -AGAAGAACCTGCGAAAGAGGAAGCGCCAGCAGAGCAAGCACCTGTAGCTACTCAAACTGAAGAAGTAGAT -GAAAACAGAACTGTAAAAGCAATGCCTTCAGTACGTAAATACGCACGTGAAAAAGGTGTTAACATTAAAG -CAGTTTCTGGATCTGGTAAAAATGGTCGTATTACAAAAGAAGATGTAGATGCATACTTAAATGGTGGTGC -ACCAACAGCTTCAAATGAATCAGCTGCTTCAGCTACAAATGAAGAAGTTGCTGAAACTCCTGCAGCACCT -GCAGCAGTATCATTAGAAGGCGACTTCCCAGAAACAACTGAAAAAATCCCTGCTATGCGTAGAGCAATTG -CGAAAGCAATGGTTAACTCTAAGCATACTGCACCTCATGTAACATTAATGGATGAAATTGATGTTCAAGC -ATTATGGGATCACCGTAAGAAATTTAAAGAAATCGCAGCTGAACAAGGTACTAAGTTAACATTCTTACCA -TATGTTGTTAAAGCACTTGTTTCTGCATTGAAAAAATACCCAGCACTTAATACTTCATTCAATGAAGAAG -CTGGTGAAATTGTGCATAAACATTACTGGAATATCGGTATTGCGGCGGACACTGATAGAGGCTTATTAGT -ACCTGTAGTGAAACATGCTGACCGTAAATCTATTTTCCAAATTTCTGATGAAATTAACGAATTAGCTGTT -AAAGCACGTGATGGTAAATTAACAGCCGATGAAATGAAAGGTGCAACATGCACAATCAGTAATATCGGTT -CAGCTGGTGGACAATGGTTCACTCCAGTTATTAATCACCCAGAAGTAGCAATCTTAGGAATTGGCCGTAT -TGCTCAAAAACCTATCGTTAAAGATGGAGAAATTGTTGCAGCACCAGTATTAGCATTATCATTAAGCTTT -GACCACAGACAAATTGATGGTGCAACTGGCCAAAATGCAATGAATCACATTAAACGCTTATTAAATAATC -CAGAATTATTATTAATGGAGGGGTAAAACATGGTAGTTGGAGATTTCCCAATTGAAACAGATACTATAGT -AATCGGAGCAGGTCCTGGTGGATACGTTGCAGCAATTCGTGCAGCTCAATTAGGACAAAAAGTAACAATC -GTTGAGAAAGGTAATCTTGGTGGTGTTTGCTTAAACGTAGGATGTATTCCTTCAAAAGCATTACTACATG -CTTCTCACCGTTTTGTTGAAGCACAACATTCTGAAAACTTAGGTGTTATTGCTGAAAGTGTTTCTTTAAA -CTTCCAAAAAGTTCAAGAATTCAAATCATCAGTTGTTAATAAATTAACTGGTGGTGTTGAAGGCTTACTT -AAAGGTAACAAAGTAAACATCGTTAAAGGTGAAGCATATTTCGTAGATAACAATAGCTTACGTGTTATGG -ACGAAAAGAGCGCACAAACATACAACTTTAAAAACGCAATCATTGCAACAGGTTCAAGACCAATTGAAAT -TCCTAATTTCAAATTCGGTAAACGTGTTATCGACTCAACAGGTGCTTTAAATTTACAAGAAGTACCAGGT -AAATTAGTTGTAGTTGGTGGAGGATACATTGGATCAGAATTAGGTACAGCATTTGCTAACTTTGGTTCAG -AAGTAACCATCCTTGAAGGTGCTAAAGATATCTTAGGTGGCTTCGAAAAACAAATGACACAACCTGTTAA -AAAAGGTATGAAAGAAAAAGGTGTTGAAATCGTTACTGAAGCAATGGCTAAATCAGCTGAAGAAACAGAT -AACGGAGTTAAAGTTACTTATGAAGCTAAAGGCGAAGAGAAAACAATCGAAGCTGATTATGTATTAGTAA -CTGTAGGTCGTCGTCCAAACACAGACGAATTAGGCCTAGAAGAATTAGGTGTTAAATTCGCTGACCGTGG -ATTATTAGAAGTTGATAAACAAAGCCGTACGTCTATCAGCAATATCTATGCAATTGGTGATATCGTTCCA -GGTTTACCACTTGCTCACAAAGCTAGCTATGAAGCTAAAGTTGCTGCTGAAGCAATTGATGGTCAAGCTG -CTGAAGTTGATTACATTGGTATGCCAGCAGTATGCTTTACTGAACCTGAATTAGCTACAGTTGGTTATTC -AGAAGCGCAAGCTAAAGAAGAAGGTTTAGCAATTAAAGCTTCTAAATTTCCATATGCAGCAAATGGTCGT -GCATTATCATTAGACGATACTAACGGATTTGTTAAACTTATTACACTTAAAGAAGATGATACTTTAATCG -GTGCTCAAGTAGTTGGTACTGGTGCATCAGATATTATCTCTGAATTAGGTTTAGCAATTGAAGCTGGTAT -GAATGCTGAAGATATCGCATTAACAATCCATGCACATCCAACATTAGGTGAGATGACTATGGAAGCAGCT -GAAAAAGCTATCGGATACCCAATCCATACAATGTAATAACTGATTATCTATAAAGATTCAGTTTTTAAAA -GCTGTAGCATATGCTACGGCTTTTTTGTTTTAGGTAATAAAGTAGTGTAAGGAAATTGATTTGAGATATC -GTTAACATGTGACATGCATGTTATACTAGCGATGCTAACAAAAGAATTGAAATGGAGGGTTCAACAATGG -AATATGAGTATCCAATTGATTTAGACTGGAGTAATGAAGAGATGATTTTAGTGATAAATTTCTTTAATCA -TGTAGAGAAGTATTATGAATCCGGCGTGACGGCAGGAGACTTTATGGATGCATATAAAAGATTTAAAGAA -ATTGTGCCTGCTAAAGCAGAGGAAAAACAAATTTTTAATACTTTCGAAAAAAGTAGTGGCTATAATAGTT -ACAAAGCAGTTCAAGATGTAAAAACTCACTCTGAAGAACAAAGAGTAACAGCTAAAAAATAATTCGTTCG -AAATTAACACAATTTAATAGGATTTTTTCTTTAAAACTATTGCTAATAAAGCTATATTTTGATACCTTTA -TCAAGTGTTAAACAAAATGTTTGATAAAAGTAAACTTAATATAGCTTTTTTAGGTGGAAAGATAAATGAA -CATAGGTAATAAAATTAAAAATCTTAGAAGAATTAAAAATTTAACGCAAGAAGAACTTGCTGAACGTACT -GACTTATCGAAAGGCTACATTTCACAAATAGAAAGTGAACATGCCTCACCAAGTATGGAAACTTTCTTAA -ATATTATAGAGGTGTTAGGGACGACGCCAAGTGAATTTTTTAAAGACAGTGAAAATGAAAAAGTATTATA -CAAGAAGGAAGAACAAGTTATTTATGATGAGTATGATGAAGGTTATATATTAAATTGGTTAGTTTCAAAG -TCAAATGAATATGATATGGAGCCATTAATATTAACTTTAAAGCCTGGCGCATCATATAAAAATTTTAATC -CATCAGAGTCTGATACGTTTATTTATTGTATGTCAGGTCAGATAACACTTAATTTAGGCAAAGAGGTATA -TCAAGCACAAGAAGAAGACGTTTTGTATTTTAAAGCACGAGATAATCATCGTTTGTCAAATGAATCAAAC -AATGAAACACGAATACTTATTGTAGCGACAGCTTCATATTTATAGGGGGGATCTTATTTGGAACCGTTAT -TATCATTAAAATCAGTTAGTAAAAGCTATGATGATCTTAATATCTTAGATGACATAGATATTGATATTGA -ATCAGGATACTTTTATACATTATTAGGTCCTTCAGGTTGTGGTAAAACAACAATTTTAAAATTAATTGCA -GGGTTTGAATATCCTGACAGTGGTGAAGTGATTTATCAAAACAAACCAATTGGTAATTTACCACCAAATA -AACGTAAAGTGAATACAGTCTTTCAAGATTATGCATTATTTCCACACTTAAACGTCTATGATAATATCGC -TTTCGGTTTGAAATTAAAAAAATTATCAAAAACCGAAATTGATCAAAAAGTAACTGAGGCATTAAAATTA -GTTAAGCTTTCAGGTTATGAAAAAAGGAATATTAATGAAATGAGTGGCGGACAAAAGCAACGTGTTGCAA -TTGCACGTGCTATTGTAAATGAACCAGAAATATTATTGTTAGATGAATCTTTATCCGCATTAGATTTGAA -ATTGCGTACTGAAATGCAATATGAATTACGAGAATTGCAATCTAGATTAGGTATTACATTTATATTTGTA -ACACATGATCAAGAAGAAGCTTTAGCACTAAGTGACTTTCTTTTTGTATTAAAAGATGGGAAAATTCAAC -AATTTGGTACACCAACAGATATATATGACGAACCAGTGAATCGATTTGTAGCTGATTTTATTGGAGAATC -TAATATTGTTGAAGGGCGCATGGTTAGAGATTATGTCGTGAATATTTATGGGCAAGATTTCGAATGTGTC -GATATGGGTATTCCTGAAAATAAAAAAGTAGAAGTCGTTATTCGACCAGAAGATATATCATTAATCAAAG -CTGAAGAAGGATTATTTAAAGCAACTGTTGATTCTATGTTGTTTAGAGGGGTCCACTATGAAATATGTTG -TATAGACAATAAAGGTTATGAATGGGTAATACAAACGACTAAAAAAGCCGAAGTAGGCAGCGAAGTTGGT -CTTTATTTTGATCCTGAAGCCATTCATATTATGGTTCCTGGTGAAACAGAAGAAGAGTTTGATAAACGTA -TTGAAAGCTATGAGGAAGTAGACAATGCGTAATACTAATAAATTTCTTTTAATCCCGTATTTACTATGGA -TGGTTATATTTATTATTGTACCAGTTGTATTACTCATTTATTTTTCATTTTTAGATATCAATGGACATTT -TAGTTTCACGAATTATCAACAAATTTTTACTACAAAATATTTAAAAATGTTTGCATATTCAATTTTATAT -GCCGCCTTAATAACAATTATTACGTTGGCTATCAGTTATCCAGCTGCCTATTATATTACTCGCTCGAAAT -TTCAAAATATCTTATTAATGATAATGATTATTCCAACATGGATAAATTTATTGTTGAAGACATATGCTTT -TATAGGTTTATTAAGTCACGATGGTGTGATTAATCAATTTTTCCACTTATTTAATTTACCATCATTCAAT -TTGTTATTTACAACTGGTGCCTTTTTAGTAGTGGCAAGTTATATTTATATACCATTTATGATTTTACCTA -TATTTAATAGCATGAAAGCAATTCCTAATAATTTATTGCAAGCCTCAAGTGATTTAGGTGCTAGTCCATT -CTATACTTTTAGAAAAGTAATCATGCCGTTAACAAAAGAAGGTGTTATGACTGGGATTCAAGTAACCTTT -ATTCCATCACTTTCATTATTTATGATTACAAGATTAATTGCAGGTAATAAAGTCATAAATATAGGTACGG -CAATAGAGGAGCAATTTTTAACAATTCAAAATTATGGTATGGGATCAACTATAGCTATATTCTTAATTGT -ATTTATGGCATTCATTTTAATCATTACAAAATCATCTAATGGGAGAGGGTGAATCATATGAAATGGTATG -GAAAGCTGTATATCGGGATACTTTTAGCGATTTTATACATCCCAATATTCTTTTTAATGTTCTATTCATT -CAATTCGGCTGGTAATATGATTCACTTTGAACATTTTACATTAGAGCATTATCAATCATTATTTCAAAAT -GATCATTTAATGTCGGTCATTTTTAACACGATAGCTGTAGCACTTTTAGCAGCCTCAATTTCTACAGTTA -TTGGTACATTTGGTGCCATTGCTATTTATTATTTAAGAAATAAAAAGTTTAAAGTAACTTTACTAACATT -GAATAATGTCTTGATGGTATCATCCGACGTTGTCATAGGTGCATCATTCTTAATTATGTTTACAACGATT -GGCCATTTTACTGGTCTTGGTTTAGGATTTTGGACAGTTCTAATATCTCATATTGCATTTTGCATACCTA -TAGTTGTGATTATCGTCTTACCACAACTGTATGAAATGAATAATAATATGTTAAATGCTGCAAGAGATTT -AGGAGCGACTGAACCACAATTATTAAGCAACATTATTATTCCTAATATTTTACCTTCTATTATAGGAGGA -TTCTTTATGGCTTTAACTTATTCACTAGACGATTTCACAGTAAGTTTCTTCGTTACTGGTAATGGCTTTA -GTGTGTTATCAGTTGAAGTTTATGCTATGGCGAGAAAAGGAATTAGTATGGAAATTAATGCGATTTCAAC -ATTATTGTTTGCTGTTATTGTATTAGGAATACTAGGATATTATTTGATTCAATACGTGATAAATAAGAAA -AAACTAATCAAGCGAGGTGTAAAATAATGAAACGTTTTTTACAACTCATTATAGGTGCATTAGTTGTGGG -TATGCTTTGTCTTACTTTAAGTCATTGGTTTAAATCTAAAGAACAAGTGCATACAAATCAAAAAATTTAC -GTATACAATTGGGGCGAATATATTGATCCAGAGTTAATTAAGAAATTTGAAAAAGAAACTGGCATTCAAG -TCGTTTATGAAACTTTCGATTCAAATGAAGCGATGGAAGCCAAAATTCGCAATGGTGGTACACATTATGA -TGTTGCTTTTCCTAGTGAATATACAGTTCAAAAATTGAAAAGAGATCATTTATTGTTACCAATAGATCAT -AATAAAGTACCTAATATTAAAAATTTAGATTCAGATTATATGAATATGTCATTTGATAAAGGCAATAAAT -ATTCTTTACCTTATTTCTTTGGAACTGTAGGTATTTTATATAATAAAGAAAAGTATCCAAATGAATCATT -TGATAGTTGGAAGTCATTGTATAATCCTAAATTTAAAAACCAAATTTTACTAGTTGACGGTGCTAGAGAG -ATTATAGGCATGAGTTTGAATAAACTTGGGTATAATCTTAATGACCGTAATTCGCACCATTTAAAAGAAG -CAGAGCGAGATTTAACTAAATTAGCACCACAAGTAAGAGGTGTCGTAGGTGATGAAATTACCATGATGCT -TGAACAAAATGAAGGTAACATTGCGGTTGTTTGGAGTGGTGTTGCAGCACCTCTAGTGCAAGAAGGGGAT -AAATATAACTATGTTATTCCTAAAGAAGGATCGAATTTATGGTTCGACAATATGGTAATTCCAAAAACGG -CACAAAATAAAGAGGGTGCATATAAATTTATGAATTTTTTATTAGATGCTAAAAATAACAAGCAAAATAC -TGAATTCGTAGGCTATGCAACGCCAAACAAGGCTGCTCGACAATTGTTGCCTAAAGAGATTAAAGACGAC -CATCGTTTCTATCCGACTAAGAAAGAGCAAGAACGCCTTGAAGTTTATAAAGATTTAGGACCTGAAGTTT -TAAGTGAATACAATGAAAACTTTTTGAATTTCAAAATGTCATTAAAATAAAATCATAAATAGTAGTTATT -TACTGTATATTTAGTTATAATAACGGGATAAGTACTATAAGGAGTTGTAACGAATGACTGGAGAACAATT -TACTCAAATTAAACGTCCAGTAAGTAGATTAACTGAAAAAGTTCTAGGTTGGTTATGTTGGGTGATGTTA -TTAGTGCTTACTGTCATTACGATGTTTATAGCACTTGTTTCATTCAGTAATAACACATCGATTGCTAATC -TTGAAAATACATTAAACAATAATGCATTTATCCAGCAATTATTAGCTGGAAATGGCTATAATACAACACA -ATTTGTAATATGGTTACAAAATGGTATATGGGCTATTATCGTTTACCTTATTGTTTGTTTGTTGATTTCA -TTTTTAGCTCTCATATCTATGAATATAAGAATCTTGTCAGGTTTCTTATTCTTAATATCAGCAATTGTAA -CGATTCCTTTAGTTTTACTTATCGTTACTTTAATCATTCCGATATTATTCTTTATTATTGCGATGATGCT -ATTTATAAGAAAAGATAAAGTTGAAATGGTTGCGCCACAATATTATGAAGAGTACAATGGACCGATTTAT -GATTATCGTGAACCTGTGTATGAGCGCCCACAACCGAAAGATGATTATTATGATGTGCCTAAATATGAAA -AAGAATTGGATAAATCAAACACTGTATATGATCAAGAACTGGAAAGAGATAAATATGATCAATTTCCTAA -ACGTGCAGTTGAAAGTGAATATAATCATGATGAGCGCACTGAGGAAGAACCATCAGTATTATCCAGACAG -GCTAAATACAAACAAAAAAGTACTGAAGAACTAGGTATTGAAGATGATGGTTATTATGCAGAACCTGAAG -TTGATCCAAAAGAATTGAAAGCACAACAAAAGCGAGAAAAAGCTGAAATTAAAGCTAAGAAAAAAGAAAA -ACGTAAAGCTTATAACCAACGAATGAAAGAACGTAGGAAAAATCAACCTAGCGCAGTTAGTCAACGTCGA -ATGAATTTTGAAGAGCGACGTCAAATTTACAACAATGATATTTCTGAAGAACGCAATTCAAGTGAAGTTA -AGGACAAAAAAGAGCAAGAATAAATATTGATGATACCCAGATTAGTAAGTAGAGGTCTTTTGCTTATTAA -TCTGGGTTTTTATATGAGGTTAATTATCGATAACGTTTAATTAAAGTGTTTAGGTGTCATAATTTTAAAT -GACGATTTCTCTTTACCATACAGCTAAATTACCATCAATCTGAATTCAGATGTTTATTATAAAAATTAGA -TGAAAAAAATGTTAATATACAAGTAAATTAATGTACTTATATCTATAGGCTCGTAGTATACTTATTAAAA -TATTAAACAAAGAAAGGATTTTAAGATGAATAGAAAACCTGAATTAATCATGGCTTGGATTGCAAATAGT -ATTAGTATTATTTATTTATTAGTTATGGGGCTATCCTATTTTTCTTTAAAAAGTGGTAATGCATCACAAC -GTGAAGAATTAGCGAAGCAATTATCTCAGAACGGTGGCAAGGTTTCTTTAGATATGCTTCAGACAACAAT -GGGTGCATTAGCAATTATTTTATTAATTTCAACACTTTATGGTATATTTGCGACAATTTGTATTAAAGGA -CGTAGAAAATTATCGATTATACTTTTTGTTATCGCGATAATTGTAAGTTTGATGGCTCTTAATTTAATTG -CAATTGTCTTATGGATTATCGTGATGATTATGTTGATTTCTAAAAAAGAATCAAAAGAAACTACCCATAA -GGACGATGAGTATATTTATCATTAATATGTTCATAGCAAAAGAAAAACCATTAAAATGTTAAGTTGTTAA -TTATTAGATACAACCAACATTTTAATGGTTTTATTTTTAACCTTGTAGTTCTTGGAATGTTTGAACGATT -AAATAGACATTTAAAATACTTAGAATAATAATAAGTGTCCATGAAATGATATTAACCCATGTTTTATTAT -AGAAAGGTCCCATCAAGTCTTTATTACTAGTAGCTAATTGTAATGGTATTAAACAGAATGGCAGAGCAAT -ACTTAAAAATACTTGAGAGAATACAAGTAGTTGCTCAATTTTAGCTGCATTACCTTTAAAAATGATTAAA -CATACGATAACAGGAATGACAGCAAGGGAACGTGTAATTAAACGTCTTAACCAATTTGGTATGTGTAATC -TTAAAAATCCTTCCATTACAATTTGTCCTGCTAAAGTACCAGTAATCGTTGAATTTTGACCTGACGCTAA -TAATGCAACTGCAAATAATGTACTCATGATTGCACCCATTGTTGCACCTAGTACAGGTTCAGTTTTTAAG -GCGTGATATAAATCATAGAAACCACCTAAATCGTCAGCGTTTGAGTTGAAAAATAGTGATGCTCCTAACA -CTAATAATAAGCAATTGACTACAAATGCGATTGATAACTGAATGTTCGAATCTATCGTAGCAAATTTAAT -CGCTTGCGCCTTTTCTTCATTGTTATGTCTTGAGTATGTTCTAGATTGTACAATTGATGAATGTAAGTAC -AAATTATGAGGCATAATTGTTGCTCCAATAATACCTAATGCAATATAGAGAATGCCGTTATTTGTAATGA -TTTCACTATGTGGAATAAATCCATTTAACACAGCGTTCAACTGTGGTGATGAAATATAGACTTCAAATAT -AAAGATGAATAACACTGTGAAAATTAATGTACCAACAATAGCTTCAATTTTTCTAAAACCATATTTCATT -ATAAATAGTAGTAAAAATACATCAAGTACAGTAATTAGTGCACCGACAATTAAAGGTATGTTAAATAGGA -GATTGAGAGCAATAGCACTACCAATAACCTCAGCAATATCTGTGGCGATAATTGCTAGTTCTGCAATAAT -CCAAAAGATTATAGCAATAGGTCTTGATAAATAATGTCGTGTCATTTGAGCTAAGTCCATACCTGTTGCT -ATTCCTAATCTCACTGTCATGCTTTGAAGTAACATTGCTGATAACCTTGAAATAAGATTTCCGAATAGCA -AAGTATAGCCATATTGCGCGCCACCTTGCATTGATGTTATCCAGTTTCCGGAATCCATGTAACCACCAGC -GACTAATAACCCAGGCCCAAGAAATGATAAAAATTTCTGTTTATTTGAACTGCGATGATCGAATTTAATT -GTATTGTTTATTTCGTCTAAACTTAATTGTTCATTTGTTGAATGTCGTTTATTATTCATTTTGACTCACC -TCTACTTCTTATGGACAATATAATAACCTAATAAAACGTTTAGGTCAACCTAAATTTATTTTAATTTTTT -TAAAAGTATGAATTATTATGTTGAACGTTCAATTTAATGGTAAGTAAAAAGAGCACGAAATCATGGATGT -GATTACGTGCTCTATTATTTAAACAAAGTTATTTATGCAGAATAAAATGGTAAGAACTGATCGAAGGTTT -CTTCTAAAAATGCAATAAATGCTTTGTCACTTTTTAATCTTTTATCTTGTGGTGTGATTGCACGCGCTAT -AAAGAATTCACCTTTTTTCACATTGATGGCTCTTTGTATCGCTTCTTTTAAATCATCATCCGTTAAATCT -TTAATAAATGGTTTATCAGGTTTCATATGATCTAAGCATACACGATAATCATCAGGTAATTGTTGAATAG -CTTTAAATTTTCTTTCAAAAACTTTTGCACGTGTTGCTTTATCTTTTGCTTCATGCATGATTCCAAACAT -AACAAACAGTTGATCTTCAAACATACCAATTTGGAAATGAGGTAACATTTTATAGCCTCGTTTACTTGTA -GCAAAAGCAACCCATGTATCTTTAGGAGGATTCACACTTCTTCTAGCATGCTTTGCTACGTGAGGATAAA -ATGTCTCACCAGTTTGACTTGTAAAGAAGTCACTAAAATATTCTCCTAATTCATGGAGTTGTGGTCGTAT -GTATTCGTTTACAGCTTCCATTCGTGCGTCTAAGCCTTCTACGTTGAATGCTTTGAAATCTTTAGGTTTA -AATGTATATTTTGTCATAGAGTACCTCCTGTATAGTGTTTAAAAATATTGTAGCATATGTTTTATCAATT -GCGGATTAAGACGCTCTCATTAAAATTAGTATTTTCATTTTTATCATAAGAAGTTATTTTTATAAAATGT -TGATGTATAATAAAGATGTTAGGAGATGATGTTATGGCACTTTATGGATTTGCCCAAGGACTTATTCAAG -AAGCAGGAATTAGAATTAAACAATTGATGGAGCAAAATTTAACAATTGAAACAAAGTCAAATCCGAATGA -CCTTGTTACAAATGTAGATAAAGCAACAGAAGATTTTATTTTTGATACAATTTTAGAAACATATCCCAAT -CATCAAGTATTAGGTGAAGAAGGGCATGGTCATGACATCGATACTTCCAAAGGTACGGTATGGGTTGTTG -ACCCAATAGACGGTACATTGAATTTTGTTCATCAACAAGAAAATTTCGCGATTTCAATTGGTATTTATAT -CGATGGTAAACCTTATGCAGGTTTTGTATATGATGTTATGGCTGATGTCTTATATCATGCTAAAGTAGGG -GAAGGTGCATATCGAGGTAGCCAACCCTTGAAACCATTGAATGATTCTAATCTAAGACAAAGCATTATTG -GGATCAATCCGAACTGGTTGACTAAACCTGTGCTAGGAGAGATTTTTAAGGATGTCGTAAATATTTCAAG -AAGTGCAAGGGCATATGGTAGTGCAGCGCTTGAAATTGTTTCTGTCGCTACCGGTAATTTAGAAGCATAT -ATGACACCTAGACTCCAACCGTGGGATTTTGCTGGAGGACTAGTCATTTTAAATGAGGTGGACGGTCTAG -CTTCTAATTTACTACGAGAACCATTAACAATTAGTGGTCCAAATTCAATCTTAGTTGGTAATCGTGGTGT -TCATAGAGAGATCCTCGGTGTATATTTAGAGCCACATCGCGATGCGTTAATACAATTACATGAACAACGA -TTTAAAAGAAAATCAAAATAATTACCAAAAGCGTAATATGTAGTCCTAACAATTAGGTGACATATTACGT -TTTTATATCTTAAATAATAAAAACACGCGCCAATATAAAACCATTTAAATGTTCATCATGAACATGTGTG -GTCTTTAATCAACGCGTGTTATTGTCGATATAACTTATAGCCAATCGTTTTCTCGATATTTTTTCTTTGT -AGTAAATCCAATTCCAAAGGTTGCAACGAGTAATATAAATGTTAAAATCATCATTGGTACATTTGATGCA -CCAACAGCAAAACTAAATAATACTAAGAAAATAACAGCTAATATAGAAAATACCCAAAAGATATTTTTAG -ATTTTTTTTGTTTCATCCTATCCCCACCTTTTGCTTATCTTTTCTCAATTATATGATATAATAAAAAAGT -TGTAATTAAAAGTGGGATTTTACTTAAGAAAGAAGGAAACTATTTATATGACTAATAAAAGAGAAGATGT -CCGCAATATAGCAATTATTGCTCACGTTGACCATGGTAAAACAACTTTAGTAGATGAGTTGTTAAAACAA -TCTGGTATATTCAGAGAAAATGAACATGTCGATGAACGTGCAATGGACTCTAACGATATCGAAAGAGAGC -GTGGAATTACGATTCTAGCCAAAAATACGGCTGTTGATTATAAAGGTACACTTATTAATATTTTGGATAC -ACCAGGACATGCTGACTTTGGTGGAGAAGTAGAACGTATTATGAAAATGGTTGATGGGGTTGTCTTAGTA -GTAGATGCGTATGAAGGTACAATGCCTCAAACACGTTTTGTACTTAAAAAAGCGCTAGAACAAAACCTAA -AACCTGTTGTTGTTGTTAATAAAATTGATAAACCATCAGCACGTCCAGAGGGTGTTGTAGATGAAGTTTT -AGATTTATTTATTGAATTAGAAGCAAACGATGAACAATTAGAATTCCCTGTTGTTTATGCTTCAGCAGTA -AATGGTACAGCTAGCTTAGATCCTGAAAAACAAGATGATAATTTACAATCATTATATGAAACAATTATTG -ATTATGTACCAGCTCCAATTGATAACAGTGATGAGCCATTACAATTCCAAGTAGCATTGTTGGACTACAA -TGATTATGTTGGTCGTATTGGTATTGGTCGTGTATTCAGAGGTAAAATGCGTGTCGGAGATAATGTATCA -CTAATTAAATTAGACGGTACAGTGAAAAACTTCCGTGTAACTAAAATCTTTGGTTACTTTGGATTAAAAC -GTTTAGAAATTGAAGAAGCACAAGCTGGAGATTTAATTGCTGTTTCAGGTATGGAAGACATTAATGTTGG -TGAAACTGTAACACCACATGACCATCAAGAAGCATTGCCAGTTCTACGTATTGATGAGCCTACTCTTGAA -ATGACATTTAAAGTTAACAATTCACCATTTGCTGGCCGTGAAGGTGACTTTGTAACAGCGCGTCAAATTC -AAGAACGTTTAAATCAACAATTAGAAACAGATGTATCTTTGAAAGTTTCTAACACAGATTCTCCAGATAC -ATGGGTAGTTGCTGGTCGAGGTGAATTGCATTTATCAATCCTTATTGAAAATATGCGTCGTGAAGGTTAT -GAATTACAAGTTTCAAAACCACAAGTAATTATTAAAGAAATTGATGGTGTAATGTGTGAACCATTTGAAC -GTGTGCAATGTGAAGTGCCACAAGAAAATGCAGGTGCGGTTATTGAATCATTAGGTGCACGTAAAGGTGA -AATGGTTGATATGACTACAACTGATAATGGACTTACACGTTTAATCTTTAATGTACCGGCTCGTGGTATG -ATTGGTTATACGACTGAATTTATGTCAATGACAAGAGGTTACGGTATTATTAACCATACATTTGAAGAAT -TTAGACCACGTATTAAAGCGCAAATTGGCGGTCGTCGTAATGGTGCGTTAATTTCAATGGATCAAGGTTC -TGCAAGTACTTATGCCATTTTAGGACTTGAAGATAGAGGTGTAAACTTCATGGAACCTGGTACTGAAGTT -TATGAAGGTATGATTGTTGGTGAACATAATCGTGAAAATGATTTAACTGTTAATATCACTAAAACAAAAC -ATCAAACTAACGTACGTTCTGCAACGAAAGACCAAACACAAACAATGAATAGACCGCGTATACTAACATT -GGAAGAAGCGTTACAATTCATTAATGATGATGAACTTGTTGAGGTTACTCCAGAAAGCATACGTTTAAGA -AAGAAAATTTTAAACAAAAATGTTCGTGAAAAAGAAGCAAAGCGTATCAAACAAATGATGCAAGAAAATG -AATAATTAACATAATAAAAGAGAAGCTGAGCGATGAAAGTTGCTTAGCTTCTCTTTTGGCATATAATATT -TGAAAAAGTGTTTTAATGCTATCAGTTCCTGTTACTTTCACATTTTCAAATTTCTAACTTGTTAATTCAG -ATATTAATCGAGCGGATAGTGTTGCGCACGTTGTTTAGGGGTGTCTAGTCGACTTTTACAATCATCGCAC -ATAAATGTTCGAATAGGATTGTTTTTAAGTCGTTTAGACTCAGTTGTGCGCTCATCTATAAATACTTTTG -CATCACAGATAATGCATTGCACTTGTCTCAAATTAAATCACCTCAATATGAGTTACATGGTTGATTCGAT -ATGAATAACCATCTTCTTGATTGTAAATAAAACTATCTACACCATTATCGCTGTAAAGTCGTTTACCGTC -TTTTGCAAATTGGAAAAATAAATAGGGCAATAGATCTATCGGTATATCTAAATGATCATGCTCATTTGAT -AATCGAATAGTAGTTGCAGAGTCATGTGGTTCGGAATGTTTGAAAAATGGTGTCATATTAATGACAAATG -AACCTTCTAACATGGCACGTTTTTTATATTTTATTTCTGAATTTAAAGTAGGCGGATTAGTTTGTCCTTC -TAGGATAGCACGATTCCATTCATGATTATCTTCAAAGTCGATTGGTTTTGAACCATCAAATACACCTTTT -TCTAAATCTTCGATGCTAACTTTTCTATCATCGAAAATCCAAGTCGTACTATCTAATGTTATAGGAAACT -TTACAGCTCCTTTAATTTGTATCATTTTCCCACTCCCTATCAATGTATATAGCATTATTTTAACACAAAT -TGCTAACGACACATTTTAAATCTACTTGCTTTTTAATATTTAGTAAGATAAACTTTTAGTAAGACTTGAG -AATTTATATAGAGGGGGAGCGTGTCATGGCGAAACAAACAACAATGAAAAATGCAGCTTTGAAACAATTG -ACTAAAGATGCTGATGAAATCTTGCATCTGATTAAAGTTCAACTAGATAATTTAACATTACCTTCATGCC -CATTATATGAAGAAGTACTAGATACACAAATGTTTGGACTTCAAAAAGAAGTTGATTTTGCTGTTAAATT -AGGTTTAGTTGACCGCGAAGATGGCAAACAAATTATGTTACGTCTTGAGAAAGAACTTTCAAAATTACAT -GAAGCTTTTACACTTGTTTAAGGTTTAATATATAAGCATATTAAAACGGCGTGAGATATCGACAATTGAG -CAGCGCCGATTTTATATTTATAATTTAATTATTGATTAAAGTGGCTGTTATGTTGTCTTCTTGATGACAT -GTCAGTCACTTTTATTGGGTTTTAGCAATTCACGATATTAAGTAAACAAATATTCTATAAATTACCTCAA -GAGACCTGTTAATATTTGTGATTATGACTGTGTCATGTATATAATAAGTAACATGGATTTTTAAAATTAA -AGTATAAAACGAAATCATTTGAAGTATAAATTGTAGAATTGGATGACTGAATATATGAAGAATTTTAGAA -GTATTTTACGGTATATTGGTAAAACCTCAAAGTTTATTGATTACCCGTTATTAGTTACATATATTGTATT -GAGTTTAATTGGATTAGTGATGGTATATAGTGCCAGTATGGTTCCAGCAACTAAAGGTACATTGACTGGT -GGTATCGATGTTCCAGGAACGTATTTTTACAACCGACAATTAGCATATGTCATAATGAGTTTTATAATTG -TATTTTTTATTGCATTTTTAATGAATGTTAAATTACTGAGTAATATTAAAGTGCAAAAAGGTATGATTAT -AACTATCGTCTCGCTATTATTACTGACGTTAGTAATCGGTAAAGATATTAATGGTTCTAAAAGTTGGATA -AACTTAGGATTTATGAACTTACAGGCATCTGAGTTATTAAAAATTGCAATCATATTATATATCCCATTTA -TGATTAGTAAAAAAATGCCTAGAGTATTAAGTAAACCAAAATTAATTTTAAGTCCTATTGTATTAGCATT -AGGTTGTACGTTTTTAGTTTTCTTACAAAAAGACGTAGGGCAAACATTACTAATATTAATTATTTTAGTT -GCGATTATTTTTTATTCAGGAATTGGGGTAAACAAAGTCCTAAGATTTGGAATACCAGCAGTACTAGGAT -TCTTAGTAGTATTTGTCATTGCATTAATGGCTGGTTGGTTACCAAGTTATTTAACTGCCAGATTTAGTAC -GCTAACAGATCCATTCCAATTCGAATCAGGAACTGGATACCATATTTCCAATTCATTGCTTGCGATAGGT -AACGGTGGCGTATTTGGAAAAGGATTAGGAAATAGTGCAATGAAATTGGGCTATTTACCAGAACCACATA -CAGATTTTATTTTTGCAATTATTTGCGAAGAATTAGGTTTAATCGGAGGATTGCTAGTTATTACTTTAGA -GTTCTTTATTGTATATCGTGCCTTCCAGTTTGCAAATAAAACATCATCATATTTTTATAAACTTGTGTGT -GTTGGGATTGCCACATACTTTGGAAGCCAAACGTTTGTAAACATTGGTGGTATTTCGGCAACAATTCCAT -TAACTGGTGTGCCATTGCCATTTATCAGCTTTGGTGGATCATCAATGATTAGTTTAAGTATTGCTATGGG -ATTACTTCTGATTGTAGGTAAACAAATCAAAGTAGACCAGCAACGAAAGAAACAACAACAAAAAGTTGAT -ATAAGAAGACAATTTAATTAAAAAATACTAGCCAATATTTAGCGCGAGATGACTTCTGTCATTAAGCAAT -GCTACACATTGGCTATTTATATACTCTTTGTCAAATTGGACTGATGAGTTCAATAACGGAAGTTAAGCAA -CCAAACAACGCTTAACTTCCTTTTTGTTTTGATATTACGAGATTACTCATGATTATCAAATTTTATAAAC -AAAACAACGTATAATTATAACTAAATTTTATGACTAAAAATCACTAAATGTGGTGGCGAAATTAGAATCA -TGATGATAAGATAAAGTTATCGCTATTGATAATAAATGTTGATGTTTTACAATTTTATTTTTAATTTTTT -AGAGTTGTAGAAATCGAAAATGTATCACAACAAAAACGTGAACTACCTGTTGTTGCATAATCCTTTTTGA -AATTATTATTTTTGAAGCGGAGGTTTTAATTGTCTCAAGAATGTTAAATTTTGAAAATTTGAAACATAAC -TATAGCAAAACAGAGCGCTTTAAGATAAAATTTTATTATCTAATTAGTTAGAAAATTCTAATAGTTTGAG -GAGTGTATCGCTATTGAAACAAATAAAAAAGTTACTTGTTGCTAACCGTGGAGAAATTGCAATTCGTATA -TTCAGAGCGGCAGCAGAATTAGACATCAGCACAGTTGCAATTTATTCGAATGAAGACAAAAGTTCATTAC -ATAGATATAAAGCAGATGAATCCTATTTAGTTGGAAGTGATTTAGGTCCTGCTGAAAGTTATTTAAATAT -TGAGCGTATCATTGATGTAGCAAAACAAGCGAATGTGGATGCGATTCATCCTGGCTATGGATTTTTAAGT -GAAAATGAACAATTTGCGCGTCGTTGTGCAGAAGAAGGGATTAAATTTATTGGTCCTCATTTAGAACATT -TAGATATGTTTGGAGATAAAGTTAAAGCTCGTACAACGGCTATCAAGGCAGATTTACCAGTTATTCCTGG -TACAGACGGTCCAATTAAATCATATGAATTAGCAAAAGAATTTGCAGAAGAAGCTGGTTTCCCGCTAATG -ATTAAAGCCACAAGTGGTGGCGGCGGTAAAGGTATGAGAATCGTTCGTGAAGAAAGTGAATTAGAAGATG -CTTTCCATAGAGCAAAATCAGAAGCAGAAAAATCATTTGGTAATAGTGAAGTTTACATAGAAAGATACAT -TGATAATCCAAAGCATATTGAAGTACAAGTCATAGGTGACGAACATGGAAATATCGTACACTTATTTGAA -CGTGATTGTTCAGTACAACGTCGTCATCAAAAAGTTGTAGAAGTTGCACCATCAGTTGGATTATCATCAA -CATTACGTCAACGTATTTGTGATGCTGCAATTCAATTGATGGAAAATATTAAATATGTCAATGCAGGTAC -TGTTGAATTTCTAGTATCTGGTGACGAATTCTTCTTTATAGAAGTTAACCCTCGTGTACAAGTAGAGCAT -ACAATTACAGAGATGGTAACAGGAATTGATATTGTTAAGACACAAATTTTAGTTGCAGCAGGTGCCGATT -TATTTGGTGAAGAGATTAATATGCCGCAACAAAAAGATATTACAACATTAGGCTATGCCATCCAATGTCG -TATTACAACAGAAGATCCGTTAAATGATTTTATGCCGGATACTGGAACAATCATTGCTTATCGTTCAAGC -GGTGGCTTTGGTGTACGTCTTGATGCTGGAGATGGTTTCCAAGGTGCTGAGATATCACCTTATTATGATT -CATTACTCGTAAAATTATCTACACATGCGATATCATTTAAACAAGCAGAAGAAAAAATGGTACGTTCATT -ACGAGAAATGCGTATTCGTGGTGTTAAAACTAATATTCCATTCTTAATTAATGTAATGAAGAATAAAAAG -TTCACAAGTGGTGATTACACAACTAAATTTATTGAAGAAACACCAGAACTTTTCGACATTCAGCCGTCTC -TAGATAGAGGTACTAAAACATTAGAATATATAGGTAATGTAACAATTAATGGTTTCCCAAATGTTGAGAA -ACGTCCGAAACCAGACTATGAATTAGCATCAATTCCAACTGTATCTTCAAGTAAAATCGCTTCATTTAGT -GGTACGAAACAATTGCTTGATGAAGTAGGTCCAAAAGGTGTAGCTGAATGGGTTAAAAAGCAGGATGATG -TCTTACTAACAGATACAACCTTTAGAGATGCACACCAATCATTATTAGCTACACGAGTTAGAACTAAGGA -TATGATTAATATCGCATCCAAAACAGCGGACGTATTTAAAGATGGTTTCTCACTAGAAATGTGGGGCGGT -GCTACATTTGATGTGGCATATAATTTCTTGAAGGAAAACCCATGGGAACGACTTGAACGTCTACGTAAAG -CTATTCCAAATGTATTATTCCAAATGTTGTTACGTGCTTCAAACGCAGTTGGTTATAAAAACTATCCTGA -TAATGTTATTCATAAATTCGTACAAGAAAGTGCTAAAGCAGGCATAGATGTCTTTAGAATTTTCGATTCA -TTAAACTGGGTAGATCAAATGAAAGTTGCCAATGAAGCAGTACAAGAAGCGGGCAAAATCTCAGAAGGTA -CTATTTGTTATACAGGTGACATTTTAAATCCTGAGCGATCAAACATTTATACTTTAGAGTATTATGTCAA -ACTAGCTAAAGAGTTAGAACGTGAAGGTTTCCATATTTTAGCGATTAAAGATATGGCAGGCTTATTAAAA -CCTAAAGCTGCTTACGAATTGATTGGTGAGTTAAAAGCAGCTGTAGATTTACCAATCCATCTTCACACTC -ATGATACAAGTGGTAATGGTTTATTAACGTACAAACAAGCAATAGATGCTGGTGTCGATATCATTGATAC -TGCTGTTGCTTCAATGAGTGGTTTAACAAGTCAGCCAAGCGCCAATTCGTTATATTATGCATTAAATGGC -TTCCCACGTCACCTTAGAACTGATATTGAAGGTATGGAGTCACTTAGTCATTATTGGTCAACTGTACGTA -CTTATTATTCAGACTTTGAAAGTGATATCAAATCACCGAATACTGAAATTTATCAACATGAAATGCCTGG -TGGACAGTATTCGAATTTAAGTCAACAAGCTAAAAGTTTAGGTTTAGGCGAAAGATTTGATGAAGTCAAA -GATATGTATCGCAGAGTGAATTTCTTATTTGGTGATATCGTAAAAGTAACGCCATCGTCTAAAGTAGTTG -GTGATATGGCACTTTATATGGTACAAAATGATCTTGATGAACAATCCGTTATTACAGATGGCTATAAATT -AGATTTCCCAGAATCAGTAGTGTCGTTCTTCAAAGGTGAAATAGGACAACCTGTAAATGGTTTTAATAAA -GATTTACAAGCGGTTATTTTAAAAGGCCAAGAAGCATTAACAGCTCGTCCAGGTGAATATCTAGAGCCAG -TTGATTTTGAAAAAGTCCGTGAGTTGCTTGAAGAAGAGCAACAAGGTCCTGTTACGGAGCAAGATATTAT -TAGTTATGTATTATATCCAAAAGTATATGAACAATATATTCAAACTAGAAATCAATACGGAAACTTATCG -TTACTTGATACGCCTACATTCTTCTTTGGAATGCGTAATGGTGAAACAGTAGAAATCGAAATCGATAAAG -GTAAACGATTAATTATTAAACTAGAAACGATTAGTGAACCAGATGAAAATGGTAATAGAACGATTTACTA -TGCGATGAATGGTCAAGCGAGACGTATTTATATTAAAGATGAAAATGTGCATACAAATGCGAACGTTAAG -CCAAAAGCAGATAAGAGTAATCCAAGTCATATCGGTGCGCAAATGCCAGGTTCAGTAACTGAAGTCAAGG -TTAGTGTAGGTGAAACTGTGAAAGCTAATCAGCCGTTGCTAATTACTGAAGCTATGAAAATGGAAACAAC -AATTCAAGCACCATTTGACGGTGTGATTAAACAAGTAACTGTAAATAATGGTGACACAATAGCGACAGGC -GATTTATTAATCGAAATTGAAAAAGCAACTGACTAAAATGATTAAAATAAAACGAGATTACACAACAATT -GACGTGTAATCTCGTTTTTACTTGTCTTAGGTTTAATTTTAAATATTGATATAAAAAGGGAGTGGGACAG -AAATGATATTTTCGCAAAATTTATTTCGTCGTCCCACCCCGGCAAGGTTGACTAGAATTGAAAAAAGCTT -GTTACAAGCGCATTTTCGTTCAGTCAACTACTGCCAATATAACTTTGTAGAGCATTGAACATTGATTTAT -GTCACAGCTTCTTTGCTTTTTTGTTATTGCTTGTCACTTCTTACTGATCGTAACATTAGCATGATAAAGT -ATGTTGTCATACCAAATAAATAAGTGATAAATAATGCATGGAATAGTGCGATTATCAAATTAACATTAGT -CATAATAGACAATGCACCTGTGATAACTTGTAATATAACAAGTATAAATGCAGCTGTATAACCATAATGA -ACAGTACGGTTATTTGGATAATTTTTAACAGCGTGAATATAAGTAATCATAATAATCGTAAACACTATAA -AAGCCATGATACGATGCGTGAGTTGGACCCAATCTTGTTCTGAATGTGGTACAAGATCGTGGAATGGCAA -TGGCCAACCACCATATGCTAAACTTGCATCCGCATGTCGCACTAGTGCACCAGTGTAAACACCACAATAA -ATGATGATTGCCATTAACCATGTTAAACGTCTTAATGGCTTTTTGATATATAATTCGTCAGCTTCATATT -TTTGATCTATAGAGAAAATAATCAATGTTATTAAAAATACAGATGAGAAACTGATTAATGATATACCAAA -GTGCAATGCTAAAACGTAATCGTTTTGTTGCCAAATAACAGCAGCAGCTCCGATTAATGCTTGCAATAAT -AAGAATCCAACACTAATGATTGATAAAGGTTTAATTTCTTTAATATAGCCTATATGTTTCCATGCAGTGA -TAACTAACCATAAGACCATTAATAAAGACAAAGCTGAAACGGCTCTATGACTTAATTCAATAATCGTATC -AATAGGAAAGAATTCTGGAATCAACGCACCATGACATAGTGGCCAAGAAGAACCACAACCATCAGCTGAT -CCGGTTTTGGTAACTAAGGCTCCACCAAGTTGTACAAATGTCATCATTAACGTTGCTACGACACCTAACC -ATTTTAAATTCTTTTTGCCAAACAATTTATACACCCCATCATAAAAAAACGCATCACTGAGATTTTGATT -TAATAGCTGAACTTGAGTTAATACTATGAATGAACCTAACAGTTGGATTTGAAGAGATGGGATCCAACAC -AGTTTATATAATTTAATTGTTTCTAGTATTAGAAGTGATCGACTATCATCAATGATATGAATAACACGAC -AATGATGTGCCGTTCACTGCTATAAAATTTCAGTCACAGTTACTCAAATTTGAAGCTTAAATATTAATCT -CTTTTAGATGCATGATTCTACTTATTAAAATTTTCTAACATATACATTATAGCAATAAATTAAATGTTAT -TTGTGTCACAAAATTGACATTTTCTCTTGTCGTTAATTTGTCACAATTTAATTTTATTAAACCTAGTCTT -TTTATGCAATCTAAGATATCATAATCTTATATGAACAAATTTAAGGAGGGGGATTATGAGCAAAGAGCAT -ACTTTGTCACAAAATATTAGCAGAGTTAACTTCAAAGAATTGCAACAGATAATTAAAATGGGACTTGTTC -AAGGTAACTTAATTCCGGCTTTTGCGGGCGCATGGCTAGCAGTTGTAATGACAAATCATTCCTTCTTATC -ATCAATACCTCAAATTTTATTAATGCTATTAGGATCTACTTTAATTATGGGTGGCGCATGTGCGTTAAAT -AATTATTACGACCAAGATATTGATCGTATTATGCCTAGTAAACAAAATAGACCAACTGTAAATAATAGAA -TTACAGATCAAAATTTATTACTTTTAAGTTTTGGTATGATGTTAGTTGGAGAAATTTGTTTGTTTTTATT -GAATATACCATCAGGCGTACTTGGTCTTATGGGGATTGTAGGTTATGTGTCTTATTACTCAATATGGTCT -AAAAGACATACAACATGGAACACAGTGATTGGGAGTTTTCCTGGAGCAGTACCACCACTAATTGGATGGG -TTGCAATTGAAGGACAAATTAGTTTAACAGCGATTGCGCTGTTTTTAGTTGTATTTTGTTGGCAACCAAT -TCATTTTTATGCCTTAGCTATTAAACGTAAAGATGAATATGCACTTGCAAATATTCCAATGTTACCATCA -GTTAAGGGCTTTAAACGTACACGTGTCAGTATGTTTATCTGGTTGATTATTTTATTGCCAGTGCCTTTAT -TACTAATAAATTTAGGTGTCGTATTCGTAGTGTTAGCTACATTATTAAATTTAGGATGGATTGCATTAGG -TTTAACAACATTTAAGAAAAATTCAGATCAAACAAAATGGGCAACACAAATGTTTATATATTCACTAAAT -TATTTGGTGATCTTTTTCGTGTTAGCTGTGATTGTTTCATTACTTACTTTGATCTAGATTAATTAAGTTA -GGATGAAAAATATGGGCGTTCCAATTTTACCAACGATAAGTACGACATGTATTGTCATTAGTGCAATTTT -AATTGCCATTGGTTGGAGACTTATTTGGAAAAGGGAAATAGATAAACACAAAAATGTTATGTTAGCTGCA -GCTGTTTTTGCTTTAACTTTTTTCTTAATCTATGCAAGTAGAACGATTTTTATCGGTAATACAGCATTTG -GCGGACCAGCATCAATTAAGAAATATTATACAATTTTCTTATTTTTCCACATTAATTTAGCAACAATTGG -TGGTATTCTAGGTCTAGTTCAAATTATTACTGCATTTAAAGATAAATATAATGTGCACCGCAAATTCGGG -CCATTCGCTTCAGTTATATGGTTCTGTACTGCAATTACAGGTGTAGCAGTTTACTTATTATTATATGTAT -TATATCCAGGTGGAGAAACGACATCACTGATTAAAGCAACATTTGGTCATTAATACGCTTTTACAAATGA -TACTAATCTGATAAGGCAATTTGTTTTATCAGGTTTTTTGATGAAGAATAGTCGGACAGTTGATGGTATT -CATTTGATACCTTAACTGTCCGTTTTTTTATACATATTTTAATCCTAATAATGAAATTCAACCTGAAAAC -ATAAAGATAGGTTATGATATAGACTGTAGGGAAAATCTTTATGATGTTAACATTGTGCCTGAAGATGGTT -TTGTTTCATCGAAATGACACAGTTATGTCAGTGTTGAAAATTTGCTAATTAATGTGTTGTTTTTTACAAT -AGTATTAATACTTTTTAGGTGGTTGATTGATGAAAAAGTTAATTATAAGAGTCGTCGGAGTATTATTTTT -AGTTGGATTTTTAATATATCTTTTTTATTCACCGAGATTAAAATTTGATGTATTAGAGAACCCGAATAAA -GGTAATAAAGTAAATAGATCTGAACAGGTGAATAAATCAAATAACCATGCTGAAAATCCAAAGCCTAAAG -AAGGTGTTGGTACATGGGTAGGTAAAGACATTAAAGTGCTTACTTCTAAATTTGGACAAGCAGATCGTGT -CTACCCTTTTAGAGATGGTTACAAAAATTATGTGTTTAAAGACAAAAACAGTTATTACATTGTTTCAACT -AAACGTGAAGAAATCGTTTCAGTGTATGCTACAGGTGAGAATGTCAATGTTAGTCCGTTAAAAATAGGAC -AACATTCTGCAGAAATTTTTAATCATACAAGTATTAATCCAGAACCGTCCTTTACAGTTGATGGTAAAAA -ATATGAATTTGAACTTTCAGATGAAGATTTAAAAACACAAACATTGATTAAATATGGCAACATATATGCA -CAAGTGTATTCTGATCAACAATCGAAAAAGGTGCTAAGTGTACGATTTTTAACAAAAGAAATGTTAGCAG -ATATTGAACCTTATCGATTAAATTCTAATTCTACGTCAGAAGAGCATAATAAGCGTCCAGTTGAGCAAAA -TCCAAATCAATTAATTTCTCTTTATGAAGTAACGAATGAAATGAGAAAATTAAAAGGATTAAAACCATTG -AAAATCAATAGCGATTTAGCACATATTGCATCTAATAACTTATATGAAGCGACCTCTAATGGTTCTGATA -GTGTTGAATTTACAGAGGACGCATTAAGAGGGCAATTAGATAAAAATCATGTTACTTATAAAACAACTGC -TCAAAATGTTGGTTATGCGTTTAATGATGTACCAACATTAATCCATAGTTGGATGAATTCAGATATACAT -CGATCTCGTCTATTAAATTCAAAATACGATGAGATGGGTGGAGATGTAATGAGAGATTATTATTCACTAA -TTTTCTTAGAAAAATAACAATGAGGGGTATTTATGATTAATGAAGCTTCACTAGCGATATTAGATGATAT -TGATGAACTGGCTGATATGATAGTTGCATCAGATATTTATGCATCATTTGAGCAAGCTAAACAGGCGCTC -GAAAACAATGACGAAGCCCATTTACTTTATCAATCATTTTTAAAATCAAAAGAGAAATATGATGAAGTAA -TGCGTTTCGGGAAATATCATCCTGATTATAAGAAAGTCATGTTAGAGACAAGACAACGCAAAAGAGCATA -TGAGATGCTTGACGTTGTGATGCATTACAAAGCTAGGGAAATGGCACTTCAACATTTAATTGATGAAGTT -GTTACGAAAATTGCGTACGCTGTTTCAGAACATGTCAAAATAGAAACAGGCAATCCATTCTTTCAAACAT -CACATAGTGGTTGTGCGACGGGCGGATCCTGTAATTGTTCATTATAAAAAACATCGAGTCAGAAAAAGAT -GGTTATTGAAACCATTTACTAGCATCTGACTCGATGTTTTTGTTTATTGTTTGTTGTTTATTGATTGTTT -GAATTGTTGTGCTAAATCTGGTCGATCTGTCACAATCGTGTGTGCACCTTTTTGGTATAAATCATTCATC -AGATCTATACTATTTACGCCATAATAGCCTGGAATGACATTCATATCATTTAACCATTTGATAAAACGAG -ATGAAGTCAAATTAATACCTTTAAAATGAGTAGGCATTTGGAACGTTTGTGCTAATGGTTGGTAGTACCT -ACCACCTAATAAATGATATTTTAAAAATGCCTCTGTAACTTCCTGTTGGCTAGCACCAATTGCAACAGAT -CTTTGTGCAATTTTATTAAAACGTACGATTTGTTCTTTATAAAAACTTGTCACAAGAACACGGTCAAATG -CTTGATTCTCTGCAATTGTATCAAACATAATTTGTGGTGCGATTGAGCCTTCATAGGATTCAGGAGCATC -CTTTAAGTCTACGTTTATATACATATCAGGATATTGCTTCAGCAACTCATCGAAGGTTAGTATAGCTGTG -TGTGCATGACCACGATATGGTGTTAGTCCATTGATATCTTTGAAGTGATAACCTGCGTCTAATTTTTTTA -ATTCTGCTAATGTATGGGCACTGACTTTTCCAGAGCCGTTCGTCGTTCTATCGACTGTTGCGTCATGAAA -AACGATAAGCTGTTGATCTTTTGTGAGTCTCACATCTGTTTCAAAACCATCAACGCCTAATTGTTTTGCA -TAGTCAAATGCAAGTTGCGTTTGCTCTGGTCTTAAAGCCATACCACCGCGATGCGCAAATATATATGGTG -CATTGCCTTTGAAAAAAGCAGGGATGGTTTGCTTTTTAGTAATCACTTTATTTTTATTTATCATTAACAA -ACTACTTACAAATCCAGCACCGACTAGTACCGCATTTAAAATGTTTCTGTTTACTTTTTTCATAAAAAAT -TCCTCCTCGTTTACTTTTATAGCTTAACAAATTCATAGTTCTGACTACAGCAAAATGTGCGGTTAATCAT -ATAGTGTTGCTCTTGAGAATTGAATTAATATAATGATGCTTAATATAATCTAAATACATTTATCGTGCAA -TTACATAAGACATAATTAAGGTAGCTTAATATTTTAAAATTAATAAAGACATGATATGATTAATGCTGAA -AATAAATGGAGTGAGGTTTAAATGAATTTAATCCCAAGAACTAGTATTGTAGTTTATTTAAAACATATGA -AACATGAACGACAAATCCGAAAATATGGACATATCGTTCATTCAAATAGAGATCGTAAATTTGTAATTAT -GTATGTGAATGAGCAAGATGTTGATCAAATTGTACATAAACTAATGCAACTTAAATACGTTAGACACATT -GATGGCTCACCATATAAATACTTAAAGAAAACTTACGAAAAAGAGAAACACGAAATATATAATTAATATT -ATTGAAGTTCTGGTATCCATTTTTGGAGCCTTAACACACTAATTAAATAATTATAATATAACGATAAATC -ATGAAATGCTTGAGGAGGCTGTACATCGATACCTAAAATTGGTATGTCGAATTTTTCAGCGCAATCATTA -ATCATTTGAAACTTTTTATTTGAATCTGGATATGGATATTTAATAGCGTTAATCATGATATAAAATGCTT -GGAAATGATTGCCAGTTGTAGGGTTCATAATGATTGCTACAGATGACTTTTTATTTTCAGCTTGTGGTGA -ATGAAAATAGATAATTTTATCAATACGTTGATGGTTATATTCAATCATCGTCATGAATTCGAACAAATCT -GTTAGACCTTCACCAAGTGTAATAAATGTTTGTTTCATTGGTTTATCATTCTCCTTTTTCTCAATAAATT -ATATTAAATAACTAAATGAATTGGAAGTGTGAACAACATGCGCGTCATTGCAGGTAAACATAAAAGTAAA -GCTTTAGAAAGTATGGAAGGCCGTAATACGAGACCAACTATGGATAAAGTTAAAGAAGGTATCTTTAATA -GTTTATATGATGTGTCAGGTATAGGTTTAGATTTATTTGCAGGAAGCGGGGCGCTTGGAATAGAAGCACT -CTCTCGAGGTATAGATAAGGTTATCTTTGTTGATCAAAATTTTAAAGCTGTAAAAGTTATTAAATCAAAT -CTTGCGAATTTGGATTTAGAGGCACAATCTGAAGTTTATAAAAATAATGCAGATAGAGCTTTAAAAGCAT -TGTCAAAACGTGATATTCAATTTGATGTCATTTTCTTAGACCCACCTTATAATAAAGGTCTCATTGATAA -AGCTTTAAAACTAATTTCAGAGTTTAATTTATTGAAAGAAAATGGTATCATCGTTTGTGAATTTAGCAAT -CATGAAGAAATAGACTATCAACCGTTTAATATGATTAAACGTTACCATTATGGGTTGACAGACACATTGT -TATTAGAAAAGGGAGAATAGCATGGAACATACAATAGCGGTCATTCCGGGTAGTTTTGACCCCATTACTT -ATGGTCATTTAGACATTATTGAGAGAAGTACAGATAGATTTGATGAAATTCATGTCTGTGTTCTTAAAAA -TAGTAAAAAAGAAGGTACGTTTAGTTTAGAAGAGCGTATGGATTTAATTGAACAATCTGTTAAACATTTA -CCTAATGTCAAGGTTCATCAATTTAGTGGTTTACTAGTCGATTATTGTGAACAAGTAGGAGCTAAAACAA -TCATACGTGGTTTAAGAGCGGTCAGTGATTTTGAATATGAATTACGCTTAACTTCAATGAATAAAAAGTT -GAACAATGAAATTGAAACGTTATATATGATGTCTAGTACTAATTATTCATTTATAAGTTCAAGTATTGTT -AAAGAAGTTGCAGCTTATCGAGCAGATATTTCTGAATTCGTTCCACCTTATGTTGAAAAGGCATTGAAGA -AGAAATTTAAGTAATAAAAATAACAGTATTTTAGGTTTATCATGGTTTACAATCCTAAAATACTGTTTTC -ATTTGTTAACGATATTGCTGTATGACAGGCGTGTTGAAATCTGTTTGTTGTTGCCCGCTTATTGCATTGT -ATATGTGTGTTGCTTTGATTTCATTTGTGAAGTAATGTGCATTGCTTTTGTTAATATTGGTTATATATTG -TCTTTCTGGGAACACTGTTTTTAAATGCTTTAAATATTGTCTGCCACGGTCGTTCATTGCTAATACTTTA -ACTGCGTGAATGTTTCTCGTAACATCTGTAGGTTTAATGTTTAATAATACATTCATTAACAGTCTTTGGA -TATGCGTATATGTATAACGCTTTGTTTTTAGTGATTTTACAAAATGATGAAAATCAGTTGCTTCATTAAT -GTAAGATTTTAAACGATTTTCAAAACCTTCAGTAACAGTATAAATATTCTTTAATGACTCTGTAGTCATA -GCTATGATTTGATATTTCAAATATGGGAATATTTGATTTAATGTTATATGAGGTGTTACGTACAGGTGTT -GAATATCTTTAGGTACCACATGATGCCAATGATCATCTTGACTAATGATTGATGTTCTAATAGATGTACC -ACTTGCAAACTTATGATGTTGAATTAATGAATCATGATGTTGAGCATTTTCTCGCTTAATAGAAATTGCA -TTGATGTTTTTAGCATGTTTAGCAATTGCTTTCAGATAACTAATACCAAGTATGTTGTTAGGACTTGCTA -GTGCTTCATGATGCTCTAATAATTCGCTAATGATACGAGGGTAGCTTTTACCTTCTTTTACTTTTTGTGA -AAAGGATTCGGATTGTTCAATTTCATTAATGCTGTGAGCTAATTGCTTTAATGTTTTGATATTATTATTT -TCACTACCAAATGCAATTGTATCGACACTCATATAATCTGCGACTTTAACTGCTAGTTCGGCAAAATGAT -CGCCAGATGATAAACTGGCAGTTGCTGGTAGTTCGATAACTAAATCAGCTGTTGATAATGCCATTTTTGC -ACGAGTAAACTTATTATAGATTGCTGGTTCGCCACGCATGACAAAGTTACCACTCATTATTGCAATAGTA -ACGTCAGCATTTGTAAGTTTTTTAGATTGATTAATATGATATTGATGCCCATTATGAAAGGGATTATATT -CTGTGATTAAGCCAACGCTTTTCATTTGCAATTCGTCCTTTCGGTATTCATTATTAATATTGTAACAGAA -CATGATATGTTAAGAAAAAATCTTGACAACTTGTTCTTAGAAAGTTAAAATAAATTTTGTGCTTGTTAGA -GGTGAAGCCATATGAAATGGTCAATTACGCAATTAAGGAAATATCAAGGTAAGCCATTTGAATTTGATCA -AACGGTGAGTTTTGACAATTTAAAAGAATCATTAGATTTAATTGATTTATCTCCAATTACAATCCAAGGT -CAGTTAACCATTAAGTCAACAGAAGTCGTTGCGGATATTCACATTACTGGAACGTATACAATGCCTTGTG -CACGTACTCTTGTACCAGTTAAAGTCCCACTAGATGTAACTACTACAGAAGTATTTGATTTAGAAGGGTA -CAATCAGTATAACGATGATCAAGATGATGTAGATGAACACTATCACATTATTAAAGATGGTATGGTTAAT -CTTCAGGATATTGTCGAGGATATAGTTATTATTGAGAAACCAATGAGAGCTTATTCAGAGCAAAGTGACC -AAATGTTGACAGTAGGTAATGGTTGGGAAGTAATCGATGAGGATCAATTAGATGAGCTTGCTAAACAGCA -AGAACAAGATGATTCAGAATCACGACAAGTTGATCCAAGGCTTCAAAAATTACAACAATTATATGATAAA -GAGCAATAAGTAGTTTAATTAATGATATAATGTTGTTAATTAAACTAACATTTAGTATTTTTCGTTTATA -ATCTAAGGAGGATATATCATGGCAGTACCAAAAAGAAGAACTTCTAAAACTAGAAAAAACAAACGTCGTA -CGCATTTCAAAATTTCAGTACCAGGTATGACTGAATGCCCAAACTGTGGCGAATACAAATTATCACACCG -TGTATGTAAAAACTGTGGTTCTTACAATGGCGAAGAAGTAGCAGCTAAATAATTTTAGTTACTCAATATA -AAAAGTCCCGCTTAAAATAATTGTTTTAAGTGGGACTTTTTATATTGCAAAAAATAATTGGCGGACGAGG -TATCGGAATACCTCATCTGCCAATTAAAATTTGTTAATTTAATAATTAAATATAAAGACGATTAATTAGT -TTTTACGTTTTCTAGGTAATACGAATGCAACGATACTACTTAAAGCTATTAATGCCATTAATGGTAATGT -CATATCTTTATTAGATTCTTCACCAGTTTGTGGTAATGATTTAGCTTTATTTTCTTGTGTATTTTTATTA -TTTTGGCTTTGAGTGTGTCCATCATTTGTGTTTTTAATGTTTGCTTTTTGTAATGGAGCACTATCTTTTG -CTTCGCTAGAACCTGCTGAAGTTTGAACAACATCTTTTGTTGTTTCTGAAGAAGCAGTTGTTGGTTTTGC -AACATTTTGAGTCGTAGATACTACCTTAGTTGGAGTTGTACTACTTGATTCTACTTCAGCTTTAGCTGGT -TTTGTAACAGGCATTTTGTCTTTACCTGACTCACTAGATGCGTCATTTTCTTTTTCAACACTTGGTGATT -GTTTATTGTCATCTTTTTGGCTGTCTTGTTTTTGTGATTCTTTTTCAACAGGTGGTGTTGTTGGTTTGCT -AGGCATAGCTGGAGTAGTTTCCTTCTTAGCTGAGTTGTCTTGTTGTTCCTTTTTATTAGTTTTATCGGCA -TTGGCTTTAGTAAATGCTTCTTTATCAACGATTCTGACATGGTATTGTCCATCATAATCAATCGTTTTTA -CGTGAACTTTAACGATAGCATCATATAGAGTTTTACCTTCAACATATGGGAAGATAATCGTTCTAGTGTT -ATTTTTAGCATCTTTGCTAATTGTTCTAACACGTTGACCTTCAACCATGAAATCTTTCCAGTAATCGTCA -TTAGTAGTTTCCATTACCATATATTTTTTGCCATTAAGCATACCTGTTTTAATAGGGTGTTTAACAAAAG -CATCCATCATAGATTCGTTATTCTCAACACTTTCATAAACAACATATTTTGTATCTTGTAAATCGGTCAT -TTTTTCATTTGTTGGTTGTACATTTTGGAATTCAGTTATCGCGGATTTCACTTGTTCATCTAAAGCTTTT -TTCGTCTCTTCTAATTTCTTCTTGTATTCAGCTTTCAATTTTTCAGGAAGTTTATCTTGAATTTTATTTA -ATTCATAAACTTGTCTTTCTAGTGTTTTCGCTTTTTTATATGGCGCTAATAATTTTTCAGCTTTATAATC -TTCTTCAGTTTTGAATTTATCTGCACTGTTATAAATTGGTTGTGCGAATTCCATTAATGTGTAATCGTAT -TTTTCTTCTTTGTTATTGAAGTGAGTTGAACTTACGATTTTAACTGCTTTTGTTCCATTTGAAACAGAGA -AGCGAATGTAAGCATAATCTTTAACAGTATCGTATGATACTAATTTAATTGGCAACTTTTTGTCACCTTC -ATAAACTTCAAATTTTCTCCAAAATTGCCCTGATTGTAATCCTAATTCAATTTCTGGTTTTGAATCAGTG -AAAATAACTCTAGCAGGTTTAACAGAACTTGCATAATGATAAAACTGTTGAGTGCCATCTTTCTTTTTCA -TTTCAAAATCAATTGGACGAGAGTTTGGTGCGCTATGATCTTTGTCTTTTATTGCAGGGTTTTTAATCGC -TTCTCTTAGTTCCTGATTCAAAATAGGATATGTATTGTTGTCAGCTTTTGCTGCAGGTTTTTCCTCTTTT -GCTTCCTTAGGGGCTTTAACTTCTTTAACTGCTTTAACTTCTTTAGCTTCTTTTGTTTCAGTAGTAGGGG -CCACAACTTCTTTATTAGATACTGAGACAGCATTAGCTACTGGTTTAGCTACTGGTTTAGCTTCTGGAGC -TTTTTCAGTTGTTGTTGTTGTTGGACTTGCAACTGCTTCAGTTTTTGGTTGTGCTTCTGTATTTGTAACA -CCTGTTTCTTCAGCTGCTTTTGCTTCGCCATTGGACATTAATAATAAAAGTGTACTAATCGCTACAGATG -CAACGCCTAGTGATGACTTTCTAATTGAATAAAATGATTTAAATTCTTTTTGCTGTTTGTTCATGTTGTA -GAAACAACTCCTAATTGTATATTATCAACTGATAATCATTATCAATTGATTACTTGTATTGTACATTGAA -ATGGTAGTTAATTGCAATGTTATTTTATAAAAAATAACCTATGTTATAGATTATGTAATATCTATGACAT -AGGTTAAATAAAATTTAAAATAAAAAATATATTAAGTTATGAGTATGACGAAGATTTATTTAGATTCTTT -TCTTTTGAAAAGTAACAAAGATAATGAACCTAAAAGGGCAAGTGTTGCGAAGGCAACTGTGCTAATAAAG -TTATCAACTGAAGTTAAACCAGTTTTTGGTAATTCTTTAGCTTTAGAATCTTTTGAAGGTCCTTGTTTAT -GAACTTCGTTTTGTTTTGTAACTTTGTTAGTTTGTTGTGATTTATTGTCACTTACAGCTTGATTGTTGCT -TTCAGATTTCGCTGTTGCAACATCTTTAACAGGTGTTTGAACTTTATTTTGATCTTGAGCTGTTTGTGTT -GTTTTCACTGTACGAGCACTTTGTGTTTGACTTTGATCTTTTGTAGCTTCACTACTTACAACTTTTGTAG -TTTGTCTGTTTTCATTTTTGCTTGGTGCAGTTACAGCAGGTTTAACTTTTTCAACTTTAGGTTGAACTGG -TTTCGTTTGCTCAGTAGGTGTTTTAGGTTGAGCAGGTTTTGGTTGAACCGGTTTAACATTGTTTGGTTTT -GCTGCGTCAGCTAATGTAGGAATTGCTTTTTCAAATTCTAAATGCGTAGTATATCTATGATTATAATTAA -TTTGTGGCACGACAATATGTACTTTTGTAGTTAAACTCTTATACCCAGGTTCAACAGCAACATTGATTGT -TCTAGTGTCAGCTTTTTTATCATCGTTAACAACAGTTGTTGCTAATTCTTGATTGTTTGCATTGTAAAAT -TTGTATTCTTTCCAGAATGATGCGTTGTTCAATACAGCTTGGAAATAATATTTATTATTTTGTTTAATCA -CTTTACCAGGGTGTTGCATATAGTCATCCATGTGTGACTTCTCTGAAGAGCCATCTTTTTGCACTTGGAA -ATTAATTGGTTGTGATGTTGCTTGAGAAACTTGTGTGCTTTGATTATTAGTTGCGTTCGTAGCTTCTGTT -GCCGCATTAACTTGTTGGCTGTCTGCGCCTATGTATACAAGGGAACCTAAAATGATAGATGCTGTACCCA -TTGTAATCTTTTTCATAGCTGATGAACGTTGTTCTGATTGATACTTACTGTTTAAATAATGTTTTGTCAT -GTTGTTTTCCTCCTAAGGATACAAATTATGTGTTGTTATATGAGATGATTAACCATTGCAATTGATAATG -GTTATCAATTATACTAGCACATCTATTTTCGTATAACAATAATAAATTGATTATAAAATAAATATTGACA -ATGATAATCATTATTATTTATGATTTTAGTAAAGACTTAAAAGCAATCATAAAAAGGAGGATTATGTTTT -GAAAAATATTTTAAAAGTTTTTAATACAATGATTTTAGCGTTAATTATCATCATCGCGACATTCAGTAAT -ACTGCAAATGCCGCAGATAGCGGTACTTTGAATTATGAGGTTTACAAATACAATACCAATGACACGTCGA -TTGCTAATGACTATTTTAATAAACCGGCAAAGTACATTAAGAAAAATGGTAAATTGTATGTTCAAATAAC -TGTAAACCACAGTCATTGGATTACAGGAATGAGTATAGAAGGACATAAAGAAAGAATTATTAGTAAAAAT -ACTGCCAAAGATGAACGAACTTCTGAATTTGAAGTAAGTAAGCTAAACGGTAAAATAGATGGGAAAATTG -ATGTTTATATCGATGAAAAAGTGAACGGAAAACCTTTCAAATATGACCATCATTACAATATTACATATAA -ATTTAATGGACCATCTGATGTAGCAGGTGCTAATGCACCAGGTAAAGATGATAAAAATTCTGCTTCAGGT -AGTGACAAAGGATCTGATGGAGCGACTACTGGTCAAAGTGAATCTAACAGTTCGAATAAAGACAAAGTAG -AAAATCCACAAACAAATGCTGGTACACCTGCATATATATATGCAATACCAGTTGCATCCTTAGCATTATT -AATCGCAATCACATTGTTTGTTAGAAAAAAATCTAAAGGCAATGTGGAATAATGAGAAATGTTAAACAAA -TTGCTACAAAATCTATTATAGCTATTATTAGCTTAGGTATTCTTACATATACAACAATGATTGGTAGCGT -GTTGGCTGATGAGATAAAATATCCATCAGCCAAATTTAATCAACCTGAAGCAAAAGATAAAACAGAATTA -ACTTCATCAATTTTTGATGAAAAGATAAAAGAGAATAAAGCGTTAGAATTACTAATTTTTAATCAAGAAA -ATAAAAATGTAACTGAGGAACAACAACTAGTTGACGAAAAGGCGCAATTGATTTCAGATATGACTGGTAA -AATTTACTTGCAAGTAAAACTAAAAGGTCAAATTGATAAAGAACAACTTGTTTTTCAAAATGACAAAAAT -GAAGAATTCCCCTTTGTTATAAAAGATGAAAAGGATGACACAATAGTAAGAATTTTAATTGAACAGCATA -TGGATAAAATCAATATGCATGTTAAAACGTTGGCTGAAAAGAAAGATCTAGATAACAAAGAAATGCTGTA -TTCTATTCATTTTAAAGAGAAAAAAGTACAACATGACGATGCAAAAGAAGTGCCTTCAAAACATCAAAAT -CAAGAAAATAATCAAGATCAGCTTAAAAAAGATATTGATGACAAAAAAGATAGTCAAAAATCAGACATTA -AGGAAAGACGTACTAGCCTTTTTACTGAAAAAGGATTAAATGATATTCCTGTACAAAAAGATAAAGTGCA -ACAAGACAGTAATAAAAAGATTGAAAACGAGCGACCTAAAGCATCAGGTACATTAAAAGTTGAAAATAGC -CCTCCAACAGTAAAAAAGGTTGAAAATAATCACAAAGAGCAACCGAAACATAAAGATGAAAAATCAAAAA -AGGAAAAGAAAAAAGTAGTTGAAAAAGAAAAAGCGTTACCAGCTTTTAATAGAGATGATGATAGCAAGAA -TAGTAGTCAATTATCTAGTGATATTAAAGAACTTGATGAACCAAATCATAAAAAGCAATATATGTTATTT -GCAGTTGGCATTGTGTTAGCAACCATTTTACTTATTTCGGCACATTTATACAGCAGAAAGAGAGGTAACC -AAGTTTGAGAATCATAAAGTATTTAACCATTTTAGTGATAAGCGTCGTTATCTTAACCAGCTGTCAATCT -TCCAGTTCTCAAGAATCAACTAAATCCGGCGAATTCAGAATCGTACCAACAACTGTTGCATTGACAATGA -CATTGGACAAATTGGATTTACCAATTGTCGGCAAACCCACGTCATATAAGACATTGCCTAATCGTTATAA -AGATGTACCGGAAATTGGTCAACCAATGGAGCCGAATGTTGAAGCTGTTAAAAAGTTAAAACCAACACAT -GTTTTGAGTGTGTCAACGATTAAAGATGAAATGCAACCATTTTACAAACAATTAAATATGAAAGGCTACT -TTTATGATTTTGATAGTTTAAAAGGGATGCAAAAGTCGATTACACAATTAGGTGATCAATTTAATCGTAA -AGCACAAGCAAAAGAATTAAATGACCATTTAAATTCTGTAAAGCAAAAAATTGAAAATAAAGCAGCTAAA -CAAAAGAAACATCCCAAAGTATTAATATTAATGGGTGTACCTGGTAGCTATTTAGTAGCAACTGATAAAT -CATATATTGGTGATTTAGTTAAAATAGCAGGTGGAGAAAATGTTATTAAAGTGAAAGATCGTCAATATAT -TTCGTCTAATACTGAAAATTTGTTGAATATCAATCCAGATATTATTTTACGATTACCACACGGAATGTCT -GAAGAAGTTAAGAAAATGTTTCAAAAAGAATTTAAACAAAATGATATTTGGAAACATTTTAAAGCTGTGA -AAAATAATCATGTTTATGACTTAGAGGAAGTGCCATTCGGTATTACAGCAAATGTTGATGCTGATAAGGC -AATGACTCAATTATATGATTTATTTTATAAGGATAAAAAATAGTGAGTTGATATGATGATAAAAAATAAA -AAGAAACTACTATTTTTATGTTTGTTAGTCATTTTAATCGCAACGGCTTATATTTCGTTTGTAACCGGTA -CAATTAAATTGTCATTTAATGACCTATTTACAAAATTTACAACTGGTAGCAATGAAGCAGTGGATTCAAT -TATTGATTTGCGATTGCCACGTATATTAATTGCATTGATGGTTGGCGCAATGTTAGCAGTTTCTGGAGCA -TTATTACAAGCAGCACTACAAAATCCTTTGGCAGAGGCGAATATCATTGGCGTTTCATCAGGTGCACTTA -TAATGAGAGCACTTTGTATGTTGTTTATTCCACAATTGTACTTTTACTTACCATTATTAAGTTTTATTGG -AGGTTTAATACCATTTTTAATAATTATATTGTTGCATTCTAAATTTAGATTCAATGCTGTTAGTATGATA -TTAGTAGGTGTTGCGTTATTCGTATTATTAAATGGTGTTTTAGAAATTTTAACTCAAAACCCTTTAATGA -AAATTCCTCAAGGCTTAACAATGAAAATATGGAGTGACGTATACATATTAGCAGTATCAGCATTATTGGG -ATTAATATTAACATTACTATTGTCCCCTAAATTGAATTTACTAAATTTAGATGACATACAAGCGCGAAGT -ATCGGTTTTAATATTGATCGTTACAGATGGTTAACAGGTTTATTAGCAGTATTTTTAGCAAGTGCAACTG -TTGCGATTGTTGGACAACTAGCCTTTTTAGGTATTATTGTGCCACATGTGGTTAGAAAGCTAGTTGGGGG -CAATTACAGAGTACTTATTCCGTTTTCTACAGTTATTGGTGCATGGCTATTGTTAGTGGCTGATTTATTA -GGACGAGTGATACAGCCTCCTTTAGAAATTCCAGCCAATGCTATTTTAATGATTGTCGGTGGTCCAATGC -TAATTTACTTAATTTGTCAAAGTCAACGAAATCGAATCTAAAACGGTACAACAACTGGTTTAGTGATGAC -TGAAGAAACGTCGTTAATAAAAGAGGATTTTTATGAGAATGAAGCGATTTTTAACTATTGTACAAATTTT -ATTGGTTGTAATTATTATCATTTTTGGTTACAAAATTGTTCAAACATATATTGAAGACAAGCAAGAACGC -GCAAATTATGAGAAATTACAACAAAAATTTCAAATGTTGATGAGCAAACATCAAGCACATGTGAGACCAC -AATTTGAATCACTTGAAAAAATAAATAAAGACATTGTTGGATGGATAAAATTATCAGGAACATCATTGAA -TTATCCAGTACTACAAGGTAAGACAAATCACGATTATTTAAATTTAGATTTTGAGCGAGAACATCGACGT -AAAGGTAGTATTTTTATGGATTTTAGAAATGAATTGAAGATTTTAAATCATAATACTATTTTATACGGGC -ACCATGTCGGTGATAATACGATGTTTGATGTGTTAGAAGATTATTTAAAGCAATCTTTTTATGAAAAACA -CAAGATAATTGAATTTGACAATAAATATGGTAAATATCAATTGCAAGTATTTAGTGCATATAAAACTACT -ACTAAAGATAATTACATACGTACAGATTTTGAAAATGATCAAGATTATCAACAATTTTTAGATGAGACAA -AACGTAAATCTGTAATTAACTCAGATGTTAATGTAACGGTAAAAGATAAAATAATGACTTTATCAACGTG -CGAAGATGCATATAGTGAAACAACGAAAAGAATTGTTGTTGTCGCAAAAATAATTAAGGTAAGTTAAACA -GAAAAGAGGATAATTATGAAATTTATGGCAGAAAATAGGCTGACGTTAACAAAAGGAACAGCAAAAGATA -TTATAGAACGATTTTACACGAGACATGGGATTGAAACATTAGAAGGCTTTGATGGCATGTTTGTTACACA -AACTTTAGAACAAGAAGATTTTGATGAAGTGAAAATTTTAACAGTTTGGAAATCAAAGCAAGCTTTTACG -GATTGGTTAAAATCTGATGTCTTTAAAGCAGCACATAAACATGTTAGAAGTAAAAATGAAGATGAAAGTA -GCCCGATTATTAATAACAAAGTAATTACATATGATATAGGCTATAGTTACATGAAATAATTGAATTTAAA -AAGGTTGCAGTACTTGTTATGACAATTGGTATTGTTAGCTTTTGTAACGACCATACATGATACCGATGAT -GGTCGTTTTTTTAATGAACACAAACATGCTAACAACAAATTGCTAAAACGTAGTTTGATATGAATGTGCT -TTGAAAATAATCATCAAATATATGATTTTGATTTATTTTGAAGAAGAAAAGAATTAATAATGATATTTTG -GGGCGTATGATTTATAGTAGTAGTATCGATAAAAGAAATTTATACAATTTGAAATAATATGAGTGATAAA -ATCGATTAATTAATATTAACTATACAATCAAATGTTTTCATCTTATTAATGATTAATATTTTTATTTTTA -AAAATAAAGCGAGGAGCTATCTATGGAACAAATTACTTCTGCACAAAATAATAGAATTAAACAAGCGAAC -AAGCTAAAAAAGAAACGTGAGAGGGATAAAACTGGATTAGCTTTAATTGAAGGTGTGCATTTAATTGAAG -AAGCTTATCAAAGTGGGATTGTAATTACACAATTATTTGCAATTGAACCGGCAAGATTAGATCAGCAAAT -TATCGCATACGCGCAAGAAGTTTTTGAAATAAACATGAAAGTTGCTGAATCTTTATCAGGTACAGTGACA -CCACAAGGGTTTTTCGCAATCATTGAGAAGCCACAATATGATATTTCTAAAGCACAACAAGTATTGCTTA -TCGATCGTGTTCAAGATCCTGGAAATTTAGGCACATTAATTAGAACTGCGGATGCTGCTGGAATGGATGC -TGTAATAATGGAAAAGGGTACGACAGATCCTTATCAAGATAAAGTGTTGCGAGCGAGTCAAGGTAGTGTT -TTTCATTTGCCAGTTATGACACAAGATCTCGATACGTTTATTACTCAGTTTAATGGTCCTGTTTATGGTA -CAGCACTTGAAAACGCAGTGGCATATAAAGAAGTTACTTCAAGTGATTCTTTTGCATTACTATTAGGTAA -TGAGGGAGAAGGTGTTAATCCTGAATTATTAGCACATACTACACAAAATTTAATCATACCTATTTATGGT -AAAGCTGAAAGTTTAAATGTAGCGATTGCAGGTAGTATTTTACTTTATCATTTGAAAGGTTGACCGTGTT -GAAAGTTTTCCGATATAATTATAATTAATTGTTTAACAGAACATTTCTACGTGATTGCATACACAATTGA -ATATAAACCAATAAAAAGGCATGGACATTTATATAAATAATTGTTTTAGGGAGAATAATCGTGACTGCAA -GTTATTCCAATTATTTAAAGTCTTTTCACCTTTTTGGTTACTTAAAGAGATTTAAGTCGGAAAGACAATC -CGTTATCAATATTAAACAAGTGTATGCTTAGGCATAAATTTGGGTGGTACCACGGAAATGACTTTCGTCC -CTTATTTTTTAAGAGGATGAAAGTCTTTTTTTAGTTAAACAACAAATATGATAAATAGAAAATGAATAGT -TCGAATAGGGAGGTCAGTGACATATGTCTGAACAACAAACAATGTCAGAGTTAAAACAACAAGCGCTTGT -AGATATTAATGAAGCAAATGATGAACGTGCACTGCAAGAAGTTAAAGTGAAATACTTAGGTAAAAAAGGG -TCAGTTAGCGGACTAATGAAATTGATGAAGGATTTGCCGAATGAAGAGAAGCCTGCGTTTGGTCAAAAAG -TGAATGAATTGCGTCAAACAATTCAAAATGAATTAGATGAAAGACAACAGATGTTAGTTAAAGAAAAATT -AAATAAGCAATTGGCTGAAGAAACAATTGATGTATCATTACCAGGTCGTCATATTGAAATCGGTTCAAAG -CATCCATTAACACGTACAATAGAAGAAATTGAAGACTTATTCTTAGGTTTAGGTTATGAAATTGTCAATG -GATATGAAGTTGAACAAGATCATTATAACTTCGAAATGCTGAATTTACCTAAATCACACCCTGCACGTGA -TATGCAAGATAGTTTCTATATTACGGATGAAATTTTATTACGTACGCATACATCACCAGTGCAAGCACGT -ACGATGGAATCACGTCATGGTCAAGGTCCAGTTAAAATTATTTGCCCTGGTAAAGTGTATCGTCGTGACT -CTGATGATGCGACACATAGTCATCAATTTACACAAATTGAAGGATTAGTTGTTGATAAAAACGTTAAAAT -GAGTGATTTGAAAGGTACTTTAGAATTGTTAGCTAAGAAATTATTTGGTGCTGATCGTGAAATTCGTTTA -CGTCCAAGTTACTTCCCATTCACTGAACCTTCTGTAGAAGTTGATGTGTCATGTTTTAAATGTAAAGGAA -AAGGTTGTAATGTGTGTAAACACACAGGATGGATTGAAATTTTAGGCGCTGGAATGGTACATCCTAATGT -ATTAGAAATGGCTGGTTTTGATTCTTCAGAGTACTCTGGATTTGCATTTGGTATGGGACCAGACCGTATT -GCAATGTTGAAATATGGTATAGAAGATATTCGTCATTTCTATACTAATGATGTGAGATTTTTAGATCAAT -TTAAAGCGGTAGAAGATAGAGGTGACATGTAATGTTGATATCAAATGAATGGTTGAAAGAATATGTAACA -ATCGATGATTCTGTAAGTAATTTGGCAGAACGTATTACGCGCACAGGTATTGAAGTGGATGATTTAATTG -ACTACACAAAAGATATCAAAAATTTAGTTGTTGGCTTCGTTAAGTCAAAAGAGAAACATCCTGATGCTGA -TAAATTAAATGTTTGCCAAGTTGATATCGGAGAAGACGAACCTGTACAAATCGTATGTGGTGCCCCGAAC -GTTGATGCAGGACAATATGTCATTGTTGCTAAAGTAGGTGGTAGATTGCCTGGTGGTATTAAAATTAAGC -GTGCCAAATTACGCGGTGAACGTTCGGAAGGTATGATTTGTTCGTTACAAGAAATTGGTATTTCAAGTAA -CTATATACCGAAAAGTTTTGAATCAGGCATTTTTGTATTTAGTGAATCCCAAGTTCCAGGAACAGATGCC -TTACAAGCTTTATATTTAGATGATCAAGTAATGGAATTTGATTTAACGCCGAATCGTGCTGATGCTTTAA -GTATGATAGGTACTGCTTATGAAGTTGCAGCATTATATAATACAAAAATGACTAAGCCAGAGACAACATC -AAATGAGCTTGAGTTATCTGCAAATGATGAACTGACTGTGACAATTGAAAATGAAGATAAAGTACCATAT -TATAGTGCACGTGTTGTTCACGACGTGACAATTGAACCTTCGCCAATTTGGATGCAAGTACGCTTAATAA -AAGCAGGTATACGTCCTATTAATAATGTTGTCGACATCTCAAATTATGTGTTATTAGAATACGGTCAACC -ATTGCACATGTTTGATCAAGATGCGATTGGTTCACAACAGATTGTTGTTCGTCAAGCTAATGAAGGCGAA -AAAATGACAACATTAGATGATACAGAACGTGAATTATTAACGAGCGATATTGTTATTACTAATGGACAAA -CTCCAATTGCATTAGCTGGTGTTATGGGTGGCGATTTTTCAGAAGTTAAAGAACATACATCAAATATAGT -TATTGAAGGTGCTATTTTTGATCCAGTTTCAATTCGTCATACATCAAGACGTTTAAATTTACGCAGTGAA -TCATCTAGTCGTTTTGAAAAAGGAATAGCTACTGAATTTGTAGATGAAGCAGTCGACCGTGCATGTTATT -TATTACAAACTTATGCAAACGGAAAAGTGCTAAAAGATAGAGTGTCTTCAGGAGAACTTGGTGCATTTAT -TACACCAATCGACATCACTGCTGATAAAATTAATCGCACTATTGGATTTGATTTGTCACAAAATGATATT -GTTACTATTTTTAATCAATTAGGGTTTGATACAGAAATAAATGATGATGTTATTACAGTGCAAGTGCCGT -CACGTCGCAAAGATATTACAATTAAAGAAGATTTAATTGAAGAAGTTGCACGTATTTATGGTTACGATGA -TATTCCTTCAACATTACCTGTCTTCGAAAAAGTTACTAGTGGTCAGTTAACTGATCGCCAATATAAAACG -AGAATGGTTAAAGAAGTGTTAGAAGGTGCTGGATTAGACCAAGCTATTACGTATTCGTTAGTTTCTAAAG -AAGATGCTACTGCATTTGCGATGCAACAGCGTCAAACAATTGATTTATTGATGCCAATGAGTGAAGCGCA -TGCGTCATTACGTCAAAGTTTATTACCACATTTAATCGAAGCGGCATCATATAATGTGGCACGTAAAAAT -AAAGATGTAAAATTATTTGAAATCGGCAATGTCTTCTTTGCTAATGGTGAAGGTGAACTACCAGATCAAG -TTGAATATTTAAGTGGTATTTTAACTGGAGATTATGTAGTCAATCAATGGCAAGGTAAGAAAGAAACGGT -TGATTTTTATTTAGCAAAAGGTGTCGTGGATCGAGTATCTGAAAAGTTAAACCTTGAATTTAGTTATCGT -CGTGCTGATATTGATGGATTACATCCAGGTCGTACAGCTGAAATCTTATTAGAGAATAAAGTTATTGGTT -TTATTGGTGAATTACACCCAACATTAGCAGCTGATAATGATTTAAAACGTACGTATGTTTTTGAGTTGAA -TTTTGATGCATTAATGGCTGTGTCGGTAGGTTACATTAATTACCAGCCAATTCCGAGATTCCCAGGCATG -TCTCGTGACATTGCATTAGAAGTAGATCAAAATATTCCAGCAGCTGATTTATTATCAACGATTCATGCAC -ACGGTGGCAATATATTAAAAGATACACTTGTCTTTGATGTATATCAGGGCGAACATTTAGAAAAAGGTAA -AAAATCAATTGCAATACGTTTAAATTATTTAGACACAGAAGAAACATTGACAGATGAACGCGTTTCAAAA -GTACAAGCGGAAATTGAAGCAGCATTAATTGAACAAGGTGCTGTTATTAGATAATGATTTAAACCCCATG -TATAAGGATATCTGAAGTAGATTGATATCACTAACATGGGGTTTTATTTTTGGATTCACCTATTAGGTTC -CATTTCATTTATAAATCAAAGAGGAAGAGTGGTTTTCAGTTGATGCTTTGCACAACTGCATAAAAGCCTC -TAATGATTATAAATCAAAGAGGCTTTAAAATTTTTTGGGCTTTTTCACGATTTTTGAAATGTTTTTTTGA -AATGGAATCTAAACGTGAAATACCGTAATTTTTTATTATTTTGGCGGCGATTACATCGACTTTAGCACCA -GCACCTTTAGGAATCGTCATATTAATATTTTTTGATATTTGATCCATATATGTAATAAATGCGTATCTAG -AAATTATGCTTGCCACTGCAATGGCTAATGACTTCGATTCTCCTTTTGTTTCAAATTTTGTTTTCTTTGG -AAGTGGTATATCAGATAATGCGTAATGGCTATACACTTCGCGTTTTGCGAACTGATCAATGACGATATAA -TCTAATTGAGACGAATCAATTTTTTCAAGTACATTTTTGATGGCTTCATTATGAAGAACAGCTTTCATTT -TTACTTGAGTCCAGCCTTTTGCTTGCTGAATATTATATTTTTCATTGTGTAGTGTTAATAGTGAATGTGG -GATGAAAGTAACCAATTGCTCAGCAAGTTCTACAATTTTAGTATCGGTTAATTTTTTTGAATCATCTACA -CCCAAAGTTTTTAAAATAGGGACATGCTCTTTGGTAACAAAAGCAGCACACACAGTCAACGGACCAAAGT -AATCGCCACTTCCAGCCTCATCACTACCAATACAGTTAAATTGATCATACATTAAAGTCTGTTCAAGAGA -AGAATTGGCCGTATTTTTCTTTTTAGTTTTATTAGTATTCAATTGAGAATGCTGCGGTAGAAGTTCTTCA -GACACAGCTTCTGCATGATTACCTTGAAACATGACTTTACCTGATTGGTAAATATTTACAGTTGTATTTT -GATACTTTGCACGTGCTTTCATACCTTGAGGTAAATTCTCAGTATCAAAAGAAATGCGTGACATTAATGT -CGTTATGTCTTTATCCGACAATTTAAAAACGATATTCGCCATTTGTGTAAATCCTTTCGTAATAATTTCA -TTATCATTAGCAAAAATAATCATATCATAAATGATAATAACGTCAGAAACATTTATATATGTTGTAAAGA -ATTAATTGCGGATACTTACAAAATACATAGTGGTCATGTATAATGTTTATGAAAATGTTATAGTGACACA -ATTTAAACATGGTAAAGTATTGAATAGAAAATTCTTTACATTATTTCATTTCATTATAAAAAGAACATTA -AGTCATCTATAGAGATTGTGTTGTTGTTTTATCATAATTGCAATATAACAATATTAGTATCAAATTCAGA -CAAACTATCCAGTCATATTTTATAACGTGAATTTAGATTTTAAAAAAAGGATCAGGAGAAATTATAAATG -GCACAGTTTAAAAACAAGGTAAATGTATCAATTAATGATCAGCTTTTTACAATTGTTGGGGAAGATAACC -CAGAGCACATACGATATGTAGCACATTTAGTTGATGATAAAATAAAAGAATTAGGGTATAAAGCAGCAGG -TTTAGATACTTCAAGAAAAGCAATACTAACTGCTGTGAATATTATGCATGAAAAAGTACTACTAGAAGAA -GAAAATCGACGTTTGAAACAACAAATTCACAAATTGCAGCAGCGTGAGCAATAAATGATCATTGATTTTA -TCATAATCATTTTCTTTGTGTATTTTGTCATCGTTGGATTCAGACGAGGTTTTTGGTTATCTATGATACA -TTTGAGTGCAACGATTGTATCATTGTGGATTGCCAGTCAATTTTACAAATCTATTGTAGAAAGATTAATT -GTATTTATTCCATATCCTAAAACAACAGCATTTAATACAACTTTTGCGTTTCATTTTAATCATCTACAAA -ATCGATTTGAAGCGATTGTAGCTTTTTTAATGATTGCATTGTTTTGTAAGTTCATTTTATATCTAATTAT -CGTAACTTTTGATAAAATAATAGCGTATCAAAACATTCATATTTTCAGTCGTGCAATGGGAATGATAGTT -GGTGTGTTTATGACGATAATTGTCTTACACTTTACGTTATATCTATTGGCATTATATCCTAACGAAGCAT -TACAACATCAGCTTAAAATATCTATTGTGAGTCATTCATTGATTTTTCACATCCCATATTTATCGGCTTT -CACCATTAATTTATAAATTATCATAAGAGGTCAGGACAAAGGTATATATTAATGATACGTCCTGGTCTTC -TTTTTATGGAGTGTTATTATGACAAAAAAAGATGTTATCAAACTATTAGAACAAATTGCTACTTATATGG -AATTAAAAGGGGAAAATACTTTTAAAATATCAGCGTATCGAAAAGCAGCTCAAAGTCTTGAATTAGATGA -ACGACCATTAGATGAAATATCTGATGTAACGGAGTTAAAAGGCATTGGTAAAGGTGTTGCAGAAGTAATC -AATGATTACCGTGAGACCGGTGAATCTCAGTATTTACAGCAATTACAGGAAGAAGTTCCGGAAGGTCTTA -TTCCACTTTTGAAAATTCAAGGACTTGGAAGCAAGAAAATTGCTAAGCTATATAAAGAGTTGAATATTGT -TGATAAAGCTTCACTTCAAGTTGCTTGTGAAAATGGAAAAGTTAGTGAATTAAGCGGATTTGCTAAGAAA -ACGGAACAAAACATATTAGAAGCTGTGAAACAACTTGGTGCTAAGAAAGATAGATATCCAATTGATCAAA -TGAGAAGACTTAATCAAGAAATCATTGATTATATAGATACATTAAAATATATCGATCAATATTCATCTGC -AGGAAGCTTCCGTCGTTTTAAAGAAATGAGCAAAGATTTAGATTTCATAATAAGTACCGATAACCCAAAA -GCAGTGCAGCAGCAATTATTAAATATTCCCAATAAAGTAAAAGAAGTTGCAGTGGGGAACACAAAAGTTT -CATTAGAATTAGCGTATGATGATGAAACGATTGGTGTCGATTTTCGATTAATTGAACCAAGGGCTTTTTA -TCATACATTGCAGCATTTTACTGGGTCAAAAGAACATAATATAAGAATTCGACAACTTGCTAAAGCACGG -GATGAAAAAGTAAGTGAATATGGAATTGAACAAGCTGATGGTACATTAATTCAATATGATAGTGAAGCCA -AAATATATGAACATTTTAATGTGAATTTTATACCACCTGCTATGAGAGAAGATGGTAGCGAATTTGATAA -AGATCTAAGTAATATCATTACATTAGATGATATTAATGGTGATATTCATATGCATACAACGTTTAGTGAT -GGTGCGTTTTCCATTCGAGACATGGTAGAAGCAAATATCGCAAAAGGTTATAAATTCATGGTAATTACTG -ATCATTCACAAAGTTTACGTGTTGCTAATGGCTTACAAGTAGAAAGACTTTTAAGACAAAACGAAGAAAT -TAAAGCTTTAGATAAAGAATATAGTGAAATTGATATTTATTCGGGTACAGAAATGGATATATTACCTGAT -GGCTCGCTGGATTATGATGATGAAATTTTAGCACAACTTGATTACGTAATTGGAGCTATTCATCAAAGCT -TTAACCAATCAGAAGAACAAATTATGGAACGATTAGCTAATGCATGTCGCAATCCATACGTGCGACATAT -AGCGCATCCAACAGGGCGTATTATAGGTAGAAGAGATGGTTATAAACCGAATATTGAACAATTAATGGCA -TTAGCTGAAGAAACGAATACAGTATTAGAAATTAATGCCAATCCACATCGACTGGATTTGAGCGCTGATA -TCGTTCGTAAATATCCAAATGTGAAATTAACTATTAACACTGATGCGCATCATACAAATCATTTAGATTT -TATGAATTATGGCGTAGCAACTGCGCAAAAAGGATTTGTAACAAAAGATAGAGTGATTAACGCATTATCG -CGTGAAGCTTTTAAAGACTTTATTGAAAATAATATAAAACTTAAGAAATAGAGGGATTTTATGAGACAAA -AAACATTAGACGTCTTAGAATTTGATAAAATAAAATCACTCGTTGCCAATGAAACAATTAGTGACTTAGG -CTTGGAAAAGGTCAATCAAATGATGCCAGCTACTAATTTTGAAACGGTTGTTTTTCAAATGGAAGAAACG -GATGAGATTGCTCAAATCTATAATAAGCATCGTTTACCAAGCTTGAGTGGCTTATCTAAAGTATCAGCAT -TCATTCATCGCGCTGATATTGGCGGCGTTTTAAATGTATCAGAGCTTAACTTGATAAAAAGATTAATTCA -AGTACAAAATCAATTTAAGACATTTTATAATCAATTGGTTGAAGAAGATGAAGGTGTTAAATACCCAATA -TTAGATGACAAGATGAATCAATTACCTGTGTTAACTGATCTTTTTCAACAAATAAATGAAACATGCGATA -CGTATGATTTATATGATAATGCGAGTTATGAATTGCAAGGGATTAGAAGTAAAATTTCTAGCACGAATCA -ACGTATTAGACAAAATTTGGACCGTATTGTTAAAAGCCAAGCAAATCAGAAAAAATTATCAGATGCTATT -GTAACAGTTAGGAATGAAAGAAACGTTATACCTGTCAAAGCTGAATATCGACAAGATTTTAATGGGATTG -TACATGATCAATCTGCTTCAGGACAAACATTGTATATTGAGCCATCATCAGTTGTTGAAATGAATAATCA -AATTAGTCGATTACGTCATGATGAAGCAATTGAAAAAGAACGCATTTTAACGCAACTAACTGGTTATGTT -GCTGCGGACAAAGATGCACTACTTGTGGCAGAACAAGTCATGGGTCAGTTAGATTTTTTAATCGCAAAAG -CGAGATGTAGTAGAAGTATTAAAGGAACAAAGCCGATATTTAAAGAGGAACGTACTGTATATTTACCTAA -AGCATACCATCCATTATTAAATCGTGAGACTGTTGTAGCTAATACCATCGAATTTATGGAAGATATTGAA -ACGGTAATTATTACAGGACCGAATACAGGTGGTAAAACAGTAACATTAAAAACATTAGGTTTAATTATTG -TTATGGCTCAATCAGGATTGTTGATTCCAACACTTGATGGTAGTCAGTTGAGTGTATTTAAAAACGTATA -TTGCGATATCGGAGATGAACAATCAATAGAACAATCATTATCAACTTTTTCATCTCATATGACGAATATA -GTTGAAATTTTAAAGAATGCAGACAAACATAGTTTAGTTTTATTTGATGAATTAGGTGCAGGTACAGATC -CAAGTGAAGGTGCTGCATTAGCAATGAGCATTTTAGATCATGTTAGAAAAATTGGTTCTCTAGTAATGGC -AACGACGCACTATCCTGAACTTAAAGCATATAGTTATAATCGAGAAGGCGTTATGAATGCGAGTGTAGAA -TTTGATGTAGATACATTGAGTCCAACGTATAAGTTATTAATGGGTGTGCCGGGTCGTTCAAATGCTTTTG -ATATTTCTAAAAAGTTAGGTCTTAGTTTGAATATTATTAATAAGGCTAAGACGATGATTGGTACTGATGA -AAAAGAAATAAATGAAATGATTGAATCATTAGAGCGTAATTACAAACGTGTAGAGACACAGAGGTTAGAA -CTGGACCGTCTTGTAAAAGAAGCGGAGCAAGTGCATGATGATTTATCTAAGCAGTATCAACAATTCCAAA -ATTATGAAAAATCTCTAATTGAAGATGCTAAAGAAAAAGCGAATCAAAAAATTAAAGCAGCAACAAAAGA -AGCTGACGATATTATTAAAGACCTAAGACAATTGCGTGAACAAAAAGGTGCAGATGTTAAAGAACATGAA -TTGATTGATAAGAAGAAACGATTAGATGATCATTATGAAGCGAAATCTATAAAGCAAAATGTACAAAAGC -AAAAATACGATAAAATTGTTGCTGGTGATGAAGTAAAAGTATTATCTTACGGTCAAAAGGGTGAAGTTTT -AGAAATTGTCAATGATGAAGAAGCAATTGTTCAAATGGGAATTATTAAAATGAAGTTACCTATTGAAGAT -TTAGAGAAAAAACAAAAAGAAAAAGTTAAACCAACGAAAATGGTTACACGTCAAAATCGTCAAACAATTA -AAACTGAACTTGACTTACGAGGCTATCGTTATGAGGATGCTTTAATTGAACTAGATCAATATTTAGATCA -AGCCGTTTTAAGTAATTACGAACAAGTTTATATCATTCATGGTAAAGGTACAGGTGCACTTCAAAAAGGT -GTACAACAACATTTGAAAAAGCATAAAAGTGTTAGTGACTTTAGAGGTGGTATGCCAAGCGAAGGTGGAT -TTGGCGTTACCGTTGCAACACTAAAATAAATTATAATTTGATAAATTAATTAGCTGCAGTTAAAATAATG -TAAAGCAACAAGAATACATTTCAAACATGTTATTTGAAATAAGCATAAAAATTGAGCAAATAGAAATACA -TGAAGCATGTTATCTGATATAATTTGAACATCATAATAATAATTAAGGAGGATTGGCATTTATGGCAATC -GTTAAAGTAACAGATGCAGATTTTGATTCAAAAGTAGAATCTGGTGTACAATTAGTAGATTTTTGGGCAA -CATGGTGTGGTCCATGTAAAATGATCGCTCCGGTATTAGAAGAATTAGCAGCTGACTATGAAGGTAAAGC -TGACATTTTAAAATTAGATGTTGATGAAAATCCATCAACTGCAGCTAAATATGAAGTGATGAGTATTCCA -ACATTAATCGTCTTTAAAGACGGTCAACCAGTTGATAAAGTTGTTGGTTTCCAACCAAAAGAAAACTTAG -CTGAAGTTTTAGATAAACATTTATAAGTTACAACCAATGACGACTGGGGCATTTCTTTAATGAATTGCTC -CAGTTTTTGTTTGTGTTTTTAATATATAAAGTTGAATGATAAGTCATCATATTGTTTACGACTTGAGAAT -GGTGGGATTAATAAATCTATGAACGTTAAATGATAATCAAACATGCTGATAGATATGTAATAGTTGGTTT -GATAAAACAATGTTCAATATTACATGATGTGCATGAAAAGTCGTACTCGAAGATGTTGATTATGAACTAG -AATTAGCGGTGATAAATTTGAAGCGCTTTCGTAGCATCATTCATTTTAAAATTAGAAGGGGGGATATTTT -TGGAAGACTATAAGAAACGAATTAAAAATAAATTAAATGTCGTACCTATGGAACCAGGCTGCTATTTAAT -GAAAGATCGTAACGATCAAGTGATATATGTTGGCAAAGCTAAAAAGCTAAGAAATCGATTGCGATCATAT -TTTACGGGCGCTCATGATGCTAAAACAACGAGACTGGTTGGTGAAATACGTCGCTTTGAGTTTATTGTCA -CGTCTAGTGAAACAGAGTCACTTTTACTTGAATTAAATCTGATTAAACAATATCAACCAAGATATAATAT -ATTATTAAAGGATGATAAAAGTTATCCATTTATTAAAATTACGAAGGAAAAATATCCTAGACTACTAGTG -ACGAGAACTGTAAAACAAGGTACTGGTAAATATTTCGGACCGTATCCGAATGCATATTCTGCTCAAGAAA -CTAAAAAGTTATTAGACAGAATATATCCATATCGCAAATGTGATAAGATGCCAGATAAATTATGTCTTTA -TTACCATATTGGACAATGTTTAGGACCATGTGTATATGACGTTGATTTGAGTAAATACGCACAAATGACG -AAGGAAATTACTGATTTTCTGAATGGGGAAGACAAAACAATTTTAAAAAGTTTAGAAGAGAGAATGTTAA -CTGCAAGTGAATCACTTGATTTTGAACGAGCTAAAGAATACAGAGATTTAATTCAACATATTCAAAATCT -AACTAACAAACAAAAAATTATGTCATCAGATAAAACGATTCGTGATGTCTTTGGTTATAGTGTTGATAAA -GGATGGATGTGTATCCAAGTTTTCTTTATAAGACAAGGTAATATGATAAAGCGAGATACAACGATGATTC -CATTACAGCAAACAGAAGAAGAAGAATTTTATACATTTATTGGACAATTTTATAGCTTAAACCAACATAT -TTTACCTAAGGAAGTTCATGTACCACGTAATTTGGATAAAGAAATGATTCAATCTGTTGTGGACACTAAA -ATCGTTCAACCCGCGCGAGGTCCCAAAAAAGATATGGTTGACTTAGCTGCACATAACGCTAAAGTATCCT -TAAATAATAAATTTGAATTAATATCACGTGATGAGTCCAGAACAATTAAAGCTATTGAAGAACTTGGAAC -ACAAATGGGAATTCAAACACCAATTAGAATTGAAGCATTCGATAATTCTAATATTCAAGGTGTGGATCCA -GTGTCAGCAATGGTTACATTTGTCGACGGTAAACCAGACAAGAAAAATTATAGAAAGTATAAAATCAAAA -CGGTTAAAGGTCCAGATGATTACAAATCAATGAGAGAAGTAGTAAGACGACGATATTCTCGCGTTTTAAA -CGAAGGATTACCATTACCTGATTTAATAATAGTAGATGGTGGTAAAGGACATATGAACGGGGTTATTGAT -GTGCTACAAAACGAATTAGGTCTTGATATCCCTGTTGCAGGTTTGCAGAAAAATGATAAACACCAAACAT -CTGAATTATTATATGGCGCTAGTGCAGAAATTGTACCACTGAAGAAAAATAGCCAAGCATTTTATTTGTT -GCACCGTATCCAAGATGAGGTTCACAGATTCGCAATCACATTTCATAGACAAACACGTCAAAAGACAGGC -TTGAAATCAATCCTTGATGATATAGATGGTATCGGTAGCAAACGTAAAACATTATTATTGCGTTCATTCG -GTTCAATCAAGAAAATGAAGGAAGCTACACTTGAAGATTTTAAAAATATAGGTATTCCTGAAAACGTTGC -AAAGAACCTACATGAACAATTGCATAAATAAATTACAGGGCGTGAGAATCATTCTCATGCCCCAAAATAT -ATGAAATAATGTTACAATATGGTTAACAAAGTTATTTTTTTGAATGTACGTGGAAGCGTTTTCTAAATGA -GAAAGTTTATCATCACAAGCAATCTTAAATATTAAATCCAAATTTTACATTGTTCGACATGCAGTTTGGT -GATCGTGCAGTGTGTATTTGTCTTTAAAATGTTTCGCTTAATGATAATGACAACGCTAGAAACGATATCA -CTTTAGGGGGTTAAGCGTACGTTTAATATAAATAGCTCAATAAATTAAATATTCGTTCACAGGGGGGACT -CCTTTTGGCTCAATCAAAAAATGAATTTTATCTAAGACGTATTCACTCGTTATTAGGTATTATCCCAATA -GGTGCATTTTTGGTCGTTCATTTATTAGTGAATCACCAAGCAACACAAGGTGCTGAAGCGTTTAATAAAG -CATCTAACTTTATGGAATCATTACCATTTCTAATTATTGTAGAATTTTTATTTATATACATTCCGTTGTT -ATATCACGGTTTGTTTGGTATACACATTGCATTTACAGCAAAAGAAAATGTTGGACATTACTCGATTTTT -AGAAACTGGATGTTCTTCTTCCAAAGAGTGAGTGGTATCTTAACATTTATCTTTATTGGTATCCATTTAT -GGCAAACACGTTTACAAAAAGCATTTTACGGCAAAGAAGTGAATTACGATTTAATGCATGAAACATTGCA -ACATCCTGGATGGGCAATATTTTATATTATTTGTATTATTGCTGTTGTGTTCCACTTTGCAAATGGCTTA -TGGTCATTCTTAGTTACTTGGGGTGGACTTCAATCTCCAAAATCACAACGAGTATTTACATGGGTTTCAT -TAATCGTATTCTTAGTTATTTCGTATATTGGTGTTACTGCAATTATTGCCTTTATGTAATACATCGCATT -TAACAAATATAGATTGAAAATTTAGGGGAGTGAAATTTTTATGGCAGAGAAACATCTTATTGTTGTCGGA -GGTGGCCTAGCGGGCTTAATGTCAACAATTAAAGCGGCAGAAAAAGGTGCACATGTAGATTTGTTCTCAG -TTGTACCAGTAAAGCGTTCGCACTCTGTTTGTGCCCAAGGTGGCATTAATGGTGCGGTCAATACTAAAGG -GGAAGGCGATTCTCCTTGGATTCACTTTGATGATACAGTGTATGGTGGCGACTTCCTTGCAAACCAACCA -CCTGTTAAAGCGATGACAGAGGCAGCACCTAAAATTATTCATTTATTAGACCGTATGGGCGTAATGTTCA -ATAGAACAAATGAAGGTCTATTAGATTTTAGACGTTTCGGTGGTACATTACACCACAGAACAGCATATGC -AGGGGCAACAACTGGACAACAATTATTATATGCATTGGATGAACAAGTTCGTGCATATGAAGTAGATGGA -TTAGTTACGAAGTATGAAGGATGGGAATTCCTTGGCATAGTTAAAGGTGACGATGATAGTGCAAGAGGTA -TCGTTGCACAAAATATGACAACTGCTGAGATTGAAACATTTGGTTCAGATGCAGTTATTATGGCAACGGG -TGGCCCTGGTATTATTTTCGGTAAAACAACAAACTCAATGATTAATACAGGATCAGCGGCTTCCATTGTT -TACCAACAAGGCGCTATTTATGCTAATGGTGAGTTCATTCAAATTCATCCTACTGCAATACCTGGTGATG -ATAAACTACGACTAATGAGTGAATCAGCACGTGGTGAAGGTGGACGAATTTGGACATATAAAGATGGTAA -GCCTTGGTACTTCTTAGAAGAGAAATATCCTGATTATGGTAACTTAGTACCTCGTGATATCGCAACGCGT -GAAATTTTCGATGTATGTATTAACCAAAAATTAGGTATTAATGGCGAAAACATGGTATATCTTGATTTGT -CACATAAAGATCCACATGAGTTAGATGTAAAACTAGGTGGTATCATTGAAATTTATGAAAAATTCACTGG -TGATGACCCACGCAAAGTACCAATGAAGATTTTCCCAGCTGTCCACTATTCAATGGGTGGTCTATATGTA -GATTATGATCAAATGACAAATATTAAAGGGTTATTTGCAGCTGGAGAATGTGACTTCTCTCAACATGGTG -GTAACCGCTTAGGTGCCAATTCATTGTTATCAGCGATTTATGGTGGTACAGTAGCAGGTCCAAACGCGAT -TGATTATATTTCAAATATTGATCGATCATATACTGATATGGACGAAAGTATTTTTGAAAAACGTAAAGCT -GAAGAGCAAGAACGTTTTGATAAATTATTAGCTATGCGCGGTACAGAAAATGCATATAAATTACACCGTG -AACTTGGTGAAATTATGACAGCAAATGTAACTGTTGTTCGTGAAAATGAAAAACTGTTAGAAACAGATAA -AAAGATTGTTGAATTGATGAAACGTTATGAAGATATTGATATGGAAGATACTCAAACTTGGAGTAACCAA -GCGGTATTCTTTACTCGTCAATTATGGAACATGTTAGTACTTGCACGTGTGATTACGATTGGTGCATATA -ACCGTAACGAATCACGCGGTGCCCATTATAAACCAGAATTCCCAGAGCGTAATGATGAAGAGTGGTTAAA -AACGACAATGGCCTCATTCCAAGGCGCATTTGAAAAACCACAGTTTACTTATGATGACGTCGATGTGAGT -TTAATACCACCTCGTAAACGTGATTACACAAGTAAGTCTAAAGGGGGTAAAAAATAATGACTGAACAATC -AGTGAAAAACACTCCACAACATGAAATACAATCTAAACCGAAACAAAAAACAGTAAAATTAATTATTAAA -CGACAAGATACAAGTGATTCTAAGCCTTATGAAGAAACATTTGAAATTCCATATCGTGAAAATTTAAACG -TCATTGCATGTTTAATGGAAATTAGACGTAACCCAGTTAATATTAAAGGTGAAAAAACAACACCTGTTGT -CTGGGATATGAACTGCTTAGAAGAAGTATGTGGAGCATGTTCTATGGTTATCAATGGTCGTGCAAGACAA -TCTTGTTCTGCGATTGTTGATCAATTAGAACAACCTATTCGTTTAGAGCCAATGAATACTTTCCCAGTTA -TCCGTGACTTACAAGTTGATCGTTCTAGAATGTTCGATAACTTAAAACGTATGAAAGCATGGATCCCAAT -TGATGGAACGTATGATTTAGGTCCGGGGCCACGTATGCCAGAGAAAAAACGTCAAACAGCTTATGAATTA -TCTAAATGTATGACATGTGGTGTATGTTTAGAAGTTTGTCCTAATGTTACTGAAAATAATAAATTCGTTG -GTGCGCAAGCAATCTCGCAAGTTCGTTTGTTTAATTTGCACCCAACAGGATCTATGACTAAAGATGAACG -TTTAAATGCATTAATGGGTACAGGTGGCTTACAGCAATGTGGTAATTCACAAAACTGTGTTAATGCTTGC -CCTAAAGGTATTCCATTAACAACATCCATTGCAGCAATGAACAGAGAAACAACATTCCACATGTTTAAAT -CATTCTTTGGTTCAGACCATGAAGTAGAATAAAAATTAATCCCTTTTGAGTTAAAATGTTATGTTCCTTT -CAAAATTAAATTGAATGGAGATACACAAAAACTTAGAAGGGATTTTTTATAGTTACATTACATGACAATA -TGATAGTGAGCTAATTTAAAATAAGTATTATATTATAATGACAAAAATGGTAAACACAGTGCATAATACT -AAAATCCAATGCTTAGTTATGATAAACTAAAAATTAAATTAAAAGTAAGGATGACCGAATATGAATAAAC -CAATAGGTGTAATAGACTCTGGTGTCGGAGGTTTGACAGTAGCTAAAGAAATTATGCGTCAGTTGCCAAA -TGAGACGATTTATTACTTAGGTGATATTGGGCGATGTCCATATGGGCCAAGACCAGGAGAACAAGTAAAA -CAATATACAGTTGAAATCGCTCGTAAATTAATGGAATTTGATATAAAAATGCTCGTGATTGCTTGTAATA -CTGCAACTGCTGTAGCTTTAGAATATTTACAAAAGACCTTATCAATCCCAGTGATTGGCGTAATTGAACC -AGGTGCTAGAACAGCAATAATGACGACTAGAAATCAAAATGTATTAGTACTAGGAACGGAAGGCACAATT -AAATCTGAAGCATATCGAACACATATTAAACGTATAAATCCACATGTAGAGGTACATGGCGTTGCCTGTC -CAGGTTTTGTGCCACTTGTAGAACAAATGAGATATAGTGATCCAACAATTACAAGCATTGTTATTCATCA -AACACTGAAACGTTGGCGTAATAGTGAGTCTGATACTGTCATTTTAGGATGTACCCACTATCCATTGCTC -TATAAACCTATCTATGATTATTTTGGTGGTAAAAAGACAGTGATTTCGTCTGGATTAGAAACGGCTCGTG -AAGTTAGTGCATTGCTAACATTTAGTAATGAACATGCAAGTTATACTGAACATCCAGATCATCGATTTTT -TGCAACAGGTGATACCACACATATTACTAACATTATCAAAGAATGGCTAAATTTATCTGTCAATGTGGAA -CGTATATCAGTGAATGACTAGGAGGATTTTTAATGAAAGAGATTGTTATTGCATCGAATAATCAAGGGAA -AATAAATGACTTTAAAGTGATATTTCCAGATTACCACGTAATAGGTATTTCAGAACTAATACTAGATTTT -GATGTGGAAGAAACAGGATCAACATTTGAAGAAAATGCTATATTAAAATCAGAAGCTGCTGCAAAAGCAT -TGAATAAAACGGTCATAGCTGATGACAGTGGACTAGAAGTTTTTGCATTAAATGGTGAGCCAGGTATATA -CTCTGCACGTTATGCTGGTGAAAATAAAAGCGATGAAGCAAATATTGAAAAATTATTAAATAAGCTTGGT -AATACAACTGATCGTCGTGCACAATTTGTTTGTGTCATAAGTATGAGTGGCCCTGATATGGAAACAAAAG -TATTTAAAGGTACTGTTTCAGGTGAAATTGCAGATGGGAAATATGGCGAAAATGGTTTCGGATATGATCC -GATATTTTATGTACCGAAATTAGATAGAACCATGGCGCAACTTTCTAAAGAACAAAAAGGTCAAATTAGC -CATAGACGAAATGCAATTAATTTATTAGAAGCTTATCTTGCGGGTGATCAAAATGTCTAAATGGATTGTT -GTGAGTGATAATCATACTGAATCTGGCATTTTATACCAAATTTACGAGGCACACCCAGATGCTGATATGT -ATTTGCATTTAGGCGATTCAGAATTTGAGTATGATGATACAGAACTTAGCTTATTTCGTAGGGTAAAAGG -CAATTGTGATTTTTACCCAGAATTTGAAAATGAAGCGGTCGCAAAATGTAATGACGTGAGAGCATTTTAC -ACTCATGGACATTTATATCAAGTCAATCGAACAAGATATTTATTAGCTGAGCAAGCACGTGAATTAGGTT -GTGTATTTGCTTTTTATGGACATACACATGTTGCAAAATATGAGTATATTAATGGTGTTCATGCTATTAA -TCCTGGAAGTATATCTCAATCTAGAAGTTCAATGGAAGAATCGTATGCGGAAGTTTTGATTGATGATCAA -ACATTACAAGGTACAGTGAATTTTAAAAACCGACAACATGAAACAATTAGTCATACTACTTTTTAAATTA -AAAGTAGCTATGGCTTTTTTTAGTTTATAGACTGATTTAACTAGGAGGTCGTGACATGAATGTTTGTTTA -AAAGTGTTGCTGACAATTTTTAGAAGGTAACTGGTATGAATAACACATTTATGTTATGAAAAGAATTGTA -CTTTTTGGGAAAGTGATTGTTGATTGTCCTATTTGGTTGAATCCTGTTGATTATTTGGTTAAAAGTGTAT -TATTAAAAAGTATAAAATTAAGATTCCAAGAAGTCAGGAAATTTGAAATTTTAGTTAAAATCATGAATCG -TATACATATTTAAAAGGATTTCTAAAGGCATAAATTATATCAATAATTTGATGGTTAAAATATGGAGTAG -CAAAATTCTTGAAATTCAGAAATGTAGTGACACAAATATTAATGTTTAGTTAATAAATAGTTAATGTAGT -TTTTTGCTTCTGTCTATTATTATAAATATATACAAAATAAATATTTGAGGATAGGTGTTATTAATTATGA -AAAAGAATTTTATTGGGAAATCAATTTTAAGCATAGCTGCTATTAGTTTAACGGTATCAACATTTGCCGG -TGAATCTCATGCACAAACTAAGGCTGAAAAATATAACGAGTATCAAACAAACTTTAAAAAACAAGTAAAT -AAAAAAGTTGTGGATGCACAAAAAGCTGTAAACTTGTTCAAACGTACAAGAACTGTTGCAACACACCGTA -AAGCACAAAGAGCTGTTAACTTAATTCATTTCCAACACAGCTATGAAAAGAAAAAATTACAAAGACAAAT -CGATCTAGTTTTAAAATATAATACTTTAAAATAATTGATAGAAGCCATGCTATAGAGTGTGGCTTTTTTA -CTATGTGTAATCTGATGAAAGTTATTTAAACATTGTATGTATTTTACTTGATGAGTATATTGGGGTAAAT -CTTAGAAAATCCTTTGAAAATGTATGTGATAGGTGTTTTGAATGACGGGATAACGCCAAGCATATGTATT -AACAATCGTTAGAATTTTCGCGGATTTAGAGGTATTGTGTTAATCATACGTGCTTTATTAAACAGTCGTA -AAGATGATAAATAAATTGGGAGTTGCAGCATATAAAAAAGCACGCCAAAACGTTAGCATTGTTTTCCAAC -GTTTGGCGTGCAACTATTTAATTCAGTGTGTTTATTGATCCCAATAGATCGAGTCGATTTCACCATTTTT -AACTAAGGGAATATTTTTCCTGTTTTCTTCTAAAGGACGAGTTAAGTCAAAAGTATAGAAATCTTTAGGT -CCTCCATTTCTCATTTTAACGACAGCTTTTTTCACATCGCCTTTGCTTAATTTTTTGACAATGATGTATA -GGTCATTAACAGTTTCACCTTTAAAACCTTCGTCAATTAATTTAGTAGCACGTTCATCATCTTTTTTAGC -TTGATCTGCTAACTTTTTAGCGATTTCTAATCCTTTCCATTCATAACTAAAGAAAGCTTTAGCATCATTT -GAATGAGTTAGAAGACCTGTAGCGATGACTGTAGATGCAATAATTACTTTTGTAATATTTTTTTCATAAT -AAGTTCTCCCTGTAAAATAGATTTGTACTTACTAATGCGAGTACACTGCTATTTTACAAACGGTTTCAAG -CATTTACCAGTTAACACTTCATTAATTAAATTTAAGTGCAAATTAATAAGGTTTAATGCAATTGAAAAAG -AACATTGATGAATTTGATGTTATTATTTTTATTTGAGGTATTATTGAATTTATTGATAGTATAATAATAT -TAGTAAACGTCACTCAACTATGATTGAATGATTTTTATTGTTAAAACGATATTTATATTTCTCTACATTT -AATTGCAATGTTGGGTAGACAAGTAGTCCAAATTGTTATACATATAGCGTTTTTGATAATTAATGTTTAT -AAAACATAGAAATGACACATAGTAGAGAAGTAATTAATATGTATAATTTTACTTATAAAGAAATAAGAGA -TATATTCTAATTAAGGTTGATATGTTATGATTAATATATAAGTTAAAAAATATACTATTTAGTTGTATTA -TGCATTTTCGAAGTAAGCATAATTCAACACTTACATTTTTAAATAGATAAAATAGTGTAAAATCACGTGC -CAAGATTACTATAGAGTAGGCATTGAGTATTATTGGCAATCACTTAAGTGATTGTTATTTTTTCGTGGTC -AATAATAAAGATATAAATAAACATATTGAGGTCAAACGATGATAATTAAAATTTTAACAATTCTATTACT -ACTTTGTATATTGAGCTATTTGGTTACAAATAAAAAGAAGCCTTTTCTGTTCTTAAAGACACTCTTTATG -GGTGTGGTGTTTATCTTTATAGGATATATTTCACTGGCAATATCTGCCGTAATTATTTATGGTATTATTC -AATTTATCACAATTGATTTTGGTAGTTTTTTCTTAATGGGTATTATTTTGATCTTGATTTCAAGTATATT -CCAATTATTTATAGTTAGATTACTTTTTAGAAAAAAGAATGTCGATTTAACAGAGGTTGTCGTTTTAGAA -CATTTAATTCAATGGTTCTTAGTTTATTTTGCGATCTATCAAGCAGTAAATGAAAAAATGGACATTAATG -ATATTAATATCGACAATTTCCAATCAGTCTTTTTTGACGTGTCTAATTTGAATTTAGTAATTCTACCAAC -TTTGATTATTAGCTGGGTTACAATATTTAACTATAGAATGAGAAGTTACAAATAAAATCTATGAAATTAT -ACCATCAGACACCAACATTCAAATGGTGTCTTTTTGTTGTGTAGTTTTATTTTTGAAATTCGAAAAGTAG -AGGCATGAAATTTTTGACTAGTGTATAAGTATTGATGAGACACAAGATAGATAACTATATTTTGTCTATA -TTATAAAGTGTTTATAGTTAATTAATAACTAGTTAATTTCAAAAGTTGTATAAATAGGATAACTTAATAA -ATGTAAGATAATAATTTGGAGGATAATTAACATGAAAAATAAATTGATAGCAAAATCATTACTAGCGATA -GCGGCAATTGGTATTACTACAACTACAATTGCGTCAACTGCAGATGCAAGCGAAGGATACGGTCCAAGAG -AAAAGAAACCAGTGAGTATTAATCACAATATCGTAGAGTACAATGATGGTACTTTTAAATATCAATCTAG -ACCAAAATTTAATACAACACCTAAATATATTAAGTTTAGACATGATTATAACATCGTGGAATATAATGAC -GGTACATTCGAATATGGTGCACGTCCACAATTTAATAAACCAGCAGCGAAAACTGAGGCAACTATTAAAA -AAGAACAAAAATTGATTCAAGCCCAAAATCTTGTGAGAGAATTTGAAAAAACACATACTGTGAGCGCACA -TAGAAAAGCACAAAAGGCAGTCAACTTAGTATCATTTGAATACAATGTTAAGAAAATGATATTGCAAGAG -CGAATTGATCAAGTATTAAAGCAAGGATTAGTGAGATAATACTTCTGTCATTATTATAAGTTCAAAATAA -TTTAATATTATATTATTTTTTATTAATAAAACGACTATGTTATTTAATGCCAGGTTAATGTAACTTTCCT -AAAATTGACTATATAATCATTAAGTATCAATTTTAAAAGGAGAATTTACAATGAAATTTAAAAAATATAT -AGTAGCAGGAACATTAGCAGTACTATTATCAACAACAGCAGTATCAACGTTAGATGGGAATAAAGCAGAT -GCAAGTAGTAAGAAAGACTATATAATTCAAAGTGAGTTTCATGATAAACGAATTGCTGAAGAATTGAAAT -CATTACTTGATCAATCTTATGTAAATGATTTAGCTGCAGGAAGCTTAAACCCATACTACAAACGTATGAT -TATGATGAACCAATATAGAGCAAAAGCAGCACTAAAAAGTAATAATTTCGCAAAAATGGCTGAAGCTAAA -GTTGGATTAGAAAACATTTACAAAGAAATTGATGAAATTATAAATAGATAATAAAAAACAGGCAGAGACA -AAAATAGAATTGTCTTCGCCTGTTTTTTTATTTGTACAGTTAAAAATTCTGCAATTTAAAATTTATGTAT -GAGCAATGTATACAAAAAATAGGGGAGACAAATATAAATATAATAGTTAGAAATATTATGCACAAAATTG -CTTTGTACAATCTAAAAAATATTTATAGTGCTCCCATAGATAAATTTAAACGTAGTATGAAACGTTCTGA -TTTTTACTCAATGAGTATATTATTGGAAGAAAAAGTTAACGTGTGTCGAACATGCCACGATGCCAAATAT -AATGAATAGAAATAAGACAATAAGCATGGCGGCGCTTTTTAAACAACCTCTATTTGTTTCCTCCGAATTT -CTTTGTTGAACCTTTTTATAATCTTCAAGATGCTTTGTGGTCTTTTTATTTATATGTTTATTCATGATGT -TTACTCCTTAATCTAAATGTAAATTGCATTAAAATAGTTGAAAACATAACTTGAAATAAAGATATAAAGC -TTAAGTTAGGCTGCTCGTTGTTTCAAATTTTAAGTGAGTATCATGTTAAATTAGATGATAACTTGTTTCG -TTTATTTTCCAATTTGTTTGTTTTTAAACTGACGTATTAAAATATTAATGAAACATTAGAATACATAAAT -GAACAGTAAAGGTGCACAGTATAGAAGGATTAATGCCACACTAAGTATAAATATTGTTAGCTGTAAACTA -TCTTTAGTTTTAATATAAACAATTAATATAAGTAGTGTTAAAAGGATCATATATATTAATGACGAAGAAG -TCCAAACAAAATCTGCGTCATTGGTAGTTAGCAATGGGACGATAATCAGTCCGAAGTTAATCATGCATGC -TATATATACAATGATGTTATACACAATGTTAATTTTTGGTCACCACCTTAACTGTTGTTTTTAAATGCTT -TGAAAAATTGCATTTTAATAGTGTAATGAATATCCGAATTTCTAATTTTCGTTCGTTATACGTTTAAAAG -ACTATATATAGTATGCCTTTATGTTTCTAAATGTTTTTTAATATTTAATTCTCGTCAATATTTGGATTAT -GAATCATCAACGCAAGTACTTTGTTAGATGCGTCAATTGTAAATTCAGAGCCATAGTTAACATGACTAAC -TTTTAATTTATTATCTAAATAATTGATTGCGATTGCGACATCATAATCTTCATCAATAACAAATAAACTA -TTTTCGTTTGTAACTACTTCATGTTTCCCTGAGTAAACAACATTAATTTCCCAATCTTTAAAAACCATTT -GTCATCCTCCTTGAACATTTAAACTGATTCAATCTAAGTTTAACTTATTCATACAACTTCTTACAATATC -TAGATTAGAGATAAATAGATTTCTAGAAATTATTTTCAATTATATGTACTTATTATACTTTTTATCTTCT -TATTTCAGTATAGTTTTAAAACGATTTTAAAATAATTCTGCAAATATATTAACACATAATGTGTTCAATA -AGTTTTGAACAATTTCAAAACTTTTAATTAAAGGGTTTGACAACAATGAATTTCAAATGTTTGTAGTTAA -GAAATCAGTACCGTAATCATGATTTTAGCCGTGAATATATACTGAAAAGCATAATAGGTATATTACTATT -CATGATGTTTAATTTTATACTGCAACTAAAATAGCCGACGCACATCATTTCTGATGTTATCGGCTAATAT -TATTATGTGACTATTTGAGTGTACATAACCATTAATTTGTCATTTCTTCTTTTTCCCAATCGATTTTATA -TCTTTCTGAAGAACGATCTGTCCATTTATCTTTAGTATTGGTACCTTTCCAATTTGTTGAAGTCCAATGT -AGTTGATAGTCATCACGAACTCGTTCGTATATTACATCTATATTTGTTTGTTGTTTGGTTGCTTTCCTAT -CCATAGTAATAACTGTAGCAAAGTCTGGTGAGAATCCTGAAGATAATAAAGAACTTGCTTTGTTAGGGTC -AAGGAAGTTCTCTGCTGCTTTCATTGAACCGTTTCTTGTTTTCATGAAAAGTTGATTGCCATATACTGGG -TTCCAAGAATCTCTGTCATATGGTCCCCAATTTTGATTCACCATATTGTTAAATATAACTTTCCAACCTA -CTTTTTTATCAGTTGGACTTTCTAAAATTGTTTTGAAATCTGGTTGAACATATTTGAGTGTATGACCAAT -TGAAACATTTGCACCAATCAAACCGCCAATTTTTCCAGAATCATCACCAGTCACGTTACCGTTGAATCCA -TAAGTTAATGTACTCATATATTCTTTAGTATCAATTGAATTTCTAGGGTAGTAATCAGAAATTTGTGCTA -CTTCATTATCAGGTAGTTGCAACTATACCTTAAATGCTGAAGGCCAGGCTAAACCGCTTTTATTAGCGCC -TTCTTCGCTATAAACTCTATACTGACCAGCAATGGTACCTTTCGTTCTGATGACTAATATTTTTTTATTG -TGATTTTTATCATCGATAAAACTATAAAATACTTTTTTGTGCATGCCATTTTCTTTATCATAAGTGACTA -AATCACCTGTTTTTACTGTAGTATTGCTTCCTATATCTGTAGTACCGGTTTTAATATTAATATCAGAATC -TGCGGCATTAGCGACAGGATTCATTAATATAGAACCTAGCAATAGTGTTGTTGTTACTGAGCTGACTATA -CGTGTTTTCATTTTCATCATCCTTCTATTTTTTAAAACGATTTGAGGAAACAATAATCAATATGTCAATT -TAGAATAATGCAGTTGAGACATATCAAATATTTATCATCGTTTATATTAGTATATTTAATGTAGCAACTG -TTAAATGATTGAGTGATGATGAGTGAATATTTTAAGAATATGTTTTTAACTTTTAATTAATATTTGAAAG -GAAGCATTTCAATGTCGAGGCTTAGTCAAAGTTGAATGAACTCTTTATGAACCAAGGAAAAGACAAAGCT -AATTTTATTGATTAATTTCTTTAAAACTGGGTATTTATTTAACTTTAAAATGTAATCGATTACAATATAA -AAATACAAATATCTTAGAATTAAATCAATTAATTAACTATTAAATAAAAGTTAACTGTATATTAACTAGT -ATAATTAATCAATTATGAATAGAGAAAAATTAATTGTCTTGGAATATTTGTGCGAATTAATTTTAACAAA -GTATTGTAATTTCGTATAAAAATGTAAAAGGGTGTAGTGTAATATTATAAAACATTGTAAAATATGTTAT -ACAAGGGAAAATGTAGACTTCTAGTTATAGGCGTTATAAGAGAATCTTAAACTTAGGTTAGCTTTTAATG -TTGAAACTAAGTGGAAAGTGATAAATATAAAAATGATAGGGGATTATAATGAAACTATTTTATATCGCAT -TTCTAATTATTATATGGCTGAATATATTTTTAGGAAATGAAGTCATTCATACACTGACTGTTTTAATAAC -AACATTGTATATTGTTAATAGAAGAAAGAGGGTTAAAAATGACAGAGTTGAATGAAATTATCAACGCTAT -TCAATCTTTGTTTGAGTCTCAATCAGGCTACAAAATATCGAAAAATTCAGGGGTGCCGTATCAGACCGTA -CAAGATTTGAGGAATGGTAAAACGAAAATAGAAGATGCTAGATTTAGAACAATTATAAAACTATATAGTT -ATTATACATCATTAAAAGAGCAGTCATAATTAAATCATTAAATAAAGAGTAGAGTCTGGGACATAAATCC -CTAAAAAAACAGCAGTAAGATAATTTTCAATTAGAAAATATCTTACTGCTGTTCTCTATTTATACAATAC -TTCGTATTGAATGGCTTCGCTTTCCTAGGGTGCCGTCTCAGCCTTGGTCTTCGACTGGCACTGCTCCCTC -AGGAGTCTCGCCATTAATACTACGTATTAACATGTAATTTTACTTTGAAATACTTTAAAAAAATAAGACA -CTTTCGTATAATTTAATAAATACCACTAAACTAAATTAACGAGGTGCCTTATGTATAAAAATTATAACAT -GACCCAACTTACACTACCAATAGAAACTTCTGTTAGAATTCCTCAAAATGATATTTCACGATATGTTAAT -GAAATTGTTGAAACGATACCTGATAGCGAATTCGATGAATTCAGACATCATCGTGGCGCAACATCCTATC -ATCCAAAAATGATGTTAAAAATTATCTTATATGCATACACTCAATCTGTATTTTCTGGTCGTAGAATAGA -GAAATTACTTCATGACAGTATTCGATTGATGTGGTTAGCTCAAAATCAAACACCTTCTTATAAAACTATT -AATCGTTTTAGAGTAAATCCTAATACTGATGCATTAATTGAATCTTTATTTATTCAGTTTCATAGTCAAT -GTTTAAAGCAAAATCTTATTGATGATAATTCAATTTTTATTGATGGTACAAAAGTAGAAGCTAATGCCAA -TAGGTATACATTTGTGTGGAAGAAAAGTATTCAAAATCACGAATCGAAATTGAACGAAAATTCAAAAGCA -TTATATCGTGACTTAGTTGAAGAAAAAATAATACCAGAGATAAAAGAAGATGGAGATAGCGATTTAACAA -TAGAAGAAATAGATTTAATTGGTAGTCATTTAGATAAAGAAATCGAAGATTTAAATCATTCTATTCAGAA -CGAAGATTGTACTCAAATTAGAAAACAGACCCGTAAAAAAAGAACTGAGATTAAGAAGTTCAAAAAGAAA -TTTGATGATTATTCCGAAAGAAAAAGTAAATATGAAGAACAAAAATCGATTCTTAAAGATAGAAATAGCT -TTTCTAAAACTGATCATGATGCAACTTTTATGAGAATGAAGGAAGACCATATGAAAAATGGCCAACTTAA -GCCAGGATACAATTTACAAATAGCGACAAATTCTCAATTTGTTTTATCCTATGACCTATTTCAAAACCCG -ACAGATACTAGAACTTTAATTCCATTTTTAACAATGATTCAAAATACCTTCGGTTATTTACCGGAGTATA -TTGTAGCTGATGCAGGTTATGGTAGTGAGCAAAACTATATGGCTATTATAGATGATTTTAATAAAACGCC -ACTTATTACGTATGGTATGTTTATTAAAGATAAAACGAGAAAGTTTAAAAGTGACATTTTTAACACTCAA -AACTGGAAATATGACGAACTTAATGATGAATTTATATGTCCTAATAACAAAAGAATAGGTTTTAAAAGAT -ATGCATACCGTAATGATAGATATGGTTTTAAACGTGACTTCAAACTATATGAATGCGATGACTGTTCAGC -ATGTTCTTTGAGACAACAATGCATGAAGCCAAATTCGAAATCCAATAAGAAAATCATGAAGAATTATAAT -TGGGAATACTTTAAAGCCCAAATTAATCAAAAGCTTTCTGAACCAGAAACGAAAAAAATCTATAGTCAAA -GAAAAATTGATGTAGAGCCTGTTTTTGGATTTATGAAGGCTATTTTGGGTTTCACTCGAATGTCAGTTCG -AGGAATAAATAAAGTTAAACGAGAGCTAGGTTTTGTATTAATGGCACTTAATATAAGGAAAATAGTAGCT -CGACGAGCTGTATATTATCAAATACATTTAAAAAAAGCTGATTTCTATCAAATAATTAATAGAAATCAGC -TTTTTTACATTGCCTAAGAACTTAATGTCCCAAGCTCTACAATATTATATAGACAGACATTGACCAAACA -AAAATGCGATTATAACAAGACTTTAAATTAGAGACAGGGGCCCCAACAAAAAGAATTTCGAATAGAAATT -CTACAGACAATGTAAGTTGGGGTGGGGCCCCAACATAGAGAAATTGGGTTACCAATTTCTACAAGCAATG -CAAGTTGGGGCGGGCCCAAACCCAGAGAATGACTTGGCATTTCTATTAGACTCCAAATCGCATTTAATAT -TCTGTGTACTAAATTAATGATTGTGTAAGTACTATTGAGACATTTTGTAGTATTACTCAAATATTGTTTA -TCCTTAGTATTTACGATATAAATCATACGACCTTATTTAATCAATGAGGACTTCGACTGTTATTTTTTGA -GGATTTTTAACATAAACATTTGCAAGATCAGAATGTAATCTTTTACTCAAATCAATTGTAAAGTCATTGC -CGCCACCGGTGATTTTAAGTTTACCTTTATTGCGATTTTCATGATATAATATTTTATTTTTAATTAGTGT -TTCACGTGCTCGAAAATCAATTTCTTTCAATGTTAATATTGGTTTATTACCTTGGTACATCTTATGTGCA -CCAATAATTGTTTGTAGTTTATCTTTGTATTGGACAAAAAGACTATATGGTTTATCAGAAGGTGATGCAG -CAGGTGTTACACCACCTGTAAATGTATCACGATATACCCACCATAACTGGCTAGTGTCTTCGTCTTTTAA -ACCAAACACGTCTACATAGCGGTCTCTTAATTGATTAACGTTGCCCCAACTTTCAGCACCCCATAATCGT -ATATGCGCTGACCAAGAATAACGCTTAAATTCAACATAAATGTTGCCGTCATCATATTGGTATAACCATC -TATTTGAAAATGTGAGAGGCAGTTGTGTGTAATATTTAATTAACTCATTGATGTTCGTTTCGTCTTGGCC -AATATGATAAGCTTTAGCGTCTGTAGAAACATTTAATGGCGAATTAGAGGTTTGTGTAGCTGTTGTTCCT -AATAATAACAATGTTGTCATTAAAATTAACTTTTTCATAATGCACTTTCTCATTCGAACTTCTCCTTTCT -GCGTAATCATCAATACGAGAATTAACAAATTTAAAAATGAACGGCGTCAATGTAAACATTGTGCTTATTT -CTGTTTACTTCGATTTCGATGTTAGCTAGATTTTTCAAGGAGGATTTCGATGTGTGCAGTTTGAGGGTTT -TTAACATATCTATTTGCATCAGTTGATTTTAATCTTTTGCTTAAATCTATTGTGTAGTTGTTGCTGCCAC -CTGTAATCTTAATGTGGCCTTTATTATAATCACCATTATATAATTTTTTGTTTTTAATTAGTGTTTGGCG -GATTCGGAAATCAACTTCCTTTAAAGTTAAAACTGGTTTATTACCTGTATAAAATTGATATTCGCCAATA -AATGTTCCTGCTTTATCTTTATATGTTACATTCAATTTATAATGTTTATCGCTAGGTTTTGCTACTGGTG -TAACACCGCCAGTAAATGTTTCTTGGGCTAACATATAAGTGCGCCAGGTTTCATAATCTTTTAAAGCAAA -AATATCTACATATTTATTTCTTAATTGATTAATATTACCCCAACTTTCAGGGCCGAATACTTGAATATGA -CTAAACCATGATAACTGTAACAATGTTGCATGGATTGTACCATTATCTTTTTGCCATAGCCATTTATTTG -AAAATGTTAAATGGCGTTGTGTGTAATATTTAGTCAATTCATTTACATTCGTTTCGCTTTCACTTATATT -GTATGCTTTTGCTTCAGATGACATACTAATCGGTGAATGAGGGGATTGACTTGTAGCTGTGCCTATCATA -GTCAATGCTATTGATAAAATAATTTTTTTTGTGAGGTTGTTTTTCATTAGAAAATCTCCTTTACGAGGAA -TGTTATATGCGAGGAATAATAAGTTTATAAAAAGAGAGAAATCAATTAAATCATTCAGTCTATTTGTATT -CACTCAATGAATGATACTAATGAGATTTTTCAAGAATGACTTCAATTTCTGCATGTCGAGGATTTTTAAC -ATAACTGTTTGTGTCAGTTAGTTTTAACTTTTTACTCAAATCAATCGTATAATGATTACCACCACCTGTA -ATCCTAATTTGACCTTTATTAAATTCTCCATTATATAGCTTTTTGTTCTTAATTAAAGTTTGACGTACGC -GGAAATCTAGTTCTTTTAAAGTTATTACTGGTTTATTACCTTGATAAAACTCAAGTCCACCAATCATAGT -TTGTTGTTTATCCTTATATTTTAAAAATAATTTATAAGGCTTATCAGATGAAGTAGCTGCTGGTGTTACA -CCTCCAGTAAAGGTTTCATCATAAGTCCAATAGCCTTCTATAGTATCCTCATCCTTGGTACCAAAAATAT -CTACATATTTATCTCTTAATTGATTAATGTTGCCCCAACTTTCAGGACCAAATACTTGAATATGCGTGTA -CCAAACCCACGTTTGTAATGTTGCATGTATGGTACCGTTAGGGTTTTGCCATAGCCATTTTCCAGAAAAT -GAAAGGTGTGGCTGCGTGTAATATTTGATTAATTCATTGATATTCGTTTCGTTTTCACTTATATTGTATG -CTTTTGCTTCAGATGAAAAACTGATTGGTGCTTTAGGCGGTTGTGTTGATGTAGTTCCTAAAAGTAACAA -TGCTGTTGATAAAACAATTTTGTTCGTGATGTTCTTTTTCATATGATAATCTCCTTTGCGTGAATTACCC -ATAGTATATAAGGTATTGCACCGATTCGGAATTAAATAAAAGCTAACACTATGTTAAATAAACATAAACA -GTTGAACGTGTGATTTAAGTAAAATTTTTCATTTTTAAGCATTGGAACATTGCCAATTATAAAATGAAAA -GAGTGCTAATAAATTAAAACTGATGCTAATTATGATATTAATTGCGTTAAATTAGTTATTTATTGAATTT -TCTAACTACTTGAAAAATAGTTATACTTTAAATGTAGTACTTATTTTAATTATTTCCTACTACTTAAATT -TAATATTAATAAAATGTTCATTTAATTATTGATAAAATATTACAAATTTTAATAGTAGGTTGTGTTTATT -TTGTATGCGCTTACAATTTAGGTGTAACTAAAATAAAAGGAGTTGTTATTAATGAAAAATTTACGAAACA -GAAGTTTTTTAACTTTATTAGACTTTTCACGACAAGAGGTAGAATTCTTATTAACACTCTCCGAGGATTT -AAAACGTGCTAAATATATTGGCACTGAAAAGCCTATGTTAAAAAATAAAAATATTGCACTGTTATTTGAA -AAAGATTCTACAAGAACGCGATGTGCATTTGAAGTTGCAGCGCATGATCAAGGTGCTAATGTAACTTATT -TAGGCCCAACTGGATCACAAATGGGTAAAAAAGAAACAACTAAAGATACTGCACGTGTGCTTGGTGGAAT -GTATGATGGCATTGAATACCGTGGTTTTTCACAAAGAACAGTAGAAACTTTAGCTGAATATTCAGGCGTA -CCAGTGTGGAATGGTTTAACTGATGAAGATCATCCTACTCAAGTTCTTGCTGATTTCTTAACAGCAAAAG -AAGTTTTGAAAAAAGATTATGCAGATATTAACTTTACATATGTTGGAGATGGACGTAATAACGTTGCAAA -TGCATTAATGCAAGGTGCTGCCATTATGGGTATGAACTTCCATTTAGTTTGTCCAAAAGAATTAAATCCA -ACAGATGAATTATTAAATCGCTGTAAAAATATTGCCGCTGAAAATGGTGGCAACATATTAATCACAGATG -ATATTGACCAAGGTGTAAAGGGTTCGGATGTAATTTACACTGACGTTTGGGTATCAATGGGTGAACCTGA -TGAAGTATGGAAAGAACGACTTGAATTATTGAAACCTTATCAAGTAAATAAAGAAATGATGGATAAAACT -GGTAATCCAAATGTTATTTTTGAGCATTGCTTACCATCTTTCCACAATGCTGATACCAAAATTGGACAAC -AAATTTTTGAAAAATATGGTATTCGAGAAATGGAAGTTACAGATGAAGTATTCGAAAGTAAAGCTTCAGT -TGTATTCCAAGAAGCTGAGAACAGAATGCATACAATCAAAGCAGTCATGGTTGCTACATTGGGTGAATTT -TAAATGATATAAGGAAGTGAATATGATGGCGAAAATAGTAGTAGCATTAGGTGGGAATGCTTTAGGAAAA -TCACCTCAAGAACAACTCAAGCTTGTTAAAAATACTGCGAAATCATTAGTAGGATTAATAACAAAAGGAC -ATGAGATTGTTATTAGTCATGGTAATGGGCCACAGGTTGGAAGCATTAATTTGGGACTTAACTATGCTGC -AGAACACAACCAAGGTCCGGCATTTCCATTTGCTGAATGTGGCGCAATGAGTCAAGCTTACATCGGCTAT -CAATTACAAGAAAGCTTACAAAACGAATTGCATTCTATTGGAATGGATAAACAAGTGGTAACACTAGTGA -CACAAGTTGAAGTTGACGAAAATGATCCGGCATTTAACAATCCTTCAAAACCAATTGGGTTATTTTACAA -CAAAGAAGAAGCTGAACAAATTCAAAAAGAAAAAGGATTTACATTTGTTGAAGATGCTGGAAGAGGGTAT -AGACGTGTTGTTCCTTCACCACAACCCATCTCTATTATTGAATTAGAGAGTATTAAAACACTTATTAAAA -ATGATACACTCGTTATTGCTGCTGGTGGTGGAGGTATACCAGTAATTAGAGAGCAACATGATGGTTTTAA -AGGTATTGATGCAGTTATAGACAAAGATAAAACAAGTGCGTTGTTGGGTGCTAATATTCAATGCGATCAA -TTGATTATTTTAACTGCAATTGATTATGTATATATTAATTTTAACACTGAAAACCAACAGCCTTTGAAAA -CAACAAATGTTGATGAATTAAAACGATATATAGACGAAAATCAATTTGCAAAAGGAAGTATGTTACCAAA -AATTGAAGCAGCCATATCATTTATTGAAAACAATCCAAAAGGAAGTGTGCTTATAACATCATTAAATGAA -TTAGATGCTGCCTTAGAGGGTAAAGTAGGTACTGTGATTAAAAAGTAATTGAATTGAAACGCTTTTCAAT -TACTATATGTCAAATGCATGATTTTTATTATTTATGTGCACCCCTGAAAATAATGCCTCTATTTTGATGC -GGGGTGCACTTTCTTAATTTATATTTATAAAATCTTTAAGGTAGAAATGCTAGGTTAAATGTCGAAGGAG -ATGAAACCGTGGAAAATACAATTAATGAAAGTGAAAAGAAAAAACGATTTAAATTAAAAATGCCAGGTGC -ATTTATGATTTTATTCATTTTAACGGTTGTTGCAGTTATAGCAACATGGGTTATTCCTGCTGGTGCATAT -TCTAAACTTTCTTACGAACCTTCATCCCAAGAACTAAAGATAGTTAACCCTCATAACCAAGTGAAAAAGG -TTCCAGGTACGCAACAGGAACTAGACAAAATGGGGGTTAAAATTAAGATTGAACAATTTAAATCAGGTGC -AATTAATAAGCCGGTATCAATTCCGAATACTTATGAAAGATTAAAGCAACATCCAGCTGGACCAGAACAA -ATAACAAGTAGCATGGTTGAAGGTACGATAGAAGCGGTTGATATCATGGTATTCATTCTTGTATTAGGGG -GACTTATTGGCGTAGTTCAAGCCAGTGGTTCTTTTGAATCGGGATTGCTAGCTTTAACAAAGAAAACTAA -AGGGCATGAATTTATGCTAATTGTGTTTGTATCAATACTAATGATTATCGGCGGGACGTTATGTGGTATT -GAAGAAGAAGCTGTCGCATTCTATCCGATTTTAGTCCCTATATTTATAGCGTTAGGATACGATTCTATCG -TTTCTGTTGGTGCCATATTCCTTGCCAGCTCTGTCGGTAGTACCTTTTCAACTATTAACCCGTTCTCGGT -TGTAATTGCCTCTAATGCAGCTGGTACAACTTTCACGGATGGTTTGTATTGGAGAATAGGTGCTTGTATT -GTCGGTGCGATTTTTGTTATTAGTTATTTATATTGGTACTGTAAAAAAATTAAAAAAGATCCTAAAGCGT -CATATTCTTATGAAGACAAAGATGCTTTTGAACAGCAATGGTCTGTGTTAAAAGATGACGATAGTGCCCA -TTTTACTTTGCGTAAGAAGATAATCCTTACATTATTTGTACTACCATTTCCAATTATGGTATGGGGAGTT -ATGACGCAAGGTTGGTGGTTCCCAGTTATGGCTTCAGCATTTTTAATATTTACAATTATAATAATGTTTA -TTGCTGGGACAGGTAAATCTGGATTGGGAGAAAAAGGGACTGTAGATGCATTTGTCAATGGTGCATCAAG -TTTAGTAGGTGTATCTTTAATTATTGGATTAGCTCGAGGTATTAATTTAGTGTTGAATGAAGGTATGATT -TCAGATACAATCTTACACTTTTCATCATCTTTAGTTCAACATATGAGTGGACCATTATTTATCATCGTAT -TACTATTTATTTTCTTCTGTTTAGGTTTTATCGTGCCATCATCTTCTGGATTAGCGGTATTATCAATGCC -TATCTTTGCACCACTAGCTGATACAGTAGGTATACCAAGGTTCGTCATCGTTACGACATATCAATTTGGT -CAATATGCTATGTTATTCTTAGCGCCGACTGGACTTGTTATGGCCACACTACAAATGTTAAACATGCGAT -ATTCACATTGGTTCCGATTTGTATGGCCGGTAGTTGCTTTTGTATTGATTTTCGGTGGCGGAGTACTAAT -TACGCAAGTACTAATTTATTCATAATTTGAAATGCTATATTATAAAAAATACTAATTGGGTTATATGCAT -CTCGTAGGTTTGTAGAAATACTAAACTAAGCGAGGTGCATTATTATTTTGATTTAGAAAATAATGGCGGT -AATGATAACATTAGTAAGTAATTGATACAATGTTCTATTTAATAATGATATTTTTAAAATATGTTTTTAA -TGTAATGTTAGATCTATGGTATATTATATTTATCGTGGTAAATATATATTTGCTGTAAACAGTTTTTGTA -ACACATGATACATTTGGTTGTGAAAATAGCATAAATAAAGGATGGCTATAAATGACACATTTGACAAAGG -TTTTAGATACACTAACTGGAATATGCGTAGTATTATTATTTAGTAAATATTTTGTGACGTATGCAAATAT -GGTATTTGATTGGAATTTAAGATGGTATTTGCTAGGAAACATACCACATTTGCCAATTATATTATTTATT -CTGATGTTTATTTTCGGAGTACCTTCTGAAATGATAAAAGATAGGCAGAGGAAAAATAACGGCGTTTAAT -TTATCGATGTTAAGAGGTGATAAAACTTGTCAACTATTACAAAAACTAAAATAAAAATCTTTATTAATTA -TTTTATTGGTATATTAGCCTTGGCGTTTGCTGCTTATATATTATTTAAATAAAGAATAGAGTGAAACGTG -TTTATGAACTAGACGTTCTAGTATAGTTACTACAGCTTTAGTCAGAAGGTATCATTGTTGTTCATAAATA -AGATGATATTAAATCAAAGAGGCATTGATATACACTAAAAAGAGGCAAGATTACCTGCCCCTTTTTTAGT -TATTAAATATGCGTGTAAATTCTTGGTAATAGTGTTACTGAGACGCATTACGAAGAAATTTATCTTGGTT -TTCCTTTTTTAAAAAGAAGTGAAGATATCCTATAAAGACTCTAAGTACTATTACAGTGGCTAATAACACT -TCGATAAACAAAAGGCCCTTCCAAATGACTGGAAACATAAGCACAGGCAAACTGTTCTTTAAAGCAGTTG -CAGAGATTACTAAAGGGAATGTGAAAGCTGAAAATACTGGCGAAAAAGGTTCTTTTAGTAATTTAGGCAA -TTGTATAATGATGTAAAAATAAAATATTTGAGCTAATAGTAAAAGTATAATTACGATAAAAGCATTCGCT -TTAGGAAAGGCTATAACATATGCTGCAGCGACTAAAGAAAATGGTGCACAAATTGTCGATGTGTTCGGTT -TGATTGACGTCTGCAATGGAAATGCTTTTAATCGCTTGAAAACTATAGGTAAGACAATACAAGTAGCTAC -AAAGCCATATATTACTGTTAATTGACCTATGAAAAAATATCCGCTGACGGGTGCCGTCAATCCTGCGATA -GCAATACCAATAAAAAGTACAGTCCATGAAGGATAAACATTCTCAAGTGAAAAATCTTTTAAATATTTAA -TTGAAAAAATAATCATATGCATCATAATTCCCACAAGGCATAAAATCCAAATAGGCGTTATTAAATTATT -GATAAATGTTATATTACTAAAAAATGTATTTAAATAAGTAGTACCTAAAAAGCCAGACATGAAAAATGTT -GTGAACACAGATGAAACTAGAGGGCTGTTTAATTGTTCTTTCACATTATTAAAATATTTGAGCATAGTAC -ATAAAAGGTGAATCCAAATCAAGAAAGCAAAGATTCCGCAAATAGCGTTTAAAGTAAGAGATAAGTCTTT -TAATAGATTACCCAGGCCTAATAATCCTAAGACTAGTCCTGACGTTACTAGAGGTGCTTTTTGAAGTCTC -ATGATTTACAACCTTTCTTATGTGATTTTCTTCACTAATTATATCATGATTGCTATGGACTATTAATAAG -AAGAGAGTGTACTATTACGTTTTTAGAGTGTGTATATTGGATTGATAGACACATAATTGACATTTAAATC -TCAAAATTAATGATATTTGAGGTATGCTTTGCTACCTAAATATGGAATGTGGGAAAAGTATTTATTTAAT -TTAAATGATGATTGAAGATTTACAAGGGAGTGTACAAAATGAGAAATCAAATTCAAAAACTATTAGACAG -TGATTTGAGCAGTTTACATATATCAAAACAAACAGGAGTGCCACAAAGCACAATACACAGAATGAGAAAA -AATGAAAGATCATTAGACAATATGTCATTGAAAAACGCTGAACTACTTTATAAATTTGCCAATGGTATAT -TTAGTGATGAAAATTATGAAGAATAATTAGTGAGTTAAATAATTAGAAAACCACGTCTCGATGGACGTGG -TTATTTTTCAGATGTATATAATTATAATTATAGGATTTCGGGTCCCTGAAAAGTCCCTAAAATTTTGAAT -AGTATCAAAATCTATAGGAATAATATAATAATAAAAATCTCTACGCATGCAAATGGTGAGTGTTAAAAAT -CTTGGTGTAGTTTTGGTGTAGTTCAGGTACAGTATAGAGGAAATTTGAGCGCAAAATTACTTAATTAAAA -ATGTGTAAACAAGTGTCAGACGCGTGTCAATTGTGTGTCAAAAAATTCTATAACGAATATGCATGCTTGT -TTTTATCACTGTATTTTCTGGGCTTGTGCGGGGACGTTTTGGTGACGCATCATACTATATTACTGAAATT -CAAAACAAAAAGAGCCCCGTAATCACGGAACTCTTTTGTTTGGTAATGCGTATAAAAATACTATAAACGT -CCTGGGAGGGATTCGAACCCCCGACCGATGGCTTAGAAGGCCATTGCTCTATCCAGCTGAGCTACCAGGA -CACGTTTAACAACACAAGAATTATTATATCTAAATGAACTTAAATTAGCAATACCTTGTAAATAAAAAAT -GTTTATATTTTTCACTATTATAGAGCTATTTATCTAAAAAGGTTCAATAAGACTTAAATACGAATTCAGG -CAACTTAATTGTGTTAAATACAGTTTTGAATGCCTAACTGTATATCTTTTCTCTTTAAAGTACAGTTAAG -TACATTATAAGATGTTGTGCGGATAAACAAACTAATTGCATCAAATTTATTTTAAAATAACAACAACAAA -ACGTTGAGCGAATAACATTTCGGTGATTTAAAAGCTACGCACGTTTTTGTTATCTTCAAATTTAAATTTT -AAGGAGTGTTTTCAATGGAAGGTTTATTTAACGCAATTAAAGATACCGTAACTGCAGCAATTAATAATGA -CGGCGCAAAATTAGGCACAAGCATTGTGAGCATCGTTGAAAATGGCGTAGGTTTACTAGGTAAATTATTC -GGATTCTAATATAATAACTAATATTCTTTAAAATAAACTGGGTGAGCATACTTTAATGTTATGCACTCAG -TTTATTTTATTTGCAGAAATTTGAGCCTCTGTTAAGATTTAGATACATAGACAATATAGGAGATGGGGAA -ATTGGGATATAAAAATATTTTGATAGACTTTGATGATACAATTGTTGATTTTTATGATGCAGAAGAATGG -GCATTTTACTATATGGCGAATGTTTTTAATCATAAAGCAACAAAGGATGATTTTTTAACATTTAAAAAAA -TCAATCACCAACATTGGGAAGCTTTTCAACAAAATAAATTAACGAAGTCTGAAGTATTATCAGAACGATT -TGTAAATTACTTCAAACATCATCAAATGGAAGTTGATGGGCATCGTGCAGATGTGTTATTTAGAAATGGA -TTAGCAGAAGCTAAAGTTAAATACTTTGATCAAACATTAGAAACAATTGTCGAGTTATCGAAAAGACATA -ATCTATATATTGTTACTAATGGTGTAACAGAAACGCAAAAGAGAAGGTTAAATCAGACGCCATTGCATAA -ATATATTAAAAAGATATTTATATCTGAGGAAACAGGATATCAAAAACCTAATCCGGAATTTTTTAATTAT -GTTTTTAATGATATTGGTGAGGATGAAAGACAGCACTCGATTATAGTTGGAGATTCTTTAACATCTGACA -TTCTAGGTGGAATCAATGCGGGTATAGCTACTTGCTGGTTTAATTTTAGAGGATTTGATCATAATCCAGG -AATTATACCTGATTATGAAATTAATTCATGGAAACAACTAAATGAAATTGTACGTTAAGACAAATAATTT -GAAAATGATTTACTTATATTAGCTAAGAAAGTAATTGTAAAAAAGACACTACGAAAAGATGCATTTTCAT -TCTCGTAGTGTCGAATATTATTATCTTATGGTTTCCACAATAAGACATCATGTCCCTCTATATTTTTAGC -TTCCACATCTGTAAATCCATGATGTAAAAAGAAATCCTTAGAATCATTTCTGCCAATGGCTTTAATTGGC -ATATTGAAACTCTTTGCAAAATCAATCAATTCTGAAGCGTACCCTCTGTTTTGATATTTTGGTAATACTT -CTAACTTCCATAATAATATATAATCTTCAAAATCTGGGAAGTAGATTTCTTCGACATCACCTTTTTTAAG -TAATGCCATTCTAGCTCCTAATTGATCTCCGACAAATATGCCATAAAATGGTGAATCTGAACTTGCGTCA -ATCATTTGACCGTTTAACTCATTGACCATGTATAAGTCTTTGTTGCCAAACGCTCTAAAGTTTTCGAATA -ATTCGTCAGTTTTGTAATTAATTTCAAGACGTTTGATTTCACTCATATTTATCTACCCCTTATTTGTTTA -CTACTATTATTATACATTAAACCACTTGTGTTTTTCATTGATTTGAAAATGTAAAACAATGAATATTATA -AATTTTCCATGATTAAATTGATTTTCAAGCCGTAAAATTGTCAATCACCGGTATAGACTTTATACTATAG -TTTGTAATCGCGTACTTAAGGAGAAAAAACATGGACTGTAAAGTAGTTAGTTTAAATGAAAAAGATCAGT -TTATACCAAAAATAAAGAGCAGTGATCCTGTAATAACAGGATTATTTCAATATGATGCAGCTCAACAAAT -TAGTTTTGAAAAAAGAATGTCTAAAGAAAATAATGGAAGAGAAGCGGCATTAGCGAATGTTATTCGTGAA -TATATGAATGATTTAAAGCTTTCTAGTGAACAAGAATTAAACATACAACATTTAGCTAATGGTTCAAAAG -TTGTGATTGGTGGACAACAAGCAGGGCTTTTCGGGGGACCATTGTATACATTCCATAAAATATTTTCAAT -CATTACCTTATCTAAGGAATTAACGGATACACATAAGCAACAAGTAGTACCAGTTTTTTGGATTGCAGGA -GAAGATCATGATTTCGATGAAGTGAATCATACATTTGTTTATAACGAAAATCATGGGTCACTGCATAAGG -TTAAATATCATACAATGGAGATGCCAGAGACGACTGTCTCTAGATATTATCCTGATAAGGCTGAGTTGAA -ACAAACTTTAAAAACGATGTTCATTCATATGAAAGAAACTGTTCATACACAAGGTCTACTTGAGATTTGT -GACAGAATTATTGACCAATATGACTCGTGGACTGATATGTTTAAAGCACTACTGCATGAAACATTTAAAG -CATATGGCGTTCTATTTATAGATGCGCAGTTTGAGCCGTTAAGAAAAATGGAAGCGCCTATGTTTAAAAA -GATTTTGAAAAAACATCAGTTGCTTGATGATGCTTTTAGAGCAACACAAAAACGTACTCAAAATCAAGGC -TTGAAGGCGATGATACAAACAGATACAAATGTTCATTTATTCTTACATGATGAAAATATGCGTCAATTAG -TTTCGTATGATGGTAAGCATTTTAGATTAAATAAAACAGATAAGAAATATATAAAGGAAGAAATTATTAA -TATTGCGGAAAATCAACCTGAATTATTTTCTAATAATGTAGTGACAAGACCATTAATGGAAGAATGGCTA -TTTAACACGGTGGCATTTATTGGAGGGCCGAGTGAAATTAAGTACTGGGCTGAACTAAAAGATGTATTTG -AACTATTTGATGTTGAAATGCCTATCGTGATGCCAAGGCTTAGAATTACTTATTTAAATGACCGTATTGA -AAAATTACTTTCGAAATACAATATTCCATTAGAAAAAGTGTTAGTCGATGGTGTTGAAGGAGAAAGAAGT -AAGTTTATTAGAGAACAAGCATCAGATCAATTTATTGAAAAGGTAGAAGGTATGATAGAACAACAGCGTC -GTCTATACCAAGACTTATTAGATGAAGTGGCGGGGAATCAAAATAATATTAACCTTGTGAATAAAAATAA -TGAAATTCATATACAACAGTATGATTATTTGTTAAAACGTTATCTTTTAAACATTGAAAGAGAAAACGAC -ATCAGTATGAAGCAATTTAGAGAAATTCAAGAAACACTCCATCCAATGGGAGGATTACAAGAAAGAATAT -GGAATCCACTTCAAATTTTGAATGATTTTGGGACAGATGTGTTCAAGCCCTCCACCTATCCACCACTTTC -TTACACTTTTGATCATATTATTATAAAACCTTAATATACCAAGGGTTTAGCCCGATTTATCATAATGATA -AATCGGGCATTTTTTTGTTTTTTAAAATAAATTTCACAAATTTTGTATAAATAGTGGTGGATAGTGGGGA -GATGTGGTAAATTATATATAAGGTGAGGTGATAAAAAATGTTCATGGGAGAATACGATCATCAATTAGAT -ACAAAAGGACGTATGATTATACCGTCCAAGTTTCGTTATGACTTAAATGAGCGTTTTATTATCACAAGAG -GCCTTGATAAATGTTTATTCGGTTACACTCTAGACGAATGGCAACAGATTGAAGAGAAAATGAAAACCTT -ACCTATGACAAAAAAAGACGCACGTAAGTTTATGCGTATGTTCTTCTCTGGTGCTGTTGAAGTAGAACTT -GATAAGCAAGGGCGTATTAACATCCCTCAAAACTTGAGGAAATACGCTAATTTAACTAAAGAATGTACAG -TAATCGGTGTTTCAAATCGTATTGAGATTTGGGATAGAGAAACTTGGAATGATTTCTATGAAGAATCTGA -AGAAAGTTTCGAAGATATTGCTGAAGATTTAATAGATTTTGATTTTTAAAATGGAGGAATTGAAGTGTTT -CATCATATCAGCGTTATGTTAAACGAAACCATTGATTATTTAAATGTAAAAGAAAATGGTGTGTACATTG -ACTGTACGCTAGGTGGAGCGGGACATGCCCTTTATTTACTAAATCAATTAAATGACGACGGAAGATTAAT -AGCAATCGATCAAGACCAAACTGCAATTGATAATGCTAAAGAGGTATTAAAGGATCATTTGCATAAGGTG -ACTTTTGTTCATAGCAACTTCCGTGAATTAACTCAAATATTAAAAGACTTAAACATTGAAAAAGTAGATG -GAATCTATTACGACTTGGGTGTTTCAAGCCCACAACTCGACATTCCAGAACGAGGATTCAGTTATCACCA -TGACGCAACATTAGACATGCGTATGGACCAAACACAAGAACTAACAGCATATGAAATTGTTAACAATTGG -TCATATGAAGCGTTAGTGAAGATTTTTTATCGCTATGGCGAGGAGAAATTTTCAAAACAGATAGCTCGAA -GAATCGAAGCACATCGCGAACAACAACCAATAACAACAACATTAGAATTAGTTGACATTATAAAAGAAGG -TATTCCTGCAAAAGCAAGAAGAAAAGGCGGACATCCTGCAAAACGAGTATTTCAAGCACTACGAATTGCA -GTAAACGATGAATTGTCAGCTTTTGAAGATTCAATAGAACAAGCGATTGAATTAGTGAAAGTAGACGGCA -GGATTTCGGTAATCACTTTCCATTCTTTAGAAGATCGTTTATGTAAACAGGTGTTCCAAGAATATGAAAA -AGGTCCAGAGGTACCAAGAGGATTACCAGTTATACCAGAAGCATATACACCTAAGTTAAAGCGTGTTAAT -CGTAAACCGATTACCGCTACAGAAGAAGATTTAGATGACAATAACAGAGCACGAAGCGCGAAATTACGTG -TAGCTGAAATACTTAAATAAGGAGCAATTAATAATGGCTGTAGAAAAAGTGTACCAACCATATGACGAAC -AAGTTTATAATAGTATACCGAAGCAACAACCACAAACTAAGCCCGAAAAGAAGACTGTTTCGAGAAAAGT -GGTTGTACAATTAACTAAATTTGAAAAAGTTTTATACATAACTTTGATTACTGTAATTGCTATGTTAAGT -ATTTATATGCTATCTTTAAAAATGGATGCGTATGATACGCGAGGAAAGATTGCAGATTTAGATTATAAAA -TAGATAAACAATCAAGTGAAAACAGTGCTTTACAATCTGAAATCAAAAAGAATTCTTCTTATGAACGCAT -ATACGAAAAGGCTAAGAAACAGGGGATGAGCCTTGAGAACGATAATGTAAAGGTAGTGCGTAGTAATGGC -GAAGCAAAAAATTAAAATTAAAAAAAATAAAATAGGGGCAGTCCTACTTGTTGGTTTATTCGGACTGCTC -TTTTTTATATTGGTTTTAAGAATTTCATATATCATGATTACTGGACATTCTAATGGTCAAGATTTAGTCA -TGAAGGCAAATGAGAAGTATTTAGTTAAGAATGCACAACAACCAGAACGAGGAAAGATATATGATCGTAA -TGGTAAAGTGCTAGCAGAAGATGTAGAAAGATATAAACTTGTTGCAGTAATAGATAAAAAGGCGAGTGCC -AATTCTAAAAAACCTAGGCATGTAGTTGATAAAAAAGAGACTGCAAAGAAATTATCTACAGTCATTGATA -TGAAGCCAGAGGAAATTGAAAAGAGACTTAGTCAAAAGAAAGCCTTCCAAATTGAATTTGGACGCAAAGG -AACAAATTTAACGTATCAGGACAAATTGAAAATAGAGAAAATGAATTTGCCTGGTATTTCTTTATTGCCT -GAAACAGAACGATTTTATCCAAATGGCAATTTTGCATCACACTTAATTGGTAGAGCTCAGAAAAATCCGG -ATACTGGTGAACTTAAAGGTGCGCTTGGAGTTGAAAAGATTTTTGATAGTTATTTAAGTGGATCTAAAGG -ATCTTTGAGATATATTCATGATATTTGGGGATATATTGCACCAAATACTAAAAAAGAGAAGCAGCCTAAA -CGTGGTGATGATGTCCATTTAACAATCGATTCAAATATTCAAGTATTTGTTGAAGAGGCTTTAGATGGCA -TGGTTGAAAGATACCAGCCGAAAGATTTATTTGCGGTTGTCATGGATGCCAAAACTGGAGAAATTTTAGC -ATACAGTCAGCGACCAACATTTAATCCTGAAACTGGTAAAGATTTTGGTAAAAAGTGGGCAAATGATCTA -TATCAAAACACATATGAGCCTGGATCAACATTTAAATCATATGGGTTAGCAGCTGCTATTCAAGAAGGTG -CTTTTGATCCTGATAAGAAATATAAATCTGGACATAGAGATATTATGGGTTCACGTATTTCAGACTGGAA -TAGAGTCGGTTGGGGTGAAATCCCAATGTCACTCGGATTTACTTATTCATCTAATACATTGATGATGCAT -TTACAAGATTTAGTTGGTGCAGACAAAATGAAATCTTGGTATGAACGATTTGGATTTGGAAAATCAACTA -AAGGTATGTTTGATGGAGAAGCACCTGGTCAAATTGGATGGAGTAATGAGTTACAACAAAAAACGTCATC -ATTTGGTCAATCGACAACTGTAACACCTGTTCAAATGTTACAGGCGCAATCAGCGTTCTTTAATGATGGT -AATATGTTAAAACCATGGTTTGTGAATAGCGTTGAAAATCCTGTTAGTAAAAGACAATTTTATAAAGGTC -AAAAACAAATCGCAGGCAAACCAATAACAAAAGATACTGCTGAAAAAGTTGAAAAGCAATTGGATTTAGT -TGTGAATAGTAAGAAGAGTCACGCTGCAAACTATCGTATTGATGGTTATGAGGTCGAAGGTAAGACTGGT -ACAGCACAAGTCGCTGCACCTAATGGTGGTGGATACGTTAAAGGTCCAAACCCATATTTCGTAAGTTTTA -TGGGTGACGCACCGAAGAAAAATCCTAAAGTTATTGTATACGCTGGTATGAGCTTGGCACAAAAAAATGA -CCAAGAAGCTTATGAATTAGGTGTTAGTAAAGCGTTTAAACCAATAATGGAAAATACTTTGAAATATTTA -AATGTAGGTAAATCAAAAGATGACACATCTAATGCAGAGTATAGTAAAGTGCCAGATGTTGAAGGTCAAG -ACAAACAAAAAGCTATTGATAATGTGAGTGCAAAATCATTAGAACCAGTTACTATCGGTTCTGGCACACA -AATAAAAGCGCAATCTATAAAAGCAGGGAATAAAGTCTTACCTCATAGTAAAGTACTGTTATTAACAGAT -GGAGACTTAACTATGCCTGACATGTCAGGATGGACGAAAGAAGATGTCATTGCTTTTGAAAACCTAACAA -ATATTAAAGTGAATTTAAAAGGTAGCGGTTTTGTGTCCCACCAATCAATTAGTAAGGGACAAAAACTTAC -TGAAAAAGATAAAATAGACGTAGAATTTTCATCAGAGAATGTAGACAGCAATTCGACGAATAATTCTGAT -TCAAATTCAGATGATAAGAAGAAATCTGACAGTAAAACTGACAAAGATAAGTCGGACTAACAAGAATGGC -TACATTAAATAAGGGTGTATTGTCACTATTTGTTTTTACTAAAGTAATGCTGTGATAGAAAACAACATCT -TCATTTAATCTTTATAAATAAGTGTTGATAGAGAATTTTAAGGTAGACGAGGTCAGATTAACTTGTTTGT -TATAGGCAAACTTTTTATACTGGCCTCTTATGCCGTAAAAAAGAAAAATTATAAATTTTGATTACAACTT -TGTTTATTTAATTGAAAAATTGATAATATATTAGTGGTTAAAAAAGTCTGGATTAAGAAGAGGAGATAGT -TATGATTTTTGTATATGCGTTATTAGCGCTAGTGATTACATTTGTTTTGGTACCTGTTTTAATACCTACA -TTAAAAAGGATGAAATTTGGTCAAAGTATTCGAGAAGAAGGCCCACAAAGCCATATGAAGAAGACTGGTA -CACCAACGATGGGTGGACTAACATTTCTATTAAGTATTGTGATAACGTCTTTGGTGGCTATTATATTTGT -AGATCAAGCTAATCCAATCATACTGTTATTATTTGTGACGATTGGTTTTGGGTTAATTGGTTTTATAGAT -GATTATATTATTGTTGTTAAAAAGAATAACCAAGGTTTAACAAGTAAACAGAAGTTTTTGGCGCAAATTG -GTATTGCGATTATTTTCTTTGTTTTAAGTAATGTATTTCATTTGGTGAATTTTTCTACGAGCATACATAT -TCCATTTACGAATGTAGCAATCCCACTATCATTTGCATATGTTATTTTCATTGTTTTTTGGCAAGTAGGT -TTTTCTAATGCGGTAAATTTAACAGATGGTTTAGATGGATTAGCAACTGGACTGTCAATTATCGGATTTA -CAATGTATGCCATCATGAGCTTTGTGTTAGGAGAAACGGCGATTGGTATTTTCTGTATCATTATGTTGTT -TGCACTTTTAGGATTTTTACCATATAACATTAACCCTGCTAAAGTGTTTATGGGAGATACAGGTAGCTTA -GCTTTAGGTGGTATATTTGCTACGATTTCAATCATGCTTAATCAGGAATTATCATTAATTTTTATAGGTT -TAGTATTCGTAATTGAAACATTATCTGTTATGTTACAAGTCGCTAGCTTTAAATTGACTGGAAAGCGTAT -ATTTAAAATGAGTCCGATTCATCATCATTTTGAATTGATAGGTTGGAGTGAATGGAAAGTAGTTACAGTA -TTTTGGGCTGTTGGTCTGATTTCAGGTTTAATCGGTTTATGGATTGGAGTGCATTAAGATGCTTAATTAC -ACAGGGTTAGAAAATAAAAATGTATTAGTCGTCGGTTTGGCAAAAAGTGGTTATGAAGCAGCTAAATTAT -TAAGTAAATTAGGTGCGAATGTGACTGTCAATGATGGGAAAGACTTATCACAAGATGCTCATGCAAAAGA -TTTAGAATCTATGGGCATTTCTGTTGTAAGTGGAAGTCATCCATTAACATTACTTGATAAAAATCCAATA -ATTGTTAAAAATCCTGGAATACCATATACAGTATCTATTATTGATGAAGCAGTGAAACGAGGTTTGAAAA -TTTTAACAGAAGTTGAGTTAAGTTATCTAATCTCTGAAGCACCAATCATAGCTGTAACAGGTACAAATGG -TAAAACGACAGTTACTTCTCTAATTGGAGATATGTTTAAAAAAAGTCGCTTAACTGGAAGATTATCCGGC -AATATTGGTTATGTTGCATCTAAAGTAGCACAAGAAGTAAAGCCTACAGATTATTTAGTTACAGAGTTGT -CGTCATTCCAGTTACTTGGAATCGAAAAGTATAAACCACACATTGCTATAATTACTAACATTTATTCAGC -GCATCTAGATTACCATGAAAATTTAGAAAACTATCAAAATGCTAAAAAGCAAATATATAAAAATCAAACG -GAAGAAGATTATTTGATTTGTAATTATCATCAAAGACAAGTGATAGAGTCGGAAGAATTAAAAGCTAAGA -CATTGTATTTCTCAACACAACAAGAAGTTGATGGTATTTATATTAAAGATGGTTTTATCGTTTATAAAGG -TGTTCGTATTATTAACACTGAAGATTTAGTATTGCCTGGTGAACATAATTTAGAAAATATATTAGCAGCT -GTGCTTGCTTGTATTTTAGCTGGTGTACCTATTAAAGCAATTATTGATAGTTTAACTACATTTTCAGGAA -TAGAGCATAGATTGCAATATGTTGGTACTAATAGAACTAATAAATATTATAATGATTCCAAAGCAACAAA -CACGCTAGCAACACAGTTTGCCTTAAATTCATTTAATCAACCAATCATTTGGTTATGTGGTGGTTTGGAT -CGAGGGAATGAATTTGACGAACTCATTCCTTATATGGAAAATGTTCGCGCGATGGTTGTATTCGGACAAA -CGAAAGCTAAGTTTGCTAAACTAGGTAATAGTCAAGGGAAATCGGTCATTGAAGCGAACAATGTCGAAGA -CGCTGTTGATAAAGTACAAGATATTATAGAACCCAATGATGTTGTATTATTGTCACCTGCTTGTGCAAGT -TGGGATCAATATAGTACTTTTGAAGAGCGTGGAGAGAAATTTATTGAAAGATTCCGTGCCCATTTACCAT -CTTATTAAAGGGTGTGAGTATTGATGGATGATAAAACGAAGAACGATCAACAAGAATCAAATGAAGATAA -AGATGAATTAGAATTATTTACGAGGAATACATCTAAGAAAAGACGGCAAAGAAAAAGATCAAAGGCTACA -CATTTTTCTAATCAAAATAAAGATGATACATCTCAACAAGCTGATTTTGATGAAGAAATTTACTTGATAA -ATAAAGACTTCAAAAAAGAACAAGGCAATGAAGAAAATAATGATTCTGCTTCTAGTCATGCGAATGATAA -TAATATCGATGATTCTACAGACTCTAATATTGAAAATGAGGATTATAGATATAATCAAGAAACTGACGAC -CAAAATGAATCGAATGGAATTGCAGTCGACAACGAACAACATCAATCAGCTCCAAATGAACAAAATAGCG -ACTCGAATGATGAGGAAACAGTAACGAAAAAAGAACGAAAAAGTAAAGTAACACAATTAAAACCATTAAC -ACTTGAAGAAAAGCGGAAGGTAAGACGTAAACGACAAAAACGAATCCAATACAGTGTTATTACAATATTG -GTATTGTTGATTGCTGTTATATTAATTTACATGTTTTCACCACTTAGTAAAATTGCGCATGTAAATATAA -ATGGAAATAATCACGTTAGTACTTCAAAGATAAACAAAGTTTTAGGTGTTAAAAATGATTCGAGGATGTA -TACGTTTAGTAAAAAAAATGCTATTAATGATCTCGAAGAGGATCCATTAATCAAAAGTGTTGAGATACAC -AAGCAATTACCAAACACATTAAACGTAGATATCACAGAAAATGAAATTATTGCTTTAGTGAAATATAAAG -GTAAATATTTACCTTTATTAGAAAATGGTAAATTGCTTAAAGGTTCAAATGATGTCAAAATTAATGATGC -ACCTGTCATGGATGGTTTCAAAGGTACAAAAGAAGATGATATGATTAAGGCGTTATCTGAAATGACACCT -GAAGTTAGACGATATATTGCCGAAGTGACATACGCCCCAAGTAAAAACAAACAAAGCAGAATTGAATTGT -TTACGACGGATGGACTTCAAGTAATCGGTGATATTTCGACGATATCTAAGAAAATGAAATATTATCCGCA -GATGTCACAATCATTAGCAAGAGATAGTTCGGGTAAACTAAAAACACGAGGCTATATTGATTTATCAGTC -GGTGCTTCATTTATCCCATACCGTGGAAACACGTCTACTCAATCAGAAAGCGATAAAAATGTGACTAAAT -CATCTCAAGAGGAAAATCAAGCAAAAGAAGAATTACAAAGCGTTTTAAACAAGATTAACAAACAATCAAG -TAAGAATAATTAAAAAATTTTGATATTGTCTATGTTTATAGTTCACAAGCCATTCAACGTATTGTAAACT -AAGGATAGTGTATTTTTTTAATAGTAATTTGTCAGGAGGTGCCTATCTATGGAAGAACATTACTACGTAA -GTATTGATATTGGATCATCAAGCGTAAAAACAATAGTAGGCGAGAAATTTCACAATGGTATAAATGTGAT -AGGTACAGGACAAACCTACACGAGCGGTATAAAAAATGGTTTAATTGATGATTTTGATATTGCGCGACAA -GCAATCAAAGACACAATTAAAAAGGCATCAATCGCTTCGGGTGTTGATATTAAAGAAGTTTTCCTGAAAT -TACCTATCATTGGAACGGAAGTTTATGATGAATCAAATGAAATCGACTTTTATGAGGATACAGAAATCAA -CGGTTCACATATCGAAAAAGTATTAGAAGGTATTAGAGAAAAAAATGATGTGCAAGAAACAGAAGTAATT -AATGTATTCCCAATTCGTTTTATAGTCGATAAAGAAAATGAGGTTTCAGACCCTAAAGAATTAATTGCCA -GACATTCATTAAAGGTTGAAGCAGGCGTAATTGCTATTCAAAAATCGATTTTAATTAATATGATTAAATG -CGTTGAAGCATGTGGTGTTGATGTATTAGATGTTTATTCTGATGCGTATAACTATGGTTCAATCCTAACA -GCTACTGAAAAAGAGTTAGGTGCATGTGTCATTGATATTGGTGAAGACGTTACGCAAGTTGCTTTTTATG -AACGCGGTGAATTAGTAGATGCTGATTCTATCGAAATGGCAGGGCGTGATATTACAGACGATATTGCACA -AGGATTAAACACTTCTTATGAAACTGCTGAAAAAGTTAAACACCAATACGGTCATGCATTCTATGATTCT -GCTTCAGATCAAGATATCTTCACTGTTGAACAGGTTGATAGTGATGAAACAGTACAGTATACTCAAAAAG -ATTTGAGTGACTTTATTGAAGCGCGTGTAGAAGAAATATTCTTCGAAGTATTTGATGTTTTACAAGATTT -AGGATTAACAAAAGTAAATGGTGGGTTTATTGTAACTGGTGGATCTGCAAACTTACTTGGCGTAAAAGAA -TTATTATCAGATATGGTAAGTGAAAAAGTTAGAATTCACACGCCATCACAAATGGGAATTAGAAAACCTG -AATTTTCTTCAGCAATTTCTACAATTTCTAGTAGTATCGCTTTTGATGAGTTATTAGATTATGTTACAAT -TAATTATCATGATAATGAAGAAACTGAAGAAGATGTTATTGATGTGAAAGACAAAGATAACGAATCTAAA -TTAGGCGGATTTGATTGGTTTAAACGTAAAACAAACAAAAAAGATACTCATGAAAATGAAGTAGAGTCAT -CAGATGAAGAAATTTATCAATCAGAAGATAATCATCAGGAACATAAACAGAATCATGAACATGTTCAAGA -CAAAGATAAAGAAGAAAGTAAATTCAAAAAACTAATGAAATCTCTATTTGAATGATTATTGGCCAATAAA -ACTAGGAGGAAATTTAAATGTTAGAATTTGAACAAGGATTTAATCATTTAGCGACTTTAAAGGTCATTGG -TGTAGGTGGTGGCGGTAACAACGCCGTAAACCGAATGATTGACCATGGAATGAATAATGTTGAATTTATC -GCTATCAACACAGACGGTCAAGCTTTAAACTTATCTAAAGCTGAATCTAAAATCCAAATCGGTGAAAAAT -TAACACGAGGTTTAGGAGCAGGAGCTAACCCTGAAATCGGTAAAAAAGCTGCAGAGGAATCTCGTGAACA -AATTGAAGATGCAATCCAAGGTGCAGACATGGTATTTGTTACTTCTGGTATGGGTGGCGGAACTGGTACT -GGTGCAGCACCAGTCGTTGCTAAAATTGCAAAAGAAATGGGCGCATTAACTGTTGGTGTTGTAACTCGTC -CATTTAGTTTTGAAGGACGTAAACGTCAAACTCAAGCTGCTGCTGGAGTAGAAGCTATGAAAGCTGCAGT -AGATACATTAATCGTTATACCAAATGACCGTTTATTAGATATCGTTGACAAATCTACGCCAATGATGGAA -GCATTTAAAGAAGCTGATAACGTGTTACGCCAAGGTGTACAAGGTATCTCAGACTTAATCGCTGTTTCTG -GTGAAGTAAACTTAGACTTTGCAGACGTTAAGACAATTATGTCTAACCAAGGTTCTGCATTAATGGGTAT -TGGTGTTTCTTCTGGTGAAAATAGAGCGGTAGAAGCTGCTAAAAAAGCAATCTCTTCTCCATTACTTGAA -ACATCTATCGTTGGTGCACAAGGTGTGCTTATGAATATTACTGGTGGCGAGTCATTGTCATTATTTGAAG -CACAAGAGGCTGCTGATATTGTCCAAGATGCTGCAGATGAAGACGTTAATATGATTTTCGGTACAGTTAT -TAATCCTGAATTACAAGATGAGATTGTTGTAACAGTTATTGCAACTGGTTTTGATGACAAACCAACATCA -CATGGTCGTAAATCTGGTAGCACTGGATTCGGAACAAGCGTAAATACTTCTAGCAATGCAACTTCTAAAG -ATGAATCATTCACTTCAAATTCATCAAATGCACAAGCAACTGATAGTGTAAGTGAAAGAACACATACAAC -TAAAGAAGATGATATTCCTAGCTTCATTAGAAATAGAGAAGAAAGACGTTCAAGAAGAACAAGACGTTAA -TCGGTTAATATATACACAAATAATTCAACACAAATCATCAGATAACATATCTGATGATTTTTTTACTAAT -TTTTAGAACATGTAGAAGGACATTTAAGTTTTTCGAAGTCATTAAAAGTGTTTAAGTATCGTGTCAAAAT -TAAGTCGAAAATTATTTGCGCAACATTTTAACTTTAAACATAAATGTTATATTATATAATTATTAACTTT -GTACAGTTAGACGAAGATAATTTAAATGAAATGATGGTGACGATCGAGTGAATGATAATTTTAAAAAGCA -ACCGCATCATTTAATATATGAAGAATTATTACAACAAGGTATTACTCTAGGTATTACAACTAGAGGCGAT -GGTTTAAGTGACTATCCTAAAAATGCTTTTAATATGGCGAGATATATTGATGATTGCCCATATAATATTA -CTCAACATCAATTGCAATTAGCTGAAGAAATTGCGTTTGATAGAAAAAATTGGGTGTTTCCCATCCAAAC -ACATGAAAATAAAGTCGCTTGTATTACCAAGGATGATATAGGCACAAATATAGACACTTTAACTGATGCG -CTTCATGGTATTGATGCGATGTACACATATGATAGTAATGTCTTATTAACGATGTGTTATGCAGACTGTG -TACCAGTATATTTTTATAGTACAAAACATCATTTTATTGCATTGGCCCATGCAGGGTGGCGTGGTACCTA -TACTGAAATTGTAAAAGAAGTGCTAAAACATGTGAACTTTGATTTGAAAGACTTACATGTCGTTATTGGA -CCATCTACATCATCAAGTTATGAAATTAATGATGATATTAAAAATAAATTTGAAACATTGCCAATTGATA -GTGCCAACTATATTGAAACTAGAGGACGAGATCGTCATGGTATTGATTTGAAAAAAGCCAATGCTGCATT -ATTAAATAATTATGGTGTTCCTAAAGAAAATATTTATACGACAGCGTATGCTACATCTGAACATTTAGAG -TTATTTTTCTCTTATCGATTAGAAAAAGGTCAAACAGGACGCATGTTAGCATTCATTGGTCAACAGTAAA -CAAGGAGGAGATATGTTTGCGTGTGAAAGATAATTTACAACAAATCTCAACACAAATTAATGACAAAAGT -GAAAAAAATAATTTTTCAACAAAACCAAACGTGATTGCAGTTACAAAATATGTTACAATAGAGCGAGCTA -AAGAAGCGTATGAGGCTGGAATAAGACATTTTGGTGAGAATAGATTGGAAGGCTTTTTTCAAAAGAAAGA -AGCATTACCATCAGATGCGGTGATCCATTTTATAGGATCATTACAATCTCGAAAAGTTAAGGACGTTATA -AACGACGTAGATTATTTCCATGCTTTAGATCGATTGAGCTTAGCCAAAGAAATTAACAAACGTGCAGAAC -ATAAAATTAAATGTTTCTTGCAAGTGAACGTTTCGGGAGAAGCTTCTAAGCATGGTATTGCTTTAGAAGA -TGTTGATCAGTTTATAGATGATCTTAAAAAATATGACAAAATCGAAATTGTAGGTTTAATGACGATGGCA -CCATTGACAGATGATGAAGCATATATTAGATCGTTATTTAAACAGTTACGTTTGAAAAAAGAAGAAATAC -AACGACTCAATTTAGAATATGCGCCTTGTGATGAATTATCAATGGGAATGAGTAATGACTATCTTATTGC -AGTTGAAGAAGGTGCAACGTTTGTTAGAATTGGGACTAAACTTGTAGGAGAAGAGGAGTGAGCCACTTGG -CTTTAAAAGATTTATTTAGTGGATTTTTTGTAATAGATGATGAAGAGGAAGTAGAAGTACCTGACAAACA -ACAACAGGTAAATGAAGCGCCAGCAAAAGAGCAGTCACAACAAACAACAAAACAAAACGCAATCAAATCA -GTCCCTCAAAAATCTGCATCAAGATATACAACAACGTCAGAAGAAAGGAATAACCGTATGTCTAATTATT -CAAAAAATAATTCACGTAATGTTGTAACTATGAACAATGCTACACCAAACAATGCATCACAAGAAAGTTC -AAAAATGTGTTTATTCGAACCACGTGTTTTTTCAGATACACAAGATATTGCTGATGAGCTTAAAAACCGC -CGTGCGACACTTGTCAATTTACAACGTATTGATAAAGTATCAGCGAAAAGAATTATTGATTTTTTAAGCG -GTACTGTTTATGCAATCGGTGGAGATATCCAACGTGTAGGTACTGATATTTTCTTATGTACGCCTGATAA -TGTGGAAGTAGCTGGAAGCATTACAGACCATATTGAAAATGTGGAACATTCATTCGACTAAGGAGTTAAC -ATATGGATATAAATGTGCTAGCTACAATTTTTAAATTTATCCTTTTTGTTGTTGAAATTTATTATTTCGG -CATGATTATATATTTCTTTACATCTTGGGTACCAAGTATTAGAGAAACTAAGGTAGGTTATTTTTTAGCG -AAAATATATGAACCTTTCTTACAACCATTTAGAAAAGTAATTCCACCTATTGGAATTATCGACATATCAT -CAATCGCTGCAATTATCGTTTTAGTATTATTCCAAAAAGGGTTACTCCAAATCTTTAATTGGATTTTAAT -TCAATTACAATAAATTAAGCGACATAACGAGGCAAGGGTACATGATACTTTAGCCTCGTTTTTGATATGT -ATTTTTCTAAATATAAGGGCAATAGATGGTATTTTATAATTTTTTTAAGGTAGTGATTAACATAGATATT -TATCAACACTTTAGACAGGAAGAATACGAATTAATTGATCAGCTAACGGATAAATGTGATCAAGCGGAAC -AGCATTATGCACCAGTATTAACGCATTTTTTAGATCCAAGAGGGCAATATATATTGGAAGTGATTTGTGG -CAGTTATGAAGATTTAAACGTATCTTTTTATGGCGGGCCTAATGCTGAAAGAAAAAGAGCAATCATTTCG -CCGAACTATTACGAACCTAAAGAAAGTGACTTTGATTTAACTTTAATGGAAATAGATTATCCTGAAAAAT -TCGTCACTTTAAAACATCAACATATTTTAGGGACATTAATGTCTTTAGGTATCGAACGCGAACAAGTTGG -AGATATAATTGTGAATGAACGAATTCAATTTGTTTTGACAAGTAGATTGGAATCATTTATTATGTTAGAA -TTACAACGTATTAAAGGCGCATCAGTTAAACTTTATACTATTCCAGTAACAGATATGATACAATCTAATG -AGAATTGGAAAATTGAAAGTGCAACAGTTAGTTCTTTAAGGTTAGATGTTGTTATTAAAGAAATGATACG -TAAATCACGTACGATTGCGAAACAACTAATCGAAAAAAAACGTGTTAAAGTGAATCACACTATTGTTGAT -TCAGCAGATTTTCAATTACAAGCAAATGATTTAATATCCATCCAAGGTTTTGGTAGAGCACACATTACTG -ACTTAGGTGGTAAAACTAAAAAAGATAAAACGCACATTACCTATAGAACATTATTCAAATAGTAATGATT -TAAGGAGGATAACAAATGCCTTTTACACCAAATGAAATTAAGAATAAAGAGTTTTCACGTGTAAAGAATG -GTTTAGAACCTACTGAAGTTGCTAATTTTTTGGAGCAACTAAGCACTGAAATTGAACGTCTTAAAGAAGA -TAAAAAACAACTTGAAAAAGTAATCGAAGAGAGAGATACTAATATTAAGTCTTATCAAGACGTGCATCAA -TCTGTAAGTGATGCTTTGATACAAGCTCAAAAAGCTGGTGAAGAAACTAAGCAAGCTGCAGAGAAACAAG -CTGAAGCGATTATAGCTAAGGCAGAAGCACAAGCTAATCAAATGGTTGGTGACGCGGTAGAAAAAGCACG -CCGTTTAGCATTCCAGACTGAAGATATGAAACGTCAATCAAAAGTATTTAGATCGCGTTTCCGTATGTTA -GTTGAAGCGCAATTAGACTTATTAAAAAACGAAGATTGGGATTACTTGTTGAATTATGATTTAGACGCTG -AACAAGTGACGCTTGAAAATATTCATCATTTGCATGAAAATGATTTAAAGCCAGATGAAGTTGCATCAAA -TACATCAGACAATAATCAACAATCCAATGATTCAGAAACAACTAAGAAGTAAGAATTAAATAAAGACAGA -CGCGTAATATACATTTAACTTTTCACAGCGAATTAGGTAATGGTGAGAGCCTAGTAAAAGCATGTATGTT -ATATCACTGGCTTTTTAATATTTAAATAATGTAATGAGAGAACTCTAAGTTGAGTTAATAAGGGTGGTAC -CGCGAGCAATCGTCCCTTTTAATTTAACTTAGAGTTTTTTAAATTTTTAAGGAGTGAAAAAAATGGATTA -CAAAGAAACGTTATTAATGCCTAAAACAGATTTCCCAATGCGAGGTGGTTTACCAAACAAGGAACCGCAA -ATTCAAGAAAAATGGGATGCAGAAGATCAATACCATAAAGCGTTAGAAAAAAATAAAGGTAACGAAACAT -TCATTTTACATGATGGCCCACCATACGCGAATGGTAACTTACATATGGGACATGCCTTGAACAAAATTTT -AAAAGACTTTATTGTACGTTATAAAACTATGCAAGGGTTCTATGCACCATACGTACCAGGTTGGGATACA -CATGGTTTGCCAATTGAACAAGCATTAACGAAAAAAGGTGTTGACCGTAAGAAAATGTCAACAGCTGAAT -TCCGTGAGAAATGTAAAGAATTTGCTTTAGAACAAATTGAATTACAGAAAAAAGATTTTAGACGTTTAGG -TGTTCGTGGTGACTTTAATGATCCATATATTACATTAAAACCTGAATACGAAGCTGCACAAATTCGTATT -TTTGGAGAAATGGCAGATAAAGGTTTAATTTATAAAGGTAAAAAGCCAGTTTATTGGTCTCCTTCAAGTG -AGTCTTCATTAGCAGAAGCAGAAATTGAATATCACGATAAACGTTCAGCATCAATTTACGTTGCATTTAA -CGTTAAAGATGACAAAGGTGTCGTTGATGCAGATGCTAAATTTATTATCTGGACAACAACGCCATGGACA -ATTCCATCAAATGTTGCGATTACCGTTCATCCAGAATTAAAATACGGTCAATACAATGTAAATGGCGAAA -AATATATTATTGCAGAAGCCTTATCTGACGCCGTAGCAGAAGCACTGGATTGGGATAAAGCATCAATCAA -ATTAGAAAAAGAATACACAGGTAAGGAATTGGAGTATGTTGTAGCACAACATCCATTCTTAGATAGAGAA -TCGTTAGTGATTAATGGTGATCATGTTACTACAGATGCTGGTACAGGTTGTGTACATACAGCACCAGGTC -ACGGGGAAGATGACTATATTGTTGGTCAAAAATATGAATTGCCAGTAATTAGTCCAATCGATGATAAAGG -TGTATTTACTGAAGAAGGCGGCCAATTTGAAGGAATGTTCTATGATAAAGCTAATAAAGCCGTTACTGAT -TTATTAACAGAAAAAGGTGCACTATTAAAATTAGACTTTATTACACATAGCTATCCACACGACTGGAGAA -CAAAAAAACCTGTAATTTTCCGTGCTACACCACAATGGTTTGCTTCAATCAGTAAAGTAAGACAAGATAT -TTTAGATGCAATCGAAAATACAAACTTCAAAGTAAATTGGGGTAAAACACGTATTTACAATATGGTTCGT -GACCGTGGCGAATGGGTTATTTCTCGTCAACGTGTTTGGGGTGTACCGTTACCAGTATTTTATGCTGAAA -ATGGCGAAATTATCATGACGAAAGAAACAGTGAATCATGTTGCTGATTTATTTGCAGAACACGGTTCAAA -TATTTGGTTTGAAAGAGAAGCGAAAGACTTACTACCAGAAGGATTTACACATCCAGGCAGCCCTAACGGT -ACATTTACTAAAGAAACAGACATTATGGACGTTTGGTTTGATTCTGGTTCATCACACCGTGGCGTGTTGG -AAACAAGACCGGAATTAAGTTTCCCAGCAGATATGTATTTAGAAGGTAGTGACCAATATCGTGGTTGGTT -CAACTCTTCTATTACAACTTCAGTTGCTACAAGAGGAGTATCACCTTATAAATTCTTACTTTCTCATGGT -TTTGTTATGGACGGTGAAGGTAAGAAAATGAGTAAATCTTTAGGTAATGTGATTGTACCTGACCAAGTGG -TTAAACAAAAAGGTGCTGATATTGCGAGACTTTGGGTAAGTAGTACGGACTATTTAGCTGATGTTAGAAT -TTCTGATGAAATTTTAAAACAAACATCTGATGTTTATCGTAAAATCAGAAATACATTAAGATTTATGTTA -GGTAATATTAATGATTTCAATCCTGATACAGATAGCATTCCTGAATCAGAGTTATTAGAAGTTGATCGTT -ACTTGCTAAATCGTTTACGTGAATTTACTGCAAGTACGATTAACAACTATGAAAACTTTGACTACTTAAA -TATTTATCAAGAAGTTCAAAACTTTATCAATGTTGAGTTAAGTAATTTCTATTTGGATTACGGTAAAGAT -ATTTTATATATTGAACAACGTGATTCTCATATCCGTCGTAGTATGCAAACAGTGTTATATCAAATTTTAG -TTGATATGACGAAGTTGTTAGCACCAATCTTAGTGCATACAGCTGAAGAAGTTTGGTCTCATACACCACA -TGTTAAAGAAGAAAGTGTTCACTTAGCAGACATGCCTAAAGTTGTAGAAGTAGATCAAGCTTTATTGGAT -AAATGGCGTACATTTATGAATTTACGTGATGATGTGAACCGTGCATTAGAAACTGCTCGTAATGAAAAAG -TTATTGGTAAATCATTAGAAGCTAAAGTTACGATTGCTAGTAACGATAAATTTAATGCATCTGAATTCTT -AACTTCATTTGATGCATTACATCAATTATTTATCGTGTCACAAGTTAAAGTTGTAGATAAGTTAGATGAT -CAGGCAACAGCTTATGAACATGGTGATATTGTCATCGAACATGCAGATGGTGAAAAATGTGAAAGATGTT -GGAACTATTCAGAGGATCTTGGTGCTGTTGATGAATTGACGCATCTATGCCCACGATGCCAACAAGTTGT -AAAATCACTTGTATAATTGAAATTGTATAAAGTACTTATACAGATGATATAAATTAAAGCTCTCTTCATA -ATCATGTTGTAGTTTTTGTTGACATGATGAAGAGAGTTTTTTTGAGAGTTGATTTGTCAATTTAAGTGCA -ACAGTTCATCACATAAAACTTCATAAGGAAACTTCCAATTTAAACACTTTCTTGGTCGATAATTAATTGA -GTCTAATGCATAGTTAAGTTGCTCTTGATTTACTTTAGCTAAGTCTGTTTTCTTAGGGAAAAATTCTCTT -AGTAAACCATTGGTATTTTCATTTGTACCTCTTTGCCATGCGGAATATGGATCAGCGAAGTAGACATTAA -TATTAAATTGGTTTTCAATATTTTGATAACAAGAGAACTCTTTCCCTCTATCGACAGTAATAGTTTTAAC -GGCACCTTTAGGTAGATGTTTGATAAGGTTATTAATTGCCGTCTCCATAGAATTAGAGGAACGATCAGGC -ATAAGTACACAATAATAATAACGTGATTTTCTTTCTGCGAAAGTAGCAATGCACCCTTTACTTTTGCCTC -TGCTGGATACAATTGTGTCAGCTTCCCAATGACCGAATGTATTACGTTTCTTTATTTCCTTAGGACGTTG -TGAAATAGGACGGCCAATATTAAACTTACCTCTAGTTTCTTTAGGTTTCTGTCTTTTTCCTTTTTGACGA -AGGCATGAAATAAGTTCGAAATTAATCATATTAGAGTTAATCCATCGATAGATGGTTTTAAAACAGATTT -GGTTTTGTAATAGACGACCTACGATTTGTTCAGGAGACCAGTGGCATTTTAAATAATATTTAATGATATT -ACCAAGTTCTGGAGTAAATCGAGTAGGACGACCACAAAGTTTTCTTTTGGTTTCATAATTTTTTTGAGCT -GTTTCAGCTTGATATGACTGATTTAAATTATTCCTACTAATTTCACGTGAGATAGTAGATACAGATCGTT -TTAATTTACGTGCAATAGATCTTAAAGAATAATTTTCTTGACGTAAAACCTCTATACGTGCGCGTTCAGT -TAGTGTAAGATGGTTATAGCTCATGTTGGCACTCCTTGTATGTGTTTTTGTGGTTATTAACATCTTACAA -CAAAGTGCCAATTATGGGCATTTTTTATGAATTTTTATAGGTGTTGCACTTAATATTACAATCCGTCATA -TGTAAAAAATGTGTGATTTACTAAAATAAAAATTATTCAGGAATGGTACAAATTCTCTGAAGCTTATAAA -TGCGTTATAGTTGCTATTCTCAATTATGTTCGCGATAATTTTAAGTAAAAGTAAGCACAGATATTGAATT -TGATAGGAGTTAATTGAATGTATCATAACAGTAACGCAAACTTTGTAAATGGTATCACTTTAAATGTGAG -AGATAAGAATGAATTAAAGCCATTTTATGAGGACGTATTAGGATTAAATATTATAAATGAGACATTAACA -TCGATCCAATATGAAGTAGGTCAAAATAATCATGTCATTACACTTGTTGAATTACAAAATGGGCGTGAAC -CTTTAATGTCAGAAGCGGGACTGTTTCATATCGCAATTAAACTACCTCAAATTAGTGATTTAGCTAATTT -ACTAATTCATTTAAGCGAATATGATATTCCAGTTAACGGAGGTATACAGCCTGCTTCGTTATCATTATTT -TTTGAAGACCCGGAAGGAAACGGTTTTAAATTTTATGTTGATAAAGACGAAGCGCAATGGACGAGGCAAA -ATGATTTAGTAAAAATTGATATTAGACCATTAAATGTACCGAGATTAGTGAGTCATGCAACAAAATTGTT -ATGGTTAGGTATTCCAGATGACGCTATTATAGGTGCATTGCATATTAAGACAATTCATTTATCAGAGGTA -AAAGACTACTACCTCGATTATTTTGGATTAGAGCAATCGGCATATATGGATGATTATTCAATATTTTTAG -CATCGAATGGCTATTATCAACATTTGGCCATGAATGATTGGGTATCAGCAACGAAACGTGTAGAAAATTT -TGATACGTATGGATTAGCAATTGTTGACTTTCATTATCCTGAAACAACACATTTAAATTTACAAGGTCCG -GATGGTATCTATTATCGCTTTAATCATATCGAAGTTGAAGATTAGTAAATACTTTGAATGGACGAACCAT -ATAATGAATCGTTTTTAATGATCTTTTTATACAAGCTATGAAGGCAGTCTTATGAGGTTTCCCATGAGGC -TGCTTTCATAATTTTTAATGTCAAAACATAGTAGTTTATCAAGTATTGAGTTAGTAACATTAGATTTAAT -GTAATATGCTTACTTTTTTTATTAGCAGGTGTAAGCTATAATATAAAGAGTTGTCTTATGGACGATTGAT -TGGAGGAACGAAAATGCACAAAAAATATTTTATTGGCACTTCCATTTTAATAGCAGTATTTGTCGTTATA -TTTGACCAAGTTACTAAATATATTATAGCTACTACAATGAAAATTGGAGATTCATTTGAAGTGATACCGC -ACTTTTTAAACATAACATCACATCGAAATAATGGTGCTGCATGGGGAATATTGAGTGGAAAAATGACATT -TTTCTTTATTATTACCATTATTATATTAATAGCCTTAGTATATTTCTTTATTAAAGATGCTCAATATAAT -TTGTTTATGCAAGTTGCTATTAGTTTACTTTTTGCAGGTGCACTTGGAAACTTTATTGATAGAGTTTTAA -CAGGAGAAGTTGTTGACTTTATTGATACAAATATTTTTGGTTATGATTTTCCAATATTTAATATCGCAGA -TTCAAGTTTAACAATTGGTGTAATATTAATTATTATTGCCTTATTAAAGGATACTTCCAATAAAAAGGAG -AAGGAGGTTAAGTAATGGAGACTTATGAATTTAACATTACAGATAAAGAACAAACAGGTATGCGTGTAGA -TAAGTTGCTGCCTGAATTAAATAGTGATTGGTCTCGTAACCAGATACAAGATTGGATTAAAGCAGGTTTA -GTCGTTGCAAACGATAAAGTTGTTAAATCTAATTATAAAGTGAAACTTAATGATCATATAGTTGTCACTG -AAAAAGAAGTGGTTGAAGCTGACATTCTACCTGAAAATTTAAATTTAGATATTTATTATGAAGATGATGA -CGTTGCAGTTGTTTATAAACCGAAAGGCATGGTAGTTCATCCATCACCAGGTCATTATACCAATACATTA -GTTAATGGTTTAATGTATCAAATTAAAGATTTATCGGGTATTAATGGAGAAATTCGTCCAGGTATTGTTC -ACCGTATAGATATGGATACTTCTGGTTTATTAATGGTTGCTAAAAATGATATTGCTCATCGTGGGCTTGT -AGAACAATTAATGGATAAATCTGTTAAAAGAAAATATATCGCTTTAGTTCACGGGAATATTCCTCATGAT -TACGGAACAATCGATGCGCCAATTGGTAGAAACAAAAATGATCGTCAATCTATGGCTGTTGTTGATGATG -GTAAGGAAGCAGTGACACATTTTAACGTACTAGAACATTTTAAAGATTATACGCTTGTTGAATGTCAACT -TGAAACAGGACGTACGCATCAAATCCGTGTGCACATGAAATATATTGGCTTCCCATTAGTTGGTGATCCA -AAGTATGGACCGAAAAAGACATTGGATATTGGTGGTCAAGCTTTACATGCTGGACTTATTGGATTCGAAC -ATCCAGTAACAGGTGAATATATTGAAAGACATGCTGAATTAGCACAAGACTTTGAAGATTTATTAGATAC -AATTCGAAAAAGAGATGCATAATTGTGTCGTGCTATAATTACGATAACATTATTATGTAAACTATAAGTA -TTTATCGTTTTCGTTTTTTTAAAAATGAAAACACATTATAAAATAGATTAAGGTTAACATTTTTACTGAG -AATGGTTAATTTTTCAATATAGATTGACAAAGCGCCTGATTAGTATTATCCTTATAACAGTTTAAGTACA -ACATAAAGAGTCTTTAATTGAGCGTTCAGAGAGACGTCAAAGACATGAAAATATAGATATATACTAAAAT -GAATCATAACACTTTCACATATGCAAGAATAAGTAGTAATACTACGATTCTTCTATGTAAATAGGATGAT -TGTATATACTAAACCTCATGTCGATATTAAAGACATGAGGTTTTTTGTTTCTAAATTTTGAAAGGGTGAG -AATATGTCTGAACGTATCATAATGGATGATGCCGCAATACAACGTACAGTAACGAGAATCGCTCATGAAA -TTTTGGAGTATAACAAAGGTACTGATAATTTAATTCTTTTAGGTATCAAAACAAGAGGTGAATATTTAGC -GAATCGTATACAAGATAAAATTCATCAAATTGAGCAACAACGTATACCTACTGGAACAATTGATATTACA -TACTTTAGAGATGATATAGAGCACATGTCATCACTTACGACAAAAGACGCAATAGACATCGACACAGATA -TTACAGATAAAGTAGTCATCATTATTGACGATGTGCTGTATACTGGTCGAACGGTTCGTGCTTCACTTGA -TGCTATTTTGCTAAATGCTAGACCTATTAAAATTGGTTTGGCTGCTTTGGTTGATCGAGGACATCGTGAG -TTACCAATTCGAGCAGATTTTGTTGGTAAAAATATACCTACTTCTAAAGAGGAAACGGTAAGTGTCTATT -TAGAAGAAATGGATCAAAGAAATGCAGTTATAATTAAATAATACCCCTTTTAATTCAGTACGAGAGACTG -AAAAAGGTGGGGGAGTTGAATGATAAATAAGTTTTCATATGCTTGTTTATCTAATAATACCCTCATGTTC -GACAACTATAAGTCAATTTCTATGGACGAAAATGACTTGTAGCAACTTGTCACACTTTTTGTCTCTTTAC -ATATACTGATGTAAAGAGATTTTTTTATTATCGGAGGAAATGAATATTATGCAAAATGATGAAATGTTTG -AACGAACAGTAAAACCTGTACTAGATGTAAATGAAAAACCACAACCAGCGCAATGGGCATTTTTAAGCTT -ACAACATTTATTTGCGATGTTTGGCGCAACAGTACTAGTACCATTCTTAACAGGATTACCAATATCAGCA -GCGTTACTAGCTTCGGGAATCGGTACATTACTTTATATCTTAATAACGAAGGCGCAAATACCAGCATACT -TGGGATCTAGCTTTGCATTTATCACACCAATTATCACGGGATTAAGTACGCATAGCTTAGGAGACATGCT -TGTAGCATTATTCATGAGTGGTGTTATGTACGTCATCATCGGGATTCTAATCAAATTAAGTGGGACAGCA -TGGTTAATGAAATTATTACCACCAGTTGTTGTAGGACCAGTCATCATGGTAATTGGTTTAAGCTTAGCGC -CTACTGCAGTCAATATGGCAATGTATGAAAATCCTGGAGATATGAAAGGTTACAATATCAGTTTCTTAAT -TGTTGCAATGATAACCTTGCTTGTAACAATATTCGTTCAAGGATTTTTTAAAGGATTCCTATCTTTAATT -CCAGTACTTGTAGGTATTATCGTAGGTTATGTGGTAGCGATTTTTATGGGGATTGTGAAATTTGATGCAA -TTATGTCAGCAAAATGGATAGATTTCCCTCATATTTATCTGCCATTTAAAGATTATGTACCTTCATTTCA -CTTAGGACTTGTACTTGTAATGATTCCGATTGTGTTCGTAACAGTAAGTGAACATATTGGGCACCAAATG -GTACTGAATAAAATCGTAGGTAGAAACTTCTTTGAAAAGCCAGGACTTGATAAATCAATCATTGGTGATG -GTGTTTCTACAATGTTTGCCAGTATTATTGGTGGACCACCAAGTACAACATATGGTGAAAATATCGGTGT -ATTAGCGATTACAAGAATATACAGTATTTACGTCATTGGTGGTGCGGCAGTTATAGCAATTGTTTTAGCA -TTCATTGGTAAGTTCACTGCATTAATTTCTTCTATACCTACACCAGTTATGGGAGGAGTATCTATATTAC -TTTTCGGTATTATTGCAGCAAGTGGCTTAAGAATGTTAGTTGAAAGCAAAGTAGATTTTGCGAACAATCG -AAATTTAGTTATAGCTTCAGTAATTTTAGTTGTAGGTATCGGTAATTTAGTATTTAACTTAAAAGAAATT -GGTATCAACCTTCAAATTGAAGGAATGGCATTAGCTGCACTTTCAGGAATTATTTTGAACTTAATCTTAC -CTAAAGAGAAAAAACAAAACAATTAAGATTTACAAATTAAGGAGGGCGCTTTTATGAATCATTTATTATC -AATGGAACATTTATCTACAGATCAAATATACAAACTTATCCAAAAGGCAAGTCAATTTAAATCTGGTGAA -CGTCAACTACCAAACTTTGAAGGGAAATATGTCGCAAATTTATTCTTTGAAAATTCTACTCGAACAAAAT -GTAGTTTTGAAATGGCAGAACTTAAGCTAGGGTTAAAAACGATTAGCTTTGAAACATCAACATCATCTGT -TTCAAAAGGTGAATCTTTATATGACACATGTAAAACTTTAGAAAGTATTGGCTGTGATTTATTAGTCATT -AGACATCCGTTTAATAACTACTATGAAAAATTAGCGAATATTAACATCCCAATTGCGAATGCTGGTGATG -GTAGTGGACAACATCCAACACAAAGTTTGCTTGATTTAATGACGATATATGAAGAATATGGATATTTTGA -AGGCTTGAATGTATTGATTTGTGGCGACATTAAAAATTCACGTGTCGCACGTAGTAATTACCATAGTTTA -AAAGCATTAGGTGCAAACGTAATGTTTAATAGCCCAAATGCTTGGATTGATGATTCTTTAGAAGCGCCTT -ATGTAAATATAGATGATGTTATAGAAACAGTAGATATAGTTATGTTATTAAGAATTCAACATGAAAGACA -TGGGCTTGCAGAAGAAACTAGATTTGCAGCAGATGATTATCATCAAAAGCATGGCTTAAATGAAGTGCGT -TATAACAAATTACAAGAACATGCTATTGTCATGCATCCGGCACCTGTGAATAGAGGAGTAGAAATACAAA -GCGATTTAGTAGAAGCTTCAAAATCAAGAATTTTTAAGCAAATGGAAAATGGCGTTTACTTAAGGATGGC -AGTCATTGATGAATTATTAAAATAGGTAAGGGGACGAAAATGATGAAATTAATTAAAAACGGTAAAGTAT -TACAAAATGGTGAATTACAACAAGCAGATATTTTAATTGATGGTAAGGTAATTAAACAAATTGCACCTGC -AATTGAACCAAGCAATGGTATTGACATCATAGATGCGAAAGGTCACTTTGTGTCACCTGGATTTGTCGAT -GTTCATGTTCATTTACGCGAACCTGGTGGTGAATATAAAGAGACAATTGAAACTGGTACTAAAGCTGCTG -CTAGAGGCGGATTTACAACTGTATGTCCAATGCCTAACACAAGACCGGTACCAGATTCTGTAGAACATTT -TGAAGCTTTACAAAAATTAATCGATGACAATGCTCAAGTACGTGTATTACCTTATGCTTCAATTACAACA -CGTCAATTAGGTAAAGAATTGGTTGATTTCCCAGCACTAGTAAAAGAAGGTGCCTTTGCGTTTACAGATG -ACGGTGTAGGAGTACAAACTGCAAGCATGATGTATGAAGGCATGATTGAAGCTGCAAAAGTAAACAAAGC -CATCGTAGCACACTGTGAAGATAATTCATTAATCTATGGTGGTGCAATGCATGAAGGGAAACGCAGTAAA -GAGTTAGGTATACCAGGTATTCCAAACATTTGTGAATCTGTTCAAATCGCAAGAGATGTACTATTAGCTG -AAGCAGCAGGTTGTCATTATCATGTATGTCATGTTTCTACTAAAGAAAGTGTTAGAGTCATTCGTGATGC -TAAACGCGCAGGCATTCATGTTACAGCTGAAGTTACACCACACCATTTATTGTTAACAGAAGATGATATT -CCTGGTAATAATGCCATTTATAAAATGAATCCACCATTGAGAAGTACTGAAGATAGAGAGGCTTTGTTAG -AAGGGTTACTAGACGGTACAATTGACTGTATCGCAACAGACCATGCACCACATGCACGTGATGAAAAAGC -ACAACCAATGGAAAAAGCACCATTCGGAATTGTTGGCAGTGAAACAGCATTCCCATTATTATATACGCAT -TTTGTAAAAAATGGTGATTGGACATTACAACAATTAGTAGATTACTTAACAATTAAACCATGTGAAACAT -TTAATTTAGAATACGGCACATTAAAAGAAAATGGTTATGCAGATTTAACAATCATTGATTTAGATAGTGA -ACAAGAAATTAAAGGAGAAGATTTCTTATCAAAAGCAGATAATACACCATTTATCGGCTATAAAGTTTAT -GGAAATCCGATCTTAACAATGGTTGAAGGCGAAGTTAAATTTGAGGGGGATAAATAATATGCAAAGCAAA -CGTTATCTAGTGTTAGAAGACGGTTCTTTTTACGAAGGCTACCGTTTAGGATCTGATAACTTAACTGTAG -GAGAAATTGTATTTAATACAGCGATGACAGGTTATCAAGAAACTATTTCAGATCCATCATATACAGGTCA -GATCATTACTTTTACGTATCCATTAATCGGTAATTATGGTATCAATAGAGACGATTTTGAATCATTAGTA -CCTACATTAAACGGTATTGTAGTGAAAGAAGCGAGTGCGCATCCAAGTAATTTTAGACAGCAAAAGACAC -TTCATGACGTTTTAGAATTGCATCAAATTCCAGGGATTGCAGGTGTTGATACAAGAAGTATTACGCGTAA -AATTCGACAACACGGTGTGTTAAAAGCTGGTTTTACTGATCGAAAAGAAGATATTGATCAACTTGTCAAA -CATTTACAACAAGTAGAATTACCTAAAAACGAAGTAGAAATCGTTTCGACTAAAACACCGTATGTTTCGA -CAGGTAAGGATCTAAGTGTCGTACTTGTAGACTTTGGTAAGAAGCAAAATATTGTTCGAGAATTAAACGT -CAGAGGTTGTAACGTCACAGTTGTACCATATACAACTACTGCCGAAGAAATTTTAGCAATGGCTCCAGAT -GGCGTTATGCTATCAAACGGACCAGGTAATCCTGAAGTTGTAGAATGTGCGATTCTAATGATTCAAGGAA -TTTTAGGGAAAATTCCGTTCTTTGGTATCTGTCTAGGACATCAACTTTTTGCATTATCTCAAGGAGCAAG -CTCATTTAAAATGAAGTTTGGTCATCGTGGTGCGAACCATCCAGTTAAAAATTTAGAGACTGGAAAAGTT -GATATTACGAGTCAAAACCATGGATATGCAATAGATATAGATTCGTTAAAAAGTACTGATTTAGAAGTTA -CTCATCTTGCATTAAATGATGGTACTGTAGAAGGTTTAAAACATAAAACATTACCAGCATTTTCTGTTCA -ATACCATCCTGAAGCAAATCCAGGACCGTCAGATTCAAACTATCTATTTGATGATTTTGTAGCAATGATG -ACTAATTTTAAGGAAAAGGAGCGTCATATCAATGCCTAAACGTAATGATATCAAAACAATTTTAGTAATA -GGGTCTGGGCCAATTATCATAGGTCAAGCAGCTGAATTTGATTATGCTGGAACACAAGCATGTCTAGCTT -TAAAAGAAGAGGGATACCGAGTTATTCTTGTAAATTCAAATCCAGCGACAATCATGACTGATAAGGAAAT -TGCGGATAAAGTATATATCGAACCGTTAACTCATAATTTTATAGCGCGAATTATACGTAAAGAGCAACCT -GACGCTTTACTTCCAACTTTAGGTGGTCAAACAGGTTTAAACATGGCGATTCAACTACACGAAAGTGGTG -TGCTTCAAGATAATAACGTCCAATTATTAGGAACTGAGCTAACATCAATTCAACAAGCAGAAGACCGTGA -AATGTTTAGAACATTAATGAATGATTTAAACGTTCCTGTGCCAGAGAGTGACATTGTAAATACAGTAGAG -CAAGCCTTTAAATTCAAAGAGCAAGTGGGATACCCGCTAATTGTTAGACCAGCATTTACGATGGGTGGTA -CCGGAGGCGGTATTTGTCATAATGATGAAGAATTACATGAAATCGTTTCAAATGGTCTTCATTATAGTCC -AGCAACGCAATGTTTATTAGAAAAATCTATCGCAGGTTTTAAAGAAATCGAATACGAAGTAATGCGTGAT -AAAAACGATAATGCCATCGTTGTATGTAACATGGAAAATATTGATCCAGTTGGTATTCATACAGGCGATT -CAATTGTTGTAGCTCCTAGCCAAACATTATCGGATGTTGAGTATCAAATGTTACGTGATGTTTCATTAAA -AGTTATTCGAGCATTAGGTATCGAAGGTGGTTGTAATGTTCAATTAGCATTAGATCCCCATTCATTCGAT -TATTATATTATAGAAGTAAATCCGCGTGTATCACGTTCATCAGCGTTAGCTTCAAAAGCAACAGGATATC -CTATTGCAAAATTAGCTGCTAAAATCGCGGTTGGTCTAACATTAGATGAAATGTTAAATCCAATTACAGG -AACATCTTATGCAGCGTTTGAACCAACTTTAGACTATGTGATTTCAAAAATACCAAGATTTCCTTTTGAT -AAATTTGAAAAAGGAGAACGAGAGCTTGGCACACAAATGAAAGCAACAGGTGAAGTTATGGCCATTGGTC -GAACTTACGAAGAATCATTGTTAAAAGCAATTCGATCACTTGAGTATGGTGTGCATCACTTAGGATTACC -AAATGGTGAAAGCTTCGATCTTGATTATATTAAAGAACGTATTTCACACCAAGATGATGAACGATTATTT -TTCATCGGCGAAGCAATTAGAAGAGGCACAACATTAGAAGAAATTCATAATATGACTCAGATAGATTACT -TCTTCTTACACAAGTTCCAAAACATTATTGATATTGAGCATCAATTAAAAGAGCATCAAGGTGATTTAGA -ATATCTTAAATATGCAAAAGATTATGGATTTAGTGATAAAACAATAGCGCATCGCTTTAATATGACGGAA -GAAGAAGTATATCAATTGCGTATGGAAAATGATATTAAACCTGTTTACAAGATGGTTGATACTTGCGCAG -CTGAATTTGAATCTTCAACACCATATTATTATGGTACATACGAAACTGAAAATGAATCCATAGTTACTGA -CAAAGAAAAAATCTTAGTATTAGGCTCTGGACCAATTCGAATCGGCCAAGGTGTAGAATTTGACTATGCG -ACAGTTCACGCCGTTTGGGCAATTCAAAAAGCAGGGTACGAAGCGATAATTGTGAATAACAATCCAGAAA -CAGTTTCAACAGACTTCTCAATTTCTGACAAATTATACTTTGAACCTTTAACTGAAGAAGATGTGATGAA -TATCATTAATTTAGAAAAACCTAAAGGTGTCGTTGTACAATTTGGAGGACAAACAGCGATTAATTTAGCA -GACAAATTGGCTAAACATGGTGTTAAAATACTTGGTACTTCACTAGAAAATCTAAATCGTGCTGAAGATA -GAAAAGAATTTGAAGCACTATTAAGAAAAATTAACGTGCCACAGCCACAAGGGAAAACAGCTACATCACC -TGAGGAAGCATTAGCGAATGCTGCAGAAATCGGATATCCGGTTGTAGTAAGACCTTCTTATGTATTAGGT -GGTCGCGCAATGGAAATTGTAGACAATGACAAAGAGTTAGAAAACTATATGACCCAGGCTGTAAAAGCGA -GTCCGGAACATCCGGTATTAGTCGATAGATATTTAACTGGTAAAGAAATTGAAGTTGATGCGATTTGTGA -TGGAGAAACGGTCATTATTCCAGGAATTATGGAACATATTGAACGTGCTGGTGTGCATAGTGGTGACTCA -ATCGCTGTATATCCGCCACAAACTTTGACAGAAGACGAGTTAGCAACGCTTGAGGACTATACTATAAAAT -TAGCTAAAGGTTTAAACATCATTGGCTTAATCAACATTCAATTCGTTATAGCTCACGATGGTGTGTATGT -TTTAGAAGTAAATCCACGTTCTAGTAGAACGGTACCATTCTTAAGTAAAATTACTGATATTCCAATGGCA -CAATTAGCTATGCGAGCAATCATTGGGGAAAAACTAACAGATATGGGTTATCAAGAAGGGGTTCAACCAT -ATGCTGAGGGTGTATTTGTGAAAGCACCGGTATTTAGTTTTAATAAATTGAAAAATGTTGATATTACTTT -AGGACCTGAAATGAAGTCTACAGGTGAAGTAATGGGGAAAGATACAACATTAGAAAAGGCGTTATTCAAA -GGGTTAACAGGTAGTGGTGTTGAAGTTAAAGATCACGGTACAGTATTAATGACTGTCAGTGACAAAGATA -AAGAGGAAGTTGTTAAATTGGCACAATGCTTAAATGAAGTTGGCTATAAAATTTTAGCAACGTCTGGAAC -AGCTAATAAATTAGCTGAGTATGACATACCTGCAGAAGTAGTAGGCAAAATTGGTGGCGAAAATGATTTA -TTAACACGTATTCAAAATGGTGATGTTCAAATCGTTATAAATACAATGACTAAAGGTAAAGAAGTAGAAA -GAGATGGCTTCCAAATTAGACGTACTACAGTTGAAAATGGTATTCCATGTTTGACATCTTTAGATACAGC -TAATGCCTTAACGAATGTAATTGAAAGTATGACATTTACAATGCGTCAAATGTAAATCAATCAAACTGTA -TCGGTGGGGCTGTAATTAACCATTTACTTAAAGAAGTTTATATTACAGCCTCATTATTTTAGTGAATTTC -TTAACGTAAAGGGAGACATATATGATGAAAGATTTACCAATTATTGCATTAGATTTTGAATCAAAAGAAA -AAGTAAATCAATTTTTAGATTTATTTGATGAATCATTATTCGTAAAAGTAGGTATGGAACTTTTTTATCA -AGAAGGTCCTCAATTAATTAATGAGATAAAAGAAAGAGGCCATGATGTATTTTTAGATTTAAAACTGCAT -GATATTCCCAATACAGTTGGTAAAGCGATGGAAGGACTAGCTAAATTGAATGTTGATCTGGTAAATGTTC -ATGCTGCTGGTGGCGTAAAAATGATGTCTGAGGCCATTAAAGGATTAAGAAAACATAATCAACATACAAA -AATTATTGCAGTAACACAGCTTACGTCAACAACAGAAGACATGTTACGACACGAACAAAATATACAAACA -TCGATTGAAGAGGCCGTTTTAAATTATGCCAAGTTAGCAAATGCAGCTGGTTTAGATGGCGTTGTTTGTT -CACCTCTTGAAAGTCGTATGTTGACTGAAAAGTTAGGTACATCATTTTTAAAAGTAACACCAGGCATTAG -ACCTAAAGGTGCATCTCAAGATGACCAACACCGTATTACGACACCGGAAGAAGCAAGACAGCTTGGTTCG -ACGCATATTGTAGTCGGTAGACCGATTACACAAAGTGACAATCCAGTCGAAAGTTATCATAAAATTAAAG -AAAGTTGGTTAGTATAATGGCTAAAGAAATTGCAAAATCATTATTAGATATTGAAGCTGTAACATTATCA -CCAAATGATTTATATACATGGAGTTCAGGTATTAAATCACCGATTTACTGTGATAACCGTGTTACGTTAG -GTTATCCTTTAGTTCGAGGCGCAATCCGCGATGGTTTAATTAACTTAATTAAAGAACACTTTCCTGAAGT -AGAAGTTATTTCTGGTACTGCAACAGCTGGTATTCCACATGCAGCTTTTATTGCTGAAAAATTAAAATTA -CCAATGAATTATGTTCGTTCATCAAATAAGAGTCATGGTAAGCAAAATCAAATTGAAGGTGCTAAAAGTG -AAGGTAAAAAAGTAGTTGTGATAGAAGATTTAATTTCGACAGGGGGATCTTCAGTCACAGCAGTTGAAGC -CTTAAAACAAGCAGGTGCAGAAGTATTAGGTGTTGTTGCTATCTTTACTTACGGTTTGAAAAAAGCAGAT -GATACATTTAGCAATATTCAACTACCTTTTTACACTTTAAGTGATTACAATGAATTAATTGAAGTAGCTG -AAAATGAAGGTAAAATTTCTAGTGAAGATATCCAAACATTAGTTGAATGGAGAGACAACTTAGCATAATA -TAGACACTAGAAGGAGGAATTCAACAAATGAATGACAAAACATCTAATGATTTATATGGGAAGATAAAAC -ATTGTAACGAATTTATCAATCATTCAAATGATTCCAATCTATCTAGTAGTCACGATGTCGACGAAAGTTC -AACGAAGCAAAAACATATAAAAAATAAAACAACTATAAATCATAATGATGATTTATTTAAACATGTAAAG -GATATATTACGTAAACAAGGACAAATTTAAAAACAAAAAAGCTATAGTGTTTAATATCAGGGGCTGCTTA -ACCGCATCCGAATATTACAAACACTATAGCTTTTATTATATAAAAAATTTATTAGCGGATAATTAACTTT -ATTAAAATCCAACCAATTAAGAATACGAGTAATAGGACTAATACTGGAATCACATAATGTAACATAACGT -CCCTCCTTTAACTTAATTTTAATTGTAATCAAATTTGACAATAAGTCAAAACATTAATACCTATGATAAG -TATCATTTATTAACATATGTATCATATTTTTAATCTTGCGTAATTTTTATCGTTAACTATGTGATTTAAT -CAACAGGCCAATAAGACATTTGTCATTCGTGCACATAACGGTACGACGCGCTTTTGTCATTTTAATTATG -TTAAGATAATAGTAGTTATAGAAGTTCAATCTATAGGAGGCATAGCATGGATATTCCAAAAATTACGACA -TTTTTAATGTTTAATAACCAAGCTGAAGAAGCTGTTAAACTATACACAAGCTTATTTGAAGATAGTGAGA -TTATAACAATGGCTAAGTATGGTGAAAATGGACCTGGTGATCCTGGGACTGTACAACACTCAATATTTAC -ATTAAATGGACAAGTATTCATGGCGATTGATGCTAATAGTGGCACAGAATTACCAATGAATCCTGCGATT -TCATTATTTGTTACAGTAAAAGATACTATTGAAATGGAACGACTATTTAATGGATTAAAAGATGAAGGTG -CCATTTTAATGCCAAAAACGAATATGCCACCATACAGAGAGTTTGCTTGGGTTCAAGATAAGTTTGGAGT -AAGTTTTCAATTAGCATTACCTGAGTAAAAGGATTCGTACAGCGTTGAATGATAAAGAAACACTTTTTCT -TATGCATGCGTTTTACCTATGTATTCCTATTTTAAGTACACATTATCATTTTAGTTTCACTCATTTTTAA -AATCACAAAGATAATTTTTAACTTAAATGATGATACGTTATTAAAAAACACGATACTTCGTTTCAATGAA -CGCATCAAATTAAAAATAAACACCTCGCAAAAGAAAGTAGGCCTTTCTTATGGTGAGGTGTTTATTTGTC -GACAACTTGATTATGATTGTTTCATTTTTTGAATATGTTCATAATCAGGTGTAGCATACAAAGTTTTTTG -ATTGTCATATGTTACAAACCCAGGCTTTGCACCTGATGGTTTGTGCACATTTTTAATTAACGTGTAATCA -ACAGGTATTTGTCCAGAATTACCAGCTTTTGAAAAGTATCCTGCTAACATAGCCGCTTCCTTGATTGTCG -TATCACTTGGTGCATCATTAAATATAACGACATGTGAACCAGGAATATCTTTTGTGTGTAACCATGTGTG -AGTTTTTTTAGCTTTTTTATTTGTTAAATAATCATTTTGCTTGTTATTCTTGCCAACATATATATCGTCG -CCATCAGTTGATACATAATGTTGTAATTGAATCTGCGCTTTCTTTTTCTTAGTTTGATTTTTACGCTGTT -TCATAAAGCCTTGTTCTGCTAATTCATCTCTAATTTCATCAATGTCATGGACAGAAATATGATGTAATTG -TTGTTCGATTGTTGAAAAATAATCTATATTGTCTTTCGTCAATTGAATTTGATGTTGTAATTCACGTTCT -CTCGTTTTCATACGATTATATTGTTTATAATAATATTGAGCATTTGCAGATGGGGATTTTGTAGGATTTA -AAGGAATGACAACTTCTTCATTCGTATAATAATTCAATGCCGTCACTTCTTTATCGCCTTGCTTAATTCG -ATATATATTAGCAGTAATCAATTCACCATATAACTGTTCAGTATCTTTATTTTTAGACTGCTCATATTCT -TCAATCAACTTCGCTAATTTATTTTGATATTTGTGCAACTGCTGTTGAACAAATCGAACTAAATCATTCG -CACGTTGTTTAACGCGTTCCCGTTCGCCACGCGCATCATAAAAACGATCAAGTAAATCATTTAATGAATC -GTACGTAACTGTATCATCATTAAATTGATTTAACTTTATAAAATAGAAATCCTCTTTACCTGTTTCATGA -TTTTTATGAAAAATAGGAGTAGGTGGTAACTTGGTTTCTGCCATTACTTCGTCGAATGCTTCTGGTAAAG -TTGATGAAGTCATAAATTGACGACGATTAACGATTTCATTCGTAATTAAAGGGCTAAACCCTTCAAACTG -ATTCAATAATTGTTTAGCAATATTACCTGCGTTAAAATCGATATATTTCAACACCTCTGCACCTGTAATA -TCATACGGATTCATTTTGTGCTGAGTAGGTGGTGCTTCATAATTAAATCCTGGCATTACTGTTCGATAGT -GATTCGTATTTGGTGTTAAGTGTTTAAATCCTTCAATTATTTTACGATTTTCATCTACTAAAATTAAGTT -ACTATGTTTACCCATAATCTCAAGGATGACAGTGCGGTAAATAGTATCGCCAATTTCATCTTTACTCTTT -ATATCGATTTCAATGCGACGATCATTACCAATTTGCTTAATCGATTCGATAATACCACCTTCTAAGTGTT -TTCTAAAAACACGCGCAAACATGGGTGGATTAAATGGATTATCATATTTTTTAGTAGTCAATTGTAATCT -TGAAAAGTTTGGATGGATTGACAATAACAATTGATGGTTTTGTCTATTTTGACGTACAACCATTAGTATC -GTGTCATTATCAGGTTGATTGATTTTGTGAACGCGTCCTGTTGTTAAAAATTGTAGAGACTCAACCATTT -TCTTTGTAAATAAGCCATCATAAGCCATAATTTATCTTCCACCTTCTTCATATCATTCGTTTCATTTTAA -CATGATTGTAACTTTTCGGTATAGTTATTGAATCATACATTATGCCACACATTTAACATTATCTAAAAGT -TCGCAATTCAATTTATTTAATTAAAATTAATCGTGCAATATAACGATATTGTTAGACCTAATAGAAATTA -TGGCATGCAATTTCAAATATGCTATACAATATAAAGAACAATGTGATATCATATTTAAATAATAGAAGAT -TAGCTTAGAGAGGTCGTAAGGCATGGATAATGAAAAAGGATTGTTAATCGTTTTATCAGGACCATCTGGA -GTAGGTAAAGGTACTGTTAGAAAACGAATATTTGAAGATCCAAGTACATCATATAAGTATTCTATTTCAA -TGACAACACGTCAAATGCGTGAAGGTGAAGTTGATGGCGTAGATTACTTTTTTAAAACTAGGGATGCGTT -TGAAGCTTTAATTAAAGATGACCAATTTATAGAATATGCTGAATATGTAGGCAACTATTATGGTACACCA -GTTCAATATGTTAAAGATACAATGGACGAAGGTCATGATGTATTTTTAGAAATTGAAGTAGAAGGTGCAA -AGCAAGTTAGAAAGAAATTTCCAGATGCGTTATTTATTTTCTTAGCACCTCCAAGTTTAGATCACTTGAG -AGAGCGATTAGTAGGTAGAGGAACAGAATCTGATGAGAAAATACAAAGTCGTATTAACGAAGCACGTAAA -GAAGTCGAAATGATGAATTTATACGATTACGTTGTAGTTAATGATGAAGTAGAACTTGCGAAGAATAGAA -TTCAATGTATTGTAGAAGCTGAGCACTTAAAAAGAGAGCGCGTAGAAGCTAAGTATAGAAAAATGATTTT -GGAGGCTAAAAAATAATGTTAAATCCACCATTAAACCAATTAACGTCACAAATTAAATCAAAGTATTTAA -TTGCAACAACTGCAGCGAAAAGAGCGCGTGAAATTGATGAACAACCTGAAACTGAATTATTAAGTGAATA -TCATTCATTTAAACCAGTTGGTAGAGCGTTAGAAGAAATTGCTGACGGTAAAATTCGCCCTGTTATTTCA -AGCGATTATTATGGTAAAGAATAGTTTCGACCATTAAAAATATGTGAAGCAAGACGTATATCAAATACGT -CAAGGCATATCCAAATCAAACGCACCTATGTAGGTGTGTTTTTTTAGTTTATCCAATGATTGATGTTATA -ATAATACTAAATTTGTATCTATAAAAAAGTAATGAGCATTTGTGCGCATATGATGATGTAAAGCGTAAAT -GTCATAGTGATATTTAAGGGAGATTGAATATGAAGAAAATATTGTTAGCCGTTACAGGTGGCATTGCGGC -ATATAAAGCGATTGATTTGACAAGTAAGTTAACACAATCTGGGTATGAAGTTCGCGTTATGTTAACGAAT -CACGCACAAAAATTTGTGACACCATTAGCATTTCAAGCAATAAGTCGAAATGCTGTTTATACAGATACTT -TTATAGAAGAAAATCCTTCAGAAATACAGCATATAGCATTAGGTGATTGGGCAGATGCAATCATTGTTGC -ACCTGCAACGGCAAATACAATTGCAAAATTGAGTGTAGGTATTGCTGATGATTTGGTGACATCAACGTTG -CTAGCAACAGAGACACCGAAATTTATTGCGCCTGCTATGAATGTGCATATGTATGAAAATAAACGTACGC -AGCAAAATATTAATATTTTAAAAGAAGATGGGTATCATTTTATCGAACCAGGAAGCGGATTTTTAGCATG -TGGTTATGTTGCTAAAGGACGTATGGAAGAACCGCTTCAAATCGTTTCTGTTATTGATGCTCATTTTCAA -AATAGTAATCGTTTAGCTAATAGTTCATTTCAAGATAAACGCGCATTGGTTACAGCCGGACCAACTATTG -AAGTTATCGATCCAGTCAGATTTGTATCCAATCGTTCTTCTGGAAAAATGGGTTATGCAATAGCTGAAGC -ATTGCGAAATCGAGGAGCTATCGTGACATTAGTTGCGGGGCCTACAACACTAGAGGATCCAAAAGATATT -GAAGTTATTCATGTTCAAAGTGCTGAAGAAATGTTTGAACAAGTGACAAGCCGATTTGACGAACAAGATA -TTGTTGTAAAAGCAGCAGCCGTATCTGACTATACACCGGTTGATGTATTAGAACATAAGATGAAAAAGCA -GGACGGTGATTTGTCAGTATCTTTTAAACGTACTAAAGACATTCTTAAATATTTAGGTGAACATAAAACA -TCACAGTATTTAATAGGCTTTGCAGCAGAGACTGAAGATATTGAAAATTATGCACAACAAAAATTACGCA -AGAAAAATGCAGATGTGATTATTTCAAATAATGTTGGAGATATGTCTATCGGATTTAGTTCTGATGATAA -TGAATTGACAATGCATTTTAAAAATAATGAAAAAGTAAATATCAAGAAAGGAAAAAAAGTAGTATTAGCT -GCACAAATTTTAGATGAACTAGAAACTAGGTGGCAATAATGATAGCGAAAGTCATAGTCGATGTCGCGTC -GAAGAGCGTTGACTATAAATTTGATTATATAATTCCCGAACAACTCGAATCTGTCATCCAACCTGGTGTG -CGTGTGATTGTACCTTTTGGACCAAGAACGATTCAAGGTTATGTAATGGAAGTAACAGCAGAACCTGATG -CACAACTTGACGTTTCGAAGTTAAAAAAAATCATAGAAGTGAAAGATATACAACCAGAATTAACATCAGA -ATTAATAGCTTTAAGTGAGTGGATGGGTTCAACTCATGTCATTAAACGTATTTCTATGCTAGAAGTGATG -CTTCCGAGTGCTATTAAAGCGAAGTATAAAAAAGCATTTAAGATGAAAGATGACATAGAGGTACCTTCAA -CTTTATTACAAAAATTTGATAAGCATGGTTACTATTATTATAAAGATGCGCAAAAAAATAATGATATTCA -ATTGCTTATGAAGTTGTTAAAAGATGATATCGTTGAAGAAAGAACGATTCTCACACAAAATATAACTAAA -AAAACCAAGCGTGCTGTTCGTGTCATTGAAGGGTATCATCCTGATGAAGTATTAGCTAAGTTGGAGAAAG -TTATTAAACAATATGATTTGTATGCTTACTTGTCTGAAGAACAACATAAAACAATATTTTTAACTGATAT -TGAGGATATGGGCTTTTCAAAATCTAGTTTAGATGGACTTATCAAAAAAGGTTATGTTGAAAAATATGAC -GCGGTTGTTGAAAGAGACCCATTTAAAGATCGTGTTTTCGAACAAGAATCAAAACAGCAATTAACAGAAG -ACCAATATAAAGCATATGAAGCGATTAAAGCTAAAATTGTAAGCCAAGAGCAAGAAACATTTTTACTTCA -TGGTGTGACGGGATCAGGTAAAACAGAAGTATATTTACAAACGATAGAAGATGTTTTAAGTCAAGGAAAA -CAGGCGATGATGTTAGTTCCTGAAATCGCTCTAACACCGCAAATGGTTTTACGCTTCAAACGTCGATTTG -GTGATGACGTTGCTGTATTACATTCTGGCTTATCTAATGGGGAACGTTATGATGAGTGGCAAAAAATTAG -GGATGGTCGTGCGAGAGTAAGTGTTGGTGCAAGGTCAAGTGTGTTCGCACCTTTCAAAAATTTAGGGTTA -ATCATCATTGATGAAGAACATGAATCTACATATAAGCAAGAAGATTATCCGAGATATCACGCTAGAGAAA -TTGCCCAATGGCGAAGTGAATATCATCACTGCCCAGTCATTTTAGGAAGTGCAACACCATGTCTTGAAAG -TTATGCACGAGCTGAAAAAGGTGTTTATCATTTGCTATCATTACCAAACAGAGTGAACCAACAAGCTTTA -CCTGAAATTGATATCGTAGACATGCGTGAAGAATTGAGTGAAGGTAATCGGTCAATGTTTTCAAAAGATT -TACGTGAAGCCATACAATTAAGATTAGATCGACAGGAACAAGTTGTTTTATTTTTAAATCGACGTGGTTA -TGCATCATTTATGTTATGTCGGGATTGTGGATATGTACCGCAATGCCCAAACTGTGATATTTCATTAACG -TATCATAAAACGACAGACTTATTAAAATGTCACTATTGTGGTTACCAAGAGACACCACCGAATCAATGTC -CAAATTGTGAGAGTGAACACATTCGACAAGTAGGTACTGGTACTCAGAAAGTTGAAGAACTATTGCAACA -AGAATTTGAAGATGCGCGCATAATTAGGATGGATGTAGATACAACCTCAAAGAAAGGTGCACATGAAAAG -TTATTGACTGAATTCGAAAAAGGTAACGGTGACATTTTACTAGGTACTCAGATGATTGCGAAAGGATTAG -ATTATCCAAACATTACTTTAGTTGGTGTGCTGAATGCAGATACAATGTTAAATTTACCTGATTTTCGGGC -GAGCGAACGTACTTATCAACTATTAACGCAAGTGGCTGGTAGAGCTGGTCGTCATGAAAAGGCAGGTCAA -GTCATCATTCAAACGTATAATCCAGATCATTATTCAATATTGGATGTTCAAAAAAATGATTATTTAACAT -TTTATCGTCAGGAAATGGAATATCGTAAATTAGGAAAGTATCCACCGTATTATTATTTGATTAATTTCAC -AATCTCACATAAAGAAATGAAGAAGGTTATGGAAGCATCGCAACATGTTCATAAAATTTTATTACAGCAT -TTAACAGAAAAAGCGCTTGTACTAGGTCCATCTCCGGCAGCACTTGCGAGAATCAACAATGAATTTAGAT -TCCAAATTTTAGTGAAATATAAAAGTGAACCTGGATTATTACAAGCCATTCAGTTTTTAGATGACTATTA -CCATGAAAAATTTATAAAAGAAAAATTAGCGTTGAAGATTGATATTGATCCACAGATGATGATGTAATTT -TTTGACTAAAACACTTTAATACCAATGTTTCCTAAGAGTTTGAAAGGTCTTGTTTTTACTTTAAGGGCAG -AAAAAGGGCAGAATATACAACTGTTAACCATTTAAATTAGCAGTTTATATTCTGTCTTTTTATATGGCTT -TATAACTTACGTGATTTTGATTTGATTAGGGATTTATTAGTATTTTCATTTACGAATTCTGATTTTAATG -TAAGTGCCATACTTACTGATAAATAAAAGTACTAATGATTATGCAAACTATTTTTAAATGGCAAATTGAA -ATGGTGCAAATTTTACACTTGTAATTTAATGGCTATAAACTATTTTATATCTATCTATGTTTTAACTACT -TAAATTATTAGACAAAACAATTTTCTTAAATTATCAATTAAAGTATTTAAAAATATTGATGGTTAATGTA -AAATATCAATATAAATAAGTTTTTTAAATTTATGTATGTTTATTTGATTCAAACAAAATAACTTAAGAGG -AGAAAGTTTATGAAAAAGACACTGGGATGTTTACTTTTAATTATGCTTTTAGTCGTAGCAGGTTGTTCTT -TTGGTGGGAATCATAAATTATCATCAAAGAAATCAGAAGAATCAAAACAAGAAACTGTAAAAAAAGAATC -GGAAGAAGAGAAAGATCCAGATTTAGAGAAATTTGAAGAAATAGAGAAGAAAATGAAAGGAATTAAAGAT -GCGCCATCTCTAGATAAGTTGGATCCATTAATGACAGAAAAGTCGTTTACGAATAGTAAAGGGATTCAAG -GATGGAAAGATTACAAAGAATTAATGGGTAAAGTGGAACTTGCAGATTATAGATTTACAAAAGATTCAAA -AGGATCTTCTATAAAAGATGTTGATGCATTCTTTAAAGGTAAGAAAGGTATAAAAAGGAAAGTGATTGAA -ACACACGATGATGTAAAACAAGTTGATTATTGGTATGTAGATCCAGATGGAAAGAAAATTGGCAATTCAA -ACACACCTGTTTTTTACGCAGAAATTATGACAAAATATAAAGATGGAAAGTTAGTTTATGCATCAGTCGA -ACCAGGTTCTTACGTAATACATAAAGATGATGCAATTAAATATGACGATTATTCTAAGTTAAAAAAATTA -AGTCAACTAACTAAACTTGATCATCCAAAGCCAGTTCCATATAGCGTAGCTCAAATCAAATCTTTCGGAG -TACCTTTAACAAGCGTTTCATTTATGACGCATGGATCAAAGGATACTAAAGATGAAGTGATGCCGGCATT -GGCATATTTCACTTTTTCACCAAAAAATTATGAAGACAAGTCTAATCCAGATCCAAAAGTTTTAAATTTA -GTAGGGATGGATTTCTTAAATGCATCTAGTGATTTTGGTAACGCACATTTTGTTGTTCTAAGTAAATATA -TTAAAGAGTACGAATCAAACTATGAAACAGCGTCAGATGATTCTTTAAAATAGTATTTACTGTGCGGAAA -ATAAATAGTGTGCTACATTAAATAATCGCAATAATAATCCCGATAAACAATCAGCATTGCTGCTTATCAT -ATAGAGTTCGTAATAACTATAACTCTATGATTCGCAAATAATAAATGATTGTCATCGGGATTTATTTTTA -TCAATTTATAAAGTGACATTACCTTGTTCATCAGCAGGTTTGAAAACAGTAATCACTGCACTAATAATTG -CTAAAATGTGTGGGATACCTGTCCAACAGAATATTAAGTGTAGAATACCTTGCATATTCTTGCCGGCATA -AAATTTATGAATACCAAAACTACCTAAGAACAATGCTAATAAAATATAAATAACTTTGTTTACTTGCATT -TCTTTCCCTCCAGTTGAATTGCTTATAATGACATTAGCTTCTCTTTTTATTATACCCACTTTTAGTTCAA -ACATTCTAGTTTCAGCATTCCCAATCATCTAAATTTCATTTTTTCAATCCTTACAATAAATTTAGGATTT -CATTTCAGTTGCATTGTATTATTTTACGTGTGAAATATACGTAATGAATCACATTACAATCTTTAAATTG -AAAAATATACATTCTATGATGTAAGGTCGCATTTTTAATATATTTACGTTATAATGGTTTGATGAATTTT -ATTGAGGAGTAAGAGCTATGGCGATTAAAAAGTTAGTACCAGCATCGCATCCTATTTTAACGAAAAAAGC -GCAAGCAGTTATAAAATTTGATGATTCGTTAAAAAGATTATTACAAGATTTAGAAGATACAATGTATGCA -CAAGAAGCTGCTGGCTTATGTGCACCTCAAATTAATCAGTCATTGCAAGTGGCAATCATTGATATGGAAA -TGGAAGGATTATTACAACTTGTTAATCCGAAAATTATTAGTCAATCAAATGAAACGATAACAGACTTAGA -AGGTTCAATTACATTGCCAGATGTTTACGGCGAAGTGACAAGAAGTAAAATGATCGTTGTCGAAAGTTAT -GACGTCAATGGGAACAAAGTTGAACTAACTGCACATGAAGATGTAGCAAGAATGATTTTGCATATTATAG -ATCAAATGAACGGTATCCCTTTTACAGAACGTGCGGACCGTATTTTAACAGATAAAGAAGTGGAGGCATA -TTTTATAAATGACTAAAATAATATTTATGGGTACACCAGACTTTTCAACAACTGTTTTAGAAATGCTTAT -TGCAGAACATGATGTCATTGCAGTCGTAACGCAACCAGATCGACCTGTTGGACGTAAACGTGTTATGACA -CCACCACCAGTTAAAAAAGTTGCAATGAAATATGATTTACCTGTATATCAGCCTGAAAAATTAAGTGGAT -CAGAAGAATTAGAACAATTGCTTCAATTAGATGTAGATTTAATTGTAACAGCCGCTTTTGGACAATTATT -ACCTGAATCATTGTTGGCATTACCAAAACTTGGCGCAATTAATGTACATGCATCATTGTTGCCGAAGTAT -AGAGGTGGTGCACCAATTCATCAGGCAATTATCGATGGTGAACAAGAAACCGGCATAACAATTATGTATA -TGGTTAAAAAATTAGATGCGGGTAATATTATTTCGCAACAAGCAATTAAAATAGAAGAAAATGATAATGT -CGGTACGATGCATGATAAATTAAGTGTATTAGGAGCAGATTTATTAAAAGAAACTTTACCATCAATTATA -GAGGGTACAAATGAAAGTGTACCACAAGATGATACGCAAGCAACATTTGCTTCCAATATTCGACGCGAAG -ATGAGCGAATTAGCTGGAATAAACCAGGAAGACAAGTGTTTAATCAAATTCGAGGATTATCACCATGGCC -AGTTGCTTATACAACTATGGATGACACTAACTTGAAAATATACGATGCTGAACTCGTTGAGACTAATAAG -ATAAACGAGCCTGGAACAATTATAGAAACGACTAAAAAAGCCATTATTGTTGCTACAAATGATAATGAAG -CTGTTGCAATTAAAGATATGCAATTGGCTGGGAAAAAGAGAATGTTAGCTGCCAATTATTTAAGTGGTGC -GCAAAACACACTAGTAGGGAAGAAACTTATATGATAGAAAACGTGAGAAGTCTTGCTTTTGACACGATTC -AAGATATATTAAATGAAGGTGCGTATAGTAACTTGCGTATCAATGAAGTGTTGTCAGAAAATGAATTAAA -TGTAATGGATAAAGCTTTATTTACAGAAATTGTCTACGGAACCGTTAAAAGAAAATATACGTTAGATTTT -TATTTAAAGCCTTTTGTGAAAACAAAGATTAAGGCATGGGTTAGGCAATTATTATGGATGAGTATTTATC -AATATGTTTATTTAGATAAAGTTCCAAATCACGCCATCATTAATGAAGCAGTTGAAATAGCAAAAGAACG -CGGTGGCTATCACAACGGAAATGTCGTAAATGGCATTTTACGAACAATGATGCGTAGTGACTTACCTGAT -TTTAATGAAATTGCAGATCCTAAAAAAAGAATGGCAATCGAGTATAGTATGCCGAAGTGGATTATAGATC -ATTGGGCAACACATTATGGTCTCGAAGAAACTGAAACGATTTTACAGTCATTTTTAGAAACGACATCAAC -AACTGTGCGTGCCAACATGACGCGAGCATCATTAGATGATATTATTGAAAAGTTGCAAGACGAAGGTTAT -GACGTTGAAAAAGATCATGACTTACCTTATTGTCTCCATATAGGAGGACAACCAATTATTCATTCTCGTT -CATTTAAAGATGGATTCGTTTCAATTCAAGATAAAAGCTCAATGTTTGTTGCACACATTATGAATGTAGA -CCGACATGATCACGTATTAGATGCATGTAGTGCACCTGGCGGTAAGGCTTGTCATATTGCTGAAGTTTTA -ATGCCAGAAGGGCAAGTTGACGCTTCAGATATACATGATCACAAAATAGACTTAATTAATTTTAATATAA -AAAAATTACGATTAACAAATATTAAAGCTTTTCAACATGATGCGACAAAACCTTATGATAAAACATACGA -TAAGATACTTGTTGATGCACCATGTAGCGGATTAGGTGTTATGAGACACAAGCCGGAGATTAAATATACT -CAAAGCAAACAACATATTGAGTCACTAGTTGATTTACAGCTTGAAATATTGGAAAATGTAAAAAACAATG -TAAAAATAGGTGGCGAAATCATCTATTCCACATGTACAATAGAGCAACTAGAAAATGAAAACGTGATTTA -TACGTTTTTGAAAAATAATAAAAACTTCGAATTTGAACCGTTTCAACATCCGATAACTGGAGAGTTGGTC -AAAACGTTACAAATCATGCCGCAAGACTTTAATTCAGATGGATTCTTTATCACTAAGATAAAAAGAAAGG -ACAATTAGGAATGATAACTGCTGAAAAGAAAAAGAAGAATAAATTTCTTCCAAATTTTGACAAGCAATCA -ATATATTCATTGCGATTTGACGAAATGCAAAACTGGCTCGTTGAACAAGGTCAACAAAAATTTCGAGCGA -AACAGATTTTTGAATGGTTATATCAAAAAAGAGTAGATTCGATTGATGAAATGACGAACTTATCGAAAGA -CTTACGACAGCTTTTAAAAGATAACTTTACTGTTACAACTTTAACAACTGTAGTAAAACAAGAAAGTAAA -GACGGTACAATTAAATTCTTATTTGAATTACAAGATGGCTATACAATTGAAACTGTTTTAATGAGACATG -ATTATGGAAATTCAGTATGTGTAACGACACAAGTAGGTTGTCGTATCGGATGTACGTTTTGTGCTTCTAC -ACTTGGCGGCTTAAAAAGAAACCTTGAAGCTGGCGAAATTGTTTCACAAGTTTTAACAGTTCAAAAAGCC -CTTGATGCTACAGAAGAGCGCGTATCTCAAATTGTCATAATGGGTATCGGTGAACCATTTGAAAATTATG -ATGAAATGATGGACTTTTTAAGAATCGTCAATGATGATAACAGTTTAAATATTGGTGCACGTCACATTAC -AGTATCAACATCAGGTATCATTCCTAGAATATATGACTTTGCGGACGAAGATATTCAAATTAATTTTGCT -GTAAGCTTACACGCCGCAAAAGATGAAGTGCGATCACGCTTGATGCCAATTAACCGTGCATATAATGTTG -AGAAGTTAATCGAAGCAATTCAATATTATCAAGAAAAAACAAATCGTCGTGTTACTTTTGAATATGGTCT -GTTTGGTGGTGTGAATGACCAACTAGAACATGCAAGAGAATTAGCACATTTAATAAAAGGCTTAAACTGC -CATGTTAACTTAATTCCTGTCAACCATGTTCCAGAAAGAAATTATGTAAAAACGGCTAAAAATGATATCT -TTAAATTTGAAAAAGAATTAAAGAGACTAGGAATTAATGCCACAATACGTCGTGAACAAGGTTCAGATAT -TGACGCAGCTTGTGGTCAATTAAGAGCAAAGGAACGACAAGTAGAAACGAGGTAAAGACAAATGCTAGAG -GCACAATTTTTTACTGATACTGGACAACATAGAGATAAGAATGAAGATGCGGGTGGTATTTTTTATAATC -AAACTAATCAACAACTTTTAGTTCTGTGTGATGGTATGGGCGGCCATAAAGCAGGAGAAGTTGCAAGTAA -ATTTGTTACAGATGAGTTGAAATCCCGTTTTGAAGCGGAAAATCTTATAGAACAACATCAAGCTGAAAAT -TGGTTGCGTAATAATATAAAAGATATAAATTTTCAGTTATATCACTATGCACAAGAAAATGCAGAATATA -AAGGTATGGGTACAACATGTGTTTGTGCACTTGTTTTTGAAAAATCAGTTGTGATAGCAAATGTCGGTGA -TTCTAGAGCCTATGTTATTAATAGTCGACAAATTGAACAAATTACTAGTGATCACTCGTTTGTTAATCAT -CTTGTTTTAACGGGTCAAATTACGCCGGAAGAAGCATTTACACATCCACAACGTAATATTATTACGAAGG -TGATGGGCACAGATAAACGTGTGAGTCCAGATTTGTTTATTAAGCGATTAAATTTTTATGATTATTTATT -ATTAAATTCAGATGGATTAACTGATTATGTTAAAGACAATGAAATTAAGCGTTTGTTAGTAAAAGAAGGT -ACAATAGAAGATCATGGTGATCAATTAATGCAATTGGCATTAGATAACCATTCGAAAGATAACGTTACTT -TCATACTCGCGGCTATTGAAGGTGATAAAGTATGATAGGTAAAATAATAAATGAACGATATAAAATTGTA -GATAAGCTTGGCGGCGGTGGCATGAGTACCGTTTATCTTGCAGAAGATACGATACTTAACATTAAAGTTG -CAATTAAGGCGATTTTTATACCACCTAGAGAAAAAGAAGAAACATTAAAACGTTTTGAACGAGAAGTACA -TAACTCATCACAGCTATCACATCAAAATATAGTAAGTATGATCGATGTTGATGAAGAAGATGACTGTTAC -TACTTAGTAATGGAATATATTGAAGGTCCGACTTTGTCTGAGTATATTGAAAGTCATGGGCCATTAAGTG -TTGACACGGCGATTAATTTTACGAATCAAATATTGGATGGCATTAAACATGCGCATGATATGCGTATTGT -ACATAGAGATATTAAGCCACAAAATATATTAATTGACAGCAATAAAACGTTGAAAATATTTGATTTTGGA -ATTGCTAAAGCTTTAAGTGAGACGTCTTTAACTCAGACTAATCATGTGTTAGGTACTGTGCAGTACTTTT -CGCCAGAACAAGCAAAAGGTGAGGCAACGGATGAATGTACAGATATTTATTCTATAGGTATTGTGTTATA -TGAAATGCTTGTTGGTGAACCACCATTTAATGGAGAAACTGCAGTTAGCATTGCGATTAAACATATTCAG -GATTCTGTGCCAAATGTGACAACCGATGTACGTAAGGATATTCCGCAATCTTTAAGTAATGTCATTTTAC -GCGCTACAGAAAAAGACAAAGCGAATCGTTACAAAACAATTCAAGAAATGAAAGATGATTTGAGTAGTGT -TTTACATGAAAATCGAGCGAATGAAGATGTCTATGAACTCGATAAAATGAAAACGATAGCGGTACCATTG -AAAAAAGAAGATCTAGCAAAGCATATTAGTGAACATAAGTCGAATCAACCTAAACGTGAAACGACGCAAG -TACCTATTGTAAATGGGCCTGCTCATCATCAGCAATTCCAAAAGCCAGAAGGTACCGTGTACGAACCAAA -ACCTAAAAAGAAATCAACACGAAAGATTGTGCTCTTATCACTAATCTTTTCGTTGTTAATGATTGCACTT -GTTTCTTTTGTGGCAATGGCAATGTTTGGTAATAAATACGAAGAGACACCTGATGTAATCGGGAAATCTG -TAAAAGAAGCAGAGCAAATATTCAATAAAAACAATCTGAAATTAGGTAAAATTTCTAGAAGTTATAGTGA -TAAATATCCTGAAAATGAAATTATTAAGACAACTCCTAATACAGGTGAACGTGTTGAACGTGGTGACAGT -GTTGATGTTGTTATATCAAAAGGCCCTGAAAAGGTTAAAATGCCAAATGTTATTGGTTTACCTAAGGAGG -AAGCCTTGCAGAAATTAAAATCGTTAGGTCTTAAAGATGTTACGATTGAAAAAGTATATAATAATCAAGC -ACCAAAAGGATACATTGCAAATCAAAGTGTAACCGCAAATACTGAAATCGCTATTCATGATTCTAATATT -AAACTATATGAATCTTTAGGCATTAAACAAGTTTATGTAGAAGACTTTGAACATAAATCCTTTAGCAAAG -CTAAAAAAGCCTTAGAAGAAAAAGGATTTAAAGTTGAAAGTAAGGAAGAGTATAGTGACGATATTGATGA -GGGTGATGTGATTTCTCAATCTCCTAAAGGGAAATCAGTAGATGAGGGGTCAACGATTTCATTTGTTGTT -TCTAAAGGTAAAAAAAGCGACTCATCAGATGTCAAAACGACAACTGAATCGGTAGATGTACCATACACTG -GTAAAAATGATAAGTCACAAAAAGTTAAAGTTTATATTAAAGATAAAGATAATGACGGTTCAACAGAAAA -AGGTAGTTTCGACATTACTAGTGATCAACGTATAGACATTCCTTTAAGAATTGAAAAAGGAAAAACAGCA -AGTTATATTGTTAAAGTAGACGGTAAAACTGTAGCTGAAAAAGAAGTCAGCTATGATGATGTTTAAATAT -AATTGAAGTAAATGTACCGAGGTTTCTATTTGGAAGTCTCGGTATTTTTATGTTGAGATTGCGGTAGTTT -TAAAATGCTTCATGTCATCATATACAGGTGAGCATTGTCTATGAATTCTGTATCACTCTCACAATATTTA -TATCATTTGAAATGATCATTTATATATTAATTTTCCAGTCTTTGATATAATAAATGCAGTAAAATTAATC -GAGAGGTGCCATTTTGAAGACAGGTCGAATAGTGAAATCAATTAGTGGGGTATATCAAGTAGACGTTAAT -GGCGAACGTTTCAATACAAAACCACGAGGATTATTTAGAAAGAAAAAATTTTCACCGGTAGTTGGAGATA -TAGTGGAATTTGATGTACAAAACATTAACGAAGGCTATATTCATCAAGTGTATGAGCGGAAAAATGAGTT -GAAAAGACCACCTGTAAGTAATATAGATACACTAGTAATTGTAATGAGTGCTGTCGAACCAAATTTTTCA -ACGCAATTATTAGATCGATTTTTAGTTATTGCACATTCGTATCAGTTAAATGCGAGAATTTTGGTGACAA -AAAAAGATAAAACACCAATTGAAAAGCAGTTCGAAATTAATGAGTTGTTGAAAATATATGAAAATATTGG -CTATGAGACTGAATTTATTGGAAATGATGATGATCGAAAAAAAATTGTAGAAGCTTGGTCAGCTGGACTT -ATAGTACTTAGTGGTCAATCAGGTGTCGGTAAGTCCACTTTCTTAAATCATTATCGTCCAGAACTTAATC -TTGAGACAAATGATATATCAAAATCATTAAATCGAGGAAAGCATACTACAAGACATGTCGAACTATTCGA -ACGTCAAAACGGTTATATTGCAGACACACCTGGATTCAGTGCTTTAGATTTTGATCATATAGATAAAGAT -GAAATAAAAGATTATTTTCTTGAATTAAATCGATATGGTGAAACATGTAAGTTTAGGAATTGTAATCATA -TCAAAGAACCTAATTGTAATGTTAAGCATCAATTAGAGATAGGGAATATTGCGCAATTTAGATACGACCA -TTATTTACAACTATTTAATGAAATTTCAAATAGAAAGGTTAGATATTAAATGACAAAACTATATCCATCA -TTATTATCTGTTGATTTTTTGGATTTACAACATGAATTAAAACGACTTGAAGAAGCAGGTGTCGACGGAG -TTCATTTTGATGTTATGGATGGTCAATTTGTGCCTAATATATCTATTGGTTTACCAATATTAGATGCAGT -AAGAAAAGGCACAACATTACCTATAGACGTACATTTGATGATTGAAAATCCAGAAAAGTATATTGCATCA -TTTGCAGAACATGGTGCCGATATGATTTCAATTCATGTCGAATCAACGCCTCATATTCATCGTGCTATTC -AAATGATTAAACATTTAGATAAAAAAGCTGGTGTAGTAATTAATCCTGGTACACCAATATCACAAATTGA -ACCTATTTTAGATATTGTTGATTATGTACTAGTGATGACAGTTAACCCAGGGTTTGGTGGTCAATCATTT -ATTGATCAATGCGTAGAAAAAATAGCGGGTCTTAATGCTATTAAAATGGAACGTCAATTAAACTTTGATA -TTGAAGTTGATGGAGGCGTAAATACCGATACAGCGAAAGTATGTGTTGAAAATGGTGCTACAATGCTAGT -AACAGGTTCATTTTTCTTTAAACAAGAGGATTATAAAAAAGTCACACAAGCATTGAAAGGTTGAGTGTAT -ATGCATATAAATTTATTATGTTCTGATCGACACTTGCCGCAAGATATTTGGGCCAAAAGTAATGAAGGTA -AATGGGGCGGCGTTGATAGAGGTGCTTTGATTTTATTGAAGCATCAAATTATCCCTTTTTTCTCAGTGGG -AGACTTTGATTCAGTCAGTAAAGAAGAACGCCAACTTCTAACAGAACAGTTACAAATCAAACCAGTTCAA -GCTGAAAAAGCTGATACGGATTTAGCTTTAGCGGTTGATAAAGCTGTTGCACTTGGATTTGATAGTATTA -CAATTTATGGTGCAACAGGCGGACGATTAGATCACTTTTTTGGGGCAATTCAGTTATTATTGAAAAAAGC -ATATTATAAACATGATGTTCATATAGAAGTTATCGATCAACAAAATAAAATTGAATTATTGCCTAAAGGT -CAACATACAGTTGAAAAAGATAAGAGTTATCCGTACATTTCATTTATACCGATGACTGATGATGTAGAAC -TTTCTCTAGCAGGTTTTAAATATAATTTAGCTAGACAAATGCTTAATATAGGTTCTACTTTAACTATTTC -AAATGAAATTGAGTCTTTGCAAGCGAAAGTAACTGTACATGATGGGTTGATTTTGCAAATTAGAAGTACA -GATTTAAATTAAGTATATTCAAATATGCGAAGATTTTTAATAAAGTCCATGAGTTATTTAATAAAGTGAC -GTTTATAGTATAGAATTTATAGCATAATAATAGATGAATCACGCTGTAATTAATGAAGATTATGGCGTGA -TTTATTATTGAAAGGAAAATTGTAGGTCCTAGTACATTGATTTATGTGCCAAAATCGATATTGAACCCAT -AAGTCCAATTTGACAGAGAACCATTATTAAACGTTTTAACCAAATTATATTGATAGTTCGAATTTCACTA -TGAACCATTATGTATTGTTTTGTAACAAAAAAGAACTAAGAGGTTGAGCTCTTAGTTCTTAAGTAAATGC -GTCCTCCACATAAGGTCACATTTTTTATGTGCAATATATTTATTAAACTCTAGTTACTTTACCAGATTTT -AAAGCACGTGCAGAAACCCAAACTTTTTTAGGTTTACCGTCAACTAGGATTCTAACTTTTTGAAGGTTAG -CGTTCCATCTACGTTTAGTAGAGTTTAAAGCGTGTGAACGTCTGTTACCAGTCGAAGCTTTACGACCTGT -TACGAAACATTGTTTACCCATATGAGTACCTCCTTTAATAAATATAAATACACATAACTACTTATATACT -TAATTAAGATAGCATAGTTTCATTTGAAAAACAATGAATAATTTTCACATAAAAGTCAAAAATACTGAGT -TTTGTGATATAATTGTAGACTGTGAAGTTATGTAGTATGATATTTTAGAGAAATAAGTGAATGAAACATT -TAAACTTTTTATTTAATGATACTACATCTATTAAAAGAAAATGCCTATACATAATCGTCATGAGTGTAAA -TTCAGTTTACTCAAAATATAATAGGTGATTTAAGCGTAAGTCATTCTGATAAGTTGTACCATTGATATTT -TATAAAAATAATCAATGAAACTTAAAGCGTTTATGACTACACTAAGTGGTAAAATTTTAAAAGTGATTAG -GGGAAACGAATAATAAACTTTGAAATTTAGGAGGGACAAAGATATGACATTAGAGATTTCAAATGATTAC -GGTAAAATTGATATTTCAAACGAAGTGATTGCTTCGGTTGTAGGTGGAAAGGCCGTTGAATGTTATGGTA -TTGTAGGTATGGCATCTAGACAACAAGTTAGAGATGGTATTGCGGAAATACTAGGACATGAAAATTATGC -TAAAGGCATCAAAGTAACTGAAAATAATGGCGTAGTGGATATAGATATGTACATTATTGTAAGTTACGGT -GTGAAAATATCTGAAGTTGCCAATAATGTACAATCAACAGTGAAATATACTTTGGAAAAATCACTTAATG -TATCAGTAAATTCAATCAATATATATGTACAAGGTGTACGTGTGAATAATACAGGCAAGAAAGCTTAGGA -GGACAACTTGAAATGATTAGCAAAATTAATGGTAAATTATTTGCCGATATGATTATACAAGGGGCACAAA -ATTTATCTAACAATGCAGATTTGGTAGATTCTTTGAATGTGTATCCAGTGCCAGATGGTGATACAGGAAC -AAATATGAATCTTACTATGACTTCAGGTCGCGAAGAAGTAGAGAATAATTTGTCGAAAAATATCGGCGAA -TTAGGTAAAACATTCTCGAAAGGTTTACTAATGGGTGCAAGAGGTAACTCTGGTGTCATCTTGTCACAAT -TATTCAGAGGATTTTGTAAAAATATTGAAAGTGAATCTGAAATTAATTCAAAATTGTTAGCTGAAAGTTT -TCAAGCTGGTGTTGAAACGGCATATAAAGCTGTTATGAAACCAGTTGAAGGTACAATACTTACAGTTGCA -AAAGATGCTGCGCAAGCTGCAATAGAAAAAGCAAATAATACTGAAGATTGTATAGAATTAATGGAGTACA -TTATTGTAAAAGCCAATGAATCACTTGAAAACACACCAAACTTATTAGCTGTACTTAAAGAAGTTGGTGT -TGTTGATAGTGGCGGTAAAGGTTTGTTATGCGTTTACGAAGGATTCTTAAAAGCGCTTAAAGGTGAAAAA -GTTGAAGCCAAAGTTGCAAAGCTAGATAAAGATGAATTTGTACATGATGAACATGATTTCCATGGTGTAA -TTAATACTGAAGATATTATTTATGGCTATTGTACTGAAATGATGGTTCGTTTTGGAAAGAATAAAAAAGC -CTTTGATGAACAAGAATTCAGGCAAGATATGAGTCAATTTGGTGATTCTTTATTAGTCATTAATGATGAA -GAAATTGTGAAAGTTCACGTGCATACCGAATACCCAGGTAAAGTGTTTAATTATGGTCAACAATATGGTG -AATTAATTAAACTTAAGGTTGAAAATATGAGAGAACAGCATCGTGAAGTGATTCGAAAAGAACAGCACAC -AGCTAAACCGAAAATGGAAACGGTTGAAACAGCAATTATTACTATTTCTATGGGTGAAGGTATTTCAGAG -ATATTTAAATCAATGGGTGCCACACATATCATTAGTGGTGGACAAACGATGAATCCTTCTACAGAAGATA -TCGTTAAAGTCATTGAACAATCAAAATGTAAACGTGCAATTATTTTACCGAATAATAAAAATATCTTAAT -GGCAAGTGAACAAGCAGCGAGTATTGTTGATGCAGAAGCAGTTGTTATTCCAACGAAATCTATTCCTCAA -GGTATAAGCGCACTATTCCAATATGATGTGGACGCAACACTTGAAGAAAATAAAGCGCAAATGGCTGATT -CAGTAAATAACGTTAAATCTGGTTCATTAACGTACGCTGTTCGTGATACGAAAATTGATGGCGTTGAGAT -TAAAAAAGACGCGTTTATGGGCTTGATTGAAGATAAGATTGTAAGCAGCCAAAGTGATCAATTAACAACG -GTTACTGAGTTGTTAAATGAGATGTTAGCAGATGATAGTGAAATATTGACTGTGATTATTGGTCAAGATG -CAGAGCAAGCAGTTACAGATAACATGATAAACTGGATTGAAGAGCAATATCCAGATGTAGAAGTGGAAGT -TCATGAAGGTGGACAACCAATTTATCAATATTTCTTTTCAGTAGAATAAAAATTTAAAATAAAAAACTAC -CAATGATAAATCATCAGTTGGTAGTTTTTTATTTTGCTATTTTAGTGATATTGCGGGTTAAAAGTATCGT -TCTCGAGTTGCTAACAATGTCATGTTCAACTTAGTCATGATAAAATAAATAACATACTAAATGATACGTA -AAATCAAATAAAACATAGGTGATTTATTTTGGCTAAAGTAAACTTAATAGAAAGTCCATATTCTCTTTTA -CAATTAAAAGGTATAGGTCCTAAGAAAATAGAAGTATTGCAACAACTAAATATTCATACAGTGGAAGATC -TTGTTCTTTATTTGCCAACTAGATATGAAGATAATACAGTGATTGATTTGAATCAAGCAGAAGATCAATC -TAACGTTACGATAGAAGGACAAGTATATACAGCTCCAGTAGTTGCATTTTTTGGAAGAAATAAATCAAAA -TTAACTGTTCATTTAATGGTAAATAATATTGCTGTCAAATGTATTTTTTTCAATCAACCGTATTTAAAAA -AGAAAATCGAATTAAATCAAACTATAACTGTTAAAGGTAAGTGGAATAGGGTTAAACAGGAAATTACTGG -TAATAGGGTTTTCTTGAATTCACAAGGTACACAAACTCAAGAAAACGCAGATGTTCAATTAGAACCAGTC -TATCGTATTAAGGAAGGTATTAAACAAAAGCAAATACGAGACCAAATTAGACAAGCGTTAAATGATGTGA -CAATTCATGAATGGTTAACTGATGAACTAAGAGAAAAATATAAATTAGAGACCTTGGACTTTACTTTGAA -CACGTTACATCATCCTAAAAGTAAAGAGGATTTATTACGTGCTCGTAGAACCTATGCATTTACTGAACTG -TTTTTATTCGAATTACGTATGCAATGGCTAAATAGATTAGAAAAGTCATCTGACGAAGCAATTGAAATTG -ATTATGACTTAGACCAAGTTAAATCATTTATTGATCGTTTGCCTTTTGAACTAACTGAAGCACAGAAATC -CAGTGTTAATGAAATTTTTAGAGATTTAAAAGCACCAATACGTATGCATCGATTACTTCAAGGTGATGTA -GGTTCAGGAAAAACAGTAGTTGCTGCAATTTGTATGTATGCGTTAAAAACGGCTGGTTATCAATCAGCAT -TGATGGTACCAACTGAAATTTTAGCAGAGCAACATGCTGAAAGTTTAATTGCTTTATTTGGAGATTCTAT -GAATGTTGCGTTGTTAACTGGGTCAGTAAAAGGTAAGAAACGAAAAATACTTTTAGAACAACTTGAAAAT -CGTACGATTGATTGTTTAATTGGAACCCATGCATTGATTCAAGATGATGTGATTTTCCATAATGTTGGTT -TAGTAATTACAGATGAACAACATCGATTTGGTGTGAATCAACGCCAACTTTTAAGAGAAAAAGGTGCAAT -GACGAATGTGTTATTTATGACAGCAACCCCGATACCAAGAACACTAGCAATATCAGTTTTTGGTGAGATG -GATGTGTCTTCAATTAAACAATTACCAAAAGGTCGTAAACCTATCATTACTACTTGGGCAAAGCATGAGC -AATACGATAAAGTTTTGATGCAAATGACCTCAGAGTTGAAAAAAGGTCGTCAAGCATATGTTATTTGCCC -GCTTATAGAAAGTTCTGAGCATCTCGAAGATGTTCAAAATGTTGTCGCATTGTACGAGTCTTTACAACAG -TATTATGGTGTTTCCCGTGTAGGGTTATTGCATGGTAAGTTGTCTGCCGATGAAAAAGATGAGGTCATGC -AAAAGTTTAGCAATCATGAGATAGATGTTTTAGTTTCTACTACTGTTGTTGAAGTAGGTGTTAATGTACC -GAATGCAACTTTTATGATGATTTATGATGCGGATCGCTTTGGATTATCAACTTTACATCAGTTACGCGGT -CGTGTGGGTAGAAGTGACCAGCAAAGTTACTGTGTTTTAATTGCATCCCCTAAAACAGAAACAGGAATTG -AAAGAATGACAATTATGACACAAACAACGGATGGATTTGAATTGAGTGAACGAGACTTAGAAATGCGTGG -CCCTGGAGATTTCTTTGGTGTTAAACAAAGTGGATTGCCAGATTTCTTAGTTGCCAATTTAGTTGAAGAT -TATCGTATGTTAGAAGTTGCTCGTGATGAAGCAGCTGAACTTATTCAATCTGGCGTATTCTTTGAAAATA -CGTATCAACATTTACGTCATTTTGTTGAAGAAAATTTATTACATCGCAGTTTTGACTAATTACCATGCTG -ATTTGTCAATTTAAGTGCAACACTTCGTTAATTGAGTGATATGACACTTGAACTATTTAAATGTAAAGTG -GTATTTTAAAAATTTATAAATTTTCGACTAAATAATAGCTAAATAATACAGTTATTTGTTGAGTCGGTTA -AATAGAAAGTGTTATGATATGTGAGGAATGTTTAAGACTAGGTACTAAAAAATGAGGGGTGAGACGTTGA -AACTAAAGAAAGATAAACGTAGAGAAGCAATCAGACAACAAATTGATAGCAATCCCTTCATCACAGACCA -TGAACTAAGCGACTTATTTCAAGTGAGTATACAAACAATTCGTTTAGATCGCACTTATTTAAACATACCA -GAATTAAGGAAGCGTATTAAATTAGTTGCTGAAAAAAATTATGACCAAATAAGTTCTATTGAAGAACAAG -AATTTATTGGTGATTTGATTCAAGTCAATCCAAATGTTAAAGCGCAATCAATTTTAGATATTACATCGGA -TTCTGTTTTTCATAAAACTGGAATTGCGCGTGGTCATGTGCTGTTTGCTCAGGCAAATTCATTATGTGTT -GCGCTAATTAAGCAACCAACAGTTTTAACTCATGAGAGTAGCATTCAATTTATTGAAAAAGTAAAATTAA -ATGATACGGTAAGAGCAGAAGCACGAGTTGTAAATCAAACTGCAAAACATTATTACGTCGAAGTAAAGTC -ATATGTTAAACATACATTAGTTTTCAAAGGAAATTTTAAAATGTTTTATGATAAGCGAGGATAAAATTAT -GGTTAAATTAGCAATTGATATGATGGGTGGCGACAATGCGCCTGATATCGTATTAGAAGCCGTACAAAAG -GCTGTTGAAGACTTTAAAGATCTAGAAATTATACTTTTCGGTGACGAAAAAAAGTATAATCTGAACCATG -AACGAATCGAATTTAGACATTGTTCTGAAAAGATTGAAATGGAAGATGAGCCTGTTAGAGCGATTAAACG -TAAAAAAGATAGCTCAATGGTAAAAATGGCTGAAGCTGTGAAATCTGGTGAGGCAGATGGATGTGTGTCA -GCAGGTAATACTGGTGCTTTAATGTCAGCTGGTTTATTCATTGTTGGACGTATTAAAGGTGTAGCTAGAC -CGGCTTTAGTAGTAACATTGCCAACGATTGATGGAAAAGGTTTTGTCTTTTTAGACGTTGGTGCAAATGC -TGATGCTAAGCCTGAACACTTATTACAGTATGCGCAACTAGGGGATATTTATGCTCAAAAAATTAGAGGT -ATTGATAATCCGAAAATCTCATTATTAAATATAGGTACCGAGCCAGCTAAAGGTAATAGTTTAACGAAAA -AATCATATGAGTTATTAAATCAAGATCATTCATTGAATTTTGTTGGGAATATTGAAGCGAAGACATTAAT -GGATGGCGATACAGATGTTGTAGTTACCGATGGCTATACTGGGAACATGGTCCTTAAAAATTTAGAAGGT -ACTGCAAAATCAATCGGTAAAATGTTAAAAGATACGATTATGAGTAGTACTAAAAATAAAATAGCAGGTG -CAATATTGAAGAAAGATTTAGCAGAATTCGCTAAAAAGATGGATTACTCAGAATACGGTGGTTCCGTATT -ATTAGGATTGGAAGGTACCGTAGTTAAAGCACACGGTAGTTCAAATGCTAAAGCTTTTTATTCTGCAATT -AGACAAGCAAAAATAGCAGGAGAGCAAAATATTGTACAAACAATGAAAGAGACTGTAGGTGAATCAAATG -AGTAAAACAGCAATTATTTTTCCGGGACAAGGTGCCCAAAAAGTTGGTATGGCACAAGATTTATATAACA -ACAACGATCAAGCAACTGAAATTTTAACTTCAGCAGCAAACACATTAGACTTTGATATTTTAGAGACAAT -GTTTACTGACGAAGAAGGTAAATTGGGTGAAACTGAAAACACGCAACCAGCTTTATTGACGCATAGTTCG -GCATTATTAGCAGCACTAAAAAATTTGAATCCCGATTTTACTATGGGGCATAGTTTAGGTGAATATTCAA -GTTTAGTTGCAGCTGACGTATTATCATTTGAAGATGCAGTTAAAATTGTTAGAAAACGTGGTCAATTAAT -GGCGCAAGCATTTCCTTCTGGTGTAGGAAGCATGGCTGCAGTATTGGGCTTAGATTTTGATAAAGTTGAT -GAAATTTGTAAGTCATTATCATCTGATGACAAAATAATTGAACCAGCAAACATTAATTGCCCAGGTCAAA -TTGTTGTTTCAGGTCACAAAGCTTTAATTGATGAGCTAGTAGAAAAAGGTAAATCATTAGGTGCAAAGCG -TGTCATGCCTTTAGCAGTATCTGGCCCATTCCATTCATCGCTAATGAAAGTGATTGAAGAAGATTTTTCA -AGTTATATTAATCAATTTGAATGGCGTGATGCTAAGTTTCCTGTAGTTCAAAATGTAAATGCGCAAGGTG -AAACTGACAAAGAAGTAATTAAATCTAATATGGTCAAACAATTATATTCACCAGTACAATTCATTAACTC -AACAGAATGGCTAATAGACCAAGGTGTTGATCATTTTATTGAAATTGGTCCTGGAAAAGTTTTATCTGGC -TTAATTAAAAAAATAAATAGAGATGTTAAGTTAACATCAATTCAAACTTTAGAAGATGTGAAAGGATGGA -ATGAAAATGACTAAGAGTGCTTTAGTAACAGGTGCATCAAGAGGAATTGGACGTAGTATTGCGTTACAAT -TAGCAGAAGAAGGATATAATGTAGCAGTAAACTATGCAGGCAGCAAAGAGAAAGCTGAAGCAGTAGTCGA -AGAAATCAAAGCTAAAGGTGTTGACAGTTTTGCGATTCAAGCAAATGTTGCCGATGCTGATGAAGTTAAA -GCAATGATTAAAGAAGTAGTTAGCCAATTTGGTTCTTTAGATGTTTTAGTAAATAATGCAGGTATTACTC -GCGATAATTTATTAATGCGTATGAAAGAACAAGAGTGGGATGATGTTATTGACACAAACTTAAAAGGTGT -ATTTAACTGTATTCAAAAAGCAACACCACAAATGTTAAGACAACGTAGTGGTGCTATCATTAATTTATCA -AGTGTTGTTGGAGCAGTAGGTAATCCGGGACAAGCAAACTATGTTGCAACAAAAGCAGGTGTTATTGGTT -TAACTAAATCTGCGGCGCGTGAATTAGCATCTCGTGGTATCACTGTAAATGCAGTTGCACCTGGTTTTAT -TGTTTCTGATATGACAGATGCTTTAAGTGATGAGCTTAAAGAACAAATGTTGACTCAAATTCCGTTAGCA -CGTTTTGGTCAAGACACAGATATTGCTAATACAGTAGCGTTCTTAGCATCAGACAAAGCAAAATATATTA -CAGGTCAAACAATCCATGTAAATGGTGGAATGTACATGTAATATATTTGAGCTAAAGCTCATTGACGCAG -TGGTTGACTGGTCATCCAATGGAGAAATGCCTGACCTAGTCAACTTTGCGGGGGAAATTCTAAGCAACCA -AGATATGGTTCCAGAATTTCTCCCTAAGAAACAGTAATCAATAAATTGATAACTAATAAGCGGAACGCCT -GAGCTAAAGCTCATGCATAAGAAACAGTAATCAATAAATTGATAACTGTTTCTAAAATTTCTACTTGTTT -TTTAGAATTTAAAATGGGAAAATATAATAGTCTATGTATAGGCATTTTTAAAGGAGGTGAATCGACGTGG -AAAATTTCGATAAAGTAAAAGATATCATCGTTGACCGTTTAGGTGTAGACGCTGATAAAGTAACTGAAGA -TGCATCTTTCAAAGATGATTTAGGCGCTGACTCACTTGATATCGCTGAATTAGTAATGGAATTAGAAGAC -GAGTTTGGTACTGAAATTCCTGATGAAGAAGCTGAAAAAATCAACACTGTTGGTGATGCTGTTAAATTTA -TTAACAGTCTTGAAAAATAATAAATCTTACATCTGGGTCGTCAGTATTGTCGACTCAGTTTTTTTCTTTA -ATTATCAATAGTTTTAACGTAAAATTAAAGATGATTCAAGAGCAACACATAAAGGAGATAAAATAATGTC -TAAACAAAAGAAAAGTGAGATAGTTAATCGTTTTAGAAAGCGCTTTGATACTAAAATGACAGAGTTAGGC -TTTACTTATCAAAATATTGATTTATACCAACAAGCATTTTCGCATTCGAGTTTTATTAATGATTTTAATA -TGAATCGTTTAGACCATAATGAGCGTTTAGAGTTTTTGGGTGATGCGGTATTAGAATTGACGGTTTCACG -ATATTTATTTGATAAACATCCCAACTTGCCAGAAGGGAATTTAACAAAAATGCGTGCCACTATTGTATGT -GAGCCCTCACTTGTAATATTTGCGAATAAAATTGGATTGAACGAAATGATTTTACTTGGTAAAGGTGAAG -AGAAAACAGGGGGACGTACAAGACCATCATTAATATCAGACGCATTCGAAGCATTTATTGGGGCATTGTA -TTTGGATCAAGGACTAGATATAGTTTGGAAATTTGCTGAGAAAGTCATTTTCCCACATGTAGAACAAAAT -GAGTTATTAGGCGTGGTAGATTTTAAAACACAATTCCAAGAATATGTGCACCAGCAAAATAAAGGTGATG -TAACCTATAATTTAATAAAAGAAGAGGGACCGGCACATCATCGTCTATTCACTTCAGAAGTTATTCTGCA -AGGGGAAGCAATAGCTGAAGGTAAAGGGAAAACGAAAAAAGAATCAGAACAACGCGCTGCTGAAAGTGCC -TATAAGCAATTAAAGCAAATTAAATAGAAATTTATATGATACGACATATAGGTGTTCGATTTAGGATTTA -TGGAAGAATTTTTAATATTTTATGGAACAACTTCGAAATTTAATATACAAATACTAAAATATCGTATACA -TGTGTTCTTTAAAATTGTGATAAGGAGTTTAGGATGGTTTATTTAAAATCAATAGATGCCATTGGATTTA -AGTCTTTTGCAGATCAAACCAATGTTCAATTCGATAAAGGTGTGACTGCAATTGTTGGTCCAAATGGAAG -CGGTAAAAGTAATATTACAGATGCTATTAAATGGGTGTTGGGTGAACAATCGGCTAAATCATTACGTGGC -TCAAAAATGGAAGATATTATCTTCTCAGGTGCAGAACATCGCAAAGCTCAAAATTATGCTGAAGTACAGT -TAAGATTAGATAATCATTCTAAAAAGCTCAGTGTTGATGAAAACGAAGTTATTGTAACAAGAAGATTGTA -TCGAAGTGGTGAAAGTGAGTACTACATAAATAATGACCGTGCAAGATTAAAAGATATTGCCGATTTATTT -TTAGATTCTGGATTGGGGAAAGAAGCATATAGCATTATCTCGCAAGGTAGAGTTGATGAAATACTAAATG -CTAAACCAATTGATAGACGTCAAATTATTGAAGAATCGGCTGGTGTACTTAAATATAAAAAACGTAAAGC -TGAATCATTAAATAAACTTGACCAAACAGAAGATAATTTAACGAGAGTAGAAGACATTTTATATGATTTG -GAAGGTCGCGTAGAACCTCTAAAAGAGGAGGCAGCTATAGCTAAAGAATATAAGACACTTTCACACCAAA -TGAAACATAGTGACATTGTAGTTACAGTGAACGATATTGATCAATATACAAATGACAATAGACAATTAGA -TCAACGTTTAAATGATTTACAAGGTCAACAAGCAAATAAAGAAGCTGACAAGCAACGTTTAAGCCAACAA -ATTCAACAATATAAAGGTAAGCGTCATCAACTTGATAATGATGTTGAATCGCTTAATTATCAATTAGTAA -AAGCTACGGAAGCCTTTGAAAAATATACGGGACAATTAAATGTTTTAGTAGAACGTAAGAAAAATCAATC -TGAAACAAATGCACGATATGAAGAAGAACAAGAAAATTTAATTGAGCTTTTAGAAAATATATCAAGTGAG -ATTTCTGAAGCTCAAGATACTTATAAGTCTCTGAAAAGTAAACAAAAAGAACTCAATGCTGTCATTCGTG -AACTTGAAGAACAACTATATGTTTCAGACGAAGCACACGATGAAAAATTGGAAGAAATTAAAAACGAATA -CTATACATTAATGTCAGAGCAATCAGATGTTAACAATGATATTCGTTTTTTAAAGCATACTATAGAAGAG -AATGAGGTTAAAAAATCAAGACTAGATTCTCGATTAGTTGAAGTCTTTGAGCAATTGAAAGATATTCAGG -GTCAAATAAAAACGACTAAAAAAGAATATCAACAGACCAACAAAGAACTTTCTGCTGTAGATAAAGAAAT -TAAAAATATAGAAAAAGACCTCACTGATACAAAAAAAGCACAAAACGAATACGAAGAGAAATTGTATCAA -GCATATCGATATACCGAAAAAATGAAAACACGTATTGATAGTTTGGCAACGCAAGAGGAAGAATATACTT -ATTTTTTCAATGGCGTCAAACATATTTTGAAAGCTAAAAATAAAGAATTAAAGGGTATTCATGGTGCAGT -TGCGGAAATTATTGATGTGCCATCTAAATTAACTCAGGCAATTGAAACAGCATTAGGTGCTTCATTACAA -CATGTCATTGTAGATTCAGAAAAAGATGGACGCCAGGCTATTCAATTTTTAAAAGAACGTAATTTAGGTC -GTGCGACGTTTTTACCATTAAATGTTATACAGAGTAGAGCGGTAGCGACTGATATTAAGTCTATTGCTAA -AGAGGCAAACGGATTTATTAGTATTGCTTCGGAAGCAGTTAAAGTAGCACCAGAATATCAAAATATTATC -GGGAATTTATTAGGTAATACGATTATCGTTGATCATTTAAAGCATGCAAATGAATTGGCACGTGCGATTA -AATATCGAACTCGTATTGTTACTTTGGAAGGTGATATTGTAAATCCTGGTGGTTCTATGACTGGTGGTGG -CGCTCGTAAGTCAAAAAGTATTCTGTCTCAAAAAGACGAGTTGACAACAATGAGACACCAATTAGAAGAT -TACTTGCGTCAAACAGAATCATTTGAACAACAATTTAAAGAGTTGAAGATAAAAAGTGATCAATTAAGTG -AACTGTATTTTGAAAAAAGTCAAAAGCATAATACACTTAAAGAGCAAGTGCATCATTTTGAAATGGAGCT -CGATAGATTAACTACACAAGAAACACAAATAAAAAATGATCATGAAGAATTTGAATTTGAAAAAAATGAT -GGTTATACGAGTGACAAAAGTCGACAAACTTTGAGTGAAAAAGAAACTCATTTAGAAAGTATTAAAGCAT -CTTTAAAACGACTAGAAGATGAAATTGAACGCTACACAAAACTTTCTAAAGAAGGTAAGGAAAGCTTAAC -TAAAACACAACAAACGTTACATCAGAAACAATCTGATCTTGCTGTGGTTAAAGAGCGTATTAAAACACAA -CAACAGACAATAGATCGATTAAATAATCAAAGTCAACAAACCAAACATCAATTAAATGATGTTAAAGAAA -AAATAGCATTCTTTAATTCGGATGAAGTGATGGGCGAACAAGCTTTTCAAAATATTAAAGATCAAATTAA -TGGTCAACAAGAAACGAGAACACGCTTATCTGATGAATTAGATAAATTGAAACAACAACGTATTGAGTTG -AATGAACAAATCGATGCGCAAGAAGCTACACTACAAGTTTGTCACCAAGATATTTTAGCTATCGAAAATC -ACTACCAAGATATTAAAGCTGAACAATCAAAGCTAGATGTATTAATTCATCATGCGATAGATCATTTAAA -TGATGAATATCAATTGACTGTTGAACGTGCAAAATCTGAATATACGAGTGATGAATCGATTGACGCATTA -CGTAAAAAAGTTAAATTAATGAAGATGTCGATTGATGAACTAGGTCCTGTAAACTTAAATGCAATTGAAC -AATTTGAAGAGTTAAATGAACGTTATACATTTTTAAGTGAGCAACGTACAGATCTTCGTAAAGCTAAAGA -AACATTAGAGCAAATTATAAGTGAAATGGATCAAGAGGTTACTGAAAGATTTAAAGAAACTTTCCATGCT -ATTCAAGGACATTTTACAGCTATGTTCAAACAATTGTTTGGTGGAGGCGATGCAGAATTGCAATTAACTG -AAGCCGATTATTTAACAGCTGGTATTGATATTGTGGTACAACCACCGGGTAAAAAGTTGCAACATTTATC -GTTACTAAGTGGTGGTGAGCGTGCATTAACTGCTATTGCTTTACTATTTGCAATTTTAAAAGTAAGATCT -GCACCTTTTGTTATATTAGATGAGGTTGAAGCTGCATTAGATGAAGCGAATGTTATTAGATACGCAAAAT -ATTTAAATGAGTTATCAGACGAAACACAATTCATTGTTATTACACACCGTAAAGGAACAATGGAATTTGC -AGATAGGTTATACGGTGTAACAATGCAAGAATCAGGTGTTACTAAACTTGTGAGTGTGAATTTAAATACA -ATAGATGATGTGTTGAAGGAGGAGCAATAATGAGCTTTTTTAAACGCTTAAAAGATAAGTTTGCAACAAA -TAAAGAAAATGATGAAGTTAAATCCTTAACAGAAGAACAAGGTCAAGACAAATTAGAAGATACACATTCT -GAAGGTTCAACGCAGGACGTAAATGATTTAGCAGAAAATGCTGAAGTGAAAAAGAAGCCACGCAAGTTGA -GTGAAGCGGATTTTGATGACGATGGCTTAATATCAATTGAAGATTTTGAAGAAATTGAAGCTCAAAAAAT -GGGTGCTAAATTTAAAGCAGGACTCGAAAAATCTCGTCAAAATTTCCAAGAACAATTAAATAATTTGATA -TCGAGATATCGTAAAGTAGATGAAGACTTTTTTGAAGCTTTAGAAGAAATGTTAATCACTGCAGACGTCG -GTTTTAATACAGTGATGACGTTAACTGAAGAATTACGTATGGAAGCACAACGACGTAATATTCAAGATAC -TGAAGATTTGCGTGAAGTCATTGTTGAAAAAATCGTAGAGATTTACCATCAAGAAGATGATAATTCAGAA -GCTATGAACTTAGAAGATGGTCGTTTAAATGTCATTTTAATGGTTGGTGTGAATGGTGTTGGTAAAACAA -CAACAATTGGAAAATTAGCTTACCGATATAAAATGGAAGGTAAAAAAGTAATGTTAGCTGCGGGCGATAC -TTTTAGAGCGGGTGCTATTGATCAATTGAAAGTTTGGGGCGAACGTGTTGGTGTAGATGTAATTAGCCAA -AGTGAAGGTTCTGATCCAGCTGCTGTTATGTATGATGCGATTAATGCCGCTAAAAACAAAGGTGTTGATA -TTTTAATCTGTGATACCGCTGGACGTTTACAAAATAAAACAAATCTAATGCAAGAATTAGAAAAAGTTAA -GCGTGTAATTAATCGAGCAGTGCCAGATGCGCCTCATGAAGCATTACTATGTTTAGATGCTACAACTGGT -CAGAATGCGTTGTCACAAGCTAGAAACTTTAAAGAAGTAACAAATGTTACAGGTATTGTATTAACGAAAT -TAGATGGTACAGCCAAAGGTGGTATCGTATTAGCCATTCGTAATGAATTGCACATTCCAGTTAAATATGT -AGGTTTAGGTGAGCAATTAGATGACTTACAACCATTTAACCCTGAAAGTTATGTCTACGGCTTATTCGCT -GATATGATTGAACAAAATGAAGAAATAACAACAGTTGAAAATGATCAAATTGTAACAGAAGAAAAGGACG -ATAATCATGGGGCAAAATGATTTAGTTAAAACGTTACGAATGAATTATTTGTTTGATTTTTATCAATCCT -TATTGACGAATAAACAACGTAATTATTTGGAATTATTTTATCTCGAAGATTATTCTTTAAGTGAAATCGC -AGATACTTTTAATGTGAGTAGACAAGCAGTTTATGATAATATAAGAAGAACTGGCGATTTAGTTGAAGAT -TATGAAAAGAAATTGGAATTATACCAGAAATTTGAGCAACGCCGAGAAATATATGATGAAATGAAAAAAC -ATTTAAGTAATCCAGAACAAATACAACGTTATATTCAACAATTAGAAGACTTAGAATAGATATAAATTGA -GGGAGGACATCGATATGGCATTTGAAGGCTTATCAGAACGCCTGCAAGCGACGATGCAAAAAATGCGTGG -TAAGGGTAAACTTACTGAAGCTGATATAAAGATAATGATGCGTGAAGTAAGATTAGCGTTACTTGAGGCT -GACGTAAACTTTAAAGTGGTAAAAGAATTTATTAAAACAGTATCAGAACGCGCATTAGGTTCCGATGTAA -TGCAATCATTAACACCAGGGCAACAAGTTATTAAAATAGTTCAAGATGAATTAACGAAGTTGATGGGTGG -AGAAAATACATCGATTAATATGTCAAATAAACCACCTACTGTTGTTATGATGGTTGGTTTACAAGGTGCT -GGTAAAACAACAACTGCAGGTAAATTAGCATTATTGATGCGTAAAAAATACAACAAAAAACCAATGTTAG -TTGCAGCAGATATTTATCGTCCAGCAGCGATAAATCAATTACAAACAGTAGGAAAACAAATTGATATTCC -TGTATACAGTGAAGGGGATCAAGTAAAGCCACAACAAATTGTAACTAATGCATTAAAACATGCTAAAGAA -GAACATTTAGACTTTGTAATCATTGATACAGCAGGTCGATTACACATCGATGAAGCATTGATGAACGAAT -TAAAAGAAGTAAAAGACATTGCTAAACCAAACGAAATTATGTTAGTTGTCGATTCAATGACGGGTCAAGA -TGCTGTCAATGTTGCAGAATCATTTGACGATCAACTTGATGTCACAGGTGTTACCTTAACTAAATTAGAT -GGTGATACACGTGGTGGTGCAGCTTTATCTATTCGTTCGGTGACACAAAAACCAATTAAATTTGTTGGTA -TGAGTGAAAAGTTAGATGGTTTAGAGCTATTCCATCCTGAACGTATGGCATCACGTATTTTAGGTATGGG -TGATGTGTTAAGTTTAATTGAAAAAGCACAACAAGATGTGGATCAAGAAAAAGCAAAAGATTTAGAGAAA -AAGATGCGTGAGTCATCATTTACTTTAGATGATTTTTTAGAACAACTTGATCAGGTGAAAAATTTAGGAC -CACTGGATGATATTATGAAAATGATTCCAGGTATGAATAAAATGAAAGGGCTAGATAAGCTTAATATGAG -TGAAAAGCAAATTGATCATATTAAAGCGATTATCCAGTCAATGACGCCGGCTGAAAGAAACAATCCAGAC -ACATTGAATGTATCACGTAAAAAGCGTATTGCTAAAGGTTCTGGACGTTCATTACAAGAAGTCAATCGTT -TGATGAAACAATTTAACGATATGAAGAAAATGATGAAACAATTCACTGGTGGCGGTAAAGGTAAAAAAGG -TAAACGCAATCAAATGCAAAATATGTTAAAAGGTATGAACTTACCATTTTAATGTTTAATTTAACATGCT -GATTTTTGTTGCAATGAGATGTGCATCCCGAAAGTTATACTAAAGAATATAACTTTATGGGGTGCATATT -TTTAGATACACAATAATAATTAAATACTGAAATTGCTGATTTGCTAGAACATGAGGTTATTGTTGCTAAT -ATTAATAAGTTATATTGGGAGAACGTGTGCGGTAGAAGTGGTACCATTCATGTCCTTACGGGATAAATTA -ACTAAACACGTATGTGGTGAAGGCTACTATGAATTTTTATAACCTATTAACAGTCTAATTTAGTAATCAC -ATAGTTATTTTTGTAAGGAAAAGGTTCAATAATTTTCTAGGTAAAGAAAAAACTCTTTACAAACATTCAC -ACACCTGTTAATATTATTTCTTGTAGAAAATAAAAATTAAAACATGACTTAAAGGAGATTTTATAAATGG -CAGTTAAAATTCGTTTAACACGTTTAGGTTCAAAAAGAAATCCATTCTATCGTATCGTAGTAGCAGATGC -TCGTTCTCCACGTGACGGACGTATCATCGAACAAATCGGTACTTATAACCCAACGAGCGCTAATGCTCCA -GAAATTAAAGTTGACGAAGCGTTAGCTTTAAAATGGTTAAATGATGGTGCGAAACCAACTGATACAGTTC -ACAATATCTTATCAAAAGAAGGTATTATGAAAAAATTTGACGAACAAAAGAAAGCTAAGTAATTTAGCGT -AAAATTGTTCTAACAATAAGAATAACTCGTTTACACTGACAGTTATTACTCAATGATACGTTGGGAATAT -CACATGTTAGTAATATAGAACGTATTGGGTACCATAATGGTGCCCTTTTTCTTTGAATTATTTTCAATTA -AAATAGAAGTGTTCAAAGCATAGAGTTGGAGGTAATAGAATGAGAGTTGAAGTTGGTCAAATTGTTAACA -CACATGGTATTAAAGGTGAAATTAAAGTAAAATCCAATTCAGACTTTACAGACGTTCGTTTTCAACCCGG -TCAAGTGCTGACAGTTGTGCATAACAATAACGACCTTGAATATACTGTTAAGTCACATAGAGTGCATAAA -GGGCTTCATATGCTCACATTTGAAGGTATTAATAATATTAATGATATTGAGCATTTAAAAGGGAGTTCTA -TTTATCAAGAGCGTGATCATGAAGATATCGTACTTGAGGAAAATGAATTTTATTATTCAGATATTATAGG -ATGTACAGTTTTTGATGATCAAGAAACACCAATAGGTCGTGTAATTAATATATTTGAAACAGGTGCGAAT -GATGTGTGGGTGATTAAAGAATCTAAAGAATATTTGATTCCTTATATTGCTGATGTTGTAAAAGAAGTGG -ATGTTGAAAATAAAAAAATTATCATCACGCCAATGGAAGGATTGTTGGATTAATGAAAATTGATTATTTA -ACTTTATTTCCTGAAATGTTTGATGGTGTTTTAAATCATTCAATTATGAAACGTGCCCAAGAAAACAATA -AATTACAAATCAATACGGTTAATTTTAGAGATTATGCAATTAACAAGCACAACCAAGTAGATGATTATCC -GTATGGTGGCGGACAAGGTATGGTGTTAAAGCCTGAACCTGTTTTTAATGCGATGGAAGACTTAGATGTC -ACAGAACAAGCACGCGTTATTTTAATGTGTCCACAAGGCGAGCCATTTTCACATCAGAAAGCTGTTGAAT -TAAGCAAGGCTGACCACATCGTTTTCATATGCGGACATTATGAAGGTTACGATGAACGTATCCGAACACA -TCTTGTCACAGATGAAATATCAATGGGTGACTATGTTTTAACAGGTGGAGAATTGCCAGCGATGACCATG -ACTGATGCTATTGTTAGACTGATTCCAGGTGTTTTAGGTAATGAACAGTCACATCAAGATGATTCATTTT -CTGATGGGTTATTAGAGTTTCCGCAATATACACGTCCGCGTGAATTTAAGGGTCTAACAGTTCCAGATGT -TTTATTGTCTGGAAATCATGCCAATATTGATGCATGGAGACATGAGCAAAAGTTGATCCGCACATATAAT -AAAAGACCTGACTTAATTGAAAAATATCCATTAACTAATGCAGATAAGCAAATATTAGAAAGATATAAAA -TAGGATTGAAAAAAGGTTAGTATTGTGCTAACATAATCTGAGTGTGGAAACACAAAAATCACTATGATCC -GCTGCTATATATTTGTCGAGGCAAGAACATAGGTTGAAGAGGAGAATTTATAATGACAAATCACAAATTA -ATCGAAGCAGTAACTAAATCACAATTACGTACAGACTTACCAAGTTTCCGTCCTGGTGATACTTTACGTG -TACACGTACGTATCATTGAGGGTACTCGTGAGCGTATCCAAGTATTCGAAGGCGTTGTAATTAAACGTCG -TGGCGGTGGCGTTTCTGAAACGTTTACAGTTCGTAAAATTTCATCAGGTGTTGGCGTGGAACGTACATTC -CCATTACACACACCAAAAATTGAAAAAATCGAAGTTAAACGTCGTGGTAAAGTACGTCGTGCTAAATTAT -ATTACTTACGTAGTTTACGTGGTAAAGCTGCTAGAATCCAAGAAATTCGTTAATCAGCATTTAAACAAAG -CTATGTATGAGTCAAATTCGACTCAATCAATAAAGCCATCTAGGTCACTTTTATGGAGTGATATAGATGG -CTTTTTTTGCTGTTTTATTAATGTAAAGTTGATAATGTAATTGTTTTTCCCTTCTTTATTCATAACGTGT -TTGCTCAAAATGGTTATATAAACAAAAATCTACTAAGTGCCATGAAAAAGGACTTAGTAGATTTATTAAA -TATGTGCGTAGCAACATTATTTTTGTCTTGCCCATCTCGTGAAAATAATACTACATATAATGCCAAATAT -AGTAATTGTTATAAGTAAATAATAGTATGGTGGGGTATAGCTCAATTGAATCTTTGTTATATTTTTAGGT -GCTTTAATGCCGGTCATAACACCATTTACTTGTTCAACTTTAAGACTTTGATCACCTGATGTCGCTTTCA -TACCTTGATTATATGCTGTTGGCAAAACAATATACCCAGATGAATTTTTATTTTTAGTAATAGTATAACC -TTGCTTTGTCTTTCTAACTTTGACAGCCTCTAATGAATTTGAAGCGTCTTTAAGCGTGGTATAATCTTCG -CCGTATATCCCTTTTAAATTTACACGATACTTACCTTTAGGCAATGATAATCTAATTCTATCTGAAGCTT -TAATGCGTATCGTTACGGGTGTTACAAAGCGTCGATATTTATAAGTGAGTTTATTTCTTTCTTGTGTATA -TTCATTCACTTTAACATCATGAGCTTTATCCGGCGAAAGTAATTCTAAATCCATTTCAAAATACAAATCT -TTAAATTGATTAGAAACTGATTTTGGCAACTGTACAGTTAGACCACCATTATTTTGTTTAACTTGTAATA -AATGTTTTGTAGGAGATTGCCAGGCTGCACTATTTAATTTAATTGTTGAATCTGATAGTAAATTTTTATT -GGCTTTAAAATGTGTATTAACATCTTTAGTATTGTTAGAAACAATCCCTTGCAACATTGCTTGTTCTTTA -TCTAATGGAGATTTTAATTCTTTATTGGAAAAGACCTTATTTGTAATATGTGCACTTGGATAATGGATGG -TATTTTTAGAATGAATCCAACGAACTTTATTGTCTTTGTGTTCAGAGTTAATTTTAAATCCATATGGTAA -GTTGTCATCATGATTCACTCTAATTCGATCATTAACATTCCAAAGTGATAGTAAATTTTGACGATTGCCA -AGTAGTCTATAAGTGCTGTTTTTATCGATTGGCATATTAATTTGGAGTGTCTTGTCATAATATTTTAAAA -TGTCTCCATTAAAAATACTAGAATATAATGAAATGCCATTATAATGATATATAAATGGTGAATTTAATGC -ATAGTCTGACATATAATCAATGCGATTAAATGGGCCTGTTGCATTTTTATTTATCTTTTTTATAAGCTGG -TTTACATAGTTACTATGGTAATCATGTTGTTTCAACGATGATAATGATTGTTGATAAGGTTTGATTGCCA -TATTTTTGTTGTTATCTAAAATGACGATTTGTTGAATCATAACGATTAATACTAATATTGCAACGGTTAA -TTTTTTATAACGCCATAAACTAAATTTTAAAATAACAGCAAGCACCATTTGCAGGATAATACCTACTATA -AGTGCGAGTGGGTGTGTCGGTGATAGTAATACATAAAGTAATGCGATGATGCTTACTGGTATTGTTCTGA -TTAAATAATATTTCATATTTAATGTTGATAAATGTTGAATAAACAATCCGCAAAGAGCACTTGATGATAG -TGCTAAGATATACACCCAACGCCTTTCTGGAAATGAAAAACCATTAAAAGCACTGTCAAAATACTGTGAT -AATGAACCAATAAATAATACCCATGTTACTATTGCGAAAAGTCTATAAAAGTAAAAACGATACAGTTTGA -ATGACAATAATGCAACGATAGTGAGAATTGAAATCGTAATGAAAAATCCATCGCTAAAGAAAAAATAATG -ATAATCAAGTGGTGTCAAAAACGGTATATCAACATTGGGATTTTGCTTTCTGTCATTTTCCAAAAACGCA -GAAATGCCAGTGAATAAACCAAATACACTTGATAACACACTCAAAACTGTAGCAGATATGACGCAAATTA -ATTTTTGTGTTCTAGAGACAATGTCATATTTGTAAGTGAAAATGAGTCGATATAAATAGTAGCAACCTAT -AATAATAGCTTGATAATAACTGAAATAAAAATTGCTAAATAGTGTTAAGGCTATCGCAACAATGAAAATA -CCGATTTTGCGTTGTTGAAAATATCTTTCCAAACCAAGAATCGATAATGGCAATAAATATAATAAATTTC -CATAAAATGACCAAGTAAAATTAAAGTATATAACGACAGTTGACATGCCGTATAAAATCGTAGCGATCAT -ATTTGTTGAGCGTTTAAAGTGTAATATTTTAAATAAGTAGAAGGTCACGACAAATGTTATGATAGCTCGT -ACCATAGCCATAATAAGTTGGTTTGTCGGCCAAAAATGTATTGTTGTCGGATTAAATATACCAACAGTTT -CTCCTATTTTAATGAATAGAAAATTGAGCCACATTAAAGGTGACAGCGAATAATAATATGATAGTCCTTT -CATATAATCGCCACCTAATCCAAACGATGCATCATATAAACTAGAAAAACTACTTAGATGTTCATACAAA -TACATTTGAAATGGCATCATTTGACGGAATCCATCTCCAGATCCACTAAAAACAGTACCATTCACAATAT -ATTCATAGATATGAGTAGAAAATAAAATAAGCGTTAATATTACGCTCATGAAAGTTATGACCAAGAATTG -TTTGACGTTTGAATTTAACCATTTTTTTAACACAACATTATCCTCAACTTTCAAATTTAAAATTAAGTTT -AACTGAAACTAAAGTTAATGAGGTTCTCGATAGGTAAAGACAAAGATGACTGTGGAACAGATACCTTATC -ATAGTTACTTAAACTTTGGATTATTTTTAGTTTATCATTAAACAAATATATTGAATAATAAAAATGTCAT -ACTGTATTAATTGAATATCACCTAATAAGCAGCTTAGATTTAATAAATGATAATTTTTAATTAGAGAAAA -CTTGGAATAATCACTTATACCTTAATCTAAAGCATTGTTAAGAAGTGTGACAATGTTAAAATAAATATAG -TTGAATTAATGAATTTGTTCTATAATTAACAAGTTATAGATTTTAATAATGAGAAAAGAATTGACGAAAG -TAAGGTGAATTGAATGGTTATTCAATGGTATCCAGGACATATGGCGAAAGCCAAAAGAGAAGTAAGTGAA -CAATTAAAAAAAGTAGATGTAGTGTTTGAACTAGTAGATGCAAGAATTCCATATAGTTCAAGAAACCCTA -TGATAGATGAAGTTATTAACCAAAAACCACGTGTTGTTATATTAAATAAAAAAGATATGTCTAATTTAAA -TGAGATGTCAAAATGGGAACAATTTTTTATTGATAAAGGATACTATCCTGTATCAGTGGATGCTAAGCAC -GGTAAAAATTTAAAGAAAGTGGAAGCTGCAGCAATTAAGGCGACTGCTGAAAAATTTGAACGTGAAAAAG -CAAAAGGACTTAAGCCAAGAGCGATTAGAGCGATGATTGTTGGAATTCCAAATGTTGGTAAATCCACATT -AATAAATAAACTGGCAAAGCGTAGTATTGCACAGACTGGTAATAAACCAGGTGTGACCAAACAACAACAA -TGGATTAAAGTTGGTAATGCATTACAACTATTAGATACACCAGGGATTCTTTGGCCTAAATTTGAAGATG -AAGAGGTCGGTAAGAAGTTGAGTTTAACAGGCGCGATTAAAGATAGTATTGTGCACTTAGATGAAGTTGC -CATCTATGGACTGAACTTTTTAATTCAAAATGATTTAGCGCGCTTAAAAGCACATTATAAAATCGAAGTT -CCTGAAGATGCAGAAATCATAGCGTGGTTTGATGCGATAGGGAAAAAACGTGGCTTAATTCGACGTGGTA -ATGAAATTGATTACGAAGCAGTCATTGAACTGATTATTTATGATATTCGAAATGCTAAAATAGGAAATTA -TTGTTTTGATATTTTTAAAGATATGACTGAGGAATTAGCAAATGACGCTAACAATTAAAGAAGTAACGCA -GTTGATTAATGCGGTTAATACAATAGAAGAATTAGAAAATCATGAATGCTTTTTAGATGAGCGAAAAGGT -GTACAAAATGCCATAGCCAGACGAAGAAAAGCGTTAGAAAAAGAACAAGCTTTAAAAGAAAAGTATGTTG -AAATGACTTACTTTGAAAATGAAATATTAACAGAGAATCCTAATGCTATTATTTGTGGTATTGATGAAGT -TGGAAGAGGACCTTTAGCAGGTCCAGTCGTTGCATGCGCAACAATTTTAAATTCAAATCACAATTATTTG -GGCCTTGATGATTCGAAAAAAGTACCTGTTACGAAACGTCTAGAATTAAATGAAGCACTAAAAAATGAAG -TTACTGCTTTTGCATATGGTATCGCGACAGCTGAAGAAATAGATGAATTTAATATTTATAAAGCTACTCA -AATCGCCATGCAGCGAGCTATTGATGGATTATCAGTACAACCAACGCATTTATTGATAGACGCGATGACG -CTTGATAATGCACTGCCTCAAGTATCTTTAATCAAGGGTGATGCAAGAAGTGTGTCTATTGCAGCTGCAA -GCATCATGGCAAAGGTTTTTCGTGATGATTATATGACACAGTTATCTAAAGATTATCCTGAATATGGTTT -TGAAAAAAATGCGGGTTACGGTACCAAACAACATTTACTAGCAATCGATGATATTGGCATTATGAAAGAG -CATAGAAAAAGCTTTGAACCTATAAAATCGTTACTGTAAATCGTAAAATTCAATTAAATGATAAAAAAGT -AGCATTTAAGTTTACAATAGCGCTTACATTTTTTATAATTGTAAGGGAACTTAACCTAAGTAACAGGAGG -ATGGAAGATGAATATCCACGAGTATCAAGGTAAAGAAATATTTCGTTCAATGGGCGTTGCAGTTCCAGAA -GGACGAGTAGCATTTACTGCTGAAGAAGCGGTGGAGAAAGCAAAAGAATTAAATTCTGATGTATATGTTG -TGAAAGCACAAATTCATGCTGGAGGTAGAGGTAAAGCAGGCGGAGTAAAAATTACTAAATCTTTATCTGA -GGTAGAAACATATGCAAAAGAATTATTAGGGAAAACTTTGGTGACACATCAAACTGGTCCAGAAGGTAAA -GAAATTAAGCGTTTATATATCGAAGAAGGTTGTGCTATTCAAAAAGAATATTACGTTGGATTCGTTATTG -ATCGTGCGACTGACCAAGTAACATTGATGGCGTCTGAAGAAGGGGGCACTGAGATTGAAGAAGTTGCTGC -GAAGACTCCTGAAAAGATCTTCAAAGAAACTATCGATCCAGTAATCGGACTTTCACCATTCCAAGCAAGA -CGAATTGCGTTTAATATTAATATTCCTAAAGAATCTGTTAACAAAGCTGCTAAATTCTTATTAGCACTTT -ATAATGTATTCATTGAAAAAGATTGTTCAATCGTAGAAATCAACCCATTAGTTACAACAGCTGATGGTGA -TGTATTGGCATTAGATGCTAAAATTAATTTTGATGATAATGCATTATTCAGACATAAAGATGTTGTAGAA -TTACGTGATTTAGAAGAAGAAGATCCGAAAGAGATTGAAGCGTCTAAACATGATTTATCATACATTGCAT -TAGATGGTGACATCGGATGTATGGTTAATGGTGCAGGTTTAGCCATGGCAACAATGGATACGATTAATCA -TTTCGGTGGAAACCCAGCCAATTTCTTAGATGCAGGCGGAAGCGCTACTAGAGAAAAAGTAACTGAAGCA -TTTAAAATCATTTTAGGTGATGAAAATGTTAAAGGTATTTTTGTAAACATTTTCGGTGGCATTATGAAAT -GTGATGTTATCGCAGAAGGTATCGTTGAAGCTGTAAAAGAAGTAGATTTAACTTTACCACTAGTTGTACG -CTTAGAAGGTACAAATGTTGAGTTAGGTAAAAAAATCTTAAAAGACTCAGGATTAGCAATTGAACCAGCA -GCAACAATGGCTGAAGGTGCACAAAAAATTGTTAAACTAGTCAAAGAAGCATAAGGAAAGGATGGGAGCA -CTAAGATGAGTGTATTTATAGATAAGAATACTAAAGTAATGGTACAAGGTATTACAGGGTCTACTGCCCT -TTTCCATACAAAACAAATGCTTGATTATGGTACGAAAATAGTAGCAGGTGTGACGCCTGGTAAAGGTGGT -CAAGTTGTTGAAGGCGTTCCTGTTTTCAACACTGTTGAAGAAGCTAAAAATGAAACTGGGGCAACGGTTT -CAGTCATTTACGTTCCAGCACCATTTGCTGCAGACTCAATTTTAGAAGCAGCTGATGCAGACTTAGATAT -GGTTATTTGTATCACTGAACATATTCCTGTATTAGACATGGTTAAAGTTAAACGCTATTTACAAGGTAGA -AAAACACGTTTAGTTGGTCCAAACTGTCCAGGTGTGATTACAGCAGATGAATGTAAAATTGGTATTATGC -CTGGCTATATTCACAAAAAAGGTCATGTTGGTGTAGTATCACGTTCAGGTACACTAACATATGAAGCAGT -GCACCAATTGACTGAAGAAGGTATTGGTCAAACTACAGCTGTTGGTATTGGTGGAGACCCAGTAAATGGC -ACAAACTTTATTGATGTTTTAAAAGCATTCAATGAAGATGACGAAACGAAAGCAGTTGTTATGATTGGTG -AAATCGGTGGTACAGCTGAAGAAGAAGCAGCTGAATGGATTAAAGCGAATATGACAAAACCAGTTGTAGG -CTTTATCGGTGGACAAACAGCACCTCCTGGAAAACGTATGGGACATGCTGGTGCGATCATTTCAGGTGGT -AAAGGTACTGCTGAAGAGAAAATTAAAACATTAAATAGTTGTGGTGTGAAAACAGCGGCAACACCTTCAG -AAATTGGTTCAACATTAATTGAAGCTGCTAAAGAAGCAGGTATTTATGAATTATTATTAACAGTTAATAA -ATAAAGTTAAAAGATGATATAAATGGCTATAGCCCATTCCATACTTTATAAAAGTATCGGAAATGGGCTA -TTTGTCGTGCGATGAATTTAAGTACACTTTTCATATTTTGAAAAGGCAAGTTAATTATTTTACCTCCTTC -AATAGCTTTCTAAAACAAAGCAAATTTTTATTAAAATATATAGTGCACTATGTTATAATATTTATATATT -ATTGTAAGGAGTGTTTCGTCATGAATAAACAACAAAGTAAAGTACGCTATTCAATTAGAAAAGTTAGTAT -TGGAATTTTGTCAATTTCAATAGGTATGTTTTTGGCATTGGGTATGTCGAACAAAGCATATGCAGATGAA -ATTGATAAATCTAAAGATTTTACAAGAGGGTATGAGCAAAATGTATTCGCGAAATCAGAGTTAAATGCTA -ATAAAAATACGACAAAAGACAAAATAAAAAATGAAGCTGTTGTTAAAACATCGGACACAAGTTTAAAGTT -AGACAACAAATCAGCAATTTCAAATGGAAATGAAATTAATCAAGATATGAAGATTTCAAATACTCCGAAA -AACTCAAACCAAGGTAACAATCTAGTTGTTAATAACAATGAACCTACTAAAGAAATTAAAATTGCAAACT -TGGAAGCTCAAAATTCTAATCAGAAGAAAGTGAATAAAGGTACTAATAATTACTTTGGTTACTACAGTTT -TAGAGAAGCTCCAAAAACACAAATCTATACTGTAAAAAAAGGTGACACACTTAGTGCTATAGCATTAAAA -TACAAAACTACAGTTTCAAATATTCAAAATACAAATAATATAGCAAATCCTAATTTAATATTTATTGGTC -AAAAATTAAAAGTGCCAATGACACCATTAGTAGAACCAAAACCAAAAACAGTGCCTTCAAATAATAAAAG -TAATAGTAATAACAGTACATTAAATTATTTGAAAACATTAGAGAATAGAGGATGGGATTTCGACGGTAGT -TATGGATGGCAATGTTTCGATTTAGTCAATGTGTATTGGAATCATCTTTATGGTCATGGATTAAAAGGAT -ATGGAGCTAAAGATATACCATATGCAAATAATTTTAATAGTGAAGCTAAAATTTATCACAACACACCAAC -TTTCAAAGCTGAACCTGGGGACTTAGTGGTTTTTAGTGGAAGATTTGGTGGAGGATATGGTCATACAGCT -ATTGTCTTAAATGGTGATTATGATGGAAAATTAATGAAGTTCCAAAGTTTAGATCAAAACTGGAATAATG -GTGGATGGCGTAAAGCAGAGGTTGCACATAAAGTTGTTCATAATTATGAAAATGATATGATTTTTATTAG -ACCATTTAAAAAAGCATAATTTAAATCGAAGGCAGGACATTGAAATATGAAATTTTCAACTTTAAGTGAA -GAAGAATTTACCAACTACACCAAAAAGCACTTCAAACATTATACACAGTCTATAGAATTATATAATTATA -GAAATAAAATAAATCATGAAGCACATATTGTGGGAGTGAAGAATGATAAAAATGAAGTTATAGCTGCATG -TTTATTAACAGAGGCACGTATTTTTAAATTCTACAAATATTTCTACTCTCATAGAGGTCCTTTACTTGAT -TATTTCGATGCTAAATTAGTTTGTTACTTTTTTAAAGAATTATCTAAATTCATTTATAAAAATAGAGGTG -TATTTATTCTTGTTGATCCATATTTAATAGAGAATTTAAGAGATGCGAATGGTAGGATAATAAAGAATTA -TAATAATTCAGTGATAGTAAAGATGCTAGGAAAAATTGGGTATCTCCATCAAGGTTATACAACAGGATAT -TCAAATAAAAGCCAAATTAGGTGGATTTCTGTATTGGATTTAAAAGATAAAGATGAGAATCAACTTTTAA -AAGAAATGGAATACCAAACTAGAAGAAATATAAAAAAGACTATTGAGATTGGTGTTAAGGTTGAAGATTT -ATCTATTGAAGAAACAAATCGATTTTATAAATTGTTTCAAATGGCTGAAGAAAAACATGGTTTTCATTTC -ATGAATGAAGATTATTTTAAACGAATGCAAGAAATATATAAAGATAAGGCAATGTTAAAGATAGCTTGTA -TAGATCTTAATGAATATCAAGATAAATTAAAAATACAATTATTGAAAATCGAAAATGAAATGATGACTGT -GAACAGAGCATTAAATGAAAATCCAAATTCTAAAAAGAATAAATCTAAATTAAATCAGTTAAATATGCAA -TTATCTAGTATTAATAATAGAATTAGTAAAACCGAAGAACTAATATTAGAAGATGGACCTGTTTTGGATT -TAGCTGCTGCTTTATTTATATGTACTGATGATGAAGTTTATTATCTATCAAGTGGATCAAATCCTAAATA -TAATCAGTATATGGGCGCATATCATCTACAATGGCATATGATAAAATATGCAAAATCACATAATATTAAT -AGGTATAATTTTTATGGAATAACAGGCGTCTTTAGTGATGAGGCGGATGATTTTGGTGTACAACAATTTA -AGAAAGGTTTTAATGCACATGTTGAAGAATTAATTGGTGATTTCATCAAACCAGTAAGACCAATTCTATA -TAAATTTGCAAAACTTATTTATAAGGTTTGATTATAAAGTATGTTGGAAATTGAAATTTAAAATTCTTTC -CAACATACTTTTCACTTTTTAAGTCGGTATTTTACTCCTTAAAATAACATTACATCGACAATGTTTTTGT -ATTAGAAATGTAAAACAAAAATAGAATATGATTTTGTATGATTAAAAAAAGGAGTTGATTTATTGATTAG -ACTATTTTTGCTTAAGTTATACTGGGCACACTTTTCGACTAAACAAATTCATCAATTTTTAATGGCATAC -CCTAATGTAATTAAAGAGGGGGGCAGAAAAAAAGATAGTTATTTATGTGAATGGGTGAATAGGGAAGAAA -ATGTTCATTTATTACGTAAATACTATGCTTTTATAAAACTTGATCATAACGATATTATTAAAGAACTGCA -GAAATTAAAAGTAAGTTACATTACATATATGGATACTGAATACCCAGTGCTATTAAAAGAAATATATCAA -TTTCCATTACTTCTTTTCTATAGAGGGAACATCAAATTAATAAATAATATGCATCATTTGGCAGTAGTAG -GTGCAAGAGATTCTACAAGTTATACCCAACAGTCTTTAGAATTTTTATTATCAAATGATAAAAGCAAATA -TTTAACAATTGTTTCCGGCCTTGCTCAAGGAGCTGATGCAATGGCACATCAAATAGCTTTAAAATACAAT -CTCCCTACAATAGCAGTTTTAGCCTTTGGCCATCAAACACATTATCCCAAAAGCACATTAGCATTAAGAA -ATAAAATAGAAGAAATAGGTTTAGTTATATCCGAATATCCACCACATACACCAATTGCTAAATATAGATT -TCCTGAGCGCAATAGAATTATCAGCGGTTTGTCAAAAGGGGTTTTAATTACTGAGGCTAAGGAACAAAGT -GGTAGTCACATCACGATAGATTTTGCATTAGAGCAAAATAGAAATGTTTATGTTTTACCTGGATCTATGT -TTAATCCTATGACAAAAGGTAATTTATTACGTATCCAAGAAGGTGCTAAGGTAGTATTAAACGCTAATGA -TATATTTGAAGACTACTATATTTAAAACTAAAAATAACGAGTTGCTTCATATTTCTTTTGTTACCCTTTG -TAATTTATTTTTTAATAAAATCTATAAAAAATAGACAGGGAAAATGATTTGTTTAGATATAAAACGTTGA -CAAAAGCAAAATTAAGCGTTTATCATTTATCTTTAGTAATTAGATTAGCGAGGGGGAAATGACATTGGCA -GATAATTTAGTCATTGTTGAATCGCCTGCAAAAGCAAAAACCATTGAAAAGTATTTAGGTAAGAAATATA -AAGTTATAGCTTCAATGGGACACGTCAGAGACTTACCAAGAAGTCAAATGGGTGTCGACACTGAAGATAA -TTACGAACCAAAATATATAACAATACGCGGAAAAGGTCCTGTTGTTAAAGAATTGAAAAAACATGCAAAA -AAAGCGAAAAACGTCTTTCTCGCAAGTGACCCCGACCGTGAAGGTGAAGCAATTGCTTGGCATTTATCAA -AAATTTTAGAGCTTGAAGATTCTAAAGAAAATCGCGTTGTTTTCAACGAAATAACTAAAGACGCTGTTAA -AGAAAGTTTTAAAAATCCTAGAGAAATTGAAATGAACTTAGTCGATGCACAACAAGCGCGTCGAATATTA -GATAGATTAGTTGGCTATAACATCTCGCCAGTTCTATGGAAAAAAGTAAAAAAAGGGTTGTCAGCGGGTC -GAGTTCAATCTGTTGCACTTCGTTTAGTCATTGACCGTGAAAATGAAATACGAAACTTTAAACCAGAAGA -ATATTGGACTATTGAAGGAGAATTTAGATACAAAAAATCAAAATTCAATGCTAAATTCCTTCATTATAAA -AATAAACCTTTTAAATTAAAAACGAAAAAAGATGTTGAGAAAATTACAGCTGCATTAGATGGAGATCAAT -TCGAAATTACAAACGTGACTAAAAAAGAAAAAACGCGTAATCCAGCAAACCCATTTACAACTTCTACATT -ACAACAAGAGGCGGCACGTAAATTAAACTTTAAAGCTAGAAAAACAATGATGGTCGCACAACAATTATAT -GAAGGTATAGATTTGAAAAAACAAGGTACGATTGGTTTAATAACATATATGAGAACCGATTCTACACGTA -TTTCAGATACTGCCAAAGCTGAAGCAAAACAGTATATAACTGATAAATACGGTGAATCTTACACTTCTAA -ACGTAAAGCATCAGGGAAACAAGGTGACCAAGATGCCCATGAGGCTATTAGACCTTCAAGTACTATGCGT -ACGCCAGATGATATGAAGTCATTTTTAACGAAAGACCAATATCGATTATACAAATTAATTTGGGAACGAT -TTGTTGCTAGTCAAATGGCTCCAGCAATACTTGATACAGTCTCATTAGACATAACACAAGGTGACATTAA -ATTTAGAGCGAATGGTCAAACAATCAAGTTTAAAGGATTTATGACACTTTATGTAGAAACTAAAGATGAT -AGTGATAGCGAAAAGGAAAATAAACTGCCTAAATTAGAGCAAGGTGATAAAGTCACAGCAACTCAAATTG -AACCAGCTCAACACTATACACAACCACCTCCAAGATATACTGAGGCGAGATTAGTAAAAACACTAGAAGA -ATTGAAAATTGGGCGACCATCAACTTATGCCCCGACAATAGATACGATTCAAAAGCGTAACTATGTCAAA -TTAGAAAGTAAGCGTTTTGTTCCTACTGAGTTGGGAGAAATAGTTCATGAACAAGTGAAAGAATACTTCC -CAGAGATTATTGATGTGGAATTCACAGTGAATATGGAAACGTTACTTGATAAGATTGCAGAAGGCGACAT -TACATGGAGAAAAGTAATCGACGGTTTCTTTAGTAGCTTTAAACAAGATGTTGAACGTGCTGAAGAAGAG -ATGGAAAAGATTGAAATCAAAGATGAGCCAGCCGGTGAAGACTGTGAAGTTTGTGGTTCTCCTATGGTTA -TAAAAATGGGGCGCTATGGTAAGTTTATGGCTTGCTCAAACTTCCCGGATTGTCGTAATACAAAAGCGAT -AGTTAAGTCTATTGGTGTTAAATGTCCAAAATGTAATGATGGTGACGTCGTAGAAAGAAAATCTAAAAAG -AATCGTGTCTTTTATGGATGTTCGAAATATCCTGAATGCGACTTTATCTCTTGGGATAAGCCGATTGGAA -GAGATTGTCCAAAATGTAACCAATATCTTGTTGAAAATAAAAAAGGCAAGACAACACAAGTAATATGTTC -AAATTGCGATTATAAAGAGGCAGCGCAGAAATAATATTTTTATTTCCTAGAGACATTTTAAGATTGTTAA -ATAGAATCATTAGTGAATCTTATTTTAAAGATAGTAATGGATTAATCTAAATAAGTGCGGATAATATTAA -CATAACAACATAATTAAAAGACATAAATGACAATAAAAGGAGTATAGAAATGACTCAAACTGTAAATGTA -ATAGGTGCTGGTCTTGCCGGTTCAGAAGCGGCATATCAATTATCTGAAAGAGGAATTAAAGTTAATCTAA -TAGAGATGAGACCTGTTAAACAAACACCAGCGCACCATACTGATAAATTTGCGGAACTTGTATGTTCCAA -TTCATTACGCGGAAATGCTTTAACTAATGGTGTGGGTGTTTTAAAAGAAGAAATGAGAAGATTGAATTCT -ATAATTATTGAAGCGGCTGATAAGGCACGAGTTCCAGCTGGTGGTGCATTAGCAGTTGATAGACACGATT -TTTCAGGTTATATTACTGAAACACTTAAAAATCATGAAAATATCACAGTTATTAATGAAGAAATTAATGC -CATTCCAGATGGATACACAATTATCGCAACAGGACCACTTACTACAGAAACCCTTGCACAAGAAATAGTG -GACATTACTGGTAAAGATCAACTTTATTTCTATGATGCGGCTGCTCCAATTATTGAAAAAGAATCTATTG -ATATGGATAAAGTTTACTTAAAGTCCCGTTATGATAAAGGTGAAGCTGCATATTTAAACTGTCCTATGAC -TGAGGATGAATTTAATCGCTTTTATGATGCAGTATTAGAAGCTGAAGCTGCGCCTGTAAATTCATTTGAA -AAAGAAAAATATTTCGAGGGTTGTATGCCTTTTGAAGTAATGGCAGAACGCGGACGCAAGACATTACTAT -TTGGACCAATGAAACCAGTAGGATTAGAAGATCCAAAGACTGGGAAACGTCCTTATGCGGTGGTTCAATT -AAGACAAGATGACGCTGCTGGCACACTCTACAATATTGTCGGCTTCCAAACACATTTAAAATGGGGAGCT -CAAAAAGAAGTCATTAAATTAATTCCAGGTTTAGAGAATGTTGATATTGTCAGATATGGTGTGATGCATA -GAAATACCTTCATTAACTCACCGGACGTATTAAACGAGAAATATGAATTGATTTCACAACCAAACATACA -GTTTGCGGGCCAAATGACTGGTGTTGAAGGTTATGTAGAAAGCGCAGCTAGCGGCTTAGTTGCAGGCATC -AATCTTGCGCATAAAATATTAGGCAAAGGTGAGGTAGTATTTCCGAGAGAAACTATGATTGGAAGTATGG -CTTACTATATTTCTCATGCTAAAAACAATAAGAATTTCCAACCTATGAATGCTAACTTCGGGTTATTACC -ATCTTTAGAAACTAGAATTAAAGATAAAAAAGAACGCTATGAAGCACAAGCTAATAGAGCTTTGGATTAC -TTAGAAAATTTCAAAAAAACTTTATAAAATAGTTAGAAAGACTAGATATGCTATTCATTCTTAAGTCATC -AACGAGTAAGTAATGACTTTCTAAATGGAAAATACTTATCCTAGTCTTTTTAATTTTGGAATTGTTACGT -ATTTCTGACAATTTAGAATTCGTATTCAAATAAATATCTAAATAAATAACACGCAATAAGTTGATTGATG -TAACATGTAAGTGAATGTTTTAAATAAAGTTTATTTAAAAGACAATGAAAGAATAAATAGTAAGGCTATT -AATAAAGACTTTTAGTAATTAATTTACAAAAGAGGTATTCTAATTAACAGGTTTTCCGATTAGTTACAAT -TATTTAATTCTCAAAAGATTTAGAATTGATTATCAAATTACTGTAAGCCCTTTGCTGTATATGCTACAAT -TCTTATTGATGGAGGGTAAATGTATTGAATCATATTCAAGAAGCATTTTTAAATACATTGAAAGTTGAAC -GAAATTTTTCAGAACACACATTGAAATCATATCAAGATGACTTAATTCAGTTTAATCAATTTTTAGAACA -GGAACATTTACAGTTGAATACTTTTGAATACAGAGATGCTAGAAATTATTTGAGCTATTTATATTCAAAT -CATTTGAAAAGAACATCTGTTTCTCGTAAAATCTCAACGTTAAGAACTTTCTATGAATATTGGATGACGC -TTGATGAGAACATTATTAATCCATTTGTTCAATTAGTACATCCGAAAAAAGAAAAATATCTTCCGCAATT -CTTTTACGAAGAAGAAATGGAAGCGTTATTTAAAACTGTAGAAGAGGACACTTCAAAAAGTTTACGGGAT -CGAGTTATTCTTGAATTGTTATATGCTACAGGTATCCGTGTTTCGGAATTAGTTAATATTAAAAAACAAG -ATATAGATTTTTACGCGAATGGTGTTACCGTATTAGGAAAAGGGAGCAAAGAGCGCTTTGTACCGTTTGG -TGCTTATTGTAGACAAAGCATCGAAAATTATTTAGAACATTTCAAACCAATTCAGTCATGCAATCATGAT -TTTCTTATTGTAAATATGAAGGGTGAAGCAATCACTGAACGCGGTGTACGATATGTTTTAAATGATATTG -TTAAACGAACAGCAGGCGTAAGTGAGATTCATCCCCACAAGCTCAGACATACATTTGCAACGCATTTATT -GAATCAAGGTGCAGACCTAAGAACAGTACAATCGTTATTAGGTCATGTTAATTTGTCAACAACTGGTAAA -TATACACACGTATCTAACCAACAATTAAGAAAAGTGTATCTAAATGCACATCCTCGAGCGAAAAAGGAGA -ATGAAACATGAGTAATACAACATTACATGCAACAACAATTTATGCTGTAAGACATAATGGGAAAGCAGCT -ATGGCTGGAGATGGGCAAGTAACGCTTGGTCAACAAGTCATCATGAAACAAACGGCAAGAAAAGTGCGTC -GTTTATATGAAGGTAAAGTGTTAGCTGGTTTCGCAGGTAGTGTAGCAGATGCGTTTACGTTATTTGAAAA -ATTCGAAACAAAATTACAACAGTTTAGTGGTAACTTAGAAAGAGCTGCTGTTGAATTGGCACAAGAATGG -CGAGGCGATAAACAATTACGTCAATTAGAAGCTATGCTAATTGTAATGGATAAAGATGCTATTTTAGTTG -TCAGTGGAACTGGCGAAGTTATTGCCCCAGATGATGACCTTATCGCTATTGGATCAGGAGGCAACTATGC -ATTAAGCGCAGGACGTGCATTGAAACGCCATGCATCGCATTTGTCTGCTGAAGAAATGGCATATGAGAGC -TTGAAAGTAGCGGCTGATATTTGTGTCTTTACCAACGATAATATTGTTGTCGAAACACTATAATAATCAG -AGCATGATAAATAATTATGAGCAATTAATTTTAGTTAAAAGACGGAGGAATGAAATTAATGGATACAGCT -GGAATAAGATTAACTCCAAAAGAAATCGTATCTAAATTAAATGAATACATCGTTGGACAAAATGATGCTA -AACGTAAAGTGGCAATTGCCCTACGTAATCGATACAGAAGAAGTTTATTGGATGAGGAATCAAAGCAAGA -AATTTCACCTAAAAATATTTTGATGATTGGACCAACCGGTGTTGGTAAAACTGAAATTGCAAGAAGAATG -GCCAAAGTTGTCGGCGCACCATTTATAAAAGTAGAAGCTACTAAATTTACTGAAGTAGGTTATGTAGGAC -GAGATGTTGAAAGTATGGTTAGAGATCTTGTTGATGTTTCAGTAAGATTAGTCAAGGCGCAGAAAAAATC -ATTGGTACAAGATGAAGCAACAGCTAAGGCCAATGAAAAACTTGTTAAGTTATTAGTTCCAAGTATGAAA -AAGAAAGCGTCTCAAACGAATAATCCTTTAGAGTCACTTTTCGGAGGTGCAATTCCAAATTTCGGACAAA -ATAACGAAGATGAAGAAGAACCACCTACTGAGGAAATTAAAACAAAACGTTCTGAAATTAAGAGACAATT -AGAAGAAGGAAAACTTGAAAAAGAAAAGGTAAGAATTAAAGTCGAACAAGATCCTGGTGCTTTAGGTATG -CTAGGTACAAATCAAAATCAGCAAATGCAAGAGATGATGAATCAATTAATGCCTAAAAAGAAAGTTGAGC -GAGAAGTTGCTGTTGAGACGGCAAGGAAAATCTTAGCTGATAGTTATGCGGATGAACTAATTGATCAAGA -AAGCGCTAACCAAGAAGCACTTGAATTAGCAGAACAAATGGGTATCATCTTTATAGATGAAATCGACAAA -GTTGCGACGAATAATCATAATAGTGGTCAAGATGTCTCAAGACAAGGTGTGCAAAGAGATATTTTACCTA -TACTTGAAGGTAGCGTTATTCAAACCAAATATGGTACTGTGAATACTGAACATATGCTGTTTATAGGTGC -TGGAGCTTTCCATGTATCTAAGCCGAGTGACTTGATACCAGAATTGCAAGGTCGTTTTCCGATTAGAGTT -GAACTTGATAGTTTAGCGGTAGAAGATTTTGTAAGAATTTTGACAGAACCAAAATTGTCATTAATTAAAC -AATATGAAGCATTGCTTCAAACAGAAGAAGTTACTGTAAACTTTACCGATGAAGCAATTACTCGTTTAGC -TGAGATTGCTTATCAAGTAAATCAAGATACAGACAACATTGGTGCACGTCGACTTCATACAATTTTAGAA -AAGATGTTAGAAGATTTATCATTCGAAGCACCAAGTATGCCGAATGCAGTTGTAGATATTACCCCACAAT -ATGTTGATGATAAATTAAAATCAATTTCAACAAATAAAGATTTAAGTGCATTTATTCTATAAAAATATAC -AAAAGGAGAAAAATTCATGAGCTTATTATCTAAAACGAGAGAGTTAAACACGTTACTTCAAAAACACAAA -GGTATTGCGGTTGATTTTAAAGATGTAGCACAAACGATTAGTAGCGTAACTGTAACAAATGTATTTATTG -TATCGCGTCGAGGTAAAATTTTAGGATCGAGTCTAAATGAATTATTAAAAAGTCAAAGAATTATTCAAAT -GTTGGAAGAAAGACATATTCCAAGTGAATATACAGAACGATTAATGGAAGTTAAACAAACAGAATCAAAT -ATTGATATCGACAATGTATTAACAGTTTTCCCACCTGAAAACAGAGAATTATTCATAGATAGTCGTACAA -CTATCTTCCCAATTTTAGGCGGAGGAGAAAGATTAGGTACATTAGTACTTGGTCGAGTACACGATGACTT -TAATGAAAATGATTTGGTACTAGGTGAATATGCTGCTACAGTTATTGGTATGGAAATCTTACGTGAGAAG -CATAGTGAAGTAGAAAAAGAAGCGCGCGATAAAGCTGCTATTACAATGGCAATTAATTCATTATCTTATT -CTGAAAAAGAAGCAATTGAACATATCTTTGAAGAACTTGGCGGTACAGAAGGCCTATTAATCGCATCAAA -AGTTGCAGATAGAGTTGGTATTACTAGATCTGTAATTGTAAATGCACTACGTAAATTAGAAAGTGCTGGT -GTAATTGAATCACGTTCTTTAGGAATGAAAGGTACTTTCATTAAAGTTAAAAAAGAAAAATTCTTAGATG -AATTAGAAAAAAGTAAGTAAAACGATGAGTCTGGGACATAATTCAATGTCCTAGTCGTAACGATGTTATC -TTGGCAGTAGTCAACGAAATGACTTTGATGATTATGTTGAAGTCATTTCTTTATTTTTGTCTAATTTTCA -ATCAAATTGATATTCCGCATTAACATGATAGAATTACCTTTAAATTTATGAAAAAATGCTTGAAAAACAT -TTGCTTTAGACACGGCATTATGTTATATTTATTTTCGGCTATAAAGCCAATACACACATATCAAACGTGA -TTGTGTAAAGGGTGCAATATTTGTATATTGTCTTTACAATAGTTTGCTATGGAGGTAATTAACCAATAGG -AGGAATTTATAATGGCAGTAATTTCAATGAAACAATTACTAGAAGCGGGTGTTCACTTCGGTCACCAAAC -ACGTCGTTGGAACCCAAAAATGAAAAAATATATCTTCACTGAGAGAAATGGTATTTATATCATCGACTTA -CAAAAAACAGTGAAAAAAGTAGACGAGGCATACAACTTCTTGAAACAAGTTTCAGAAGATGGTGGACAAG -TCTTATTCGTAGGAACTAAAAAACAAGCACAAGAATCAGTTAAATCTGAAGCAGAACGTGCTGGTCAATT -CTACATTAACCAAAGATGGTTAGGTGGATTATTAACTAACTATAAAACGATCTCAAAACGAATCAAACGT -ATTTCTGAAATTGAAAAAATGGAAGAAGATGGTTTATTCGAAGTATTACCTAAAAAAGAAGTAGTAGAAC -TTAAAAAAGAATACGACCGTTTAATCAAATTCTTAGGCGGAATTCGTGATATGAAATCAATGCCTCAAGC -ATTATTCGTAGTTGACCCACGTAAAGAGCGTAATGCAATTGCTGAAGCTCGTAAATTAAATATTCCTATC -GTAGGTATCGTTGACACTAACTGTGATCCTGACGAAATTGACTACGTTATCCCAGCAAACGACGATGCTA -TCCGTGCGGTTAAATTATTAACTGCTAAAATGGCAGATGCAATCTTAGAAGGTCAACAAGGCGTTTCTAA -TGAAGAAGTAGCTGCAGAACAAAACATCGATTTAGATGAAAAAGAAAAATCAGAAGAAACAGAAGCAACT -GAAGAATAATCAACTGTTGAATCTGACTTAGATATAGTTTAAATGGGTGATAAGATATTAATGCTTATCA -CCTTTTTTAAAAAGAAAATCAAGGCAAATTACAAATATTCAATTAGAGTATTGGCAATCTTGCCTATAAT -AATGCTAAAATTATAATATATAAAATGATAACTTATTGGAGGAATAATGAATGGCAACTATTTCAGCAAA -ACTTGTTAAAGAATTACGTGAAAAAACTGGCGCGGGTATGATGGATTGTAAAAAAGCGCTAACTGAAACT -GATGGTGACATCGATAAAGCGATTGATTACCTACGTGAAAAAGGTATTGCTAAAGCAGCTAAAAAAGCAG -ACCGTATTGCGGCTGAAGGTTTAGTACATGTAGAAACTAAAGGTAACGACGCAGTTATCGTTGAAATCAA -CTCTGAAACAGACTTTGTTGCTCGTAACGAAGGTTTCCAAGAGTTAGTTAAAGAAATCGCTAATCAAGTA -TTAGATACAAAAGCTGAAACTGTTGAAGCTTTAATGGAAACAACTTTACCAAATGGTAAATCAGTTGATG -AAAGAATTAAAGAAGCAATTTCAACAATCGGTGAAAAATTAAGTGTTCGTCGTTTTGCTATCAGAACTAA -AACTGATAACGATGCTTTCGGCGCTTACTTACACATGGGTGGACGCATTGGTGTATTAACAGTTGTTGAA -GGTTCAACTGACGAAGAAGCAGCAAGAGACGTTGCTATGCATATCGCTGCAATCAACCCTAAATATGTTT -CTTCTGAACAAGTTAGCGAAGAAGAAATCAACCACGAAAGAGAAGTTTTAAAACAACAAGCATTAAATGA -AGGTAAACCAGAAAACATCGTTGAAAAAATGGTGGAAGGACGTTTACGTAAATACTTACAAGAAATTTGT -GCTGTAGATCAAGACTTCGTTAAAAACCCTGATGTAACAGTTGAAGCTTTCTTAAAAACAAAAGGTGGAA -AACTTGTTGACTTCGTACGCTATGAAGTAGGCGAAGGTATGGAAAAACGCGAAGAAAACTTTGCGGATGA -AGTTAAAGGACAAATGAAATAATCTGTCATAAAGTAAAACAAGGAAGAAGACACCTTTAATGTTGCTTTA -TTAAAATGTAAATCATTCTAATAAAACGACAACTGTGTCTTCTTTACTTGTATATGTTACATATATTCAC -GATAGAGAGGATAAGAAAATGGCTCAAATTTCTAAATATAAACGTGTAGTTTTGAAACTAAGTGGTGAAG -CGTTAGCTGGAGAAAAAGGATTTGGCATAAATCCAGTAATTATTAAAAGTGTTGCTGAGCAAGTGGCTGA -AGTTGCTAAAATGGACTGTGAAATCGCAGTAATCGTTGGTGGCGGAAACATTTGGAGAGGTAAAACAGGT -AGTGACTTAGGTATGGACCGTGGAACTGCTGATTACATGGGTATGCTTGCAACTGTAATGAATGCCTTAG -CATTACAAGATAGTTTAGAACAATTGGATTGTGATACACGAGTATTAACATCTATTGAAATGAAGCAAGT -GGCTGAACCTTATATTCGTCGTCGTGCAATTAGACACTTAGAAAAGAAACGTGTAGTTATTTTTGCTGCA -GGTATTGGAAACCCATACTTCTCTACAGATACTACAGCGGCATTACGTGCTGCAGAAGTTGAAGCAGATG -TTATTTTAATGGGCAAAAATAATGTAGATGGTGTATATTCTGCAGATCCTAAAGTAAACAAAGATGCGGT -TAAATATGAACATTTAACGCATATTCAAATGCTTCAAGAAGGTTTACAAGTAATGGATTCAACAGCATCC -TCATTCTGTATGGATAATAACATTCCGTTAACTGTTTTCTCTATTATGGAAGAAGGAAATATTAAACGTG -CTGTTATGGGTGAAAAGATAGGTACGTTAATTACAAAATAAATTTAGAGGTGTAAAATAATGAGTGACAT -TATTAATGAAACTAAATCAAGAATGCAAAAATCAATCGAAAGCTTATCACGTGAATTAGCGAACATCAGT -GCAGGAAGAGCTAATTCAAATTTATTAAATGGCGTAACAGTTGATTACTATGGTGCACCAACACCTGTAC -AACAATTAGCAAGCATCAATGTTCCAGAAGCACGTTTACTTGTTATTTCTCCATACGACAAAACTTCTGT -AGCTGACATCGAAAAAGCGATAATAGCAGCTAACTTAGGTGTCAACCCAACAAGTGATGGTGAAGTGATA -CGTATTGCTGTACCTGCCTTAACAGAAGAACGTAGAAAAGAGCGCGTTAAAGATGTTAAGAAAATTGGTG -AAGAAGCTAAAGTATCTGTTCGAAATATTCGTCGTGATATGAATGATCAGTTGAAAAAAGATGAAAAAAA -TGGCGACATTACTGAAGATGAGTTGAGAAGTGGTACTGAAGATGTTCAGAAAGCAACAGACAATTCAATA -AAAGAAATTGATCAAATGATTGCTGATAAAGAAAAAGATATTATGTCAGTATAAAACTAATATACAATGA -CATATTAAAATGCCAGTATTAAACGATAATGTAACATTTAAAATGGGCATGTTTAATTAAATCAAAGATG -CATGTGATAATTTAAATTCACAATGAGCATAAAAATGGTGTTTAAACAAGTTAATTAAACATATACTTTA -TAAATAATAGGCATTAGGTATATTGATATAATAAAGTTATGTAATTTTTAACCTCAGTATGTATGTCACA -TTTCTGGTGTAAACTGTACCGAGTCAGACTTTGGTACAGTTTTTTTATTTGCTTATTCAATGCATTAAAT -GAGTATGATAAAATGATAATGATTGTTTAGTAACTTATACTATATGACAGAGATGATCAGGCTCGGAGGA -AAGACCATGTTTAAAAAGCTAATAAATAAAAAGAACACTATAAATAATTATAATGAAGAATTAGACTCGT -CTAATATACCTGAACATATCGCTATTATTATGGATGGTAATGGGCGATGGGCTAAGAAGCGAAAAATGCC -TAGAATTAAAGGTCATTACGAAGGTATGCAAACAATAAAAAAAATTACTAGGGTAGCTAGTGATATTGGT -GTTAAGTACTTAACTTTATATGCCTTTTCCACTGAAAATTGGTCAAGACCTGAAAGTGAAGTAAATTATA -TTATGAATTTGCCTGTCAATTTCTTAAAGACATTTTTACCGGAACTAATTGAAAAAAATGTCAAAGTTGA -AACAATTGGATTTACTGATAAGTTGCCAAAATCAACGATAGAAGCAATAAATAATGCTAAAGAAAAGACA -GCTAATAATACCGGCTTAAAATTAATATTTGCAATTAATTATGGTGGCAGAGCAGAACTTGTTCATAGTA -TTAAAAATATGTTTGACGAGCTTCATCAACAAGGTTTGAATAGTGATATCATAGATGAAACATATATAAA -CAATCATTTAATGACAAAAGACTATCCTGATCCAGAGTTGTTAATTCGTACTTCAGGAGAACAAAGAATA -AGTAATTTCTTGATTTGGCAAGTTTCGTATAGTGAATTTATCTTTAATCAAAAATTATGGCCTGACTTTG -ACGAAGATGAATTAATTAAATGTATTAAAATTTATCAGTCACGTCAAAGACGCTTTGGCGGATTGAGTGA -GGAGTAGTATAGTATGAAAGTTAGAACGCTGACAGCTATTATTGCCTTAATCGTATTCTTGCCTATCTTG -TTAAAAGGCGGCCTTGTGTTAATGATATTTGCTAATATATTAGCATTGATTGCATTAAAAGAATTGTTGA -ATATGAATATGATTAAATTTGTTTCAGTTCCTGGTTTAATTAGTGCAGTTGGTCTTATCATCATTATGTT -GCCACAACATGCAGGGCCATGGGTACAAGTAATTCAATTAAAAAGTTTAATTGCAATGAGCTTTATTGTA -TTAAGTTATACTGTCTTATCTAAAAACAGATTTAGTTTTATGGATGCTGCATTTTGCTTAATGTCTGTGG -CTTATGTAGGCATTGGTTTTATGTTCTTTTATGAAACGAGATCAGAAGGATTACATTACATATTATATGC -CTTTTTAATTGTTTGGCTTACAGATACAGGGGCTTACTTATTTGGTAAAATGATGGGTAAACATAAGCTT -TGGCCAGTAATAAGTCCGAATAAAACAATCGAAGGATTCATAGGTGGCTTGTTCTGTAGTTTGATAGTGC -CTCTTGCAATGTTATATTTTGTAGATTTCAATATGAATGTATGGATATTACTTGGAGTGACATTGATTTT -AAGTTTATTTGGTCAATTAGGTGATTTAGTGGAATCAGGATTTAAGCGTCATTTCGGCGTTAAAGACTCA -GGTCGAATACTACCTGGACACGGTGGTATTTTAGACCGATTTGACAGTTTTATGTTTGTGTTACCATTAT -TAAATATTTTATTAATACAATCTTAATGCTGAGAACAAATCAATAAACGTAAAGAGGAGTTGCTGAGATA -ATTTAATGAATCTCAGAACTCCTTTTGAAAATTATACGCAATATTAACTTTGAAAATTAGACGTTATATT -TTGTGATTTGTCAGTATCATATTATAATGACTTATGTTACGTATACAGCAATCATTTTTAAAATAAAAGA -AATTTATAAACAATCGAGGTGTAGCGAGTGAGCTATTTAGTTACAATAATTGCATTTATTATTGTTTTTG -GTGTACTAGTAACTGTTCATGAATATGGCCATATGTTTTTTGCGAAAAGAGCAGGCATTATGTGTCCAGA -ATTTGCGATCGGTATGGGGCCGAAAATTTTTAGTTTTAGAAAAAATGAAACACTTTACACTATTAGGTTA -TTGCCTGTTGGTGGATATGTTCGTATGGCAGGAGATGGCTTAGAAGAGCCACCAGTCGAGCCTGGTATGA -ACGTTAAAATTAAACTGAATGAAGAAAATGAAATAACACATATCATATTAGATGATCATCATAAGTTTCA -ACAAATTGAAGCGATCGAAGTTAAAAAATGTGATTTTAAAGATGACTTATTCATAGAAGGTATCACTGCT -TATGATAATGAAAGACATCATTTTAAAATTGCTAGAAAGTCTTTCTTTGTTGAAAATGGTAGCTTAGTTC -AAATTGCTCCGAGAGACAGACAATTTGCACATAAAAAGCCATGGCCGAAATTTTTAACATTATTTGCGGG -ACCGTTATTTAACTTTATATTAGCTTTAGTTCTATTTATTGGTCTTGCATATTATCAAGGTACACCTACT -TCTACTGTAGAACAAGTCGCAGATAAGTATCCAGCTCAACAAGCAGGCATACAAAAAGGCGATAAAATTG -TCCAAATTGGCAAATATAAAATATCTGAATTTGATGATGTTGATAAGGCGTTAGATAAAGTTAAAGATAA -TAAGACGACTGTTAAATTTGAACGTGATGGTAAAACAAAGTCAGTTGAATTAACACCTAAAAAGACCGAA -AGAAAACTGACTAAAGTAAGTTCAGAGACGAAGTATGTTCTCGGATTCCAACCAGCGAGTGAACATACAC -TCTTCAAACCAATTGTATATGGATTTAAAAGCTTTTTAATCGGTAGTACTTATATTTTTTCAGCTGTAGT -AGGTATGTTGGCTAGTATATTTACGGGCGGATTCTCGTTTGATATGTTAAATGGTCCGGTTGGTATTTAT -CATAACGTCGACTCAGTTGTTAAAGCGGGTATCATTAGCTTAATTGGATACACTGCGTTATTAAGTGTAA -ACTTAGGTATTATGAATTTAATTCCTATTCCTGCACTAGACGGTGGTCGTATTTTATTTGTTATATATGA -AGCGATTTTCAGAAAACCAGTTAATAAAAAAGCGGAAACAACGATTATCGCTATTGGTGCCATTTTCATG -GTCGTTATTATGATATTAGTAACGTGGAATGATATTCGACGATATTTCTTATAATTTAGGAGGATAAATA -ATTATGAAGCAATCCAAAGTTTTTATACCAACGATGCGTGACGTGCCATCAGAAGCAGAAGCACAAAGTC -ATCGTTTATTATTGAAAGCGGGTTTGATAAAACAAAGTACAAGTGGGATTTATAGTTATTTACCGCTAGC -AACACGTGTGTTAAATAATATTACTGCAATTGTGCGACAAGAAATGGAACGTATCGATTCTGTTGAAATT -TTAATGCCAGCGTTACAACAAGCTGAATTATGGGAAGAATCAGGACGTTGGGGTGCATATGGCCCAGAAT -TAATGCGTTTACAAGATAGACATGGAAGACAATTTGCATTAGGTCCAACACATGAAGAATTAGTTACATC -AATAGTAAGAAATGAATTGAAATCATACAAACAATTACCGATGACATTATTCCAAATTCAATCTAAATTC -CGTGATGAAAAGAGACCACGTTTTGGTTTACTTCGTGGTCGTGAATTTATTATGAAAGATGCGTATTCAT -TCCATGCTGACGAGGCATCATTAGATCAAACGTATCAAGATATGTATCAAGCGTATAGCCGTATTTTTGA -GAGAGTTGGCATTAACGCAAGACCAGTAGTTGCAGATTCAGGTGCTATTGGCGGTAGCCATACACATGAA -TTTATGGCATTAAGTGCTATCGGTGAGGATACAATCGTTTACAGTAAAGAAAGTGACTATGCTGCTAACA -TCGAAAAAGCAGAAGTCGTTTACGAACCAAATCATAAGCATACTACTGTGCAACCTATAGAAAAAATTGA -AACACCAAATGTTAAGACTGCGCAAGAATTGGCAGACTTCTTAGGTAGACCAGTAGATGAAATCGTTAAA -ACGATGATTTTCAAAGTTGATGGCGAATATATTATGGTTTTAGTGCGTGGACATCATGAAATTAATGACA -TTAAATTAAAATCTTATTTCGGCACAGATAATATTGAATTAGCAACACAAGACGAAATTGTTAATTTAGT -TGGTGCAAATCCTGGTTCACTAGGTCCTGTAATTGATAAAGAGATCAAAATTTATGCAGATAATTTTGTG -CAAGATTTAAATAATTTAGTTGTCGGGGCTAACGAAGATGGTTATCACTTAATTAATGTAAATGTAGGTA -GAGACTTCAACGTTGATGAATATGGCGATTTCCGTTTTATTTTAGAAGGCGAAAAGTTAAGTGATGGTTC -AGGCGTTGCACATTTTGCTGAAGGAATTGAAGTTGGTCAAGTATTCAAATTGGGTACTAAGTATTCAGAA -TCAATGAATGCTACATTCTTAGATAATCAAGGAAAAGCCCAACCGTTAATTATGGGTTGTTACGGTATTG -GAATTTCTAGAACGCTAAGTGCGATTGTTGAACAAAATCACGATGATAATGGTATTGTTTGGCCTAAATC -AGTTACTCCATTTGATTTACATTTAATTTCTATTAATCCTAAGAAAGATGATCAACGAGAACTAGCGGAT -GCACTATATGCTGAATTTAATACTAAATTTGATGTGTTGTACGATGATCGTCAGGAACGTGCTGGTGTCA -AATTTAATGATGCCGATTTAATTGGTTTACCACTGCGAATTGTTGTTGGTAAACGTGCATCGGAAGGTAT -TGTAGAAGTTAAAGAACGTTTAACAGGTGATAGCGAAGAAGTCCACATTGATGACTTAATGACTGTCATT -ACAAATAAATATGATAATTTAAAATAATTAAGATCGAATGAATTATAAGAGTAGGAAAAAGCTGAAAGAA -ATCAGATGATTATGTCCTGCTCTTATTATTTTTGATATAATGATTATTCGATGAAAAATGACTGAAGACA -TAGTATAATTAAAGATAAATTTGTTTTAACAATATTATGATTAGCCAAATATAAAGCATTTAATTTTCTA -TCATTACTATGCTCACATAATCTAAATATTGTTCGAACACGTAAAAGTAATTTCTATTTAAGGTGGTAAT -TGTCTTGGCAATGACAGAGCAACAAAAATTTAAAGTGCTTGCTGATCAAATTAAAATTTCAAATCAATTA -GATGCTGAAATTTTAAATTCAGGTGAACTGACACGTATAGATGTTTCTAACAAAAACAGAACATGGGAAT -TTCATATTACATTACCACAATTCTTAGCTCATGAAGATTATTTATTATTTATAAATGCAATAGAGCAAGA -GTTTAAAGATATCGCCAACGTTACATGTCGTTTTACGGTAACGAATGGCACGAATCAAGATGAACATGCA -ATTAAATACTTTGGGCACTGTATTGACCAAACAGCTTTATCTCCAAAAGTTAAAGGTCAATTGAAACAGA -AAAAGCTTATTATGTCTGGAAAAGTATTAAAAGTAATGGTATCAAATGACATTGAACGTAATCATTTTGA -TAAGGCATGCAATGGAAGTCTTATCAAAGCGTTTAGAAATTGTGGTTTTGATATCGATAAAATCATATTC -GAAACAAATGATAATGATCAAGAACAAAACTTAGCTTCTTTAGAAGCACATATTCAAGAAGAAGACGAAC -AAAGTGCACGATTGGCAACAGAGAAACTTGAAAAAATGAAAGCTGAAAAATCGAAACAACAAGATAACAA -CGAAAGTGCTGTCGATAAGTGTCAAATTGGTAAGCCGATTCAAATTGAAAATATTAAACCAATTGAATCT -ATTATTGAGGAAGAGTATAAAGTTGCAATAGAGGGTGTCATTTTTGATATTAACTTAAAAGAACTTAAAA -GTGGTCGTCATATCGTAGAAATTAAAGTGACTGACTATACGGACTCTTTAGTTTTAAAAATGTTTACTCG -TAAAAACAAAGATGATTTAGAACATTTTAAAGCGCTAAGTGTTGGTAAATGGGTTAGGGCTCAAGGTCGT -ATTGAAGAAGATACATTTATTAGAGATTTAGTTATGATGATGTCTGATATTGAAGAGATTAAAAAAGCGA -CAAAAAAAGATAAGGCTGAAGAAAAACGTGTAGAATTCCACTTACATACTGCAATGAGTCAAATGGATGG -TATACCAAATATTGGTGCGTATGTTAAACAGGCAGCAGACTGGGGACATCCAGCCATTGCGGTTACAGAC -CATAATGTTGTGCAAGCATTTCCAGATGCTCACGCAGCAGCGGAAAAACATGGTATTAAAATGATATATG -GTATGGAAGGTATGTTAGTTGATGATGGTGTTCCGATTGCATACAAACCACAAGATGTCGTATTAAAAGA -TGCTACTTATGTTGTATTCGACGTCGAGACAACTGGTTTATCAAATCAGTATGATAAAATCATCGAGCTT -GCAGCTGTGAAAGTTCATAACGGCGAAATCATCGATAAGTTTGAAAGGTTTAGTAATCCGCATGAACGAT -TATCGGAAACGATTATCAATTTGACGCATATTACTGATGATATGTTAGTAGATGCCCCTGAGATTGAAGA -AGTACTTACAGAATTTAAAGAATGGGTTGGCGATGCGATATTCGTAGCACATAATGCTTCGTTTGATATG -GGCTTCATCGACACGGGATATGAACGTCTTGGATTTGGACCATCTACGAATGGTGTTATCGATACATTAG -AATTATCTCGTACGATTAATACTGAATATGGTAAACATGGTTTAAATTTCTTAGCTAAAAAATACGGTGT -AGAATTAACGCAACATCACCGTGCCATTTATGATACAGAGGCAACAGCTTACATTTTCATAAAAATGGTT -CAACAAATGAAAGAATTAGGCGTATTAAATCATAACGAAATTAACAAAAAACTCAGTAATGAAGATGCAT -ATAAACGTGCAAGACCTAGTCATGTCACATTAATTGTACAAAATCAACAAGGTCTTAAAAATCTATTTAA -AATTGTAAGTGCATCATTGGTGAAGTATTTCTACCGTACGCCTCGAATTCCACGTTCATTGTTAGATGAA -TATCGTGAGGGATTATTGGTAGGTACAGCGTGTGATGAAGGTGAATTATTTACGGCAGTTATGCAGAAGG -ACCAGAGCCAAGTTGAAAAAATTGCCAAATATTATGATTTTATTGAAATTCAACCACCGGCACTTTATCA -AGATTTAATTGATAGAGAGCTTATTAGAGATACTGAAACATTACATGAAATTTATCAACGTTTAATTCAT -GCAGGTGACACAGCGGGTATTCCTGTTATTGCGACAGGAAATGCACACTATTTGTTTGAACATGATGGCA -TCGCACGTAAAATTTTAATAGCATCACAACCCGGCAATCCACTTAATCGCTCAACTTTACCGGAAGCACA -TTTTAGAACTACAGATGAAATGTTAAACGAGTTTCATTTTTTAGGTGAAGAAAAAGCGCATGAAATTGTT -GTGAAAAATACAAACGAATTAGCAGATCGAATTGAACGTGTTGTTCCTATTAAAGATGAATTATACACAC -CGCGTATGGAAGGTGCTAACGAAGAAATTAGAGAACTAAGTTATGCAAATGCGCGTAAACTGTATGGTGA -AGATCTGCCTCAAATCGTAATTGATCGATTAGAAAAAGAATTAAAAAGTATTATCGGTAATGGATTTGCG -GTAATTTACTTAATTTCGCAACGTTTAGTTAAAAAATCATTAGATGATGGATACTTAGTTGGTTCCCGTG -GTTCAGTAGGTTCTAGTTTTGTGGCGACAATGACTGAGATTACTGAAGTAAACCCGTTACCGCCACACTA -TATATGTCCGAACTGTAAAACGAGTGAATTTTTCAATGATGGTTCAGTAGGATCAGGATTCGATTTACCT -GATAAGACGTGTGAAACTTGTGGAGCGCCACTTATTAAAGAAGGACAAGATATTCCGTTTGAAACATTTT -TAGGATTTAAAGGAGATAAAGTTCCTGATATCGACTTAAACTTTAGTGGTGAATATCAACCAAATGCCCA -TAACTACACAAAAGTATTATTTGGTGAGGATAAAGTATTCCGTGCAGGTACAATTGGTACTGTTGCTGAA -AAGACTGCTTTTGGTTATGTTAAAGGCTATTTGAATGATCAAGGCATCCACAAAAGAGGTGCTGAAATAG -ATCGACTCGTTAAAGGATGTACAGGTGTTAAACGTACAACTGGACAGCATCCAGGGGGTATTATTGTAGT -ACCTGATTACATGGATATTTATGATTTTACGCCGATACAATATCCTGCCGATGATCAAAATTCAGCATGG -ATGACGACACATTTTGATTTCCATTCTATTCATGATAATGTATTAAAACTTGATATACTTGGACACGATG -ATCCAACAATGATTCGTATGCTTCAAGATTTATCAGGGATTGATCCAAAAACAATACCTGTAGATGATAA -AGAAGTTATGCAGATTTTTAGTACACCTGAAAGTTTGGGTGTTACTGAAGATGAAATTTTATGTAAAACA -GGTACATTTGGGGTACCAGAATTCGGTACAGGATTCGTGCGTCAAATGTTAGAAGATACAAAGCCAACAA -CATTTTCAGAATTAGTTCAAATCTCAGGATTATCTCATGGGACAGATGTGTGGTTAGGTAATGCTCAAGA -ATTAATTAAAACAGGTATATGTGATTTATCAAGTGTAATTGGTTGTCGTGACGATATCATGGTTTATTTA -ATGTATGCTGGTCTAGAACCATCAATGGCTTTTAAAATAATGGAGTCAGTACGTAAAGGTAAAGGTTTAA -CTGAAGAAATGATTGAAACGATGAAAGAAAATGAAGTGCCGGATTGGTATTTAGATTCATGTCTTAAAAT -TAAGTACATGTTCCCTAAAGCCCATGCAGCAGCATACGTTTTAATGGCAGTACGTATCGCATATTTCAAA -GTACATCATCCACTTTATTACTATGCATCTTACTTTACAATTCGTGCGTCAGATTTTGATTTAATCACGA -TGATTAAAGATAAAACAAGCATACGAAATACTGTAAAAGACATGTATTCTCGCTATATGGATCTAGGTAA -AAAAGAAAAAGACGTATTAACTGTCTTGGAAATTATGAATGAAATGGCGCATCGGGGTTATCGAATGCAA -CCGATTAGTTTAGAAAAGAGTCAAGCGTTCGAATTTATCATTGAAGGCGAAACACTTATTCCGCCGTTCA -TATCAGTGCCTGGGCTTGGCGAAAACGTTGCGAAACGAATTGTTGAAGCTCGTGACGATGGACCATTTTT -ATCAAAAGAAGATTTAAACAAAAAAGCTGGATTATCTCAGAAAATTATTGAGTATTTAGATGAGTTAGGC -TCATTACCGAATTTACCAGATAAAGCTCAACTTTCGATATTCGATATGTAAAATGAAATAATCAAGGTAT -TTATTTAATTCGTATGGCGTAGTTAAAGAAATACAAAATTGTTGCTGGACACAAAGTTATACCTGTATTT -CTTTTCAACGTCTTACGAGTCTATTCGAATGTAATGATGAAATAAATGAACAAACTTTTACAAGAATCTC -TGATTAATAGTGAAGTCATTTGTTTCAAGCATAAACTTATGCTATAATTAAGTTGCTTAAAAATTAGTGA -ACTCAGGCAGAAGAGTGGGAGATTCCCGCTCTTTTCTATTTGCCAAAAAGGGAGGCCTGTATGAGTAAAA -TTACAGAACAAGTAGAAGTGATTGTTAAACCAATTATGGAAGACTTGAATTTTGAACTTGTAGACGTTGA -ATATGTCAAAGAGGGTAGAGATCATTTTCTTAGAATCTCTATTGATAAAGAAGGTGGCGTAGATTTAAAT -GATTGTACGCTAGCTTCTGAAAAAATAAGTGAAGCTATGGATGCAAATGATCCTATTCCTGAAATGTATT -ATTTAGACGTAGCGTCACCTGGTGCAGAACGTCCAATTAAAAAAGAACAAGATTTCCAAAATGCAATAAC -TAAACCTGTATTTGTTTCTTTATATGTACCAATTGAAGGTGAAAAGGAATGGTTAGGCATTTTACAAGAA -GTCAATAATGAAACAATTGTAGTACAAGTTAAAATCAAAGCAAGAACGAAAGATATAGAGATACCGAGAG -ACAAAATAGCAAAAGCACGTCACGCAGTTATGATTTAACGTGATGAGGAGGAAAAAACGTGTCAAGTAAT -GAATTATTATTAGCTACTGAGTATTTAGAAAAAGAAAAGAAGATTCCTAGAGCAGTATTAATTGATGCTA -TTGAAGCAGCTTTAATTACTGCATACAAAAAGAATTATGATAGTGCAAGAAATGTCCGTGTGGAATTAAA -TATGGATCAAGGTACTTTCAAAGTTATCGCTCGTAAAGATGTTGTTGAAGAAGTATTTGACGACAGAGAT -GAAGTGGATTTAAGTACAGCGCTTGTTAAAAACCCTGCATATGAAATTGGTGATATATACGAAGAAGATG -TAACACCTAAAGATTTTGGTCGTGTAGGTGCTCAAGCAGCGAAACAAGCAGTAATGCAACGTCTTCGTGA -TGCTGAACGTGAAATTTTATTTGAAGAATTTATAGACAAAGAAGAAGACATACTTACTGGAATTATTGAC -CGTGTTGACCATCGTTATGTATATGTGAATTTAGGTCGTATTGAAGCTGTTTTATCTGAAGCAGAAAGAA -GTCCTAACGAAAAATATATTCCTAACGAACGTATCAAAGTATATGTTAACAAAGTGGAACAAACGACAAA -AGGTCCTCAAATCTATGTTTCTCGTAGCCATCCAGGTTTATTAAAACGTTTATTTGAACAAGAAGTTCCA -GAAATTTACGATGGTACTGTAATTGTTAAATCAGTAGCACGTGAAGCTGGCGATCGCTCTAAAATTAGTG -TCTTCTCTGAAAACAATGATATAGATGCTGTTGGTGCATGTGTTGGTGCCAAAGGCGCGCGTGTTGAAGC -TGTTGTTGAAGAGCTAGGTGGCGAAAAAATCGATATCGTTCAATGGAATGAAGATCCAAAAGTATTTGTA -AAAAATGCTTTAAGCCCTTCTCAAGTGTTAGAAGTTATTGTTGATGAAACAAATCAATCTACAGTAGTTG -TTGTTCCTGATTATCAATTGTCATTAGCGATTGGTAAAAGAGGACAAAACGCACGTCTAGCTGCTAAATT -AACCGGCTGGAAAATTGATATTAAATCAGAAACAGATGCGCGTGAAGCGGGTATCTATCCAGTAGTTGAA -GCTGAAAAAGTAACTGAAGAAGATGTTGCTTTAGAAGATGCTGACACAACAGAATCAACCGAAGAGGTAA -CTGATGTTTCAGTTGAAACAAATGTAGAGAAAGAATCTGAATAATAGGTTGGAGTGAAGTATCTATGAAA -AAGAAAAAAATTCCGATGCGAAAATGTATTCTTTCAAATGAAATGCATCCCAAAAAAGATATGATTCGTG -TTGTTGTTAATAAAGAAGGCGAAATCTTTGCGGATGTTACTGGAAAGAAACAAGGCCGTGGCGCGTATGT -TTCTAAAGATGTTGCTATGGTTGAAAAAGCACAACAAAAAGAAATTTTAGAAAAATATTTTAAAGCATCT -AAAGAGCAATTGGATCCGGTTTACAAAGAAATTATTAGATTAATTTATAGAGAAGAGATCCCAAAATGAG -TATAGATCAAATATTAAACTTTTTAGGATTAGCAATGAGAGCCGGTAAAGTAAAAACAGGTGAATCAGTC -ATTGTTAATGAAATTAAAAAAGGAAATTTGAAGCTCGTTATTGTTGCAAATGATGCGTCTAATAATACAG -CTAAATTAATTACAGATAAATGTAAGAGTTACAAAGTTCCATTCAGAAAGTTTGGAAATCGAAATGAATT -GGGAATAGCACTTGGAAAAGGTGAGCGTGTTAATGTAGGGATTACTGACCCAGGCTTTGCTAAAAAGTTG -CTATCAATGATAGATGAATATCATAAGGAGTGATTATATGAGTAAACAAAGAATTTACGAATATGCGAAA -GAATTAAATCTAAAGAGTAAAGAGATTATAGATGAGTTAAAAAGCATGAATATTGAGGTTTCAAATCATA -TGCAAGCTTTGGAAGATGACCAAATTAAAGCATTAGATAAAAAGTTCAAAAAAGAACAAAAGAACGACAA -TAAACAAAGCACTCAAAATAATCACCAAAAATCAAACAATCAAAATCAAAATAAAGGGCAACAAAAAGAT -AACAAAAAGAATCAACAACAAAATAATAAAGGCAACAAAGGCAATAAAAAGAATAATAGAAATAATAAGA -AAAATAACAAGAATAATAAACCACAAAGTCAACCAGCTGCTCCAAAAGAAATACCATCAAAAGTGACATA -TCAAGAAGGTATTACAGTAGGCGAATTTGCGGATAAATTAAATGTTGAATCATCAGAAATTATCAAAAAA -TTATTCTTACTTGGTATTGTTGCTAATATCAATCAATCATTAAATCAAGAAACAATCGAATTAATTGCCG -ATGATTATGGCGTTGAGGTTGAAGAAGAAGTTGTGATTAATGAAGAAGATTTATCAATCTACTTCGAAGA -CGAAAAAGATGATCCAGAAGCAATTGAGAGACCAGCTGTTGTAACAATTATGGGACATGTTGACCATGGT -AAAACTACTTTATTAGATTCAATTCGTCATACAAAAGTTACAGCAGGTGAAGCAGGCGGAATCACTCAAC -ATATTGGTGCATATCAAATTGAAAACGATGGCAAAAAAATCACTTTCTTAGATACACCGGGACATGCTGC -ATTTACAACGATGCGTGCGCGTGGTGCACAAGTAACAGATATTACAATTTTAGTAGTAGCAGCTGACGAT -GGTGTTATGCCACAAACAATTGAAGCAATTAACCATGCTAAAGAAGCAGAAGTACCAATTATTGTTGCAG -TAAATAAAATTGATAAACCAACTTCAAATCCTGATCGAGTTATGCAAGAATTAACTGAATATGGTTTAAT -TCCTGAAGATTGGGGCGGCGAAACAATTTTCGTTCCACTTTCTGCATTAAGTGGTGATGGTATCGACGAT -TTATTAGAAATGATAGGATTAGTTGCAGAAGTTCAAGAACTTAAAGCAAATCCTAAAAACCGTGCTGTTG -GTACAGTTATCGAAGCTGAATTAGATAAATCACGAGGTCCTTCTGCATCATTATTAGTACAAAACGGTAC -ATTAAATGTTGGTGATGCGATTGTAGTGGGTAATACTTACGGCCGTATCCGTGCAATGGTTAATGACTTA -GGTCAAAGAATCAAAACGGCTGGTCCATCAACGCCTGTTGAAATTACAGGTATTAATGATGTGCCACAAG -CTGGGGATCGCTTTGTTGTATTTAGTGATGAAAAACAAGCTCGTCGTATTGGTGAATCAAGACACGAAGC -TAGCATTGTACAACAACGTCAAGAAAGTAAAAATGTTTCATTAGATAACCTGTTTGAACAAATGAAACAA -GGTGAAATGAAAGACTTAAACGTTATTATTAAAGGTGATGTTCAAGGTTCTGTTGAAGCTTTAGCTGCAT -CATTAATGAAAATTGATGTTGAAGGCGTAAATGTTCGTATCATTCATACAGCGGTTGGTGCGATTAACGA -GTCAGACGTGACACTTGCTAATGCCTCAAATGGTATTATCATTGGTTTCAATGTTCGTCCAGACAGTGGT -GCAAAACGTGCTGCAGAAGCTGAAAATGTTGATATGCGTTTACACAGAGTTATTTATAATGTTATCGAAG -AAATTGAATCAGCGATGAAAGGTTTACTTGATCCAGAATTTGAAGAACAAGTTATCGGACAAGCTGAAGT -TCGTCAAACATTCAAAGTTTCTAAAGTTGGTACTATTGCTGGATGTTATGTTACTGAAGGTAAAATTACG -CGAAATGCTGGTGTACGTATTATTCGTGATGGTATTGTTCAATATGAAGGCGAATTAGATACACTTAAAC -GTTTCAAAGATGATGCTAAGGAAGTTGCAAAAGGTTATGAATGTGGTATTACAATTGAAAACTACAATGA -CCTTAAAGAAGGCGATGTTATCGAAGCATTTGAAATGGTTGAAATTAAGCGTTAATTAAATAAATTACAA -GCTAAAAGTTTAGTTAAGATTGATATGCTCCCTATAAATATTACACTTTTTAAGTGTTTACTTTATAGGG -AGCATATTTGATACAAGCTTTTGGTTTTTTATTAGAATAGATTACCTATTAAAAGTTACGTTATATAGAC -ATGATTTTTGTATAAAATTTTGTGGTGACCTAGAATGCTTTTTAATGACAAAATATAATGTCGACTATTA -TTGGAAAATTTTCTGTTGAAATGCCTATCTTACGGCAAACTTTATTTGATTTTATAGGCTTAATTTATTA -AAATAACGTGTGAGCTAAAATAATTGTTTAAGCATTGTTACACTAAAAAATGCAAATAACAATTGAACTT -AAAGATAAAGAGGTGACAAGAATGAGCAGTATGAGAGCAGAGCGTGTTGGTGAACAAATGAAGAAGGAAT -TAATGGATATCATCAACAATAAAGTCAAAGATCCTCGAGTTGGTTTTATTACAATTACAGATGTTGTTTT -AACAAATGATTTATCGCAGGCTAAAGTATTTTTAACTGTATTAGGTAACGATAAAGAAGTAGAAAATACA -TTTAAAGCACTTGATAAAGCAAAAGGCTTCATTAAGTCTGAATTAGGTTCTAGAATGCGATTACGTATTA -TGCCGGAATTAATGTATGAATATGATCAATCAATCGAATATGGTAATAAAATTGAACGAATGATTCAAGA -TTTACACAAACAAGATAGATAATTTAGTGTTAGGTATCTGGAAAATGTTTGATAATTTCTTAATATCGGT -ATATTAACATTAAACAGTTAATACATAGATGTGTAGAAATAGTTAACATTTTCCAGTTTTTTTATGAATA -AATTCAGTTAATACGCTATTAAAATATATTTTTAAAAAAGAAGGTGACAACATGTATAACGGTATATTAC -CAGTATATAAAGAACGTGGTTTAACAAGTCATGACGTCGTATTCAAATTGCGTAAAATTTTAAAGACTAA -AAAAATAGGGCACACTGGTACGCTTGATCCTGAAGTTGCAGGCGTGTTACCGGTATGTATAGGTAATGCA -ACGAGAGTTAGTGATTATGTTATGGATATGGGTAAAGCTTATGAGGCAACGGTATCGATAGGCAGAAGTA -CAACAACTGAAGATCAAACGGGTGATACATTGGAAATGAAGGGTGTACATTCAGCTAATTTCAACAATGA -CGATATTGACCGATTGTTAGAAAGTTTTAAAGGTATCATTGAACAAATTCCGCCAATGTATTCATCAGTC -AAGGTGAATGGTAAAAAATTATATGAATATGCGCGTAATAATGAAACAGTTGAAAGACCAAAGCGTAAAG -TTAATATTAAAGATATTGGGCGTATATCTGAATTAGATTTTAAAGAAAATGAGTGTCATTTTAAAATACG -TGTCATCTGTGGCAAAGGTACATATATTAGAACGTTAGCGACTGATATCGGTGTGAAATTAGGCTTTCCG -GCACATATGTCGAAATTAACGCGAATCGAGTCTGGTGGATTTGTGTTGAAAGATAGCCTTACATTAGAAC -AAATAAAAGAACTTCATGAGCAGGATTCATTGCAAAATAAATTGTTTCCTTTAGAATATGGATTAAAGGG -TTTGCCAAGTATTAAAATTAAAGATTCGCACATAAAAAAACGTATTTTAAATGGGCAGAAATTTAATAAA -AATGAATTTGATAACAAAATTAAAGACCAAATTGTATTTATTGATGATGATTCAGAAAAAGTATTAGCAA -TTTATATGGTACACCCTACAAAAGAATCAGAAATTAAACCTAAAAAAGTCTTTAATTAAAGGAGATAGAA -TTTATGAAAGTCATAGAAGTGACACATCCTATACAATCTAAACAGTATATTACAGAGGATGTTGCAATGG -CATTCGGATTTTTCGATGGCATGCATAAAGGTCATGACAAAGTCTTTGATATATTAAACGAAATAGCTGA -GGCACGCAGTTTAAAAAAAGCGGTGATGACATTTGACCCGCATCCGTCTGTCGTGTTGAATCCTAAAAGA -AAACGAACAACCTATTTAACACCACTTTCAGATAAAATCGAAAAAATTAGCCAACATGATATTGATTATT -GTATAGTGGTTAATTTTTCATCTAGGTTTGCTAATGTGAGCGTTGAAGATTTTGTTGAAAATTATATAAT -TAAAAATAATGTAAAAGAAGTCATTGCTGGTTTTGATTTTACTTTTGGTAAATTTGGAAAAGGTAATATG -ACTGTTCTTCAAGAATATGACGCGTTTAATACGACAATTGTGAATAAACAAGAAATTGAAAATGAAAAAA -TTTCTACAACTTCTATTCGTCAAGATTTAATCAATGGTGAGTTGCAAAAAGCGAATGATGCTTTAGGCTA -TATATATTCTATTAAAGGCACTGTAGTGCAAGGTGAAAAAAGGGGAAGAACTATTGGCTTCCCAACAGCT -AACATTCAACCTAGTGATGATTATTTGTTACCTCGTAAAGGTGTTTATGCCGTTAGTATTGAAATCGGCA -CTGAAAATAAATTATATCGAGGGGTAGCTAACATAGGTGTAAAGCCAACATTTCATGATCCTAACAAAGC -AGAAGTTGTCATCGAAGTGAATATCTTTGACTTTGAGGATAATATTTATGGTGAACGAGTGACAGTGAAT -TGGCATCATTTCTTACGTCCTGAGATTAAATTTGATGGTATCGACCCATTAGTTAAACAAATGAACGATG -ATAAATCGCGTGCTAAATATTTATTAGCAGTTGATTTTGGTGATGAAGTAGCTTATAATATTTAGAGTTG -CGTATAGTTATATAAACAATCTATACCACACCTTTTTCTTAGTAGGTCGAATCTCCAACGCCTAACTCGG -ATTAAGGAGTATTCAAACATTTTAAGGAGGAAATTGATTATGGCAATTTCACAAGAACGTAAAAACGAAA -TCATTAAAGAATACCGTGTACACGAAACTGATACTGGTTCACCAGAAGTACAAATCGCTGTACTTACTGC -AGAAATCAACGCAGTAAACGAACACTTACGTACACACAAAAAAGACCACCATTCACGTCGTGGATTATTA -AAAATGGTAGGTCGTCGTAGACATTTATTAAACTACTTACGTAGTAAAGATATTCAACGTTACCGTGAAT -TAATTAAATCACTTGGTATCCGTCGTTAATCTTAATATAACGTCTTTGAGGTTGGGGCATATTTATGTTC -CAACCTTAATTTATATTAAAAAGTTTTTTACAAATATTAACATTTATTATATGTTAAGCTAATATTGAGT -GAATAATAAGGTTACAATGAGATAAAGATGATATAAGTACACCTAGAGTAATAATCAAGATATTAAAAAT -AAAGTATGTTTTTTAAAAAAATATAACTTATATTTATACTGATAAGGGTGGGACGATAAGTCTATTTTGT -AAATAATAGATGGATATCCCGCTCTCTTTTTTTCCAATTCAATATTTTATAACTAATATTAAAATACGAT -AATAAATGATATGATATAACTATTAGATTCAAGAGAGGAGATTTATAATGTCTCAAGAAAAGAAAGTTTT -TAAAACTGAATGGGCAGGAAGATCTTTAACGATTGAAACAGGGCAATTAGCTAAACAAGCAAATGGCGCT -GTATTGGTTCGTTATGGAGATACAGTCGTGTTATCGACGGCAACTGCATCAAAAGAACCTCGTGATGGAG -ATTTCTTCCCATTAACAGTGAACTATGAAGAAAAAATGTACGCTGCGGGTAAAATTCCTGGTGGATTTAA -AAAGAGAGAAGGACGTCCTGGTGACGATGCAACATTAACTGCGCGATTAATTGATAGACCAATTAGACCT -TTATTCCCTAAAGGATATAAGCATGATGTTCAAATTATGAACATGGTATTAAGTGCAGATCCTGATTGTT -CACCACAAATGGCTGCAATGATTGGTTCATCTATGGCGCTTAGTGTGTCGGATATTCCATTCCAAGGGCC -AATCGCCGGTGTAAATGTGGGTTATATTGATGGTAAATATATCATTAACCCAACAGTAGAAGAAAAAGAA -GTTTCTCGTTTAGACCTTGAAGTAGCTGGTCATAAAGATGCAGTAAACATGGTAGAAGCAGGCGCTAGTG -AGATTACTGAACAAGAAATGTTAGAGGCGATTTTCTTTGGTCATGAAGAGATTCAACGTTTAGTTGATTT -CCAACAACAAATCGTCGACCACATTCAACCTGTTAAACAAGAATTTATTCCAACAGAGCGTGATGAAGCG -CTAGTTGAACGTGTAAAATCTTTAACCGAAGAAAAAGGACTTAAAGAAACAGTTTTAACATTTGATAAAC -AACAACGAGATGAAAATCTTGATAACTTAAAAGAAGAAATCGTCAATGAATTTATCGATGAAGAAGATCC -AGAGAATGAATTACTTATTAAAGAAGTTTATGCAATTTTAAATGAATTAGTGAAAGAAGAAGTTCGACGT -TTAATTGCAGATGAAAAAATTAGACCAGACGGCCGTAAACCTGATGAAATCCGTCCATTAGATTCTGAAG -TTGGTATTTTACCTAGAACGCATGGTTCAGGTCTATTTACACGTGGTCAAACTCAAGCACTTTCAGTTTT -AACATTAGGTGCTTTAGGTGATTATCAATTAATTGATGGTTTAGGACCTGAAGAAGAAAAAAGATTCATG -CATCATTATAACTTCCCGAATTTTTCAGTAGGTGAAACTGGTCCAGTACGTGCGCCAGGTCGTCGTGAAA -TTGGACATGGTGCGTTAGGTGAAAGAGCATTAAAATATATTATTCCTGATACTGCTGATTTCCCATATAC -AATTCGTATTGTAAGTGAGGTACTTGAATCAAACGGTTCATCATCTCAAGCGTCAATTTGTGGATCAACA -TTAGCTTTAATGGATGCGGGCGTACCGATTAAAGCACCAGTTGCTGGTATTGCTATGGGCCTTGTTACAC -GTGAAGATAGCTATACGATTTTAACAGATATCCAAGGTATGGAAGATGCATTAGGTGATATGGACTTTAA -AGTCGCTGGTACTAAAGAAGGTATTACAGCAATCCAAATGGATATTAAAATTGACGGTTTAACGCGTGAA -ATTATCGAAGAGGCTCTAGAACAAGCGAGACGTGGTCGTTTAGAAATAATGAATCATATGTTACAAACAA -TTGATCAACCACGTACTGAATTAAGTGCTTACGCGCCAAAAGTTGTAACTATGACAATTAAACCAGATAA -GATTAGAGATGTTATCGGACCTGGTGGTAAAAAAATTAACGAAATTATTGATGAAACAGGCGTTAAATTA -GATATCGAACAAGATGGTACTATCTTTATTGGTGCCGTTGATCAAGCTATGATAAATCGTGCTCGTGAAA -TCATTGAGGAAATTACACGTGAAGCGGAAGTAGGTCAAACTTATCAAGCCACTGTTAAACGTATTGAAAA -ATACGGTGCGTTTGTAGGCCTATTCCCGGGTAAAGATGCGTTGCTTCACATTTCACAAATTTCAAAAAAT -AGAATTGAAAAAGTGGAAGATGTATTAAAAATTGGTGACACAATTGAAGTTAAAATTACTGAAATTGATA -AACAAGGTCGAGTAAATGCATCACACAGAGCATTAGAAGAATAATATTTAAAGTCATATGACGACAATGT -ATCGTCATGTGATTTTTTTATGCCATTTTTTACGAAGTGACCCATTTTGAATTTGTTGTATTGAACATTT -TAAAACGCTTTATTATTTTGTGTACAACTGTTAATTATCCTGTATGTATAGTGATTAATAGTGTACATCA -AGTATTTTTTAACTTATAATGAATAGTGAGTTTATATATGGACGGGTAACAAATTTAGGAGGTAAGATTT -TGAGTTTAATAAAGAAAAAGAATAAAGATATTCGCATTATACCATTAGGCGGTGTTGGCGAAATTGCTAA -AAATATGTATATCGTTGAAGTAGACGATGAAATGTTTATGTTAGATGCTGGACTTATGTTTCCAGAAGAC -GAAATGCTAGGTATTGATATTGTTATACCAGACATTTCATACGTACTTGAAAATAAAGAAAAATTGAAGG -GTATATTCCTTACACACGGACATGAGCACGCGATTGGTGCAGTGAGTTATGTTTTAGAACAATTAGATGC -ACCAGTATATGGATCTAAATTGACAATAGCGTTAATTAAAGAAAATATGAAAGCCCGTAATATTGATAAA -AAAGTTCGCTACTACACAGTTAATAATGATTCAATTATGAGATTCAAAAACGTGAATATTAGTTTCTTTA -ATACGACACACAGTATTCCTGATAGTTTAGGTGTTTGTATTCACACTTCATATGGTGCCATTGTGTATAC -AGGTGAATTTAAGTTTGACCAAAGTTTACATGGACATTATGCACCAGATATTAAACGTATGGCAGAGATT -GGTGAAGAAGGCGTATTTGTCTTAATCAGTGATTCTACTGAGGCAGAGAAACCTGGATATAATACTCCGG -AAAATGTGATTGAACATCATATGTATGATGCTTTTGCAAAAGTGCGAGGTCGCTTGATTGTTTCATGTTA -TGCTTCGAACTTTATACGTATTCAGCAAGTTTTAAATATTGCTAGCAAGCTAAATCGTAAAGTGTCATTT -TTAGGAAGATCACTTGAAAGTTCATTTAATATTGCTCGTAAAATGGGGTATTTCGACATTCCTAAAGATT -TGCTAATTCCTATAACAGAAGTTGATAATTATCCTAAAAATGAAGTGATAATTATAGCTACTGGTATGCA -AGGAGAACCTGTAGAAGCCTTAAGTCAAATGGCGCAACATAAGCATAAAATTATGAATATCGAAGAAGGC -GATTCTGTATTTTTAGCAATTACGGCTTCTGCTAATATGGAAGTTATCATTGCGAATACATTAAATGAGC -TTGTACGTGCTGGCGCACATATTATTCCAAATAACAAGAAGATTCATGCTTCAAGTCATGGTTGCATGGA -AGAATTAAAAATGATGATTAATATTATGAAACCTGAATACTTTATTCCTGTACAAGGTGAATTTAAAATG -CAGATAGCACATGCGAAGCTAGCAGCTGAAGCAGGTGTTGCACCAGAAAAGATTTTCCTTGTGGAAAAAG -GAGATGTCATTAATTACAACGGTAAAGATATGATATTAAATGAAAAGGTAAATTCAGGAAATATTTTAAT -AGATGGTATTGGTATTGGGGATGTAGGAAATATCGTGTTGAGAGACCGTCATCTTTTAGCAGAAGATGGT -ATCTTTATTGCTGTAGTAACGTTAGATCCTAAAAATAGACGTATAGCTGCGGGACCTGAAATTCAATCTC -GTGGGTTTGTATATGTACGTGAAAGTGAAGACTTATTACGTGAAGCAGAAGAGAAAGTACGTGAAATAGT -AGAAGCTGGTTTACAAGAAAAACGCATAGAATGGTCTGAAATTAAGCAAAATATGCGTGATCAAATTAGT -AAACTATTATTCGAAAGTACAAAACGTCGTCCTATGATTATTCCAGTAATTTCTGAAATTTAATCAAAAA -GTCATTAACATAAAAGAGGTCAGAACAAGTCACCGAAATATAATGGTTGTCATGGACAATTTACTTATAT -TTTATGATGGTCAATTGAAAGGGGTAACGATTAATCTGTTATCTTAAGTAAATTGATACATAGATGATAT -TGTTCTAACCTCTTTCATCGTCTGTTTGGACTACATATTCTAAACATCAAATAGGAAATTATATAGATTA -ACGTCGTTTTAACTAAAGCAACATAAGGAGGTGCGTCAATTGGCACAAGCAAAAAAGAAATCGACAGCTA -AGAAAAAAACAACATCAAAAAAAAGAACAAATTCGAGGAAAAAGAAGAATGATAATCCGATACGTTATGT -CATAGCTATTTTAGTAGTTGTATTAATGGTGTTGGGTGTTTTCCAATTAGGAATAATAGGTCGTCTAATT -GACAGCTTCTTTAATTATTTATTTGGGTACAGTAGATATTTAACATATATTTTAGTACTCTTAGCAACTG -GTTTTATTACATACTCTAAACGTATTCCTAAAACTAGACGAACGGCTGGTTCGATTGTATTGCAAATTGC -ATTGCTATTTGTATCACAGTTAGTTTTTCATTTTAATAGTGGTATCAAAGCTGAAAGAGAACCTGTACTT -TCTTATGTGTATCAGTCATACCAACACAGTCATTTTCCAAATTTTGGTGGCGGTGTATTAGGCTTTTATT -TATTAGAGTTAAGCGTACCTTTAATTTCATTATTTGGTGTATGTATTATTACTATTTTATTATTATGCTC -AAGTGTTATTTTATTAACAAACCATCAACATCGTGATGTTGCAAAAGTTGCACTGGAAAATATAAAAGCT -TGGTTTGGTTCATTTAATGAAAAAATGTCGGAAAGAAACCAAGAAAAACAATTGAAGCGTGAAGAAAAAG -CGAGACTTAAAGAAGAACAAAAGGCACGTCAAAATGAACAGCCACAAATAAAAGATGTGAGTGATTTTAC -GGAAGTGCCTCAAGAAAGAGATATTCCAATTTATGGGCATACTGAAAATGAAAGTAAAAGCCAGAGTCAA -CCAAGTCGAAAAAAACGAGTGTTTGATGCAGAGAATAGTTCGAATAACATCGTAAATCATCATCAAGCAG -ATCAGCAAGAACAATTAATAGAACAAACTCATAACAGTGTTGAAAGTGAAAACACTATTGAAGAAGCTGG -TGAAGTTACGAATGTGTCGTATGTTGTTCCACCGTTAACTTTACTTAATCAACCTGCAAAACAAAAAGCA -ACATCTAAAGCTGAAGTGCAACGTAAAGGACAAGTACTAGAGAATACATTAAAAGATTTTGGGGTAAATG -CAAAAGTGACACAAATTAAAATTGGTCCTGCAGTAACTCAATATGAAATTCAACCAGCTCAAGGGGTTAA -AGTGAGTAAAATTGTAAACTTGCATAATGATATTGCATTAGCTTTAGCAGCAAAAGATGTTAGAATTGAA -GCGCCAATACCTGGTCGCTCTGCAGTAGGTATTGAAGTGCCAAATGAGAAAATTTCATTAGTTTCACTAA -AAGAAGTTTTAGATGAAAAATTCCCGTCTAATAATAAACTAGAAGTTGGATTAGGAAGAGATATATCAGG -TGATCCAATTACTGTTCCACTAAATGAAATGCCACACTTATTGGTGGCAGGATCGACGGGTAGTGGTAAA -TCTGTTTGTATAAATGGTATTATTACAAGTATTTTATTAAATGCTAAGCCGCATGAAGTTAAACTTATGT -TAATCGATCCGAAAATGGTTGAACTAAATGTTTATAACGGAATTCCACATTTATTAATTCCGGTTGTTAC -AAATCCTCATAAAGCTGCTCAAGCTTTAGAAAAAATTGTAGCTGAGATGGAAAGACGTTATGATTTATTC -CAACATTCATCAACTAGAAATATTAAAGGTTATAACGAATTAATCCGTAAGCAAAATCAAGAATTAGATG -AGAAGCAACCAGAATTACCTTATATCGTTGTTATTGTAGATGAGCTTGCAGATTTAATGATGGTAGCTGG -TAAAGAAGTTGAAAATGCGATTCAACGTATCACACAAATGGCACGTGCAGCAGGTATACATTTGATTGTA -GCGACACAAAGACCTTCTGTGGATGTAATTACAGGTATCATTAAAAATAACATTCCATCTAGAATTGCTT -TTGCTGTGAGTTCTCAAACAGATTCAAGAACTATTATTGGTACTGGCGGCGCAGAAAAGTTACTTGGTAA -AGGTGACATGTTATACGTTGGAAATGGTGATTCATCACAAACACGTATTCAAGGGGCGTTTTTAAGTGAC -CAAGAGGTGCAAGATGTTGTAAATTATGTAGTAGAACAACAACAGGCAAATTATGTAAAAGAAATGGAAC -CAGATGCACCAGTGGATAAATCGGAAATGAAAAGTGAAGATGCTTTATATGATGAAGCGTATTTGTTTGT -TGTTGAACAACAAAAGGCAAGTACATCATTGTTACAACGCCAATTTAGAATTGGTTATAATAGAGCATCT -AGGTTGATGGATGATTTAGAACGCAATCAGGTAATCGGTCCACAAAAAGGAAGCAAGCCTAGACAAGTTT -TAATAGATCTTAATAATGACGAGGTGTAAAAAAATGTCAGAAATGAATGCGGTATATAACGTTAAACAAT -ACATTTTAAATTTGATTAAGCAAAATAAATTGGAATATGGTGACCAACTTCCAAGTAATTTATCAATTGC -CAGAGAATTAAATGTAAAAACCGACGATGTTTATGAAGCAATTCAGGCATTGATTACTGAACAAGTCATT -AAAGATAATTTTGAAGAGGGCACAAGTGTTAAGTCACTGCCCCCTTTCTTTTATCCATTGAATGAACTTA -TAAGTATTGGGCAAATGATTAAAAATGCAGGATTTGAATGCGGAACTGAATACTTAAATTTTGATGAGCA -ACCAGCAACTATGTTAGATGCAAATTTGTTGAGTGTTGAAGAAGGATATCCAGTAACCATTATAGAACGA -TTACGAACTGCCGATGGAGAACCGGTCGTCTATTGTTTAGATAAAATTGCTAAAAAAGAATTAACATGTA -CAGAGTATCAAATGAGCAATGGATCGATACTAAGTGCGATAAAAGAACAAAGTAATCATAATATTTGTTA -CGCTGATACAGAAATTGAAGCGGTAAATTATGAACCTCGAATATCCGAAGTACTGAATGCTTCGCCACAC -GAAGGTTTGATTTTATTAAAAATTACGCACTACAATGAATCAGATGAACCTATTTTGTATTCATTAAATT -ATATGAAAAATAGCTTAGTTCAATTTAAAATCACTAGAAAAATATAGATGTAAGAAGATATAGAGGAGGC -TATATATTTGAGTAGACAATCTCAACCAAATATACATATCAAAGTTTCACCAACAACTAAATTTAAAACA -ACTACTATAGTTTTTAAATTTATGGCACCTTTAGAATATGACACAATAACAGCTAGATCATTATTAAGCA -AATTATTAGTTCGAGCAACTAAGAAATGGCCAACCGATAAGTCATTTAATAATCACTTAGCCGATTTATA -TGGTGCGTATGTGAATAGTACAATTTCAAAATTCAAAGATCAGCATGTCATTACATTTTCATTAGAAATT -GTTAATGAACGTTATTTAAGAAACGGTGAATCATTATTTAATCAAGGATTAGATTTATTACAAGAAATCA -TTTGGAATCCATTAATTGAAAATAAAGCATTCAATGATAATTTTGTTAACCAAGAGAAAACATTATTAGC -CAAAAAAATAGAAGCAATGGTAGATAACAAAGCACAATATTCGTTTTTAAAATTACTCGACCATATGTTT -GAAAATGAAGCATATAAATACTTATCTACAGGACAACTAGAACAAATCCCACATATTACTGCTGAAACAC -TATATCATACATATCAATCAATGATTAATAATGATCAATGTTCTGTTTATGTTGTCGGCAATGTAGAACC -TGAAAGTGTTGAGAAACAAATACGTGAAAAATTTGCACTTAAACCATTCGATAAACATCAATTCCAACAT -TCTACTCATCATTTACACGATGAAGAAGTTGATTATATTGTTGAATATGATGACGTGGATCAAGCTAAAT -TAAATATGGGATACCGATTTCCAACACAATATGGACAAAGTGGATATGCTGCCTTTGTTGTATTTAACAT -GATGTTTGGAGGAGATCCTTCATCTGTTTTATTTAATGAAGTGCGAGAAAAGCAAAGTTTAGCGTACTCT -ATACATTCACAAATTGATGGCAAAAATGGCTATTTATTTGTTTTGAGTGGGGTTTCAAGCGATAAGTACG -AAACTGCAAAAGACACTATTATAAGTGAATTTGAAAAAATAAAAGCAGGAGATTTCACTGAAGAAAAATT -AGAGTTAGCTAAAAAAGTAATCATTTCTCATCGATATGAATCTGAAGATCGTCCGAAAAGTATTATAGAG -ATTATGCATAACCAAATATTATTAGAGCAACCACAAAGCAAAGAAACATTTATAAATGATATACAGAAGG -TAAGTCGCGAAGATATTGTTTCTGTTGCTGAAAAAGCATTTTTAGATACAATCTATGTGTTGACAAAAGG -AGGGGATAAATAATGAAAGAGCGTTATTATGAATTAATAGACGAAAGAGTATTCGAACAAGAATTAGAAA -ATGGTTTACGATTATTTATTATCCCCAAACCAGGTTTTCAAAAGACATTTGTCACTTACACTACACAATT -TGGTTCATTAGATAATCAATTCAAACCCCTTGGACAAGACCAATTTGTTACTGTACCTGATGGAGTTGCT -CACTTTTTAGAACATAAATTATTTGAAAAAGAAGAAGAAGACTTATTTACTGCGTTTGCTGAAGAAAATG -CACAAGCAAATGCGTTTACAAGCTTTGATCGTACAAGCTACTTGTTCAGTGCAACTGATAATATTGAAAA -CAACATTAAACGTTTACTTACAATGGTTGAAACGCCTTATTTTACAAAAGAAACTGTTGATAAAGAAAAA -GGTATTATTGCAGAAGAAATAAAAATGTATCAAGAACAACCTGGATATAAATTAATGTTTAATACATTGC -GTGCAATGTATCAACAACATCCAATACGTGTTGATATTGCCGGTAGTGTAGAAAGTATATACGATATTAC -AAAAGATGATTTGTATCTATGTTATGAAACGTTTTATCATCCATCAAATATGGTTTTATTTGTTGTTGGT -GATGTGGATCCTGAAGCAATATGTCGAATAGTAAAACAACACGAGGATGCTCGTAATAAAGTTAACCAAC -CCAAAATCGAACGAGGACTTGTTGATGAACCGGAGGATGTTAAAGAAGCATTTGTTACTGAATCTATGAA -AATTCAATCACCAAGACTAATGCTTGGTTTTAAAAATAAACCATTACAAGAAGCGCCTCAAAAATATGTA -CAACGTGATTTAGAAATGTCATTATTCTTTGAGTTAATTTTTGGGGAAGAAACAGATTTTTATCAGAATT -TATTAAACGAAGGACTTATCGATGATACATTTGGTTATCAATTTGTACTAGAGCCGACGTATAGTTTTTC -AATCGTGACAAGCGCTACTGAAGAACCAGATAAATTAAAAAAATTATTATTAGATGAGTTGCGCGATAAA -AAAGGCAATTTCCAAGATGCAGAAGCATTTGAACTTTTGAAAAAGCAATTTATAGGTGAATTCATATCAA -GTTTAAACTCACCTGAATATATTGCTAATCAATATACTAAATTGTATTTTGAAGGTGTTAGTGTGTTTGA -CATGTTAGACATTGTTGAAAACATCACGTTAGATAGTATTAATGAAACGTCATCGTTATATTTAAATTTA -GATCAGCAAGTCGATAGTCGTTTGGAGATTAAAAAGTAATGAAAGCATTAGTATTAGGTGGTTCTGGTTC -AATTGGTTCTGAGATAGTCAAACAATTATTAACTGATGGATTTGAAGTTTATGTGCAATATTATCGTACT -GATATAAATGAATTAACTAACAAATTTAATGATGATAAAGTTCATTTTATACAAGCGGATTTATCTCAAA -CAATTGATATTGACAAAACATTTGGTGACATTAAATCATTAGACTGTTTAATATATGCAAGTGGTCAGTC -TTTATATGGTGTTTTACAAGATATGAAAGACCATGATATTGATGCATGTTATCAGTTAAATGTCTTGCAA -TTAATTCGATTATGTAGATATTTCGTTGATGTTTTACGTCAAAGTGACAATGGAAGAATTATTGTAATTT -CATCAATTTGGGGTGAGACAGGAGCTAGCATGGAAACTATTTATTCGACGATGAAAAGTGCACAATTAGG -TTTCGTTAAGGCGCTTAGTCAAGAGCTTGCACTAACATCAGTGACAGTAAATGCTATCGCACCTGGTTTT -GTAGCTGGTAATATGGCAAGTGAGTGGCAAGAAGATGAACTTCAAGCAATGATAACTGAATTACCACAAC -AGCGATTGGTTTTACCGAGTGAGGTTGCTCATACATGCGCCTATTTATATCACCCAAATGCTAGAAGTGT -TACTGGAACTATACAGAAAGTTAATGGGGCTTGGTATATTTAAAATATAGAACTATTTTTATGAGCAAAT -GTTTTTATGATTGATGTTATAATATGAATATTACAATGAATCATAATTTGTTAATTAAACAAGGGGTGAG -GTTCACCATGACAGTTGCAGAGAAAAAAGAATGGTACCTAGAATACGAAATTGAAATTAATAGACCGGGT -CTTTTAGGTGATGTATCTAGTTTATTAGGTATGTTAGGTATAAGTATTGTTACAATTAATGGTGTTGATC -AAGGTAAACGAGGCCTTTTAATTAAAACAGACAATCTTGAAAAAGTTGAACGTTTTGAGCAAATAGCTCG -TGGTATAAATGAAATTGAAATAACAAAGCTTAAAAAACCAGAATTAAGAGACCGTCTTGCAGTTAGACAT -GGTAGATATATTGAGCAAGATGCAAAAGATAAGAAAACCTTTCGATTTGAGCGTGAAGATTTAGGCTTGT -TAGTAGACTTTTTAGCTGAATTGTTCAAAGAAGAAGGTCATAAGTTGATTGGCATTAGAGGTATGCCACG -GGTTGGTAAAACCGAATCAATTGTTGCGGGAAGTGTTTGTGCACATAAGAGATGGTTATTTATTAGTTCT -ACTTTAATAAAACAAACTGTACGTAGCTCTCTAATTAAAGGGGAATATGATGCCAATCATGTATATATTA -TTGATGGTGCAGTTACTGCCAGAGAATCTAATCCAAAACATCAAGAGCTTGTTAACGAAGTTATGACGTT -ACCTTCAATCAAAGTCGTTGAACACCCAGATTTATTTGTTGAAACAAGTACTTGTACAATGGAAGATTTT -GACTATATTATCGAATTGAGAGAAAATGAAAATCAAGAAATACATTACGAAGAAATGAAGAAACAGACAG -TCCAAAGTAAGAATAATTTAGATTTTGGAGATCCATTTGGTGGTGGTTTTGGTTTCTTCGAGTAAGTGTA -AGGAGGCTATGAATTGAAAACGGTCGGTGAAGCGCTAAAAGGTAGACGTGAAAGGTTAGGAATGACTTTA -ACAGAATTAGAGCAACGTACTGGAATTAAACGTGAAATGCTAGTGCATATTGAAAATAATGAATTCGATC -AACTACCGAATAAAAATTACAGCGAAGGATTTATTAGAAAATATGCAAGCGTAGTAAATATTGAACCTAA -CCAATTAATTCAAGCTCATCAAGATGAAATTCCATCGAACCAAGCCGAATGGGACGAAGTAATTACAGTT -TTCAATAATAATAAAGACTTAGATTATAAGAGTAAATCAAAAGAGCCAATACAATTATTAGTAATCATGG -GTATTACAGTTTTAATAACTTTATTGTTATGGATCATGTTAGTTTTAATATTTTAACAGAAATAAATTAG -TGAGAAATGAGGATGTATAATGAATATTCCGAACCAGATTACGGTTTTTAGAGTAGTGTTAATACCAGTT -TTTATATTGTTTGCGTTAGTTGATTTTGGATTTGGCAATGTGTCATTTCTAGGAGGATATGAAATAAGAA -TTGAGTTATTAATCAGTGGTTTTATTTTTATATTGGCTTCCCTTAGCGATTTTGTTGATGGTTATTTAGC -TAGAAAATGGAATTTAGTTACAAATATGGGGAAATTTTTGGATCCATTAGCGGATAAATTATTAGTTGCA -AGTGCTTTAATTGTTCTTGTGCAACTAGGACTAACCAATTCTGTAGTAGCAATCATTATTATTGCCAGAG -AATTTGCCGTAACTGGTTTACGTTTACTACAAATTGAACAAGGATTTGTAAGTGCAGCTGGTCAATTAGG -TAAAATTAAAACAGCAGTTACTATGGTAGCAATTACTTGGTTGTTATTAGGTGATCCATTGGCAACATTG -ATTGGTTTGTCATTAGGACAAATTTTATTATACATTGGCGTTATTTTTACTATCTTATCTGGTATTGAAT -ACTTTTATAAAGGTAGAGATGTTTTTAAACAAAAATAAATATTTGTTTATACTAGATTTCATTTTCATAT -GGAATCTAGTTTTTTTAATCCCAATTTTAGAAATTAGCCACGCATTTGTTTATAATGATATATTGTAAAA -TAATATTTGTTCATTTTTTAGGGAAATGTGTTGTAGCATCTGATACATTGAATTTAAAATTGATGTGAAT -TTTTAAATGGAATACATGAAAAAATGAATTAAACGATACAAGGGGGATATAAATGTCAATTGCCATTATT -GCTGTAGGCTCAGAACTATTGCTAGGTCAAATCGCTAATACCAATGGACAATTTCTATCTAAAGTATTTA -ATGAAATTGGACAAAATGTATTAGAACATAAAGTTATTGGAGATAATAAAAAACGTTTAGAATCAAGTGT -TCGTCATGCGTTAGAAAAATATGATACTGTTATTTTAACAGGTGGCTTAGGTCCTACGAAAGATGACTTA -ACGAAGCATACAGTGGCCCAGATTGTTGGTAAAGATTTAGTTATTGATGAGCCTTCTTTAAAATATATTG -AAAGCTATTTTGAGGAACAAGGACAAGAAATGACACCTAATAATAAACAACAGGCTTTAGTAATTGAAGG -TTCAACTGTATTAGCAAATCATCATGGCATGGCTCCAGGAATGATGGTGAATTTTGAAAACAAACAAATT -ATTTTATTACCAGGTCCACCGAAAGAAATGCAACCAATGGTAAAAAATGAATTGTTGTCACATTTTATAA -ACCATAATCGAATTATACACTCTGAACTATTAAGATTTGCTGGAATAGGTGAATCTAAAGTAGAAACAGT -ATTAATAGATCTTATCGATAAACAGACTAATCCTACGATTGCGCCTTTGGCAGGAAGTCATGAAGTATAT -ATTAGATTGACTGCAAATGCCGACTCAAAAGAACAAGCACAATCATTGATTCAACCTGTTAAGCAAGAAA -TTCTTGATCGTATTGGAGAATATTATTATGGTTCAGATGACACATTAATTGAGCAAGCTGTAATAAAGAA -AATTAATGAACCTTTTGTAATATATGATGGTATTACTAATGGTGCTTTATATCATCGATTGAAAGAAGTG -GATTTAAACGATGTTCTAAAGGGTATGATTAATCACAATGAAAACTTTGTTGATATTAATAAACCTATTG -AGCAGCAATTAAAAGATGCAGTGCAATTTGTTAATAAATTATTTAATGTGTCATCAGCAATTATTCTATT -AGAGTATGATGGTGTAGTCCATATAGGCTATGATAATAACTTAGAATTTAAAACTGAGCAATTTAAAATG -TCTGAATCTAGAAATTTATTAAAGAACAGAAGTCAAAATTATGCGCTTATAAGGTTATTAAATTGGCTTA -GAACAACAAATTAATTGTATTATCGATAAAAATATAAGCACGTTTGTTCGTTTTTGTGTTTTGATTTCAA -GATTTTACACGAACAAATATTCGCAAAACACTTGTATTTTATTTTGAATCCTTGTATAGTATTGGTAAGA -TAATTAAAAGATAGCAATTTCAATTAGGAGGTCTCGCTTTGGATAACGATCGTCAAAAAGCTTTAGATAC -AGTAATTAAAAATATGGAGAAATCTTTCGGTAAAGGTGCCGTAATGAAGTTGGGTGACAATATAGGTCGC -CGAGTTTCAACTACATCAACTGGTTCAGTTACATTAGATAATGCGCTAGGTGTAGGTGGCTATCCTAAAG -GACGAATTATTGAAATTTATGGTCCTGAAAGTTCTGGTAAGACAACAGTAGCGCTTCACGCTATTGCTGA -AGTACAAAGTAATGGCGGGGTGGCAGCATTTATCGATGCTGAACATGCTTTAGATCCAGAATATGCTCAA -GCATTAGGCGTAGATATCGATAATTTATATTTATCGCAACCGGATCATGGTGAACAAGGTCTTGAAATCG -CTGAAGCATTTGTTAGAAGTGGTGCAGTTGATATTGTAGTTGTAGACTCAGTTGCTGCTTTAACACCTAA -AGCTGAAATTGAAGGAGAAATGGGAGACACTCACGTTGGTTTACAAGCTCGTTTAATGTCACAAGCGTTA -CGTAAACTTTCAGGTGCTATTTCTAAATCAAATACAACTGCTATTTTCATCAACCAAATTCGTGAAAAAG -TTGGTGTTATGTTCGGTAATCCAGAGACTACACCAGGTGGACGTGCATTAAAATTCTATAGTTCAGTAAG -ACTAGAAGTACGTCGTGCAGAACAGCTTAAACAAGGACAAGAAATTGTAGGTAATAGAACTAAAATTAAA -GTCGTTAAAAATAAAGTGGCACCACCATTTAGAGTAGCTGAAGTTGATATTATGTATGGACAAGGTATTT -CTAAAGAGGGTGAACTTATTGATTTAGGTGTTGAAAACGACATCGTTGATAAATCAGGAGCATGGTATTC -ATACAATGGCGAACGAATGGGTCAAGGTAAGGAAAATGTTAAAATGTACTTGAAAGAAAATCCACAAATT -AAAGAAGAAATTGATCGTAAATTGAGAGAAAAATTAGGTATATCTGACGGTGATGTTGAAGAAACGGAAG -ATGCACCAAAGTCATTATTTGACGAAGAATAGTACACAAATTTATATCTATAGTTAAACTTAGCAAATAT -CCTTATAGGATTGATTGAAAGTGATATTCATCTCATAAAGCTGGAATAATATCTAACTTTATGGGATGCA -CTTCAAATCGAGACTATAAGGTTTTTTATTTTATTTATTTTTACATTATCAATAGTTTTATAATCGAGCT -TCAAAACTTTAGAAAATAGTAGAAATAGCATTCAATATAGTGCAAAAGTGCAAATTGATAACTTGACACT -TATCTCCTATAAACCGTACAATTAATTTGTATGATTTATATATAATTTCATAAAGTCATATTGAATTTCA -TATAAAGAGCAAACCCTAGAAAAGGAGGTGTTTGTGTGAATTTATTAAGCCTCCTACTCATTTTGCTGGG -GATCATTCTAGGAGTTGTTGGAGGGTATGTTGTTGCCCGAAATTTGTTGCTTCAAAAGCAATCACAAGCT -AGACAAACTGCCGAAGATATTGTAAATCAAGCACATAAAGAAGCTGACAATATCAAAAAAGAGAAATTAC -TTGAGGCAAAAGAAGAAAACCAAATCCTAAGAGAACAAACTGAAGCAGAACTACGAGAAAGACGTAGCGA -ACTTCAAAGACAAGAAACCCGACTTCTTCAAAAAGAAGAAAACTTAGAGCGTAAATCTGATCTATTAGAT -AAAAAAGATGAGATTTTAGAGCAAAAAGAATCAAAAATTGAAGAAAAACAACAACAAGTAGATGCAAAAG -AGAGTAGTGTTCAAACGTTAATAATGAAGCATGAACAAGAATTAGAACGCATCTCCGGTCTCACTCAAGA -AGAAGCTATTAATGAGCAACTTCAAAGAGTAGAGGAAGAACTGTCACAAGATATTGCAGTACTTGTTAAA -GAAAAAGAAAAAGAAGCTAAAGAAAAAGTTGATAAAACAGCAAAAGAATTATTAGCTACAGCAGTACAAA -GATTAGCAGCAGATCACACAAGTGAATCAACGGTATCAGTAGTTAACTTACCTAATGATGAGATGAAAGG -TCGAATCATTGGACGTGAAGGACGAAACATCCGTACACTTGAAACTTTAACTGGCATTGATTTAATTATT -GATGACACACCAGAAGCAGTTATATTATCTGGTTTTGATCCAATAAGAAGAGAAATTGCTAGAACAGCAC -TTGTTAACTTAGTATCTGATGGACGTATTCATCCAGGTAGAATTGAAGATATGGTCGAAAAAGCTAGAAA -AGAAGTAGACGATATTATAAGAGAAGCAGGTGAACAAGCTACATTTGAAGTGAACGCACATAATATGCAT -CCTGACTTAGTAAAAATTGTAGGGCGTTTAAACTATCGTACAAGTTACGGTCAAAATGTACTTAAACATT -CAATTGAAGTTGCGCATCTTGCTAGTATGTTAGCTGCTGAGCTAGGCGAAGATGAGACATTAGCGAAACG -AGCTGGACTTTTACATGATGTTGGTAAAGCAATTGATCATGAAGTAGAAGGTAGTCATGTTGAAATCGGT -GTAGAATTAGCGAAAAAATATGGTGAAAATGAAACAGTTATTAATGCAATCCATTCTCACCATGGTGATG -TTGAACCTACATCTATTATATCTATCCTTGTTGCTGCTGCAGATGCATTGTCTGCGGCTCGTCCAGGTGC -AAGAAAAGAAACATTAGAGAATTATATTCGTCGATTAGAACGTTTAGAAACGTTATCAGAAAGTTATGAT -GGTGTAGAAAAAGCATTTGCGATTCAGGCAGGTAGAGAAATCCGAGTGATTGTATCTCCTGAAGAAATTG -ATGATTTAAAATCTTATCGATTGGCTAGAGATATTAAAAATCAGATTGAAGATGAATTACAATATCCTGG -TCATATCAAGGTGACAGTTGTTCGAGAGACTAGAGCAGTAGAATATGCGAAATAATTTTTGTCTCCCTCA -CAAATTAGTGAGGGAGCTTTTTTAAGTTGTAGTTTCAATCTAGTTAGACAGTACTTTATTGGTAATAACT -ATATTAGACAGTAGTTATTTGAAAGTAAGATGGACCTTATATTAAATAAGAAGTTATTGCTTTTAATAAA -AATGTTTTAGGTTCATAATTACTATATTTATATTATGTAAACCTATAAAGGTGATTGCTTTTTCAAACTA -AAAAAAAGAAGAGAAGATGTAACACATCTTCTCTTCTGTAATATTAATTAGAAATTATTTCTAAGTTGAG -TTATTTTAATTGTAAATCTGTTTTCTTTAATTCTTTTATAACTTCTGCAGTATCATAACAATTTGTTGCA -ATTGTTGAATATCTCTCTGCTAAACGATATGCATTAATGTAAAGCTTTAAACTTTCTTTAGCTATATCCT -CTGCATCTTCGAATTTTGATGGGTTAGACATAACCACTAATTCTGCAAATTTTTCTGGATCAATATTAAT -AGACATGTATTTATTTACAACTCCTATTTATTTTGATGTCTTAATACTAACATATTGAAGTTTTCAGACA -AAGTAATGTCTCTCTATAATTGAAGAAAAATAATTCAAAGAATTTAATATTTACTTTAAATATTAGAACG -TATGAATTAAACTAGTATTTATGAGAGGATGAACAAAACATGAGAATAATGTTTATAGGGGATATCGTAG -GTAAAATTGGACGAGACGCAATTGAAACGTACATACCTCAACTGAAGCAAAAGTATAAACCAACAGTTAC -AATTGTAAATGCTGAAAATGCAGCGCATGGTAAAGGTTTGACTGAAAAAATATATAAACAATTACTAAGA -AATGGTGTAGATTTCATGACTATGGGTAATCACACATATGGTCAACGTGAAATTTATGATTTTATAGATG -AAGCAAAACGACTAGTAAGACCAGCTAATTTTCCGGATGAAGCGCCGGGAATTGGTATGAGATTTATAAA -AATTAATGATATTAAACTTGCAGTTATTAATCTGCAAGGAAGAGCGTTTATGCCAGATATTGATGATCCT -TTTAAAAAGGCAGATCAATTAGTCAAGGAAGCACAAGAACAAACTCCGTTTATATTTGTTGATTTTCATG -CAGAAACAACTTCTGAAAAGTATGCAATGGGATGGCATTTAGATGGTAGAGCTAGCGCTGTTGTTGGAAC -GCATACACACATTCAAACAGCAGATGAACGTATTTTACCAAAGGGTACAGGGTATATAACGGATGTTGGT -ATGACAGGCTTTTATGACGGCATTTTAGGAATAAATAAAACAGAGGTAATTGAGCGTTTTATCACTAGTT -TGCCACAAAGACATGTTGTTCCAAATGAAGGTAGAAGTGTATTATCTGGTGTTGTTATTGATTTGGACAA -AGAAGGTAAAACAAAGCACATCGAACGTATATTGATAAATGATGACCATCCATTTTCAACATTTTAAAAT -TACGTAAGTAAACATTCTAATTGGACCCTATCGTCCATTAGTATGAATTTAATATAGTACCACTGTTTAC -ATAGTAAATCGGTGGTTCTTTTTGTTATCATTTAATATGAAATATATCCATAGGAGGCATATAACTATGA -AACCACAATTATCGTGGAAAGTTGGCGGTCAACAAGGCGAAGGTATTGAATCAACTGGGGAAATCTTCGC -AACGGCTATGAATAGAAAAGGATATTATTTATATGGATATAGACATTTTTCAAGTCGTATCAAAGGTGGA -CATACGAATAATAAAATTAGAGTTTCTACGACGCCTGTTCATGCAATTAGTGATGATTTAGATATTTTGA -TTGCATTTGACCAAGAAACAATTGATGTTAACCATTATGAAATGAGAGAAGACAGTATCATTTTAGCTGA -TGCCAAGGCTAAACCTGTGAAACCAGAAGGATGTCATGCACAGCTTATTGAATTACCTTTTACAGCAACC -GCTAAAGAATTAGGTACAGCATTAATGAAAAACATGGTTGCAATAGGTGCTACTAGCGCATTGATGAATT -TGAATACAAATACATTTGAAGAACTTATTACTAATATGTTTTCTAAAAAAGGTGACAAGGTAGTTGAAGT -CAATATCCAAGCATTAAACGAAGGTTATCAATTAATGCAATCTCGCTTATCTGAAATCGACGGGGACTTT -GAATTAGAGTCAACAGATGCACTACCACATCTATATATGATTGGTAACGATGCCATTGGATTAGGTGCAA -TTGCTGCAGGTTCACAATTTATGGCGGCATATCCTATTACACCTGCGTCTGAAGTTATGGAATATATGAT -TGCCAATATATCTAAAGTAAACGGAGCGGTTATTCAAACAGAAGATGAAATTGCTGCTGTAACTATGGCT -ATTGGTGCAAATTATGGTGGAGTCAGAGCGTTTACGGCTAGTGCTGGTCCAGGTTTATCTTTAATGATGG -AAGCAATTGGATTATCTGGTATGACTGAAACGCCATTAGTCATAATTAATACCCAACGAGGTGGACCTTC -TACTGGATTACCTACGAAACAAGAACAGTCAGATTTAATGCAAATGATTTATGGTACACATGGTGATATT -CCAAAAATAGTTGTAGCACCTACTGATGCAGAAGATGCATTTTATTTAACTATGGAAGCCTTTAATTTAG -CAGAACAATATCAATGCCCTGTTATAGTTCTAAGTGATTTACAATTATCTTTAGGAAAACAAACTGTTGA -AAAATTAGATTATAATCGCATTGAAATTAAACGTGGTGAAATCATTCAATCTGATATTGAACGTGAAGAA -GATGATAAAGGTTATTTCAAGCGTTATGCGTTAACATCCAATGGTGTTTCTCCTAGACCTATCCCGGGTG -TTAAAGGAGGTATTCATCATATAACTGGTGTGGAACACAATGAAGAAGGTAAACCTAGCGAATCTGCGTC -AAATAGACAACAACAAATGGAAAAACGAATGCGTAAAATTGAGCAGTTACTAATTGAATCGCCAGTAGAA -GCTAACTTACAACATGAAGATGCAGATATTCTTTATATCGGTTTTATTTCTACAAAAGGTGCAATTCAAG -AAGGTAGTAATCGTTTGAATCAACAAGGCATAAAAGTTAACACTATACAAATTAGACAATTGCATCCATT -CCCAACAAGCGTTATTCAAGATGCAGTTAATAAAGCGAAGAAAGTCGTTGTAGTGGAGCACAATTATCAA -GGACAATTGGCTAGTATTATAAAAATGAATGTCAATATTCATGATAAGATTGAAAATTATACAAAGTATG -ATGGGACACCTTTCCTACCACATGAAATCGAAGAAAAAGGTAAAATAATTGCTACTGAAATAAAGGAGAT -GGTATAGATGCCGACATTTAAAGATTTTAGAAATAATGTTAAGCCTAACTGGTGCCCTGGATGTGGCGAT -TTCTCAGTACAAGCTGCAATTCAAAAAGCAGCCGCAAATATAGGGTTAGAACCTGAACAAGTAGCTATCA -TCACCGGTATAGGATGTTCTGGCCGTCTTTCAGGATATATTAATTCTTATGGCGTTCATTCTATTCACGG -ACGTGCATTACCTTTAGCTCAAGGTGTAAAAATGGCGAATAAAGATTTAACTGTTATTGCATCTGGAGGA -GATGGTGATGGTTATGCTATTGGTATGGGGCATACAATCCATGCTTTAAGAAGAAATATGAACATGACGT -ATATAGTCATGGATAATCAAATTTATGGTTTGACAAAGGGACAAACATCGCCGTCATCAGCAGTAGGATT -TGTTACTAAAACAACGCCAAAAGGTAATATAGAAAAAAATGTTGCGCCTTTAGAATTAGCATTATCATCT -GGTGCCACATTTGTAGCCCAAGGTTTTTCAAGTGATATTAAAGGATTAACAAAACTAATTGAAGATGCAA -TTAATCACGATGGGTTTTCATTTGTTAATGTCTTTTCACCATGTGTGACTTATAATAAAATTAACACATA -CGATTGGTTTAAAGAACATTTAACAAGTGTTGATGACATTGAAAACTATGATTCTACAGATAAACAATTA -GCGACTAAAACTGTTATTGAACATGAATCTTTAGTAACTGGTATTGTTTATCAAGATAAAGAAACCCCAT -CATATGAATCTCAAATCAAAGAGTTAGATGATACACCACTAGCTAAAAGAGATATCAAAATTACTGAAGA -CACGTTCAATGCATTAACTGAACAATTTATTTAATAATTAAAACTGAGTCGTATAAATGTATTTATAACA -GATCCATTTATGCTACTCAGTTTTTTTACTATTACAAAATATAAAGGAGTTTTTAAAAATGAAAGACACA -TTAATGAGTGTACAAATAATTCCTAAAACACCAGACAATGACAATGTTATACCTTACGTAGACGAGGCGA -TTAAAATAATTGACGAATCTGGTTTGCATTTTAGAGTAGGTCCGTTAGAAACGACAGTACAAGGAAATAT -GAATGAATGTTTAATTTTAATACAATCGTTAAATGAACGAATGGTGGAACTTGAATGTCCAAGTATTATT -AGCCAAGTTAAGTTTTATCATGTGCCAGACGGCATTACTATTGAAACTTTAACTGAAAAATATGATGAAT -AACATTAAAAGTGAAGTAAACTGGATTTGAATTGGCTTGTTAGAGATGACGTATAACTTTAACTGTTTTT -GCACTTTATAGTTAAATTTAATATAATTATTAAATGATACGGGCAAATAGAAAGGATTTTGTAAAGTGAA -CGAAGAACAAAGAAAAGCAAGTTCTGTAGATGTTTTAGCTGAGAGAGATAAGAAAGCAGAAAAAGATTAT -AGTAAATATTTTGAACATGTTTATCAACCGCCTAATTTAAAAGAAGCGAAAAAAAGAGGTAAACAAGAAG -TTCGTTATAATAGAGATTTCCAAATTGATGAAAAATATCGCGGTATGGGGAACGAGCGTACATTTTTAAT -TAAAACATATGGATGTCAAATGAATGCACATGACACTGAGGTCATTGCTGGTATACTTGAAGCATTAGGC -TATCAAGCAACGACTGATATTAACACTGCAGATGTTATTTTAATTAATACATGTGCGATTAGAGAAAATG -CCGAGAACAAAGTTTTTAGTGAAATAGGTAATTTGAAGCATTTGAAGAAAGAACGACCTGATATTTTAAT -CGGAGTTTGTGGTTGTATGTCACAAGAAGAGTCAGTAGTGAATAAAATTTTAAAATCGTATCAAAATGTA -GATATGATATTTGGTACACACAATATTCATCATTTACCAGAAATTTTAGAAGAAGCATACTTATCTAAAG -CAATGGTTGTTGAAGTATGGTCTAAAGAAGGAGACGTTATTGAAAATCTTCCAAAAGTCCGTGAAGGCAA -CATTAAAGCATGGGTCAATATTATGTATGGTTGTGATAAGTTTTGTACATATTGTATTGTTCCATTTACA -AGAGGCAAAGAACGAAGCCGTAGACCTGAAGACATTATAGATGAAGTACGTGAACTTGCTCGTGAAGGTT -ACAAAGAAATAACGCTTTTAGGTCAAAATGTAAATTCTTATGGTAAAGATTTACAGGATATAGAATATGA -CTTAGGAGACCTTTTACAAGCAATTTCTAAAATAGCGATTCCAAGAGTTCGTTTCACAACAAGTCATCCT -TGGGACTTCACAGATCACATGATTGATGTTATTTCAGAGGGTGGTAATATCGTTCCTCATATCCACTTGC -CAGTTCAATCTGGAAATAATGCAGTATTAAAAATAATGGGTAGAAAATATACACGAGAAAGTTATTTGGA -TTTAGTAAAACGAATCAAAGATAGAATTCCAAATGTAGCATTAACTACAGATATTATTGTAGGGTATCCA -AATGAATCAGAGGAACAATTTGAAGAAACTTTAACTTTGTATGATGAAGTTGGTTTTGAACATGCATATA -CGTATTTGTATTCACAACGTGATGGTACGCCTGCTGCTAAAATGAAAGATAATGTACCTTTAGATGTCAA -AAAGGAACGATTGCAACGTTTGAATAAAAAAGTTGGTCATTATTCACAAATAGCTATGAGTAAGTACGAA -GGACAAACTGTAACAGTACTTTGTGAAGGTAGTAGTAAAAAAGATGATCAGGTTCTTGCTGGCTACACTG -ATAAAAATAAGTTAGTTAATTTCAAAGCGCCTAAAGAAATGATTGGTAAACTAGTGGAAGTACGAATAGA -TGAAGCTAAACAGTATTCATTAAATGGCAGCTTTGTAAAGGAAGTAGAGCCGGAAATGGTGATTCAATAA -ATGTATAATAAAGATGACGTGTTGAAACAAGCGGATAATATTGCAAATAAAATTAAAAATTTGGATACTA -TCAAAACATATCAACAAATTGAAGCACAGATTCATCAGAACCAAACGATAAAGACTAAAATGGATATGTT -AAAAAAGCATCAAAAACAAGCAGTAAACTTTCAAAATTACGGGAAACAAAATGCGCTAGAACAGTCGGAA -CATACCATTCAAAGTATAGAAGCAGAAATAAATACATTGCCCATAGTTGAACAGTTTCAAACTTCACAAT -ATGAAGCGAATCAATTATTGAAAATGTTTGTATCAACAATGGAAACACGTTTAAATGACCATAATAAAGC -CAAACATAGTGATTAATTACAAACAAAAAGGAGAACAATCATATGAAATCAAGAAAACTGGCTATAACTG -CACTTTTAATTGCAATAAATGTTGTATTAAGCAGTATTATCATCATTCCTCTAGGACCAGTTAAGGCAGC -ACCAGTACAGCATTTTGTAAATGTATTAAGTGCGGTCATAGTAGGTCCTTGGTATGGATTAGCTCAAGCG -CTTATATCATCAATTTTAAGAGTTCTTTTTGGAACTGGTACAGCTTTTGCATTTCCGGGTAGTATGATTG -GAGTTTTATTGGCTAGTATGTTTTACATATATCGTAAACATATATTCATGGCCGCGGTCGGTGAAGTACT -TGGAACTGGTGTCATCGGAAGTTTAATTTGTATACCATTAGCATATTTCCTTGGGCTTCAAGACTTCTTC -ATTAAACCGTTAATGATTACGTTCATAGTCTCAAGTGCTATCGGATCTATTATAAGTTATTTCTTATTAC -TTACTCTAAAAAAACGTGGTATTCTTCAAAGGTTTATAAAATAATTTTATGATATATGATTTCAAACAGA -GTCATTGTTCATTTTAATATTGAACGCCCTTACTTAATTAAATGTCTTGAATGTTAGAATTTTAATATAA -TTCTAAACATGCTATTAACACATTTTATTAGGTTTGAGGCGTTTTCTTATACATTTAAGATGCTTCGTTA -TTATATGGTATGAATAGGTTTGTAAAAGTAAGTATGTTAAAATGTATAAGTTAAATAATTAATAATTAGA -AAGCTTACAAACGAATATATTGTAAAGACAAATTTTAAAAAGAGACAAGGGTTGTGAAGAAATAATATGT -CTAATGTTACACCAATGATGCAGCAATATTTAAAAATAAAATCAGAATACCAAGATTGCTTATTATTTTT -TAGACTAGGTGATTTCTATGAAATGTTTTATGAAGATGCCAAGGAGGCATCACGTGTACTTGAAATTACT -TTAACTAAAAGAGATGCTAAAAAAGAAAATCCAATTCCGATGTGTGGTGTTCCGTATCATTCTGCAGATA -GTTATATAGATACACTTGTTAATAATGGATATAAAGTAGCTATTTGTGAACAGATGGAAGATCCGAAACA -AACGAAAGGTATGGTTAGACGTGAGGTAGTAAGAATTGTGACTCCAGGAACTGTGATGGAGCAAGGTGGT -GTAGATGATAAACAAAATAACTATATTTTAAGTTTTGTTATGAATCAACCTGAAATTGCGCTTAGTTACT -GTGATGTTTCTACTGGTGAATTAAAGGTTACACATTTTAATGATGAAGCGACTTTATTAAATGAAATTAC -GACGATAAACCCTAACGAAGTTGTTATCAATGACAATATTTCCGATCATTTAAAAAGACAAATTAATATG -GTGACAGAAACAATAACAGTCAGGGAAACGTTATCATCTGAAATCTACAGTGTGAATCAAACTGAACATA -AATTAATGTATCAAGCGACACAATTATTGCTAGATTATATTCATCATACACAAAAACGTGATTTATCGCA -TATTGAGGATGCTGTTCAATATGCAGCTATAGATTATATGAAAATGGATTTTTATGCTAAGAGAAACCTT -GAGTTAACGGAAAGCATTCGATTAAAATCCAAAAAAGGAACGCTACTTTGGCTGATGGACGAAACGAAAA -CACCAATGGGAGCACGCCGATTAAAACAATGGATAGATAGACCACTAATAAGTAAAGAACAAATTGAAGC -ACGATTAGATATCGTTGATGAATTTAGTGCTCATTTCATAGAAAGAGACACCTTAAGAACATATCTTAAT -CAAGTGTATGATATTGAACGTCTTGTTGGGCGTGTTAGTTACGGAAATGTTAATGCGAGAGATTTAATTC -AACTTAAACATTCCATTTCTGAAATACCGAATATTAAAGCATTACTAAATTCTATGAATCAGGATACTCT -TGTACAAGTTAATCAACTAGAACCACTTGATGATTTACTTGATATATTAGAACAGAGTTTAGTAGAAGAA -CCACCAATTTCAGTTAAAGATGGTGGACTATTCAAAGTTGGTTTTAATATGCAATTAGATGAATATCTTG -AAGCTTCAAAAAACGGAAAAACATGGTTAGCAGAACTACAAGCAAAAGAAAGACAACGTACAGGAATAAA -ATCATTGAAAATAAGCTTTAATAAAGTGTTTGGTTATTTTATAGAAATAACACGTGCCAACTTGCAAAAT -TTTGAACCAAGTGAATTTGGTTATATGAGGAAGCAAACGTTATCGAATGCGGAACGATTTATAACTGATG -AACTTAAAGAAAAAGAAGATATCATTTTAGGTGCGGAAGACAAAGCCATTGAATTAGAATATCAATTATT -TGTTCAGCTACGTGAAGAAGTTAAAAAATATACTGAACGTTTACAACATCAAGCTAAAATTATTTCAGAG -TTAGATTGTTTACAGAGCTTTGCAGAAATTGCTCAAAAATATAATTATACTAGGCCTTCATTTAGTGAAA -ATAAAACATTAGAATTAGTGGAATCTAGGCACCCAGTAGTGGAAAGAGTAATGGATTATAATGACTATGT -GCCTAATAATTGTCGATTAGATAACGAAACATTTATATATTTAATTACAGGTCCGAATATGTCTGGTAAA -TCGACGTATATGAGACAAGTTGCCATAATTAGTATAATGGCCCAAATGGGAGCTTATGTCCCTTGTAAAG -AGGCTGTGTTACCTATATTTGATCAAATATTCACTAGAATAGGTGCGGCAGATGATTTGGTTTCAGGTAA -GAGTACGTTTATGGTAGAAATGCTAGAAGCACAAAAGGCATTAACTTATGCAACAGAGGATAGTTTGATT -ATTTTCGATGAAATTGGACGTGGTACTTCAACGTATGACGGTTTAGCTTTAGCGCAGGCAATGATAGAGT -ATGTAGCTGAAACATCACATGCTAAAACGTTATTTTCAACACATTATCATGAATTGACAACATTAGATCA -AGCATTACCAAGTCTAAAAAATGTTCACGTCGCTGCTAATGAATATAAAGGTGAACTTATATTCTTGCAT -AAAGTCAAAGATGGTGCAGTTGACGATAGTTATGGTATTCAAGTTGCGAAATTAGCTGATTTACCTGAAA -AAGTTATTAGCAGAGCACAAGTGATCCTAAGCGAGTTTGAAGCGTCTGCTGGTAAAAAATCATCGATATC -AAATTTAAAAATGGTCGAAAATGAACCTGAAATTAATCAAGAAAATTCAAACTTAAGTGTTGAAGAAACA -ACTGATACTTTATCTCAAAAAGACTTTGAACAAGCATCATTTGATTTGTTTGAAAATGATCAAGAAAGCG -AGATTGAACTACAAATTAAAAATTTGAATTTATCTAATATGACACCAATTGAGGCATTGGTGAAGTTAAG -TGAATTACAAAATCAATTAAAATAGAGGTGTTGCAAAATGGGGAAAATTAAAGAACTCCAAACCTCATTA -GCAAATAAAATCGCAGCAGGTGAAGTAGTTGAAAGACCGAGTTCTGTTGTGAAAGAACTGTTGGAAAATG -CTATAGATGCAGGCGCTACAGAAATAAGCATTGAAGTAGAGGAATCTGGCGTCCAATCTATTCGCGTAGT -CGATAATGGAAGCGGAATTGAAGCGGAAGACTTAGGATTAGTATTTCATAGACATGCGACTAGTAAGTTA -GATCAAGATGAAGATTTATTTCATATTAGGACGTTAGGATTCCGTGGTGAAGCACTAGCCAGTATTTCAT -CAGTTGCTAAAGTAACATTGAAGACTTGCACGGATAATGCTAATGGAAATGAAATATATGTAGAAAATGG -TGAAATATTAAATCATAAGCCTGCAAAAGCGAAAAAAGGAACAGATATACTTGTAGAATCATTATTTTAT -AATACACCAGCACGTTTAAAATATATAAAAAGTTTATACACTGAACTAGGTAAAATAACAGATATTGTCA -ACAGAATGGCAATGAGTCATCCGGACATTCGAATAGCACTCATTTCAGATGGCAAAACAATGTTAAGTAC -AAATGGTTCAGGAAGAACTAATGAAGTGATGGCAGAGATTTATGGGATGAAAGTTGCACGAGATTTAGTA -CATATATCTGGAGATACAAGTGATTATCACATTGAAGGTTTTGTTGCAAAGCCTGAACATTCTAGAAGTA -ATAAGCACTATATTTCTATTTTTATTAATGGACGATACATTAAAAACTTTATGTTAAATAAAGCGATTTT -AGAAGGCTATCATACACTCTTAACAATAGGTAGGTTCCCGATTTGTTATATTAATATTGAAATGGATCCA -ATCTTAGTAGACGTAAATGTTCATCCAACAAAACTAGAAGTGCGTTTATCAAAAGAAGAGCAACTATATC -AATTGATAGTGAGCAAAATACAAGAAGCATTTAAAGACCGTATATTAATTCCTAAAAATAACTTGGATTA -TGTGCCGAAAAAAAATAAAGTGTTACATTCATTCGAACAACAAAAAATCGAATTTGAACAAAGACAAAAC -ACAGAGAATAAACAAGAGAAGACGTTTTCATCTGAAGAAAGTAACAGTAAGCCATTTATGGCAGAAAATC -AAAACGATGAGATAGTTATAAAAGAAGATTCATATAATCCATTCGTAACGAAAACATCTGAAAGTTTAAT -AGCTGATGATGAATCTTCTGGTTATAATAATACACGTGAAAAAGATGAAGACTACTTCAAAAAACAACAA -GAAATTTTACAAGAAATGGATCAAACATTTGATTCAAATGACGATACATCTGTGCAAAATTATGAGAATA -AAGCGTCTGATGATTATTATGATGTAAACGATATTAAAGGAACAAAAAGTAAAGACCCTAAACGAAGAAT -TCCATATATGGAAATTGTTGGCCAAGTACATGGAACGTATATTATTGCTCAAAATGAATTTGGCATGTAC -ATGATTGACCAGCATGCAGCTCAAGAAAGAATAAAATATGAATATTTTCGAGATAAAATAGGTGAAGTTA -CCAATGAAATACAAGATTTATTAATCCCGTTAACATTTCATTTTTCAAAAGATGAACAATTAGTCATTGA -TCAATATAAAAATGAGCTTCAACAAGTAGGTATCATGTTAGAACATTTTGGTGGTCATGATTATATTGTA -AGTAGCTATCCAGTTTGGTTCCCTAAAGATGAAGTAGAAGAAATTATTAAAGATATGATTGAGCTAATTT -TGGAAGAGAAAAAAGTAGATATCAAAAAATTACGTGAAGATGTAGCAATCATGATGTCATGTAAAAAATC -TATTAAAGCGAATCATTATTTACAAAAACATGAAATGTCTGATTTAATTGATCAATTAAGAGAAGCGGAA -GATCCATTTACATGTCCACATGGTCGTCCAATTATCATTAATTTTTCAAAATACGAATTAGAAAAATTAT -TTAAGCGTGTGATGTAGAGAGGATGAATCAAGTGAATAACAACATATTGCCTGCCATAAGAAACATTAAA -GATTTAGAGAAACTGATTAAAACAGATTATAAAATGTGTGTGCTTCTAGATATGCATATAGGACATATAA -AAAGTATTATGGAATTGCTGAAGCAAAATCATATAGAGTGTTTTATTCATATAGATTTGATAAAAGGTTT -AAGTCACGATGAATTTGCAAGTGAATTTATTATTCAGCAATACAAGCCAAAAGGTATTGTATCGACTAAA -TCTAAAGTAATAAAAAAAGCGAAATCATTAAATACTTTAACGATTTTTAGAGTGTTTATTATTGATAGTC -AAGCATTGAAACGCAGTATAGATTTGATAAAAAAAGTTGAACCTGATTTTGTTGAAGTACTTCCGGGTGT -TGCGAGTAAAGCGATTCATCATATTCAGAAAGAAACAAACACACAAGTCATTGCAGGTGGCCTAATTAAT -ACAATAGATGAAGTTAATGAAGCTGTTAAAAATGGAGCGAAATATGTAACAACTAGTTATGATAAACTCT -GGTGAATCATAAGTCTGCAAAAATTAGATTTTTCACTAGATTTAGTCATATAACATATTAAAAAAGCCGT -TTTCATATGGGATATGTAATAAGGAATTTAAGGTATCATACAAAGAATAATTAAATAAAATAATTAGCAC -CTCTAAAACGATTAAAATCATTAAAGTTATAGAGGTGTTTATTTGTAAAAAATGCAACTAGTCATAAAAA -ATATGGCTGAAGAATGTCATTTAAACAAAATGGCGTCATAAATAATTTAGTTAGGATTGATATTTCTAGT -TTTCAAATTAAATCACTTTTATAAAGACTTGAAAAATTAAATTTGACAAAATTTTTACAAAAACCATTGA -CAACGCTTTCATCTCAATAGTATTATAACAAATATAATAAAAGTTAATACATAGAATAGAGACGGGAGAT -TTCTACGAGCCAAACTGCTAGTGTAGGAATCTCTTTGTCTTTTTGGGAGGACATTTAATATGAATGTATA -TTTAGCAGAATTCCTAGGAACTGCAATCTTAATCCTTTTTGGTGGTGGCGTTTGTGCCAATGTCAATTTA -AAGAGAAGTGCTGCGAATGGTGCTGATTGGATTGTCATCACAGCTGGATGGGGATTAGCGGTTACAATGG -GTGTGTATGCTGTTGGTCAATTCTCAGGTGCACATTTAAACCCAGCGGTGTCTTTAGCTCTTGCATTAGA -CGGAAGTTTTGATTGGTCATTAGTTCCTGGTTATATTGTTGCTCAAATGTTAGGTGCAATTGTCGGAGCA -ACAATTGTATGGTTAATGTACTTGCCACATTGGAAAGCGACAGAAGAAGCTGGCGCGAAATTAGGTGTTT -TCTCTACAGCACCGGCTATTAAGAATTACTTTGCCAACTTTTTAAGTGAAATTATCGGAACAATGGCATT -AACTTTAGGTATTTTATTTATCGGTGTAAACAAAATTGCTGATGGTTTAAATCCTTTAATTGTCGGAGCA -TTAATTGTTGCAATCGGATTAAGTTTAGGCGGTGCTACTGGTTATGCAATCAACCCAGCACGTGATTTAG -GTCCGAGAATTGCACATGCGATTTTACCAATAGCTGGCAAAGGTGGTTCAAATTGGTCATATGCAATCGT -TCCTATCTTAGGACCAATTGCCGGTGGTTTATTAGGTGCGGTAGTATACGCTGTATTTTATAAACATACA -TTTAATATTGGTTGTGCAATTGCAATTGTTGTAGTTATTATTACTTTGATTTTAGGTTACATTTTAAATA -AATCATCAAAAAAAGGTGATATCGAATCAATTTACTAAAATAAAAAGAAATGTAAATAGCATAATTTAAC -ATGTTTGATTCATGGATTATGCTATTTTTTCGCCAAAATTTAACGGATTTTGTACAATGGGTTAGCGATT -ATTTTTTTAATAAAGGAGATACTACTAATGGAAAAATATATTTTATCTATAGACCAAGGAACAACAAGCT -CAAGAGCGATTTTATTCAATCAAAAAGGGGAAATTGCAGGGGTAGCACAACGTGAGTTTAAGCAATATTT -TCCACAATCAGGTTGGGTTGAACATGATGCAAATGAAATTTGGACATCTGTGTTAGCTGTAATGACGGAA -GTAATTAATGAAAATGATGTTAGAGCTGATCAAATTGCAGGTATCGGTATTACAAACCAACGTGAAACAA -CGGTTGTTTGGGACAAACATACTGGCCGCCCAATTTATCACGCAATTGTTTGGCAATCACGTCAAACACA -ATCAATTTGTTCAGAATTAAAACAACAAGGATATGAACAAACATTTAGAGATAAGACAGGATTACTTTTA -GATCCGTATTTTGCAGGTACAAAAGTTAAATGGATTCTAGACAATGTTGAAGGTGCACGAGAAAAAGCAG -AAAATGGCGATCTATTATTTGGAACGATTGATACTTGGTTAGTATGGAAATTATCAGGAAAAGCCGCGCA -TATTACTGATTATTCAAATGCGAGTCGTACATTAATGTTTAATATCCATGATTTAGAATGGGACGATGAG -TTATTAGAACTACTTACAGTACCTAAAAATATGTTGCCAGAAGTTAAACCTTCAAGTGAAGTATATGGTA -AGACAATTGATTACCACTTCTATGGTCAAGAAGTACCAATTGCTGGTGTAGCTGGTGATCAACAAGCAGC -ATTATTTGGACAAGCTTGCTTCGAACGTGGTGACGTGAAAAACACATATGGAACTGGTGGCTTCATGTTA -ATGAATACAGGTGACAAAGCGGTTAAATCTGAAAGTGGTTTATTAACAACAATTGCTTATGGTATTGATG -GAAAAGTAAATTATGCGCTTGAAGGTTCCATCTTTGTTTCGGGTTCAGCAATCCAATGGTTACGTGATGG -ATTAAGAATGATTAATTCAGCACCACAATCAGAAAGTTATGCGACACGAGTTGACTCTACTGAGGGTGTT -TATGTTGTTCCAGCTTTTGTAGGTTTAGGAACACCATATTGGGATTCTGAAGCACGTGGTGCGATTTTCG -GTTTAACACGTGGAACTGAAAAAGAGCACTTTATCCGTGCAACATTAGAATCATTATGTTACCAAACTCG -TGACGTTATGGAAGCAATGTCAAAAGACTCTGGTATCGATGTCCAAAGTTTACGTGTCGATGGTGGTGCA -GTTAAGAATAACTTTATTATGCAGTTCCAAGCAGACATTGTTAATACTTCTGTTGAAAGACCTGAAATTC -AAGAAACTACAGCTTTAGGTGCTGCATATTTAGCAGGTTTAGCAGTTGGATTCTGGGAGAGTAAAGATGA -TATCGCTAAAAACTGGAAATTAGAAGAAAAATTCGATCCGAAAATGGATGAAGGCGAAAGAGAAAAATTA -TATAGAGGTTGGAAAAAAGCTGTTGAAGCAACACAAGTTTTTAAAACAGAATAAACTTGTAGATTAGACT -TTTGTATAAACATTGTGATACAATCAATTTAAGTTAATATTTGAATCGAGAAACGAGAGATTTGTTCGAA -CATGTACAATTGAAGGATTGTTTATGTGGGACAAGTCTCTCGTTTTTACATTTTTTAGGAGGCGTTTTGG -AATGGCATTGTCTACTTTTAAGAGAGAACATATTAAAAAGAATTTAAGAAATGATGAATATGATTTAGTA -ATTATTGGTGGCGGTATTACAGGTGCAGGTATTGCACTAGACGCGAGTGAAAGAGGAATGAAAGTTGCAT -TAGTTGAAATGCAAGACTTTGCACAAGGAACAAGCTCAAGATCTACAAAATTAGTCCATGGTGGTTTACG -TTACTTAAAACAATTCCAAATAGGAGTAGTTGCCGAAACTGGTAAAGAACGTGCGATTGTTTATGAAAAT -GGGCCTCATGTTACGACTCCAGAGTGGATGCTTTTACCAATGCATAAAGGTGGAACATTTGGTAAATTCT -CAACATCAATTGGTTTAGGAATGTATGATCGTTTAGCAGGTGTTAAGAAGTCTGAACGTAAAAAAATGTT -ATCTAAAAAAGAAACTTTAGCTAAAGAACCATTAGTTAAAAAAGAAGGTCTAAAAGGCGGCGGTTACTAT -GTTGAATATCGTACTGACGATGCGCGTTTAACTATTGAAGTTATGAAGCGTGCTGCCGAAAAAGGCGCAG -AAATTATCAACTATACTAAGTCAGAACACTTCACTTATGATAAAAATCAACAAGTAAATGGTGTTAATGT -TATAGATAAATTAACTAATGAAAATTATACAATTAAGGCTAAAAAAGTGGTTAATGCAGCAGGTCCATGG -GTTGATGATGTTAGAAGTGGTGATTATGCACGCAATAATAAAAAATTACGTTTAACTAAAGGTGTACATG -TTGTTATTGATCAATCAAAATTCCCATTAGGTCAAGCAGTATACTTTGATACTGAAAAAGATGGAAGAAT -GATTTTTGCAATCCCGCGTGAAGGAAAAGCGTATGTAGGTACTACAGATACATTCTATGACAATATCAAA -TCTTCACCATTAACTACACAAGAAGACAGAGATTATTTAATCGATGCGATTAATTACATGTTCCCTAGTG -TTAATGTTACAGATGAAGATATTGAATCAACATGGGCAGGAATTAGACCATTAATTTACGAAGAGGGCAA -AGACCCTTCTGAAATCTCTCGTAAGGATGAAATTTGGGAAGGTAAATCAGGTTTATTAACTATTGCAGGT -GGTAAATTAACAGGCTATCGTCACATGGCTCAAGACATTGTTGATTTAGTATCTAAACGCTTGAAAAAAG -ACTATGGTTTAACATTTAGTCCATGTAATACAAAAGGTCTGGCAATTTCTGGTGGCGATGTAGGTGGTAG -CAAGAACTTTGATGCGTTTGTAGAGCAAAAAGTAGATGTAGCTAAAGGATTCGGCATTGATGAAGATGTT -GCGAGACGTTTAGCATCTAAATATGGTTCAAATGTTGATGAATTGTTCAACATTGCGCAAACATCTCAAT -ACCATGACAGCAAGTTACCATTAGAAATTTATGTAGAACTTGTTTATAGTATTCAACAAGAAATGGTATA -CAAACCTAACGATTTCTTAGTTCGTCGTTCTGGTAAAATGTACTTCAATATTAAAGATGTATTAGATTAT -AAAGATAGTATCATCGATATTATGGCTGATATGTTAGACTATTCTCCAGCTCAAATTGAGGCTTATACTG -AAGAAGTTGAGCAAGCAATTAAAGAAGCGCAACATGGAAATAATCAACCAGCAGTTAAAGAATAATTAAT -TTGTACAATCATAAACTGGTGTCCTGTTTTAAGGGCATCAGTTTTTTTATATGAGATACATTAGTCAATT -GAAACTATGCATCACTAAATGTATGATAATAATAAAAGCGAATATAAAAACGTTGTTATTAAAGGTGTGA -GATGATGACTGAAAAACAATTTAAATTAACTGTACAAGATAATACGAATATTGAAGTTAAAGTGAATTTT -ACAGATGTAGATTCAAAAGGAATTATTCATATATTTCATGGTATGGCTGAACATATGGAACGTTACGATA -AATTAGCACATGCACTTTCTAAGCATGGCTTCGATGTGATACGTCATAATCATCGAGGACATGGTATTAA -TATTGATGAATCAACAAGAGGGCATTACGATGATATGAAACGAGTTATCGGTGATGCCTTTGAAGTAGCG -CAAACAGTGAGAGGCAATGTTGATAAACCATACATTATAATCGGACATTCAATGGGATCCGTTATAGCTA -GATTGTTTGTAGAAACATATCCGCAATATGTTGATGGTCTAATTTTAAGTGGTACTGGTATGTATCCATT -ATGGAAAGGATTACCAACCGTTAAGGTGTTACAACTGATTACAAAAATTTATGGTGCCGAGAAACGGGTT -GAATGGGTTAACCAGTTAGTATCAAATAGTTTTAATAAAAAAATACGTCCATTACGTACACAAAGTGATT -GGATTTCTAGTAATCCAACTGAAGTAGACAACTTTATTAAAGATCCATATAGTGGATTTAATGTGTCAAA -TCAATTATTATATCAAACAGCATATTATATGCTACATACATCACAATTAAAAAATATAAAAAAGTTAAAT -CATGCCATGCCTATATTATTAGTTTCAGGATATGACGATCCTTTAGGTGATTATGGTAAAGGGATTTTAA -AATTGGCGAATATATATAGAAAAGCCGGCATTAAAAATGTTAAAGTTAATCTTTATCATCATAAACGTCA -TGAAGTGTTATTTGAAAAAGATCATGACAAAATTTGGGAAGACTTGTTTAAATGGTTGAATCAATTTTAT -AAAAAATAAAGAAAGTGGAATTAAATATGAATAAAAATAAGCCTTTTATTGTAGTAATTGTGGGGCCAAC -TGCTTCAGGTAAAACAGAGCTTAGCATCGAACTCGCGAAGCGTATCAATGGTGAAATCATAAGCGGTGAC -TCTATGCAAGTCTACAAACATATGAATATTGGAACTGCAAAAGTAACACCTGAAGAAATGGATGGTATTC -CACATCATTTAATTGGTATCTTGAATCCTGATGATACATTTTCAGCATATGAATTCAAGCGATTAGCAGA -AGATTTAATTACTGATATAACGAATAGAGGTAAAGTTCCAATCATAGCAGGTGGAACAGGCTTATATATT -CAATCATTAATATATAATTATGAATTAGAAGATGAAACAGTTACACCTGCACAATTATCGGTAGTTAAAC -AAAAGTTATCTGCATTAGAACATTTAGATAATCAGCAACTACACGAATATTTAGCTCAATTTGACGAGGC -TTCTGCCAAAAATATTCATCCAAACAATCGACAGAGAGTATTGCGCGCTATCGAATACTATTTTAAAACA -AAAAAACTTTTAAGTAATCGTAAGAAAGTGCAACAATTTACTGAAAATTATGATACATTATTAATAGGGA -TTGAAATGTCGCGTAAAACATTATATTCAAGAATAAATAAACGTGTTGATATTATGTTGGATCACGGATT -ATTTAGAGAAGTGCAACAACTTGTTGAACAAGGCTATGAATCTTGCCAAAGTATGCAAGCTATTGGATAT -AAAGAATTAATACCTGTGATTAACGGACAAATGATTTATGAAGATGCTGTCAATGATTTAAAGCAACATT -CACGCCAATATGCAAAACGACAAATGACATGGTTCAAGAATAAAATGAGTGTTCATTGGTTAGATAAAGA -AAATATGTCACTTCAAATGATGTTAGATGAGATTACAACCCAGATTAAGTAAAAGGAGTCCGACAGATGA -TTGCAAACGAAAACATCCAAGACAAAGCACTAGAGAATTTTAAAGCAAACCAAACTGAAGTAACTGTATT -CTTTCTAAACGGTTTCCAAATGAAAGGTGTTATTGAAGAATACGACAAGTATGTCGTAAGCTTAAATTCT -CAAGGCAAACAACACTTGATTTACAAACATGCGATCAGCACTTATACAGTAGAAACTGAAGCTCAAGAAT -CTACTGAAAGTGAAGAATAAGTTGTAATCATATGGGCACGATTTAATGACTCGTGTACATAACGTTTGAA -GTATGATAAATAGATATAGAAATAAAGTCATATGTGACATCAATTAAATGATGCTCAAATGACAAGATAC -AATAGAGGAATGTTTGTAATAAAAACGCTTCATATAAAGGTCGAGTCAATATATGATACGACTTTATATG -AAGCGTTTTATTTGCTATGAGCTAGTATATTTTATAATAACTTTTCTATTTCTCTTTCGATTTGAACAGG -TTTTTTTTGAGGTGCAAATCGTTTAACAACGTTACCTTCACGATCCACTAAAAACTTAGTGAAATTCCAT -TTGATTTTCTCATTAAAGAATCCATGTTGTGCCGCAGTCAAATATCTAAATAAAGGTAATTGATGTTCCC -CTTTTACGTCTATTTTTTGATGCATAGGGAAGGTAACACCATAGTTTAATTTACAGTTTTGAGCTGCTTC -CTCGCCTGAACCAGGTTCTTGGCCACCAAATTGATTACAAGGGAAACCTAGAATTACAAACCCTTGATCT -TTGTATTTCTCGTATAATGATTGCAAACCTTCGAATTGTGAAGTAAAGCCACATTCGCTAGCTGTATTGA -CAATTAGCATAACGTCACCTTTATATGCATCTAATTTGTAAGTAACACCTTTATTTGTTTCTACTACAAA -ATCATAAATTGTCTCCATTGAATCATCCTTTCGATTTACTTAAAATGTACCATAAAATCGTGTAATAGTC -TTTACTAAAACTCTATGATAGAATACTTTGAGTAGGATTTTATTAAGGAGATGTATAACATGGCTCAGCA -ACAAATTCATGATACTAAAAATAAACTAGAAAAAGCTGTATTAGTCGGTGTACATGCTCAAGATGATAAG -CAATTTAATTTTGAGTCTACAATGGAGGAATTATCATCTTTATCAGAGACTTGCCAACTTGAAGTGTTGG -GTCAAATTACTCAAAACAGAGATCGTGTAGATCGCAAATATTATGTTGGTAAAGGTAAAATTGAAGAAAT -TCAAGCATTTATTGAGTTCAAAGATATTGATGTAGTCATCACAAATGATGAATTAACGACTGCACAATCC -AAATCACTAAATGAAGCTTTAGGTGTAAAAATTATTGATAGAACTCAGTTGATTCTTGAAATATTTGCAT -TAAGAGCAAGAAGTAAAGAAGGTAAATTGCAAGTAGAGCTAGCACAACTTGATTATTTATTACCTAGATT -GCAAGGCCATGGTAAAAGTCTTTCTCGTTTAGGTGGCGGTATTGGAACTAGAGGCCCTGGTGAAACGAAG -TTAGAGATGGATCGTAGACATATTCGAACTCGTATGAATGAAATAAAACTTCAATTGCGAACGGTAGAAG -AACATCGCGAAAGATATCGAAATAAAAGAAATCAAAATCAGGTGTTTCAAGTAGCTTTAGTTGGTTATAC -AAATGCTGGTAAATCATCATGGTTTAATGTTTTAGCAAATGAAGAGACGTATGAAAAAGATCAATTATTT -GCAACGTTAGATCCTAAAACACGACAAATTCAAATAAATGATGGATTTAATTTAATTATTTCAGATACTG -TTGGTTTTATACAGAAACTACCTACGACGTTAATTGCAGCTTTTAAATCAACTTTAGAAGAGGCTAAAGG -TGCAGATTTATTAGTACATGTCGTAGATAGTAGCCATCCTGAATACCGTACGCAGTATGACACAGTTAAT -GATTTAATCAAACAATTAGATATGAGTCATATTTCTCAAATAGTTATTTTTAATAAAAAGGACTTATGTG -ATCATGCATCAAATCGTCCAGCAAGTGATTTGCCTAATGTTTTTGTTTCATCTAAAAATGATGGTGATAA -ATTACTTGTTAAGACTTTATTTATTGATGAAATCAAAAGGCAATTAACTTATTATGATGAGGCAATTGCG -ACGAATAATGCAGATCGATTATATTTTCTAAAACAACATACATTAGTGACTGAACTTAAATATGATGAAA -TTGAAAATGTTTATCGTATAAAAGGATTTGAAAAATAATAAAAGGACGAAATTCAAATGAAAGATATAAG -TAAGATAGTAGCTGACGTCGAATCAACGTTAGCACCATATTTTAAAGAAATTGAAGAAACTGCATATATT -AACCAAGAAAAAGTATTAAATGCATTTCATCATGTCAAAGCAACCGAAAGTGATCTACAAGGATCAACAG -GATACGGGTATGATGATTTTGGACGTGATCATTTAGAAGAAATATATGCGCAGGCATTTAAAGCAGAAGA -TGCAATTGTTCGCCCACAAATTATTTCAGGTACGCATGCGATTACTATTGCATTACAAAGTTTATTAAAA -CATGGTGATGAATTAATTTATATAACGGGAAGTCCATATGACACTTTACTTGAAGTCATTGGTGTAAACG -GAAATGGTATTGAAAGTTTAATGGAGCACGGCGTATCATATAAAGATATTGCACTTAAAGAAGGTAAGAT -CGATATTGAAAGTGTGTTAGATGGGATTTCTGAGCGCACCAAAGTAATAGCGATTCAACGTTCGAAAGGC -TATGATCAAAGACCTTCAATTCCTCTAAATGAAATTGAACAGGTGATTACTAGGTTGAAAGAAGTGCATC -CTAATATTTTAATATTTGTGGATAACTGTTATGGGGAATTTGTTGAAAGACGTGAACCTATAGAATGTGG -TGCCGATTTAATAGCAGGATCATTAATTAAAAACCCTGGCGGTGGTTTAGCTAAGATTGGTGGATACATT -GCTGGTAGAAAAGATTTAATTGAACGATGTGGTTATAGATTGACAGCACCTGGTATTGGTAAAGAAGCGG -GTGCATCATTAAATGCATTGCTTGAAATGTATCAAGGTTTCTTTTTAGCACCACACGTTGTCAGTCAGAG -TCTTAAAGGTGCATTGTTTACTAGTTTATTTTTAGAAAAAATGAATATGAACACAACGCCGAAGTACTAC -GAAAAACGAACTGATTTAATTCAAACAGTTAAATTTAAAACGAAAGAACAAATGATTTCATTTTGTCAAA -GTATTCAACACGCATCCCCAATTAATGCACATTTTAGTCCAGAACCTAGTTATATGCCTGGTTACGAAGA -TGATGTTATTATGGCAGCTGGTACGTTTATTCAAGGTTCATCGATTGAATTATCTGCAGATGGACCTATT -CGTCCTCCTTATGAAGCATATGTTCAAGGAGGATTAACATATGAACACGTTAAAATTGCTGTGACAAGAG -CTGTTATGCAGTTGAAAGAACAAGGACTTATATAATAGATTAAATTTCACCCTAAATGATAATATGTTTT -GGGTGAAATTTTTTTGCGAATATTTATCAGATTATTTTTAAAAATTGAAAAAATATTTTAGCTGTAGGTC -GTTTTATGGCGTTTTAGAGGTCGAAATCGCAGTTATATCAATGTTTTGAGCTTTATGTTAGAAAACCTGA -CATATTTTTGAAATCCTAAAAAAATTATGATAAGTTATTAACAAGTTCAAAAGTAGAGGAGAGGAACAAT -GATATCGAATGATGCAATCAGACGAAATATGGCTGTCTTCTCTATGAGTGTAGTAAGTAAGTTAACGGAT -TTAACGCCAAGGCAAATACGTTACTATGAAACACATGAACTCATCAAACCTGAAAGAACAGAAGGTCAAA -AACGTCTGTTCTCACTCAATGATTTGGAAAGATTACTAGAAATTAAATCATTATTAGAAAAAGGATTTAA -TATCAAAGGGATTAAACAAATCATTTATGACTCACAAGAGCATTTAACAACAGATGAACAAGAGATAAGA -AAAAAGATGATTGTAGATGCCACGCAAAAGCCTATTGGAGAAACTTTGCCAATAAATCGTGGTGATTTAT -CCCGATTTATTAAATAAAATTTGGAGGATTTTAAAATGCCAAAACGTACTTTCACTAAAGACGACATTCG -TAAATTTGCAGAAGAGGAAAATGTAAGATATTTAAGATTACAATTCACTGATATTTTAGGAACAATTAAA -AATGTTGAAGTGCCTGTAAGCCAATTAGAAAAAGTACTTGATAACGAAATGATGTTTGACGGTTCTTCTA -TCGAAGGTTTCGTACGTATCGAAGAATCAGATATGTACTTACATCCAGATTTAGATACTTGGGTAATCTT -CCCATGGACTGCTGGACAAGGTAAAGTTGCACGTTTAATTTGTGATGTATATAAAACAGATGGAACACCA -TTTGAAGGGGATCCTCGTGCAAACTTAAAACGTGTATTAAAAGAAATGGAAGATTTAGGCTTCACAGACT -TTAACCTAGGGCCTGAACCAGAATTCTTCTTGTTTAAGTTGGATGAAAAAGGGGAACCAACTTTAGAACT -TAATGATGATGGTGGATATTTCGATTTAGCACCTACAGATTTAGGTGAAAACTGTCGTCGTGATATTGTT -TTAGAATTAGAGGATATGGGCTTCGATATTGAAGCTAGTCACCATGAAGTTGCCCCTGGTCAACATGAAA -TTGACTTTAAATATGCAGATGCTGTTACAGCATGTGATAATATCCAAACATTTAAATTGGTTGTTAAAAC -AATCGCACGTAAACATAATTTACACGCAACATTTATGCCTAAACCATTATTTGGTGTGAATGGTAGCGGT -ATGCACTTTAACGTTTCATTATTCAAAGGTAAAGAAAATGCATTCTTCGATCCAAATACTGAAATGGGCT -TAACGGAAACAGCATATCAATTTACAGCAGGTGTACTTAAAAATGCACGAGGATTTACTGCTGTATGTAA -CCCGTTAGTAAACTCATATAAACGTTTAGTACCTGGTTATGAAGCGCCATGTTATATTGCATGGAGTGGT -AAAAACCGTTCACCATTAATCCGTGTACCATCTTCAAGAGGATTATCAACTCGTATTGAAGTACGTTCAG -TTGACCCAGCTGCGAACCCATATATGGCGTTAGCTGCAATTTTAGAATCTGGTTTAGACGGCATTAAAAA -TAAATTAAAAGTTCCAGAACCAGTTAACCAAAATATTTACGAAATGAACCGTGAAGAACGTGAAGCAGTA -GGCATTCAAGACTTACCTTCAACACTTTATACTGCATTAAAAGCAATGCGTGAAAATGAAGTTATTAAAA -AAGCTTTAGGAAATCATATCTATAATCAATTTATTAATTCAAAATCAATTGAATGGGATTACTATAGAAC -TCAAGTATCTGAATGGGAAAGAGATCAGTACATGAAGCAATATTAATACGCTAAACAATGATGGGAAATC -AGTAATATCAAGGGCTAGAGCGTTTTGCTTTAGCTCTTTTTTGATTTGGAAAGGTGGAATTTCACTTGAC -CACTTTTGTAAAAAAATGGATTTGGTCAAGTTTTGGTCAAGTAAATGTTTTATGTATTTATTTTTTTAAA -GCTGGGGAAGACCATTTTATATTTTAGTTCACATGAATTTTAATATATTTGGAGGTGATGAGATGAGGTG -ATAAAAGAACGTCGCGAAAACGTTGAGTATTACTTGAAAATAGCCACATTCATATTACTTCTCATCGAAT -TCATTCGCAGAACGTTCTAAGGTAAGACCCCGAAAATAGGGGCCTTACTACTCATTATTAAGGGGGTAAT -ACTATATGAAAAGAGAAACAAAACAAAAAATATCTTTTTGTTTATCGATCGGTATTTTCATTTTAGTTAT -ACTACTATTGATATTCTAAAAAATTAAAAATTTTTGCCTCATCTAATTTATGAATTGCTATGATGAAATA -TACAATACAATCAAAAAATTGATAGAAAACAAAGAGATAACGAGTTATCAAATTAATAAAGATACTGGGA -TAAGTTACGGTAATATTAATGCTATGCGCCGTGGAGAAAGAAGAATAGAAAATTTAAGCTTAAAGAATGC -AAAGATCTTATATGAATATGCGAAAAAGGTATTATAATATAAGCATTGAGTTCAATAGGCATACAATAAC -TGCCCAAACTAGTGACTGAGTGGGTGTTTTTATAGTATGGCAGTGTGTCAATAGAAAAATGAGAATTTCT -TAAATTTTTTTAATAAATATTACTAAAAGAGTACAGAAGAAGAAAAAGAAGCATTTTACTAGTAATATCT -GTCAAAAACCACAGATTTAAATAGTATGCTTCTTTTTAGATTATGCATTTTATATACAAAATTTATTCGT -CCTGTCCTTCCGCGCTCATTGTAAACCATTCGCTTAGATGAACCTATATTAATTGACGGGTTCGTGCCTC -ACACAGTCATTTAATATAGGTTCACAATTTTGTGTGCTTACATGGTACTTTAGCATTTCCTCACTCGATT -TATAGTCAAATATCATTCGAGGTCGTGCATTAATTTGTTTAACAGCTTCATCTAATGACTTTTGTGTTAT -ATTTGCAAAATCCGTACCTTTAGGATAATACTGTCTTAAAAGTCCATTTGCATTTTCAATGGAACCACGT -TGATATGGACAACCCAAATCACTAAAATAAATACTACAATTCAATTCATCTTCTATTTGTTTAAATAGAG -CAAACTCCTTACCTCTATCCATAGTTATACTTTTGGGTAATAATGGTTTCATAATATTTATAATCTCATT -ACAAACTACATTGGATTTACGTGTATTTAATCTACTAGCATATAAATATCTTGTTTTTCTTTCAATAATA -GTTAACAAGCAATATGTTGATGGTCTAACACTCCAAACAGTATCAATTTCATAATGTCCAAATTCTTCAC -GATTATTAATACTTTTTGAGCCGATACTTTATAACACGAGACCCTACGTCTAATTTGCCACGCTTTTCAG -AAGACTTATTATATTTCTTGCCTGCTTGTCTCATATCACGCTTAACATCAACTTTTACCAATCCATTGCG -AATATATCTATATATAGTAGGATAACTTATATAATGCCCTGTATCTTTTTCAATTTGACTTGCTATCTGT -CTAGGAGACCATTTTAATGAAAGTTTTTCTTCAATATATGCTTTTGTTTCATCATTCAAACGTCTACGTT -TAGCAACTTGTTCATCTGAAATACTACGCGATTTTATAGCATCTTCCTCAGCTAATAAAGGATTATAAAC -ACCATCAACAGAACGTTTATTTACTTCTCTATAAAGAACCGCATCATCACGACCTAAAATCTTAGAAATC -TGAATGATGTTTAAACCATCATTTAAATACTTTGCGATAGCTAGACGTGTTTTATAGTCTAATTCTTTAC -GTTTTTTTCTTTTTTTCATGTATATCCTCCTTTACTTTTAAAAAGGTTATTTATAAAATAAGTTATAAGA -GGATATATGTTCATCAACTCCCAATACCACCGCTAAAGCGTATAGGGAGTTGATTCTTTATTTTTTCATA -TTATTTTCTTCATAAACTGGTTTATTATCTTTCTCAAACTTTTCAGGATCAATATTAGAATCTTCTTCAT -ATTGATCGCTAGTCTGATTTATTTTATATACTCTTGAAACTTTTGTATTACTATCTTTAAAAGGCATATA -AGTCATTATAATAACCTCACCATCATTATAAATCTTATAATAACTTTTTGACCGCTCAACATTTTTATAC -TTCTTTGTATTTTTCACATCTTGAATACTTTCTTTTTCTAACTTTGTAACTTCATCAATTTCTTTATCAT -ATTTCTGACCACATGCAGATAATAATATAACTAATCCTAAAATTAATACAAACCATCGCCTCATGATAAA -TTCACTCCTTTTTACGTAAATTATATCATTGCTATCGTCTTGAAACAAACTAACGTCCTAGAGGTTTTAA -ATTGAAACGTTTTAAATTATCAATACGCCAACCTTCAGCTGTACGAACTAAATCCAATTGTGCAGATGTT -TGACGATGTTCAATTTTATCATCTCCATCTGTTTCAATACGTTCGTCGAACTGAACAAAAACTTTATAAC -TATCTTTTTTAGGATCATAAGTATCAAAATAAACATGAATATCATTAACCGTTATATCATCATATAAATC -ATATTTATCTTTAGAATCCTTAAATAATGTATCGTAATAATCCTTTGTAACTAAAGGCTTTATTTGTGGT -GCTTTTGATTTAAAAGAAGAATCTTTTTTCATTTCAAACATCTGTTTAACAAAATTTGAAGAAACTTCAC -GTATTTGCTTTTCTTCATCAGAAATAACTGTTTTTGATTGTCTCTTTACTAATTTATTTAACTCTCCATT -TTTATCTCTTAATATACGTTGTTCTTCCTGTAAATCTTCAATTTGATTTTGTTTCATTTTAACTTGTTGT -TTAGGAATCTGATAACCAATTAAAACAGCACAAAATAATATTACTGTTACAAGAGTAAACATAATAATTT -TTTGCTTCATTTATTTTCACTCCTTATCATGAATAAAACTATATCCATCAGTCATTTTCAATGTACGTTC -ATTAACTTTAAAAGCACCTTCCCAATTCATTTCTGTTATTCTAAATGTTTTACCACCATCACTTACACCA -ATAACAACAGCCACATGACCATAATGCCCATCATGACCGCCTGCACCTTGTTCAGCAATAAATAATGCAC -CAGGTTCCGGATTTTTATCAACTTTATAACCCTCAGCCTTAGCCCTATCATTCCATTTATGTGCATCATG -CCAATAAGTTGATACAGGTTTACCCATTTTTTGACGCATACCGTATGCATACCAAGTACATTGACCAGCA -GTGTATAAATTACCTTTTCCAGGGTCATCATTTGACCAATGTGGCAATTTACCATTAAACTTTATAGACT -TTCCTTTACCATTACTACATGACGTTTTAGCTTCTGAACCGCCTAAATCTTTCATAATTTTTTCAACTGT -TGGTATCCAACGGGCATTCATATTATTAGGGTCATTTGACGCACCAACAGGCGCATATTTGGGACCTATT -TTTTTAGGAGTATCTAAACCTTTAGAAATATAAACATCATACAAATTTTTAGCTCCCGCATTAAGACCGT -CTTCAATAGTTGGATATGTTGAATCATGAATCGATTTTGAACCCATAACAGACAAAGGATTATTTTGTCT -TGTCGCATTTTCTCCTTTACCCCATTGTGATTCACTCGCAATAATAGCCATAAAAATATTCACAGGTACT -TTATTTTTTTCTGCAATTTTCTGTATTTCTTTTCCTTTACCCTCTAATTTTCCACCTTTAGCATTTTCAT -TAAACTTATCAATACCATTTGCCGAAACATTACCGCCACTAACAGTACAACCAGCATCATCTTTATCTTT -ATTTGAATCAGGCGCTAACAAAAACATTACAATTACTGGAAATGTAAAAAAAGCCACCACACACAAAATG -ATGATGACTTTCGCTAATTTCAATTTAACACCTATTGGCGTTTTACCTATTACTTTTTTAGCAATATCTT -TTTTATTTACCATGCTTATTGATATCCTTTTGCTCTTTTAGACGATCTTTTGACTGAGAATTACGTGTAA -TAGGTTGATTACGATTTCCAGATTGTCTACTTTGTTGATTCTGTGTCGCATTTTGTATTTGTCGTTTTTG -AACATCAGTATCATAAGCAGTTTGAACTGACTTCTGTTCTTTACGATTTATTGAATGATTCTCATTATTT -AATGGCTGATTAACCACTTGTGGCGACCTTTGTATATCTTTTCGCTGTCTTGTTTCTCGTACTTGATGTT -CTTGCTGTGATGCTTTTTGTGGTTGTTTAGAATAATTATTTGCATTCGATTCAACAGAAGCAGATTTTAC -ATCGTTACCATTCATTGACTCTTGTTGTTCTCTTCGCTTATTACCATTTTTTTGATTTTCTTTATTTATA -AATAAAGGCATTGGTTTATACTGCTGTCTTCTTCTTAAATCATTATCATTTTGAAGTGGTGGGGCGGGTT -CATCTCTTTGATTTTCTCGTTTAGCTTTCTTATTTTGCGCTTGTTCATGACGAATCTTATTAAAACGTTC -TTGTGTTCGATTCATCACACCAGCACCAATTGCACTAGGAGAAAAACTAATATTACCACGACTTACAAAA -TTGATAATTTGAGCCCGTTTTTTATACATTACAAACAATATTACAATTATAAATATTGAATTTAAAAAAT -AAGCATTTTGACTATCCGGATCAATAAAACTATTTGCAAGCTTGATACACAAACCAACTATCACAAATAA -GAATGTCATACAGGCACTTAAAATAATATAGCCTAACGTTTTTGCAAACGCAGAGAAAACAGATAATTCA -AATCCTGGTATAAAACTCACTATCCAACTGAATACTAAAAATAAGAATAAAAATAAAGCAAATGTAGAAA -AAATCAACTTCGCAAAACTTATTGATAAAAATACTATCGACATAAAAAGTGTAATAATAAAGCCAATCAC -TGAAATAGCCAACTTTTGAAATACATAACCTTGCGTCATATATTTATTATTTTTCTTTTCAACCTCATCT -TTAACAATATCATCTAATTCTTTTTCTGATTTTTTATCATAATCAAGTTTTAAAATGTTATCAATACGGT -CTTTACCTTTTGCTTTTATCTCTTTTTCGTCTACAGTTCCATAATTCATTACTAAATATGTTCTATATAT -CGTCATATCAAATAATTGATTACGTATATGATTCATACCTGAATTCTCATGAATATAATCAATATTACCA -TCAATAGAAGATGTACTATTCATAATTATATTATTTAAGTCCTTACCAATATTGTTTGTACCACGTATAA -TATTACCTGCATTCGCAAGTATACCAACACCAAAACCAATTAAACACATAATTAAAAACGCCCGTTTTAA -TGCTTCTCTTGCATTACCTTGTACACTAAAAATAATAAATGCGTTAAAGCAAACAATAATAAATAATGTT -ATTGCCAAATTACTCAATAACTTTTGATATATATCGCCAACAAAATCGCCGATTTTATCCGCAAAATCAT -TAATAACATCTAGTTGAAATAAATTTTCAATCGCATAATCTGTAACACCTGCTAAAATCTTAGTCATAGA -AAAGAAAAAATCTGACACATTATTAATTTGTCGTGAAATTTCTTCTTGACCAAACGGATTCCAGTCGCCT -TTTTCACTATATATTGAACGATAATGTGATAAATCATACTTTTCAATTTTTGGCTTAACTGCATGTGAGG -GCTCTCCAACTGGATTAGAAACAGCGTAAGCACTCACAGATGTTAAAAGCAGAATAGGCAAAATTAAAAA -GCATAAAAGATACACACTTTTATGCTTCATCAAATCACTCCTTATTTAATATTTGTTTCACATCTTCCAC -AAAATCATATTGTTCCATTAAAGGTGCATCAAATAAAATTGGTTCATTATATTGTCCAAGTATAGAAATA -TAACCTCGACCGATGTCACTATCATGAATCGTTTGAAATTCTTTATCAGTTTGACCAAAGGTCATACGAT -AACCATCATTTGACAAATTACCTAAAGACACACGTAACCCTAATTGATCACGCACATTACCTTTAATCAC -ATCTGCATCTGGTCTTTGTGCTGTTAAAAACATAAATACACCAGCTTGACGACCTTTCATAATAATATTA -ATTAAATAATCATTCATTTCTTGTAATTCTTTTTTATCTAAAGTTGAAGTAAAAGCCGTTACCTCATCAA -AAATAATGAAATAGGGGCGCATATCAAAATTACGGAAATCATTCCCGATTTTATAATCCGAACTATCATT -CATTAATCTAAAACGCTCTTCCATTTCATTATTAGCTTCTCTCAATTGTTTTAATATTTGACCTTTAGTA -TCTGCAACTTTATCATCACCAATAACGCGCTTCATAAAGCTCAAATCTGAAACTTTTGGATCTAATAAAC -GTACTTCTGAATGTCTACGGAATAACTCACGAATCACATAAAATAAAAAATATGTTTTACCACCTCCGGT -TATACCTGTAACCAATCCATGAGGTGCTTTCACAAAATCCCAAGTAATTTGATGCGTAATAGCAATTTTT -GTATCATAAAAAATTGTATTTGATTCTTGTTCGCCATTCATAACAATACGCTTTTTATATTTAAGTGGCA -TAAATTCATATCTCAAATAACGACCAATATGCTTTTTTTCTACTAATTCAGAATTAAACATTGGTTCAAT -AATCGTTTCTAACTCTAAATAATTATCTTGAAACCTCGAACCGTCTTTTTTAATATGAATAACAAAAGTT -TTTTTACCACGTTTATAAAACATCGTTGGATAATAGTCATATTCAGTTTGTTTATAATCAATAGGGATAT -ACTCGGTTGTTTTCTTGATTACTGTACGATTATGAAAACCTTGTGTTTCAATCATTTCAGCTAAATCTTT -TGTTTTAAAACGAATTAAAAGCTGAGCGATAAGCTTACATATAACAAATATAATTGCTGTACCAATTAAT -AAATACAATAAATGCGGTTTAAAATATGCAAACAACGTCCATATATCCAATTTTTTATTAACTGATTTAT -AATCAATAAACAAAATGTATATACGATATACCAAAAAAATAAATGCTAATACACCTGCAAACATAAAATC -AATATACTTCTGATAAGGCTGTATACGTACGCCTTTAAATAAAGCAATTTCATTCATTGCCATCAAATCC -ACTCCTTTAAAATAAAAAGCACATACTATTTTGTATGTGCTAAAAACTACATCGCAAATTTTTCTTCAGC -TTTAGAGCTTGCAGAATCTTCTTGTGTTCTAAATGCTTCAGTCATTTCCTCAAATGGACAATGTACAACC -ATTTTTCCAACACGTCCATAAAAATCACTAAATATACATTGACCTTTCTTCAAATCTTTCAACATTTCCA -TATTTTCAGGAGATTCTTTTGAATATTCTAAGCCTAAAGATTTTAAAATATCCTCACGTTCATCTTTTTC -ATCAAATGCAAAATGACAACCAAAGTTACCACCATCATCATCTGCTTTATCTTTTACCGATTGTGTAATA -AATACAAGTGAATTATTCTCAGAACGTCCCGTTCTTTTTATACGCTTACCAACTTTTTTACCTTGTCTTG -AAGCACTAAAAGCCCAACCCTCATCAATAAATATAGTCGTTTGAACATCTCTACGAGAACCGAATTTCTC -TAAAAACTTACCAATTAATAACATTAATGTAATCCCATTTTTCTCACTTGTTGAATAACTTGATGTATCA -TCATCTGCTTTAGGCATATCTAAACCTTTAACCTGTAAAATAGTTGCTTTTTCTTGAATATTTAAAGCTG -GATTCGTACCATCACTAAAAACAAGTTTTAAAATATTGTTTTGCGTTTTTTCAAATAATAAATCTCCTGC -ATTTTTTACATGCTCATCTTCATTATTCTGTAATTTTTCAATTACATTTAATGAACCAACTTTTTTACCA -TTTTCACGTTCTTCAACCGTATCAGAAATAGCTTGATAAATTGCCGTTTCAATATGATGATAATTTTCAA -AAGATTTAATTTCATCAAACACTGATTTCAACATCTCATTAGCTTCAATACCATCTAAAAACACAATAGG -GTCTAGACAACCATAATTGGTTGAATCTTCATAATTCAATGTTACATATTTAAATGTTTTTAAATGATTA -ATAAATAGGGGATACTTTTCTTGCATTTCCTTACTTTCTGTTACTCTGTCAAACCATTCTGCAAACTCAG -ATTTTGGATCCCAGTACAACATTTGACCTTTAAAAAATGATGTATAAATCCATAATAATTTTGCTAAAAA -TGATTTACCTTTACCAGTTTGACCAGTAATTAAAACATGCGGACTATCACTGACAGCCCCTTTAATACCT -TTTGCGGCCAACAATAAACTAAATAAAATTATATCCCTTGAACTTGCAACAGCTTCCTCACGTGAAACAG -AACGAATAAATTTATCAATACGCCCTATATAAAAACCTGTTTTTGTTCCCAAACTTTGAGACACACCAAA -TAAATTTTCTGCTATACCTGTTGCCGTAGTTCTTTGTAACCAATACTTATTAATAAACAAATCATTACCA -TGTAAACACTGATAAAACAATTGTAACTGGTCAGCTAATGGATTAACTGCATATATTTGAGTTTCCTTTA -ATCGTTTCATCAAACGCTTTGCTTTACGTTTACAGTCTCTATAATCATCACTTTTAATTACAAACATAAA -TACCCACTCAATAAATACACCTGAGCCAGTCACTTCTCGTTCCATTTGATTCAATACAAACAAATTATCT -TGAACATCTTCCGAAGCACTATCGCCAGTATCTTGCTTTTCTTTTGCTTGTTGTTTATGATTTATTTTCG -CACGGTCAAATTTTTTCTTAACTTTTTCATTATTAATAATTTTTGCTTTTACATGACATTCAACCGGAAA -AGGCATATTTTGAGCTTTCTCAAATAAATGTGTATATTCCATATCTAACGGAAAATCATCAACAACAACT -GTTGTTGTGTAAAATTTTTCATTATCATTTTCAACTTCTAAAACACTCAAACGAGTAGGGTCAATTACTG -CATTATAAATATCTGTAATAGCTCGTCTTGAAGATTCTTCCTGTACGTCATGTGTTGCATTTGATATAAA -TGGCTTCCGAATAATATAAGCCAGCTCATTCTCAGTTAAACGTTCGCCTCCAATACCTAGAAAACTATCA -GCCAAATCTCGTTCAAATGTTTTATACTTATCTAAAATTTTATCGTCTAAATTCACATCAAAACCAAAAT -TCGAAACAATACGCTCAGCCGTATCTGATAATGTACTTTTTAAAATCTCTTTAAGTGTAACTGCATCGTC -AGCTAATTCACGTATTTTAACACCCATAACAAAAGAATTATGCGTAATCATTTGTAATTCTTGTTCTAAT -ACGTCAATAGTTTCTTTTGAATAATATTCAGCTACATTAAAAGCTTCATCATCAAAATCTTTACTAATTT -CTTTAAATTTATTTCGCAAATCTAAATCATGGTCATACATTTCAAAATGAAAATCTTGATAACCTTTAAT -CGACTCTAAAAAATAACGCATACGCTTTTTTGATTCTTCTTTTGCATCATAATTTGCTGTTGAAATAGAC -TCAGAACGAACACGATAATACGCCCAAACTTCGCCAGTTTTCGTTAATAACAAATTATCTCTTAAACCTG -CATACGGTGCTTTTAAATTCATGTCATCCCTCCAATAAAAATAACCCCAATAGGGGCTATTTAAATGTTA -TTTTTTTATCATGATATTCTACTTCTTCATCATAACTTAATTTAACTTTTCTTAACTGAACATTAAAAAC -AAATATTACAAAATCCCATAAGAAGAAAAATAATTTCTTACCATCTTGCTTTAACTTAACAATATATTTC -GTTATATAATAAGGGACAACCGTAAAGTAAATAAACATAAGTCCACCAATAGACATAATGACAGGCTGTA -ATAAATACCAAAATAACAAAAATAATATAAACCATACAATCAAAAATGTAGCCCAAAAATCTAAACGAAA -ACCCTTATTAATACGAAATTTATCTGTAAATTCATACATCACTATCGGTTGTTCAAAAGTCCGTTTTAAA -TTATAAGCTTTTTTATCCAAATGGAATCACCTCAACCGCCAAAAATCATTTTCCAAACACCTGCAATCGC -ATTAAATACCTGTTCAGGACCTTTAGAAACTAAGAATAAAAAGCCACCAACAACAAATAATATAACCATA -TGCCCATATTTACCACTAGCCCATTTTACAATACCAACAACCAATACTACTAAACCAATACCCGTACCCA -CTTCATTACTTATCCAGTCACCAACTCCACCAAGTGATGGACGGTCAGCACCTAAAACTAAAAAATTAAA -TAAACCACTCATAACATTAACCTCCAATAGAATTAGTCATATTTTTAACGTAATATTTACCATCTTTTTT -CGTTATATCTAATGTGTAATGTTCCAAATTCTCCAAAGGAGAATCTTTATCTTTCATCAAAATTTCAACT -TTAGCAACATAATCATCGCCTTTTGGATATAATCTAATTTCTCTTATTTGAGAAACTTCTCTAGTTCCTT -CTAATCCCTCAGGATTATCCATTAAATAAGCCATATCATCAGACTTACTAGAAGAATATTTATTAAAGAA -ATCTTCAATAAATGCTTTTGCTTTCGGATTATCTTCACGTTTATTATCTTTCAAGTTATCCTCAACCATC -TTAGCTTTATTTAATTGACTATCAGGAATTGGAGTAAAATAAGGATATTCAACAACAACATACTTATTAT -TCTCACTCTTAATAGGTATATTAATTAGAATATTTTGATTTACTTTACGTTGCTTTTCTTCTGTTTTTGT -TTCATACTCATCTTTATCTTTATCATTTTTCTTTTTCTTCTTTACTTTAACTTCTTTTTTTTCAGTAATA -TTCACATCATAATTAACAATATACTGTATAATCGTTTGTTTATCTTTACGTTTAATATTATAAAATTCCT -TACTATTTAATTTACGTTCAGTATCTGATGTTTTTTCTTCAGGCTTTTTATAATCTGATGGAAAATATTT -CAATAACTCTTTTTCTCTAGATTCTAATTCTTTTGAGTCTTTAGAAATATTCATATACGTATCAATAAAT -TTATCAGCATATAACTTTAATTTAGGACTATACTGAACTGTATTCGCATTATCTTCATACTTTTTTTGGA -TCATATTCGTTTTATTAACTGCTTCTTTACTATCATTATTTGCTCTTGTAGCTTTAATAAAAGAAGCTAA -TAAAAGAATTAACAAAATAGCTAATAATGAGTAAAAACAAATTACAATCATCTTACGACGATTTTTAAAT -TTTGGAATTACTCGGCGTTGTTCTTTAGGAATATCAAAATGCTTTCCGTTTTTAGAAAATCGTGTTAAAA -TGTACTTGCTTATTATTTTCATAAACGATTTTCTAAAATCCTTTACGAAATTTTTAATAAAAATCACATC -CCAGTTATTTTTTTAACACTTATCTTTTGATAAGTGCTTTTTTTGTTTTAAAGCCTCCAAATAATGATTA -ATTCTATTCGTATGCTCATCATTAAATTGTGAATGCGCTAAAATTTTATCTAAAAAATCAGTATCTGTAA -GCAACCCCTCAGATTGCGCCATACTTTCGGCAGTTAACACTGTATCTAAAGTAGTAGCAACTTGTTTACA -TAACCAATCAAGATTATCCTCAATGGACTTTAATGTTGGTCTAGTAGTTAAATTCAATTTTTCAGTATCT -TTAATAAATAACGCCCAAGGTCTATATAATGGCCACCGCTTACGATTTTTATCATTTCCATCTTTAGGAG -GGGAGATAAAACGCAAATTATTATGCAATATAGACTTTACAATTTCGCTTATATTATCTGTTCTACTCAA -AACTTTCGCACAATTAACTGCATATGCCTTTCGCATTTGTATTTCATAACGATTCCATAACCCAATGTCT -TCGACATCACAATGACGTTTAAACGCTTGTTCATAATTCTTTTCATAAAAACGACAATATAAATTGCTTT -GTTTAGAACCAATATAAAAAGTAGCGCCTTTACTTCTTCCGTCTGACAAATTAAAACCGTTTATTGCGCT -TCCAGATCTAAAACGTGAAACACACTCAGCTTTTTCAGCCTTTTTAATTAATAAAGGCACTTTTAAATAT -GTTTTATAATCATCAATTGCAATATCAATTCTTGTAAAATTTGCATTAACTGATAAACATTTATCAAAAA -AATCTTGCCAAGTTTTATTCAACTGTTGTAAATGATGTTCAAACTCTCTACAACCTGTACCAGTTAACTG -TAAGTGAATGCCCATTGATTCATCATCACTTGAATAATACAATTTAATGTTTGAAAATTCATAACCGCGA -TTATAAAAATAAATGCCACTATTTCGTTTTTTGAACAACGTTATAGGCAAACCGATAACGTCCTCAATTA -CTGCTGAAATAGGGGTTATATGGAAAGTGACCTGAACCCAGTCAACAACTGCCTCCACGGCACTTTTATT -TGTACGCTCTACCCCCCCTATTAGTAAGGGGGGTACACTGGTTTTTTAAAGTCATATTTATTTATGCCTC -CTATCAAATCGCAAGCGATTTGATACATGACCGTTCTCGCTTTTTTAACGCGTATTTGTCGCAGGCTCCG -CCCAAATGCTTAACGCACTCCGTGCTTGCATTTCTGCGCCTGCATACGCTAAAAGCTACACGGTCATGTT -AAATCACTAATACTATATGTTAAACATCAATATCGCCAATATAAATACAATCTTCCAAATTAACTTGTAG -CATTCTGCCATGTCCTGCTTCACTCAAGCTCATACACAATAGACAAAGGTCAGCGTAAATTTTAGGCCGA -CCTTTTACCGTATTTTCTTTAACGTAACTATCATTAAATTTAGACTGTATTTCTTTAGCTAAAGTCATTA -ATGAAACTTTATCGCCCCAATTTATACGACTAGCAACATAGTTTAAAATAGGTTCACTCAAATTTGAACT -ATTTGTGTAGCGATATAATCTATCTGCTGTATAATAATCCATTTACATCACCTAATTATTTTTGTTTAAG -TGCACTATTAGAACCAACTACTTTAATATCTTCTGCATTCCAGCTATATGCGATAGTTCCAAAATCGCCT -GACATTTGAACATACATTTTAACGTCTGGTTCAACTAATTCGCATTCTTGTAAATAGTCTAATTCTACTT -TATTAGGCGTTTTAACAGTGATTTGTTCGCCTTGCTCTTGACTCGCTAATTTATATGCATAAACAGTTTT -ATCAGTACGCTCTCCATTTTCATATTTATATTTTTCATCTACACCTAAAAAGTTTAATTGTCCTAAAGTT -TTTTTAATATCCAATACTGGTTTCATAATATATCCATCCTTTACAAAATTTTTAATAAAATTAAACGACT -TCTAAAGGGTCGCACGAATAGGAATAACTCCCGCAAATCCGTACCACTGCATTTTTGATAATGGAGTGTC -TATGCTTCTCCTGACCTATCATATTTTTAATCAAACCTATCGGTTCATCACCTCAAAAAATTCTAAGTCT -TCAATTGAAATATGATACATCTTACAAATAATTGTATAAGACACACCATATTGTTTTAAAAATTTATAAT -CCTTATAAGTAAATCGATAATCATTCTTTTTTGCCATTTCACAAACTTCTAATATACGAAAATATGCAAA -ATTATACATTTTACAAATTTTTCTTTTAGAAACACCATGAAATCTTAAAATTACAAATTTACGATAATTT -AATTGATTTGAACCATCAAAAAAAGGTGTAAACTCAGTCATAATTATCAATTCCTTTCATAAGAATTAAC -TGTTAACTAGAGTTTACACCACCTATTAAAAGTTTTCTAAAAGTGAAAGAAATCATGTTTAGTGATTTAC -TTATGTTTTTCAAAATAGTATAATAATTTTATATAATATATAGAACTTCAGTATACCTTTTGAGTATATA -TGGAGTTCTTTCTTTTTTACAAGATGTATATGTATAAATGGAAATGTTTATTACATTACATAAAAACCTT -TAGGTGCTCTTAGATGGATGTTAATCATAAAACAAAGTGATTTTGAAAAATATAGGTTATTATAATTTAG -AATTGCAAATTATAAATCTTGTCATTGGATATGGGAATTCAAACATATCACTTACAACAATTTGTGGAAT -GTTAAATAACTATAAAGAGGAAAGGAGAAAAAATGATAAGAATGGTTAAAGAAAAAGAACGAATAGCAAA -ATTAAATTTCGAATAGCTGTGACGAGCATAATAATTCAAGTGCTTAATTTTATCAAATCGTTCTTTTAAA -AAGGTAAAGAACAAAAGACCTTTACCACATTAAATAGGGAGGTGGTATTTATGACAAGAGAATTAAGGAA -AAAATTAACTCTCTATCTTAACATTGCAACTTTAATATTATTTATTATTAATTTAACTAGAAAAAAATAA -ACTATTCTTTCATTTTTACAAAAATTATGAACCAGTTTAAAGAAATTTATAATACAATAGAAAAATTACT -AAATGATAAATCAATATCTAATTATAGAATTAATCAAGACACTGGTGTTTCTTATGGTGGTATAAGTGAA -TTAAGAAGCGGGAAAAGAAAAGTGAATAATTTAACTTTAGAAACAGCGGAAAAACTCTATAATTACCAAA -AACAATTAGAAATAATGATTGAAGATTAAAATAAGGCCATATCTTTTGAAATATCATGGAGTGAGCCTTT -TAAATCATCTAATTTTAAAGTATATTAAATATGGATAGCTTAATGTGAATATAAATAAAAAAATTATCAA -ATAATATAATATAGAATAGATTGAGACAAGAAATTTTATCAATATATAATAAAAAACGCCAATACTATTA -GGCATTAGTTTATGAATTAACTAGTTTGGCAACTACAAAGAAACAATGTATTGCTAAACGTAGTTACTGC -ATTAGGATAATTATAATTATAAATAGAAAGAGAGCGTGATTAAAAATGAATGAGATTGAAACTATTATAA -GTGAAATAGAAAAGTTATTAACTAACAATACACCATATAGTATTTCAAAAAACTCAGGTGTACCACGTCA -AACAGTTACTGATTTAAAGGTAGGTAATACTAAAATAAAGGATGCCAAATTTAAAACAATAATCAAGTTA -TATGAGTATCAAAAGTCGTCAGAAAATAATTCAGAGTGCTAATAAATATACCTTGTTTGATTAGATGGAC -AAGAGATTAAATTTCTATTAATTTCATGATTGTGTGTCCACACTTTGTTCACCTCAATAAAATTATCTCT -AGGTTTTTAAAATTGTACATGTTTAAACAATCAAAAGTATGCATTATTATATTATCATTTCCATAAAAAT -TTAAATGATCTTTAAGTGATGATATAGAAGGCTGAACACAGTAAATAAGTTAACTTTAATGCAGTATTCT -ATACTATACATATTTTGTAATAATGTTTATGCGCATAATTTTTCATTGATAATTTTTTATATTAGATTGT -GTAATTGGCATATATGATGATTTGTGATAATTATATTCTAATATAGCATTTGATTTTATGATTTTTAAAA -TTAATAGATTTGAAAAGTATACTTTATTTCATGAAAGTTTTTGGTACATTTATTTGAAAATGTTTTTATT -ACAAAGTTACATGCCTAAATGTTTCTTAACAAAATTAATTCATCAAGTGTAAAGAATCGTGTGGTAAACA -TAATTTATATAGATTATAAGGAGGTGAAAATGGTCGAGGAAGTAAAAACGATAAAATAGTTTGAATGTTT -TGATTTTAATTCTGATAGGACTATTGAATTTGCAAACTAATAAGAATGTGAGATTTGATTTAATACGAAG -TCATATTCTTTGAATAAAATATTACTTTCTCACCATTAGTAAAATGAAGATAACTATTAAAGTGCGAAAA -ACAAATAAAAAAGAGAAAATAGAATTTTTAATAGGGACGTTTATAATTATTTTAGTAATATTAGGGTTCA -AAATTATGAAATAAATGTATAGTATTTGAGAAGTCTATATGACTCCGGAAAAATTAAAGTCTAAAGATAT -CTCTATATCTCAAATTTAATAGACTACTGGAGTTAGTAGTTTGAATATTGAAAGACACTAATCTAATAAA -AATACATAAAAGGTTAAACATTGAAGTTTAGTAAAAGACGTAAGGTATACAAGACAAATCGTTTGTCTTT -GATAAAGTAATTGATGATGAAAAGTCGTTAATATGTAGAAACAAAAATTGAAAATATGAAATTTAACTAT -TATGAAGTGATGATAGCCATTAATGAATAGAAAAATAATAAAATCATTTATAAATAAAAAATACGTTGAG -TTCACAGAATTTCGAAAAAAAGTAGTAAACATTGTACAGATATGGAGATGAAAAAAATGTCAGAATACAA -GAAAAAGATAATTGAATTAATTGAAAGTAATTTAACAGGATATGAAATTTCTAAAAAAACTGGAGTTTCT -CAATATGTACTTTCACAATTAAGACAGGGCAAACGCGAAGTAGATAATCTAACCCTGAATACAACAGAAA -AATTATATGAATATGCCAATAAAGTTTTGTAATTTAACTACTGTATAAATTAATCAAGCTATGTTTATTT -GATTTAACTATTAATAAAAATCATATGGTGAATGGATATTATAATAATTAAAATACAAAAATAGTAGATT -CCAATTTGTGAAAAAGGAGTATGTCGTTTCATTTAGAATTTATTGCACGAAATTAGCATCGAATAAGGGA -AAATAAGTGTTAAGTTTTAAATGAGTTGATTTGTCAATTTAAGTGCAACAGTTCATCACATAAAACTTCA -TAAGGAAACTTCCAATTTAAACACTTTCTTGGTCGATAATTAATTGAGTCTAATGCATAGTTAAGTTGCT -CTTGATTTACTTTAGCTAAGTCTGTTTTCTTAGGGGAAAATTCTCTTAGTAAACCATTGGTATTTTCATT -TGTACCTCTTTGCCATGCGGAATATGGATCAGCGAAGTAGACATTAATATTAAATTGGTTTTCAATATTT -TGATAACAAGAGAACTCTTTCCCTCTATCGACAGTAATAGTTTTAACGGCACCTTTAGGTAGATGTTTGA -TAAGGTTATTAATTGCCGTCTCCATAGAATTAGAGGAACGATCAGGCATAAGTACACAATAATAATAACG -TGATTTTCTTTCTGCGAAAGTAGCAATGCACCCTTTACTTTTGCCTCTGCTGGATACAATTGTGTCAGCT -TCCCAATGACCGAATGTATTACGTTTCTTTATTTCCTTTGGACGTTGTGAAATAGGACGGCCAATATTAA -ACTTACCTCTAGTTTCTTTAGGTTTCTGTCTTTTTCCTTTTTGACGAAGGCATGAAATAAGTTCGAAATT -AATCATATTAGAGTTAATCCATCGATAGATGGTTTTAAAACAGATTTGGTTTTGTAATAGACGACCTACG -ATTTGTTCAGGAGACCAGTGGCATTTTAAATAATATTTAATGATATTACCAAGTTCTGGAGTAAATCGAG -TAGGACGACCACAAAGTTTTCTTTTGGTTTCATAATTTTTTTGAGCTGTTTCAGCTTGATATGACTGATT -TAAATTATTCCTACTAATTTCACGTGAGATAGTAGATACAGATCGTTTTAATTTACGTGCAATAGATCTT -AAAGAATAATTTTCTTGACGTAAAACCTCTATACGTGCGCGTTCAGTTAGTGTAAGATGGTTATAGCTCA -TGTTGGCACTCCTTGTATGTGTTTTTGTGGTTATTAACATCTTACAACAAAGTGCCAATTATGGGCATTT -TTTATGAATTTTTATAGGTGTTGCACTTAATATTACAATCCGTCATGATAAAAAAGATTGGAATGGATCG -TCTTGAAATGCTCCCTTCAAAGTTTTCATTTTTTCAATGTCTACTTCGAAGGGGGCATTTCCATTAAATT -TTTATAGCTTTTTATATTTATATAATGAGCATATAAGTTTAAGTAAGTGCGAGTGAAGGGAATAAAAAAG -CTCAAATGTACCAAATTGTTAATCTTAATAAATCTCTACTTTATAAAGATTGAATGGACATTCGAGCGTT -AATCAGTCAGGAGGGACTTTCCCTCCTACAATTTAATAATAATACTTGCTTCACCACTGTACAAGGAGTG -ATTAGTTATGTTCAAAGTGAATTATTCGATTTTAAGTTATTATCCAGATATTTATCTCCATAGTAATTTA -GCTGTAGGTGTGGCATTTGAAATTATAGGAGAAAGTTATCATAAGAATGAAATTAAATTTATAACCCAAA -GAAGAAAAATTTTATCATTTGATGATGAAATAGACAATTTAGAACTTATTAATATGTTTTTGGATGGGCT -TAAATGTGAATTCGAACAAACTAATCAATCATTAAAAAGTTATAAGAAAAAGTTTGTTAATAATTTCTAC -TTTGAGAATATTGAATATAAAATGTTTGACTCATTAAAAGAAGTTAATAATTTTATTGAAAATACATATA -AATATGTATTACATCATGGTTTAGATAAAAAAGAAAGACTTAAGAAAACTGAGAAAGAACTTTTGAATAG -CTAAGTAAAAAGGTCAAACATATTGTTCTGAATATAAATAAGTAATAACCGTACCTTTATTGATGCGGTT -ATTTTTTATGTAAAAAAACGAAAAAAGTTTTTAAAAAAGTGTTGGATACAAAACAGGTTGGAAAGAGAAG -AAAAAATGACAAATATCGCAAAAGCCAAAAGCGAAATCTTCCGCAACTACACTTTAGGCTTTGCAACACT -TGCCACAATAATAAAATGTTTTTTATAGAGGGGGATATTCCCTCCCACGTATTATATTACGAGGTGATGA -AAATGACAAACTTAACTAAAACTAGAATAATAATCTTTATTAATTATCTAATCGGAATTTTAGCTTTAAT -ATTTGCCTTTTATATAATCTTAATGTCAATAGCGGTTTAAAAATGCTGTTTTATGGAGGTTTGAAAATGT -CGTTTTTTAGTGGTTTAAGATTGTCGTATATTTAATGATTTTTCGGTTTTATAATCTTTTAATCGATATG -ATTCTCCAGTAATTTTAAATACTTTTGAATGGTGAACTAACCGATCAATTATAGCTGCTGATACAATCTT -ATTACTAAATGACTCTCCCCAACTCGAAAATGGAATATTAGTCGTAATTATTGTTGATTTCCATTCATAC -CTTAGTGACATTAACTGGTAGAATAAATCAGCTTGTTCTTTGGTGATGGCAGAATAACAAATTTCATCAA -TGATAAGTAACTCTATTCTGCTTAATTGTTTTAATGTTTTATTAATGATTTCTTTGGAATCTGTGACAGT -TAATAAGTCTATTAATTCTTTGAAAGTATAGAATCTAGTCTTTATATTTTGTTTACATGCCTCAATTCCT -AATGAGATTGTTAGGTGTGTTTTACCAACAACACTGTTATCTAAGAAACAAATATTTATACTATCTTCAA -AAAAATGTTATTTTTTTAGTCTCATTTTGTATTTTATTTTTACAGTATTCTTCTAGAATATTATATTTAC -CTTCATAACCCTTTTTCTCCATATATTTAAAAATGGCCATAGCTGTATATCCTAATTCAATTTTTTTATT -ATTAATTTCTTTAAATGAATCTAGCTTTGATGCTTTCTTATTTTGTTGTCTTTTCTTCAATCGTTCTAAT -TCATTTTATTTTCCTGCTTCATAATATTTTTTAACTGTTCTTGAATCACAATTATATTGTCGACCAAGCT -CAGCATAATTTGGTTTAATACCTTTCATAATGTAAAATAGCATTCCTTCATAAATGTCATGTCTCAATTA -AATAACTTCCAATCGAAGATTGAGTTAAGACATGATTATATAATTTAAAAAAGAAAAAAATGTATTATAA -ATCAGTACGTCAAAGGAATAAGGATATAGAAGTAGATATAATTTCTAAAAATACCAATTTGAATTAAAAC -CTAGTTAAAAGAGCTTATGAATATTTGTTTGAGAATAAATATAATTATTACTATAGAGAAGCACATGGGA -TTGTAGAAAGAAAATACAATTTTTCTAATTATATTGAGAAATAGGGTGATTTGATTGATTATTATGAGGA -AGTTAAAAGAAGATAATCAAGTTATAGTATATGAATATATTCCACAAGATAAAATAGAAAAAGGGAAAGG -CGAAATAACAGTAAATAAATTAGATTCAAAGGTAATTGACTATAAATTATCAAAAGTTGAAAATGAAAAA -GGTATTTTAATTTATAGAGATAAATCATTTCATGCAATATTAAATTTTATTGATGAAAATAAATTTCCGA -ATGAATATATATATGCATGGTATTAAAGCATCCTTTCTACACAGATAAAGAGAAAGTGGTGCTATTTTTA -TGTGTTTTTTTAACTAATTACTGAAATAGCAGAATCACAAAAGTTAACATATTTAAAAGAACTTGGTGAA -GATGGCGAATATAAATATGTTGCCAAAATAGATAGTGAAACATCTAAATTATGTCATTCACTCAACGGAA -AAATATTTAAAGTTAAAGATATGATACCAGGTGTGAATGCGCCACCTATGCATCCTTGGTGTAGAAGTAC -CACAGTGCCACATGTTGGCAATTGGCGAGACAAGTTCTTTAAAGAGCGTGAAGGTAAATATCAAGTAGAA -GTAAAAGAAGCAAAATTACAGGAAAAAGCTAAAAACCAGATGAAAGAAATGATTGAAAGTGGTAAAATAA -AAATAGAAATAAATCCTGAAAAACAGAATAGACATTCTTTAGGTCATAAATTATATTTAAAAAATAAAAT -TTATGCATTGCAGAATGATGAGAGGTTTCCTAGCTATACAATACTCTCTATAGAAGAATTAAATGATTTA -TTAAAGAAATACTCAATGACTGGCAAAATATTAGTGGATAAATTTGGATTTAATCGTAAGGAAATAATTA -ATTTCGAAAAAACTATAGGAAAAGCTTATGCAGGTGGAAAATATATTAATACTGCATATGGTAAAATACA -TTATTCTAAAACTGGTTCTCATATAGTACCATTTGTAAGTAAGGAGAAGTAAAATGTTAATCAAAGATGT -ATATCGTAAAAATGTTATAGTTACACTAAAAAATGATGAAAAATTAAAAGGTTTTGTTATAGATTTTGAA -AATCCGTTAGAAAGTGATTCTGGTAACTATTGCATGGATTTAGAAACAGATTTAGGTTTTTATTCTATTG -ATGAATCAGATATTAAAGACATACAAATAATTACAGAATAGCATCCTTTCTACACAGATAAAGAGAAAGT -GGTGCTATTTTTATACATTTTTTTAACCTTCCAATGTGAAGGTTATTTTTTATTGTCCAAAACGTGCTGA -TGACATTTTAAAAGCAAGTATGGAATATCAGTCGACAGACTATAAACGGAGGTATATCTCATGGAAAAAA -ATGAAAGTAATATTACTGATGTAACTCAGAACGAAGAGCAACTAGACAACAGTGATGAACAATCACAACA -GAATGAGAAAACATTTTCTCAAGAGGAAGTATCACAATTGATTAAAGAGCGTATAGCTAGAGAACGCAAA -AAATCAGATGAACGTATTAAAAATGCCAAAGAAAACAATGATAGCAATGAAGTAGCTTATTTATTAAAAG -GTGCTAAAGTTACAAAAGTATATGGCGATCAAAATAGTGTATCTTTTGTGCCAGGGGAAAAAGCAACCGA -ATTATTATTTGACAGTAAACCGAATTCAATTGTTATGTTACATAACCATCCTGGACAGTCAGGATTTTCA -TTGAATGATTTAGCAGTTTTTACTATTAATAATTCTATTAAGACTATGACAATTGTAACTAATAAAGGAC -GTATTAAATTTATAAGTAAGACAGAACATTTTAAAGAAAAAGTAATGAAAAAAATGATAGCAAACTTATT -AATAGAAAAATCTCTAGATGTAATTAGTACAAAAGATATTGAAAGGTTATTAAAAGAGTTATACAATAAC -GATAATATAATATAAAGAAATAGGTGATTAAAAGGTGACAATGATGTTAGACGGTAAGTTATCTAAAAAA -GAATTGCTCAGGTTGTTAACTGAAAAAAACGATGAAAAAAATAAGGGAAAAGAGAAACAATCTAAATAGC -ATCCTTTCTACACAAAAATATAGAAAGTGGTGCTATTTTTATATGCTTTTTTAACTATTTACTGAAATAG -CAGAATCACAAAAGATAGCTTATCTTAAAGATTTAGGCGAAGATGGCGAATATAAATATGTTGCCAAAAT -AGATAGTAAAACATCTAAATTATGTCATTCACTTAACGGAAAAATATTTAAAGTTAAAGATATGATACCA -GGTGTGAATGCGCCACCTATGCATCCTTGGTGTAGAAGTACCACAGTGCCACATGTCGGCAATTGGCGAG -ACAAGTTCTTTAAAGAGCGTGAAGGTAAGTATCAAGTAGAAGTAAAAGAAGCAAAATTACAGGAAAAAGC -TAAAAACCAGATGAAAGAAATGATTGAAAGTGATAAAATAAAAATATAAATAAATTGTGGGAAATAAAAT -AGATATATGTTAGGTCATCACTTATATAATGAAAATAAAAAAAAGAGCCATTTTAAATAAAAAGAAATTG -CCTAGCTATACAATACTTTCTATAGATCTATTGAGTGAATTGTTAAGAGAAAAATGTCAACAGGCAATCT -AATATTAAGTGATGAGCGATTTGATTTGAAAGATATTATTAATTTTAATCAAATTATTGGAAAAATACAT -ATCGGAAATGTGTATATTGAAACCATAAAGGAAAAAGTGCATTATTCGAAGACAGGTGCTCATATAGTAC -CTTATATTGATAAGTAGGTGAAAAGTATTGAGAATTGAAGATGCATATCGTAAAGATGTTATTATCACGC -TTTTGAATAATGAAGAATACGAAGGGTTTGTAACTGACTATGAAAATGAATTTGAGAGTGAAACAGGAAA -TCTTGTTGTAGATATACAGACCGATTTTGCTGTTTATTCGTTTGATGAAACTGAGATAAAAAGTATTAGA -TTATTAAAATAATTTCTAAATAGCATCCTTTCTACACAGATAAAGAGAAAGCGGTGCTATTTTTTGCGCT -TTTATAACTATTTACTGAAATATCAGAATCACAAAAGTTAACATATTTAAAAGAACTTGGTGAAGATGGC -AAATATAAATATGTTGCCAAAATAGATAGTAAAACATCTAAATTATGTCATTCACTCAACGAAAAAATAT -TTAAAGTTAAAGGTATGATACCAGGTGTGAATGCGCCACCTATACATCCTTGGTGTAGAAGTACCACAGT -GCCAGATGTCGGTAATTGGCGAGACAAGTTCTTTAAAGAGCGTGAAGGTAAATATCGGGTAGAAGGTTCT -TTTATTGAATCGGGTGCACTTAATAATAAAAGTGATGAATACGGTATCAAAAGGAACAGGCATGCTCAAA -TTTATTATAATTCAGTTAGAAATCAAGAAAACAGATAGAGATTTCTAAAATTGCTAAAAATACTAATATA -AATAAAAATACAATTCAAAGAGTTTATGAACATATATTTGAAAATAAGTATTTATTAGAAAATGGATTTA -AACAATTTGATCCTGACTTTTATATGGCTCAAAGTTGGCAACGTTTAAGAGAAGGGAAAAATATTAAAAA -ATGGATATAATAATGTTGAAACATGAAGCTCTTGAACACTATCTAATGAATAAGTATAATTTACACTATA -TAGAGGCACATAAACTTACAGAAATAAAATATAATTATAGTATTTTAATTAATTAGAGGTGGAAATGATT -GCTAATATTAAAAATAAAAGAAATTAATGATAAAAGTGTTACATATAAATATTTTCCTAATAATGATGAA -AATATTAAGCCGGGTATTATTCAAATGGATATAGATAGCCTTGAAGTTATCAATGCTGAAAAATCTAGTT -TAGAAAAAAATACAAGAGACAATTATTTTATTCATGCCATAGACAGAATATACATAAATACTAGTAAAGG -GCTATTTCCTGAATCTGAACTCGTAGCATGGGGATAAAGAAAGTTTACTTTTAAAAATTTCATATTTAAT -TTTAAAAATTTTAACCTTCCAATGTGAAGGTTATTTTTATTGTCCAAAACGTGCTGATGACATTTTAAAA -GCAAGTATGGAATATCAGTCGACAGACTATAAACGGAGGTATATCTCATGGAAAATAATGAAAGTAATAT -TACTGATGTAACTCAGAACGAAGAGCAACTAGATAACAGTGATGAACAATCACAACAGAATGAGAAAACA -TTTTCTCAAGAAGAAGTATCACAATTGATTAAAGAGCGTATAGCTAGAGAACGCAAAAAATCAGATGAAC -GTATTAAAGATGCCAAAGAAAACAATGATAGCAATGAAGTAGCTTATTTATTAAAAGGTGGTAAAGTTAC -AAAAGTAGATGGCAATCAAAATAGTGTATCTTTTGTGCCAGGGTAACAAGCAACCGAATTGTTATTTGAC -AGTAAACCGAATTCAATTGTTATGTTACATAACTATCCTGGCCAATCAGGATTTTCAGAATATGATTTAT -TTACATTTTTTAAGCATCCATCAATAAAATCAATGACAATCGTTACTAATAAGGAACAAGTAAAATTTAT -TACCAAGTCAGATAGGTTTCAAGGTAAAATAGTGAGTAAATTTTGTACTAAATATTTTACGCATATTAAT -ATCATTAATGATAGCTATATTGAAAAATTATTAAAAAAACTTTATAGTATAAATATGATTAAATATAAAG -TGAGATGATTTTAATTATGATTGATTCACAATTAGATGGAAATGTAACTGCAAAAGAATTGAGTGAATCT -TTTAAAGAATTAGTTGAAGAATTTGAACGCATAGAAAAAGCGAATAAGAATTCAAATTCAAAAGATAAAT -AGCGTCCTTTCTACACAGATAAAGAGAAAGCGGTGCTGTTTTTATACACTTTTTTAACTATTTACTGAAA -TATCAGAATCACAAAAGTTAACATATTTAAAAGAACTTGGTGAAGATGGCAAATATAAATATGTTGCCAA -AATAGATAGTAAAACATCTAAATTATGTCATTCACTCAACGGAAAAATATATAAAGTTAAAGGTATGATA -CCAGGTGTAAATGCGTCACCTATGCATCCTTGGCGTAGAAGTACCACAGTGCCACATCTCGGCAATTGGC -GAGACAAGTTCTTTAAAGAGCGTGAAGGTAAATATCGGGTAGAGAACAATACTGAAATGAAATTAGGTGA -AGTTCATTATTCTAAAACTGGTTTTCATGTAGTTCCGTATATTAAAAAGGAGTGATTAAAAATGAATTTA -CAGTCATACATAGGCAAATTAGTCAAATTAACGCTTACTAATAATAAAATATTAATTGGAAAAGTGATAG -ACTTTGATGATAAAATTGATAATTTTGATGGTTATAATTCGATAGAAATTGATACAGGTAGAATTACATA -TGATATATCAGAAAATAAAATTAAAGACATACAAATAATTACAAAATAGCATCCTTTCTACACAGATAAA -GAGAAAGCGGTGCTATTTTTATACACTTTTTTAACAACTAAGGATACAAGACACATACCTTCAACAATAT -CCTCATCTAAACCTATCGATTTCCTAAGCTCAATTTTAAACACAAAGTTTATTTGTAAAGATGCACACCT -ATAAAAATCTTAATCATCGAAAAGTCACAAACATCTCCATATTAAAAACTTAAATAGTGCATTCCATTTA -AACTAAACATCGATATTTCTACCAATATAGACTTAGTAATTCGATTGTTAATACATTACTTTCATAAAAT -AACTACAACCATCATAATACTTCTCAAATCTCGTCAAATTAAAGTAAATACAGCACAAATTAACAATTTT -AAATATATAAAATAAAACAAGATACTCAATAATCTGTAGTACCTTGTTTTGGAATAATGTAATTTTATAT -CATCAACGGCTACAAATGAGCAGTTTCATATATAAATAAACACAACTACTCAACTGATCTTGATTAATTA -ATAAATGATTTGCCAGATGACATATAACAGCATTATTAGATTAATTCTAATAGTTTATTTAAATTTTCTT -CGGTTGTCGCCCAACTGGTTGCGAATCTAACAACACGATGTTGATCATCGTATTTTTCCCAAACAGCAAA -TTTAACTTTTTGTTCTAACTCTGCTATTTTCTCGTTACTTAAAATAAAAAATTGTTGATTGGTTGGAGAA -TCAAAGTAAAGACGATAGCCTTTATTTATAAACCCGTCTTTCATCTTATTTGCCATTTCGATAGCATGTC -TGCTTATATTAAAATATAAATTATCCGTAAATAATTCTAAAAATTGTATGCCTGTTAACCGTCCTTTTGC -TAAAAGTGCACCGTGATGTTTGATTCGAGTGGTAAATTGTTTCGGTTCATTATTCTTCGTAAAAACAATT -GCTTCTCCGCATAATGCACCTATCTTCGTACCACCTATATAAAATACATCACAATATTTAGCGATGTCTT -TAATAGTCATATCTGATTGATCACTCATCAATCCATACCCTAATCGTGCACCATCCATAAATAATGGAAG -CTGATATTGCTTACATACTTTGCATAACTCTTCCAATTCTGATTTAGAGTATAATGTGCCATATTCAGTA -GGATGAGAAATATATACCATTCCTGGGAATACCATATGGTCCTTTTTAAAATCACTTTTAAATGTCTCCA -TGTAAGTTTCAACATCTGAAGCACTAACTTTTCCTTCCTTAGAGGGTATAGTAATTACTTTATGTCCACT -ATATTCAATTGCACCGCCCTCATGCACAGCAACATGACCAGTGTCTGCTGAAATGACCCCTTCGTAACTT -TCTAACATTGAATTAATAACAACCTGATTGGTTTGTGTTCCACCTACTAAAAAACGAATTGTAGCATTTG -GACAGTCAATTGTATCTTTAATCTTTTCAATTGCCTGAGCTGTGAATTGATCAAAGCCATATCCCGAAGC -TTGTACAAGATTTGTATCTACTAATCGTTTTAATACTTTTTCATGAGCACCTTCTAAATAATCATTTTCG -AATGAAATCACTACATTTCCTCCTAAAACTAATATCAACATTTTAATAAGATAAACCAATTTCAAAACTA -GTTCGATATTTAAAATGTATTATGAATGGTTAAAGTTTGTATCGCATTATCGCGAAGTTGAATAAATATA -TTATACATCAAACAATACATTATGAAAATTAATTAATTTTTTACCACAATTACTTTGCGTGCCGAAACAC -ATATATTAATGATTGAATTTTACTGTTAAAAGTTCTATGATTTAGGAAATAGAGAAAAGAGGGGATTTAA -ATGGAACAAATTAAACTTAAAACTTTTACATCTGAGACTTTAGAATTATTAGAATCAAATATTAACGAAT -TTTTAGGTTCTGAAGAAGCTGCAAATTTGAAATTAGTAAATATTACAATAAAAGAAATTGAGGAAAGAAC -ATTTCCAAATAATGAAGAAGAGTTTAATGCAATATTAACTCTATCTGTAAATAAATAATCTGGAACGAAA -GGTACAAAAGTTTTTTGTGCCTTTCTTTATAGGAGAAATAAACTATGCAATTTTCATTTTCAAACGATTT -AGGAACGTTATTTACTATTATTTTAGCCATTGGATTCATCATTAATTTAGTATTAGCTTTTATTATTATC -TTTTTAGAAAGAAATAGGCGTACAGCGAGTTCAACTTGGGCATGGCTATTTGTACTTTTTGTCTTACCCT -TGATTGGTTTTATTCTTTACTTGTTTTTTGGTAGAACCGTTTCGGCACGCAAATTGAATAAAAACAATGG -TAACGTGTTAACGGATTTCGATGGACTTTTGAAACAACAAATAGAAAGCTTTGATAAAGGTAATTATGGT -ACTGATAACAAACAAGTTCAAAAACATCATGATTTAGTACGTATGCTTTTGATGGATCAAGATGGTTTTT -TAACTGAAAATAATAAAGTTGATCATTTCATTGACGGTAATGATTTATACGATCAAGTTTTAAAAGATAT -TAAAAATGCAAAAGAATATATCCATTTAGAATACTATACTTTCGCTTTAGATGGTTTAGGTAAAAGAATT -TTACATGCTTTAGAAGAAAAATTGAAACAAGGTTTAGAAGTAAAAATATTATATGATGATGTTGGTTCTA -AAAATGTTAAGATGGCAAATTTTGATCACTTTAAATCATTAGGTGGCGAAGTTGAAGCATTTTTTGCGTC -TAAACTACCATTATTAAATTTCCGTATGAATAACAGAAATCATAGAAAAATCATTATTATTGATGGTCAA -TTAGGTTATGTCGGAGGATTTAACATTGGAGATGAATACCTTGGTTTAGGTAAACTAGGATATTGGAGAG -ATACACATTTACGAATTCAAGGAGATGCAGTTGATGCATTACAATTGCGCTTTATTTTAGACTGGAATTC -GCAAGCACATCGACCTCAATTTGAATATGATGTTAAGTATTTCCCTAAAAAGAACGGACCATTGGGTAAT -TCACCAATTCAAATAGCTGCAAGTGGCCCAGCTAGTGACTGGCATCAAATTGAATATGGTTATACAAAAA -TGATTATGAGCGCTAAGAAGTCGGTATATTTGCAATCGCCTTATTTCATTCCGGATAATTCATATATAAA -TGCCATTAAAATTGCAGCTAAATCAGGTGTAGATGTACATTTAATGATTCCATGTAAGCCAGATCATCCT -TTAGTTTATTGGGCGACATTTTCAAATGCCTCTGACTTATTATCAAGTGGTGTTAAAATTTATACGTATG -AAAATGGATTTATACATTCTAAAATGTGCTTAATTGATGATGAAATCGTATCAGTGGGCACAGCAAATAT -GGACTTTAGAAGTTTTGAATTAAATTTTGAAGTAAATGCCTTTGTATATGATGAAAATCTTGCTAAAGAT -TTAAGGGTGGCTTATGAACATGATATTACAAAATCAAAACAACTTACTGAAGAATCATATGCCAATAGAC -CGCTGTCTGTTAAATTCAAAGAATCGTTAGCTAAATTAGTTTCGCCAATTTTATAATTTATTTGTAAGGA -GTCTCGATTATAGAGGCTCTTTTTATTTTATCCAAATTAAATAACGATAAATATGTTATGTAAACCTAAT -GATGACATTTGTCATTTCAAATCTATGACAAAGTATCCTATTTTAAATCGAATAAATTTACTAATCTTAA -ATTAATAAAATATTAAGAGGTGGTTCATTTGATTCAAATATCTAATATTAATAAATCATTTAAGAAAAAT -CGTGTTTTAAAAAACATTTCATTTGATATTGAAAAAGGTACATGTACCGCATTAATCGGAAAAAATGGTG -CTGGAAAATCAACATTAGTTGATATTTTAAGCAATAAAATAATTGCTGATGATGGCGTGATTTTGGATAA -AGACAAATTATTGCAAAGTGAAAATCGCAGTATAATGTTTCAGAAAACGATGTTTCCAGATCAATTGAAG -GTAATTGGAATTATCAAATTATATCAATCATTTTATGAAAATCCATTAACATTGGACGTAATAATAGAAC -TAACAAAGTTTAATTCTAATCAATTGAATCAATTTGCAAATAAATTATCTGGAGGTCAACAACGATTACT -TGATTTTGTAATATCTTTAATAGGACAACCACAGCTTATTTTGTTAGATGAACCAACGTCAAATATGGAT -ATTGAAATGAGAGAATATTTTTGGTCAATAATAGCTAAGTTAAAAGAAGAAAATCGGACGATTCTTTATA -CATCGCACTATATAGAAGAAGTAGAGCGCATGTCCGACAAAATTATTTTGATAGAAAATGGAGAAATCAA -ACTTAATGATTCAACGTCACATATTAGAACCAATCAGCAATCTCAGATTACGTTATCCGATGAATATAAA -AGAAAGTTAAAACCAGATAAAGATGATTTAGTTATTCAAAAAAATCATAATGGCACTATCAAAATTATTA -CTTCAAATGTAAATGATACGATTTTATATCTTCAACAACTTCATATTAATTTGGATGATATTGAAATACA -AAAAGTCTCAATTGTTGATTCATACTTCAACAATAAAAAGCAAAGGGGATCTAATTATGATACTAAGTTA -CTTGAAAATCGAATTTAAAGTTATACTGCGTAAAAAAACAACATTAATATTATCTATTTTATTTCCTGTT -ATTTTCTATATATTATTTACTTCGATATTGGATTTGCCGGAAGATGTTAAACCTAAATTTTATAAAGAGT -ATATGTATAGTATGACGGTTTATAGTTTGTTAAGTTTTAGCTTACTAACTTTTCCATTAGATATTATTAA -TGAAAAACAAAATGGATGGCGCCAAAGATTAATGGTAACACCATTTACTTTTACTAGTTATTATATTTCA -AAAGTAGTGAAAACTATGCTGCAATTTGCAATAGCGATATTAGTGATTTTTATGGTTGGGCATTTTTATA -AAGGTGTTGAAATGAGTGCAGTTCAATGGTTAGAGTCAGGAATATTTTTATGGTTAGGTGCGTCTCTATT -AATAACTTTTGGCATATTATTTTCTTTGTTAAATGATATTCAAAAAACAAGTGCTTTAGCCAATATCGTA -ACAATTGGATTAGCAGTATTAGGTGGATTGTGGTTTCCGATAAACACATTTCCGAATTGGCTTCAACATG -TTGCTCATGTTTTACCGAGCTATCATTTGCGTAAACTAGGTGTAGATATTGCTTCAAATCATCATATCAA -TTTAATATCATTTGTTATAATACTCTTGTATGCTTTAGGGAGTATTATAGCAGTATATTGTATTAGTCAT -TTTAAAAGGGCGGAATAAAATATGAAATTTTTAAAAGATACTTCAATTGCTGAAATATCGTCTATACTTT -ATCTAATTTTTCCTATTGCCGGTATATTTTTTAATGAAGTATATGGTCCCACATGGTTGTATATTATATC -AGTCATTGTCTTTTCGTTATCGTATCTTATATTAGTTATAGTAAATAATAGACTTAATACATTAATGTTT -TACATTTTGTTGATTATTCATTATTTTATTATTTGTTATTTTGTTTTCAGTGTACATCCAATGCTAAGTT -TGTTTTTCTTTTATAGTGCTTTTGCCATTCCATTTACTTTTAAAAATAATGTTAAAAAAATGGCAACTAA -TCTTTTCATATTAACGATGATTATATGTTTTACAATTACTTACTTAGTACATAACGACTATTTTGTTGCA -ATGACGATTTATTATGTTGTTATTTTGTTAATCGTGTTTGATAATTTAAAAAAAGTGAAAGATCGTGAAT -ATAAAAAAGAAATAGAAGAAAAAAATCGGTATATTAATACGTTAATAACTGAACAAGAGCGTCATAGAAT -AGGTCAAGATTTACATGATACGCTTGGTCATGTGTTTGCAAGTTTATCATTAAAATCAGAATTAGCTTAT -AAAATTATTGATTCTGATACTGAAAATGCAAAAGCTGAATTGTTAGCGATTAATAAGTTGTCGCGGGAAT -CATTGAACAAAGTACGCGAAATCATCGATGATATAAGATTACCATCATTTATTGAAGAAATTGAGAGTAT -CTGTAAAATTTTAAAAGATGCTGACATTCAGTTTACGTTTGAAAATAAAGAACTGGCACAATTATTGAGT -CCTACAAAACAATCCATTTTAGTAATGATTGCTCGTGAAGCGATAAACAATGTGATTAAGCATGCAAATG -CTTCAAAAGTTCATGGTCAATTACGAGCTATGAATGAACATAAATTACAGTTCATTATACAGGATAATGG -AGAAGGTATTGACAGCGGCTGTGAAATAAAGAGTATTTCACAACGAGTAAAACATTTAAATGGAACATTA -GAAGTTGAATCGAATAAAGGTACTAAATTAATCATCGAAATGCCTACAGGGGGAATAGCATGATTTCTTT -AATTATTGCAGAAGATCAAAATATGTTACGACAGGCAATGATTCAATTAATTAAACTACATGGTGATTTT -GAAATTTTAGCCGATGTAGATAATGGTCTCGATGCAATAAAAATTATTGAGGCACACCATCCTGATGTAG -TTATTTTAGATATTGAAATGTCAGGCATGACTGGACTTGAAGTTTTATCAGAAATTAGAAAGAAGCCTTT -GAATATTAAAGTGATTATTGTAACAACTTTTAAAAGGCCGGGGTATTTTGAAAAAGCTGTTGCAAATGAT -GTGGATGCATATGTTTTAAAAGAACGTTCTATAGAAGAATTAGTGGAAACAATTTATAAAGTGTATAACG -GTAAGAAAGAATATAGTGCTTCTCTTATGACTTCATTTTTCACAGATGGAACAGTTAGAAATTATACATC -TGTTAGAATTGATAAATTATTTGCAGATAATCGTTTTGATGCTTGGAAAAAGGCAAATGAAAAAGGCTGG -ATCTAAATACAAACAAAAAAGTATTGAGTGTTTTGATTTAAGAGACTTTGAAAGTGAGTCAATAATCAAA -ATCTTACTCAATACTTTTATTTTGGTACTCGCAAGTTAGATTTGTTAACTAATTTTTTCGTTTATTATAA -AACGAAACAATCAGGTAAACGATAAAGCCTACAAAGATACCCAATAAAATAGATAGTACTGCCGTCACTA -TTAATGGTAATTTAAAAAATATTTGTAGGAAAATACCAATGATAATTGCGATAATTACTGCAATTAATGT -GACTGTATTTTCATTTGAAATGTTCATTCATTTTCACTCCTTAACAATAACATTATATCATGCTATAGCT -TTCCAAAATATTGAAATATGTAGATATGGCTATTGACGATATTTCTTAACTTTTATATGATTAATCGGAA -TGAAAAAAGAGAAGTAGGTGGCAAAATGAAGTCAAATAAATCGCTTGCTATGATTGTGGTAGCCATCATT -ATTGTAGGTGTATTAGCATTTCAATTTATGAATCATAAGGGTCCTTTTAAAAAGGGAACAAATCATGAAA -CTGTACAAGATTTAAATGGTAAAGATAAAGTACATGTTCAAAGAGTTGTGGATGGTGATACATTTATTGC -AAATCAAAATGGTAAAGAAATTAAAGTTAGGCTTATAGGGGTTGATACGCCAGAAACGGTGAAACCGAAT -ACGCCTGTACAACCATTTGGCAAAGAAGCATCAAATTATAGTAAGAAGACATTAACAAATCAAGATGTTT -ATTTAGAATATGATAAAGAAAAACAAGATCGCTATGGTAGAACATTGGCGTATGTATGGATAAGTAAAGA -TCGTATGTACAATAAGGAATTAGTGGAAAAGGGACTTGCTAGAGAAAAGTATTTTTCACCAAATGGCAAA -TATAGAAATGTATTTATAGAAGCACAAAATAAAGCTAAACAACAGAAATTAAATATTTGGAGTAAATAAT -TAAATAGGTGATTATATATATTAAAGTAAAATATACTTGAAGCATCGATTTATTATTACCATAAATTTAT -ATATAGAAATAATTTAAAGGCATAATAACCATAGTGCGTATCGAGCGTAATGGATTATTATGCCTTTGAT -TTTACTTGAATATAGCTGTGATTTGATTAACCTGTTCTTTATTTAAAGGGTGTTTAGATAGCTCTATGGC -TTCGCTAATAATACGTCGTAACGAAGATTTTGTTGAAACTGTATCAACATATTTATCTCTTTCTTCAGAG -CCTTGAATGATATTAACTGTACCATCACTAAAGTAAATAACACCGGTACTTTGGACTTTAAAGTTAAAGT -TTTGTTCAATATGATCCTTTAATGCTTTAGCATTATTTGCTGCTAATTGATACGGATCATAATCATAAAA -ATCATAAATAACACGATTTGGTTGAACAGTTTCTGTAAAAGTATAGATAGACTTTCTTGATGAATTAAAC -TGATCATGATATTGCTGACTAATGTAATGACCGACAACTTTTTCAATATTACTATTGCTCATTTCTGTAT -CATGCTCATCAGGTACATCAAAGTGATAAAATGTTTTTTCACCCCAACTTTTTACATCAACGTTTATTAA -ACCGATATCTGAAACAATGATAAAATCAAATGAACGTGCATACTCGAAAAACGGATGTTTAGTAGCTAAA -TTGCTTGTAACGATAATATCGTAATATTTTAATTTACCATTTTCGAGATAGCTGTCTAAAATCTTGCGTA -ATTCTCTTTTAGCATTTTTGTATGCATGGTGGCCAACATCATTATTAGAACTCAGCATTTGACTTCTTAA -TTCAGCATTTTCTGCACTTAATGCTTTGTTCTTTTTAATAAGTTGCTTTCTTGCATAAACTTCGGTATCT -ATTTTACTATTACTATACCTTTGATTTAAAACTAATATACCAATTAATGCTACAATGATAATGATAAGTA -CAACATAAAAAGACATTTTTTCACCAATCCTTTTTGACTTCTTTAACTTTGTATACAATAATAATTAATA -AAGATTAATTGTTATTCAATTTCCCACATTTTTATTAGTTGATTTTAGTTCATCATTGTTATAATCAAAT -TATAAACTGACAGATATTGATGTTCAATGAATATGACGTGAAAGATTCGTGAATTCAAGTTTATGTCGAA -TTTATGTTATAACGATCATTTAAATTACAGAATTAGGTCACTCATAGTATTTTGAAGATTGAATTCATTA -ATTTTAAAATGTATAATGATATTTGTGAAAGCGCTTGCTTAGGAGGTGTATTTGAGAGTGAATGAAATGA -ATGCTAAAGAACAATTAGTGGACAATTTAATGAAAACATCATCGCAATTATTTAAATTTCACGGTGAAGT -TGCCATGCAGCTTTTCTTAAATGATGAATTAAAATTACCTTCTATTGTTGAAATATGCGTGGAACGTAAG -CGTTTAAGTGATATTGTGAAAGTTATTCCGCAATCATATGCGTTACTATACATAGATAAGCAAGATCAAG -CAATAGCTAAAGAAGATTTATCACTTTCAAAAATTGCAAAAGTTTATGTGCAATATGATAATACAACAAT -AATGAGTATTTTCGTTTATGATGTTGTAAACGATGAATGGATTTTTAGATTGGATCCGAATATACGTATA -CCTAAGAGTAACATTTACTTCCATAGTCTAAATTGGGATGTGGATTATATTAAACCAGAGATTGTTCTAA -TGTATGATCTAATGCAACACCATCAGTATCATCATTATTCCAATTATAAACGCGTCATAGATGCATTAAG -CTACTATCAATTTTTTATTTTAAAATTTGTAGTAGGTGAGCAACGTATTAAGGATGCAATCCAGAGAACA -ATAAATAATTAAGAAAAAGCAATTCATAACGCAGTTGAATACATGTGTTACGAATTGCTTTTATATTAGT -TTTTATCACACAAGTTTTTTAATGCAACCCCGTGATAGCAAAACTCATATGTAGATAATACAGCTTTTTC -AGCATCATCTACATGAATTCCAAACATCATCGAAATTTCCGAAGCACCTTGGTTAATCATTTTTAAGTTA -ATTTTTGATTCAGCTAAGGCATGTGTAATTTTATTTGCAGTACCAATGACTTTATTCATACCTTCGCCGA -CAATCATTAAAATTGCTAAATCATGCTCAATACTTAGCTCATCAACATCACATTTTTGACGAATTTCATT -TAATACTTTTGTTTCTTTATTTTGAATTTGTTTTGAACGCATAACGATACTGATAGTATCAATACCTGAA -GGCATATGATCAAATGAAATATTATTATCCTCTAAGACACCTAATATCTTTCTAGTAAAGCCGACTTGTC -TATTCATTAAATACTTTTTGATATTAATAACAGTAAAATCTTTATCACAACTTATACCGCTAATCACATT -TTTCGCATTTATTTCTCTATCATGCACTATAAATGTACCTTTATCTTGAGGGCGGTTCGTATTTTTAATA -ACTACAGGGATGCGATCTTTATAAAGTGGTTGTAAGGCTTCATCATGGAAAACACTAAAACCAGCATAAG -ATAATTCACGCATTTCTCGATAAGTGATTTCTTCGATTAATTCAGGATCTTTGATGATATTTGGATTAGC -TTTATAAATACCAGACACATCGGTGAAATTTTCATAAATTGTAGCTCTAACACCACTTGATATGATGGCG -CCAGTTATATCTGATCCGCCACGTGGAAATGTAACTATATATCCTTCATGAGATACGCCAAAAAATCCTG -GGATAATTAGTTTTTCATCATAATCTCTTAATTTTTTAATTTCAGAGTAAGCACTATCTAATATTTGTGC -TTCTTGTGGGACGTCAGTAACAAAAATACCCGCTTCCTTCGGTGATATATATTTTGTTGGTATACCTTGA -CTATTATTATATAAAGCTATCAATTGCGCATTAAAATCTTCACCACAAGAAAGTAATGCATCTAATAGTC -TCTTCGGTTCATTTTTTAATTGATTAATATAATGTTCCAAAGTCACATCTATCGTCCGTAAAATACTTTC -ATCCATTTGCAATTCTTTTACAATATCATCATAACGCTGAATAATTTCTCTTTTTTTATCATGATAATCA -AGATGATTAATGACCTTTTCATATAATCTGATTAACAAATCAGTTGTTTTAATATCATTATCATGTCTTT -TACCTGGAGCAGAAACGATAACAATCTTTCGCTCTGGATCAGAATTAACAATATTTAAAACCTTTTTAAT -TTGAGTAGCATTGGAGACGGAGCTACCACCGAATTTGGAAACTTTCATAGTGCATGCCAACCTTTCTAAA -AAATCAGAAAATTGTATTCAGTTTTGTAAGTAAGAATGATATTATGTATTTATATTTTGAATATTACGAA -CTTTACAAAAATAAAGAATAATTCTATACTATACTATCATCTAGTGTTTTTCAATAATACATTTGTTTTT -CTCAAAAGCACAAACGGAGGTACATAAAATGAAAAAATTAAATATAGCATTATTAGGATTAGGTACTGTC -GGATCTGGTGTTGTTAAAATCATCGAAGAGAACCGACAGCAAATTCAAGATACATTAAATAAAGATATTG -TCATAAAGCATATTCTTGTTCGAGATAAATCTAAAAAGAGACCGCTAAATATTAGTCAATATCATTTAAC -TGAAGATGTTAATGAAATTTTAAATGATGATTCATTAGATATTATCGTTGAAGTCATGGGAGGAATTGAA -CCAACTGTAGATTGGTTAAGAACAGCACTTAAAAATAAAAAACATGTTATTACCGCAAATAAAGATTTAT -TAGCAGTACATCTTAAACTTTTAGAAGATTTAGCAGAAGAAAATGGTGTAGCTTTAAAGTTTGAAGCGAG -TGTAGCAGGTGGTATTCCGATCGTAAATGCCATAAATAATGGTTTGAATGCGAATAATATTTCAAAATTT -ATGGGAATTTTAAATGGTACCTCTAATTTTATTTTATCAAAAATGACTAAAGAGCAAACGACATTTGAGG -AAGCACTTGATGAAGCGAAAAGGCTTGGTTTTGCTGAAGCGGATCCAACTGATGATGTAGAAGGGGTAGA -TGCAGCGCGTAAAGTTGTCATTACATCATATTTATCATTTAACCAAGTCATTAAATTAAACGACGTTAAA -CGAAGAGGAATTAGTGGTGTAACTTTAACTGATATTAATGTAGCCGATCAACTGGGGTATAAAATTAAAT -TGATTGGTAAGGGAATATATGAAAATGGCAAAGTTAATGCATCAGTAGAACCAACGTTAATTGATAAAAA -GCATCAATTAGCAGCTGTAGAGGATGAATATAACGCGATTTATGTCATTGGTGATGCCGTTGGTGACACG -ATGTTTTATGGAAAAGGAGCAGGCAGTTTAGCAACAGGTAGTGCCGTTGTAAGTGATTTATTGAATGTAG -CATTATTCTTTGAATCAGATTTACACACATTGCCACCACATTTTGAATTAAAGACAGATAAAACAAGGGA -AATGATGGATTCTGATGCAGAAATTAATATTAAAGAAAAATCCAATTTCTTTGTAGTAGTGAATCATGTC -AAAGGTTCAATTGAAAATTTTGAAAATGAGTTAAAGGCAATATTACCATTTCACCGATCATTAAGAGTTG -CAAATTACGATAATCAAGCATATGCCGCTGTTATAGTTGGATTGGAATCATCACCGGAAGAATTAATCAC -TAAGCATGGATACGAAGTTGACAAAGTATACCCAGTAGAAGGAGTTTAATTATAATGAGAAGATGGCAAG -GATTAGTAGAAGAGTTTAAAGCACATTTACCAGTAAATGAAAATACACCAAAATTAACTTTGAATGAGGG -AAATACACCACTCATTCATTGTGAAAATATGTCTGAAATACTAGGTATAGATTTATATGTGAAGTATGAA -GGTGCCAATCCGACAGGTTCATTTAAAGATCGCGGTATGGTAATGGCTGTGACAAAAGCAAAAGAGCAAG -GTAAGAAAATTGTAATATGCGCTTCGACTGGAAATACATCAGCGTCTGCAGCAGCATATGCAGCGAGAGC -AGGTTTAAAAGCTATCGTCGTAATACCAGAAGGTAAAATTGCATTAGGTAAATTGTCGCAAGCAGTAATG -TATGGTGCAGAAATCGTTTCTATTGAAGGAAACTTTGATGAAGCTTTAGAAATTGTAAAAGAAATTGCAA -AAAGTGGCGAAATCGAGCTTGTAAACTCTGTCAATCCACTTAGAATCGAAGGGCAAAAGACAGGCTCATT -TGAAATTGTACAACAATTAGACGGTGAAGCACCTGATATTTTAGCGATTCCTGTAGGTAATGCAGGTAAT -ATTACTGCATATTGGAAAGGCTTTAAAGAATATCATGAAGCTAAAGGATCACAATTGCCGAAAATGTTTG -GCTTCCAAGCTGAAGGTGCATCACCAATTGTTCAAAATAAAGTCATTAAAAATCCTGAAACGATTGCAAC -TGCTATTCGAATTGGTAATCCTGCTAGTTGGGATAAAGCGACTAATGCTCTTAAAGAATCAAATGGATTA -ATAGATAGTGTTACTGATGATGAAATTTTAGAAGCATATCAGTTAATGACAACTAAAGAAGGTGTCTTTA -GTGAACCAGCAAGTAATGCTTCTATTGCAGGTTTAATTAAATTGCACAGACAAGGTAAATTACCTCAAGG -TAAAAAAGTAGTTGCGATTTTAACTGGTAATGGGTTAAAAGATCCAGATACTGCTATTTCACTATTAGAT -AATCCGATAAAGCCATTGCCAAATGATAAAGATAGCATTATCGATTATATTAAAGGAGCTTTATAACATG -TCGAATGTTTTGGAGTTAACAATTCCTGCATCAACAGCCAACCTTGGAGTTGGCTTTGATTCTATAGGTA -TGGCTTTAGATAAATTTTTGCATCTGTCTGTAAAAGAAACATCAGGGACAAAATGGGAATATATTTTCCA -TGATGATGCATCGAAGCAATTACCTACTGACGAAACAAACTTTATTTATCATGTGGCACAACAAGTTGCT -GCTAAATATAGTGTTGACTTGCCTAATTTATGTATCGAAATGAGAAGTGATATTCCATTGGCAAGAGGGT -TAGGTTCGTCAGCTTCTGCTTTAGTAGGAGCTATATATATCGCAAATTATTTTGGTGATATCCAACTATC -TAAACACGAGGTATTACAATTAGCGACTGAAATCGAAGGACATCCTGATAATGTTGCGCCGACCATTTAT -GGTGGTTTAATCGCTGGATATTATAATGATGTCACGAAAGAAACGTCAGTTGCACATATCGACATACCAG -ACGTGGATGTGATTGTAACGATACCAACTTATGAACTAAAAACAGAAGCATCAAGACGTGCTTTACCACA -AAAATTAACACATAGTGAAGCCGTTAAAAGTAGTGCAATTAGTAATACAATGATTTGTGCATTAGCACAG -CACAATTATGAATTAGCAGGTAAACTCATGCAACAAGATGGCTTTCATGAACCGTATCGTCAGCATTTAA -TTGCTGAATTTGATGAAGTGAAAACAATTGCTAGTCAACATAATGCCTATGCAACTGTAATTAGTGGTGC -TGGACCAACTATTTTAATATTTAGTCGCAAAGAAAATAGTGGCGAATTAGTTCGCGCTTTAAATAGAAAT -GTAGTTACATGTCATTCTGAATTAGTGGATATTAATGTTAGTGGTGTTAAAGAACGAATTGTATACCAAT -AGACACTTTATATTGTAAAATAGTATTGAATGTGAAATAGAGAGGAGATTTAATGCGATATGACAAATTA -TAAAGTTGTCGTTTTAGACATGGATGACACATTGCTAAATTCAGATAATGTGATATCAGAAGAAACTGCA -AATTATTTAACAGCAATTCAAGATGAAGGTTATTATGTTGTTTTAGCATCTGGTAGACCTACTGAAGGTA -TGATTCCAACTGCTAGAGATTTAAAATTACCTGAACATCATAGCTATATTATTAGTTATAACGGCAGTAA -AACGATTAACATGACTAATGAAGAAGTAGAAGTAAGTAAATCGATTGGTAAGCAGGATTTCGATGAAATT -GTAGATTATTGTCGAGATAGAGGCTTTTTCGTTCTTACATATCATGATGGTCAAATTATTTACGACAGCG -AACATGAATATATGAATATTGAAGCAGAATTAACTGGTTTACCGATGAAACGTGTTGATGACATTAAAGC -GTATATTCAAGATGATGTTCCTAAGGTCATGGGTGTAGATTATGTAGCGAATATTACAGAAGCTAGAATT -GATTTGAATGGTGTGTTCAATGATAATGTAGATGCTACGACAAGTAAGCCATTCTTCTTAGAATTTATGG -CTAAAGATGTTTCAAAAGGTAATGCAATTAAAGCGTTATGTCACAAATTGGGATATTCGGTGGATCAAGT -CATTGCTTTTGGTGATAGTATGAATGATAAATCAATGTTTGAAGTCGCAGGTCTAGCTATTGCTATGGGG -AATGCATCAGATGAACTTAAGCAATATGCAGATGAAATTACGTTGGACCATAATGAAAATGGTATTCCAC -ATGCGCTCAAAAAATTGTTATAAATTTTAAAATAAGCCTAAGCACAGGATATTTGAATAAGATATCTTGT -GTCAAGGCTTTTTATTTATGTGAAAATGCGTTAGCTATAATATGGCGCATTTGAAATACATATTATAGAT -TAGTAATGATATCTAAAGAATAGAGTAGATGCATATTTTTTAAGTAAATCAAGTATTAATTAGTCACGGA -AGGTAGATAAATAAATTTGAATCATTCTGAGTAATAACGAATGTATTAAAAAATGCAGTGACAATCTAAC -ATTAATTGTTAAAATCACTGCAAGCATCTTGATTTTATTTAGCTGTTTGTGTCCAGTCATGCTTCCCTCT -GAAGCGTTTTACATGAGCATATATTTGGTCAGCAGTATAATCTAAATTTGTATAAACTGTAATACTGAAC -GCTGATTGGTTTTCAGCAAATGATTCTTCGGAAAATAATTCCTTTAAGTGCGTAAATAAATCATTCATTT -GTTTATGGTTTAAACCGGGATATTCCCTTAAAGTTCTCTTTAATAATTGTCCGTTCTTTTCTTCTAATGC -TTGAACTACAATAACAAATCTCTCATCTTGCTTTAGTACATCATCAAATAAATTTGTTTGTCCAATCATT -GAATTTCACCCCTGAAAAGTTATTGTTATCTATATTATACACGATATGCAAAATATCTAAAATAAAGAAT -GGTAACATGGTCATAATAAAATATAAACAGAATACTAGTTAATACACTTTATACTAGAAAAAGATATTAA -AGTATATCTACTTTACACCATTAAAAAAGCGGCAAATGCTATAGATAATCTAAAGCATCTGCCGTGTGGG -AATTTATTTATTTTTGATTGTCATAATCGTGTGGTTTTAAATTAATTGTTTCTAGCTTTACAAATTTTGT -TTTGTGAATGATTTTATGAATAAAGTAAATCAACGCTAGAATGATTAAAGGTAAAAAGTTTTTAAAAGCA -TTTAACCATTGATCTTTTAAAATATATTCAACTGAACCACCAAATAGCAAGAATAATAGCGTAGCGATGA -CAATGATTGGTCCTAATGGATAAAAAGGTGCTTTATATGGTAGGACCTTATTAGGATCTTGACCTTGTTT -TTTAATAGCTTGTCGCAATCGTATTTGTGACCAAATGCTTGATCCCCAAACAACTATAATCATTGAACCA -ATAATTTCAAGTAAATTAAAAACGGCATTTGAATTAAAGTTTGCATAAATAATAACAATAACAACGACTG -CATATGTAGTTAATAATGCTCTTAATGGTAATTTTGTTGTCTTGTTTAATTTACTTAAAAATTTAGGTGC -TTTTTTGTCTGAACTTAAGGAATACAACATTCTGCCTGTTGTATAAACACCTGAATTTGCAGCGGATAAT -AGTGAAGTTAAAATAACCGCATTGATTACTGATGCTGCAAAGGCTATGCCTACTCTATCGAATACAATTG -TAAATGGGCTTTGACTTATTGAACTACTTGCTCTTAATAATGATGGATCTGTGTACGGAATAATTGCACC -AATGACTGCAATTGATAATACATAGAATAAAAGAATACGCCAAAACACTTGTTTAATTGCTTTAGGCATA -GACTTTTTAGGATCATCTGATTCGCCAGCAGTTACTGCTACTACTTCAGTACCACCAACTGAGAATCCAG -CGACTAATAATACGCCTAGGAAACCAGAGATACCACCAACAAACGGTGCTTGGCCTTTTGTATAGTTTTC -AAATCCATATGCATGACCACCTAAGATACCGAAAATCATTAAAAAGCCAAAAATAACGAATACGATGATT -GTTAACACTTTAATTAATGATAACCAAAACTCAGTTTCTCCAAATGATTTTACAGAAAAAATGTTTAATA -ATAGTAAAATTGTAATAAAGATTAAGCTCCAAGTAATGGGGTGGAAAAATTTAAATGTGTCCCAGAAATA -AAGCACATTTGACGCTACTATGACATCAACACTTGTAACTAATGACCACAATGCCCAATACAACCATCCC -ATGGTAAAGCCTAGAGATGAGTCAATAAAGCGTGTTGAATAAGAGCTGAATGAACCTGATACTGGATAAA -ATGTTGCCAACTCTCCAATTGATGCCATTAAGAAATATAGCATGACACCAATAACAAGATAAGCGAGTAT -AGCGCCTCCAGGACCAGCTTGAGAAATGATATTACCAGTAGCTACAAATAGACCAGTCCCAATTGCACCA -CCTATAGCAATCATGGAAATGTGTCTTGAGTTAAGACTACGGTTCATTTTATTATCTTCCATATTTAGTC -TCCCATCTATTTAAATATACCCATTATTGTAAGCTTTTTAAGTGTACTATTCAATAACTATTTAGCACTG -TATAGCGGAAAAATTAAAATTTTCTGATTTTTTAATCATCTTGAGCATGTTTAATTGTAATTCTGATGGG -GTTAAATTATAATATGTATTAAATTATAATTATTATAAATTGTGGAGGGATGACTATGTCACGACAAGAT -AAAAAGTTAACTGGTGTTTTTGGGCATCCAGTATCAGATCGAGAAAATAGTATGACAGCAGGGCCTAGGG -GACCTCTTTTAATGCAAGATATTTACTTCTTAGAGCAAATGTCTCAATTTGATAGAGAAGTAATACCTGA -GCGTCGTATGCATGCCAAAGGTTCTGGTGCATTTGGGACATTTACTGTAACTAAAGATATAACAAAATAT -ACGAATGCTAAAATATTCTCTGAAATAGGTAAGCAAACCGAAATGTTTGCCCGTTTCTCTACTGTAGCAG -GAGAACGTGGTGCTGCTGATGCGGAGCGTGACATTCGAGGATTTGCGTTAAAGTTCTACACTGAAGAAGG -AAACTGGGATTTAGTAGGGAATAACACACCAGTATTCTTCTTTAGAGATCCAAAGTTATTTGTTAGTTTA -AATCGTGCGGTGAAACGAGATCCTAGAACAAATATGAGAGATGCACAAAATAACTGGGATTTCTGGACGG -GGCTTCCAGAAGCATTGCACCAAGTAACGATCTTAATGTCAGATAGAGGGATTCCTAAAGATTTGCGTCA -CATGCATGGGTTCGGTTCACACACATACTCTATGTATAATGATTCTGGTGAACGTGTTTGGGTTAAATTC -CATTTTAGAACGCAACAAGGTATTGAAAACTTAACTGATGAAGTAGCTGCTGAAATTATAGCAACAGATC -GCGATTCATCTCAACGCGATTTATTCGAAGCCATTGAAAAAGGTGATTATCCAAAATGGACAATGTATAT -TCAAGTAATGACTGAGGAACAAGCTAAAAACCATAAAGATAATCCATTTGATTTAACAAAAGTATGGTAT -CACGATGAGTATCCTCTAATTGAAGTTGGAGAGTTTGAATTAAATAGAAATCCAGATAATTACTTTATGG -ATGTTGAACAAGCTGCGTTTGCACCAACTAATATTATTCCAGGATTAGATTTTTCTCCAGACAAAATGCT -GCAAGGGCGTTTATTCTCATATGGCGATGCGCAAAGATATCGATTAGGAGTTAATCATTGGCAGATTCCT -GTAAACCAACCTAAAGGTGTTGGTATTGAAAATATTTGTCCTTTTAGTAGAGATGGTCAAATGCGCGTAG -TTGACAATAACCAAGGTGGAGGAACACATTATTATCCAAATAACCATGGTAAATTTGATTCTCAACCTGA -ATATAAAAAGCCACCATTCCCAACTGATGGATACGGCTATGAATATAATCAACGTCAAGATGATGATAAT -TATTTTGAACAACCAGGTAAATTGTTTAGATTACAATCAGAGGACGCTAAAGAAAGAATTTTTACAAATA -CAGCAAATGCAATGGAAGGCGTAACGGATGATGTTAAACGACGTCATATTCGTCATTGTTACAAAGCTGA -CCCAGAATATGGTAAAGGTGTTGCAAAAGCATTAGGTATTGATATAAATTCTATTGATCTTGAAACTGAA -AATGATGAAACATACGAAAACTTTGAAAAATAAATTTGATATGTAGTTTCTATATTGCGTAGTTGAGCAG -TTTATGATATCATAATAAATCGTAAAGATTCCTAACAAGAGAGGGTGTTTAACATGCGCGTAAACGTAAC -ATTAGCATGCACAGAATGTGGCGATCGTAACTATATCACTACTAAAAATAAACGTAATAATCCTGAGCGT -ATTGAAATGAAAAAATATTGCCCAAGATTAAACAAATATACGTTACATCGTGAAACTAAGTAATTCTTAT -CATTCAAATACGACGATTTGAAAATAAAGCGGGCTTACCTATTATATGGGGGAGCTCGCTTTTTTATGAA -ATTTTTGTGAAGAGTGATTAATGAATTGAGTTTCATCGATAGAACAATATATGTTTGTATTAGTTGTTAC -TTTATTAAAATTTGAGAATATTGATAGAAGGAAATAGATTACTAATTTTATAAAGTCACTTTGTTAGCGA -ATGCTTGAAAGAGTAATTAATATAGTAGAATTTAAAATTTCAATGCGGGATTTAATAAGTAAGAAGTAAT -TGTGGATATGTTTTATAAATGTTCGACAATACACTTTGATGTTAAATTTGATGGTTTAAAAAATGATTTA -ACAAAGAAATGAAACTTTACTGTTGAATTATGTGAGGATTGTGTTATTATATAAATCGTAATAATTACGA -TTTGATAAAAAGTGAGGTAACTATATATGGCTAAGAAATCTAAAATAGCAAAAGAGAGAAAAAGAGAAGA -GTTAGTAAATAAATATTACGAATTACGTAAAGAGTTAAAAGCAAAAGGTGATTACGAAACGTTAAGAAAA -TTACCAAGAGATTCATCACCTACACGTTTAACTAGAAGATGTAAAGTAACTGGAAGACCTAGAGGTGTAT -TACGTAAATTTGAAATGTCTCGTATTGCGTTTAGAGAACATGCGCACAAAGGACAAATTCCAGGTGTTAA -AAAATCAAGTTGGTAAAATCAAATTTCGTACTTTAGCCCATTTACAATATCAATAAAACAATGTACAGTA -TATACGAATGCTATAAACTGAATGTTTTCTCATATTAATAAGGAAACATTCGGTTTTTAATTTGCATTTA -AAAATAATTAGTTTTTAAAGGGGCTATTTAAAGTGAAAATATTTGATTACGAAGATATTCAATTAATACC -TAATAAATGCATAGTTGAAAGTAGGTCTGAATGTGATACAACTATCCAATTTGGTCCGAAAAAATTCAAG -CTACCTGTAGTTCCTGCAAATATGCAAACAGTTATGAATGAGAAATTAGCGAAATGGTTTGCTGAAAATG -ATTACTTTTATATCATGCATCGTTTTGATGAAGAAGCAAGAATACCTTTTATAAAACATATGCAAAATTC -AGGCTTATTTGCATCTATTTCAGTTGGTGTAAAGAAAGCGGAATTTGATTTTATAGAAAAATTAGCTCAA -GAAAAGTTAATCCCCGAATATATTACAATTGATATTGCGCATGGTCACTCAGATTCAGTGATAAACATGA -TTAAACATATTAAAACCCATATACCTGATAGTTTTGTTATTGCTGGTAATGTTGGTACGCCAGAAGGTGT -TAGAGAATTAGAAAATGCTGGTGCTGATGCTACCAAAGTCGGTATAGGTCCTGGTAGAGTTTGTATTACA -AAAATTAAAACAGGTTTTGGTACTGGTGGTTGGCAGTTAGCGGCATTAAACATATGTAGTAAAGCAGCTC -GTAAACCTTTGATTGCCGATGGTGGTATAAGAACGCATGGCGATATCGCTAAGTCAATTAGATTTGGTGC -ATCAATGGTCATGATTGGTTCATTATTTGCGGCACACGAAGAATCACCTGGTGAAACTGTAGAACTTGAT -GGTAAACAGTATAAAGAATATTTTGGTAGTGCATCTGAATTTCAAAAAGGCGAACATAAAAATGTTGAAG -GTAAAAAAATGTTTGTAGAACATAAAGGTTCGTTAACGGATACGCTAAAAGAAATGCAACAAGATTTACA -AAGTTCAATCTCTTATGCCGGTGGAAAAGACTTGAAATCATTACGTACTGTAGATTATGTTATTGTTAGA -AACTCTATTTTCAACGGTGATAGAGATTAATATTTATAGTAGGTGATGTAAATTAAAAAATTCATAGTAA -CTGTTGTTGCATTTTTATCAATTATTATCATTGCGCCAATAACAGAATTTAAACCATTCATTCATTTACA -AAATGAAGTAAGACAATATATTGACATTCACATCAATAAAGAAACAATTTCTGCGGAAAATAAATTGGAT -ACGCCGAAGAAACAACAATTTGCCTTTAACAATATACAAATGAACATGTCGAAATCAGATGTTGAGAAAA -CATTAAATAAACCAAAAAGAGTGACATTTAATGAATATGGTACGAAGTGGTATACGTATTATGATGGTGA -TTACAATAATTTTATCATGGTAAGTTACATTAAAGATAAAGTTAATGCGTTATATACAAATCAAAATATC -ATCACTTCAAAATCAAAAATTAAATGCAATACACCGAAATCGGTTGTAAGGCAAAGATTAGGTGAACCAG -AAACAGAGATTGTTAAAGGTAGAGTGCGTTACGAACAAAATAATAAAGAATATGATGTTTTCCATAAAAA -TCACATTTATACGACGGTATTTTATGATAAGCATCGACGTAATAATGTAACAGCTGTTTTACAAGTAAGT -GATGCTATGGAAAATAGATTAAAAGAACAATATGGAGCACCTTCGAAATCGCTTGCAGATAGTTTTGAAC -TACAAAATTTTGATTTAGTTAATGCTGAAAGAAAACAACATCAATTATCTACATTGAAGTATTCTAAACA -GAATTCTGAAACTGCTCGTAAGCATAGTAAAGATATGGCCAAAAATCATTATTTTGATCATACAAATTTA -AAAGGTCAATCACCATTTGATCGATTGAAAAAAGATGGTATTGCATTTAACTCAGCCGGAGAGAATTTAG -CATATGGTCAAGTTAGTAGTATCTATGCACATCAAGGATTAATGAATTCTATTGGTCACAGAAAAAATAT -TTTAAATGATACGTTTAAAATATTAGGCGTTGGTGTTGATTTTAATGATGAAAAACAACCTTTTTGGACA -GAAAATTATACTGATTAATGTTTTTGGCATGAGATTAAAGGGTAATGTTTGTCTGTAAGGAAGTAGATAA -ACATGATGACAACAGATAAACCAAAAGATGCGGATATACTTGAACGCGTCAAAGATATACTTAATAAAAA -AGAAAGAAAAAAATAATAATGGCTCGCTCTTGTAAATTATTACGGGGGCGAGTTTTAATTTGTGTAACAT -TTTGCAGGAATCTGTAATTCAAAATTTATATTAAAGAATGAGATTATCTAACAATTCGCAATTTCTGTTT -GAACTGAATTTAGATTAGAATAAATAAAACCTCTTGAAAACGTAACTTTTTCAAGAGGTCCAAAATTTAT -AAAAATGAGGGCTTAACAATTACGATAATATATAACGGTTTAAAATATTACATTTCGCGGTACAAACCAA -TTACTTTCCCGATTACAGCAACATTGTCGAGGTAAATTGGCTCCATTGTACTATTTTCAGGTTGTAATCG -ATAACGATTTTTTTCTTTATAGAAGCGTTTGACAGTTGCTTCATCTTCCTCAGTCATAGCAACAATAATG -TCTCCATTTTCTGCTATGGTTTGACTGCGAACAATTACTTTGTCTCCGTCTAATATACCAGCCTCAATCA -TACTGTCGCCTACGACGTTTAATATGAATATGTCGCTATTGTGTGTCGATGTTAAGTGTTCAGGTAATGG -AAAATATTCTTCAATATTTTCTACTGCGGTAATAGGAACACCTGCTGTGACTTTACCAATAACTGGCACA -TGAATCGTTTCTTCCATATTAATATTATCATTTGTTTGATCACTTACAATTTCTATAGCACGTGGTTTCG -TTGGATCTCTTCTTATATAGCCTTTTTCTTCAAGACGTGAAAGGTGACCATGAACAGTTGAACTGGATGC -TAAGCCAACTGCTTCACCAATTTCGCGAACACTAGGCGGATAACCTTTCGTTTGAACAACTTGTTTAATA -TAGTTATATATTTCGCTTTGTCGTTTTGTTAATTCTCTCATATATAGGCACTCCCTAAATTAATTTAAAT -ACAGTATATCATTAATTCACAACCAAAACAAACATTTGTTCGTTAAAATATTGACACAGAACATAAGTTC -TGATAAATTACTAATACAAACAAATGTTCTAGGAGTGAAAATGATGTTTTACAATAAATATAAAAACGTA -TCAACATATATCATCATATTTTTAGTTTCAAGTGCAGCCTTTGCAATATTCTTGTTAAGTGCGAACGTTA -GTGCTCACTCGGAACAAGTGTACGAAATGACTGACCATCAAATTAAGAACAATACGATAAATAAAGCATA -CGAACATAAAGACCCTACAAACAATAGCGAACAAAGAGATGGGAAAGTGTTCGCTTTAATAAATTGATAC -ATTGTCACAACGTTATTTTGCCTATTTTTGCGAAATAGCGTTTTTTATTACTTTTTTGCTGATCTTAAAT -TTGTTATATTTTGTTAAAGTATTATAATGATTGAATAAACAAATTGAAGGTAGGTTTTTTAATTGAGTAA -TTCTGATTTGAATATCGAAAGAATTAACGAGTTAGCTAAAAAGAAAAAAGAAGTAGGATTAACTCAAGAA -GAAGCAAAGGAGCAAACAGCGTTAAGAAAAGCTTATCTTGAGAGTTTTAGAAAAGGGTTTAAACAACAAA -TTGAAAATACTAAAGTAATTGATCCAGAAGGTAATGATGTAACACCTGAAAAAATTAAAGAGATACAACA -AAAAAGAGATAATAAAAATTAAAACACAAATCTGTAAAGAATTTTCTGACATTATAACTTGAAATAAGTA -TTTTACTTATCTTTTTATTTTAAAATAAGTTATAATGTATTTGATAAAATTGAAGAAGGGAAGATACACA -AGATGTTTAATGAAAAAGATCAATTAGCTGTTGATACGCTACGTGCACTAAGTATCGACACAATCGAAAA -AGCGAATTCTGGTCATCCAGGATTACCTATGGGAGCTGCCCCAATGGCTTACACTTTGTGGACACGTCAT -CTGAATTTTAATCCACAATCTAAAGATTACTTCAATAGAGACCGTTTCGTATTATCTGCAGGGCATGGTT -CAGCACTATTGTATAGCTTGTTACATGTTTCTGGTAGTTTAGAATTAGAAGAATTAAAGCAATTTAGACA -ATGGGGTTCTAAAACACCAGGTCATCCTGAATACAGACATACAGATGGTGTAGAAGTTACTACTGGACCA -CTTGGACAAGGTTTTTCTATGTCAGTTGGATTGGCTTTAGCAGAAGATCACCTAGCAGGGAAATTTAATA -AAGAAGGATATAATGTTGTAGATCATTACACATATGTATTAGCTTCTGACGGTGATTTAATGGAAGGTAT -TTCGCATGAAGCAGCTTCATTTGCTGGACATAATAAATTAAGTAAATTAGTTGTTTTATACGATTCAAAT -GATATTTCATTAGATGGCGAATTAAACAAAGCTTTTTCTGAAAACACAAAAGCTCGTTTTGAAGCATATG -GTTGGAATTACTTACTAGTTAAAGATGGTAATGATTTAGAAGAAATTGATAAAGCGATTACTACAGCTAA -ATCTCAAGAAGGACCAACAATTATTGAAGTTAAAACAACAATCGGATTTGGTTCACCGAATAAAGCAGGA -ACTAATGGTGTTCATGGGGCACCTTTAGGTGAAGATGAAAGAAAATTAACATTCGAAAATTACGGTTTAG -ATCCTGAAAAACGTTTTAATGTTTCAGAAGAAGTATACGAAATTTTCCAAAATACTATGTTAAAACGTGC -TAATGAAGATGAATCTCAATGGAATTCATTATTAGAAAAATATGCAGAAACATATCCTGAATTAGCAGAA -GAATTTAAATTAGCGATTAGTGGTAAATTGCCTAAAAATTATAAGGATGAATTACCACGTTTTGAATTTG -GTCATAATGGTGCATCTCGTGCTGATTCTGGTACTGTTATTCAAGCAATCAGTAAAACTGTCCCTTCATT -CTTTGGTGGATCAGCAGACCTTGCTGGTTCAAACAAATCCAATGTAAATGATGCAACAGATTATAGTTCT -GAAACACCTGAAGGTAAAAATGTGTGGTTTGGTGTACGTGAATTTGCTATGGGTGCTGCTGTAAATGGTA -TGGCTGCACATGGAGGTTTACATCCATATGGTGCAACATTCTTCGTATTTAGTGATTATTTAAAACCAGC -GTTACGTTTATCATCAATTATGGGATTAAATGCAACGTTCATCTTCACGCATGATTCAATTGCAGTAGGT -GAAGATGGTCCTACTCATGAACCAATTGAACAATTAGCTGGATTAAGAGCCATTCCAAATATGAATGTTA -TCCGTCCTGCTGATGGTAATGAAACAAGAGTAGCATGGGAAGTTGCCTTAGAATCTGAATCTACACCTAC -TTCATTAGTATTGACACGTCAAAACTTACCGGTTTTAGATGTACCAGAAGATGTAGTTGAAGAAGGCGTT -CGAAAAGGTGCCTATACAGTTTATGGCTCTGAAGAGACACCAGAATTTCTATTATTAGCTTCAGGTTCAG -AAGTTAGTCTTGCAGTTGAAGCTGCTAAAGATCTTGAAAAACAAGGTAAATCAGTGCGTGTTGTTTCAAT -GCCTAACTGGAATGCATTTGAACAACAATCTGAAGAATATAAAGAATCAGTTATTCCATCAAGCGTAACA -AAACGTGTTGCGATTGAAATGGCTTCACCGCTTGGATGGCATAAATATGTAGGTACTGCAGGTAAAGTTA -TTGCTATTGACGGCTTTGGCGCAAGTGCACCTGGCGATTTAGTAGTTGAAAAATATGGCTTTACAAAAGA -AAATATCTTAAACCAAGTTATGAGCTTATAAGAATAATTTATAAAGCGAGTATGTTTAGAAGTCTAGGAT -GCATAATCTTAGGCTTCTTTTAAAGTGTTGAAATTTAGAGTATCGCACTCAAACTACATCATAAGTGATA -AGTTTTGAAAATATACTATTTCAGATTAATCTTTAAAACCTCTGTTATAACAGCATGATTTTTGATATTA -TTTTTAGTATCGATATTAAAATACTTGAATAAACTAGTTCTTGAAATAATGTGATGAATTTAGTAAAATT -CAGTAGGATAAAGAAAGCGGGTGAAACAATGGCAACTTGGTTAGCAATTATTTTTATAGTAGCTGCATTA -ATTTTAGGTTTAATTGGAGGTTTCCTTTTAGCTAGAAAATATATGATGGACTACTTGAAGAAAAACCCAC -CAATCAACGAAGAAATGCTTCGTATGATGATGATGCAAATGGGTCAAAAACCTTCTCAGAAGAAAATTAA -TCAAATGATGACGATGATGAATAAAAATATGGATCAAAATATGAAGAGTGCGAAAAAGTAAATTCGCAAT -TGATAGAGGCTATTTTCCAGATATGGAAATGGCCTCTTTTTATAATCAAATTAATAAGGATAAATATGTT -TATTAAAATTAAAGTTAACAAAATGACGAATAGACTGAGAAATGCTATAATTCATTTTGTATGATTTACA -GAGAGTTTATTTAACGAGAAGGTGTCTGCGTGCTCTATTTAATATTTTCAATCATTGTAGCTTTATTTAT -GGGAACTCTAGTTATAGTTATTCGTATGAAAGCTCAAAATTATCCGGTAAATGAGAAAAAAATAGTTTTG -CCACCGTTTTTTATGGCGACTGGTGCATTGATGTACGTCGTTCCATATTTTAGGCTAACAGGATCGGAAA -TGCTAGAAGCCTTTATAATTGGTTTGCTTTTTTCTACAGTTCTAATTTGGACTTCTCGATTTGAAGTCAA -AGGTACAGAAATTTATATGAAACGATCTAAAGCATTTCCAGTTATTTTGATTTCATTACTTGTCATTCGT -ACTGTGATGAAAATATTCATTAGTAATGAAATAGATCCTGGAGAATTAGGCGGCATGTTCTTTTTATTAG -CATTCTGTATGATTGTTCCTTGGAGAGTAGCAATGCTATATAAATACAAAAAACTAAAGAAAACATTAAT -CAATTAATTACTTCTAAAACCACTTGTGATCGACTTCTAAATCAGTCAATGAGTGGTTTTAATTTTACTT -GAAAAGGTGAAATGATTATATTAAAATAAAAGCGAACAAATGTTCTATATGGAGGCAGTAATGAAAATTA -TACATACAGCAGACTGGCACTTAGGGAAAATATTAAATGGCAAACAGCTTTTAGAAGATCAAGCGTATAT -TTTAGATATGTTCGTAGAAAAAATGAAAGAAGAAGAACCTGATATCATTGTGATAGCTGGAGATTTATAT -GACACAACATATCCAAGTAAAGATGCAATCATGTTATTAGAACAAGCGATTGGAAAGCTGAATTTAGAAC -TGCGTATACCAATAATTATGATTAGCGGAAATCACGATGGTAAAGAGAGATTAAACTATGGGGCGAGTTG -GTTTGAAAATAATCAGTTATTTATAAGAACAGATTTTACATCGATTAATTCACCAATAGAGATAAATGGG -GTTAATTTTTATACACTCCCTTATGCTACTGTGAGCGAAATGAAACACTATTTTGAAGATGACACCATTG -AAACGCATCAACAAGGAATTACGCGCTGTATTGAAACAATAGCACCGGAAATTGATGAAGGTGCCATCAA -TATTTTAATTAGTCATCTGACTGTTCAAGGTGGAAAGACATCTGATTCTGAAAGACCATTAACTATTGGA -ACGGTTGAATCAGTTCAGAAAGGTGTTTTTGATATATTTGATTATGTCATGCTAGGTCACTTGCATCATC -CATTTAGTATAGAAGACGACAAAATTAAATATAGTGGCTCCTTATTGCAGTATTCATTTTCGGAAGCGGG -TCAAGCAAAAGGGTATAGACGTGTAACAATTAATGATGGCATTATTAACGATGTATTTATTCCTCTTAAG -CCGCTTAGACAATTGGAAATTATCTCGGGCGAATATAATGATGTTATTAATGAAAAAGTTCATGTGAAAA -ATAAAGATAATTATTTACATTTTAAACTTAAAAATATGTCTCATATTACTGATCCAATGATGAGTTTAAA -ACAAATTTATCCTAATACTTTAGCGCTGACGAATGAAACTTTTAGTTACAATGAAGAAAATAATGCTATA -GAAATAAGTGAAAAAGATGACATGTCAATCATCGAAATGTTTTATAACCATATAACTGATAAAGAATTAT -CGGATATCCAATCTAATAAGATAAAAAATATTTTAGAAAACGAATTGAGAAAGGAGGATTAATGAATGAA -ACCATTACATTTAAAGTTGAATAATTTCGGCCCCTTTTTAAAAGAAGAAATTGATTTTTCTAAAATTGAT -AATAATGAATTGTTTTTAATAAGTGGTAAGACTGGATCGGGTAAAACAATGATTTTTGATGCAATGACTT -ATGCCTTGTTTGGTAAAGCATCAACTGAACAAAGAGAAGAAAATGATTTGAGAAGTCATTTCGCTGATGG -TAAACAGCCGATGTCAGTAACGTTTGAATTTCAATTAAATAATCGAATTTATAAAGTGCATAGACAAGGC -CCTTATATCAAAGAAGGTAATACAACAAAAACGAACGCTAAATTTGATGTATTTGAGATGGTGGATGGCA -AGTATGAAATTAGAGAAAGTAAAGTAATTTCAGGTACCCAATTCATTATTGAATTATTAGGAGTAAATGC -AGATCAATTCCGACAATTGTTTATTTTGCCTCAAGGTGAATTCAAACGCTTTTTAATATCAAACAGTCGT -GAAAAGCAAGGGATATTAAGAACGCTGTTTGACAGTGAAAAATTTGAAGCTATACGAGAAATATTAAAAG -AAGAAGTAAAAAAAGAAAATGCTCAAATCGAGAATAGATATCAACAAATTGACCTTTTATGGCAAGAAAT -TGAATCATTTGATGATGACAAAATAAAAGGCTTATTAGAGGTTGCCACTCAACAGATAGACAAAGTGATT -GAAAATATACCACTTTTACAAGCTAGGTCGAAAGAAATACTAGCATTTGTAAATGAAAGTAAAGAAACTG -CTATTAAAGACTATGAAATAATAGAAAAGAAAACACTAGAAAATAATATATTAAAAGATAATATTAATCA -ACTCAACAAAAATAAAATTGATTTCGTTCAATTGAAAGAGCAACAACCTGAAATAGAGGAAATTGAAGCT -AAGTTAAAGTTGTTACAAGATATTACAAACCTATTGAATTATATTGAAAATAGAGAAAAAATTGAAACTA -AAATCGCTAATAGCAAAAAAGATATTTCTGAAACCAATAATAAAATATTGAATCTTGAGTGTGATAAGCG -AAACATAGACAAAGAGAAAAGAATGTTAGAAGAAAACGGAGATTTAATTGAAAGTAAAATCTCTTTTATT -GATAAAACTAGAGTATTATTTAACGATATTAATAAGTATCAACAAAGTTATCTCAATATTGAACGCTTGA -GAACTGAGGGTGAACAATTAGCTGATGAATTAAATAATCTAATTGAAGGTTTAGAAAAGGTCGAAGATTC -AATAGGTAATAACGAAAGTGATTACGAGAAAATTATCGAACTAAATAATGCGATAACTAACATAAATAAT -GAAATTAATGTAATTAAAGAAAATGAAAAAGCTAAAGCTGAATTAGATAAACTATTAGGTAGTAAGCAAG -AGTTAGAGAATCAAATTAATGAAGAAACATCTACATTGAAGAATCTCGAAATAAAATTAGATCGCTACGA -TAAATCAAAATTGGACTTAAATGATAAAGAAAGTTTTATAAGTGAAATTAAATCTGCTGTAAAGATTGGA -GATCAATGTCCGATATGTGGTAATGAAATTCAGGATTTAGGGCATCATATTGATTTTGACAGTATCGCTA -AACGTCAAAATGAAATTAAAGAAATTGAAGCAAATATCCACACTATGAAATCGAATATTGCTGTACATAA -TTCTGAAATTAAATTTGTTAATGAAAAAATATCGAATATTAATATTAAAACGCAAAGTGATTTCTCACTC -GAAGTATTGAATAAGCGTCTGCTAGAAAATGAAAATGCATTGAATAATCAAAGAGAGCTTAATAAATTTA -TAGAACAAATGAAAGAAGAAAAAGATAATTTAACGTTGCAAATTCATAATAAACAATTGCGTCTAAATAA -AAATGAATCTGAGTTGAAATTATGTCGAAATCTCATCACTGAATTTGAAACACTCTCGAAATATAATAAT -ATCACTAATTTTGAGGTGGATTATAAGAAGTATGTACAAGATGTGAATCAACATCAAGAACACTCAAACC -AGATTGAAGATAAGTTAATACAATTATCTCAAAGAAAGTTAATTGAGCAAAATAATCTAAATCACTATGA -AAAACAACTAGAAACTTACAATAATGACTTAGAATTGAATGAACAATCTATTGAAATGGAAATGTCGAGG -CTGAATTTAACTGATAACAATGATATAAATGAAATAATAGCCTGGAGGGGCGAGCAAGAGGAATTAGAGC -AGAAAAGGGATACTTATAAAAAACGTTATCATGAATTTGAAATGGAAATAGCTAGGTTAGAATCATTAAC -CAAAGATAAAGAGTTATTGGACTCTGATAAATTAAAAGATGAATATGAACTAAAAAAAGGAAAGATGAAT -ACACTGATAGATGAATACTCTGCTGTTCATTATCAATGTCAAAATAATATTAATAAAACACAATCTATAG -TTTCGCATATTAATTACTTAAATCAAGAATTAAAGGATCAACAAGAAATATTTCAATTGGCTGAGATTGT -CAGTGGTAAGAATAACAAAAATCTTACATTGGAAAACTTCGTCTTAATTTACTATTTAGATCAAATTATT -GCTCAAGCAAATCTGAGATTAGCGACAATGTCAGATAATCGATACCAACTAATTAGGCGAGAAGCGGTTT -CTCATGGTCTTAGTGGCCTAGAAATTGATGTATTTGATTTGCATTCAAATAAGTCTAGACATATTAGCTC -GTTATCAGGTGGAGAAACTTTCCAATCGTCGCTTGCATTAGCTTTAGGGTTAAGTGAAATTGTACAGCAG -CAATCAGGAGGTATTTCACTAGAATCAATTTTTATTGATGAAGGATTCGGTACATTAGATCAAGAAACGC -TTGAAACAGCGTTAGACACTTTGTTAAATCTTAAATCAACTGGTAGAATGGTTGGGATTATTTCACATGT -GAGCGAATTGAAAAATAGAATACCTTTAGTTTTAGAAGTGAAATCAGATCAATATCAGAGTTCAACAAGA -TTCAAAAGAAATTAAAACATAAAAAATAGAGATGGTACTTTGGAATGTATAGAATGAAATGCTCCCTTCA -AAGTAGACATTGAAAAAATGAAAACTTTGAAGGGAGCTTTATTTATGTCAATAAAACCTAAAGTAGACAT -AGATGTACTGCTATATATGTTTCAAGAATATGAAAAAGGCGTGTCGTTTCAATACTTAATCGATACATTA -CAATTAGATATTAATGTCAATACTTTGTATCCTAAGTATAAATATTATAAAACCCATGGTATTGAAACAC -TACTTACACAAAAACAATACAATCACTATTCAAAGGAACTAAAATTAAAAGTTGTAAATGAATATTTGAA -TTCAAATCAATCAACCCAAGACATCGCAATCAAATACAATATTCGTAGTTCGACACAAGTCAAAAATTGG -ATAAAAATGTATACTGTAGGAAAAGAGATTAAGAATCAATCTCCTAAAACTGGGGTGTATATCATGAAAG -CAAGAAAAACCACATTTGAAGAACGTGTAACAATTGTTGAATATTACTTGAATCATAAACAATCTTATAG -AGAAGTTGCAGAACACTTTAATATCTCATACGGTCAAATTTACCAGTGGGTTCATAAGTATCAAGCACAT -GGTAAAAATGGATTAGTAGATGGCAGAGGCAAAGGAAAACCCAAATCTATGATGACGCCAGAAGAACAAA -AAGAAGCTGAAATTCAAGCATTAAAAGCACAAAATCGATTATTAGAGATGGAAAATGACGTTTTAAAAAA -GTTTCAAGCATTGGAAAGAGAGATGATTCAAAGAGAAAACAAATCACGGCATACAAAACGATCGAAGCGT -TAAAACATCAATACCCTATCCAACGCTTGTGTCGTATTTTAGGCATTTCTAGAGCGAGTTATTATAAGTG -GGTACATTATCAATCGAGTGAACTTGAATTAGAGAATGAACAGCTTAAGCGAGAAATAGAATCAATCTAT -CATAAGTATAATGGTATTTATGGCTATCGTCGCATTTATATCTATATTCGCTTAAAACTAGGTAAACAAG -TAAACCGAAAGCGAATTTATCGTTTGATGAAAGAACTTAATTTAAAAGCAGTAATACGTCAAAAGCGAAA -ACCTTATCGACGTTCAACGCCACAAATCACATCAGAAAATAAGCTTAATCGACAATTTGACATTGATACG -CCAAATAAAGTTTGGTTAACAGATGTAACAGAATTTAAAATCAAAGAAGGTAGTAAGATATATTTGAGTG -CCATTTATGACTTAGGTGCTAAACGTATTGTTAGTTATGAGCTAGGCCCTTCTAACAATAATCAATTAGT -ATTTAAAACATTCAATCAAGCGATAGAAAAAGTAGAAAATACAAAAGGTATTTTATTTCATAGTGACCGA -GGTTTTCAATATACATCGAAAACATTTAAACATATGTTGGATGAATGTGGCATGATTCAAAGTATGTCAC -GTGTTAGCAAATGTATCGATAACGGTCCAATGGAAGGTGTATGGGGTACAATAAAAAGTGAAATTTTTAG -AGGAAATAAGCACTTTAAATTTAATAGTGTAGAAGAAGCTACAAAAACAATTCATGATTTTATTCTTTTC -TTTAATCATGAAAGAATTACATTAAAAATGGCTGATTCTGTATAACAACAAAACCAACCATTAATTTTAA -TTATTTAATTGTCTACTAGACTGGGTGCAGTTCAGAACAACCTTAGCCCATCTCTTTTTATTTAAAAATT -ATTTTTTCTCACGTAATAAATCTCTGATTTCAGTTAATAACACAACATTTTCTTCCACAACTGCTTCTTC -TTCGGCTTCTTCTTTCTTCATTAAGGTATTTGCAATCTTAACGAAGATGAATAAAGCAAACGCGATGATA -ATAAAGTCGATAACAGATTGGATAAATAAACCATATTTAATACCCCAGAATGACCATTCTTTAGCAAAAT -CAACTGATCCGAAAATTTTACCAATTAATGGCATAATGATATTTTCTACTAATGAAGATATAATCTTGTT -GAAAGCTGCACCCATCACAACAGCAATTGCTAAATCTAAGACGTTACCTTTTAAGGCGAACTCTTTGAAT -TCTTTTAACATTACACTCAACCTCTCTTGTTTAAATGTAACCTCAATTATACAACAAATAAAAAAATTAG -AAAATAGATTATTTAAGAAAATTTGATTATCGCAAAGACCTTTGTTATCCTATAAAGGTGCGTGAGTTAT -TGAATAAAATGTTTAGATAATATTTTTATTCTACTACATAAAATTAAATATAGAATTGAAGGGAGTAATT -AATTATGAATTCTTCTTCACCAGAGAATCCAAATGGAAAGAAGTATTCACCAGTCTTCATCTATAGTGCA -ATTGTTGTTGCTATAGTCGTATTACTTGGTGCATTTTTACCTGAACAATTCAACTATGTTACCAATAATA -TTAAAATGTGGATTACAGAAAAGTTAGGTTGGTATTATCTTATTCTTACTACGATTATCGTGTTCTTCTG -TATATTCCTTATTTTTAGTCCTATTGGAAAACTTAAACTAGGTAAACCAAATGACAAACCTGAGTTTAAT -ACAATTTCATGGTTTGCTATGTTGTTTAGTGCTGGTATGGGGATAGGTTTGGTGTTTTATGGTGCAGCTG -AACCGATGGCGCACTTTGCTACGCCACCTACGGCAGATCCCAAAACTACTGAAGCTTATACTGAAGCCCT -ACGTTCAACATTTTTCCATTGGGGATTCCATGCTTGGGCTGTTTATGGTGTTGTTGCGTTAGCGTTGGCA -TATTCGCAATTCCGTAAAGGTGAACCAGGTTTATTATCTAGAACTTTACGTCCTCTTTTAGGTGATAAAG -TAGAAGGTCCTATTGGGATTTTTATTGACGTTTTATCTGTATTTGCGACAATCGTTGGGGTAGCTGTTTC -GTTAGGTATGGGTGCTCTACAAATTAATGGTGGTTTACATTACTTGTTCAATGTTCCAAACAATACGTTT -GTACAAGCGATTATCATCATTGTTGTTACTATCTTATTTATAGCAAGTGCATGGTCTGGATTAAGTAAAG -GTATTCAATACTTAAGTAACTTGAACATTGGTTTAGGTACTATTTTAATGGTAGCTGCTTTAATTGTTGG -ACCAACTGTTCTTATTTTAAATATGTTAACTAGCTCTACGGGTAGTTTACTAAACACATTCTTGTTTAAT -AGTTTTGATACAGCTGCTTTAAATCCTCAAAAACGTGAATGGATGTCTTCATGGACACTTTATTACTGGG -GTTGGTGGTTAAGTTGGAGCCCATTCGTTGGTGTGTTTATTGCACGAGTTTCAAAAGGACGTTCAATTAG -AGAGTTCATTTCTGGTGTCTTGCTAGTTCCAGCAATTGTTAGTTTTGTATGGTTTAGTGTCTTTGGTGTA -TTAGGCATCGAGACAGGTAAGAAATACAAAGAAATTTTTGATATGACTCCTGAAACACAGCTATTTGGAG -TGTTTAATCATGTGCCATTTGGCATTGTTTTATCGTTGATTGCATTATTATTAATTGCATCATTCTTTAT -TACATCTGCTGACTCAGCAACATTTGTATTAGGAATGCAAACAACATTTGGTTCATTAAATCCATCTAGA -ATGGTAAAAGTTGTTTGGGGAATTTCACAGGCCTTAATAGCATTTGTACTTTTATTAGCTGGTGGCGGTA -ACGGTGCTGAAGCTTTAAATGCGATTCAAAGTGCTGCAATTATAAGTGCATTCCCATTCTCCTTTGTCGT -CATACTCATGATGGTAAGTTTCTACAAGGATGCAAACCAGGAACGTAAATTCCTAGGTTTAACATTGACT -CCGAATAAACACCGCTTACAAGAATATATCAAGAGTCAACAAGAAGATTATGAATCTGACATTCTTGAAA -AGCGTCAGTCACGTAGAAATATAGAGAAAAAAGATAACTAATAAAATTTAGTCAAGTATTTTAATAACAA -GTAGTATGTCATTCTAGTAGCTAGAACAGATATACTACTTGTTTATTTTTGTGGAAAATTGAGTATATTC -AAAATGATAAGAACGAGAATTTCGTTATTAAACTACGAATTCTCGATTTTTTTATATTTTAAAATAGGTT -TATTTATGACAACTTAATAGTAAGGGGTTTGACAAAGCTAAAGTGATGTACGACGGTATAAACAAAAATT -AACTAAACATATTTCGGTATGTGTATATCAAAAGAATGACATTGAAAAGAAATTTTAAAGTTTGACGCAA -TAATTTTCTTTCTGCTCAATGAAATAATACGTTTAAAAATTGAATTGAATCATTCACGAAATTGATAATT -ATTCTCAATTAATAAAAAATACTTATTACACCTTACCTGCATGATAAGTTTTACTTATATACTCTGATTA -AAAAGTCAAAACCTAAATTAAGCGTTTTCTAAGCATGATGAGTTGTTTATCAATAAATATAATAATACAA -TTTAATCAAGGCATATAAATATAAAAATGTATCAAGGGGGATCATTAAATGGCTGCAAATTTTAAAGAGC -AATCAAAAAAACATTTTGACTTGAATGGCCAAAGTTATACTTACTATGATTTAAAAGCTGTAGAAGAGCA -AGGTATTACTAAAGTTTCGAAATTACCTTATTCAATTCGTGTTTTGTTAGAATCTTTACTTCGTCAAGAA -GATGATTTTGTAATTACAGACGATCATATTAAAGCTTTAAGTCAGTTTGGAAAAGATGGAAATGAAGGCG -AGGTACCATTTAAACCTTCTCGTGTTATTTTACAAGATTTCACAGGTGTACCAGCCGTAGTTGATTTAGC -TTCTTTACGTAAAGCAATGGATGACGTTGGGGGAGATATTACTAAAATTAATCCAGAAGTACCGGTGGAT -TTAGTTATTGACCACTCAGTTCAAGTGGATAGCTATGCAAACCCAGAAGCACTTGAACGTAATATGAAAT -TAGAATTTGAACGTAACTATGAACGTTATCAGTTTTTAAATTGGGCAACGAAAGCATTTGATAATTACAA -TGCAGTTCCTCCTGCAACTGGAATAGTTCACCAAGTTAACCTAGAATATTTAGCAAGTGTTGTACATGTT -CGTGATGTAGATGGTGAAAAAACTGCATTTCCAGATACATTAGTTGGTACTGATTCACATACAACAATGA -TAAATGGTATTGGCGTACTAGGATGGGGTGTTGGTGGTATTGAAGCTGAAGCTGGAATGCTTGGACAACC -TTCTTATTTCCCAATTCCAGAGGTTATTGGTGTACGACTAGTAAATTCATTACCACAAGGCGCAACAGCA -ACTGATTTAGCGTTGAGAGTAACTCAAGAGCTACGTAAAAAAGGTGTTGTTGGCAAATTTGTAGAGTTCT -TTGGTCCAGGTGTACAACATTTACCACTAGCAGACCGTGCTACAATCGCAAACATGGCACCTGAGTATGG -AGCAACTTGCGGATTCTTCCCAGTTGATGATGAATCTCTTAAATATATGAAGTTAACTGGTAGATCAGAC -GAACATATCGCGCTTGTAAAAGAATATTTGAAACAAAACCATATGTTCTTTGATGTTGAAAAAGAAGATC -CTAATTATACAGATGTTATCGAATTGGATTTATCAACAGTTGAAGCATCGCTTTCAGGACCAAAACGTCC -TCAAGATTTAATTTTCTTAAGTGATATGAAATCATCATTTGAAAATTCTGTAACAGCTCCAGCGGGCAAC -CAAGGACACGGTTTAGATAAAAGTGAATTTGATAAGAAAGCAGAAATTAACTTCAAAGATGGATCAAAAG -CTACAATGAAAACAGGTGATATTGCAATAGCAGCAATTACATCATGTACAAATACATCTAACCCTTATGT -AATGTTAGGTGCAGGTTTAGTTGCTAAAAAAGCAGTTGAAAAAGGCTTGAAAGTTCCTGAATACGTTAAA -ACTTCTCTAGCACCAGGATCAAAAGTTGTTACCGGATATTTAAGAGGTGCTGGCTTACAACCCTATTTAG -ATGATTTAGGCTTCAACTTGGTTGGTTATGGATGTACAACTTGTATTGGTAATTCAGGTCCTTTATTACC -AGAAATTGAAAAAGCGATTGCTGATGAGGACCTATTAGTGACATCTGTATTATCTGGTAACCGTAACTTT -GAAGGTCGTATCCATCCTCTTGTTAAAGCCAATTACCTAGCTTCACCACAGTTAGTTGTTGCTTATGCAT -TAGCTGGATCGGTTGATATTGATTTACAAAATGAACCTATTGGTAAAGGTAATGACGGTGAAGATGTATA -TTTGAAAGATATTTGGCCATCAATTAAAGAAGTTTCAGATACCGTTGATAGTGTTGTAACACCTGAATTA -TTTATTGAAGAATATAATAACGTATACAATAACAACGAATTATGGAATGAGATTGATGTAACTGATCAAC -CTCTATATGACTTTGATCCTAATTCAACATACATTCAAAATCCATCATTCTTCCAAGGATTATCTAAAGA -ACCGGGTACGATTGTTCCGTTAAATGGTTTACGTGTTATGGGTAAATTCGGTGATTCTGTGACAACTGAC -CACATCTCTCCAGCAGGTGCAATTGGTAAAGATACGCCAGCTGGTAAATATTTACAAGATCACCAAGTGC -CTATTCGTGAATTTAATTCATATGGTTCAAGACGTGGTAATCACGAAGTAATGGTTCGAGGTACGTTTGC -TAATATACGTATTAAAAACCAATTAGCGCCAGGTACTGAAGGTGGTTTTACAACTTATTGGCCAACAAAT -GAAGTAATGCCTATCTTTGATGCTGCAATGAAATATAAAGAAGATGGTACAGGTTTAGTTGTATTAGCTG -GTAACGATTATGGTATGGGTTCATCTCGTGACTGGGCAGCAAAAGGTACAAACTTATTAGGTGTTAAAAC -GGTTATTGCACAAAGTTATGAACGTATCCATCGTTCAAATTTAGTTATGATGGGTGTATTACCATTAGAG -TTTAAAAAAGGTGAATCAGCTGATTCTCTTGGTCTAGATGGTACAGAAGAAATTTCTGTTAATATTGATG -AAAATGTTCAACCACATGACTACGTCAAAGTTACTGCTAAGAAGCAAGATGGTGATTTGGTAGAATTTGA -CGCTATGGTTCGTTTTGACTCACTTGTTGAAATGGATTACTATCGCCACGGTGGTATTTTACAAATGGTT -TTAAGAAATAAATTAGCGCAATAAAAAATAGGTATCACAGTAAATTTTTTATCGGTATTTGAGGCACTTT -GATAGTGCTCTAAAAATAGCTCTATAAACTTTATGATTTAATAGGTCGGTTCAAAACCTTTGTGTTCTTG -GCCGGCCTCTTCTTGTATTTTATGTTAGAATGAGATATAAAGTTAAACTGAAAGAAGGCTTAAAATGATA -TATAGTATTACAGAAATAGAAGCGCGTTATGCTGAAACTGATAAGATGGGTGTAATTTATCACGGGAATT -ATGCAACTTGGTTTGAAGTTGCGCGGTTGGATTATATATCGAAGTTAGGTTTTAGTTATGCTGATATGGA -AAAACAAGGAATCATTTCACCTGTGACTGACCTCAATGTCAATTATAAAAAGTCTATTTTTTATCCAGAA -AAAGTTAAAGTTAAAACTTGGGTTGAAAAATATTCGAGATTACGTTCAGTGTATAAATATGAGATTTTTA -ATGAAAAAGGTGAACTTGCAACTACAGGTTCCACAGAATTGATTTGCATTAAAGAAGATACTTTTAAGCC -TATACGGTTGGATCGTTATTTCCCAGATTGGCATGAAGCCTATAGTAAAGTGCAAGCGCTCAATAATGAA -GGGAAAATAGTAGAGATAATGGATGGTATTGATTCTTTATAAGTTACTATAAATGTTTGGAGAGGCAATA -TTAATATTTAATCTATAAAAAATAGTCAATACGTTAACATTAACATAATTAGCGTGAAGATAAGCTAATA -TATATAGCAAAAACGAACTTGTTCATACAACATCAGATGTGCTAAACCAAAGTACAACTTCCGAGGTTCA -GTACACATCAGAATGTGTAAACAAGTTCGTTTTATTTTAGTTATTTTTTGGAATAAGAAATTTCATCTTC -GTGATCAACTACATTTACAATAATGTGGTCATCTTCAAAGTACCACAAATCTTTTTCCGCTATGACAACA -TTTAAATCGTCATATTGTTGTTCATAGCCAATATCAACATCTTCCTTTGGTTCAACTGTAAAAGCAGGAC -TAAATCCTTGCTTGAGTTGGAATTCGCCACCATATCTTACAAAAAACACGAGCACTTTATTATTTTCAGG -TAACTCAAGTTCATTTTTAAACCAAGTTACTGCTGCATCAGTAAGTTCTATTTGCATAACAATGACCTCC -TATATTTATTACAGAATGGGAGTGGGCCCAAACTCGTATTGTTTGTGGAATTTCTTTTCGAAATTCTCTG -TGTTGGAGCCCACCCCAACCTGCACATTATTGTAAGCTGAATTTCCATAAGCTTCTATGTTGGGACCGCC -GACCAGAATTGAAAAAAGCTAGTTATAAGCGCATTTCGTTCTGTCAACTACAGCTAATATAACATTGTGG -AACCTATGACATTGATTTATGTCTCGGTCTCAAATGTTCTTGTAAAAAAACTAAGTATAGTTGAATTTTA -AGTTAAAAAAATTGTTTTTGCAAAAATAAAATAATCCATCAACTGCAAAAAAATATGCAATGATGGACTA -ATGTCAAAAAATTGTTACATCCATTTTATTTTAGGTTCTTCGCCTCTAAAAATCCTTGCGATATTAGAGC -GATGTCTAATTATCAATATGATTGAAACTAAGAAACTAACGACTAATAAAATATAGTCTTGAATGATAAG -CGAGCCAATCACACAGCAAATTGCTGCAACGATACTTGCTAAAGAAACATATTTAAAAATCTTCAATACA -ATAAAGAAGATAATTGCAAGTATTAGTAATAGTATCGGGTTGACTCCCAAGACGACACCTGCACTAGTTG -CAACAGCTTTGCCACCTTGGAATTTTAAATAAACTGGGTAAACGTGTCCAAGTATAGCGAATAAGCCTAC -AATTAAACCATTTGTAAAAAAAGTACTAATAGGGCCATCTGCGTGAACTGGTAACCATAAAGGGAAGAAA -ACAGTTATGAACCCTTTGAAAATATCTAGAAATGTTACCAAGAATCCTGCAGGACGACCTAATACTCTAA -AGCTATTAGTAGCGCCAGTATTACCACTACCAAATTGTCTAATATCTTTTTTGAAAAATAATTTTCCAAT -TACGAATCCACTTGGGAAAGCGCCGATAAGATAACTTAGTAGTAACATGACGATTATCATCATAAATATT -ACACATCCTTTAATATCTTAGGACTATTTTATCATATTCGTTTAAATTACGGCTAAAATTTTTAAAAACG -GGGATTAATATATGGAATTAAGCTATGAAAGTTAATTGACACTTGCATTTTACGCTGATTTATATAAGAA -TAACTATTGTATAGTTTTAAAAACGAACGTACGTTTGCAGGAGGCGAAATCATTGGCAATGAATAAACAA -AATAATTATTCAGATGATTCAATACAGGTTTTAGAGGGGTTAGAAGCAGTTCGTAAAAGACCTGGTATGT -ATATTGGATCAACTGATAAACGGGGATTACATCATCTAGTATATGAAATTGTCGATAACTCCGTCGATGA -AGTATTGAATGGTTACGGTAACGAAATAGATGTAACAATTAATAAAGATGGTAGTATTTCTATAGAAGAT -AATGGACGTGGTATGCCAACAGGTATACATAAATCAGGTAAACCGACAGTCGAAGTTATCTTTACTGTTT -TACATGCAGGAGGTAAATTTGGACAAGGCGGCTATAAAACTTCAGGTGGTCTTCACGGCGTTGGTGCTTC -AGTTGTAAATGCATTGAGTGAATGGCTTGAAGTTGAAATCCATCGAGATGGTAATATATATCATCAAAGT -TTTAAAAACGGTGGTTCGCCATCTTCTGGTTTAGTGAAAAAAGGTAAAACTAAGAAAACAGGTACCAAAG -TAACATTTAAACCTGATGACACAATTTTTAAAGCATCTACATCATTTAATTTTGATGTTTTAAGTGAACG -ACTACAAGAGTCTGCGTTCTTATTGAAAAATTTAAAAATAACGCTTAATGATTTACGCAGTGGTAAAGAG -CGTCAAGAGCATTACCATTATGAAGAAGGAATCAAAGAATTTGTTAGTTATGTCAATGAAGGAAAAGAAG -TTTTGCATGACGTGGCTACATTTTCAGGTGAAGCAAATGGTATAGAGGTAGACGTAGCTTTCCAATATAA -TGATCAATATTCAGAAAGTATTTTAAGTTTTGTAAATAATGTACGTACTAAAGATGGTGGTACACATGAA -GTTGGTTTTAAAACAGCAATGACACGTGTATTTAATGATTATGCACGTCGTATTAATGAACTTAAAACAA -AAGATAAAAACTTAGACGGTAATGATATTCGTGAAGGTTTAACAGCTGTTGTGTCTGTACGTATTCCAGA -AGAATTACTACAATTTGAAGGACAAACGAAATCTAAATTGGGTACTTCTGAAGCAAGAAGTGCTGTTGAT -TCAGTAGTTGCAGACAAATTACCATTCTATTTAGAAGAAAAAGGACAATTGTCTAAATCACTTGTAAAAA -AAGCAATTAAAGCACAACAAGCAAGGGAAGCTGCACGTAAAGCTCGTGAAGATGCTCGTTCAGGTAAGAA -AAACAAGCGTAAAGACACTTTGCTATCTGGTAAATTAACACCTGCACAAAGTAAAAATACAGATAAAAAT -GAATTGTATTTAGTCGAAGGTGATTCTGCGGGAGGTTCAGCAAAACTTGGACGAGACCGCAAATTCCAAG -CGATATTACCATTACGTGGTAAGGTAATTAATACAGAGAAAGCACGTCTGGAAGATATTTTTAAAAATGA -AGAAATTAATACAATTATCCACACAATCGGGGCAGGCGTTGGTACTGACTTTAAAATTGAAGATAGTAAC -TATAATCGTGTAATTATTATGACTGATGCTGATACTGATGGTGCGCATATTCAAGTGCTATTGTTAACAT -TCTTCTTCAAATATATGAAACCGCTTGTTCAAGCAGGTCGTGTATTTATTGCTTTACCTCCACTTTATAA -ATTGGAAAAAGGTAAAGGCAAAACAAAGCGAGTTGAATACGCTTGGACAGACGAAGAGCTTAATAAATTA -CAAAAAGAACTTGGTAAGGGCTTCACGTTACAACGTTACAAAGGTTTGGGTGAGATGAACCCTGAACAAT -TATGGGAAACGACGATGAACCCAGAAACACGAACTTTAATTCGTGTACAAGTTGAAGATGAAGTGCGTTC -ATCTAAACGTGTAACAACATTAATGGGTGACAAAGTACAACCTAGACGTGAATGGATTGAAAAGCATTTT -GAGTTTGGTATGCAAGAGGACCAAAGTATTTTAGATAATTCTGAAGTACAAGTGCTTGAAAATGATCAAT -TTGATGAGGAGGAAATCTAGTGAGTGAAATAATTCAAGATTTATCACTTGAAGATGTTTTAGGTGATCGC -TTTGGAAGATATAGTAAATATATTATTCAAGAGCGTGCATTGCCAGATGTTCGTGATGGTTTAAAACCAG -TACAACGTCGTATTTTATATGCAATGTATTCAAGTGGTAATACACACGATAAAAATTTCCGTAAAAGTGC -GAAAACAGTCGGTGATGTTATTGGTCAATATCATCCACATGGAGACTTCTCAGTGTACGAAGCAATGGTC -CGTTTAAGTCAAGACTGGAAGTTACGACATGTCTTAATAGAAATGCATGGTAATAATGGTAGTATCGATA -ATGATCCACCAGCGGCAATGCGTTACACTGAAGCTAAGTTAAGCTTACTAGCTGAAGAGTTATTACGTGA -TATTAATAAAGAGACAGTTTCCTTCATTTCAAACTATGATGATACGACGCTCGAACCAATGGTATTGCCA -TCAAGATTTCCTAACTTACTAGTGAATGGTTCTACAGGTATATCTGCAGGTTACGCGACAGATATACCAC -CACATAATTTAGCTGAAGTGATTCAAGCAACACTTAAATATATTGATAATCCGGATATTACAGTCAATCA -ATTAATGAAATATATTAAAGGTCCTGATTTTCCAACTGGCGGTATTATTCAAGGTATTGATGGTATTAAA -AAAGCTTATGAATCAGGTAAAGGTAGAATTATAGTTCGTTCTAAAGTTGAAGAAGAAACTTTACGCAATG -GACGTAAACAGTTAATTATTACTGAAATTCCATATGAAGTGAACAAAAGTAGCTTAGTAAAACGTATCGA -TGAATTACGTGCTGACAAAAAAGTCGATGGTATCGTTGAAGTACGTGATGAAACTGATAGAACTGGTTTA -CGAATAGCAATTGAATTGAAAAAAGATGTGAACAGTGAATCAATCAAAAATTATCTTTATAAAAACTCTG -ATTTACAGATTTCATATAATTTCAACATGGTCGCTATTAGTGATGGTCGTCCAAAATTGATGGGTATTCG -TCAAATTATAGATAGTTATTTAAATCATCAAATTGAGGTTGTTGCAAATAGAACGAAGTTTGAATTAGAT -AATGCTGAAAAACGCATGCATATCGTTGAAGGTTTGATTAAAGCGTTGTCAATTTTAGATAAAGTAATCG -AATTGATTCGTAGCTCTAAAAACAAGCGTGACGCTAAAGAAAACCTTATCGAAGTATACGAGTTCACAGA -AGAACAGGCTGAAGCAATTGTAATGTTACAGTTATATCGTTTAACAAACACTGACATAGTTGCGCTTGAA -GGTGAACATAAAGAACTTGAAGCATTAATCAAACAATTACGTCATATTCTTGATAACCATGATGCATTAT -TGAATGTCATCAAAGAAGAATTGAATGAAATTAAAAAGAAATTCAAATCTGAACGACTGTCTTTAATTGA -AGCAGAAATTGAAGAAATTAAAATTGACAAAGAAGTTATGGTGCCTAGTGAAGAAGTTATTTTAAGTATG -ACACGTCATGGATATATTAAACGTACTTCTATTCGTAGCTATAATGCTAGCGGTGTTGAAGATATTGGTT -TAAAAGATGGTGACAGTTTACTTAAACATCAAGAAGTAAATACGCAAGATACCGTACTAGTATTTACAAA -TAAAGGTCGTTATCTATTTATACCGGTTCATAAATTAGCAGATATTCGTTGGAAAGAATTGGGGCAACAT -GTATCACAAATAGTTCCTATCGAAGAAGATGAAGTGGTTATTAATGTCTTTAATGAAAAGGACTTTAATA -CAGATGCATTTTATGTTTTTGCGACTCAAAATGGCATGATTAAGAAAAGTACAGTGCCTCTATTTAAAAC -AACGCGTTTTAATAAACCTTTAATTGCTACTAAAGTTAAAGAAAATGATGATTTGATTAGTGTTATGCGC -TTTGAAAAAGATCAATTAATTACCATCATTACAAATAAAGGTATGTCTTTAACTTATAATACAAGTGAAC -TATCAGATACCGGATTAAGGGCAGCTGGTGTTAAATCAATAAATCTTAAAGCAGAAGATTTCGTTGTTAT -GACAGAAGGTGTTTCTGAAAATGATACTATATTGATGGCCACACAACGCGGCTCGTTAAAACGTATTAGT -TTTAAAATCTTACAAGTTGCTAAAAGAGCACAACGTGGAATAACTTTATTAAAAGAATTAAAGAAAAATC -CACATCGTATAGTAGCTGCACATGTAGTGACAGGTGAACATAGTCAATATACATTATATTCAAAATCAAA -CGAAGAACATGGTTTAATTAATGATATTCATAAATCTGAACAATATACAAATGGCTCATTCATTGTAGAT -ACCGATGATTTTGGTGAAGTAATAGACATGTATATTAGCTAAAAACTATATGCAATAACGAAATTAAATG -ATAAAATACAGTAATGTTAAATTTTGACTAAATTCAAGGGATTTATATTAAATGCTGACCAAGTACTTAT -CGTTAAAATAGCGATATACTTTGACCAAACTAATATAAATCTCTTGTATTGTATAAGAAATGATGATGTA -TCTCTATATTTACTGAAGTTTCAATTCGGTCTAATTTTATAGAAGGTGCATGATTCATGTAGAGGATGCG -AGGGGTTTATTTTGAAAGATTTCGATAGTTTAATTCCTGGATGGTTTAAAGAATTTGTCCATGTTGGTAC -CGATTTAATATGGTCTCAATATTTAATTGGTCTATTATTGACAGCTGGATTCTTCTTTACAATTAGTTCT -AAATTCGTCCAATTACGAATGTTACCTGAAATGTTTAGAGCTTTAGTAGAACGTCCAGAAACTTTAGAAG -ATGGTAAGAAGGGTATTTCGCCATTCCAAGCATTTGCGATTAGTGCTGGTTCGAGAGTTGGTACTGGTAA -TATTGCTGGTGTTGCGACTGCGATTGTTTTAGGTGGTCCAGGTGCAGTATTTTGGATGTGGGTTATTGCA -TTTATAGGTGCAGCGAGTGCATTTATAGAAGCGACTTTGGCTCAGGTTTATAAAGTACATGATAAAGATG -GTGGATTCCGTGGTGGTCCAGCTTACTATATTACTAAAGGTTTAAATCAAAAATGGCTAGGTATCGTATT -TGCGATTTTAATTACAATTACATTTGCATTTGTATTTAACACAGTGCAATCTAATACAATTGCGGAGTCG -TTAAATACGCAATATAATATTAGTCCAGTAATCACAGGTATTATTTTAGCAATCGTAACTGCTATTATTA -TATTTGGTGGTGTACGTAGTATTGCTACGTTATCTTCGTTAATTGTACCGATTATGGCTATTATTTACAT -TGGTATGGTTTTAGTAATATTGCTATTTAATTTAGATCAAATTGTTCCTATGATAGGTACGATTATTAAA -AGTGCATTTGGTATCGAACAAGTAACTGGTGGCGCTGTAGGTGCTGCGGTTCTTCAAGGTATTAAACGTG -GTTTATTCTCTAATGAAGCTGGTATGGGTTCTGCGCCGAATGCAGCGGCAACTGCTGCAGTGCCACACCC -GGTCAAGCAAGGTTTAATCCAATCATTAGGTGTGTTCTTTGATACAATGTTGGTTTGTACAGCAACTGCA -ATCATGATTTTATTATATTCAGGACTGAAATTTGGTGATAACGCACCTCAAGGTGTTGCAGTTACCCAAT -CAGCACTTAATGAACATTTAGGTTCTGCTGGAGGTATTTTCTTAACAATAGCAGTTACATTATTCGCCTT -TTCATCTGTGGTAGGTAATTACTATTACGGTCAATCTAATATTGAATTTTTATCAACAAACCGTGTGATA -TTATTTATTTTTAGATGTTTTGTTGTAGTACTTGTCTTTGTCGGTGCAGTTGTAAAAACAGAAACAGTAT -GGAATACAGCAGACTTATTTATGGGCTTAATGGCAATTGTAAACATTATTTCCATTATAGGACTGTCCAA -TGTAGCTTTTGCATTGATGAAAGATTATCAAAAGCAGAAAAAAGAAGGCAAGAATCCTGTTTTTAAACCT -GAAAACTTAGAAATTAACTTATTTGGAATTAGTGCTTGGGGCGCTAACAAATATAAGAACTCTGATAAAT -AAATATTTTTAATGTAACGATTCATTTTATAAAAATCAAATAAACCCTGAGGTTTTCAAATTAATGCGAA -AATCTCAGGGTTTTAAATTTGTACTCAATAATTATCTGTATCATTACACTAGTTAATCTAAGATTTGATT -AAATATTAATATAGTAAGATTGAGATTTATTTCCTTCATTGGTGTGCAAAGACTATACCATTGATAAGAC -ATATTGTTGGATAGATGAATATAATTTTATTTTAGCTTTGCACAATTTAATAGTACTTTTTAGTTTGTAT -TGAGTATTAATTCAGATAATATATAAATAAATAGCATTATTTGCAAATATGGGAGTCAGATTTTTTTATT -AAAGTTATTCCACTTTGAGAGGCATCGAAATTAAATTAAGATATATCATATAGGATAGGCGTGTAATAGA -ACACAAGTATTTAAATTATTATACTTTTAAGTTAGACATTTCCGATATATAATCTTAATAATAGAAAAAT -AGGTGATGATAATGGGAGAATATATTGTTACTAAAACATTGAACAACAATGTCGTAGTATGTACTAATAA -TGATCAAGAAGTTATTTTAATCGGTAAAGGTATTGGTTTTAACAAAAAAGAGGGAATGACGTTAAACGAC -CAAACTATTACAATAGAGAAAATTTATAAATTAGAGAGTGAACAACAAAAAGCACATTATAAAAGTTTAG -TTGAAATCGCTGATGATAATGTATTACAAGTAATTATTGATTCGTTGAATTTTATTTCTAATACTGCGAT -GAATGTTGATTCAAAACAACTTGTAGTTTCATTAACGGATCATATTATATTTGCTTATAAACGCTTAAAA -CAAAATCAAGTTATTAGTAATCCATTTGTTATGGAAACTATGCAGTTATATAGTGATGCATATCATATTG -CTAAACAGGTAATTGATCAGTTAAATGCAGCATTAGATGTGCATTTTCCTGAAGATGAGATAGGATTTAT -TGCATTACATATTGCATCTAACACAGAAGATTTATCTATGCATGAGATGACCTTGATCAATAATGTTATT -AAAAAAGGTATAGATATCATTGAATCAGACCTTGTGACAACTGTTGATAAGGAATCATTACAATACCAAC -GTTTTATAAGACATGTACAATTTTTAATTCGCCGATTAAGAAGAAAAGAATATATACATGCACAAGATGA -TTTTGTGTCTATGATTAAAAATCACTATCCGATTTGCTATAACACAGCATATAAAATTTTAACTATGATA -CAAAAACAATTTGATGTTAATATCAGTGAGTCTGAAATTATATATTTAACATTACACATTCATCATTTTG -AAGAAAGGATTAATCAATCCTAAATTAAGTGTATTACACGGGCGTTTCGTTACTGTAAAGGGTATTTGTA -TGGTATCATTGATGTTAGTAATTTTACATAAGTGGACTGTTTTTATACAACATCTTATGAATATTTTAAG -TGGTGGTGAATCTATAATTGAATGAAAATGAAAAGAATATAAGAAAGAACTTTTTAAAATTTACCGAATC -ACGGTATATGAAGTTTGTTGGTGGGAATGATTTAGTCTTCTCATTAATAGCACTAGTATTGTTGGGTATT -GTTATTTTTATTTTCGAAAAAGTATCATACGTTTTTGATCCTTTTATCATCGTTTTTAAGACGATAGCAG -CACCTATCATCGTCTCTTTAATTCTATTCTATCTATTTAACCCAATCGTAAATATGATGGAGCGTTATAG -AATACCAAGAGTTGCAGGTATTTCTATTATTTATCTAGCTGTAGTAGGTGTTATTACGTTAATTGTTAAT -TTATTGATACCTATTATTGGTTCGCAAGTAGATAGTTTAGTTAAAAATTCACCGCAATATCTAGAAAAAT -TAATTAATTCTATTGATAAAATAGCAAATAATACGTTTTTCTCTTCGTATTATAGTCAAATTAATGATTG -GTTAAATTCTTTACCTAAGAAAATACCATCTATGTTAAGTGAATTTACAGATGGCTTTGGGTCTAAAATT -GCAACGTTTGCAGAAACGATTGCTAATATTGGCGTTGTGATTGTCACAACACCATTTGTACTATTCTTTA -TGCTTAAAGATGGACATCACTTCAAAGAATTTTCAACGAATATTATGCCACCGAAATTCCGAAAAGATTT -TCATGATCTACTTGAAAAAATGAGTGTTCAAGTTGGTTCATACATTCAAGGACAAATTATCGTTTCATTC -TGTATCGGTATACTGTTGTTTATCGGTTATTCGGTTATCGGGTTGAAATATAGCTTAGTATTAGCTAGTA -TTGCTGCAGTTACAAGTGTTGTGCCATATTTAGGGCCTACTATAGCGATTTCACCAGCTATTGTCATAGC -TGCTATAACATCGCCGTGGATGCTCTTAAAATTAGCAGTAGTATGGACTTTAGTACAATTTGTTGAAGGG -CACTTCATTTCACCAAATATCATGGGTAAAACACTTAAGATTCATCCACTTACAATCATTTTCATTTTAC -TGTGTGCAGGCAAATTGCTTGGTATTGTAGGCGTTATTTTAGGTATTCCGGGATATGCTATTTTAAAAGT -ATTAGTTACTCATTTATTCCAATTATTTAAACGTCGATACAATCGTTTCTATGGTAATGATGTAGGTGAA -TATGATATTAAAGAAAGTAATAAAATAGTTGAATAAGTAATTAAAAATACCAATAGACTATACGTTTGTT -GGTATTTTTATGGTGCTTATAATGTTAGGTGTTCAAATTTATGATTATCAGCACATGTTTAGCTTATAAA -TTTTTATGAAAGTTTAGCCATTTATAAAGCACATGCATAATGAAGCGAGTATTTGTGACTTGATTAGTAC -TTCATTATTATATCGAAAATAAAAACAAGTGGTATTTTTAATATATTAAGAAGCACTCATAATCAGCTGT -TAATTAATAATATTTTTCATAAGTATTGATTCATCATTTTCTTTATGTTAAATATGAATCAGTATAGATA -ACCATATTGTTCTGTTTGAGATAGAAATATTTTCTATTTACTTCTTAATACAGATGTCAATATGACAAAA -GTGTTATATAAATCAAAGGTAAATGATATGCTATTTTTATGGTTTATATGATATATTTTGATTTATAACA -GAAATAATTAGAATTGATGTGAAAAAATGAATCAGGAAGTTAAAAACAAAATATTTTCAATCTTAAAAAT -TACGTTTGCTACAGCTTTATTTATTTTTGTAGTAATCACGTTGTATCGAGAGTTATCTGGGATTAACTTT -AAAGATACTTTGGTTGAATTTAGTAAAATCAACCGTATGTCCCTTGTCTTATTATTTATTGGTGGTGGGG -CATCGCTTGTTATTCTCTCAATGTATGATGTGATTTTATCTAGAGCTTTAAAAATGGATATTTCATTAGG -AAAAGTTTTAAGAGTAAGTTATATCATTAATGCATTAAATGCGATTGTAGGCTTTGGTGGCTTTATTGGT -GCCGGTGTAAGAGCAATGGTTTACAAAAACTATACGCATGATAAAAAGAAATTGGTTCACTTTATTTCAT -TAATACTGATTTCAATGTTGACAGGTTTAAGTTTGTTATCATTGTTAATCGTATTCCATGTTTTTGATGC -ATCATTAATTTTAAATAAAATTACGTGGGTGAGATGGGTACTTTATGCTGTGTCGTTGTTCTTACCATTA -TTTATTATATATTCAATGGTTAGACCGCCCGATAAAAACAATCGTTATGTAGGCTTGTATTGTACATTAG -TGTCATGTGTGGAATGGTTAGCCGCTGCAGTTGTATTATACTTCTGTGGTGTCATAGTTGACGTCCATGT -CTCATTTATGTCATTTATTGCAATATTCATTATTGCTGCATTATCTGGATTAGTCAGCTTTATTCCAGGT -GGTTTTGGTGCCTTCGACTTAGTTGTTTTATTAGGCTTTAAAACGTTAGGTGTACCTGAAGAAAAAGTAT -TATTAATGCTACTACTTTATCGCTTTGCGTACTATTTCGTACCAGTGATTATTGCATTAATCCTTTCATC -ATTTGAGTTTGGTACTTCAGCTAAGAAATATATTGAAGGATCTAAATATTTCATTCCGGCTAAAGATGTG -ACATCGTTTTTAATGTCGTATCAAAAAGATATTATTGCTAAAATACCATCATTATCATTGGCAATTTTAG -TATTCTTTACAAGTATGATTTTCTTTGTAAATAATTTGACGATTGTATACGATGCTTTATATGATGGCAA -TCATTTAACGTATTATCTTTTATTGGCAATACATACAAGTGCCTGTTTATTACTTTTACTTAATGTTGTA -GGTATTTATAAACAAAGTAGACGTGCCATTATTTATGCAATGATTTCGATTATCTTAATTATTGTCGCGA -CGTTATTCACTTATGCGTCATACATTTTAATAACTTGGTTAGTTATTATCTTTGCTTTACTTATTGTTGC -TTTCCGTAGAGCACGTAGGTTAAAACGTCCAATTCGAATGAGAAATCTAGTCGCAATGCTTTTGTTCAGC -ATATTTATACTCTACATCAACCATATATTTATAGCTGGAACATTTTATGCTTTAGATGTTTATACAATCG -AAATGCATACGTCTGTACTTAAATATTATTTCTGGATTACCATTTTAATTATCGCAATTATTGTTGGTGC -AATTGCGTGGTTATTCGATTATCAATTTAGTAAAGTGCGTATATCTTCTAATATTGAAGAGTGCGAAGAG -ATTATTGATCAATATGGTGGGAATTATTTAAGTCATTTAATTTATAGTGGTGATAAACAGTTCTTTACTA -ATGAAGATAAAAATGCATTTTTAATGTATCGCTATAAAGCAAGTTCGTTAGTAGTTCTTGGCGATCCAAT -CGGTGATGAAAATGCCTTTGATGAATTGTTAGAAGCATTCTATAATTACGCTGAGTATTTAGGCTATGAT -GTTATATTCTATCAAGTTACAGATCAACACATGCCTTTATATCATAATTTCGGCAACCAATTTTTCAAAT -TAGGTGAAGAAGCAATTATTGATTTAACGCAATTTTCAACTTCAGGTAAAAAACGCCGTGGATTTAGAGC -GACTTTAAACAAATTCGATGAACTTAATATTTCATTCGAAATTATTGAACCACCGTTTTCAACTGAATTT -ATAAATGAACTTCAACATGTCAGTGATTTGTGGTTAGATAATCGTCAGGAAATGCATTTCTCTGTTGGTC -AATTTAATGAAACATATTTATCTAAAGCGCCAATTGGTGTGATGCGCAATGAAAATAATGAAGTAATTGC -ATTTTGTAGTTTAATGCCAACATACTTTAATGATGCCATTTCAGTCGATTTAATTAGATGGTTGCCAGAG -TTAGATTTACCGTTAATGGATGGATTATACTTGCACATGTTACTTTGGAGTAAAGAACAAGGTTATACAA -AATTTAATATGGGTATGGCAACGTTATCGAACGTTGGTCAATTGCATTATTCATATTTAAGAGAAAGACT -TGCAGGTCGTGTCTTTGAACATTTCAACGGTCTATATCGTTTCCAAGGATTACGTCGTTATAAATCTAAA -TATAATCCGAATTGGGAACCACGCTTTTTAGTTTATCGTAAAGATAATTCGCTTTGGGAATCACTTTCTA -AAGTAATGCGTGTAATACGTCACAAATAATTAAAATCCAAGTGCTAATAGGTATACAGTTATGCCTGAAG -CGCTTGGATTTTTTGGTTTCTATAAAGAATGATTTATAAAAAACGGCACAGATAAGAATATTTAAGTTTC -CTATCTGTACCGTATTTTAATATTGAAATGAACTTAAGTTAAGTCGCCTAACTTTTATTATCAGTCCAAT -CAGTTTCATCAAGTGTAAATGTTATTGTTTATTTTTGTATTCTTGGCGTATTTTTTGTTCTTCTGCATAA -CGCTCTGGATTTTTCTTATAAAAATCTTGGTGATAGTCTTCGGCTTTGTAAAATTGTGACGCTGGTAATA -TTTTTGTTGCAATTGCCTTATCAGCATTAATCGTATTTTTAAGCTGCTCGATATAAGTCTCAGCGAGTTC -TTTTTGATGATCATTAGTGTAGAAAATAGCTGTTTGATATTGAGGACCACGGTCTTGATATTGACCACCT -GTATCTAATGGGTCAATGACTGAGAAAAATATTTCTAATAACTTATTGTATGAGAATAATGCAACATCAT -ATTGAATTTCAACAGTTTCTAAATGTCCACTCGTACCTGATTTTACTTGTTCGTAAGTAGGGTTTTCAAT -ATGTCCGCCCATATATCCAGAAGTTACTTTTTCTATGCCGTCAAAGGTGTCAAATGGTTTCGTCATACAC -CAAAAGCAACCTCCGGCAAAATAAGCTGTATTAATATTCATTTTTGACATCCTTTCATTAGACCTTAGTA -CGATTTATTAAGAAATCACTTGCTTTTTGAATTGTTTTTATATAACGTTAATATGTGATTATTATAGTAC -ACAAAAATCTATTTTTGAAGATATAAGGTAGGTAAATATGGATAAAGAAACTAATGACAACGAATATAGA -CGTCAAAGTGAACATCGCACTTCGGCGCCTAAGCGAAAAAAGAAGAAGAAAATTAGGAAATTACCTATCA -TTCTTCTGATTGTTGTAATTTTACTTATCGCATTAGTTGTATATATTGTACATAGTTACAATAGCGGTGT -AGAATATGCCAAGAAACATGCGAAAGATGTTAAAGTACATCAATTTAATGGACCAGTAAAAAATGATGGT -AAAATTTCTATTCTTGTACTCGGTGCAGATAAAGCACAAGGTGGACAATCAAGAACAGATTCTATCATGG -TTGTTCAATATGACTTTATCAATAAAAAGATGAAAATGATGTCTGTCATGCGTGATATTTATGCAGATAT -TCCAGGGTATGGAAAACACAAAATTAATTCAGCATACGCTTTAGGTGGTCCAGAGCTACTTAGAAAAACA -CTTGATAAAAATTTAGGAATTAATCCTGAATATTATGCAGTAGTTGATTTTACTGGATTTGAGAAAATGA -TTGATGAATTAATGCCAGAAGGTGTACCAATTAATGTCGAAAAAGATATGTCGAAAAATATTGGTGTATC -TTTGAAAAAGGGTAACCATAGGTTGAATGGTAAAGAATTACTTGGTTATGCAAGATTCCGTCACGACCCT -GAAGGTGACTTCGGACGCGTGCGACGTCAGCAACAAGTAATGCAAACTTTGAAAAAAGAAATGGTTAATT -TTAGAACAGTTGTTAAATTACCAAAAGTTGCAGGTATTTTAAGAGGCTATGTGAATACAAACATTCCTGA -TTCAGGGATCTTCCAAACAGGTTTGAGTTTTGGTATCCGAGGTGAAAAAGATGTTAAGTCATTGACTGTG -CCAATCAAGAACTCATACGAAGATGTCAATACAAATACTGATGGTAGTGCATTACAGATTAATAAAAACA -CAAATAAACAAGCTATTAAAGACTTTTTAGATGAAGATTAAAAATAAACAAGAGCTTGGGACATTAAGTT -CTTAGGCAATGTAAAAAAGCTGATTTCTATTAATTATTTGATAGAAATCAGCTTTTTTTAAATGTATTTG -ATAATATACAGCTCGTCGAGCTACTATTTTCCTTATATTAAGTGCCATTAATACAAAACCTAGCTCTCGT -TTAACTTTATTTATTCCTCGAACTGACATTCGAGTGAAACCCAAAATAGCCTTCATAAATCCAAAAACAG -GCTCTACATCAATTTTTCTTTGACTATAGATTTTTTTCGTTTCTGGTTCAGAAAGCTTTTGATTAATTTG -GGCTTTAAAGTATTCCCAATTATAATTCTTCATGATTTTCTTATTGGATTTCGAATTTGGCTTCATGCAT -TGTTGCCTCAAAGAACATGCTGAACAGTCATCGCATTCATATAGTTTGAAGTCACGTTTAAAACCATATC -TATCATTACGGTATGCATATCTTTTAAAACCTATTCTTTTGTTATTAGGACATATAAATTCATCATTAAG -TTCGTCATATTTCCAGTTTTGAGTGTTAAAAATGTCACTTTTAAACTTTCTCGTTTTATCTTTAATAAAC -ATACCATACGTAATAAGTGGCGTTTTATTAAAATCATCTATAATAGCCATATAGTTTTGCTCACTACCAT -AACCTGCATCAGCTACAATATACTCCGGTAAATAACCGAAGGTATTTTGAATCATTGTTAAAAATGGAAT -TAAAGTTCTAGTATCTGTCGGGTTTTGAAATAGGTCATAGGATAAAACAAATTGAGAATTTGTCGCTATT -TGTAAATTGTATCCTGGCTTAAGTTGGCCATTTTTCATATGGTCTTCCTTCATTCTCATAAAAGTTGCAT -CATGATCAGTTTTAGAAAAGCTATTTCTATCTTTAAGAATCGATTTTTGTTCTTCATATTTACTTTTTCT -TTCGGAATAATCATCAAATTTCTTTTTGAACTTCTTAATCTCAGTTCTTTTTTTACGGGTCTGTTTTCTA -ATTTGAGTACAATCTTCGTTCTGAATAGAATGATTTAAATCTTCGATTTCTTTATCTAAATGACTACCAA -TTAAATCTATTTCTTCTATTGTTAAATCGCTATCTCCATCTTCTTTTATCTCTGGTATTATTTTTTCTTC -AACTAAGTCACGATATAATGCTTTTGAATTTTCGTTCAATTTCGATTCGTGATTTTGAATACTTTTCTTC -CACACAAATGTATACCTATTGGCATTAGCTTCTACTTTTGTACCATCAATAAAAATTGAATTATCATCAA -TAAGATTTTGCTTTAAACATTGACTATGAAACTGAATAAATAAAGATTCAATTAATGCATCAGTATTAGG -ATTTACTCTAAAACGATTAATAGTTTTATAAGAAGGTGTTTGATTTTGAGCTAACCACATCATTCGAATA -CTGTCATGAAGTAATTTCTCTATTCTACGACCAGAAAATACAGATTGAGTGTATGCATATAAGATAATTT -TTAACATCATTTTTGGATGATAGGATGTTGCGCCACGATGATGTCTGAATTCATCGAATTCGCTATCAGG -TATCGTTTCAACAATTTCATTAACATATCGTGAAATATCATTTTGAGGAATTCTAACAGAAGTTTCTATT -GGTAGTGTAAGTTGGGTCATGTTATAATTTTTATACATAAGGCACCTCGTGAATTTAGTTTAGTGGTATT -TATTAAATTATACGAAAGTGTCTTATTTTTTTAAAGTATTTCAAAGTAAAATTACATGTTAATACGTAGT -ATTAATGGCGAGACTCCTGAGGGAGCAGTGCCAGTCGAAGACCAAGGCTGAGACGGCACCCTAGGAAAGC -GAAGCCATTCAATACGAAGTATTGTATAAATAGAGAACAGCAGTAAGATAATTTTCAATTAGAAAATATC -TTACTGCTGTTTTTTTAGGGATTTATGTCCCAGACTCTTGTTCGTTTTCAAAGAATTAATTGGCATGCAT -CTTATGAAGAATTATTGATCTGACTTTCTTACGCCAGCCACACCATAATGGTTTGGTTTCATTTCTTCTA -TAACAACGTGAATTGCTTGTCTATTTGCTCCCGTTGTTTTTTCTACGGCGTCAGTAACTTCGCTAACTAA -ATTTTTTAATTGTTCATCCGAACGACCTTCTAATAATTTTACATTGACGATTGGCATCATCCAAACCTCC -TAATCATTATTAATTTGAGTATATCATGTAATACTTAAAAATTCATTTGTAAAATAATAGAACATTTGTT -CTAAAATGGTTGAAATAGAACAAGTGTTCGTATATAATGGAATTCAAGTAAGGGAGGAATAACAGTGTAT -AATTATCATTTATTAGAAGATAGGGATGTTCTATGTATTGATCAAAAAAGTTTTTTTGCGAGTGTTTCTT -GTATTGAAAAGGGGCTAGATCCATTAGAAACAAAGTTAGCTGTTGTTGCAGATACTAAGCGTCAGGGTTC -TGTAGTATTGGCTGCGACACCTAAATTAAAAGAATTAGGCATCAAGACAGGATCGCGATTGTTTGAAATA -CCACATAGAAATGATATTTACATTATCAATCCAAGTATGCGTAAATATCTTAATGTTTCAGTTGCTATTT -CTAAGATTGCATTGCGTTATATTCCACCTGAAGATTTACACCAATATAGTATTGACGAATTTTTTATGGA -TGTTACTGATAGCTATCATAGATTTAGTTCTACAGTACATGCATTTTGCGAAAGACTTAAACGTGAAATT -TATGAAGAAACAGGCATTTATTGTACTGTGGGCATTGGTTCTAATATGTTATTAAGTAAAATTGCTATGG -ATGTTGAAGCTAAGCATAATCAAAATGGTATAGCTGAATGGCGATATCAAGATGTACCAACAAAATTATG -GCCAATTCAGCCCTTGAGAGATTTTTGGGGTATTAATCGTCGAACAGAAGCCAAATTGAATAAAAGAGGG -ATTTTTACTATAGGAGATTTAGCAAAATATCCATATAAATTTTTAAAAAAAGAGTTCGGTATTTTAGGTG -TTGATATGCATCTACATGCGAATGGGATAGATCAGAGTAAAGTACGTGAAAAGCATAAGATTAGCAATCC -ATCGATATGCAAAAGTCAAATATTAATGAGAGATTATCATTTTGACGAAGCAAAAGTAGTAATGCAAGAG -TTAATTGAAGATGTTGCTAGCAGAGTTCGAGCAAGAAAAAAAGTGGCAAGAACGATACATTTTGCCTTTG -GCTATAGTGATGAAGGTGGTGTACATAAGCAATATACTTTGAAAGATCCAACAAACCTAGAAAAAGATAT -TTATAAAGTAGTAATGCATTTCGCAGATAAATTATGTAATAAACAAGCACTATATCGTACGCTAAGTATA -TCTTTGAGTCAATTTATTAATGAGGATGAGCGACAGTTAAGTCTGTTTGAAGATGAATACCAACGCAAAC -GTGACGAATGTCTAGCTAAAACGATAGACCAATTACATTTGAAATACAGCAAAGGTATTGTGTCCAAAGC -AGTATCGTTTACAGAAGCAGGTACAAAACATGGTAGATTAGGTTTAATGGCTGGACATAAGATGTAATGA -CTATACGGTTTAAGGAATATATAACTGTGATTCGTATAAAATAAGTCTCTAAAGATAAATATTTCATATA -TCACAATAGATTTCACAATAATATCTAAGAATACATGGAATTTATCAAAAGAGACTCAATAATTATTGGA -TATAACAATCAAAATCACTCAATGCTTGCATACCGCGTTCTCGATCGGTAGGATTTTTGAAACTAATTTT -TAAAGCACCGTATATATCTTCGCGTACTTCTAAGATTCTTAAGTTGCTTATAGATATATTATGTAAACTT -AGGATATAAGTCACTTTGCTTATCATACCTGATTCATCCGGAATATCTACATATAGATCATACGCAGTAT -TTAGTCCACCTAGTTGTTTAGCGGGCAGTGCGTCACGATACGATTTAGCTTCGGCAAAAAATGATAACAA -TTTTTCAGAATCATTGCTTTCAATTAGTCTTTCTAAATCTTGAAACTGACTTTTTAGCTGTCGAATCATT -TCTAAAATATACGTTTTATTACTCAAGGTGATATCTTTCCACATTTGTGCATTACTACTAGCTATACGAG -TGATATCACGAAAACCACCAGCTGCAAGTTTATTGACTAAATGATGTTCTTGACTGTTCTTTTGACTAAC -ATGAACTAAACTAGATGCAACGATATGAGGTAAATGACTTACGACGCTTGTTACGTAGTCGTGTTCTTCA -GCAGTAGTTACAATAAATTTAGCAAGAGTAGGTGATAACAGTTCTTTTAACGTGTTTGCTGCTTGCTCAT -TTCTTGGCTCATTGTAGACTAAAATATAATAAGCGTTTTCAAATAAGTGCTTTTTAGCATTTAGTACACC -GGATTTATGACTACCAGCCATTGGATGACCACTGACTAAATGAATATTATGCTTTAATAAACTGCATTCG -TGTTGCTGTATCATTGCTTTAGTACTACCAGTATCAGAAACAATAACACCAGGTTTAGTTGGCATATGTA -TAAGCTCGCTAAGATATTTATTTGTGATAGCAACAGGTGTTGCATAAATAATTACATCGGCTTTTTTAAT -AGCTTCACTATAATTTAAACATTTTTCATTAATAATACCGATTGATTTAGCTTTATCTAACTGAGAAGTA -TCTGCATCGTATGCAATAATATTAGTATTAGGGTTATGGTATTTTATATTGCTAGCAAGACTTCCACCAA -TTAATCCAAGCCCAACAAATAAAACTGTTGTCATATAAATCACCTTATTTCGAAATTTTCAGAATAATAA -CATTGTAAATGAGCTGTTGACACAGTGCAATAGTAAATAAAAATCGATAATAGCATTAATAGATAAACGG -ATATAAATCATCTACAATAAAGAGTATAGTAACACAATGGCAACGGAGGGGTAAATCAATGGAACCAATA -TTAGAAATGATTAAAACATTAACAGGTATTAATAGTCCTTCAGGAGACACAGAAGAAGCAATTCAATTTG -TCGAAAAATATGCAAAAGACTTGGGTTATCAAACAACACTAACAAATAAAGGTGCGTTATTAATAACAGT -GCCAGGCAAAAATGATGAAGTACAACGCTGTATTACTGCTCATGTTGATACTTTAGGTGCAATGGTTAAA -GAAATTAAAGAAGATGGGCGCTTAGCAATAGAATTAATTGGAGGATTCACGTATAACGCGATTGAGGGTG -AATATTGCCAAATTAAAACTGATGCTGGTCAAATATATACAGGAACCATTTGTCTGCATGAAACAAGTGT -TCATGTATATAGAAATAATCATGAAATACCTAGAGACCAAAAGCATATGGAAATAAGAATTGATGAAGTA -ACTACATCAGAAGAAGATACAAAGAGTTTAGGTATTTCAGTAGGTGATTTTGTTAGCTTTGATCCACGTA -CAGTTATCACGTCATCAGGTTTTATTAAATCTCGTCATTTAGATGATAAAGCTAGCGTAGCGATGATACT -AAAATTACTAAAGAAATTAAAAGAAGAGCAAATAATATTACCACATACAACGCAATTTTATATTTCTAAT -AACGAAGAAATAGGTTACGGTGCAAATGCATCAATTGATTCGAAAATCAAAGAATATATTGCATTAGATA -TGGGCGCGTTGGGAGACGGTCAAGCATCCGATGAATATACAGTTTCTATTTGTGCCAAAGATTCTTCAGG -TCCATATCATAAGCAATTGAAATCACACCTAGTTAATCTTTGCAAAATAAATAATATTCCATATAAAGTA -GACATATATCCATATTATGGTTCAGATGCTTCAGCAGCTTTACATGCTGGTGCGGATATCAGACATGGTT -TATTTGGCGCTGGCATTGAATCATCTCATGCAATGGAACGAACACATATTGATTCTATTAAAGCGACAGA -GAAATTACTATATGCATATTGCTTATCACCAATTGAGTAAACAATTAGTGTTGACAAATGTGAACGACCT -ATGTAATATAATGAACTATAAAAATAATTAGAATTTTCTAAAGAAATAGTAGCAGATATGAAACGTAGCA -AATAGAAAGCTAATGGGTGATGGGAATTAGCACGCCATATCTTGTGAATTGGACTTTGGAAAACAATTGA -ATGAGTTTTGAAAGTGAACATGAATTATGTTAACTAAGGTGGCACCACGGTAACGCGTCCTTACAGGTAT -ATGCGTTATGTGGTGTCTTTTTATTTAGACAAAATGTAGTAGTTAGTTAAAGGTAGCAACAGAAAGTTAG -TGGGTGATGTGAACTAACACCGAGATTAATGAAATTGGGTTTTGTCTGCAACAGAAAAATTATATATAGT -AAAGAGTGAACTATGAATATTTCGAATATTCGGTTAATTTAGGTGGTACCACGCGTCAGCGTCCTTTATA -TTGATAAGGATGCTGACGTTTTTTTAGAAAGGAGCGTAAAGAATGGATGTATTCTATAAAAAAATAAAAG -CAAATGTAACACCTGAAGTTTTAGCACAACTTCATTCCAAGAAGATCATTTTGGAAAGTACAAATCAACA -ACAAACTAAGGGTCGCTATTCTATAGTGATATTTGATATCTACGGTACTTTAACTTTAGATAACGATGTA -TTATCAGTAAGCACTTTAAAAGAGTCGTATCAAATCACTGAAAGACCGTATCATTATTTAACGACTAAAA -TAAATGAAGACTACCATAATATTCAAGATGAGCAACTTAAGCCAATACCGTTTATATCTGGATATGTTGG -GACGTGTAGCTTTGATTTAGTAAGACATGAATTTCCTAAATTGCAATCAATACAATTAGAGGATCACAAG -CAACACGATGTACGGTTATATATGGTTGAACAAGTTTATGTATTTGACCATTACAAAGATGAGTTATATA -TCATCGCGACGAATCAATTTTCAAATTCAACGAAATCAGATCTTGAGAATCGAGTTAATAAGTCTATCGA -AGACTTAACTAAAATCCAACCATTCATGCCTACACAAGATTTTGATTTTAAAACTAAAGAAATTCAATCA -AATATTTCTGAAGAAAGATTTATCGAAATGATTCAGTATTTCAAAGAGAAAATAACAGAAGGGGATATGT -TCCAAGTTGTGCCATCAAGAATTTACAAATATGCGCATCATGCTAATCAGCATTTAAATCAACTTACGTT -TCAACTGTATCAAAATTTAAAACGACAAAACCCAAGTCCATATATGTATTATCTTAATATCGATCAACCC -TACATTGTCGGTAGTTCTCCCGAAAGTTTCGTAAGTGTCAAAGATCAAATTGTAACAACTAATCCTATTG -CAGGTACGATTCAACGTGGTGAGACGACACAAATAGATAATGAGAATATGAAACAACTACTTAATGATCC -TAAAGAATGCAGTGAACATCGTATGCTTGTTGATTTAGGGCGTAATGATATTCATAGAGTAAGTAAAATA -GGTACCTCAAAAATTACTAAATTAATGGTTATTGAAAAATATGAACATGTTATGCATATCGTAAGTGAAG -TCACAGGTGAAATAAATCAAAATTTATCGCCAATGACAGTTATTGCGAATTTATTACCAACAGGTACCGT -TTCAGGTGCACCAAAATTACGTGCAATCGAAAGAATTTACGAACAATATCCACATAAACGTGGCGTTTAT -AGTGGTGGTGTTGGATACATAAATTGTAATCATAACTTAGATTTTGCATTAGCAATTCGAACGATGATGA -TAGATGAGCAGTATATCAACGTAGAAGCTGGTTGTGGGGTTGTATATGATTCTATTCCTGAAAAAGAACT -AAATGAAACGAAATTGAAAGCCAAAAGTTTATTGGAGGTAAGCCCATGATTTTAGTTGTAGATAATTATG -ATTCCTTTACGTATAACCTAGTGGATATTGTGGCACAACACACTGATGTCATTATTCAATACCCTGATGA -TGATAATGTGCTGAATCAATCTGTTGATGCTGTCATTATTTCACCAGGCCCTGGGCATCCATTAGACGAC -CAACATTTAATGAAAATTATCTCATCCTATCAAGATAAACCCATTTTAGGTATTTGCCTAGGTGCTCAAG -CACTGACTTGTTATTACGGTGGAGAAGTCATTAAAGGCGACAAAGTTATGCACGGAAAAGTTGATACGCT -TAAGGTTATATCGCATCATCAACATCTGTTATATCAAGATGTACCAGAACAATTTTCTATTATGAGATAC -CATTCATTAATAAGTAATCCTGATAATTTTCCAGAAGAATTGAAAATTACTGGACGTACTGATGATTGTA -TACAATCATTCGAGCATAAAGAAAGACCGCATTATGGTATTCAGTACCATCCTGAATCATTTGCTACAGA -CTATGGTGTCAAAATAATTACAAATTTTATTAATTACGTGAAGAAAGGATGAAAACCATGACATTACTAA -CAAGAATCCAAACTGAATCTATATTGCTTGAAAGTGACATTAAGGAGTTAATCGACATACTTATTTCCCC -AAGTATCGGAACTGATATAAAATATGAATTACTGAGTTCGTATTCGGAACGAGAAATTCAACAACAAGAA -TTGACATATATTGTACGTAGTTTAATTAATACAATGTACCCACATCAGCCTTGTTATGAGGGCGGTATGT -GTGTGTGGTACAGGTGGTGACAAGTCTAATAGCTTCAATATATCAACTACTGTCGCTTTTGTTGTAGCAA -GTGCTGGCGTAAAAGTTATAAAACATGGAAATAAAAGTGTGACTTCAAATTCAGGTAGTACGGATTTGTT -AAATCAAATGGACATTCAAACTACGTCTGTTGATGATACGCCAAAGCAATTAGATGAAAAAAACCTCGTG -TTTATCGGCGCAACAGAATCGTATCCAATAATGAAATATATGCAACCAGTTAGAAAAATGATAGGTAAGC -CTACAATATTAAACCTTGTAGGTCCATTAATTAATCCCTATCACCTAACGTATCAAATGGTAGGTATCTT -TGACCCTACAAAACTAAAACTAGTTGCAAAGACAATTAAAGATTTAGGTAGACGACGTGCAATCGTATTA -CATGGTGCGAATGGTATGGATGAAGCAACGTTGTCTGGTGATAATTTGATATATGAATTGACTGAAGATG -GAGAAATCAAAAATTACACATTAAATGCGACTGATTATGGTTTGAAATATGCACAGAATAGTGATTTTAA -AGGTGGTTCGCCTGAAGAAAACTTAGCAATCACACTTAATATCTTGAATGGTAAAGATCAGTCAAGTCGC -CGTGATGTTGTCATACTTAATGCAGGTTTAAGTCTATATGTTGCAGAGAAAGTGGATAGCATCGCAGAAG -GCATAGAACTCGCAAGCACTTTGATAGATAATGGTGAAGCTTTGAAAAAATACCATCAAATGAGAGGTGA -ATAACATGACAATTTTAGAAGAAATTGTTGAATATAAACAGTTACTTTTACAAAATGGCTATTATCAAGA -CAAACTTAATACCTTGAAAAGTGTGAACATTCAGAATAAAAAATCTTTTATAAATGCAATTGAGAAAGAA -CCAAAGCTAGCAATTATTGCAGAAATTAAATCGAAGAGTCCTACAGTTAATGACTTACCTGAACGAGATT -TATCGCAACAAATCTCAGATTATGAGCAATATGGTGCAAATGCTGTATCCATTTTGACTGATGAAAAGTA -CTTTGGTGGTAGTTTTGAAAGATTACAAGCATTGACAACAAAAACAACATTACCCGTATTATGCAAAGAT -TTTATTATAGATCCGCTTCAAATTGATGTTGCCAAACAAGCTGGTGCATCTATGATTTTACTGATTGTTA -ATATCTTATCGGATAAACAATTGAAAGATTTATATAACTACGCTATATCGCAAAATTTAGAAGTGTTAGT -TGAAGTACATGATCGTCATGAATTAGAACGTGCCTATAAGGTTAATGCTAAATTGATTGGTGTAAATAAC -AGGGACTTAAAACGATTTGTCACAAATGTGGAACATACAAATACTATTTTAGAAAATAAAAAACCAAATC -ATTATTATATTTCTGAAAGTGGAATTCACGATGTATCTGATGTAAGAAAAATCTTGCATAGTGGTATCGA -TGGCTTACTAATAGGTGAGGCGCTTATGCGTTGTGACAATCTATCTGAATTTTTACCACAACTGAAAATG -CAAAAGGTGAAGTCATGATGAAATTGAAATTTTGTGGCTTTACATCAATTAAGGATGTTACAGCGGCCAG -TCAATTACCTATTGATGCGATAGGTTTCATCCATTATGAAAAAAGTAAAAGGCATCAAACAATTACCCAA -ATAAAAAAGTTAGCGTCTGCTGTTCCAGATCATATTGACAAAGTATGTGTCGTGGTAAATCCTGATTTAA -CAACTATTGAACACGTATTAAGCAATACGCCAATTAACACAATACAGTTACACGGCACAGAATCTATTGA -TTTTATACAGGAAATAAAAAAGAAGTATTCAAGCATTAAAATTACTAAAGCTTTAGCTGCAGATGAAAAC -ATAATCCAAAACATAAATAAATATAAAGGGTTCGTAGATTTATTTATTATCGACACCCCCTCAGTGTCGT -ATGGTGGTACCGGTCAAACATATGACTGGACTATTTTGAAGAACATAAAAGACATACCTTACTTGATAGC -AGGAGGCATTAACACTGAAAATATTCAAACAGTTAATCAATTTAAATTATCACATCAAGGTTTTGATCTT -GCATCAGGTATAGAAGTAAATGGGCGAAAAGATATAGAAAAAATGACAGCAATTGTAAATATTGTGAAAG -GAGATAGAGAAAATGAATAAACAAATACAAACAGAAGCAGATGAATTAGGTTTCTTTGGTGAATACGGAG -GGCAATATGTTCCAGAAACATTAATGCCAGCAATTATTGAGTTGAAAAAAGCTTATAAAGAGGCAAAAGC -AGACCCAGAGTTTCAAAGAGAACTTGAATACTATTTATCAGAGTATGTAGGACGCGCGACGCCACTTACA -TATGCTGCATCGTATACTGAAAGCTTAGGTGGCGCTAAGATATATTTAAAACGAGAGGATCTAAATCATA -CAGGCGCCCATAAAATTAATAATGCGTTAGGTCAAGCGTTGCTCGCTAAAAGAATGGGCAAGAAGAAGCT -TGTTGCTGAAACAGGTGCGGGTCAACATGGTGTAGCTAGTGCTACGGTTGCTGCATTATTTGATATGGAA -CTTGTTGTCTTTATGGGAAGTGAAGATATTAAAAGACAACAACTTAATGTATTTAGAATGGAATTACTTG -GTGCAAAGGTTGTGGCAGTTGAAGATGGTCAAGGGACTTTATCGGATGCAGTTAATAAAGCATTGCAATA -TTGGGTAAGTCATGTAGATGATACGCATTATTTATTAGGTTCTGCATTGGGTCCAGACCCATTCCCAACG -ATTGTTAGAGATTTTCAGAGTGTGATTGGTAAAGAAATAAAATCACAGATATTGAAGAAAGAAGGTCGAC -TTCCGGATGCAATTGTAGCATGTATCGGTGGTGGCTCAAATGCAATCGGTACATTTTATCCATTTATTAA -AGATGATGTTGCTTTATACGGTGTTGAAGCCGCAGGTCAAGGCGAGGATACTGATAAACATGCACTTGCA -ATTGGCAAAGGATCACCTGGCGTATTACATGGTACTAAAATGTATTTAATTCAAGATGAAGGTGGGCAAG -TGCAACTAGCACATTCTATTTCAGCAGGACTTGATTATCCTGGTATTGGGCCAGAACATTCTTATTACCA -CGACATTGGTAGAGTAACTTTTGAAAATGCAAGTGATACACAAGCAATGAATGCTTTAATCAACTTTACA -AAACATGAAGGTATTATACCTGCAATTGAAAGTGCACATGCACTGAGTTATGTTGAAAGACTAGCGCCTA -CGATGTCGAAAGAAGATATTATTGTAGTAACAATTTCTGGACGTGGCGATAAAGATATGGAAACAATTAG -ACAATATATGGCAGAGCGAGGTCTTGCAAATGACTAAATTATTTATACCTTATATTATGGGCAATAAAGA -TTTGATTGAAAATGCAACATTGTTGAGTGAAAATGGTGCAGATATAATTGAAATTGGTGTACCTTTCTCT -GATCCGGTTGCTGATGGTCCAGTTATCATGGAAGCAGGTCAACAAGCGATTAAACAAGGCATAACGATAG -ATTATATTTTCGAGCAATTAGAAAAACACGGTAATCAAATTAAGTGTCAGTATGTATTAATGACGTATTA -TAATATAATTTGTCATTATGGAGAACAAGCGTTTTTTGAAAAATGTCGAGATACCGGTGTCTACGGCTTA -ATTATTCCTGATTTACCATTTGAATTATCGCAGCGTTTAAAACAACAATTTAGTCACTATGGTGTCAAAA -TCATATCGTTAGTTGCGATGACTACTGATGACAAACGTATAAAAGATATCGTATCATATGCGGAAGGCTT -TATTTATACTGTGACAATGAATGCGACGACAGGACAAAACGGTGCGTTTCACCCAGAATTAAAACGAAAA -ATTGAGTCAATTAAAGCGATAGCCAATGTGCCAGTTGTCGCAGGATTTGGTATAAGATCTCCACAACATG -TTGCAGATATAAAAGAGGTTGCAGATGGTATCGTTATTGGTAGTGAAATAGTAAAACGATTTAAATCTAA -CACGCGTGAAGAAATCATTAAATATTTACAATCTATCCAGCAAACATTGAATAATTAAGTTTACTTGATT -TAAAAAAATTAGTCGAATACTGTTTGAAAAAGTGAAAAACGGTGAATTATAAAATTGAATAGAAATGATA -CAAAAGTAATATGAGCAAACCCAAACGTTCATATTACTTTTTTTGAAATTGTATGCAAAAATCTAAATAT -TACTATAAAAGTATACGCAATTAAAGCGTTTATGTTTTAGTTTTAACATTAACTATTGTATACTTATTTA -GATTAGATTTATTATTTTTGACATTTGCAGAGGGGAAATAGAAAAACTGCAAATACGGAAATGAAATTAA -TTAACGAGAGACAAATAGGAGTAATGATAATGAAGTTTACAAATTTAACAGCTAAAGAGTTTGGTGCCTT -TACAGATAGCATGCCATACAGTCATTTCACGCAAACTGTTGGCCACTATGAGTTAAAGCTTGCTGAAGGT -TATGAAACACATTTAGTGGGAATAAAAAACAATAATAACGAGGTTATTGCAGCTTGCTTACTTACTGCTG -TACCTGTTATGAAAGTGTTCAAGTATTTTTATTCAAATCGCGGTCCAGTGATCGATTATGAAAATCAAGA -ACTCGTACACTTTTTCTTTAATGAATTATCAAAATATGTTAAAAAACATCGTTGTCTATACCTACATATC -GATCCATATTTACCATATCAATACTTGAATCATGATGGCGAGATTACAGGTAATGCTGGTAATGATTGGT -TCTTTGATAAAATGAGTAACTTAGGATTTGAACATACTGGATTCCATAAAGGATTTGATCCTGTGCTACA -AATTCGTTATCACTCAGTGTTAGATTTAAAAGATAAAACAGCAGATGACATCATTAAAAATATGGATGGA -CTTAGAAAAAGAAACACGAAAAAAGTTAAAAAGAATGGTGTTAAAGTAAGATATTTATCTGAAGAAGAAC -TACCAATTTTTAGATCATTTATGGAAGATACGTCAGAATCAAAAGCTTTTGCTGATCGTGATGACAAGTT -TTATTACAATCGCTTAAAATATTACAAAGAGCGTGTGTTAGTGCCTTTAGCGTATATCAATTTTGATGAA -TATATTAAAGAACTAAATGAAGAGCGTGATATTTTAAATAAAGATTTAAATAAAGCATTAAAGGATATTG -AAAAACGTCCTGAAAATAAAAAAGCACATAACAAGCGAGATAACTTACAACAACAACTTGATGCAAATGA -GCAAAAGATTGAAGAAGGTAAACGTCTTCAAGAAGAACATGGTAATGAATTACCTATCTCTGCTGGTTTC -TTCTTTATCAATCCATTTGAAGTTGTTTATTATGCTGGTGGTACATCAAATGCATTCCGTCATTTTGCCG -GAAGTTATGCAGTGCAATGGGAAATGATTAATTATGCATTAAATCATGGCATTGACCGTTATAATTTCTA -TGGTGTTAGTGGTAAATTTACAGAAGATGCTGAAGATGCTGGTGTAGTTAAATTCAAAAAAGGTTACAAT -GCTGAAATTATTGAATATGTTGGTGACTTTATTAAACCAATTAATAAACCTGTTTACGCAGCATATACCG -CACTTAAAAAAGTTAAAGACAGAATTTTTTAGGAAGGGAATTATCAAAACATGAAATTTACAGAGTTAAC -TGTTACCGAATTTGACAACTTTGTACAAAATCCATCATTGGAAAGTCATTATTTCCAAGTAAAAGAAAAT -ATAGTTACCCGTGAGAATGATGGCTTTGAAGTAGTTTTATTAGGTATTAAAGACGACAATAACAAAGTAA -TTGCAGCAAGCCTTTTCTCTAAAATTCCTACTATGGGAAGTTATGTTTACTATTCGAATCGTGGTCCAGT -AATGGATTTTTCAGATTTAGGATTAGTTGATTATTATTTAAAAGAGTTAGATAAATATTTACAGCAACAT -CAATGTTTATATGTTAAATTAGATCCGTATTGGTTATATCATCTATATGATAAAGATATCGTGCCATTTG -AAGGTCGCGAGAAAAATGATGCCTTAGTAAACTTGTTTAAATCGCATGGTTACGAGCATCATGGCTTTAC -AACTGAGTATGATACATCGAGCCAAGTACGATGGATGGGCGTATTAAACCTTGAAGGTAAAACACCTGAA -ACATTGAAAAAGACATTTGATAGTCAACGTAAACGTAATATTAATAAAGCGATAAACTATGGTGTTAAAG -TAAGATTCCTTGAACGTGATGAGTTCAATCTATTCCTAGATTTATATCGTGAAACTGAAGAGCGTGCTGG -ATTTGTATCAAAAACAGATGATTATTTTTATAACTTTATTGACACATATGGAGATAAAGTATTAGTACCA -TTAGCATATATTGACCTTGATGAATATGTGTTAAAGTTGCAACAGGAATTGAATGACAAAGAAAATCGTC -GTGATCAAATGATGGCGAAAGAAAACAAATCAGATAAACAAATGAAGAAAATTGCAGAATTAGATAAGCA -AATTGATCATGATCAGCATGAATTATTGAATGCAAGTGAATTGAGCAAAACGGACGGCCCAATTCTAAAC -CTTGCTTCTGGCGTTTATTTTGCAAATGCATATGAAGTGAATTATTTCTCTGGTGGTTCATCAGAAAAAT -ACAATCAATTTATGGGACCTTACATGATGCATTGGTTTATGATTAACTATTGCTTCGATAATGGTTATGA -TCGTTATAATTTCTATGGTTTATCAGGTGATTTTACGGAAAACAGTGAAGATTATGGCGTATACCGCTTT -AAACGTGGATTTAATGTACAAATCGAAGAATTAATAGGGGATTTCTATAAACCAATTCATAAAGTGAAAT -ATTGGTTATTCACAACATTGGATAAATTACGTAAAAAATTAAAGAAATAGATGTAAATGATGTTAGGGCT -TATAGTTATTGATACTATAGGCTCTTTTTTATGCTTTTTAATAAAGCCTCTAATGATTTATTAAATGACA -AGTTTAACAAGTGATTGCAATAAATATAAATACGAATTGCACAATCTATTTTCAAATGATTAAGTTGAGT -ATACGTTTTAATTCATTCAATATGACTCAAAACAAGCCAATATGTATTATATTTTTGGTGAATAAACCTT -AGCATAACAATTTATATCTGATTTTATATGTGTGTTTGCAAGTGCGTGATATCAAATGTCATATGTAATT -TATAAAATGCATGAGAAATGATTGCTGTAACAAATTCTAGCAAAGTAATCAGTTTGTATATTAGAAATAA -AAATGATGATAGATATATTATCGATACATAGATTTAATATGCACCAAAACGTGAGTATTGGTTTAATGAA -ACATAGCATGAATGTAAATTTAGTTTACTGACATAAACACGTCACAAACATACAGTTATATAAGTCCCCT -TATGGAATTTCATTTCTAGTTTACATAATATATATTATAGGAAGTTATATGTGTCTAACGCAAAAGGTAC -CCTACATCATAATCATTATCTAATATCGTCACATAACTTACTTATGCTATAATCATGGTATTATATTGTT -TGGAGTGATTTGATGAAATTTGTCTTTGATATTGACGGTACACTTTGTTTTGACGGCCGATTAATTGACC -AGACTATTATTGATACATTGTTACAATTACAACATGCTGGTCATGAACTTATATTTGCATCAGCACGTCC -GATTCGTGATTTGTTGCCAGTTTTACCATCAGTATTTTTATCAGCACACATTAATTGGCGCAAATGGTGC -TATGATTTCACAGCAATCAATGATTTCTGTTATCAAACCAATTCATACAGATACATATCATCATATCTTA -AAAATAATTCAAAAGTATGAGTTAGATTATATTATTGATGATGATTGGAATTATGCTGCACAACTTGACG -CTGAGAACGCTATTTTTGAGCGTTTAGATCCACATAAGCTGGCCAGTTGTATTGATGTTGCAAATATCGA -CACACCGATCAAGATTATTTTATTAAATATAGAACCGACACAAATTACAACTATATTAGATGAGCTCAAT -AAATACCATCAAGAATTGGAAATGATTCACCATTCAAATGAATATAACATTGATATAACAGCGCAAAATA -TTAATAAATATACTGCATTACAATATATATTTGATGCAGATGTTAAATATATAGCATTTGGTAATGATCA -CAATGATATTGTCATGTTACAACATGCTAGTAATGGCTATATTATAGGACCATCAGAAGCATACACACAC -GCAATATTGAAACTTGATAAAGTCAAACACATCGATAATAATGCACTAGCTATTTGCAAAGTCTTAAAAT -CATATAAATAAAAACACCCCTATCAAATGATAATCATTATCAATGGATAGGGGCTATTTTAATAAAATTC -GTCCTCTTCATCTAATCCAAATAATTCTGCCATTTCTCCATGTTCAATTAACATGTTTAAATATGCGTCG -CGGAGTTCTTCTTCACTCATATCATTAATCATTTCTTTAAGAGAATCAATCCACATATTTCTGCGTAAGT -GATAGTCTTCTTCAACTTCGTTTAACATGATTATATGTTTATTTGCTGCTTCTGGACTAGCTGTAAAGAG -TAATGCAATCATATGTTTACATATCACTCGTCTTCCATCAGCAAGAGGACAATTACATTTGGATTTTCTA -GGATGTTCCATATCAATATAACAACGATATACTTTGTTACCACTGCCCTTTACTTCAGTCTCATGCTGCG -TTTCTGAAAATGATTTTAAGTTAATTACGCATTCACTTTGATAATAATTAAAGCCTCTTTCTATAGAACG -AATACTTGCAATATCAAGTAATCCCATGATGATACTCCTTTTTATTATTATTTTTAGATATAGAAAATAA -AATCGATATGTGTCTAGATTAATATACTTGATTTATCTATATTTTATAACAAGTCTAGAATTATCGCATT -CTTAAATAACTAATATGAAAATGCTTGCACTAATTCTTTTGTATAAGGGTGTCTATCAACATTAAATAAT -TCCTCTATTGTAAAATCATCGACTATCATGCCATCCTTAAGAACGATAATTCTATTGACTAAGCGTTGTA -ACACGGATAAATCATGAGAAATAACGATAAAATGATTTAAGTTCGTAATCGTTTGCGCTTTTAATATATT -TATTACATTTTGTTCAGCTATAACATCTAAATTTGAAGTTATCTCATCACATATTAAAACGCGAGGCTGT -GCTAATAACGAACGCATGACATTAAATCTTTGTAATTGTCCGCCACTCACTTCGCTTGGTAATTTAGTCA -ATAATTGCGCGTTCAACTCAAAAGTAGATAAATGTTGTATTAATAATTGGTCCTGAGCAGTATTATCAGT -TAGACCTCTGTAATAATATAACGCTTCTTTTAATGAGGTCTCAATCGTCCAATCAGGGTTAAAGCTAGTT -AAAGGGTGCTGGAAAATCGGTAACACAGCATTGTCACTTAAGTAAATTTCTCCTTTAACAGGTTTAAATA -AGCCAAGAACCAATGAAGCGAGCGTACTTTTACCACAGCCACTTTCGCCTAAAATACCAACATTTTCTCC -ATCAGGTATAGTAATATTGATATCTTGTAGCACCATCTGCTTTTTATTATAACCAAAAGTCACATGTTTT -AACTCAATCATAGTAATCCCTCTTTAATTGTGTTCTATATTTAATTAGACGTTCAGTATACGGATGCAAA -TGCTCATACTTGAAATGATTAATATTACCTCGTTCAATGATTTGACCTTCTTTTAAAACATAAATGTACT -GACAATATTTCAATACATGACTTAAGTTATGTGTGATAATAAATAATGTTTGACCATGTTCTAATACAAT -ATGCTGTAATAAATCCATCACTTGATTACCGTTCAAAGCATCCAATGATGCAACTGGTTCGTCTGCAATG -ATTAATTTAGGTTTCAACATGAGAACGCTTGCTATGTATACGCGTTCAAGTTGGCCCCCAGAAAGTTGGA -AACTATATTTATTTAATATATCTTTGCTTTGTAAATTAACCCACGACAAAGCCTTGTCAATTTTGGACAA -AGCCTCTTCTTTACAACTTTTATAATGCTTACGATAAATCGCAGTTAACTGTTTACCTAATTTAGTATGG -TCGTTAAAACTTTCTGCATAATTTTGATAAATATAGCCAATTGTATGACCATAATATTGACTCAATCTAC -TAACATTTTCCCCATCAAATTGGTACGAATCATACGTGCAGGTTAAATCAAATGGTAAATATTCAAGTAA -GGCTTTAGCAATCAAACTTTTTCCAGCGCCGCTCTCTCCAATCAGGGCATTAATCTGTTGATTATAAATT -TTCAAATCAATCCCTTTAATAAGTGATTTCTCACTAGTATTCTTTATTGTTAAATTTTGTATATCAATGA -GACTCATTATATTCACCTCGTTGTTTCAGCAATCTATCTCTTAGCGCATCACCGGTTAAATTAAAAATTA -AAATAGTTATAGCAATGACTGAAGCAGGTGCAATCAACATAATTGGATGAGACGAAATAAAATCACGACC -TTGTTGCAACATAGCGCCCCACTCTGGTGTTGGCGGTTGTGCACCTAACCCAATAAATGATAGTGAACTT -ATATATAGAATGATTTTACCGAAATCAACGACCATCAAAACGATAATAGCCGGTATAATTTTAGGTGTTA -AATGACGTATTAATATTGTTCTTATAGGTACATGAAATAATTGTGCCATTTTTATATAAGGCTTATTCAT -TTCGCTATTAACTATACTTCTAGTCAACCTTGTGTAATTCATCCATTTTATTACTGTAATTGAAATAACT -AAATTCCATAACGATGGTTGGAAAAAGCTTGCTAAAGCAATCATGATGATAAATTCTGGAATACTTAGAC -CAACATCAATAAACCTTAACACTAATCGTTCAATCCACCCCTTTTTATATCCGGCAAATAGACCTAGTGT -AACACCTATGACAACGATAGCTATTAATGTTAAAACAGTAACAAACAATGTTGAACGTGCACCGATAATA -ATTCGGGTAAATAAATCTCTCCCATAATCATCAGTTCCTAATAAATGCAACCAACTAATAGGTTCAAAAG -TTTGTGATAAATTGACTTTGGTTGCATTTTCACTACTGACAAAGAATTGTAGTACAATCATCACAAATAT -AAATGCGCCGAATACAAAAAAGATAAGGTTATTCTTTGAAAATATTTTATGCATGACGGTCACTACTTTC -TGATATCAATGGTGTATTGGTTTTGTTTTTCGGATTTCCTAATTGTAAACGCTGCTTCGGATCAAGTAAT -AACGTTAATAAATCAGCAATCGTATTGATAATAACAACGAAGAAGCCAATAAATAACACGCATCCTTGAA -TAACAGGATAATCTCGAGATTTAATACTATCCATTAATAGATAACCAATACCAGGTATATCAAATAAATT -TTCAATCACTACAGTACCACCTATTAGACTACCAAGTGAAATCCCTAATAATGGGATAATCGGCAAAATT -GTTGGTTTTAGTAAATCATGAATTAAAATATAGCGTTCATTCATACCGCGTAATCTTGATGCTTGTACGA -TATTACTTTTCAATAATATCAATAAATTAGAACGCACTAAGCGAATGATGTATGCACACATACCTAAAGA -TAGCGTGAGTACAGGTAATATAAACTGACTTAGTATAACGCTATCTATATTCATTAAATTTGTGACAATA -AATAATAAAATAATACCGATAAAGAACGCTGGTAAACTAATTGATAGAGTTGAGATCACTCTAATCACTT -TGTCAGATAACTTATGAAATCGTTTGGCTGCTATAATGCCGAGCGGTATAGATATGCATAATGACACTAC -TAATGTTGAAAAAGATATGAGTAGTGTTATGGGTGCATAGTTGAATAATATCTGTGTTACCGGTTCTTTT -GATTCAAAACTTTTTCCTAAATTAAAATGTAATAAATGATTCATCCAATGCCACCACTGTACCAATAAAG -AATCATTTAATCCCAATTTATCTTTGGTTGCATTTATTTGTTCCGTCGACACTTGTGCTACATCAAGATG -TAATATTTTATCAACAGGATTGCCTGGTGATAATTTCATTAAAATGAATGCAAGTGTAGAAATAACAAAT -AAAACAACTATCATTTGTATCAGTCTATACAAAATAGACTTTATTATGAACATAATAGTCCCCCTCTTTG -TGTAAATTACTAACACTTTCTATTTACATGAGAATGGCGCATGTATATGCAACTTACATATTAAGAACTA -ACGTTCATTATAGTATTATCCAAAAAGAAATTGAAGTATATTTAATTTTTTAACAAAATCATTATAAAAT -ATAATATTTAGAATCAAGTCAACCATGTAAAATATAAAAAAGTCAAAACAAAAACAACTATAGCACTGTA -TTCCACCACTTTCGAAATAATTGTTACTGCAGTGTAACTTAAAAGTTGATGATTTTGTGCATATAGTTGT -CGAATATTATTTCTTATCTTTACGGCGAAGTTCAGCGCCCTCATAGCCGTATTTTTCAATTTGCTTTTCT -AATTTACGCGCTTTTCTTTCTTTACGCCAATTTCTTGTAAAATACCATAATAGAAAACTAATTAATAAAC -TCATGATCGCTAAAAACGCCGCGTATCCTAATAATGGTTGATATTTTATATCTTGAAAATTTGGAATAAA -AAATGCAAGCACACCTAATATAACAAATGTAATTACTGCTGATACAAACCATTTATTTAAAACTAAGCAA -CAGAATATTGTTAATAAAATCATTATTAAAGTTGTGATCCATAAATAATTAGGCATATCGAATAATGTCA -TATTCATTCTCCTTTTATTTCATTACTTTCCTTGTATACATTTTATTATAAATTTTTAAAAACTTAAACA -ATAGCAGTCAGTTTCAAGCAATATTCTATCTACTATTAGAAAAATCATTGTTCCTTGCGACATGGGAATC -GTAACATTATCGTTTAGGAGACAAAATTATGTATAATGAATGTATTATACCAAAGGAGTGATTATATGTC -TCAAGGTTTACCTTTAAGAGAAGATGTTCCTGTTTCAGAAACATGGGATTTAACAGACTTATTTAAAGAT -GATCAACAATATTATGAAAGTATTGACGCTCTAGTACAACAAGCAAATCAATTTCATCATACATATGCAA -CAACATTAAATTCAATCGAACAAATTAATACTGCTTTAGCTGAATTAGAAAATATTTTAATTGCCTTAGA -TCGCTTAAGTAATTATGCAGAACTACGTTTAAGTGTAGATACTAGTAATATTGAGGCACAAGTATTGAGC -GCTAAATTATCTACTACATACGGTAAAATTGTTAGCCAATTATCATTTGTAGAGTCAGAAATACTTGAAT -TACCAGAAGAAATACTTCAACAATTAGAAAAATCATGTCCATATCAACACTATATTAAACAGTTAATAAA -ACAAAAGCCATTCCAATTATCTGCGTCGGTAGAACAATTATTAGCAATTTTATCACCTACGCTAAACAGT -CCTTACGATTTATACGGCACGACAAAAATGCTAGATATTACATTCGATTCATTTGAACATGATGGTACAA -CGTACCCTGTCGACTATGCTACGTTTGAAAATGATTATGAAGATAATAAAGATCCTGAGTTTAGACGTAA -AAGTTTCAAATCGTTTAGCGATGGGATTCGAAAATATCAGCATACTACCGCGGCTACATATAATATGCAA -GTACAACAAGAAAAAATTGAAGCTGATTTACGTGGGTTTGAATCGGTCATCGATTATTTATTACATAGTC -AAGAAGTAACGCGTGATATGTTTGACCGTCAAATCGATATGATTATGCGTGACTTGGCACCAGTTATGCA -GAAATATGCTAAACTTTTACAACGTATTCACGGATTAGATAACATGCGTTTTGAAGACTTAAAAATTTCT -GTAGACCCTGATTATGAACCAGAGATTTCAATTGAAGACTCAAAAAATTATATTTTCGGTGCGTTAAGTG -TTTTAGGTGATGACTATACAAACATGTTACGTGAAGCATACGATCAGCGATGGATTGATTTTGCACAAAA -TAAAGGTAAAGATACAGGCGCATTTTGTGCAAGTCCATACTTTACACATTCATATGTGTTTATTTCTTGG -ACTGGTAAAATGGCTGAAGCATTTGTCTTAGCACATGAATTAGGTCATGCAGGTCATTTTACATTAGCTC -AAAAACATCAACCATATCTTGAATCAGAAGCATCAATGTACTTTGTTGAAGCCCCTTCTACATTGAATGA -AATGTTGATGGCCAATTATTTATTTAACAAAAGTGATAATCCAAGATTTAAGCGTTGGGTTATTGGCTCA -ATTTTATCTAGAACATATTATCATAATATGGTTACCCACTTATTAGAAGCTGCTTATCAACGTGAAGTGT -ATCGCAAAGTAGATCAAGGTGAATCTTTAAATGCGCCGACATTAAATGAAATAATGCTAAATGTTTATAA -ACAATTTTTCGGAGATGCAGTAGACATGACTGAGGGTGCTGAATTAACATGGATGCGTCAACCTCATTAC -TATATGGGATTATATTCGTATACGTATTCTGCTGGCTTAACAATCGGGACTGTCGTTTCTCAAAAGATTA -AAAATGAAGGCCAACCAGCTGTTGATGCTTGGTTAGAAACATTGAAAAAAGGTGGTAGTGTATCACCTGT -CGAACTTGCAAACATTGCGGGTGTAGACATTACTACAGAACAGCCACTTAAATCTACAATTCAATATATT -TCTGATTTAGTGGATGAAGTTGAAAAATTAACAGATGAAATTGAGCAAGCAAATAACTAGGATGCGAGAC -AACTTATAGTAGAACAATATAAACCAAGATTTTCACATTACTAATTGTGAGAATCTTGGTTTTTTTGAGG -GTTTATGAATAATAGAAATATATATTTATCGTAAGGGATTTTATAGTAATAACTTTAAGTTATTGTTCGT -AATGTGTACCTGTTAAATAAAAATAAACACTTTCAGCGATGTTAATAATATGATCACCAATACGTTCTAG -ATGTCTTGCTGCTAAATGGGCTTGTGCAGCGACAAATGGATCGTTATCAATAAGATACGTTGCGTTAATA -ATATGACTATATAAGTCATCGATATCTTCATCACGCTCAATTATTTCTCTTATTAATACGGTATCTTTCT -TTTTAAATGCTTGATCTAAATCCTTTAACATTAACATAGCTAGTTTACCCATTGTCTTTAAACGGGTTAA -CACATAATCATCTGTAATCTTCGTACGCAATCGAATATTGGCAATACTCGATGCATTATCTCCTATTCTT -TCTAAATCGGAGGCGATTTTTAATGAAGAAATCATCATACGCAAATCACTCGCAATGGGCTGTTGCTTTG -TAATTAACATGATAACTCGCTCATTAATATTATAATTTAATTGATTGATATGTTTATCGTTTTTAACTGT -TTGTCGTGCAAAGCCTCTATCGTCAATACTTAATGATTTTATACCATTTTCAATACTCACATAGACATTT -GCACCTAACCGACGTAATTCTTTTATTAAATCATCAAGTTGCTCCTGATATCGTTGTCTAATTATTGCCA -TTATATATCAACCAAACCTTCCTGAAATATAATCTTCTGTTTTCTTGTTTGATGGGTTAGAGAAAATTTT -ATCAGTGTCATCATATTCATTGACATAACCATTTAAGAAAAATGCAGTTTTATCTGATACACGAGCTGCT -TGTTGCATATTATGTGTAACCATAATAATTGTGTACTTTTCTTTTAGTTCTTGAACCAACTCTTCTACTC -TTAATGTTGAGATTGGATCTAATGCTGATGTGGGTTCATCCATTAAAATGACTTCAGGTTCAATTGCTAA -ACAACGCGCGATACAAACACGCTGTTGTTGCCCACCGGATAAACTATATGCATTTGTGTGCAACCTATCC -TTTAATTCATCCCAAATTGCAGCGCCACGTAATGATTTCTCAACGATTTCATCAAGAACTTTTTTATTTT -TAATACCGTGAATCTTTGGCCCGTAAGTAATATTATCGTATATTGATTTTGGAAATGGATTAGGTTGTTG -GAAGACCATGCCCACATTTGTACGTAATTGTTCTTTAGAATATTTTTGATCAAAAATGTCTTGATCGCGA -TATAGTATTTTACCAGCTGTTTTGACTGTGGGTACTAACTCAACCATTCGATTCAAAGTTTTAATATATG -TTGATTTGCCACAACCAGATGGACCTATAATGGCAGTAATTTGGTTTTCATAAATATCTAAATTAATATT -TTGCAATGCATGATTTTCGCCATACCATAAGTCTAAATTTTGTGTTGAATATATAACAGAATGTGAGTTT -GTATCATCTGGTGTTTTATGATGACTTTGTGAGACATCAAACGTATGACTTTGAGATATTTGTTTAGTTT -GTGCAAGTGTTTGCGCCATATTTAATACTCCCTTTTTAATAGATAAATTAGATTGATTGTTTAAATTAGA -ATTTTTTACTATATTTGTTACGTAAAATAATCGCAACGCCATTCATTAAGATTAAGATAACTAGTAAAAC -GATAATGCCTGCCGATGCAACATTCTGGAATTCTTCTTGTGGCATTTTCGCCCAAGTAAATATTTGGATA -GGTAATGCTGAAAATTGATCCAATATACTTCTAGGTGTTGCCAATAATATAGTTGGTATACCGATAAGCA -CAAGTGGCGCTGTTTCTCCCAGTGCTCTTGAAAGAGACAAAATGAATCCAGTTAAAATACCAGGTAACGC -TGCTGGTAAGACAACACGTCTTATCGTTTGCCATTTATTAGCACCTAAGCCGTAAGAAGCTTCGCGTACT -GAGTTAGGTACAGCTCTAATTGCTTCCTGACTTGAAACAATAATAATTGGTAATATCAGTAAGGTCATTG -TTAGCGCTGCTGCCAATATACTGTTACCCATTTTCAAGGCTTCAATCCCGGCACCACCAACGAACAAAGT -GTAACCTAATAACCCAAATACAACTGATGGTACACCAGCTAAATTGGAAATACTGATTTTAACAAACTGA -GTAAATTTGTTGTTTTTCGCATATTCTTCTAAGTATATAGCTGTACCTATTCCTAGGATGATTGATAATG -GAATGATACTTAACATTAACCAAAGTGAACCGATTAATGCGCCTTTAACGCCAGCCATAGATGGTGTTGA -AGAAGAAAAATTAGTGAAAAACTGTAAATTTAAATGACTTACCCCTTTAATCAATGTTTGAGTTAACAAC -GCAATAAGTACGACAAGTCCTAATAATGTACATGCTAAAAATATGAGTTTGAACACTTTATTTTTAACCG -TTCTGGATGATAAATGTTTTTGGACAAGTTGTTGATCGACGAGTGATTGTCTATTATTATCTGTCGTTTC -CATATTAATACTCCTCCCTAAAACGCTTAGAAATCCATTGAGAAAGTAAATTCATGATTAAGGTAAAGAT -AAATAATGTGAATCCTACAGCATAAATACTGTAATAAATATTTGATCCAAATGTTGCATCACCTGTCGCT -ATCTCAACAATATATCCAGTCATTGTTTGAATTGAACTTGTTAAACTTAATGAAGCTGTTGGTGAACTAC -CTGCCGCTAATGATACAATCATCGTTTCTCCAATTGCTCTTGAAATCGCGAGAACTATTGAAGCTACAAT -ACCTGATGTTGCTGCAGGAAGTACGACCTTAGTTGCTACTTCTAATTTAGTTGCTCCAAGTCCATAGGCA -CCTTCTCGAATTTTATTTGGTACAGATGCCATTGCATCCTCACTCAAACTTGTGATGAGAGGGACAATCA -TAATACCTACAACTAAGCCGGGACTTATAGCATTAAACTCTCCAAGACCAGGTATGAAAGATCTTAATAC -TGGTGTAACAAAGGTTAATGCAAAGAAACCAAACACAATTGTTGGTATTCCTGCTAAAATTTCTAATATC -GGTTTTATTATGCGTCGTGCACGGTCACTTGCATATTCACTTAAATAAATTGCTGCACCAAGCCCGACTG -GAACTGCAAATATAGTCGCAATAACTGTGATTTTTAAAGTCCCTATTATCAATGCCCAGATACCAAACTT -AGGGTCTGAGCCGGTAGGATTCCAAGTAGTAGAAAATAGAAATTCAGTTATTGGAATTCTGGTGAAAAAA -GTGATGGTTTCTAAAAGCAATGTGATTAATATACCTAGTGTTGTTAAAATGGAAATCGCTGAAATTGCAG -CTAAAATAACTGGTATAATTTTGTCATTATGCTTCCCTTTTTTATTATTATTTTTTTCAATTAAAGCTTT -AACATTAGTAGATGAAGTCATAATCAAACCTCTTTCTATTACTCCCAAAATAATTAGATTTGTAAAATAA -TGATGAACCACTATTTTAAGTTGATAAGCTTGTAGACTAACTGAATGTCAAAATCAGCGTCTCGATAAAT -CAAGCTTTGCACTCTAAATAATGATTCACCATCAAAATCATGTTTCAAGACACATTTGAAATTGCGTCTT -ATTATTTCTTGTCTTCAGACTTTTTATCATCAGATTTCTTGTCGTCTGATTTTTGATTTTTATCAATAAA -TGCTTTTAAATCATCTAATTGTGATTTGTATGTTTTCTCTGGTGCTGCTACATATCCACCTTCTTCAGCT -GCTTTACCTTTATCTTCTAAGACGAATTTGATAAATTCTGACATTACTTTATTATCTTTCAATGCTTTTT -CATTTACATAAATGAATAATGGTCTACTTAATGCATAAGAGTTATCTTGAATTGTTTTTTTCGTAGGCTC -TGTTGCTTTACCATTTTCATCTTTGATTTTAACTTCTTTTAATTTATCTTTATTTTGTACGTAGAAGTTA -TATCCAAAGTATCCGATTCCCTCTTTGTTTTTCGTTACAGAAGAAACGATAGCATTTGTATCAGCATTTT -TTTCTGCTTTAATATCTTCTTTATTCATTACTTCATTTTCAAAGAAGTCATAAGTACCATGACTTGAGTT -TGGTGATACAGCATTTATTTTTTTATCTGGCCATTTACTATTAACATCTTTCCATGTTTTAGCTTTTCCA -GAATAAATTGCTTTTAATTGCTGTTTGTCTAATTCATCTACAAAATCATTTTCTTTATTTACAGCAACCG -TTACACCATCTTGCGCAATTTTGAATTCTTTGTATTTGATATTCTTATCTTGTAATTTTTGCTTCTCTTC -ATCTTTAATTGGTCTAGAAGCATCAGCGAAGTCGATATCTCCTGCAATGAATTTTTGGAAACCAGCACCT -GTACCAGCTTGTCCTGCTGAGATTTTAGCATCCGAGTGATCTTGAGCCCATTTTTCATTTAATTTCTCCA -CAATTGGTGCTACTGTTGATGAGCCATCCCCTTTAGCTTCCCCTTTTAAATCACTATTACCACTGCCACC -ATTACCGCCACCACAAGCACCTAATAATAGTGTTGCACCTAAAGCTGTAGTACCAACAAATTGCCATTTT -TTCATTGAAATATCCTCCCTGTATGAACAACAAATAGTATTTGTATTGATTACATCTTTATCTTAACCTC -GAATTATTAACCTCATCTTTAGAAACTGTAAATGTTACATAAATGTTTGTTAAGAAAATGTAAATATTAT -TTTTTGTTAATCTGAAAAATATTGCTTCATCAGTAAAATTGAAATGTTTCCTGATAAATTTTCCAAATTT -AAATATGAACACAAAAAATGGACAGATGAAATTAAAAATCTACTTCATCTGTCCGATTTAATATTGAATA -AAAAAACACGCATCCTACGATACGTGTAAAAATGATTATTCTTTTGACTCAATTCGACTCCAACCTTTTT -TAGTTAAAGTGATTTTACCAGTTTCTATATTAATGATCTTATGTTTATATAAGTGACCGATTGCACGTTT -GAATGAACCTTTACTCATATTGAATACTTCTTTAATCGCTTCAGGGCTTGATTTGTCCCAGAATGGTAAT -TCACCATCATATTCAACTAGTAAATCAAAGATGACTTGACCGTCATCGTCTAAACGTTCATGTGCAAGTG -GTAAAAATGAACCATTTAACTCACCTTTATCATTATGACCGATAATTCTAACTTGAACAGATTCACCTAG -TCTCGGTTCAGCTTTACGTTCTGATTCATGTACAAAAATTTTGTAACCTGATTCGCTTAATAAGAAGCTA -CCAATTCGTAATACGCGGTATGGTTTGGCTTCAATGACTTCGTTTTTTAAATTATCGTCGTGTACAGGTG -TAAACATATTTTCTACAACAGATTCACTCGCTAAACGTCCATACATATGATTCTCACGGTCAATTCGTAA -TGTAACTAGCAAATGATCTCCAGGTTGTGGCCATAGTGATTTCACTTTTGGTAAATCTTCCCATGGTACT -AACACTTCACGGGGTAATCCAACATCTATACGTGCCCCATCGCGATCCGTTTTAAGTACTTTAGCAAAAT -CATATTTATCTTTCGTAATATCAGGCATATTTTGAGTTGCAAATAATTCACCTGAACGGTTTGGATAAAT -GAAGAAACTATATTCTTCACCTACTTCTAATTCATCATCATCGTTCATTTCTGATTGGTTTAACTTTACG -TTTTCACCGTTTGGTCCTTTTAAAAGGTAAGTTGAGCCTTGTAACCCTACTACTTCAAGGAATTCTATAG -AACCTACTATATCTTTGTCTAATGCCATGTTATTCTCCTTCGATTCTTGTATTCTTTATTATTATAACAT -GTGTGAGTCATTCTATCATTACAACTTATATGAGGTCGAAACTGTGACGATAATATGATATAATTCTTCC -GTTAGAATATCGAATGAAAAAAAGGAGAAAATGCATGTTACAAGTAACTGATGTGAGTTTACGTTTTGGA -GATCGTAAACTATTTGAAGATGTAAATATTAAATTTACAGAAGGTAATTGTTATGGATTAATTGGTGCGA -ATGGTGCAGGTAAATCAACATTCTTAAAAATATTATCTGGTGAATTAGATTCTCAAACAGGACATGTTTC -ATTAGGTAAAAATGAACGTCTAGCTGTTTTAAAACAGGACCACTATGCTTATGAAGATGAACGCGTGCTT -GATGTTGTAATTAAAGGTCACGAACGTCTTTATGAGGTTATGAAAGAAAAAGATGAAATCTATATGAAGC -CAGATTTCAGTGATGAAGATGGTATCCGTGCTGCTGAACTTGAAGGTGAATTTGCAGAAATGAATGGTTG -GAATGCTGAAGCTGATGCAGCTAACCTTTTATCCGGTTTAGGTATCGATCCAACTTTACACGATAAAAAA -ATGGCTGAATTAGAAAACAACCAAAAAATTAAAGTATTATTAGCGCAAAGTTTATTCGGTGAACCAGACG -TACTATTACTGGATGAGCCTACTAACGGTCTCGATATTCCAGCAATCAGTTGGTTAGAAGATTTCTTAAT -TAACTTTGATAATACTGTTATCGTAGTATCACATGACCGTCATTTCTTAAATAATGTATGTACTCATATC -GCTGATTTAGACTTTGGTAAAATTAAAGTTTATGTTGGTAACTATGATTTTTGGTATCAATCTAGTCAGT -TAGCTCAAAAGATGGCTCAAGAACAAAACAAGAAAAAAGAAGAAAAAATGAAAGAGTTACAGGACTTTAT -TGCTCGTTTCTCAGCTAACGCTTCTAAATCTAAACAAGCAACAAGTCGTAAAAAACAACTTGAGAAAATT -GAATTAGATGATATTCAACCATCATCAAGAAGATATCCTTTCGTTAAATTCACGCCTGAGCGTGAGATTG -GTAACGACTTATTAATCGTTCAAAATCTTTCTAAAACAATTGACGGCGAAAAAGTATTAGATAATGTATC -CTTCACAATGAATCCAAATGATAAAGCGATTTTAATTGGAGATAGTGAAATTGCAAAAACAACATTACTT -AAAATATTAGCTGGCGAAATGGAACCAGACGAAGGTTCATTTAAATGGGGTGTTACTACATCGTTAAGTT -ACTTCCCTAAAGATAACTCAGAGTTCTTTGAGGGTGTAAATATGAATCTCGTTGATTGGTTAAGACAATA -TGCTCCTGAAGATGAACAAACAGAAACATTTTTACGTGGTTTCTTAGGTCGTATGTTATTTAGTGGTGAA -GAAGTTAAGAAAAAAGCTAGTGTGCTTTCAGGTGGAGAAAAAGTACGTTGTATGCTAAGTAAAATGATGT -TATCAAGTGCGAATGTACTTTTACTTGACGAACCTACTAACCACTTAGACTTAGAAAGTATTACTGCTGT -CAATGATGGCCTTAAATCATTTAAAGGTTCTATCATCTTTACTTCTTATGACTTTGAATTTATCAACACG -ATTGCAAACCGTGTTATCGATTTAAATAAACAAGGCGGCGTTTCAAAAGAAATTCCATATGAAGAATACT -TGCAAGAAATCGGCGTTTTAAAATAAATATAATTTGTAGAATTTCTTTTCGAAAATCTCTGTGTTGAGGC -CCGGCCAACTTGCACATTTTTGTAAGTTGACATTACTGTCACCTTCTATATTGGGACTTATTCCCCAACT -CGTATTGTTTGTAGAAATTAGGAATCCAATTTCTCTATGTGAGACGCTGACAAGTATTGAAAAAAGCTAG -GTACAAAGTCATTTTCATTCAGTCAACTACTGTCAATATAACATTGCAGGGCCTAGGGCATTGATTCATG -TCCGAGACTATATTCAATTTAATAGACATTAACTGGACGTCTCGATGCTAATATTTATAGCATCGAGGTG -TCTTTTTTATTTTTTAGCACATCAGCACAGTGAACACCCCTTCTCTAAATTACAAATACAGTTATCAACG -CATTAAAAGAGTACATTTATTTAATGTGCATATTGAGTACGCTATAAGTATTTCGGATTTTATTTTTCAA -AAAAGTTTCATTCTCACCACCTTTTATAATATAAGCAACGCTATAACTTGAATTTTCAGGTTATTCCAAA -AAATCTAAATTATCGGTTTACATTCATATTTGTCATATGTATAATGAACACATACCAATTTAATAATATT -TTGATGAGGCGCATCAATCATGAGTAAAGTTTAGATTACTGTCTGCTAACAGCTAAATTTGAAAGGGTGC -GATGCCGAAGCGATTATAATAGCAGTTATAATTTGTTGGACTTTTTGGTTAAGAGCTGAGAGTTTGTCAT -TATTTAAAAATAATGGAGTGCATCACTTGTATATAGATTAAGAGCAAGTTCGCATTCCGAACTTGTTCTT -TTTTTATTATTGTGTGCCCTTCCTAACAATTAGGAGGATTATATGGTAACAAGAAGCGTGTTGAAATTTG -GCGGATCATCCGTCAGTGATTTTACAAAAATAAAAAGGATCGCTGAAATGTTAAAGGAGCGGGTCAATCA -AGATGAACAATTAATTGTCGTTGTAAGTGCTATGGGTAACACAACAGATCAATTAATGACGAATGTATCG -ACATTGACTAAAACACCAAAACAACAAGAACTGGCATTATTATTGACAACCGGAGAGCAACAAACTGTAT -CTTATTTATCAATGGTATTAAATGATATCGGTGTGAATGCAAAAGCAATGACTGGCTATCAAGCGGGTAT -TAAAACCATTGGCCATCATTTAAAAAGTAAAATTGCTCAAATTAATCCTCAAACATTTGAACAAGCCTTT -CAAGAAAACGATATTTTAGTAGTTGCTGGATTTCAAGGCATCAATGACCATCAGGAATTAACAACTTTAG -GCAGAGGTGGTTCTGATACGACCGCTGTGGCACTTGCTGTTAGTAATCAAATACCTTGTGAAATTTATAC -CGACGTTGATGGTGTGTATGCCACTGACCCAAGACTTTTACCAAAAGCTAAACGACTAGACATCGTCTCA -TATGAAGAAATGATGGAAATGAGCGCTTTAGGTGCTGGTGTACTTGAAACAAGAAGTGTTGAATTAGCTA -AAAACTATAATATCCCTTTATATTTAGGAAAAACTTTATCGAACGTGAAAGGAACATGGATTATGTCAAA -TGAAGAAATATTAGAGAGAAAAGCAGTTACTGGTGTGGCTTTGGATAAACATATGATGCATGTAACAATT -AGTTATCCCCTACCTGACAATCAGCTACTTACCCAACTATTTACGGAACTTGAAGAAGGTGCTGTAAATG -TTGATATGATTTCACAAATCGTCAACTTGGATGGACTACAACTATCCTTCACGATTAAAGATAGTGATTT -TCATCAAATTTCTATGATTCTTAAAACATTAAAGAATCAATATGAAGCATTAGCTTATAAAATCAATGAG -CATTATGTCAAAATTTCATTAATTGGCTCAGGCATGCGTGATATGTCAGGTGTGGCATCAAAAGCATTTT -TGACATTAATTGAAAATAATATACCTTTCTACCAAACAACAACATCTGAAATAAGTATTTCATACGTCAT -TGATGATTTTAATGGGCAACAAGCGGTGGAAAAACTATATGACGCATTTAACATTTAATGGTAAAATGAT -TGTTAAAATATTCTAAAAATTGGAAATTATTATAAAATGGAGTGACAAGTTATGACAAAATTAGCAGTTG -TGGGTGCAACAGGATTAGTAGGTACAAAAATGTTGGAGACATTAAATCGTAAAAATATTCCTTTCGATGA -ATTAGTATTATTTTCATCAGCACGTTCTGCAGGGAAAGAAGTTGAATTTCAAGGAAAAACATATACAGTT -CAAGAATTAACTGATGCTCGTGCAAGTGAACATTTCGATTATGTATTAATGAGTGCTGGTGGCGGTACAA -GCGAACACTTTGCCCCACTCTTTGAAAAAGGTGGTGCAATCGTTATAGACAATTCAAGTCAATGGCGTAT -GGCAGAAGATATTGATTTAATCGTTCCGGAAGTCAATGAACCTACTTTTACAAGAGGTATCATTGCCAAT -CCAAACTGCTCTACGATTCAGTCTGTTGTGCCATTAAAAGTATTGCAAGATGCTTATGGTTTAAAACGAG -TGGCATATACAACATATCAAGCTGTATCAGGTTCAGGGATGAAAGGTAAGAAAGATTTAGCTGAAGGTGT -AAATGGTAAAGCACCAGAAGCATATCCACATCCAATTTATAATAATGTGTTACCGCATATTGATGTGTTT -TTAGAAAACGGATATACAAAAGAAGAACAAAAAATGATTGATGAGACGAGAAAAATTTTAAATGCGCCAG -ACTTAAAAGTAACAGCAACATGTGCACGTGTTCCTGTTCAAGATAGTCATAGTGTTGAAATTGATGTAAC -ACTTGAAAAAGAAGCGACTGCAGAAGATATTAAAGCATTATTTGATCAAGATGATCGCGTTGTTTTAGTA -GACAATCCAGAGAACAATGAATATCCAATGGCAATCAATTCTACTAATAAAGATGAAGTATTTGTTGGCC -GTATACGTAGAGATGATTCATTAGAAAATACTTTCCATGTATGGTGTACATCAGACAATTTATTAAAAGG -TGCTGCATTAAATGCTGTACAAGTATTGGAACAAGTTATGCGTTTAAAAGGAGCGAATTAAAATGACACA -TTTATTTGAGGGTGTTGGCGTTGCACTTACAACCCCTTTTACAAATAACAAAGTTAATCTTGAAGCTTTG -AAAGCACACGTTAATTTTTTACTAGAAAATAATGCCCAAGCAATCATCGTTAATGGAACTACTGCTGAGA -GCCCTACTTTAACAACAGATGAAAAAGAACTCATTCTAAAAACAGTTATTGATCTTGTAGATAAACGTGT -TCCTGTCATAGCTGGAACTGGAACTAATGATACTGAAAAGTCAATCCAAGCTTCAATCCAAGCTAAAGCC -TTAGGGGCTGATGCAATTATGTTAATTACACCCTACTACAACAAAACGAATCAACGTGGTTTAGTAAAAC -ATTTTGAAGCGATTGCAGATGCTGTGAAATTACCAGTCGTGCTGTACAATGTTCCTTCAAGAACGAACAT -GACAATTGAACCAGAAACTGTAGAAATATTAAGTCAACATCCTTATATAGTTGCTTTAAAAGATGCTACG -AATGATTTTGAGTATTTAGAAGAAGTGAAAAAGCGAATTGATACAAATTCATTTGCATTATATAGTGGCA -ATGATGACAACGTCGTCGAATACTATCAACGTGGCGGTCAAGGGGTTATCTCTGTTATTGCCAATGTCAT -TCCTAAAGAATTTCAAGCGTTATACGATGCTCAACAAAGTGGATTAGATATTCAAGATCAATTTAAACCA -ATCGGCACACTGTTATCAGCCCTATCAGTTGATATTAACCCAATTCCTATTAAAGCTTTAACAAGTTATT -TAGGATTTGGAAACTATGAATTACGTTTACCATTGGTTAGCCTAGAAGATACAGATACTAAAGTGCTTCG -TGAAGCATATGACACATTTAAAGCGGGTGAAAATGAGTGAAAATATTACTAATTGGCTATGGTGCAATGA -ATCAGCGCGTTGCTAGATTAGCAGAAGAAAAAGGACATGAAATCGTTGGGGTCATTGAAAATACACCGAA -AGCAACAACGCCATATCAACAATACCAACATATTGCTGATGTTAAAGATGCAGATGTTGCAATAGATTTT -TCAAATCCAAATCTGCTTTTCCCTTTATTAGATGAAGCGTTTCATTTGCCATTAGTCGTGGCAACAACTG -GCGAGAAAGAAAAACTACTTAATAAGTTAGATGAATTGAGTAAAAATATGCCTGTGTTTTTCAGCGCGAA -CATGAGTTATGGCGTTCATGCACTGACTAAAATTTTAGCAGCTGCTGTTCCCCTACTTGATGATTTCGAC -ATCGAATTGACTGAGGCACATCATAATAAAAAAGTAGATGCACCAAGCGGTACGTTAGAAAAATTATATG -ACGTGATTGTATCTTTGAAAGAAAATGTAACTCCTGTTTATGATAGACATGAATTAAATGAAAAACGCCA -GCCACAAGATATTGGTATTCATTCTATTCGTGGAGGTACGATTGTCGGTGAACATGAAGTTCTATTTGCC -GGCACTGATGAAACGATTCAAATCACGCATCGTGCACAATCAAAAGATATTTTTGCGAATGGTGCAATAC -AAGCAGCAGAACGCTTAGTTAATAAACCAAACGGCTTTTATACGTTTGACAACCTATAAACATATTAAAG -GAGATCGATTATTTTATGGTACAACATTTAACAGCTGAAGAAATTATTCAATATATAAGTGATGCTAAAA -AATCTACACCAATTAAAGTATATTTAAATGGCAATTTTGAAGGCATCACATATCCAGAAAGTTTTAAAGT -ATTTGGTTCAGAACAATCTAAAGTAATCTTTTGTGAAGCAGATGATTGGAAACCTTTTTACGAAGCATAT -GGTAGTCAATTCGGAGATATAGAAATTGAAATGGATCGTCGCAATTCTGCCATTCCATTAAAAGACTTAA -CAAATACTAATGCACGTATTGAACCAGGTGCATTTATTAGAGAACAAGCTATTATTGAAGATGGTGCTGT -CGTTATGATGGGTGCAACAATTAATATTGGCGCAGTCGTTGGCGAAGGTACGATGATTGATATGAATGCT -ACTCTCGGTGGTCGTGCTACAACTGGTAAAAATGTACATGTAGGGGCTGGCGCAGTATTAGCAGGTGTGA -TTGAACCCCCTAGTGCTTCACCAGTTATAATCGAGGATGATGTATTAATCGGCGCAAATGCAGTTATTTT -AGAAGGTGTACGTGTTGGTAAAGGTGCTATTGTTGCAGCTGGCGCGATTGTGACTCAAGATGTACCAGCT -GGTGCAGTTGTTGCTGGTACACCTGCGAAAGTGATTAAGCAAGCTTCTGAAGTACAAGATACTAAAAAAG -AGATTGTAGCAGCATTAAGAAAACTGAATGACTAGTGACGTCAACGTATAATAATTTCAAGGTTGAGATA -CGATTATGTCTCAACCTTATTGTTTATCATTAAATAAACTTATGATCACAAATTTCGAAATACGTTACAC -TATTTATATAGTAATTTAACACAAAGGATTGATAATTATGAATGAATTAGAATTTGTTACGAAACATCGC -CGTCATTTACATCAACATCCTGAATTAAGCTTACATGAATTTGAAACAACTGCTTATATTAAAGCGTTTT -TAGATAGTTTAAATATTAAATACGATTGCCCATTGGAAACTGGCGTCATTGCATACTTAGAAGGTAATGG -CTCACATACGATAGCGTATAGAGCTGATATTGATGCATTACCTATTTTGGAGGAAAATGATGTACCTTAT -CGCAGTCAATCTGATCATGTGATGCATGCTTGTGGACATGATGGTCATACAACTACATTAATGCTTTTTG -TACAACGTTGCAAAGACATGCAAGATGCGGGGCAATTACCGCAAAATGTCGTTTTCATTTTCCAACCTGC -AGAAGAAACTGGTGGCGGTGCAAATCGATTAATAAAAGCCGGTGCCTTTGATAAGTATCCAATTGAAGCG -GTATTTGGTATTCATGTTAACCCATTTGCTGATGAAGGCATTGCAGTGATAAGAGATGAAGAAATTACGG -CCAGCGCAACAGAGTATCGCTTTTTCTTAACAGGCCTGTCAAGTCATGTTGCTGATAAAGAACAAGGTCA -TTCTTGTGGTGAAGCATTACAACATGTATTAACTCAAATATCACAAATTCAACAATTTCACCTTAACGGT -TTAAAACGAAATATTGTTCATATTGGTCATTTTAAAGCTGGTGAAGCGATTAACACTGTACCAAGTAATG -GTTATTTAGAAGGTACAATTCGTACATATGATATTGATGATTTAACAATCGTTAAAAATCAAATGCACAA -GATAGCAGAAAGTGTCAAGCTTCTGTTTAATGTAGACTGTGAAGTTAAATTTGCAGAAGGTTATCCCCCT -ACAATCAATAGTCCGAAATTACGTACTCAAATAGAGGACGCCTTAATAAAAGCTGATTTAAATGTCTATG -ACAAACCAACGCCATTCTTATTTGGGGAAGATTTTAGTTTTTATGGTCAACAACTAGCTCCAGCTTACTT -TGTTTTTATAGGAACACGAAATGAAGATAAAGGTTTTGTAACTGGTTTGCACACATCATATTTAAATTTT -GATGAAAAAGTGTTAATAAACGTGGTTAATTTTTACGAAAATTTATTAAATAATTACAAAGAGGTGTAAT -ACATTGACAGCAACATGGTCTGTAAATAAGAAAATATTTTTACAAAATGCAATCACAGTCAAAAACAATC -AGCCATTAATGGCAGTTGTTAAAAATAATGCATATCACTATGACCTAGAATTTGCTGTAACTCAGTTTAT -CCATGCAGGTATAGATACATTTAGCACAACATCACTACGAGAAGCAATTCAAATTAGACAACTTGCTCCA -GATGCAACAATCTTTTTAATGAATGCAGTTTACGAGTTTGATTTAGTCCGTGAACATCAAATACACATGA -CTTTGCCGTCGTTGACATATTACTATAACCATAAAAATGATTTAGCAGGTATTCATGTTCACTTAGAATT -TGAAAATTTATTACATCGGTCTGGATTTAAAGATTTAAACGAAATTAAAGAAGTATTGAAAGATCACCAT -CATAATCAAAATGCAAAAATGATTATTAGTGGTTTATGGACCCATTTTGGATATGCTGATGAATTCGATG -TGTCAGATTATAATGTTGAACGTTCACAATGGATGGAAATTGTTGAAGCACTTTTATCTGAAGGTTATCA -GTTCGACCTAATCCATGCTCAAAATAGTGCGAGTTTTTATCGGGAAGGACAAATATTACTACCCCACCAT -ACACATGCGCGTGTAGGTATTGCGTTATACGGTTCAAGACCATATAGTTCACTGAATCAACATGAAATAG -TTCAGTCATTGACTGTAAAAGCACATGTTATTCAAGTGCGCGAAGTACAAGCTGGTGATTATTGCGGTTA -TAGCTTTGCCTTTGAAGTGACTAAAAACAATACAAAATTAGCTGTAGTTGATATCGGTTATGGCGATGGA -ATTTTACGAACTCGTGCTAAACATGAAGCACTTATCAATGGTAAACGCTACCCGATACGTGCATTAATGA -TGAGCCATATGTTTGTTGAAGTAGATGGCAATGTACATGCACAAGATGAAGTTATTCTTTATAATAATGA -TATCCGCATCGATGAATATACCTTTAAAGGTGTTGGTGCAAATTCTGAACAATTAAGTGCTATGAATCAT -GATTCTTTAAAAAAGGAGTACATTTCAAATGACTGTTAAATATAATCAAAATGGCGAATTAACAATGGAT -GGTATTAGTTTAAAAACGATTGCGCAAAGCTTTGGTACACCTACCATTGTTTATGATGAACTACAAATTA -GAGAACAGATGCGCCGTTACCATCGCGCATTTAAAGATAGTGGATTAAAATACAATATTTCATACGCCTC -TAAAGCATTTACTTGTCTTCAAATGGTCAAACTGGTGGCTGAGGAAGATTTACAGTTAGATGTTGTTTCT -GAAGGTGAATTATATACGGCATTAGAAGCGGGATTTGAACCAAGTCGCATCCATTTCCATGGTAACAATA -AAACGAAACATGAAATTAGGTATGCTTTAGAAAATAACATCGGTTATTTTGTTATAGATTCATTAGAAGA -AATTGAATTAATAGACCGCTATGCTAATGATACGGTTCAAGTTGTATTACGAGTTAATCCAGGTGTTGAA -GCACATACACACGAATTTATTCAAACTGGTCAAGAAGATAGTAAGTTTGGATTATCAATTCAATATGGCT -TAGCTATAAAAGCAATTAACAAAGTGCAACAATCTAAGTATCTTAAATTAAAAGGTGTACATTGTCATAT -TGGTTCACAGATTGAAGGTACAGAAGCATTTATTGAAACTGCTAAAATTGTTTTACGTTGGCTTAAAGAG -CAAGACATTCAAGTTGAATTATTAAACCTTGGTGGTGGCTTTGGTATTAAATATGTTGAAGGTGATGAAA -GTTTCCCTATCGAAAGTGGTATTAAAGATATTACAGACGCAATAAAATCCGAAATTAAAGTTCTAGGTAT -AGATGCACCAGAAATAGGTATTGAACCAGGACGATCTATTGTAGGTGAAGCTGGCGTTACTTTATATGAA -GTTGGAACCATTAAAGAAATTCCAGAGATAAATAAATATGTTTCAATCGATGGCGGTATGAGTGATCATA -TCAGAACTGCACTTTATGACGCAAAGTATCAAGCATTGCTTGTTAATAGAAATGAAGAAGCAGATGACAG -TGTAACTATAGCTGGAAAATTATGTGAGTCTGGTGATATCATTATTAAAGACGCTAAATTACCTTCATCA -GTCAAACGTGGAGACTATCTTGCTATATTATCAACTGGTGCATATCATTACTCTATGGCATCCAATTACA -ATCAAATGCAAAAGCCTTCTGTGTTTTTTTTAAAAGATGGCAAAGCACGTGAAGTTATTAAGCGACAATC -GTTAAGACAACTTATTATTAATGATACAAAATAAAAATAAATAAAGTAATCCCCGAAGAACAGAAAATTA -TACTGTGACTCGGGGAATTTTTAAGCATTATAGATGGCTGTAGATAACATGCTTGGACATATACTCTAAA -AAAGGAAGAACAGCACTTTTTTAGTTAGAAAGTGTTTATTTTTTGTCGTTAATCCTTTAATTTAGTTAGC -TCTATTCAACTAATTTAAAGCATAATATACATACCACACTTTAAACAAGCATCATGAAATTAGGTTTTAT -TCTTTAATTGCTTTTTCAAATAATATAAAACGATAAGGATTAATAACAAATAAAGTGTAAAAAATAAAAT -TTCATCAAAACCAAAATCTTTACTTGTTATTAATACATCAATATGTTCTAATTCCATCATCTCTGTTTTG -ATATAATTATTAAACTTTGGCAAAGTCATTAAATGTACATTGTAAATATAATAATAAAAGTCTATGAATA -TGATGTTAAAAAATATGTATGTTTTATCAATATTAGTTTTGAAAAATACAATCCCAGAAATCATTATCGG -AATCACTAATACAATCATCATTGCCGCTAAAATATTAATATTTAAACCAATTGCAGATAATACACCGAAA -ACTAATAAATTAGCAACTAAACTAAGGATAAGATATTTCATAAAATCACCTCGTCGTTGTACACCATAAT -TATATTATATAAATATATTTTTCTATTGCAAACAATGTTGGTGATATAAAAAAAGAGTTCTCAATTTGGT -TGAGAAACTCATCGCGTTAAGTATTTGTAATAAGCATATAAAAACACCTTACTTCTTGGTAAGGTGTTAG -TTAAAATCAATGATTCAAATCTAAGAATTATAGTTTAACAACGTTTGCAGCTTGTGGACCGCGGTCGCCT -TCAACTACTTCAAACTCAACAGCTTGACCTTCTTCTAATGATTTGTAACCATCTTGGTTAATTGCTGAAA -AATGTACGAATACGTCATTTTCTCCTTCAACTTCGATAAAGCCGAATCCTTTTTCAGCGTTAAACCATTT -AACTGTACCTTGTTTCATAATCTGAAACCTCCAAGACTAAAATTCATTCAATATGCTTATTCGCATATTA -CAAAAAATACATGCAAATTTCACTCAAATATTCTTTGCAATATGGAATAATCATCTGCTTAACTTGTATT -ATAGTGCAGTTATTACCAAATTGCAATACAATAATAAAAAATATTCATTTAATCAATTATTGGTAGTTTA -TAATATACTTCATTATTTTGTAAAACAATGAAACTATAAAATATTTGTAAATCCTCTTCACAATCTTCGC -AATAGTTCATGTCACAATTATTATAAAATGCATAAATATTATATTTGCCTGTGACATAGTTATCGAACTG -AACTTTACATTGATTAATCAATTGTTGATAGTGCTTAAACATGTCATCAAAATCTTGATATTGATATTTT -TCAACAATGTTTTCTGGCCAGTCACTGAATAACCACCATCCCTCATAATCGGCTCTAATTTTGGTAACTG -TCCACATTATTAAAGACCCCTTCCATACTTCAAAACTCTATACTTATTTTTATACCTTTATCCTCTGAAA -ATCAAGTTTGACGACTTGAAACAAACAAAGTATTAACTATAGTAATTATTAGTTTTTTTAAGTAAAACTA -CGTATAATAACATTATGAGGTGGTAAAAATGAGACATATACATTTACAAGTATTCGGACGCGTTCAAGGC -GTCGGATTTAGATATTTTACACAACGCATTGCAATGAACTATAACATTGTCGGTACTGTTCAAAATGTAG -ATGACTATGTAGAGATATATGCACAAGGGGATGACGCAGATATAGAGAGATTTATTCAAGGTGTAATTGA -AGGTGCCTCACCAGCATCAAATGTAACGAGCCATCAACTTGAAGAGTTAGAACTAAATCAAAAATTATCG -GATTTTCGATCAATATAAAATGCTAAATAAAGGAAGATGACAGTGAGATATAATATTTCTCATATATTTG -GGGTGTTAGTGGGAATTCCTGTAGCGTTTTTAACAAGCATATTTGGGATAATTGCACTTGATGTATCTTT -TTTAATTGATATGTCTATTGGTATTGTTGGCTTTTTAATGACATACCTACCGATACAAAAACTCACTTCA -CGCAAATATTTAAACGAAATTGGTTTGACTAGAAAAGACTATCGCTATATTCGAAATCAGTTAAATCATA -CACACCAAAAACTTAGAGGTATTTTAAAAACGTATGTCAATATAAGATCAATTAAAGATTTTAGGCAAAT -TAATGATATATACCAAATTTCACGTTCTATTTATACGACAGTTAGACAGAGACCTGCATCATTTTATAAA -GTTGAGGGCTTTTTTTATTCTCATATTGATAATGCTTTAAATTTGGTTGATGCATATACACGTCTAGCAA -AAATGCCCAAAAAATCAATTAATGAACAGCAAAAATTAGAACAAACACGAATTACTTTGGATGAGGTCAA -ACGAACATTAATCGCTGATTTAAAGCGTCTCAACGAAGATGATTATGAACGTTTAGATATTGAAATGGAA -TTAAATAAGTTACATCAAAAGCATCATCAAGATTGATGTAAAATAGCAACTATTGGAGAGATGATTGATG -ACTGAAAATAAAAGTTTCAAAGAAAGCCATCCACTAGATGATTTTATAAGCGATAAAGAATTATCGAATA -CTACTATTCAAAAAGAAAAGTTAACAATTGAACAACAAAAACAGGTAGACACAATCAGTAAACAAATTAA -CCCTTTAGACAATGAAGGTTTATTAGCGTTTGGTTCTGATTTACAGAAACAAATGTCTCAATTTTCACAT -CAAATGTTGGATGAGGTACAAAGTAAAGATGTTGGTCCTATTGGAGATACTTTGTCAGATCTAATGTCAA -AACTAAAGTCAGTTAATCCAAATGAGTTAAATACTGATAAACCATCTATGTTAAAAAGAATTTTTAGCAG -AGCAAAGTCGTCTATCAATGAAATCTTTTCAAGAATGCAATCAGTTAGTGCTCAAGTCGATCGCATAACG -ATTCAACTGCAGAAACATCAAACACATTTAACAAGAGATATTGAATTATTAGATACGCTATATGATAAAA -ACAAACAATACTTTGATGACTTATCATTGCATATCATTGCTGCACAGCAAAAAAAGTTGCAATTAGAAAA -TGAAAAGCTACCACAATTGCAACAGCAAGCGCAGCAATCCACTAATCAAATGGATATTCAACAAGTTGCA -GATATGCAGCAATTTATAGATAGACTAGATAAACGCATATATGACTTACAGCTTTCAAGACAAATAGCGT -TGCAAACTGCGCCACAAATTCGTATGATTCAAAATGTTAATCAAGCCCTTGCCGAGAAGATACAAAGTTC -AATTTTGACAAGTATTCCACTATGGAAAAATCAAATGGCCATTGCGCTTACATTAATGAGACAGCGTAAT -GCAGTTGCTGCACAACGAGCTGTCACTGATACAACTAATGATTTATTAACAGCAAATGCTGAAATGTTGA -AACAAAATGCGATTGAAACTGCAACAGAAAATGAGCGTGGCATTGTTGACCTTGATACATTGAAACGTAC -ACAGCGTAACATTATTGAGACAATTGAAGAAACATTAATTATTCAACAACACGGTCGCGAAGAACGACAA -TTAGCTGAAAAAGAATTACAACAATTAGAACAAGATTTAAAGTCACATTTAGTGAACATCAAAGGACCGA -ATAAACAATCATAAATTACGAATTAGATATAACAAAAAAGGAAGCATCCTACGATTAAATTGGAGATGCT -TCCTTTTTTCGTTATTCCTGTTGATATTTAATTGGATCTTGTTTTACAAATATGCCGACTAGATAGCCTA -ATATCGTTGCAATAATTGCTACTGGGAACCACTCTAAAGAATACGCTCTTAGAGGCAATGATTCTATAAA -GTTAATTTTCAGCCAACCTAACTTACTAATAACACTGAAAATCGACAATATAAATACGATAATAACTGGA -ATTTGTTGTGTAATGCGTTTTGTCGGTATGAATTTGGCAATTAAAATTAATAATACAACAGTTATTGCTA -CTGGGTATACAATGCTTAATACCGGAATTGACATTGAGATAACAGCATTTAAACCTTGGTTAGCAATAAT -AAAACTCATTAAAATGAAAACTAATACAAATGCTTTGTATGATACTTTAGGTACGATTCTATGGAAATAT -TCAGAAACTGCAACAATAAGCCCACATGCTGTAGTTAGACATGCCAGCGCCACAATGATGCCCAATAAAT -ACTTTCCGAATGAACCAAATCCTGTTGAAGCCATTGTCGTTAATAAATATGTCCCAATGTTACGGTCATG -TGATTTCAATTCATTTAGTTTCATGTCACTTACTGGCATATGATTACCAATATAACCTAATGAAATATAT -ATGAAAATTAAAGCAATTGCTGCAATTAAACCAGCAGTCAAAGTTTGTTTGAATATTTGATTTGTTTTAG -TAATACCTGTTAGTTTTACTGCATTAACAACAATCATTGAAAAAGCAATTGCTGCAATGGCATCCATTGT -TAAATAGCCTTGTGTAAAGCCTTCAGCAAAACTTGAAAAATTAGAATGATATAGTGCTTCATTGCCCTTT -CCAGCACTATTACCGCTAAAGTCTAAGTATGCTTTAATAATCATCGCTAAAATAGTAATCAATAATAATG -GTGTTAATAATGAACCAATACGATCGATTAACTTAGATGGATTTAAACAAATATACAAAACGACTATGAA -GTAGATAATCGTAAATATAAATAAAGCGATACTACTATTACTATGTATAATTGGTGTAATTGTCATTTCA -AAAGATGTAGATGCAGTTCTAGGTATTGCGAAAAGTGGTCCTATAGTTAAATAAATGATGATTAAGAACA -ATATTGAAAATTTAGGTGAAATTTTATTTAATGCGCCAATATATCCTTCTTTATCAAGTGCACCTACAAT -CACACCTAATAATGGTAAACCAATCCCAGTTAGAACAAACGCTAAAATGGCGGGCCAGAAAAATTGACCA -CTATCCAATCCGAGATTAGGAGGAAAAATTAGATTGCCTGCGCCAAAAAACATAGCGAAGAGCGTAAACC -CAATGACCCATGTATTTTTATTCATAGAGTTACTCCTTTTTTTAAAACACGAAATAATTTACAAGTTAAT -ATTTTAGCACAAAAAATAATCAAGAGTCTATATGGAATATGTTGTACATAGCAGAAACAAAACACATGTG -TTGTTTAAATCAAATTATGCCAGAAAATAAAATTCTTCAAATTTACTTTTTAAATAGTAACTGATGACTT -TTATTCACAATTTCATATAAACTCATATTTTAAACTTATTTATAAAGATTTAAGTAGTAATTTTTTTAAT -AATGGAGAGAGATGTCCAGGTAAATGCGCAACACCTTCAACGAAAATGGCATATTGACCATAAATATTAT -GAATTGTTTGTTCAACATCTTCAGTTATTGGATCTTGACTCAAAAATACATTAAATACTTCAATGCCAAA -TTTACGTGACATTTCTACAGCTTCATACGTATCAATAATACCATCTTGACTATAATTAAATGCAGACGGT -TCGCCGTCAGAAAATACGATTAAAAATCGTTGATGTTGATTTCGACGCATTAATCGTTCACTTGCAACTC -TAATAGCAACACCATCACGATTATCATCTTGAGGTTCAAGTGCCATAATACGTGGGCCATCTTTTTCAAA -GGTTGAGTAATCATAGTTAATAATTTCATTAATGATATTTGGTTGTACATGATCGTCTGAATCAAAGGCA -TCCTCACTGAATGATAAAATTTCATGTTTAATGTTCAATGCTTTTAACGTCTCGTGGAATAACACTACAC -CTTTCTTCGTTTCAGCCATTTTATCATGCATACTTGCTGACGCATCAATTAACAATGTAAACGTCGCATC -AAATGATTTACTTAAATCTTGTTTTTTGTAAAACAATTTATACTGATCGTCGATAAACCAATTAATTAAA -TCCTTTTGTAATCGCCCTTTTGTTAAATTAAAACGTGCATCTCGTTGTTCTCGTTCAATCGTTTTCTTTA -TAATTTGAATTAAGTCTTTGATTTCATATTGTACGTCTTGTTTCGATTCTTGATATTCTAAAACATATTG -TGGCTCAATTTCAGGAATTTGCCATTTTATTTCTACATTTTTGTTCACACCATCAAGTTGAAATGCTTGG -CTTTGACCAACAGCATCGCCTTCTTCACGATTTAGCGTATCGTTTGATCCTTTGCCCTTTTTGGTCATCA -TATCAGTCATATCGTCTGTAGCATCGCCTTCACGTGCTTCATCATTACCTAATGTTTCACTATTTTGTCC -TTCGTGAAGCTCCATTTCTAAATAGGCGCCACCTTTTGACTCACTATCTGCAGATTTAGAGTCAGCTTTT -TCACTTTCGTTATCATCATCTTCTGAAGTATCATCTTGCCCATCGACTTGACTTGCATCAGTTCTCTTTA -AATCTTCAAACTCTGGACTAGCTAATGTATTATATAGTGTTTTAGGTAAGTAATAATATTCGTTTAGCAT -ATCTTCTTTTAAAATATCATCTACTTGATACATAATTCTTTGAGCCAGATACATATTATCTTCAGAATTT -TGATTTTGGAAAAAATTAGGTAAATATAAGAACATATTAACTAAAATATCATCTAAATCTGAATGTATAG -ATGGTATATCAAAGAAATCTTGACTTAAAAATGCATGTTCTAAATACAAAAATAATAAATCTGTATATTG -TGTTTTAGTACGATACACTTTAATTTGAGATTCCGTATATGATATCCGTGTATCTAAGCGAAGATCAATT -AATTTAGCAGTACTTGGGCGCTCAACTTTAATAGAATTTAATACGCGCATATCTTCTAATAATTTAAAAA -GTTGTTGATAAAATTTAGGGTGTTTAAAAGTTTTATCTTGTACTACTTCATTTACAATTTGTACATCCAT -CATATGATAACCGTAAGCAGCTAACATAACATCTGTTTTTAAACCAGCCATTTCGATATGGCTTGGTCGA -TGTGACCAAAACCAACTCGTAATCAAAACATTTTGAACAGGATTATAGTAAGGGAATTTTTGGATTTTAA -CTTGTGTTTGTTCATTTTTTAATAAGAGTCGAGCTAAGTCTTGCAACATCATTACTTGCTTGGCATCTAA -CTGTTCGTCGTTAAATTTTATGAAACGATCACTCATGTTTTATCCCTCTTTAAAAGTTTAGTTCTACAGC -ATTATATATTGCTTGTTGTTCACGTTCATCTTCCAATTTATCAATAATTGTACGTTTAATTGCACGTTCA -ACTGGCATTACAGTGATTAAATCACACAAGTCTAATAATGCACGTATACTAGCGGCTTCTTCAGAAATTT -GTCCCTGCTTAGACATAGTACGTAAATCTTCGTTAAACTTAATAATTTGTTCGATTTGTTTATCATCTTG -TAATAAACTTTGCTCTTTAATTACATTTTTTAAAATGTCCCCGTCAATATAGTCAACGTGAATAACAACA -AAGCGATTTTTTAGTGCTTCATTCATTGGCAATGTACCAACATAACCTTCATTTATCGCTGCAATAACGT -TAAATCCTGGTACAGCTTTGATTACTTCACCAGTGTATGGATTCGTAATTTGACGACGATAATCTAAGAC -CCCATTTAATACAGGTAATGTTTCAGGTTTAGCCATATTTATTTCATCAATATATAAAATATGCCCCTCT -TTCATAGCTTTAATAACTGGACCATCTACAAAGACAATTTCTTGTTGTCCTTCCGCATTTGTTTTAATTG -TTTTAAAGCCTAATAAGCTTTCTGTATCTAAATCAACAGAACAGTTGACTTGATGCATGGGTGTATCAAC -AACTTCACTTAATGTTTCTGCCAACTTCGTTTTCCCTGAACCTGTTGGACCTTTAAGTAAAATATTTTTA -TTTAAATCGAATAATGCCTTCGCATCATTGAAAACTGTTGAATCTGAATTCTTATAATGTTTTAGTGCCA -TTTTAAAACGTTCTCCTTTAAATAAATTAAAAAACTAAGACATGGAATAAGTTCTCCAAATGCCTTAGTT -TACTATTCTATTCTGATATAAAACGCAATGCTTAGTATGCGAATTGTTTATATTTTACCAAATTTACTAA -TTGAAAATCTCATATTAGGATTCATTTCAATAATTATGCGTTTAAACTTCTTTGAAATATGTTTTATAGT -AACCGCCAACTAATCCTGAATTATCTATTATTTGATAATATTCTTCAGTTTCGTTGATAACATCATATTG -TTTGCCTACAGTTAACATGTCAGAAACTGTAAATTTCTTTGCATCTGTATTAATGACTTCTACTTTCTTG -ATTGGCGTACGTTCTTTCCAAGTTTCATGTAACATAAATTTTGTCCTCACTATCGTAAAAAAATTATTTT -TGTAAAGTGAATATAAACGATAATCCACTGTTTTCAGTAATTCTAATTGATTCAATATCATCTTGCTCAA -GTGTTTGATATGGTATTTCCACTTCATCTAAGCGCGATTTCGCTTGATTAAAGAAATCTACATCTTTCGT -TTCAAACTCAACTTGATCGACTGCGCCATATGCCGGCATTGTCATTTCGGTTTCTACAGGCATTAAATGT -ATTTCGCCACCTAGACCACCCGTTCCAATTTTGAATACTTGGACATGATAGTCAGCATTGTCGAAGGGTT -GGTATTCTGCAAATACTTCAAGTCCGAATATATTTGTTAAAATTTGACCTGTAATATCTACATGATTCAC -TTTAAGAATCACTGGCCCTAAACCTTGCACTTGATGTAACGGATTGACCGCACTTTCGAAAGAAGGCATA -CCTAAACCAACGCCATAATTATTCTCGTTTGAATATATTGAGAAAATATGACCATTGTTATCTTCGAGAC -TGAAATATTTATTGCCATTTAATTCTTTAACTGTTGTAAATGGAATATCCTTACTCGATAATATTTCCGC -ATACTCCTCTAGACCTGAGTCAGTTGGTGTACGTAATCCAATACCCACAAAGTGAGATTCTTCTAATTGC -TCACTTGGAACTTGTATAAATTGAAGTCTTGTTCCTGGGCTTATATCTGCATCGCCGAAACGAATTGAGT -TTTCAAGAAGTTCTTCACAATTTAATCCTAATATGTCAACCATGAAATGTTTTGTCTGTTCTATATTTGT -TGTACCTAATGTTATACTTCTAAGTCCACACATTATAGCCACCTCTATCTTTATCTTTACTATTATATTA -TAACTTATTTTAATCATAAATTATAGAATATCGGTCAGTTGATTTTGATTATAGATTAATATGTGAAAAA -TGTATTTCTTTAAAAGAACTATTTCATTTAAATAGCTAACATAATATTGTTATGGTTGCTATTGAGTATG -TCATTAATGAGTATCTGTATATAGCGATTGGATATTGGGATATTTCGTTTTTCTGTAGTACATGAAAAAC -ATATATATGTCGTGTCCATAAAGTGAATGTACATCTTGTTCAGATGATTTTAAATTAACTAAAGGCGCTT -ATAGAATTCATAAATTTCATCGCTTGTTATTATCTAAAATGATTTCATTAGCATATTGAAACACGCTATT -CTAGCTATATTTCTATCGTGAGTCTATTTCATATAGAAATGATATATTTTTTAAGTAGTCAAAATTAAAC -TCACATTTTAATACGAAGCATTGTAAAAATAAAGTACAGCAGTAAGATATTTCGACTAGAAAATAAACTT -ACTGCTGTTTGTTATTGATTTGATCCCGTTTTTAGGAATAGTAAACTATTTTGTGTTGTGGATTAAGATT -CTAATAATAAGTCTTCTGGGTTTTCAATTAATTCTTTAATTGTTTTTAAGAATCCAACTGCTTCTTTACC -GTCAATAATTCTATGATCATAGCTTAATGCAATATACATCATTGGACGATTTTCGATTGTATCTTGATCA -ATCGCAATTGGTCTTGTAATAATTGAATGCATGCCTAAGATTGCAGCTTGATTACCATTGATAATTGGCG -TACTCATCATTGATCCAAAAATACCGCCATTTGTAATCGTAAATGAACCATTAACCATATCATCTAAGCC -AAGTTTTTTCTCTCGTGCTTTAACAGCTAAATTAGCAATTTCTGCTTCGATTTCTGCAAAATTCTTTTTA -TCACAATCTCTTACGAATGGTACTAATAGTCCATCATCTGTCGAAACAGCTACACCAATATCATAATATT -GTTTCGTAATCATGTCGTCGCCGTCGATTTCTGCATTAACTTCTGGATACTTTTTCAAAGCTGCTACAGA -AGCTTTAGTAAAGAATGACATAAATCCTAATTTAGTACCATCATGATCTTTCATAAATTGTTCTTTCTTA -CGTTTACGCAATTCCATAACATTTGTCATGTCAACTTCGTTAAATGTTGTTAGCATAGCTGTATTATTAG -ATACCTCTAATAATTTTTTAGCAGCTGTTTTCTTTCTGCGTGACATTTTTTCACGAATCACTGGTTTTGT -AGGATATTGATTGTATTTTTTCTCTTCTTTTGCAGGTGCTTGTTGTGTTGTTTGTGTTGATGCAGGTGCC -TGTTGTTTCTTATCAATATCTTCTTTACGAACAACATCATTTGTTTTCGGACTTACTTCAGCAAGATTCA -CACCATTTTCACGAGCATATCGACGCGCAGAAGGTGTAGCATTAACACGCTGCTGATTGTCATCATTTGT -TTGATTGACTTCAGCTTTATCTGCCGATTTATTTGTTGTTTCTTCTTTTTTATTATTTGTTGTTTCATCA -TTTTGTTGTGGAGTATTGTCGTTACTATTTTCTTTAGAAGCATTGCCACTACCTTCGCCGATGACAGCAA -TTGCTTGTCCAACTTCTACAGTGTCGCCTTCACTTGCAAGTTGTTCAGATAATACACCTGCTTCTTCAGA -TACAACTTCGACATTAACTTTATCAGTTTCTAATTCAAGAATAGCTTCACCTTTTTCTACGCTATCCCCT -AGGTTTTTCAACCATTCTGCAATGGTACCTTCTGTAATAGATTCTGCTAATTCTGGAACTTTAACCTCTG -GCATGACTTATTTCCCCCTAGTTATTTTTTAATGCATTTTCTATAATTTTATTTTGAACAAGTTTATGAA -TTTCTCCATCGCCTTCAGCTGGAGCAGCCCTTTGAATTCTGCCATGATAACTTAAATCATATTTATCTGC -AACTAGTACTTTAACATATGGATAAACATATAACCATGCACCTTGATTTTTAGGTTCTTCTTGTACCCAT -GACACTTCTTCAAGGTTTGGTAATTGTGCTAGCAATGCTTCAATCTCTTCCTCTGGGAATGGATACAATC -TTTCAATCGCAACGAGTAATACTGATTCGTCTGGATTTTTAGCTAATGCTTCTTTTAAATCAATGAACAT -TTTGCCAGTTGCCAAAATAACTTTTGTAACTTTATCCGCTTGATATGATTCTGTCAAAATTGGCTCAAAT -CCACCAGAAGTAAATTCATCAATTGGTTTTGCAACTGTTTTATTTCTCAGTAAGCTTTTTGGTGACATAA -CAACCAATGGTCGCATTTGTTCAGAATCTAAACTAGCTGCTTGTGCACGCAATAAGTGGAAATAATTACT -TGAACTAGATAAGTTGACAACTGTGCAATTATTTTCAGCAGCTAATTGTAAAAATCTCTCTAATCTTGCT -GATGAATGTTCAGGCCCTTGACCCTCATATGCATGAGGTAAGAATAATGTTAATCCTGAACGTTCTCCCC -ATTTTGAGCGAGAACTGAATAAGAAGTTGTCAAAAATCATTTGTGACATATTTGCAAAATCACCATATTG -CGCTTCCCAAATATTGAAGCTTTTTTTGTTTTCCACATTATAGCCGTATTCAAAACCAACTACTGCTGCT -TCTGAAAGCGGAGAATTGTGTATATCAAATGTCGCTTTTTGATCAGGAACATGATGTAAAGGTGTATATG -TTTCACCTGTTTGCTCATCATGTAACACGGCATGCCTATGACTGAATGTACCACGTTCACTATCTTGACC -AGTTAAGCGAATCGGTGTACCATCTTGTAAGATTGTCGCAAATGCAAGTTGTTCTGCTTGTGCCCAATCA -ACTAAACCATCTTCTTTATTAAACGGCTCATGACGCTTCTCAAGAACTTTGTTTAACTTTTTCAAAATGT -TAAAGCCATCCGGATATGTTAACAATGCATCATTTATTTCTTTCAAGTGATCAAACGTAAATGATTGTTC -GTCTGCTTGTAACGGCAATGCAAGTTCTGCAGGTTTTTCCATATCTGGATTATCCATTTTATCAGCTTTA -TTAATTTTATCATGTGCTTGTCTTAGTTCCTTTTGGACTTGTTCTATAAATGAATGCATTTCATCTTCTG -AAATGATACCTTCATTAACAAGCTTTTTACCAAACACATATTCAACAGAGTCATGTTTGCGAATATTCTG -ATAAGGAACTGGATTAGTAATTGATGGTTCATCCATTTCGTTATGTCCGAAACGACGATAACCTACTAAA -TCAATAACGACGTCTTTATGAAACTCTTTTCTAAATTCCATTGCAATATCAATTGCTTCAATAGTAGCTT -CAACGTCATCTGCATTGACATGGAATATTGGCACATCATAACCTTTAGCCACATCTGTAGAATAAGTTGT -TGAACGTGCATCAATTGGTTCTGTGGTAAATCCAATTCTATTGTTAGTAATAATATGCAATGAACCACCC -GTAGAATAGCCTTTCAAGTTTCCTAAGTTCATTGTTTCGAAGTTAATACCTTGACCAGGATAAGCAGCAT -CGCCGTGTATAATAATTGGCATTGCTTTATGATGATCAGTCGTCGGAGCCCCAGCACGCTGCGTATCATC -TTGTGCTGCTCTCGTACGCCCTTCAACAACAGGTGCAACAATTTCCAAGTGACTTGGATTGTTAGCCAGT -GCAATACGCTGCATTGTACCGTATGAATCAGTAGTTTTAATGCCACCAAGGTGATATTTCACATCACCAG -TCCATCCAGCAGTTAACTGCAAGCTACCATCTTCAGGTAAGAATTTCATTGGATCTGTATGCATAAATTC -TGAAATCATCATTTCGTACGGTTTTTCTAAGACATGCGTTAAAACGTTTAAACGTCCACGGTGAGCCATG -CCTATTTGTATATTTTTAATACCTTCTTTCGCAGCAATCGTAATAGTACGTTGTAACATCGGTACAAGTG -CGTCTACCCCTTCAATTGAAAAACGCTTTGCACCAACGAAGTTTTTATGAAGATATTTTTCAAACCCTTC -AACATACGCTAATTGTTTAAATAGTGCCCTTTTTTCGTTATTATTTAACGTTACTTTATATGGCGTTTCA -ATTCTTCTTTTTAACCAACCACGTTCGGTATTGTTATTAATATGTGTATACTCAAATGCAATTGGTCCTT -TGTAACGTTTTTCCATTCTTAAAATTGCTTCATAAGCATTATCATAAATGTCGGCAAAGTGATCTGAAAC -AATTCCTGCTGATATACCTTCCAAAGTCTGTTGATCTAAATCAAAGTCTTCAATCTCTAATTTAGGTACA -TGTTTCCTTTTCGGAGGATTTACAGGATAAATATCGGCTTTAAGATGCCCGTATTGGCGAATATTATCAA -TCAAACGCATGACACGCTTAATTGTGCCGTCGCTATTTTGACTACTTGTACTTTTTAAAGCTGGTACAAT -TGAGTCATCATTCTTAATTGTGCTGAATAAGACTTGTAAATCTTCTGGTACAGATGATGGATCTTGTAAA -AAGTCATCATATAGATCTAACATTAGACCTAAATTCGCACCGAAGTTTACAGGAGCCTCTGAAACTTCTT -TTCTTTCGTTAGTCATTTTACACCCTCCACAAAAATGTTGAAACGCTTACAATGTAATAATATCACTATT -TAGTTATTTGTTAAAGTAGATTTACCTATTTATCTACTAAAAAGAAGAATCAACAAAAGCGTTGATTCTT -CTAGGTTTATAGATGTATTTTATTGTAAATTTTGGGAGGTGAATTCCACAGAAATGATAAAGAACCCCTG -ATTATTTGTTTTATAGTCGTTCTTGGGAGTGGGACAGAAATGATATTTTCGCAAAATTTATTTCGTCGTC -CCACCCCAACTTGCATTGTCTGTAGAAATTGGGAATCCAATTTCTCTTTGTTGGGGCCCCTGACTAGAAT -TGAAAAAAGCTTGTTACAAGCGCATTTTCGTTCAGTCAACTACAGCCAATATAACTTCGTAAAGCATAGA -ACATTGATTTATGTCCCAGCCTCACTTAAAAAATTGATTCTATGACTTTGATTGACGTCTTAAACATGAT -TAAAATATGATTTTAAACGTTGTTCCTTTGTTAATCTCACTTTTAATTTTAATCGATCCACCGTTTAATT -GAATGATTTTTTGCGCAATAGATAATCCGAGTCCATTACCACCTTGACTTCTTGAACGAGATTTATCCAC -TCGATAAAAGCGATCAAAAATGAAATCTTGATCTTCCTCTGGAATACCAATTCCATGATCTGTAATTTCA -ATTATTTTTTGCTTATTTTTTAACCTTGTCTTAACTTTAATTTTCTTATTCTTCACATCATATTTAATTG -CATTATCAATAAAGATTAAAAATAATTGTTCAAATTGATGAGGTTTCATTTTAATTTCTAGATTTTTAGA -TGTCAGATCCGTATCAAATTGATAATCAGGATGCAATTGTTTTAATGAGTGTATTCGCGAGCGAATTTCA -TCATTAATATGCACGGTCTGCGCTTCAGAAGAAATGTCATTTACATCTCCTTTAGTCAATTCAAGTAATT -CTTCGACTAATTTTATGATACGATTCATTTCTTCAATAGAAATATTTAACGATTCTTCTAATACTGCTGG -GTCTTTTTTTCCCCATCGCTGAATCAAATTTAAATGACCTTGAATAATTTGTAATGGTGTTCGTAATTCA -TGTGATGCATCTTCAACAAATTGTCTTTGTTGATTAAATGATTCTTCAATTTGGCTCATCATCTCATTAA -ACGTATTTGCTAAATTATCTATTTCTTCATAATTTGTATTTAATTGCAATTTATTTTGAAAACCATCTCG -TCGGATCTCAATCATTTTATTTGATAAACTGACAAGCGGTTTAGTAATTTGAGTTGAAAATACATAACTA -ATTGTGGCAGTTATAATTGTTGCAATCACTCCAAATGCGAGCGCAATAATATACAATGATTTTACGATGT -TATCATAATTTTCTAGTGAATGAATTAACAAACTATACCCTTTGAAATCTTGCGTTGTGATTGGTTCTTT -AATAATTAAATAATCAATGCCTTTATAACGTTTTTTTATTACGCGGTCAAAATACCGGTGTTCATAACCA -GGTTCAACTCTCACTGTGTTATCATTCGATGTCTCAAATAATTTATTATTATGCTCATCATAAATAATAA -TCTCTTGAAAATTACCTAAAGATGCATTCAAGTCTAATGCAGATATATCTTTAACAGGCTTAGAATGAAA -TAAATTATTAATATCGCTTGAGCTTCTTTCTGCATCATCAAGCTCACTATTATGCAGTGTATCTTTCAAG -AAAAAGATAATAATTAAACAAAACAAAAATATCGTGACAAACGTAATCATCGTGGTAACAATAATCCAGT -TATTGCGCAATTTACGTTTTGTCATCGTATCACATACCCAACGCCACGAACTGTTTCAATCATTTTGTCA -CGATCGTATGGTTTTAATTTGTTTCGTAAATATCTTATATAAACATCTACGACATTTGTTTCTACTTCAC -TATTATAACCCCATACATGATTTAAAATTTGTTCCCGTTGCATAACATGGTTTTTATTTTCAGCTAGAAG -ATATAGTAAATCATACTCCGTTTTTGTTAATTCAATTTCTGCGCCATTTACCGTCACTTTAAAAGCATTC -TTATCAATTGTAATACCGTTGACATCGATAATATCTTTTTGTGGCTGACGACGTAAAATCGCACGAATTC -TTGCTAAAAGTTCTTCAATATCAAATGGCTTAACTATATAATCGTCTGCACCGTAATCAAGCCCAGCAAC -TTTGTCATACGTATCACTTTTCGCTGTAATTATAATGATAGGTGTAGATTGTTGTTGTCTAATTTTGCGA -CAAATTTCTAAGCCATTAATTGACGGCAACATTAAATCTAATATGATTAAATCATAGTAATGGCTAAGCG -CTTTATCTAAACCGTCTTGTCCATCATACTCTGTGTCCACATTGTAATTTTCATGTGTGAGTTCCAATTC -AAGAAATCTTGCTAAGTTTTGTTCATCTTCTACTATTAAAATTTGCGTCATTTGTACACCTCATATTACG -ACTTTTTCTAATAAGGTAATATATTTTAAATTTTGTATTTTTCTATACAATAGTTGCTTTTTAAATTAGT -TTGTTTACGTTTAAATTTTATCACAAATCAATAACCATGTTTTAAATTTTTCAAGCTACAATCATTAATT -ATTTATTAACTCAAATATTTAATAATCAGTTAATGGAATTCTGTTAATTCTGATTGCAGTACTTAAATAT -AGAATACTGTAACACAAGGTCTTACCGCAATATCAATTGTTGTCGTATACTGACTTTTATTAATGTAAAA -TGAATAGTTATTATCTTTATTTTCACAAAATGACCGTAGTTTAAACATTTATCACACATCATTTCAATGT -GCCTGTTTGAACTTGCAAGTAACATTTCTTAATGTATGAATTCAAAAGAAGTATGTAACAATATAATTTT -TAAGCCTCATCACTTTTAAATATTCTAATTCTACTGAGAAATACAAATTTTTTTATTTTCTAAAATAGCG -TAATCATGCGTTTTATTTACTATTCTTAAAAAATATTCAAAAAAAGTTTTAGTTTCTAATTGACAATGAT -TCTCACTAATGTATAATAGTAGTTGAAAATGATTATCAATACCACATAGAACATCCCCCCACAACGTTTC -GTTCTTGTTGGATTGGTCATTTTCAAATATTCCCCTTTTATATGCCCGTAAAAGACAATATACGTTATAA -CAACGTTTTATAAAAGCAGTAAACCCTTACGACACTTTAGGTTTACTGCTTTTGTTTTTTTACTATTTAA -TTGATTAATTTATTTCTAAGTAATAACGTTGATAAAATAATGCAAAATACGCCACCAATAATGCCGGCAA -TAATATCTGTTGGATAATGTACACCTAGATATACACGTGATATGGAAATCAATAAAATCATAGCTGCACA -TAACCCTATAAGAATACCTTTTGAATTACCTTGATTTAATCGATTTAATAAATAGATACTACTTCCAAAA -TATGCAGTTGATCCCATAGCATGACCGCTAGGAAAACTAAATCCTGTTATATCAATTAAACGCAGCAATG -TAGGTCTTTCTCTATCGAATATATTTTTTAATGCTGGATTCAAAATTCCAGATAATGCCATTGTTAATGC -AAAAAATAATGCTTCAATTTTGTGGCGCTTTAACATGAGATATGCCACAAGAAGTAATGAAATACATAAC -ATTGCCCAGACTTCACCTACTTTAGTAGCCCCAAGCATGATAGATGTCGTAATAAAGCTCTCTGATGAAT -ATATAAATTCATAAACTTCATTATCAATCCATTTCCCTAGTCTTGATTCGTGGAAAAACGCGATAATTCC -AAAAACCAATGTAAAAACGATGAGCAAAGAGATACGTTTCCATTGACTCATAAAGCATTACCCCCCATTA -ATTCAATGCGTCTTTAATCATCTTATCAAATAAAGCTTCTTTCGTATAACTTTGTTCATACGATTTCATA -TTATTGATAATTCGAGTTCTTTCCTGTTCCATTTTATTTAGCTCTTGTAATAAAATTTGTGCTGTCAATT -GTTCTTCATCAATCGTTTTAGCATAACCTTTATCAGCAAAATGATTTGCATTGTCAATTTGGTCGCCTCG -GGATTGATCTAAACCTAATGGTACTAATAACATTGGTATACGTAATGTTAAGAACTCATATATCGCATTT -GACCCTGCTCTACTTATTACTGTGTCCGTAATTGCTAATAAATCTGTTAAATCCTCTTTAACAAATTCAT -ATTGTATATATCCTGATTTTTTAACTTGAGCATCTTTTAATCCTTTACCAGTTAAATGTATCACTTGATA -TTGTTGTAATAATGCATCTAAGTTTTCGCGAATAATGCTATTTAATTTTTTACTTCCTAAGCTTCCACCC -ATAACGAGTAACACTTTTTTATTTTCATTAAAGCCTGTTAATTGATAACCATTATGTGCATTACCATTTT -TTAAATCTTCTCGAATTGTTGCTCCAATAAAATCAGCTTTCTCTTTAGGTAGGTAGTTTAGCGTTTCTTC -AAATGTTGTATATATTTTCTTGGCAAATTTAAGTGCTATCTTATTCGCTAATCCTGGTGTTAAGTCAGAT -TCATGAATAATAGTTGGTATATTTAATGATTTGGCTGCAATAACAACTGGCACAGATACAAATCCACCTT -TTGAAAATAATAGATCAGGTTTTTCTTTTTTCAAAACTTTACGAGCATCAAGAATACCTTTTAATACTTT -AAATACATCTTTGGCATTTTCTAAAGAAATATATCTTCTTAATTTACCACTCGAAATAGGATAATACTTA -ATTTCTGGTAGTTGTGATTCAATCATTTCTCTTTCAATACCATTTTTAGAACCAATATAAAGCACTTCAT -AACCTTGTGATAATGCAGTTGGAATTAAACTTAAATTTACTGATACGTGTCCAACTGTTCCCCCTCCGGT -AAATGCGATTTTCGTCATTAATATTACCTCTATTCTTTTAAATTTTTATAATACGCATAAAATGGTTCAC -CTTTATCATATGGCGGATATTCCATTAATTGTTCACCGACCTTATGAAATCCAAATTTGGCAAATAAACC -TTGTGCAGGTTTGTTTAACGCAAAGGTGTCCGTTAAAATAACTTCTGCACCACGTGCTTTAACTAAATCA -ATAACATAATTGAATAATTCTGTAGCAGCTCCTTTATATTCTTTCGAACCAGTTAATCGATGAATAACAA -AAGCGCCTTCTCTATTTACTGGCCAGTCAATGTCATCATACCATTCTGCTTGGTCTTGGTCGACAACAAT -AAAGCCATAAATTTTGTCATTTTCCTCTAATACGTACAAATAATCTTTAGCAATATCTTCTTCAAAATGT -TCTAAAAGAGGGTACTGATCGTCCCATTGCTCGTTGTCGTGTTCTTTCATTAATTCTTTTGCTTCTTCTA -CTAGATTTAAGATTTGATCTAAATCTGACATTTTACCTAGACGGATCATGTACGTCACTCCTTATATCGT -TATGTTAAACATGTTTTTCAGTACATGTTAATCTTACACACTATTAGCATGCTTTAAACCTTTATTATGA -ATGAAAAATAGTAATTATCACACTATGGGATAAAAATAACCAATAAAAGTATCATATACCAATTAATTGA -TTGTTAAAACTAGTGAATAATACTATTTAAAAAGTATATGCTCATAGTATATTAAAGCATGAATTGTTAA -CAGCGATGATAGAAATTGTGTTATTTACATCATTTGTAAATGTCTAATTTATATCTTTTAGAGTTAGACG -TCAATAAAAATAAATACGCCTCCTAAATTGCTATCTTTGCAAATTTAGGAAGCGTGTCATTAACATAATA -ATAATAAAATTTTAGTAGTGTGTATCGCTTTATTTTAAAATATTAATCAATTTATCGAGAACATCATCAT -GTTTATTAGCTTTTTCAACTAATAACTCAGTAAATTTATTATTCGTTTCTTTATTAAATTCACCAGTTAC -CTCGAGTTTATTCGCTTGTTGGAAAGCTTTAACTAGATTTTCTAAAGCTTGATCAAATTGCGTTGATTCA -TTATCAACTTTATAACCTAAAGCTGATAAACCAATTTTAATAGTTTTAATATTTTTATCATCGTCTCCAA -CTTTAAATGTTTTCGTATTAGGAATGACATTTAAAGATTGATATTTAGGTGTGTCAATAGTAACGTCTGG -TTTAATGCCTTTACCGTGAATATAATGACCATCTGGCGTTAACCATTTCATTTCAGTATATTTTAACAAC -GAACCATCTTTAAACTCTCTTGTAGTTTGTACGACACCTTTACCGAATGTTTTTGACCCATAAACTTTAG -CTTTATTATAGTCCTTTAGCGCACCAGTAAACACTTCAGAAGCACTAGCTGAACCTTCATTCACTAAGAT -GGATATATCCATGTCTTTCGCTTCTTTTAACGCATCATTAGAAGTTTGAATTGCTTCAGTATCTTTACCT -TTTTCTAGTTTAACAACAGTTTTTCCTTTATCGATAAAAATATTTGCCATTTTAACAGCTTCATCTAGTA -GTCCACCTGGATTATTTCTTAAATCTAAAACAATCTTTTTCAAACCATCTTTGTGAGCTTTAAGAACTGC -ATCTTTCAATTCACCTGATGTATCATTCTGGAATTTATTAATAGTAATAACTCCAACCTTACCTTTTTTC -TTATACTCAACGCTTTTAACATGAATTTTTTCACGTTTAATCTTAACGTCTTTTTCTTCACTGCCTCTTT -GAACAGTTAAAGTTACTTCAGTGTTTTCTTTACCGCGAACGTCTTTGACAACTTCGTCTAATGCTTTTCC -TTTAATTGATTTTCCATTTACTTTAGTAATGACATCTTTAGGACGAATGCCAGCACGTTCTGCTGGAGAA -CCCTTCATAGGGCTAGTAACCATAATTTGATCATTTTTCTTTTGCATTTCTGCACCAATACCTACAAAAT -CACCTGAAACACCTTCATTAAAGGATTTAGTTTGTTCTTTTGTTAAATATTCAGAATAAGGATCTTTTAA -TTCTTTGACCATGCCATCAATTGCAGCTTTACTCAACTTGTCAGAGTTCTGTTTTTTATAATAATCACTA -TTTAAGATTTTATACACATTTTCAATTTTATTTAAGTTTGCTTGATCAGTTTTGTTTAAACCACTTATTT -TTTGATTTATAAAAATATATGCAACAACTGTGATGACAGCTGTTATTATGATTGTACCAATTAAAATTGA -TATGAATTGCCAACGTTTTAAGTGAACGCGTTTCGATGAATTAGTTTGTTGGTCTTGATTGCTTGTTGCA -TTTTCAGCGCGTTCATCATCGGATGAAGTTGTGTGTTGCTTATCATCCATTGTATCACTTCCTTATTATG -TACTTTTAAATTCTGTGTAGTTAATCATATCAATTTATGCAAGATAGCGCACCATATTTCACTATAATTG -ATTAATTTTTAGTCACAACTTAGTTTATTTTAAATGACGGATTGTAATATTAAGTGCAACACCTATAAAA -ATTCATAAAAAATGCCCATAATTGGCACTTTGTTGTAAGATGTTAATAACCACAAAAACACATACAAGGA -GTGCCAACATGAGCTATAACCATCTTACACTAACTGAACGCGCACGTATAGAGGTTTTACGTCAAGAAAA -TTATTCTTTAAGATCTATTGCACGTAAATTAAAACGATCTGTATCTACTATCTCACGTGAAATTAGTAGG -AATAATTTAAATCAGTCATATCAAGCTGAAACAGCTCAAAAAAATTATGAAACCAAAAGAAAACTTTGTG -GTCGTCCTACTCGATTTACTCCAGAACTTGGTAATATCATTAAATATTATTTAAAATGCCACTGGTCTCC -TGAACAAATCGTAGGTCGTCTATTACAAAACCAAATCTGTTTTAAAACCATCTATCGATGGATTAACTCT -AATATGATTAATTTCGAACTTATTTCATGCCTTCGTCAAAAAGGAAAAAGACAGAAACCTAAAGAAACTA -GAGGTAAGTTTAATATTGGCCGTCCTATTTCACAACGTCCTAAGGAAATAAAGAAACGTAATACATTCGG -TCATTGGGAAGCTGACACAATTGTATCCAGCAGAGGCAAAAGTAAAGGGTGCATTGCTACTTTCGCAGAA -AGAAAATCACGTTATTATTATTGTGTACTTATGCCTGATCGTTCCTCTAATTCTATGGAGACGGCAATTA -ATAACCTTATCAAACATCTACCTAAAGGTGCCGTTAAAACTATTACTGTCGATAGAGGGAAAGAGTTCTC -TTGTTATCAAAATATTGAAAACCAATTTAATATTAATGTCTACTTCGCTGATCCATATTCCGCATGGCAA -AGAGGTACAAATGAAAATACCAATGGTTTACTAAGAGAATTTTTCCCTAAGAAAACAGACTTAGCTAAAG -TAAATCAAGAGCAACTTAACTATGCATTAGACTCAATTAATTATCGACCAAGAAAGTGTTTAAATTGGAA -GTTTCCTTATGAAGTTTTATGTGATGAACTGTTGCACTTAAATTGACAAATCAACAAATTAAAACCAGGA -TAACAACTTGCATCACCCTGGTTCTAACTATTATTATTAAAAATTATATTAAAATTTTAGCCATTCCGTA -TATTCTTCATATAGATCATCAAATACAGACATTGGCAATGTGAAATCACCATGTGTCTCAATATAATCAG -ACAGTATGTTAAAATCATCATCGTGTTTTGGGAAAGCAAGATCGTCAAATATCTCTTCTGCTAGACGACC -TTTATCGTCGTGTCGACCACGCACTGTCATGACAAATTGATAAAACGAATAGTTTTTCATTAGTTCATTG -TCACATCAATCACTTTAGTTTCACCTTTAATCACAGCATTTTCATCATAAATATTAATAGAAGCCGCTTG -ATCAGTGTTAGTAATTATAATTGGTGAAATAACAGATTTAGCATTATTATTAATATATTCAAGGTTGAAT -CTTACTAATGGATCTCCGACGTTAACTTCATCACCACTAGACACTAACACTTCAAATCCTTCACCGTCTA -ATTGAACTGTGTCTAAACCGATATGAACTAATAATTCTAAGCCGTTATCTGCTTTTAAACCAATTGCATG -CTTAGTTGGAAAGACATTGTCAACACGTCCTGCAATTGGAGACACAACTTCTCCTTCAGTTGGATTAATA -CCAAACCCTTCGCCCATCATTTTTTGTGCGAATACAGGATCTGGAATATCTTCAATTTTCACGTATTCTC -CAGTTAATGGTGCATAAATTGCGATATCTTTCTGAACTTCTTTGCCTTTTCCGAATAATTTTTTAAACAT -ACTTTCCACTCCTACTTATCAAAATGTGATATTAAATCGCCATAACCCAATTCTTCTAATTTTTCATATG -GAATAAATTGAATTGCAGCGGAATTGATACAGTATCTTAAGCCGCCACTTTCTTTAGGTCCATCATTAAA -GACGTGTCCTAAATGACTATTTGATTCTTCTGAACGCACTTCAGTTCTTACCATACCAAATGATTTGTCG -ACTAATTCTATAATTTCATCGTCATCAAGCGCTTTGGAAAAGCTAGGCCATCCGCACTCAGAATGAAACT -TTTCTTCAGATGTAAATAAAGGTTTACCAGAAATCTTATCTACATAAATCCCTTTAGCAAAATGATTCCA -ATATTCATTCATAAATGGTGGTTCAGTGCCATTTTCTTGTGTAACAATATATTCTATATCTGTTAGTTCA -CTTTTATCTTTTTTAAGCATTTTGATTCCCCCAATGTGATTCTATAAACGCTTTTCTACCTGAACCACGT -TGATATTGGTAATAATGTACCGGGTTCTTTTTATAATAATCTTGATGGTAGTCTTCAGCTGGATAGAAAT -TTTTATATGGTTTAATAGGTGTAATCACTGGTTTCTTGAAAATACCTTGTTCATTTAATTGTTGCTTTTT -AAACTCAGCAGCCTTTTTCTGATGCTTATCATGATAGAAAATGACTGGTTGATAGCTTTCGCCTCTATCG -AAAAATTGCCCTTGATCATCGGTTGGGTCAAATGTTTTGAAATATATGTCTAATATATTTTCAAAGGAAG -TAACCTCTGGATCAAACGTAATTTGTACTGCTTCGACATGGCCGGTTTGATTCGTACATACCTGTTCATA -AGTTGGGTTATCAGCATGACCGCCACTATAACCAGATACGACTGACTTGATGCCTGGATATGATGTAAAT -GGTTTAACCATGCACCAGAAACATCCTCCTGCTAATGTTGCATATTCTTTTGTCATATGAATTACCTCCT -CTATCTATCTAATTATAAATTTAGTCTATAAAGGATTGAAATGGAAGTAATTAACACTGAAAAGATTAAA -TTTACTTCTTAAGGACTACGAGGCCAATCGCACCTTGACCAGTATGTGCAGAAATAACTGGTGTAGTTAC -ATTTATATCGTAATTATCCACATGAAAAGCTTCATTAAAAACTTTCTTCAATTTATCAACATATTCAATG -ACGTTAGCATGTGCGACACCAACGGATTTGATTTCATGATCTCCTATAAATTCAGCAATTTCCTTTTTCA -AGTATTGGATACTAGAATTTTGAGTTCTCGCATTGTGCACAAGCTCTAAGCGACCATCATCTAGTGTACC -AATTGGTTTAATTTTCATAAGATTACCAATCAAACCTTTTGTTTTACTAATTCTGCCACCTTTAATTAAT -TGATTCAATTGCCCTATAACTACAAATAATTTAATGTTTTCTCTTAAATGATTTAACTTTTTAACTATTT -CAGAAGTTGAGACACCTTCTTTTACAAGCTCTACTAGGTGTTGTATTTGATACCCTAAACCAAAAGAAAT -AGATTTTGAATCAATAACAGTTACATTAGCATCTACCATTTGACTTGCTTGGTAAGCAGTGTTAAATGTA -CCACTTAGTCCTGAAGAAAGATGAATACTTATGATTTCAGAACCATCTTTTCCTAGTTCTTCATAAGCAG -ATATAAATTCACCTATGGCTGGCTGACTTGTCTTTACATCTTCATCATTTTCAATATGATTAATAAATTC -TTCTGATGTAATATCTACTTGGTCAACGTATGAAGCTCCTTCAATAGTTAAACTTAAAGGAATTACATGT -ATGTTGTTTGCTTCTAAATATTCTTTAGATAAATCGGATGTTGAGTCTGTTACTATAATCTGTTTTGTCA -TGGTCGTTTTCCCCCTTATTTTTTACGAATTAAATGTAGAAAGGTATGTGGAATTGTATTTTTCTCATCT -AGTTTACCTTCAACTGAAGAGGCAACTTCCCAGTCTTCAAATGTATAAGGTGGAAAGAACGTATCACCAC -GAAATTTACCTTCAATAACAGTAATATACATGTCGTCCACTTTATCAATCATTTCTTCAAATAATGTTTG -CCCTCCAAATATAAAAACATGGCCCGGTAGTTGGTAAATATCTTCAATAGAATGAATTACATCAACGCCC -TCTACGTTGAAACTTGTATCTGAAGTAAGTACAACATTTCGACGATTCGGTAGTGGTTTACCAATCGATT -CAAATGTCTTACGACCCATTACTAAAGTATGACCTGTTGATAATTTTTTAACATGCTTCAAATCATTTGG -TAGGTGCCAAGGTAATTGATTTTCAAAACCAATTACTCGTTGCAAGTCATGTGCAACTAGAATGGATAAA -GTCATGATTATCCTCCTTCTTCTATCATTTCATTTTTAATTACTAAGTTATCTTTAATTTAACACAATTT -TTATCATAAAGTGTGATAGAAATAATGATTTTGCATAATTTATGAAAACGTTTAACACAAAAAAGTACTT -TTTTGCACTTGAAAATACTTTGATGTCATTTTGATGTCTATATGGTTAGCTAACTATGCAACGACTACAC -TGCTATTGGAGCTTTTATTGCTGGATGTGATTCATAGTCAACAATTTCCAAATCTTCATAATTTATGTCA -AAAATAGACTTATCACTGTTAATTTTTAATGTTGGAGGATTGAAGCTTTCACGTGCTAATTGTGTTTGAA -TCGCATCAATATGATTTGAATAAATATGTGCATCTCCAAATGTATGCACAAATTCTCCTACTTCAAGTCC -ACATTCTTTGGCAATAAGGTGCGTCAATAAAGCGTAGCTTGCGATATTAAATGGCACACCTAAAAAGATA -TCTGCGCTACGTTGGTATAACTGGCAACTTAACTTACCATCTTGAACATAAAACTGGAACATTGTATGAC -AAGGCGGAAGTGCCATTGTATCAATTTCTGTTGGATTCCATGCAGATACGATGTGTCGTCTTGAATCTGG -ATTATGCTTAATTTGCTCAATTACTGTTTTAAGTTGATCAAAATGATTACCATCTTTATCAACCCAATCT -CGCCACTGTTTACCATAAACATTTCCTAAATCACCGAATTGCTTCGCAAATGTATCATCTTCAAGAATAC -GTTGCTTAAATTGTTTCATTTGTTCTTTATATTGTTCGTTAAATTCAGGATCACTCAATGCACGATGCCC -GAAATCTGTCATATCTGGACCTTTATACTCGTCTGATTTGATATAATTTTCAAAAGCCCATTCGTTCCAA -ATATTATTATTATACTTTAATAAGTATTGGATATTTGTATCTCCTTTAATGAACCATAATAATTCGGTCG -CTACTAATTTAAAAGAAACTTTCTTTGTCGTTAATAGTGGAAATCCTTTAGATAAGTCAAAGCGAAGTTG -ATGACCAAATTTCGAAATCGTACCTGTATTTGTGCGATCATTTCGTGTATTTCCTATTTCTAAAACTTCT -TCACAAAGACTGTGATATGCTGCATCAAATGAATTCAACATATGCGATAACACCTCATTTTTATTATTTA -TAGTATGTATATTTAGTTCGATATAATTTAACTTTATGTAGCATTTTGTTATCACTCATTTTAGGAATAT -GATATTAATATCATGAATTCCGTTACTTTATTTATAAAATGATGATTAAGTACCTGCCACATCATAACGT -GATCTATGTTTCCAATTGCTAATTGTTTACCCAAATCTATAACTTTAATGCTAAAAAATTTTAAAAAAGA -GGTTAACACATGATTTGAATATTATGTTTGATGTCCTATTAAAACAGTTAAATTTCTAGAAAATATAGTT -GGTAAGAACGTTCTTTATATAACAAATGGAATACAACTATATTCTCTATTTTCAATGACAGACACCATTT -TTAATATTATAAAATGTGTTAACCTTTATATTTATTTATGTGTACTATTTACAATTTTCGTCAAAGGCAT -CCTTTAAGTCCATTGCAATGTCATTAATATCTCTACCTTCGATAAATTCTCTAGGCATAAAATAAACTAA -ATCTCGACCTTTGAATAAAGCATACGAAGGACTAGATGGTACCTGCTGAATGAATTCTCGCATTGTAGCA -GTTGCTTCTTTATCTTGCCCAGCAAAAACTGTAACTGTATTTGTAGGTCTATGTTCATTTTGTGTTGCAA -CAGCTACTGCAGCTGGTCTTGCTAATCCAGCTGCACAGCCGCATGTAGAGTTAATAACTACAAAAGTAGT -GTCATCAGCATTTACTTGGTTCATATACTCTGATACTTCCTCGCTCGTTTCTAAACTTGTAAAACCATTT -TGAGTTAATTCGCCACGCATTTGTTGCGCAATTTCTTTCATATAAGCATCATATGCATTCATATTTAATT -CCTCCAATTAAATTGTTCTGTTCGTCATTTGTTTCCATACTGAACCAAGTGCTTCATCTCCGTTTTCAAT -ACGAGATATGGCCATTTCAATTTGTAATTTAACTTCAAACGCATTGTCATTAATATGGGCTTTAAGTGCG -GGAAGCTGCTCTGCATTACCTTCATCAAAGATAAACATAGCAGCACGCCACCTAACGATTTTCTGTGGAT -CATCTAATAGTAGCACCATTTCTGGTAGTGCCTCTGGATACCCTAAATCGCTTATGCAATCCCCTGCAGT -TCTTCTTACAGCAGGACTTTTATCACGAAGCCCCTTATATAAATACGGTAAAATTTCTTTACTTTCAATC -ATACCTAATAGTACAATCGCTTGACGTCTAACCGGTACTTTTTCATCAGATAAAGCTAAATCAAGCAGCG -GTATATCTTCAAAAGTCGGCTTTGGAAAATGATTTAACATTCTTAATCGAGTCTTCCAATTATCAGTCGC -ATGATATTCATCCAAAGAGACATGTCGATAGAAATGATAATTATTAGTTGCGTGATTTTCTTCTAAAGCA -TGTTTTACCAATACAGGTAACTGTGATTCTGGATAGGTAGCTAGTACTTCTTCTAGGACACCATCCATTA -CTTCTTCAATATTTCCATAGCGATTTCCTAAATCTAGCCATTTACGCATAAAAACAATATTGTCATGTTT -TGTTTGCGCTTGAGTCATATGATCAACATATGTTTGTGGTAATTGTTCTCTTAATTCTTGGTCAGCAGAA -GTTAGCTTAATTTGATACGGTATACCCTTAAAAGTTAATAGTTCAGCTTTAATTTCACCAAAATGATTGT -CAATTTGTGGGTCTTTTCCAGATTCCAACACCTGACTTTCACCTGAAAAAGCAGCTTTAATATCAGGTAG -TATGTCTTCCCAATCAGCTTTTGGTGCCTTATCAACAGCTAAGAAGTTCATGACATGAAAAATGGAAGTG -ATACCATCTATAGATAACAACTGATTTATAAATCTTGGTTGATTTTCTTCTACTTTTTTATAAGTATTAG -ATAACTTGTCTTCTCTTGTATATGACAAAACAACTTTCATTGTATTTGGACTAGGTGTTGGCTCTATACG -TAAAATTTCCATATACTTTATTCCCCCCGAATACTAGTTGATGAAAAATTTATTCGAATACAGCCTCTAC -TTTTGGCAATACTGTTTCCCAATTTGCGTCATTTTCTTTATCTACTGAAATAAAGTCCATAACATGGAAA -ATTGATTTAACGCCTTCAACCTTTAAGATGTCATTAATAAATGCTGGCTGTGAATCATCAACTTTAGTAT -ACGTATCTGATGTCATACCTTCTCTGCTTTCACTAAGTGTAATCTTCATTGTGTTGTGGTTCGGTGTTTC -TGATATAGATATAATTTGCATTTGACTTCCTCCTATTGAAGTTCATTTCCTAATTGTTTTATTTCTTTCC -CTATTGAACACTCATTGATACAAAAATGATGCGCCTTCGTTTTCCCCTCTAATTTACGCAGACGAGTTTT -GATTGGACATTGATTGCAATAAGTATTCATTAAATCATCTATTTTCGCGAGTGCATTTTGCTCTGAATAA -GTTAAAATACGCGACACTTCCTTTATTACTTCAAAATATTGCAACCTTGTAAATAAGTGTTACTGTTTTA -AATTTGACATAAAAATATTATAACATTTTTGACCCTAAGATTTGAATGAAACCTTTTACAATTCTATACG -TAAAATGTATTTATATTCAAATGCTATTGCATCGCAAACGATTTTTCAGTAAAATGAGTAAGTTATTTAT -TGAGCGGTTTCTAAACACCCGTATGATCAAAATTTAGGAGGACATTTTAATATGTATAATGAAATTTTAG -GACTAGTTACGTTTATTGCAACGTTCGTGCTTATGGTACTTATGTATCGCTTTTTTGGTAAACAAGGTTT -AATTGCATGGGTTGCAATTGGCACAATCATTGCCAACATACAAGTGATTAAAACTGTAGAAATCTTTGGT -ATTTCAGCAACTTTAGGTAATGTCATGTTTGCTTCTATTTATTTAGCAACAGATATATTAAACGATATTT -ATGGGCGTAGAGTTGCAAAAAGAGCAGTTTGGTTAGGCTTTTCATCAACATTAATTATGATTATTGTTAT -GCAATTGTCATTACATTTTATTCCTGCACCAGAAGATATGGCACAAAAAGCATTACACGCAATCTTTGAT -GTTGTGCCACGTATAGCTTTAGGCTCAATTGTCGCATATATTATTGGTCAACATATTGATGTATTTATCT -TTTCACTAATTAAAAAAGTATTTAGTTCTGATAAAACGTTTTTCATCCGTGCATACGGTAGTACATTTTT -AAGCTCAATAATTGATACAGCTATATTTGTAGCTATCGCATTTATCGGAAGTTTACCTGGTACAGTTGTA -TTTGAAATATTTATTACAACGTACGTACTAAAATTAGCTTCAACAGTTTTCAATGTACCATTTGGATATA -TTGCTAAATCATTTTATCGTAAAGGTAAGATTGATAAATTAGATCAAGGCTATTAAAGCACTTACTACAT -AAAAGAATAAGTTTTAAGGCTGATATTTGAGAAAATTTTATCAAGATGATTTTTTTAGGAAGTATATTAC -AGTACTACGTATTAGAAAATCATCTTTGACTCAGCGAGTATTTTAAACACGTGTTACTTATTTAAGTGAT -GCGTGTTTTTTTATGGATTACCCAACGTATTTTGTATTACAGTAATAGTAACTTTAACTAAGTATTGAAT -AGAAAGTAGGTTTATTATGGCGAAAATAAATTTTGATGCTGCGACGAAAGGAAATCCAGGCATAAGTACT -TGTGCCATTGTAATCAAAGAAGATGAGCAGCATTATACATATACACATGAGTTAGGTGAAATGGATAATC -ACACAGCAGAATGGGCAGCATGTATTTATGCACTAGAACATGCACGTGAATTAAATGTTAGTAATGCGTT -GTTGTACACTGACTCTAAGTTAATTGCGGATAGTGTTAACGCTGGTTATGTAAAAAATGCCAAATTCAAA -CCTTATTTTGATCAATTGGAAATATTTGAACAAGATTTTGATTTATTATTTGTTAAATGGATTCCGAGAG -AACAAAACAAAGAAGCGAATCAACATGCACAGCAAGCATTGTACAAATTTATTAAAAAGAACAAATAAAA -GGAGCACCGACTGATATATTTTCAATCGGTGCTCCTCTTTTTATCGAAGAAACAAATTATTTTTTATTTT -TTTTAGATTTCTTTTTCTTCTTTTTAGCTGCTACCTTTTTAGAAGGTTTTTTTGATGCCGACTTTTTCCC -TTTGGATTGGTTATCTTTTTGATTTTTCTTTTTAGCCAATAATAAAGGAACGTCTTCATCTTTAGATTCA -ATACTAGTTGTTGTTTCAACATTTCCATCTTTATCTTTGAGTCGTTTTGCGATTAAGACCGGTGAATGTT -CGTTATCTTGCAACACTTTTTCATCTGTGTTTTCATTTGTAACTTCCACATCTTCTTCATCTTCTTTTCT -GCGACGTTTAGGTAAGAAGAACGGCGTATGTTTAACTTTATCGAGTGACTCGTCATTGTTTAGCGAATCT -TTTTCTTCAACAATAGCATCTTCTTCATCTTCTTTTCTACGACGTTTCGCAAATAAAAGTGGTAAATGTT -TAGTACCTTCTATTGAACCTTTCTTCTTGTCTTTGCTATTATCTCTAATTTCCAATTCTTCCTCTTCATC -CTCTTTACGACGACGTTTCGCAATGAAGAACCAGAAGCTAGCAAGTAATCCAGAAATACCAACAACGCCA -AGTGCGTTTTTGATAACATTACCAATTCGGTCACCGAAATGACGCATATGAAGTGGATCGATTTCATCAT -CTTGATCCAATTTCTTCTTATGTCCAATAGGCGAACTATTGAATGGATGATTTACAGTGCCATAACCAAC -GTGTAAATGACTATTAGATTGACCATCTGAATTTGATGAAGGTTTGCTATGATCTGATGTTACAATTTGT -ACTGCTAAAATTCGTGCGATACCATTATTCAATGCAGCCTCAACTTGTTGTGGCGTTTGCGCATTATTAA -TATCTTTGATTGTTTCAAGCACAATTTCGTTAATTCGATTCATTGCTGCTTGTCTTTCTTCAGCAGTTCC -AATTGTGCTATTTCTAATGCGATCAATTTTATCTGTAGAAATATCTTTAATTTTTGAAATCGCAGCTTTT -TTACGGTTTTCCAATTCTTTAGCAAATGGATTGGCCGCTTTTAGTTGCGCTTTAAATTGCTCTAATTGTT -GCGCAATTTCATCGATGCTTTGCGCACGTTGAATCGCCTGAATTGATTGATCTTTTAACTGATTTAATTT -AGATATAGCTTCTTGCTTCTCTTTATCAGTTAAATCCTTACTAGCATTAATTTCATCAATCATATGTTGG -ATAGCATCAGAAATTGATTTAATGGCATTTGATTTGGCTTGGTCAATTGTAAATTGATCTGGATTGAATT -GTTCAATATGCGCCTGTTCTTGGTGTTGAACTTCTTCCACCGTATGAACATCTGCTGCGTTGTTAATTTG -CTCAATAGCTTGTTGTTTAAGCTTATTAACTTCCGCAATCGCAGCTTCTTTTTGTTCAGGTGTTAATGTT -GCGTGATTATTGATTTCATTAATCTTTTGTTGTGCCGCATTTTCAATTGATTCAATCGCCTGCTGTTTAA -CTACTGTCAATTCTTTTTCTACTACTTTCACAGGAACATTAACAATCACTTTTGATCCATCAAGCAATGT -TACTTCAACTTTTGCTGTTAAACTATCAGAAATTGTTGCAGTTGACGGTGTATCAATAATTTCCGCTGTA -AGTTGATCAATTAAGTTGATGTGTGCAAGAATATCTTGTTCTGTAATGATGTCATCACGATGGACAATGA -GTTCGCCATTTACAAGGATTTGTTCAGGAGTTGCGTCAAAAATTTCATTTACAGCAGGTTGTGCATCAAC -TTCCCATACATGTGTATTTCTAATATCATCTAATCCTAAATTTAATCCTTGATTTAATTGATCTTTAGTT -TGAGCATTTTCAATGTTTTCTAGTGCTCGTTTTTCAGCTTCGTCAATTTCTTTGAGCGCTTTTGCTTTTT -GTTCAAGTGTTAAATCAGGGTTTGAATTGATTTGATCACGCTTCGCATTTGCTAATGCTTTAATTGCATT -TTTCGCATCTTCTTTAGCTTTCACTAAATCTTTAATGTCTTGTAATGCTTGTGCAAGCTGCGCTTTGGCA -TGCTCAATTTCTTCTTTAGTCATCGCATTGTTAATGCCGTTATGACCTTGTTGCAAGATTTGATTTATTC -GATCTTTAAGCGCTTGTTTTTCCTTATCTGTTAGATTTGGATTTCGATCAATTTCGTCAATTAATGCTTG -AACTTGCTTATCAATATCTTGTTTCGCGCTTTCTTTAGCTTTCACTAAATCTTTAATGTCTTGTAACGCT -TGTCCAAGTTGTGCTTTGGCTTGTTCAATTTCTTCTTTAGTCATCGCATTGTTAATGCCGTTATGACCTT -GTTGCAGGATTTGATTTATTCGATCTTTAAGCGCTTGTTTTTCCTTATCTGTTAGAATTGGATTTCGATC -AATTTCGTCAATTAATGCTTGAACTTGCTTATCAATATCTTGTTTCGCGCTTTCTTTAGCTTTCACTAAA -TCTTTAATGTCTTGTAACGCTTGTCCAAGTTGTGCTTTGGCTTGTTCAATTTCTTCTTTAGTCATCGCAT -TGTTAATGTCGTTATGACCTTGTTGAAGTATTTGGTTAATTCGATCTTTAAGCGCTTGTTTTTCCTTATC -TGTTAGAATTGGATTTCGATCAATTTCGTCAATTAATGCTTGAACTTGCTTGTCAACATCTTTATTCGCA -TCAATTTTAGCTTTCGGTATTTCATTGGCATGCACTTGTTCAATCGCATGGTTGCCAGCTGTTTGAACTT -GAGATACATCCTGATTACTTGTTGCTTTATTAATGTTGTTGATGATGCTGTTTGCCAATTCTTCTGCTTT -ATTTTTCGCAATAAGCTTGTCTTGATCCGTCGCATTTGAAGCTTCGATTTCTTTTAGCTTATTAGCTAAA -GCTTGATTAATAGATTGAATTGCCTTGTCTTTAGCATCTTGTAGTCGTTGATCACCATTAAGATTTTGGA -TTGCATCATTGACTGTTTGAATTGCGCCGTTAATATCATTCACATTTGTGTTATCACTATTTAGCAATGT -ATTTGCTAGACGTTTAGCATCATCGAAGTTTGTTTTAGCATTATCTTCAGCGTTTTGGTAATTGACAGTT -TGCTCTGCATTTGGAATTTCATTGTCAACTAAATGTTTCAATGTTTCCATTGCATCATTTAAGTCAATTT -GATTATTAACAATATCTGTTACATCTGATACAGTATCGGCATTGTTAATTGCATTATGTGCAAGATGTTG -TTGCTGTTGATTTAATCCATTTAACGAATTAACAAACGCATTTGCTTTATCTTTGGCATTTGCAAGGTTT -TGGTCTCCATTTAATGCATTTTGAGCATCAATAATATTTTGTTTCAATTGCTCTGCTTCAGCTTTTGCAA -TTGCATTACCTTGCACTTTATCTAACTCATGTGCTGCATTCGCAATTGCATTATCATAATTTGCTTTCAA -ATTATCATCTGCATTGATGTAATTTGTGCTGCTGATAACACCAAGGTGCTGTTCGTCAATATATTGTTGT -ACTGCACCCATTGCATTATCTAATTTAGTTGCTCTATTAATTGCTCGAGATGCTTTATTTAGCGTTTCAG -CATTATTAATTTGTTGGATTGCTAATTGTCTTTGAGCATTGTTTAGATGTGTTAATTGATCCAATCTTTG -TAATGCTTCAGACTTACGATTATTAAGTTTTTCTTCACCATTTAATGCTTTCTTTGCTGCAGTGACTGCA -TCATTTAATTTGATAACTTGTTCTGCAGTTAAGTTTTGACCTGTCGATTTATCAAGTGCTTGTTTCGCTT -TATCAACCGCTTCATCATACACTTGTTTAACTTGTGTATCTGCATTGACATAGTTCGTGCTACCTTTCGT -GCGTCCTTCATTGCCAGTGATTCCTTGTGACAATTGATCCATTACACGATTAAGTGCCTTAGCCTCATCT -ACAATTTGTTGGATTTGATTTAAATCGTTTGATTGATCGATGCGACCTTTAAATCCATCTTGTTGAGCAT -TGTTTAATGCATTCAATTGCTCTATATCATGTTTACCATTTGTTTTAGCAAGTGCTACACGTTCATCACC -ATTTAATGCTTGTTTTGCATTTAAAATATTTTGAAGTGCTTGATCCACTTGTTGCTTATTCGCATTTTGT -TTCAATACATTTTCGGCATCAGCAATAGCTTGTTTATAAGCATTTTGCTTATCTAAATCTGCTTGTGTGT -AATCTACAGTTTGCTCAACGTTAGCATGTTCATTAACTGCTTGTTGTAATTGATCCATTGATTGGTTCAA -TTGCGTTGCTTGATCTACTAATTCAGCGATTGGTTGAAGTTTCGTCGCTTGATCAATATTTTGTTTAGCA -GTTGCAATTTGATCAGCATTTAAATGTGTTAATTGGTCAATAGTTTGTTTCGCTTGTGTTTTAGCTTCAG -CGACTCTCTCATTACCATTTAACTCATTCACTTTTTCTTGAAGCTTAGTTAATGCTTGGTCTACAGCGTC -TTTATTCGCATTTGAACCATTAGTTGGATCTGTAATGCTTTCTGCAGCTTGTAACGCTTGATCTACTGCT -TCTTTTTTATCAGTTGACGCTTCAGTGTAATTTGGTTGAGCCTTATCTGTATTCACTTGATCAACTTTAT -TTTTCAATGTTTCCATCGCGTGATCAAGTTCAGTAGCAGTTTGAACATGTTGTGCAACCTCTGTTCTTGT -AGGCGCTGCATTTATAGCATCAGTTAATGCTTGTTGTTGTGCATGATTTAAGTTTGGCAATGCATTTACA -GTTGTTACTGCTTGTAGTTGATCACGAGCAAGTTTTTGATCACCATGTAGGTTATCTTTTGCAGTTGTTA -CTGCTTGTGTCAATTGTTCTACTTGTGATTTGTCGAGTGTTGGATTACCTGTTTGGTTAATTAAATCTTT -TGCATTTTGAACTGCTGCTTGGTAAGCATCTTTTTGCGGTTTATCTTCATTGATAAACTTGCTACCAGAT -TCTGTTTGTTGTTGATCTTGAATACTATTACGTAATGCTTGCATTGCTTGATCAAGCGCTTTTGCTTCAG -CTAATTTTTGCGCTACTTCATCACGAGTTGCTGCGTTGTTTATTTGGCTTTCAAGTGCTTGACGTTGCGG -ATTATTCAAACCATTTAATTGATTTAAATCAGTAACCGCATGTTGTTTATCGTCTGCAAGTTTTTGATCA -CCGTGTAGGTTATCTTTAGCTTGGTTAACAGCTTGTGTCAATTGTTCAACTTGTGCTTTATCAAGCGTTG -GATTGTTAGTTTGATTAATTAAATCTTTTGCATTTTGAACTGCTGCTTGGTAAGCATCTTTTTGTGGTTT -ATCTTCATTGATAAACTTGCTACCCGCTTCCGTTTGCTGTTGATCTTGAATGCTATTACGTAAAGCTTCC -ATTGCTTGGTTAAGTGCTTCTGCTTCAGTTAATTTTTGTGCTACTTCGCCACGAGTTGCTGCATTATTGA -TTTGATTTTCAAGTGCTTGACGTTGTGGTGTATTCAAGTTAGACAAGTTATTTAACGTTTCTGTTGCACG -TTGCTTATCTTGATCTAGTTTTTGATCACCATGTAAATTATTTTTAGCATCAGTCACTGCCTGTGTCGCT -TGATCAATGATTGATTTAGCTAATGTAGGATCAGTTGTTTTGTTAATCAAATCTTTCGCGTGTTGTACAG -CTTGCGTATAAGCATCTTTTTGTGCTTGATCTTCATTAATAAATTTACTACTTGCTTCAGTTTGTGGTTG -ATCTTTAATACTTTCTTTTAATGCTTTCATCGCTTCATTTAATGCTTGCGCTTGTGCAATAATTTCAGCC -ACTTTATCACGAGTTGTTGCATTATTAATTTGATTTTCTAGTGCTTGTTGTTGTGCTGGTGTTAATTGGT -CTAAATGATTTAGAGAATTTCCAGCAGTTTGCTTATCTTGCGCTAATCGTTCAACACCGTCTAATGCATT -TTTAGATGATGTTACAGCTTGTGTCGCACTTGTTACATTACCTTTATTGATAGTCGGATTATTTAATCCC -GCAATGATAGACTCAGCATTTTGAACTGCTTCATCATATGATTGTTTTTTATTCGGTTCTGCATTGACAT -ATGCACTGCTCGCACGTGTTGCATCTTTGTCAGCAATACTTTGTTGTAATGCATCCATAAGTTGATCTAA -TGCTTGTGCTTCAGTCAAATCATGGTTAACGGCTGTTCTAGTTGTTTCACTATCAATCAACGTATCTTCC -ATATGTTTTTGAGCATTGTTTAAATGTGTTAATTGACTAACTGTTTGTTTCGCATGATCTTTATCATTTT -GTAATTTCACATCACCATGTAATGCTGCTTTCGTTGTATTCACAGTTGTCGCTGCTTGATTAATTGCATT -ATTATCTAATGTTGCTGTTTGTTCATTGATAATATTATTTGCGGCTTGCACTGCTTGATCGTAGTTTTGT -TGTTCTGATTGATCTTCGTTGATATATTTGCTATTTGCTTTAGTTGCTGCGTTATCTTGAATACTTTCTC -TTAAGCCATGCATTGCTTGGTTAAGCGTATTCGCATTTTGTTCAATTTGATGAACTGCAGTTACTAAAGT -TGCAGCAGTAACTTGGTCTTTTAATGCTGTTTTTTGAGGATCATTTAAGCTTGTTAAAGCATCAATTGCT -TGCGTCGCATTTGCTTTAGCAACTTGTAAATTATGATCTCCATTTAACGCTTGAAGTGTTGTTTGAACTT -TAGTAATAGCTTGTTCTACTTCTGTTTGGTTCGCATTTTGACCAGTTTGTTTGTTAATCATGGCTTCTGC -TTCATTTACCGCTGTAGTATAAGCAGTTTGTTTATCAGTATCAGCATTGACGAAGTTACCAAGTTGTTCA -ACGGTTTGATGATCTGCAATCGCATTAATTAAGTTACCCATTGCTGTATTTAAAGATTCTGCTGTTTGTT -TGTGACCATTAACTGCAGCAATATCAGATGATTGCGTAATTTGTGATTGTAACTGTTGCTTTTGCGCATT -ATTTAAATGATCTAATTGATCAAGTCTATTGTTCGCTTGTTGCTTAGCTGCTACAAGGTTTTCATCACCA -TCTAATGCAACTTTCGTGTTATTCACTTGTGTCGTTGCACGATTAACTTCATCTGGATTCATTGTAGGTG -ATGTTGTTTGGTTAATGATATTATTAGTAGCTGTTACTGCTTGGTTATAGTCATTTTGTCTTTGCGCAGT -TGCATCATGATAATCTTCAGACGCTAATGTCGCTTGATTATCCGCAACACTATTTCTTAATAATTCCATC -GCATGATCTAACGCTTGTGCTTTTTGATTAATTGTAGTGACATCTGTAACAAGTGGCGCTTGTGTAATTT -GACTTTCAAATGATTGTTTTTGTGCATCATTTAAGTGTGTTAGATTCGCCAGTTGTTGTTTCGCTTGTTG -CTTAGCATTCGCTAAATTATCATTACCATTTAATGCTTGTTTCGCTGCGTTCACTTCATTAGTGATGCTT -TCAACTTGTGCTTGTACTTCATTAGTACCACTTTGTTTATTCAATAATGCTTCAGCTTTTGCTACTGCCT -GTTTATACGCATTTTGTTTGTCAGGATCTGCATTTAAGTAATTACCGTCCGCTAATGTTTGAGCTTTATC -ATTAATAGCTTGTGATAATTGATCCATTGCATGATCTAACGCTTGTGCTTTTTGATTAATTGTAGTGACA -TCTGTAACAAGTGGCGCTTGTGTAATTTGACTTTCAAATGATTGTTTTTGTGCATCATTTAAGTGTGTTA -GATTCGCCAGTTGTTGTTTCGCTTGTTGCTTAGCATTCGCTAAATTATCATTACCATTTAATGCTTGTTT -CGCTGCGTTCACTTCATTAGTGATGCTTTCAACTTGTGCTTGTACTTCATTAGTACCACTTTGTTTATTC -AATAATGCTTCAGCTTTTGCTACTGCCTGTTTATACGCATTTTGTTTGTCAGGATCTGCATTTAAGTAAT -TACCGTCCGCTAATGTTTGAGCTTTATCATTAATAGCTTGTGATAATTGATCCATTGCATGATCTAGGCT -CGTTGCTGTTTGTTTAACTTGGTTCACTATAGCAATTTCAGGCGATTGATCGATTTGTCCTTTTAATGCT -TGTTTTTGAGCATCGTTCAAATGCGTCATTGCATTGACAGCATCTTTAGCATTTTGCTTTTCAGTTGCCA -ATTTAGCTTCACCGTTTAAGCCATTTTTAGCATCAGTCACTTGAGTTAATGCACGAGTAATATCATCTGG -GTTAAGCATTGGATTTGTCGTTTGATTGATAATACCTTCCGCTTGAGACACTGCATTTGTATATGCTGTT -TGCTTATCGGCATCAGCATCGTGATAGTTTTCACTTGCTTTGACGGTATCTTTATTTGCAATACCTTGTT -TCAAGTTACTCATTGCTGTATTAACATTTTGTGCATTTTGTTTAGTTTGTTCAACTGTAGCTAACGCTTG -TGCTTGATTGATTTGATTACGTAACGCATCACGTTGTGGTTGATTTAAGTCACGCAACGTATCTAGATTT -GCTATTGCATCTTGTTTCGCTTGCGCTAATTTTTCATCACCGTTTAATGCATCTTTCGCTTGATTCATTG -TAGTAACTGCTTGTGTTACTGCGTCAGGCGTCAATACAGGTGTTGGTGTGCCATTTGCAATTTGTTGCGC -TTGGTTAGCTGCATTGTTATATGCTTGTTGTTTGTCTTGATCCGCTTGTGTAAAGTCAACTGATTGTGGT -ACTTGACTGTTTGCTTGAATTTGTTGTTTCAACGTACCCATTGCATTATTTAATGCATCAGCATTTTGCT -TAATAGCATTAACACCTGTAACAAGTTCTGCATGTGACACTTGGTCTTTTAATGCTGTTTTTTGTGTTTG -ATTTAAGTTTGGTAACTGATCAATGGCAGTATTCGCATTGTCTTTAGCAACTTGTAAGTTATGGTTACCG -TTTAAATCACCCTTAGCTTGAGTCACTTGTTGTAACGCTTGAGCCACTTGTTGTGGATCCACGTTTGCAT -TTGGTGTACCACTAATGATTTGTTCAGCATGTGCTACCGCATTGTTGTATGCATTTTGCTTATCAGTATC -AGCATTGACAAAGTTACCATTTGCTTTAGTTTGGTCTTTATCTGCAATACCTTGTTTCAATTGTGTCATT -GCTTGATTTAAATCTTGTGCTGTTTGCTTAATCGTGTTTACATTTGCAACAGTTTGCGCAGCATCGACTT -GTTGTTTTAACGCATCTTTTTGCGCTTGATTTAAATCATTCGCATTTGTAATCACTTGTTTCGCTGCATC -TTTTGCACGTTGTACATTGTCATTACCATTCAATGCTTGTTTCGCTTCGTTCACGCGTTGCATCGCTTGT -TCCACTTCGGTTTGACTTGCATTGCTGCCATTTGCTTTAGATAAAATACCTTCTGCATGTGCAACCGCAT -TAGTATAAGCATCTTTCTTAGCTTGATCTGCATCAGTAAAGTTAATGCTATTTAATGTCTCAGTTTTATC -TTGTAATGCATTACTTAAGTTAGTCATAGCATTATTCAGATTTTGAGCATTTTGCTTAACATTATTAACT -GTTGCAATATCTGGTGCTTGTTCAACTTGTGTTGTTAACGCTTGTTTTTGCGCATCATTTAAATGATCTA -ATGTGCCAAGATTTGTCTTAGCAGCTTGTTTAGCATCAGCTAATTTTTGATTACCGTTAAGTGCTTGATT -TGTATCATTCACTTTAGTTAATGCTTGTTGAATTGTATTTGGATCCATTGTTGGATTTGTTGTTTGTTTT -AACAATTCTTCTGCTTTTGTTACTGCATTATCATATGCTGTTTGCTTGTCAGTATCAGCATCGTGATAGT -TCTCGCTACCTTTAATTTGTGCTTTATTCGCAATACCTTGTTTCAATTGTGTCATCGCATCATTAAGCGT -AGTTGCCGCTTGTTGAATAGCATTGACGTTTGGTACAAGTGTTGCTTGCGTAATTTGTTTGCTGTATTCA -TCACGTTGCGCTTGATTCAAGTTTGGCAATTGATCAATAGCATGTTGAACATTTTGTTTCGTTGTTGCTA -AGTTCGTATTACCATTTAAATCATTTTTAGCTTGTGTAACTTTATTTAACGCTGCAGTAATTTCGCTAGG -TGTAACGACAACATCAGGTGTGCCGCTAATTAATGCTTCAGCTTTTGCTACTGCTTGTTTATATGCATTT -TGTTTGTCAGGATCTGCATTGACAAAGTTACCATCAGCTTTTGTTTGTTCTTTATCTGCAATGCCTTGTT -TTAATTGTGTCATTGCATTGTTTAACTCTTGCGCTGTTTGTTTAACATTGTTTACACCAGCTACAGTAGT -TGCATTTTGAACTTGCTGTTTTAATGCGTCTTTTTGTGCTTGGTTAAGGTCATTAGAGCTATTAATTAAT -GCTGTTGCTTCGTCTTTCGCATGTTGAACGTTGGCATTACCATTTAATGCTTGTTTTGCAGCATTAACTT -GTTGGATTGCTTGTTCAACTTCAGTTTGTGTTGCATTGCCACCATTAGCTTTTGAAATGATGTTTTCAGC -ATTTGTAACAGCAGTGTTATATGCTTGTTGTTTTGCTTGATCTGCATCAGTGAAGTTTACTGTTGCTTTC -GTAGCATCTTTGTCAGCAATCGCTTGTTTCAAGTTACCCATCGCTGTATTTAAGTTTTGCGCATTTTGTT -TAATTTGATTTGCTTCATCAACAGTATGCGCGCCATTAATTTGATCAGTAACTGCTTGTTTTTGCGCATT -ATTTAAGTTGTCTAATGAACCTAATGATTGTGTCGCTTGTTGTTTCGCTGCCTCTAGGTTTTCATTACCA -TTTAATGCATTTTTAGTTGTGCTTACTTGTCCAGCAGCTTGATTGATAACAGTCGGATCTAAAGTTGGAC -TTGTCGTTTGATCAATAATACCTTGTGCAGTTGTGACAGCATTATTGTACGCATCCTTTTTATTCGGACT -TGAATCAGTATAATTTTGGTTTTGTTTTGTTGTCGCATTATCTGCAATACTTTGACGTAATTTGTCCATT -GCTGCATCAACATTGTTTGCTTTTTGTTCATTACCTTGTGCTTCTGCAACAGTAGTCGATTGTTGTACCA -ATTGTTTTAATGCCTCTTTTTGTGCATTTGTTAAATGGCTTAAACCGTCAATCGCTGTATTTGCGTGTTG -TTTAGCTTTTTCAAGGTTTTGAGTACCATTAAGCGCTGCTTTTGTAGTATTCACTTGATTCATAGCTGCT -TCAACTTGATCTTTAGACACGTTTGTACCTGTAGATTTATTTAAAATATTTTCAGCATTACGAACCGCTT -CATTGTATGCATTTTTCTTCTCTGGATCTGCATCTGCAAAGTTTTGACTGCCAAGTGTAGTGTCTTTATC -ATTCAAGCTATTTTTCAAGTTACCCATCGCTGTATTTAGTTCCTGAGCTGTTTGAATGGCTTGCGTTACT -TCAGCAACAGTGTGCGCTTGATTGATGTTTCCAGTAACAGCACCTTTTTGCGCATTGTTTAAGTTATCTA -ACGTAGATAATGTTTGGTTTGCATTGTTTTTAGCATCTGTTACTTTTCTATCACCATTCAATGCTTGTTT -AGTAGTTGTTACAGTTGAAAGTGCTGCTTCAACCTGTGATTGGTTCGCATTTGTACCATTTGCTTGATTA -ATAATATTTTCAGCAGCAGTTACCGCATTGTTGTATGCTGTTTGTTTTTCTGGATCTGCATCTGTAAAGT -TAACACTTTGTTTCACTTGATCTTTGTCTTGGATTCCGTTGATTAAACGTTCCATTGCTTGATCTAATTG -TTCAGCTTTAGTTTTCACTTGACTTACTGTGCTAATATTTGGTGCATTTGTCACTTGCGTATTTAAATCT -TGCTTTTGAGCATTATTTAAATGACTTAATTGGTTGATGTTGGCAGTTGTTTCTTGCTTTTTATTTGCTA -AGTTTTGTGCACCATTAAGCGCAGTTTTGTTAGTGTTCACTTGATTAGCTGCTTGTGTTACTGCAGATGG -ATCAAGTGTCGGCTGACTCGTTGCATTAATGATATTTTCAGCACTTGTAACAGCTGTGTTGTATGCATTT -TGTTTATCTCTATCTGCATCAACATATGGTTGACTCGCTTTTACTTCATCTTTATTCGCAATACTATTTC -GAAGTTGATTCATTGCATTATCAAGATTTGTCGCGTTGTCTTTCACACTTTGAACGCCAGTTACTTGTGT -CGCATTATCAATTTGAACAGTAATACTTTGTTTTTGTGCATCAGATAAATGTGTCATTTGACGTAATGCA -TCTTTAGCCTGTTGCTTCGCAGTTGCTAAGTTTGTATCACCGTTTAAACCTGTTTCAGCATTATTGACAC -GTTGTGTTGCTGCTGTAACATCTGCTGCATTTGTAATCACATTAGGTGAACCATTTACAATGTTTTTCGC -AGCATTATATGCATCAGTATAAGCACCTTGCTTATCAGGACTCGCGTTAGTGTAATTACCACCAGCTACA -ATTGTGTCATGATCAGCAATTGCTTGTTTTAATTGATCCATCGCATTATTAAGTGATGTAGCACTATTTT -TCAGATCAGTTACACCTGATACACGTTGCGCAGCATTCACTTGTTGTTTTAATGCTGTTTTTTGTGGTGT -ATTCAAATGTGTCAAGTTATCGATAGCTTGCGTAGCTTCAGTTTTAGCACGTTGTAAGTTTGCGTCACCG -TTCAAAGCATTTTCAGTAGACGTTACACTTTGAATTGCTTGTTCAACAGCTTGCTTATCTTTATTCGCAC -CGTGATCTTTATTTAAGTATGATTCTGCTTGTGTGATGGCATTATCAAATGCTGTTTTGTTAGTTGGATC -TGCGTCGATGTAATTTTCGCTCGCTTTAGTTTGATCTTTATTTGCGATTGCTGATTGTAATCGTTGCATT -GCACCATCTAAGTCTTGTGCTTTCGTTTTAACACCATTTACACCGTTGACTGTTGTTGCGCCTTCGATTT -GTGATGTTAAATCTTGTTTTTGTGCATTATTTAAGTGTGTTAATGTGCCTAAGTTTGCTTTCGCATCTGA -TTTTGCTTGTCTTACATTTGCGTCACCGTTTAAAGCATTCTTAGCAGTCGTTACTTGATTTAATGCAGCT -TCAACTTGTGCTTTCGTCATATTTTGACCGTGTGCTTTATCTAAAATACCTTGAGCATTCGTAACAGCAT -TTGTGTAAGCATCTTTCTTACCTTGGTCAGCATCTGTAAAGTTCACTTGTTGTTTAACAGTGTTTTGGTC -ATTAATACCATTTTGAAGTTGACCCATTGCTGTATTTAACTCATTAGCAGTATTTTGTGCAGCAGTTACG -CCTGCTACTGTCGTTGCATTGTCAATTTGACTAGTTGCTGCAGTTGATTGCGCATTATTCAAGTTACTAT -ATGAAGCTAATGCACGTTTCGCAGTTTCTTTAGCTTGAGCAACTTTATTATCACCATTCAAGTCATTTTT -AGCTTGATTCAATTGGTTAAGCGCTGCTTGAACTTGTGTTTCATTCGCGTTGCTGCCATTAGCATTAGTA -ATTGCTTCTGCTTGTGTAACCGCAGTATCATACGCTTGTTGTTTAGGTTGATCCGCATCTGTGTAATTGA -CACTACGTTTCGTATTATCCTTTTCAGCAAGTGCATGTTTCAAATTACCCATCGCTGTATTTAACGATGT -TGCTTTATTTTTAGCCGCTGTGACAGCTGCAAGATTTGGTGCTTGATCCACTTCAGCATTTGCCGCAGTT -CGTTGTGCATTGTTCAAGTCTGTTAAACGACCGATGTCTGATTTCGCAGTTTGTTTTGCTGCTGCTAATT -TTTCATCACCGTTCAATGCAGACTTCGCACTGTTCACTTGGCTCGCTTTTTGATTAATCGTATCTGGATT -CATTTCAGGGTTATTCGTTGCACTAATAATACCTTCAGCATTAGTTACCGCATCATTGTATGCATTTTGT -AAATCTGTATTCGCATCATGATAATCTTCGCTCGCTTTAGTCGCATCTTTAGAAGCAATGCTTTGTCTCA -ATTGATTCATTGCTTCATTTAAAGTACCGGCATTAGCTTGAATACCTTGAACACCTGCAACAGTCGTACC -GCGTTCGATTTGCGATGTTAAGTTTGCTTTTTGAGCATCAGTTAAATGTGACATTGTCGCTAATTGTTGT -TTAGCTGTGTTCTTCGCTTGATTTAATCGCGCGTCACCATTTAATGCAGTTTTAGCAGTATTCACACGTT -GTAATGCTTGTTCAACGGCTGCTTTATTGTCATTTGTGCCAGCTGTTTTATCTAATAACGTTTTAGCTGC -TGTTACAGCATCATTGTATGCAGTTTGTTTATCACTATCTGCATCAGTATATTTCTGAGCTGCTTTTGTA -GCTGCTTCATCATTAATACCATTTTGTAAGTTGCTCATTGCTGTATTTAATTCAGATGCCGTTGCAGACA -CTTGATTTACACCTGCAACTGTTGTCGCACTATCAATTTGTGATTTCAACGCTTCGTTTTGTGCATTATT -AATTGATGTTAAATTATTTAATGCATTTTTCGCAGTTGTCTTAGCATTTGCAACATTTTGATTACCGTTC -AAATCGTTTTTAGCACGTTGTACATTTTGTAACGCAGATTCAACATTGTCTTTTGCAGTATTTGGACCTT -GTACTTTATTTAAAATTTGTTCAGCTTGCGTCACTGCATTTGTATATGCATTACGTTTCGCTTCATCTGC -ATCAGTGAAGTTAACACCTTGCTTAATCGTATTTTGATCTTGAATACCATTTTTCAAGTTCGTCATAGCT -GTATTTAATGCGTCCGCATTATTTTGCGCTTGTGTTACTTCACTAACATGCGTTGCACCTTCGATTTGGC -GTTTTGCTGCATCTTTTTGTGCATTAGTTAAGTCACTTAAGCCATTCAAATGTTGTTTCGCATTTATTTG -TGCGTTTGTTAAGTTTTCTTGACCGTTTAACGCTTGTTGTTTAGCTGTCACTTGGTCTTTCGCTTGATTG -ATTTCTTGAGCATTCATTGTTGGACTTGATGTTTGACCAATGATTGCTTTTGCTGCAGTGACTGCACTAT -CGTATTCACTACGATTATTAGGACTTGCATCCGTGTAGTTTTGTTCTGCTTTAATCGTCGCCTCATTCGC -AATGCTATCTCGTAGACCTTTCATTGCAGTGTTTAATGTTTGTGCATTATCACGAACAGTTTGAACATTT -GGCAACGTTGTCGCTTGACCCACTTGTTCTTTAAGTTTTGCTTTTTGCGGACCATTTAAAGAAGTTAAAC -CATCAATTGCTGTGTTGGCATTTTGTTTCGCTACTTCTAAATTATGATTACCGTTTAACTGCGTCTTCGC -ATTCGTTACTTGCGTTGCTGCGTTTGTAACATCTGATGGTGTTAACGTTGGTGTTGGTGTACCACTAACG -ATATTTTCTGCAGCTGTCACTTTTTCATCATATGCTTGGCGTTTATTCGCATCAGCATTGACATAGTTAC -CACTAGCTTTTGTGTCAGCTTTATCAGCAATGGCACGTTTTAAAGCTGTCATCGCAGTATTTAATTCAGT -AGCAGTATGTTCAACACCATTTGCTACAGATACGCGTCCTGCACTTGTTACTTGTGCTTTCAATGCTTCT -TTTTGTTTTGTATTTAAGTCCGAAGCATTTGTAATCGCTGTGTTAGCAGCCTGTTTCGCACGTTCTAAGT -TTTGAATACCGTTTAATGCAGTATTGGCTTGTGTAACAGCTTGCATTGCTCTTTCGACATCTGCTTTAGG -TGTATTACCGCCAGATGTTTTATTTAAAATTGTAGCTGCTGCATTTACTGCTTGAGAATAAGCAGTTCGT -TTCGCATCATCAGCATCTTGATAATTTTGACTTTGTAACGTCGTGTCTTTATCACGAATTGATGTTTCTA -ATTGACCCATAGCACCATCTAATTGTTGCGCTTTGGCTTTAACTGTATTAACACCTTCAACATTTGTTGC -TTGTGTAATTTCATTATCTAACGCTGTACGTTGTGCATTATTAATGTGTGTTAATGTACCTAACGTTTGT -TTCGCAGCGGCTTTAGCTTCATTTAATTTAGCATCACCGTTCAACGCTGTCTTAGTACTATTCACATTTT -GTAATGCTTGTTCAACTGCTGCTTTGTCTACATTTTGACCACTAGCTTTTGTTAAAATTGCTTTCGCTGC -ATTTACTGCTTGATCATAAGCTGATTTCTTACTTGGCTCTGCATCTAGGTATTTCTGAGTTTGTTTTGTT -TGTGTCTCATCATTGATACCATTTTGTAAACTGTGCATTGCGTTATTTAATTCAGTTGCTTTGACAGTTT -CTTGATTTACACCAGCTACTGTTGTTGCACCATCAATGCTACGCGTTAACGCATCTTTTTGTGCATTGTT -AATTGATGTTAAGTTATTCAAGTTGTTTTTCGCAGTTGTCTTAGCTTGAGCTAAGTTTTGCGCACCATTT -AATGCTTGTTCTTTAGTTGTCACTTGCGATGTTGCTTGCGTAATAGTATTTGGTTCCATCGTTGGGTTCG -ATGTTTGATTAATGATTGCTTTTGCTGCAGTAACTGCGCTGTCGTACTCGTTACGATTATTTGGACTTGC -GTCAGTGTAGTTTTGACCTGCTTTAATTGTTGCTTCATTCGCAATACTATCTCTTAAGCCTTTCATCGCT -GTATTCAACGTTTGAGAACTATTTTTAACAGTTTGAACGCCATCTAATGTAGTTGCACTTTGAACTTGTT -CTTTTAATTTTGCTTTTTGTGCATTATTCAATTGCGCTAAGCCATCAATTGTATTGTTGGCATGCTCTTT -CGCAACACGTAAGTTGTTATCACCATTTAATACTGTTTTAGCTGCATTCACTTGTGAAGTTGCACTATTT -ACGTCATTGACTGTTAATGTCGCATTCGGTGTACCATTAATGATATTTTCGGCGTTAGTCACTTTTGAAT -CATACGCTTGACGTTTTTCTTGATCAGCATTGACATAATTTCCGCTTGCTTTTGTTCTTTCTTTATCAGC -AATAGCTGCTTTAAGTACTGTCATCGCGCCGTTCAATTCAGTAGCTGTATGTTGAACGTTATTTGCATCA -GATACACGTTGTGCATTGTTAACTTGTGTTTTTAATGCATCTTTTTGTTTTTGATTTAAGTCATGTGCGT -TATTAATTGTGTTCGTCGCATTTGTTTTAGCTTGAGCTAAGTTTTGTACACCATTTAACGCTGCTTTTGT -TGTATTGACTTGATTTGCCATGCCATTAATCGCATTAGCATCCATATTTGGATTGTTCGTTGCATTAATA -ACACCATTTGCATTATTTACAGCAGTATTGTAATTATTTTTGTTGATATCAGATGCATCAAGATAATTTT -GACTTGTTTTCGTCGTATTATCATTTTGGATACTTGTACGTAATGCACCCATGGCAGTATTTAATGTATT -ACCTTTATCTTTAACACCATTTACACCAGCTACATTTTGCGCTTGTTCAACTTGATGCTTCAAGTTGTCT -TTTTGTAATTGTGTTAAGTGTGGTAAACCATTAATCGTATTAGTTGCTGAAGTTTTCGCATTTCTTAAGT -TGTCAGCACCATTTAAAGCCGCTTTCGCTCTTGTAACTGCATTTAATGCATTATCAACGTCTGCTTTAGA -TGTGTTACCACCAGTTTGTTTATTTAAAATGCCTTCAGCCGCTGTGACAGCTTGCGTATATGCATTTCGT -TTTGATTCATCCGCATCAAGATAATTTTGATTTCTTAATGTCGCATCTTTATCATTGATTGAACCTTGCA -AGCTATTCATTGCGCCGTCTAATGTATTGGCATTTGTTTTCACAGTATTAACGCCATCAACAGTCGTCGC -TTGATTGATTTGGCCTTCTAAGTCAGTACGTTGTGCATTCGTAATATGGTTTAAAGTGCCTAAGTTTTGT -TTAGCTGCCGCTTTCGCTTCTGCCAGTTTAGCATCCCCATTCAATGCATCTTTCGTACTTGTTACTTGTT -GTAATGCACGGTCAACTGCTGCTTTATCTGAATTTGATCCAGTTTGTTTATTTAAAATTGCTTTCGCAGC -AGCTACAGCTTGATCATAAGCAGTTTTCTTACTTTGCTCTGCATCACGATATTTTTGAGTTTGTTTTGTT -GCATTTTCATCATCAATACCATGTTGTAATTGACCCATAGCTGTATTAAGTTCATTTGCAGTTTGTTGGA -TACTTGTTACATTTGCAACACGTTGCGCACTTGTAACTTGTGCTTTTAACGCATCTTTTTGCGCTTTATT -TAAGTTAGTAGCACCATCAATCGCATTTGTTGCTGTTTGTTTCGCTTGCGTTAAATTATGTGTACCATCT -AATGCATTTTTCGTTGATGTCACTTGTGTAGCGATTTGGTTAATTGCATTAGCATCCATATTTGGATTGC -TTGTTGCATTAATGACACCATTAGCACTATCAACAGCATTGTTATAGTTTGTTTTGTTACTTTCTGTAGC -ATCAAGATAGTTTTGGCCATTTTTCGTAGCTGCGTTATCTTGAATGCTATTTCTTAACGTACCCATAGCA -CCATTTAATGTGTTGGCACTTGATTTAACAGTATCTACACCTGCAACATTTTGTGCTTGTTGCACTTGTT -GTTTCAATTTATCTTTTTGAGCAGTTGTTAAATGTTGAAGTCCGTTTATAGTAGTGTTTGCATTTGATTT -AGCTTGCTCTAAATTATGGTTACCATTTAGGGCACCTTTCGCATTTGTCACTTGTGACAACGCGTTTTCA -ACGGCAGCTTTGTCTAAATTTGATCCACTATTTTTATTTAAAATATTTTCTGCGTTCGTAACGGCTTGAG -TATAAGCAGTTTTCTTATCTGAATCAGCATCATGATAGTTTTCGCTCGCTAAAGTATTCGTTTTATCATT -AATACCATTTTGCAAGTTAGCCATCGCTGTATTCAATTGCGTACCTGTATTAGATACCGCTTCAACACCA -GATACTGTTGTTGCTTGATCAATTTTAGTTGTTAAGTCACGTTTTTGTGCATTATTAATTGAAGTTAAAT -TATTTAATGCATGTTTAGCTGCATTCTTCGCATTTGTGACATTTTGATCACCATTCAATGCATTTTTAGC -GCTAGTAACACTTTGAATAGCCGCTTCTACATCTTGTTTAGGCGTATTTGCACCTTGCGTTTTGTTCAGA -ATTGTTTCTGCTCTGCTTACCGCATTTGTATACGCATCACGTTTGGCTTTATCTGCATCAGTGAAGTTAA -CACCTTGTTTAACTGTGTTTTGATCATGGATAGCTTGTTCCAAGTTGCCCATTTGCGTGTTTAACTCAGT -TGCTGCATTTTTAGCAGCTGTTACCTCACTCACATGACCTGCACGATCAATTTGTGATGAGATTGCAGAT -TTTTGGTTATTTGTTAAGTGTGATAACGTATTTAAGTTTTGCTTAGCAGTGTTTTGTGCATTTCTTAAGT -TTTCAGCACCGTTTAAACCATTTTTAGCATTATTCACTTGTGTTGTAGCTTGGGTAATCGCACTAGCATC -CATAGTCGGATTGTTAGTTTGATTAATGATACCTTTCGCATTTGACACAGCGCTATTGTATGTTGATTGG -TTATTCGGACTTGCGTCTGTATAGTTTTGACTTGCTTTGACTGTTGTTTCGTTAGCAATACTATCTCTTA -AGCCTTTCATTGCATTGTTCAATGATTGTCCATTTGTTTGAACAGATTGTACGTCTTCTAATCTATTGGC -TTGTCCCACTTGTTCTTTTAATTTAGCTTTTTGAGGTGTATTTAATTGCGTTAATGCATCAATAGCAGTA -TTGGCGTTTTGTTTTGCAACACGTAATCTTTCGTCACCATTTAATTCTTGTTTTGCGCTGTTTACTTGAT -TAGCTGCAGCTGTTACTTCTGAAGGTGTCGTAACAACCGTTGGCGTACCGCTAATAATATGTTCAGCATT -GGTAACTTTAGTTGTGTAAACATTTTGTTTAGTGCTATCGGCGTTAACAAATTTACTGCTTGCTAACGTA -GTCGTCTTATCTGCGATGGCATGTTGTAATTGACCCATTGCCGTGTTCAGTTCAGTCGCATTACGTTGTA -CATCTTGTGCATTAGATACGCGTTGAGCACCATTAGCTTGTGCTTTTAATGCATCTTTTTGATGTTGATT -TAAATCAGATGCGCCATTGATTGCTGTAATCGCTGCTTGTTTCGCATTATTTAAGTTTTGCGTACCATTT -AATGCATGTTTCGCACTATTAACATTATTAAGTGCTTGTTCGACTGCAGTTTTCGCTGTATTCGGTCCAG -TTTGTTTATTTAAAATTGTTTCGGCATTTGATACAGCTTGATTGTAAGCATTACGTTTTTGCTCATCAGC -ATCTAGGAAGTTTTGGCTCGCTAATGTTCCTGACTTATCGTTGATAGCCGTTTGTAAGTTACCCATAGCA -CCATCTAAACTATTCGCACTTTGCTTAACAGATTCAACACCAGCTAAGTTTGTAGCTTGTGAAATTTGAT -TTGTTAAATCATTGCGTTGTGCTGTAGTGATATGCGTTAAAGTACCTAGATGTTGTTTCGCTGCGTTTTG -AGCTGCAATTAATTTGGCATCACCATTCAATGCATTTTTCGCAGTTTTCACACGTTGCAATGCTGCTTCA -ACTGCATTTTGCGCAGTGTTTGGACCATGTTGTTTATTTAAAATCGCTTTAGCTGCAGTAATAGCATTAT -CATACTCTTGTTGTTTATTTGTGTCAGCATCACGATATTTCTCAGATGATTTCACTTGAGATTCGTTGTT -AATACCATTTTGCAAGCTAGCCATAGCTTGGTCTAGATGTTGCGCATTTTGTTTTACAGTATCAACACTA -CTCACTCTTGTCGCACTACTAATTTGACTAATCAAATTGTTCTTTTGAGCATCAGTAATACTTGTCAATG -TGTTTAAGTATGTTTTTGCATTTAGTTTTGCCGTAGCTAAGTTTTCATCACCGTTAAGTGCCGTTTTAGA -ACTATTCACTTGCTCTGCTTTTTGTGTAATCGTACTTGGATTCATTTCTGGATTACTATTCGCATTAATA -ATCGTTTCGGCAGCAGCTACTGCGTTGTTATATGCTGTTTGCTTATCATTATTAGCATCTACGTAATCTT -CACTTGCTTTAGTCGCATCTTTGTTGGCAATACTTTGTCTTAACGTATTCATCGCTTGATCTAATGTATT -CGCATTTGATTGAGCCGTATGAACACCAGCGACAGTAGTACCACTATTAATTTGATTTGTTAAATGCGTT -TTTTGAGCAGTTGTTAAATGCGTCATATTATTTAACTGCTGTTTCGCTGTTTGCTTTGCTTGATCTAATA -AACGCGTACCATCTAAGTTATTTTTAGCCGAATTCACTTGATTCATCGCTTCTGTAACTTGATCCTTCGT -TTTATTTTGACCATTTGATTTGTTTAAAATATCTTTCGCTGCTTGTACCGCATTTGTGTATGCTGTTTTC -TTACTTGGTGTCGCATCTTGATAATTTTGACTATTTAATGTCGTTTGTTCATCATTGATTGCACCTTGCA -AGTTACCCATCGCTGTATTTAAATCTGTACCTTGTTGTTTAACAGTATTTACACCAGCAATATTTGATGC -AGCATTAATTTTAGATTTAACATCTGCTTTTTGAGCATTATTTAAATGTGGTAATGCATCAATTGCACTT -GCAGCATCTGTTTTAGATTGTGCTAATTTTTCATCACCATTTAATGCATTTTTATTAGTAGTAACAGCTG -AAGTTGCACTGTTAACATCATTAACAGACATCGTTGGATTTGTTGTTTGATTAATGATTGTTTCAGCACT -TGAAACGGCGCTATTATATGCATTTTGTTTAGCTGTATCTGCATCCGCATAATCTTCTGTACGTTTCACT -TGCTCTTTATCTGCAACAGCTTGTCTTAAGTTACCCATTGCACTATTTAAGTTAGTTGCATTTTGCTTAA -TCGTATTAACTGTCTCGATTTGATGCGCACCATTAATTTGCGATTGTAAGTTTTGACGTTGTGCATTATT -CAAGTTATTTAATTGACCTAATGCTGTGTTCGCTTCTTGCTTCGCAGCATTTAACTTAGCTTCACCATTC -AATGCCTGTTCTTTACTTGTGACATTTGATAAAGCATTGTTAACATCACTTGGTGTTATAACTGGATGTT -GTGCATTACCATTAATAATGTCATTCGCATGGTTGTATGCATTGTTGTAATCATTTTTCTTATTAGTATC -TGCGTTGACATAATTATCACTTTGTACGACTTGGTTATGATTAGCAACGCCACGTTTTAAACCTGTCATA -GCAGTATTTAAGCTTTGAGTCGTTTGTTTAATATCATTTACTGCTTGTACATTTTGTGCATTATTTACTT -GTTGTGTTAATGCATTCTTTTGTGTTTGGTTTAAATCACTTGCATGCGTAATCGCATTTGTTGCTTCTGT -TTTCGCACGTTGTAAGTTTTGTTGACCATCTAAAGCGCCTTTTGTAGATTTCACTGTTTCTGCTTTTTGG -TTCACTGTATTAACATCCATCGTTGGATTAGTCGTTTCTCCAATGACACCTTTAGCTGCATTAACTGCAT -TGTCATACGCTTGTTTATTAGCCGTTGTTGCGTCAGTGTAATTTTGACCTGATTTAATCGAATTATTATC -CGCAACACTGTCTTTTAATTTTGTCATCGCATTATTTAAAGCTGTAATGTTAGACTTGATCGTTTCAAGT -GCAGCATGATTTGGTGCAGCATTAATTTGTTGCGTGAAATTATTTTGTTGTGCTTGGTTTAAGTTAGATG -CACCATGTAATGTTGTAAACGCTGGTTGTCTATCTAATGTTAAACCTTGACGTGCTGTATTTAATTGATC -CTTAGCTTGGTTTGCCTCTGCCACTTTATCATTGATATTTTGGACCGTTGGGTTGCCATTCAACACTTGA -TTAATTTCAGTTAACTTTTGACGCGCTGCTTGTAATTTTTGGTTGTACGCATTTAACGAAGCGGTCGTCA -TACCTGTTGTATCCGTTGGTTGATTAATGCTTTGTTCTAATTGCGTTTTCGCAGTTTGAAGCGGTGCTTT -ATCTGGTGTTAAAGCTTGACGCGCATGATCCAAATCAGATTTCGCTTGATTTGCTGCAGACGTATTTGTA -TTAATTTGATCTACAGTAGGTGAACCAGCTAATACTTGATTGATTTGTTGAATCTTATTACGTGCAGCTG -TTAACTTCGCATTGTATGCATTAATAGAATCTTGCGTCATACCAGTTGTACTTGTTTGCGTATCAATACT -TTGTTGTAGTTGATTTTTCGCATTTTCTAAAGGCGCCTTATCTACTGTTAAGCCATTGCGTGCTTGATCA -AGTGCTGTTTTAGTAGCATTCGCTGCTGTCACGTTTTGTCGAATTGTTGCAACATCTGGATGCGATGCTA -GTACGCGATCAATTTCTTGAATTTTAGTTCTAGCTGCTGAAAGTTTGTCATTAAATGCAGCAACTGATGC -ACTTGTCATACCTGTCGTGCTCGTTGGTTGATCAATATCATTTTGCAACTGAGTTTTCGCAGCTTGTAAT -GGTGCCAAGTCTGGTGTTAATCCGGCAATAGCTTGTTTTAAGCCATTATATTTTTCTTCTACTTTAGTTT -TTTTTGCGGCAATTTGTTGGTCTGTTGCGTCACCATTGTTAATAACATTTTGTGCATTTGTTGATTCTGT -TTGACCCGCACGTTTAGCATTTTCATATGCTTGGATTGATGATTGTGTCATACCATCAGTAGTTACTGAT -TTATTGATTTCTTCATCAAGTTTCGTTTTAGCAGTTCTTAAAGCACTATTATCAGCTAAAGGTACTAATT -GATTAATAGCTAGCGTTAATCGGTCATTTACACGATTTACATTCGTTAATGCTGTTTGTACCTCTTGCAC -TGATCTAATTGGCTTCTGAATAATAGCGTTGGCACTATTTTTAGCACTTGTTAAGTCACTTTGAAGTGCA -CGAATCGAATTATTGTATGCAGTGATACTTGCTGGTTTCTTACCTGTCGTTGTACCTGTACGATTCAATT -GATGTACTGCTTGCTCTAATTCATGTGTATCTGCTGTTAAATTTTGTTTCGCTTGGTTTAATGCTGTTAA -TGCGTTATCGACACGATGTTTTTCATCTGAAATTTGTTGTGCTGTTGCGTCACCATTATCAATGACACGT -TGAGCTGCTGTAATTTCAGATTCTGCTTCACGTTTCTTCGCATTATAGTTATCAATACTTTGTTGCGTCA -TACCAGTAGTTGATGGTACTTGGTTCACAGAACTTTGTAAGTTATTTTTAGATGTTACTAATTGGCTATT -ATCTTCTTTATTTTGAAGTAATGCTTTAGCTTCATTTATCTTAGTTTGTGCAGCTTGAACTTTAGATAAT -GCTGCGTTCACTTGTTGTGGTGTTGCACGCTCATCATTAATCACTTGTTGCGCTTCTGTTTTCGCAGTAT -TGATTTGTTGTTGCGCATTATGAATTGCATTATTGTACTGCGTAATTGTACCTGGCTTTTTACCATCTGT -ACTCACTGGATCATCTAAATGATTTTTAGCTGTGATTAACTCACGTTTATCCGCTTTTGTGAAAATGGAC -TCTTGTACTTCTTCAGTACTGCTATCATTGTAAGTTACTGTCACAGGGATCGTCGTTGTACTACCACCAG -CTAAATTAGTAGGCATTGCTGTGCCATTTTTAATCGTTGCAGTACGTTTATTAGCAACTTGAACTGCATT -GTTAATTTCAGCTGCTGTTACATTTGAACCATAATCTTTTACAATTTCAGTTGTGTTGACAGTATGTGCT -GCCGGTGCAGTTAATGTACTTGGATTACTGCTTGCTGAGTGACCAGTACCTGCTTTCGGTGTAATGGTGA -TTGCTGAATTTGGCTTAATAGTATTGGCATTGAACGTCACTTTACCAGTATGTGCATCTAGCGTTACATA -GTCAGGTTTATTGGCGATTGTCCATTGATTATTTTGACCACGAACAGCATTAAGTGTCTTACTATGTTCT -GCACCATTACCCACTTTTTCAGTGTAAGCAATATCCATTGCTTGAGTTGGATTAATTAAATGTCCAGACG -GGTTATTAGGCGTGATATCAACATGACCATTTTGCCAAATCTTAGTAGTCGCTTGGTTCGGTTGAGGTGC -GACAACTGTGAAATCATCACTACGTTGTTCGTCACTGATTGTTTCACCACTACCTTGTGTTGCAACAGCT -TGAATTGTATCAGCAGGATTGAAAGTACCAGCTGCAACAGTAATACCATTATTCGTTCCAGCAATACCTG -CTACATTTGCTGCAGATGCTTCTTTCACCCATGGACTCGTATTATTATGACGAGTAAATGTCGTCACAAC -ATTACCATTACGTTTAATAACTAATTTATCAGCGTATGTCGTTACGTTACCGGCATGTGTATTCACTGTT -TGGTTTGCTCCAGGTGCAATCGTAATTACTCCTGCTGCCGTTTCTGTAACAGTTGGTTTCGCTGGTTGAA -CATCTTTTACTACAAACTTCGCTGGTAGAGATGTTGCAAATGTATGTCCATTATAGATGACATCATATTT -TGCATTAATGACTTGTGCAGTATTTGGTTTATTCATTGCTGCCCAGTTTGCATCGTTTGTACCTGTTGCT -GCATTATTCCATTTATACGTAAATCCATCTGTTGGTAAACCAGTAGCATTTTGTATATGTGCATATCCTG -ATGCTTGCGTACCACTTGCTAAAGTGCCACCAACTGTTGTTGTATAAGAAGTTTGAGGGAATTCAAATTG -ATATACATTCACAGTAACAGGTACACGTTTTGCAGCTGAAATACCTGGATATGTTACATCGACATTTAAA -TGTTGAACGCCTGCTTGTTGGTTATTTGGTTGTTGTCTATTTGCCCATACTGCAGTGATACCATTTGTGT -TTGTATTTGGATCAAATGTAATGTAGTTTATCGCATCCGTTCCATTAGTCAAATTTTGACCTTTAACATC -ACGAGATGGCGCTTTGGCATTAGCAACTGGATAAACTTTGACAGGTACTTCTACATTACGTGTCCCTTGA -CCATTTGGTAATGTTACAACCGCAGTTTTATGAGTGTTTCCGACTGTATTCTTCCATGTATCTGGATTAT -CATGCCATGCAACCGTTGCCCCATGTGGTGGATTTTGAATAAATCGTTCTACATGACCGAAATCAAAACC -GTCGCCACCTTTAATAAATACAGCGCCTTCAGTAGTCGCTTGTAATTGAGGTGTCACATGTACAGAAGCA -CTGTCATTTGAATCAACAGATTCATTTCTTGTTACATCTATAGCTCGTCCATGTTCGTCTTGTGTCGTAT -AAGTTACATTATTCATTGAAATCGAAGATCTTGCTTTAATTTCACCATTTGGTAACGCATCACTTACAGT -AACTACTGCAGTATTTCCACTACCATAAGTCGTGTTAGTAATTGTTAATGGTGTATTATCTGCTTTAAAT -AATTTAATAGAAGAACTACTTAAAACATTATTAATCTTGATTTGTTGGTTAGTTAAGCCTGCTTTGTATG -TCACAGAGTTTCCGTCAATTCTCGGTGGATCAGGCTTAACTTTAGATAAAATCTTGATAATTTGTGTTTG -GTGATTATCATAAGTAACTCGGATATCCCTTGTTGAAATACCTACTACATCTTTACTTGGTCCATATGAA -TTTGTAAATTGGAAATTCATATGTTGCGCATTTGTCGACCAAGAATTATTTACTGGCTTAACATATTGTT -TCGCATCATACATATCTGAAACACCTGGGTATAAGACACCTCTGGCTGTTTCAAAGACTTGCTTTGGTAC -AGTTCTTACCACTTTATATGTTGCTGTTTTCGTAATTGGGGTTGTTTCACCATCAATTAAGATATGTGCA -GTTACATTGATATCTTGACCTATAGTTGTATTATTTTTGTTTGGCGCTTGACCACTTACCCATGTTATCG -TCGCATCTGGAATGGCACTACCATTCGATAATTTAAAGTAATCAGATGCACTTGCTCCATTACCTGTTGG -GAAGTCTTGCCCTTGTACAGTGTAATGCGAATGTGCAACGATTTCTGGAATAACACGCTTTACAGGTACT -GTCACTGTTGATGTTGTTCCATCTTGATAAGTAACAGTTACAGTTACTTGTGCGTTATTTCCTGTACGAC -TCACATTACTCACTGTTTTACTAGTGATTTCATTTGCACTTGCTGTTGCATAGTTTCTATTTGGTGCATT -GCTTGTAAACGTTAATGAATTAATAATTGCTGTTTGATCAGCTTGCGATACTGTCGCATTATTCGAAATA -TTGGCAATTCTCACTGGATTAGCAGCCGTTGATGATGTTCCAACTCGATATTTATCACGTAAAGGTTTAA -TTGTGACATTGAATGACGTTGTTGCAGTATTACCGCTTGTATCAGTTGCAACCAAATTAATTGTTTTATT -TGTAGTAGATGTCACATTTGGTGCTGTTGCTGAAACATGTTGATGATTATTATCAACAGTGCCTGTCAAT -TGTGATGTCGTTGGTACTGTTACAGATTGCACACCAAAATTATCATTCGCTGTAATCGTATTGGTAAATG -TTTCACCAGAGAATACTTGATGATTTGTGTAATTACCTACTGAAATCGTTGGATTTACTAGATCACTAGG -TACAAAATAAATGTTAATTGCTTCATTCGTATTGTCCGTATTTTGATTTAAATGTTCAACATATTGTTTT -GGTCCATATGGCGATAAGTATAACTGCGCTTTATAAACTGCATCAGCTGCATTATGCGTAGAATTATTTT -TTACTACATGATCTATTGTAAATGCACCCGCACCATTAGCTGCTGATTCATTAACACTAACGACAGTCGA -GTTACTGTGGTTCGCACGGACATTTGAATTTGTAACAGGTTGCCCACCAAATCCATTTGAAGGATTAATA -ATATCCATTATTTGAATGACTTGACCATTCAACGTAAATTGTCGTTGACCATCAGATGTTGGATTTGATT -GTGAATAACCAGTTGTTTTATAGTTTGGTCTACCACCAGCTTCTGCTTGTGCTTTTTCATTACCAGCAAT -GTTATTACGTAATCCAGGCACCGTTGTTGTCGCTTTTAACAAAGTTAAAATATCATTCGTCGTAATTTGC -GTACCTAATGTTGCATCATAGCGATAAATTAATGATTTATGATCATCAGACCATGATAAACCACCATCAG -TCGGTCTATTTGCAATTTTTGCGTTTGTCCATGTCACTGTATAATCTTGAGGGAAGTTAACCCAACGTAA -GAAGTTCATATTATTAAGATTTGATGTGAACGATTTCGTTAATCGACCTTTATTTATATTGACAGTAATG -GTACTCACATTAGAACCATTCGGTGTATTTGTTACTGAAATATCTCCTTCTGCAAATGAAATCGCATCTC -TATTGGCATTGATAAATGCTTGTTTCACTTTTGAAATTTCATCAGTAGTTATATCATATGTTGACATACG -ATATACACGTTGATCACCTTCTGGTTGTTTCACATCAATGATTTTCAAAGTGATATAGAAATCTTCAGTG -TCTTTATGATACGCATTTGTAGCAACTATATGATATAGCTGTGTGCCAGCGTTCATTTGACTAACTTCTT -GCGCAGTTGGAATCGTTCTATCCGATGTAATGTTTGTAAATGAACTGCTTGGAATCGCTTGTCCATTACT -TAAAGTGAAATATTGTTTGATATCTCCAATATTAAAAGATTGCCCTTTAGCAATTGTAACCGTTGCCGTT -TTAGCAGCATTAGCAGTTTGATATTCAGGCTTAACAACTGGTTCGTATGTCATCACGTTTGTCGCATCAA -GCGTAGTTGATGACCCATCACGATATTGCAATGTGACATTACCATGATTATCTACTGTAACTGGATTTGA -TGAAGCTAAATAACCTCTTATATTTTGGTTTTTATTCATAAACGCAGTAGTAATACGTTGCTTTTCATCA -CCAGTTAAAGCAGTCGGATTTACAACGACAACTTTTTCAGAATTTCCTAAGACAATTGGATGCGCATCAT -CACTAATTTTACCTACATGCACTGTCACATGTTTAGACTGACTATCATTCGTCGTATTATTGACATTGTC -GGTTGCTGACACTTTGAATGTAATATCACTATTATAGGCCTGATTCATAGAGACTCTACCTGAAATAGCT -AATGAGCCGTTTTTCTTGTCGGATTTAGTTAAATTTGATGTCCAACCACTTGGCAATGTCGTAATAGTTG -TACTTTTTAATCCAGAATGTCTATCTGAAACCCCCATAGTAAAGCTAACTTCATCGCCACGATAATATTT -CGCATTTAATCCAACTGGGTTATTAATTGTCGGTGGAATATCATCAGGTAAAATAGTTACTGCATTACTC -ATATTTGAGGCAACTACATTATTGTAAAATATTAACGCCCTAATTTGATTACCTACCGGAGGTATAAATA -CTACATAATCTTCTGGTCGTATCGTTATCGTTGAATGAACCCCATCAGGTGTACCCGTCGCAATTTTTGT -ATAACCTGATGGTATTTGATCTGCCTCAGAACCACCATCTCTTGTTTGAGACGTAGGTATAACTAAATAT -ACTAATGCAGATGGATCCAATGGAATATCCGTAACGGTTACAGGTACCTTTTGTAATGCTGTACCTCTTA -ATTCTTCTGCTGTTGTAGTAATTCTAGGCGTATGTGGCTTAACACGAATCTCGAATAATTGTTCTTTACG -TCCAAATCGTATTGTTCCAAAGTAATCGCCTGGTAATAAATTACCAACCAGTTCAATATTACGTTCTCTA -GCATTATTAGTTCTATTTGTTGAATTCTCAATGTGTAATGTACGTGGAATACCTGTAATTTGCCAATCTT -TATCTGTAAAGTTTTCATTACTTGTTAAATTAATACGTAACGGTTGTATAGATGTTACACTACCACCTAA -GTTTACTGAAGCATTCCCTTGATTACCTGCATATACATAGAAAACCGGATGTCCAGCTTGTTTTGAAGCA -GGTTTATCAGCAATATTTTGACCGTCATCATTTTTAAAGAATTTAATGTTATGTTGAATTTCAGGTAATA -CTGTTAAGTTAACAGGCACTAAAGTTTCACCGTTACCAAAAGCATCAGGATAGTCGAAACCAATCATTAA -TCGTATTGGGCTGCCAGTTCTAGCTGCCTGTTGCAATTTATCATCAGTAAATAATTGACTTAATTGATAT -TCATTTAATGGATTGACTCCACCCGGTCTAAAAGCGTTAGTGTTTGCACTAGTTGGATAAAAACCTAATA -CTTTATTACTTGGTGTCTTAACATAACTTAATGGATCATCCATAAAGTCATCTATATTTAGGTTCGTACT -TTCTAATACCTTTTTTGTTTGTACATTTCCTTGACTCACTTCTACTCGTTTAGTTGTACCTATACGATAA -GTACGATTAACCACTTGTCTTAAACCATTAAGACGTTGTTGATAGTCTTGTGTTGATTCGACATATAACT -GACTATACATAAATAATTGATTGTATTCTAAAGCACGCCCACCTGCTGCATAGTACAGCTTATCAATTGT -TGGACCTTGCGTTTTAAATGAAATCGTATAACTTGCATCACCTTTACCAATAAATGTATAAACTTTTGGT -ACACCAGGTGATTCTGTCGGCCTTTCACCATTAATATATTCGAATGTTTGTCTACCAAAAGCTTTTGTAG -CAGGTGTTGCTCCAGCTTCACTAAAATAGTCACTTGCACGTGCTAAATCCTTTAAGCTATTAATATGGAC -AGTTGGCCAATCATAAATCACCTGCCCACTCCTATTTCTAATTTTGTAGTCCCACGAACGTGAGTCGTTT -ACCCCATATGGCCACATTTCTGGAAGTGGTTTGTTCGCACCGGCTCCTGCACCGTTACTCCATTGTACAT -TTGTGCCGTCTGCATTCACTGTTACAAACTCCGTTCGACCAACTGGAGTTTGTCCGGCCGGTAGTGCAAA -CCAGTAGATCATATTTTCATGTGGTGCATGACCTTTGTTAAACTTAATCACCCATTGATAACCGTCTCCA -GTTTGCTTTGCTGTAATAAGTGCGATTTCTTTTGCGTCTGATGCTTTTAACGTATTCCATGGCGTAGTAG -GTAAATTATATGGTGCCCCCTTACTAGAAGCATTAATATATGTACCTACAGGATACCCAGAACCATCATT -AGCATTTTCAACGTAATATGATGAGTTTGCGTTTTGATAGTCTGATACTGATCTTGGTTCTGCAGCTCTT -GATTCAATCGAACGCGTTTGAATTCTACTTGAGCGTCGACTTGTTTGTTGACGTTGAGGCATTGTACGAA -TTAAAGCAACAGCTTGTTCTAATTCTTTGTATGCAAGTTGCAAGTCTTTATTGTTTATTGGATCATTACT -ACCTAATAACGTATTGATCTTGTCAAAAATGCCTTTTACATAGTTAAATGTCCCAGAATCTGCATTTTCG -CGGTCAATAAAGCGATAATCATGGTAATTAGCATCAAAAAATGCTTGTAATTCATTACGATCGTGTTGTA -CGTTACCACTATCTGATGAATCTGAAGCTGTGACTACATTTGCTTCATGACTTTCTACATGTGTCGCTTT -ATTGTCGTTTTCCTTTTTGTTAGCAGCGCGACTTTCGCTTTGTTCATGCTTACTTGCCGCTTTAGCCGAT -TGTGTTGGCGTAGCAGCTGCCGTATCTTTCTTTGCTTGCTCATTTTGAGATACTGGTTGGTCATGTTCTG -TTGTAGATGATTGTACTGCACTAGCATCTACATGGTTTGTTTGATTATTATTTGGTTGTTCATTTTCAAT -AGGCGCAGATAATGATTGACCATTTTGTGAATTTTGAACTTCTACTTCTCGATTCTCAGTCTGCGTATCA -CCATTTTGTTGTTTCTGTTTTAATGCACTAGCTGGTTGATTTGTCTCAGCAGCTTGTGCTTGTGATGTGT -TTAATCCTAGAAATACTAACGTCGCAATGACCGTCGAGAATGTTCCAACGGTATACTTACGAATACTAAA -CTTTTGAATTTTATCACGATAATTCACAGCTATTGTTCACTCCTTATCTTGTTGTTATGTCTCTGTTGTG -TTGTGAATGTATTTACATTTGATTTCATGTGTATTGTAATGCTCATTCCATTCTCATTTAAAAATTTAAA -ACAATGACGATTCAATACAATTTCGCAATCTATCTAAAAAGTATTTAAATACATTACAACTATGTGTTGA -ACAATTTATTTATTCTCCAGAATATAATAACACAAAATATATTGGTAGGTAAATTGAATTTGTGACAATT -TATAATAATTATAAATAAAGTAGTGTAAAAGGGTAATAAAAAACCGACCTTATGTAGAATCATTTATAAT -GATTACACATAAGAATCGGTTTATATTTTTGTTTAATATTGTAGCGACCTTTATGATTTCAATTTAATTC -TCAATTATCATAATTGAGTGTCGTTTTGTTTAGGCACAAGTAACAAAATGATAACGAATGATAAAATTCC -CATACCTGCGTTTAACCATAATGCAATCATTGCACCAGTATCAATGTTTGTCATATTTGATACGATTGCA -TAAACTGCACCACTCAATGCGACGCCAAATGCTCCTCCTAATGCAGAAGCCATTTTATAGATACCTGCAG -CTACGCCTACTTTTTCTAACGGTGCATTTGCAATTGCTGTATCTGTTGATGGTGTAGCATATATTCCTAG -TCCTAAACCAAAGAATAAATAACCTATAATACAACAAATGACATATAATATTTCTGGCAAAAATGTTAAT -GAAATGAGACATTCTCCGACAATAAGAACTGCTGTTCCAATTAGCATTGGTTTCTTGCATCCGAATGTTT -GAAGTAACTTTTCACCAACACGAATCATAATTAGTACCATTACTAAATAAGTGATTGATAAACTTCCTGC -TTGCAAGGAAGAATATCCTAAACCTCTTTGAACAAATGTGTTGGCTACTATTAATGTTCCTGCAACACCA -TTTAACAAAAAGTTTGAAGCTGTTGCACCTGTATAAGCTTTATTTTTAAATAATTTAAAATCGATTAAAG -GATTTGTAGCACGCTTTTCAAGAACTATAAATAAACTAAAAGATACAATTGCAATTGCTAATATAGTGAT -AAAAAGAAGTGAGGTAACACCTAATTCTGATCCTTTAGTAATTAAAATATTTAAACTGAGAAGCATAATG -ACTAAAAGAACCAGACCTTTAATGTCAAATTTATTTAGAGAAATCGATTTAGATTTAGTTTCAGGTGTGC -CTTTAATAAGAAACAGCGCAATTAATGAAATTATAATTGATAAGATGAAAATCCAACGCCAACCTAAAAG -TGTTGCAACTGCACCTCCAAAAAATGAACAAACACCAGAGCCGCCCCATGAGCCAATTGACCAATAACTT -AAAGCGCGTTGTCTATCTTTCCCAATGTAATATGACTTAATAATAGACAAAGTTGCAGGCATAATACATG -CTGCTGAAAGTCCTTGAATTAATCTTCCTATAATAAGTAATAAAGGAATATTTGAAATAATGATTAATAA -TGAACCCAATATATTTAAGATAATACCAATGTTCGTGAGTTTAATTCTGCCATATTTATCAGCAAGACCA -CCTGCTCCTACTACAAACATTCCTGAAAATAAAGCAGTTATACTAACAGCGATATTAACCGTTCCAATAT -CTGTATTAAAACTATCTTCAAGTATTGGTACAACATTAACCAATGATTGTGCAAATAGCCAAAACGTTAT -TACACTTAAAACAATTCCTATTAACAACTTATTATTGCCTTCAAATGTCTCTCTTGACGGCTTTTCCATC -TCTATTTGCCTCCCTATACTTTTGAAAAACAGACAAATTCCATAACAGAAATTTGTCTGTTCGATAGAAT -AATTGAATGGTTTTTGATTTTAATGTGCAAAACTTTAAATTTATTAGTAGTCCATTCAATTATTCTCAAT -GCTAGTTATCTTACCTTATGCTGCTTTTTGTTTCTTCTTATAGTAATAAACTGGTATACCAAGTGCTGTT -ATTAGAATCCCAATAATTGCCAATATAAATTGTGTAAACAGTGTATTAATTAATACAAATGATCCTGCCA -AAATAGCAATTAAAGGTATGATTGGATATAACGGTACTTTATATGGTCGTTCCATATTTGGTTCACGTTT -TCTTAAAATTATTACCGCAACAAATGACATACAATAGAACAACCAAATAACAAAAATTAACATGTTTGTA -ATTGTATCAAAGGCACCCATTGACATCATGATGATAGCGATTATAAGTTGTATAATTGCGCCAAACCATG -GTGCACCAGATTTTGTTAATTTTGCGAATAAGTGGCTAAATGGCAATAATTTTCTTTCAGCCATTGCATA -TGGTACGCGCATACCAGTCATAGTATAGCCATTGATCGTACCATAAACAGATATTAATATACCGATTGTG -ATAATCTTACCGCCATTTTCTCCAAATAATATTTTTGATGTATCTGATGCTGCATTTAAATTTCCTGCAA -GTAGTTCTATTGGCAGTGTTAATAAGAATGTAGCGTTAATTAATAAATACACAGCCATAATACAACCGAT -ACCAACTGAAATCGCTAAAGGTAAATCGCGTTTAGGATTTTTAAGTTCTCCCGCAACATTTCCTACATGA -ATCCAACCATCATATGCAAACATAGTTGCTAATAAACCACTACCAATTGCTGTAAAGAAACCATTTCCTG -AATTACCTGTAGTTGGAATTAATGAAAAAGTGATGTCTCCTGATTGGAAAATACCAAAGATAACGATAAC -AATAATTGGAATTAATTTAATAACTAAGGTAACTGATTGTAAAATTCCGCCTGCTTTTGAACCTAGGAAA -TTTATCAACACAATAGATAACGCAGATGCGATTGCTATTGGTATTAATGAACCTATAGATAAATGGAATA -AATTAATTAACTGTGTCGCAAATACGATAGACAATGCTGCTACGTTTGCCGGAAAATAAATAAATGATTG -TGCCCAGCCTGATAGGAAGCCCCAGAAATCACCGTATGTATATTCTATATACTTTGTTAAGCCACCTGTT -TCAGGGATTGCAGCAGCAAGTTCTGCTGCTGTTAACCCCGCACAAATGGTAATGATGCCGCCTAGGAACC -ATACAAACAAGGCCATTCCTGCTGTTCCTGTTACTTCTGTTACGTTTGATATTTTAAAGAATACTCCTGA -ACCAATAACTGTCCCCATAACAATAGCAAACGCTGAGAAGAAACCTATATTTTTTTGTAATTCTTTACCA -TTTGACATAATTACACCTCATTTTTCAGATTAAATGTTTTAACCTACCACACCCTTGCTTGTATCTGCAA -TATTCAGTCCATGTTCAATGACACCTGAAACTCTAGTTAAGTCAACATTCCCGCCTGAAACTAAAGCAAC -AACATTTTTATCTTCAAGCCATTTATTGTTTATTTTTCCACTTAAAATTGCAGCTGTTGGTAATGCGCCT -GCACCTTCAGTAATAATTTTGGCACGCTGCATTAAATCTTTCATAGCATGTTCAATTTCTTCTTCAGTAA -CAAGAATAAATTCATCTACTAAATGTTTAACTACTTCATATGTTTGTTCACCAGGAACTTTTACATCACA -ACCATCTGCTATTGTGCTATCCACTCGATGTTCAGTTAAATCTCTCTTATAGAAAGACTCAGCCATACCA -TGAACATTCTCAGATTGAACACCGATAATATGAATTGAAGGGTTAAATGATTTTAATGCGGTGGCAATAC -CTGCAATTAATCCTCCACCGCCAACTGGTACGATGACTGTATTCACATTCCAAATATCATCTAAAATTTC -TAAACCAATTGTTCCTTGGCCTGCCATTACAAACTTATCGTCATATGGATGAACGATTGTCATGCCATTT -TCTTTCGCTAATTCTTCCATATAAAGTCTAGTTTCGTTAAAGTTTTTACCTTTTAAAATAACCTTTGCCC -CATAGCCTTTCGTTGCTTGTTGTTTCGCTTGTGGTGCTGTTTCAGGCATTACGATAGTTGCATCAATGCC -TAATAATTTAGCTGTTAAAGCAACACCTTGAGCATGGTTCCCAGCAGATGCTGCGATAATGCCTTTTTCT -TTTTGTTCATCCGTTAAGTGATTAATTTTATTGCTAGCGCCTCTAAATTTAAAAGATCCTGTGAATTGCA -TATTTTCTAATTTTAGAAATACATTCCCTTTAGTTATACTTTGGCTTAAATACATTGATTTAATTAGAGG -TGTTCGACGAATAAATGGTTTAATGCTTGCTTTAGCTTCTTCGATATCTCCTAAACTTACAATATGTGCT -GTTTGTAATGTAACTGTGTTGGTTGTCATAATAATTACATCCTTCCGTTTTGTAAATTTTTAGTCCAAAC -TATAATGCTATATTTAAAATATTCATTTCACTCAATTTCATTTAAATCACTATCTATTCGATAACATTTA -ATATTTCTTTATAATCTAGGTCATGTGATGTAGCTAATCCTTGGTTTGTCACTTGTCCTTGGTAAATGTT -TACTCCAGTACTTAAGGCTTCATTATCTTTAATTGCTTGTTCTAGGCCTTTGTCACAAATTTCTAATATA -TAATCAATATTTCCTTGTGCTAATGCCATTGTTGAAGTTCTTGGGACTGCTCCTGGTTGATTTGGTACAC -CATAATGAATCACACCTTCTTCTTCATACACCGGATCAGAAATTGTAGTTGGTCTAATTGTTTCAATAGT -TCCACCTTGGTCAATAGCTATATCGATTAATACTGAACCTTTTTTCATTGATTTAACCATCTCACGAGTA -ACCAATTTTGGCGGTTTCGCACCAGGAATTAAAATTGTAGAAATAAATACATCTGCTTTTTTAATTTGTT -CTGCTAAATTTTCTGGTGTTGATTTGACTACTGTGACATCTTTTTCTGCATACATATCTTCAAGATATTT -AATGCGGTCATCGTTTAACTCGATAATGATTACTTTAGCATTTAGTCCCAAGGCAACATTTGCTGCATTT -GTTGCTGCTACGCCACCACCGAAAATCACATATGTACTACCAGGTATATCCACATTTTCATGTACACCAG -TCACTAAAGTACCTTGACCACCATGTTGTGCTTCAGAGTAGTAAGCTCCCATAATTGCTGAGCGTTGACC -TGCTATAGCACTCATTGGCGCTAATAATTCTGCTTTTCCATTTTTTATAATGGTTTCACCACTAATCGCA -GTTACACCAACTTCTTGCATTTTTTCTACTATTTCTTTTGAAGATGCTAGATGTAAAAATCCCCAGATAA -TTTGATTCTTTTTGAAATATTGATATTCGCTTTCATGAGGTTCTTTTACTTTGATAACAAGATCAGCTTC -CCATGCTTGTTCGTGAGTTACGATCTTAGCGCCTTCTTTTTCATACATATCGTTAGAAAATCCTGAACCA -ATGCCAGCATTTTTTTCAACAATTACTTTATGTCCTGCATCCGTTAACTTACGCACATTTTCGGGTGTGC -AAGCTACACGTCCTTCACCTTGTTTTAATTCTTTGACTACTGCAACTAACATTTGCAACACTCCTCTTTC -ATTTGTGAATAATTTCACAATTATTTTATCCTTTGGTTATGAATATGTAAATACCATTAATTAATTATTC -ATATTTTATCTATAATTTGTTAATAAATATTTAATATATTATTATTATTCTTAAATATTATGTGCAATTA -TACCACTATATTTATTTCTTATACTCCATTTGATTTATAGTTGTATTAATACATTGACTCAAAAAATAAT -TAATCAAATATGTTTTTTAGATTAATAAAGTTGTAACTGTACTATTTTGTAGTGTATGGTAATTTATTTG -GATGAAATATAATTCTTTATACTCTATTGATTAATCAAATATGTATCTATCAAAATTCGGCTTATTTATT -CACTCTGACATATTCAAATACGCAAAAAGACTATTTCTACCTTGTATCGATAGAAATAGTCTTTTTATAC -TTAATTGGTTTAATTTTTCATAAAATCTTATACTTTTTAAAAATGGGATGAAATATATTTTCCTGAAACA -TGTAATTCATGTTCGTTACAAATTGATAAAATATGATTAAGCGTTGTTGCAAATGACATTTTCTCAAAAA -GCGCTTCACTATCAATTGGTACTTGTGTGTGAATTTCAGCAAGTCGCTTCGATAAATATAGTTCATCTAA -ATTGTCATTTATCTTATTACGTTGACCAGCTGATAATGCATCAATGTTTTCAACCACATTTTCAACGCTT -TGATATTGCTGAATTAACTTAATAGCCGTTTTCTCGCCAATACCTTTAACACCTGCATATCCATCTGCTG -TATCACCCATAAACGCTTTAATATCGATTAGTTGTTGTGGTTCAAGAGCATATTCTTCGTTAAAACGATG -TAATGTATATCTATTATAAATGTTAAAACCTTTTTTAATTAGCCAGACTTCAACATTGTCATTAATACAT -TGCAGTAAATCTTTGTCGCCCGTAATAATATAGACATCGTTATCAGTTGAATATTGTTGTGCTAATGTAC -CTATAACATCATCCGCTTCATAGTTTTTAACGCCAATATTTACAAAGCCAAATTGCTCTGAAATTTCTTT -AACATAATCAAATTGTGGTATCAATTCTTCTGGTGGTGCAGAACGATTTTGCTTATAACCGTCAAACATA -TCATTCCTAAAAGTTGATTGCCCCATATCCCAACATACAGCTACATGTGTAGGGCGTATTTCATGTATTG -CCGAAAAGATATGACTCACAAATCCTTGTATTCCATTTGTAGGTACACCTTGTGAATTGTACATAAATTG -TTTATGAAGACTTGTAGCGTAGAAATGTCTAAATAATAGCGCCATACCATCTACAAGTAATATTTTATTT -GGCATTTAAAACGTTCCTTCTTTCTTAATATAAAATAGTTTTCAGTTGTTGATGTTTATCTTTCAATTGA -TTGATAAGTGTTGTATCTAAATCAAATGCTAATAAATCGTTTATTTGCGTTTGAATATTAGCTTCAAAAC -TTTCAAATTGCGATTCAGCTTCTACAGCCATTTGCTTTACATATAATTCAAGCTGTTGCCTCAATAATCC -CATTTGTGGTTGTAATAATCCTAACGTACTTTGACAAATTGATTCATGTATATCTCTTTGCCCATTTGGA -TTCAAAATTTTACGTTTTGTTAATTGTTTAGGCAATGCATTTAGCATATCGTTGAAATCAATGTGCAATA -ATGGTTGCTCTATATTAGCTGATTCAAAGTTAAACTGAGGATTAACAATGACATGTAAATCTGCTAATTG -TTGAACGATTGGTGCAATTTGCTCAGTGAGTTGATTTTTAAAGTATTTTTTTATACGTTCTGTAATTAAA -GATTGCTCTAAAAACAATCGTTGATGAATTTGATCTAAGTATACTTTCGTAGACACTTTCTTTTCTTCAT -TAAAATCACTATTTTGCGTCATTTGAGAATTAAACACTGATTTAATATCGTCTAGTAGTTGTAGTTTTAA -ACGGGCATTTAAATGATAAACTTGTTCTTCAACTTCGTTGTCTGTATGTTGTAGCGTCGCATCAATTAAT -TGATGTTGTAAACGCTGTTTATCTTTATAGACTGTTAACCTATGTTGGCGACGTGAAATATCAGCTTTAT -TTGTTTCAAATTCTGTAATCATCTCTACATAAGAATGATCCATTTGTTGAAGCTGATGAATCATTTGTTG -TTCTAAAATTGATTTAGATTCAACATCAACAAATTGTTGTATGCTTTGTTTTAATTGATCAATGCCCTTA -TCTTCAGCTTGCAATGCATTTCGACTTGATACAGCAAAAATGTCTGATTGTAAGTGTACTTGTCTTAATG -CATCTGATACATATGTTTCAACCGCTTCAAGATCATCTTGACTTTCTGCTAAATCAGCAGCATTAATTAC -CATTTTAAATGCTTGGTTTTCATTCAACTGGTTCATATCTTTCATGTGTTCTATAAACGCCTTGTCATTA -TCAGTAAACGAATGATTAAAATAACTTACATACAAGATTAAGTCTGAAGAAGTTAAAATTTGCTCGGTTT -CATTTGTATGCCTTTGGTTATTTGAGTGTAGCCCTAATGAATCAACAATTATTTTACCTTTTAACCAATC -ATGCATTAATGCAATGTGTACTGTTTTAACAAATGTTGCGTATTCATCTTCTGCACTCCACTTTTTCAAT -TCCTGTTGATTAATGGCATGTTTTTCTCCATTTTCCAACATACTGACATACAAATTATAATGTTTTTCAA -CTGCATGAACAAAAGCGAGTTGATTTTTATTTAAATGTGATTTTAACTTTTCTAAATCTGAATTAATAAA -GTCTTCTATAGTTGAAAAAGATATATCTTGGTATTCAACTACTGCATTAATTTCATCTAATAATTGCGAT -TGTGATTTTAGCGTTATATAACTCTCGTCTCCATAAGATATTTCTGTAGTAGCTGCTGTAGTAGGATTTG -GAGAACTAACTAAAATATGCTCGCCTAATAATGCATTTATCAAACTACTTTTACCCGCACTAAACGTTCC -AAATACACCTATTTTTATTAATTTATTATCTATACGTGTTAATGTTTCGTGGATATCCTGCTTTGTACGC -TTGAACAAAGGCACATCCGAAATTATATCAAGTGCTTTTTGAATATCTATAGACATATTTGTTGTAGCTG -TATTCTGATTTAGCTGCTGATTATCACGATTATCCTTAGCATTATCAGTAGCCACTTGATATGTTGTCTC -TTGTCGATCTACTAATTTATCTAGAGATTCATCTAAATGAATATAGTAATGACGATAATTCTTAGTCGTC -AATGACTGACGCAGCTCATTTAATTCTGTATAACGTTGATATTCTTTTAAATCATCACTTTCTTCTGTTG -GTAATTCATCTGCCTGCACATTTTCTATTATTTCTTTAAAAATTGGTGTTGATTGTTGTTCAACATATTT -CTTAATGGCTTTAACCACTTCGTCTGAAAATGTAAGTACATAAGTATTGCTGATTGATGTTTGTGGTTGA -TATAAACCTTCAATCATTTCCGGCTTAACGTCATAATGCTGATTTAATACTTTATCTGAAGCTTCTTTTT -TATTGATAAAACGCGTAACAAATGACATATCTTCTCGCATTGGTTGACGAATTTGTTGATTAACATGTTC -TTGTAACGCATCTGTCGCTGTTAATAATCGCTGTTGTTGAATTTGAAGCTTTTTCTTCTTTTTATTAAAA -AGGCCACCAACATTAAAGTCTTGAGACATACTTTCCAAATAACTTCGTAACATTTCTCTCATATTATGCG -GCATAATGTATGCATTTTCTAAAATATTTTTACGCTTATTCTTTAAAAATGCCATTAATTCATCTGGATT -ATTTAAAAGTTGCGCCTCTTCACTAATTGCTTGATGTTGTTGACTATTTAAAAATGCTTGTTCAAACTCT -GCTTCTTCGATACCCAAATCTTCTAGTACTTCCTGAATTTCAGACTGAATGTAATCTAGCTGAGCTTCGG -TAATATATTCAACCGTTCTTGATGTATAATCCTCTATTGTTTCTCTATGTTGATCTAATGAAACTAGATA -AGTTGATAATGCTCCAAGTTCATTTTCAGAGTGATCAAATTTCGATACATAAAAGGTGTGTTCTAATTTA -ATGTCCCAATCTGCAATTGATTTTTCAACTCGAGATTTAAACGTAGCGAATGACAATTCATCGTCTTGAT -GCTTGTCAATTTGATTAATGATAAACACAACAGGTATTCCAACATCATTTATATGCTTCATAAACTTAAA -GTTAAGTTCAGATTGAACGTGGTTATAGTCAACCGTATAAAATATCATATTACTTGTATACATATATTGT -TCTGTTATTGACTGATGTGATGCAACATTTGAATCAACACCTGGTGTATCTTGCAACGTAAACCCATTTT -CAAATTTAGCTGATTGAAAATTAATTTCTACAGATTCAACGTCGACATTTTGGCGATTCATTTCCCTTAC -TTCATCATAATTAGATAATTTGGCATACGTTTGATTCGGCAAATTAGCAATAATATCGTGATTGTCTGAA -ACTGACACGATAGCAGTATTACTTGTCGTTGGTACAGGTGAACTTGGTAAGATATCTTGTTCAATTAATA -AATTTATCAGTGTCGATTTACCTGCAGAAAAATGTCCAACGAACGAACATGTATATTGCTGCAAATATAC -TTTCTTAATTACTTGGTTAATTGTATGTAAAAGTGCTTCATTTCGCGACTTTTCAACTTCTTTTTTTAAT -TTATATAAAAGATCTAATTGTTCTTTATTAATCATGTTACTTTCCCCTTTGGTTCGTTCACATAGAAATG -CTTGCTTGTTAAAACGAATTCATACAATATCGATGTCCATTTAAACAAAGGTCGTTGAATGGCTCGCATT -GTATTATGTTTAAATTTTATCATAGCTGCTTGATAAAACATATGAATAATCAATTTTCTTCAAACATTCC -AACTTAAAAGTTCATTTTTCTAAAAATCACAAATCATTGTTAAATTTTTCTAGAAAATAAATATTGTCAC -AGTTTGTTCACACACGTCACAGAATTGACACCGTATAATAGCCAATTGGGAGGGAAATATGAAAAATACA -TTTAATCCATTACAAAGATTACATTTCTACGCAGCAATATTTATTGCTCCACTGTTAATCACTTTAACCA -TTTCGGGCATTGGTTATTTGTTCTTTCCAGAAGTTGAAAATAATATTTATAAGAATGAGTTTTTTGGTGA -CAGTGATGTCAAAACGCATCAAACATTAAATGATGCAGTACATCAAGTTGAACGACAATATGAAGGATTC -TTTGTAAGTAAAGTTAGCATACTTGATGAACCATATAACAAACGAATTACACTGAGTGATATGGCAGGAA -ATCAGCGTTACGTCTTTCTAGATCATAACAATCAATTTGTTGCAGATCAAAATGCGAAACATACGTATTC -TAATGTGATGCGAAGTATACATAGTTCTTTGTTTACTGAAAATACTATTATTAATTATTTAGTTGAGTTA -ACCGCATGTTGGACGATATTCATGATTTTATCTGGTACTTATTTACTCATTAAGAAGCATTTAATTTCTA -ACAAAAGTAAGGCACTTCATTGGCAAAAGTGGCACGCAATGATTGGAATTATCATTGCAATTCCAGTATT -TGTATTAGTCTTAACTGGATTGCCATGGTCTGGTTTTATGGGCAGTAAAATTGCCGGTATGATGGACACA -AACGGTGACCTTGGTCAAGGTGAATTAGCGATTAATCCACCTAAATCAGATTTGAATGAATTACCTTGGG -CTACACGTAAAAATAAACAGCCAGCTTCATCCGAAAAAGGTTCAAGTGGTCATCATGGTAATGCAGCAAT -GCCTCAAACTAAATTAGATTATCAAATATCTATTGATAAGGTCGTTGAACAGGCGCAAAAATCTGGTATT -AAAAAGCCGTTTTCAATCGTATATCCAAGTGATAAAATTGGCACCTTTATTGTATCTAATACTAGTAATT -CAGGTGTTACTGGGCTAGATGTATCTCCTTACAAGGAACAAACACTTTATTTTGATCAATATAGCGGTAA -AAAGCTAGGTACGATTAAATATGATGACTACGGTATTATTGCTAAATGGTTTACGTGGGGCATTCCGCTT -CACGAAGGTCATTTATTCGGTATTGTAAACAAAATCATTAATTTATTTGTATGTATCGCTTTATTAGTAG -CCATTGGTATGGGATTTGTCTCTTGGATAAATCGTACAAAAAATACTGCAGTAAAAGTACCACATCGCGT -AAAAAAAACCAGCATCTATATCACTCATCATATGTTTAATTGTATTAGGACTATTAATGCCATTATTTGG -ATTATCACTTATCCTAGTATTTATAATTGAATTAATATTATATATTAAAGATCGTCGTGCTAAACAATAA -TGCACTTAAAGTTTTGAACTGACGAAATTTACAAAATGATTCTCTAATTACTTAAAACAGGTTCTATAAT -AAATCGAACTGATGGAGCTTGGGAGATAAATCAATGTTCTAGGGTCTATAATATTATATTGGCAGTAGTT -GACTGAATGAAAATGCGCTTGCAACAAGCTTTTTTCAACTCTAGTCAACCTTGCCGGGGTGGGACAACGA -AATAAATTTTGTAAAAATATCATTTCTGTCCCACTCCCATCTGTCCGATTTTTTGAATTTGAAGATAAAA -AAGCATCTAAAACGTATAAGAAGATTACTTTACTTCTTCCAAATTACGTTATAGATGCTTTTTATTAATT -CATATGCATGTCGTGAATTTTCATCATTAAACCGTGTGGGACGTCATCATGTTTAACAATCTCTTGTTTA -TAAAATGTCTTCCCATCATCTTTAGAAACTAATTTTACAAAGTCTCCTTTTTTCGGTTTAAAATCATTTG -ATGGTTCTACTTTGATATTATGTTTGACTAATCCATCTTTTTCACTGACAACTTTTTCTGCATTTGTATT -ACTATTCATATAACCAAAATAAGTCGTTTTTTGACTAGAAAAAATCATTAAACATACAACGGCAATACCA -ATAACAACCAATGCTATAGATAAACCTAGACCCATTTTTTTACCCATTTATAGACTCCTCCATTTTTCAA -AAGTACCTATTATCATGAGAACATAATTATTACTAGTTTTAGTCACGCATTAGAAACACTTTAGTTTTCA -ATAGTTTTACGTTCTGTCTTTTTACCCCAGTATTGATAATAAGTACATTCTATATATCCATTAAATAACT -TACGTCGCTTCGTTGCTTTACGATCTACTAAATATTCAAATTCTTTATTACTTGTTAAAATGTATGTAGA -TAAAAATGGATGTTGTTTCATTAGTTTACCAATATAACGGTACATTTCTTCAACTTCTTCACGATCACCA -ATACGTTCACCATATGGAGGATTTCCAATTAACGCAACCGGTTCTTCTGTATCAATTGTTAATGTATTGA -CATCTTTTACACTAAATTTAATAATATCAGACAACCCCACTTCTTCAGCGTTACGCTTAGCAATCTCTAC -CATTTCAGGATCGATATCAGAAGCATATACTTCGATTTCTTTATCATAATCAGCCATCTTATCCGCTTCA -TCACGGTAATCATCATAAATATTTGCTGGCATGATGTTCCATTGCTCTGATACGAACTCTCGATTAAAAC -CAGGTGCGATATTTTGAGCAATTAAACAAGCTTCTATAGCTATTGTACCCGAACCGCAAAATGGATCAAT -TAAAGGTGTATCACCTTTCCAGTTTGCAAGACGGATTAAACTTGCTGCCAACGTTTCTTTAATTGGTGCT -TCACCTTGTGCTAATCTATAACCACGTCTGTTCAAACCAGAACCTGATGTGTCGATAGTCAATAATACAT -TATCTTTTAAAATGGCAACTTCAACGGGGTATTTCGCACCTGATTCATTTAACCAACCTTTTTCGTTATA -TGCGCGACGTAATCGTTCAACAATAGCTTTCTTAGTTATCGCCTGACAATCTGGCACACTATGTAGTGTT -GATTTAACGCTTCTACCTTGAACTGGGAAGTTACCTTCTTTATCAATAATAGATTCCCAAGGGAGCGCTT -TGGTTTGTTCGAATAATTCGTCAAATGTTGTTGCGTTAAAACGTCCAACAACAATTTTGATTCGGTCTGC -TGTGCGCAACCATAAATTTGCCTTTACAATTGCACTTGCGTCTCCTTCAAAAAATATACGGCCATTTTCA -ACATTTGTTTCATAGCCTAATTCTTGAATTTCCCTAGCAACAACAGCTTCTAATCCCATCGGACAAACTG -CAAGTAATTGAAACATATATGATTCTCCTTTTATACAGGTATTTTATTCTTAGCTTGTGTTTTTTATACA -TTTCCAACAAATTTAATCGCTGATACATTAACGCATTTGCTTATCATTTTAAAACAAAGCAGTGTCATTA -TATCAAGATAAGGCGTTAATTTTAAGTGTTCTTTTCATGAAAAAAGCTCTCCATCATCTAGGAGAGCTAA -ACTAGTAGTGATATTTCTATAAGCCATGTTCTGTTCCATCGTACTCATCACGTGCACTAGTCACACTGGT -ACTCAGGTGATAACCATCTGTCTACACCACTTCATTTCGCGAAGTGTGTCTCGTTTATACGTTGAATTCC -GTTAAACAAGTGCTCCTACCAAATTTGGATTGCTCACTCGAGGGGTTTACCGCGTTCCACCTTTTATATT -TCTATAAAAGCTACGTCACTGTGGCACTTTCAAATTACTCTATCCATATCGAAAGACTTAGGATATTTCA -TTGCCGTCAAATTAATGCCTTGATTTATTGTTTCATCAAGCACGAACACTACAATCATCTCAGACTGTGT -GAGCATGGACTTTCCTCTATATAATATAGCGATTACCCAAAATATCACTTTTAAAATTATAACATAGTCA -TTATTAGTAAGACAGTTAAACTTTTGTATTTAGTAATTATTTACCAAATACAGCTTTTTCTAAGTTTGAA -ATACGTTTTAAAATATCTACATTATTTGAAGATGTATTTGTTGTTGTATTATTCGAAGAAAAACTTTTAT -TGTCCTGAGGTCTAGATGTTGCTACACGTAGTCTTAATTCTTCTAATTCTTTTTTAAGTTTATGATTCTC -TTCTGATAATTTTACAACTTCATTATTCATATCGGCCATTTTTTGATAATCAGCAATAATGTCATCTAAA -AATGCATCTACTTCTTCTCTTCTATAGCCACGAGCCATTGTTTTTTCAAAATCTTTTTCATAAATATCTT -TTGCTGATAATTTCAATGAAACATCTGACATTTTTTCCACCTCATTAGAAACTTTGATCTTCAGACCACT -GTAAGTCATTGATGAATGCTGTTAATTCATCGAACGTCACAATATCACAAGTATAGTTTGTTTTATCCAT -AAAATCAACTAACATCTGCTTGAAGAACTTAGGACTCGCCTCTTGTTCCTCATCATAAATGAGCAATGTT -TGATCCGAATGTTCAAGCATAAATTGATCTGCTTGTTTAAATTGAAAAGGACCTTGATACGACGTATGAA -AAATACTATCAACATAATCTGCATGCTTAATTATGTTGGCATACTTACTTTGATTATGTTCATTCCACTT -TTCTGTATGTCCTTGGAACGGTGTAATTACAGCAAACTTTAACGAATCATATGTTCGTTGTAATTCAATA -ACAACTTCTGCAGTCCATAATTCTATACCCATTTGCCCTTGTATTAACACCCATTCTAATCCTTCATCCA -ACAGTTGTTCAATTTTATGTTTTATAAATTGTTTTAAATAATGTACTTCAGGTGCGTCATCTTTAAAAAT -GTTTAATTCGAATGATTTGTAACCTGTTACATAAACTGTTTTAACCATAAGTACCCTCTTTAGTTACGCC -ATCTAATATATTTTGTAAATCATATTGAACACTTTTAAGCTTTTCAATAAATAACTTTCGACTTGTTCGC -TTAAAATGACATTCGACAGAAAGTTGTTCAATGTTAGCAATCAATAGCTCAAATTTCCTTGAATTCATAT -AAGGTACTTCTATAATAAATTCACGATGTAATTTGATCTCATTGAGCAAGCTATCAATATGTTCAGTATA -TGGCTTTACAGTTTGGTAAAAATCATGATCTTGTTGTTGTGATTTCACATTTTCGAAATTTTGTTGCATG -TTGTTAACTTCATAAATTAGTGATTCGACTACATCATTCATGAGGACGCCTCCTACATTTTTTAATTTAT -CACAATATACTGTATTCGTCATGTTTTAACACTCTATATAATTTGATTTAACTTATTTTCAAATGTGTTA -TCTGTTAAATCAAGTAAATCTAAAAACTTCCTATATAAATACATAATTTTATCGTGTATGTTGTTATACG -ATGAAAATACTTTTAATCTAATAAAATCATTTAAATCAAATACACCTCTGTTGATTAACAACACATACTT -GTACTTGCCTCAAAAATAATAATTACTGATCATGATTTGACTTTTATAACAAAATTCAAAAATATTGTAA -TGAGTATTCATTTTTATAAGCAAAACTTTTCAATTAATTAAAATTGTGTGTAAAATTCCAACATTAACGG -TAAATGTATTATAATATTATTGTGTTAATGCTGAAATCACGTTAAAATAAGCTTTGGTGTATTGTGTCTT -TCGCATTTATACTAATTTAAGTTTGGTATTTCACTATAATGTTGTGTATAATAAACAACGTTTACTACCA -AACTTGTGTGGTGAAATTTATGAATTATCCAAATGGTAAACCATATCGTAAAAATAGTGCTATAGACGGA -GGGAAAAAGACCGCTGCCTTTAGTAATATTGAGTATGGTGGACGTGGTATGTCACTTGAAAAAGATATCG -AACATTCAAATGCGTTTTATCTTAAAAGCGACATTGCAGTTATTCACAAAAAGCCTACGCCAGTACAAAT -AGTTAATGTCAACTATCCTAAGCGGAGTAAAGCTGTGATTAACGAAGCTTATTTTCGTACACCTTCAACA -ACTGATTACAACGGCGTTTATCAAGGTTATTATATTGATTTTGAAGCAAAGGAAACTAAAAACAAGACGT -CCTTTCCTTTAAATAATATTCATGACCATCAAGTCGAACATATGAAAAATGCATATCAACAAAAAGGTAT -TGTGTTTTTAATGATTCGTTTTAAAACGCTAGATGAAGTTTATCTTTTACCCTATTCAAAATTCGAAATA -TTTTGGAAGAGATATAAAGATAATATTAAAAAGTCTATAACAGTTGATGAAATACGAAAAAATGGTTACC -ATATTCCTTATCAGTATCAACCAAGATTAGACTATCTAAAAGCAGTTGATAAGTTGATATTAGATGAAAG -TGAGGACCGCGTATGACGGAAAACAAAGGATCTTCTCAGCCTAAGAAAAATGGTAATAATGGTGGGAAAT -CCAACTCAAAAAAGAATAGAAATGTGAAGAGAACGATTATTAAGATTATTGGCTTCATGATTATTGCATT -TTTTGTTGTTCTTTTACTAGGTATCTTATTGTTTGCTTATTATGCTTGGAAAGCACCTGCTTTTACCGAA -GCTAAATTACAAGATCCGATTCCTGCAAAGATATATGACAAGAACGGAGAACTTGTTAAAACATTAGATA -ATGGCCAAAGACATGAGCATGTAAATTTAAAAGACGTGCCGAAATCAATGAAAGACGCAGTACTTGCAAT -TGAAGACAATCGTTTCTACGAACATGGCGCACTTGATTATAAACGTTTATTCGGTGCAATTGGTAAGAAC -TTGACTGGTGGATTTGGTTCTGAAGGTGCCTCAACATTAACACAACAAGTTGTTAAAGATGCATTTTTAT -CACAACATAAATCTATTGGACGTAAAGCTCAAGAAGCATACTTATCATATCGTTTAGAACAAGAGTATAG -TAAAGATGATATCTTCCAAGTATATCTAAATAAAATTTACTATTCTGATGGCGTAACAGGTATTAAAGCT -GCTGCTAAGTATTACTTTAATAAAGATTTAAAAGATTTAAACTTAGCGGAAGAAGCTTATTTAGCCGGTT -TACCTCAGGTTCCAAACAACTATAATATTTATGATCATCCAAAAGCTGCTGAAGATCGTAAAAACACTGT -TTTATACTTAATGCATTATCATAAACGCATTACAGATAAACAGTGGGAAGATGCTAAGAAAATCGATTTA -AAAGCGAACTTAGTAAATCGTACTGCTGAAGAACGTCAAAACATTGATACAAATCAAGATTCTGAGTATA -ATTCATACGTTAACTTTGTAAAATCTGAATTAATGAATAATAAAGCATTCAAAGATGAAAATTTAGGTAA -TGTATTACAAAGTGGTATTAAAATTTATACAAACATGGATAAAGATGTTCAAAAAACATTACAAAATGAT -GTTGATAATGGTAGCTTCTACAAGAATAAAGACCAACAAGTTGGTGCAACGATTCTTGATAGTAAAACTG -GTGGTTTAGTTGCTATATCTGGCGGACGTGATTTCAAAGACGTCGTTAACAGAAACCAAGCAACAGATCC -ACACCCTACTGGTTCATCTTTAAAACCTTTCTTAGCGTATGGACCTGCCATTGAAAATATGAAATGGGCA -ACAAACCATGCGATTCAAGATGAATCTTCATATCAAGTTGATGGATCTACATTTAGAAACTATGATACGA -AGAGTCACGGTACTGTATCTATTTATGATGCTTTACGACAAAGTTTCAATATCCCAGCTTTAAAAGCTTG -GCAATCAGTTAAGCAAAATGCTGGTAATGATGCACCTAAGAAATTCGCTGCCAAACTTGGCTTAAACTAC -GAAGGCGATATTGGTCCATCTGAAGTACTTGGTGGTTCTGCTTCAGAATTCTCACCAACACAATTAGCAT -CAGCATTTGCTGCAATCGCTAACGGTGGTACTTATAACAACGCGCATTCAATTCAAAAAGTAGTTACTCG -TGATGGTGAAACAATCGAATACGATCATACTAGCCATAAAGCGATGAGTGATTACACTGCATACATGTTA -GCTGAGATGCTAAAAGGTACATTTAAACCATATGGTTCTGCATATGGCCATGGTGTATCTGGAGTAAATA -TGGGTGCTAAGACAGGTACTGGTACTTACGGTGCTGAAACTTATTCACAATATAATTTACCTGATAATGC -AGCGAAAGACGTGTGGATTAACGGCTTTACACCTCAATACACTATGTCAGTGTGGATGGGCTTCAGTAAA -GTTAAACAATATGGTGAAAACTCATTTGTGGGACATAGCCAACAAGAATATCCACAGTTCTTATATGAAA -ATGTGATGTCAAAAATTTCATCTAGAGATGGCGAAGACTTTAAACGTCCTAGCTCAGTAAGTGGTAGTAT -CCCATCAATCAATGTTTCTGGTAGTCAAGATAACAACACTACAAATCGTAGTACACACGGTGGTAGTGAC -ACATCAGCAAACAGCAGTGGTACTGCACAATCAAATAACAATACTAGATCTCAACAATCTTGAAACAGCG -GTGGATTAACAGGTATATTCAACTAATCCACTCAACATAAAAAACTCAGTTATACCATATTTATGGTGTA -GCTGAGGTTTTTTTATATGTATTCATACGCTATTGCTATATTAGTAGAAACCGTAAAATCAGTTATTCAC -ATACATTTTGAAACATCTAAATAGTCTTTCATATTCACATCTTTAGCTATGTAAAATTATTGAAATTGCA -AAAGTGGTTGTACCCATTTTTAAAATTATGATTATATTTTCTCATAGTCATCTTAGACGTTGTTTTAAAT -TGATATGTTTATCAATTCCCTGAGTACGTTAATCAGTGAAATATCAACATGTTTGCAACGTATATTCACA -ATCATAGATATAAGAAATCCACCTACGATTCGAAATAGATATCTTAAACCATACCTCAAGATATCCATTA -TGATGTAGATGGACATTTTTTATATTAAGACGTTGTAATGACATGACACCTAACATAAATACAAATATGT -GTGCATGAATTAGTTTTACATCTTTTCAACATTAGGAAATGATCAAACTTGTCTATACCTGCTTATTCTT -TAACCTTGTTTGATAACTAGCATTCATTTTAATCAATTCAGTTTTAAAGGTCTTCATTTGTCGATAGCCC -ATAAAATGATATTTACGTTCAATCATATAATCATATCTTTCTTTAAAATTCATTGGCACAACAGGATATT -GATTTAAATTATCAAAATCAATATTGCCAGTTATGTCATTAACCTGCTTAAAATAATCAATAATTTTACT -ATGGTATTCATCCAAGTAAGGTTTTGCTTCACTAGAACCTAATGTCTTATTTTTGGCAAATACATCAATC -TTTTGTTCTAAATTATCAAATACCTCTTTTGTAATATTTGTCATATTATCACGCTTCTTTCAAACTAGCT -TTATAACGTTTTTGTCCTTCTCTACAATCTTCTAATAATGGACAAATATCGCATTTAGGTTTTCGGGCTA -AACAGTGGTATCTTCCAAAGAAAATGAGTTGATGATGGCTCCTATTCCATCTATCTCTAGGTATGACAGA -ACATAAACGGTCTTCTACCTGTCTCACATTATCTTTCCAACGATTAATACCTAAGCGTTTAGAAACACGT -TCTACATGCGTATCAACAGCTAATGAAGGTTCATCAAATGCTACACTCATGACTACATTAGCAGTTTTAC -GTCCTACACCTGCTAAACTTTCTAATTCCTTATGTGTTTGTGGTATTTCTCCATTAAATTGATCAATCAA -AGATTGACAAAGTTTCTTAATATTCTTAGCTTTGTTACGATACAGACCGATAGAACGAATATCATTCATA -AGTTCTTCATCACTGACTGCCAAATAATCTTCAGGCGTTTTGTATTTTTTAAACAGCTCAGTTGTTACTC -TATTTACTAGAACGTCTGTACATTGCGCTGACAATAATACAGCAATAGTTAATTCGAACGGATTATCATG -TTTTAGTTCACATTCTGCATCCGGAAACATATTTGCTATAACATCAATCATTTCTAATGCTTTTTTCTTA -CTTACCATCAAGGTTCTCCCCGTTTAACCAATCAAATTTAGGTACCGTTTTAACTGTGTGCGTCATTTTC -GGTTTATTAAATTTTTCTCTTATTTTTCTAGAATCGTCAATTGTTTTGACATTGTTTTTCTTCCAATTAA -GTAAAATACGATCCATATATTTAAAGCTAAGTTTATTCAAACTATTCGCCTCGTCTAATGCCGCTTGTAT -AATTGCAGTATCGTGTTTATCAACATCAATCCATTGATTTAACGTCTCTATTTCATATGGAGATAACGGC -CTTGCAAATGTATCCTCTAAAACTCTAAATAATTGTTTAAATTTTTCTTTACTATTTTGCTCTTTCGTTT -CCATACTTTGTTGCTTCAATATATGACTTAATTTTTCGAAAAAAGGATCTAGATTCATATATTCAGTAAA -TCTACCTTCTTCATCTTTTTGAACTTGTAATTCTAGCAATTCACGTTGAATCAAATTTTGAATAACCATT -GTAATATCACGTGGTTGCATAGTTGAGCCCTTCTGAAGTAATTCAATTGAAGGCTGTTTGTTTGATGTTT -CGGAAGCATAAATCAATTTAAGCAAAATGACTAAATCTTGCTCATCTAAACCTAAGTCACTGTAATGGTC -TAATAATTCTCTTCGTATCACTACAGGTCTTGCTTTTAATTGATATTTATCCATGTTCGTGCCCCCTTTT -AAATTTAACCATTACTTAATAGTATAAATCATTTTCTTTAATTTTCGACTAAAATGCTTAATATATTTAA -CTAGTAGCAAACAAATTTTAAATAACAGTATTTTTTTAAAACTAGATTTTAACAATGAACTTTATGTATA -ATCAGACGAGCTATTTATTTTCCAAATATAGTTACTAAACAAAAGTTTGTTCATGATTAATATAAGCCGT -TATCATTCTTCATTTTCCAAGCATAAATCGCCCAGCTATTAATATAGGCTGGACGATTCTTTTTATTATC -ATAATATAAATTTTAAGTAACGACCCTAAAACTTATGGATATAAACGGTTTAATAATCTTGGGAATGGCG -CTGTTTCACGAACGTGTTCAACACCAGAAATCCATGCGACTGTACGCTCTAAACCTAAACCAAATCCACA -GTGTGGTACACTACCATAACGACGTAAGTCTAAGTAGTAACTATATGCTTCTTCGTCTAATCCATGTTCT -TTAACGCGTTGTTCTAACAATTCTAAGTCATCCACACGTTCAGAACCACCTATAATTTCACCGTATCCTT -CAGGTGCAATTAAGTCTGCACATAATACAGTTTCTTCATTCTCAGGATTTGGTTGCATATAGAAAGGCTT -AATTTTAGTTGGATAATTAGTAATAAATACCGGTAAATCATAATGATTAGCAATGGCTGTTTCATGTGGC -GCACCAAAATCTTCGCCCCATTCAATATCATCAAAGCCTTCTGCTTTCAAGAACTCAATTGCATCATCAT -ATGAAATTCTAGGGAATGGTGTCGCAACTTTTTCAAGTTTTGATGTATCACGCTCTAACATTTTCAACTC -TAGTTTACAATTTTCTAAAACTGATTTTACTACATGTGTTACATATTGTTCTTGAATTTCTAAACTTTCA -GCATGATTTGTGAAAGCCATTTCCCCTTCAATCATCCAGAACTCGATCAAGTGTCTACGTGTTTTTGATT -TTTCAGCTCTGAAAGTTGGACCAAATGAAAATACTTTTCCGTGTGCCATTGCCGCAGCTTCTAAGTATAA -CTGACCACTTTGAGATAAAAACGCATCTTGATCAAAGTATTTAGTATGGAATAATTCACTTGTACCTTCT -GGTGCACTTGCTGTCAAAATTGGTGGATCAACCTTTGTAAATCCATCTTTGTTGAAAAATTCATACGTTG -CACGAATAACTTCATTTCTAATTTTCATTACAGCATGTTGTTTTTTAGAACGTAACCATAAATGACGGTG -ATCCATTAAGAATTCTGTACCATGATTTTTAGGTGTAATCGGATAGTCATGCGCTTCTGAAATAACTTCA -ATTGATTTCACTTGCATTTCGTATCCTAAGTCAGAACGATTATCTTCTGTAATTGTGCCTGTAACATATA -GAGATGATTCTTGAGTAATTTCTTTCGCAAGTTTGAATACCTCTTCATCAACTTCTGATTTAACTACTAC -GCCTTGCATAAAGCCTGTTCCATCACGTAATTGTAAAAAGGCGATTTTACCACTTGAACGTTTATTTGTT -AGCCAAGCACCAATTGTAACGTCTTGGTTTAAATGATCTTTCGCTTGTTTAATCGTTGTTTTCATAACCA -TTCTCCTATTTATTTTTTCGTTATACAATACTCATTCATTTTAACAAAATCCGCTTTCAAGTTCTAGAAC -TAGACTAAAAGATAACGTGTAAATGGTAATGATTTAAGCACAGATTTGAACATTAATTTATATTAAGACA -ATACAATCATCAGTTTCAGACAAAATATATAATAAAGCCTCAATATTATTAGTATGAAGGTCGTTTTTTG -TGCTAACATTCAAGTTTAATTATAAAACTCAAATTTTGACGACCAAACAAAAATTCTTGTAACAGAACAT -AGCACATGTCATGTCACAAGAATTTTACTTTGTATTTTACTTTTTCTTTTTTTGAATTTGTCTTAATAAT -TTTCCAAACTGTTGAATGTCGCCTTTTTTCTGACGATAATTTTCAAGTGTTTGTTCAAAAAAGTTTTTAT -AATTACTGTTTATGAGTCGATCATCAAATGAAACTATTATGCCGCGATCATTTTCATTTCTAATTAATCT -TCCAAGTCCTTGTCTAAAACGTGTAACTGCATCAGGTAATACATATTCCTTGAAAGTTGAAGTGAATTCA -GAATCCATAAGCCAATATTTTGCATTATGCTTGTTCATAAACGGTAACTTCGCTATCATCACACATTTAA -TACCATTTGCTTGAAAATCAAAGCCTTCAAAAAATGTTGACGTACCAAGCAGTATGGCTTTATCAAAATT -ATTAAACTGTTGTACTATTTTATAATTTTGGTTCTGCTGTTGTGTTAATACAACATAATCTTCAAATTCT -GGCAATTCATTTAGCATATCTTGTACCATATGCATCATTTTATAACTCGTAAATAAGACTAAACATTTTG -ATGACGTTATAGTCGTATATTCAATAATATAGCTTACAATCGATGCTACATACTCATCTATATTTTTATA -TTGATAAGATGCTACATCACTCGGTATAAATACACTTGTATTTTTTGCACTTTGTAACGATGTGTTAACT -TCAAATGTATTAAAGTGAACATCTTTGTTGAATAACTGTTTGAAAGCATCAAACGAATGATTAAATTTTA -AAGTACCAGATATAAAAATAAGTGATTTAAATTTTTCCAATACTTGTTTCGTTAATACATCTTTTACAGC -GTAATCTTTCACATATAAACGTATTGTTGATTTTTGAGATAGATTTTTAATTGAAATGAAACTAGTATGT -CCAGCTTTTAAACTTTGTTCGATATTTTTAAATTTATCTTTTAAATACAACAACTGTTTCCGTAATGATT -TAACTGTTTTATGACTAATGCCATTGAATATTTCTAGCGTCTTATTTAACTTATCGATAATCGCATGTAA -ATCCTTCAAAATGTCTTTTGTTTCAAAAGTAAATACATTATGGAAGCGATGAATATCATCATCATAAACA -TCAGAATCATTGATAATCGTAAATATCGTTGAGAACAATTGCTCATTTAACTCATGAATCTCATTCATAC -TAGCCTTCAAGCCAAAAATATCAATTGGTGCAATATCTAATTTTTCCAAAATCCGCTGCTTTTCCAGTTG -ATCAATTGCCTTTAACAATTTTTCATTTTCGTTTTTACCAATCAAACCAAGCTGATACTTAATATCAGCA -TAACTCAACTCATTTGTCACTTGATTTAAGGCATAGTCTGGTAAGCGATGTGCTTCATCCACTATACAAT -CATCAAACAATTGATATATTGAATTTTCAACATCAGAATGAATTAAATGTGCATGATTTGTAATACCAAT -TTGAATGTTCTGTGCATTTCGCTTAATAAAATTATAATAATGAACATCGTGACGTGCCGGTACATATGTT -TCAATTTTCTGGTCAAAATACATCTTTTGACCACCTTTTAAATTTAATTCCTGTATATCTCCGGACGGCG -TCTCTGTAATCCAAATCAGCAATTGCATTTTCAAGATATTCACTTCGTAATTACTTGTGTCATCTTTTAA -AATTTGACTAATAAGTCCCAATGAAATGTAATCACTTTTACTTTTAATCAATAGTGCATTAATTTTAAAA -TTCAACGCTTCATTCATTGCTGGAATATCTTTTTCTAACAATTGACTTTGCAGTAATTTAGTATTGGTAG -AAATCATGACATGCTTCCCAGTTTCAATATTATACATCAAGGCCGCAAGTAAATATGCTAATGATTTACC -ACTGCCTAGTGATGCTTCAATCATTGCTTTTTCACTATGCATGAGCTGATCTAATATAGTTTCCGCTAAA -TATAATTGTTGCGGTCGATATGTTAAGCCAAGTTGATCTACAGCTTTGCTATATAAAGACTTCAAGCTGC -CATTATAATTTGTTGTCGGCTTTTTAAAATCAACTTGCTTACGATATATTATCTGTTCGAACTTTTCGTA -CGATTTATCCAATGGCTTTGCATCATATTGCCTAACCATCTCAAAGAAAATATCATACAAATCGTATTTC -AACTGTTTACTTAAATAATATAATTGCTTTAAAGTATCTAACGGTAACTTTTCAAATTTTTCAAAAGCTA -ATATCATCAATTTAGCAGTAGTAGCGGCATCTTCGTCAGCTCGATGGGCATTTGCTAAGGTAATACCATG -TGCCTCCGCTAATTCACTTAATTGATAACTTTTATCTGTAGGAAAAGCTATTTTAAAGATTTCTAGTGTA -TCTATAACTTTTTTGGGACGATATTGAATATTACAATCTTTAAATGCCTTTTTAATAAAATTTAAATCAA -AATCTACATTATGAGCGACAAAAATGCAATCTTTTATCTTATCGTAGATTTCTTCTGCAACTTGGTTGAA -ATATGGCGCTTGTTGTAGCATATTTTCTTCAATGGATGTTAACGCTTGAATGAAAGGCGGAATCTCTAAA -TTTGTTCTAATCATAGAATGATATGTATCAATAATTTGGTTATTGCGCACAAACGTTATACCAATTTGAA -TGATATCGTCAAAATCTAATTGGTTGCCTGTTGTTTCCAAATCCACAACGGCATAGGTTGCCATACCCAT -AGCTATCTCTCCTTGCTTTAGTGTTAAAAATCTATATCTGCACTAATTAAACGGTGTGATTCACCCGCTT -CATCTCTAACAATTAGATAGCCATCGTAATCTAAATCAATTGCTTGTCCTTTAAACTGTTTATCATTTTC -TGTAAATAGCAACGTTCTATTCCAGATATTAGAAGCTGCAATATATTCTTCACGAATTTCAGAAAAAGGT -AACGTTAAAAATTGATTATATCTTTTTTCAATTTCTTGAAGTAATCTCTCTAAAAATTGATATCTATCTA -ATTTATTTTTATCATGTAATTGTATACTTGTTGCTCTATATCTAATACTTTCATCAAAGTCTTCTAGTTG -TTGCGTCAAATTAATACCTATACCACATATTATTGCTTCTATACCATCATTATTAGCAACCATTTCAGTT -AAGAAACCACACACTTTACCATTATCAATATATATATCATTCGGCCATTTCACTTTGACTTCATCTTGAC -TAAAATGTTGAATCGCATCTCTTATCCCTAATGCAATAAATAAATTAAATTTAGATATCATTGAGAATGC -AACGTTAGGTCTTAATACAACAGACATCCATAGTCCTTGCCCTTTTGAAGAACTCCAATGTCTATTAAAT -CGCCCGCGACCTTTCGTTTGTTCATCACTCAAGATAAAAAATGAAGATTGATTTCCAACAAGTGACTTTT -TCGCAGCAAGTTGTGTAGAATCTATTGAATCGTATACTTCACTAAAATCAAACAAAGCAGAACTTTTTGT -GTATTGGTCTATTATACCTTGATACCAAATATCTGGGAGTTGTTGTAATAAATGTCCTTTATGATTTACT -GAATCTATTTTACATCCCTCTAACTTTAATTGGTCAATCACTTTTTTTACTGCAGTGCGCGATATATTAA -GTGATTCCGCAATGCTTTGTCCAGATATATAATTCGGTTTATTTTTATAGAGTAATTGAAGTACATCTTG -ACTATATTTTGACATGATTATCCACCCATTTCAAAATTTCAGTTTCTTCGTTGCTTACTTTACCAGTTAC -AATCGCTATCTCAATTTGTCTTAGCAGATCTTTTAACCACGGACCACTTTTAGCATTTAAATGTGCCATA -AGTACACCGCCATTAACCATCATGTCTTTTCTATTATGCATAGGTAAACGATGTAATGTTTCATCAATCG -TTTGAAGGTTAACGATTAATGGTTCATGTCCTTGAATATCATTTGCCTTTAACACGTCTGCTGCAACCAT -TACATTTTTAATGAGATTCGTATCATAATCATAAACAAACATTTTTAATTGTTCTTTTGTAATAATACTT -GGTAATGCATTCATAATTTGAATATATTGATTGATATCTTTTACTTGTCGGTTACTTAGCTTTAAAGGCT -TCAATGAGTAATTAATATCAAATTTAACTGATACTATAGCAATCAACAATTCTAAATCAATTGGTTCAGT -CACATTAATTTGATTCATATCAAGATGTTCGAAATATGGCATATAATTAAATGCTTTCAGCGATTTTAAA -TGATTAAAACTCTTTTCAACATTAATACCTCGCATTAATTTAGTTAGTTCAATCACTATACGCTCAATTG -ATAAAAATTTAATATCTGCCATTTGTGTACGCATCGCTTCGAATGTTTCCGTTGCAATATCAAATGATAA -TTGTGACTGGAATCTTAAACATCGAATCATACGTAAAGCATCTTCTTGGAATCGTTCCTCAGCTATACCT -ACAGTTCTTATTATTCGATTATTAATATCTTGTTGACCATCAAAATAATCATACAATTTGTTTGCTGTAT -CCATTGCTATCGCATTCATCGTGAAATCTCTTCGTTGCAAATCTTCGTATAAATCACGAACAAATGTAAC -ACCACTTGGTCTACGGTGATCGACATAATCTTCTTCAGCCCGGAATGTTGTCACCTCATAATTTTCATCA -TTAAAAACTACATTTATGGTGCCATGTTCTTTACCTACAGGTATCGTATGACTAAAGATAGATTCTATTT -CATCTGGCGTTGCACTTGTTGTGATATCTATATCATGAATATTTCTTCCCATGACATAATCTCTTACAGA -GCCACCTACATAATATGCTTCAAAACCATTGTCTTGAATTTGTTCTAATATAGGCCTTGCCTGTTCAAAT -AATGATTTATCCATATTATTACTCGCCTTTACTTTTGTTATGCTCATTTAGCATTTTTTGATAGTAATAC -TCATATTGATCTGTAATGAGTTCTGATCCAAAACGTTCAGCAATATCTGCTAGCATGTTTTTCTGAAGTT -TGTTGTATAACACCTTGTCTTCAAGTAATCGGATAGCATAGTCACTCGCTGAATCACTATCACCCACATC -TACGACAAATCCAGTTTCACCATGTTTAATAACCTCTTTAATTCCACCGGCATTTGAACCAATTGGAACG -ACGCCTGTTTTCATAGCCTCAAGTAAAGTTAGTCCAAAGCTTTCTTTTTCACTTAATAATAATACTAAGT -CAGATAATTGGTAAAATTCACTTACGCAATCTTGTTTCCCTAAAAATAAAACATCTTCTTCTACGTTTAA -CTCTTTCGTCTTTTGACGCATTGGCACTAATTCAGGACCATCACCAAGTAAAATTAATTTACTAGGTATC -TTTTCACGTACTTTTGCAAATGTTTCTATAATAGTATCTATGCGTTTTACTTGTCTAAAATTCGATACAT -GTATTAACACTTTTTCATCTGGTGCTATACCAAATTGTGATTTTAATGCTGTGTTATGTTTAGTTGGAAA -CTCATTTTCACGTACAAAATTATAAATCGGTATAATTTCTTTGTTAGTTTCGATAATTTCATGTGTTTCT -TGCGCTAAAGATTTACTCACACTTGTCACAATATCACTTTTTTCAATGCCAAATTTAATTGCACCTTGGA -GTGAATGATCATAGCCCAAAACAGTAATATCAGTACCGTGTAGCGTTGTCATAATTTTTATATCTTTACC -TGACATCTCACGAGCTAAAATCCCACAAATTGCATGAGGTACAGCATAGTGCATATGCAACAAATCAAGA -TCATATTCTTTAATAACTTCAGCGATTTTAGTACTTAACGTAATATCATACGGTGGATACTGAAAAACTG -CATATTGATTCACTTCAACTTGATGAAAAATCATATTCGGTAATGGTTTTCTTATTCTAAACGGGATATT -TGAAGTGATAAAATGTACTTCGTGACCTCGCTCTGCTAATTTAATTCCTAATTCTGTGGCAATAATTCCA -GAGCCACCCATGGACGGGTAACATGTTATACCTATCTTCATTCGCTTGCCCATCCTTTCTTTCTATTTCT -CTTTCTATTATTCTCGATGCGTAGATAATTGTTTAAATTTAAGTTTATAGTAATGTTGAGTTTATAATTT -CAAATATCTAAAAAACAGGTGTTGTATATATAATCATTTATCTAGTTATACTTACTTTAAAAATAATATG -ATTTCATGCGATGCAATTCATTAGTCTATGTTTTTAATCTTAATCAAATCCAAATAAAGCATATATTTTT -ATATTCACTTTCTTTTGAATCGATTTTTATCTCTTGTATTAAACTTTTCCATTGTTTCATTAAAGCTCTC -TGTCATATCTATTCCCATTGAATTCGCTAAACATAACAACACAAATAAATTATCACCTAATTCTGCTTTA -ATCGTATTTGCTTCCTCTGAATCTTTCTTCTTTTTTTCACCATAGGTATGATTTATTTCACGTGCAAGTT -CGCCCACTTCTTCAGTCAATCTAGCTAAGTTAGCTAATGGTGAAAAATATCCTGTTTTAAATTGTCCAAT -ATATTCATCAACTTCACGTTGCATTTCTACCATTGATTTCATTTCTACGTTCTCCTTATATTGCATTTCT -AATATAGTATATATCAATTTGAAGTCTCATGCATGTTTAGTGCAATCTACTGACTCTAGCTAAACTAGAT -GACAAGTTGTTTTTTTTAGTAGTTTAATAATTCAGTTTATATAAATGTAATGCATTCCTAACTAAATTAA -ATCAATTGAAATTGAGATTATAACTTTATGATTCGTACCACTACAATAAAATAATATATTGAATAATCTA -CCATTAGAAAAATAAGCACAAAAAAACTAGCAACCACACAAAATGTGATTAGCTAGTTAATAAGTGTCTA -ATTTAAGTTAATTGTTAATCTATAAGATTAATCACTTGAACGCGCAATCAAAATAATACGTACAAGCTCT -GCTACAGCGACAGCAGTTGCTGCTACATAAGTCATTGCTGCTGCAGATAATACTTTACGCGCATGTTTGT -ATTCCTTTTCATTTACAATGTTCAATGCCGTAATTTGTTTCATCGCTCTTGAACTCGCATCAAACTCAAC -TGGTAACGTAACAATTGAGAATAATACCGCTAATGACATTAAACCAGCACCAATCCATAAAGCAGTTGAA -CCAAATGCACTACCTATCGCTGTTAAGATAATACCTAACATGATGATCATATAACTTAATGAACTCCCTA -GGTTTGCAACAGGTACTAATGCTGCTCTGAATCTTAAGAACCAATATCCTTGGTGATCTTGAATGGCATG -ACCAACTTCGTGGGCTGCAATTGCAGTTCCAGCAACTGATGGTCTGTCATAGTTTGCAGGAGATAGTGAA -ACAACTTTCTTTTTAGGATCGTAATGATCTGTTAAGAATCCTTCACCTTTAACAACTTCGACATCATAAA -TACCGTTTGCATGTAAAATCTCTAATGCAACTTCACGACCCGTTTTACCACTAGTTGATCTAACTTGTGA -ATATTTCTCATAGTTAGATTTAACTTTGTGTTGTGCCCATAAAGGAAGCACCATTAATATTACGAAATAA -ATTATCATAGTAAAAATTGAAGACAATAAACTCACTCTCCTTTATAAATATTTTACTGTCATTTGCAGTT -TTTATCAAATCATTTACACTTTAATAATTTGTTTAATTCAATATAAAGCAAAAGTCCAAAAACACTCAGA -CAACATGATAATACACCAATTTGCCACACATGTGTAGTTATAAAATCATAATATGGAAATTGAAGGTGAA -AATAGTCAATATAATCATTCAAAAATACCCAAGTCATCGCTACACTAATTCCAATCATAGAACGTTTAAA -CCTAGGATAGAAGTAAATTGCCTGAACAGCCATTATACTATGGGAAAACATTAATACCAGGCCATTTACT -GTAATATCACCTTGCTCAATAATAAATAATATATTCATAATAACTGCCCAAATCCCATATTTGAATAATG -TTACAAATGCCAGTGCATCGATAATACTATTTTGTTTTTGTATTAATATCAATGAGATTGAAATAACTAA -GAATAATATTGCAGTTGGGCTATCTGGAACAAAAATCTTAAACTGCCACGGCGTATGACTTAATTGTTCA -CCATACCATATATAACCATAAATCATCCCTAATATATTACAAATGAGTAGCATCATTAGCCAAGAACGTT -GATAAAGAGTATATTGCCAAAGTTTATTAATCGTCATCTGCTAAGTCCTCAAATTGATTATGTTTATTTA -CTAGCTTGAGTGTATTTAAAATTTGCGTTAGTTGATAAAAACGTTGCTTTTCATTCATCTGTAAACTTAA -ATCAATATTATGTAGCAAGTAATCTATTAATAACGCATGTTTATGCCGATCTATAGCCATACTATTTAAA -TCATGAAGATAAGTTTGATAGCTGGGCGATTCCGTTAGTTGAGCAACTATTAAATCATCTAGCCTTTGCT -CACGCTTTGACACGTTTGCGAAGTGAATTTGAATATCAAAAGCACCGTTATGATTAGCGATATAATCAAA -TATTTCATTTGTATTCATTAACTTTATATTATGCTTAGTAAATTGAATTGCAGAAGCGTGACTTCCCACT -TCTGCAATTTCTAATGTTTCATGATGATTAATTTTTGTATCTACAAAATGAATGTTTGCCAATTTCGCCT -CATTCACTTTTATATAGTTAAGCACCCAAACTGCAATACGCGACTTAAATCGATATTGAAAAAGTAAATA -TTCAATAAAACTTTCTTTAATTTGATTGAGTGTCTCTGACATCAAATACCCCATTTTAAGATTGTAATCT -TGATAATTCGTCATGCCAATTTTCGTTACTTGGTTCTAGTTCCAACAATTGATTTAAAATAGTAATTGCT -TGTTCCATTTGACCAATTTCAATTAAATAGAAATAATAATCACTCATAAAATCAATATTTGTTTTCATAG -TTGGATATGCTAATTCAAAGAAATGTTGAGCTTCTTTATCTCGCTCTTCTTGACCATAGGCGAACGCTAA -ATGCCAGATGAATGTAGGATCCAAATCTTCTTCATCTACATATGTTAATAATTCAATGATTGCTTCATAA -TCTTCTTCATTACGATATAAATCGCTTAAAATCAATAATGGTTCTTGGTAAGCATTATCAACCTCTAATG -CTTGTTTTAACAATAATACACCTTCATTAGCATCGCCGTGTTCTATTTCCAAACATCCAGTTGTATACAT -TAACTCTTTATAAAATTGACTTAGTCGTAATCCCTCTTTACCCGTTTCAATGGCATCTGGATAATTTTTT -TCATTTTCATATAATGATTGTAAATACAAGTAGCCTTGAATATAATCAGGATCTTTAGAAAGTAATGTAG -TCATTATTTTAATTGCTTCTTGAGTGATGTCATTTTTATCGTAAGAAATGGCTTTTTTGAGATAATCTTC -TGAAGTCATTTCATCTTCATTAATTTCATCGTATAAGCGAATCGCATCACTATAGTTACCACTTTGTAAG -CTACAATCTGCCATACGAGAGAATAAGTTTACACCATTAACTTGATATTCACCAGTTTCTAAAACAGTTT -CGTATTCAGAGGTAGCACGTAAATATTGACCATCATAATATAACATTTCAGCCAACGCAAAATGGATTAT -TGGATCATTTGGCTCTAGTTCAAGTGCTTCTTGTAATTTATCAATAGCAACTTCCATCATATTAATTTGT -TGATATAAATCTGCTTCTAACATCAACTTTTCAGGTGATGGTTCAACATAACTTAAATATTCTAACGCTT -CGTCAGTTTGATTTTCAGACATTAAACCTTCAATAAAATAAATCAGCAATTCACTTTCGTCTGGATATTT -GTGATATAACACGCGGAATACTTCTAAACCTTGTGGCATTAATCCAAAATTGTAAAGTGTCTCTCCTAGA -ATAAATAATGCGTCATCGTTGTCAGTAGTTATTGCTTCATTAACACGAGAGTCTAAATTTTCTAGTTTTT -GTAGATTGATATCGTCTATTAATTTATAGATATCTTCCATTTTATATTATCCCTCATTTTCTAAAAGCTT -TAGTTTTGGTAAAAATCCTGGAAATGATACATTTACAGCATCAAATTGTTTGATTTTGACAGGTTCGCTT -GAAAGTAGAGAAGCAACTGCAAGCATCATTCCTATTCGATGATCCGTTAAACTATCCACTGTTGCATTTG -TTTTAAATTCTGACGGATGAATAATCAATCCATCATTAGTTGGTTGTAATTCAAACCCTAACAAGTTTAA -CATATCAGCCGTTGTATCAATTCTATTTGTTTCTTTTACTTTTAATTCCTCGGCATCTTTAATTGTACTC -GTGCCAACTGCTTGTGTACAAAGTAATGCTATTACAGGCAGTTCATCAATTGCTTTTGGCACTAATTCTC -CTTCGATTTTTATTGGTTGAAGCATTGGTGTGTATTGAATACGAATAGAAGCAGTAGGTTCAGCACCAGT -TGTTTGATTGAAAAGTTGAATATTACCGCCCATTTTTTCAACAATATCAATAATACCTGAACGTGTTGGA -TTGATTCCAACATTATGAATTGTTACATCACTTCCTGGTGTGATAAGTGCTGCAACAATAAAGAACGCTG -CAGATGAAATATCGCCAGGAACATGAAAATCTGCAGGTTTAATGTATCGAATTGCTTCAGGGATTGTAGT -AATTGATAACCCTTCTGCTTCAATTGGAATATTAAAATGTCTGAACATCGTCTCAGTATGATTTCGACTT -ACATCTAATTCTTTAATGATGGTCGCTTCCTTAGAAAATAGACTTGCGAATAAGATGGCACTTTTCACTT -GTGCACTTGCCACTTCCATCTTGTAATTAATACCTTTAATTACAGATGGTTTAATGATTAATGGGGTGTA -ATTGTCTTCAATTCCTTCAATATTTGCATTCATACTTTTTAACGGTCTTAAAACACGATCCATCGGCCTT -TTACCTATGGAAACATCGCCAGACAAAACACTTTCAATACCTAAACCACTTAACAAACCAGCTAACAATC -GAGTCGTTGTGCCAGAGTTTCCAGTATATAAAACTTGATGAGGTGTTTTAAAAGCTTTATATCCAGGTGA -ATTCACAACCAATTTATCTTCATCTTCTTTAATATCTACGCCTAATAATCGGAATATATCCATTGTACGA -CGACAATCTTCACCAAGTAGTGGCTTATATATAGTAGATACACCTTCAGCTAGCGACGCCAACATGATTG -CACGGTGTGTCATTGATTTATCGCCCGGCACTTCTATTTCGCCCTTTAACGGACCTGAAATATCAATGAT -TTGTTCATTTACCATTTCATTCACCTACTTAAAATATGTTTTTAATTGTTCACATGCATGTTGTAATGTT -AGTTGATCAACATGTTGTACAACGATATCTCCAAATTGTCTAATCAAGACCATTTGTACACCTTGCTTAT -CATTCTTTTTATCACTTAGCATATATTGGTATAACGTTTCAAAATCCAAGTCAGTTATCATGTCTAAAGG -ATAGCCAAGTTGTATTAAATATTGAATATAATGATTAATATCATGCTTAGAATCAAATAAAGCATTCGCA -ACTATAAATTGATAGATAATGCCAACCATCACTGCATGACCATGTGGTATTTTATGATAGTATTCAACAG -CATGCCCAAATGTATGACCTAAATTTAAAAATTTACGTACACCTTGTTCTTTTTCATCTGCAACAACAAT -ATCTAGCTTCGTTTCAATACCTTTAGCAATATATTTATCCATACCTTTTAATGACTGTAATATCTCTCTA -TCTTTAAAGTGCTGTTCGATATCTTGCGTCGCTGATTCACCATTCAATAACGCATGCTTATAAACTTCTG -CATAGCCACTTAATATTTGCTCAAATGGTAACGTCTTTAAAAAGTCTAAATCATAAATAACAGCAGTTGG -ACGATAAAATGCACCGATAAGGTTTTTACCTTGCTTTGAGTTAATACCCACTTTACCGCCAACACTAGAA -TCATGCGCCAAAATCGTTGTGGGAACTTGTATAAAATGGACACCTCTTAATAGTGTTGCTGCTACAAATC -CTGCAAAATCTCCTGTCGCACCACCACCAACAGCTATAATCGCTGTATTACGTGTTACATGATGAGACAA -AATGTATTCTAATGTTTCTTGATATTGCTCAAATGTTTTCGTCTTTTCACCAGCTGGAATAATGACTTTA -TGCACATTTTCATATGATAAAATATCATTAAATTTATCAGCAAAATATTGATTTACATGCTCGTCAATTA -ATATAAAACTTTGATCAAACTGATCAATATACGTGCTAATATGGTCAATTGCACCATGTTCAACAAATAT -TGGATAATTGTTTGAAGGATAGGTTGTTTGTAATTTCATGATCACACCTCAATTGTTCTCGTTGTTAAAA -CTCAACATTTAATTGTCTGCGGTCAGCAATTTGTTGTTGAAGTTGTTCAATATGGTTTGATTGAAACTCT -TCAAGTAATGCTTTCGCTATTTCAAATGCAACAACGTGTTCACACACTATACTTGCTGCAGGTACAGCAC -AACTATCAGAACGTTCAATTGTTGCCTTAAAGTCTTCTTTAGTATTTATATCAACTGAATTTAATGGTTT -ATATAACGTAGGAATAGGTTTCATTACACCATTTACAATAATTGGCATTCCATTTGACATACCGCCTTCT -AAACCACCTAAGTGATTTGACCCACGATAATAGCCCAATTCAGTATTGTAGAGAATTTCGTCTTGAATTT -CGCTACCAGGCTTTTCAGCTGCTTTAAATCCTTCTCCAAAACTTACACCTTTAAATGCATTAATACTAAC -AACACCCTGTGCTATTCTTCCATCTAATTTACGATCATAATGTACATAACTACCTACACCAACAGGCATA -TTTTCAACTACAACTTGAACTACGCCCCCTATTGAATCACCATCGTTTTTCGCTTCATCAATTTTATCGC -GCATTGCTTGTGCGATGCCATCATCAATTACACGGACGTCATTTCGATCAAGGTTTGCTTTAAATGTTTC -TGAATCATAAAAATCTTTATCTTTAATGCCACCTATCTCAACAACACGACTGTATATTTCGATATCTAAT -TGTTCTAATAAAACTTTGCATAGTGCACCGACCGCTACACGTGCTGCTGTTTCTCTGGCAGATGAACGTT -CTAATACATTTCGTAAGTCACGATGATTATATTTCATACCGCCAACTAAATCTGCATGTCCCGGTCTTGG -CTTCGTAATTGTACGTTTCATATTTTCTCGTTCTTCATCGCTTATTGGCGCAGCGCCCATAATTTTTCGC -CAATGTGTAAAATCATCATTAGTAACAACCATTGTAATAGGGCTACCTAATGTATAACCATTTCTTACAC -CCGAAACAATCTCCACTGTATCTTTTTCAATTTGCATACGACGTCCACGTCCGTAACCGCCTTGACGCTT -AAACATTTCTTTATTAATATCCTCAACCTTAATTTCTAAATTTGCAGGTACACCTTCAACAATAACTGTT -AATTGAGGTCCATGTGATTCTCCTGATGTTAGGTATCTCATACACACTCGCTCCTTTCATACTTCCACGA -TAACATTATAATATGTTGTTAATCTTATCATATTCATTGTGCATTCATAAATGTTTGTTTTCAAGCTCAA -TTAAGAAATTGATTTATATCTCTTTTTAAATGTCAGAATTATCTTAATATTAAACGAACTAAGATTCATT -ATAATATATTCACAACGAGAAAAGTATTATGAATTTCTAATATTGTTAGATTGTTTAAACAACCATTTGA -AAATTTAAAATTTATTCGAACAACTTATACCGCATATAATCGTAGCTAACCACGAATAAATAATATACAA -GCTATATTTCTTTATATAAAAGAAAATGGACTGATCATTTTTTATAAAGTTAATCAGTCCGTATAAAAAT -AGGGTTTTGTTATGAATGGTCATAAATCACTAACCACATAACAAAACCCTTTTTCCTTTTATTAATCATA -AAGGTTTATAGCTTATATTTTATTCATATAACCATGCATCACGTGGTGAAGCATAGCTAGTAATTTCATT -TTCATTAAACCATAAATTAATTTCACGTTCAGCAGACTCTAATGAATCTGAACCGTGAATGATATTTCTA -CCAACAGTTAAACCTAAATCACCTCTAATTGATCCTGGTGAAGCTTCTGAAGGATTGGTGCTGCCAATAA -TATGTCTAGATACATTAACTGCATCTTCACCTTCAACTACCATTGCGAACACTGGTGCTGATGTAATAAA -TGAAATTAAATCATTATAAAATGGTTTACCTTGGTGTTCACCATAATGTGTTTCAGCAAGTTCCATTGGT -ACTTGCATTAATTTACCACCGACAAGTTTTAGTCCTTTTCGTTCAATTCTTGAAATTACTTCACCAATTA -GATTTCTTTGTACTGCGTCTGGTTTAATCATTAAAAATGTACGTTCCACTTTATGTATCCCCCTGTGTTT -AATAGGTTTATGTATATTACTATTATATATTAACAGGTTGGTAAAGCGCTTTCAATACTTTTCATAAATA -CTATGTGTTTCTTGACCCCATTTTTTTCGTCAAACTTAAAAGTAGTGATTTCGGATGTCCATCTGGTAAC -TCAGAAATCAAATTCAAAGCTTTACTTAAATACTTCGAACTTACTTCCTTAGCCTCATCGATGCTGTCAG -ATTTTCTAATGATTTGGATACATTCTTCAAATTCTTTGCGTTCACTATCTCGACGTAATTGTTCGATTTT -CAATTTGAAGTCTGGATTTTTACGCATTTCTAATAAAATCGGTAACGTAATATGACCATTAAGCAAATCA -CTTCCGACCGGCTTACCTAATTTCTTTTCGGTACTTGTGAAGTCTAATACATCATCAATGATTTGGAAGC -TCATACCTATATAATGACCAATCATTTTCAATTTTCGTACAGTTTCTTTATCAGATTGAGATGTAATTGC -ACCAACTTCAGTTGATAATTGAATTAACAGTGCTGTTTTGCGATTGATACGTCGTAAATAATTGATAATT -GTCTGTTGACTGTTAAATTGGTCTTGAAATTGGAAAAGTTCCCCTCTACAAACATCAACGATAGATTCAG -ATATTAATTGATGTACACGATTATCTTTAACTGCCATTAAGTGTTCAAGTCCTAATGCCAATAAAAAATT -CCCAGTTAAAATAGCAGTTGTCTGATCCCATTTCTTTGATATGGTTAACTTGCCTCGACGCTTGTCGCTT -TTATCAATAACGTCATCATGAACAAGTGTTGCCATATGAATTAACTCTAATGCGACTGCAACTTGATACG -TTTGTTCAGACGTTTGTTCATCTTTGCCAAATTGGCTACTCAGAATTACAAATGCTGGGCGTACTCTTTT -ACCACCAGAAGACAATAAGTGTAATGATGCCTGTTCTAATACAGAATCTTTACTTTTTATTGCCTTTTCA -AGTCGTTGTTCCACTTTCTTAATTTCATTGTTCATGTTTAACTTTGCCACGTTAATCACCTTTGGTATTA -TCTTTTTCTTTATAGCCAAGGTGCATTGCAGCAACGCCCCCTGTAAAACTACGTACTCTTACATTTATGA -AATCCGCTTCTTCAAACATGCGCTTCAACTCTTCTTTTCCAGGAAAATTAAACGTAGATTGCTGTAACCA -TTCATATTCTTCTTTTGATTTTGCAAATAATTTTCCAAAAATAGGCATAACAAATTTAAAGTATAATGCA -TACATTTGTTTAAAGACTGGCAAAGTTGGTTGGCTCGTTTCAAGACATACCACCATACCACCTGGTTTAA -GTACTCTATTCATTTCTTTTAACGCGACTAAATAGTCTGGCACATTTCTTAATCCAAACCCAATTGTTAC -ATAATCAAAAGAATTGTCTTCAAACGGCAATTCCATTGCATCACCATGAACAAGTTTAACATTTTCCATT -GAAGCAGTTTTTTCTTTTCCTACTTCTAACATATTCTCACTAAAGTCAATGCCAGTAACTTCTCCTGTTG -ATCCTACAGCTTTGCTTAATGCTATTGTCCAATCACCAGTACCACAACAAACATCTAATGCTTTCATACC -TTTTCTAACACCCATGTCTTTCATGACACGTTTTCTCCATACTTTATGCTGCTCAAAACTAATAATATTA -TTTAATCTGTCATATTTTTTTGAAATATTTTGAAAAACGCGATGTACTTGCTCTTTATTTGCTTTATTGT -CGGCCATGCTTAATTACCTCTACTTTTTAAATAACTTTTTTGGATATCGTGTAAGTAATGCTTTACTTCA -CTTTGATTATATTTCTTGAAGTATGATGGATAGTAATCAGACATATCTTCAAATAAATAATTATATATTT -CCGACTCATCAATATTGATACCGAAATGAGATAACGTAATATATGGGAAAAGTGTTTCAATTTTTACTAT -TGCTTGAGAAATTTCATAATCATTTAAAGCTTGATGATGTAATGAAGATTTCAATTCATTAATTTCAACA -ATTGCTTTACTAATTTCATTTTGAAATGATAAATCATTGATTTCTGCTAGTAGCGTATAAAAATGTGCAC -TAATTAAATCTCCAATCAAAATGGAATGTTTAGACAAATGATTATATGTAATGTCATCAAGGTGTCTCAT -TGATGTGTCAATTGTGAGGCATGCTACTTTGGCAACATCTGGAATATCATATGAATCAAGCAACTTACCT -AACCGATGATTAATATTAATGGATTCATATTCTGATACACCCTTTAATCTTTCTTCTATTTGTCTTTCCA -ATTTGCTAACAGTTGTTTCCATGTCTACACCTCACGATATTATCACTATTCATATTAACATTATATGTAA -GAAATTAAAATCTTTTGAAGCATTAAGATTACTTATCATTTTTAAATTTCAATTTAAACTAACGGTAATT -TATGTAGCTTTTGTAATTCTCATAATAACCCTTACTTCATTTACATTATTCATCTTTTTAAATAACGTAA -AATACTATAGTAGACATGGTTACCTTTTAAGTAAACTCAACGCTAACAATTAATCTCATTATTCATATGT -ATATTTTGTAGTTGCTATTTTTATCAAAACTATTATGTCATGTAATATTTTGAACGCTTAAACAATGAAT -GTTCCAAAGATTAAAAACTTAGAAGAACATTACAATTTATGTACAGGTTGTAAGTATTAAAAGCAAAATA -AAAAGCCCTTATTCAGGGCTTTTTAAGTAAAATTATTTTACAGCATCTTTTAATGCTTTACCAGCTTTGA -ATGCTGGAACTTTACTTGCTGGGATATCAATTTCTTTACCAGTTTGAGGGTTACGACCTTTACGTGCAGC -ACGTTCACGTACCTCAAAGTTACCGAAACCAATTAATTGTACTTTTTCACCTTTAGCAAGTGAGTTTTGG -ATTGATTCGAATACAGCATCTACTGCTGAACCAGCTTCTTTTTTAGTTAAATCAGCTTGCTCTGCAACTG -CATTGATTAAATCTGTTTTGTTCATTAGACATTCACCTCCTGAGGTTTGATAATGATATGTTTATATCAT -TATGGTAAAACTTTAACACAAGCATTACATAAATCGCAATCATTTATGTGGCAAAAACGTTGAATTTAAG -CCATTTCTATTCATTTTACGTAATTATTAGCTGTATATGTGTAATAATACACATTTTATTCAGATTTTTT -ATCGCGCTCCATTAAATCTTTTACGCATTCTTTTACTGAGATATTTTCAAATAATACTCTATATAATGCA -TTTGTAATTGGCATATCCACATTTTTTTCTTTAGCTAAATGATAAACGGATTTAGTTGTATAAATACCTT -CAACAACCATATTCATTTCAGATAATGCTTGATCCATCGATTCACCTTGTCCAAGCTTATATCCTAATGT -GAAATTTCGAGAATGTGTTGATGTGCAAGTAACGATTAAGTCACCGATACCACCTAAACCTAGAAATGTC -ATAGGATCGGCACCTAACTTTTCACCTAATCTGCTAATTTCCGCTAAGCCACGAGTCATTAATGCAGCTT -TTGCATTATCACCGTAGCCAATTCCAGCTACGATACCACTTGCTACTGCGATGATATTTTTCAATGCACC -ACCAAGTTCAACACCAACCAAGTCATCATTCGTGTACACACGCAAATAATCATTCATAAATAAATCTTGC -GTTAATTTACTTACATTTTTATCTTTTGATGATGCAGCAACTGTAGTTGGTTGCTTGACTACAACTTCTT -CCGCATGACTTGGCCCTGACAACACGCCAATACCTGCATTATATTCAGGTGAAATAGAATCTTCAATCAT -TTCTGACACACGTTTAAATGTCCCATTTTCAATACCTTTAGCAACATGTATAAAAGTCTTTTTAGATGTC -AGCTTATCATTAATTTGAGTAGCAACTTCTCGCATTGCTTTAGTAGGTAAAGCCATTAAGTAAATATCTG -CATATTGAATTGCTTTGGTCATATCTGAAGTAGCGATGATGTTAACATCTAATTTCGCGTATTTTAAATA -CTTTTTATTTGTATGACATGTATTTAATTCATCAACAGCTTCTTGATTTTTACCCCACATCAAAACATCA -TGTCCATTTTCTGCAAGAACATTGGCAAGGGCTGTCCCAAAACTTCCCATACCAAAAACGGTAATTTTAG -TCATTGTTATCCCCCAATCGTTAATTTCTCTTTCGAGCTATAATATGAATTGGTGTACCTTCAAAACCAA -AAGCGGCACGGATTTGATTCTCTAAATAGCGTTTATAAGAAAAATGCATTAATTCTACATCATTAACAAA -TACAACAAATGTCGGTGGTTCTATAGCAACTTGTGTTGCATAAAAGACATTCAAACGTCTACCTTTGTCT -GTTGGTGTAGGGTTCATGGAAATTGCATCAGTAACGACTTCATTTAAAGTTGAACTTTGAACACGTTTTT -TATGGTTTTCACTTGCTTCATTAATGTAAGGGAATAATGTACGTAATCTTGTGCGTTCTTTAGCAGACAC -AAAAGCAATTTGTGCATAATCTAAAAATTGGAATTCTTTACGTACTTCATCTTCAAATTTCTTCATCGTT -TTACTATCTTTTTCCACAGTATCCCATTTATTTACGACAATCACGACTGCTTTACCTTGTTCATGTGCAT -ATCCTGCAACACGTTTATCTTGTTCAATAATGCCTTGTTCTGCATCAATGACCACTAAAACAACATTTGA -ACGTTCAATCGCTTTTAAAGCTCTTAATACTGAATATTTCTCAGTTGATTCATATACTTTTCCTTTTTTA -CGCATACCAGCAGTATCGATTAAAACATAATCTTGTCCATCATAACTATACTCTGTATCAATAGCGTCTC -TCGTTGTCCCTGCAACATTAGAAACGATAACGCGATCTTCACCTAAAATAGCATTTACTAAACTTGATTT -ACCTACGTTTGGTCGTCCAATAATGGATAGTCGAATTGTATCTTCATCATAAGGATCTTCTTCCTCTTCA -CCAAAATGAGAAACAACTGCATCTAACAAGTCACCAAGACCTAAACCATGTGACCCTGATATCGGATACG -GTTCACCAAATCCTAATGAATAGAAATCATACACGTCTGTACGCATTTCCATATTATCTACTTTGTTAAC -CGCTAATACGACCGGTTTTTTAGATTTGTATAAAATTTGAGCGACCATTTCATCGCTTTGTGTCAATCCT -TCACGCACGTTAACCATAAAAATAATAACATCCGCTTCATCTATGGCGATTTCTGCCTGCGCTCTAATTT -GTGTTTGGAATGGTGCATCACCAATTTCAATACCACCTGTATCAATAATATTGAAATCATGTGTTAACCA -CTCACCTGAAGAATAAATACGATCTCGTGTTACACCTGGCGTATCTTCAACAATCGAAACACGTTCTCCA -ACTATTCTATTAAAAATTGTAGATTTACCTACATTAGGCCTACCTACAATAGCTACTATAGGTTTAGTCA -TAAGCTAACTTCCTCTCTTTCTTATATCTTTTTAATAATATCACATGAGACTGTGTATTCAAAATGAGTT -TATTACTGTAATGATAAAAATCAGCACTTAAAACTTTATCTTAAAAAACACTTAGTTAAATTTGTCCACG -TTATCATTCCGGATATATTTTGTTACATAAAAATACTCCACATGCAATCATAAACATGTGGAGTTGACTA -TTAAATATTAAATTATAGTTTAAGATTTTTAAGTTTATCACCAATCATATCGCCAATTGTTGGATTATCT -TCTTCTTCGCTTTCTAAGTACGCCTTAGTCGTAGAAGGATCACTTTCAACAACATCTTCGTTTGGTAATG -TTGCTTTAATAGATAGTGATACTCTTTCATTCTCTTCATCAATACCTAATATTTTAACATTTACTTGTTG -ACCAGGTTCTAATACTTCACCTGGCGTACCAATGTGTTTGTGTGCAATTTCAGAAATATGTACAAGCCCT -TGTACACCTGGTGCAATTTCAACAAATGCACCAAAGTTTGCCAATCTTACTACGACACCTTCAATGTCAT -CATTTTCGTGGAATTGACCTTTAATATTTTCGAAAGGTGTTGGTAACGTATCTTTGATTGATAATGAAAT -ACGTTCTGTATCTCTATCAATAGATTTAATTTTAACTTTAACATCTTGACCAATTGAAACTACTTCTTCT -GGTGTTTGAACATGTTCGTGAGAAAGTTCAGATACATGCACTAAACCATCGACACCGCCAATGTCTATAA -ATGCACCAAATTGAGTTAAACGCGCTACTTTACCATCAATAACATCGCCTTCATTTAAAGATTGTAATAA -TTGATCTTTTTTAGCATCGTTTTCTTCTTGTTCAACTGCTTTACGGCTTAAAATGACTCTATTATTTTCA -GGATCCAATTCTTCAACTTTAATACGAATTGTTTGTCCATCAAACACAGAGAAATCCTCAATGAAGTCTG -TTGAAATTAGTGAAGCCGGAACAAAACCTCTTTGTCCTACATCAACAACCAAACCACCTTTAACTACTTC -TGTTACTTTCGCTTCGATGATTTCATTATTATCTAATTTTTCTTGTAAATAACTATAAGACTTCTCAGTT -TCAAGTTGTCTTCTAGATAAGATGTAAGCTCCAGTTTCATTTTCTTCATCAAACTCAACTTTAGTGACAT -ATGCTTCAACTTCGTCGCCCTCTTTTACAACTTCACTTGGGCTATCAATATGATGCGTAGATAGTTGACT -AATAGGAATAATCCCATTAAATTTACCACCGTTGATATGAACAACAACTTGCTTGTCTTCAACTTGTTGT -ACCTCGCCAGTGACTTTGTCACCTTCTTTAATATCGTTAATCATTGATTCATTGAATTCTTCAGTCATCT -TGTTTGCCTCCTTATACACTACATATTTATAACATCTTATAAACTGACAGAATTGTCAAGAAATTCTACC -TTTATTACATTTAGTAAATTAGTCGTATCCATAAATATGTCACTTAATCTCATTCTGTGTATTAGTTGGA -CATATATTTATTACAACCATATATTCAAACAAGTAATAAAGTCCGCTATGTTTATACATATTTTTTGTAT -AAAAATTAGCATAGCTCACTATTTTGTTTTATAAGTCTGTCATTTCATTGTTCTCTACAAGATATATTAT -AGTAAAATTTTATACTTTTATAAAACAAAAAGCCACGCAAATAAGCAACTTTTACATTTGAATAGTAAGA -AGACCGTATATAGTGCATCTTTCTCGAATTATTACATAGGACATTTTTTGTGACTAAATCAGCTTCTTTT -GCAATTCTTAGATTTGTAACACTCATTTTCTTACCATTTGTAAAATGCTTTATGAATTTAATGAATTATT -TTTGGAATTCTAATAATTTACCTTTATTATTTCTGTTAACTTTTTGAAAAACATACACACTTGACTGACG -CATTAACTTTTACCAAAAGTAAAAAGGCAACTTTCATTCATCGTTGAATAAAAATCACCTTTTAAGTTGA -GTAAATCATTATCAGCACATTCAATTTGTATATGCATTAAGCGTTGCACATTACAAATAGATATTTATGA -CTTACTAGATTATTTAATTTGACTCACCATCGCTAAAATTTCGTCAGTAACTTCTTCAATCGTCTTGCCT -GTCGTATCTAATGTCACTGCATCATCTGCTTTTCTTAATGGTGATATTTCACGGTTCATGTCATATTGAT -CACGTGCTTCAATATCACGTTTTAAATCTTCAAAATTTGATTCGATTCCTCTTAATTGATTATCTTTATA -TCTTCTTTCTGCTCGCTCTTCAACTGATGCAATCATATATACTTTTAAATCTGCATCTGGTAGCACTACA -GTTCCGATATCGCGACCATCCATTACGATACCTTTTTCTGCAGCTAACTCTTTTTGTTTTTTAACGGCGA -ATGAACGTACTGGCTCTTTAGATGCAACGTATGAAACATGTTGCGTCACATCATTATTTCTTAAAAAGTC -TGTTACATCTTCGTTATCTAAAATGACACATTGACCTTTATCTGCTTTATAAGTTAAATCTAATGTTGTT -TGGTCAACTAGTTTTGCAAAGTCCTCAGTTTTGTTTAATTTTAAATATTTGTATGTTAATGCACGATACA -TTGCTCCTGTATCAACATAAATCATTGATAGTTCACTGGCTACACGTTTTGCAATTGTACTTTTTCCGGC -AGCAGCTGGACCATCTAATGCAATATTAATGGCTTTCATGCGTCATTTCCCTTCCTTGTCGTTTTATGAA -TAATATTTTATCATAATTAGGTAAATGAAATATAGGAGGAAATATATGAAACATCTACTTGTTATTCATA -CTGGTGGCACCATTAGTATGTCACAAGACCAATCTAATAAAGTAGTAACAAATGATATTAACCCTATTTC -ACTGCATCAAGATGTCATAAATCAATATGCACAAATAGATGAATTAAATCCTTTTAATGTACCATCACCT -CATATGACAATCCAACATGTTAAACAATTAAAGGATATTATTTTAGAAGCAGTAACAAATAAATATTATG -ATGGTTTCGTTATCACGCATGGTACCGATACGTTAGAAGAAACTGCCTTTTTACTTGATTTAATATTAGG -TATCGAGCAACCTGTTGTTATTACTGGCGCAATGCGCTCGTCTAATGAAATTGGTTCTGACGGATTATAT -AATTATATTTCCGCTATTCGCGTTGCCTCTGATGAAAAGGCCCGACATAAAGGCGTGATGGTTGTATTTA -ATGATGAAATACATACGGCGCGTAATGTTACCAAAACACATACGTCTAATACAAACACATTTCAAAGTCC -AAATCATGGTCCGCTAGGTGTATTGACAAAGGATCGTGTGCAATTCCATCATATGCCATATCGCCAACAA -GCATTGGAAAATGTCAATGAGAAACTAAATGTACCATTAGTAAAAGCATATATGGGTATGCCAGGTGACA -TTTTTAGTTTTTATAGTCGTGAAGGTATCGATGGTATGGTTATTGAAGCGTTAGGGCAAGGCAACATGCC -TCCAAGCGCATTAGAAGGCATTCAACAATTAGTATCTTTAAATATACCTATTGTGCTAGTTTCACGTTCC -TTTAATGGTATTGTGAGTCCAACTTACGCATACGATGGTGGTGGTTACCAACTCGCACAACAAGGTTTTA -TTTTTTCTAACGGTTTGAATGGTCCAAAAGCAAGATTAAAATTATTAGTCGCGTTAAGCAATAATTTAGA -TAAAGCTGAAATCAAATCATATTTTGAATTATAATGATTACGTAACATAAAAAGGTCTATGTACAATAAT -TAGTCATCAACCTCATTTGACATATCATGAATGTCAGTCGTTGTAAAACTAAGTTATTTAGTACATAGAC -CTTTATTTTTATGATTCTAACGGCGTTTGTTTCTTAGCTAGCATGCTTTGAGCAATAATACCACCGTGGA -ATTTACCATTTTCAATAAAAATGGTATTCGCATCGTTCCCTGCAGCAATCACACCTGCAATGTAGCAATT -TTCGATATTTGTTTCGTATGTTTCTTTATTATACATAGGCGCTGTTCCAAATTCATTTGTATTAATTTGA -ATGCCTACAGATTTTAAAAATTCATAATCGGGATGATAACCAATCATCGCAAATACATAATCATTGTGTA -TCGTTTTACTTTCACCATTTACTTCATAAGTCACAGTATCTTCAGTTATTTGGGTAACATTAGCATTAAA -TTCCATGTCAATTTTTTCATGATTTACTAATGCTGTGAAATTTGGAAGTATCCACGGTTTAATTGAAGGC -GAATAATCTCCACCACGATATAGAACCGTCACGTTAGCACCAGCTTTTTCCAACTCCAAAGCAGCATCGA -TAGCCGAATTCTTACCACCGATAATAACAACATCTTGATCAAAATACGGATGTGCCTCTTTAAAATAATG -GAACACTTTAGGTAAATCCGCACCTTCAACTTCTAATGTATTATGCTGACCATAATAGCCTGTCGCGATT -GTTAAAAATCGACATTCATAAACATCTTTCGTCGTAGTAATAGTAAATTTATTATTCATTTTTTTAACAG -TTAATACTTCTTCAAATGCATTTACTTTTAATTGATGATGTTTTACAACTTCTCGGTAATAAACTAGCGC -TTGATTACGTCTTGGTTTACTTTCTTCAACAATAAACGGTACGTCCCCAATACTTAATTTATCACTTGAT -GAGAAAAATGTTTGGTGAGTAGGATAATTGTAGATTGATTCAACGACATTACCCTTTTCAATAATTAAGG -TATCAATACCTTTTCTTTTTTGTTCAATAGCCGCACTTAATCCGCATGGCCCTCCACCAATTATGATACT -TTCAACTTTTTGCATTGTTCCGGCCTCCTTTAATCCCAAACTATTATAACAGTTCAGTGATTGATGCGCT -AAGTCTGTGCTTGAAGATTTATGATATATTTTCGACAATTTGTTTAATATGCATAGAGAATTGTTAGCTA -CGGAGTTGAATAACACTACAATTTAATATGTTGATTTATTTTTTATTCTTCCTCGTTAAATTTGTTGATT -GTGGTGTTTTATCTTTTTGATGACTATGTAAAAAATTTAATTGATATGCCAATATTCATGTCCATACTTA -TTAAATAAAAAAACTGCTACATACTTATAAGCGCAATTTAAGTTTTCAATAATATTTAGAGAAACTTTAT -AATATGCACGTTCGTATATAGCAGTTCAGTTACAATTTATATAGTTATATTATGGAATAACGATTTGTTG -ACCGTTTCTAATATTGTTACCACTTAAACCATTGGCACGTCTAATTTTTTCAACATTTTCCGGTGAACCT -GAACCGTAGTATTGAATTGCGATACGGTATAAGTTTTCTTGACCATTCACTGTATGTCTTTGGCCACCAC -CTTGACGTTGTTGTTGCTGTTGTTGATTTTGATTAGCTTGTTGTTGATTTTGATTATTTTGTGCTTGATT -GTTCGCTTGATTAGCGTTGTTTTGATCATTATCAGATTCATCTTTAGTCGCTTTGTCTTGATCATCTTTT -GATTTATCACTGTCTGTAGATTTTGATTTATCTTTAGAAGCGTCTTTAGATGTGTCTTTATCTTTACTTT -CATCAGCATTATTTTTATTTGTATTCGCGATTTTATTTTCTTTTGTACCATTATTATGATTGTTTAATGC -CATGCCTCCAAATATCGCTAATGCACCGATAATTAGTACAGCTGCAATTAATGGTAACAATACTTTGGCC -ATGCCACCTTTTTTACGTTCTTTATCTCTGTCATGATGGTCATGTTCATCATTGTTTTGACTTGCATTAT -TAGAGGCATGTGGTTTTGAAGCGGCAGAAGCACTATTACTTGCTGCGCCTCCAGCCAAACCTGCTGTTCC -AGCACCGATTGCTGCACCTTTTTTACCATTATGATGTTCTTTTGACTTGTCTTCAGACGCTTTATCCTCA -GTCGAGTTATTCACCTTGCCAGAATTACTTTTGTTTTGAGCGTCATTTGAATGTTTCTTAGCTTTAGAAA -CACCCATTGCACCAGCTGCACCTGCAACACCCGCTGTTCCAGCACCAATTGCTGCGCCTTTTTTACCACT -ATGATGATCTTTAGATTCATCTTTGTCTTGCTTAACAGTTACATCATCATGTTTATCTTTTGATGTATTT -GCTTGGTTAGCACCTGTTGCAAAATATGGTTTAGGTTGCTGAGATTGTTCAGCTTCACTCTTATCAGAAA -CTGTTGAATGCTCAGTGTTATTTTCTGCTTCTTTAATAGTCTCGTGTTTATCATTGTCTTCGATTGGTTC -TGGATGTGATTTATCCATTGCAAAAGCATTCTTATTATAATATCCCTCTTCATGTTGAGGTGTACTGTCT -TGATGGCTAGGTTCTTGACTTTCAGTACTGTGTGATGATTCGACTTGACGATCATCTATTGTGCCAGCCT -CATTTTGAACATTGTCTTCAGATGTTTGTGATTCATTGTGAACTTGTTTATTATGATTCGTTGCTAAATC -ACGGCGTCTTTTTCTTCTTTGGGCATTTCTTGGCGGAAACTGTTGCTCCGTATTCTCTATTGTATCCTGA -TGTTCTAATTCTGATTGGTCTTTTTCAACATCTTCCGTATGGTCTTGATGTGAATTTGTGTCTATCGATT -GACGATTTTTTTCAAAGTCATCTTTAAAATTATTAGACATAGCCATCTTCCTTTCTATTCTATTACAATG -ATTTTACATAAAATATACCCACATGACATATGTTTATGTATATTTTTCAAAATTATTTCAATCATTTTTC -AATTGTGTATACACTAATTATAGCTTGTCAATTTTCTTTTAGTAAAGTAATACTATCTGAGAAATAAATT -TTGCAACTTTTCATCAAATCCAATACTTCTAATTACCTTCTTCTTATTTAAAATTGCGATATCAGTTATA -TTAGAATCATTGTCACAACATCGATCTTGTGCCGGTGGATATTCACCGAAAAATTCTAATAAATACTTCC -GTCTACATTGATCCAATTTGCAATAGCCAATCATACGAAAGAATCCTAATTGCTTTCGTTTAAATGATTT -CTTAAATACCTGTTTCAAGGCGCCGATACTATAGAATGAATGCAACGTTGTCAAAACGTCTTGTTTATCG -GGTGCTAAAAATTCTCCTATTTCGAAATTTTGTACATCTTCTTCTGTTATCATATCTGCAAATAATAACG -TTTCTAAAATATATTTATCGTCCGGTTGAAATAAACTAATTGCCTGACTTAGTTCACCATCGCGACCCGC -ACGTCCAATTTCTTGAATGTAGTTAGAAGGACTTGTTGAAAGATGAAAGTGAATGATTGTGCGAATATCT -TTTTTATTAATTCCCATACCAAAAGCACTCGTTGCGACTATAATCGGAATATCATTATTTAAAAATTGTT -GTTGAACTGTGTGTCGCTCTTGATAATTCATATCACCATGATAAATGCCAGTAAGAAAACCTGAATCATA -AATAAGTTGCGCTAAATTCAGACACATCTTTTTCGATGAGACATAAATAATCGTTGGTCCCGACTGTTGT -AGAAACGGCAGCAACCACTCAATTTTATCTTCATCATCATGAAAATTAAGATGCTTAAAGCTTATGTTTG -GGCGATTCATTGTAGTTTTAATAACGTTGAATTGAATCTCTAGCATTTCCGTCAAATCATCTTGCAAATG -CGGTGGTGCAGTTGCTGTCAATGCTAAGACAACCGCTTCTTTAAAATGCTTTGTTACTTTTCCAATTAGA -GCATAATGTGGTCTGAAATCATATCCCCATTCAGATAGACAATGTGCTTCATCTAGAACAATCATGCCAA -AGTCTATCATAGATATTAATTTAAAATTTGACGGCTGCAGGAGAAATTCTGGACTTAGAAAGATGAAGCG -GCTATGTCGTAAACATTTAATATTATGCTTTTTCTCAATTTCATCCATACCAGAGTGAATACATGTTACA -CGTTTTTCTCCATTTATTTTCAACTGCATAACTTGGTCATCCATTAAAGATATTAACGGTGAGATAATTA -ATGTCGGCTTACCTGATAAATACGTAGGTATTTGATAACACAAACTCTTTCCACTTCCAGTTGGAAGAAT -ACCTAGAGTGTGTTGTTGAGACATTATACTTTCTATAATTTCCTGTTGTCCCGGTTTAAAATTCTCGAAG -CCAAATTTGTTTCGTAAAATATCATGCAACATTCAGATCACCTCTTTCAAAACCAACGATTAATACTTTT -AATTGAAAATATGATAACGTGTCAAATTGTTCTTTGTAAAATTTTAATCGTTCACCACGATGTTGTTGAT -AAAAATTCAAAAATTGCAGTTGATCTTCTTGTTCAACATAATCATCGTAATTAGACATATAACCTTTGAT -TAAGATTTCAAGTACATGATCTTCGATAGTATTGATTTTAACTTGTTGTTGAGCCGCTATATCTTCTATC -GTGAATTGTTCAAGCAATCTTGTATAAGTAATATAGGTTTGATTTAATAATGTAGGTTTCATTATTATTT -TTGATAAAATAGTATATTCTCCACTTTCTAATTCAAACATCATTGTCACTAAATTATTCATTTCGAATTC -AAACAATTGCTGTTGAGATAGTTTTTCTATTAAACTAACTTGCTGTCTCGTATACATTGGTTCATCATAG -CCTTGCAAATAATAATGTAAGTAACATGGCCCTTTTAAAGTTATTGCTTTAAACAAGTTATGTAGTTCAT -TTTCAAAGTCAATTTGTAATTGGTTTTCTTTAATATAGTTATAGACAATTTTTACAGTTTCTTGTATCTT -ATTATTTTGAGAGATTGGTACGAAACGAAAATCTTGCTGCATAGTATTAGACATGGTTTGCACTAATAGT -TGAATTGCTTGAAATGTTTGCCCCATACTTTCAAATGTATATCTAGGATGCAACATGATTTCCATTTCAG -CATTAAATTCAGTTATATTTTCTAAAAATAGCTCAAAAGACGGATATTTTAATAGTGGTAAACTGTGATA -TAATGACAACTGTTGTTGACTACAAGCGTCAAAAAAGGTTTGGTGAGATTTCTTACCAACTAAGATATTG -TAAATACTTTTATTTGTTTTATAGTTAAATGTTTGTTGTAATGCTGTTTTTATAATGTGTTGCAAGTTTA -ACCCTCACTCTGTAAAACGGATAATTTGAAAATAAAAATGATGCTGTCTAAAATTTTAGTCACATTACTA -TTTTAGCATTTTTATCAAAGGAGGCGAAGACATTGGCAAAATATACAATCGTTGATATGGATACTTGTAT -TGCATGTGGTGCATGCGGTGCAGCAGCGCCAGATATATATGATTACGACGACGAAGGTATTGCTTTCGTA -ATCCTTGACGATAACCAAGGTACCGCAGAAGTACCTGAGGAATTATATGAAGATATGGAAGATGCAATTG -ATGGATGCCCTACAGATTCTATTAAAATTGCAGACGAATCATTTGATGGGGACGCTTTAAAATTTGAATA -ATTGATTTTTTAGACAAATGTTTCATAGAAAAAGCAGGCAAGCTATCGTTTATTGATAGTCACCTGCTTT -TTATTATTATGTGTATATTATTTTGCTTTAATTTGATTAAATTCTTTTCAAGAAATTCGCAAGCCTTCTA -TATAGTAAAATAAATACAATAGAAATGACGATACCTTTAATAATATTGAATGGTATAATTCCTGAAACAA -TGATTACTTTAAGATTATTTGCGATATCAGCTAAGTTAAATATCATACCGTATAAAGGTAATAGAACGAA -ATAGTTCAAGATACTCAACACAATAGTCATAACGATTGTTGCAATGATTAATCCAGTAATCAAAGATTTT -GTTGAACGTTTATTTTTATAGATGGCGTAAGCAGTTAATAAGAAACTTGCGCCTGCTAAAAAGTTAGCAA -ATGGTCCAACTGGATCGCCCATACTAAATAAGTAGTTCAATAAATTTTTAACCAGTGCAACTATGATACC -GGCAACTGGTCCAAACGTAAATGTAGCTAGTAGTGACGGTACATCACTAAAATCTAAAGTTAAGTATGGT -GGCAAAAATGGTATAGGAAACTTGATAAAAGTTAATACAAACGCAATCGCGCTCAACATACTTATTGTGA -TAAGACGTTTATTTTGTTGCATATTCAATTTTCTCCTTCCATTCATCTCGTAAGAATAGGAGGATTATTG -CACAACAAAAAACCTCCATCTTCTCCCATCCAGACTATACTGTCGGCTCTAGAATCTCACTAGATCAGCC -ACTAATATGATACATACTAGCAGGTCGCAGGCTTTATTTACTGCCGGTTGGGAATTACACCCGACCCCGA -AGATGAATTTTACATTATTAAATTTAATTCTCATTAATTTTATACTATATATCACAAAACCTCAATAACT -ATGCTTTAATTAGATCATAGTTACGTAATTGGAGAATGTTTCATTGGTGATTTGCGAGCATTGTTTGGGT -AGTTTTGATTGGTGATTTGCGTACTTTGATTGGGTAGGTTTGATTGGTTTGTGGTTTTGTCTGTTGTTGG -GATGGTTTTTTTGATTCTATCACTCAATTGGGTCAAAATCGTCATAAAATGGAAAGCAAATTATAAGAAT -CTAGTAGGTTAAAAAGTTTTGTATCAGCACTTCCATATATATTATTATTTAAATCGCCAGAAGTTATACT -TAAAACCTTCTACTTATTTGCCTTCACAACAATAGTAGAATTGTCTTTCAATACTTAATCTAGCCAATAT -ACACTAATCTCCGCTAAATATTCATCATTTATTTTATTCTTAGTCAAACACACCATATTCTGAAGTGCTT -TTACCGTTATAATTTGGTTTAACTGTATTTATTTTATTGTCCGAAAATTTTATACTAAGATCTATACCGT -TTGGTATCTCTTTTTCTTTTTTTATTTCTTCTGCCATTTTTATTACATTTTCACTGTTACTTTTTTTAGT -ATAGTTCTTTTTTTTACTAAATAGAGTAGTAGTTACCGAAAGTTTAGACTTATCTTTTAATTGCTTCTTA -ACATTTGACAATTCTTTTGAAAATTCACTGTCACTTTTGTTTAATAATGGTTCAAAATAGTCTCTATACT -CAGTTAAATTATACGGTATAGTCGTAATATAAAAATATTCATTTTCATATCCACTATTTTGTGTCTTGTT -AATTGCCTCTTTTGTAAATCCTGTATATTGATATTTCTTTTCATTATCTTTGAAAAATTTATATAAATTG -TCATACTTTTCTTTTTGTGCTCGATATTCAAAGCCACTCAACACTGTACCAACTAAAGTACTCATATCAT -CGCCTTTGTCCTCACTTCTTAATGAGCTATTACTGTCAATAATTGATTTGTCAAATGGAATACTCGCATT -AAATACGATGTCGTGGTCATCACAATGCACGAATACTTCTACACCGTCGCCACTACCTACAACATTGGTA -GCTTTAACTTTTAGACCGAAGTTATCCATAAAAAATTGTTCACCACGTTTAGCTATTTTATCTTTATGCT -TCTTCGCAAATTCAATCGCATCTTTTTCTGCAGGTGGTTGAAAGCCTTGTCCTACATATTTGGAAGCTTC -CATTTCTTCTGGTACTGATTTTGTTTCATTGTTGGATTCGTTATTGGTAGTTGAACATCCTGATAGCAGT -AGTGTTGCTATTAAGATTAGTTTAGTTCTTTTAAACATAGCTCATCACCCATTTATGTGTTTGTTTAGAA -TATAGAGAAATTAGCTGATTTCAAGTCATTCGACCTCAATCCTTATAGACTCATTATCACTGTAATTAAC -TCGATTAGTACTAATAGTAGATTTTGCTAGTTGTAAAAATATTTTCGTATTTTCAAAATTAAGGTGTAAC -TTTTTCGTACTTTCAGACAAATCTATAACATCATCTAATTTTTTGTCCTTTGAAAAGTTACTACTTTTCG -AAAACAATGTAGTATGTACTTCTATTTCAGCTTTATAGCCTACTCCTTTCCTTGCTTCTTTCATACCTTT -TTTAAAATTCAGATTATTCTTCTTTATTAGGGGTTCGTAATATTTTCTATATTCTTGGAGCGTCGGTATA -TTTGCAACTATATAAAAATATTCATTTTCATAGCCATTATTTTGTGTCTTGTTAATTGCCTTTTTTGTAA -ATCCTGTATATTGATATTTCTTTTCATTATCTTTGAAAAATTTATATAAATTGTCATACTTTTCTTTTTG -TGCTCGATATTCAAAGCCACTCAACACTGTACCAACTAAAGTACTCATATCATCGCCTTTATCCTCACTT -CTTAATGAGCTATCACTGTCAATAATTGATTTGTCAAATGGAATACTCGCATTAAATACGATATCGTGGT -CATCACAATGCACGTATACTTCTACGCCGTCGCCACTACCTACAACATTCGTAGCTTTAACTTTTAGACT -GAAGTTATCCATAAAAAATTGTTCGCCTCGTTTGGCAATTTTGTCTTTATGCTTTTTCGCAAATTCAATC -GCATCTTTTTCTGCAGGTGGTTGGAAGCCTTGTCCTACATATTTTGAAGCTTCCATTTCTTCTGGTACAG -ATTTTGTTTCTTTATTAGATTCGTTATTGGTAGTTGAACATCCTGATAGCAGTAGCGTTGCTATTAAGAT -TAATTTTGCCTTTTTAAGCATATTTCATCACCTATTTATGTGTTTGTAAAACTTTTATGTTTGAAAAAGC -TACTTATTCTCAATGAAAACAAGTAGCTTTTAATAAATAATTAGTATACTGCTAGTTTTTCTAATTGTTC -TTTAACTTGAATTAAGTTTGAACGAATTAACGAAGCAGATTGATCCATTGTTTGAATAGCTTGCCCTTCA -TTTTCGTTCAAGCCATTACAAACAACTTCAAACTGTTGTGCCATTTGATCAAGACGTGCATGAGCTTGAG -TGTTTAAAATAAACATATCATCATAATGAGATGGTAAAGCGGTCATTCTCTAACGTACACGAGCGTCCAA -AAACACTGTTGTATCAAGGTTTTTGTCATTTTTAACCTTTTAGATTTTCCACAAGCGTTTGCCCTTTTTC -AAATAATCTGCCCTTTTTTTGCCCCGAAAAAAACACAAAAAAATAACCACACTCCTAAATTAATAGGTGG -TGTGGTTTTGTTGGTTGTAGGGGAATAAATATAACCGTATCGATTAAGATACGGTTGTAGCGAATGTAAC -ATTTCTATGTTGTTAAGATATATGTATCGAGTGATGACAAGGAAGATGTCTCCTGTGGGACCAACAGTCA -GATACATGGCCTCTGCCCGGCTATATAGTTCACTCCTACTATATAAAAGCAATTATAACATAAAAGCACC -CCGTAAACTGTTATACGGGAATGCTAAAGTCATATATACTACGGGGAGTAGTATGAAAACTATGCTCTCT -ATCGCAAGAAAAAACATCCAGTGACATGCTTGGGTGAACAAGGATATATGTAAATAGTTGATGCATGTGT -AACACATCATAACAAAAAACTAGCCCGAAGGCTAGCTATAACATAAAAAAATAGACAAGTACCGAAGTAC -CTGCCTGTTATCTACATTTAAATCTTGAGAGAAATGTTAAAAAGTGTATAGGAATATTAACATCCATCCA -AATAGTTATTTAATAACTGTAAGATTCCCTATAATTAATGTAGCAAAATTTTTATTCTAAGTAAATACTA -AATCGTGCTAAACTTACCAAAACTACTTATTCTATTACCTGCCTTGTCTACCTCTCCTGTCGCTATATAA -CGACGTTGTCCACTATTAGCAATATAAGTAATCCATCTATAACCATTAATACAATATGCACCGTCATACG -TAATTGTTGTGTTGTTGGGTAATACCCCTGTAATTCTTGAATTAGTTGAATAACCGTCTCTTACATTATT -ACCTTTAACATTAGCTACTGTGTAATTGCCTTGTTCTTTTTTATAAGGGACATTATTCTTATCGAGTGTA -TAACCTGCTGGCACTGGTGGATTTTTTTGGTTTTTAGCTGATGTTTTAACATTACCAGCTACCAAACCAC -CTATAGGCTTACCATGAATCGCACCGGCTATTAATTTAGAATACAAGTCATAGTTTTTCTTAATCCAATC -CATATCATTTTTATTAGTAATAAAACCTAATTCAGATAAACGATAATTTATATTTATTTCTGCTGATACA -TTAACATTTAGTAAATCATTACGAGGTGTCACACCTCTTATTTGTCCTAAGTTATTTTTAATAACATCTT -GTATACTTTTATCAATAGTATCTGCATTGAATTGACTTGAGATAATAACATGCCCACCACTTGCGCTTTC -TCCTGCTGCGTCTAAATGTATTTCTAGAACAATGTCATACCCCTGTGATTTAACCCAATATAAGCCATAA -TCTTTTTTATTGCCTACATTAACACCGTATGCAGTATCTTGATACATATCTTGTGATTGACTTGAGCCAC -CGTATAATGCAACTTCATGTCCTGCATGTCTTAAATACTTAGCGATATTAGGCGTTATATATTTACGTAT -AAAATCGCGTTCGTTTGTTCCGTTTCCTACTGCTCCAGGATCGTTATAACCATGACCGGCTACAAGCATA -ATTTTTTTAGGTTTAATTACTGCCTCTTTTTTTGTAGTCGCTTGCTTAATAATACCTTTAGCTTTATTGC -CAACGCTTAAGTTGTTAGGGAAGTTTAACCTAATAAAATACATTGGATTGTCATAATAATGAACACGTCT -TGTCACAGTTTCAGGACCCCAACCAGGTTGCGCAACGCCATTAGTCCAACCTTTACCGTTCCAGTTTTGA -CCAAATGATGTGAAAGTATTTAAATTTGCGCTCTCAACAATTTCAACGTGTCCAGCTCCGCCACCATACT -TTGACGGGAAAACGACAATATCCAACTTTTGCGGTAAAAAGCTGTCATAGTTTTTAATTATTTGACCATA -TTTTTCAATCTTTGCTTTATTATCAAACGGGATATTATAAGCATATAAACCTTGCAGCCTTTCGCCTGTC -GCTAACATAAAGAACATATTGGCGTAATCATAACACTGAAATCCATACCAACCATCTGGGTTGAATTGTT -TCCCTAATGAATTGTCAAACCATTTTTCTGCTTGATTTTTTGTCATTAACATATATCAACCACCTACCCT -AAATCATTTGTGTCGTTCATATTCGTAGGTGTCATTACTTCTTTAATAGGTGCTTGTCCTGTTGCTTTTC -TATATTTACTTTCAGCTTTATATTTCTTTAATTTTTGATTCGCCCATTTCCCTTCTTGAGATGTTGGATT -GTCTTTATACGTAGTATATAAAGCAACAACAGTAAGTATTATTGATGATATAGTCTCATCGTCTACTGGA -ATCGGGCTAATACCTTTGTTCGCTAAGAATTGATTTACTAATGCTAAGATCAATACGATGTATCTTGTTA -TTACTTTTGCATCCATTTGTTTGCTCCTTTTTTCCAAAATAAAAAGCCAGTGCCGAAGCACTGACTCTTA -ACTATTACTTACACTTACTAAACCAGAAACACGACCAAAAGCTATATCCTAAAATTCCCTTAAGCATGGT -GATCACCTCCTTTAAATGCCAAAAATAGTTTTTAACAAGGCTATAACAAATGTACTTAGAATCGTCCCTA -TTAATCCTAGAATCCACATCTTGATGTCTCTAATATTTTTAGCATTTTTCTCTTTATTTTTTTCATCTTC -TTCTTTGTCACGCCTTAGTTCTTCGAAATTTCTATCTAACTTGTCATAAATTTTTTCTTGCGTTCTCAGA -CTGTCTTCTATTCTGTCGAATTTTTCAAACATAGTCTTATCATTTTCTTCTAATCGCGTTAAACGCCAAT -CTTGTTCGTGTCGTTTGGTAAATCCAAACATTACACCACCCACTTTATTCAAATTAAAAAGCCACAAGAT -TATAACCTATGACTCTAGATTTTCTGGATACTTTTCTCCTGTAATAATTGCATATTCCTCTTTATCTATA -ACTTCCATATCTACATACCACGCTATATCTTCTTTACTATATTCTTTCAATTGATACCATGTTTTAATAT -CTTCGAATGTTGGTGAAATTAATTTAAGCATTTTCAGTCTCTCCTTTAACCTCTTCTAATTTTTTATTAA -GTGTCACAAGTTGTTTTGCCATTAGTGCATTTTGCTTATTAACTTGCATCGATAACTTTGTACTTTGAAC -AACTTGTTTCTGCATACTAGCAACCATTTTTCGTAAGATGTCATCAGAAGCGACTGTGTTTTGTTCTTCA -CTGTCAATCTGTTGATGCAAGTCATCTTTTTCTTCTGAATAATCTTCGTTAAAAACTATTTCCCCATTTG -AATATTTAAAGGCTTTAGGTCTAAAAACTTGAGAGAAATTTTCTGGTAAATTTTCAATATCAATACCTTC -TTCAAAGCCACCAATGATAGCGTATGAAATTATCTCATTACGCTTGTTAACTAATATTTGCATTATTTTC -TCACTCCTATAATTTTGTTGATTGTTCCTCTATTTGCATTGGCACCAGAACCTCTTTGACTTCCTAAATC -AAAATAAACATCGTTCGATATCGTTAAAGATGTACGACTAGATTTAGTTAATCCAAACTCATAAACGCCT -CCACCGTTACCATCATTATCCGGTAAATTTGATGGGTTCAATGAAATTTTTCCGCCACCAAAGGGGTTGC -CAAACTCAGTAAAATCTCCCCCTGGAAAAGTTCCATAAAAAATTAATAAAATAAATTGGTCTAAACTCTC -ATTTAAGTACAATGTAGAGCCCACACCATTTGCTGTTCCATCAAAAATAACCGAATACCTTTTATTAAAC -TTGTCATCTGCGTATAATTTAGCGTTACTTTCGGCCATATTAGCTTTTGATTGGGCACTTTGAACAGTTT -CAAAAGGTGTATTGTAATCATTAATAGCTAATTCTGACCACTCAGACCATGAACCCGCTTCTTTTCTTTT -AACAAACACTTTATTTGTACCGTTCGGTCGATAAGTCATACGCTTGTAATCTGAAGTTACTACTAAATAT -TCGACAGTACCGTTAGTACTAACACCTCTTGGATAATTTATAGCTTGCGAAACATAAATAAATTGGGTTG -AATCACCTATTCTTTGTTCTGGATTATTAAAATCAAATCCAGTAATCTGCATTATCTTACCATCATCTTT -AGTAATCTTAGCTTTTTGCCAATTTGAAGTAGAACCACTTGTGACTAAACCACCACTATTCACTGACTGC -TTGAAGGCTTCATGTTTCTCATCCATATATCGCTTTTGCTCATCGAATGTTCTTGAATATGCTTGCGCTT -TATTTTCCAAATCAGATATATGGCTATTAGCAAGTTGCTTTAATTCATCTATACTTGAAGATTTTGCTAT -TTGAATATCTGATAGACCTTTTTCTTTAGCTTTTTCAATCAGACTCGCATAATCTTCACCATTTTTTATA -GCCTCGTCCATTGCTTTCGCACGATCCATAATAGTTTTTTCTAATTCCTGAAATTCAACAATATATTGTA -ATTTTGTTTCAGATGGAATCATGCTAAACAAACTTTTTTCAACGTTAAATGTGATAGTTCTCTCGACAAC -TACCACGTCTGAATTCCCTAATTCTGCAACCGAAACTTGAGCTTGATAACTTCCATCTCGTTTAATTACA -TCATTAGGTAATTGAAATTTTAATACGCCTTTAAATGGATCTAATATTTCTAGTGGAGCAACCACCATAA -CTCCTTTACCTCGAATCGCTATTCGTGCTTTGATATTTTCTTCACTCAATAATAACGGTTGATTATTTTT -AGTGATATTAAAAAGAAGAACAGAAGAATTACTCTCTCCTGTTCTAAAAGTTATATCTAGATTTGAAATA -TTTTCATAATGCGCTGTGTTTTCTAAATTTATAGCTACAGATTTCTCTAAATTACTCATTAACTTATAAT -TCTCCCTTCGTGTAAAGTCCATGGCCCTGAACTTGTTTTACTATCATAATTTTTCAATAGTATCTCAGCA -GATGCTGTAACACTATTACGAACTAGCCTATGAACAAAGCCACCTGTATTTGAAGCTTCTACATATAAGT -TCCAACCAGCTACCCCTTTACGTTCAGTTGGAAAATCTGTAAAACGTTTTGTATCATCCGTAGTTAAATA -AAACGACATGCCTACTATGTTAATATCTGACATTTTTGTGATGAATGAAGGTACTCTCTCCCATTTACCA -CTATTTTTAGGCACATAATTCCAGTCCGAAATGTCTCCAGTTCTTCCAGAAAGCACCCTTTCAAAAGTCA -TCATATTCCTTGCATAACTATTACGCGTCAATATCTGAATTACATCACCGCCAGTTTGTGGTGGCTTAAC -TTCCAAGAACCAACCTGCATCACGCCATTCTCTTGGTAATGGGAAATCATCGATTTGAACTGTATGATCA -GTGTATAAATAGTAAAGACCTGGCTCTGTTAACATCCCAAGATTCTTAAGTTTATCAGGCCTCATTGGTA -AAGGTTTAACTCTACCACCTGTGTCACTCATGATAAAAGGAACGCCTCTTGAGTGAAGTATTTCTAAAAT -ACCTCTTTGCCCAATCATGAAAATACGATGTGTTCTATTTCCATCACCACCGACAGTAACACCTAGCATC -AAAGCTTTTTTACCACTATCTTTGTCATAGTATATTTGCAAACCTTCTGCTTCCGCAAATTCGCCAGGAA -ATGAATCTAGTGTTCCACCATAGTCAGCATTAACCTGATACGCTTCTTCTCCTGTTTCTAAATCGAAAGC -CGTTAAATAGTTTCTATTATTTGGATTACTGTCTCCTGTATACCAATACAAGTATTTTTCATCAAAAGTC -ACACCCTGCATTGGTTGGGTTTCGTTTGTTAGTCTCATAGGGATACTGATTTTATGCAAAACTTTATCAA -TATTTTTATCAACATCGTCTAAACTTCTTATCTCTATATAATTCATTGAGTTTTCAAGTTCCCACTGACT -TCTAGGTCTCTCAATTCTGTATAGAATTTTATTTTCTTTTTCATTTATGACAGGGGTGATGTAGGGTTTT -TCTGGGTGTCCTGTAAATACATCTTGCATACCATACTTGCCATAGCTAATTTCCACATTAGGCGTATACT -TGAAACGAACTAATGTATTCTCATTATTACCATTTAAGATAAAACTATAAATCCATAACTCATCATCAAT -ATATCTATAACCGTTATGTGTACCATGACCCCCACCTACAATCAATGAGCTGTCTATAAATTGACCATTA -GGTCTTAAACGACTTAGCATATAGCCATTATTTCTAGCTTGTGTCATGTATACTATGCCTGTTCTATTAT -CAAACCAGAAGGATTGCATTACTGCATTTGTAAGAGGTGCAAGTTCTGTCACAAATAAAAATTCTTGCTT -ATCAGGTTCAAAACGATACTCGATATCAAGAATTTCTTGTTTGGTCTTATTTAATTCTCTTATAGTTTCC -TCTTTATTAATTTGAGTTTTGGTTTCCCAATCGTCTAAATGTTCTTTTAATGTGTCAAAGGTTTCGCCGT -TTACATTAACTCGAGCTTGAACAATCTCATTAGCACTGTTATTACGTGGTGCCACAACAAGTGCGTTAAT -TTGACTTTGTAAAGATTTGTTTACTGCTGCTTGCGATCTACCATTATAATAAATTTGCTCAGCGAAGTGT -TGAATTGTTTTAGCTTTCTGATGCAACTTAAACTCTGTTGTCAATCCAAGCGCAAATTGCTCTATTCTTT -GCAGGTTTTGAATTTCTTTAGCTCTATAATCTCGTCCTGCTAAAGCCCCCAAATCTTTTATTAAATACAA -ATTTTCCATAATGCACCTTCCTTTCTAATAAAATAGCACTGTACCAAGTTTCCCACTATCGTCAACTGTT -ATTTTCCACAATTTACCGTTTGGGGATTTCTGTACAATGCTATTTTGAATAATTCCTGCTTCGCCTATTT -TTAAATTATCTAATTTATTTTTATCATCTACCGAAATGATACCGTCTTGAGGCAATCCATCAATATCACT -ACTGCCTGCATAAGGTACCCCATTTATAGCTTTCCAATGTGTAGCTGGAAAGTACTGTTTATCGTTTTCA -AGTAGCGCTTTGATTTTAACTTCTTCTGTTGCCATTATATTAATACACTCCCTATATCCATTGTCTCAAA -AGGAGAATTCAAAGTACTAGTGTATAAATGATTTATACGATTTGCTTGATAGTTATATCTATTATCTTGT -GCAATAACTCGTCTGTTAAGCGCTTGTTGAATTTGTACCATATCTTTTATTTCATTGCTGAAAGACACTT -CATCTATTGCGTTTACAAATGGATGTGACCTATCAAGTTTAACAACCTTTAATTCAGTGTTATATCCCAT -TAATTCATGAACAAAAAATACGCTATCTCTTGGCTCTATTTTTTCATAACCTATATAATTAACATCTAAT -TCAGTCTTAGGAGTATCATTTATTTGCTTTTTTGCAAATTCTAACAGCTTATCCTGTGTTTCGATATCTT -CATTTGTTTGCGTATTAGCATATCGAATCCCAAACTGCTTTGCACTATCTGCGACGTAGTCGACAATTGC -TTTGTATTGATTGCGACCTGAATTATCAGCAATTAAATTTAAGACTGTTGATTTTTCAGTTCCAACATAC -ATACAAGGCTTAGCTTTTTTATTTGAAGATATATCAATTCTATTTTTGGGGTCTTCTCCTAAAAATATCA -TTTCTAAAACGTGCTTGCCTTTATCAATATTTTTTATTAAATCTATTGTTTCAGACTGAACCGACTTAGC -AAAGCAAGAAATTTGCTTAATTTGTTTGCCGTCTAAAATCAACTTATATATTCCACCTTGGGAACCTTTT -TTGATTGTAAATCTAACTGTTTCATTACCATACTTGCAATCAAAGTTAATAGTAGCTTTAGACCCAATTG -TTTCGGTACGATAAGTACCTTCTTTTATAAAACCATTTGAATATTTAATGTCAGTTGTTCTAATAGGGTT -ATAATTTTTCTTTTCCTCAGCTGTGTACTTTTTCCCAAAAACTTTTATAGCTGTTCTTAATTCCAACGTA -CTGACAGTAGCAGACACAGTATCAGTATTATATTGATACCTTATTACTTTTTCGCTTCTTTGATAGAATG -TTTCAGGAGAATAAAAACCAATCTCTGTATCATTTGGGTAAATTATACAGCCAAACAGGTCTACCGCTTC -TTTACAGTATTCTAAGCCGTTTTTGTTACCTAATTCGTCAATCGGTACTTTTCGCTTAAAATCTCCAATT -ATTTTATAGGTCATTTTGACCGAAGTTTTTTGATTTGCAAATCCATATCTTAAGTACTCATCTAAAGAGT -ATTCTGGCGTTTTACCAGTTTCGCTACTGTCGTCATCAAGCTTATTTGATTCCACTGAGTGATTTTGAAA -TTCATACATAATGTGATATGCCGTAACTTCAATAAAAACTTTATCACCTTCAACCTTTGGCGCTGTCTGC -TTAATTGTATATTTTTCACCATGATAAATTATGAAGTTTTCACAAATCAATAAATCAAAAACAAAACTAT -TATGAGTAGTTCTATAAACTGTAAAGGTGATGTACCTAGCTTCATTCAGTTCATAATATTCTTTAAAAGA -ACCATAATCTACATCTAGTAAATTTTCACAAATCAATTCATTAAAATCCATTACTGATAAATGATCATGA -TAATCCATTAAATCACCTACCTATAAATAAAAGGAAACTTAAATGTAGTTTTAATATCACTGACGTCTCC -TTTAATCTTAAATTCATTTTTACCTGGCGCTAATGTTATAATGCCTCTATTTGTATCAATTCCCACTCTA -TTTATATCTCGATATGCATACACACCATCTAAAACAAAATCAGTGTTTTTATCTATACTTTTGTTGTACT -TAAAAATATCACCTGTTGTATAGTTAACCAGTTCAAATCCTCCACTCGCATTTAAATTAATTAATATTTT -CAAATCGTGCTTGAATCGTGGATTTATCGTATCAGTAGAACCGTTCCAAATAGTAAATTGATTTGATGTA -TGAGTATATTTAGGTGTGAAATCAAGAGGAATTCCATTTTCAAACATCCAATTAGAGTCGAATAAGAACT -CGCTATCGGTCCAATTAACTGATTCAGAATACCCTTTATAAACATTTAAACTTACTTCAATTTCAGTTGA -AGAACCATCTTTTAAATTAGATGTAACATTAGCTGTATTCACTGCATATTTAACACCAGGCATTTGAGAA -GTAATAACATAATAAGGATGTCTGCGATTAAACACAGATCTAAACCAATGCTCAAATAAATTTAAATCTA -TAACATCTATACCATCATAGCCAAACCTTAATACTAATGAAAAAGGCGCAAAACTAATTGCGCCCGGTAA -AATACCATCTACTCCGTTAATAGTTACACTGTTATCATTGGTGTTTGGACTTTCAGCCCTTGCATCTAAA -AATATAAGCTGATTAAAATCTGTTATTACTTCTTCCTTGTAACCATCTATGATTTTTACAAAAGATTGCA -TTAATTAGTCAAACCTCCCATATAATTATTTGCATTTGCTCTATGCCCACTTTGTTTTGACAATATTTTT -TCTAAACCTCTAATTGCATCATTAGAACCTAAGTTATTATCCTGAGAAGAAACAGTTTGAATCAATGCAT -CTGTTAATTTATTTCCTTTATCACTTAACATAACAATTTGTTTCAACAATTTTTCAACTGTTGAAGTATC -ATTATTTACAGTGATGTTATTTGGCTTGCCATCCATACCGATGATGCGCATAACCTGTTCAGTTAATTGA -ATTGCTCGTTTACGTCTAGTTAAAGGGATAACCATCTCCTGTTTATCTCCTTCACCCACTTCAGCAAGTT -GATGCTTTGTAATCAAACCACCATTCGCATATCTTCTTGGACCACTTGGAGACCAACCACCTCTTGGGTT -AAACTGTGAGCGCCAATAGCTGTTGTTAAAGAACGCTAATAACTGATCGTAACCACTATATATATTGTTG -TGACCTCTAACAGCATAATGTCTAAATGTTTGTGGGATATATTGAAGCAATCCTTTTGCTGGATTGCCCT -GTAAAACGTTGATGTCTCTAAGCGCACTAGATTGAGTTATACCTGCATTTCCTCCTGATTCGTGTTGAAT -CAAGCTAATAATATTTCCTACATCACCCGAAGTAACATTAACACCCATTCGTTTTGCTGCACGACGTATA -TCGCCTGCCCAAGCAGATGCAGCCTTATTAACACCTGAACCACTTCGAACGCCACTACCTTTAAGTGACT -TCAACCATTTTTCTGGATCTTTAGCTGTATCATTCCCTGGATGCGACCCTTGCATCAATTGGAAATGTAA -GTGTGCTCCTCTAACGAAATTACCTGTAGCACCTGATTTCCCTATCAGTTGACCAGCTTTAATACGTTGG -CCTTGTCTTGCTAATTGCTTAGATAAATGCATATACCAGTTCCATTCGTTAGCACCGGTCTTAATTTGTA -TAGAATTACCGCCACCGTAATCAGTCCATACTTTATCAGCTATACCGCCTTTAACAGCATAAATGTTCGT -TCCAGTAGGCATTTGAAAGTCGATACCATAGTGACGACCGCCATTAAAGTTAAGTCCACCTGTGTAGCTC -CCAAACCTTTGCCAAATTGGATGGTCAAATAGATAGCTTCCATCGCCTCCACCACCAAAATCTTCAAACC -ACGATTTTACTTTGTCTACTAATTTCTTTTTGAGCAATGAGTACGCGCCTTTAGCAATTTTTACTGTAGC -GTTAGCTCCGCCTCCAAAATTAATATTTAAACCTGACATTACTTTATTTACTAGTTTCCCTGGATGTTGT -ACATAATCCCACACATCGCCGATTTTATCGCCTAACCAAGATGCACCATCTTTGATTTTATCGCCTGCGG -CTTCAACCATTTCTTCTGCACCTTTTTTGATATTATGAGCTGTGTTTTTAGCTTTAGAACCGAAGTCCCC -TGCTTTTTTACCAAGATTTTCAGTAACTTGTTCCATCCATTTTTTCTTTTTCGTACCACCATGGAATTTT -GGCAAAACACCCATCCGCTGTAACTTCAGAGTGTCATTGGCATTTATTACACTATCTCCAACTCCTAGTG -GAACAACCACATCTCGTCCTTGGGGTGCATGGAATGTTCCGTCAGCCCTGTGAATTACTTCTTGAACTCC -ACCGCCTGGGGCGTTTCCAGAACCTCTATCATTTAATACAGCAAATGTCGGTTGCGTTAATGCTCCCGAA -TTATCGGTAGCTACACCCTTTCCTGCTAAAGTACCAGTAGACAATGTAGGTATTGGCTTGATGAGATTTT -TATCAGTAATGGCTTTAGATATTTTATTAATACCGCCAATCATGCTATTCAAACCGCCAATAGCTTTATT -AGCAACATTTTTACCTAAATCAGCCGCAGCTCTTCCCATGTCTTTACCAATATCTCTAATCCATTCATAT -GTTCTTGATAGCCATTTTCTAAAACCATTAAATACTGATTTAGCGTTAGACCATGCCGAACTTGAAATTG -CATCAAAACGATCGTGGGCTCTTGAATACATATCTCCAGTCCAACCTTTTAAAGATTTGTATGAGTTACT -AAACCATTTCGATGTTCCTTTCCAAACGGATTTTGCATTCGACCATGCTGTACTAGAAATATTATCCCAT -TTCGAGCGCGATTTATTAGCCATATCCGTTAGCCAGCCCTTTGCACTTTTATATGCATTGCTAAACCATT -TTGATGTCCCTTTCCAAATAGATTTTGAATGCGCCCAAGCTTTATCTGAGGCATCTGAATACTTTTGCTT -AGTTTGATTGTAAATACTTCCTGTAGTCGATTTAACAGATTGCCAAGCTTTTCCAAACCATTTACCAGTA -CTATTAGCTATAGCCTTAGTGTGATATCCTACAGAACTTTTGGCTGAGCTCCAACCTGAACTTAATTTGC -TTGGAATTCCTTTGATTCCACTCCACATTTTTTTCATTTCGCCGCCAAAATGATTAGCATTTCTGCCCAT -TTTACTAAAGGCTTCGCCAGTTTTACTTTTTACGCCGTCCCAAGCATTTCCAAACCATTTCTTTATATTT -TCTCTGTTTCTACGAGCTGTTTCTTCTTGTTCTTTAGCGTACTTATCACTTTTCTTCTTTTGGTCTTCTC -TGAAGTTAGACCACCAACTTTTAAGGCCATTCCACCATTTTTCAGTATTTTTATATACACGACCACTGGA -TAAATCCATCTCTTTATCAATATCTTTATTTTGCTTTTTAACAACGTCTACTACAGCATCTTTTTTAGAT -TTTGCCTTTCTTACTTCATCCTTATGTCTTTGATCAGCAATAGCTAATAATTTATCTTTTTCAGACTTAG -AAAGGTTGACGTTATTTTTTATAGCAATGACATCATCTTCATATTGCTTGTCCACTTCTTTTTTTTTTGC -TTTTCTTGCTTTTTCTGCTTCTTTAATTGCTTTGCTCGCTTCGTCTATTGAATAAGAATTTCTGTTTCTT -TGCATTCTTACTAAAATACGCTCTTGCTCTTTTTCAGTCTTACTCAATTCTTTAACAGTGATGTCACGTC -TTTGATTTTCAAGCTTTTCAATTTCTTTTCTTTCATTTTCTGAAATCTGACCATCACTTAAAGCTTTTTC -TTTCAATTCTTTGATTTTCTGATTGAGTTCTTGCTCTTTTTTAATTCGCAAGTCATTTTTTTCTTTAGTT -CTAGTTAAAATGTTTTGCTTTTCTTGTTCATCGAACGCACTATACTTATCAATAAGTTCTTGAGTTTTTT -CGAGTTCCTTTTTATTTCTTTTTTCTATTTCAGCTATAAGGTTATTAGATAAATCCGCTTCAATTTTCAA -AAGTTTTTTTGCTTTGTCTTCTGTTATTTGACCCGAGTTTAAACGTACTTTTTCCATGATTCTGTTGTTC -TCTTCAGAATAGTGTACGTATTTTTCTAAAGCTTTTTCTGTTTCTTTTGAAACACCTTTCCCCAACACTT -TTACAGTATCAGATGCTTTTTTAGAAGCTGTGCCCATGGTTTGCATAAATCCTTTAAACTTGTTGACTCC -TACTTTCAGAAGGTCATCGTCACTCAAAGATTTATAACCATCTTTCATATCCTTTGAAAACTTTTCTTTG -AAGCTTTTGCCTATACTTCCAAGATAATTTTTAAACTCTCCTAGCTTCCTAACAGCACCGCCAATAATTT -TGCCACCAAAAAACTTTATAGTTTCTCCTAAACCGTTAATACCGTTTCTGAACCATTCCACACGATCATA -TGCGGTTTTAAAAACTTTATATGCAATTGTAATAGCAGTTATTGTAGCACCTATAGGTCCTGTTAAAAAC -TTTAAGGCTACACCAGCAAATCTTGCGCCTCCACTTACTGCAAATAAGGATTTTGCGGCTAATCCTAAAC -CGTTTTTCAAAAGTTTGAACGGTAAAATTGCTAGCTTTGCAGAATTTTTCAAAACATTTATAGGTTTTAA -ATTAAACAACATAGCTCCGGCTAATCCTTTAAAGCCTTTTGACGTTTTTCCTGTTGTAGAACCAAGAAAT -AAGGTTTGAAGACCTAAAGATTTCATTGCTTTTGAATTGGTATTAGACAGTATTGTATTTTCAGCAATGC -GTCTATTTAATGATGCATAGCCTTTAGCAGCACTTCCAACTGCACGTATTAATAAGCCACCAGCAAGAAC -AGCAGGGCCAATAGATGCACCAAAAAGTGCTAATCCTACTGAAGCTTTTCTAACCCAACCAGGGAGATGT -GTAAATCCATCAACTAATTTTGTTAAACCTTCCGCTCCTGCTCTAATCATAGGCGTTAAATCTTTACCGA -CTTCGATTGCTAATGATTCAAAAGCGCCACCTAATTGTTCCAGAGCGCCTTTGAGATTATCTTTCATCAA -ATCTGCTGCTTTTTTACTTTCGCCATTGGAATTCTTTAAGGATTTACTATAGCTATTAATTTTATCTGGT -CCCGCTTCAATCAAGGCTAAAAATCCACTTGCTGCTTCAGTACCAACTATTGTAGCCACTGTAGCTAGTT -TTTGTTCTCTCGTCATGCCTTTCATATTATCTTGGAACTGTCTAATCAATTCACCCATGCCAACAAATTG -ACCTTTAGCATCAGACAAATGAATACCTAATTTTTTCATTTCCTTAGCTGTATTTTTACTTGGATTAGCT -AGCCTGATAAATGAAGCTCTTAGGGCAGTACCTGCTTGAGAACCCTCTAAACCTGAGTTAGATAAAACTT -CAATTGCTGCGGAAGTGTCCTCTATTGAAACTCCTAATGCTTTTGCAGGAGTACCAGCATACTTCAATGC -ATCTCCCATGTACTGAATATCTGCAGCACTATCATTTGCTGATCTCGCAAGTAAATCAGCAACATGATTT -GCATCAGATGCTTTTAAACCGAAAGAGTTAATCGCTGAAGCCATTACAGTTGCAGTTGTAGCCATTTCTG -CACCACTTGCTTCTGCTGCACTGATAACACCTGGCATAGCCTCCATTGTTTGTTTGGCATTAAAGCCTAA -AGCTGCCAATTCTTCCATACCTTTAGCAACTTCGTTAGCACTTTTACTGGTTTTAGCTCCTAAGTCAACT -GCTTGATTAGACATGCTTTTCAAGTCTTTACTGCTTGCTTGCGCAATCGCTCCAACTCGAGACATTTGGC -CTTCAAAGTCTGCACTTGTTTTTAATGCTGCACCTAACCCTAAAGTAATTGGTGTAGATACGCCCATCGT -CATTGTACGTCCCAGGGAAGTCATTTTGTCTCCAATAGAACTAAATTTCTTTGACATGACATCCGCTTGA -CTTGCAAGTTTACCGAAATGACTTTGAGCTATCATTTGTTCTTTGTTAAAAGTCTTCATTTCGGATGAAG -CTTTATCTATTGAACGCTCCAAATTATTTAAAGCAGCTTTTTCTTTATTAACAGCTGTTTCAGCTTTTGC -GACATTAGCGCTATGATTCTTAATAGTATTGTTTAAATCATTAAATTCTTTTTCTGTTTGCTTTAATTTA -GTATTAGTTTTAGCGTAAGAACTTTCAATTTTATCATTTGATTTTGAAAGATTGTCATTTTGCACTTTTA -GTTTTTGAACTTGATTGCCTTCTTGTTTATATTGTTCAACAAGTGCTTTATGCTTAGCGGACTGCTTCTG -TACTGCGTCACTTGCTCTTTTTAGTTGTGCAGTAGTAGCTTGGTTACTATTCTTAAGCTTTTGTTCTGCA -TCTCTCAACTGTTTAAGTTTTTGATACGCATCTTGTTTACGTTGATTTGTACGTTTATATTGATTTTCAG -CTTTTTTAAGTTCTGTATTCGATGATTTTAAGGCTTCTTTAGATTTATCAAGAGCTAATTTTTCTTTTTT -ATTGGCTTCTACTAACTTTAAATATGCTTTCTCAACATCTTTTACACTGGATTTAGCTTTTTGGTAATTA -GCGTTAACTTGTTTAAGCTCATCTTCTACTTGAGAATACATCTTTTTTTGAACTTTAAGCCTATCATTTA -ACCCCTTAATTCTCGCCTGATATTTTTCCATTGATTTTTCAGACTTATCAAATGCTGACAGATTAGCTTT -CATTTCACTATTAACAACACCTAATTGTCGCTTTAAACCTTTCATGCCTTCTTGGACACCTAAATGGTCT -AATTTCAGCTCCAAGGTCATGCCTTCTACTTTTTCATTCATATTAACCTCCTTTCTAGCTTCCAAAAAGT -TTTCTTAAATCCGTACCTGTAATGACTTTTTGTTCACTTTGTTTTTCTTCAGTCTCTTCTTTATTCTCTT -CATTAAGTATTTCTAAAAGTTTTACATACGGCTGTTTTCTGACTTCAGTTAATGTCCACCCATACTGCTC -CATACAGAAACGTTGTATTTTCTTAATGTTCGATAAAATGTCTTTTATTGAGATTGTTCTTCTGTCTTTC -CCATCTCTTCTGGTTCAGTTTCTGAATCTTCTTCATCTTCACCATTGATTTCTCGAAATATATCTTGTAA -GGCTTTTGTATAAGTTTTAGTACTCATCTTGTTCAGAACATCTTCTTCAGTCAATCCTTCATCTTTAAAT -AAATCTACTAATAACTGTCGCTCTTTTTGTCTCATTTTTGTTGCGTTAGGTGCTTCTTTTTTATTCTCTT -GATTTACTAATTCTAAATACTCATAGCATTTTTCTGCTTCGCCCATTGTTACATCTTCTTTTGTATAGCT -CTCTGTTTTTCCTGTTTTACGATCTTTAATTTCAAATTTAATCATTGTATTAGCTCCTTTTATTCAAATA -AAAAAGACGCAGATATACTGCGCCTTAAATCCCTATCCGTTTGTTACTGTCACTGAAATTTGTCCTGACT -TATCGCTTCCATCAGTAGACATAGCAGTGATTACTGAAGTACCTTCAGCTACACCGTGAATTGCTCCTGT -ATTTTCATCTACAGTAACAAATTCTGGATGTTCACTTGTATATTTCAATATTTTATTCGTTGCTGTGCTT -GGTGCAATGTTTGGCTCAACATTGTCATCGGTATTTACCATAATTGATTTAGTTTCTGGTGTAAATGATA -CGCCTGAGACTAGAATTGGATTGGTTTTGAATTGAGGTACATCAACTTTACTAGATTCTTTACCATTTTC -TTCCCATGCCACTTGGTAAGTACCTTTTGGATAAGTTGTATCCGCTTCTAAATTAGATAAAGTTACTGAC -ACTTTGCCTTCACCTTGTTCAGAAGCTACGACGTCGTCTCCTTTATAAACCTTTAAAGTTTTAGTCATAA -ATTATTCTCCTTTGATTTATTTTGAAAGCCCCTATTCTGCTGAAACTGTTGCAGATTTTGAATTAACTGC -TACTTCAACATTTTGGGGATTAGCTGGGTAACGAACCTGCAGAATCCTCTGAATGATCTTCACTGTCCGT -GTATCCAACGAATACTTTTTTGAAGAATTCTGCTTCTCCTTCTTTACCTTCATGATAACCGTATACAATA -CCTTGTGACGTTCCATCAACATCAACTTTTCTATTCATCCAGTCACCTGTTAATTTTGTAGGTTCTGGGG -CTTCTGCTTTTTCACCTCGTGTTTTAAATTCAATTGAATCTAAACTAAAAGTACCTTTAAGTAAGGCTAC -ATATACCGGCTGACCTGTTAAACCATCTTCCGATTCGCCAATTACTGTTACATACGGTGCTCTTGTATTC -TCTCCTACCCAAGATGTACCATTTTTATCTTTAGTACGTCCAATAACTGTGTTTAAATCATCACTTGGAA -TATTGAAAATACTCATGTCAGACTTAACTTCATTAGTACCTTGTTTTTTCATCCATACACGTTTGTTAGA -TGCAAACATATCTACTAAATCTGGTGCTAAACCTGTGATATTTAGGTCAACTGTACCACCTTTTTCATCT -TCCCATGTCATGCGTTTAACTACTTTTGTTGCTTCTGGGTTAAAAACTCCAACGTATAATCTTTTAAAAC -CTACTTTATAAGAACCTTGTCCTTCTGCCATTGCTTATTTCCTCCTTAAAAATTAAAAAGCACACCTATT -CGATGCGCTGATTTTTATAATATATATTTTTGGGTATGCCTTGATATCGTCTCGACATCACATAACGTTT -AGTTTCTTCAAAATAAGCATCTAACTGACTAGATGCTTGAATTAAATTTTGTTGATATAACAGGTATCTT -ATTCGTTTTGTTATATCAATTGTTTTCTGATTATTTGAAGATTCTACATCTATTTGAATTAAGTATTCTT -CACTGAGATATTTATCAGACATAAAGTCTGAAGGCAAATCATAAACAGGTGTAATAACAACAAAGGGTTT -GGAAGTTTCAGCGTTTTCAGTGACTTTGTAATAGTATATTCTAGAATTTATATGTGTTTTGAGCTCTGCA -TCAGATAATAAAATTCCTTTTATGGTGTTTAATATATTCATTTATCTGGCCAACTCCTTTTTTATAATTT -CTCTATACTTACGTTCGCTAGCAGCTAATGTTTTTGCAATAACTCCAAAACCTCTTGGTGTATATTTTTT -TCCATCTCTTGTATAACCATGTTCATTCAAGTGAATAATGTTTTTGCGATTCATAGGGCCTACCCATTCA -ATTAAAACAGCCCTTTCTTGACTGCCAACTTTTGTATAAGGCTTAGATTTAGTCATTTCTTCTATACTGG -CACCCGTATCTTTAAAGCTCTCGAACTCTTTCTTTAAAGCCTTTATAAAAAATTCAGATGCTTCATTTAA -AGCTTTATCACTCTTAGCCTGCATTGCTTGTTTACCGTATACCGATTCTAATTTATTCAACACTTCAGGT -ATCCCTTTAATTTCTACACTCATTTTTCTGATAAAACCACTGTATTATAGCCAATATCTGGTGTATCAAT -TCTTATTTCTACAATGTTGAATAATTTATCGGAATATAATGCACTGTCAATTTTAACTAAGTGATTTGTT -TGTGGTAGATATTCAATTTTAGAAGACCTCATAATTATGGTTAGTCCTGACTTTGATTCAGTCGCTTTTA -AAATTTCTCTATCTTTCATAGAAGGATTATATATTTTACAAAAGCAACTATACAATTTCATTTTTTCCTC -TTCATCTGGATACGGCCCTTTATTTACATATTGAAAAAAATATGCGCGATCTTTAAATTCATTAAATTCC -ATTTAAAAATCACCTACCACTTTTTTAATTTCAAAATCATTTTTTGCAATCCTTTTTCATTAAACACCTT -GCTTCTAGATTGGTCATTTGAGTATCCACGACTTTCATAATCTCTTGCAATGATATATTTAATCGCTGTA -CAAAAAAGCGGGTATTCCAAGTCATCTTTGTCATAATCTGGAACCCCACTTAATAGTAATTCAGACTTAG -CCGATTGAATGAGACCTTCAATTAAATCATTTTCGAAATTATAGTCAATTCTCAACCACAATTTAATTTC -TTCTAAACTCATTTCATCACCCCTATTCGGCTGATATTACAGCTGATTTAGCCTTAGCTGTTACATTAAC -CTTTTGGGGCTTAGCTGGGTAATGGACCTGTATTTTCTTTTGCTTTTGCAATTCTGAATGCACTGTCTAA -TGTACGTTGCTGATCATACCATGCTGTTAATACAAACAAATATTCGCCTTTTTTAACATCTTTATCAGTG -TCATAAGTTGTTCCATCATAGTTAATTCCAAAATAATTGAAATCTCCCACAATAGGTTTAACTGCTGCAT -CTGTAAATACTACTGGTTTGCCAAATACTTTTTCTGCTGGTGTGTCAAAGAAATTTGTTGTTCCATTTGA -AAGAACACTAATAATTTTGACATAATCTGCATATCGCATATAAATTGTTGCGTTATCACGATAATCTTCA -TGTAAATCTGCTAAAGCGTTAATAATAGCATCATACATGTCTGCTCCCTCAACTTCTTTAACAGATCCAT -TATAAAATGACATGTGTTCTAATCCAGATTTAGGACTTACTGCTAAGGCATCTTTACGCTCTTTAGCTGC -TAATCCTGATTGTAGTGCGTTTTCAACCCAGTTTACTAAATCTACATCTGATCCATGAATTACAGTATCT -GAAATTGCAGCAAATACTTTGAATTTATTAGTAGTGAACTTGACTGTATCACCTTTTGCTTTTAATTCTT -TTGCTGTTTCTACGTCTGTAATGAAATCATCATCGTCTAAAGTGTATGAAACTCTTGGAATCTCTAAACC -TTTAATGTTAGTTAGACGAGCTTTTTCACGTAATTGGTTTTTAGCAAATGGTTCTGAAACAATTTCTTTA -GAAAGTGTTTTTGGTAAGAGCTTATCTCCACCTGAATCATTTCCTGTTGGTAAAGCGTGTAATAAACGTT -GTGCCTCCATTGAAGGTTTTTCAAATTCATTTGGTAAAATCGCGTGACGATAAAACTCTGCCTTAGCTTT -AACCATCTTCTCATTATCACTTAAAGATTGATAAGCTTCTCCTTTATCTTTAACTTTCGCTTTTTCTTTC -TCTTCAATGTCTTGCACTTGTCTTTCAACAATGTTAAATCTTTGTTGTAAACCTGCTTTTTCTGTTTCTA -GTTGTTTGATGTCTTCCATATCAATATTTGGATCTGTTGCTTTCTGACTCAATTCATCATTTTTATTTTT -TAATTGTTGTCCAATCATACCTAAGGATTGTTTTAATTCATATAATGTCGGCATTTCATTTCCTCCTAAT -AATTCATTGTCATTTTTAAAATTTCGCATTCGCGTTTAATTTTTTCTCTTTTTTCTTTTTCTTCTAGTGA -CATACTTTCTTTAGGTGTTTCAACCAATTCAGATGTATCTACATCATCAATTTTAGTGATTTTGTCTACA -TCTTTCTTTAAATCTTCTGGGACGTTCTCGAAACGCTTATATTGCTCTTTAGAGATACTAGCAGCTATTT -CATTAGCTCCTAAAATTTCATCTATCAAGCCGAAAGACAAGGCTTCTTCTGCAGTAAGCCAAGTTTCTGT -ATCTAACATCTGTTTTAAGTGTTCTTGATCTAAATCTTTTGCTTTATCTAAATAAGCTGAATTACTAACA -GCATCTGTTTTTTCAAGTAAATCCGCTGTCTTTCTTAATTCTTCTGCATTACCTACAGTCATAACCCATG -AATTATGAATCATTAAAAAACTATTTTTGTGCATAAAAATAGTGTCACCACTCATAGCGATAACACTAGC -AATTGATGCCGCTAAGGCATCGACATAGATATTAATTTTTGCAGGATGCATTTTTAGCATATTGTATATT -GCATGCCCTTCAAATACACTGCCTCCAGATGAATTTATATGAACATCTATTTCACTGATGTCTCCTAGTT -CATCTAGTTTATTTTTGAAATCTGTAGCAGTTACATCACTTTCAAACCATTTATCACTTACAATATCACC -ATAAATAAATATTTCACCTTTACTTTTTGATTTTCTTTTCATTTGAAAATACTTAGCTTTCATTGACATT -TTTATCACCACCTTTCAAAGATTTTCTTAATTCAAGTGGCGTGTCAATTGGGTATAAATCACCGCTTATT -AGCGGCTTATCTCCACCTTCAACTGGTGGTAAATCTTCCCACTCTCTAATGTCATTTATAGTGTAGTAAC -CACTACGAACTGCTTTAAAGTACACTTCTGCTTGTGTTGCACTATCAGCCCTTAAATAAGATTTAACGTT -AAATTTAAAATACCTATTTTTTTCTCTGTCTGTTTTAGTAAGTAGTTTCCGATTAAATTCTTCTTCATAC -TGTTTGACGATTGGCAATAAGGTATGCTGCAAGTAAAATCTGTTTAACTCTTCATTTTTCGCGAAATTTG -TATTTGATCTTGCATTTAAGAATACTGAGGGCAATTGAAAAACGTTAGCTACTCTTTCTCTTGTTAAATT -CTCGCTTGCCACTATATCTTCAGAGACATATTTTTTAGGTAACGGTTCGATTTCAACACCAGGCTCTTGG -AATAATACTCCACCGTTTTCTTCATAGTACTGTTTGAAATCTTCTAACACTTGCTGCCTTTTTTCTTTAC -CTACATTGGAACCATATTTAAGCATGAAAGAATCAGGTTTTTGCATTTCTGTAAGATTAAAGGTTCTTAC -TGCATTATCAAAATCAGTTGTATTCTTCAACACATCAATCGGACTAATGCCTTGCACCATATTAGATGCC -ACGATGTGTTTAAAATGCAACATGTCCATATTATGAACAATCAATTTATTTCCAGTTGCAGCATGAATGG -AATAATAAAGTTCACGTGATTGGTTTTCAATTAACATTTCAACAACATCTGGATTTAATAAGAAAAGCTT -TGATGGTTGATGATAGATGTCTCGTTCAATTAGCACATATGCATTACCTTTTTCATTTCTGATTGTTTCA -ATTTGATTAATAAAATCAAAACTGCTCAGAGAATTATTCGGTGACACTGTAAGTAAATCAGATACTTCTG -TATTAACTACTTTATAATCTTCATACATTTTCAAGGGCAAACTAGCCATCGAATTAGATAACTTTGTAAT -AGCTGAAAATATCGTTTCATTAGTTTCAAGCGTATTATTAATTACACCCCAAAAAGATCTATTTTTCCAT -GGGCTAAAGTCATAAAGCTTAGAAGTTGACTGATCAATCCAATTGTCTATCAATTTTTTCTTTATGCGTG -TGACAATATTCTCTTTTGCGATAACATTCACCTCCTTAACGCATTATGTCTTTAATACTAATAAACTCTA -TGTTTCCTTCACCACTATCAGAAACAACTTTATTCATAATATCTGTATATGTGTTTAAAAATGCTGCAAA -GCCATCTATTTTACGATATCTGCTTTGCTTAGACGGCAACCAATTTCCGTTTCTGTCTAGTTTCAACTGA -ACATTATTGATATACCATTTCATTAAAGGATTATTATTAAATATTATTTTCCCATCTAAAAACATTTCTT -TTAAATCCTTCAATGCAGGGCTCAAGGTCAAAGCTCCTTGTCTTGTTTCTTCCGTTTCAAACCCGTAATT -TTTTAACTCTTGATTTAGTTTGAATGCGTTCGCTCTATCATAAGTAATTTTTTCTACTACATAATGCTCA -TTCATCTTAATTATCCAATTTAAAACATCTTGGTAGTCAATATAAGGCTTATCTTGCACTGTTAATAAGC -CATCTTCTTCCCATTCTCTATAGGGTATTTTTTCGTTAGAATATTCAACTTTGTGCTTAGGAATCCATGA -ATGCGATAAAACTGCAACTTTACCATTATCTAACGCAAAAGTAGCACACGCGGCTGTAAAGTCCTCTGTT -TCTGATAAATCATAACCAATCGTGCACGGTCTGCCTTCTAAATCATCTAAAGCAATCACATCGTTATTTT -TCTGCAATGTTTGATAATCAATAAAACTCATTTCATCGTTATTAGCGAATATGTTAAAACGTTTTGTGAT -AAAATCTCCACGTTCTGCTGGTGTTCGTTTTGCTTTTTCCCACTCTTCTTTCATTTCTTCTAAATCTATA -GAGACACCTAAGTTGGGATTTGCTTTTATCCAGTTTGACGAATCATTCATATCATCGTCATCATCGAGAG -AAGCTAAATAGTAAAAAGTTCTTTCATCTTCTATGACACCGTCTAATATGTCACGTCCCATTTCAACCAT -GTCAACGAGTGGACCATCTAATTGGTAACCTGCTGTTGTAATGTAGATAAGAAGAGGTTGTAACCTTGCT -GCTCTTGAGTTTTTAATTACAGATATTAGTTTATAATCTTTAAATTCATGAATTTCATCGAAAATGCCTA -TATGGGTATTCAAACCATCTAATTTATCACTATCTGAAGCTTGAGGCATAATTTTTGATATCGTTTTATC -GTAATGGATTTCATCTCTTAGAGGTCTAAATTCTCTAGAGAGTATTGGGCTTGCTTTAATCATCGCCTTA -GATTCATCAAATAGAATCCTCGCTTGTTTCATTACATTCGCTAACAAATGAATTTCCGCACCATTTTCTC -CATCTTGTGACACGCCATAGTTAGCCACTCCTGAAATAGTTGTTGTTTTACCATTCTTTCGCCCCATAAA -AATAAGCGCTTCTCTAAAACGCCTTAGTTTCGTCTCTTTATGAACCCAACCAAACAAACTGCCAATAATA -AAATGTTGCCATGGCTGTAATACAAGTTGACGTTTAGATCCTTTGGAGGGTTTACAGAATTTTTCTATAA -AACGAATAGGACGATGCGCTAATTCTTCATCAAATACCCATTTACCCCCATTTTCTAGATATCTAAGGTG -TCTTTCACATTCTTTTTTAACATATTTGCTTGTTTTTATTTTCCCTTGAGTGACTTGCTCTGCATACCAT -GTTGTTAATAGTTTTGGTGAAGGTTCATTTAAAACTTTAATAGTCACCGAATCCACCTTCTTCTTGAACT -ATCTTTTTTCTTTGTGCTGCAGTTAAACCCATAGACTTGAGTAAGTTATTTAGTGTTTGAACTGTTTTTG -TCAGTTCTATGCTTAATGGATTCTTAATAATATTGCTCGCACCAGCCTTGTTTGTATGCTCTATCATTAA -ATCACTATTTTTAAGTTCATCTCTTAACCGACAATAAAATTCATATGTTTCTATATATAAATTAATTAAT -ATGTCATCAGACTTTTTATAATCTTCTATATATTCTTTTAGCTGTTTTTTTGTTAATTTCATATAAAGAC -CCCCTTTCATGAAAATTTATGCGCGTTGCTAGCGCTCTAGTCATCTCCGGTTACTAGAGAATCAAGGTTT -TGAAACCGATGCAGGGGGGATTCAAAAATATGGAAACAAAATTATTTTTAAATTTTAACAAATTTTATTT -TCGTTTTAACTGCTTTTTTGTTGTCGTTTGCGTGAATTTTATTGTGACAAGCATGACAAACAGACATCAA -GTTATTCAAATATAATGCTTTATTAAAGTCATTGTCTAGATAAACTATATGGTGCACAATCTTAGCGTCC -GTTATCTTCCCCTGCTCCAAGCACATTTGACAAAGATAATTATCTCTATCTAATGCTATCTCTCTTAACT -TCTTCCATGCTTTTGAATGATAGAACCAATCGTATTGATATGACTTACGACCATGCTTATAAATGTTATT -ATGCTTGGTCATCTCTTACACCTCTTTGATTGCATAACAAAAGACACACCGCTTAGCGATATGCCTCATG -TATTTATGTCGTATAACTTTCAGATAACTTTATACATCTTTCCGATACTATCATATTAACACAGATTTGT -AAGCCTTTTGCACAATCTTTGCACAATGTTATTTGATACCTGCATGATACGCTATCGCTTTAACAAAGTT -CTTTCGTATTGTAGTAACTGTATTGCGATGCATGTGACAAGCATCCCCTATTTGTTCTATCTTTAGCTTC -TTATCTTTATTCCAATACTTTAACCTTATTACTTTCTTATGATCTTCAGGTAACTTTAAGTACTCACTTT -CAACTGCTTCAACCATCTCTTCTAAGTTACGTAACATCTTATTAGTCAATAACCTTGTCGCCATTAACTC -AGTTGTTCTAACTGGCTCTCCTTTTTGTAACGGTCCATACACAATGTTGGTGTCTAGTTCTTTCGTTGGG -TTAAGTATCTCCATTCTCAATCTATTTATCTCTTTCTTGTTCTCATTTAAATTATATATTTCTGATTCAA -TATATTTAAATGTTCCTGGCTTGATATCATATATTGTGTTCCCCATGTTAGACCTCCATTACTTATGCTT -AGCTATTCTTGCTTTAATAGCTTTCATTAATTCTTCTTGCGTTAGTTCTTTATTTTGTAAAGCTTTATAT -ACTCTTTGATCTATTGTGTTATCGGTCATGATATGATGAATAATAGTCGTATGATTTTGTCCTTGTCTGT -ATAATCTAGCATTTGCTTGTTGGTATAATTCCAAGGACCATGTAAGTCCAAACCAAACAATAATGTGCCC -ACCTTGTTGTAAGTTTAATCCATGTCCTGCACTTGCTGGATGTGCTATAAGCAACTTAATGTCTCCACTG -TTCCAACGTTCTTTATAGTTTGAATCCTCTAATGTGGTTGCTTCCTTAAACCTTTGAAGTATTCTTTCTT -TATCGTGTTTGAAGTTATAAAACAATAGTATTGGTTGGCCTTGAGACTCCTCTATAATTTCCTCTAACTT -ATCTAACTTCTTATCATGTATAAGTCTTACATCTTCCTCATCTGTATAAACTGCGCCGTTAGATAGTTGA -AGTAGTTTCTGACTTAATGATGCCCCATTTTGAGCTACAACTGTTCCTTCTTCTTCCGATTCTAAAATAT -AGTTTTTTTCTAATTCTTCATATACTTTTCTTTCTTTTTCTGATAAGACTACTGTTTGTTTAGTATCAAC -TCTGTCAGGCATATCCAGATAATCTTTCGCTTTCATGCTTAAACATATATCTTCTATTTGTTTATATATC -TTTTCTTCAGATCCGTCTCTTAGCTCCCACTTAAAAATATGTTCGCTAACTTGATGAGTTGGTTTAAAGT -ACCTTTCTCGATAACGACTGAATGAAGACTCAAGTCTTTCACCTCTGTCTATCAAATAAACTTGAGCCCA -TAAATCCTGTAAACTATTTGGACTAGGTGTTCCTGTTAATCCTATAAATCTATTAATGAGTGGTAATTTC -TTTTTTATAGATTTAAACCTTTGACTCTTAGGACTTTTAAATGTAGACAGTTCATCAATTACAACCATAT -CAAATGGCCATTCTTTTTTATATTGATCGCATAACCATTTAGTATTTTCTTTATTGGTTACATAGATATC -AGCCTCTGTGTTTAATGCATCATTTCTTTCTTTAGGTGTTCCTAAGACTAAAGACACTTTCAGATGATTT -AAATGGTTCCACTTATCAACTTCATCAACCCATGTATCTTTAGCAACTTGTTTAGGTGCTATGACTAACA -TTTTTTTAGTGTCTAACAACTGCAATTCACTAAATGCTGTAAGTGTTGATACTGTTTTCCCTAGCCCCAT -ATCTAAAAACAAACCGTATTTCTCATTATCAATCACTTTATCTATTGCATACTTTTGATAGCTATGTGGT -TTGAAATCAATCGCCAAATGTTCCACCTACCATTCTTATAAAAGTATTTACTTGTTCTTTATTCCATAAC -ACATACACTGTATGATCTCTGTTTTCAAATTGCCGATGCACATATTTTTGTAAAGGATGTAACTTTCCCT -TTTCTTGCTTCATTTCTACAAAATATGTTTTTCCTTCTGGCATAATAATAATTCTATCTGGTACACCTCT -TGTTCCAGGTGCGACCCATTTTAAACATAATCCATTTAACTTTGTTATCTCTTTCACTAAATATTTTTCT -AATGTCGATTCTTTCATTTATTCACCTTGTATACAAAATTTATATTTGTGTTCCGATGTTGCATCAATTC -TTGCCAAACTTTTAAAAATAGCTGTTAGAGGGTTACCCCTATACCCCTTTACTCCCTAACACTACTTTTT -AAACTTTATAGTGAATTTGATGCAACATTGGAAACAAACAGGGTTGAACCTTACAGCGAGAAGGGAAAGA -GGTGTTGTATCATTTGTTGCATCAATGTTGCATCACCAAAAATGATACAACACCTACGATTACTTTTTAC -ACTCACGTGTTGCATCACTCAAAAAATGATGCAACATCTGATACAACACTCTAAAATGTATATTTATTCA -ATATTTCTTATATTAAATCCTCTAAACTTTCATCTCTTACATACGCTATCTGTACACCATAATCTTTTCC -GAATCGAATTTTCCCGCTTTTATTACCATCATATACAGACCAATTGTCTAATTGTCTTAAGATGTTTGAA -ATCTTTCTAATTTCCATAGATCCTCTACTATCTCCCTTATCCTTACCAAAACATTCAACAAACACTTCAA -GCGCACAGACCTTATTTCTTTCAACGTAATCTACATTTCCTGTTGGTAACATATCAACATCACCTTGATA -AAATCGTCTTCGTTCAAAGATAGTTAGGTCATCCCAATTGCTAGGAATTGGTGTGTTAAGATATTCATCA -ATAATACCTGTATATGGGGATTCCTCAGTATGTTTGCTTTGTATTGAACGCATTTCTTCTTCTAGTTCAG -GGTTAAGGAATAACTCTTCTCCTTGTTCATAATAGTATTTAGCTTCTGCCCAAATTTGGTCAATCTCATC -TTTGGTTAGTTTAGACCAGTTCACTTCAACTCTCTCTGGATTTACAGTCATTGGCCAAAAACGTCTTCCA -CCAGTTTCATCTCTTAAGAAATCAACTTTATTAGTTGTGCCAATGAAAATACATTGCCTTGGAAAATCTT -CAATATAATGTCCATAAGCAACACGAAACCGGTCAACTTGTTTAGATATGAAATGCTTAATAGCTTCAAC -TTCAGCTTTTCTTGTAGCTGCAAGTTCTGCCATTTCCATTAACCAAACGCCTTGTAATGCCTCATATGCT -TCCTTACCAGTAACAGAAACTAAACTGTCAGAAAACCATGCACCACCTAATTTTTTTAGCAAAGCAGATT -TACCTACACCTTGAGGACCATAAAGTGTAAGCATATAGTCAAATTTACATCCAGGCTCCATTACTCGAGC -GATTCCAGCAGTCAATGCCTTTTTGGTAGTTGTTCTATTCACTTCAGTATCTTCAACACCTAAGTATTTG -ATAAATAACTTTTCAAGACGTTTATGTCCATCCCACGATATTTTATTTAGATAATCCCTTACTGGATGAT -AAGCATTTTGCATTGCTACGCTTATAATGGCATCTTTTGTTTTGCCTGAATGGTGTATGTCATAAATCTT -TTCGATATAACTTCTTAAACTGCTATCATCACCGTCTTGCCATTGACGTATTTTAAAATTATTATTCCAT -GGCATTTTCCCTAAGCATTCAATTTGTTTTGTAAATTCATTAAATACTATTTTTCCTTTTAAATTTGGAT -CATTACGCAATATAATTTCTATATTTGGAATACTAGCTTTGAAAGTACCTTTCGAAGTAATTTCTAACGT -CTCAGACCATACATCATCGTTATTTTCTATTTCGTCGAAATCCTCCATTGCATCAGTCATTTTGTCGTTA -ATTAATTGCTTTTTAACAACCTCATCATTTTGCGCTCTTTGCTGCATTGCTTTATAACTAGGTAGTCGAT -TAACCGGAGTATCTGTTTTAGTGTCTTCATCTTGAGCACCATATAAGTGTATGCGTACTAAATCAAAACT -GTTCACAAGCATACCGCTTACGGGATCCGTATTATGATGAGAATAGGCAAACTTGTTATTTTCGTATAAC -ACCAATCCACCTGCAGTTGAACCTTCATGATAGGTATAACGGTTAGTAGAATGTTTTTCGTATAAATCAG -GAATAAAAGTTTCTATAGCTTCTTCTATCGTATAGGCTCTACAAAATGCACCAACAATTCCCGGCTTTTC -TTCTGGGTCACCTTGCTTATCTGCTAATCTTTTAGTCTTACTCTCTTCCCTTGAAGACGTTGGCCATTCT -AATGTGTCAGTCCAATCAACATATTCATTTAATATTGTATCTGGATCTAACAAAGGTAAATCTTCATAGG -TAAAGAAAAATTCTGCATCATTGCTAGTTGAAGGCCAATACATTAACCTATGTGGTTGATAAGTTGTATC -ATCGAAGTAATCCATGCCAACGATATCTGCCACTTTACGTCCAATAGCTTCATACTCATCTGCATTTACA -TTCCGTTTTAAAGGAATCACTAAACGCAGTCTTGGACTTATCTCTCTATGCTTATGTGTTGAATATAAAC -AGTATGCAAAATCATAAAACATAGATAATATGTCGGTCATATCTTGAGCAGCATAATCGATATCAAGTGT -TAGCATTGAACGATTCATGACTTGACCAGCACGCCGTTTCCCTTCTTTTAAATATCCGCCGACAAATCCA -CCAACATCTTTTATATCGGCTTGTTCAGACTTAGACATTTTATTGTACTCAGTTAAATCTTCTTTAGTTC -TAACTGTTTGTGCTAGCTTCTGCATAAAGTCAGACCAAGCCATATTGTGATTAGTCCAATATGTGGATAA -ACGACTAGCAGCATAAGAATATGAGACATCACGATCATATTTAATTGTTTCTATTTGAGTGACTTTGTCT -AACATGTTCGGCTCCTTTCATTATTTTAGATAGAGCAGAGAAGCCTATCGCCTCTCTTTAGCTTTTGAAT -CTTTTTCTAATTCGTTCAACTTCATTTTCATAATCTTCTAAACCTTCAACACCATTATTTTTTACTAACT -GCTTGAAAAGATAAGCATTCATATACTCCAATGCTTCTATGGTTTTCATCTTATGAGAAATGCTACTTAA -CAAGATCAATAAAAATATAGATAAAACAATTGAAATGACAATCCACATATTTACAACACCTCCAGTGCTA -TTGCTAAACACATTAATATAATTAATTCAAAAATGATAATAGCTATTACCATGAAACTTCAGCTCTGATT -TTTTCAAAATCACTCGGCACCTCTACATCATCATTAGCCGTCATCATAATATATACTTGCTCCGTTACAT -ACTTACCTAGCTCATACATTGCTAGTAAGAATATTAGTCTTAATATTTGTTTAATCATCATTGTCATCTC -CTGTATCAATCAAAAAAAGTACCTGTCTCAACATACTCTTTAACTGTTGTTCATTTAGACTGGCTAACAT -AGGGCTGTAAAATTCACTATCTTCATCTTTAACAGTTTTAATAAAACAGCCTTCAATCTCAGCTTTTTCT -TCTGGCGTTCCATTTTTATACGTCTTAAATACCTCGGTGTGCTTTTCTGGTAATTTCATTTTAGGTGTAT -TAAACATTATTATCTCCCCTCTTTAATGATTTTATTTCTTTTCGAACAAAGAACCTAATACTTCTTCACT -AGGTCTTTCGAATAAGGTCACTTTAGAATTATTAGTGTAGTAAACAATAGGTGTATTTTGTGACTCATAT -TTCTCTTTCGCTTCTTCTTTACTCTCTGCCTCAACAACTGTAAACGTCTGATTATCTCTAGCAGCAGTAA -AATGTTCATGTGGTAGTCCTGATGAATCTTTGAATGTTGTGACTAAGTATTGTGTCACTTCTCATCACTC -CTATTTATTTGATTTCAAAATCAACTTCTATTGGAATAACAACGATTTTATAACCTTCGTACAATCTTTT -GAGTTCATCAAATATTTGGCGCAAACCAATAACATTCATATTTTTACCCTGTAAAATAAATATCTCCTTG -TTCCAACCACGATATATAATTTTAGTGCGTTCTCTCACTTCCCCAAAACCTCCTTGACTCGATCTAAGAT -GTCTTTACACGTATCCTTTTCCTGCGTCTGCTGTTCCATCTTGTCTTTCATGATTCCTTTTCATTTTCTT -TTTGTATGCGTCAATGAGCTGGTCGATAGAATAGTAAGTATTGGCGTACAAAAAAGGCATTATTAAAACT -TGTACAATACTATTATCAATACCTTTTACAAATTGTTCTGTTAGTGTATGCATTACATGAACAAAATAAA -CTGAATGTAGTTTAGGTAAAGTAACTTCATTTTCAAACAAATCAACCATAACCTCAGTGGTTTCTTCCAA -ATCTTCTTCATTAACAATAGTCAGAGTTAATTGCAAACTGAAAGCTAAGTAATCAGCAATCTCATCTAAT -TGTGTATCTAGTGGCTTACCTGGTTGTTTCTTCCAATTTTTAAAAAACTCAAGTGTGTTAATCCACTCTA -CAAATTCAATAATCATACTAGCTACTGTGTCATTTAAATTTCTAGTTGGTATTCTATCGTCGAACTCCTT -TTGTATTTGTAATAACTCTTGTAACTGATCAATTGTTAATGTGTTAGTCATTTTCCTGCTCCTCCTCATA -TTTATAGACAACTTGACTCGTCATAATCCCTACTGCTTCATCAAGATAAATATCTCCTTTGAGTGCATCT -TGCATAGCATTAGGTAAACCCTCAAGTATTTCATCAAACGCTTGTGCTTTCTTATACACGTCTTCAATCT -CTTTTAGTAACCCCTCTGTGTCATTACCGTTATACGCACTAGCACTTATAACGGATTGTTCTATTTGTTT -ACGGTTATTCATTTGTGTCTTCCTCCATTTGCCCTAAAAATTCGTAGAACTCATTTGTTCCGTCTAGTTC -TTCCATTCGCGACAGTATAATATCTGCAGTGCTTTTACCTCCTATATAGAGAGCTCCTATCCTGTTCGCT -TTGCTCTCAGGGTGTAGTTCTCTAATTTTAAAACAGTAATGTTCGTATCTTCCAAGCAATTCATTTTTGA -CTGTGCGCCACATGTTCTCCAGCTCTTCGTTACGTTTTCTTAACTTAGCTATATCCTCGATAAGCTCATC -TCGTTGCTTCTTGTACTCATCACGTTCGTCTTTAAAAACTTTTGATTGAGCTCTAAAGTGTCTTATTGCA -CTTTGCTCATCAGTGATAGAGTCAACATTTTCAGCTCCATGTTTTTTCATGAAATTAATTAATTCTTCTC -TTGTTGGTTGTATCATTATATTGCCTCCACTTTTTCGACTTCTATGCTTGCAGTTTCGAACGGGAGCTTT -TTACGAATCAGTTTTAATACCATGTTCGTGGCTTTTTCCTCATTCGTACTTTTCACGAAATAATGTTTCT -TTAATTTATAATCACATTTAGATGCAAAGAACTTGATACAAAGACATACTTTATAGGTTTGCATCATACT -ACCAACTCCCCATCTTTCCAAATTAATGTCATAGTTTTATCTTCGTTTAGTATATAAAACGCTCTGGAAG -TACCGTCTATCAACTCTCTGATTGAATCATTTTCATATATTTCAAAACCTTCAATATCGTTTAGTTCTAC -TAGACAATCAAACTCAGTATCTTCAGTGACTTCCTCTGTGATTTCTACAGTAAAAATATCTTTATCTGTT -ACTACTTTTGTATAAAACCCATGCCCATCAGTTGAAAAATGTACTTCGCTACATTCTCCAAGCGTGCCCA -TTCTATCTGATTGAAACACTTTACTTTCAACTTGTTCAGGATTGTTCCATGCCCATTCCACCAGTTCGAG -TAGCGTCATCTTCTTTTTTCTTTTAATCTTTGCCATTATTTCCATCTCCTCTAAAATAAAGTTGGTTGCT -TCTGTTCCTCATATTCCAAATCATGTTGCTTTATATATATTTCGAGCTCTTCAGCAGTATCAAATGTCTT -TTTCACGCCTTTAAACATCGTTTTATAATGTCCGTGAAAGTAATAAGTGCCATTGACTTCGTGAACATGT -GCCACTCGTTCGTTATCCTGATACAGATATCTTTTAGAGCCGAAAAATTGGTTTAAGCGTTCTTTACGTG -CGCTATCTGTCATGGTCGTCACTCCTTTTAACAATTAGGCAGTCCAAACGACATGCATTCGTAATATAGT -TCTTCATTCCTTATGCTTGTCTTATAGTTCTCAATCACATTGCTAACTTCTTTATGACTCATTGCTTTAA -CTTGTTCGTCTGTATATTTTTCGCAGTCTTCTAATTCCAGTTGCTCCTGTAATGACATTACGTAATCAAC -TTGTTTTTGCGTTGCCATCGTTACCCCTCCCACAAGTCAAACACTCTATCGACGTAAAACTTCGCCTTTG -CTAAATCCTCATGACCATTCTTTAACGGTGCTCTAGACAAGTATTTGATTGCATTACCTATTGCGAATGC -TAATTGTGGTGGATACTGTGCCGTAACTTGTTCGATGAAATCTATAATTTCAATGTCGCCGTATGTGTAA -TGCGCAGGTTGTTTAACATTGTCTTGTGTTTCATTCATATCTACTTTTCTGTTACTGATTATGCTCATTA -TGCTTCACTCCATTTCTTGAACATTTGGTTATAAGTGACATCGAACCAGTACGGATCACGTGAATGTTTT -TGAGGCGTTCCATCATAAAGCCATGGTCTCAATCTTCTCTTTCTTTCTTCTTCATATTCCGCTCTCACAT -TTCGTTGGTATAGGTTCAAAATCGCTTTTTTTCTGATTTTTTCTCTCTCTTTTTCTTCATCTTTTATTTG -ACTCTTCATATATTCAACTTCATCTTTAGATTTTGAGTCTTTTCTTCCACACAATAATTCATCGCCGCGC -ATTTTATGTTTGTATCTGTATCTAAGAAGTTCTGGAGATATATGATATTTTTCTGAAACTTCTCTCAATG -TCATTAGTTTTCCTTTGATACGCACTCTTATAACTTTTCTTCTAGCCATCATTCCACCTCTAAATCTAAA -ACCTTGATATTTATAACGTTATATTTTAATAGTTCACCTGGATTATTAAATAAATAGTCCGCCAAATTCT -CTTTTTCTTTATCAATCTGATTGTAATTAACACTTTCGACTTCTGTAGGAATTCTAATGTCAACAGAAGC -ATTGATATAAGCTTGATGTTGCATTCAATCACACTCCTAATCCTTCATATAAAACGGAGAAGTAAATCCG -TCACTATTCAAATTCAATCCTTTTGCCCAATCGACAGGCTTATTCATGATAGTTTCGATTTCCTTAAGTC -CATTTGAACCTCTAGGTATTTCTACAATTACTTCATCATGGACATGTCCAACTATTTTAAAACCTGATGC -TTCAAGCCTAGCTATAGAAATCGCAAGTAAATCCCTTGCAGTTGCTTGAACAATATTCTCGACTAACTTC -CCACCATACGTTTTTAACTTTGACCATTTACGGTTAAGATCTAAGCCCATAAATTCAACAACTTGACTAC -CCCAACTATTTTCACCAACTGAAGCTTTTGGATAAGCTAAAGCTCTTCCACTAGGCAGTTCAATCATTAG -AAAACCTTTTTTCATATAAAATCTAAGTCCATGCGTATGATGCGTCTTTCGGGATTTCACAGTATTAATT -GCAGCCTCTTGGCAAGCCTTCCAAAAATTAACTATGTTAGGATTTGCGTTACGCCAACTATCAACTAAAC -CTTGTAATTCATTTTCTTCAATGCCCATTTCCAATGCACCCATCGCTTTTAAAGCTCCAGCGCCACCTTG -ATAACCTAAAGCTAATTCGGACACTTTTCCCTTTTGTCTGAGAGGGTCGCCTTTAGTTATGCTTTCTACC -GGGACATTAAACATTTGAGAAGCCGATGCTTCATATATCTTTCCGTGTGTGTTGAACACATCTAAACGCC -ATTGTTCTTTTGCATACCATGCTATGACTCTTGCCTCTATTGCAGAAAAATCACTTACTGCTAGTTCATT -ACCTTCTTCAGCAGTAAATGTCGTCCTAACTAATTGACTTAATAAGTCTTGAGGATGAACATTGAGTAAT -AAATCTAAATCGTCAAAACGTTGTTCTTTAATAAGATCTCTTGCTATTTCTAATTCAGTATCTGAAATAT -AATGCTTTGTTAAATTCTGAAGTTGTACACCTCTACCTGCCCATCTTCCAGTACCGGCACCGTAAAATTG -AAACAGACCTCTTACCCGTTCATCACTGCACATCATGTCATGCATTTTGTTGTATTTTTTCACACTGGTT -TTAGACATTTGCAATCTAATTTCTAGCATTTTTTTAGCTTTTCCTGTTGCTTCTTTTAAGTACTCCTGAA -CCGTTTTCTTTTGTAAATTAGGTATATCTAATCCTTGGTCATTCTTTAACCAAGCCAATAATTGTGTAGG -ACTATTAGGATTTTCTAAACCTGTTATATGTTTAGCTTGATTAAGCAATTCTTCTTTACTCTGCTTATCG -AGCACATTAGCTCCTAACATCAATGATTTAGAAAGCTTAATACCTCTGTCGTTTATATGTTGGTCAAAAA -CCCAATATGCTTGTTCAATTGCAGTTACTGGAAAGTCTTTAATTTTATGAGCAATCGTCATTTCTACTTC -TACATCTCGAATACAGTAATCTATAAATTGTTGCCATTTTTCAAGATCATGTTCAGGCAAGTTTCTTGTT -CTTCCTCCATTAACTTTTGTTGGTTTACAAGGTATAGAGAAATAACGAATTAAATTTTTACCTGCTTTAT -CTTTTTGGTTTTGTAGTCTTAAAACTTCTCCAACTTTATCAAGCGAAGCAGGTAAGCCAATACGCATTGA -ATTAACCATTGTGCAAATCCATTCTTCAGGTGGCATCTGTTTATTAAAATGTTTAGCAAGACAAGTTCTT -TCGAAATTAGCATTGAATGCATACTTTTTTACAGCAGGATCAAAAAGAGCAATTTTAAACGTCTCAAAAT -CAGCGTGGAAAGGCTCATTATCTACTTTAGTCATGTCAATCGCACTAATCGCTCCACCATCTATTGAATA -AGCTATAATTAAAATTTCGAATTCTTCAGCTTCTGTGTATTTATAGGCACCACATTTCGAAATATCATTA -CTGCTATATGTTTCAATATCTATATTCATAAATCTCAAATTCTTGACACCTCAATTTCTTTAAAATTAAA -GTGGGGCTAAAACCCCACCTATTGACTTATAAGAAATCCTCATCATCAGTGTCTAATTCATCGAAATCAT -CTTCTGCTGCACTTGCACCGCCAAGAGGTTCGCCTTTTTCTACAAGTTGAATGTTGTTCAATCCAACTGC -GATACCCTTATTACCATTTGTGTTGAAAGGAAATAGATTAATTGAAGCTCTAATATAATCACCACTTACA -ACAGTTCCAGAATCCGTTAATCTAATTTTGTTTTGGTCAATAATACCAGGTGCTTGTTTGCTTGATGCGT -TAATAAAATAAGCGTCTTGATAATTGACATCATCTTCTCTTTCAGTATCTCCATCACGTAATGGAAGTTT -CAGATTTGCAGGAACTTTGCCTCCAAACTTACTAACTTTTCCTTCTTCTTTAGCAGCTTCTATAGCTTGT -TCAATGGCTTTTATCGTACTTGTATCTGATTTAGGAATGATTAAACTGATTGAATACTTTGATTCTTGCC -CTTCTTGCATACTGTGAGGTTCAAAAATATGTGCATATGATGCTCTTACTTTTCCTGTAATCACTTTAGT -TTTATTTAATACTTTTGCTTTCATGTTTATATACCGTCCTTTTAAATTTTTATAGTTTGTCAAAATCATC -TTCAGCAGATTGCTTTATAGCTGGTCGTTTATCCGACTCGGTAGCAAGTGTTAATTTACCTTGCGGCTTT -TCTATAAAACCCTCTGTAATTTTAGAAAATGCTTTTTTACCAATTAATTTTTCTAAATTCGTAATGCTAA -GTAACTTGGTTTCTGTAATATCTTCAGGTTTATAACCCGCTTCAACTAACTTTTCAAGCATTGCTTTTGT -ATCAGTTATCATTCTTCGTGAACGACCTTCTACAAGCTTCCACCCAGGATAGTTTTTATCATTTTCTTTC -GCTTGATCTAACGCATAATGTTCTACTTCATCAGCCCATTTTTTGATATCAGGCAGTTTATATAAAAGTT -CTGCAATCTCTTCATCACTTAACAAATGTGGTGGCTTTTGAGGCACATCTTGCATGTATTCTGCACGTGT -TCTACATGAATGCTTTATCTTACAGAATCTACAATGACTACCTGCTTTAAACTCACCTTCACCGTTATAA -GCAAGTCTGGCTAATGGTTTAACAAAATCGGTTCCCCATTGAAGTAATCTTGATATTGGTAACTCTTCAG -TAGAAAAGTTATCTATTCGTGGTTGTATGATAGTCATGCGAACTGTATGAATGTCATACATTAAACTAAG -CAGTTCATATGCGCCCAAGCCATATAATCTAAGTTGAGGATTATCTATAGCTGAAACTTCAATGCCTTTA -CCGTATTTAAGGTCAATAATTTCAAGTACACCACCTGAAAATATAATGACATCACCAGTACCAAAAGATT -CAGGGACGTATTTACCTAAATCCAATTTTGTTTCAAATAAAGCTATTACATCGTCATCTCTACTCAAAGC -TTCGTTATATTTTTCTTCTACATTAGCTACGTACTCTTCAACATATTCGCGCAACTCTTCACTGTAATAT -TGATTTCGCTTATAATTTTGAAAAGCTTTATTAAACTCAAACTGTGTTAGGCCTTCATATTTAAGACTGA -AATATAACTCACTTAACTCATGAGCGAATGTACCTTCTTCAGCAAAAACTGAACTTTTATCTGCAATACC -TTCACTTGCCTTAATACTCGGTGGACAGTTTAGCCATTGTTTTGCTCCACTTGCACTAAGCTTTGCATGA -GCTCTATTTGAGTGATCTAGCTTCATGCATTGATTCTCGCCTTCATAAAATCAACAATTTTTTCATAATA -CTCTTCTTTGATAGTAGATAGCTTATCCGCGCCAAGTTCGTTAAGTTTATTTCTAAATTCTTTCTTATCA -GAAGTGTCTGCTTTTTTAAGGAACTCTTTTCCTACTGATAAAACATAATCTTTAGTCAAATCAGTAGAAG -TTTCCTTAACTTCTTCAATTGATTCCAGTTGAGCTGTTTCTTCTTTTGGCATTGGTGCTTCTTTAACTTT -CTCTTGTACAATTGATGAATCTACAGTTGATAGTTCAGTGTTTAACACACGTAAATTCTTATTTAATAGT -TTTAATTCTTCAAAAATATCTTCTAATATTGCCATTGATTAACTCCTCCTTAAAATTGGTTAGCTAGACG -AATCATTAACTTGATACGTTCTTCTATTTCTCTAGGGTCCTCACTTTGTTCATTTAATCTTGCTAACAAT -TCAAATTGTTCTTCTAAAATTTCTTTTTTACGTTCGACTACACTTAAATGCAATTGCGATTCAATAACAC -GCCAGATACCCCAACTTTCCATTTCAATCTTTCCTTTTTTCTTAAGTTTTGAAAGAGTGGATTTTGCATG -TGTTTTAGATATCCCAAAAGTTTCAACAACATCATCAGAATTGAAATTGTCATATGTTGCAAAATGTGAT -AGTATTTTTTGTTGTAAGGTCATATTAATAACTCCTTATATAATTATTTAAGACAAATGCTTATCTTTAA -CTGTTACTTGTTGTCGCAAGTAGCAGTTTTTTTATTCTTCATAAAAGTACTCTTTATAGAATATGAATGT -TGCGATACTTGCGAATCCTGCAATGGACCACGCTGTAGTGAAGTATAGAAACGGCATGAGTACAATCGCT -AAGACCGTGAAGCATAGCACTGCTATTAGGTAGCTTTTATATGTGTCGCTCATTTGATAATCCTCCTAAT -ACCATTTTTTATGCTTTCTGATCAAATACTCTTCCAATTTAGAAATATTAATCAGTGTGCCTATTGGTGA -ATAATCAATGTATAAATTTTCTACACCTAAATTATCTTCACGGTAATCTTTCAACCAGTTGTATACTGTG -CTTCTACATACTCCAAACAATTGATGGATTTGCGTAGGTGTTGCGTATAACTTTTTAACAAATTTTTCTT -CGCCTCTATATGTGTTTTCTGGTGTTGGTGGTACTATGATTTTTGGCATTTCTATCTTTCCTTCCGTGTA -TAATGTTAAAGTTTGTTATTATTCGCCCTGTATTGAAGTTCTCTATCTAATGCATAGAAAACTTTGTTTA -TTTCTAAGTAGCTGTAATCACTTTTTTTAATAAGCTCTAATATTTCCGCTCCTAAGTTACGTTCCTTTTC -CGTTAAATAGGATGAAGAAGCATCAGCTTTGCTAGAAACTTGTGGGACGCCTATACGCAATCCTTCTGAT -CTTGTGTTCATTTGTTTATGCTCCTTTCGTGTATAATGTTGTTATCAACCTAAGGAGGTGATAACATGCC -CTTGATATCTGATGAATTTGATACACTTACTAAAGACCAACAATATATCTTGTCCGTACTCTACAAAGAT -TATTTAGAATGTGTAAAGTTAGGTTCGGTTAAATTAACCTGCAATAATTTTGGAAGTGCTAAAGATATAC -ATACAAAGTATTTTCAAAAACTACATTTCGAAGATGTAAAATACGATTTAAATAAACTTAAAAACTCTGG -GTTCCTAAACGGCGTGTATGCTAGTAACACTATTTATCATGTAACAATTTCAGACAAGACTGTTGTTTAC -TTTGAAAATGAGTTTAAAAACAATTTAAAAAGTATCATTGATAGCATTTCTAAAATTGCTTCAATAATTC -CTGGTCTCTAGTTGGGTTTATAACTTCCCAATCATTTGCCATGAGGTCATCGGCTGAAGGTTGCCAATAT -CTGATAAGGTTTGTCCCATCGCTATTTGAAATGATGCATTGTAAAAAACTATCATTTGTTGGTAATATCT -TAGTTCGATGACTTTCTTTCCAATCTTTCCGTGTCATAGAGACAAGATTTTTTGTAGCTATCTTAGTTGC -TTCTTGAATGTTCATTTGTTATTCCTCCTTTTAAGATGTTTATGATCCTTTCTGCTATACTCCTGTTATG -GAGGTGATAGGATGAAACTTAATCACGATTGCGTTAGACTCTTGCTCTTAGAAATAGAATCTAATAAGAA -AATAGGTGAACCACTTACTCGACATAATTTCAACGATAATATTATTTTTGATAAATATGATTTTGAAACA -GTAATGTACTCACTTTTAAAATTAGAAGAAGCTAAATTTATTTGTTGCGATCTGAAATTCATCGAAGGCA -GGGTCGTTTCTTGGATTATTGATGACATCACTTGGTCTGGCCATGAATTTCTCGATAATATTAGAGACAA -TAAAACTTGGAACGAAGTTAAAAGAGTCGTTAACAAAACATCCAGTATGTCTCTTAATCTTATGGGGAAA -TTAGCTTTTCAATATCTTTCTCAAAAATTCAATCTAACTTAAATTCATAACCATCAACCAAGGCATATAA -GTTATTATTTACGTATGGTATTTCTTCAATGGTGTTGTTGATGAAATGAGATCGGACCATCAGTTCATAT -CCGTCATTAATTTGAATGTCTAATGGTCGCCTATTACCTTCTTCGTCATAGTAGTAATAGATGACTTTTT -TGTTTTGAGCTTGCATTTGTCGTTCCTCCTTTAAGTTGTTTTGTTATATAATTTAGTTATCTCCCAGTGG -AAGGAGGTGAAATTTATGGATTTAGAGAAAATTGCTCACGATATTACAATCTCGCTATTACCTAGAGCTC -TAGATAGACATAAGATTCATAACGAATGGCAAGAAGTCGGTGATGACGTAATTGCATTCGCTAAAGATAG -CGTTGCTCGTGACTATTTCAGCATTTACTCTTCTGTGTTATTGGGATTACAAGAAGAAGAAAAAAGCAGA -AAAGATTTAGGATTGTAAGGCAATAGCGCACTTGATTACTTGCACTAATTAAGTGCGCTTATTTAATTAG -ATATTTCTTACCTTCTCTATCCGAGACCACTTTATATTTTTTTAATTTGCTTTCTTTCACTTTTAACCAT -TGATTTCCATGCCACACGTCAATTAAGTTTTCGTGTTTTTTATTGAATAGCCTTCTTAGTAGTTTCATTT -GTAGTTCCTCCTTCATTCGAAATCATCGATAGTTAATTCTGAAACTCTCTTTTCATAGATATATAAATAA -TAGTTTTTGATATCTCTATAAATTTTTGCTGCTAGGTTGTATTCACTTTCACTCAAGTCTGAATTAAGTG -TCACTCCAAAAATTGATAATGTTAATTTTCTAATATGGTCATGAACATCTTGTACATAAACTTTTTGATG -AATTGATTCGAAGCCATGCTGATACTTTTTTAGCGGAATCGGATGATTGAGCTTCCTCAATCTTCCTAGC -GACAAATCTTTTGCGAAATTGAGTTTTTTATTGATTTCTTCTAAATCGTCATTATTGATTCTTACTTTAC -TGAAAATTGCACCTGAGCTGATTGGTTTCTCGCCTTTTATAGCATTTCTAACTTCTTTCGCTATAATTTC -TTTCAACTCTTCTTTGGTTAACGTGATTTGTTCCATAGTGTTCCTCCTTTAGTTCAATTATTTTGAACTT -TATAATTAAAAAAATATACTTGTATTTCTTCTCTGGGTATAGATAATAATTCACAAGCTTTAGCTATTTC -GGAATCTCTCCAACCAATTTTATCATTTAATTTTAAAGATAAACTTCGTTCTGATAAGCCTATCGCGTAT -GCAAAAGCATATCTATTACCATACTTTTCAATTATACGACCTATTAAAGCTGAATAATCAAAACACATCA -TGTCACCTCTTTCTGAGTTCAATATTTTTGAACTACATAAACCTTAACACGTTTAAAAAATCAATGCAAT -ACAAAAGTTCAATATTTTTGAATTTTTCTATTGAACTTTTGTTCAACGGAGCTTATACTATAACTATATT -AATGGAGGAGGAAAATTCATTGAACTCTACAACTAGCAACAGAATCAAACAAGCTATGAAGTCATCGAAT -TTAAAACAAATAGATATAGTAAACAAAGCTAAAAGCATGGAAGAAGAAACTGGTATCAAATTATCAAAAA -CTGATTTAAGTCAATATGTTAATGGTAAAGTGACGCCGGGTCAGAAGAAATTATATGTTTTAGCTAAAAT -ATTGAATGTTAGCGAAGCTTGGTTGTTGGGATACGACGTAGAAAGTAAAAGAATTGATGATAAAGAAAGA -GATAAATTTAATCAGCATCAAGAAACTATAGCTGGTCATGCAAATAAAGATGAATTTACTCCTGAAGAAT -GGGAAGAAATCGAAAACTTTATGCAATGGGTTAGAGATAGAAAGAAATAAGACACCAAAGGGGTTTGGCT -CATGGGAAAATACGAAGAATTGCTTATGAAATGTGAAGTTGAAGTGAAAGAAACACAAAGAGTACCTCGA -GGATTCGATGGTTGGTATCAAGAAGGAGAAATTTTTATTAGACCTTCCCTATCCGAAAGGAACAAATTAG -AAGTATTATATGAAGAACTTGCCCACCACAAGTTGACGTATGGCAACATTTTAGATCAATCGAAATTCAA -CAATCGCAAGTTTGAAAATTACGCAAGACGACACGGCTTTATCTCAGCTGTTCCATTACGCGAAATTGTA -GAAGCTTATAATTATGGCGTACGTAACTTGTATGAATTGTCTGAGTATCTACAATTAAGCGAAGAATACA -TATTAGAAGCAATAGAACAATATAAAAAGATATATGGTATTGGAACTCACTATGGCGAGTATTCGATCAC -ATTTGAGCCGTTGAGAGTTTTTAAATATAAGGAAATATAAACAAAGGAGAGATACATATGAAAAAAGTAA -TCGGACTGCTACTAGTAAGTACATTAGCTTTAACAGCTTGTGGTGAAAAAGAAAAACCAAAAAAAGAAGA -AAATAAAAAGTCACAAACACAAAAACACAAAGATAGCAAACCAAAAACGCAACAAGAAAAAATGAAAAAA -GTTGAAGATAAAAATCCACCTAATAATAGCATACAAAATAATTCAAACAATCAAAACCAATCACAAAACA -ATCAACTTAATAATAATTCAGATCCATCTAATAATACTCCTGCAAATATAAATAAAAACGATTCACAAAA -TACTAATTTAAATGATGAGTATGTCGTTTCGCCTGGCTGGACTAAAGATGAACAGGCTAAAGCTTTTGAA -GAGTACAAAAAAGGAAAAGAAGACGAAGCAAGAGCTGGTGCTAGCGCAGTACCAGGAGCCAATATTAACT -AATAAAACAATATAAGAAAGAAGAGCTAATATGGAAACAAATAAAACAATCGATTTAATGAATTATGTGG -AATTTCCAAAAAGATACACAGAGGCAAAAGGCAAATTAGTTGCACAACCAATAACTACTATAAATAGCGC -AAGAAGAGTTGAAAATGAAGATATGACTGTTTGCTACATTTTAGATCAGGATGATGATGTAATGGACTTT -ATCTTTGACAGAGATATAATTACTGTTTACTGTCCTGGAAACGGAACTGCGACTGATGAATATTTTTGTG -AAATTATATTTAACTCAGATGACACATTTACCCTAAAGCGATTATCTAATTACGTTACCATTAAAGATAG -AAGCTACCCAATGTCAAAAATAAATGACGTAAACATTACGGGCAAAGTCGTCAGATTATTTAGAGATTTT -AAATAAACTTGGCTTTAATTACGATTAAAAGTACCTATATAGCGTGACGAGAAAAAGGATTAAAAAAAAT -TCAAAAACGCCTACTAGTGTAGACGTTGAATGGTGGTGAGAACGTGAGCGAGAATAAAGGAGAAATTAGA -AATGGCGAGTCCGGAAGTGATCAAAAATTAACTAGCGGTCAAGTTGAAAGTTTAATCCAAGAACCTAAGA -AGAAATAATTAATTTTTTCTTATCGATATATAGATATTCTAATTTAACTTTGTTTTCAAAATCTAAATAT -GAATCATTGTATTCAGACAATGTTTTGAAGGCTTCGTAATTAGCATTAAATCTAGTATCAAGTAATATAT -TTCGATTGTGTTTTCTTGAATAGTTATCAAGGAATCCTTTTTCAATTATGTTACCTTCGAAATCTTTTAC -AGTTATGAACATTTTATATTTATTATCTTCATACTTTAATAGATGTACAGGTAGCGTTTCAACTTTTTTT -AAATTATTACTTTTACGGTTATGATTACTAAAAATATTGTATATTTCTATAATTTTTGTATACACGAATT -CTGTTAATATGATGATTATTAATATACTTACTATTAGTGCAGACAATGTTTTTGTAAAAGTTAATTTTTG -AAATAGCTGATTTACGTTGTTTTGTCCTGAAAACAGACTAAGAGTTAATAAAAAAATAAAAACAGAAACT -ACAGAAAAGAAAGCGAGAATAACTTTCTTATTATCACTATTGAAATACACCAAATTCTTATTGGATAGAG -CATAGTAAGTATAAAATCCTGGTATCCCAGTTGTTATTATCAATAGTAAAATTTGCAAAATATCACCTAC -TTTTTATTTTATTATATCACATTTAGTACCTAGTACTAAATATCGGGTAGCCCGCCTACCCTTATTATTT -TTTGCCAATTTTGAGGAGGGATGTAAAATGTGGTTTGAAAAATTTAAAAATAAGAACAATGAAACGAAGT -ATAGATACTACGAGAAATACAAAGATCCGTATACAGATAAATGGAAACGTGTAAGTGTTGTCTTGAATAA -GAATACAAAACAATCTCAAAAAGAAGCAATGTTTCGTTTAGAAGAAAAAATAAAAGAAAAACTGAACAAC -AAGTCGTCAAGCGAATTAAAAACTTTGACTTTTCACGCGCTATTAGATGAATGGCTTGAATATCATATAA -AAACATCAGGTTCAAAGTTGACTACTCTTAATAATATAAAAATAAGAATTAGAAACATTAAACGATACAG -CTCTGAGAACTTGCTTTTAAACAAACTAGATACAAAATATATGCAGATATTTATTAATAAATTATCAGAT -ATCTATTCTCAAAATCAAGTAACCCGTCAACTCGGAGATATGAAAGGAGCTATTAAATATGCAGTTAAAT -TTTACAATTATCCAAATGAATATTTGTTAACTAATGTCAAAATTCCTAAAAGAAGAAAAACAATAGAGGA -TATCGAAAAAGATGAATCTAAAATGTACAACTATTTAGAAATGAACCAAGTCCTACAGATACGTGATCAT -ATACTAAATGATAATAAGTTACACAAGCGAAATCGCATTTTAATTGCCAGCATCTTAGAAGTACAGGCTT -TAACTGGTATGCGCATAGGAGAACTACAAGCACTGCAGGAAAAAGATATAGATTTATTAAACAAAACTAT -TAATATAACAGGTACAATTCACCGCATTAAATACGAGGAAGGATTCGGATACAAAGACACTACAAAGACT -ATAAGTTCAAAAAGAAGTATCAGCATCAATTCTAGAACCGTAGAAATTTTTAAAAAGATAATACTGGAAA -ACAAAATGTTGAAAAGATGGAATTCGAGCTATGTTGACAGAGGGTTCATATTCACAACAAAAAAAGGGAA -TCCTTTATGTAATAATCAAATCGCCGGTGTGCTTAAGAAAACTACAAAAGCTTTAAATATGAATAAGAAA -GTTACCACGCACACATTTAGACATACACACATAACTTTATTAGTAGAAATGAATGTTTCTTTAAAAGCAA -TTATGAAAAGGGTAGGACATGTAGATGAAAAAACAACCATTCGCATATATACTCATGTAACTGAAAAAAT -GGATAGAGAACTAACTCAAAAACTCGAAAACATTCCAAGTTAGCTTAAATCTGCCCTTTTTTTGCCCTTA -TATTTTTTACAAGCTTTATAAAACGCTTGAGAACACTGGCGTTAAAGCTTTTCTTGAAATAAACATATCA -TCATAATGAGATGGTTCAAAAATTTGATTAACAATTAATGGCTTCATATTTCTAACAATGTCATCTAAGT -GATTTTCTAAAATTGGTGAAGCTGTTTTTAAGTTATTTAAAAATTCATCTAAATTTTTAAGTTTACTTTT -TAAAACTTCAAGGTTTTTATCAATTTCGTCGACATTTATTCCCATAGCCTTTATCTTTATTTTCATTGTT -ACTTTGTATATTAAACTGCTTATTTCATAAATATGTCTCACAGCTGTTTCTACCGAATGTATAACTTCAA -GAATGTAGTTTAATACTGGTTCAAAATAATTATTGTAAGCTTCTTGAACATAATCACTAATTTTGTTAAC -TGCATTATCAATATGGTTTTTTAAAATTGTCATTTTTCTAGTTAAATAATTAGAAGATTGTACTTGACCC -GAAATCATATGTTCACCGCTATAATTAATAGATAAGTTTCCATCCATTACCGTTGCATCTTGATGAGACA -TTATATTTTTAATATCGGTTATCTGCTCTCCATATACATCATTTTGTTTTTTTACAAAATTTATATTATT -ATTCACAACATTTAAATGCTTCATCATTTCCTCTGTCACGCCATCTTCAAAATCATGATCTAAATTTTTA -AACATTTCTTTAATTACGTTATCCAATGAATCATGTAAACTTTCTATGCCACGTTGTAATTTTTTATCTA -AATCTTCAAGCATTTCTTCAATAGTATTTAATTCAAAAATAAGGACTGCAACTGATGAAAATATGAAAGC -AATTCCAACAAGATTTTTTTTGACATTATCAATTGCGCTAAATGCATCCTTTTTCAAAGAAGTTAATTCT -CTACTCATTCCTTCAAGGATATCAACTTCGACAATCTTTTTAAAATCTTGTTTAAGTTTATGTTTTCTTT -CTCCAAAATTAGCATTTTCAACCTGTGAAATATTATAGCTCTCATTCAAATAATTTACACAATCGGTTAA -CATATTACTTGTTTCACCAGTTACCAAATTACTTAATGCACTAAGATTTTCTAGATTTAATTTTATAGGA -GTCCCTTTACCCGTTCTCGCTATTGAATCTCCTGTCCACACATTAATTGGAATTCTATCATCCATATTTA -TATCGATTTCAATAGTTTTTTGACTTTTTTACCATTTTTAATCATAGTATCTTTAACTGATTTAATTTTA -TAAACTGCTAAATCCTTATAAGTATTATATCTTGGATTTAATTTTCTTTTATAACCTAAATGACTATTTA -CTAATCCATCCATCGTTGGCACACCAGTTTCTAAATTCACTCGTTTTCCTAGTGTCGGAGTGGCAAATGG -ATCCTGCAGCCAAGATAAAATATCAAACTTACTATGATAATTAATCATATTTTCAAAGTTTTGAGATTTG -AAATTTTCCCATATTGACTTTGGTAACATGGCAGGGTTTGTAGAAACTATATTTTTATTCGGGTTAATCA -TCCCTTGGTGGTTAGCACTTGCTCCCCCTTGAGAATTGCCTCCATCAGACTTAATAGTTTTGTTTTTATA -CGTAGACGGATTTTTCTTATATTTCCTTAAAAAATCAGAGCTTTTAAGTGTATCTGCATCTTTTAGTTTC -TGTTCATACGATTTAATATAAGCATTATTTTGTTCTAATAAAGAAGTTGACTTATTTTTATCATTCATTA -ACTTTATATTTTCAATCCAATCATCAGCAACCTTCCCACGAAAAGGATTGTTGCTTCCGATACTCTTATT -ATTATTTGTACCTTGGAAGATAATAGCTTGTTGTCCTGTTAATTCATTATTGCTATTTACCAATTCAAAA -ACTTTTGCATCTGTACCACCAAAACTTTTAGAATTAGGATTGTCTGAATAATCTTCAATTAGTCTATATT -TATTATTATTTACTCTAATTACATATCTTTTGTCCAAATCTTGATATGCCCAGTATCCACTTAATTCTGC -TAAATCTCTATCATTAATTTTTTTCATGATTAAATACTCCTACTTCTATTGAATCTTTCTTACTGTAACT -AGGTCTTGCTGAATTTATATATTTATCAGTAATTTGAAGAGAAACATTCAAATCATGAGGAATATTCTTT -TTCTTTTTTAGTACTTCAGAAAAATCAATCATCTCGTCTATTGTATTATCTTTAGTGTAATTGTCTTTAG -TGCTAAATAAAGTTGTAACAACATATGGACGAGATTTATCTTTAAGTTGTTTTTTGAGTTTTTCATACCA -TCACTAAAAGTCTTATCATCCTCTTTGATTAAGGGTTGAAAATACTTTTTATATTCATCTAAAGTATATG -GAATTGCAGTCAAATAATAATATTCATTTCTAAAACCACTATTCTGCGTTTTCATAATTGCATTTTCTGT -ATAACCAGTATATTTATATTTACTTTTATATTCTTTCAAAACTTCTGTTAAACTATCCAACTCTTGCTTA -TGAGCTCTATATTCAAAGCCGCTCAACACTGTACCTACTAAAGTACTCATATCATCGCCTTTATCCTCAC -TTCTTAATGAGCTATCACTCTCTATTATCGATTTGTCAAATGGAATACTCGCATTAAATACGATGTCGTG -GTCATCACAATGCACGAATACTTCTACACCGTCGCCACTACCTACAACATTGGTAGCTTTAACTTTTAAA -CCGAAGTTATCCATAAAAAATTGTTCGCCTCGTTTGGCAATTTTATCTTTATGCTTCTTCGCAAATTCAA -TCGCATCTTTTTCTGCAGGCGGTTGGAAGCCTTGTCCTACATATTTTGAAGCTTCCATTTCTTCTGGTAC -TGATTTTGTTTCTGTATTCGTGTCTTTACTTGATTCATTTTCCATCGTGGAACATCCCCCTAAAATTAAT -GTCGTAGCTAAAACTGATCCAATGAATTTTTTCATATGACACCTCGAATAATTTAATTATTACAATACAT -CTATATTTTACCCTATTTTTATAATCAAATAAATAACTTTATCAAACTTTATATTTTTATATAAATTAGT -AATATATTTAATAGTTGATATTCGCAAAAACCCTAAACCCTAAATCCTAATCCACATACAAAACTCCCCA -CATCAATAAAAAAACGCATGCTATAAATTAGAGTCTCTAATCAATAACATGCGTTCTGAAATAACTATAT -TCAATTTTATTCTGGTTTTGGTAGTTTAATAATAAATGTTGTGCCTTTCCCTAATTCGCTTTTAACATCT -ATGGAACCACCATGCTCTTCGATAATCATTTTACAAATGAACAAACCTAAACCGGTACCTTGTTTACCTC -GCGTTCTCGCTGCATCAACTTTATAAAAACGATCAAATACTTGTTGTAAATGTTCTGGTGCAATGCCTGT -ACCTGTATCTTTAATGTATAAAATATCTTCGCTTTCATTTTCATCACAAGTAATTGCAATTTCATCACCA -GGTTTCGTATAACGTGATGCATTATCAATTAAGTTCGTTAGTACTTGGTCCATGCGATCCATATCATAAG -TCCAAACACGCTTCTTACAATAATTAAAAGTCATATTTAGACCTAAATCATCAGCCTGTTGACGATACTT -AATTTTCATCTTATCTAGTAACGCTGCAATAGGCTGAACTTCTTTATTTACGGATAACCCTTCAGCATCC -ATGCGAGCGACATTTAACAATTCATTAACTAAACGATTTAAACGTTTCGATTCATCAAGGACAATGGCAA -GCGATTCTTTTATTTCATCCGGTTCTGTAACAATACCATCTACAATTGATTCAGTATAACCTTGAAGTAA -TGATATCGGTGTACGTAATTCATGTGATACATTAGCAATGAAATCTTTCTTCATTTGATCTAGATTGTGC -TCATTAGTCATATCACGAACTGTCACAACAACACCACTTTTACCTCCTTGTTCAATCTTGTCGATATAGC -TTGTGGTCACAACAAAGAATCGTGTATTCATTTCTAAATCACGCATTTCCGTTTGTTTTGATTTAAAAGT -ATCTTCAATTTGTCTTAATAAGAAAGCTTTAGCATCTTCATCAATATTGTCCATAATATCATTCGCCATC -TTATTCGATAAGATAATTTGTCGACTCTCATTAATACCTAGGACACCTTCTACCATAGAGTTAATTAAGC -TGTCTCTAATATTTTTAGATGTGGATAATGCGTCGACATGCTCTTCGATTTCTGTACTCATCTGATTAAA -TGCCTGTGATAATTGACCAATTTCATCTTTCGTTGTGACAGAAGGTTTATAAGAGTAATCCCCTTCAGAT -ACACGTGTAGCTTGGTCTCTTAAACGTCTTAAAGGTTTTGTAATTCTTGACGATAAGAAAAACGCAAAGA -CTGTTGTAATTGTTAAGAAAATAACAGCCGTAATTATAGTGATAATCGTAATAGCATTATTTGTATCTTC -GATTGATTTCAAGTCTTTATATATAAAGACTCCACTATATTTGCTATGACTATTCTTCTGTGCTTTTGTT -GGATAGCCTAACAAAATATATGTTTGAGATGAGCCCTTTTCTTTAATCGTTACATTTCGAGTAACAGATT -TACCTTTATCAAACACATCGTCAAAATGGTCGTTGTTGACTACTTCATTCAACATTTGCTTTTTAATATT -AGAAAGCGAAGCCGTTGATTGACGATGTTTATTATTTATAATCATCAACCCACCAGGATTTTCAATTAAT -GTTTGACTATATTTTATTGCTTCTTCTTTATTATGTGATTGTTCGACCAGTGAACTTATACGTCTAGCAT -CTTCTCTTATGGCATTTTCAGTTTCTTGTGTGAAATAGTATTGCATAAAGGTAATTAAAGCAATACTTAA -TAAAATTAAAACTGTCGTCACTATTAAAATAATAGTTAACCACAGTTTAATTACGACACTATTTAGCCGG -CTCATCATTAGATTTAACCTCAAATTTATACCCAACGCCCCAGACTGTTTGAATCATATGCGCAGCTTCG -CTAGACACACGATTTAACTTTTCTCTAAGTCGTTTAACATGAGTATCAACTGTTCTTAAATCACCATAGA -ATTCATAATGCCAAACTTCTTTTAATAATTGTTCACGGTCAAATACTTTATTTGGTGTTTTAGCTAAATA -TATTAATAATTCGTACTCTTTAGGAGTCAAATTAACTTCTTGATTATCAGCAAGTACGCGATGTGCATCA -TTATCTATTTCTAAATGTTTAAATTCAATCACATCACGTGCGTGAGGTTCGCTTTGTTCTACAGTTGTAG -ATTGCGTTCTTCTTAGAAGTGCTTTAACTCTTAAGACTACTTCTCTTGGTGAAAATGGTTTGACGATATA -ATCATCTGCACCAGACTCAAAACCTTCAACACGGTTTGTTTCTTCACCTTTAGCAGTCAACATAATAATC -GGTGTTTGTTTATGTTCACGCAATTTAGTTGCCACCTGGATACCATCCATTTCAGGCAACATTAAATCTA -GTAGTATGCAAGCATAATTATTCTCCATTGCAAGTTCATAAGCCTCTTGGCCATTACTTGCCTCATGGAT -TTCAAAAGATTCTCTTTCTAAATACATTTTAAGTAACCTTCTGATTCTATCCTCATCATCTACGATAAGT -ATTTCGTTCGACATACAGGTCATACCTCCCACACATGCTTTTCTTTACAAAAGTATTATATCACAGGAAA -GCGCATACAGTTATTAAAAACCTAAAATTTTGTGAAAAAATTCTCAAACTTTGTGATAAATACATATTTT -ATTTAATTATTTCCCATGTTCTGCTAAATGACGCATCACTTTTACTTCATGAGGCGTCAATACACGTCCT -TCACCAGCATTCAAACCGACAACATTTAAAGGCCCATATTCAATACGAGACAGTTTCGTCACTTGATGAC -CAAAATGTTCGAACATTCTTCTGACTTGACGATTACGACCTTCTGTTATTGTAATTTCAACCAATGTTGT -GTTTTTATCTTTATCTTGTTTCTTAACTTTCACTTCAGCCGGTTGCGTCATACCATCTTCTAATTCAATA -CCTTTTTCTAGCGCTTTCACTTCTTCTCTCATTAAGTAACCTTTTAATTTTGCTACATATTTCTTCTTAA -TTTGATATCTTGGATGTGTCATTAAATTAGTAAATTCACCATCATTTGTAAGTAATAACAATCCAGAAGT -ATCATAGTCTAAACGACCAACAGGATAAATACGCGCTTCTATATCTTTAAAGTAATCTGTAACCACTGTA -CGTCCTCTATCATCAGATACACTTGTTATCACTTGAGTTGGTTTATGGAATAAAATGTAAATTTTGTCTT -CTAGCTCTATTTTAATACCTTCAACTTCAATCGTATCTGATGGCTTCACTTTTGTTCCTAATTCAGTGAC -AGTCGTACCATTCACTTTCACTTTTCCTTCAGAAATTAAAGTTTCTGCTTTACGTCTTGAAGTATAACCG -CTATTAGCTATACGTTTTTGTAATCGTTCTAATTCTTTAGTCATTATTTTCTCCTTTTTGATTGACTAGA -TTACTGAAAAAAGCATCCATTTCTTCATCGTCTTCTTCAGTTGTCGGCAAATCTTCTATATTGGAAATAC -CAAATACATTTAAAAATAAATCAGTAGTAATTAATTGTTGGCTACGCTGTTCATTGACCACTTTAGCCTC -AACTAGTCCTTTGGCAATCAATGTCTTGACCGCACCATCTGAATTGATACTACGAATTAATTCAATATCA -CTTCTTGATAATGGTTGGTTATAAGCAATAATTGATAGTACTTCCATTGCTGCTTGTGATAATTTCATTT -GTGACTTTTGTTCAATTAATTGTTCAATATACATTGACGCTTCTTTTTTAGTCGTTAAAACATACGTCGT -TCCAAATCGTTGTATTATTAATCCATGTGATGAATAATTTTCAATTAATTCTACGAGTTGGTCTTTCGAT -ATATCCAAAATTTCTAATAGCTGTTTTTCATCTAAACCTTCATCGCCAGCTGTAAATAATAGCGACTCTA -ATATACCATGATTATCCAAAATGGTAGTTCACTCCTCTAACAATGTTAATATCTTCAAAATTACGTTGTT -GCTCAATATTAATTATTCCTGCTTTTGACATCTCTAAAATAGCTAAAAAGTGAGTGACTACTTGTTCAAT -TGGCTCAGAAAACGTAAACAGACTAAAGAAGTTAAAATGATCTTTATCTTTCAATCTCGATGTCACTTGT -TCTGTAGCTTGTTGAATGGTAAATGTCTCTTTTCGGATTTCAACAGATTTAGGTGTATTTAACTCAACTC -TATTTTTAACTCTTTGATAAGCTACAATTAATTCAGTTAAGTCAATCGTATGATTTGGATCCCAAGATTC -ATCTGTTTCCAAATGAGATAACTCTGTCGGTCTTTTTGTAAAATAAAAATCTCTTTCTTCTTTCATGTCA -TTTAAAATAGCAGTATATTCTTTATAATTTTGATATTCTATTAAACGCCCAACTAAATCTTCCCGTGGGT -CATCATCAACATCTATATCTGATGTTGATTGTGGTAATAGCATCTTACTTTTAATCATTAAGAGTTCTGA -CGCTAATACTAGGTATTCACTTGCAATATTAATTTCAAGCTGTTTCATTGCATGAACGTACTGCATATAC -TGCTCTGTTAATGCTTGCATAGGAATATCATAAATATCTATTTCAAATTTTTGGATAAGATGCAGTAATA -AATCTAATGGTCCATTGAAAGCATCTAATTTAACTTCATACATAATATCTACCTCGTATTGCGTCATATG -TGCATAATTCTCTAAAATATTATAGCATGAAAATAACTTACTTTTAAATTGGGGTGATAACAAAATGCAA -CAGGCACTGATAAATTTCTATTATCAATTTCATACTAAGCAACATTATTTCCTATGTCATGACATTTTAG -AAGATGCATGGAAAGCTGAAAAAAACTACAGTAAGCAAGATGCAGTTGTTAGTTTAATCTTGTTTGCAAC -TGCTTGTTACCATTATCGCCGCAATAATTTAAAAGGCGCCTATAAGTCTTTTAATAAATCTAAAGAAATA -ATACAAAATGCTAAAGATAGAGATGCGTTATACCTTAATTTAAATGATTATCAGTTGTTAATTGAGAAAC -AGATTGCAAAATTGAATGCAGCAAAGCCTTTTTCATCTGTTATATTACCAATAACTCCAGACTTTGAGCG -CATCATCAAGGCCAACTATCCAGATTATGATTATAATCACGAAACAGCAACAGATCCTTTTATTGTAGAC -CATCACATGCGGCGTGATCGTTCAGAAGTGATTGCAGCAAAAGAAGAAGCGATTCAATTAAGAAAACATA -GACGTAATTAATCAACCATAACTCAAAAGCCACAATAGCACAGACATTTTTAGTCATGTGTATTGTGACT -TTTGAGTTATGGTTCACTTTATGCTCTAGGATGAAATTGGTTATACATTTTTCTAATTTGAGATTTTGAA -ACATGTGTATAGAGTTGGGTAGTAGATATGTCAGAGTGACCTAACATCTCTTGCACTGCTCTTAAATCTG -CGCCATTTTCCAATAAATGTGTCGCAAAAGAATGGCGCAACGTATGTGGCGTTAGCGTCTTTTTAATGTT -TGCCTTTACACCATTTTGTTTAATCATTTTCCATATTGCTTGTCGTGATAAAGGTTTACCATGCATATTT -AAAAATAAGACTTCAGTAACAGTCTTTTTTAAAAGTTGCGGTCTAATCGTTTCAATATAAGTAGTTAAGT -ACTCAATGACTGCGTCGCCTAATGGCACAATTCTTTCTTTATCGCCTTTACCAAATACGCGTACAAACCC -CATTATTAAGTTCACGTTCTCTAGCTCTAAATGTATCAATTCAGATACACGCATTCCCGTTGCGTACAGA -AGTTCTAACATCGTACGATCACGATAACCATTAATTTTATTTAAATCCGGCGTTTCTAATAAAGCCAACA -CTTCGTCAACATTTAAAACGTCAGGCAATTTTTTGTCATATTTTGGTGAATCTAATAATACCGTTGGATC -TTTCGCCGCATATTTTTCTCTTATAGCAAATTGATGAAAACTACGGATTGTTGAAATAAATCGCGCAATG -GATTTAGCAGATTGCCCTTGGTCTATTAAATGCCCCAAACACTCTTGAATTAATTGTCGATCTATAAAAT -CAATATGCGAGATATGATGTTCAGTCATATAATCTTGATACTTTTTCAAATCACGTCTATAAGCACCAAT -TGTGTTAGAACTTAGTCCTTTTTCAATTTGTATAAAACGCAAATATTCTTCAATAATTGTTTCCATAACC -ACACCTCTAAAAAAAGCGAAGGTTAATTTAACCTACGCAATTTACTATCCTTTACCTTTAGCTTGGCACG -TTTCACACACACCATGGAAAGTTAAACGATGATCTAAAATTTTAAAATTGAACTCATTTTCAACTCGATT -TTCAACTTCTGGTAACAAATCTTCATCGATTTCATCTACACGACCACATTCCATACATACTAAATGATGG -TGGAAATGTTTTGCGCCTTCTTTTCTTAAATCAAAACGAGCGACGCCATCACCAAAGTTAATTTTGTCGA -CAACTTTTAGTTCAGCTAACAACTCTAACGTTCTGTATACTGTCGCCAAGCCAATTTCAGGCGCTTTGTC -TTTTACTTTCAGATATACGTCTTCAGCACTTAGATGATCTTTTTCATTTTCAATTAGAACTCTAACAGTA -GCTTCGCGTTGTGGCGTTAGCTTATATGATGATTGTTGTAATTGTTGCTTAACGCGATTTAATCGTTCTT -CCAACGATGTCCACTCCCCTACTAATAATTAAAATCATTACAAATTATTTCAAACTTCACAATTAAAACT -AACAGTTTTCTCAATAAAATGCAAGCTTTTCTCATTTGTTATTTAGAATGATTATAATTTAATAATAGGT -GTTGCAATGCAATGATAGTCTTCGCATCTTCTATTTCTTTATTCATTAGCATCGATTTAACATTCTCAAT -CGGAACTTTAATGACTTCGACAAATTCATCTTCATCTAAGTGAACTGTGCCTTCTTCTACATTATCCGTA -AAATATATTGATAATTGTTCATCACAAAAACCTGGTGAACCATACATATCTACAACATGTGTTAACTCTT -TGGCAATATATCCTGTTTCTTCTTCTAATTCACGCTTAGCCGCTTCGACTCTATCTTCATCATCTTCTAA -TTTACCAGCTGGAATTTCTAACAATGGTTTTTCTACTGGTTTACGATACTGTTTCACTAATACGACTTCT -TTTTTAGGTGTCAATGCACAAACAGCAACTGCACCATTATGATAAACTAATTCTCTTGTTGACGTTTCAC -CGTTTGGTAATGTCACTGTATGAATTTCTACATCTACAATTTTGCCATTATAAATAACTGTTCGATCAAT -TGTTTTTTCATTTAAATCCATTATAATCACGTTCCTTTAAATTCATATTATATATTGATACACTATGCTT -GTTAGCTAAAGTGTATCGAAAGGAGAACAGACATGCAAAAAAATATATTAAAAAGTGGTATTGCATTATC -TGAATTAGGTCTAGGTTGCATGAGTTTAGGTACAGATTTAAAAAAAGCCGAACAAATTATAGATTGTGCT -GTTGAAAATGGTATCACTTATTTTGATACAGCAGACATGTACGATAAAGGTATAAATGAATCAGTTGTTG -GTAAGGCACTTTTTAAATATCAACAACGCGATGATATTGTCATTGGTACAAAAGTAGGCAATCGTTTAAC -AAAAGATGGCAGTACAACATGGGATCCGAGTAAATCCTATATTAAAGAGGCGGTTAAAGGTTCACTAAAG -CGTTTAGGTATTGATCATATCGATTTATATCAACTTCATGGCGGAACCATTGATGATCCATTAGACGAAA -CAATAAGCGCATTTGATGAATTGAAACAAGAAGGAATTATACGTGCTTACGGTATTTCTTCTATTCGCCC -AAATGTAATTGATTATTATTTAAAACATAGTCAAATCGAAACGATAATGTCTCAATTCAATTTGATTGAT -AATCGTCCAGAATCATTATTAGATGCAATTCACAACGATGATGTTAAAGTATTGGCAAGAGGACCTGTGT -CTAAAGGATTATTAACTTCAAACAGTGTTAATGTGCTCGACAATAAATTTAAAGATGGTATTTTTGATTA -TTCTCATGATGAATTGGGTGAAACAATAGCCTCTATTAAAGAAATTGAAAGTAATTTATCTGCATTGACA -TTTAGTTATTTAACATCACATGACGTGCTTGGTTCCATCATTGTAGGTGCAAGTAGCGTCGACCAATTAA -AAGAAAATATTGAAAACTATCATACTAAAGTTAGTTTAGATCAGATTAAAACAGCAAGAGCTCGTGTAAA -GGATTTGGAATATACCAATCATTTAGTGTAGAAGTCATTTTCAGTAATAAAAACAGCAGTATGAGGCGTT -TCATTATAAAAATGCCTTACTGCTGTTGTTTATGTAAAATTCGCTATAATTTATGATTAAGATTGCTCAC -TTATAATAGTAATTAAAGAGTTGTCCTTACGCATCAGTATTTAGTAATTCCGCCCTGCGGCAGTGCCTTA -AGCAAACTTCTGCCACTTCATCTTTTAATAATTTTATTAAAACATCTTTCTATATTTCACTTCGCATGTT -AATTCATCATTATTAGTTATTACTTGTACACCCAACACATTTCCTTGCAACACAAGTAGTTTGAATTTTT -CACAAGTATAATATAATGTACTGTCTGAAATTTGGTCTACAGAAATATCGCTTAAAATATCCAGCACTGT -AAATTCTTCAAATACTGATAGTTGTTCCGCATATCGTACACAAAGTCTTACCACACTCTCCGATTGACAG -TTCATTGCCATCCCACCTATTTATGCTTTATTTTTAAATAATTTAGGGAAACATCGTTCAAAAAATCTAG -GCGCAATTTGATACATTTTCAACGCATGATGCATCCATTTAGGCCGATTAATTTCCAATTGTTTTGTTTT -AATGCCATAAATGATATCTTCTGCAAGCTGATTAGCATCAAGCATAATTTTCCCCATCTTTTTAGCATAC -TTCATTGATGGGTCGGCTTTTTGATGAAAAGGTGTATCAATCGGGCCAACATTAACTGTCATGATATGTA -AGTTTGGTGACTCTAGTCTTAAAGCATTCATTAATGCATAAAACCCTGCTTTCGATGCCCCATAATGTGC -AGCATTTGCTTGTGTAGAAAATGCAGCTTGACTTGAAATACCTACAATATGTGCGTTAGATGTTAAATAT -GGTCTCAACACAGTATATAAAACATTAAAACTAATTAAATTAAGCTGATACGTTTCGATCATTTCTGAAA -AACTATGGTCTGAAATAGATTTGAAATAACCTAAACCTGCACTATAAATGAATCCATCGAATAATGTATT -GTCTTCAAATTGCAGTGCCTGTATCGACTTCAAATCATTTAAGTCACAAGGAATAACATTTATAGTTTTC -CCCAATTCCTGGTCAAAGATTCTAGTTGCTTTATCAACATCACGCACCAACAACGTTACATGCACTTTAT -TTTCTAGTAACTTTCGGACAATCGATAAACCTAAACCACTCGTACCACCAGTCACTATAAAATGTTGTCC -TTTCATCAATTAACCTTCCTTTTCCATTATATAGAATGCAATTTATCAACTTTACATAATTGAGACAAGT -TGATTATCTTTCCTAATATATATACAATAATAAGAAAATATAACATACAAATCAAAAACTAAAGGGATGT -GACGTTAATGAAACTCGTATTTTATGGAGCTGGTAATATGGCACAAGCTATATTTACAGGAATTATTAAC -TCAAGCAACTTAGATGCCAATGATATATATTTAACAAATAAATCTAATGAACAAGCTTTAAAAGCATTCG -CTGAAAAACTAGGTGTTAACTATAGTTATGATGATGCGACATTATTAAAAGATGCAGATTATGTATTTTT -AGGTACCAAACCACATGACTTTGATGCTCTAGCAACACGCATCAAACCACATATTACAAAAGACAATTGC -TTCATTTCAATTATGGCAGGTATTCCGATTGATTATATTAAACAGCAATTAGAATGCCAAAATCCAGTTG -CTAGAATTATGCCAAACACAAATGCGCAAGTTGGACACTCAGTTACTGGCATTAGTTTTTCAAACAACTT -TGACCCTAAATCTAAAGATGAAATTAACGATTTAGTTAAAGCATTTGGTTCAGTAATTGAAGTATCAGAG -GATCATTTACATCAAGTAACAGCTATCACCGGAAGCGGCCCAGCATTTTTATATCATGTATTCGAGCAAT -ACGTTAAAGCTGGTACGAAACTTGGACTAGAAAAAGAACAAGTTGAAGAATCTATACGCAACCTTATTAT -AGGTACAAGTAAGATGATTGAACGTTCAGATTTGAGCATGGCTCAATTAAGAAAAAATATTACCTCTAAA -GGTGGTACGACACAAGCTGGCCTTGATACATTGTCACAATATGATTTAGTATCTATTTTCGAAGATTGTC -TAAATGCTGCCGTCGACCGTAGTATTGAACTTTCTAATATAGAAGACCAATAAAAACAAACCCGCCAACA -CATGTATGCATCATCGCAAGCACTGTGTTTGACGGGTTATTTTTATAAATTTTTACTATTTGGCAAGCAT -TGTTTATTACTTTGTCATTAGATTTTAAAACTATCAAAATCTTTCACAAAATTAAAATTCGGCGTATCTT -CATTTTGTATCAATGTTTGATAAATTTCATTTATATCTTCTGTATTATAGCGATTGCTCAAATGTGTAAT -CAACGTACGTTTAACATTGGCTTCTTTTATCAATGCAAATACGTCTTCAATATGGCTATGATGATAATTG -TTGGCTAAATGCTTTTCACCATCTATATAGGTCGCTTCATGTACCATCACATCAGCATCTCTAGAAATCA -CACGTTCATTAGAACATGGTTTTGTATCACCAAAAATTGCTACAATTGGACCCTGTTTGGACTCACCTCT -AAAATCTTTTGATTGATAAACTTGACCATTATGTTCAAATGTATCATGAGATTTTACTTCTTGATATTTA -GGACCTGGTTCAAGACCAATGTTTTTTAACGCTTCAACATTGATTGTACCTGTAGTTTCAGGTGCCATTA -CTCTATATCCATATGATGGAATACCATGATTAAGTAAATGCGCCTCTACAGTAAAACCATCATGATGATA -TGTTAGATGATCATCGATTTCAATATATGTAATTGGATAGTTTAAATGTGACTCTGATAAATTCATAGAC -ATTTCCACATATGCTTTAATTCCTTTTGGTCCAACTAATGTAAGCGGCTTTTGTTCACCGCCCTGAAAAG -AACGACTAGAAAGTAATCCTGGCAAACCAAAAATATGATCGCCATGCATATGAGTAATAAATATATGTGT -CACTTTTCCTAATTTAATTGCATGATGTAAAATTTGGTGCTGTGTACCTTCACCAACGTCGAAAAGCCAT -ATGGAATTGGAATATGGTTCTAAATTTAAGGCGATTGCTTGTGTATTTCTCTCTTTTGTAGGCAAACCTG -CACTCGTTCCAAAAAATGTAACTTCCATATATGCCCCTCCTTTTCTTCAATTCATTTTATCATAAAATTT -GTATCAATTTAGTTTTAATTTATACTTGAATCAAAATCTGTTAAAAATTCGTCTTTGCTAGTTAATTTTT -CTAACTTTAACGTAGACATAACTATATAAATTTTGATAATTACGTTATACTTATCATTAATAAGTATCAC -ATTAAACATGATACATGAATCGATATTTCATTTAAGACACTGCATACTGTCGAGCATATTGAATGACCTG -CTGAATGGATTATCTTATAATAATAAATCATATATCTAATTAAGAATTGAGGTTTTAATCTTGAGTACTA -AAAACAAACACATCCCTTGTTTAATCACAATCTTTGGTGCAACTGGTGACTTAAGCCATCGTAAGTTGTT -TCCATCAATATTCCATCTCTACCAACAAGACAATTTAGATGAACATATTGCCATCATCGGTATTGGACGT -CGTGACATTACTAATGATGATTTCCGTAATCAAGTAAAATCATCAATTCAAAAGCACGTAAAAGATACAA -ACAAAATTGACGCGTTTATGGAACATGTCTTCTATCATAGACATGATGTTAGTAATGAAGAAAGCTATCA -AGAATTATTAGATTTTAGTAATGAATTAGACAGCCAATTTGAATTAAAAGGTAATCGACTATTCTATTTA -GCAATGGCACCACAATTCTTTGGCGTTATTTCTGATTATCTAAAATCTTCTGGTCTTACTGATACAAAAG -GATTTAAACGCCTTGTTATCGAAAAACCATTCGGTAGTGATTTAAAATCAGCCGAAGCATTAAACAATCA -AATTCGTAAATCATTTAAAGAAGAAGAAATTTATCGTATTGACCACTATTTAGGAAAAGACATGGTTCAA -AATATCGAGGTATTACGTTTTGCGAATGCGATGTTTGAACCATTATGGAATAACAAATATATTTCAAACA -TCCAAGTTACATCTTCTGAAATACTAGGTGTTGAAGATCGTGGTGGTTATTATGAATCAAGTGGTGCGCT -AAAAGATATGGTGCAAAACCACATGTTACAAATGGTTGCATTATTAGCTATGGAAGCACCTATTAGTTTA -AATAGTGAAGATATCCGTGCTGAGAAAGTAAAAGTACTTAAATCACTGCGTCATTTCCAATCTGAAGATG -TTAAAAAGAACTTTGTTCGTGGTCAATATGGCGAAGGCTATATCGATGGTAAACAAGTTAAAGCATACCG -TGATGAAGATCGCGTTGCAGATGACTCTAACACACCTACATTTGTTTCAGGTAAATTAACAATTGATAAC -TTTAGATGGGCTGGCGTACCATTCTATATCCGTACTGGTAAACGTATGAAATCTAAAACAATTCAAGTTG -TCGTTGAATTTAAAGAAGTACCAATGAACTTATACTATGAAACTGATAAACTGTTAGATTCAAACCTATT -AGTAATCAATATTCAACCAAATGAAGGTGTATCTTTACATCTAAATGCTAAGAAAAATACACAAGGTATC -GAAACTGAACCTGTTCAATTGTCTTATTCAATGAGCGCTCAAGATAAAATGAATACTGTAGATGCATATG -AAAATCTATTATTCGATTGTCTTAAAGGTGATGCCACTAACTTTACGCACTGGGAAGAATTAAAATCAAC -ATGGAAATTTGTTGATGCAATTCAAGATGAATGGAATATGGTTGATCCAGAATTCCCTAACTATGAATCA -GGTACTAATGGTCCATTAGAAAGTGATTTATTACTTGCTCGTGATGGTAACCATTGGTGGGACGATATTC -AATAATTGAATTAAAGCGCACATGTTAAACAAAAATAAATGAGCGAATGACAAGGATTGATTACGAATCA -AGTATATCAATTGTTCTATCATTCGCTTTTTTTCTAGACTATATTATGAAATTATATTTTACAATGCCCA -AAACTATTTTAATAATCATTGAACAAATGGGTGTATAATTTATAGAAATAATGTAGAATAAAAATAAATG -ATTGAATTAATTGGAGTGAAAGTTTTGGACGTTATCAAGCAAATACAACAGGCAATTGTTTATATTGAAG -ATCGTTTATTAGAGCCTTTCAATTTGCAAGAATTAAGTGATTACGTTGGTCTTTCGCCATACCATCTTGA -TCAATCATTTAAAATGATTGTCGGCTTATCTCCAGAAGCTTATGCACGCGCGCGTAAAATGACACTCGCT -GCAAATGATGTGATTAATGGTGCTACACGACTTGTAGATATCGCTAAAAAATATCACTATGCAAATTCAA -ATGATTTTGCAAATGATTTTAGTGATTTTCACGGCGTATCACCTATTCAAGCTTCTACTAAAAAAGATGA -ATTACAAATTCAAGAGCGATTATATATCAAATTATCAACTACTGAGAGAGCACCTTATCCATACAGATTA -GAAGAGACAGATGATATTTCATTGGTTGGATATGCACGATTTATAGACACTAAGTATTTGTCACATCCTT -TTAATGTTCCGGATTTTTTAGAAGACTTGCTCATTGATGGTAAAATTAAAGAGTTACGACGATATAATGA -CGTTAGTCCATTTGAACTATTTGTTATTAGTTGTCCTCTTGAAAATGGTTTAGAAATATTTGTAGGTGTA -CCAAGTGAACGTTATCCTGCACACTTAGAAAGTCGATTTTTACCTGGCAAACATTGTGCGAAATTCAATT -TACAAGGTGAAATTGATTATGCAACTAATGAAGCTTGGTACTATATTGAATCAAGTTTGCAGTTAACATT -GCCATATGAACGAAATGATTTATATGTTGAAGTGTACCCTCTCGATATTTCATTTAATGACCCATTCACT -AAAATTCAGCTTTGGATTCCTGTTAAACAGAGTCCTTATGACGAAGATTAAATAATTAAAAACAAAGAAG -CCCCCTAATAAATCTATAGGTCTACAAATGGCCTTAGATTCTATTAGGGGGCATATTAATATGTTAATTT -AGTTCGATAACACATGCTTCATATGGAAGTAACTGTTTTAAATTAACTTTGGCATCATAATTAAATAGCT -TCACTTCTCCATGACTTATATCAAATGGTACAGTTAATTCTGCTTCGTGGTTAGTAAGATTACCTACAAT -AAGAACTTGCTTTTCATTTAATGTTCTCGTGTACGCAAAAACTTGTGAATTTTCAGCATCTACTAAATCA -AATTGACCATATACGTATACATCATTAGACTTTCTTAATTGAATTAAATCTTTATAAAATTGTAATACTG -AATCCTCATCTTCTAATTGTTGTGCAACATTGATAGTTTTATAATTCGGATTCACTGGGAACCACGGTTC -ACCATTTGTAAATCCTCCATTTAACGTATCATCCCATTGCATTGGTGTGCGAGAATTATCTCGGTTCTCA -TCTTTATATTTCGCAAGTAAAGCGTCTACATCTCCACCTTGAGCTTTCACAATTTGATAGTCATTTTTAA -CAGCAACATCGTTAAATGTTTCAATACTTTCAAATGGATAATTCGTCATACCAATTTCTTGACCTTGATA -AATGAATGGCGTACCTTGTTGCAAGAAATAAACTGCTGCATGACTTGTTGCTGATTCATACCAATACTTG -TCATCGTCACCCCACGTCGATACACGTCGTGGTTGGTCATGATTTTCAATAAACAACGCATTCCAACCTT -TATTTTCAAGTTGTTTTTGCCATCTATTTAATACAGACTTATACGAATTTACATCAAAGTGAGAATCACC -ACTATTCCACAGTCCCAAATGTTCAAATTGGAATATCATATTAAATTTACCATTTTCTTCCCCGACCCAG -TCATCAGCATCATCAGGGCTTACACCATTCGCTTCACCAACAGTCATAATGTCATACTTACTTAATGAGC -GATCTTTCATCTCTTGTAACCAAGTTTGTATACCTGGCTGATTCATATCTACATCAAATGCTGGGGCATA -TGTTTTACCCTCAGGTACAGGTAAGTCACCCGCTTCAAACGTCTTCTTAATATGCGTAATTGCATCTACT -CTAAATCCATCAATGCCTTTATCAAACCACCAGTTCATCATTTCAAATACAGCATCTCTAACTTCCGGAT -TACCCCAATTCAAATCAGGTTGTTTTTTACTGAATAGATGGAAATAATATTGCTCAGTATTAGCATCATA -TTCCCATGTAGATCCATTAAATATACTTTCCCAGTTGTTAGGTTCAGAGCCATCTGGCTTTGGATCTTGC -CAAATGTACCAATCACGTTTGGGATTGTCTTTACTAGATTTGGATTCTATAAACCAAGGATGTTCATCAG -ATGTATGATTCACAACTAAATCTAAAATAAGCTTCATACCTCTATCATGAACACCTTTTAATAAACGATC -AAAGTCTTCCATCGTTCCAAATTCATCCATAATCTCTTGGTAGTCACTAATATCATAACCATTATCATCA -TTAGGTGATTTAAACATTGGACTGAGCCAAATGACATCGATACCTAAATCTTTTAAGTAGTCCAATTTAT -CAATCATTCCAGGTAAATCCCCAATACCATCGTGATTACTATCATTAAAACTTCTTGGATATACTTGATA -TGCTACTGCTTCTTTCCACCATTGCTTATTCATTTTAAAACTCCTTTGCTATCGCTGTGTTGATTTTCTT -ATTTTTAATTCTGTATCTATAATGACGAGTTCAATAACATCCTGTGCTTTATTTTTTAATATATTTAAAA -TTGCTGCACCAGCCTGTTGACCTAACATTCGAGGCTTGATGTCAATACTGGTTTGAGGTGGTGACGCAAT -TTCGGTTAAATAAGAATCATTGAACGTTGCTGTCATTACATCTTTCGGAATTTCAATATTAAGTTCATAT -AGGACACTTAAAATCGCTAAATGTAACATAGCATCTAACGAAATGATTGCCTGTTTAATATTTGGGTCCT -TCAAACGCGTATGCAGATTTTGCATGTAATTAAAAATAACTTCTCTTTCATTACTAGTCTCAATAATTTG -ATAATCCAGATTAAATTGTGATGCAACTGTTTCAAATCCTTGAATCCTGTCTTTCGAAACTTCAAAATCG -CCTTTTTCTGTAATAAATATTAATTCATCTACACCTTGTTCAATAACATGTCGTGTCAAATTTTCAGAAG -CTAATATATTATCATTATCTATATGTGTAAATTGATGATCTATATCCGATGTAGGCTTACCAATCACAAT -AAATGGCATACTTTCATCAATTAACATTTGTTTAATCGGATCATTTTCTTTTGAATAGAGCAGTATAAAC -GCATCAACCATTCGTTGTTTAATCATTTTATAAACTTCATCCATTAAATCATTCATATTATTTGAGACTG -TCGTTTGTGTACCATAGCCATGCTGGTTACACGTTTCAGAAATTCCTAGCAATACATTGATGTAGAATGG -ATTCAGTCGAATAGGCTCCTCAGACCCTTTTAACACTAAACCAATTTTATATGTTTGGTTAGTAATTAAA -GTTCTAGCAGCGGTATTAGGAAAATAATTCAATTCTTCCATAACTTTCTTCACTTTTGAAATTGTCGCTT -CGCTTATACGTTGATTTCCTTTTATAACTCTTGAAACTGTCGAAGGAGAAACACCGGCTTTTAGTGCAAC -ATCTTTAATCGTAACCATTTAATCACCTCCTGTTAATCTCTGTACTGGAAAACGCTTCCAACCTTTGTAT -AATACCAGTTTAGTCACACTTTCTAAAAAAGTCAAAAGATTTGTGCAAACGATTGCATAAAACGATAAAA -ATAAAACCTTCATACTGAAATTCAATCCGAAAATCAATATAAAGGTTTGTATAAATATTAAAATCGATTG -TTTAGTCACTAACTGCAAAATAATTACCTTGGCCATCTTGGAAATTAAATACACGTTGACCATTCGTTTC -TACTATATCATGCCCAGTTAAACCTAAATCATTTAATTTTGAGTATAATGCATCAAAGTTTTTCTCTTTA -AACATTAAAGATGGTGTTCCTAGGTTCACCTCCGGGCTATACTTTTCAATAAATTCTTTTGCCATAATCG -TCAATGACGTTTCAGCATCTTTCGTAGGTGATACTTCAACTGCAACATAGTCCTCAGCTAACGGTGTTTC -ACTTACAACAACAAATTCTAAAATTTCTGTCCAAAATGCTTTCGCTTTTTCAACATCATCAACATATAAC -ATAACTTGATTTAACTTTTCCATAAAATAGTACCTCTATTTCTCTATAGTACATGCTATCATAACACAGT -AAATATTTTATTACTTCACAAAATGCTTAAAAATATGGCGGGATGCTTTTAAGGTCAAAGATAATACTTG -TGTAATTTTTTATATGTTGTAGCCACATAGAACTTCATTAATCAAACATGTCATCTGGGACATATATCAA -TGAAATACTTCGTTCAAAGTTTTCGTATTTTCTATGTCAACTTAACTGGGTGTAGCTCACATTGTCCATT -AGAATGTATAACTAACATAATAAAATTAATTAAACGTACATGATTTGATTATGGAAGTTACAATCATTTG -CGCAATCGAATATTATTATGTTCAAACTTTACGCTCCAATAACTAAAAAGAAAGTTATACAATGTTTAGT -TGCCTAACTTCCTATATTGAATTCATCAGTCCAATTTGACATAGCAGCCATTTTTATAGTTGCCATTTAC -ATGTGTTGCTAATTAATCATGGAAGTATTATATATAGTGCTCACTGTAGAACAGGCATTAAACAATGCCA -TTTCTAAGTAATTATCAACTTCATAGTTTTCAAGCCAATAATGAAATACTGATGCTGAAAAAACATCTCC -TGCACCTGTGTCATTAATTATATTTGAACTCTGTTGAACATTTTTAAATATGCTTAATTCTCCATTTGTA -TAAAAGATATCATCATTTCCATTAGTGATAACTATATTTTTTATTTCTGAAGTTTTACTAATTTTTTTTA -TTTTTTTATAATCACTTTTAGTATTTAAAGAAACGTTCCAAAAAGCTTCAGCTTCTTTTTTATTAAATAT -TAAATAGTCTATCTTTGCTAAGTTTTTTAGTATGTTTCTCACCTTCTTTATAGATGCTGGGATTATACCT -ATTGGAATATTACTCTTTCCACACAACTGAATTAAATATTGTATACTTTCCTTGGGAATATTAGAGTCTA -CAACCACACAATCTGCATTTTTTATTACTTCTATTTTTTCATTTAAATATTTGTTATTTATTAAGTTATA -TATATCCATATCTGCAAAACCACATATCATTTCCCCATTATAATCTATTACAGAAGTGAACATTCCTGTG -TTCATATTTTCTATAATTTTTATATGTTTTAAATCGATAAACTTATTAGCTTCATTTAAAATATAATCAG -CTTCTTTATCATTACCTAATAAAGTTAATAGAATAGTTTTTTTATTACTTAATTTGCCAATATTATACGC -TAAATTCCTAGCTACACCTCCAGATACGCTTATCGAAGATACAGGGTTTGAACTTTTATTAACCAATTCA -GATTTTAAATATAATTGTTTATCTATATTTGCTGCACCAATACAAACAATATTTTGGCTGTTTTTCATTA -ATTTTCTCCTTACTATTCTTCTACTTTATAAAATCTATTTTTCAGTATATATAACACTAATGGTATAAAT -AACACAGCGCTGATCGTAAGTGCATAAAATCCACCTTTATTTTCAAGTAATATGCCGCCTAAAAAAAGGC -CTATAGCTCTGAATGCAAAAACCATTGTTTTAAAAACACTATTAACACGTCCTAACATATGTTCTGAACA -TTTCTTTTGCCTCAGTGTGATTATCGCTATATTTAAAATGGATTGTGTCATATATGTCAACCCTAAAAGT -GGGATGAGTATAAAAATATAAGTACTAAATGGTAACATTAATCTAAAAATTGTATCTAAAAATAATATAA -TTACAATTAGTTTTCCGAAATTAAATAATTTCAAGAGAAAACTTGCAGATAATGAACCGATTAGCGCACC -TAATGATGAGATACCTAAAACTAACCCCAATGCTTGAGATGATTGATTCATGTCTTCCTTTACAAACATT -ACTATATAAATATAATAAGGTGAGATAATTAGATTGGATAAACTTACAACAACAGCCATTACTCTAATAG -TTGAATTAGATAATAGATAATCAAATCCAACTTTAACATCGCTCAAAAAATTTTTTCCACTCAACTTTTC -TTGATTGAATATACTCTTTGTTTCAATTTTAATTAATATCAAACTGAAAAATGAGAGTAAAAAAGTCATA -GAATCTATAAAAATCAATATTGAATATCCCATATATGTATAAAGTAAACCTCCAATTATAGGGCCCAAAA -ATTCCGAAACATTTTGAGTAGCGTATATATAACTGTTTGCGCTCGCCAAATCTTCTTCTTTTACAATACT -TGGGATTATCGAAACCTCAGAAATACTGTGAAATACTAATCCAATACCTGAAATGATTGCAACTACATAA -ATTTGAAAGATGCTTAACATATTATAAAAACTTAATACTGGTATACTTAAATATGAAATGAGCCTAATTA -TATCAGCACATTTCATTATGGTCTTCTTATTCAATCTGTCAATTAAAGCACCTGCTGGCAGTCCTAAAAT -TGCATAAGGTATAAAACTTAGTGCAGAAACTATGCCAACTTGAAATGCAGAGCCAGTAAGCTTTAAAATC -ATTAACGGAAAACAAACGTAGTAAAAGCACTGCCTATGTTAGAAAAAGCTATCCCTATTAAATAAAAAGT -AAAGTTCTTATTAAACAATACAGAAGCATATGACATTCTATCCCTCTTCTTCATCAAATAATAAAACGTA -ATCTATTTATCTAAATATTAAAATTATTAACTAATGCTATCTTAATAGTATGTAAGTAAAACGTCTACAC -TTAAACGGACAAATTCTATGAGGATAGATATCGTTAATTTATAAAAGTTAAAAATTTTAATTTGACAAGA -GAAAGAAAATCATTGAATATATCATGCGTAGTAAATTTCGATAAATACATAAGGAAAGAGACAATTTCTA -TCAAATAAATAATAGAAATTGTCTCTTTAACATTACCTAAATTCATAAGGTCTCAGGCTCAATAGTCAAT -ATTATTCTTCAATCCATTGTGTATGGAATACGCCTTCTTTATCTTTTCTTTCGTACGTGTGAGCACCGAA -GTAGTCACGTTGTGCTTGAATTAAGTTTGCAGGTAAATCAGCTGCACGGTAACTATCATAGTAATTAATA -CTTGATGAGAAACCAGGTGTTGGTACACCATTTTGAACACCAGTTGCGACAACATCACGTAACGCATCTT -GATATTCAGTAACGATGTTTTTAAAGTAAGGATCTAGCAATAAGTTTTGTAATCCAGGATTATTATCGTA -AGCATCTTTGATCTTTTGTAAGAATTGTGCACGGATAATGCAACCTTCTCTCCAAATCATAGCTAAATCA -CCAAGTTTTAAATTCCATTCATTATCTTCACTTGCTTTACGCATTTGCGCGAAACCTTGTGCATAGGAAC -AAATTTTACTCATATATAATGCTTTACGAATTTTTTCTAAAAAGTCTTTCTTGTCACCATCAAATGATGC -TTTTGGACCATTTAATTCTTTAGAAGCATTTACGCGCTCTTCTTTGATTGAAGAGATAAAACGTGCAAAT -ACAGATTCAGTTATGATTGTTAATGGAATACCTAATTCTAATGCGTTAATTGAAGTCCATTTTCCTGTAC -CTTTTTGACCTGCAGTATCAAGAATTTTTTCAACTAATGCTTCTTTATTTTCATCTAATTTCATGAAAAT -ATCACCAGTGATTTCAATTAAATAACTTTCTAATTCACCAGCATTCCAGTCTTTGAACGTTTGAGCAATG -TCTTCATGAGACATGCCTAATAATTCTTTCATCATAGCATAACTTTCTGCAATTAATTGCATGTCAGCAT -ATTCGATACCATTGTGTACCATTTTCACATAGTGTCCAGCACCATTTGGTCCAATATAAGTAACACATGA -AGCACCGTCTTTTGCCTTTGCAGCAATTGCATCAAGAATATCTGCAACTTTGTTATAAGCTTCTTCTTGT -CCACCCGGCATTAATGACGGACCAGTTAACGCTCCAATTTCACCACCAGAAACGCCCATACCAATAAAGT -TGATTGCACTTTGTGCTAATGCTTTATTACGTCTGATAGTATCTTGATAGTTTGTATTACCACCATCAAT -TAAAATATCTCCATCATCTAATAAAGGTAACAAACTATCAATCGTTGCATCCGTAGCTTTACCTGCTTGA -ACCATTAATAAAATTTTACGTGGTTTTTCTAAAGAATTAACAAATTCTTCCAATGAATACGTTGGATGAA -TATTTTTCCCTTTTGATTCTTCAACCATTAAATCAGTTTTTTCACTTGAGCGGTTAAATACAGATACACT -ATATCCGCGTGATTCAATATTCCAAGCTAGGTTTTTACCCATAACGGCTAAACCAATAACTCCAATTTGT -TGTGTCATATTACTTACCTCACTTGTTGATTTTTCATTAGTATTGTATCACAAAATAGACATACACTACA -CTAAATCATTTCGATTGTCGCGCAACTATTTTGATTATTTCTAACACTTGACTTGCAAGCAAGTTCAATG -ATTTAATCGGCATTCTCTCATTTGTTGTATGGATTTTTTCATAACCCACTCCTAAAATGACTGAAGGAAT -ACCAAATGTATTAATAATACTGCCGTCTGAACCACCACCAGAAATAATTGTATTTGCAGATAATCCTAAA -TTACGAGCACTTTCTTGTGCAATTTTAACAACCGTTTCATTATCATTAATTTTAAATCCTGGATAACTTT -GCTCCACTGTAACTACTGCTTTCCCACCTAATTCTGATGCAGTAGTTTCAAACACATCAGTCATATGTTT -GACTTGTGTTTTTATTCTTTCTGGATCGTGAGAACGTGCCTCTGCTTCTAAAATGACTTCATCTGCAACA -ATATTCGTAGCTGAACCGCCATGAAACTTACCAATATTGGCAGTAGTGATTTCATCAACTTGTCCTAATT -TCATTCGACTAATTGCTTTCGCCGCAATATTAATAGCACTAACACCCTCTTTTGGCGTACTTGCATGAGC -CGTTTTGCCAAAAATTTTAGCTGAAATTAACATTTGCGTCGGTGCACCTACAACCGTAGTACCGACATCA -GCACTTGCATCAATAGCATAACCAAAGTCCGCGTCCAACAACTCTGAATTTAATTCTTTAGCACCAATTA -AACCTGATTCTTCCCCAACAGTAATCACAAATTGAATTTGTCCATGTGGGATTTGTTGTTCCTTTATCAC -TTGCAAAACTTCAAGCATAGCTGCTAATCCTGCTTTATCATCTGCACCTAGAATAGTCGTACCGTCAGAG -TATATGTAGCCGTCATCTTTTACAATTGGCTTTACATTAATTGCGGGTACAACAGTATCCATATGGCTCG -TTAGATATAATTTAGGTACTTCGCCTTCTTCGATAGTACTTTTCATTGTACACACTAGATTATTGGCACC -TAATTTAGGATGTTTAGCCGCTTCATCTTCTTTAACATCTAACCCTAATGATATGAATTTTTCTTTTAAA -ATAGGTTGGATTGTTGATTCATTCCCTGTCTCAGAATCGATTTGTACAAGTTCTAAAAACGTATTAAGTA -ATCTTTGCTCATTAATCATAATGGAACCCCTTTTATCAAAATTTTCAAGTACGCCAAACGGTAAAAATTG -ATGAATTAAAATGTTACAGTAATTGACGTTACACAGATTTATCAGGCTTGTAAATTGTGTCATATTATTT -TCAATTTAATATATATATTTATTGTAACTCAAACTAAGCTTTGTCAAAAATATATTGATTGATTTTTCAA -AGATATCGTATAATGAGGAAAATGACATAAGCAAACTTACTCATGTTTTTTATAATATTCCTTTATGATG -ATTGCTAGTTATATCGTCTCAAGTTAAAAATTTTATATCTTATGTCGTAATTATTAATACAAAGGTTATT -CATTTGGAGGCACACAAAATGCAAAATAAAGTTTTAAGAATTATCATTATCGTTATGCTTGTATCAGTTG -TATTAGCATTGTTATTAACGAGTATCATTCCAATTTTATAAACCATATCTCAACTACCTATACAAAATCA -TACAATTAAAAATCCATCCGTTATAAACGCATGTATTAATAAGTTATCGTATTGCAACGATTACTTTCAA -ACATGGGTCATACGGATGGATTATTTTTTAAGCTACTTCACTATGCATTTTCAATGAACCAAATTGCGAT -TTGATTTGTAAATATTCTTCTAATTCATTTAATATTTGAATAATACTTGCTCTCGAGTTAAGCGCTTTGT -GTGTTGTTGGCAATGGCAGTTCATCCAATTTCAAACGCGTCTCATACAAATTGTGTAAACGCATTGCTGT -ATAGTCATTACTATTCACATTTAGACCAATTTCTTTCAGCAGTGACGCAACATCATTTAAAAGTGGATCT -TTATGACAGATACTTTCGATGAGCGGTTTCATTCTCATTAACAATTCCACTTGCTCTTCTCGCATATCAA -AATAATGATAGTATGAATTTTCGTTTCTAACAAAATGATTTTTAACATCTCGGAACGCGATAGACTTCGC -CTTTTTAATATTTAAAAGTAACGCTTCAAATTCAATCGCAATGGTATCTTCATATTTTTCACAAATATAA -CTATATTTACTAAAAATATCAGCAATTTGTTGCTCAATTTTACATTTGTATTCGTCTAGTTGTTTGTCTA -AACTTGGCATCATTAAATTCATTGTAAATGCAATGCTTAGTCCAATTAACAGTAATAATGTTTCATTAAC -AATTAAATGTGCATCAATTGATTTTGCATTAAAAACATGAAGTAATATAACGCAACTCGTAATGACACCT -TCTTGTACTTTTAATACGACAGTTAATGGTATAAATAACAATACGATAATACCGAGTACAATTGGACTCT -GGCCTAATAAACTAAATATTGCTGAACCTAAAAACAATACTAAAAAACATGATACTAATCTTGAAATAAT -CGCTTGTAGCGAATGTACTTTTGTATGTTTAATACATAATACGACTAATATGGCACTTGAAGCATAATTA -TCTAAACCTAACAGCTTACTAATAATTACACCTAAAGTCATACCCACTGCTGTTTTTATTGTTCTAAATC -CAATCTTGTAAGGATTTAACTTTAACATGGGTTAGCGCCTCTTATCTTTCTTCACAATATTTATTGAATA -ATGTTTGTAATTGATTAATTACGTTCATCACATCATGACCTTCGATTTGATGTCTTTCAATCATTTCTGT -AATATTTCCATCTTTTACTAATGCAAATGACGGACTTGAAGGCGCATAACCTTCGAAGTATTCACGCGCT -CTTTGTGTCGCTTCTTTATCTTGTCCAGCAAATACTGTCACTAGACGATCAGGTAATACGTCATAATGTA -AAGCATGTGATGCTGCTGGTCTTGCGATACCACCTGCACAACCACATACAGAATTGATCATAACTAGTGT -TGTACCATCTTGTTTAAGAACTTTGTCAACATCTTCTGCAGTAGTTAATTGCTCATATCCCGCAGATTCA -ATTTCATTCCTTGCTTGTTCTACAACACCGTTCATGTATAAATCGAAATTCATGTCCATAAGTTCAATCA -CCTATCCCTTTATATTTAAACTATCCTCATTCTACTAATTAATAACATATTGTTCAATAAACTAATCTGA -ATCACACCTATATTTAGACACAATTTTAACAATATACCAAACATTATTGTGCTTAAAATCATGGAAACTA -ATTTGTTCACCTGTTTTCTTTAATATGTTTCAAGTACGATGTCTTATTTTGACTTTACTGCAAAAATGCA -TTCAACCATGTTGATTATTGTTCTTTATCTTTTTTTGAATATATTGCAAATATTTTATTGCCAAAAAAAT -ACATCCATCGACAAGAACAAGATAAAACAAGTTGTCGATAGATGCATCTATGTTATCACTAATATATATT -TGTATTTTCTAAAGTATACTGTTCGATACGCTGTTTAATATGATTCATAAATTTACCTGTTTGTAAACCA -TCTAAAATACGATGATCAATTGAAATACATAAATTAACCATACTTCGAATTGCAATCATATCATTAATTA -CTACTGGCTTTTTAACGATTGATTCTACTTGTAAAATCGCTGCTTGAGGGTGATTTATAATACCCATTGA -TGATACTGAACCAAATGTACCAGTATTATTAACTGTAAATGTTCCACCTTGCATATCTTCAGTTGTCAAT -TGCTTATTACGCGCTTTTGTTGCTAAAGTATTAATTTCTCTAGCTATACCTTTGATTGACTTTTCGTCTG -CATGCTTAATCACAGGTACGTATAATTTATTTTCATCAGCAACAGCAATTGAAATATTAATGTCTTTATG -TAAGACAATTTCATTTCCTTGCCAGCTACTATTTAATAATGGATATGCTTTTAAAGCATCTGCTACAGCT -TTTACAAAGAAAGCAAAGAACGTTAAATTATATCCTTCTTTATTTTTAAAGTTGTTTTTATAATGGTTTC -TCGTATTCACAAGGTTTGTAGCATCAACCTCAATCATCATCCATGCATGTGGAATCTCCGTTACACTATT -AACCATGTTTTGTGCAATTGCTTTACGCACACCATTTACTGGTATTGTGCTATTTTCACTATCGTCTTCA -GATGATTGGTTACTTGATCTATCTACTGAAGTTGATTGTGTTTGAACTTGTTTGTCAGATTGAGCTGTGG -TACCACCATTTTCAATAACTGACATTAAATCCTTCTTAGTTACACGACCTTCAAATCCACTACCTACAAC -TTGTGATAAATCAATGTCATGCTCTGAAGCGAGTTTAAATACAACAGGTGAAAAGCGACCATTATTTCGT -GGTTGATTTTGTTTAGAAGTAGATGTCTGTTCCACTGTTGAACTAGCTTTTTTAGTAGATTTCTGAGTAT -GCTCATCCACTTTTGCTTGTATCTCTTCAGTTGTTTCATTTGTCTTTTCATCAGCAGTTTCAATTTTACA -GATAATTGTATCAATAGCTACCGTCTGCCCCGCTTCAACTAAAATTTCTGTAATTGTTCCTGATATCGTG -GAAGGGACTTCAGCCGTCACTTTATCTGTAATAACTTCACATAATGGTTCATATTCATCAATATGATCAC -CAACAGAAACTAACCATTGTTCAATGGTACCTTCATGAACACTCTCACCTAACTTAGGCATTGTTATTTC -CATGACTTTCCCTCCCTAGAATTCTGCTAATTCACGCATTTTATTTAAGATTTTTTCTGGATTCATCATA -ATTTCATTTTCTAATACAGGTGAAAATGGCATAGATGGTACATCTGGAGCAGCTAAACGCATGATTGGTG -CATCTAAATCGAACAAGCAATGCTCTGCAATAATCGCTGACACTTCTGACATAATGCTACCTTCTAAATT -ATCTTCAGTAACAAGTAAAACTTTACCTGTATGTTTAGCACGATCAATAATTGTTTCTTTATCTAATGGA -TAAACAGTTCGTAAATCTACAACTTCAACATTGATACCGTCTGCTGCTAAAATATCAGCGGCTTGTAAAC -AATAATTGACCATTAATCCATAACAAAATACTGTTAAATCTTCACCTTCACGTTTAACATCTGCTTTTCC -TAAAGGTACAGTGTAATATTCTTCTGGCACTTCTTCCTTTAAGAATCTATAAGCCTTTTTATGTTCAAAG -TATAAAACAGGATCATTTGATTCAATTGAAGATAATAATAGACCTTTAGCATCATACGGTGTTGAAGGTA -TAACAATTGTTAAACCTGGTGATGAAGCAAATATACTTTCAATACTTTGTGAATGATATAGTCCTCCGTG -AACACCGCCACCAAATGGTGCACGAATCGTTAATGGGCATTGCCAATCATTATTTGAACGATAACGCATT -TTCGCAGCTTCACTAATAATTTGATTTGTTGCAGGTAAAATAAAATCTGCAAATTGAATTTCTGCAATTG -GTCTTTTACCTACCATAGCTGCACCAATGGCAGTTCCAACAATATTTGACTCAGCTAATGGCGTATCGAT -AACTCTATCTTCACCATATTGTTGTTGCAGTCCTTGAGTAGTACCAAATACGCCACCTTTTTTACCAACA -TCTTCACCAAGAATAAATACATCTTTATTTTGTTGTAAAGCTAAGTCTTGTGCCTGGCGAATCGCCTCTA -AATAAGATAATTTAGCCATTAGTTAAGACTCCCTTCTTCGTACACAAATGCATAGGCTTCTTCGACACTT -GGATATGGCGCGTCTTCAGCAGCCTTTGTCGCTTTATTGATGATGTCTTTATGCTCCGCTTCTATTTCTG -CCAACCAAGCATCATCGATAATGCCAGCTGAAAGCAACTCTTTTTTGAACTTTTCATTGCAGTCTGCTTT -TTTAAGCGCTTCACGCTCTTCTTTCGTACGATATTGGTCGTCATCATCTGATGAATGAGCTGTCATACGA -CTTGTTACTGCTTCAATCAAAGTTGAACCTTGACCAGAAATAGCTCGATCTCTTGCTTCTTTCATCGCTT -TATACATTGCTAATGGATCATTACCATCTACTTGTTCACCATGTAAACCGTAACCAAGTGCTCTATCCGA -TAATTTTTCAGCTGCGTATTGTAATGAATCAGGTACTGAAATTGCATATTTATTATTTATAATGACACAT -ACAAAAGGAAGTTTGTGTACACCCGCGAAGTTTAAACCTTCATGGAAGTCACCCTGGTTTGAACTACCTT -CACCAACAGTTGCTGTTGCAATTTTCTTCTTACCATCCATTTTTAGAGCTAAAGCAGCACCAACAGCATG -GGGTATTTGAGTTGCTACCGGTGAACTTTGTGACAAAATATTCTTAGCTCTACTACTAAAGTGTGATGGC -ATTTGTTTTCCACCAGAGTTAACATCGTCTTTCTTTCCAAACGCTGATAAAAACGTATCATACGCTGATA -TACCCATATAAGTAACGAAAGCTAGATCTCTATAATAAGGCGCAGTAATATCACCTTCTTCTAATGCGTA -TGCCATCCCAATCTGAGTTGCTTCTTGTCCTTGACCACTTACAACAAATGGAATTTTACCTGCACGGTTC -AATAACCACAGTCTTTCATCTATTTTTCTACCTAAATCCATCCATTTATATATTACTTTTAGGTCTTCTT -CGCTAAGGCCTAATGATTTATAATCAATCATGTTAAATCCTCCTATTTATACGTGAATAGCTCTACTTTC -TGCTTTCAATCCTAATTCCATCAACACTTCAGAGATGGAAGGATGTGCGTGTGTTGTTAGTCCTAATTCT -AATGCCGAGCCATTCATGAACTGTAACAGTGATGCCTCATTAATCAATTCTGTTACATGTGGACCAATCA -TATTAATACCCACAATTTCTTCAGTTGATTGATCAATCACCATTTCGCTATACCCTTCGTTTGCGTCATG -GCTATCAATCACTGCTTTACCAATTGCTTTAAATGGTACTTTAAAACTTTTAACTTTCATTCCCTCTGCC -TTTGCTTGCTCAATGTTTAAACCGATAGAAGCAATTTCAGGTTGTGAATAAATACACTTAGGCATCATGT -TATAGTTTACTGGGATTGGGTTCCCTTCAAACATATGATCGACAGCCACAACACCTTCTTTTGATCCAAC -ATGTGCCAATTGTAATTTTCCAATACAATCACCAGCTGCATAAATATGTTTATCTTCAGTTTGTTGAAAT -TCGTTCGTTAAAATATGTCCTGATGTTGAAAGTTTTATTTTAGTGTTGTTTAAACCAATATCTGATGTGT -TAGGTTTTCTACCAATCGATAGCAACACTTTATCTACTTTAATTATGTCTGAGGAAATTTCAAATGTAAC -ACCATCTTCGTTAACATTGATATCATTTTCAGAAAGTTTTATTCCCTCATAGAATTTAACACCACGTGCT -GACAATGATTTTTTTAATAGTTGTGAAGCTTGTTTACTTTTAGTTGGTAAAATTCTTTCACCAGCTTCTA -TAACTGTTACGTCAACACCTAAATCTATCATCAATGATGCAAATTCCATTCCGATAACACCACCACCAAT -AATACCAACACTTGATGGTAACGTCTTTAATGATAATATATCATCGCTAGATAAAATTTTATCATGATCA -AATGATAAGAATGGCAACTCTGCAGGCGAAGAACCAGTTGCAATTAATACAAATTGGTTGGGTAATAAGT -CTGATTCACCATCTTCATATTCGACAGATATTGTGCCACTTTGAGGTGAAAATATAGATGTACCTAGAAT -ACGTCCCGTGCCATTATAAATGTCAATGTGATTGTGTTGCATTAAATGCTTTACACCTTGATACATTTGA -TTAATAATGTCTTCTTTTCGTGCCAACATATTTTCAAAATTAACATTAGCATCTTTGACATCAACGCCAA -ACATTGCTGCCTGTTTTACTGTTTGAAATACTTCAGCAGATTTAAGCAGCGATTTAGTAGGAATACAACC -TTTATGGAGACAAGTACCTCCTAATAGTTGTCGTTCTACTATTGCCACTTTTTTACCTAATTGAGACGCA -CGTATCGCAGCAACATATCCTGCAGTACCTCCACCGAGAACGACTAAATCATATTGTTTCTCTGACATGT -TCTTACTCCTAACTAATGATATATATCCATTGAAAATTTATTAATACATAGTTTTCATGTCCATTAATTA -CCTATTTTACATGATTGTCTATTTAGTTTGAATGCACATAAATAAATCCATAAATGAGTATTCAACACAC -TTTGGAAATTATCTATGTCTTTGATTGTGTTGTATCATTTCTCTTGCATTTTCACGAGTTAAATCAGTAA -CACTTGCACCTGAAATCATTCGTGCAATTTCATCTACTTTATCATCGCCAATTAACTCTTGAACTTGTGT -TGTTGTACGATCATCTTTTGATGATTTCGAAATTAATAAATGATGGTCGCTCATCGATGCAACTTGTGGC -AAGTGAGATATACAAATAACTTGTATATATTCTGCTATATCTCGCATTTTCTCTGCCATTTTTTGTGCGG -CTTGTCCAGATACACCTGAGTCAACCTCATCGAATAAAATTGCAGTTTGACCTCTCGATTTAACAAAAAT -ACTTTTTAACGCTAACATAATTCTAGAAAGTTCTCCACCTGACGCAATTTTATTTAAGCTTTTTAATGGT -TCCCCTTTATTAGGACTGATTAAAAATTCTACAAATTCGATTCCATCAATATTCGGTTCTTCTAATTTTT -TAAATGAAATCTCAAGATTTGCATCTTTCATTTGTAAGTTTTGAATTTCCGATACAATGTGGTCTCTTAA -CTCCCTAGCAACTATACGACGCTGCTTAGATAACGCTTGTCCAACCTCTATAACTTGATTATACAATGCA -TTTATTTCTTCTCGTAACTGCGATGTACTTTGTTCATAGTTTTCAATTTTATTGATTTCATTATTAAGTT -TTTCTTGATATGCGATTAATTCTGAAATATCTTTTCCATATTTGCGTTTTAAATTATTCAGCAAATTCAT -ACGAGATTCATACTCATTTAACACTTGTTCGTCGAATTCTGTATTAGCCATTTCATCATATAACTCATGT -TTTGCATCTTCTAAAATGTAATAAAATTGATCAATATCTTCTTTTAATTTGTCATATTTGTTTGGAACTA -TATCGTTTATTGTTAACAAATGGTTGCTTAGTTCATACAAACGATCAGTGATAGCATTTTCATCCGTTAA -TGTCATATGTGCGTTATTAAGAGCTAAGCTTAATTTTTCAGAGTTTTGAATGCGTTTAATATCTATTTCA -AGTTGCTCTATTTCGCCTTCTTTTAGATGTGCTTCAGACAATTCTTCTAATTGGAATTTCATTAAATCTA -AACGCTGCAGCAATGCTTGGTCTGCTGATTCTAAATCTTCTAACCCTTGCTTTTTGGCTTTATAATTTTG -AAAAGTTTGGTGATATTTATCCAACAAATCTTGATAACGTGATTCTGCGTAATTATCCAATAATGTTAAA -TGGTATTTTTGTTTCAACAAAGATTGCGTTTCATGTTGGCCATGAATATCTAATAATTCTTGCATAACTT -TTCGTAAATCTTGTAAAGTAACTGTTTGATTATTAATTTTACAAAGACTTTTACCAGAGCTGAAAATTTC -CCGTTTAACTAATAAAAAATCTTCATCTACATCAATATCCATATTTTTCAATATATGTATAGCATCTTTA -CTCTCGTCAATATCAAATATACCTTCGATGACAGCCTTTTTTTCACCATGTCTTACAAAATCAGATGAAG -CTCTCATTCCAATTAATTGTCCAATTGCATCTATAATAATTGACTTACCTGAACCCGTTTCACCACTTAA -AACAGTTAAACCATCAGAAAATTGAATTTCTAACTCTTCAATAATAGCAAATTGCTTGATTGATAAGGTT -TGTAACATAAACTCATCGCATCCTTATAACAAATTGAAAATTCTTGACTTGATTTCATCACTTGCCTCTT -TGCTTCGACAAATAATTAAACAAGTATCATCACCACAAATTGTGCCTAGTACTTCTTCCCAATTGATTTG -ATCTAATATAGCTCCAATAGATTGTGCATTACCAGGTAATGTTTTTAGAACAAGTAAATTATCAGTACCA -TCTATATTAACAAAGGAATCCATTAAATAACGTCCCAATTTTTCTAAAGGATGGAATTTTCTATCATTTG -GTAAACTATAAACATATTGACCTGAAGGTATAGGTACTTTAATAAGTTGTAGTTCTTTAATATCACGAGA -AACAGTTGCTTGAGTGACATTTAAATCATAATCGTTTAATCGTTTAACTAATTCATCTTGTGTCTCTATC -TGTTCATTTGAAATAATTTCTCTAATTTTTATATGCCTAACCGATTTTTTGGGCACAGTAAACACCTCTG -ATTACGAATATTTATACATTTATTTTAACACATGCACTGATTTACGACTACTAAACACCTTTACGTAAAA -AGGGTAAACATGGTTTATCTATCTTGATTATCTATTTATAAATATTTTTCATATTACGCATAACAATTGC -TTAAAATATGTATAAAAATGAATATATGTGTAATAAACTTGCTAATTATTAGATTTAATAAGCGTCAATT -GTTTGAACATATTTAATTAAAATCACATTGATATCACAGATGCGAATATTGTCGTATAGAAATTGAAAAT -TCTATTTTTAGATGAAAGTCTTTAACATAATTTTAAGTTTCAACATGAGAAAAATCGATTAACAAACAAC -GTCAGTTGAATATGCCTTTTGAGACATTTCAAACTTAACAATTGTTGCTAATCGATATATTTGCTTTTAG -TGATCCCTGCTATAAAATAAATCAACGATTTCTAATAAGTGTTTTGTATTGAATTGTTCATCAATTTGCA -TTAGTTCATCCACTGCTGCGTCTCTATGATAAGTCAATTTATCTTCTGCGCCATCTTTTCCTAATAAACT -CACGTACGTACTTTTATTATTTTCAAGATCGCTGCCCACTTTTTTACCTAACTTCGCTTCATCACCATAG -CAGTCTAATAAATCATCTTTAATCTGAAACATCATACCTAAATGATAACTATAACTTTCTAAATGTTCTT -TAGTTGCATCATCGACATTAGCGATATCTGCTGCACTCATAACCGCAAAAGTTAATAGTGCTCCTGTTTT -TGTTTTGTGTATCATTTCCAAAGTTTCAAGATCAATTGGTTGGCCTTCGCTTTGCATATCTAACATTTGA -CCGCCGACCATTCCAACATGACCACTTGCTATTGACAGCCGTTGTAGAACTTTTATTTTTACTTCATCAG -TTAATCTATCATCACTTGAAATAAGTTCAAATGCTTTAGTTAATAAAGCATCACCTGCTAATATCGCCGT -CCACTCACCATATACTTTATGATTCGTTAATTTCCCTCGTCGATAATCATCATTATCCATCGCTGGTAGG -TCATCATGAATAAGTGAATATGTATGAATCATTTCTAGTGCAATTGCGCTCTTCATACCTAACTCATACT -CGGTATTTAGTGAATCTAAAGTGAGTAATAACAGAACTGGTCGGATGCGTTTACCTCCAGCATTTAATGA -ATACAACATACTTTCTTCTAGCTGAGTATTCATTACTGATTTATTTATCGCAACCGATAATTCATTATTG -ACTTCATCTATTAATTTATTCATCGGTAGATTCGTCATTTTTTACATCCTCAGCTTCTTCTTTTATTAAG -TCATTCACCTTTTTTTCGGCATTTTTTAAAGTTGTGTCACAAGCTGCTGATAGTTTCATACCACGTTGGT -ATAAATCTAATGATTCCTCTAAAGATACTGTTTCATTATCTAATTTTTGAACAATTCGCTCTAATTCTTG -CATCATTTCTTCAAAACTTTGCGTTTCTTTAGTCATTATTACACCTTACTTTCGTAACTTTTGCATCTAC -TAAGCCATCTTTCATTGTTAACGTCAATTGATCATTTTCTGTTAAATCTTTAGTACTCGTAATGACTTCG -TCTTTTTTATTAACAATTGCATATCCACGCAACATTGTATTAGTTGGACTTAAATTGTTTAAGTTTTCTA -CTTTATTTTTCAAATCATTTTTATAACTTAATATCTTAGAATTCAATAATTTAACAAGTTGGTTTGTCAA -TTGAAGATTATTTTGTTGTTCTTGATTAACACTACTTAGTAACGCTTTTAAATTATAGCGTTGCTGCAAC -AGCATTAATCGATGTCTCTGTTGTTCAAAAGTTGCCTGAATTTGTTGTTTCAGTCTCTTTTCTAAATCAT -CACGACGTTGTATCTGTTGATCATACAATAAAGTTGGTTGTTTAAACTTGTAATACGATGACAAATGTTC -AACATGTTTACGTTGTTGTTCTAAATGTTTCTTGATGAAACGAGTCAATGTAAACTGATATTGCTGTATT -TGTTGCAGCAATTCATATTGGTCTGGTGTTGCAATAACAGCAGCTTGAGTTGGAGTCGCAGCTCTGATGT -CTGCAGCAAAATCACTTAATGTAAAGTCTGTTTCATGACCTACTGCTGATATAATCGGTGTCTTACAATT -ATATATTGCACGGACGACAGCTTCTTCGTTGAAATTCCATAAATCTTCTATGGATCCACCGCCTCGACCT -ACAATAATGGTATCTACACCTAAACTATCTGCATATTCAATTTTTTCAATAATGTCGTCTTTTGCTTTTT -CACCTTGAACCAAAGTACTAATTTGTATTTGTTCAGCTAATGGAAAACGACTATTTATCGTTGAATGGAT -ATCTCGAATTGCGGCACCTGTACTCGCTGTTAAAACTGCAATTTTTTTAGGAAACTTAGGTATTGATTTC -TTATTCGCTTTATCAAAACAACCTTCTTCAGTTAATTTTTTCTTTAATGCTTCTAATTTTTGATATAAGT -TCCCTATACCATCTAATTGCATTTTATTTACATAAATTTGATAGTTTCCACGACGTTCAAAAACAGAAAC -ACGTGCTTCTAATAAGACTTCATCTCCTTCTTTAGGTTCGAAGTTTAATTTAGAAGCACTACCTTTGAAC -ATCATGGCACTTATAACGCTTTCTTTATCTTTCACATTAAAGTATAAATGACCACTTGAATGCTTTTTGA -AATTTGAAAGCTCACCTTTAATCAATACAGATTGGAGATGTGGGTCTTGATCAAATTTATATTTAATATA -TTTCGTTAAAGCTGAAACACTTAAATAATCTGACATATAACATCACTCAATTTTATTTTTTTATATTACT -CAATACACCATTTATAAATTTATAATGATCATCATCACTGAATTGTTTTGTTAATTCAACTGCTTCATTC -ATTACGACTTTAGCAGGTGTATCACTGTGTAATATTTCATATGTTGCCATTCTTAAAATAATACGATCCG -TTTTTAATAAACGTGCAATAGTCCAATCTTTTAAATTAGGACTAATTGTCTCGTCTAATACAGGTTCGTG -ATCTTTAACGCCAGAAACTAGCCAATGAATAAATTCGAAGTCTAAATCTGGATTATCGTCTTTAATAAAG -CTTATCGCTTCATTTATCGTTAAATCACTGTCCTTCATTTCTAATTGAAATAAAGTTTGAAAAGCTTGCA -CTCGGGATTCTTTACGACTCATTTTTAACTCCTTCAAACGTTTGTATTTTTCTTTATTTAATTACTGAAT -TAGGTATGACATTACTTTTCAATAACGATTTGTGTAATGTGAATATTAATTTGCTTAGGTTCTATCGCTG -TCATATTAGAAATTGAATTAAAAATTGACGTTTGAATTTTGTTTGCAGTTTTTGAAATATTAACACCATG -TTTTAATGCACAATATACATCTATATATATGCCATCTTCTTTACTCTCGATTTTTAAATCACGGCTTAAA -TTTTTACGACTAACTTTTTCTAAATTTGTTTCTTTTAATTCAGCAAAATGGCCAGTGATGCCTTCGACTT -CCGAAGTAGCTATACTTGCAATAACAGATAGCACTTCTGGCGCTATTTCTACTTTACCTAATTTTGAATT -TGAATAATCAGTTACTTTGACCATGGATTGACCTCCTATTAACCTTCATCATTCATAATGCTATTTTGCT -CTAAAAAGTTTGTATTAAATTTACCGCTTCTAAATATATCGTTATTCAATAATTTAATATGGAATGGAAT -AGTTGTATCAATACCAAGAACCACAAATTCACTTAATGCACGAATGCCAGCCATAATCGCTTCATCTCGT -GTCGGTTCATGTATGATTAATTTCGCTACCATCGAATCATAATATGGCGGTATCGTATAATTAGTATAAC -ATGCTGACTCTATTCGAACACCATATCCACCTGGTGCAAGATATTGCTCAATTTTACCTGGTGATGGCAT -AAAGTTCTTGTAAGGATTTTCAGCATTAATTCTAAATTCAATTGCGTGTCCTGTTAATTTAATATCTTCT -TGTTTATACGGTAACACGTCACCCATAGCAACTTGTAATTGTAATTTAACTAAATCAATTCCTGTTACCA -TTTCAGTTACAGGATGTTCTACTTGAATGCGTGTATTCATTTCCATAAAATAAAATTTATTATCATTTAA -ATCATATATAAACTCAATTGTTCCCGCATTTTCATAATTTACAGCTTTCGCTGCACGAACTGCTGCATTT -CCCATTTCACGACGTGTTTCATCATCTAAAATTGGGGAAGGTGCTTCTTCCACTAATTTCTGCATACGTC -TTTGAATTGTACAATCACGTTCTCCTAAATGAATTACATTACCATAGCTGTCCCCAACAATTTGGATTTC -AATATGGCGGAAGTTTTCGATGAATTTCTCCATATAAAGTCCACCATTACCAAATGCAGTTTGTGCTTCT -TGTTCTGTCATTCGGAAGCCAGTTTCAAGTTCTTTTTCATCACGAGCAACACGGATACCTTTTCCGCCAC -CACCAGCAGTAGCTTTAATGATGACCGGATAACCAATTTTTTTAGCGATTTTCTTAGCTTCTGAGACGTC -TTTCATTAAACCGTCACTACCAGGAACAACTGGAACATTGGCTTTGATCATTTCTGCCTTAGCAACATCT -TTGATACCCATTTTTTGGATAGATTGATAACTTGGTCCAATGAACTTCAATTGGCATGCTTCGCATAATT -CTGCAAAGTCAGCATTTTCAGCTAAAAAGCCATAACCCGGATGAACGCCATCACAACCTGTAGAAGTTGC -AATAGATAAGATGTTCGGAATATTTAAATATGAATCTTTAGACAAAGTGGGACCTACGCAATATGCTTCA -TCAGCAATTTGAGTATGTAGCGCATCTTTATCCCCTTCAGAATAGATTGCAACAGTTTGGATGCCTAAAT -CACGACAAGCGCGAATAATCCTAACTGCGATTTCACCGCGGTTTGCAATTAAAACCTTTTTCATTATTTC -ACCTTAAATAACGGTTGGCCATACTCTACCATTTGTCCGTCTTCTACTAAGATCTCAACAATTTCACCTG -AAATTTCTGCTTGAATTTCATTAAATAGTTTCATTGCTTCTAAAATACACACTGTTGTTTCATTTGAAAC -AGTGTCCCCAACTTGCACATAGGCTTCTTCGTCTGGAGATGGCGATTTGTAAAATGTACCTACCATAGGT -GCATTAATTGTTTTGTGATTATCTGAAGTTGGCTTTGGAGCTTCAGTTTTATTGTTATCAGTTGATTGTA -CTTGAGGCATAGGCATTGCCGCAGCTTCAAATGGCATTTGTGAGATTTGTGGCGTGATAATCTCAGTTTC -TTTTTCTTTCTTAAGCGTCACTTTGCCTTTAGTATCTTCAATATTGATTTCCGTTAAAGTTGATTTATCC -AGAATTTCAATTAATTCTTTGATTTCTTTAAAGTTCATTATTACTGACTCCTTCAGTTTGTTTTCATCTA -CCCGTCTATTTTACTTGAGACAACTCTTCAATTCAAGCATGTTCATATCGCAGGCGACATTATAGGTCTA -TCCCAAAGTTATAATAAAACCACATTTCAAATTAAAAACACTTGTGGATTTATTACTTAACATTGACTCA -TCTTAACTCTTGATTAAAAATTTTATGCATTCAGTTAAACATATCAATGTTATTTTTATTAGCTATTATT -TCTTATCCTCAACAATATGATATGTAGATATATACCCTTACTCATGTCTATGTTTTTTTACTACCAATTA -GACGATTCGTTTTATATTTTAAAATTTATTTTAAAAATAAAAAGCCTCATATCAGCATATAACCTATAAT -CATTTTAGGCAATAGCTTTATGAGACTTATTTGGAATATCTTACGTTAAATCAGTATAGTGAATACAAGC -TATTTGTTAACAAATTAGAGATTATCCTCTTGAAATGTAGCTTCCATCACCAGTGTTGATAATTAAAACG -TCACCTTCGTTTACAAATAAAGGTACATTTAATGTATAACCTGTTTCAACAGTTGCCGATTTAGTAGCAC -CGGTTGCAGTATCACCTTTAATACCAGGTTCTGTTTCAGTTACTGTTAATTCAACAGTTTTAGGTAATTC -AACACCGATAGTTTCACCTTCGTATGTTTGAATTTGTACTTCCATACCTTCTTTTAAGTAATTCAATTCT -TCTTTTAAGTAATCACTTGAAAGTTCTGTTTGTTCAAAGCTTTCATTATCCATAAATACATGATTATCTC -CGTCAGCATATAAATATTGCATGCGACGATTTTCAATCATTGCTGGTTCAACTTTTTCACCAGCTCTAAA -CGTTTTCTCTTGAATTGCACCAGTTCTTAAATTACGTAATTTTGAACGAACGAATGCTGAACCTTTACCA -GGCTTTACATGTTGGAAGTCTATAACTTTCCAAATAGCGTTATCAACAGAAATTGTTAAACCTGTTTTAA -AATCATTAACCGAAATCATTCAGTTTCCTCCTCATTTTACACGCTTATGTTAAAACTATAAGGTCTTTTG -TGCATTTAGTAAAGACTTGACAACCATTTTCTGTAATTAAAATATCATCTTCTATTCTTATACCGCCCAA -ACCTTCTATATAAACACCAGGTTCTACTGTAACACAGTTGTTAACTTGAAGTTTATCTTGTATCGTACGA -GCCAGCATTGGCCCTTCATGGATTTCTAAACCAATACCATGTCCTAGTGAATGTCCAAATTCTTTTCCAT -ACCCTTTTGACTCTAAATAGTTTCTTGAAATGGCATCAGCTTCTGCACCAGTCATGCCAGGTCTAATCTC -ATTAATTGCTTTCATTTGAGATTCAAGTACTATTTGATATATTTCTTTCAGTTTAGGATCTGGTTCTCCA -ATAGCAAATGTTCTAGTAATATCTGAACAATATCCATTGAAATAAGCACCAAAATCCAATGTTATCATGT -CGCCTTTTTCAATAATTTTGTCACTTGCAACACCATGTGGTAATGCACCTCTATGACCAGATGCTACAAT -CGTATCGAATGATGGTCCATCTGCTCCTAATTCTAGCATTTTACTTTCTAATATTGCCTTTAATTCTTTT -TCAGTCATACCAGCTTTTGCAACCGTTAGTATGTATTCATATGTTTCATCAACGATATCTGCTGCTTTTT -GAATCAATGCAATTTCGTCAGCATCTTTTACGTCTCTAATTTTATCTACAGTATTAGAAATGCTTATTAA -TGATATACGGCTTTTATTTAATTCAAGGTATGTATCATAACTCACATGGTGCCCCTCAAAGCCTACATTT -TCAAAATTCTCTTGGTGTAGCAATTCTTTAATCTCACCAATGATAGTAGATTTACGATTAATAATTTCAT -AATTTGGCGCCTGCTTAGTTGCTTGATCAATATATCTAAAGTCTGTTATCAAATATTGTTTATCTTTAGA -TATGATAAGTGCTCCACTGGTACCAGTAAAACCTGATAAATATCTTCTATTGTAATCCGAAAGAATGATA -ATCGCATCTAAATGTTTTTGTTCTAAAATACGATGCACTTGTGTTATTCTGCTCATCTTATTACCTCCTA -GTGAAACGTTTGTGCATTTCAACTTTATACATTAAAATAATATCATAATAAGGATAAAAAATAATAGATA -TTGATTTTAGGGAGATAGTAATGAAAAAATTGGTTTCAATTGTTGGCGCAACATTATTGTTAGCTGGATG -TGGATCACAAAATTTAGCACCATTAGAAGAAAAAACAACAGATTTAAGAGAAGATAATCATCAACTCAAA -CTAGATATTCAAGAACTTAATCAACAAATTAGTGATTCTAAATCTAAAATTAAAGGGCTTGAAAAGGATA -AAGAAAATAGTAAAAAAACTGCATCTAATAATACGAAAATTAAATTGATGAATGTTACATCAACATACTA -CGACAAAGTTGCTAAAGCTTTGAAATCCTATAACGATATTGAAAAGGATGTAAGTAAAAACAAAGGCGAT -AAGAATGTTCAATCGAAATTAAATCAAATTTCTAATGATATTCAAAGTGCTCACACTTCATACAAAGATG -CTATCGATGGTTTATCACTTAGTGATGATGATAAAAAAACGTCTAAAAATATCGATAAATTAAACTCTGA -TTTGAATCATGCATTTGATGATATTAAAAATGGCTATCAAAATAAAGATAAAAAACAACTTACAAAAGGA -CAACAAGCGTTGTCAAAATTAAACTTAAATGCAAAATCATGATAGGAGTCTTTTAATGCGTAATATAATA -TTTTACCTTGTACTTATAATTGCTGCGATTGGATTAGTAATGAATCTAGATGCCTTTATTTTTTCAATCG -TCAGAATGTTAGTAAGCTTTGCTGTAATAGCTGGTATTATTTATCTGATTTATTATTTCTTCATCTTAAC -TGAAGACCAACGCAAATATCGCAAAGCAATGCGTAAGTATAAAAGAAATCAAAGAAGAAAATAGATAAAA -AAATGGAAGCACTTGTAGTTAAAATAGTCTACGTGCTTCCATTTTTTATTCTAAAAACTACTTTCTAAAC -ATCCATTCATCTGAACGATATTTTTCAGTTAATTCTTCCACTTCTGCCAATTGAACTTCTGTTAATTCAA -GTGGCTTTAATTCTATATTTAAACCTTTCTTAAAACCTTTCTCGAAAGCTTCTTCCATTTGACTAATAGT -AATGTGTTCATCTGAAATATCATTGATGGCAACTGCTTTTTCAACGAATGCCTCTTTCATTTTTAATTTT -AATCTTTCATTTTTATAAATAAACATATCAAACAATTCGTCAATATCAATATCTTGTAAAATCGAACCGT -GTTGGAGGATTACGCCCTTTTGTCTCGTTTGAGCACTCCCAGCAATCTTACGGCCTTCAACAACTAGCTC -ATACCAACTTGGTGCATCAAAACACACTGAACTTCGAGGTTGTTTTAATTTTTGACGCTCTTCAGGCGTT -TTAGGTACCGCAAAATAAGTATCAAATCCTAAGTTTTTAAATCCTTCTAATAATCCTTGTGAAATCACTC -TGTACGCTTCTGTAACAGTAGAAGGCATATTGGGATGCGATTCAGGCACTATCACACTGTAAGTTAGCTC -TTTATCATGAAGCACCCCACGGCCACCAGTTTGACGCCTTACGAGACCAAAACCTTTCTCTTTAACCTTA -TCAATATCAATTTCTTTTTGTAGCCTTTGGAAATAACCTATTGATAATGTTGCAGGATTCCATGTGTAAA -AACGTATAACTGGATCAATTTCACCTCTAGAGACAAAATTTAATAACGCTTCATCCATTGCCATATTATA -ATATGGGTCTTTACTTCCTGTATTAATAAAATTCCAAGTTTCAGTCATATTCAAGAACTCCTATCAGCAA -AATGTATAATATTTGATTCGCTAATTAATCAATTTAACTAAATGAATAATAATTGCAATTCTTTAGTGAA -ATATTTTGATAATTTGACCTAACAGTCTTATAATTATATTATCGTTTAATTAGGGAGGATGCAAGATGAG -TGCTAGTTTGTACATCGCAATAATTTTAGTTATAGCAATTATTGCTTATATGATTGTTCAACAAATTCTT -AACAAGCGAGCTGTTAAAGAATTAGATCAAAATGAATTCCATAATGGGATTAGAAAAGCTCAAGTCATCG -ATGTTAGAGAGAAAGTTGACTATGACTACGGTCACATTAATGGGTCTCGCAATATTCCTATGACAATGTT -CAGGCAACGATTCCAAGGATTAAGAAAAGACCAACCGGTATACTTATGTGATGCCAATGGGATTGCTAGC -TATAGAGCCGCTCGTATTTTGAAAAAGAATGGATATACAGATATCTATATGTTAAAAGGCGGCTATAAAA -AATGGACTGGAAAAATAAAGTCTAAAAAATAGTTTTGTAAATTTAATATACGATTTAATAAAATCTGAGT -GTTAATTGATCATCAATAACAATACTCAGATTTTAATTTTTTAACAAAGGATTTTAATTTTTTAACAAAG -ACTGTTACTATATTTCTCTAGCTTCACAGATCATTAAATTTAGTTTCTGCATAATAAAGAGAGTTCAACT -CATTTTCAATACGATTCAATTACCTCAATCTAAAAAGTGAAAAGACAATTTCTATGAAAGAATAATACCA -AACCCTAAGAGTTATTACTTCGGTTTAGTTTTCTTTTTCAAATAGAAATTGTCTTTTTTAATTGATTTTA -AAACCATTATCCTTAAATCTTCATACAAAGTTAGAATAATAATTCTCGGAATATGTGTTTAACACCTTAT -TTTTCCTGTTTAAGATTTTCAAACTTTAATATTGGTTTACGAGCAGCTGTAGCTTCGTCTAATCGATCAA -TCACAGTTGTATATGGTGCTTCTAACACTTTATCAGGATCATTTTTAGCTTCTTCAGCAATACTAATTAA -TGTATCGATAAAATAATCAAGTGTTTCTTTAGACTCTGTCTCAGTCGGTTCAATCATCATACCTTCTTCA -ACATTTAATGGGAAGTAGATTGTTGGTGGATGTACACCGAAATCTAATAATCGCTTAGCCATGTCTAAAG -TACGTACACCAAATTCTTTTTGACGAACACCACTTAACACAAACTCGTGTTTACAATATTGTTTATAAGG -TATTTCAAAGTGTTCAGATAAACGTGCTTTAATATAATTCGCATTAAGAACCGCTGCTTCGGAAACCTCT -TTAAGGCCAGTTGCTCCCATAGTTCGAATATACGTATAAGCTCTTAAGTAAATACCAAAGTTACCATAAA -ATGGTTTTACACGTCCGATAGAATTTTTAATGTCATTATCATATTTAAATTTGTCGCCATCTTTAATAAC -CATTGGCTTTGGTAAGTAACTTGCTAGTTCTTTTACTACACCGACTGGACCTGAACCAGGACCGCCGCCA -CCATGTGGACCAGTAAATGTTTTATGCAAGTTTAAATGAACAGCATCAAATCCCATATCTCCTGGGCGAA -CTTTGTCCATAATAGCGTTTAAATTCGCACCATCATAATATAATAGACCACCAGCATTATGGACGATTTC -ACGGATTTCCATAATATTTTTTTCGAAAATACCTAAAGTGTTTGGATTAGTTAACATAATAGCTGCTGTA -TTTTCATTTACAACACGTTTCAAGTCATCAATATCAACTTCGCCACGTTCGTTTGATTTTACAGTAACTG -ATTTAAATCCTGCAAATGAAGCTGAGGCTGGATTCGTACCATGCGCAGAATCTGGCACAATGACTTCATC -ACGATGACCTTCACCATTATTCTCATGATAAGCTTTAAATATCATCAATGCAGTCCATTCACCATGTGCA -CCAGCAGCTGGTTGTAATGTTACCTCATCCATACCAGTAATTTCTTTTAATTCTTCTTGTAAACTATAAA -TAATTTCTAATGAACCTTGAACTTGGTCTTCATCTTGTAATGGATGTGATTCACTGAATCCTGGTATTCT -AGCAACCTTTTCATTAATTTTAGGGTTATACTTCATCGTACATGAACCTAATGGATAAAATCCGTTATCT -ACACCGAAATTTTTATTTGAAAGTTCAGTATAATGACGTACTAAGTCTAGTTCAGCAACTTCAGGAAACT -CCGCTTTGTTTTTACGAATAAATTTATCATCTAACAATGACTCAACAGAATTTGTTTTAATATCACTTAT -TGGTAATGAATATGCATATCTGCCTTCACGAGATCTTTCAAAAATTAATGGACTTGATTTACTAGTCATT -TAACTCACCAGCCTTTTCTACAAATGTATCGATTTCATCTTTTGTTCTTAATTCAGTTACAGCTATTAAC -ATGTGATTTTTAAAGTCGTCTGAAACAACACCTAAATCAAAACCACCGATAATATTGTACTTCACTAATT -CCTCGTTAACTTGTTGAATTGGTTTGTCAAATTTGACTACAAACTCATTGAAAGATGTACCATCTAATAC -TTCAAAACCTTTTTTAATAAATTGTTGTTTAGCATAGTTAGCATGTTCTATATTTTGAACTGCAATATCA -TAGATACCTTGTTTACCAAGTGCTGACATTGCAATTGATGACGCTAGGGCATTTAATGCTTGGTTAGAAC -AAATATTAGATGTCGCTTTATCGCGTCGAATATGTTGTTCACGTGCTTGTAATGTTAATACAAAGCCACG -ATTACCTTCATCATCTTGTGTTTGACCGACTAATCTACCTGGTACTTTACGCATTAACTTTTTCGTCGTT -GCAAAATATCCACAATGTGGCCCACCGAATTGAGCAGGAATTCCAAATGGCTGAGTATCACCTACAACAA -TATCTGCACCAAATGAACCTGGAGGTGTAAGTAATCCCAATGCTAATGGATTTGCATATACGATAAATAA -TGCTTTTTTATCTTCAATAAAGCTATGAATCTTTTCAAGATCTTCAATTGAACCATAGAAGTTTGGATAT -TGAACTGCAACAGCTGCTGTATCATCATCCACTGCTGCTTCTAATTTTTTCAAATCTGTAACAGTGCCAT -CTAAATCGATTTCCACTACTTCGAATTCCTTACGCGTCTTAGCATAAGTATGAAGTACTTGTAATGCTTG -ATAATGCAAACCTTTTGAGACTACAATTTTATTTTTCTTTGTTTGACTAAATGCTAAAATACATGCTTCA -GCAAAGCTAGTCATCCCATCATACATAGAAGAATTTGCTACATCCATATCTGTTAATTCACAAATTAAAG -TTTGGAACTCAAAAATGGCTTGTAATTCACCTTGAGAAATTTCCGGTTGATATGGCGTATATGCTGTGTA -AAATTCTGATCTTGAAATCATAGCATCCACAACTGATGGCGCGTAATGATCATAAACACCAGCACCCAAA -AATGATGTATGCGTTTCTTTAGTGATATTCTTGCTTGCAATGCGATTTAATCTTCTAAGTAACGTTGTTT -CCGCTTCGCTTTCAGCAATATTTAAATCTCTATTTAATAAAATGTCACTTGGTACATCACCGAATAATTC -TCCTATAGATTTTGCACCAATTGTTTGTAACATTTCTTGCTTGTCTTTTTCAGTTAAAGGTATATAACGA -TGACTCACAATGCACACCCCTTTTTAATTATTTATCAATTTGATTTTTCTTAACAATTTTCGCTTTTAAT -TGACGCTTACGAACTTGAACAAGCAACTCTCTACCCATTTCAAACTCATCTCTTTTTATCATTGCAAGTG -CAATTGATTTTCCTGATGATGGAGACTGTGTTCCTGAAGTTACTTCTCCAATAATATTTCCATCTAAATC -CATAACTTCATAACCAGTTCTTGCAATTCCTTTTTCAAGTAATTCTAATCCCACTGTTCTTCTTGGTGCA -CCATTTTCCTTTTGATCTTTTAATACAGATTTACCAATAAAATCAGCATCAATTAATGGTTTACTTGCAA -AAGCGATACCACCTTCATATGGTGTAATTGATTCAGTTAAATCTTGTCCATGTAATGGCAATCCAGCCTC -TAATCTTAATGTATCACGAGCGCCTAACCCACATGGCATAACATTATACTCTAATAAACCATCCCAAATT -TTTTCAGTATCATCGATATTACAATAAATTTCAAACCCATCTTCACCTGTGTAACCTGACTGAGATAAAA -TGACGATCGCTCCAAATAATTTGACACCCTGTTTAAATTCAAACATTTTCATTTCAGTTACATCTTCATC -AACTAATTGATTAATTAAATCTCTAGCTTTTGGTCCTTGTATTGCTAATTGACCATATTGGTTTGATACA -TTTTGTACTTCAACATCAAATTTCTCTTTGTGTTTTAAAATCCAATTAAAATCTTTTTCAGTATTAGCAG -CATTAACAACTAATAAATAATTGTCGTCAGCTAATTTATATATTACTAAATCATCAATAATACCGCCTTC -TTCATTACATAAAGCAGTATATAATGCTTTTGAAGTAGTTAAATTATCAGTATCATTTGATAATAAATAT -TGCACAAACTGACTAGCATCTTTACCTGTCACTTCAATTTCACCCATATGACTAACATCAAACAGGCCAA -TTTCGTATCGAACAGCATTATGCTCCTCTTTAATACTTGAAAATTGAACAGGCATCGCCCATCCTCCGAA -TTCCACAATTTTTGCACCTCTATCAACATAATTTTGATATAAAGGTGTTTGTTTTAAATCACTTGACATT -GAAATACCCCCTTAAAATTATAAAAACAGGATAGCAATCGCTACCCTGTTTATAAATCACCAATTCAGGA -ACGCGTTACAGTATTATCCTTTTGCCTGAGAGTTTCGTAATAAATTACTTGCACCTTCGGCGATAGAGTC -TTAACGCTCTATTCTCTCTAATACTGATCACTCGCTTTTATTAAATTTAGCAATTCATAATATATTTCTG -AAATTGATAGCAAATGACTATCAAATTTCTTGAATGCGATTTCATTATATCTTAAAATCCGCGAGCAATA -CAAGTCATTTAACTGCTTGATTGTCTTATTATTTGCATTAGGTCGATGTGGGTCATCATTGATTCGACTA -TATATAATATCAATATTACAATCTAACCAAATAATGTTTTTTTGATTTTTCAAAAAATTAAATACCTCTT -CACTTTCAATAATACCACCACCAGTAGCAATTATATCTGCAGTGTTAATACATTCTTGCAAACATGTGAA -CTCTAAATTCCTGAAATATTGTTCACCATGTTTACTAAATATTTCTGGTATTGTTAACTTATACTTTTCT -TCGATATATGAATCTATATCAATAAATGATAAATTTTGCTCATCTGCAACGTATTTACCAATCGTAGATT -TACCGGTACCCATGAAACCAATTAAAATTATTGGTGATTTATCATGATTCATGCGTTTTCCCTTCTTTCA -ATAACAAAACAATCTTATAGTTATAGTCAGTTTCAATATTATATAATGTCTTTAATTTTAAACTATATTG -ACTGATATAAAAAGTGAAAATGGAAAAATAAATTGCTGTTAGCATCAATAAGAACGGCGTAACATATCCT -TTTTCTTTATATAAATCAAAATTAATAAATTATTTCACGTCCTTTTTAATAGTACTCATTTAAATTCTAG -TAAGTTATACATAAATTGTTTTAGTCTGCAGATTTGTACCGACTTTAACTGTTATCGTTATTTTAATAAT -AGATTTATAGTAGATATTTGCAGTAAATGCTGTAACATTATTAATCATTGTTATATTTCCTCTGTCATTT -ACAACTTTAATAATTTTATTATTTATTAATTTGTATTCGATCATTTCTTCACCTTTATGTAAAATGATAC -GCTGTTGCCTAATTTCAATATCGTTTCTATCTACACCTTTAAAATCCTCTAGAATATCTCTTGAGAAAAA -TTCGAAATCTACAGTTGTTAATTCCCTACTTTCAATTAGAAAAGTTTTGTTAAGTCTAATTAAGTCTGGA -ACAATTAGTAAAGTTATACTTATAACCATCATCGCTACTAACATTTCAATTAGCGAAAAAGCTTTGACAT -TAATACTGTATACATGTCTTTTGATAAGAAGTGGTATTTTTTGAAATAGCACAAATTTGTTGGTCACTTT -GCTTAATATCATATTTCCCTATAGTTACCCCCTTCTTAAGTTCTTCTTTATTAATTTTAGATACAGTCGT -CAAAATTACTTTAGAAGCATCAATTGTTTGTAGTTTATGGTTTATACTCGCTTGCATTTGATTCATCATT -GGTATCAATAGTAATGTAATCAATCCAATAAGCAAAAATCCAGCCATACTATCTATTAAGAATGATCCTT -TACACTTATAGCTTTTCATAACGAATTCTTCCTTTTTCAATATGGAATATTATTCTATAAATTGAATTGT -TATTATCAATTGTTATGCTACCAAATTTATTGATATTCCCTTTTTTATCAAAGGCAATAATATCAACTTT -TGCAACATTAATTATTTTGCCTACTTTTAGTTTTAGAAATCGTATTTTATTATTCTCTATTACTTTAATA -GTGTCACTGTTTTCATAAAATCTAACATTGATATATCCTTGATTTGCTATAGCTTGCGACTTAATATAAT -TCAATTCAGTAATAAGAGAAATGATATTTGCCTCATCATCTATTACTCTAAGATTGCTTAATCCTTTAGA -TGTCAATGTCAAAAGTAAAAATATACTGATTAACATCATTACCACAAGCATCTCAATCATAGTAAATGCT -GACTGTTTTCTAATTTGCAACTGCTTCTCCATTACTAATTGTTATTGTCTCTCCTGATTTACATGTCTTT -TGCTCTTCTTTTATAAAACCATCTGCAATTAAGTCTTCAATAGACGATGGATTTCTATTATGTTTCAATG -CATACGCTTCAATTTGACTATTAACCATTTTTACCTGTGCATTACAACCTGTTGATTGTATGTGAGCAGT -TTGTTTAGCAATATTTGGAATGATTAAAATTAATAATAAACTGATGATTAATAACACTAATAGCATCTCT -ATCAATGTAAACGCTTGAGTTTTCTTAAGAAATTTAAACATATATTAACCTCCATTATTTTATACTTTGC -ATCATTTGAAACATCGGTAACATAATTACTAAATAAATTGCGACAATAAATAAACCTAAAATCAAAAATA -AAATAGGCTGTAAAAACTGAGTCTGTTTTATCGCTTTATCTTCTATTTGTTTTACTAATATTTGCGAATA -TAACTTTAGTTCTACTTCTAGCTTCCCTCTCTTTTCACCTTGTAGCACAAACTTAATTAATTGAGGCTTA -AAGCATTTTAGTTTTTCTAAAATTTGAGGCAAACCATATCCCATTTCTGAATAAGTTAATAAGTATTTAC -CTAGAAACTGTCTAAATGGATCACTACTATGGTTAATATAAACGTCTACTATTGATTGAAGTGTAATACC -ATTTTTATAAAACAACACTAATTCATTAGTTACAAAATAAGTTTTAAATAATTGGAAATAGCCTGATATT -AGCGGTAGTTTCATCACAAAGTTTATCTTATTGAGCATATTTAAATTGTTATAAATTAATTTCATAATAA -TAGCCAACATAGATACTATTATGAGCATTACTACAATTATAGTAGGTAAGCTGGTAATGAAAAAAGACAA -TGTTTTTTGAAAAGAAGATAGTTGAATATTCATAGAAGTATATAATTGTTGAAACTGTGGAATTACTGTG -AGGTTTAATATAATAATCATAGCAATAAAAATAGAAACTAGTATTAAGGGGTATTGCAGTGTCTTTAACA -ATCGTTGTTCTGACTTTCTATTCACTTTCATATAATTTACGGTTTCTTCTAGAACGTCTATGATATTGCC -AAATCTTTCTGCCAAATATACTTGCAGGACGATAGTATCGCTATAACCTATCAGTGATAATATCTTATTG -CATGGTGCACCATTTGAAATTTCACTTAGAATGGTGGTACCTAATTGCTTATTTTTATATGTCATTTGAA -GATTTAAAAATTGAAAACTTTGATACAGAGTGAAACCATATTTCAACAAATTACATAAATTTGAAAGTAA -ATCGATTTGTTGGGCCTTACTTAATTGTCGCTTCTTAGAATGTAGTTTAAATGTATTTATCCATTGTAGT -TTCACAAATGACACCTGCTTTTGTCATATCATCAAGTTTATCTTCTAAGTTCTTAAATGATGATGGTAAT -GAATGATTATGGGAAAAGAAATATCGGAGTTGTTGCTGAGATAGAATTTCACATACTAATTGTCGCTGTT -GCTTAATAGTAGTTACAAGTCGTTGGTTTATAATTAAGTTAGTTGCCTGTATCAATTCTTGTACAGAAAT -GCCCATTTCTAATAGCCTTAAAATAGCACCTTTACAATCAGTTGCATGCAATGTAGTCAGAACAAGGTGA -CCACTTAAACTAGCCTGTATAACACACTTGGCAACATCTTTATCTCTGATTTCACCTATTAAAATAACAT -CAGGATCACATCTTAAAATAGCTTTAAACGAATTTACATAGTTAATGCCAGCTTTATCATTCACATTAAT -TTGCACGATACCAGGAATTTGCATCTCTACAGGATCCTCTATAGAAATTACATTTAAATTCAAGGCTTTA -TTCGCGTATGAGACCATTTGATACATTAATGTACTCTTTCCTGAACCAGTTGGCCCACTAAACAATAGTA -ATCCTTGTTTCTTATTCATGAGGTGTTTAAAATCATTGAATTTATAAGTTGATTTCTGTTGTTGAAAAAA -TTGAGGTACAATTCTGATAACACAACTTTCTTGGCCAAGTGACAATGGTAAAGTTGATATTCTCAAAAAA -TATATTTTATTGAAATGGTAACTATATCGACCGCTCTGTGCGACTTGCTGTGTAGAAACATCAAGCCCAG -CTTGAAACTTCATATAAACTAATAACTTTTGATAAATGCTATTCCCAATTTGTTCATACTGCTCCAAGTT -ATCATTAATTCTAAATTTAATACTTACTTCATTTTTAACTGGAATAAAATGTACATCACTCGCTTTCATT -TCTATCGCTTTATTAATTATTTCTTGAAATAGAATCTTCAAAAAAACACCTCCTACATATAATCACGTAG -GAGGTGTTTTTATTACTTCAATTTAACCGTGTAAAAATGGATTTAATTGTTCATCATCAACCGTCGTATA -TGGACCATGTCCAGGGAATAAAGGTAAATCGCCTTCTAATTCAAATATTTTATCTTGAATAGAATCAACT -AGCGTTTCATAGTCACCTTTATATAAATCTGTACGTCCGATTCCATTATTAAATAATGTATCTCCAACAA -CTGCGAATTCATCAAACACATATGTTAAACTTCCTGGTGAATGTCCAGGTGTGTGTAACACATTAAACTT -AAATCCTTCTATTTCTGTGCTACCTTCGTTTAACTTTTCAGGAGTTACCTTACTTGTAATAATTGGTAAT -CCATATTGCTTAAATTTATCTGCTCCATTTTTAACGGGATCTTTTAGAAAATCAAACTCTGCTTCATGCA -TATAAACCGGGACATCGAATCGATCAACTATATCATCGACTGCTCCGATATGATCAAAGTGTGCATGTGT -TAATAAAATAGCTTTTAATGGTTTATTTATTTGGTTTAATTTTTTAATAATTTTTTCACTTTCACCTGAA -GGGTCAATCAGAATAACAGCTTTGTCATTTTCGATGAAATACGTATTAGTATCAACTAAGCCTAAAGTTA -AGCTTGAAATCCTCATAGGTTTTCACCACTATTTTCTAAATGTTTTTGTACTGATGTTAGTTTATCATTC -ATTTTTCTAGATTTGTCTCGTCGGTCATCAATACGGATATTTGTACAAACTCTACTTAAACCTTTATCAA -AAGGTAATTCATGTATCACTTGCACAACTTCTAATACATCGCTTAATTCACCTTCAATTAGAGTATTCAT -TGGTGTTAATTGAAAATCAATTTTACCCATCGCTTTATATTCTTGAAGTTTTTTCTGAATATCTGCTATA -TATTTACTAACACTCGGACCTTCCGTTCCAACTGGAATAACAACCACATCAACAATAGCCATTATTTTAC -CCCCTCTTTATCTAATACATAGGTCTTGATTAATCCTGCTGCTCCTGTAATACCTGCATCATTACCTAAT -TTCGCTTGTACAATTTCAGTTTCAAATTGAGCAGGTGCAAATGTTAAATTATGATATTCTGTTTTAATAT -TTTCAATTAAAATAGGTCCTGCAGTAGACATTCCTCCACCTAGAACGATATATTTCGGATTACTTGTAAC -ACTAATAATACTACATAAATATCCAATATAGTTTGCAACCTTTTCAGTTATGAAAATACAGAATTGGTCA -CCAGCTTTAGCCGCATCAAAAACAGCTTTTGCTGTAACCTTATTTTCTTTAATCAATTCTAATATAGAAG -ATCTAAACGTCAACTTCGGATAGTAGAAGTTGACTAAGTTAACAACGCCTGTCGCTGAAGCAACTGTTTC -AATACATCCAGAACGACCACAATTACATTTAAATCGTTGATCGAAGTCTGCTCTAAAATGACCTATTTCT -GCGCCAGAGCCATTATGACCATGTACGATTTCACCATTTGAAATAATTCCTCCACCTAGTCCTGTACCAA -GTGTGATGGCAACAACATCATCGGCACCTTCACCAGCACCTTTGTGTTTCTCCCCTAAAGCAGCTATGTT -AGCATCATTATCTACATACACTGGACAATCAACGAATTGTTCAAAAATCTCACGTACATTAACTTTTTCT -GGCCAATATAAGTTTACTGCTCCATTTACTGTACCTTTTTCAAAGTCAACAGGACCTGGAACACCAATAC -CTACGCCAAGTACATTTGAAAAATTATAATTATTTTCATTTACTTTTTCAACAAACGAATCATAAATTCC -TTTCAAAAGTGTATAACCTGTACTATCAGATGTATCAGTGTGAATAGACCATTTATGTAATTGTTCTAAT -TCAGGTGTGAAAATACCTAATTTACAAGTCGTCCCGCCTACATCAGCTGCTAAAATAATTTTTGTCATTT -CTGTTCATTCCTTCTCTGATTAATTATCAACGTACATTTCAAATATTCTTCCTTAGATAACAGTTCATAT -TGATACAATGATGAAATCTCCTGTTGAATCATTTCGTACATATCTTCTGGATTTTTAAAATATATTAGAA -ATCCGTAACTTTTCAATAACTGTTGTACATCATAAAAGTTATTTATTTTTCGACTCATTTGATTTAGTCA -ACTCTTTTTCTAAGTTAATATAATCTGTATTTTTAGGGTCTGCATTTAATGCTTTACGCACATATTTTAA -TGCTTTTTCATCATCATTTAATGAACGATTTGCTATCGCTAACTCAAAATTTAATAAACCTGATTTAGGA -AACATTCTAAGTCCTCGCTCCCATTCTGTCATACCTTCAGACTTAGAATTGATAGTAGCCATAATCATAC -CACTTAAATAATATGTTTGATCATCGGCATAATTTTTATTTATTGTCTGCTTCACAATATTTTGAGCATT -ATCATAATTACCACTAGTCATATCATCTTTGATCAATTTATTATAAATATTATCTTCTTTAATTGTAAAA -ATTCTAATTTGAAGTGCAATAAATATAACAAGCATACCGATTAGTAAAATCCAAAAAATATTACGATTCA -CTTTATAGTAATAGCCAATTAAAGTTATTAATAAACCACCAATGAAGCCTCCAATATGCGCCACAATATT -TATATTTGACATAAACAGAGAAACACCAACTAATATCACTAATGCAATTAATAACTGTCCTAACATTTTT -TTGTTAAATGTTTTTGAAACATACATCATCGCAAAAATTGATCCGATCAGACCGAATATAGCACCACTAG -CCCCAACTGAAATTGTAGTCGTATTAAATGATAGTGATACAAAGTTTCCAAACAGCCCTGCAATAAAGTA -TACAGTTAACATCCTCCATGAACCAATAATTGCTTCGACTATTTTACCAAAAATAAATAATGAAAGCATA -TTCATAAGTATATGTTCAAAACTAAAATGTAAAAACATCGATGTAACAATTCGATACCACTCACCATGTA -CGACATTAAAATGCACTAACCCGCCAACATCTAATAATTTTACATCCGAAAAATTATTTAAATATAAAAT -CATACATAACCATATTAAGACATTTACAAATATTATTGTGTATGTTGCCGGTGAAAATTTCTGCATATAT -TTATCTAAAAAGTTATCGGTTAATACTTTGCGTTTATAGAACATATATGTCTTTTTATCATTATCTTCTG -AAATAAGTCTAGCCAAAAATATATTCGGCATATGCTTTATCAAATCTTTTGTGTGTCTTATAACATTGAA -TTTAATTCTAATTGTCGAAACTTCATTTAATTGTTCTTCTGAAAATTCCGATTCTGTAAAATAATAAAAT -TCAAAACTTTGTGGTTCGAAAGAAATAAAATTTGCTATTTCATCTTTGTGTTCAAGCACTTTCGCTTTGT -CAAAACGTATTTCTTGGGTAGACTTGATATGTTGTTTAAAAATGACTACTTGTTTTTTTCTTTTATGGGC -TAACCAAATTTCTTGGTCATCTTTTTCCCTACTGACAATATCAAAATTCAAGTACCTAATCCAATAATAT -ATTGTTTTCCAAAATTGTTTGTCTATGTTCATTTAGTCCTCCACTATGCTGATTGATATATAATCAATTT -ATCGACTGGTTGATCGAATGATTCCGGTTCAAATGATGTTATTTGAAAATCGTATAATAAGCTTATTGTC -TTTGTCTGATAATTAGCTAAAAACCTGTCATAATAGCCACCACCATACCCAATTCTATATCCATCGTCTT -GAAATCCAACACCAGGAACAACAATTAAATCTAGGTTATTCGTTGTTTCACCTTTTGAAGTTGGATAGTA -AATCCCCTTCTTATCTACATCAATATCTTTTAGATTAAATATCTCTTTAAAAGTCATTTGATGATTTAAA -TAATCCATTTTCGGCACAAAAATACGTTTATGATCCATTAAGGCTTGTTCAATAATAGAAAAAGTATCTA -CTTCATGATTAAAAGAAAGAACTAGCGCAATTGCGTTTGCTTCTTTGTATTCTTCAGTTGCAAAAAATTG -ATTTCTTAACCATGTGTCTGCTTTTCGCTTTTCAGCTTTATTAAAAGTCTTCATTTTATGTAAAATATAT -TTTCTAATCTCATTTTTAGTCACATTATCACCCACTTTATTCAATTCTATTATATCGTTAATAACAATAC -ATGTCATTATGTTGTCATGATGAATTATGCGACAATTCTAAAATTTATTATTTCAATTGAAAATCTTTTA -TCATTTCATACGTGTGCACAATTAAAAAGGTGAAACCTCTTATTTTGAGATTTCACCTTTTTTATTGTTA -ATTTAAATTTAATTTTAATGATTATTTTGTTTCACGGTGTAAAGTTTGTTTGTTTTCACGTGAACAGAAT -TTCTTCATTTCAACACGTTCTGGATTATTTCTTTTGTTCTTAGTTGTAATGTAGTTTCTGTCACCACATT -CCGTACAAGCTAAAGTTACGTTTACGCGCATGGTTATTCCTCCTTATCATTTCTAAATACGACTTTATTA -TTATACCAACATCTATAATATTTGCAAAGTTAAAATTTTACAACCATGCGCTACATAATCGTCAGGTTAA -ATTTTATTTGTCTTTGTCTTTATTTTTATCGTCTTTACCTAACTGCTTAAAGTAGTAGTTAATTACATCT -CTACCTAAGTCTCCACCTGTTAACCATGGTGGTGGTACAGGCTGATTTGTATATACAATTGAAAACGCTA -ATTTTGGATCATCAATTGGCGCGTATCCTATATAAGTAGAGTTAACTCTTGGCTCTCCGTTTTGGAACAC -TTCAGCGGTACCAGTTTTACCAGCAGTAGGCACTACTGTATCTTTAAAACTAACATATCCAGTACCATCT -TTATCATTAAATGCCATTTTGAATCCTTCTTGAATTTGTTTGATTTCTTTTTCAGTATTATTAACCTTGT -TCAAGACAGTGCCATTAATTTTCTTCTTGAGTGGACCAACATCATCTTTATTAGTTGATTCATGAATCGT -TAATCCAATGTGTGGTTGTATTCTATAACCATCATTCGCTATAGTTGAAACATATTGTGATAATTGTAAT -GGTGTATAGGTATCATATTGACCAATTGATAAATCTAGATAATTACCTGGATTATTTGTTAATGGTTCGA -TTTGACCTTTTGTTTCATTTGGTAAATCTATACCTGTTTTCACACCTAAGCCTACTTGATTCAATCCTCT -TCTTAGCTTTTGGGCAGGTGAACTTATGTCTGATGGTAAAGCCATACCAGAATAATAAGGGTCTCCCGCT -AATTTTAATGCTGTTTTAAACATATATACGTTTGATGAATGCATCAAAGCTTGCTTATCATTAATAGATA -CATGCCCGTTTTTATTAAAGTATGATCGTTTTGTCAAACCACCTTGGAAATGTAATGGTTCATCGACCAT -TGTTTCTCCAACTTTGATAGCTTTATTCTGATAACCAGCTAATAATGTTCCACCTTTTACAGAAGATCCA -ACTGCAAATTGAGAAGTAAACGTACCAATGTCATAATCAGTCATTTTACCACTCTTATTAATCTGCTTTC -CGGCAAGCGCAAGAATGTCTCCATTTTTAGGATTTTGTACAACCATCATAGCATTATCCATATCTTTTGC -ACCTTGGCTGCGAAGCTTCTTAATTTGTTTATCTAATAATGCTTCTACTTCTTTTTGAAGATCTATATCG -ATCGTCAATTTCAAATCTTGACCGCGAGCACCAGGATTTAACACTTCTGAAGATGTAACTTTACCAGATT -TGTCCGTTGTGTATTTCATTTCTTTCTTCTTACCACGCAATACATCTTCATATTGATATTCTAGGTAAGA -TTTTCCAACACGATCATTGCGTGAATATCCTTTGGATAAGTAATGTTCTGTCAATTCTTTGGGAATACCT -TCAGCAGGTGTCGATACATCTCCGAATATACCTCTTAAAGTGTCGCCATATGGGTATTTTCTATCCCAAT -CCATAGACGTGTTAACACCTGGTAATTTGGAAAGTTGCTGAGAAACTGCTGCATACTCTTTTTCACTGAC -ATCTTCATTTTTTATCATTTGTGGATCTAAAACTGTTCCTGCATTCATCTCTCGAAAAATGGCTAAAACT -TGTAAATCTTTAGAAGACAATTCATCTAATTGTGATTTTCCGATTTTCGATAACAGTTGTTTATCATATT -GATCTTGTTTAATACTTCCATCTGCTAACATAGCTTGTTCTTTTGTCATCATTGCTTTTGCTTTTTTAGG -ATGCAACTGAATCCAGAAATCTTTTTTATCACGTTCTGTAATCTTCTTAGTATCCATCTTGATTAGCTTT -GATAACTTTTCAGCCGTATCCAACATTTCCGATTGTGTTGTTTTTCGACCCCTAGTATATGTAATAGCCA -TTTTAGAAGCATTATCAACTAAAACTTTCCCATTTCTGTCTAAAATACGACCTCTTGGCACAGACTCATT -CACTGTAATGTTTTCATCATTTTTTATAATTTGTTTATAATGTGAGCCTTGTGCGATTTGTAAATAACCT -AAACGTAGTACTAGTACTGCAAAAATAAATACAATCACACCAAATATAAAGTTAATTCTCTTGTTAATTG -TATTTTGAACGATTTCATCATTTGATTTTTCTTTTAGTCTTTTTAACAAAACTACCTACCTCTATTCAAA -GTCTTTCACTTTAAATCATATATGAATTTAGAAATTATTTCTATCTTTTTGACAAAAAATAACGGTCTCA -TTTAAGAGACCGAACAAGTAATCATACTTTATTTTGTTGCATTATATAATTCGTCAACTTTTTCCCAGTT -AACTACATTCCAAAATGCGCCAATGTAGTCAGGGCGTTTGTTTTGATATTTTAGGTAATAAGCGTGTTCC -CATACGTCTAAACCTAAAATAGGTGTTTTACCCTCAGTTAATGGATTATCTTGGTTTGGTGTAGTCACAA -TTTCTAACTGGCCATTGTTTACGACTAACCAAGCCCAACCTGAACCAAAGCGTGCAGCTGCTTTGTCAGC -AAATTCTTTTTTAAATTCTTCTAAAGAACCCCATTGTTCTTTAATTTTTTCTACTACAGTACCTTTTTCT -TCTGAGTTTGGTGAAAGTAACTCCCAGAATAATGAATGGTTTAAATGTCCACCGCCATTATTACGTACAG -CAGTTTGGATGTTAGCTGGTACACTGTCTAAATTAGCAACAATTTCTTCAATAGATTTAGATTCTAAATC -TGTACCTTCTACTGCAGCATTTAATTTCGTAACATAAGTGTTATGATGTCTGTCATGGTGAATTTCCATA -GTTTCTTTGTCAAAATGTGGTTCTAATGCATCAAATGCGTATGGTAATTTTGGTAATTCAAAAGCCATAA -ATAATCATCCTCCTAAAATGTCTGTAAGTAAATAATAACAAGCAGTGACTGGTTCAACAAAGAATTTGCT -TAAATTCTACTACTTATTATTTTCTCTACTCATTTAATATAACTCAAATCAAAAATAATTAAACATTTTG -TATATAAAAAGTTAACAGATTTGCCATAAAATCATACGAACGGAGTATGAAATGAACCTTTATCTTCTAT -AATTTAAAAAATGAGATTTATGCATACATCTGACCAAATGTGCATAAATCTCATTTCTTTATATTAATCT -TGGCAAGACTCACATACACCATAAACTTCAAGTTTGTGTTTGTGAATATTAACACCAGGTAGTGATAATT -TTATCTGATCTATTGGACAATAATCTATTACCTTTGTATCTCCACACTTTTCACAGATAAAATGATGATG -ATGATGATTTGTACAAGCAATTCTAAACTTCATTTCACCATCAAGTTCTGTATTTTCAATAATCCCTAAA -TCTTTAAATAAGTGCAGGTTTCTATATATTGTGTCGAATGAAATTCCAGGATAATTTTCATCCATAACTT -GTTGTATATACTTTGCGTTTATATACTTATCTTCTTCGACAAAAATATCTAACATATCTTTACGTTTATC -TGTATATTTTAAACCGTTCTCTTTTAAAATTTTAATAGCATCATTTGTATTCATTGATATTAGCTCCCTT -TTTAAACTTCATTCGCATTTTCTGATAAGCCATTGTAATCATAAGTAAAATAACTAGTAGAACTACAATT -ACACCACCCGGAGAAATGTCCATATAGAAAGCTAGGACTAAGCCTAATATTACTGATAATTCACCTAAAA -ATACACTTAGTAATATCAATTGCTTAAAACTTTTTGTTATTCGCATACTTATTGCAATTGGTAACGTGAT -TAACGCACTTACTAACAGTATCCCTACAACACGCATTGAGGCAGAAATAACCATCGCTACAATAACAATA -AATAAAAATTGAATCCATTTAGGAATGCCAATGACTTTACTATATTCCTCATCAAATGACAATATAAATA -ATTCTTTATAAAACAATGTAATAAACAGAACAACTATGATGGCAATGACAATAATCGTTGTTAAATCACT -TATATTCACTGCGCTTATTGAGCCAAATAGCAATCCAACAATTTCTTGATTGAACCCATCAGCTAATGAA -ATGAAGATTGCACTCAAGGCGATACCAGCACTCATTATAATTGGAATAGCAATTTCTTGGTAAGCAGTGT -ATGACGTTCTTAATTTTTCAATTAGTAGCGCACCTACTATTGCGAATAAGATTCCAAACCACATTGGATT -AATAAATACTAGTGTTGGCATAATAGTAAGTAAAAACATACCGAAGGATATACCACCTAAAGTTACATGG -CTTAGAGCATCAGCTATAAGTGATAGTCGTCTAACAACGATAAAAGCACCGATTAGAGGCGCAATAAAAC -CTATCAAGATACCACTAATTAAAGAGTACCTCATAAAATCAAAATTCAATAATGCATCTATCAATTGTGA -CACGCCTTTCCATTTTAAATAAACTCAAATCTTTATTAATTACAACATTCTCGATTATGCTGATGATCGA -CAAAACGTACAGGATGTCCATAAATTTTTGAAATTTCAACTTCATCAAGTGATTTAAACTCATCAGTTGT -ACCATGGAAATGCAAATGCTTATTTAAACATGCTACTTCAGTAGCAGTATCTGCTACAACACCAATATCA -TGAGTAACTAAGATAATAGTGATACCTTCTTGTTTTAATTGATCTAAAGTATTATAAAATTCACTTACAT -GTTTTGCATCAATACCATTCGTCGGTTCATCAAGTACTAATACTGCAGGTTCTGAAATCAATGCTCGAGC -AATCATTACACGTTGTTGTTGACCACCTGATAATTCTGCTATATTTTTATGAATTAAATCACTTATATTC -AGTCTTTCTAGTACTTTAATCACTTTTTCATTATCTTTGCTATTAAATGTTTGGAAAAGACGTTTTGTCT -TTGTTAATCCGCTTAAAACAACTTCTTTAACACTTGCTGGGAAACCTGAATTAAAGGCATTTGCTTTTTG -TGATACATAGCTTAATTTAATTGATGTTTTCTTATTTTTAAAATCAATACCTTCAACAAAAATCTCACCA -CTTTGTAAAGGTAATAATCCTAGAATCAACTTCAATAATGTTGATTTACCAGCACCATTTGGTCCAACAA -TTGCTAAAAATTCACCTTTATTTATTTTAATGTTTATATTTTCTAACACTTTTTTATGATCATAGTAGTA -ATTGACATTTTTCAATTCAAAGACTGGTGTCATCGTATTCTCACCTCGCATTCAACTATACAACTCCTAG -TAACATATGTAAACAGTAATGTTTACGACTCAAAATTAGACAAAATAAAGAGATATGCCCCCTTCAAGTT -TTATTTATCGCATTTCTTGAAGAGAGCATTATCATTTTATTGTTGCATAACCTTATTTTTTAATTCTGGG -TCAAAATGCTGTTGTTTTAACATTTCAATTTCAAGTTTATATGGCGGTTTTTTATTTTTCTTATCTTCAC -CAACATAAGGTGTTTCTAAGATTTTCGGAATATCTTTAAAACTATCATGATGCACAATGTAATTTAATGC -ATCAAAACCAATGTAACCGAAGCCAATATTTTCATGTCGGTCTTTTTGAGCGCCACGGTCATTTTTAGAA -TCATTGACATGAACAACTTTAATCCTGTCGACTCCAATGATTTTATCAAATTCATTTAATACGCCATCAA -AGTCCTCTTTCACATTATATCCAGCATCATGCGTATGACATGTATCAAAACATACTGATAAACGTTCGTT -ATTATGAACTCCATCAATAATACGTGCTAACTCTTCAAACGAGCGACCAATCTCTGTACCTTTACCTGCC -ATCGTTTCAAGCGCAATACGTACATTATTGTCATTCGTTAAAACTTCATTTAATCCTTCAATAATCTTAT -TAATTCCGGCATCAACACCAGCTCCAACATGTGCACCTGGATGTAATACAATATCTTTAGCGCCTATAGC -TTGCGTTCTTTCAATTTCTTGTTGCAAGAAATCTACACCAAGATTAAACGTTTCTGGTTTGGTTGTATTT -GCAATATTAATGATGTATGGTGCATGAACAACAATATTAGATAAGCCATATTTTTCCATCACTTCATGAC -CTTTAGTTATATTTAAATCTTCAATACTTTTACGGCGCGTGTTTTGAGGTGCACCAGTATAAATCATAAA -TGTTGTTTCACCATATTCATGCGCTTCTATAGCAGAACCTTCTAACATCTTTTTACCACTCATTGAAACA -TGTGATCCTAATAACATAAAACACACCTAACCTTTTTTGTTTTGCTTACGTTTTTGTCTATTTTGCTGCT -TACTAAATTGTTTACGCTCTTGACGTTTCATTTTTTCAACTTCTTGTTTAAATTTCTTCTTATAACCTGG -TTTAACTTTGTTTTTAATTTTACTTCGAACTTTGTTCTTCACTTGATTAGTTAAATGGTCATCTTTGCGC -ATTCTTGCTTGACGCTGATTGTGCGCTTTAACTTCTTTTAACTCACCATCTTTAATATCAACAGTATTGA -AAACAAAACCGCGATCTTCTATTAATGAAATATTGTGTTCTTCATCAGGACTATAAAGCGTAATTGCTAC -ACCTTTATAATTCCCACGGCCAGTTCGGCCGACTCTATGTGTAAAGAAGTCAATATCATTTGGCACATCA -AAATTGATGACATGACTAACACCTTCAATATCAATACCACGAGATGCTAAATCGCTGGCTATAACGTATT -GGAATTCTAAATTACGTATACGTTTCATTTGTTGTTTACGTTCACGTGGCGTTAAACCACCATGAATCAT -ACCAACTTTAATACCAGCTTCATTTAGTGAACGTGCTAAATCATTTGCGTTATCTCTACTATTACAGAAA -ACAATACATAAGTATGGATTTAGTATATCAATTAAATTTAAAGTCTTTTCAACTTTAGCTGCACCTTTAG -TAGGTATTAAAAAGAATTCGATGTTCTTTTTATTTTGTTTTTTACTGTCGACAGCTACATATTCTGGATG -ACTTAAATATTTATTTAAAAATGGTTGTAACTGTTCTGGAATTGTAGCACTAAACACCGCAATATTTGCA -TTATCTTCCAATCTTGCAGCGATGTAATCTACATCTTCAATTAATCCTAAGTCAATCATAAGATCCGCTT -CATCAATAACTAAATATGATGCTAAGTGCACATGTAAATGTCCCGTTTTAGCTAAATCATTAATTCTAGT -AGGGGTACCTATAATCAATTGAGGTTGTGCATTACAACGTTGTCTATCTTTCTCTATATCTGTACCACCA -ATAAAAACTTTAACTGAAACACCAGCTTTAAATTGGCTTAAATGGTTCGCTGCATCGTATAGTTGTTGTG -CAAGTTCTCTTGTTGGTGCAACTACGATTGCTTGTGGTTCTTTTATTTCACTATCAATTAACTGCATTAA -TGGTAATAAAAATGCATGAGATTTCCCTGTACCCGTTTGAGATTGACCAATTAAATTTGTTCTCTTTAGT -ATTCTTGGAATAATTCGATTCTGAATTTCAGTTGGTTTTTCAAAATTAAGGTCTTTCACAGCGTCAATTA -AACTAGATTCTAGATTAAATTGTTCGAATGGATGTTTTGCCATGATTTGGCCTCCTTATATGTTCATCTT -TACTATTATAAAGTATAAATGTGCTATTTTAAATAAAAATATTAAAACCTCGAAATTTCAAAATTTAGAA -ATCCCGAGATTTTAGTTTAAATATATTCAAATGGATCTGTATTAATTGTAGATGCTTCAACATCTATATT -TATTTTTTCTGTATTGAACCAATTCATTAGTAACGTTTTTAAACCTTCTTTCATCACATATTCGCTGTAA -TGATTAATATCAATTAAGTTCACACCATGAATTTTAGCATCTAAGGCATCATGATGTTTAATATCACCTG -TAACAAAGACATCTGCGCCTTGTTGAACAGCTTGATATTCATATCCAATACCTGAACCACCAATAATTGC -AATACGTTTAATTTTCTGATTAGACTCACCAACAAAACGGACACTTGGGATATTTAATTTAGATTTAATA -TTAGCTGCGAAATCTTCCAATGTCATTTGATTATCCACTTCTGCCATAACGCCAAGTCCATAAAGAGATG -TTTGTTTTATCTCAATAAAATCAAATACCGGTGTTTCATATGGATGGTATTGTTTAATTAATTGCTCAGC -CCATGACTTTTGACATGCATCTATCATAAATTCAATTTTAACTTCATCTACATATTCAATTTTATCAATT -TGTCCTATTGTTGGATTAGCTTCACCAACTGGTTTGAATTGCCCTCTTCCTTCACTTTCAAAGAAACAAT -ATTCATAATTACCTTCTTGTGCTAATCCATTTTCACTAAGCTTATCTTTAAATGGTCCAACATTATCCTT -AGGTATATATGTTTGAACTTTATAGTATACATCTTGTTGATTATTTATTATTGAAATGTTCTTCAATCCC -ATCGCCTTCGCCAACATCATATTGACACCATGAGGATTTACATCTAAATTTGTATGCATCGCTATTAAAT -TAATGTCATGTTGAATTAGTTTTCTAATAATCAAACCATAACCATTAGCTTTTAATGATGTTACACCTTT -AAAGATTAGAGGATGATGACTAATAATAGTATTATAACCTTTTTCGATTGCTTCATTTACTACTTCCAAC -GTACAGTCTAATGCTGTTAAAACACCAGTAACTTCAACATCTTCATCACCTATTAACAATCCTACATTAT -CCCAAGATTCAGCAGTTCTAAATGGCACATGATGATCTAACAATGTCATTAAATCAGCTATTTTCATTAC -TATAACACCCTTTCAATTACAGCAATTTCGTCATTAATTTGAGCTAAACGTTGACGATGTTGTTCAGTAT -TGAGTTTCGATTTAATATGATAAAGTGCTTCTAACTCTCTTTGCCATTTTTTTATAAAATATTCATTTTT -GTTATTCAGCAATTTTGGTCCGAATTTCAATTCATCAGATGATAGCTCTATTAATTGCGTAGAATATTCT -GCTACAACAATTTCATAAATATGGCCTTTTTCTTCCATTATTATTTCATCAATTATTTCATAATTCAATT -GTTGTAATGTTTGTCTTAAATTTTCAGTTTGGATATTACTTTGTAAAATCAACCTTGGATGTTGACTTAA -CTTATCTTGCCCATCTTTTAAAATTTTAGCGATAAGTGGTCCGCCCATACCACAAATTGTGATATTATCG -ATTACATCCTCAGGATGAATAACACTTAAGCCATCCCCTAAACGTACATCAATTCTATCTACTAATTGGT -TTGCAGCTACATTTTTCACAGCAGCTTGAAAAGGGCCTTGAATAACTTCTCCAGCAATACCGCATTCGCA -TAAATGGTTTTGTATTGCATAGATTGGCAAATAAGCATGATCTGAGCCAATATCCGCGATTGTACCTTGT -TTTAAAAATCGACTTACCGTCGTTAATCGGTTATTTAACGAAATCATTTTATTCTCCTTTATGAAAAAAG -AGGTTGAACATTATTCAATGTACCAACCTCACTCAAGTTAAATCTTAATCTAAAAATAAATAAGCGTTTA -TTCATGTCTTGGTATCAATCATTAAAATTGATATAAATTAATCCATAAAGTCTTTCAAACGTTTACTACG -ACTTGGATGTCTTAATTTTCTAAGTGCTTTTGCTTCGATTTGTCGAATACGTTCACGTGTAACACCGAAA -ACTTTACCAACTTCTTCAAGTGTTCTTGTTCTGCCGTCATCAAGACCAAATCTTAATCGTAATACATTTT -CTTCTCTATCAGTTAATGTATCAAGCACATCTTCTAATTGCTCTTTTAATAATTCATAAGCAGCATGATC -TGAAGGACTTTGTGCTTCCTGATCCTCAATAAAGTCCCCTAAATGACTATCATCTTCTTCACCAATTGGT -GTTTCTAATGAAACAGGTTCTTGCGCAATTTTTAAAATTTCACGAACTTTTTCTGCTGGTAAATCCATTT -CTTCACCAATTTCTTCTGGTGCTGGATCTCGACCTAAGTCCTGTAATAATTGACGTTGAACACGAATTAA -TTTATTAATTGTTTCTACCATATGCACAGGGATACGAATTGTACGTGCTTGGTCAGCAATTGCACGAGTG -ATTGCTTGTCTAATCCACCATGTTGCATATGTTGAAAACTTAAATCCTTTGTTAAAGTCAAATTTTTCAA -CAGCTTTAATAAGACCCATATTACCTTCTTGGATTAAATCAAGGAATAACATACCACGACCTACGTATCT -TTTAGCAATACTTACAACTAAACGTAAGTTCGCTTCTGCAAGTCTTGATTTTGCTACTTCATCACCTTGT -TCAATACGTTTGGCTAATTCGATTTCTTCTTGTGCACTTAATAAGTTAACACGCCCAATTTCTTTAAGGT -ACATACGAACTGGGTCATTTATTTTAACACCTGGAGGGGCACTAAGATCACTTGGATTCAGTTTCTCGTC -AGTATCTGAACTATCTTTTTCATTAACTAGTGAAATATCATTATCATTTAATTGATCAAAGAAATCATCC -ATTTGATCAGAGTCGATATCGAAATTCTGAAGTTTTTCAGCAATTTCTTCATGACTTAAATGACCCTCTT -TTTTACCTTTTTCAATTAATTGCTTCTTAACATCTTCTAATGTTAATGTCGGATCAATTGTTTGTTTTTT -AATTTTAACTGTGTTATCAGACATGAAACGGCCTCCCGATTTTAAATATGAACATTCGAAATTTATTCAA -TATTGCTATTTTAAACTAAATTCTTAATTAATTCATCCATATTTTTAATTTTATTTTACAAATAGGAACT -AATCCCAATATTTATTTTTCAATAGTGTTGTTTAAATGCGGTAACTATCATTTACCCTTATACATTTTGA -CATAATCATTATTCGTATTATTCTTTAAAACCACATGCTACATGCGTTCTTTATTCTTAGCAACAATTTG -CTGTAAATAGTATTTCTGTAATTCTACATCGCCAATCCTTGTAGCTTCCCTTAATTTATGGTTCAATGAC -TCAATTGTTTCTTGTCCGTTTTCATTAATTACATTGACATAATCATCAATTTCATTTTCATATGGTTCAT -CATTCAAACTATATTGTTCTAAGCTAATTAGTGTTTCTCTCAACTCATTTGAATTAACATACTGCACAGC -ATCACTGATATTATATTGATCATTTTCCGCATAAAAATCATGTAAGACTTCGAATACATATTTAAAATGC -TGATTTGTGAAGTTATCCTTATCAACACTTTCATAATAATTTAAAAATGTATCTTTATCTCTCATTAAAT -GTTTTAAAAATGCTCGCTCCGCTTTTTCTTGACGGCTCAAATTGTCAAATTGTGCCATACCAATTGGCTC -AGGTTCAATGTAACCGCCATACTCATCTTCTGGATAATAATTGGCTGGTGCTTGATTGAATTGTATTTCG -TTTGCTAATTGCTCAGGACTAACATTGAAAAATGGTGCAACATCATTTAAAGCCTTTTGTTGCAAAATCG -ATGACTTCATAAGTGAAATGTCATGACTCAGTTCTTTCAAATAACGTTCATATGAAAGGTCATTATGTGC -AATTTCATCTTTTAATATACTCACTTTATAATGTGCAAATGACTTTTTGTCATTTTTTACAAAAGCAGTA -AATGCGTCGTTGCCATACTTACCAATGTATTCATCAGGATCCATGCCAGATGGCAATTGTATAACAAATA -CATTTAGCCCTTGCTGTAACAAATGTTGACCTGTTTTAAGTGTTGCTTCACTACCCGCAAAATCCCCATC -AAACATTAATGTTATATTTGATGTTAACTTTCGTATAAAGGTAATATGTTCATCTGACAACTGTGTACCC -ATTGTTGCAACAACGTTTTTCAAGCCAGCAGTATCAGATTTTATAACATCCATAAAACCTTCTAGTAATA -CAATTTCATCTAATTTTCTAATTGATTTACGTGCTTTATCTAAGTTATATAACAACTTTCTTTTTTGAAA -GATAGGTGTTTCAGGACTATTTAGGTATTTTGGTTCTTGACCGGTATATGTTCGACCTGAATATCCAACA -ATTCTTCCTTGCGCATTTTTCAAAGGAAACATAATACGATTTCGAAATCTATCGTAATAACTGAAGTTTT -CTTCGTTACGTGATAATAATCCGGCTTCATATGCTAATTCAATATCGTAACCCTTTTTTTGAAGAAAATC -ATGACAAAAATGTGAGCTATCGGGTGCAAAGCCAATGCCTCGCTCTTTAATAAGCGCATCTGTAAAACCA -CGTTCTTGTAAGTACGTTAATGCTTGTTCGCCTTCGACTGTCTTTGTTAAAGCGTAATAGTAAAATTCTT -GTATTAACTCATGCATTTCAATCATTTGTAAATCATCAGAAGCAATTTGAACATTTGAGTTAGATTGTGT -TGCCTCAATATCTACAGCAACATTAACTCTATCACCTAATTCTTTAACCGCTTCAACAAATGATATGTCT -TTAATTTCTTGAGTAAATTGAAAAACATTGCCACCTTTTTTACAACCAAAACAATGGCAAATTTGTTTAT -CTTCAGAAACTGTAAATGAAGGTGTCTTTTCATCATGAAAAGGACACAAACCTATATAATTGCGTCCTCT -CTTTTCTAATTTTACATATTCACTTACCAAGTCTAAAATATCGGTTTTATCTTTTATTTCATTAATGATC -GATTGATCTATTCGCAAATTAAATCACCTATTAAGCATTAGTTATACTATTATACCTAATTTTTGACAAA -AATGAAATCATTTCGATTTATTTTGTTCAATATAATGGATTATATCGTTTGCTGTTTCTTCGATTGCTTT -TTGAGAAACATCAATGACAGGACATCCAATTTCACTTACGATTTCTTCAAAGTAATTCAATTCTTCTTGA -ATTCGTGCTTCTGTTGCATATCGAGCTGTGTCACCTAGTCCTAATTGTTTTAGTCGCTCTTTTCTAATGC -GATTTAATTTTTCTTCACTTATTTTAAGTGCGATACATTTCTTTGGATCAATATCATATAAGCCATCTGG -CGGTGTCACTTCTGGTACAATCGGTACATTCATAACTTTGTAACTTTTATGCGCTAAATACTGGGATAAT -GGTGTCTTTGAAGTTCTCGAAATACCAAGTAAAACAATATCAGCTTTAGGTAATCCTTTAGGATCTTTAC -CATCATCATATTTAACTGCAAACTCTATCGCATCAATTTTCTTGAAATATGCATCATCTAATCTATGAAC -GATACCTGGCTCATTATAAGGTTTTTCTTCAACTGATGCTGATAATAAATCCATTAATGGCCCCATAATA -TCGACGGACTTCAATTGGAATTCTGCTACTTTCTCACTCATATATTGCTTCATTTCAGGTTTAATAAGTG -TATAAACAATGATAGCATTTGTATCTTTAGCAACTTGAATCACTTCATCAACATCTTCAAAAGATTCAAT -ATATGGATATCTTAATAATTCATTTTTACATTGCTTAGGATTAAATTGTGAAATACCTGCCCTAGCAACT -AACTCTGCCGTTTCACCTATAGAATCTGAAGCTACGATAATTTTAATTTTTTCCATTACTTCTCACCTAT -TCTTTATATAATGCTACTAATAACTTAGCTATTGTTGTTTTGGAAATTCTTCCAATTACTTCATACTTTT -GATTATCTTTTTTTCTTACAATTGGAATCGAATCAATTTCTTTTTCAATCATTCTATCTGCTGCGTATAT -GACTAATTCGCTTTCCTCTAAATAAGTGACATTAGGCATACGTGTCATATTAACACTGATAGGTACTGTA -TGAATATCTGCTCCAATCATTGAAGCTCTTAATAAATCTTTTCTTGAACACACACCAACAAAATCGTTAT -CTTCATTAATAATAAATAATGTACTTACATCTTCTAAAAAAATTGTACAAATAGCGTCATAAACTGTTGT -ATTCTCTCTTAGCACAACAGGTTGAGACATATAGTCCTTAACCTCAAATTGTCGAAGTTTTTCATTAAAA -AATTTACCTTTTGATTTACCTGAATAATAATATCCAACTCGGGGACGCGCTTCTAAAAAACCTGACATTG -TTAATATCGCTAAATCTGGTCTAAGCGTTGCTCTTGTTAAATTCAACTTATCTGCTATTTGTTCACCAGT -AATGGGTCCTTGAGTTTTAACAATTTCGATGATTCGTTCTTGTCTTTGACTGAGTTCTATAGGTCTTCAC -CCCTTTTTTATTCACTTATTATTATACCGATATTTCTTTCATGTCACAAACACATTAATTTTACTTGCCT -TTAAATAATCTATCAATTAGAATAAACGTACAGCGAGTTAAGGATAGTGTAAGCTTAACAATAAGATTGG -CGCAACGAATCATTTTAAAATAAAAGCGAGTGACTACACTAATTTGGGTGGAACCGCGGGTTAAATACGT -AACTTATTTTGTATTATATACAATTTAAAATATTAACTCGTCCCATGGAAGTAAAGCATATTTACTATGC -TGTTATTTTCCATGGGGCGTTTTCATGTATGAGGAGAGGTAATTATGGCAAAAGATATGGATACAATTGT -TTCATTAGCAAAACACAGAGGTTTTGTGTTCCCTGGTAGTGATATTTACGGTGGTTTATCAAACACATGG -GATTATGGTCCTTTAGGTGTTGAATTAAAGAATAATGTTAAAAAAGCTTGGTGGCAAAAATTCATTACAC -AATCACCGTTTAACGTTGGTATCGATGCTGCAATCTTAATGAATCCAAAAGTATGGGAAGCTTCAGGACA -CTTAAACAACTTCAACGACCCAATGATTGATAATAAAGATAGTAAAATTCGATATCGCGCTGATAAATTA -ATTGAAGATTATATGCAAGATGTTAAAGGTGATGAAAACTTCATTGCCGATGGTTTAAGTTTTGAACAAA -TGAAAAAAATTATTGACGATGAAGGTATTGTTTGTCCTGTAAGTAAAACTGCTAACTGGACTGAAATTCG -CCAATTCAATTTAATGTTTAAAACATTCCAAGGTGTAACTGAAGATTCTACAAATGAAATTTTCTTACGT -CCTGAAACAGCACAAGGTATTTTTGTAAACTATAAAAACGTGCAACGTTCAATGCGTAAAAAATTACCAT -TTGGTATCGGTCAAATTGGTAAATCATTCCGTAATGAAATCACTCCAGGTAACTTCATTTTCAGAACAAG -AGAATTTGAACAAATGGAACTTGAATTCTTCTGTAAACCTGGTGAAGAAATCGAATGGCAAAATTATTGG -AAAACTTTTGCAAGTGACTGGTTAACAAGCTTAAATATGAGTAGTGAAAATATGCGTTTACGTGATCATG -ATGAAGATGAATTATCTCATTACTCAAATGCAACAACTGATATTGAATATAAATTCCCATTTGGTTGGGG -TGAGTTATGGGGTATCGCAAGTCGTACAGACTTCGACTTACGTAAACATGCTGAACACTCTGGTGAAGAT -TTCAGATACCACGATCCAGAAACGAACGAAAAATATATTCCATATTGTATCGAGCCATCACTTGGTGCAG -ATCGTGTAACATTAGCTTTCTTATGTGATGCATATGATGAAGAAGGCGTTGAAGGTAGTAAAGATGCACG -TACAGTTTTACACTTCCATCCTGCATTAGCACCATATAAAGCAGCGATTTTACCTTTAAGCAAGAAATTA -TCTGGCGAAGCGATTAAGATTTTTGAGCAATTAAGTTCTAAATTCTCAATCGATTTCGATGAATCACAAT -CTATCGGTAAAAGATATCGTCGTCAAGATGAAATTGGTACACCTTATTGTGTAACATTCGACTTTGATTC -ATTAGAAGATAATCAAGTTACAGTACGTGACAGAGATTCAATGGAACAAGTTCGTATGCCAATCTCAGAG -TTAGAAGCTTTCTTAACTGAAAAAACAAAATTCTAATTAAAAAGACTCTCCACCATATGTGGTGGCTATA -TAATTTATAAAAAGAGATACTGGTTAGTAAAATTGCCAGTATCTCTTTTCTATTCGAAAAAGGTATTCAA -ATAAACACATCTATGTGGCTACTTGAATACCTTTTATTATTTTATGTTATTGTTCCAATCTTTTTAATTG -GTTGATTAGTTTCTGACTTTTAAAAAACATACCTGCATATTCACGATATAACATTAAAATGATATCTGAC -ATTTCATCAATAATTTCTTGATGGATATTCAATGAATTCATTTTATCTATTGGTAATTTTTGTAATACAT -CTAATAAATATAGTGTTTTATTCGATAATATAACTGCATGTACATCTTTAGAAGCCTCTTGCCTTGAAAT -AGCACCGTCATACTTAAAACTATAACCTATTAAATCTGCTTGTGTGTCATTACCACTCACAGCACAGCGA -TTAAATGATGCGGTAAAACCAAATCGTTTCATACACTTTAACATAACAACGACTGACATTAACTGTGCAG -ATGTACCTGATTCTATTTTTTCAAGAACAAATTGTAATAATTGATAGTTATATGGTGCAACGTCCCCTTC -ATCCATTGAACGCTCAATAGTTTCAGCTGCCAGAGACGCATAACTGCTTACGTAAAGGTCCATTTGTAAT -TTATAATGTTGACTAATAACATCTACAGAATTTAACGTTCCCATACCTCGCCACTTATTGTAAATAAACA -AACCATAAACAAACAATTGCGTTTGCGCTTGCAAACCCGTCTTAACTTTTTTAGCACGCCTTGCCATAAG -TGGTACTTTTGCACCATGCTCATTTAAAATCGTGATAATTTTATCAGATTCACCATAATCAACTGCTTTG -ATGATAATCCCTTTTTGGCGCATTAACAATTATCTTCACCACTTTTAAGATTAATCTTGGTCTTCAACAT -AACCAATTTGGCGAATAAAGTTAACTTTGTTTCGCCAGTCTCTTTGAACTTTGACCCATAATTCCAAGTA -AACTTTAGAGCCTAGAAGCATTTCTATATCACGTCTCGCACGTTTTCCTACTTCTTTTAACTTTTTACCG -CCTTTTCCAATGACAATTCCTTTTTGCGAATCTCTTTCAACATATATAGTTGCTTCGATATGAACACGAT -CTTCGCTTTCTTTAACCATACGGTCCACATTAACACCAATCGCATGAGGGATTTCTTCACTTGTAAGATG -AAGGATTTTTTCACGAATGATTTCACCCACTACAAATTGTTCAGGATGGTCTGAAATTTGATCATCTGGA -TAATATTTTGGTCCTTCGGGTAAATACGTCTTTAATACATCAATAAAATGATCTACATTTAGCCCTTCTA -ATGCTGAAATAGGTACAATCTCTGTAAAGTCCATATAACTTTGATATTCTTCAATCTTTGGCATTAATTC -ATCTGGATGCACTAAATCTATTTTATTTAATACTAAAAATACTGGTGTCTTAACATTTTTCAACATTTCT -ATAATATATTCATCGCCTCGTCCAATTTCCTCATTGGCATTAACCATAAACATGATTGCATCTATCTCAG -ATAATGTATTTTTAGCGACTTTCATCATATAGTCACCTAATTTGTGTTTAGGTTTATGAATACCTGGCGT -ATCAATGAATATAATTTGCGCATCATCTCTTGTCATTACACCTTGAATTTTATTTCTAGTTGTTTGAGCT -TTATCGGACATGATTGCTATTTTATGGCCAATCACTCTATTAACAAATGTTGACTTCCCTACATTTGGTC -TACCTATAATTGAAACAAATCCTGATTTATGTTCTGTCATTTATTCTAAATCCTTTCCTGAAAATCCAAA -TGGTAGTAACTCTGCGACTGTCATCATAACCATATCTCCTTTATGATTTGTCATATACACAGGCATATCA -TCATCACATAATTCCTTCAAAACTTGACGACATGCACCACAAGGTGATGACGGTTTATCTGCATCTACGG -TTACAGTTATTGATTCAAAATCACCTGGTCTGTATCCTTGAGAAATTGCCGATACCAAACTAGCTCGTTC -AGCACATATCGATAATGGATAAGAAGCATTTTCTACATTGGTACCATAAAAAGTTCTACCGTCTTTCGTT -TTTAAATAAGCCCCTACTTTAAAATGACTGTATGGCGAATATGATTCTTGTTGTGCTTTTCTAACTTCTT -GAAAATAATGAGGTTGATAACTCATATATGCCTCCCTAAAATAACGCTATAAAATGTGGTAAAAATACTA -TTAAACCTATAATAAATGCTAATATTGAAACTATAAGTACACTAAAAGCCGCTATATCTTTAGCGTATTT -AGCTAAATCATGATATTCAACGGTCACTAAATCTACAACATATTCAATAGCAGTGTTTAAAGCTTCAACA -GTGAGAACTAATGCAATAGCAATGAGTATAAATATCCACTCAATCCGATTAATATTTAGTACGAGACCAA -AGACAATAGCAACAATCATTGCAAACACATGTAAAAGAAATTTATAGTCTTTTTGAATTAAGATTTTCAG -CCCATCAAGTGCATATTTAAACCTTTTCATAATTAGTCTCGTGTTAATCCATATGCGTTTAATATTGTAT -CTTGTCGACCAAACATTTCCTTTTCATCCGCTTCAGTCATATGATCATAACCTAATAGATGCAAAAATCC -ATGTAATGCTAAAAATCCTAATTCTCGTTCAAAAGAATGTCCGTAATTGTTTGCTTGTTCTTGCGCTACA -TCCGTACAGATAATTATATCCCCTAAAACACGTGGTATATCAAGACCACTAAAATCAATATCTGGCTCAT -CCTCTTCTAAAGCAAATGAGATTACATCTGTAACTTTATCTTTATCTCTATATGTTCGATTAATTTCTTG -TATTTCTTGTTTATCTACAAATGTAACAGAAAGCTCAGCATCGTCTTCTATATGCTCTTCTTTTTTAGCA -AATTCTAATAAATCTTCAATTTGTTTATACCAAGCATCTTTAACTAAGCCTGTGTGATCGCTAAAATCTA -TCGTAAACATTTAATTCTCTCCTTCATAATGTTCAATGATTTTACTTACCAATGGATGTCTTACTACATC -GCTCTGATCTAATTTCAATATACTTATACCTTTAACGTTGTGTAACCTACTGACCGCTTCCTTAAGTCCA -CTTTTAACACCTTTAGGTAAATCGATTTGAGTTTGGTCACCAGTAACTACCATTTTTGAGCCAAAACCTA -GTCTTGTTAAAAACATTTTCATTTGCGCATGTGTCGTATTCTGCGCCTCATCAAGAATTACAAATGCATC -TTCTAATGTTCGTCCGCGCATATATGCAAGTGGCGCTATTTCGATAATGCCTCTTTCAATAAATCGCTCT -GTTTGTTCACGCCCAAGAACAGTATATAGACCATCATATAAAGGTCTTAAATATGGATCTACCTTTTCTT -TCAAATCTCCTGGTAAAAATCCAAGTGACTCTCCTGCTTCAACAGCAGGTCTTGTTAATACAATACGTTT -AACAGTACCTTTACGGAGTTGCTTTGCTGCATAAACTACAGCTAAGAATGTCTTACCTGTACCAGCAGGA -CCTATACCAAATACTAAATCATTATTTTTCATGGCATTAACATATATACGTTGCCCCATCGTTTTCGCAC -GAATCGTCTTACCAAATGCATCTTTAGTTATCTCTTCATCATATAAATCTAACAGATGTTGAATTGTGTT -ATTATGCGCCATTTTAATAGCTGCTTCAACATCTTTAATTGTAATATTATTACCTAAATCAATAACCTTC -AGCAAATTGATTAATACTGATTCCGCTTTTTCTACGTTTTCTATTTTTGTACCTTTAACGGCAACTTCTT -GTCCTCTTGCATGGATGACAACATCGAAACTCTCTTCAATTGCTTTTAAATGTTCATCATTATTTCCAAT -TAAAGCTTGAGATTGGTTCATATCGTCTATTTGTATAATTCCAGGCATACACGCGCTCCTTTTCATATAT -CATTTATATTCATTCTATGATGCTTTAATATCTACTTAATTATATCATGCAATTGATTGATTTAAACATC -TTTGCATTGACTTACTGATTTTTCTTTAATTTAAAATAATCATTTATACTTTTCACCTTGTCATAAAAAC -AGATTCAATTTTAGACTAATCAATTTTTTGTTGTAATTTAAACAACTCATATTTCTCGAAAGATTCTCTT -TGATTTTCAATTTTTCTTAACGTAAAAAAACAAGCAACTACCATTACGATAGTGCTTGTTTTCAAAAATT -TTATAATTGTTTTGGTTTAGCTAAAATTTCTGACCATATCATACCATTGATTACTTCATCTTTATCAAAT -TGGAACGCTGATTTAGTCAAATCTTTTTCGACATTTTGAGAATTAAGCAACTGCTTTAATTTCAAACGTT -TTGTACGTTCAGATAAGTATTTATCCTCAATAATATCTCTAGCACGTTTTTCCATTTTAGCAATTTGCTT -TTCTTTTTCTCTATCAATGTCAGTACGAATCGTTTTAATATCATCTCTAAGTGATTTTTCTAATTGACGT -CTAATTTCGTCAGAATTATCTTGTCTAGAAGGTCTATGTTTCTGCTCCACCGGTTCTGCTTTAGGCACTG -TAATTGGTTTCTCTGTCATCGGTTTTGTTTCTTGTTGTTTTTTAGGTGCCATAGGTTCTACAACAGGTTT -CGATTTAGGCTCTTCCTTTGGAAGTTCATCGAATAAAGGTGGTAACGTATCATCGTATTTTCGTTTCGAT -GATTTCTTTTCTTCTTCATTTAATTCTTCACTTATTTCTTTAAACGTTCGCTCAATTTCTTCAAAAAAGC -CACCTTTTTTTGGTTCATTATCGGTAGATGTTTTTTGAGGTGGCTTTTGATTTTGTCTATCTTTATGACT -ATTTTCGCGCATAGTAGTAATGATAGAAATGATCACTGATATGACAAAAATTAGAATACCGACACTCATT -TAATCACCTCTCGACTTAATGTTCAGGTGACTCATCATCACTTTGATCAGTTCGTTTATTAATTGCATTT -CTCATGCCTGTATCAGCTTCGATATTTTTCAAATTATAATAATCTTTAACACTGATATTACCTGAACGTA -ATGCTTCAGCCATAGCTAATGGTACTTCAGATTCGGCTTCAACTACTTTAGCATGCATTTCTTGTACACG -CGCTTTCATTTCTTGCTCAGTTGCTACAGCCATAGCTCTACGTTCTTCAGCTTTTGCTTGTGCAATATTT -TTGTCTGCTAATGCTTGTTCAGTTTGTAAGTCTGCACCAATATTTTTACTAATATCAACGTCAGCAATAT -CAATTGATAAAATTTCAAATGCAGTACCTGAATCTAAACCTTTGCTTAATACTGTTTTAGAAATATTATC -TGGGTTTTCAAGTACTTCTGTATGATGCTTACTAGAACCAATTGTTGAAACGATACCTTCACCAACACGT -GCGATGATTGTTTCTTCACCAGCACCACCAACAAGTCGAGCAATATTAGCTCTAACTGTGATACGAGCTT -TGGCTTTCACTTCAATACCATTCATTGCTACACCTGCGATAAATGGAGTTTCAATGACTTTAGGATTAAC -AGACATTTGAACCGCTTCTAATACGTCACGTCCTGCTAGGTCAATAGCAGCTGCACGTTCGAAAGGAAGG -TCAATGTCAGCACGTTGTGCAGCAATATTAGCGTCAACAACTCTGTCAACATTTCCTCCTGCTAGATAAT -GCGATTCTAATTGGTTTGTTGTTAATGCTAGTCCTGCTTTATGCGCTTTAATTAATGGCGCTATAACTTT -TCTTGGAGATACACGACGTAAACGCATACCAACCAATGTACCTATACCAACATGAACGCCAGCTGCTAAC -GCTGAAATCCATAAACCAATCGGTACAAATGAGAATAAAATAAGTAATGCAACTACTATAATAACTGCTA -TTACGATAAAACTTAAACTAAACATGGTATCGCTCCTTTTAATTAATCTACTTCCCTCACAACTACTCTT -GTTCCTTCAACTTCAAGGATTTTTACCGTTTTATTGCGTAAAATAAAGTTGCCATCTGAAACAGCATCAA -TACGTTCATTTTCACAAAAAATAATCCCTGCAGGTCGAAGATCTGTAACTGTTTGAGCAGTCTTTCCTAC -GAGGTGCGAGCGGTTATCATGAGAATTGTAACCTGACTCAGAATTAGTTGAATCTTTTAAGATAACTTTA -TCCAAAAACGGAATCTTTCTGTTGAAAATCTTCACTAATATCACCCATTCTACAATCGTTAAAATCAAGG -CAACGATAACATTCGCAAGCATAAATAGCAAATTATCACCGAGCGTTGTTATGCTTATAGTTATCAGTAT -CATGCCAATAATACCAATTACTGCACCAACTACAAATAATTCAATTACAACTAATATAACGCCAATTGAG -AATATTAAGATAGAATGCATATTGACATTTCCTTGGATTAGAAATCCCAAAAATAAAATAAGTAATGATA -ATGTGGCGATAATACCAGCTGCATTGATTTTTTTAGAGTAAAGTTGATATACAAATCCTAAGAATGTCAA -ACAGGTTAATATTAACGTAAAAATAGGTTGAACAATTATATTACTAACTTGTTCAACCCAAGTATCTCCA -GCCGTTGATTCCAAGATAGTTGTCATTTGTAAAAAATTATTATAACTCACAATTTCACCTCGCCCTCACA -TTAATTATACATGAAATTGAATATACTTTATAGTTATAAGAACCTATAGAATATCAATTTGATTATTTAT -AAACTATATAATTTTTTTAAATTAAAAATTGACAACAAAAAAACATCACATATTAGTGTCAGACACTAAC -TTGTGATGTTTATTTTATATAATTAATATTCGTGTTGAGGGAGTCAACAGAGGTATTAATTATTTGAATT -TACGTTTACGTGCAGCTTCTGATTTCTTTTTACGTTTTACGCTTGGTTTTTCGTAAAATTCACGTTTACG -TACTTCTTGGATTGTTCCACTTTTAGAAACTGAACGTTTAAATCTACGTAACGCATCTTCAAGTGATTCA -TTTTTACGTACTACTGTTTTAGACATCTGTATTTCCCTCCCTCCAAATATCAACGGAACTTTATAGTCAA -TTGCACAGTAAAACTATGCATTTATAAGTATAATATATCTGTAATTTATGGTCAATTAGTAAATTGTTTT -TTATTTGAAACATATTTCACATCAAAATCACAAAGACTTTTAGATTTTGTTCTAAAAATCTCTTAATAAT -TTATTTAATGAGAAGAGTTGTTTATATAGTAAATTGTGAAGCTGTTAAAACAACGTTACAAAACCTATAT -CTTTAATACGGAACCTTATGGTATGAATCAAGGAATACTTAAACTAAAACTTCTCTATCAGATTTATTTG -TTGCGAAATCAACAACTTTAATTGCTTGCCCTTCATTTAATGGATAATTTGCTTGCGTAATTTTAACTTT -TACAATTTGACCTATGAGTGATTCGTCACCTTCAAATTGTACTTTCATATAATTATCTGCATATCCAACT -AATGTACCTTCTGTGTCACCCTGCTCCTCAGGAATTACTTCAAGCACATCTTGATCAAATTTAGACGCAT -ATAACTTTCCAAGTTGATTGCTAAGCGTAATTAACTTATGCACGCGTTCATTTTTAATTTCTTCATCAAT -TTGGTCATCCATTCTTGCAGCTGGCGTGCCAATTCTAGGAGAATAAGGGAAAACATGCAGTTCAGAGAAC -TTATGCTTTACGATAAAATCATATGTTTCTTGGAACTCTTCTTCAGTTTCACCTGGGAAACCAACAATTA -CATCACTCGTAACTGCCAAGTCTGGTAAAGCTTTATGCAATTTTGTTAATCGTTCCGAAAACCTATCCAT -TGTATACTTACGTCTCATACGTTTTAATACTGTATCTGAACCAGATTGTAACGGAATATGCAAATGACGC -ACAACTTTTGTTGAACGTTCTAAAACGTCAATCACTTCATCTGTAAGTTGACTTGCTTCAATTGAAGAAA -TTCGAATTCGTTCTAATCCATTAATCGTTTCAAGATCACGTAATAATTGGGCCAAGTTATAATCTTTTAA -ATCTTGACCATATCCACCTGTATGAATTCCCGTCAATACAATTTCCTTATATCCTGAATTCACTAGTTGC -GTCGCTTGTTCAACTACTTTTTCCGGATCTCTTGAACGCATTAAGCCACGAGCCCATGGAATAATACAGA -ATGTGCAAAAGTTGTTACAACCTTCTTGAATTTTTAATGACGCACGTGTTCTATCTGTAAAATAAGGGAC -ATCTAATTCTTCATATTTACGATTTTTCATGATATTTCCAACACCATTAATTGGTTGGCGTTCTTTACGG -AATTCATCAATGTAACCTAATAGTTTATGTCTATCTTGTGTACCAACTACTACATCGACACCAGGAATTT -CCATAATTTCAGCTGATGAAGTTTGCGCATAACAACCTGTTACACAGATTACAGCATCAGGATTTTGTCT -TATTGCACGTCTAATAATTTGACGACTTTTTTTATCACCTGTATTCGTTACTGTACAAGTATTAATAACA -AATACATCAGCATTCGCTTCAAAGTCAACGCGCTCATAGTTTGCTTCTTTAAATAATTGCCAGATTGCTT -CAGTTTCATAATGGTTTACTTTACAACCTAATGTGTGAAACGCAACTGTTGACATAAATATTCACCCCAT -TAATTCTTTTTCATAACTTATTGCACTTAACGCATACAATGGCGCAGTTTCTGCCCGTAAAATTCTCGGT -CCAAGACCAACAACTGTACTAGTATTACTAAATAATGAAATTTCATTTTCTGACAAACCACCCTCAGGAC -CAAAAATCATCAACACTTTATCCTGAGCCTTGAATTGTTGTAAAGTTTGCTTGAAATTGCTTAACTCACC -ATCTTTTGCTTCCTCTTCATGTGCAATAAGAATATAGTCATAATTATCAATAGTATCACAAATTAATTTT -AAATTCGACTCGAATTGAATAGATGGAATCACTAAACGATAGCTTTGTTCAGCAGCTTCTTTAATTATTT -TTTGCCAACGTTCTATCTTTTTGGCAACTTTTGCCTCGTTTAATTTAACAATTGAACGTTCCATGCTAAC -AGCTATAAACGATGAAGCACCCAATTCAGTAGCTTTTTGTAGCAACCACTCATATTTGTCAGCTTTAATT -AGTCCACTGCAAATCGTAACATCAACTGGCAATTCTGTATTAATATTTTGTTTTTCTTTTAAATCAACTG -CAATTTTATCACTTGTTATATCAGCAATTTCACATAAATAAACTGTTTGATCATTAAAAGTTAAAATAAT -TTTACTACCAACATCATATCTCATTACATTTGTTATATGATGAATATCTTCTTTTTTTGTAATAAAAAAA -CGCTGACTTACATCAGCGTTTTGGTCTATGAAATAACGTTGCACATTATTCACTCACTTTCTGGCCAACA -AGACAAACCCAACCGTTGTCATGTTGTTCTGAAATAATTTTAAAACCTACACGCTCCATATGTGACTGTA -TACCTTCATACTTCTCTTTTATAATACCAGAAGTAATAAAATAACCGCCTTCATTTAGAGTATTATAAGC -ATCATCAATCATTTCATCAATAATATGCGCTAAAATATTTGCTATTACAATATCAAATTTTTCTGTTTCG -TCTTTCAATAAGTTACCTGGAACAGCTTCAATTAACGTTTCACAATGATTTCTTCTGAAGTTTTCTTTAG -CTACACTCACTGCCATTTCATCAATATCCAACGCTTTAATACGTTTTACACCGATTAGATAACTTGCAAT -ACTTAATATACCTGAGCCAGTACCAACATCAATTACTGAATGCTGTGGCAATACATATGTTTCTATTGCC -TTCAAACACATACTTGTAGTCGGATGATCTCCTGTTCCAAAAGCCATACCTGGATCGAGCTCAATGCAAA -GCTCTTCATCCGCTTCTTTAGCATATGTTTCCCAACTAGGGACTATTGTGAACTTCTTCGACGCTCGGAA -TGGATGGAAATAGTTTTTCCATTCATTTTCCCAATCCGTTTCTGCAATGATTTGCTCACTGAATTGAACG -TTATGTTGATCAAGTTCATCTAAGTTTAATAACTCATCTTTAATTCGCTGTCGCAACTTATCATCATAAG -TCAACTCATTAAAATAGGCTTTCAATCTTACTCCCTTATCTGGATAATCCTCTTTTTTCAAAGCGTAAAT -TTCACCGTATTTATCTTCTGGTTGATTAATTAAATCATATGAATCTTCTATCACGACACCATTTGATCCA -TGATTTTCAAGTATATTGGTAGCCAATTCTACTGCTTCATGATTAATAATAATTGAAAGCTCTGTCCAGT -TCATACTTTATTCTCCCTTAAAGAATCTTTTTGCTCTATCTTTAAAATTCGAAGGTTGATCATTAATTTC -TTCACCATTTAATTGGGCAAATTCTTTCATTAGTTCTTTTTGTCTATCTGTTAATTTAGTAGGTGTTACT -ACTTTAATATCAACATATAAATCTCCGTATCCATAGCCATGAACATTTTTTATACCCTTTTCTTTTAAGC -GGAATTGCTTACCTGTTTGTGTACCAGCTGGGATTGTTAACATAACTTCATTATTTAATGTTGGTATTTT -TATTTCATCGCCTAAAGCTGCTTGTGGGAAGCTAACATTTAATTTGTAATAAATATCATCACCATCACGT -TTAAATGTTTCAGATGGTTTAACTCTAAATACTACGTATAAATCACCAGCAGGTCCTCCATTCACGCCTG -GAGAGCCTTCACCAGCTAATCTAATTTGTTGTTCATTGTCGACACCTTCAGGTACTTTCACTTCTAATTT -AACCGTTTTATTTTCAGTACCTTTTCCGTGACATGTTGGACAAGCTTCTTCAAATTCTTGACCACTTCCA -TTACATTTAGGACAAACTTGTTCAGTGCGAACTCTACCTAAAATTGTATTTTGTTCTACAGCTACATGAC -CAGCGCCATTACAGTAACTACAAGTCTTTTTACTTGTTCCAGGCTTTGCACCATCACCATGACATGTTTC -GCATGTTACATCTTTACGGATTGAAATTTCTTTTGTTGTACCAAATACCGCTTCTTCAAATGTCAATGTC -ATTGTGTACTGAAGATCATCACCTTTTTGCGGTGCATTTGGATCTCTTTGTCTGCCGCCACCGAAGAAAG -AGCTAAAGATATCTTCAAAACCGCCGCCACCGAAGCCACTAAAACCGCCAAAGTCAGAGCCATTGAATCC -TTGTCCACCAAAACCTTGTGGCCCGTCATGTCCAAATTGATCATAGCTTGCGCGTTTATTATCATCACTT -AAAACTTCATAGGCTTCAGAAATTTCTTTAAACTTTTCATCTGCACCTTCTTCTTTGTTAATATCTGGAT -GATATTTTTTCGAAAGCTTTCGATACGCTTTTTTGATTTCATCTTTTGAAGCATCTTTACTAATGCCTAA -AACTTCATAATAGTCTCTTTTGGCCACAGCTATCTCTCCTTTTCTTAATTAACTCATATAGTTTAACGTA -ATATGTCATACTATCCAAATAAAAAGCCAAAGCCAATGTTCTATTGACTTTGACTTTTCAGATCATGACA -ACATTCTAATTGTATTGTTTAATTATTTTTTGTCGTCGTCTTTTACTTCTTTAAATTCAGCATCTTCTAC -AGTACTATCGTTGTTTTGACCAGCATTAGCACCTTGTGCTTGTTGTTGCTGTTGAGCCGCTTGCTCATAT -ACTTTTGCTGATAATTCTTGAATCACTTTTTCAAGTTCTTCTTTTTTAGATTTAATATCTTCTATATCTT -GACCTTCTAAAGCAGTTTTAAGAGCGTCTTTTTTCTCTTCAGCAGATTTTTTATCTTCTTCACCGATATT -TTCGCCTAAATCAGTTAAAGTTTTTTCAACTTGGAATACTAGGCTGTCAGCTTCGTTTCTTAAGTCTACT -TCTTCACGACGTTTTTTATCTGCTTCAGCGTTAACTTCAGCATCTTTTACCATACGGTCGATTTCTTCGT -CTGATAATGAAGAACTTGATTGAATTGTAATTCTTTGTTCTTTATTTGTACCTAAGTCTTTTGCAGTTAC -ATTTACAATACCGTTTTTATCGATATCAAACGTTACTTCAATTTGAGGTTTACCACGTTCAGCTGGTGGA -ATATCAGTCAATTGGAATCTACCAAGTGTTTTATTATCCGCAGCCATTGGACGTTCACCTTGTAATACGT -GTACATCTACTGATGGTTGATTATCTACTGCTGTTGAATAGATTTGAGATTTAGATGTAGGAATCGTAGT -GTTACGTTCAATTAACGTATTCATACGTCCACCTAAAATTTCAATACCTAAAGATAGTGGTGTTACGTCT -AATAATACTACGTCTTTAACGTCACCTGTGATAACGCCACCTTGGATTGCAGCTCCCATAGCCACTACTT -CGTCCGGGTTTACACCTTTGTTAGGTTCTTTACCGATTTCTTTTTTGACAGCTTCTTGTACCGCTGGAAT -ACGAGTTGATCCACCAACTAAGATAACTTCATCGATATCTGAGTTTGTTAAGCCAGCGTCTTTCATTGCT -TGGCGTGTAGGTTCCATTGTTCTTCTAATTAATGAATCTGATAATTCCTCAAATTTAGAACGAGTTAAGT -TTACTTCTAAGTGTAATGGACCGTTTTCACCAGCTGAGATAAATGGTAATGAGATTTGAGTTTGTGATAC -ACCTGATAAGTCTTTTTTAGCTTTTTCAGCAGCATCTTTCAAACGTTGTAATGCCATTTTATCTTGAGAT -AAGTCTACGCCATTTTCTTTTTTGAATTCTGCAACTAGGTAGTCAATAATTACTTGGTCAAAATCATCAC -CGCCAAGTTTGTTGTCACCGGCTGTTGATAGTACTTCGAATACACCGTCACCTAATTCTAGGATAGATAC -GTCAAATGTACCGCCACCTAAGTCAAAAACAAGAACTTTTTCGTCTTTATCAGTTTTGTCTAAACCATAT -GCTAATGCTGCAGCTGTTGGTTCATTAATGATACGCTCAACTTCTAAACCAGCAATTTTACCAGCATCTT -TAGTTGCTTGACGTTCAGCATCGTTAAAGTATGCAGGTACTGTAATTACAGCTTTGTCAACTTTCTCACC -TAAATAGCTTTCAGCTGTATTTTTTAAGTTTTGTAAAATCATAGCTGAGATTTCTTGTGGTGTGTATGAT -TTACCTTCAATATCTACTTTATAATCAGTCCCCATATGACGTTTAATAGATTGAACAGTGTTTGGGTTTG -TAATAGCTTGACGTTTAGCTACTTCACCAACTTGAGTTTCTCCATTTTTGAAAGCTACAACAGATGGTGT -TGTACGTGAACCTTCAGGGTTTTGAATTACTTTTGGCTCATCGCCTTCTAATACTGTTACACATGAATTT -GTTGTACCTAAGTCTATACCAATAATTTTACTCATAATAAAATTCCTCCATTTAATCATTAAATTAATTT -AATTTTAAACAATGTCTTTTCGCCAAATTTAAGTTATTGGTTTACTTTGACCATTGATGGTCTTAATACT -CTATCTTTAAGCTTGTATCCTTTTTGTAGTTCTTGAGTGATTTCGCCAGATTCAAAATCAGGGTTATCAT -CTTGAACTACAGCTTGGTGAATATTTGGATCAAATGCTTCACCTTCAGTTTTAATAACTTCAAGACCATT -ATCTTTTAGTGCGTTAATCAAACTTTCATGCACCATTTGTACACCTTTTTGAAGAGATTTAAAAGTCTCA -TCATCACCTTCAATTTGAAGTGCACGTTCTATATTGTCTATTGCTGGTAAAATATCTGTTAACACACGTT -GTGCTTGATATGTTTTATTTATTTCATTTTCTTTTTGAATTCTACGCTTATAATTTTCAAACTCAGCGTA -GAGCCTTAAATATTTCTCTTCGTTTTCATCTGCTAATTGTTGAAGTTCATTAATTTTTTGATCTTTTGGA -TCTATTTCTTCAATAACATTCTCGTCAGACGTTTCTTCTATTGCTTCATCTTGTAAATGACCTTTACTTT -CTTCAGCTTGTTCAACTGAATCATCAATATTTTGTTTGACGTTTGTTTCTTCAACTGTTGATTCAGTGTT -TTTTTCAACTGATTCGTCTTTATTTGTCATTTTCTGTCCTCCAATACTTTCTAATCCATCATTACCAAAT -TCTATTTAATAATTGAATGACATTTTGATAATGCATAGCTGTAGGTCCAATCACAGCGATTTGACCTTTT -AACGTTTCATCAAAATGATATTGACTTGTTACAATTGAAATATCACTTAAGCTGTCATCAATTTCATTAC -CAATTTTTACATTAATATTTGGTGAAGATATATCTTGTAATAATTCTGCAATTCTATTTGATTCTATATA -TTGTAGAATGGGCTGAATTGAAGATACATTACTTTCATTCAATGCATCAATAAGTTTAACCTTCCCCCCC -ATATAAATGCTATTACTTTGATTAGAAATATGATTATTCATCGTATTTAACAATTTATTGATAAATATTT -CTTCCTGCTCTGATTGAACAAAAGAGACAATATCATCTTGTAAATTCTGATTAAACTCAGTTAGTTTGTT -AGTAACAAAATTTGATATTGTATTTAGTTTGTCATTACTAAACGGTATGTCTGAAGCAAGATGTACATGC -TCAACATGACCTGATGAAAATACGATAACCATAATAACTAAATTAGGATTAGCACGAATCAAGTGTACAT -TATTGATAATATCTTGTTTATGATTAGGATGAACAACTAAAGTTGTATATTGAGATATATTTGATAATTC -ATCTGCAAAATATGTCAATGCTGATGATACATCATATTGATTCTCAACTAACAATTGATTTAATCGTCTT -AATTTATTTGTTTTTTGATGAGATGTTTGTTCAAGTAAACGATTGACATAATACCTAAAACCTAATTGTG -ATGGCGAACGCCCTGAAGAACTATGTGTCTTTTCGATATAGTTTAAATCTTCAAGCTGTTTCATCTCATT -TCTAATTGTAGCAGGACTAACATTCAAGTTATGTCGCTCAATTAGTGTTTTAGAACCAACGGGTTGTCCA -AAATCAACATAATCCTCAACAATTGCGTTTAATATACTCAATTGCCTATCTGTAATCATGTTTTCACCTC -ATTAGCACTCACTTATCTCAAGTGCTAATTATAATTTATCAAATTGGTCAAAGTAAGTCAATGTTAAAGA -CTCGAAATTTCAATTTTTTTTAATCGTTTATTAGGAAAGCTTCAAAAACCTCATTACCAATGACTTTCCC -TCGATTTGTAAGTGCAATCGCATCGTTCTTTTCTACAATTAATTTCTTCTCTTTTAAATTATTTATTGTT -TGACCAAAGACACTTTCAATTGATTGGTCAAACTTCTTTTTGAACCTTCTACTACTCACACCTTCATTTA -AACGCAACCCAAGAAACATTTCTTCTTCCATTCTCTCAGTCAAAGAAGGTTTATTTGATACTAAAATTGC -TTTACTTTCTTTATTTATAGCTTTGATATAATGATTCACTGGATTGATATTCGTATAACGAACACCATCT -ACATAACCACTTGCACCTGCTCCAAATCCATAATATTCCTCATTAAACCAGTAAACCTTATTATGTTCTG -ATTCATGGCCATCTAATGCAAAATTAGATATTTCGTATTGATGGAAAGGAGATTGTTCTATCTTAGACAT -CAGCAACTGATACATGTCAGCACCTAAATCCTCATTAGGAAGTTTGAGCAAACCTTTTCTATACATATTA -TAAAATTGGGTTTTAGGTTCAAGTATTAAGCCGTAACTCGAAATATGTTGAATATCCATATCTAAAGCTA -GATCTAAACTTTGTTCAAAATCTTCAATCGTCTGTTTCGGTAAATGATACATTAAATCTAAACTGATTGA -TTTAATACCGGCGTTTTTAGCATTTAACACCGACGTGTAAATATCTTCAGTATTGTGCGTTCTACCTAAA -ACAGACAATAACTCCGGCTTGAATGTTTGAACGCCCATTGAAATTCTGTTTACTCCATATTTCTCTAATA -GTTGGACTTTCTCTTTAGTTAACTCATCAGGATTTGCTTCAAATGTATACTCACCTGTGATTGTAAACGT -ATCACGTATTGCTTTAAGTAATCTTTCCAACTGATTAATAGAAAGGGCCGTTGGTGTGCCGCCACCTACA -TACATAGTCTTTAAGTTCCTATATTTTGCTGTAGACATTTCTGTTATTAGTGCATCTAAGTACTCATCTA -CAGGTTGGTTCTGTATAAAATATTTATTGAAATCACAATATGTACATATTCTTACACAAAATGGAATATG -TATATATGCACTTTGTACTGTCATTTTAATGCCCCGCTTCTCAGACTGTTTATCCAATCGGCTATATCCT -GTTGGACTATCTGCAATTATTCTTACTTTTAACTTTAACGTTTAATCAATAATTGTCTAATATATCGATT -CATTTTAATATTTATAAATGTTAAGAGGGAGTGAGATAGAAATAATAAAGAACCACTAATGATTTATTAT -GTAGTGGCTCTTACACATTAGCCAGAGGTAATATGTACTTAAAAATAGAATTACATGAGTTAAACTCATG -CATAAGGGAGTGGGACAGAAATGATATTTTCGCAAAATTTATTTCGTCGTCCCACCCCAACTTGCACATT -ATTGTAAGCTGACTTTTCGTCAGCTTCTATGTTGGGGCCCCATTGTTATAAGCTCATTTTAACTCTGTCG -ATGACTGCCAATATAACATTGTAAAGCCCAGGACGTTAATTTATCCTAGGCTCCCTCTTTTTAGTTATTA -AACTTTATTCATTGTAAATTGTTAATTGATTTTTAAAAAATTATTCGTCATCCATTTTCAATACAGCCAA -AAAAGCATCCTGTGGAATTTCAACATTACCAACTGCTTTCATCTTAGCTTTACCTGCTTTTTGTTTTTCA -AGTAATTTACGTTTACGGCTTATGTCACCGCCATAACATTTAGCTAAAACGTTTTTACCCATTGATTTAA -TATTTGTACGTGCTACAATTTTTTGTCCTATTGCAGCTTGTACAGGTACTTCAAATTGCTGTCTTGGAAT -TAACGTTTTAAGTTTTTCAACTAATGCTTTACCACGTTCATATGCAAAATCTCTATGGACTATGAAGCTT -AGAGCATCCACTTTATCACCGTTTAATAAAATATCCATCTTCACTAAATTACTTTCTTTATTTTCGATGA -ACTCATAATCAAATGATGCATATCCTTTAGTATTAGATTTAAGTTGATCGAAGAAATCAAATACAACTTC -AGCTAAAGGTAATTCATAAACAATATTTACACGAATATCATCTAAATAGTCCATATTTATAAATTGTCCA -CGTTTACGTTGACATAATTCCATTACTGCACCTACATAGTCATTTGGAACCATCATAGTTGCACGAACAT -ATGGCTCGAATATTTTATCAATTTTATCACGGTCTGGCATTTGTGCTGGATTATCAACCGTCACTTCTGA -ACCGTCCCTTAAAATACATTGATAAATTACAGATGGTGCGGTTGCAATTAATTCAATGCCAAATTCTCTT -TCAATTCTTTCTTGAATTATTTCCATGTGTAACATACCTAAGAAACCAGTTCTATAACCAAAACCTAATG -CTTGTGATGATTCAGGCTCAAATTCTAATGATGCATCATTCAATTGTAATTTTTCTAATGCTTCTCTTAA -ATCATTATAATTTTTGTTATCTATTGGGAACAGTCCGCAATATACCATTGGATTCATTTTCTTATAACCT -TGCAATGGTTCTGATGCAGGTCTACTAGCTAATGTGATTGTGTCACCAACCCTAGAATCATCAACATTTT -TAATACTTGCAATAATGTAACCAACATCACCAACTGTTAATTCATCAACTGGAAGTTGCTTAGGTGTATT -AATTCCAACTTCTGTTACTTCGAACTCTTTACCAGTGGCCATCATTCGAATTTTATCTCCGGCTTTAACA -ACACCGTCTACAATTCTTATCGATGAAATTACCCCTCTATATGGATCATACTCAGAATCAAATATTAACG -CTTTTAGTGGTGCTTCTGGGTCACCATCTGGAGCTGGCACAACTTCAACTATTTTCTCAAGTATCTCTTC -AATTCCAATGTTAGATTTAGCACTTGCTAAAACAACATCGTCTTGGTCTAAACCTATCATATCTTCAATT -TCTTGTTTCACGCGTTCAGGTTCTGCAGCAGGTAAATCAATTTTGTTAATAACAGGCAATAACTCTAACT -CATTATCTAATGCCAAATAAACATTTGCTAATGTTTGTGCTTCGATACCTTGAGCCGCATCTACTACTAA -AATCGCGCCCTCACAAGCTGCCAAAGAACGTGACACTTCATATGTAAAATCGACGTGTCCAGGCGTATCG -ATTAAATGGAATGTATAAGTATTTCCATCTTTAGCTTCGTACTTTAAACGTACTGCGTTTAATTTGATTG -TAATACCACGTTCTCTTTCTAAATCCATTGAATCTAGTAACTGATCTTGCATATCTCTTGTTTCAACTGA -TTTGGTATTTTCTAAAATTCTATCAGCCAATGTAGATTTTCCGTGGTCAATATGTGCTATAATCGAGAAA -TTCCTTATATTCTCTCTTCTTTTTAAGCGTTGCTCATTATCCATTTTATCCTTCTCACTTTCATAAAATA -AACCCGTATTATCTTTCGCATCTTTGATATAATAACGTTTTTAATAGGTAAATGCAAACGCCATAATCTT -GGATGAACTTTGAATTTATAACAATCTTTATTTAAATACATACTTGCGATATGTTAATATATTAATTACG -TACTTATAATTATAAAACGTATTGATTGTGTTTCCAACACAATTTATTAAATCTGCAAAATTTTAAGCTA -ACCCCATCAAATAAATGATTGCACAACGGTTAGACTTTTGTTAAAATATTTCTTGTTGTAATCAAATAAA -ATTTTGATAAGATGAACTCACTTTTAGGAGGTGACAGAAATGGCAAATATCAAATCTGCAATTAAACGTG -TAAAAACAACTGAAAAAGCTGAAGCACGCAACATTTCACAAAAGAGTGCAATGCGTACAGCAGTTAAAAA -CGCTAAAACAGCTGTTTCAAATAACGCTGATAATAAAAATGAATTAGTAAGCTTAGCAGTTAAGTTAGTA -GACAAAGCTGCTCAAAGTAATTTAATACATTCAAACAAAGCTGACCGTATTAAATCACAATTAATGACTG -CAAATAAATAATCTTTTTAAATAAAAGTTCAAGCGCATGCTTGAACTTTTATTTTTTATAAAGATAGAAT -GAATAATTCCAGTATTAACTGTTTATCCATATATGATGATTTAAGTTTATAATCAGTTTCCGCACAAGCA -TCTATAATATTCAATAATTCATCAAGTTGATAATGTCTTACTTGTCCTAACGCTAATTTTACTCTGTATG -GATGTACGCCTATTGTTTTAGCAATTTGCTGTCCACTATATCCTTTTTGACTCAGAATCTTACATTGATA -AAATAATCGGTAATTACTTGTAATTAGTGCAAGTAATTTAATAGGTTCTTCTTTCATTGTTATTAAATCT -TTTACTAAATGAATTGCTTGTTCTTTCTTTCTTTTCTGAATGTATTCAGTCAGTAAAAATACATTTTGTT -CTAAACTTCTATTAATAATTTGGTTAACATCCTGCTTATTAATTGTTGGTCTATCGCCTAAAAATAAAAT -CAACTTTTCTATCTCTTGTGAGACAATATTAAAGTTAATACCTGTCAACTCAATAAATAAATCTAATGCA -TCTCTTTTGATATCTTTGAAATTCTCATTTAATTTACTTTGAATCCATTTTTTTATTTCTTCTTCAGACA -TTTGCTCTATTTTTTTAAGCCTTGCATGCTTTTTTAGAGTTTTAGTTAACTTTTTTCTTTCATCAAGTTT -ATTTTGATATATCTCAAAGACAATCAAATTTTCGCCATCATATTTTTCAATAAATTCTATTAATTGATCT -ACATTATGAGCCATATCTTTTGGCGATTTTTCACCTGTAAATATATATGCATTTTTAACCAAAATTGCTT -TTTTATCTGAAAAGAAAGGCAATGTTAATGTTTCTTCAACAATTGGTGCAATCTCTGTTTCGTATAAATT -ATATTTCACAAAGTTAAAGTCATCTCTATCACTTTTCAAAAATTGTGATATGATTTCTGCACTTTGTTTT -TCAACCAATTCAGGCACATCTCCATAAATAGCTACAATATTGTCGCTCATTCAGTACACCCTTTCATTCG -TTTGACACATCAATAGATTATATCATGTTTCTGTATCTATAAACCACTTGCATTTCCATAAGAGTTTGAA -TCAACTTTTAAATTATCATCTAAGTCTATTGTAACTTGACCGTTTTGTTGGCTATTGTAAATGCGACTGC -GAATCCTTTGCAATCGTTTAACAACTTCTATGTTAGGAAGATGATACATATTGTTCTTTCCAGAAGAAAT -CAAACTTATTTTAGGCTTAATCATCTCTATAAATTCTTTAGAACTACTTGTCTTACTCCCATGATGTCCT -ACTTTTAAAATATCAATCTCCGGCAAATTATATTTTTTTAGAAGTAAAGATTCATTATTTTTACTAGCAT -CGCCCATTAATAAAACTTTTTTATTTTGATATGTAATCATAGTAATAATCGAGTATTCATTTTTATCTCG -GCTATTTGGAATAAAACTATCAAAAAATAGAAAACTACTATCTCCAAGTTTAAAACTACTAACTTGCCTT -ACATCCATAAGTTTAATGTTATACTTATGGCTTAATTTCGATAATAACATCAATGTATTACTACTATATC -CCTTATTGTATATCACTATATGTTTAATTTTAATATGACTAATAATATATTCCAATTCACCAATATGGTC -ATTGTGTGGATGTGTTAAAATTAGATACTCTAATTCATTTATCCCTCTCTCATTTAGCGTTGGTAAAATA -TGATATTTAGAAATTGAATAACTAGGTTGTTTAGTATCATCAATCACTTTCCCACCTGTATCAATCAAGA -CATTTTGGTTCTTACCACCTTCATATAAAATACTGTCTCCCTGCCCCACATTTAACATTGTAATTTTGTG -ATGTGAATTTGTTGGAAACGTTATTAATAATGTCAGAATAATTATAGTCCAAAACGTAACCAATATATAT -TTACGTTTAGCCAATAACCAAAATATGTAATAAACGGAAATTATAAATATTATAAATATCCAATCATTAA -ACTTGGGAACAGAAAAATGTGATTGCTTGATTCTTGTGAATAGGTCTAGTAACCAGTCATGAAAATTAAA -ACTTAGGTCAACCAAGTAATTTAGCGGCGTTAATCCCACAATAAAATGACTTGTAATAAAGAATAAAATA -GATAGAGGAAACAATATAATCGAATAGTATGGTACAAAAATCAAATTAGATAAAAATCCCACCCATTGAA -GTTGATGAAAGTTTGGAATGGCAACGATAAATGAAGCTAATTGTGCAATAAACGTAATTATGAATAATGA -TTGTAACTTCGACAATTGCTGTAAAAAAGGAAAAAGTAACATAATAAAAAATGAAATGATGAATGAAAAT -TGAAATCCAATATCATAAACAACTAGTGGATTTAAAATAAACATAATTATAAATGCAAATGCTAAAAGCT -GAATACCCTTTATTTTAATTTGATTAGTAATAAGCAGTACAAGCGTTGTCATTATTATAGCTCTTACAGC -ACTAGGTGCATAATTTGTGTATTGAGCAAATAAGGCTAATACAATGATTGTAATTCCTTTAATGACAAAT -AAAGGTAAATTTAATCGTTTTAAAGGTTGGTAAATTAAGAATACAATTGCAGCTATATGCGAGCCACTAA -CTGCCAGCAAATGATATATACCTATTTCTTTAACACGTTCCTTAAATTGCTCATTAATTTCTTTTACGTC -ACCAGTAATCAATGCCATAATACGATCCGGAAACTTAATACCCGAATCATAAATTCGATTCATTATAAAC -TGTTTATGTTTCTCAATTAAATTAGACCGGTTCGATTCTAGGCAGCTTTGTACAACTATACTTTGTAATT -TAAGAGTTACAAACTTATTGTCATTAACTTTGAATTGTCCTTTAACAATACAATTACGACTTTCAATTTT -CTTTAAATCAAAATTCTTTTTATTTGTTAAAAAGAAAGGATATATTTCATTTTTTAAACTCAACCTACCT -TTATATGTGTCACTACCTTGACGTTGAATTTGGATTACTTGAGCACGCTCATTAAACTGAGAATTACGTT -CAATATAATTGATATAATTAAATATTGCTTGTTGTGAATAATGTAAATACCATGAGGAGAAAATGATTAA -AAAGAGAGAAATAGGGGCATATACGATTTTATTTTTACGATAAGCAATATACAAAAGTAAAATAAAAAGA -AATGTAGAGAGCACTTTGCTAGAATTCCAAAGCACTCCTACAATCATTGATAACGCGACATACAGCAAAA -CATCAACCTTTAGTCAGATATTCAGCAACATATTCAGGTGAAAATGGAATTTTTTTAAATTCAATACCAG -ATTGTTTGAGTAATTTAGTTGCATATTCATGGTTATGATAATCTTCTGCATAGTAGATACGCTTTATACC -TGCTTGAATAATTGACTTTGTACAATTTAGGCATGGAAAATGAGTAACATAGATTGTTGCACCTTCAGTA -GATACACCTTGTTTTGCACATTGTAATAAAGCATTCATTTCTGCATGTATCGTTCTGATACAATGTCCAT -CTTCAATTAAACACCCTTCATCTATACAATGCACCTCGCCAGCTACAGAGCCATTATAACCACCAGCAAT -AATACGATTATCCTTAACAATCGTTGCACCTACAGATAATCTTTGACAAGTTGAACGTAATGCTAGCAAA -TGACTTTGTGCCATAAAATATTCTTCCCATTTGATTCTTTCCAAGATGTTCACCTTCCATACTTAAAATT -TAGTAACATTTTCTAATAATATAAGATTAATCACAAAAAATAAAATTTGCAATTAAAATAATCCATTATG -TCGTGAAATAAGAATTCAGTTTATCAAAAGTTTTACTTCCAAAACCTTTTACTTTTTTCAAATCGTCAAT -TTCTTGAAATGCACCTTGTTGGTTGCGATATTCAACAATTGCATTAGCTTTAGCTTGCCCTACTCCAGGA -ACAGACATCAATTCTGATACAGATGCCGTATTTAAATTTACTTTAGTATTATTTGTGTTCCCATTTTTTA -CGTGCACACTGTTTGCTCCAAATTGTGGTTCAACATTCTTTTGTCCTTTATGAGGAATGAAAATCATTTT -TTGATCTGTTAATTTTTCAGACAAATTAATTTGACTTACATCTGCATCATCTAATAATTGTGCTTTATCA -AGTAAATCAACTACTCTATCCTTAGATGTCATTTTATAAACATTAGGATGTTTAACAGCACCTTTTATAT -CGACATATACAGGACCTTTATTTTTGGAATTATCTCCATCTTTGACCTGGACATCTTCTAATTTGGACAA -ACTACTATTTTCACTAGTGCTTTGTTTCAGAACAGTATCTTTATTTTCAAAATCTCTTGAAGTATAATCA -TCTTGTCTCCAGAATATAAAACCAATTAATACCATAATTAAAACAACAGCACTTATAATATATAACTTCC -ATTGAGCTAAAAAATCTTTATAGCGTAATAAAAATTGATACAATAAAACCACTCCTCAACTTTATACACG -TCTGAGCGAGTGGTTTTACTTTTATTTTTTCGCAATGAAAAACAATCTTTCTGCATCTTCATTATGTTCA -TCTATATTAAAATCAGTAAATGTTTCAACATGTTTAAAACCAACTTGAGTTAACCAAGACAAATATGTCT -TTTCATCAAATGTTCTCTGAAAATGAGACTCGTCAAATCTTGAATATGTTTCATCTTCATGTCGAATGAA -AAATGTCATATCATGATAAACACTTAAAGGTAAATCTCCTTGCACAGCATCCCATGCTAAAAAAATGTCC -CCTTTATCATCAATATAACTTTGATTATTAAACAAAGTCATCATTTTATAAACAGTATGTACATCAAAAA -TAAATACACCTGAATCAGCCAGATGACGATAAACATTGATGAATGTTTCAATAACAGCAGTTTCATCTTG -CAAATAATTTAGAGAGTCACAAAAAATAGTGATGATATCAAATTGTTGTTGCAAATCAAACGATGTCATA -TCTCCTTCAAGCCAATTTACATTTGCTGATTTTTGAGCTGCAACAGTCAACATATCAACACTTAAATCCA -TACCAGTAACATTACCTAAAGCTTCTAATTGAACTGTTAAACTACCAGTACCGCATCCAATATCTAAAAT -ATTTGATTCATCTTTGCAGTGATTTTTTACAATTTCAAACCATTTTTCATATGGTTGATCTTGAGTCAAT -TGATCGTACACTAGGCTCATTTCTGCATATTGCGACATAATTAATACGCAACCTGACCATATGATTCTAA -TGGTGCATCTTGATATAACTTTTCAATATTATAATAATTTCGTTCGTCTTTATGGAAAACATGTACCACA -ACATCAGCTAAGTCAATTAATATCCAACGCGCTTCATTGTAACCTTCCATACGTTTTACTTCTATATTTT -GTTCATTGGCTACTTCTTTCACCGCTCTAGCAATCGCTTGAACTTGTCGTTCATTATTTCCGTGCGTTAC -AACAAAATAATCTGTCATATCGCTGATACCTTTCATTTCTAAAGAAATCGTATCTTCGCCTTTTTTATTG -TCAATTGCATCCACAGCAATTGCTAATAATTCTTGTGAATTCATTTAATCATCCTTTATTCTTTCGTCAC -TATAGTTATAATAATTTAAACAGTCAATTGTCTTATTATATACCGTAATATCTTTCTGTATTAAAAATAG -TACTGTGCGTTTAGAAATTTCATAAATTGTCTTATCTAAACTACCTTGATTGTATGCCATATCTCGAATA -TCATCAACTCCTGGGATTGTTCTACCAGGTTCGATGTAATCTGCAATAAAAATCAGTTTTTCAGTTTTTG -TCATTTGTTGACGTCCCGTAGTATGGTATTTGATAGCCATTAATACTTCCTCATCATTGATACCATATTC -ATGTTCCATGATTGCTGCACACACTGGGCCATGCAATATTTCACTACCATAACTCAGTAGATCATTACCT -AATTCGTATTGTCGAACAATTTGATACATTTTACCTAAATCATCATATTTACAGAAATCATGTAATACAC -CTGCTAATTCTACTTTACTAGTGTCTCCATCATAAATTTCTGCTAATTTAATCGCTGTTTCTGCAACTCT -TAAAGAATGATTATAACGTTTCTCTGGCAGTTTCTCTTTTGAAAGCCGTTTTGCTTTTTCAATGTTCATA -TAATCCTTCCCCCTTAATATAGTTTTCAACGGATTTAGGAACAAGAACTTGGATAGATTTACCTTTACTA -ACTCTTTGTCGAATCATTGTCGAACTTATATCTACCCTAGGTATCTGAATTGCAATCATACCATTTTCAA -CATTTTGACTATTTTTGTCTCGATTTACAACTACAAAAGTAACCATTTCTTTTAAGTATTCAATTTGATA -CCATTTCTCTAGTTGGTTATACTGATCCGTCCCAATAACAAAGTACAACTCACTGTCTTTGTGTTGCTCC -TTGAATGCCTTGATCGTGTCATAGGTATAACTTTGACCACCACGTTTAATTTCATCGTCGCAAATATCTC -CAAAACCAAGCTCGTCGATAACCATCTGTATCATTGTTAATCTGTGCTGAACGTCTATAAAATCATGGTG -CTTTTTCAATGGAGACATAAAACTAGGTAAAAAATAAAATTCATCTGGCTGTAATTCATGAAATACTTCG -CTAGCTACTATCATATGTGCAGTATGGATAGGGTTAAACTGACCGCCGTAAAGTACTATCCTTTTCATTA -TTATGGCAATTCAATTTCTTTATTTTCTTTAGATTCTCTATAAATCACGATCATAGATCCAATCACTTGC -ACTAATTCACTATGCGTAGCTTCGCTTAATGTTTCAGCTAATTCTTTTTTATCATCAAAGTTATTTTGTA -GTACATGTACTTTAATCAATTCTCTGTTTTCTAACGTATCATCTATTTGTTTAATCATGTTTTCGTTGAT -ACCGCCTTTTCCAATTTGAAAAATCGGATCAATATTGTGTGCTAAACTTCTTAAGTATCTTTTTTGTTTG -CCAGTAAGCATATGTTATTCTCCTTTTAATTGTTGTAAAACTGCTGTTTTCATAGAATTAATATCAGCAT -CTTTATTAGTCCAAATTTTAAAGCTTTCCGCACCTTGGTAAACAAACATATCTAAGCCATTATAAATATG -GTTTCCCTTGCGCTCTGCTTCCTCTAAAATAGGTGTTTTATATGGTATATAAACAATATCACTCATTAAA -GTATTGGGAGAAAGATGCTTTAAATTAATAATACTTTCGTTATTTCCAGCCATACCCGCTGGTGTTGTAT -TAATAACAATATCGAATTCAGCTAAATACTTTTCAGCATCTGCCAATGAAATTTGGTTTATATTTAAATT -CCAAGATTCAAAACGAGCCATCGTTCTATTCGCAACAGTTAATTTGGGCTTTACAAATTTTGCTAATTCA -TAAGCAATACCTTTACTTGCACCACCTGCTCCCAAAATTAAAATGTATGCATTTTCTAAATCTGGATAAA -CGCTGTGCAATCCTTTAACATAACCAATACCATCTGTATTATACCCTATCCACTTGCCATCTTTTATCAA -AACAGTGTTAACTGCACCTGCATTAATCGCTTGTTCATCAACATGATCTAAATACGGTATGATACGCTCT -TTATGAGGAATTGTGATATTAAAGCCATCTAATTCTTTTTTTGAAATAATTTCTTTAATTAAATGAAAAT -CTTCAATTGGAATATTTAAAGCTTCATAAGTATCATCTAATCCTAAAGAATTAAAATTTGCTCTATGCAT -AACGGGCGACAAGGAATGTGAAATAGGATTTCCGATAACTGCAAATTTCATTTTTTAAATCACCTTATAA -AATAGAATTTCTTAATACAACATCAACATTTTTAGGAACACGAACGATTACTTTAGCTCCTGGTCCTATA -GTTATAAAGCCTAGACCAGAGATCATAACATCGCGTTTCTCTTTGCCTGTTTCAAGTCTAACAGCCTTTA -CCTCATTAAGATCAAAATTTTGTAGATTTCCAGGTGGCGTTAATAAATCGCCAAGTTGATTACGCCATAA -ATCATTGGCCTTCTCCGTTTTAGTACGATGTATATTCAAGTCATTAGAAAAGAAACAAATTAACGGACGT -TTACCACCTGATACATAATCTATGCGCGCTAGACCGCCGAAGAATAATGTTTGCGCCTCGTTTAATTGAT -ATACGCGTTGTTTTATTTCTTTCTTAGGCATAATAATTTTCAATTCTTTTTCACTAACTAAATGCGTCAT -TTGATGATCTTGAATAATACCTGGTGTATCATACATAAATGATGTTTCATCTAATGGAATATCTATCATA -TCTAAAGTTGTTCCAGGGAATCTTGAAGTTGTTACTACATCTTTTTCACCAACACTAGCTTCAATCAGTT -TATTAATCAATGTAGATTTCCCAACATTCGTTGTCCCTACAATATACACATCTTCATTTTCTCGAATATT -CGCAATTGATGATAATAAGTCGTCTATGCCCCAGCCTTTTTCAGCTGAAATTAATACGACATCGTCAGCT -TCCAAACTATATTTTCTTGCTGTTCGTTTTAGCCATTCTTTAACTCGACGTTTATTAATTTGCTTCGGCA -ATAAATCCAATTTATTTGCTGCTAAAATGATTTTTTTGTTTCCGACAATACGTTTAACTGCATTAATAAA -TGATCCTTCAAAGTCAAATACATCCACAACATTGACGACAATACCCTTTTTATCCGCAAGTCCTGATAAT -AATTTTAAAAAGTCTTCACTTTCTAATCCTACATCTTGAACTTCGTTATAATTTTTCAAGCGGAAACAAC -GTCTGCAAATCACGTCATCACCAAACATATTATGCTCTGGTACAAACCCAGGTTTATTTTTATCTTCAGA -TTGAAGTGGCGCACCACAACCGATACATTTTAAAATGTCAGACAATCAATTTTCCTCCCATGTGATATAA -CCTTTTTTACTGAAATGACGTAATAATCGTCTTTCAATTAATCTATTAAACTTAGTAATAAAGCCATCCG -TTCGTTTAACTGGAACGACCATAATTGTATATAAACCTCGACGGTTACCACCAAATACATCAGTAAGCAT -TTGGTCACCTATAACAACAGTTTGATCAGGTCTTATATTCATCTTAGTTATTGCTTTATCAAACGCTTTT -CCCATTGGCTTTCTCGCTTTAAAAATAAAATCGATGTCTAAATGCTGACTAAAACTAGCAACACGAGACT -CATTATTATTAGACACAATTGTAATAGTGATTCCTTTTTCATTAGCTTCCTTAAACCATGCTTTAACACG -TTCTGTAGGTTCTTTAACATCCCAACCTACTAGCGTATTATCTAAATCTGTAATAATACCTTTAACGCCT -TTGTCCACTAACTTGTCTAAATCAATTTGAAATATTGATTGAACATATGAATTCGGCATAAAAAACTTGC -GAACTAAACCCATTTAACTCACCTTTACCTTTTTATAATTGAGACACTAATGCTTCAACAGTTTGACTTG -ATGATACCGCTGCTTTTTCTAAAAATGCTTCGAAACTCATTTCCGCTTCTCCATTTGCTAAGTCTGAAAC -TGCACGAACTACAACAAATGGTACATTAAATTGATAACATGTTTGTGCAATTGCAGTTGCTTCCATTTCA -ACCGCCATCGCATTTGGAAATGCTTTTTTAATTTTTTGGCGTTGTTCAACACTACCGATAAAGCTATCAC -CACTTACAATTAAGCCTACTTTAGCTGTTAATTGTTGTTGTTGTACAACTTGAGATACTTTTTCTATTAA -AGGTTTACTTGATTGAAATGCTACCGGCATCTGTGGTACTTGTCCATATTCATAACCAAATGCTGTTGCA -TCCGCATCATGATATTTTACATCATCACTTATAAGAACGTCACCTACATTTAAACTTTCATCTAAAGCTC -CAGCAGAACCTGTATTAATAATGATGTCCGGTTTAAACTTATTAATTAATAATGTCGTAGAAATTGCAGC -ATTAACTTTTCCAATGCCGCTTTGGGTAATCACTACTTCTCTATCTTTTAAAATGCCAGTATAAAATTTA -ACATGTGCAACTGAAATTTCGCTTAATTGTGTTAATTTATTTTTTAATATTGTTACTTCTTCTTCCATGG -CACCAATTATACCAATCATCCTTTGATTCACCTCTTTTAAAAAATCCTAGCATTTGTTATTTTATCACAT -TTTAATCACTACAACGACAAGTATCATGATTTTCATTACTGTATAAAACTTTTGCTTTATTTTTATAAAA -AGCTTTCACAATACCTTGGTATCATAAATAATTATTTATGAACTCATAACAGTGAAATAGATGCTTCTAA -TTTGTGTATTTTTCAAAAACTAATCATATCAATTACATCAACCAATAGTGTCAAGAAACTTTATTAAATA -ACAGGAAAATGATATGTTTAAAATAATAATGATGAAATAAGAGGATTTTACAATGGCTGAAAATAATCAA -AATAGTCTCGTAACAAAGATAGCTACATACGGCAGTTTTATTGCAATTGCGTCGTTTGTCATTTTATTTA -TAAGTATATTTTTAAAGTTTTCATTTAATATCGAGTTTACAGCAACAATTATGAACATATGTCGCTACAC -TCTAATTCTAGGATTTATACTTATGTCCTTACCTGATGTTGTTGATAAAAACATTAAGAAAATTATATTC -GATGCATTTATTATCATCGTCTTTATCTTCTTTTTACTATAGTAGTTTTATTTTGTAATTATACAGTTAA -TCATATTTGTTTCGTATCGAATTCCTGTGTGCATTAAAGATTATTCTAATAGAAAACAGCAGTAAGACTT -TTCTGAGTAATAGCCTCCTTACTGCTGTTTTTATTTGTAACAATATAATGACAGGTACTTTATATTTCAC -TGTCAAAGATCATTAATGATTAACTCACTTAAATTATGATTTGAATAAATAGATATCTAAATGCAATTTG -TCACTATTGATAGTTTTATTATCAGCATACATTTTTAATACCTCATGACCATACTCACCATTTAAATTAT -AAAAATCATATTCTACATTTTTTTCATCATCATTATGATATTTAACATACCCTTTAACAATGTCGCCACC -TTGTTCGTACAACTTATACTTCTCATTCAAATAATTTCTTAATTGAACATCTAATTCTTGAATGGTAACA -ATTTACTTTTTCGTTTTCACTGCAGTTAGTTCTATTTCTGTTTGATGTCCGTCAATCCATAAATTACAAG -GTATATTCTTATAATCATCGTATTTATTATTGTCACTTAAAGTAACACCACCATAACTACATTGCGTTTT -ATTGGTTTCTCCCCCATGACATTCATAGCTATAGCTTCCAGCATATACATCAATATTCTTATTTATAAAT -TTCTTTGAAAGTGCCTCATTTTCGAATTCAACTTTTAAATCTTTTTTCCAAGCATCATTTAAGAACATGT -CATGAAATAACAAATCATGCTTCAACAGTCTATCATTTGTTTTTTTATTTTCAAGATCAGTTGGATTAGC -AAATGACACCTTAGCATTATATAGACGCTTGGAATCAAGTTTACTTTTATGATGTAAGTCTGAATATTCG -ATTGCACTTGCTGAATTTGTAAAAATTCCTTCTAACAATAATATTAAAATAAATCCTGTTAAATATTTTA -CTTCAAACTCCCCCAAAACAATTATTAATTTACATTTGAGAGCGAGACATAAATGATAAACAGGCTAGGA -AAGAAATCAATGTTCTATGCTCTACGAAGTTATATTGGCAGTAGTTGACTGAACGAAAATGCACTTGTAA -CAAGCTTTTTTCAATTCTAGTCAACCTTGCCGGGGTGGGACGACGAAATAAATTTTGCGAAAATATCATT -TCTGTCCCACTCCCTTGAGCCTACAATTTTGATTTATGTATCACACTCATAATACTTTTCAATTTGAAAT -ACTCTGTTCGCAATTATTAGTTGAGTTATATCAACCAATACAGTGTAAACTTAAAAATTCCAAACCGTTT -AACAGTATATCAGAAAAAATGATAATTATTTCAATTATTTTTATTAAATTTCATAATGATTCATATAATA -TTCGAATTAAAACATCACAATACTGATACACAACAAAAAGAGCAGTACACTTGTCATGCACCACTCTCAA -CAAATATATTTTTTAATGAAGCAATTACGCAATCTTACAAATACAATAAGTATAGCTGAATCACATATTA -CATTTATTTTATAATCGAATTTAGAAATTCATCACTTATCTCATAAATTGTTGGTCTACTTTTAATTTTA -ACTAAGTAGTTACCAAATTTTTTAATTGTATTATTAATTTTTACTCTTCCTACTCCCAATATGTTTTCTA -AATCAATTAATGTTAATCTATTTCTTTTATTTCCAAACAATTTATCCATTGAAAGGAGATACAAAAATTC -ATAATCTATCTTTTTATAATGACTAGTTAAATAAAGCGTTAATTTTTCAGTCGCATCCATTTTTGGTATT -AACTCATCAAGTATTCTTTCTTGTCCTGCTATCAATAACTCAAGCATTGTGTCAATAAATTCCGTCAAAT -CACCACAATTCAAATGATTTGAAGCAGTCATAAACGCCTTGTAATATTTCGATTTATTCCTATTTATAAC -ATATGAAAATGTCAAAGCAGTATAATTATCATAATAATCACTCAAGAGCTTGGCAATTATAAATCTTCCA -ACTCTACCATTGCCATCATAAAAAGGATGTATATATTCAAACATATAATGACTAGCCATGATTTTGAACG -GCTGAGGCGCATCAAAATATTTTAAAAATGTTAGCATTTCACCTATATATTCAACAATTTTGGTTTCAGG -TTGTAACCCAACATGTATATATTTATTCGTTGACCCATCATGCACACCGACAAAATTTTTACGAAATAGC -TCTCCATCTAACTTATCTTGTTCGTTAATTTCATTTGAAACTAATTTATCATAAATCGCTCTAATGTCTC -TTACATTATCAACTTTAATTTTTTTATTAAGTTCTATCTCTTTATATTGATCCACGAGTCCCCTGAACTT -AAGAAAGTCTGATGCTTGGTTATTTAACGCATGTGCAATCTCTTGTTTAGTACTAAATACATTTTCAATT -TCATTAGTACTTTGTAATTCATCGATTAATAAATCATTAAAATATTGTTCTCTAGCTGCATATGGTAAAG -AATTAAGTGCTCTATCAATTTTTCTACTATTAATTGATATTAATTCTTGTTTTTTGATAGATTTTTAGTC -ACCATAAAGAATAGAGGATATTCCAAATCATTAACTTTTTTTCCATTTTCCATAGGTATGATATTAATAT -TAGTATTGAAAGATGCTAAAGAATTAAATCGCTTAATATACTCTTCCTTCATTTTACTTTCATTGTGTTC -ATGAAAAATACTTTTTAAAGTTCTGTAACCCATTTGCAGCCTCCTCTACTCATTTAAAATGTATTTTTAG -TCCAATAAATCCATTTTCATTAGATTAGCTAAATATTATCACTTTTTTTCTTTAAAAACTATATAAATAA -CTATTTTCTCAATCAATAGAAAAAGATTTTTCATCATAACAAAAAGAGCAGTACACTTGTCATGCACCAC -TCTCTCTTAAAATATATCTAATTATGCTGTATAAATGAATCACCGATAATCAAAACACATTTCGGCCTAA -TACTAACAACATTTACAGTGATGCTATTAGTCGAAATGTCTTTTAAAATAACTGAAGCACTTCTTTGAAT -GAGAATATACCTGTCAATATTGTAACAAGTACTGCAACGATACCAAAGATGAACATCCAATTTGGGTGTT -TATAATCACCTACAATTGATTTCTTTTTACTTGCAATCAAAATTGCACCTAACGTAATAGGTAAAATCCA -TCCATTTATCGCGCCTGCTATAATTAAAAGGCTGATTGGTTTTCCAATAAATAAGAAAATCATTGTTGAA -ATAACGATAAACACAATCACAATTAAATTACTTCTTTCTTTAAGTGATTTATGAAGTGTTTTTAAAAATG -TTGCGCTTGTGTATGCTGAGCCAATTACTGATGACATAGCTGCACCAAATAACACAATACCAAAAATATT -CTTTCCAATTGGTCCAATTGCGTGTTCAAAAACTGACGCTGGTGGATTTTCAGAACTTAGTGTCACACCT -GTTACAACAACTCCTAATACCGCTAGGAAAAGTAACGTTCTCATAATACCTGTAGTTAAAATACCTGCAA -TTGCTGATTGATTTACAAATGGTAAATATTGCTTACCTTTAATGCCAGAGTCTAATATACGATGTGCACC -TGCAAAGGTAATATAACCACCTACAGTTCCACCAACTAACGTAATGATTGGCAAGACTAATTTCATTGGA -TGTTCTGGCGCAAATGTATGCACAAAAGCATCACCATAAGGTGGATTAGAAACAAACATCACATATGCCA -CAACTAAAATCATCACAATACCAAGAATCATTGAAACAACGTCCATAATTTTTTGTCCACTTTTACTTAC -AAAGATTAATATTGCAAAGATTGCAGTAATAGCTGCGCCCCATTTTACATCTAATCCAAAAATTGCATTT -AAACCTAAACCGGCACCAGCAATATTACCAATATTAAAAGCTAGACCACCAAATGCAATCAATATTGAGA -TAACAGTACCAAGCCCAGGAACAACTTTATTTGATATTTCTTGACCTCTTAAACCAGTTACAACTAATAT -GCGCCATATATTAATTTGTGCACCAATGTCAATGATAATAGACAGTAATATGGCAAATGCGAAACTCGCC -AAAAATTGCGATGTAAATACTGCCGTTTGTGTTAAAAATGCTGGTCCTATTGCAGAGGTTGCCATTAGAA -ATACAGAACCTAACAATAATCTCTTATGGTTTTTAGTAAATTCAAAATCACTTTCGCGATGTTTAAGCTT -TAAATTTCTCCCCATTTTTTAGCCCCCTATAAGGATTGAATATCAATGCCTTCTTTCATTAAAATTTCTC -TAATTTTCGAAACAAATAATAATGCATGTTCTCCATCACCATGCACACAAATTGTATCTGCTTGTAACGT -TACTTCCTTATTGTTTTTTGAAATAACTTTATTTTCCTTCACCATCTTCAAAACCTGCTTAAGTGCTTCG -TCAGTATCAGTAATCACAGCATCACTTTCTTTTCTACTAACGAGCTGCCCATCATCTTCGTATCGTCTAT -CAGCAAACACTTCAGAAGCTGTAATTAATCCGACATTCTTTGCTTCTGAAATTAGATATGAATTTGCTAA -TCCTACTAACACTAGTGATGGATCAAAGTCATAAACAGCTTGTGCTATAACGCTTGCTATTTCTCTGTCT -TTTGCACCCATCTGATACAATGCACCATGTGGTTTAACATGATTAATTTTAACTTGATGAATGCGACAAA -ACCCTTGTAATGCACCTAATTGATAAATCATCAAATTATAAATCTCCTCGTTAGAGATATCTATATTTCG -TCTGCCAAAGCCTTTCAAATCAGGTAAACCAGGATGTGCACCTACTGCAACATTATGTGCTTTGGCAAGT -TTTACCGTTTCATTCATTACATTTTCATCACCAGCGTGAAAACCACAAGCAACATTCGCACTTGTAATTA -ACGGAATAATTTGATGATCACCACCAAAGAAATAATTTCCAAATGCTTCGCCTAAATCACAATTCAAATC -AACTCGCATTATAATTCCACCCCTTTAACAATTTGATGTTTTTCTAAAAATTTAATATCAACATCTTTTG -CATCTCCATCACGATATAGTGGATAATTTAAAACTGCATATAAAAAATCGGCAGTTGTAGAAAATCCATC -TATCACCATTTCATCTAAGGTAGCTCTCAATTTATCAATTGCTGAAGCTCTATCATGAGATTTTACAATT -ACTTTAGCTACTAAAGAATCATAATATGGTGAAACTTGATAACCGTGATATAGTAAAGAATCGACTCGCA -CATTAAAGCCTTGAGGTAAATGTAACGCTGTCACTTTACCTGGTGTTGGTTGAAATTTCTTTTCAGGATT -TTCGGCATTTATTCTCGCTTCTATCACATGACCATTAAATTGAATATCGTTTTGTGAAAAAGGTAAATGA -TTATGTTCCAATAAATACAATTGTGCTGCAACCAAATCACGTTCTGCTCGCATCTCTGTAACAGTATGTT -CAACTTGTATTCGAGCATTCATTTCAATAAAGTAATGTGCGTTATCAGTTACTAAAAATTCAATCGTACC -TGCACTTCTATAATTTGCTGCACGTGCAACTTTAACAGCATCGTTACATATTTGTTGTCGTCTTTCTTCA -GTTAATGCTGCACAAGGAGATTCTTCGATTAATTTTTGATTTTTACGTTGTACAGAACAATCACGTTCCC -CTAAATGTACATAATTATCCTGCCCATCCCCCATAACTTGAACTTCAACATGTTTTGCAACAGGTATAAA -AGCCTCAACATAAACACGATCATCATCAAAGTATTTTTTTCCTTCACTTTTAGCTTCTTTAAATGCCTTT -TCTAAATCTTCAGCTTTCTTTACAATACGTATACCTTTACCACCACCGCCACTGGCAGCTTTGATAACAA -CTGGATAACCGATGTCTTTGGCAAGCTTCTCAATTTCAGACACATGATTCACAGCATCATTTGATCCTGG -AATCACAGGAACACCTGCATGATGAACTGTTTGTCTTGCTGTTATTTTATCCCCCATCATTTCCATCGTT -TTTTTAGTAGGCCCTATAAACGCTATGCCTTGTTCCTCAACGGTTTGAGCAAATTTTGTTGATTCTGATA -AAAAGCCATATCCTGGGTGAATTGCATTAGCACCAGTGATTTGTGCAGCAGATATGATGCGGTCAATATT -TAAATAACTATCTAAAGTATTAGCTTCTCCAATACATATAGCTTGATCCGCTAAATGTACATGCAAGCTT -TGCTCGTCCCCTTTTGCATAAACTGCTACAGTTTCAATCCCATATTCTCTGCAAGCTCTTATAATCCTTA -CAGCAATTTCACCTCTGTTCGCAATTAAACAACGAAGCATTTACTTACCCCCTTTACTTAATACGTACCA -AAACTTGGTCGTATTCAACATTTGTGCCATGATCAGCTACTATTTCAGTGATTTCTCCAGCAACATCTGT -TGTTACCTCGTTTAATACTTTCATCGCTTCAACATATCCTATAATATCTCCCTTGTTAACTTTGTCACCG -ACTTTCACAATTGGTTCAGTTAATTCTTTACTGTCTTGTAAAAAGAATGTACCTACCATTGGTGATTTAA -TGTCATGATAATCATTTGTCGAAACATCGGAGTTATCATTCACTTTTGAAGCTGTCAAATCATTATTGTT -CATACTTTGATTTGATTGATTACTGTGTGCAGCCAAATGATTCGAATCAGTGAAGTCAATTTCTATTTCA -TCTTCAAAATTTTTATATTTAAATTTCTTAACATCATTTTCCTTCACTAATTTGATTATTTGTTCGATTT -TTTCAATATTCATTTTACAAATCCCCTTTTAAAATTGTTGCTAATTTTTTCGAAGTATGTCGCAAGCTAG -ATGTATCAAAAATTGGAGTCTTTTGATGACTCTTAAGAATTTCATTAAACAGAGACATTTGTTCCCGATT -CTTATCTACAGCTTCTTGGAATGATATCCATTTAAATTGAATTGTATCTTGTGGTTTCATCTGTGCTAAC -TTTGGCAGATCAAATTTGCATACAGTTGCAATTTTGGTATAACCACCTATCGTTTGTTTATCATTAAGAA -GAATAATAGGTTGACCATCATTTGGTACTTGAACACTGCCAAGAGCAACCGGTTCAGAAATGATATCTGC -TTGATTAATAGGTGCAACGCTGTCACCTTCCAAACGATACCCCATACGGTCTGATTGTTCGGTAATTAAA -TATGGATGATTTACAATTTTCGCTCTAGCCTCTTCAGAAAATGCCTCGAATTGAGGTCCTTGAAGAATGT -GTATAATATTATTTTCTGGCAATAAATCGTCCTGTAAATGAATAGTCTTTCCAATGTTTTCTTTAAAGTC -ATTATTTATTTTCACTGTTATTACATCATTAGCTAATAACTTTCTACCTTTGAATCCTCCTATACTACTT -CGGGTATGTGTTGCATAACTTTCAGCAATTGGAGGTACGTTGATAGTATGACCAAAAGTAAGATAACCGC -GTGCACCTTTGGTTATAGCACCTATTTTTAAAATGTCACCTTTCTCAGCTAATATGACAGAATTCATTGA -TATAGTTTTATTATTTAGCGAGGCATTAACACTACCACCGGTTATAACAAATGTATTTTGCGTATTAAAT -TGAATGGTAGGACCAATCAAAGTATATTCAATCGCTGGACCATCATTGTTAATTAATGACTGCGCAACCT -TAAAACTAAATTGATCCATGGCACCTGCGCCTGAAAACCCAATATGTTCATAACCTTTTCTTCCTAGATC -TTGTACCGTTGAAAAGAGACCTGGTTGTAAAATCTTAATTGACATTTTCGATCACCACCCAGTCATCAAC -ATTAAAGTTGCCATCTGATATATCTCTTTCGATTTGTATAAATTCCTGTTCATCTATTGCATAAAATTGT -ATCCATTCTCCTGCTTCATACATTGACATTGGTTCACGCTCGCTGCTAAATACTTTTAACGGTGTGCGTC -CAATAATTTGCCATCCGCCAGGAGAATCTGATGGATATAGTCCTGTTTGATTATTCGCAATACCTACAGA -ACCTGCATGAATTTTTAACCTTGGCTGATTACGTCTAGGTGTATGTAGTTGTTCATCAAGTCCGCCTAAG -TATGGAAATCCAGGCATAAATCCTAGCATATATATTAAATAAGGTTTACTTGTATGTTTTTCAATAACTT -GCTCAACAGTTATTCGATTATGCTTTGCTACTTCTTCAATATCAGGTCCATATGTACCACCATATTGAAC -AGGTATTTTAATAATACTATTGGTTTGATTCACAGCATGAACATTTTTTTCATTAAATTTGTTAAGTTCT -AAATTTTCAATTAATTTAGAAGGTGTTATAGCTTGTTCATCAAAATATATTAGAACTGCTCGATACGAAG -GGACAATATCTTGAATTTCTAATATTTCTTTTTCTCGTATCCACCGTACCATTGCTGTGACATTTCGATA -TGTCTCTTCGGATATTTTATTTTCAAAATAAATCATAATCGTCTGCTCGTTAATAAATCTTACATCCACT -CTAAATCCCCCTTTGTATTGCAATAAACCAGTATTGAATACCTTTTCATTGTATCATTGAGAAGCACAAG -TTGTTTAATAAGTAATTCAAATCGCATACAATAACAAATTATAATCAATTTGTTTCTTCGGAAATATTTT -GCTTTTTTAAAATGGAGTAGTTAATATTGAAACTCTTACACTAATTTAGATTCTGCTATCAATCGGTCTG -ATGGAAAATTTTCACTTTTCATCTGTCCGATTTTTTTATTTTGAATATAAAAAAGCACGACCGAAGTATC -ATTAACACACTTCAATCGCGCAATTAAACAATCTATTTGATCATTTATTGGATATTAACAATTTTTACGT -TCATTTCGCCACCATTAGGTAGTGGAACACGCACTTCATCATCTAAACCTTTACCAATTAACGCTTTAGC -CATTGGTGATTCATTTGAAATCTTACCATTAAATGCATCTGATTCAGCTGAACCAACGATTTGATAACTT -TCCTCTTCATCACCTGGTAATTCTACAAACGTTACTGTTTTACCAATTTTAACAACGTTGTTATCTCCAG -TATCTTCAATGATTAATGCATTTCTTAACATATGCTCAATTCTTTGAATATCTTGTTCGATGAATCCTTG -TTCATCTTTTGCTGCATCATACTCAGAGTTCTCTGATAAGTCACCAAATGAACGTGCAACTTTAATTTTC -TCTACAACTTCAGGACGCTTAACTGTTTTTAATTCTTCAAGTTCACGCTCTAATTTTTCAAAACCTTCTT -GAGTCATTGGATATTGCTTTTGATTTTCCATATTGTCATCTTCCTTTACTGAATTATACTATTGCTTGCT -AACTAAAGACTGAATTTTTGTTGTCATAATATCTATTGCAACTTTATTGCTCCCACCTTCAGGAATAATT -ATATCAGCATATTTCTTAGTCGGTTCAATAAATTGGTCATGCATAGGTCTAACAACACTTAAATATTGAT -TGATAACAGAGTCCATTGAACGCCCACGCTCTTTAGTATCTCGTGTTAAACGGCGTAATATTCTCAAGTC -TGCATCTGTATCAACATATATTTTAACATCCATCATATCACGTAATACCTTATTTTCTAAAGCGAAAATA -CCTTCTACGATAATAACATCTTTAGGTTTAAAATCAATGGTAATGTCACTTCTTGTATGACTAGCATAAT -CATATGTCGGTACTTCTACTGCTTTACCATTTTTCAAGTCTTTAAGATTTTCAATTAATAAATCATTATC -GAATGCAAATGGATGGTCATAATTGGTTTCTAGGCGCTCGTCGAAAGTCAAGTGCTTTTGATCTTTATAA -TAGTAATCTTGAGCAAGTAAAGCGACACTATGACCTTCTAAGTTTTTCATAATTTCGTTAGTTACAGTTG -TTTTTCCTGAGCCAGATCCACCAGCTATGCCAATGATTGTAGTAGCTTTCATTAGCCAATTTCCTTTCTC -ATCATGTTGTTTGGATATATCGGGCGATCCACTTTAATTTGAACGATTTGTAATGGATGGCGCGCCGCGT -CTAAGCTGTTACCTTCTTCATCATAAATTGCTTCTACTACTTGTGTAAATGTTTCAATTTCTGGACCAAA -GAATTCTATTTCTTGACCTGGTTTAAAGTTATTTCGTTGTTGAATAGTCGCAATTTTTGTATCTTCATTA -TAATCTAATACCAAACCACAAAAATCAAATGGTGATTTTTTAGATTGTTGTTGACCAAACATCTGTTCTT -CATAACCAGGTGTTCCCTCAAAGAATGCAGGTGCAGTGTCTCTATTTGCACATTTATCTAACTCAATTAA -CCATTCCGGATTAATCTTAAAGTTGTCAGGATCTGCCGCATACGCATCAATGACTTTACGATATACTGAG -ACAACTGTTGCAATATAGTGAATTGACTTCATACGTCCTTCAATTTTTAATGAGTCCACACCAATATCCA -TCATTTGAGGAATAGATTCGATTAATTTTAAATCTTTAGGACTCATCGCAAATGGTGTAACTTCACCTTG -ATTATAAAATACATCAAGTTCACCATTATCATCAACTTCTAATAATTCATAATCCCAACGACAACTTTGA -CAGCAACCGCCTCTGTTGGAATCCCTTGCAGTCATATGATTACTTAATGTACATCTACCTGAATAGGCGA -TACACATAGCACCATGAATAAATGCTTCGATTTCAATATCTACTTTTTCCTTCATTTCACGCATTTCCAT -CGCGCCGGTCTCACGTGCTAATACAACACGATCCAATCCTTCTTCTTTCCAATATTCTACAGCTTTGTAA -TTAGAAAGTGATTGTTGAGTAGATAAATGAATTTCAAGTTTTGGCGCAACTTCTTTACATGTTTCGATAA -TTAAAGGATCTGCAACAATGATACCTGTCGCACCAGTCTTTTCCAAATTACGCAAATATGATTCTAGACC -TTCAATATTCTCATCATGTGCAATAATATTTGTCGTAACATAAATTTTGGCACCGTAACGGTTCGCAAAT -TCAACACCTTCAGCTATTTCTTCCATCGTGAAATTATCAGCATTTGAACGTAATCCATATTCTTGACCAC -CTAAAAATACGGCATCAGCGCCATAATGTACTGCTATTTTTAACTTTTCTAAGTTTCCAGCAGGTGCTAA -TAATTCTGGTTTCTTCATAACTGTTTTAGGAGTTGATTTAATCTCTTCTATTGTCTTCATGATTAACCTC -CTTAATATACTGTTTGTTTATATAAGAAACCTTCGTCAAATGGTCGATGATCAGGTTGAATTTCTTCAAT -TGGGTCCATCAACATAAATTTCTCATCTTCATAGATTTCAGGATCTTCATTGTACAAATCTATCGCTTGA -CGATACTGTTCCGTTACCACATTAATATATTCTTCCGTTTGTAGAATACCATCGATTTTAAATGAATCTA -TACCCGCCTCAAAAAATGGTGCTAATTCTTCAATTAAACAAATGTCGTTTGGTGACATAATGTGCGTACC -ATTGTAATCTTCGTAAACTGGGTAATTATTTTGTCTTTCTTCATCATAAAGCAATAAAGATTGTTCATCA -TTGCGACGTTCAATTTTCATTTGACGATCTTGGAACGTATAATAATTGCCTAGTAGCATACGCTTTGATT -GGAACATACAAGTCATTCCTTGAACTTGCACCTCAATTTCCACATTTGAATTTTCTTTTATATTAATAAT -TTCATCCAAATTCAGCTCACGTGCTAAGACAGCTCTTGATGCGCCTCTTTTACCCCAGTAATTACATTGA -AAATGATTAGTTACTAACGTCTCTGCATTCCAATGAAGTGGTATTGGATTTTCTTGCGCCTTCACATACA -TTACTACTGCTGGATCCCCGAAAATAATTCTGTCAACTCGTATTTCATGTAAAAAATTAATATAATCTTC -TACAGCATCTAAATGATAATTATGAAATAATCCATTCACCGCCGCATATACTTTTTTATCGTTTTTGTGA -GCTAATGCGACAGCCTCTGTCATTTGTTGTCTATTGAATTCCCCTGGAAGTCTTAAACCAAACTTTTGCT -CGCCAATTACAAAAGCATCTGCACCTAAATCAATAAGTGTTTCCATATGGCTTAATGACTTGGGTGTGAC -AAGTAATTCTGTCATAGTCATTCTCCTTTAATTGAAATCGCTAATCCATCGTCTATATTTAAAAAATTCG -TTGTATATCCTGGTTGCTTTATTAACCACTCATTATAATCTTGAACCTTTTTAACCATTTGTCTTACATT -TCTCGATCTAACAATCCCAATATCCGATACAAAACCGTGATATAAAACATTATCTGTAATTACGAGACCT -TGGTGCTTTAAAAGTGGTGTATATATTTCAAAAAATTTCTTTGATTGCGCTTTTGCTGCATCAATAAATA -TCATATCATAAACTTTGTCATTTACATTTTCAAATTGCTCTAAAGCATTACCTTCAATAATTCGAACCTG -GTTTTCAAAATGATGAGTAACTAAATTTTGTTTAGCATATTGAATCATCGTTTCATTACGCTCTATCGTT -GTGACATGAATGTCATCAGATATAGAAGCGAATTGCATAGAACTATAGCCGATTGCTGTACCAATTTCTA -AAATATTTTTAACATTATTCATACGAATTAATTGCTTAATTAAATCTAATGTTAAACGATCCACGATTGG -CACTTCATTTACTTCGGCAAATTCACGCAAAACTTCGATTGAACTATTTTGATGTTGATGTAAATCTATT -AAATATTTTTTATTTAGGTCATCCATGTTTTAAACTTCCTTTATGTAAAATAAGTCAATATGATTATGAC -AATAAAATAAATCAGCCTTCACAATTGATTATAATTTTGCCAACCAATTAAATGACTGATTTCGTGTTAG -ACGCAAAGCTATTTTATTTATAGAAGCGAATCATTCATATAAAATTTAACTTTAGATATTTTACCATATT -TTCAATAAAATTATAAGCGTTAATTATTTATACATTGTTTGACTTAAAAAAATACTCTTGCCTCCCCATC -TTAAGGTTAGCAAGAGTAAAATCTTTTTAATTATTCTTCCATTTCAGTATTTACAACTTCTTCAATCATG -TCCCATTCTTCATCAGTTTCGATTGGTACTAACTTACCACCGTCACCTGACTCATCTGGTTCATTGATCA -TTGGTACAAGCTCAATCATATCGTCTTCATCTGATTGAGCACCTTCTTCAGCTAAGATAACATACTCTTT -TTTGAATTCAGGATGATAAAATTCTAAAACTTTTCGGTATAAAACTTCATTTCCCTCTTCATCGAATAAA -GTTAATAATTCTTCTTCGTTATTAATTTCTAGTTGTGAATCATGATTATGTTCAGTCATAGTAAAATCTC -CTTTTAATGTAGTGAATCTAAATAGCCTTGTAAAATAAATACCGCTGCCATTTTATCAATCACTTGTTTT -CTTTTTTGTCTTGAAACATCTGCTTCTAATAATGATCGTTCAGCAGCCATTGTGCTTAATCTTTCATCCC -ACATCACAATCTCAATAGAAGGATAAGCTTCTAATAATTTTTCTTTATATGTTAACGAAGCTTCGCCTCG -AAATCCTATTGAATTATTCATGTTTTTAGGTAGTCCTATTACGACTGTACCCACATTATGTTTTTTAATA -ATGTCTACTAATTGGTCAATACCTAATTCATTATTTTCTTCATTGATTCGGAGTGTGTCTAATCCTTGTG -CCGTCCAACCCATTATATCACTAATTGCAATTCCTACCGTTCTACTACCGACATCGAGTCCTAAAATTTT -ATGTTGTAACATAAATTATTTATTTTGCTCTTTTAAATAGTAAGAAACAAGCTCTTCCATAATAACATCT -CTATCAATATGACGAATTTGATTTCTTGCTTCATTTTGGCGTGGAATATACGCAGGGTCACCTGATAATA -AATAACCTACAATTTGGTTTACGGCATTATATCCTCGTTCATCTAATGTTCGATAAACATTATTTAAAAC -ATCTCTTACATCTTGTGTTGGAAGTTCTTCATAGTCGAATTTCATTGTTTTATCAAAGTTTTCCATTTGC -GACACTCCTTTAATTACAAATATAACTCACTATCATCATACAATATTATGGCTTTAAATTATAGATTTTT -AATGTAATCTTTAATAAAGCTTAATGATTTTGAGATATTTTCAGGTTGTGTACCGCCACCTTGAGCCATA -TCTGGACGACCGCCACCTTTACCACCAACGATTGGTGCCATTTGTTTGATAAGATCACCGGCTTTAACAT -TATTTGTTAAAGATTTAGGGACAGTTGCAACCATCGATACTTTATCATCAACATTACTTGCAAGAATGAT -AATTGTATCTTGTAGTTTAGATTTAAAATCGTCCATTGTCGAGCGAATTGCTTTCGCATTTGGTACATCC -ACTTCAGTAACCAATACTTTATAGCCATTGATTTCTTCAACTTGATCTTCAATATTACCCATTTTAAGTG -ATGTGATTTCTTTGTCACGTTGCTCTAATTGTTTTAATAATGCTTTTTCTTCATCTTGCAATTGTGTTAA -CTTATCGACTACTTGATTATCAGATTTCACTTTCAGCTGTGATTTCATCGTATTAAATTTCTCTTGAATA -TCTTCTAAATATAAGAAAGCTGCTTTACCTGTTAATGCTTCAATACGACGCACACCAGCTCCTGTACCTG -ACTCACTTACTATTTTGAATAAGCCAATTTCAGAAGTATTGCGGACATGAATACCACCACATAATTCAAT -TGAAAATGGTGCCATATTTACTACACGCACAACATCACCATATTTTTCACCGAATAATGCCATTGCGCCC -ATTTCTTTAGCTGAAACAATATCCATTTCTTGAATGTTAACGTCAATACCTTTCCAAATTTCTTCATTTA -CTAAGCGTTCAACTTGATCAATTTCATCATTAGTCATTGGACCAAAATGAGAGAAATCAAAACGTAAACG -ATCTGCTTCTACTAATGAACCAGCTTGGTTAACATGATCACCCAGTACTGATTTCAACGCTGCATGTAAT -AAATGTGTTGCACTATGGTTCTTTTGAATGTCACGTCGATCATTTTGGTTCACTTCAGCAGACACTGTAG -CGCCAACATTTACTTGGCCAAATTGTACTACTCCTTTATGCAAGTTTTGACCATTTGGCGCTTTGGTTAC -TTCACTAACAGCAATTTCAAAATTGTCATTATATACAATACCTGTATCCGCAACTTGTCCACCACTGACT -GCATAAAATGGTGTTTCCGTTAACATGAAGTATACTGTTTCACCCGCTTCAACTTGTGAAACTTCTTCAC -CATTATATATCAAGTGTGTTAGTGTCGTTTGAGCTGTCGCAGTATCATAACCAACAAAAGTACTTGCAGA -TGTAATATTTTTCAATACTTCACTTTGAACTTGCATTGATTGAGAATTTTGACGTGCTTGACGTGCACGA -TCACGTTGTTGTTGCATTTCTGACTCGAATGTTGTCATATCAACTTTCAATCCTGCTTGCACTGCTATTT -CTTCAGTTAATTCAATTGGGAACCCGTACGTATCATACAATTTAAATGCATCTTTCCCATTAATTTCATT -TGTTGTCGCTTTAGCTTTTTTAATTAATTCATTTAAAATCGCTAAACCATCTTCTAATGTTTCATGGAAT -CGTTCTTCTTCAGACTTTATAACACGCTTAATGAAATCTGCTTTTTCCTTAACATTTGGATAATATGGTT -CCATAATGTCTGCAACAATATCAACAAGTTTGTACATAAATGGCTCATTGATTCCTAACGTTTGACTAAA -ACGAACGGCACGACGTAACAATCGACGTAATACATATCCTCTACCTTCATTGGCAGGTAATGCACCATCA -GAAATTGCAAATGCAATCGTACGAATGTGGTCAGCAATTACTTTAAATGCCACATCTTGTTCGTTGTTTA -CTAAATATTGTTTACCTGATACTTTTTCGATTTCATTCATTATAGGCATAAATAAATCTGTTTCATAGTT -AGTACGTACATTTTGAGAAACTGAGGCCATACGCTCAAGCCCCATGCCGGTATCAATGTTTTTATTAGGT -AATGGTGTGTAACTATGATCTTTATTATGATTGAATTCACTAAATACTAAGTTCCATACTTCAAGATAGC -GTTCATTTTCTCCACCTGGATACATTTCTTCTGCCGGATCGTCTTGTCCATATGCTTCTCCGCGATCATA -GAAAATCTCAGTGTTCGGTCCTGAAGGTCCTTCACCAATATCCCAGAAGTTACCTTCAATGCGAATAATA -CGACTTTCTTCAAGCCCAATATCTTTATGCCAAATGTTGTATGCTTCCATATCTTCCGGATGAATCGTAA -CGTACAATTTATCTGGCTCCATACCCATCCATTTATCACTCGTTAAAAATTCCCAAGCAAATTCAATCGC -TTCTTGTTTAAAGTAATCACCAATTGAGAAGTTACCTAACATTTCAAAGAATGTATGGTGACGCGCTGTG -AAACCAACATTTTCAATATCATTTGTACGAATAGCTTTTTGAGAGTTTACAATTCTTGGCTTTTTAGGTG -TTTCACGTCCATCAAAATATTTCTTTAATGTTGCTACACCTGAATTAATCCATAATAATGTATCATCATC -AATTGGCACTAATGGTGCAGAAGGTTCAACCATATGTCCTTTTTCAACAAAGAAATCTAGATATTTTTGT -CTAATTTCACTCGCTTTTAACTTTTTCATCATTTACACATCCTATTTACTGTTTTTAAATTACCATTCCA -TAAAAATTGATGACACAGATAGTCGATTTGAAAAACTAGTATAAATCAATATCACTTTTTATTATTAAAA -AATAAAAAACGCCCATCCTCAAAAGGGACGAACGTTATCGCGGTACCACCCTAGTTATAAATGCAATTCA -ATACATTTATCACTTTAAATCGACTATACAGTTGTGCATAAAGTAGCGTTCACTAATGTTTGTTGTACTT -TTCACCAACCAGTACATCTCTGATAAACAAATCATTAACTACTCATCTTTATACGAATTTAATTCTATTT -TAGTTACATTTACGCTTGTTGTCAACGTTCTATAAAGTCATACGGCGTGATTTCTCCCATATTAATCATT -GGGTCAATTTTAAACATTGTAGCTTCCGTTAATACATTTGTATCTGTTTTTGTTGAATCAGACGTAACTT -CTTCACTAGCATTCGATGACATTGGCGCTTCTACTTGATCATCTATTGTCGTTTGCGAAGCTCCTGTATC -ATTAGTTGCTGTATTTTCCAGCATGTCTTCATCTTCTGAATTAAAATAATTTTTCAACAATGTACATAAT -TGTGTTAAACGCGCTTGACCATTTGTTTTCAATCCAATATCAAATGCTTCTGAATCACCAAGTAAAACTA -AACTGGTTTTCGCTCTAGTTAAACCAGTATATAATATCGGTCTTTGTAACATTCTAAAATACTGTTTAAC -AATAGGCATGATAACAATAGGAAATTCTGAACCTTGTGATTTATGGATTGATGTACAATATGCATGTGTT -AATTCCATCATATCTTGTTTCGTAAATGTAATTTCATTACCTTCAAAATCCACAACAAGCACATCTTTAT -TAAGGGCATTTTCTTTCGCCCAAAAAATACCAACAATAACTCCTATGTCACCATTGAATATGTTATCATT -TGGCCTATTAACAAGTTGTAATACTTTGTCACCTTTTCTAAAGACTACATCACCAAACTCAATTTCTCGT -GTGTCTTTCTTTTTAGGGTTTAAAATATCTTGTAAAACTTGATTTAAACGTTTAATACCGGCATTTCCTT -TATACATTGGTGCAAGCACTTGAATATCAGCCATAGTATACCCTTTATTAACAGCACTAGTAACTACCTT -CTCAACAACTGTTGGTATTTGGTTTGCCTGACAGTTAATAAAACTTCTATCATGAAAACGCTGTGTAATA -TCAATTTTCTGACCCAACTTCATTCGATGTGCTAATTCTATAATGCTTGAACCATCTTGTTGACGATATA -CTTCAGTCAGATTAACTCGTGGTATAGCTTTCGATTCAATTAAATCTTTAAATACTTGACCAGGACCTAC -AGAAGGCAATTGGTCCTCATCACCTACAAATATCAATTGTGCATCTAAAGGAACTGCACTTAAAAATTGG -TGGAACAACCAAGTATCTACCATAGACATCTCATCAATGATTATGAGTCGTGCGTTAATTTCATTTTCTA -ATATATCCTCTGGCTTTGTGTCTTGATTCCAACCTATTAAACGATGAATCGTCATAGCTTCTAATCCAGT -TGACTCTTGTAGTCTCTTGGACGCTCTTCCTGTTGGCGCTGCTAATACAACTGGATAATCATCATTGACA -TAATCATCATAATCTAATGATAAGCCATGAATCTCAGCATATAATTCTACAATGCCTTTAATTACTGTCG -TCTTTCCTGTTCCCGGTCCACCGGTTAATAGCATCACCTTAGAATTGATAGCCGTTTGCAAAGCTTCTTT -TTGTGAAGCTGCATAGTTCACTTGATTCGCATCCTCTATTTCGCCAATATGCATTTGTAAATCTGACTGT -TCAATTTCCGTAAGTTTATTTGTATGCGTCTTTATTCTGAATAAGTTTTGAACACTTTTGATTTCAGAAT -AATACAAACTTGGAATTGCAACTTGTTCATTGTCAATAATTAGTCGTTTTTCCTCATTTAAGTATTGCAA -CATTTCGTCTAATTTTTCAGGTTCGATGACCTCTTCATCTTGATAATTTAAGACATCAACCGTTAAATCT -ATAACAACATTGATAGGCAAATATGTATGTCCCTGTTTAATACATTCTTCTTCTAACGTATAGAGCAACG -CAGCTTTTAATCGTTCATTATCGTTATAAGCGATACCAATATTTCTAGCAAGTTGATCTGCTTTATTAAA -ACCAATACCTTTAATATCATAAATCAATTGATATGGATTTCGATCTAAAATAGTCAGTGTATCACCGAGA -TAAAACTGATAAATTGCCATTGAAAGTTTAGGACCAAACCCTAAATCATGTAAACGAATCATTATTTTTT -CAGATTCTTGATTTGCTGAAATTTGTTCTGCAATTTGTTTCTGTTTCTTTTTAGATAATCCCGAAACTTT -TTCTAGAACTGAATGGTCATCTAATATATCGTTTATCGCATTGTCACCTAATGTATTAACAATATTTTGA -GCTGTCTTTTTACCTACACCTTTAAACAAATCACTTGATAAATAACTTATAATTGCTTCTTTCGTTTGTG -GCATTTCTTTTTCAAAAGTCTCTGCTTTTAATTGTTTACCATAACGTGGATGATCAACAACTTGCCCTTT -AAATGTGTAGACATCGCCTTCAACAATATTCGGAAGAAACCCTACAACAGTTGGCATTGTATCAAAGTCT -TCATTTGTTTCAATAGTATCTACTTTAAGCACTGTATAAAAATTATCACTGTTTTGAAACAATATCGCTT -CAACAGTACCTTTGATCATTGAATAATCAAATAGTGTAGGGTCTGACATGTTACTCCTCCTCTTTCATTT -TAGTGAATGTTTTCAGCGCATGCTGACTTAATAAGTGTTTAGGGTCGATAGTCACAGCTTCTTTAAAATG -AGTTATGACTTCATCAATATTCTCATTTTTCATAAATAACGCTAAACCCAAATTGTATCTTGCATCAACA -TGATTTTTATCAATCGTTAATACATGTTTAAGTTGAGTTATGGCTTCATTAAACATCTCTAATTGACATA -ATACAAGACCATATTGAAATTGAACTTCTGCATCTTTGTCTTTATCTAGTTCTGCAGCAGTCATTAAATA -CGGCAATGCCAGCTTAAATGATTCTAACTGATTAAACGCCATACCGATCATATAATTACAATCAACTTGT -TCAATCTCTGTTTGTAATGCTTGTTGATATAATTTAATAGATTCTTGATAACGTTGCTGATTATAATATA -CATTTGCTAGATTATAAAATACGACGCCATTCTTCGGATCTATTGTTAAAGCTTTTTGGAAAAAACGCTC -TGCCTTTTCAATCTCATTCGCATCAGCAAGTACTATGCCGGCATTAATATAATTTTCAATAATTGTAGGA -TCTTCTTCGATATTTCCGAACAATGCTTGTAACGCTTCTTCTATTTTTCCATTTTGTATGTATTGATATA -TTGTTTGTTGATCTATCATTTACGAACCTCATTTCTCATCAATTATAACATCTTGATAAATTGTATGTCT -CGAATCACTTAACAACGAATAAAATATAATCTAATATCATCTTCATTCATGAAAAAGCGGGAATGGAATG -GAAATGCTAAAGAACCATTAACGGTTTATTATGTAATGGTTCTTCCACATTAGCCACCACTATTATGTAC -TTAAAATAGGAATACATAATTAGACTCATGCATAGGGGTGAGACAGAAATGATATTTTTACAAAATTAAT -TTGTTATCCCCAACTCTCATTGCCTGTAGAATTTCTTTACGAAATTCTCTGTGTTGGGCCCCGCCAACTT -CCATTGCCTATTAAAATTCTTTACGAAATTCTCTATGTTGGGGCCCCGCCAACTTGCACATTATTGAAAT -CTGATTTTCCGTCAGCTTTTATGTTGGGGGCCCGTCCCCAACTTCCATTGCCTGTTAAAATTCTTTACGA -AATTCTCTGTGTTGGGCCCCGCCAACTCGCACATTATTGAAATCTGACTTTCCGTCAGCTTCTGTGTTGG -GGGCCCGCCAATATAACATTGTAGAGCCTAGGACATTGTGATGTCCCAGACTCTATCATCATGAATTATT -CTCATCAAAAACTGTCTTTCGTCATTTCCAACGCTGAAACTTCAAATAAGTAATTTATTGTTGTCATTGC -TTAAACAACATAATTTAATTGACCTTCATTTTTGAACACATCGTCAATTGTTGCTCCACCAAGACACACA -TCACCTTGATAAAAAACAACTGCTTGTCCAGGTGTGATTGCTCTTACTGGCTCAGCAAAAGTAACACGTA -GTGCATGGTCGTTTTCACGTTTCACAAAAACTTTCGTATCTTTTTGGCGATATCTAAATTTAGCTGTACA -TTCAAAACCTTGATCTAAGTCATTATCTTCTGGATTTACAAATGAATAGTCTGAAGCAATTAAGTAGTCA -CTGTATAATGCATCGTGATGGAATCCTTGTTCTACATATAAAACATTATCTTTTAGGTTTTTACCGACAA -CAAACCAAGGATCGCCATCTCCACCTATACCTAAACCATGTCTTTGTCCTATTGTGTAATACATCAACCC -ACTATGTTTACCCATTTTCTTACCATCAAGTGTAATCATATCACCCGGTTGCGCAGGTAAATATTGAGAT -AAAAATGTTTTAAAGTTTTTTTCGCCGATAAAACAAATGCCTGTAGAATCTTTTTTCTTAGCAGTAACAA -GTCCTTGTTCTTCAGCAATTCGACGCACTTCACTCTTTTCGATGTCGCCAATTGGGAACATCACTTTTGA -AAGTTGTTGTTGAGATAATTGATTCAAGAAGTATGTTTGATCTTTATTATTATCTACACCACGTAACATT -TCAACATGACCATCTTCATGACGATGTATGCGTGCGTAATGTCCTGTTGCTACATAATCTGCACCTAAAT -TCATCGCATGATCTAAAAAGGCTTTAAACTTAATTTCTTTATTACACATAACGTCTGGGTTTGGAGTACG -ACCTTTTTTATATTCATCTAAGAAATACGTAAAGACTTTATCCCAATATTCTTTTTCAAAATTAACAGCG -TAATATGGAATGCCAATTTGATTACACACTTCAATAACATCGTTGTAATCTTCAGTTGCAGTACATACGC -CATTTTCGTCAGTGTCATCCCAGTTTTTCATAAATATGCCAATGACATCATAACCTTGTTCTTTTAAGAC -GTGGGCTGTTACAGAACTATCTACACCGCCTGACATACCAACGACAACACGTATATCTTTATTTGACAAT -TATGACTCCTCCTTAAATTTAAAATATATTTTATGAATTTCAGCTACAATTGCATTAATTTCATTTTCAG -TAGTCAATTCGTTAAAACTAAATCGAATCGAATGATTTGATCGCTCTTCATCTTCGAACATTGCATCTAA -AACATGCGACGGTTGTGTAGAGCCTGCTGTACATGCAGATCCAGACGACACATAGATTTGTGCCATATCC -AACAATGTTAACATCGTTTCAACTTCAACAAACGGAAAATATAGATTTACAATATGGCCTGTAGCATCCG -TCATTGAACCATTTAATTCAAATGGAATCGCTCTTTCTTGTAATTTAACTAAAAATTGTTCTTTTAAATT -CATTAAATGAATATTGTTATCGTCTCGATTCTTTTCTGCTAATTGTAATGCTTTAGCCATCCCAACAATT -TGTGCAAGATTTTCAGTGCCTGCACGGCGTTTCAATTCTTGTTCACCGCCAAGTTGAGGATAATCTAATG -TGACATGGTCTTTAACTAATAATGCACCGACACCTTTTGGTCCGCCAAACTTATGAGCAGTAATACTCAT -TGCGTCGATCTCAAATTCGTCAAACTTAACATCAAGATGTCCAATTGCTTGAACCGCATCAACATGGAAA -TATGCATTTGTCTCAGCAATAATATCTTGAATATCATAAATTTGTTGCACTGTGCCAACTTCATTATTTA -CAAACATAATAGATACTAAAATCGTCTTATCTGTAATTGTTTCTTCAAGTTGATCTAAATCAATAGCACC -TGTATCATCAACATCTAGATATGTTACATCAAAACCTTCTCGCTCTAATTGTTCAAAAACATGTAACACA -GAATGATGTTCAATCTTCGATGTGATAATGTGATTACCCAATTGTTCATTTGCTTTTACTATGCCTTTAA -TTGCCGTATTATTCGATTCTGTTGCGCCACTCGTAAATATAATTTCATGTGTATCTGCACCAAGTAATTG -TGCAATTTGACGTCTTGACTCATCTAAATATTTACGCGCATCTCTTCCCTTAGCATGTATTGATGATGGA -TTACCATAATGCGAATTGTAAATCGTCATCATCGCATCTACTACTTCAGGTTTTACTGGTGTGGTCGCAG -CATAATCTGCATAAATTTCCATGTTTGGACACTCCTCACAATTTTATCAATGTTCCAATAATAGCACCTT -ACATACTATTTTTCTACTTTTCTGTTTAACTTTATTTATAATGTTTTTAATTATATTTTACCATTTTCTA -CACATGCTTTTCGATAGGCTTTTTAAGTTTATCGCTTTATTCTTGTCTTTTTTATAAATTTTAGTATTTG -AAGATATTTTATCATTTGTAAAATGTAACGTACTATTATTTTGGTTATGAGCAATTTAATATTTATCTGG -TTATTCGATTGGTATACTTCTTATATCAAAAAAAGGAAGGACGATATAAAAATGGCGATTAAATATTCAG -CATTAAACCTTGTCCCTATTCGAGAAGGTGAAGATGAACGAACAGCAATTAATGATATGGTTAAGCTCGC -ACAACATTTAGACGAATTATCATATGAAAGATATTGGATTGCTGAACACCATAACGCTCCCAACCTAGTA -AGTTCAGCAACTGCTTTATTAATTCAACATACGTTAGAACATACGAAACACATACGTGTAGGTTCTGGAG -GAATCATGTTACCTAACCATGCTCCATTAATCGTTGCGGAACAATTTGGCACGATGGCAACATTATTTCC -AAATCGTGTCGATTTAGGATTAGGACGTGCACCTGGAACAGATATGATGACCGCAAGTGCATTAAGACGA -GATCAACATGATGGTGTTTATAAATTTCCGGAAGAAGTTTCATTATTACAACAATATTTCGGCCCCGCTC -ACCAACAAGCATATGTTCGTGCTTATCCAGCAGTAGGTAAAAATGTGCCTTTATATATTCTTGGTTCTTC -AACAGATTCTGCACATTTAGCTGCTCGCAAAGGGCTTCCATATGTGTTCGCTGGACATTTTGCACCTCAA -CAAATGAAAGAAGCTATCGAAATCTACAAAACGTTATTTGAACCTTCTGATGTATTAGACGAACCTTATG -TTATTGTATGTTTAAATACAATCGTTGCTGAAAATGATGACGAAGCACAATATTTAGCTTCATCTATGGC -ACAAGTAATGGTTAGTATCACTCGTGGCAGAATGCAGCCCGTTCAACCGCCAACACATGAACTGCAAAAT -ATATTAACGCCGAGAGAATATGCGATGGCTATGGAAAGACAGAAAATATCATTAATAGGTTCAGAAAATA -CTGTTCAACAAAAAATTCAAGATTTTATGGAAACTTATGGTGAAGTCAACGAAATTATGGCTATAAGTTA -TATTTATGATAAAGATATGCAATTAGACTCTTATCGTCGATTCAAAAATGTTATAAATCAGTTAAATGAA -AAAAACACTTTATAATGTGATAAATAAACTAAGTGAAAGTATGTATCCATAATATTAATAAAAATAAACA -GTAACAGCATTTTGAATAAAAGTTGTCTTTATTGTTCAATTATTTATTTTAGTAATGATTCAAATTCACT -TAAAATTCTAATGCAAATATTAAAGCGCCCCTTCAATTTTACACTGTGTAAGTGTTTATTTGATGGGGCG -CTTTCAAAATATTGAAAATCATATCCAAAATTTAAAGAAATTTATTTCTCTTTATCTTCATTTTCTTTTT -TCTCTTCGTTATTAGATCCTGTATATTCATTTATCTTATCTTTTACATTTTTAACTTGTTCATTATCGCT -ATTTTTAAATTTTTCTACTGCGTCTTTAGCTTTATCTATAAAACTCATATTAATCGCTCCTCTTATATTT -GATTAGTTTAATTGAACTTATTTTTTAAGTTTATCAATTGCATCAGTTATTTTGTTTTTAGCATTTTCAA -CAACTTCTTTTGCTTTACCAGTCGCTTTATCTTGCTGACCTTCTTTTTCTAATTCTTTGTTATCAGTAAC -GTTACCTACTGTTTCTTTAACATTGCCTTTAAATTGATCGAACTTACTTTCGTCTGCCATAGTGAAACCT -CCTTAGATGTATATATTTATATACCACAAAGGAGGTTCGCTAAACATTATAATATGAAGTTTTTATGTTA -TAGTATAGTATTTATACGGTTAAATATAAAACATGTATCCGTCTAAATCTTCACTTGTATCTACATATTC -CGCTAAATATTTCAATGTTGTATTATCTAAAACATCTCTCACTGCATCTCTCATGCGAATCCATAGTTGT -TTTTGCGCAGGTGGTTCTGATTCAATACTTTCAACAAATGTAATTGGACCTTCTAACAGTCTTATAATAT -CCCCTGCTGAGATTTCTTCCGCTGGCACTCTTAATTGGTATCCACCTTTAGCACCGCGTACACTTCGAAT -TAACCCCGCATTTCTTAAAGGACCTACAAGCTGTTCTAAATATAAATCACTCAAATTATTTTCTTCAGCA -ATTGACTTTAATGATATACATCCTTGCCCCTCTTTTTTAGCAAGAGAAATCATCAATGTAAGTCCATATC -TCCCTTTAGTAGAAATTTTCATTGTATAACCTCACTTAATTCGAATATTGATATTCCCATTTTAGCATTT -TTTGAGTTAAGATAGTATAAGAAAGGTGTGACAAATGTGAGTACAGAACCATTAGCGTCGAGAATGCGCC -CAAAAAATATAGATGAAATCATTTCCCAACAACACTTAGTTGGACCAAGAGGCATTATCAGAAGAATGGT -TGACACAAAAAAATTAACTTCAATGATTTTTTATGGTCCACCTGGTATAGGCAAAACAAGTATTGCCAAA -GCAATTTCGGGCAGTACGCAATATAAATTCAGACAATTGAATGCTGTAACTAACACTAAAAAAGATATGC -AACTTGTTGTTGAAGAAGCTAAAATGTCTGGTCAAGTTATCTTGTTATTAGATGAAATCCATCGACTAGA -TAAAGCCAAACAAGATTTTTTATTACCTCATTTAGAAAATGGCAAAATCGTCTTGATCGGTGCTACAACT -TCAAATCCTTATCATGCTATCAATCCAGCGATTCGTTCAAGAGCGCAAATTTTCGAGTTATATCCTTTAA -ATGACGAAGATGTGCGCCAAGCGTTAACTCGTGCAATAGAAGATGAAGAGAATGGTTTGAAAACATATCA -ACCCAAAATTGATGAAGATGCCATGACCTACTTTTCTACACAAAGTCAAGGTGATGTTCGTAGTGCGTTA -AATGCATTGGAATTAGCTGTATTAAGCGCAGATAATGACAAGGACGGTTATCGACATGTTACATTGCAAG -ATGCTAAAGACTGCTTACAAAAAGGTGCATTTGTAAGTGATAAGGATGGTGACATGCATTACGATGTTAT -GAGCGCTTTCCAAAAATCTATCCGTGGTAGCGACGTCAATGCCGCTTTACATTATTTAGCACGATTAATT -GAAGCTGGAGATTTACCTACAATAGTTCGACGATTACTTGTAATTAGCTATGAGGATATAGGCTTAGCCT -CACCTAATGCTGGTCAGAGAACACTTGCTGCTATTGAATCAGCAGAACGTCTAGGTTTACCAGAAGCTAG -AATCCCACTAAGCCAAGCAGTAATCGAACTATGCTTATCACCTAAGTCAAATTCAGCAATGAGTGCCATT -GATAGTGCATTGTCCGATATTAGAAACGGTCATGTGGGCCAAATTCCAAACCATTTAAAAGATGGACATT -ATCAAGGTGCTAAAGATTTAGGCCGATCTATTGGTTACAAATATCCACACCAATATGTTAATGGCTATGT -TTCACAGCAATATTTACCTGATAAACTTAAAAACAAAATTTATTATGAACCAAAAACGACATCTAAAAGT -GAACGACAACTCAAAGAAATATATAACAATTTACTTAAACAAAGGCCATAAAAATAAGATTAAATCGATT -ACCTTTGATATTTTAGCTATAATCAAAACAAAACTGACTAGTACACGAGGCATATTCTACAATGCTTGCG -AACTAGTCAGTTTTAGTTTTATGGTATGGTTACACTTGCCTTACGTTGAAAATTATGACTTTCAATTTTA -ATTATTGCCCTTTGTCTTTAATGCGACGAACTGGAATATCTTTTAATACGTCATTCACCACATAACTTGC -ACAAATTAATCCAACTACACTTGGCACAAAGGCATTTGAAGAAGGTGGCATTTGTCCTTTTCGATTGATA -GCATTTTTATCTCCAACTATATCTTTTACATCTTCTCTTATGACAATTGGACTTTCATCTGAAAATACAA -CTGGAATCCCTTTACGAATTCCTAGTTTTTTCAATTTTTGACGAATAATTTTGGCCATTGGATCGGTATG -TGTTTTAGAGATATCTGAAATTGTAAAACGTGTTGGATCTGTTTTATTTGCAGCACCCATACTGGAAATC -ACTTTAATCCCTCGGTCAAGACACTCTTTCATTAAGTGTACTTTGTACATTATTGTATCACTTGCATCTA -CAAAATAATCTATATCGTAATTATCGAAAATTTCTTCATATGTCTCTTCTGTATAAAACATATGTAAAGG -CGTGACTTTACAATCTGGATTAATTAATTTAATACGTTCTTCCATCAAAGAAACTTTACTTTGTCCTACC -GTTGTAGTTAAAGCGTGTAATTGTCTGTTTACATTTGTAATATCAACATCATCTTTATCTATTAATATAA -TATGACCAATATTCGTTCTTGCTAATGCTTCCGCAGCAAATGAACCAACACCTCCAACGCCAAGTATGAC -AACAGTTTGTTGCTTCAATAAATCTAAACCTTGATGTCCAATCGCTAGTTCATTTCTTGAAAATTGATGT -TTCATTATTTTACCTCTTTCACTGATTTATACATAAGTACATAGTAACTTAAAATTTTATGTTTAGCATT -ATTGCTTTGATTATTTTTCCAAAATTCAACGAGGAAACAATTATTAAACGCTATTAAACCCAACTAATTC -TTTATTAAAAACTTAAAGAAAAGCATAAAAATACGCAAGACAAAGTCTTGCGTATCGATAGAGTCCGTAT -TGCCGTAGTTATAATAGCTTGATCATTCGGCCTGTTATATACAGGTGGGTGCCCTGTTTCTTGTTTTGTA -CGTCCTTCATATAAGGCGTGTACGCTGCAAGAAAACCCATTGGGCTCCCTTGATCAAAGAGTGTTAGGCC -CAAATTAAAAAGCAAACTTACGAACAACTCAGATGACTATCTTATGATGTTATATTACCACATAATTAAA -ATTAATGAAATTATAACAAACCAAAGTTTATTGATTTTTTAAAATTTAGTGACGAATTCGCAAAGAAAGT -TCTTCTAATTGTTTATCAGAAACTTCACCAGGCGCATTCGTTAATAAACATGTAGCAGATGCTGTTTTAG -GGAATGCAATTGTATCTCTCAAGTTTGTTCTATTAGTCAATAACATGACTAATCGGTCTAATCCTAATGC -AATACCGCCATGAGGTGGTGCACCATATTTAAATGCATCTAGTAAGAAGCCGAATTGTTCCTGTGCTTGT -TCTTTAGTAAATCCAAGAACTTCGAACATTTTTTCTTGTAACTCACCGTCATGAATTCTGATTGAACCGC -CACCTAATTCATAACCATTTAATACTATGTCATAAGCATTTGCCTCAGCTTCTTCTGGCGCAGTGCCAAG -CTTAGCAATATCGGCTTCTTTTGGAGATGTAAATGGATGATGTGCTGCAACGTAACGTTTCGCATCTTCA -TCATATTCTAATAATGGCCAATCTGTCACCCATAAGAAGTTTAATTTTGTTTCATCGATTAAACCTAATT -CTTTAGCTAATTTGACACGTAATGCACCTAAACTTTGTGCAACGACATTTGGTTTGTCTGCAACAAACAT -TACTAAGTCACCAGCTTCAGCACCAGTTAATGTAAGTAATGTTTCAACATTTTCTGCCTCAAAGAAACGT -CCAATTGGACCTGTCAAACCATCTTCCACAACTTTAACCCATGCTAATCCTTTAGCACCATAGATGTTTA -CAAATTCTGTTAAAGCATCCATATCTTTACGTGTATATTGTTCAGCTGCACCTTTAGCGACAATTGCTTT -AATTTCACCATCATTTTCAACAGTATCTTTAAATACTTTAAAGTCCATATCACGTCCTAATTGAGAAACG -TCAATTAATTCCATTTCAAAACGCGTATCTGGTTTATCAGAACCATAGCGACGCATCGCTTCTTTATATG -TCATGCGTGGGAAAGCGCCATTAATTTCAACGCCTTTAACTTCTTTAACAACTTTTTTAAGCATTTCTTC -ACCCATTTGCATCACATCTTCTTGATCTACAAAACTCATTTCAATATCGACTTGTGTGAATTCAGGTTGA -CGATCTGCACGTAAATCTTCGTCACGGAAGCATTTTACAATTTGGTAGTATTTGTCAAATCCGCTAATCA -TCAATAATTGCTTAAATAATTGTGGCGATTGTGGTAATGCATAAAATTCACCATCATGGACACGAGATGG -TACTAAATAGTCACGTGCACCCTCAGGTGTTGACTTCGTTAGTACTGGTGTTTCGATGTCAAAGAACCCT -TCATCATCCAAATATTGACGAATAGAACGTGTAATTTGATGTCTCATTTTAAATGTTTGCGCTAACTCTT -GACGACGTAAATCTAAATAACGGTATTTTAATCGAATATTTTCATCAACGTTAACATTTTCTTCATTTAT -AGAAAATGGTGGTGTCTCAGATTTATTAATCACTTTAATATTTGTAACTTGTACTTCAACTTGGCCAGTT -TTAATTTTAGGATTAACAGTTTCAGGGTCACGCTTCGTAACTGTACCTTGAACTTCTACAACATATTCAG -AACGTACTGTTTCAGCAATTTTCAATGCCTCTTCTGAAAATGCAGGATTAAACACAACTTGTACAATTCC -TTCTCTATCTCTTAAATCAACGAAAATCAATCCACCTAGGTCACGACGATTGTTAACCCATCCTTTTAAT -GTAATTTCTTGTCCTAAAAATGCTTCAGTAACTAATCCACAATAAGTTGTTCTCTTACTCATATTTTAAC -GCCCTCTCTACTTCTTAAAATATTCGACTAATGCGTCTAATTCAATTGTTTCAGATTCACCAGTTGTCAT -ATTTTTAACATCGATTTTATTATTTTCTAATTCTTGATCACCAATAACGATTGTAAACTTGGCACCTAAA -CGGTCTGCTTGTTTCATTTGTCCTTTAATTTTACGCTGTAAGTAGTCTTTATCTGCTTTAATACCATTAT -GTCTCAAATGATTTAATAACTTCACAGCATATCGATCTGCTTGATCACCCATTGTAACAATGAATAAATC -TAAGTTTTCTTCAATATCTAATTCGATACCTTCTTCTTCAAGTGCAAGCAATAATCGCTCTATACTTAGC -GCAAAACCAATACCTGTTTCACTTGGACCATCTAGCAATTCTAATAAACCATTATAACGGCCACCACCAC -AAAGAGTTGTAATGGCACCATCATAGTTAGGGTTATCCATCATTAATTCAAATGCTGTATGTGTATAATA -ATCCAATCCACGAACTAAGTTAGGATCTTCAATATATGGAATACCTAAATCATCTAAATAAGCTTTTACT -TGTTCATAATATGCCTTAGATTCCTCATTTAAGAAATCAGTGATTCTAGGTGCAGTCTTAATCGCTTCTT -TATCACGGTCAACTTTACAATCCAAAATTCGCATCGGATTTGTATGCAAACGTGATTGACAATCTGAACA -AAATTCATGAATTACTGGTTCAAAGTGTTTCACTAACGCTTCGTTATATTCTTTTCGAGACGCCATATCC -CCTACACTATTAATAACAAGCTTTAAATGTTTTAATCCAAATGATTGATAAATATGCATAACCATAGCTA -ATACTTCTGCATCTACACTAGGATTTTCAGCACCAATAGCTTCTACACCAAATTGATTAAATTGACGATA -GCGCCCTTTTTGCTTACGTTCATATCTAAACATCGGTCCATTGTAATAAAGTTTAATTGGTTGGTTTGGA -TTACCTTGCATTTTATGTTCAATATATGAACGCACAACTGCAGCTGTTCCCTCAGGTCTTAATGTAATAC -TTCTATCGCCTTTATCTTTAAATGTATACATTTCTTTTTGTACGACATCGGTTGAATCACCAACACCTCT -TGCAAAAAGATCTGTACTTTCAAAAATTGGTGTTCTTATTTCTTTATAATTGTAAAATGTCATTAATTCA -TCTAATTGATTTTCAATGTAACGCCATTTCTTTGAATCTTCAGGTAAAATATCCTGCGTCCCTCTAGGTA -TTTTAATCATTTTGACATCTCCCTCGGCAAACTATTTTATTTAATTACCTTTTTAAAACTAAAACTATAT -ACGACCACTTAACTTTGCACGATAAATCATAATTTTAAAAGCAAAAGAAAAAGCCCTTGCACAGCCTGAA -ACTGCACAAGGGACGAATATCCGTGTTGCCACCCTCATTGGTTTAAAAAACATGCCTAATTGTAATCATC -ATTACTTTTTATAAGCGTTCATTTAATAAACCCACTCAAAACGTTTAACGTACGTTTAACGGCTTTACTT -TTCATAAAGCACCTCTTCTTGTGTTCAATGTATATAAACTACTCAGCATAATCTTTCAGTCTATGGATTA -TATTCCTACACAATCTTAGTTAGATTGCTACCTATTTCATTTACCATTTCAAGAATACTAACGGTTTTAG -TTATAAAATTCAATATCAATGATAACTACTTTCACATATTTTTGCAAGCCCTACGCAGAAAAATAAATTT -TAAGGCCATCAACAATTGCTTGTTCTAAAATTTGTCTATGTAATTGATCTTTAATCATCGTTTCATCAGT -TGGGTTACTAATATAACCTAATTCTAATAAAACAGCAGGAACTTTTGTTTGTCTTAACACTTGATAATTT -TCTTGTCTTGAACCGCGATTAGAAAGTAGACCTTTCTTCTGAATCGTAGCGTCTAACGTATCTGCTAAAG -CTCTTTGATTATCATGATACCAATAAACTGTCATTCCATTTGCATTAGATGATTCTAAGGCATCATTATG -TATACTCAAATAGGCATCGCCTTTGATATCACGATTTTCTAGTGAAACATATGTATCGTCTGTTCTTGTC -ATCTTAACAGTTGCGCCTTCTTTTTCTAAAGTACGCTGCAATTCTTTTGCTGTTTTCAACGTATAATCTT -TTTCTAAACTTTTATATTTAGTATTGCTTGAAGCACCCTGGTCACTACCTCCATGACCAGGATCAAGCAC -TATTGTTTTACCTTGCAAAGGATTTTTCTCCTTCGTATTATCCGCGACAATATCTAAATTTGTGTGCCAT -CCAGCTATCCAACCTTTTTCATTACTGGATGTATCTTCAACTTCAATCCATTTACCTACTTTACCAATCT -TTTTAAAATGGTCACCTTTTTCAACTTTGTAAATGACTGGATACGCAGCGTTTGGACCTGTACGTAATTC -AGCATTTTCAGTTATCGTAATGTTCCCACTATCTTCACTATTGCTATTCAGCAATAAAAATAAAAAGATG -ATAAATAAGACAAAGGCAATCACTACTATTAGAGTACGTTTATTTTTAAGACCCTTTTAGATAACCATGC -CTCTATTTTTTTCATTGAATTTTGCCGTCCTGACTTTCATAAATAATAGTGACTGGACCATCATTATTTA -TATTAACATTCATGTGTGTTCCAAATTCACCTGTTTTCACAGTTAGACCATACGCTCGTAGCGCATCATT -AAAATACTCATATATTTTTACTGCTTGATCAGGATTTTTAGAATTTGAGAAACCTGGACGGTTACCTTTT -TTTACATCTGCATAGAGAGTAAATTGTGAAACTGATAATATTTCACCATTCATTTGTTGGATATTAAAGT -TTAATTTATTATTGTCATCTTCAAATAATCTTGCATTAGCAATTTTCTTTGCAATTACATCTGCATCTTG -CTCTGTAGAGTCCTGACCGATACCGACTAATAAACAATATCCTTTTTTGATTTGATTATTTAATGTATCA -TTCGTCACCGATGCTTCTTTAACTCTTTGTACAACTACTTTCATATTTTGCACCTCTAGTTCCAAACTCT -TGTTACTGTATAAACATCACCAAGTTGTTTGATCTTTTCTACCACACGATAAACATCATTCACGTTTTTC -ACCATGACACTAATATTTATTATTGCATTTTTATCAATATCTGAACGACCTGAAACTTTAATTAAATTGC -CGGCTGTCGAGCTAACAGCTTGTAGTACCTCATTTAACAAGCCATTTCGGTCATACGCAGTTACCTCTAA -ATCAACCTGATATTTTTGAGTTGCGTCTTTTGATTTTACCCATTCAACATTAATTAGTCGTTCAGTTTCG -TTCTTAATATTTGGGCAATCAGTGCGATGTACTTTAATACCATGACCTTTGGTGATATAACCTACAATAT -CATCACCTGGTATAGGATTACAACATTTTGACAACTTGATAAGTACATTTTCTAAACCTTCTACATAGAC -ACCACTATCAGTAATGATGTTGTCTTTAATAGGCAATGATTTCGTAACTTCTTGTGCTTCATTTAAAGCA -CGTTGCTTATCTAAAATACGTTGTCTTTCAGTTAATTTATTAACAATCTGTAAGGATGTCACGCCGCCAA -ATCCTACAGCTGCGAATAAATCATCTTCATTTGCAAAGTTATATTTTTCATTAACAACCTGAATATTTTT -CTCTGTCAAAATATCTTCGACTCTAAATCCTTGCTCTTTTATTTCAGCTTCAACCATCATTCGTCCTTTT -TCAATGTTAGATGAACGATCTTGTTTTTTGAAGAAACTTTTAATTTTACCTTTGGCACTAGACGATTTAA -CAATTTTCAACCAATCACGACTTGGTCCATATGAATGTTTACTAGTACGTATTTCAACAATATCGCCTGT -TTGTAAAATATAGTCAATTGGTACAATTTTGCCATTCACCTTGGCACCAATCATCTTATTACCTACTTCA -CTGTGAATCGCATAAGCAAAATCAATCGGCACAGCACCATATGGCAACTCAATAACATCACTCGCTGGGG -TAAATGCATATACTTTGTCACTCTGTAAGTCATATTTTAAGGTTTCCATAAATTCTTGAGCGTCAGACGA -AGTATGATCCGCTTCAGCTAACTCTTTTAACCAATTTAACTTATTTTGATAAGTTTGATCTTTTTCACTT -ACTTTTTTACCTTCTTTGTAAGCCCAGTGTGCTGCAACACCATGTTCAGCAATTTCGTGCATATCAAACG -TTCGTATTTGGATTTCGAGCGGGTCTCCATTTGGACCTACTACTGTAGTATGCAATGACTGATACAAATT -TTGTTTAGGCATTGCAATATAATCTTTAAAACGTCCTGGCATCGGTTTCCATAACGTATGCACCAACCCA -AGTATCGCATAACAATCATTAATAGAATTGACAATAACACGTATCGCCAACAAATCAAAAATTTGATCAA -ATTGCTTTTTCTGCTTCATCATTTTCCGATAAATACTGTAAATATGTTTAGGTCTACCATTTATATCGCC -TTCGATATTCATTCGGTCCATTTCGGTACGTATTCTATCAATAGCCGTTTCGATATACGCTTCCCGTTCA -CTACGTTTCTTCTTCATTAAATTGACTATTCTAAAATATTGTACATTATCAATATAACGAAGAGCCGTAT -CTTCTAGTTCCCATTTGATTGTATTAATACCAAGACGATGTGCTAAAGGTGCATAAATTTCTAATGTTTC -TCGAGAAATTCTAATTTGTTTTTCGCGCGGCATGGCTTTCAAGGTACGCATATTATGTAATCTGTCTGCT -AATTTCACCAAAATTACGCGTACATCTTTGGCAATCGCAATAAATAACTTGCGATGATTTTCAGCTTGTT -GTTCTTCTTTTGATCGGTATTTTACTTTTTTAAGCTTCGTCACACCATCAACAATTCGAGCAACTTCTTC -ATTGAACATTTCTTTTACATCTTCAAATGTATACGGTGTATCTTCAATTACATCATGCAAAAAACCTGCG -ACAATCGTCGGTCCGTCTAATCGCATTTCTGTTAAAATACCTGCAACTTGTATAGGATGCATAATGTATG -GTAATCCGTTTTTTCGGAACTGACCTTTATGTGCTTCATAAGCAATATGATAGCTTTTTAAAACATACTC -ATATTCATCTGCTGACAAATATGATTTTGCTTTGTGAAGAACTTCGTCTGCACTATATGGATATTCGTTG -TTCATTATATGATACACCCCATTCATATTTATTACTTCGCCTTAAACAATGATTTAGGTGCTCTTGTTGA -ATAGTATTTGTCCCACACCAATCATACGTCCGTCGACGATAAATATTTATCCTGTCGTCATTAATCGTAA -TATTAATTTTACTTGAGCGAGTTTAATTTGTATACTATTCCTACTTTTAAAACTTTTACAAAAATTCGAC -CTAAATCTACTGTTTCATTTTTTAAATATTAGTTCTATGATACTACAATTTATGAAATAAATAAACGTTG -TTATTAAGGTATAATGCTCAATCATCTAACATTTTCAGTAAATAAAAAATCCTAACATCTCATGTTAAGA -AAACTTAAACAACTTTTTTAATTAAGTCATTCGTTCTTATTCATTTGATGAAGGATTTTATTTGATAAAA -TTATATTATTTTTTATTCGTCGTATGAGATTAAACTCATAACATCGTAATCTTTAATTTTTTCAATACCA -TTTAAATATTTCAATTCAATTATAAATGCAATACCTACTACGATACCACCTAATTTTTCGACTAATTTTA -TTGCTGCTTCAATCGTACCACCAGTAGCTAATAAATCATCTGTAATTAACACACGTTGACCTGGTTTAAT -TGCATCTTTGTGCATTGTTAAAACATTTGTACCATATTCTAGGTCATACTCATAACGAATGACTTCACGA -GGTAATTTCCCTTCTTTTCTAACAGGTGCAAAGCCAATCCCCATTGAATAAGCTACAGGACAGCCAATGA -TAAAGCCACGCGCTTCAGGTCCTACAACGATATCAACATCTCTGTCTTTTGCGTATTCTACAATTTTATC -TGTTGCATAGCCATATGCTTCACCATTATCCATAATTGTAGTAATATCCTTGAAACTAACACCTGGTTTC -GGCCAATCTTGAACTTCTGATACGTATTGCTTTAAATCCATTAATATTTCCTCCTAAATTGCTCACGACA -ATTGTGACTTTATCCAATTTTTTATTTCTGAAAAATCTTGATATAATAATTGCTTTTCAACATCCATACG -TTGTTGTCTTAATTGATATACTTTGCTGGAATCAATCGATCTTTTATCAGGTTGTTGATTGATTCGAATT -AAACCATCTTCTTGTGTTACAAATTTTAAGTCTAAGAAAACTTTCAACATGAATTTAAGTGTATCTGGTT -TCACACTTAAATGTTGACACAATAACATACCCTCTTTCTGGATATTTGTTTCTTGTTTAGTTATTAATGC -TTTATAACACTTTTTAAAAACATCCATATTAGGTATACCATCGAAGTAAATCGAATGATTATGTTGCAAA -ACTATATAAAGTTGAGAAAATTGCAGTTGTTGCAGGGAATTAGACAAATCTTCCATTGACGTAGGTAAAT -CTCTTAATACTACTTTATCAGTTTGTTGTTTAATTTCTTCACCATAATAATATTCATTCGCATTTACTTT -ATCACTTTTAGGATGAATAAGCACGACAATATTTTCATCATTTTCTGTAAAAGGTAAACTTTTTCGCTTA -CTTCTATAATCTAATATTTGCTGTTCGTTCATCGCAATATCTTGAATAATTAATTGCGGTGATTGATTAC -CATTCCATTCGTTGATTTGAACAGATCCTAATATATTAATTGGCTGTTCATCTTGTAATTCAGGTTCTAA -GTGTCCATTTTGCCAAAATAGCGCGGCGATATTACTTTCACCAAGTGTCAATTTCAGATGATTTTTTTGT -TGACCTATCGCCTTAACTGAAGAAACTGATAAATCATCCATTTCAAAAATAGGTCTAGAAAAATCTGTTC -CGAAGGGTCTTAAACGATTCATATCACGAATATTTTTAATCGTTATATCATTTTCTGTTAATAATACATC -TACTGGCTTTACGGGATCTAACGAAGTTGTTTTAGATAATTCTTTCATCCATTTATTTAAACCTTCAGCT -AACGATTCTATATTTTCAATATCCATCGTCATACCTGCAGCCATATGATGGCCGCCAAATTTAGCGATTA -ACTCTTGGTGTGCTGATAGTATTTCAAACATCGACACTTGATCAATTGATCTGGCGGAACCTTTTGCATG -ATTTTGCTCCCTATCAATATTTAAAATTAATGTTGGCAAAGCAAATGTTTCGACAATTTTCGAAGCAACA -ATACCTAAGACACCTTCATGCCAATTTTCTTTTGCTAAAAGTAAAAATAAATCTCCATTTTTAACTTTCA -TTTCTGCCATTGCCATTGCTTCTTCTGTGATAGTTGCTACAATATCTTTTCTTTCGCGGTTAAATTGTTC -AACTTGTTCTGCTAAAAATGCAGCTTCTTCTTCGTCGTCAGTCATCAACAATTCGCAAGCTAATGATGCG -TCATCTAAACGACCTACAGCATTAAGTCTAGGTCCAATAATAAAACCAATTGTTTCTTCATCAATATTGT -CATTGTATCCCGCTTCTTTTAGCAATGCTTTAACAGAGGTCGGACATTGATCATTTAAGACTTTTAATCC -TTGTTTCACTAATGATCGATTTTCATCAGTTAATGATACTAAATCCGCAATGGTACCTATCGCAACTAAT -GCTTTAAAATAATCAGGTACATTTTCAATCAATGCTTGTGCTAATTTGTACGCAACACCTGCACCACACA -ATTGTTGGAACGGATAATTAAACGATGGATGCATTGGATGTACGATTGCATATGCTTCTGGTAATGTACT -ACCAATTTCATGATGATCAGTTACAATGACATCAACTCCTAAATCTTGAACCATTTTAATTTCATTATGA -CCTTGTATGCCATTATCAACAGTTATGATTAATGTTATGCCTTCATCATGAGCATTTCTAAATGCTAGCT -CGTTTGGTCCATATCCTTCGGTAAAGCGGTTAGGAATATGCCATCCTACTTGTGCACCTAAAAGTTGTAA -TGTTGTCACTAAAATTGTAGTTGAGGTAACACCGTCGGCATCGTAATCACCATAAACTAGGATTTTCTCA -TCATTCGCTATCGCTCTTTTAATTCTTTCAATAGTCTTAGTCATATCGCTCAATTGCAATGCGTCATGAT -TGATATCTGTATCTGAAATGATGGATTCAATTGCTTGTTCATCAATAATCGATTTACTTTCTAATATTTT -TTTTACGATTGGCGTTAACTTTAATTTTGATGTTAATTCATCACTTATGTATTCAGCTGGTTTAGTTAAT -TTCCACTTATACTTCGGTTTAATCATATATATTTACGCCTCATTTCCAAAAGACATTATATCTAAAATTA -CTTTAAATAAAAAGCACTTATCTAAATAATCAAGACTTTAATTATACCATTTTTTAAAAATGAATGCGGG -AACTTATTTATATATATTTTGTTAAATTTAAACAAAGTAAAAAGCGGTATGTGAACTCTTTAATGTTTCA -CATACCGCTTAATTCATTTTAAACTAAAATCTTTTCATCGTTCGATTTCTTTTCTTTATATACAACTAAT -TTGTGTTTCGGCGATTTTTTCAACTGACGTTTTTTCATTATTCCCCAAAGCGGAACGGCAATGAAGATTG -AAGAGAATACACCAGAAATCAATCCGATAAATAATGCTAAAGTAAAGTTGAATATCGTAGGAGCACCGAA -GAATAGTATAGCAACTACTACTACAATAACTGTTAATACTGTATTAATTGAACGTGTCATTGTCTGTCTA -ATTGATCTATTAACGATATCATCAATTTGTTCTGTTGTAGTAATCACTTTAACCTTTTGTAAGTTTTCAC -GTACACGGTCAAACGTTACGATTGTATCATTAATTGAATAACCGACAATTGTTAATACAGCGGCGATAAA -TGTTAAATCTACTTCAATTCTAAATAAACTGAAAATCGCTACTATAATGAATACATCATGTAATAATGCC -AATACAGATGAAAGACCCATGCGCCATTCAAATCGTAATGATACATAGATGATGATACCTATCGATGCAT -AGATTAATGCAAGCATTGCATTTTTTGCTAATTCCTGTCCAATAATTGGTGATACAGTGTTAATTTGAGG -TGTGTCACCGAATTTCGATTTAATATTATCACTCAATTTATTATCTTGAGCACGCGTTAAATCGTCTTTA -AATTGAACAGTTGCTACTTTATTATCTTTACCATTGATTTGAATTTGATCCGCTTTAAGTCCACTACCTT -TTACAACTTGCTCAACCTTTTGTTGAGTAATTGCTTGTTTAGATTGGAAATCTACACGTGTACCACTTGA -GAAATCAATTCCTAGGTTTAACTTGAAGATATAAAGAATAACTAAACCGACAACTACAATTAAAATACTT -ACTCCAATTAATGGCTTAGCTAATTTAACAAAATTCCATTTCTCGAATGAAGTTTTAAGGTCATGAACAT -CTACACCTTCATTAATATCATGTCGTTTATTCTTTTTAACACCAAATAACCAATATTGATTTTTGAATAT -ATTTGATGAAACAAGTAATGATAATAAGAATCTTGATAAGAACACGGCTGTAACAAAGATCATTAGAATA -CCTAATAATAACATTGTCGCGAAACCTTTAACTGAACTTTCACCGAAGAAGAATAATACTGCTGCGGCGA -TAACTGTTGTTAAGTTAGAATCAAAAATTGTTAGGAACGAACTTTTGTTTGCTTTAGAAAAGGCTTGCTT -TATCGTTCTACCTATTCGAAGTTCATCCTTAATACGCTCATACATGATAATATTGGCATCTACAGCCATA -CCTACACCTAATACCAACGCCGCTAATCCTGGTAAAGTTAGAACCCCGGAAATGAAATTAAATGCTACTA -ACGTTAGATAGATATAAGTTGTCAATGCAATAATCGCTACTAAACCAGGTAATCGGTAGAATCCAAGCAT -GAATAAATAAATTAATGCTACACCAATAAACGATGCAAACACAGTTTTATCTAATGCATCTTGACCAAAT -TGGGCACCTACTGAGTTTGAATAAATTTCTTTCAAGTCAACTGGTAAAGAACCTGCATTTAACAATTCGG -CGATTTGTTTTGCTTTTTTAACGCCTTCTTGTCCTTTAAATCCACCAGAGATTTCTACGCTATCAGAATT -GATTGGTTGATCAACACTTGCTGCAGAAATAAATTTAGGGTTTTTCTTTTGTGCTTCTTTTTTATAGCTG -TCACCTTTTTTGAAATCTAACCAAACAACCATGACATTATCACGTTTCTTAGAGATTTCTTCCGTTACTT -TTTTAAATTTGTTTTTGTCTTTTACTTTGAAAGTAACTGTTGGCTGGTTTGTTTCCTGTTTAAATTCTTG -TTTGGCAGATCCCTGTTTAATATCAGAACCGCTTAATTTTACTTTATCTTCTGCATCGCGAATTGTTAAA -TTAGCTTGAGAAGATAAAATTTTACGTGCTTCATTCTGGTCTGTTACACCAGCAAGTTGAACTCTAATTC -TATTAGGTTCTTCAACTTGAATTTTAGGTTCGGAAACACCTAAAACGTTAACACGATTTTCTAATGTTTG -CGCTGTTGATTGTAAGGCTTTTTTATCTATTTTGTCGCCTTTATTTAAAGGGTCGACTTGATAAAGCACC -TCAAATCCACCTTGCAAATCAAGTCCTAAATTGACATTCTTTATAACACTTTTATAAGTTGCAGCCATTC -CGGCAAACAACAATACGACTAAAAGCAAGAACGCAATTATTCTACTACTTTTCTTCACATGAACACCTCA -TTATTTACGTATGTATTTAGAATACTTGAATACTATTTTATAACGCAAGTTAAATCTTTCTTACAAAATT -TATTAGCCTTATACATATTAACATACTAGAGCAGGGAGTAAAAATAGTCATAGATATATTTAATTTAAAT -TTAACAATTATTATGTATCACAATTTCTTTTTTTGGAATAAAAATAAGCTATTCTACATACTACTTATAA -CTTAAAAAGGATGAAACGCTATTCGTTTCATCCTTTTTAATACCACTTCTTGTTATGAAGGGTCAACTTG -TTTAATAGCAGGTTTTTCGAAAGTTAATTCAGTACCATGACCATTAACTGTAATAACAACAGTTGTTTCA -TCTACTGCTTTAACAGTACCTTTAATACCACCAATAGTTGTAATTCTTTGACCAGATTGAATGTTATTAA -TCAACTCACGATGCTGTTTCGCACGTTTTTGTTGTGGTCTGATCATCAAGAAATACATAACCGCAAAAAT -TACGACTATATATATAAGTAATGAAAATTGCATTTTATACGCTCCTCTTGCTTAAAAGTTTTTTGGGTTC -TCAACATTTAATCCATATTGCTCGAAGAATTCTTCTTTGAAATCTAAAAGACGATCTTCTCGAATGGCTT -GTCTTATATCTTCCATTAATTTTAGCAGAAAATGTAAATTATGAATAGTAGTAAGACGAATACCAAAAGT -TTCCTCTGCCTTGATTAAATGACGTATATACGCTCTTGAGTAGTTTTGACATGTATAACAGTCACAATTC -TCATCTAACGGTCTTAAATCATCTGCAAATTTTGCATTTTTAATAACTAAACGACCTTGCGATGTCATAC -AAGTACCATTTCTGGCAATACGTGTCGGTAAGACACAATCAAACATATCCATGCCGCGAATACTACATTC -GATTAACGCATCTGGAGATCCTACACCCATTAAATATCTTGGTTTATCTTTAGGCATAAACTGCTCTGTA -TGTTCAACCATTTTATACATAACCGGTTTAGGTTCACCAACTGACAAACCTCCGATTGCATAACCAGGAA -AATCTAATTCTACTAAATCCTTTGCACTTTGTTCTCTTAAATCTTCATATTCGCCACCTTGTATAATGCC -GAACAATGCTTGATCTTCAGGTCTTTGGTGTGCATCTAGACATCTTTTCGCCCAACGCGTTGTACGTTCA -ATAGATTTTTTTACATAATCATATTCAGCAGGCATCGGTGGACATTCATCAAATGCCATCATAATATCAG -AACCTAAATCATTTTGAATTTGCATTGATTTCTCAGGACTCAAAAATAATTTAGACCCATTAGTATGATG -TCTAAATTCCACGCCTTCTTCTGTAATTTTACGTAAATTACTTAAACTAAACACTTGGAAACCGCCTGAA -TCTGTTAGAATCGGACCATCCCAATTCATGAATTTATGTAATCCCCCAGCGTGTTTGATAATATCATTTC -CGGGTTGTAACCACAAATGATATGTGTTGCCCAAAATGATTTTTGCTTCAATTTGTCTTAACTCTTCTGG -ACTCATTGTTTTAACGGTTGCTTTAGTACCAACTGGCATAAACATAGGTGTTTCAAATGAACCGTGTGGT -GTGTGCACGATACCTAAACGCGCACCTGATTGTTTACAAGTTTTAATGTGTTCGTATGTTACTGCAGGCA -TATTCAAAATCCTCACATTCTTTTTATATAATTAACATTGCATCGCCAAAACTAAAGAATCTATATTCTA -AATTTACTGCCGTTTTATAAGCATTCAGAACATTTTCACGAGTACTAAACGCTGATACTAGCATAACTAA -TGTTGATTTTGGTAAATGAAAATTAGTAATCTGGCCATCAATAGCTTTAAAATCAAATCCTGGATAAATA -AATATATTAGTCCAGCCACTCGTTTCAACAAATTTATCATGATCGCGTCGAATTGTTTCAAGTGTACGTG -TTGAAGTTGTACCAACTGATATAATGCGATGTCCTTTGGACTTAGTATCATTTAATAAATCAGCTGTTTC -TTGTGTCATTTGATAATATTCACTATGCATTTCGTGGTCATTCACATCGTCGACGCTCACCGGTCTAAAC -GTACCTAATCCAACATGTAATGTAACAAATGCGATATTAACACCTTTATTTTTAATTTCAGTTAATAACT -CATCAGTAAAATGTAATCCAGCTGTTGGTGCTGCCGCTGAACCACTTTCTTTAGCGTAAACTGTTTGATA -ACGATCTGGATCATCTAAACGTTCTTTGATGTATGGTGGCAGTGGCATTTCCCCTAATTCATCTAATCTT -TCTTGTAAAATACCTTCATAATGTAAACGCATGATACGTCCACCTTGATCCATTTCTTTTATGCATTCAG -CTATAATTTTGCCATTACCAAAATTCAATTTATTACCAACTTTAATACGCTTAGCTGGTTTCAGTAAGAC -TTCCCAATCATTACCTTCAATTTGAGTTAACATTAACATTTCAACTTTTGCACCAGTTTCTTCTTTTAAA -CCAAAAAGTCTAGCTGGCATTACTCGCGTATCGTTAAGCACTAATGTATCACCAGGTCTAAAATACTCAA -TGATATCTTTAAAATGTAAATGTTTCATTTCACCAGTTTCTCTATCCATGACTAATAAACGACTATGATC -ACGATCTTTTAAAGGCGTTTGAGCAATTAATGATTCTGGTAAGTCATAGTCAAATTCTTCAATATTCACG -TTATTCTCTCTCCTCATTCGACTTTGCAAAATGTTCATAAGCTAATGGTGTTGCTTTTCTGCCACGCGGC -GTACGTTCTAAAAAGCCTTTCTGAATAAGAAATGGCTCATAAACGTCCTCAATTGTAATACGTTCTTCGC -CAATTGTTACGGCAATCGTATCTAAACCAACAGGTCCACCATTATACTGCTTAATAATACAGTTCATCAT -TTTATGATCAATGTAATCTAGTCCGTGTTGATCAACTTGAAGTAAACCTAATGCGTGCTTTGTTGTTTCA -ATGTATATTTGTTCATCTTCATTCACTTGCTGGAAGTCTCTTACCCGTTTCAATAGTCGATTGGCTACTC -TTGGAGTCCCTCTAGAACGTTTAGCAAGTTCAATAGCACTTTCTTCATCAATACCTGTGCCTAAAACCTC -AGCTGTTCTAATAATGATTTCTTTTAAATCTGATTCATTATAATATTCTAATCTTAAGTGCACACCAAAT -CGATCCCTTAGTGGACCTGTTAAGCTACCAGCTCGTGTTGTTGCACCTACCAAAGTGAATGGAGGTAAGT -CGATACGGATACTTCTAGCCTCATCGCCTTTACCAATGATAATATCTAAAAAGAAATCTTCCATTGCAGG -GTATAGCACTTCTTCAACAACACTACTCAGTCTGTGTATTTCATCAATAAACAAAACATCTCCAGGTTGA -AGCCCTGATAAAATTGCAGCCAAATCACCAGGTCTTTCTAATGAAGGCCCTGATACTGTACGTATATTAA -CTTCCATTTCATTGGCAATGATATTAGATAATGTTGTCTTACCTAATCCAGGGGGGCCAAAAAGCAATAC -ATGATCTAATGGTTCATGACGAAGTTTAGCCGCTTTAATAAATACTTCTAAATTACTTTTTATTGAATTT -TGACCAATATATTGTCGTAATCTCGTAGGTCTAAGCGACAATTCGAAATCAGTTTCTTCACTATGCATTG -ATTGATCAACCATACGCTCATTCATGACAACACTTCCCCTATTAATCTATTTAAAATTAAGATACAACTA -ATTGAAGACCTGCCTTAACAGCTTCATCAACTGAGTCATATTTATTTTTATTTAACGTTTTCTCAACTTT -TGCAAGCTCTCGTTTAGAATAACCTAATGCTTCTAACGCTAACATTGCTTCTTGCACGAATTGATCTTGC -TCCGTCGATGTAGCGTCTACTTGTAATAATGAATCGCTATCTTCTTCAGTGATTTTCACTTTACCTTTTA -AATCTAAGACAATCTGTCTTGCCGTTTTCTTACCAATTCCTGGGAATTTAGTTAAATACGTATCATTTTC -ATTTTCAATGGCACGTTTTACTTCATTAGGTGTACTTGTCGCTAAAATAGCTAAAGCTGATTTCGGACCA -ATACCAGTGACTTTAATTAAACTCAAGAACATATCTTTCTCTTCTTCACTACTAAATCCATACAATAATT -GTGCATCTTCACGAACAATTAAAGATGTATGAATTAAAACTTCATGATCTAGATGCTTTTGAAAACGATA -AGAATTTGGTGTTTGAATTTCATAACCAACACCAGCAGTTTCAACAACTACGTGTGTAGGATATAAATGT -GTTAACTTACCTTTGACATACGCGTACATTATAGGCACATCCTTACATACTCATACTAATTAATTCTACT -TTTGATACATAATCTAAATTTCTCAAAGCGCCAATAACATCTTCTACTGAAGTTTCTTTAGATTTAGCAT -TCAGTGATAATGTTATTGTTGCTTTTTCTTCCATTGGAATACTTTGATGAATCGTTAATACAGATAGTTC -TAACTTTGATATAACATCTAGTACACGTGCCAACATACCCACAATATCAGTTACATATAAAATTAATGTA -AATTCTCGATGGTCAAGCATTTTATCGTCTACTGGAAATATCGTTTCTCTATATTTATAAAAAGCACTTC -TAGATAGATCAAACTGTTTAACGGCATCATAAATGGACAATGTCGGATCACTTTTTAAGGCATCTTTAAT -CTTCAATGTTTTAACCACGGATTCAGGCAAGACATCTTCTCTAATTAAATAAAACTTTTTATAATCTTTA -TTGTCCATCATGTTACGCTCCTATTCAACGAATTCAAATTCTCCGCCAAGAATTCTAACGATATCACCAT -TTTTACAACCACGTTCTCTAAGTGCATCATCAATACCCATCGAACGCATTTGACGAGCAAATCGACGTAC -TGCTGGATCGCTGTTAAAGTCAGTCATTTTAAACATTCTTTCAATAGCATTACCACTTACCACATAAGCA -CCATCATCATCTCTTGAAATTGTAAATTTATCTTGTGACGGTGTATGTTTATATAATACTCGGTTAATGC -CAACTGACTCCTCTTCTTCAACTGTGAAGTCAACATCTTTATATTCTTCTAATTTATCTGCTATTGCATA -TAATAATTGATCAATATTATCACGCGTTATTGTTGAAACTGGAATAACTGGCACATCTTCGCCAATTTCT -TCTTTAAACAAGATTAAATTATCTTGTGATTCAGGTAAATCCATCTTGTTAGCTACTACGATTTGAGGTC -TATCTTCTAAACGTTGCTCGTACGCGGCTAATTCTTGATTAATGACTTTATAATCTTCAATAGGCTCTCT -ACCTTCAGAACCACTCATATCAATCATGTGAACAATAACTTTTGTTCTCTCTACATGTCTTAAAAATTGA -TGTCCTAATCCAACGCCATCAGATGCACCTTCAATTAAACCTGGTAAATCTGCCATAACAAAACTTCGTT -GATCAGGTGTTGAAACAACTCCTAGATTTGGTTTAATCGTTGTAAAATGATATGCCCCTATTTTAGGCTT -AGCTTTTGAAACGATAGATAATAAAGTCGATTTACCCACACTAGGGAAACCTACTAATCCTACATCAGCT -AATAATTTCAATTCTAAAGATACATCTAATTCCTCACCTGGTTCACCTTTTTCACTGAAGTCAGGTGCAG -GGTTTCTAGGTGTTGCAAAACGTGAATTACCTCGGCCACCTCGACCGCCCTTCGCTACTACAGCTCTTTG -ACCATCTTCAACAAGATCTGCTAACACTTCATCTGTTTCAACATTTTTAATAATTGTGCCAGGTGGAACT -TTTAATACTAAATCTTCCGCATTTTTACCATGCATATTACTACTTTGGCCATTTTCACCTTTGCTTGCTT -TAAAATGACGTTGATACCTAAAATCTAATAACGTTCTTAAACCTTCATCCACTTCAAATACGACTGAAGC -ACCTTTACCACCGTCACCGCCAGCTGGTCCACCAAATGGTACATATTTTTCTCTTCTGTATGCGGTAATA -CCATTACCACCATCACCGGCTTTAAGAGATATTTTGACTTGATCGACAAACATATATCTCACCTCTTTTA -CATATAATTTTCATTTTCCCAATAATTATAGCATATTAGAGCCCCTTATATATTGTAAATAATTAGGGGC -TCTTATGCAGTTGCTTTTATAAATCTTTGCTTTAAAATACTTATATTTCTCAACACCAATTGTGGTACAG -TTTATTCTTTAAACGCTGCAACTGTAATCCTTTTAGCCCCTTATATATTGTAAATAATTAGGGGCTCTTA -TGCAGTTGCTTTTAAGTTTACTTTACTCAAATTGCTGATATTTCCGAGTACCAAATTCGATACTTTTTGC -TTTTTATACTGCAACTGTATTCCTTTGTCCCCTTATAGTTTAGCGATTAGGGGCTCTTATGCAGTTGCAC -ATTTAGTATAATGTCTATAATTCCCATTTTTTAATAACAAAATGAAAATAATAATGAAAAACGTTTTATA -AAAAGTAAAAAACACCAGAAGATTCACTTCTGGTGTTAACTAGACAAAATTATTCAGCTACTGCATATAC -AGAAACTTGTTTTTTGTCGCGACCTTTACGTTCGAATTTAACAACGCCGTCGATTTTAGCGAATAATGTA -TCATCGCCACCACGACCTACATTTTCACCAGGGTAAATTTTAGTACCACGTTGGCGATATAAAATTGAAC -CACCTGTTACGAATTGACCGTCAGCACGTTTAGCACCTAAGCGTTTTGATTCAGAGTCACGTCCGTTTTT -TGTAGAACTTACCCCTTTTTTAGATGCGAAGAATTGTAAGTTTAATTTTAACATCGGAATGCACCTCACT -TATAATTTAATCTAATATTCTCATTATATTCTTCTTCAATAGTTTGTAAAGACACAAGCATTGTTTGAAG -AATTAGTTGCGCTTCATCGTTATTTGTATCAACGCTTCTTATATGAAAATGACCACCATTGTCGTCATAA -TTGATATCTGGTCTCTCAGATGTCAATCCTATAATCGCATTAACACTACCAAACAATACAGCTGAAGCTC -CAGCACAAACGATATCATGACCATATTCACCATGGTCAGCATGGCCATCCATAATAACGTCTGTTACTTT -GCCTTCATCATTAACTGTAATATCAACAGTAATCATAATAATTACGCGTTGATTTTATCGATTGTTAATT -TAGTGTATGGTTGACGATGGCCTTTTTTACGTTTTGAATTTTTACGACGTTTGTATGTGAATACAGTGAT -TTTTTTACCGCGACCTTGTTTATTAACAGTAGCAGTAACTGTTGCACCTTCAACTGTTGGCGCTCCAACT -TTAACTGAATCTCCACCTACAAATAATACTTTATCAAATGTAAAAGTATCTCCTTCGTTTACGTCTAATT -TTTCAACGAAGATTTCTTGACCTTCTTCTACTTTGATTTGTTTTCCACCTGTTTCAATAATAGCAAACAT -ACTTTGCACCTCCTGTATAATAAGTCACGCCATACATAGGTGACATTTCGTTATTGAGTCAAGCGTTTGC -ACTCTACGTTGTTTCGGTCGCAACTCGAGTCATTTATAAAGATAAACTCTTCTCGTTTCTTCCTTCAACG -CCTTGATTGACAATCGCTTTCTTTCAATAACTTCTGCAAATGAGTCAAGCGTTTGCACTCTGTGGGAAAA -TCGCTTTCTTCATTAAAAATGTTCTTGAACCTATATTTGAGCGGTTGTATGTAGCTACTTATAACTACTC -AACTATTGCATCTTACCATTGACGGCGTTTCATGTCAATGTCATTGTTTGTTTTTTTAAGGAACTTTATA -ATCAACGGATAAAGCATGATCAACAGTACAAAATTCATAATTAATGTTGGCAATAATCTAAAGACTACAA -AATGAATAATATCAAATTGAATGAATCCTAACATACCGTATATTAATGCCACATAGACTTCTAATAATAA -GGTGCTAGCTAATATAATAATGAATAACATCGAATGATCTTTGTAAAAAATTTTAAAGAATCGATCTATA -AGTGCTAAAAACAATATATAGCCAAATAAGTACACTCCATAAATACTACCAAAGTATACATCAGTCATTA -CACCTAAAAATATGCTGAGCAATAATGATACGCCAAAGCTACGATACACTACCATCATTAAAATATACAT -AAATGTAAGGTGTGGTACAAATACAAGTTCAAACTTACCTATGTGCATTGGTATAAGAAGCCCAATTGCA -GTATCTATATAAAATAGTAAAATACCTATCAAAAAATAATACAGTGTACGCATTATTTATCCCTGCTTTC -ATCATCAGGAATTGTTTTAGGATCTCTTTTTGCAACATAAACATGGCTCAAATCTGTTAAGTCTGCACCA -GTCTTAACCCTAACTTCTTTAGCTAAGCCGTATTGATCATTTTGAACCTTAGTCACTTCTCCTATATATA -AATTACTTGGTAGTTGATCAGCTAATCCACTTGTAACGACTTTATCACCTTTTGAGATATTATCTCTATT -ATTAATATCACTAATTACAAGTTCTGAGTTCTTTTCATCATAACGATCAATTAAGCCAAATATATTTTTA -GAACCGTGTTGTATATTTACAGATAATTTACCCGCACGTGTATTAGTTGAGATTAAATCAACTTGTGAAG -AAAATTTATTAACTTTAGTAACTCTTCCAACAAAACCTTGTGATGTCATCACAGCCATATTTGAAGTTAT -ACCTGATTTAGATCCCTTATCAATTACAATTGTATTCATCCACTGATCCGGATTTCTTGCTAAAACCGTA -GTAGAAATAGGATCAAATTTTGAAATATCTTTTAAATCAAGCTCTTTTTTTAATTTTTCATTTTCCGCTT -CTAATTGTTGGTTCTTAGATTCTAACTGGCTAATCTTATTTTTAGATTCTTTAGAATCTCCTTTTTTAAA -AAAGTCCCCAATCGTACCAGCAACAAAATTAACTGGATAACTCACAACTCGTTGTCCAAAAGACACAGAA -TCACCTATATATTGTTCAGGAGGTGATTGAGATTGTGAACGTATGGACAGCCCAATTAATGCAATAAAAA -CGATAATTGCACATAAAACAACAATTAATTTGTTATTTTTAAAAAACTTAAGCACCCAGAACACCTCTAT -TATGTCAAAATATTGTATATCCTTTTCTATTTTATATTACTCCCATTATGAAATAAAGCACTAACTACGA -ATTACTTTGAAAATGAACAACTCCGTAAAAAAATTTGTGGCATTTTAAAAACAAAAAACTACTAGCAAAC -ATTCCAGTCACTAGTAGTTTAAATAATCGATTTAAATTTTAAAATTATCTGTTTGTATCGTTCGAGGATT -CACTGTTCGAATTCTGAAGTTGTCTCCAACGTGCGAATAAGTTCTGGGCCTTTTGTTGTTCATTAGCTTG -TTTCTGTTTTGATTGTTCTGCCATTTGAACTACACCAACCTTTTAAATTTATTCTAGTGACAGGATAACT -AAAATATATTTCTTATGCAATAATTTCCTATTGATAAGCATTTTCGGGTTTTAGTTGTAAATTTTGCCCT -AATTCATTTAAGTCTTGTTGCATTTCAAATTCAGTATTGTAAACACGCATTGACTCATCTCCAAATTTAT -AAAGAATAAATTCGTCTCCTCTTTGACCTATAATATATTGATCATTATAAGCCATGCGATTCATTCCAGA -CACAGCCATAAACTCTAGTTTATCTATCATTTTAAATACATTTTTAATTTGGCTTAATGGTACATTTTTT -ATTAAATCATTTTCTTTTAATGAATATTTCTCACCACTTACATAAACATGTTGGGCATCATTAGTGGGTT -GCGTAACTTGATTCATTTGATCATTATCGTGATTTACAGGATTCCAATCTTGTTCTTTTAAAAAAGGTGC -GTATTTCAAGGCGATATAAACAATTATCACAATTGCTATTACTGCTATAATGTTTTTAATCATACTAAAT -ATCAATCTCATAGTTCGCCTCCAATGTCTTCATCTAATTATATATTTTATTATGTATATTTTCCTCAGTC -TTCAGCCTTAATCATGATATATCTTAGGACTGATGCACGTTCATTTAAAATGGCTTATAATTTTGTTATG -ATTTAAAAGCGTATGAGGAGGTTTGTAGCATTGAGTATACTCACAATTATTTTAATAGCACTATTAGTCA -TCCTCCTTTTTAGAGTTGGACTTTCTATTTTGCGATTTTTAATTTATGTCGGACTTGTTTTATTATGTAT -TTACTTAGGATATCAAGGCTTAATATGGTTGCTCGATTTTTTTCAAATAAATAGTGGATTTTTACCACAC -TTTCAATTTAACAATTAAATCTATTCTGCATAACAAAACTCCTAATGTACTAGTTTAGAATTTTTTAACT -AGTTCCACATTAGGAGTTTAATTTGTTTTCAAGCACGTATACTACTTGATGAACAGATTACTATTATTTA -CGCCCAAATGCGTTAGATAAAAATCGTATCAGCGCGTAGCTACCACTTAGTAATAGGCCCCAAACGATTC -CAGTAATAATTGAGCCTATTGCTACACTTAATAAAGGAAAAGCTTCTTTCGTAACAATCACACCTGCTAA -TGCCGTTACTAAAATACCTAACGTAGATAAAGCTAATGTTATTAATAGATTGCGCTTTGTTACAGGTTCA -TTTTTAATATTTAACTGCATGGTATAAACCATTGGCACGAGAACCCCGATAATAATAAATAGAGTCACTA -TTTTTCCTCCAATGAAAGTACTTCGTAGGTATTATACACAAGATACGTCATTAATTCTATCAACTTCAAT -CATTTTCATCAAAGTAACCCGCTTCTACAAGACTGGTAAATCTATTATCACCGATTATAATATGATCCAA -TAAATCTATTCCTAAAATCAAACCACACTCCTTCAACCTCATTGTTGTTATTATATCTTCTTGTGAGGGC -GTTACATCTTATCAAGAGTAAATTACAAAAGAATCATTTAAATCAATACTTTCACTTTGAATACATGTAT -TTGAAGTGGAAGGTACTTATTTCAAAAATAGTAAAACCTGTATCTTAAATTACTTAATAGTAACATAAGA -TACAGGCTGATTTTTTATTCATTGTTATTTATACTAAAGCACCCGATAGCTCTGAAAACAATCACAAATT -CAACTTTTCAAAGCCACAGCTTTAAGTTATTTTGTCCAGACAACCCCCATTGCCCAACCCATTTTATGGA -ATTGGCATCCAGGCAACAACTTTTCATATAAATCGTAATAATTTTGTTCAGATAGGTACTTATCTGAAGC -TAAATGCTCAAGCCATGATTTAGATGTGTTGTGATTATAAATTCTAATCGCATTTTTTATTCCAAATTTG -AAACAATGCGGTAAAAACTCTTGGATTGCCCCTAATTTATAAACATAGGTAGGCGGTGTCTCGACTTCAG -ATACATTATCAAGAATAACTATTCTTCCTTCCTCATTCAACAGTTCCTTCATTTGCTGTATTACGCTGGC -TATATCATCCAAATGATGAAAGGTTGTTCGGCTTACAATAAAATCAAACTTCTCATTAAAATTAAGTTGT -TCTGCATTCATATTCAGATAGACCGTATTTGTTAGTTGACGTTTAGATTTGGCAAGATCGAGCATTTGAT -TAGAAATATCAATCCCTACCACTTCATCATAATAACTTGCTAATTTCTCCACTAACAAACCCGAGCCACA -TCCGATATCTAATGCTCTGCCTTTCTTTGGAGACATATTAGACACAAAGAATGAATAATCATTCAAAAGC -TCATTCACGAAATCGTAATCTTCTGCAACCTTATCAAACTGTGATTCTATTGTATTCAAAAAGATCCCCC -ATTCCTACTTTATCGACATTCTTTCATTACTTACCACTTTAGATGTTTTTTCGTTGGGGATAAAACTTCC -CTTTAGACAATTTTATCCAAAGACAATACAACAGTGCAACTTTATTAAAGTCACTGTCCTTTATCGCAGC -CTTTACTTTTTAGTAAAGACAGTGGCTTCTCTTATCAAGTTTCAAAACATATTATTTTGAAGAAAACGTC -CATCTGAAGTGTCAAGTGCAAAATTACATATAAAGGTTTATTCTAAAATGAAAAGATGATACAATCATAT -TCAGTTACATAAGGAGGTTTCAATTATGTGCACCAGTATCGCAGTAGTAGAAATTACTTTATCTCATTCA -TAATGAAAAAAATGGAAAGGAGATAAAAGTATGGGTACTTTTTCTATATTTGTTATTAATAAAGTTCGTT -ATCAACCAAATCAAAATTAATTGGTTATAATGAACGCTTAATGTCAGTTCATTATAACCAGTAAGGAGAA -GGTTATAATGAACCAGTAAGGAGAAGGTTATAATGAACCAGAAAAACCCTAAAGACACGCAAAATTTTAT -TACTTCTAAAAAGCATGTAAAAGAAATATTGAATCACACGAATATCAGTAAACAAGACAACGTAATAGAA -ATCGGATCAGGAAAAGGACATTTTACCAAAGAGCTAGTCAAAATGAGTCGATCAGTTACTGCTATAGAAA -TTGATGGAGGCTTATGTCAAGTGACTAAAGAAGCGGTAAACCCCTCTGAGAATATAAAAGTGATTCAAAC -GGATATTCTAAAATTTTCCTTCCCAAAACATATAAACTATAAGATATATGGTAATATTCCTTATAACATC -AGTACGGATATTGTCAAAAGAATTACCTTTGAAAGTCAGGCTAAATATAGCTATCTTATCGTTGAGAAGG -GATTTGCGAAAAGATTGCAAAATCTGCAACGAGCTTTGGGTTTACTATTAATGGTGGAGATGGATATAAA -AATGCTCAAAAAAGTACCACCACTATATTTTCATCCTAAGCCAAGTGTAGACTCTGTATTGATTGTTCTT -GAACGACATCAACCATTGATTTCAAAGAAGGACTACAAAAAGTATCGATCTTTTGTTTATAAGTGGGTAA -ACCGTGAATATCGTGTTCTTTTCACTAAAAACCAATTCCGACAGGCTTTGAAGCATGCAAATGTCACTAA -TATTAATAAACTATCGAAGGAACAATTTCTTTCTATTTTCAATAGTTACAAATTGTTTCACTAAATTAAA -GTAATAAAGCGTTCTCTAATTTCACAAGAGGACGCTTTATTCTTCCCAAAAATTGTTCAATATTTATCAA -TAAATCAGTAGTTTTAAAAGTAAGCACCTGTTATTGCAATAAAATTAGCCTAATTGAGAGAAGTTTCTAT -AGAATTTTTCATATACTTAACGAGTGCTTTCACCTTTGAATATAGTCCTTCCCACTTATCATCACACTCT -CCCCGATAGCCTTTTCTAGCTATATCCAGTAAAGTTACATGCTCTTTAGGTAAAAGAGGTATAGCCCATT -CTGCAGCGACATCTTTCGAGGTAATTTCACCAGTAGTCACTGTTTGCCACATTCGAGCTAGGGTTAAAAT -TACATTACGCTCATCACCTTTTATCCCCTCAATTAGTTCTGGCAAAGAATCCTTAATTGCTCTTCGAATA -TCTGTCAAAGGTACGGAGACAAGTATACTTGAAGAATCAGGACCAAATAGAGAAATACTATTCTTTCTTG -CTTGTGCTAAAACAATAGCCAAATCAGGATCATAGCTTGGTTCCTGAATTTGTCCATTCTCAAATTCACC -CCTGAGCCACTCACCGTATATAAATTCTCTTTTTGGAGGATATTGCCAAGGGACAACTTCACTCCTATTT -ATAACCGTAACTTCAAGTGGTCTAACAGAATCCGTATTTCCAATCTTTCCTGATATAGTCATTAGTCTTT -CTGTTAGTTTTTTTCGAGTTAATTGAGGTAAACTATGATTCACGACGACTAGAACATCTACATCGCTGTT -AATGCGTAAACCACCATTTACTGCTGAACCAAATAGATATACTCCAACTATTGAACTTCCAAATAAATCT -TTTACGATTTTTAATGTTTGAATCGCTTGATTTGGTATTTTTCCGTTAATCAAATTGCTCATGATTTCAC -CTCGTTGATTATGTTCATATAAAGTTTATATTGATACTCAATTTACTTACCCTAGATTGGACATATACTT -AAATTACTGTTCAATAAAGCTGACCGTTAGCGTTTAAGTACATCCTTTCACAATTTGTCTACAGATTAAT -AATTATTCTTTATTATACAGATCTCCATATAATTTTTGAATTTGGTTCTGTAATTTTTTATTTTCTTTTT -CTAATTCCATTACTCTTCTTTTTAAGGTTTTAATAAGGATTTCCTCCGAACGAGAACTTTTCTTGGGTTT -TGAGACTACATTTGCTGTTATTTGACGCTCACGAAGGGATTCGATTCTTTGCCTAATATCGTGTTCCTTA -TAAAGCCATGATTTAGAAACATTAGCTTCCTTTGCTATTGAATTAAAATTAATAACTTTACCTTCAATCG -AAAATTTAGAAATCGCTTTGTCTACTTTTTCCCTTGTCTTTTTTGATTTCTGCTTCGCCAAACGTACAAT -TTCTGTTGTATTTCTAACTTGTTTATCCATTGATAATTACCCCGTCAAACTTCCAATGATTTGTTCTAAA -CGCTCTTTAACACGGCTATTAGTCTCTACTTGTCTTTGCCATTGTTTATCCTTAGCTATGGCTAATAACT -CTTCTGTACGCTCTAACTGTTCTTCGTGCTGTGGTAAGAATTGCTTACTGGTACAGAAGTGAGTGCAATC -TAAGCATGCATTCGCATGTGGACAACCACCTGCTACTACTGGCAATCTACAATAACCATTTGGAAGCACT -TGTGCATTTATATTTTTCTTGAACCATTGAAGCTCTACATCATCGACTTCATTATCTTCATCTAGATCAA -GCACATCTCCATTATTGGTAACCAGTTTTTCCTGAAATTTAGTAAATTCATTTTTTAGAGTTTCATCAAA -GATATGAGCGTATCTGCTTGTCATTTCTGGGCTTTCATGCCCCAAAAATTTCTGCACAATATGCTGGGGC -ATCCCGTTGTTAATCATTCTTGTTCCTACTGTATGGCGAAAGGCATGGGCATGGAATCTATAAATCTCAC -CTGATTTATCCACTATATTTTGCTCATAAGCTAATTTATTTAACTCACCTCTAAATGTTTCTTGTTTTAA -TGGCGATCCATCTTTTCTTGGAAAGAGGTATTCACTATCTGGAAATTCCTCTGAAACTTTATCTTCCCGA -ACTTTAATAAGTAAAGCTACCTCTTTAGATATTGGAACTATATGCTCCTTTTTCATTTTCCATTGATAAT -ACTTTAAAAAGAAATCTCCATCTTTGTCCTCTAATAGACAGCCTTTTTTCAAGGTGCACAATTCACTTAT -CCTCATTCCACATTCTTGAACAATCATAGTCATCGTAGCTATATATTCGGGTAATTTATCAAGATGACTG -TTCAATTGCTCTAGGACGAATTCATCTATAAAGCGTGGTTTTGCTCTTGGTATTTTCGGATAGTCCTCAG -AATAAATTAATATTTTGGAAGGAACATCATCCCATTCTAGCCTAAGAAGGGTACTAAATAGTCCTTCCAA -TATAGAGATCCTCCCAGTTATTGTACTAGGTTTTATTCCCATCATGTTTAGTTCACTTAAATATGCTTCA -ATTTCCACTCTCGTTAATTGGTGTACTCTCTGAACTTGTTTAAATTTCATGTCCAGAAAATTAAAGAACT -CTTTAAGTCTTTGGGCAATATCACTTACATAGGAAAAGCTATCCACGTTCAATCTCAACTTACAATATCT -TTTTACAAGTTGTTTAAAATATGTATTCCGAAACCCTTTAAAGTTAATTGTATATTCATATTGTGTTGGG -TTAACCTTATCATCTGGCAAAGGTAAGTTACGTCTATCCCAAACGTCTTTATCCCACTCCTCTCCATCAA -AATAAAAGTTCTCATAAAACTCCATAAATTGTTTTAGATTAGTAACATAGTAGGAATTAGCTTTTACAGG -TGTTTTTTCTTGATTAGCAGTAATCTTATAATTAGTAGTGGTAATTCTAACACCCCGTTTTGTCAAATAA -GTTCTATACTCCGTCATTGCTTTTTCAATAGGAACTTCAGTAATTGAAGTAATGCTAGGATACTTTAAAT -CTAAGAAATCTAACATTTTATTAATTACTGTTCCTTTTCTAATCCAGACAGTTTTTGCATTCCATATTCC -ATTGTTTAAATGGTAAAAATAAAAATATTTCAATTCTGTTCTTAACCACAGATTTTTAACACGTTCAAAA -CGAACCCAACGATTCCTTAAAGCAGGATTCTTACTTAATTCTATGGCAGAAGGATGTGGACATTTTCTTA -TATCCCAACTATTATTAGCCCAAAACCCCTGCATTTCTTCATTCATTACAGCTATTTTTTTGCTAATCTC -ACTCTGACTAATAATTTTCCTTTTACTAGAAGCATTCATTTCTTATGCTCCTTTCTCTCGAGGTATTTAT -TAAACTCATTTTTCATATCCTGATCTGAAAGATGAACATAGGTATTTAACGTTGTCTGAACATGTGCGTG -ACCTAATCTCTTTTGAACGAACGCAACATCCCATCCTTCCCTAATTAGCTGCGTTGCGTGAGTGTGGCGA -AGCATATGTGATGTAAATTCTATTCCAGTCCTTTTAACTATTCTTCTAACTAGATCAAGAACACTTTGGT -ACTTTAGTGGTTTCCCAAAATAGCCTTCTTTTAAGGAAATAAAAACATAATCATGCTCCAATTCCTCACT -ATACTCATATATCAAGTAATCTGTATAAAGTGACATAAGTTCTTTACTCACATGTATTGTTCTTTCCTTC -CTTAATTTAATATAAGCTTCATTAACATTAACATCTCTAGGTGTTAAATGGATTTGATTGTCCCAAGTGA -CAATATCTTCAAGCCTAAGCGATAACACTTCACCGATTCTTAAACCACCCTCATACATAAGCATTAAAAT -TAATTTATCTCTTTTCGTATGACAAGCATCAATAATTTGCTTAACTTCCTTTGATCTCAATGTTCTTATC -TGTTTCTTTTTAACCCTTAACTTTAAGACATTCTTTTGGTATCTACCCTTATTAACATGATGTAAAAATC -CTTTGAAATTTCTTCCCTTTGCTTGTTTAAATACATCAATTGATTTAAATTCTCCTAATCTACTTAAATA -ATCAAGAAAACTCATAACTACATTTAAAATTGTATTCACTGTCGTTTCTTCTCTTATGGCTTTTTTTGAC -TGAAGATCAATTACATTTGATGCTGAAGGATATCTCAACCAACCTACGAAGTCTGCTAACAACTCAAAGT -TAATATCATTAAGAATAACACCTCTCTGTTCCATGAACTCGTACAGCAACTTTAAATGATAGCAGTATGC -CTTAATGGTATTAGGAGACTTACCAGTATTATCTAAGTATTTAATAAATTTCATTACTGGTTCTATTAGC -TGGTATTCTTTATCTAGTAATAAATACAATGGATACGGCTTATTCTCCACTTCTATCCTTTGAACCTTCA -CATGTTCCCACCTCTTTAAATACTTTAACTACTACAAATTATAAACCTTGTTAATTTTTATTTAAAGTAA -AATATCCCTTTAATATCTCCTCTTAAACTACTTTAACTACTATTATTTATTATACTATGGTTAATACATC -ACCGGATGGATGATTATGAACTGCGATGATTGCATTGGCATTTTCTCTCACCGCAATACTAAAAAATTCA -CGTGGATGTACAATCGAACTATTTAATGTACCTTTAAAAACACAGGTTTCTTTAATCACTACATTTTTTG -AATTTAACAATAAAATGACAAAATGTTCTTGTGTTAAATCTTTCATTGTTGGAATCATATAATCAGCAAC -ATCACTTGGTTGCGTTATTTTTATACGATTATTTTCAGCTCTTCTCCCCATCCTTTCCCCTAACTCAAAT -GCCGCTTTTAATGTAATTGCTTTTTGTAATCCAATCCCTTTAACTTGTATCAAATCGTTAATTGAAGATT -TTTTCAATTCATTCAGATTCGATGCAGATTTAAGCAGTTCATTACTAATGTCAATACTCGAGAATCCTTT -TCTTCCGGTGTTAATTAATATAGCTAATAATTCTGTATTCGAAAGACTTTTTGCACCATGGCTTAACAAA -CGTTCTCTTGGCATTTCTGAAGTTACCATTTCTTTAATTTTCAAAAATATACGCCTCCTAAAAATTGATG -GATATCATTATAAAAAAGTGAATTGATAAAAAAGGAAATAAATATAAATGGAACAAGGGGTAATAGTTTA -ATCGGCTTAAATATCATGGTAATTAAAGCAACTAAACCAGCAATGACAAATGTAAATATAATGACATAAA -TAGTGAATTGGAGAGGGAAAAACAAAGAAAGTGCAGATATTAGTAAAACGTCACCATAACCAATATATGA -CCGAAATAAAAAGTAGAATATATGCGTGGTCATACTAATAATGATAAAAGCTACTGGATAAGTAATACTT -AACGAGAGAGAAACAATACAATAAATTATAATTAAGCGACAATCTAACATTAAAGAAGTGATATCGGTCA -TAGTAAAAATAAGCAGAAAAACATATGTAGTTATAAAAAGCGTAGCATTTACGTATGTGAAATCATACTT -AATAAAGACGATAGGTATTAAAGCAAAGGTTTCCCCAAAGAAATGTGTTAGCGAAATACGCTTATGACAG -TTTCGACATCTCCCTTTTAATAATAAAAAACTAATAATCGGCATTAATTCATACCATTTGAGTGATGAAT -TACAATAATCACATTTCGATCTTCTATGTAAATAATCAAATGACGTTTCTTCAATAGATATAAATTGATA -TAGAAAACTAAAAATACAACTGCAACTATAAGATAACAATACTACCAAATGACAACCTCCTTACGTAAAT -TATAGTTACTTATTACCAAAATGTAAATATACACTATTCTCCAAATATTGAACCTCTTTTTCATTTAAAT -TTTTCAATATTACTAAGCATAATTGATGGATACTTTAACAGCCCATTACTGCTCGGCAAATTTAATAATG -GCAAGAAATTAACCTTATAAACACATACGATTTAGAGCATAAAAAATAACCATGAAGCTACCTATTGATT -AAATAGATTCTTCATGGCTATTTTAGTTTTATAATGCTTCAAAGTCTAATTTTGATTTAACTTCACTTAT -GAAGTACAGACTACCGGTAATTACTAATGTATCACCTTGATAATTTTTTATAAATTCTACGTAGTCATCT -ACTAATTGTATATCGTCATTTTCAATGCTACCTACAATTTCTTCTTTGCGTAACGCTTTCGGAAAATCAA -ATTCAGTTGCATAAAATGTATGCGCAATTAAACTTAAATGTTTGACCATCTCGTTAATCGGTTTTCCGTT -TATTGCTGAGAACAAAATATCTACTTTTTCTTTATCATGGTACTGTTTAATTGTATCAATTAGAGCATCT -ATACTCTCTGAATTATGTGCGCCATCCAAAATGATTAAAGGTTTGTCATGCACCTGCTCAATACGTCCAG -TCCAACGAACTGATTCAATACCGTCTATCATCTTATTGAAATCTAATTCAATTAATCCTTGTTCATTTAA -TTCAATAAGAGCTGTTATGGCTAATGCAGCATTTTGTTTCTGATGTTCACCTAACATACTTAAAATGATT -GTTTCTAATTCATAATCTTTATAACGGTAAGTAAATTCATCATTTTGCGATACAACAACAATTTCTCTAT -CTAATTCAATTGGCTTTGCATGTTGTTCAATTGCGCGTTCACGAACATACTTTAATGCATCTTCATTTTT -AACAGCATATATAACTGGAACGTTAGGCTTTATAATCGCGCCTTTATCCCTAGCAATATCTAGATAAGTA -CCACCTAAAATATCTGTATGGTCTAGACCGATACTAGTTAAGATTGATAAAATCGGTGTAAAGACATTTG -TCGAATCGTTCTTTATACCCAATCCAGCCTCAACAATGACAAAATCAACAGGATGTATTTCACCAAAATA -TAAAAACATCATCGCTGTGATTATTTCGAATTCAGTTGCAACACCTAAATCTGTTTCACGTTCCATCATT -TCACTAACTGGTTTAATACGTGATACTAATTCTACAATAGCGTCATTTGATATTGGCACACCATTTAGAC -TAATTCGTTCATTAAATGTTTCAATAAACGGCGACGTAAATGTACCTACTTCATAACCATTTTCAACTAA -AGCTGTTCTAAGGTAAGCAACTGTAGAGCCTTTACCATTCGTGCCACCTACATGAATACCCTTAATGTTA -TTTTGAGGATTATTAAATTGTGCTAGCATCCATTCCATACGTTTAACACCTGGTTTGATGCCAAATTTAG -TTCTTTCGTGTATCCAATACAAGCTCTCTAGGTAATTCATTGTTACTAACTCCTATGCTTTTAATTGTTC -AATTCTTGCCTTCACACCATCATATTTTTCTTGATAATCTTGTTTTTTACGTTTTTCTTCATTTATAACC -TTTTCAGGTGCTTTACTTACAAAGTTTTCATTAGAGAGCTTTTTATCTACTCTATCTAATTCGCTTTGAA -GTTTAGCTAATTCTTTTTCCAAACGGCTGATTTCCTTATCCATATCAATTAGCCCTTCTAATGGTAATAC -CACTTTACCTGCAATTACAACTGATGTCATTGCTTTCTCAGGAATTTCCACGTCAGTGCTTATATTTAAC -GTACTAGGATTACAGAATTTGATTAAATAATCTTTGTTTTGTGATAAAGTTGTTTCAATTTCTTTATCTT -TAGCTTGAATTAAAATAGGTATTTCTTTAGACAATGGCGTATTTACTTCTACACGTGATTGTCTTACAGA -TTTAATGATTTCAACAAGTTGTTGCATTGTTTGTTTACTTTCTTCAAAAATCAATGATTCACGCACTTCT -GGCCATGAAGCTTTAACAATTGTTTCACCTTCATGTGGTAAACTTTGCCATATTTTCTCTGTTACAAATG -GCATGAATGGATGTAGCATTCTCATAATATTGTCTAAAGTATAACTCAATACTGAACGTGTAACTTGTTT -TTGTTCTTCATCATTACCATTCATTGGAATTTTACTCATTTCAATGTACCAATCACAGAAATCATCCCAA -ATGAAATTATATAATGCTCGTCCAACTTCGCCGAATTCATATTTGTCACTTAGATCAGTAACTGTTGCAA -TCGTTTCATTTAAACGTGTTAGAATCCATTTATCTGCTAATGATAAGTTACCACTTAAATCGATATCTTC -AACTTTAAAGTCTTCACCGATATTCATTAAACTGAAACGTGCTCCATTCCAAATTTTATTGATAAAGTTC -CACACTGACTCAACTTTTTCAGTTGAGTATCTTAAATCATGTCCTGGAGATGAACCCGTTGCTAAGAAGT -AACGCAAGCTATCAGCACCGTATTCGTCAATAACATCCATTGGATCCACACCATTACCTAATGATTTACT -CATCTTACGCCCGTCTTCAGCGCGAACTAAGCCGTGTAATAACACATCATTAAATGGACGACGATCTGTA -AATTCTAAGCCTTGGAATATCATACGTGCTACCCAGAAAAAGATAATGTCGTAACCTGTAACTAAGGCAT -TTGTTGGGTAGTATCGTTTAAAGTCTTCGCTTTCTAAATCAGGCCAACCTAACGTAGAGAAAGGCCATAA -AGCACTTGAGAACCACGTATCTAATACATCTTCATCTTGTTGCCAATTTTCAATATCAGTTGGCGCTTCT -TCTCCAACATATATTTCTCCTGTTTCTTTATGATACCAAGCCGGAATTTGATGACCCCACCATAATTGTC -TTGAAATCGTCCAATCTCTAATATTTTCCATCCATTGGTTAAATGTATGTTCGAAACGTTGCGGATAAAA -ATCAATACGATCATCTGTTTTTTGGTTATCTAATGAACGTTTCGCTAAGTCTTCCATGCGCACAAACCAT -TGCGTTGATAAATATGGTTCAACAACAGCGCCAGATCGTTCTGAATGACCTACAGAATGAACATGATCTT -CAATCTTGATAACTAAATCTTGTTCTTTTAAATCTTCAACTAGCTGTTTACGACAATCAAAACGGTCCAT -ACCTTCGTATTTACCAGCTTTGTTGTTCATTTTACCATTTTCATCCATAACGATAATATTTTCTAATTGA -TGTCTTTGACCAATTTCAAAATCATTAGGGTCATGTGCTGGTGTCACTTTCATAGCACCAGAACCGAAGT -CTATATCAACATATTCATCTGCTAAAATAGGCAGTTCGCGTCCTACGATTGGTAATATAACAGTTTTACC -GATTACATCTTTGTATCGTTCGTCATTAGGGTTAACAACAATCGCTGTATCACCTAACATCGTTTCTGGT -CTTGTAGTTGCAATTTCAATAAAACCTTCAACATCAGCGTAAGGATATTTAAAATGATAAAACGCACCTT -GAACATCTTCATGTATTACTTCAATATCAGATAAAGCTGTACGTGCTTTAGGATCCCAATTTATAATACG -TTCGCCACGATAAATAATTCCTTTATTGTATAAATCAACAAAAACTTTTTTAACTGCTTTACTTAAACCT -TCATCTAAAGTAAAACGTTCTCTACTATAATCTAAACCTAGACCTAATTTAGCCCATTGCGCACGAATAA -ATGACGCATACTCTTCTTTCCAATCCCATGCTTGTTCTAAAAACTTTTCACGACCAAGATCATATCTAGT -TATTCCTTGTTCATTTAATTTAGCTTCTACCTTTGCCTGTGTCGCAATACCAGCATGATCCATACCTGGT -AAGTATAACGTATCGTATCCTTGCATACGTTTCATACGTGTAATGATATCTTGTAAAGTTGTATCCCATG -CATGTCCTAAATGTAATTTACCAGTTACATTTGGTGGCGGGATAACAATTGTATATGTTTCTTTTGATTT -ATCTTCTGACGGTTTAAAATAACCATTCTTCACCCATTCTTCATAACGTCCCGCTTCAACTTCACGAGGA -TCATATTTTGGTTTCATTTCCATTTGCTATACCTCCTAAAAAATAAAAAATATCCATCCTATATACAAAT -AGGACGGATATTCCGTGGTACCACCTATATTCAAGAAGGATGATTAATATCAAATTCACTCTTTTAACAT -AATTGGAATAATCATACCAATACTATCATCGTGAAATTTGAAATGCTTCATCTCTTCAAGCACTCTAGAT -TATGATTAACGCTCAAACACGTCTTAGCCTACTATTAATCACGTTCAGCTAAGATACTCTGTGGGCTACC -TTCAGTAAAAATCATTTACATACTCACACCAAATCATATGCTCTCTTTAAAATAATTTGAACTTACTCTT -CCCAAATCCTATATTAAACTCTTAACTTATAGTATAATGATTGACAAAATAAGTCAATGTATAGGTGGGA -ATAAAATGAATGAATGCGCATTTGGAACTAAAGATCCAGTCTACTTAGACTATCATGATCATGTATGGGG -ACAACCGCTCTATGATAGCAAGGCATTGTTTAAACTTTTAGCATTAGAATCACAACATGCTGGGCTATCT -TGGTTAACTATTTTAAAAAAGAAAGAAGCCTATGAAGAAGCATTTTATGATTTCGAACCAGAAAAGGTAG -CACAAATGACCGCTCATGATATCGACCGCTTAATGACTTTTCCAAATATCGTTCATCATCGTAAAAAATT -AGAAGCAATTGTTAATCAAGCTCAAGGGTATTTAAAAATTGAACAAGCATTTGGTAGTTTTAGTAAATTT -TTATGGTCTTATGTAAATGGTAAGCCTAAAGATTTGCAGTATGAACATGCTTCTGATCGTATCACAGTTG -ATGATACTGCAACACAACTATCTAAAGATTTAAAACAATACGGGTTCAAATTTTTAGGTCCAGTAACAGT -ATTTTCGTTTTTAGAGGCAGCCGGTTTATATGATGCACATTTAAAAGATTGTCCATCAAAGCCTAGACAC -AATTAATTTGCTATAGCATCATAAAGTAAACGAGACATCATCTATTTTTAACTAATAGACTGTCTCGTTT -TTTAATGTAGAAATTTATTCAAATCACAAGTTAAAGTTCCATGTTAATGCACTTCTAATATTAGATATCT -TAATTTAAAAATAGATGTAAAACCTTTGCTTAAACCTTAATAATGAATTCTATCCTAAGCATAATTTAAC -TTAAATGGATGATAGTTTCTAATCTTCACGCTTATTCGAACGATATTTTAAAAAGTAATTAATTCCTGGT -GCAATAATAAATAGGATGAAAAAGATTCGGAAAATATGATAACTCGTAATCATAGCAACATCGGCACCAG -TAGCTAATGCAACTAAAACTATCTGATTAACCCCTCCTGGTGCTGCACCAAGAAACAATTCATTAATAGG -ATTATTATCAAAGAAATGTATGATATAAACCATGATTAGCGCACCAATTATCAACATAATATTTTGAATT -GTAATTGCGATTGCTAGTCTACCTTTTAAATCTGACAATAAATGCGCAATTTGAACTCCAATTCTAATCA -TATATATTAGTTGTGCCATGTTCAACAACCAATGATCTAGTGTAAATGTTAGACCTGTAGAAAAATTCCA -AACAATTAATACAATGAGTGGTGCTAATAATTGAAATGTTGGAAACTTTATTTTAGACATAATTAGATAA -ACTATAAAGATAGCTATCGCTAAAATAACTATTTGCCCTATGTTTAATACTTGTGATAAAGGCAAGACTT -TTGTTAACTTACCATTCGCATGCATGTTACCATCATGAAAAAAATATGAAATGAACGGTACTAAAACAAC -AACAAATATAATTCGTGATGTTTGCGTTAAGCTAACAACTAACAAATTAGCACGTTTGTCTTGTTCAGCC -ATGACCAACATTTGTGTTAGTGCTCCTGGTATAACACTTAAAATAGCTGTTTCTGTATTAATACGTGCAA -TTTTTTTAAAAATAAATGCCATTACTAAGGCAATTAATAATATCGAAATAGATACTACAATAATCGAAAG -CCAATTGTCTTTAATATCCATAACGACATTTTTCGTAAACGTTGATCCGATTTGCACACCTAATAGTACA -ATTCCTAATTCACTAAGTAAGAATGGCCATTTAATATCAAGTTTGAAAACTTTTACACAAATGATTGATG -CGATAATAGGACCAAACATAAATGGGAGTAATACGTGCGATGAATACAGTAGAATACTAATAAAAAATGA -TAAAACGAACACAATGAAATTATTTCTATATATCATTGTCATGTTTTCCACTTCTTTCAATAAAAAATAA -AATGACTAAATTGCTGCTTGAGCTTCACGTTTGTTAAGATAACAATATCCGCTAGCAGTTTTGACTACAA -AGCATATATGGACTTTCACTATCAAGTCGCCGCCATGCCTGATATACATTTAAAAAGAGCCTGAACAAAG -TTCAGGCTCTCAATTTGTCCGTATATTTATTTTACAATACGACTTAAAGCCGTATCAAATGCTTGAATCG -TTTTTTCAATATCTTCTTTCGTGTGTGCCGTAGATAAGAATGTACCTTCAAATTGAGATGGTGGTAAAAA -CACACCTTCTTTTGCCATTTCACGATACATTTCTGCAAATAATTTCAAATCACTTTTATTCGCTTGTTCA -AAATTAGTTACAGGTCCTTCATTTAAGAAATAACCAATCATTGAACCTGCTCTATTTACAGTTATTGGTA -CATTGTGTTTAGCAAATACACGCTTTAAACCGTCTTCAAGTATATCGCCTAACATATTAAAATACTCATA -TGTCTCTGGCGTTAATTGACTTAACGTTTCATAACCACTTGTCATTGCAAGAGGATTTCCTGATAACGTA -CCAGCTTGATAAATATTTCCTAATGGTGCTATATGATCCATGATTTCTTTTTTACCACCAAAAGCACCTA -CTGGTAGTCCTCCACCGATAACTTTTCCTAAGCAAGTTAAATCTGGTGTCACACCAAAGTGACCTTGTGC -ACAATGATAACCGACTCTGAAACCAGTCATTACTTCATCGAAAATTAGCAATGCGCCGTATTCAGTCGTA -ATATCTCTTAATCCCTGTAAAAAACCTTCAATCGGCGGTACGACACCCATATTACCAGCAACAGGTTCTA -CGATTACACCAGCAATATCGTCTCCAAATTTTTCGAAAGCGATTTTAAGTGCATCTAAATCATTGTATGG -AACTGTAATTGTATTTTTAGCAATACCTTCAGGCACACCAGGAGAATCCGGCAATCCTAATGTTGCCACC -CCTGACCCAGCTTTGATTAATAACGAATCACTATGACCATGATAGCAACCTTCAAATTTTACAATTTTAT -TTCTGCCAGTATAACCACGTGCTAATCTTAAAGTATCCAATGTAGCTTCTGTACCAGATGACACCATACG -CACTTTTTCTATTGAAGGTACTCGGTCAATAACGAGCTGCGCCAATTTATTTTCAAGTAATGTTGATGCA -CCAAAACTTGTACCTTTATCAATTGCTTCATGTAAATGACTAATAACTTGAGGGTCTCTATGTCCTAAAA -TAAGTGGCCCCCAACTTAGTACATAGTCGATATACTCGTTACCATCGATATCATAAATTTTTGAGCCTTT -ACCGTGATCCATAAAAATTGCTGGTGTATCTACTGATTTAAATGCGCGTACTGGACTATTTACACCACCA -GGCATTAAAGTTTCAGCAACCTTCATTGCTTCTTCTGACTTCGTATATCTCATAAAGTAAATTCCTCCTA -TAGTTTATGGAAAATCATACATATAAAACCTTATTTATCTAAATAGCGACAAATGTCCTTTGCAAAATAC -GTAATAATCATATCAGCACCTGCACGTTTCATTGAAACCATTTGTTCCATAACGACACGTTCTTCATCAA -TCCAACCATTTTGTGCCGCTGCTTTAGTCATACTATATTCTCCACTCACATTATATGCAACAACTGGAAC -ATTCGTATGATTTTTAACGTCTCGAACTATATCTAAATAACTTAGAGCAGGTTTAACAATCATCATGTCG -CACCCTTCTTTAAGATCACTTTCTAATTCACGAAGTGCTTCCAAACGGTTAGCAGGGTCCATCTGATACG -TTTTTCTATCCCCAAATGATGGCGCTGAATCTGCTGCATCTCTAAAAGGTCCGAAGAAACTTGATGCATA -CTTGACACCATAACTCATTATAGGAATATTGTAATAGCCGGCTTCATCTAATCCACGACGAATTTCAGCA -ACAAAACCATCCATCATATTACTTGGTGCAATAATATCAGCACCAGCTTCTACTTGAGAAATTGCTGTTT -TAACAAGTAGTGGCAATGATTTATCATTGTCAACGTCATGTGTATGGTCATCAATCACACCACAATGACC -ATGATCAGTATATTCACATAAACAAGTGTCTGCAACAATTAATAAGTCATCATACATTTTTTTAGCAATA -CGTGTTGCCTGTTGAATAACACCATCGTGAATGTATGCACCAGTACCTATATCATCTTTTGAGTTTGGAA -CACCGAAAAACATAATGGCACGTATGCCTAAGTCATAAGCTTCTTTTAATTCACTTTCAAGTAAATTCAA -ACTGATTTGGTATACACCTGGCAATGACTTAATTTCTTTTTTCACATCGTCTTTTTCAACTACAAAAATT -GGATATATTAAATCTTCTTTTCTTACATGATTCTCTCTAACCATATCTCTCATTGTCGCTGATGATCTCA -ATCTTCTATGTCTATCAAATTTCATTTTTAGCCCCTACTTTCTAAAATCTTTTCAATTAGTGATTCGAGT -GTTTGAATTTCTGCAATTGTTACTGGCTGTTGATATGATTTAATGGTCCGTGCTGTTTGTTCTCCAATAG -CAAAATACGACTTGAATTTTGGTACAAATCCTTCATTAAAATAATAACGTACTGCCGACGAACTTGAAAA -TGTTAATGCATCGATTTGTTGATGTTCTATCATTTCTTTAACATCTTGTATATTTTGTTTGTTAGGCACT -GAAGTATATAAATCTATTTTAACAACTTCATTATCTTCAGATAACGCTGCTGATAACAATGGTCTCGCCA -ATTCACTCGAAGGCAAAAGTATTTTTTGGTTAGTTTGATTAAATGATTCTAAAAATCCTTCTTGAGAAAA -GTCGTTTGGCATAAAATCAACTCGAATGCCAAGTGATTCACAATATTGCGCTGTCTTACTTCCTATCACA -GCAATGTTATCAACATTAATTCCTTTTAGATATTTATAAAAGAATTTCACAGCATTTTTAGATGAAAAAA -TAAGCCAGTCATAGCGTTGATTTAACAAATGAATATCAAAATTTAGTGGCTTTATATCAATAAAAGGTTT -GTGAATAATTGATACTAAATCACTTTGCATGTCATTTGTTTGTGTCATAACTACAACTGGCTTCATATTT -AAACGTCACTCCATTATTTAATGTTGTTCATTTAAGCGTTTTATAATTTCATAAGCACCTTGCTCTTTTA -ATTTGTTACTCACTTTTTTTCCTAACTCAACCGGATCTGTTCCGTTCATTGTATATTCAAATCGTTCTTT -ACCATCTGGGGTCATAATTAAACCTGTAAATTCGATTTCTTTTTGATCTGAGATTGTAGCATATCCTGCG -ATTGGCACCTGACAACTACCATCCATTTCTGCTAAAAACGTTCGTTCAGCAGTCACACATTTTGCAACCT -CATCATTATGTACTTTGCTTAATAATGTTAATAGTTCTTCATCGTCACTACGACATTCTATCCCTAAAGC -ACCTTGTCCAATTGCAGGTAACAATGTATCTCTATCAAGATAAGATGTTACAATATCATCTGACCAGCCC -ATTCTTCTTAAACCAGCTGCAGCTAAAATAATCGCATCATAATCTTCAGTTTGTAACTTTTCTAATCGTG -TATCTATATTACCTCTAATCCATTTAATCTCTAAATTAGGATACTTAGATAATATTTGTGCACCACGACG -TAATGAACTAGTACCAATAATACTACCTTCTGGCAATTGGGATAGTGGTGTATGTGTTTTAGAAATATAC -GCATCAAAAGGTAATTCTCTATCAGGGATACAACCTAATGTTAAACCTTCCGGAATTACACTTGGTACGT -CTTTCAGCGAGTGTATTGCCATATCGATATTTTTTTCAAAAAGTTCATGTTGTATTTCTTTAACAAATAA -GCCTTTGCCTCCGACTTTAGACAATTGTTTATCTACTATACGATCGCCTTTCGTGACAATTTCTTTAATT -TCAATTTCTAGATTTGGCTCGACAGCTTTTAATTTATCAATAAATTGCTGGCTTTGTGTTAAAGCTAATT -TACTTCTTCTGGAGCCAACGACTAATTTACGCATGTTCAATTCCTCCTAGGAACGGATTGCTCTAGATTA -TTTTCTTAATTCACAAAATGTGTTGCAAAAAATAAATTAATCATATTTAAGCAAAATAAAATAATGTTAT -AGTATATTAAATACCTTGAATTCAACCATTTGTTGATTCTAAGTAAAATATAACTTCCATATAATACTGT -AATAATTGAAGAGAGTATTACCTTCGGGTCAATGAATATACGTTCACCAACTGAAATTACACCCCATTGT -GTACCTAAAATAATACTAAATATGAGAATTATCCACCCACTTAACGTTGAATAAAACACAATTGATTCAA -GTGTAGCAACGCTACCTATTCTAAAGTATTTTTGATCAAAACGCTTTTCCTTCAAATTACGGTATTGCAT -GATATACAGTAATGCATTGACAAAAGCTAAGGCAAAGAAGACATAACTTAACACAGCTAGACCAATATGG -ACTAACAGTAACTCGTCTACAACAGCAATTTTCTGAACCTTATTAGTATAATGTGTCGGTTGAAATGTAT -TCATCCCTAAAAGTGTTAACCCTATTAAATTCAAGAAAAACACAGAGAAATTCAAAACTTTGATAAGGTT -AAGAATTAAAGAGATTGAAATAATCAGCCAACTTAAAGTATAGAATACATCTGAAATAGACCCTAATGGA -ATATGTTTAGTTTGTATAATAAAAATAGATAAAGAGATTGTTTGTAAAACCCAAACAATCCCCAATAAAT -ATATGCCTAAACTTCTAATCTTATGACTTTTTTGGACAAAATCATAAAAATAGCAAATGATACTGATTAA -GTATATTAATAATATAATTTCATTGAATCGAATAAACAGGTTTTCTTGCATATTATCACCATATTAATAT -GCTTATTCAAAACTAAAGATACGTCGCGCTGAAATTTCCTTGACCTTGCTTTCTTTTTGTTGCTTCGCTT -GCTCATGAGGACATTTAGCTTCGATATCAAATATATTTTGAAATAGCTCAAATTTTTCATTACTTTTCTT -ATCACTACTTAATTCTTTGGCCTGTTTAATAGGATCTTTCAACATTTGATTGATGATACTTTTTGTATGT -TTAGATATAATTTTACGTTCTCTTTCGCTTAACCCTGGCAATTTACGATCAATACTGTCCATCGTTTCCG -CTTGAATTGCCATAGCTTTTTCACGTAAAGCTCTAATCACTGGAACAACACCCAACATACTAACCCACTC -ATTGTGTGCATGTATTTCTGCAGGAATTTGTTCCGAAATTGTTGCAGCCGCTAATTGTCGCTCACGTAAG -TTTGCATCAACTAAACCTTTTAAGTCATCAACATCATAATTAAAGATGTTTGTGATGGCACTAATACCAG -GTTCAATATCTCGAGGAACTGCAATATCAATCAATACTAGTGAATCTTGCTTTCTATTTTCTGCAATTCT -TTCTATCATTTCATTTGTAATGATATAAGATTGTGCACTCGTCGAACTAATCACAATATCTGCACTTTCA -AGTAAATTTGGTAATGATGATAGTTCATCATATTTCACTTGATGCTTTGCTGCTAATTTCATAGCATTTT -CAATTGTTCTATTTACTACTGTAATATCAGTAATTCCAGAACCAAGAAGATTTAATAGTGATAATTCACT -CATTTCCCCTGCACCAATAATGATAGCTTGCTTACTTTTCAATTTGCCAAATACTTTTTTCGCCAACTCG -ACCGCAGCATAAGACACACTTACAGCATTATCAGCTATATCTGTTTCATTATGTGCTCTTTTTGCAAAAG -TAATTGCCTGTTTAAATAGATGATTAAAAATTGTTCCTGTCGTACCTGTGCTTTGCGCTAAGAAAAATGC -ATCTCTTATTTGACCTAAAATTTGAGTTTCTCCAAGTACGATTGAATCTAAACCAGAAGTGACACGCAAT -AAATGTTCTACTGCTTCGTCCCCCACTTTTACTTCTGACATTGCTTTAATATCATCTACTTCAAATCCAA -ATGCACGAGCTAGAAATCGTTGAATATAGTAACGACCTGTGTGAATTTGATCAACAACAGCATATACTTC -AGTTCGATTACATGTTGATAATATGACATTTTCTAAAATAGATTTAGTTTCATATAAATCTTCATGGGCA -ATTCGTAAGGCATCATCTCTAAAAGCAACTTGCTCTCTTAGTGCAACATCAGCTGTGCGATGATTTATAC -TAATTGCAATAAAATGCATTTGAAACGCCCCCATATATACTAACAATACAAATATTATAACATAATTTAA -AATCCAATTAAGTACGATGCTTAAATAAATTATAATCTTTCTAATTTACTTTTGAGTTTTTGACAAAATG -ATGAACGTTGAAAAATGTTATCAATTGTGTACTAATTAAAAGTTTCGTGCTTACATTATTTTTAAAATTT -TTGTATAAGTTTTGTCGTACAAAAACTATGAAATATACGGTTCAATTAAATTCCATATTTGTTGTTGTTT -ATTATTTTGAATTGATGAATAACTTACAATTGTATCGTCTGGGTCCATATCTAATTGTGTCTTAATATTT -TTAATATGCTTTTGAACTTTGCCTTTTGGAATTTTGTCTTCTTTAGTGCATATAACTAAAGTAGGAATAT -CAAAATGTTTCAAATAATTGTACATTAAGATATCATCTTGTGTTGGATCATGTCTTAAATCAACTAATTG -AATAACTAATTGTAAATTCTCTCTCTTAGTTATATATTCCTCAATCATTTTCCCAAATTTTTCACGTTGT -GTTTTACTTACTTTAGCATATCCATACCCTGGAACATCCACAAAAATAAGTTGTTCATCTATATTATAAA -AATTTAACGTTTGCGTTTTGCCGGGTTGCTGTGATGTACGTGCCATATTTTTTCTGCCAATCATACTATT -GATAAATGTAGACTTACCTACATTAGATCGACCGCTCAGTGCAACTTCAGACAATTCTGTTTCTGGATAT -TGATCTTCCTTTACTGCACTAATGATTAATTCTATATTATTAGGATTAACTTTCATTTTATATCCTCACT -TTTTTATATTCTCTTTCAACTTTACCATTATATAATATTTGAACCTTTCGGTATACATTATAAAAAAGCT -CCGATCAAAGTTAAACTATTTGAGCGTCAACTTTGATTGGAGCTTTTCACTTTTATAACACATCAATGAT -TAAGCTGATGTTTTACTATTATTAATTAAATTACCTTCTGCGTCGTATAATTCTGGTTCAGTTTCTTCAT -TAATTGTTTGTGCTGTAATAACTACCTTCGTTACATTTTCGTTAGAAGGCACATCAAACATAATATCGAT -TAACGATTCTTCTATGATTGAACGTAAACCACGCGCACCTGTTTTTCTTTCAATTGCTTTTTCACTAATT -GCTGATAAAGCTTCTTCAGTGAACTCTAAATCTACATCATCTAATTCCAGCATTTTAGTATATTGTTTCA -CAAGTGCATTTTTAGGTTGCGTTAAGATGTTTTTCAACGCAGTTACATCTAATGTTTCTAAATTAGCTAC -AATTGGCACACGTCCGATAAATTCAGGAATCAAACCATAGGCTTGCAAATCTTCTGGGCGAATTTGTGCT -AATAATGCTTGTTCGTCATATTTATCAGCTTCATTGCTTGAGAAACCAATAACTTTTTCACCAAGACGGC -GCTTAATCACTTCTTCAATACCATCAAAGGCACCACCAAGAATAAATAAGATATTTGTTGTATCAATTTG -AATCATTTCTTGGTTTGGATGTTTGCGTCCACCTTGTGGCGGAACACTTGCAGTTGTACCTTCTAAGATT -TTAAGCAATGCTTGTTGAACACCTTCACCTGAAACGTCACGTGTTATAGATGTGTTTTCAGATTTACGTG -CAATTTTATCAATTTCATCTACATAAATAATACCTTTTTCGGCTTTATCAATGTCAAAGTCAGCTGCTTG -AATTAATCTCAACAAGATATTTTCAACATCATCGCCTACATAACCAGCTTCAGTTAAACTTGTCGCATCT -GCAATTGCAAATGGTACATTCAACGTCTTGGCTAATGTTTGAGCTAATAATGTTTTACCACTACCTGTTG -GCCCAATTAAGGCAATGTTACTTTTTTGTAACTCAACATCATCTTCTTTTGGTCCTAATTGTTGAATACG -CTTATAGTGGTTATAAACAGCCACAGCTAAAGATTTTTTAGCTTTTTCTTGACCAATAACATATTCGTTT -AAATGATCCATAATTTCTTTAGGAGTAGGTAATTCTGTAATCGCTTCAGAAGTGTTTTGAGCTAATTCTT -CTTCGACGATTTCTGAGCATAATTCAATACACTCATTACAAATATATACACCACTTCCTGCTACAAGTTT -TTTTACTTGATCTTGGTCTTTTCCGCAGAAAGAGCATTTCAAATTTTCTTCATCTTCATTGAATTTAAAC -ATTCTTTTTACACCCCTATTCGTTAAAGACTATACTAGATTGGATATTACAATGCAACATATTAACATAC -AAACTTTTTGCTTAAAGAATAGTAGCAGATACATAAGCTATGCATCTGCTACTCATTTTTGTAATTTAAT -ATTTAATGAAGATTAATCTTCTTTAGTTCCTTCAACGAACTTTGCGTTATCTCTTAATAAATCGATAACT -TTTTGAATACGAACATCATTTTTAATGATATCAGTATTACCTAAAGTATTTTTGATATCTTCAACTGAGA -TATTAAATTGTTTACTCATTTTTTCTAATTCTTTATCGATATCTTCATCAGTAGCTTCGATTTTTTCAGC -TTCAGCGATTGCAGTTAAAGTTAAGTTAGTTTTAACACGTTGTTCTGCATCGTCTTTCATTTGCTCTCTT -AATTGAGATTCATCTTGACCTGAGATTTGGAAGTACGTTTGTAAATCTAAACCTTGTTGTTGAATTCTTT -GTGCAAATTCAGACACCATACGATCTAATTCAGTATTAACCATTGCTTCAGGAATATCGATTGTTGTATT -ATCAGTAGCTTTAGTAATCGCTTCTTCTTTTTCAACATTTTCTGCATCTGTAGCTTTTTGTTCAGCTAAA -CGTTTACGTAAGTTTTCTTTGTACTCGTCTACTGTATTTGCTTCTGCATCTAATTCATTAGCAATTTCAT -CAGTTAATTCTGGAACTTCTTTAAATTTAATTTCGTTAACTTTTGTTTTGAAAGTTGCTTCTTTACCAGC -TAATTCTTCAGCATGGTATTCTTCTGGGAATGTTACGACAACATCTTTTTCTTCGTCAACTTTCATACCT -TCTAATTGCTCTTCGAAACCAGGAATGAATGAACCTGAACCGATTTCTAAATCGTAACCTTCAGCTTGTC -CACCTTCGAATTCTTCTCCGTCAACTGAACCACTAAAGTCGATGTTAACTGTGTCGCCATTTTCAACAAC -ACCATCTTCTTTAACTACCATTTCAGCTAAATGTCCTAAGCTGTGGTCAATTGCTTCTTGTAACTCATCA -TCAGATAATTCAGTTTCTTGTTTTTCAATTTCAAGACCTTTATAGTCTCCTAATTTAACTTCTGGCTCAA -CTGTAACTGTTGCTTCAAAAATGAAATCTTTACCTTTTTCAATTTGAGTAACACTTACTTCTGGTTGTGC -AACTGGTTTAATATCAGTTTCGTCAATTGCTTCACCATAAGCATCTGGTAATAAAATGTCGATAGCATCT -TGATATAATGCTTCTACACCAAAGCGTTGTTCGAAAATTGGACGTGGCACTTTACCTTTACGGAATCCAG -GTACGTTAATTTGTTTAACCACTTTTTTAAATGCTTGATCTAACGCTTTGTTTACTTTTTCTGCAGGAAC -AGTAACTGTTAATAAACCTTCGTTACCTTCCTTTTTTTCCCAAGTTGCTGTCATGTATATATACCTCCAT -GATTAACTAATTTATTTTTTCAACTTCCCTATTATATCATAGGTCTATTCCCTATACAAACATTGAAATC -ACAACGTTTATATATTTGTAAATCAACTTTTTTCGTCAAAACTATATTAAAATGCTGAGTATTATTTTGC -AACAATTTAACTATTATTATTCAAATCTAATTGCTGAATAAAATTAAATGCATCGATACTTTGTAATTCA -CATTTAAGTCCTAACATATTTTTGAAATAACATTCGTATGCATTAATCCATTTATTCGTTTCAAACAAAG -TTTCAATATCAATTGGATAAATCATGATAGAGTGATTATTCATAATATGGTGTGCTTCTTCAGCGATATG -TAAAGCACCTTCATTTAATGTTTCCATAACGTTAGGTATAACTTTTTCTTTCAGTGTTGTATGTTCTAGC -CCTTTTAAATTAGCTGGTACAAAAGTTATATCCATACCATACTTTTCAATTGTCAGTTCTTGTGTACAAT -TTGCGAACCTTAAATACTCAATCATTAAACTAATTAGTTTATAACTGTACATATTAGATTTCAATATATA -TAATACCGTTTCTTGAAATTGAAAATGACCATTGTCTATTAACTTCAAAATCAAGTGCGTCTGTTCCCTC -ATTGATAACGTATCAAAATCAGTTAATGACTGTGTCAATCGTTTTTCATCTTCAATTAATTTTGACTTAG -CAAATTCTTTAAGAGGATGTAATGCCATTCTTGTTTTGTGATCTTTGACCTCATCAATAATTTGATGAAT -TACTTCTACCGCTTCAAAATATTGTTCCAAACCTATCAAACTTTTCACATAATAAATCATCAATGCATCA -TATTGTTGTATGCCAGTTTTCAATAAGACAATTGTTTCTTCTCTTAATTCAAGAAATGACCCCGTCTCAT -ATAACATACGGCATTTCATCATTGCTATTTCTTCAGTGAGTTCAAATTGACGTTCATATTGTACAATATA -TTCATACATCAGGTCATAGTTTTGGTCTTGTTCAGCACGTTTTATATCTTTATATAACTTTTTCGAAGAG -TTAGGAAACTGAATAATATCTGACATATATGTCACCTCGTTTGATTATAAATCTTGAAGGATTAATGCGC -TCCACGTCTCGAAATCATCATATGACTCTATGTTGCCTTTTTCAACCCATTTTATTCGTAAAGTATCTGT -TTCTTTAGCTTCTACATCATTCGTACTTACAGTGATTTTAAATACAACACCAATATGTACCTTGCCCACT -TCGTTATTATCGTCATTAATAAAACCGATATATTCCATATTTTGTGAATCTTGCTCACTTAAACCTACTT -CTTCTTCTAATTCTCTCTGTGCATTAACTCTCAATACTTCGTTAATAGATTCTGCTCCTGGAACATCATT -CATATGACCGCCTACACCTATTGAAGATTGTCCATGCAATCGAGCTTCTCCACCGCCAGATAATCGTTCA -TACACTAATATCTCGCCATGCTCATTTTCAAGTAAACAATAAGAAATGAGTTGTTTATATGATGGATCCT -CTTCCATATCGCCGCGTCGCTTAACTTCATATTGACTTAGCGCATCAAAAATATTTTGACCTTCTAGTTT -ATTCTTATTTAAAAACCCATTGAAAGTATTCTTTTCATTATTAAAAATAATTTCTCTAGGTACTACAATG -ATTTGTTCATCAAATTTAGACATCGCATAAAACTCCTCACTTTAATGTTTGTTCTCTTAAATGCATTTTA -GCAAATATGTCATATTTTAGCGATTAAATGTGGCATTTTGCTATTTAAAAAATAAAAAAGAGATGACAAT -GCCATCTCTTTTTTATAAGTGTTATTATTTTAAAGCATCTTTAGCTTTAGTTACTAATTGAGCAAATGCT -TTTTCGTCAGAAATTGCAATTTCTGATAACATTTTACGGTTAATGTCGATACCAGCTTTTTTCAAACCGT -TCATTAAACGTGAGTAGCTCATTTCATGTTGACGAGCTGCTGCGTTGATACGTGTAATCCATAATTTACG -GAAGTCACGTTTACGTTGACGACGGTCACGGAAAGCGTATTGACCTGATTTCATTACTTGTTGCTTAGCT -ACTTTGTATAATGTATGTTTTGAACCGAAGTAACCTTTAGCTAATTTAATCGTTTTTTTACGACGCGCTC -TTGTTACTGTTCCACCTTTAACTCGTGGCATAAAAAATTCCTCCTTAGGTAATTCCTACCGATTTCTGTA -TTTGTTCTTATTTTTTGTATGCTAATAATTGTTTTACACGTTTCATGTCGCTCTTAGACACTAATCTAGC -TTTACGTAATTGACGTTTTTGTTTAGTGCTCTTGTTTGCGAATAAGTGAGATGTGAAAGCTCTTGAACGT -TTTAATTGACCTGAAGCAGTTCTTTTAACACGTTTAGCTGCTCCGCGGTGAGTTTTCATTTTTGGCATAA -TATAAGTCCTCCTGTAATAGCTTTAATTATTTTTCAGCTGTTGGCGCTAACATAATAAACATTTGACGCC -CGTCCATTTTAGGTTTTTGTTCAACTGTTGCTATATCTTTACATTCATCTGCATATTTTTCTAGCACACG -TTGACCAATTTCCTTATGCGTAATGGCACGCCCTCTGAAACGAATAGATACTTTACATTTATCGCCTTTA -GTTAAGAATTTACGTCCGTTTTTCAACTTAGTTTGGAAATCATGTTCCTCAATTGTTGGACTTAAACGAA -TTTCTTTAACATTGATAATTTTTTGTTTCTTTTTCATTTCTTTTTCTTTTTTCTGTTGTTCGAATTTGAA -TTTACCGTAATCCATAATTCTTGCAACTGGTGGTTTCGCATTCGGTGCAACGACCACTAAGTCTAAATCT -ACACGTTCAGCCATTTCTAAAGCTTCACGCTTTGATTTAACACCAATTTGTTCACCATCTTGACTGATTA -AACGTAATTCTTTTGCACGAATTTTGTCATTGATTTGAGTTTGATCTTTTGCTATGGTTGACACCTCCAA -AATTTTTACGAAATTTGCACCAAGCAAAAAGGAAGAGCAGGTATAAAATACCCGCTCTTCCTAATACACA -GTTATGTGTAATGTGATTAACCTGCCAACTGCTTTATGCGTCGCTACAGGTGAGAAGCGGGTGCTTCTAC -TTGGTTCGTTTCGTATTCAACGTTGTTAATCATATCAACAATTCACATTTAAGTCAACACCATAACTGTA -ATTATTTTTATTTTAACCTTTTATTTCATCCATTGACACGTCTTGACGTAAATCTACTTGTTCTAATGGA -ATTTTCTTCGTTTTATATCGAAGCTTATGATAAATAAAGAATGCTAAAAATACTGGGATTCCCATATACG -TAATTAAGAAGCGACTAAAATTAAAATCTCCTGTTTTAATAAAGTCAACATCTTGACCGATGATTACAAC -AATACATAAAATAGCTGCAAAAATAGGTCCGAACGGAAACCATTTAGCTGTATATTTCAATTTAGATTTA -TCATAATTTTGTTTATCAAATGCCCTTCTAAATCGGTAATGACTCACTGCGATACCTACCCAGGCAATAA -AGCCAGTTAACCCACTTGCAGCAACGATGTATTGATAAGCACCTTCTGTAACACTTTGTACCACAAATAT -GATGACTACAATAATTGCAGTTACTAATAAAGACATATATGGCACACCATTTTTATTTGTTTTCCCAAAT -GTTTCAAACGCCAATTTATCTTTACTCATTGAATAAAGCATACGCGTTGAGGCATACATTCCAGAGTTAC -CTGCTGATAAAACTGATGTTAAGATAACAGCATTCATAAATGAGGCTGCAAAAGCAAATCCTGCATTTTT -AAAAACTAGCGTGAACGGAGAGGTTGCAACGTCATTACCGCCTCCCATTAATGCACTACTATCATAAGGA -ATTAACATACCGATAACAAAAATGGCTAAAATGTAAAATAATAAAATTCTCCAGAATACTTGTTTAATCG -CTTTCGGCACAGCACGTTCAGGATTTTCTGATTCCCCAGCTGTAATACCTATTAACTCTGTACCTTGGAA -TGAAAAACCAGCAATTAAGAATACACCTAAAATAGATAATAAACTTCCGCCTAGATTTCCACCAAGAATA -GGACCTTCACCTTTATTAAATATTTCGAATCCTACAACATGACCACCCATGATTCCGACAATCGTTAATA -AACCAATTGCAATGAAAACAATAACTGTAACCACTTTTATCAATGCCAACCAGTATTCACTTTCACCATA -GACGCGAACCGATAACGAATTCAGACTAAAAATTATAACTAAGAACAACGCACTCCATGCCCAAGCTGGT -ATGCCTTGTAATGGTGTCCAATATTGAATGACTTGTGCTGCAATCGTAATATCTGCTGCTACAGTTACTA -CCCAGTTAAACCAATAGTTCCAACCAAGCGCAAACCCTAAAGATGGATCAACAAATCTTGTAGCATATGT -ACTAAATGAGCCTGATACTGGCAAATAAGTAGCCATTTCGCCAAGTGACGTCATTAAGAAAAATACCATT -ATTCCGATAATTGCGTATCCTATTAATGCACCCAAAGCACCTGCATCATGAATTGCTCCACCAGAAGTTA -CAAATAAACCTGTACCAATACAACCCCCAATCGCAATCATAGAAATATGACGATCTTTAAGTCCCCTTTT -GACAACATTGTTACTTTCATTTTGAACTTTTGACATATAAGCTCCCTTTCCATGTTTTAGAGGCCAAGTA -ATAAATAACCTTTATTTACTTTCATACCCTTTTTTTACAGAATATAGTGATATTAAAAGTAAAAAAGTGG -CTACATACCTTTAAGATATGCAACCACTTTGGCAATTATCTATATAAGGTAGCACATCACATTCTGTGAC -AGTACAGTTCCTATTCGAAAACTGTCCCAATAGATATAATTTATGGTTTATATCTATTTCGGCATCTTTA -CCTTTCACTTGTTCAACTTATGTACCATAAATACTTCTGACAAGTTACTAATTAAACATGCAACCTCTAA -CTCAATTTAATATTTTAACTAACTTGTAATATACAGGATTCATCACGCATAATCAACCCTGTAAAACTTG -ATACGCAATAAAAGTTTCAAAGCATTTTATTGCGACAACTGTCTATCTATGTTTTTTCAAACGAATTTCA -TCAACTAGATTCCAGATAAATTCATCTTTTTCAACTGTTTCTTGGTCTTGTGATCCATATTGACGCACAT -TCACTTGATTATTTTCAACTTCCTTATCCCCAACTACGATTTGATAAGGTATTTTTTGCATTTGAGCTTC -TCTAATTTTATAACCCATTTTTTCATTACGGTCATCAATACTTACACGAACGCCTTGAGATTTCAATTCA -TCTTGTAATTGGCGCGCATAATCATAATGTAAATCAACGTTAACTGGAATGATTTGAACTTGTTTTGGCG -CTAACCAAGTTGGGAATGCACCTTTAGTTTCTTCAGTTAAAAATGCTACAAATCGTTCCATTGTTGATAC -AACACCACGATGAATAACAACTGGACGATGATGTTCACCATCTTGACCAATATAAGTTAAATCAAAACGT -TCTGGTAATAAGAAATCAAGTTGTGCTGTTGATAATGTCTCTTCTTTACCCATCGCTGTTTTAACTTGAA -CATCTAGTTTCGGACCATAGAATGCCGCTTCACCAATCGCTTCTTCGTACGATAAGCCAAGCTCATCCGC -TGCCTCTTTAAGCATATTTTCAGCTTTATTCCACATGTCATCATCATCAAAGTACTTTTCTTTATCTTCA -GGGTCTCTATAACTTAATCTAAAGCTATAATCCTCGAAACCAAAGTCTTTATATACATCAATAATCATGT -TTACAACGCGTTTGAATTCTTCTTTAATTTGATCAGGTCGAACAAAGATATGTGAATCATTTAAAGTCAT -ACCTCGAACACGTTGTAATCCTGATACAGCACCACTTGCTTCATATCTATGCATAGTTCCTAGCTCAGCG -ATACGTATAGGTAATTCACGATATGAGTGTGGTTTATTCGCATAAATCATCATATGATGTGGACAGTTCA -TTGGACGTAATACCATAGATTCAGTTTCATCTAACTGCATTGGTGGGAACATATCTTCTTGATAGTGATC -CCAGTGACCAGATGTTTTGTATAAATCAACATTAGCAAGTACGGGTGTATAAACGTGGTCATACCCCATG -CTAACTTCTTTATCAACAATGTAACGTTCAATTTCACGTCTAATTGTTGCACCGTTAGGTAACCATAATG -GCAAACCAGCACCAACTAATTGGCTATTTGTGAATAATTCTAACTCTTTACCAATTTTACGATGATCACG -TTCTTTACGCTCTTCTAACATTTGTAAATGTGCTTTTAATTCTTTTTTATCAAAGAAAGCAGTACCATAA -ATACGTTGTAACATTTTGTTGTTACTATCTCCACGCCAGTATGCACCTGCTGTAGATAATAGTTTAAACT -CTTTAATTTTAGCTGTTGATGGAACGTGAACTCCACGACATAAATCAGTAAAATCACCTTGACTATATAA -TGTTACATTTTCATCTTCAGGAATCGCGTCGATTAATTCTAATTTGTATTCATCATTGCTGAATAACTCT -TTCGCTTCATCTCGTGAAACCACTTTTCGTTCGATTTTCATATTTTCGTTAACGATTTGTTTCATTGTTT -TTTCAATTTGTTCAAAGTCATCAGATGAGATGTTTTGGTCAATGTCGAAGTCATAGTAGAAGCCACCTTC -TATTACAGGACCTACACCAAATTTAACATTACCATATAACCTTTTAATCGCGTGTGCCATTAAATGTGCA -GTAGAATGACGTAATACCTCTAACGCTTCTTCACTACCTGGTGTCACAATTTCAATTGATCCATCAGTTT -CAAGCGGTTTAGTTAAATCTACAAGTTGCCCGTTAAATTTGCCGGCAACAGCTTTTTTACGTAATCCAGG -ACTAATTGATTGTGCTATATCTTCAGTAGTAGTACCTTTATCAAACGCCTTTTTATTACCATCTGGAAAT -TGAATATTAATTTGTTCCATGTTAAACCCTCCTATTTGCTTTATAAATACTTTTATCTGACCTCGTTAAA -AAATTGAACAACAATCATCGTTTTAACATTAAACCTATTAACAATAAACAGAGAATTTATGACACCAACA -AACATTTATGTCTGAAAAAAACAAAAAATCCCGCCCCTATACAAGGGACGAGATCGTCGTGGTACCACCC -TAGTTATTTAATACAAGTTATGTATTAAATATCTCTACTTAAGATAACGGTCTTGATCCGGGTATTCATT -ACAAATACCATAAATGAAGTAGTAATCATCTAATTTATTAACCATATTCTCATCAAACAATGGCTTTCTG -TGTAATATTGATTAGATCATCTTGTCTTCAATCATTTAAACGATTTAGATTTGTATTCATTATACACCAA -TCATTTTAAAATTCAATTGTTTCTGAAATTTTCTCCTGATAAAAAGTATGGTGTTGACAAAGATTTGACA -CGTTCAATAATACGTGCTGCTTTAGTCTTCTCTTCACCATCACGAGTCATCGCTAAATGATGTTCCAATT -CACTATAGTCAAAATTAGAACTAAAGAATGTTGGTAATTCATGAACCATTCGATAATGTAGCAAAGGTCC -AATTACCTCATCTCTCACCCATGGAGTCACTTCTTCAGCCCCAATATCATCAAGCATTAAAATGTTTGCT -TCTCTTACGCGATGTAATTTCTTTTCAAAAGAACCATCTTTAAAGCCACCTTTTAATGTTCTAATAAATT -CCGGTAAATAAATAATTGTCGAACGTACCTTCTTAGATTTGAGCTGATTCGCAATTGCACCTAGAATAAA -AGATTTACCTGTCCCAAATGGACCATAAAGGTAAAGGCCTTTCACTTGTTCCCCATTAGTTATTGCTGTA -CAAATATCATCTGCTGCCATAGCTACATCAAGACGGTCTCGATGATTCATATAAATATCTTTCAATTTGG -CGTTTAAAGTATCTCGTTGCATATGATGAGATGTAATTAGCTCAGCTTCAAAGCGTTCTTCGTCGTACTT -GATTTTACATGGACATTGTAAATAGCGTATTTTAATTCGGTTATTATCAACATATAACTCAGGCACATGC -CCCTTTACGAAATTTGGACAATCAGCAAATTTATGACCGTCATAATGTTTTTGTTGATCTTTATACTCTT -GTAACACATTTAAGTCTTCATCAATCATAGCATTCGTTAATTCAGCTCGATGCGCTTCCAAAAATTGCTT -AACATCTGGGTCATTGATTACTTCTTTTTTTATCTTTTCTATTCTTTTTTCAAAGTCCTGCGACGTGTTA -ATTATACTTTTAAATTGCTTCATTATTGACTGTCCTCCTCCCATTTTTTAGATAATTTATCTAGAAATGC -TTGTCGATCTTGCTCTAATTGTTGATCATCTACGCTATTATCTTTAGCCGAATCTTGTTCACTAGGTTTA -TCTCTATTTTCTAACCATTTAGGTGTTTTTTCTTTTGAAATGCGATTACGCTGCCCATAGTATGAACCAC -GCTTTTGGTAATTTCCGCTAGAACCCTCATTTTTAGGTTGATTAACTTTTTTAGCGTAATTATATGCTTC -TTTAGCTGTCTTAATACCTTTTTTCTTCCAATTTGATGCTATTTCCAAAATATACGCTTTAGGAAGTTTC -ATATCTTCTTTTAACATGACAAATTGCAACAAAATATTAATGACACCAAAAGACATTTTTTCACGTTCAA -TTAATTCTTCAACCAATGTCTTTTGCGATATAGTTGGTTCTGATTCAGACCAAGAAGCTAACATATCAAT -TGGACTCGTTTGTTCAAGTAATTCAAACCATTCATCACTTTGTGGCTTTGGATTCGCTTCTGTAGATTTG -GCCGTCGAAGATGATGTAGCAGGAGATTTCACCTGTAATTTAGGCATTTGATTTTCGTGTTCCATTAAGT -AATACGAGCGTGCTTGTTTACGCATTTCTTCAAAGGATAACTGTTGTCCACTTGTAATTGAATTTAAAAT -AACATGCTTCATGCCATCTGCTGTTAAACCATATAAAGTCGCGAGTTGTGTAATTAAACGCTTTGCATCT -TTGGTAACAATGTCTTGACTAATAAAATGTTTACCTAACATTTGTCTCAACATTTCAAAATCAAAAGATT -CATTTGATAAATCGATTCCTTGGTACGGTTCATTAATCGGAATATCACTTGTATCGATATCTATTTTTGT -AGACGGCACTTTAAAAACATCAGTAAATTGTCTCGTTACCTGTTTAAATTCACTCAAATCAATTTGTTGG -TACTCAAAGTATTTCTTCAACTCATGAAATCGACGATGCTCGACTTCACTATATAAAAAGATTGACAACA -TTGGATCATTAAAAAATAAATGTGCTGAAGGCGGTTGAATTAATTGGTAAACAAATTGTGTTTCTTGTTC -ATCATGTTTGACAAACGCCTTTAACAATCCAATCGCTTCAAGTAAGTCCATTTGTTGTCTAAACTCTAGT -AAATTAATTTTAAGTTCATTCATAAAAATATAATGAGAAAGAATCAATGTTTCATTATGACTTTCTTTAA -CGAATTGAGTCATAAAATGGTATAAACCCACTGCTTGTGTTCCAATTAGCGGTGTATACAGTCGATTCAA -TACCTCTAAATGATTCGTATTTAAATCAAAGTGTTGCATAACTTTGAATTGATCCTTTGGTCTTAAGCCG -AATTCAAAGGCTTGTCGTCCCATTTAAGCATCACTCCGTTTGTTTTCGCTTAAAATCCCTTGCATCGATG -CTAACAATTGATCAACATCTTTAAATTCTTTATAGACTGATGCAAATCTAACATATGAAACTTGATCAAC -ATGCATTAACAAGTTCATAACGTGTTCACCTATATCTCGTGAAGACACTTCCGTATGACCTTCATCTCGT -AATTGCCATTCAACCTTGTTTGTTATGTCTTCAAGTTGTTGATATCTAACTGGTCGTTTCTCACAAGAAC -GCACAAGTCCATTAAGTATTTTTTCTCTTGAAAACTGCTCTCTTGTGCCATCTTTTTTCACAACTATAAG -CTGACTAACTTCGATATGTTCAAATGTAGTGAAACGTGTTCCACAATTTTCACATTCTCTTCGTCTTCGA -ATGGCATTTAATTCATCGGCATGCCTTGAATCTACAACTTTAGATTGTGTAGAATTACATTTCGGGCATT -TCATTACATCACCCTCTTTATTTTGATTATGCCTAATTATACTATAAATCTAGAGATGAAAAAAGAATCC -CTCAATTTAATTCATTTAACCAAATAATGAAACAATAAAAAACATTATATCGTTACTTATTAAGTAATAA -GCATGACAATATTATTATATTAAAAATAAAAAACCTAACTCCGAGGTCAGAGTTAGGCTATAAATTAATT -GTATTAACTTGCACTTACAGTTTCTTTTGATGTCAAAAGTGCTCCAATTTGCTCAGCGACATCTACAACT -CTATTTGAATAACCCCATTCATTATCATACCAAGCAATAACTTTTACTTTATTCCCCGACATAACCATTG -TTGATTTTGCATCAATAATAGCTGAATGTGGATTAGTATTAAAATCAACAGACACTAGTGGTTGATGTTC -GACTTCAATGATACCTTCTAAACCTGCATTTTCAAAAGCTTGGTTTACTTCTTCTGCAGTTACTTCTTTT -TCTAAATCAACAACTAAATCAACGAGCGATACATTCTTTGTTGGTACACGTAATGCCATGCCGTGTAATT -TACCTTCTAATTCTGGTAATACTTCTTTTAAAGCTTTCGCCGCACCAGTAGAAGTAGGAATAATGCTTTC -ATTACATGAGCGTGCACGTCTTAAGTCTTTATGTGGATTATCAATATTTTTTTGGTCATTTGTAATAGCG -TGAACAGTAGTCATTAAACCATTAACTATTCCAAACTGATTATTTAAAACTTTTGCAACTGGACCAATGC -AATTAGTAGTACATGAAGCATTACTAAAAATGTCAAATGCTTCTATATCTAATTGGTCATCATTTACGCC -TTTAACTACCATTTGAACATGTCCACCTTTTGAAGGACCAGTTAACAATACTTTTTTGGCACCTGCTTTA -ATATGTGCGATGGCTTTATCACCATGATTAAATTTACCAGTTGCATCTATAGCAATATCGATATCTAATT -CTTTCCATGGCAAGTTTTCAGGATTGCGATCAGCAACCAATTTAATTTTGTGATCTCCAACTTGCAATCC -ATTTTCAATCGGTTCTACTTTTAGATTATATTTTCCATGTGTTGTATCGTAATTGATTAAATGTGCAATT -GTTTCGGGTGGATAACTAGCATTTATCGCTACTACATTTAAATTTTTATTTTGTAATGCAATACGTAATA -CCATTCTTCCAATTCTACCCATACCATTAATTGCAATATTCGTTGACATTAAAAGCACCCCTTGATTTTT -ATGTGTTATACTTTATGGAATTAGTATAGCATATTATATGAAATTTGAAAGCGTTTTCCGTTGATTTATT -TATCTTTTTTATAAAAAATAGTCATTACTTACATACATCCACGCATACGTAAAGTAATGACTTATTTATA -GAGTAATATTAATCTCCTTCTCCGTAATTCGGCTTTTCAATATAACCTTCTTCTTCTAACAATCTCTCAA -GGTTTTGTTTTAATTCAAGTTTATCCCCTAAATTATCGATAACATGATCGGCCATTCGGCTTTTTTTATC -AATAGAAATTTGGCTATAGACACGAGCTTTTGCATCTTCTAATGACAAATTATTACGTTGCATTAAACGA -TCCATTTGTATACTTTCAGAAGTGTATACAACCCACACTTCGTCTACTGTATTTTCCAATTCATTTTCAA -ATAATAATGGAATATCCATGATTACATTATATCCTTGTTTTAAATATTCTTGCTTTTCTTCTTCCATAAT -ATCTCGCACGATAGGATGTATGATAGCATTTAATTCTAAGCGTTTTTCTGGATGGTTAAACACTAAATCA -CCCATATAACGACGATTCATCTCACCATTTTCATCAATTGCTTCATCACCAAAGACTTCTCGTACTTGAG -CTAAACCTTTACTCCCCTTTTTAACAGCTTCCCTGGCTGCTTTATCAGCATCTACTACTTTAAAACCGAA -TACGGATAAGAGTTCTGATACTGTTGATTTTCCTGAGGCGATTCCACCTGTTAGACCAATAACTTTCGGC -ATAATTTCACTCTTTCTTTATTTTTGACATACTGGACAATAATGACTATTTCTTGTCGCGATGATTTTTG -TTTCAATTTGACTTCCACACACTTTGCATACCGGCTGCTTATATACATTGAGGTGCAATTGCATCTCACC -AGTTTTTCCATCAGCATGACGATAATCTGAAATACTTGTACCGCCATGCTTAATACCTTCTTCTAGTACT -TCTCTAACATAATAAAAAACCATTTCTTGTTGTTGGTGTGTTAAGTCTTTTACTTTTTTATCTGGTAAAA -CACCTGCACGAAACAACGCTTCACATGCGTAAATATTTCCGCAACCTGCGATTACTTTATGATCCAAAAT -CACTTGTTTGATTGGTTTATTCTTATTAGACTGTTGATGAATTCGATTTAAATAATACGTCAATGCTTCA -TTTGTAAAAGGTTCAGGCGCTATTTCCAGAAATGAAGGATAAGATGCTACAGACGCAACATTTCTAATTT -CTCCAAAACGACGTATATCTGAATAAATTAACTTTTTGTCATTTGACAGCTCAAAAATAACATGCCAATG -CTTACGATAATTAGGTATCATAATATCTTCAAGTTCATCTACAATGAAAAAACCACCCGCCATACCTAAA -TGGCTAATTAATGTACGTTGTTCTCGTTTATTATCTAGTTGAAAAACGATATATTTACTTCTTCGTTCTA -CATTAGTAATGGTATAGCCTTCCGATAAAGTTTTAAAAGTATCTAATTCAATTCCTTTTATAATTGTTTC -CTTGCCTTGAGCTTTACCTTCGATTACTTTATCCGAAAATATAACGTGTTCAATTTTCTGATTTATAACG -TAGGGTTCAATTCCTCTTTTTACATGTTCTACTTCTGGTAATTCGGGCACACCATTAACCTCACTTTATT -TTGCATCATACCAAGTTGCACCATAACTTGAGTCTACTTTTAATGGAACATCTAATTGCAATGCATTTTC -CATTATCTCTTCTACAAATTCACTAAATGAATCTACTTCTGACTTAGGTACTTCAAAAATTAATTCATCG -TGTACTTGTAATAATAGTTTAGCTTGATATGTTGTCTCTTTCATTTTTTGCGCAAATTTAACCATTGCCA -GTTTAATGATATCTGCAGCACTGCCTTGTATTGGCGTATTCATAGCAGTACGTTCAGCAAAGCCACGTAA -ATTAAAGTTACGACTCGTAATATCAGGAATATAGCGTCGACGATGTAGCAATGTTTCCACGAAACCTAAA -GCTTTGGCATCTTTTACAATATCAGACATATATTGTTTTACACCTGGGAAACTAGCTAAATAATCATCAA -TGAATGCTTTTGCTTTTTTACGAGTAATACCTAAACTTTGACTTAAACCATAATCACTTATCCCATAAAC -AATTCCAAAGTTAACCGCTTTTGCTTGACGACGCATTAAACTATCGACTTGATCAGCTTCTACACCAAAT -ACTTTCATAGCAGTTGCTGTATGAATATCATCGCCGTTGATAAATGCTTCTTTCATACTCTCATCTTGTG -TAATGTGTGCTAATACACGCAATTCAATTTGAGAATAATCTGCTGATAATATAACGCTATCTTTTGAAGT -TGGTTTAAAGGCTTTTCTTATTTTACGCCCTTCTTCAAGTCTAACCGGAATATTTTGTAAATTAGGATCT -ACACTTGATAAACGTCCAGTTTGCGCTAAAGTTTGGTTAAAACGTGTATGGATACGTTGATCATCACTAA -TTACCTTTTGCAATCCTTCAACATAAGTAGACTGCAACTTAGATAATTGACGATATTCTAAAATATAATC -AATGATAGGATGTTCACCTTGCAATTGCTCTAAGACATCTACAGCAGTAGAATATCCTGTTTTCGTCTTT -TTAATAACAGGTAATTGTAATGTCTCAAACAATACAACACCTAATTGCTTAGGAGAATTTATATTAAAAT -CTTCACCAGCTGCATCATGGATATTTCGAATCAAGACGTCTAATTTTTCTTGAATTTCTTTTTCCATTTC -TTCTAAATCATGAACATCTGTATATATACCAATTTCTTCCATTTCACTTAAAATCTTAGCTAGCGGTAGC -TCTAAATCAGCTAAGAGTTCTACCTGATTGTATTCTTCTAATTGTTTATCCATATTTGGTTTCGCAAAGT -AAATTGCATCAGTAATAGAAGCAACATATGGATTTAAAACATCATCTTCAGGTACCTTAAATTTCTTACC -TTTTCCATATATACTCACATCGTCTTTCACAAAACTTTGACCGTACAATGAAACAACTGATTGAACATCA -CTAATCGTACGAGATGGATCAATTATATAACTGGCCAACATAATATCGAATGAAATATTTTGAATATCAA -TTCCCAATCTATGTGATGCTACATATGTTTTTTTAGCATCATATACGACTTTTTTCGTATTCGGATTTTC -TAACCATGAAACTAGTTCAGCATAATTAATTATGTCATCCGCATTAATTACAATATGTTTCTCACCTGTA -AATAAAGAGAATTTTAAAATATTATTTCGCAAATAGTTGCCACCGTCTAATTCGAAATGGATGGTCGCTT -CTTTCAATGAAGTAAAATCAACATTATCAAAAGACGTTTCAATTTCAAATGTCTTTTCTATTGCATCTTC -ACCACTTGCTGATTGATCAATGTCAGCCAACAATTGTTTGAATTCTAACTTCTTAAACAATTCGATTTTT -TCTTGTTGTTCATCTTGATGAGTCATTAACGTATCTTCAAGTTTTACTTCAATCGGACTATCTACATTAA -TCGTTGCTAATTCTTTACTCATTAATGCATTTTCTTTGCTGTTTTGAAGTTTTTCTTTTAACTTTTTACC -TGAAATTTCATCTAAATGTTCATAAACACCTTCTACTGTGTCAAATTGGTTCAGCAATTTTATTGCTGTT -TTCTCTCCAACACCTGCAACACCTGGTATATTATCAGAAGTATCTCCCATTAATCCCTTCATATCAATAA -TTTGATTAGGTGTTAACCCGTTGTATTTTTCAGCAATAAAGTCAGGTGTATAATGATCAACATCAGTAAC -ACCTTTTTTAGTGTAATAAATGGTTACATTATCCGTTGCAAGTTGTGTTAAATCTCGGTCTCCCGTAATA -ATAATTGTCTGAAAGCCCGCTTTATCTGCTTCTTTACTTAAAGTTCCGATAATATCATCTGCCTCATAGT -TATCTAATTCATAACGTTTAATATGATAAGCATCTAATAATTGGCGTATATAAGGAAATTGCTCACTTAG -TTCAGGCGGCGTTTTCTGGCGTCCACCTTTATATTCACTATATTTTTCATGTCTGAAAGTCGTTTTACCT -GCATCAAACGCTACTAAAAAATGATTTGGCTTTTCTTCTTTTAAAATCTTCTCTAGTAACATTGCAAAAC -CATATACTGCATTGGTATGAATGCCTGCTTTGTTTGATAACAAAGGTAATGCATAAAAAGCTCTAAAACT -TAAGCTATTACCATCGATTAATACTAATTTATTCACAATTTTAACCTCCAGAACTAATTTATATATATTT -TAGCATATTCGACTGTGATGTCGTAATTAAAGAAACTATCTCATAGAGTATTTATACACGACCTAATTTC -AAATAAAACAAGTGACTATATAGACTAAGCTAAAAAATAAAAAGACATAATCATGATTGTTCTTGATGAG -CACTCAATAAAGTCAGGTTAAAAGTCCAACTTTTGAGATGCACATTATCATTTCATGATTATGTCTACTT -TTTAATATTTTTATGCTGCTATTATAAATTTTTATAGGTAAGAATAAGTTATGAATCGTCAGAACCAAAT -GGAATATATTTAACTTTGGTCATTTTCGGTAATTCTTCATAATTATTAAACCACTCTTGGTAATTTTTAT -TGATTGGTGACGGATGATGCATATAATGTTCAAACGGCAATGATTCCACTGTATAAACCTCTTGTCGTGG -ATGATCTTTAATTTGTTGTTTTAATAACTGAACTCTTTTTTCATGTTCATAATGAACATAAATAAATGCA -CTAAGATATATCACAGCTAAAACTAGTGATGCACCTTTAATAAAATTAACATTGATTGACTTATATTTCC -GAAATTCTTTTAATAAAATAATTAAAATGATTACATGTATCGTATAAACAATCAAAAAATTACCTGGTTC -AATTGGAGTAACAATGACTAGTGTCGACGCCGAAACACATATTGAAATAAGTAAGGAATATAAAGTAATT -TGTGTTTTACGATCATTAATAGACAAATAAATACCTACAAATATCGAAAACGCAAAGTAACCACATACAA -TTATGTTCGCAAAACCAACCAATCCAATATCTGTATTTTTATTTAATAAAAACTGATTGTAAAATAGTAA -ATAATAAAGCGGTAAAGTGATAAATCCTATCATAATGATACGACGCTTTAATATTGTTAAATGTAAATAC -CGATCACTTCTAAGCAGTAGATAAATAATAAGCGCTGCAATCATACTTAAAATTATAACCTGACTGAAAA -TGACACCATATGGAAGTGATGTCGATATCATTTCTGCAAATTTTGAAAAGATACCTTGATTATTAGAAAC -TTGTTGATATTCTGATCCTTCAAATAAAATTTTGCGATAATTTGGATTGGAAAACATAATGATTGTACCT -ATAGTAGCAATCATAAATGAAAACAATAATTTATAATTAAGTGTTCGATTTGCAGTAAATTCATACAGAA -AAGCTAAAATTAAAATGATACAGTGGAATAATGTCACATTCTCCATAAATAATTGACCGAAGAAGCTTAA -AACATAGAATAGTACTGTAACACTTACCGGTTGCTTTTCTTTATATATAATTGCATTAATACAATAATAA -ATGATAAAGAGTGAAATTAGTGTTGATGTCGCATAATTATAAAATCCTGCAAACCAGCCATATGTATCTG -CATAAATAGCACTTGGTAAAATTAACATCAAAGAAAATGCTAACAAATAATAGCTTGTCCACGCTTTACA -ACGTGTAATGTGCATAATCATCCAAATGATACCCATACTAATGAGACCATATGAAAGCCAACGTAACCAG -CTTACATGTACAGCTATAATTTCAAAGATATTTCCGATATAGCGACCATTAAGTGATGCAAATCCTACTT -TTAAAATATCAGTATTATAATTGCTAAACCATTGTAAATCATCGTGCATGAGTGGTAGTAAGATACCCAT -AAAAGTATAAAACAATAATATCGCAATTAATATCAAAGTTGTCTTGTGTAATTGAATTGTTTTCACTTTG -CTAATCCTCAAATCTAGTTAAATTTTCCTCAACTTGTAGGTCGAAAAATTAATTCAATATTTTTAATGTA -TTTCTAATTTTCACCTATGCATGTTTCCTCAATCAAATTAGATAAACAAGGTATTTAATATTACTTTTCA -ACATTTTATCTAAATCGTCCCTCGTCTTTTTCTATGACGAATGATTACACTTGTGTATTCAAGTGTTTAA -ATTAAGATTTATTTCCGTTCAAATAAAACTTATTACTTTTTAATTAAGTATCTATTTTAAGCGTGTTACT -AAAATTTCTTTATTATAATAAATATATTATAAAATTGCTTGATTCACAACAATCTATTACTTATAACTTA -CAAAACGACATATGCAAATGACAAAATTGACAACCGAATATATTCCACTTCATTAACTCTAATTTAATAC -CAATAGAGATTTGAACGAAATAAAAAAGCAGCAACAACTTCGTGAAAAATACACGCGCTGTTACCACTTT -TAATTTTTATTCTTTATAATCTTTTAGAATAACTTTGAACGTTGAGCCTTTGCCAACTTGACTATTCACT -TCAATATTGCCTTGGTGGGCCTCTACTATATGCTTTGTAATTGATAATCCAAGACCTGTCCCACCAGAAT -CTCTACTTCGTGCTTTATCTACTCTATAAAATCTTTCAAAAATACGTTGTTGGTCTTCTAATTTAATACC -TATACCAAAATCTTGTACTTCGAAAATGACACGAAAGTCATCTCGATACACACGAACGTTAATATCTCCA -TCTTCATAAGAATAGTTAATTGCATTCGTTAACAAATTCGTGATAACTTGAGCAATTTTACTTTCTTGTG -CTTTAACAATGACATCTTTTTCAATTTCAGTATGAATGGAAATATTTTTTTGATTGGCTTGAGTCATCAT -ATTATCAATAATACGCCGCGTTAAATCTGATAAATTCATATAGTCTGTATCTAACTCGGTATGTTGCTCA -ATATGCGATAAATCTAACAGATCTGTTACTAAAGATTCTATTCGATTTGATTCTTTTAAAATTATGTTCA -AAAACATGTCTAATGATTCCGCATCATTTTTTGCACCATCAATAAGTGTTTCAGCAAACCCCTTAATTGA -AGTAATAGGTGTTTTTAATTCATGTGAAACATTTGCTACAAATTCACGTCTTAGATTTTCAAGTTGTTTC -AGATTTGTTATGTCATGCATCACAACTAAAATCCCTTGCAAACTTTTTTGAGATCTAGTTAAAATCGGAA -CACAAGAAATATCAAAGTACTTGGCATGGACTTGGTTTATTGCAACTTCCAATTGTTCATAGATAGGTTT -TTCAACTTTAAAACTTTCTAAAATTAATTGCTCAATTTCAGTATTAACATAGCCGTGATAGCCTACTTGT -TCAATATTATGCGAGATGTTGAACTGTTCATAATACGCTTTATTTGCAACAACGATTTTTCCATTTCGAT -CTATCATTAAAATAGCACTTGGAATATTTTCAATCGTTGTTTTTAAACGGTTGGATTGAATTTTTTGCTC -ATTATTAAGCTTTTGAAGGCGTCGTGCTAAATCATTGGTAGACACAAAAAGCGCTTTAGTTTCTACAACA -TTACTTTCAGGTACACGTATGTGATAATAACCATTTGCCAACAATTGTGTTGCATAAGTAACTTCTTGAA -TGGGACGGATTAAAGTACGCTTAAAACTACGGCTTGCAAAATACAGACAAATAAGTACAACTAAACATGT -CAATATAAGATATTTCCACAACGTCCAATGCATTTCTGTAATATCGTTATTGTAACCTTTAATCCATACA -TGATAACCGTTAACCTTCTTATTAAAAATAAAAACGTCCTTTTTTTGACTGTAATTATCAATTGTTTTAG -TAGGTTTCAGTTTGCCACTACTAAACACCTTTTTATCATTTTTAGTTATCAATAAATCAATATTTTGCTG -TTTTACAATTTCTTTAACTTTATCAATCTCATTATCTTGGACTAAATAAATATATGATCTTGCATCTGTT -GCTAGAGCTTGTTCGTGTTTTTCTGATAAAACATATGTGATGGAAGCGTGAATAATAATGCCTAATGTAA -CAAAACTGATAATTAATATACTGCTTATCAATAACATTAAGCGGTGGTGAAACTTCATCATTATTCTTTA -GGTCTTTCCAATTTATAGCCTAAGCCACGCACAGTTTTAATAAGTTGTGGTTTCTTAGGATTATCTTCTA -ATTTATCTCTTAAATGACTGATATGTACATCAACAATTCTTGAGTCTCCTGCAAATTCATAATTCCATAC -CGTATTTAACATATGCTCTCTCGTAATGACTCTGCCTTGTCTTTCTATCAAATAAAGCAACAGTTCAAAT -TCTTTCGGTGTTAGCTCCAATAGCTCATTATGCTTATATACTTCAAAATAATCGGGTCTAATACGTATCG -ATCCGATGGTAATATCATCGTCAATCTCTTCTACTTCTTTTACAAATTGAGAACGTCTTAAAATGGCTTT -CACACGGGCAACAACTTCTCTAGGTGAAAAAGGCTTAGTCATATAGTCATCGGCACCTAATTCTAAACCT -AATACCCGATCAAATTCATCATTTTTCGCCGTTAACATTAATATAGGGACTAAATTTTTATTTGTTCTTA -CAGTCTTACATACGTCAATGCCATCTTTTTTAGGTAGCATAACATCTAAAATAATTAAATCTGGCTGTTC -ATTTTCTACCTTCTCTAAAGCCTCATCACCATCAAATGCGACAACAACTTCATAACCAGCTGTTTCTAAG -TTATATTTAAGTAATGTTACGATTGAATGTTCGTCATCTACTACCAACACTTTTTGCGACATGGTATGCC -TCCCTAACTTATAATTATATTTACATTATAACCGAACTATTTATAAAAATAACATCCTACACATTATCTT -TACACATTTTTTACATTACTTTACACATAAATAAAATACTTCTTTTATTTCCTTCTATAATTTGCATGAC -ATACTCTGGGACAACGAAATAAATTTTGTGAAAATATCATTTCTATCCCACTGCCTATGCATGAGTTTTA -CTCATTTATTCCTAAGCTTATATACACATTCGCTTTAGTTAATGTGTAAGAAACACTACATAATCAATCA -TTCGTGACTCTTTATCATTTCTATCCTGCTGCCAACTTCAATTCATTTAAAAAGGTGAACCTAGCAATTA -AAGTTGCTAGACTCACCTAAGTTTATTTTGCTTATTTTAAATTTTTAATCAATTCATCTGCAAATGCTGA -TGTAGAAACTTCTTCAGCACCATCCATTAAACGGGCAAAGTCATAAGTAACAACTTTTGAAGCAATTGTA -TCTTCAATTGAATCTGTAATCTTATCTGCCGCTTCTTGCCATCCTAAATGTTCTAACATTAATACAGAAC -TTAAAATTACTGAAGATGGATTCACTTTATTTAAACCTGCATATTTTGGAGCTGTACCATGTGTTGCTTC -AAAAATAGCATGCCCTGTTTCATAATTAATGTTTGCACCTGGCGCAATACCAATACCACCAACTTGTGCA -GCTAATGCATCTGAAATGTAGTCACCATTCAAGTTCATAGTTGCTACAACATCATGCTCAGCTGGACGAG -TTAAAATTTGTTGTAAGAAAATGTCAGCAATAGAATCTTTAATGATAATCTTGCCTTCTTTTTCAGCTTT -TTCTTGTGCAACATTAGCAGCATCTCTGCCTTCTTTTTCAACAATTTCGTCATATTGTTGCCAAGTAAAT -ACTTGATCACCAAATTCAGTTAATGCTAAATCGTAACCCCACTGCTTAAATGAGCCTTCTGTAAATTTCA -TAATATTACCTTTATGAACTAAAGTAACTGATTTACGGTTATTATCGATAGCATATTGAATTGCTGCTCT -AACTAATCGCTCAGTACCTTCTTTAGAAACTGGCTTAATACCAATACCTGAAGTTTCTGGGAATCGAATA -TTTGTCGCACCCATTTCGTTTTGTAAGAAATCAATTACCTTTTTAACTTCTGTTGTTCCTTCTTTAAATT -CAATACCAGCATAAATGTCTTCAGTATTTTCACGGAAAATAACCATATCAACATCTTGTGGACGTTTAAC -AGGTGATGGTACTCCTTTAAACCAACGTACCGGTCTTAAACAAGTAAATAAATCTAATTCTTGGCGTAAA -GCTACATTTAATGATCTAATACCACCACCAATTGGTGTTGTTAAAGGTCCTTTAACAGCAATTAAATATT -CTTTAATTGTATCAAGTGTTTCTTGAGGTAACCATTCGCCAGTTGTATCAAATGCTTTTTGACCAGCTAG -CACTTCTTTCCATTCAATGCGTTTTTCGCCATTATAGGCTTTCTCAACAGCAGCATCTATAACTCGGCTT -GCTGCCTTCCAAATATCCGGTCCAATTCCATCACCGATAATAAATGGGATAATTGGCTCATTAGGTACGT -TTAATCCTTCAGTTCCTTGAGTAATTTTTTCTGCAGTCATAGTTATTTTACCTCCAAATTTTACATCTTC -ATTTTTAATTTGTATTGATTATTTTCTTTCTTCAAGCGGAATATACTTACGATTCGTTTCGCCAATATAT -TTTGCTCTAGGACGCATAATTCTATTATCTTTATATTGTTCTAAAATATGAGCAATCCATCCTGCAGAAC -GACTTACAGCAAAGATTGGCGTGAATAAGTCATGAGGTATTTCCATACAGTGATAAACACTCGCACTATA -AAAATCAACATTTGGAATTAATCCTTTTTCTTCTGCCATGCGTTTTTCCATTTTCACTGACATTTCAAAT -AATTCTTCACGACCAGCGTCTTTCGTAATTTGACGGCTCATTTCTCTTAAATATTTCGCTCTAGGATCAC -CATCTTTATATACACGATGACCGAAGCCCATTACTTTATCTTTATTAGCAAATTTTTCATCTAAGTAAGC -ATCAACATTTTCAATTGACCCAATCTCAGATAACATCGTCATAACTTGTTCATTTGCACCACCATGTAAT -GGCCCTTTCAGAGAACCTACAGCTGCTACAATACCTGAGTACATATCTGACAATGAAGATACCGCACAAC -GTGCTGTAAATGCAGATGCGTTCAACTCATGATCAGCGTGTAAAATAAGCGCTTTATTGAAGGCTTCCAC -TTCTATATCTGTTGGTAATTCCCCACGTAACATATATAGGAAGTTTGCTGCATAACTTAAGTCAGGATTA -GGCTTAATTGGTTCTTTATCTTGTCTTACTCGAGCAAACGCTGTAACTAATGATGCTACTTTAGCCTGTA -TACGCATTGCTCTTTCATAACGATTTTCATCTGATTCATTTTCAGCATCAGGATCGAAATGTGCAATATA -TGATAATGACGTACGTAATGCTGTCATTGGATGCACGTGATCTGTAACATACTCCTCAAAATGTGTATAC -ACACGAGGATTTAATGTCATGTATTGATTTAATTTCCCCTTTAAATGAGCAAGCTCTTCTTCATTTGGCA -ATCTATAGTTCCATAATAGGAAAATAACTTCTTCAAATTGCGCATTTTCAGCTAGATCATCAATATCATA -GCCGGCATAAGTCAATTGACTTTCAATAATTGAACTTATTTTAGTCTCCGCTGCGATAACCCCTTCTAAA -CCTCTTTGTAATTCTGCCATGATAAATTTCCCCTTTACTGTTTCTTTATGAAATGGCTTTCAACTAATAT -TATAGCTAAACGCATTTCGTTTGTGAAATATAAAAACTGGCATTATATGTGCAACAATTATTTTGTAAAT -CTATGTAAATGTCACAGAATGGCCACAAATAGCACCATTAAAGCTTTTTCAAGATTATATTCATCACCAA -CTTTTAGCATAGAATAAAATTTTCAATTGGTTATTATATATGATTATAAAATCCAAAGTATATTAACATG -GAATTTTACACATTTTTACCGAAAATAATTGTATATATCCTAATATAAGTGCATAATAAACATATCTATA -TTTAAGGGAGATGTATTATGGCTGAAAAATTACAAAGGGAACTGAGCAATCGCCACATTCAATTAATTGC -TATTGGTGGCGCAATTGGTACAGGGCTATTCTTAGGCGCTGGTCAAACGATTGCATTAACTGGCCCTTCT -ATATTACTAACATATATCATTATTGGATTTATGTTATTTATGTTTATGCGAGGTTTAGGTGAAATCATCA -TTCAAAATACTGAATTTAAATCTTTCGCAGATGTAACCAATACATACATTGGGCCTTTTGCAGGATTCGT -AACCGGTTGGACATACTGGTTCTGTTGGATTATTACAGGTATGGCTGAAGTAACAGCTGTAGCAAAGTAT -GTAAGCTTCTGGTTCCCAGAAATTCCAAACTGGATTAGTGCACTTTTTTGCGTATTGTTATTAATGTCTT -TTAACTTATTGAGTGCGAGACTATTTGGAGAGTTAGAATTTTGGTTCTCTATCATTAAAATAGCAACAAT -CATTGGTTTAATTGTCGTAGGTTTCGTTATGATTCTATTTGCATATAAAACTCAATTTGGACATGCGAGT -TTCACGAACCTATACGAGCACGGTGTATTCCCTAAAGGAGCATCTGGATTCTTTATGTCATTCCAAATGG -CCTTATTCTCATTCGTGGGAATCGAAATGATTGGTGTTACGGCAGGTGAAACGAAAGATCCTGTTAAAAC -AATACCAAAAGCGATTAATAGTGTTCCTATTAGAATTTTAATATTTTATGTCGGTGCTCTAGCGGTTATC -ATGTCGATTATTCCTTGGCAACAAGTTGATCCTGATAACAGTCCATTCGTAAAATTATTCGCATTAATTG -GAATTCCATTTGCTGCAGGCTTGATTAATTTTGTAGTACTAACTGCTGCTGCTTCATCATGTAACAGTGG -TATTTTCTCGAATAGTCGTATGCTGTTCGGTTTATCAAGTCAACAACAAGCACCACCGAATTTCTCTAAG -ACGAATAAGTATGGCGTTCCACATGTAGCGATCTTTGCTTCATCAGCATTGTTACTCGTGGCAGCATTAT -TAAACTATATTTTCCCTGATGCTACTAAGGTATTTACGTATGTGACAACAATCTCTACAGTATTATTCTT -AGTTGTTTGGGGACTGATTATCATCGCTTATATCAATTATAGTCGTAAAACTCCAGATCTTCATAAAAAG -GCTACGTATAAATTATTTGGCGGAAAATATATGGGCTATCTCATTTTTGTATTCTTTATATTTGTGTTTG -GCCTATTGTTTATCAATGTTGAAACAAGACGTGCGATATACTTTATTCCGATTTGGTTTATACTATTAGG -ATTTATGTACTTAAGATATAAACGTATCGCTGCTAAATCAAATAACTAACAACAAGTTTTACCCCTGTTG -AATATATTAAAGTTCAACAGGGGTTTTTATATGCAACTTATAATATTAAATTGCGTACTTGCCTCAATAC -TTTTACTTTCTCATCTATTGAATAATGTATCATTTTAAAGATACATCCATACTTCTATTTTATAATAACT -TTCCAAAGTAATATGAGTGAAAGTTTAAAGCTGATAATGTGCATGTATAAAAGATATAAACATTTATATA -GATTGCTATTCATACATTATCATTATCAAATATCCTATTAATTACGTCATAAAATACCAGATGAACCAAA -AAACGCCTTTCCATTGTTGATAAATGGAAAGACGTTTTTTATAAATTATAGTACGTTTGCATATCCTTCA -AAGATTTTACCTTGAGCAGCATCAATCGTAACTAACACGTTATTGCTTATGTTTTTAACAGCTTTTTCTA -CACCTACAACTGTTGGAATACCTTTTTCTAAACCAACAATTGCACTTGGTGATGTAATTCCATTTTCTTC -TGTAATTAAGCCTAACGCTTTTTCTACATAAGGTACAAACGTTTCATCGATTGAGTTTGTAACGATAACT -TTGTCAGATAAATCTTTACCTTCTAAATCTTTAACAGTTTCAGCAACTAACGTAGTACCAACAACTGATC -CACGTCCAATACCTTGACCATTAGCAATTTCGTCACCAACTAGGTGGATTTTCATCATATTAGTAGTTCC -AGTTTCACCAGTTGGTACACCAGCAGTAATAATGATTAAATCACCATTAGTTACTCTACCAGTTTCAACA -GCTGTTGCAACTGCATTGTTTAACAATGCATCTGTACTCTTACGTCCTTTTTTAACTACAGGTTGAACAC -CCCAAACAATTGAACATTGACGTGCAGTTTCTTCACTTGGAGTCACTGCAATAATGTCTGAATGCGGACG -ATATTTAGAGATAGTACGTGCCGTTGAACCACTTTCAGTAGCAGCTACAATTGCTTTAACATTTAAGTTT -AAAGCTGTATGTGCAACCGAAATACCGATAGCATTCACTAATGAAGTTTCAACTAATTTAGTACGATCTG -ACAATAACTTTTTGTAATCTTGGGCTGCTTCAGCTGATACAGCAATATTTCTCATTGTTTTAACAGCTTC -TTCAGGATATAAACCAGCAGCAGTTTCACCAGATAACATTACTGCATCTGTACCATCATAGATTGCGTTG -GCAACGTCACTAGCTTCTGCACGTGTAGCACGTGGGTTACGTTGCATAGAATCTAACATTTGTGTAGCTG -TAATAACTGGTTTACCTAATTTGTTACATTGTCTGATTAAATCTTTTTGAACCATTGGTACTTTTTCAGG -TGGGATTTCAACACCCATGTCACCACGTGCAACCATTAAACCATCAGACACTTCAAGAATTTCCTCAATA -TTATCAATACCTTCTTGGTTTTCAATTTTAGGGAATACTGAAATGTTAGCTTTTTGTTCTTCTAAAATTT -CACGAATTTCTAAAACATCACTAGGACGACGTACGAAACTTGCTGCAATGAAGTCAACATTTTCTTTAAT -ACCGAAACGGATATCTTCAGCATCTTTTTCTGTAATACCAGGTAAACTAACTCTTACACCAGGTAAGTTA -ACACCTTTTTTGTTTTTAAGCTCACCAGAGTTTAAAATATCACATTTAACTTCTTTTTTAGCATGGTCAA -TATCTTTAACTTGTAATTCAATTAAGCCATCATCAAGTAAAATGTATGAACCTACTTGAACATCGTTAAT -TAAGTTTTCATAAGTTACAGAGAACTTTTCAGGTGTTCCTTCAACTTCATTCATGCTAACAATAACTTCG -TTACCACGTTCAAGTTCAATGATACCGTCTTTCATATTATGCGTACGAATTTCTGGACCTTTCGTATCTA -ATAAAATTGCTACAATTTTGTCTAATCTTTTAGCTACTTTACGAATTGTATCAATTCTACCTTTATGCTC -TTCATGACTACCATGTGAAAAGTTTAATCGTGCAACGTTCATACCAGCATTGATTAATTTCTCAATCATT -TCTTCTGATTCTGAAGCTGGTCCAATTGTACATACAATTTTAGTTTTTCTCATTTTATAATTCCTCCTGA -AATCTTATATAGATAACTTGTTAGCAAGTTCATATAGACTATAATCAAATTTATGATCTTTACCATCAAA -AATTTCATCAAAAGATGTTGCTACAATTTTATTGTTCTTAATTCCAACACCTTTAGCTGTTTCACCTTGC -ATTAATAAGTCTACCGCATATCCACCTAATCGTGATGCTAAAACTCTATCCGCACCTGTTGGGCTACCAC -CACGTTGAACGTGACCTAACACAGACACTCTATTATCAACATTGATGAATTGTGATAATTCTTTTTGACA -ATCTTGCGCAGTCATACAACCTTCTGCTACAAGAACGATTGAGTGTTTCTTACCACGTTTAATACCTTGT -TCAATTTTATCAGCTATTTCTTTAATATCTGTTTTCACTTCTGGAACTACAATTGTCTCAGCACCAACTG -ATAATCCAGCCCATAATGCTAGATCTCCACAATCACGGCCCATTGCTTCAATGATAAATGTTCGTGCGTG -ACTTGACGCAGTATCTCTAATTTTGTCGACTAAGCCAATAATCGTATTTAATGCTGTGTCAAATCCAATT -GTAAAATCAGTACCATTGATATCATTGTCAATCGTACCAGGAATACCGATAGTTTGAATTTCTTTGCATT -CCTCACTGATGCGTTGTGCACCGCGATAACTACCGTCACCACCAATAACTACAAGGCCCTCAATCCCTCT -TTTACGTAAGTTTTCGATTGCAACTTTACGTACTTCTTGCTCCTTAAACTCTGGACATCTTGCTGAATAC -AAGAATGTACCTCCACGCTGAATCGTATCCCCAACTGATCCTAATTCAAGTTTATGAATATCATCATTTA -ACAATCCTTGGTAACCATGATACACACCATAAACTTCAATTTCATTGTAAATTGCTGTACGAACAACTGC -TCTTACGGCAGCATTCATTCCAGGTGAATCTCCACCACTAGTTAAAACTGCAATTTTCTTCATGACGACA -TACCTTTCTATAACTGATTTATCTTTAACTCTAAATTACCACAAATTGATATGTCATTCCATCAAAACTA -ATGTATTGAATTGATGTAAACGTTTTAAATATTGAATTTTATTTTAACTTAATTAAAAAAAGATTAGTAG -CCACAATTTTGACTACTAATCTTAGTTAAAATTCAGTATCTAAATATTGAATTATTGTTTTAATGTACTT -CAATTTATGGTAAAACCCAGTAACGATTTAACATAAAAATGCTTAAGTTGATTATTCTATATAAGAACCG -ATATTTCTGAATTTTTCAAACCGATCATTAGCAATTTCATCACGTGATAATGACTCAAGTGAATCTAATT -GTTCAACAAACGCTGATTTAATAGCTAAAGCTTGTTGTTCAATATCTTTATGTGCACCGCCAAGTGGTTC -AGAAATGACATCATCTATAATACCTAATTGCTTAATATCATGGGCAGTAATTTTCATTGTTTCAGCTGCA -ATTTTAGCCAAATTACTGTCTTTCCATAATAATGCCGCTGCACCTTCAGGAGATATAACAGAGTAGGTAC -TATTCTCTAACATCAATACTTTATTGGCAATACCAATACCTAGGGCACCTCCACTGCCACCTTCACCAAT -GACAATCGCAATAACTGGTACTTTTAGTGAAGCCATCTCAATCAAATTTGTTGCAATAGATTCACTTTGT -CCACGTTCTTCAGCAGCTTTACCAGGATATGCACCTTTTGTATCTATAAATGTAAAGATAGGACGATTGA -ATTTTTCAGCTTGTTTCATTAAACGTAGTGCTTTTCGATAACCTTCTGGATGAGCCATACCAAAATTTCG -ATAAATATTATCTTTTGTATCTTTTCCACGTTGTTGTCCAATAACCGTAACAGCACGACCATTTAAAAAG -CCAATACCACCAATCATTGCTGGATCATCTCTAAAATTACGATCACCATGTAGTTCCATAAACGAATCAA -AGATATATGGAATATAATCTAGTGTCGTAGGTCTTTCTTGCAAACGCGCAATTTGCACACGATCCCATGG -TTTTAGATTTGTATATATTTTTTTAGTTTCTCGTTCCAATGACGCTTCAAGCATGTCAATTTCTTCTTGT -AAATCCACATCATTTTTATCTTGAGATTCTTTTAAAGATTCAATTTTATTTCGAATTTCAAAAAGTGGTT -TTTCAAAATCTAACATTATTTAGTCACCTCTTGATGGATTTTTAGAATTTCAGACAATGTTTGACGCATA -TCATTACGATGTACAACTTTATCCAATTGTCCATGCTCTAATAAAAATTCTGCAGTTTGGAAATCATCTG -GCAATTTTTCGTTTATTGTCTGTTCAATAACTCGACGACCTGCAAAACCTATCAATGCTTTTGGCTCACT -TAGATTTATATCACCAACTGATGCAAAACTTGCAGATACACCACCAGTAGTTGGATGTGTTAAATATGAT -ATATATAATAGTCCAGCGTCAGAATGACGTTTTAAAGATACACTGGTTTTACCCATTTGCATCAAGGAAA -TAATACCTTCTTGCATACGTGCACCACCACTTGCAGAGAAAAGTATAAATGGTAAACGGTTCTCAGTGCA -GTAATCAATGATGCGACATATCTTTTCACCAATAACCGATCCCATACTTCCCATTCTAAAACGTGAATCC -ATGACAGCAACGCCAAATTTCATACCATCTAGTTGCGCTGTACCAGTCACTACTGCTTCTTTAAGACCTG -TCTTTTGTTGGTCCTTTTCAATTTTTTCTAAATAACTTGGAAAATCTAATGGATTCGCAGAGGTCATTCC -CTTATCGAATTCTGTAAATGATCCTTCATCAGAAATTGCTTCTATACGTTTATACGCAGTTAAAGCAATA -TGATGATCACAATTAAAGCACACATTTAAATTTTCAGCTAATTCTTTTGTGTACATAATTTTCTTACACT -TTGGACACTTAGTCATAATACCTGCAGGCACATCATTATTTTTAGAGTCTTGTACTGTAAGATATTTCTT -TTTCTTTGTTCGATTAAAAAAATCTTTAAACATAGGAAAACCTCCAAATAACCTCTGTTCTAACCATTTA -GAGCCTTAAACTGAACTTGACCAGTTAAAAACGGGTTTAAATTTATTTGATTTATATTCGTTTGACTGTT -GAATGTTTATCATAAACTTTCATTTTCATCATTTTAATGACTCTTTATTGCTAACTTTTAAGCACTTTAA -TTAAACGTTAATTATTTTTATTGTAAATCTGTAAGTTTCATTGTTTTATCATACACATCTTGCGGATCAA -CTTCAATCCTAGCTACTCCAGATTCCATTGCCGCTTTAGCAACATTACGAGCAACTGATGGCGCTACACG -TTTATCAAACGGTCCTGGGATACAGTAGTCTTCATTTAATTCAGAACTATCAATTAAATCAGCAATCGCT -TCTACAGCTGCTTTTTTCATTTCTTCATTTATATGTGTAGCTTCAACCTCTAATGCACCTCTAAAAATAC -CAGGGAAAGCTAATACATTATTAATTTGGTTAGGATAGTCTGAACGTCCTGTACCAACAACGCGTGCACC -TGCTGCTTTGGCATCATCAGGTATTATTTCAGGATTTGGATTAGCCATTGCAAATATAATTGGATTATCT -GCCATACTCTTAACCATATCTTGTGACAGCGCATTAGCTACAGAAACTCCAATAAATACATCTGCGTCTT -TTACGACTTCTTCTAGAGACCCTTCAATCTTGTCTTTATTTGTCCACTTAGCTACAACATCTTTCGTAGG -ATTCATACCATATGAACGTCCTTCAAAAATTGCGCCTCTTGAGTCACACATAACCATATTTCTTACACCA -TACGCGTATAGTAATTTAACAATGGCTATTCCTGCTGCACCAGCACCATTTAGTACAACTTTTATTTTAG -CAATATCTTTGTTAACAACTCTCAATGCATTTACCAAACCTGCCATTGTTACAATTGCTGTACCATGTTG -ATCGTCATGGAATACCGGAATATTAGTTTCTTTTTTCAATCGTTCTTCAATTTCAAAACAACGTGGTGCC -GAAATATCCTCTAAATTAATACCACCATAATTAGGTTCTAACAATTTAACTGTTTTAATGATTTCTTCGG -TATCAGTTGTATTTAACGCAATAGGCACCCCATTGATACCAGCGAAGCTTTTGAATAATACTGCTTTACC -TTCCATTACAGGAATACTTGCTTCAGGTCCAATGTTACCTAAACCTAATACCGCTGTTCCATCAGTAATA -ACTGCAACTGTATTTCCTTTAATTGTGTAATCATATACTTTTCTTTTGTCTTCATATATATCTTTACACG -GTTCAGCAACGCCAGGTGAGTATGCTAAACTTAATTCTTCTTTATTAGTAACTTTTACATTTGGTTTAAC -TTCTAATTTACCTTGATTACGTTTGTGCATTTCCAATGCTTCATCTCTTAATGACATGAAATCAGCCCCT -AATTCAATATTTATTTTTAAAAAATAACTTGGATAAAACGCATTACATTATAAAAGTAAAAATATTGGGT -ATATCTGAATGAGTAAGAACTTATAGTTTTAATTATGTAACACAAATAGCGATAAACGATAATAAAATAA -TATTTATAAAGATACATTAAACCATACTATCTAAAGATATACCTTTAATTATTATAATGGATAGCAAAAC -CAATATATCAAAAAGTTATTTTTTTTCTCACGATATATCGACAAAATTCTTTACTCAATTTATGTATACT -GCTTTTTGTGCTAATTATTCTTATGGATTAATCAATAATGTAAAGTGAAACTCATAAAAATAATAAGCAT -AAAAAACTAATATAAACGTAAACTGATGGTTAAAAAATATCTAACCATCAGTTTACTATATCATAATTTA -TTAGTTGATAAAAGTTATATAAGCCTAATATCACTAGGGTTAAAGGATTGTATAAAATTATTAAACATAC -TATCTTTTTGATTAATATAGCCTAAAGTAGTCATTTGTTTAATCGTTTCATCATAAAAGGATAACACAAC -ATCATTAGCATTCTCTTTCGTAGCTTTAATCATCTCTTCAAACATATCTATTTGTGATTTATTTCTAATT -ATAATTTGTTTGGCAAATGCTAATTTTTGTTCTTCAAAAGTGGCTAATGTCTGAATCTCATTTATAATTA -ATTGACGTTGTTGCTTTCTAAGGTCAAATTTCCCGCTAACTATAAATAAGTCATTATGTGATAACAACTC -TTCGTACTTTTTAAACTGATTAGGGAAAATCACACCATCTAAAGTTTCGATGCCATCATTTAATGTGACG -AATGCCATATTTTGACCATTTTTAGTTCGGATTTGTTTAACTTTATCAAACTGTACTAATATAGGCTTAT -TATTCTGCGCGTTACTCAATTTAAATATCGTTAAATATTGTTTGGCAACAAACTTCTTATCTACTGGGTG -TTGCGAAACATAAAATCCTAAATATTCTTTTTCATACTGACTAATAAGTGCATCAGGCAATTCTTCTTTA -TCTTCATACATCTGTTTTGGCGTTAAAATATCAAATAAAAAACCATCTTGTTCAATGTTTAAATCACCAT -CCAACACTTGATCAATAGCTTGCAACAACGTTGAACGTGTTTTACCAAAAGCATCAAACGCTCCCACTAA -AATCAGTGCTTCAAGTAACTTTCTCGTTTTGACTCTCTTCGGTATACGTCTAGCAAAATCAAAGAAATCT -TTAAATTTGCCGTTCTGATAACGTTCTTCAACAATCACTTTCACACTTTGATAACCTACACCTTTAATTG -TACCAATTGATAAATAAATGCCTTCTTGGGAAGGTTTATAAAACCAATGACTTTCGTTAATGTTCGGTGG -CAATATAGTGATACCTTGTTTTTTTGCTTCTTCTATCATTTGAGCAGTTTTCTTCTCACTTCCAATAACA -TTACTTAAAATATTTGCGTAAAAATAATTTGGATAATGGACTTTTAAAAAGCTCATAATGTATGCAATTT -TAGAATAGCTGACAGCATGTGCTCTAGGAAAACCATAATCAGCAAATTTCAGAATCAAATCAAATATTTG -CTTACTAATGTCTTCGTGATAACCATTTTGCTTTGTACCTTCTATAAAATGTTGACGCTCACTTTCAAGA -ACAGCTCTATTTTTTTTACTCATTGCTCTTCTTAAAATATCCGCTTCACCATAACTGAAGTTTGCAAAAG -TGCTCGCTATTTGCATAATTTGTTCTTGATAAATAATAACACCGTAAGTATTTTTTAATATAGGTTCTAA -ATGGGGATGTAAATATTGAACTTTGCTTGGATCATGTCTTCTTGTAATGTAAGTTGGAATTTCTTCCATT -GGACCTGGTCTATACAAAGAAGTTACAGCAACAATATCCTCAAAGTGTTCCGGCTTTAATTTTTTTAATA -CACTTCTTACACCGTCAGACTCTAATTGAAATATGCCAGTCGTATCTCCTTGCGACAACAATTCAAACAC -TTTTTGATCATCAAATGGAATTTTTTCAATATCAATATTAATACCTAAATCTTTTTTGACTTGAGTCAAA -ATTTGATGGATAATTGATAAATTTCGTAACCCTAGAAAATCTATTTTTAATAAACCAATACGTTCGGCTT -CAGTCATTGTCCATTGCGTTAATAATCCTGTATCCCCTTTCGTTAAAGGGGCATATTCATATAATGGATG -GTCATTAATAATAATTCCTGCCGCATGTGTAGATGTATGTCTTGGTAAACCTTCTAACTTTTTACAAATA -CTGAACCAGCGTTCATGTCGATGGTTTCGATGTACAAACTTTTTAAAATCGTCAATTTGATATGCTTCAT -CAAGTGTAATTCCTAATTTATGTGGGATTAAACTTGAAATTTCATTTAATGTAACTTCATCAAACCCCAT -AATTCGTCCAACATCTCTAGCAACCGCTCTTGCAAGCAGATGACCGAAAGTCACAATTCCAGATACATGT -AGCTCGCCATATTTTTCTTGGACGTACTGAATGACCTTTTCTCGGCGTGTATCTTCAAAGTCAATATCTA -TATCAGGCATTGTTACACGTTCTGGGTTTAAAAAACGTTCAAATAATAGATTGAATTTAATCGGATCAAT -CGTTGTAATTCCCAATAAATAACTGACCAGAGACCCTGCAGATGAACCACGACCTGGTCCTACCATCACA -TCATTCGTTTTCGCATAATGGATTAAATCACTTACTATTAAGAAATAATCTTCAAAACCCATATTAGTAA -TAACTTTATACTCATATTTCAATCGCTCTAAATAGACGTCATAATTAAGTTCTAATTTTTTCAATTGTGT -AACTAAGACACGCCACAAATATTTTTTAGCTGATTCATCATTAGGTGTCTGATATTGAGGAAGTAGAGAT -TGATGATATTTTAATTCTGCATTACACTTTTGAGCTATCCTGTCAGCTTGTGTGAAATATTCTGGATTCA -CATCAAGTTGGTGAATTTCATTTTCAGTTAAAAAATGCGCACCAAAATCTTCTTGATCATGTATTAAGTC -TAATTTTGTATTATCTCTTATCGCTGCGAGTGCAGAAATTGTATCTGCATCATGTCGTGTTTGATAACAT -ACATCTTGAATCCATACGTGCTTTATACCCTGAACTAAAACACTTCGATGATCTAAATACGTATCTTCAT -GCGAATCAAAAACTCGAACAATGTCACGATGTTCGTCTGCAACATTTTTAAAAATGATAATCATATTGTT -AGAAAACCGTTTTAATAATTCAAAAGACACATGTTCTAATGCATTCATTTTTATTTCCGATGATAGTTGA -TATAAATCCTTCAGACCATAATTATCTTTTGCTAAAACAACGGTTTCAATATTGTTTAATCCATTTGTCA -CGTATATTGTCATACCAAAAATCGGCTTTATATTATTGGCAATACATGTATCATAAAATTTAGGAAAACC -ATACAATACATTGGTGTCAGTTATGGCAAGTGCATCAACATTTTCAGACACAGCAAGTCTTACGGCATCT -TCTATTTTTAAGCTTGAATTTAACAAATCATAAGCCGTATGAATATTTAAATATGCCACCATGATTGAAT -GGCCCCTTTCTATTAGTTAAGTTTCGTGCGTAAAGCTTTAGCAAGTTGCTCAAATTCATCCCAGCTGTTC -ACTGAAACTCCTGACGCATTCGGATGACCACCGCCACCAAAATCTTGCGCAATATCATTAATAATCAATT -GCCCTTTAGAGCGTAAGCGACATCTTATTTCACTACCCTCATCAACTGCAAACACCCATATTTTCAAACC -TTTGATGTCAGCAATTGTATTAACAAACTGAGATGCTTCATTTGGCTGAATACCGAATTGCTCCAATACA -TCTTCAGTTATTTTAACTTGGCAAAATCCGTCATCCATAAGTTCGAAATGTTGTAAAACATAACCTTGAA -ACGGCAACATTTTTGGATCCTTTTCCATCATTTTATTTAAAAGCGCATTATGATCAATATCATGCCCAAT -TAACTTTCCAGCAATTTCCATAGTATGTTCTGAGGTATTGTTAAAAAGGAATCGCCCAGTATCACCGACG -ATACCAAGGTATAAAACACTCGCGATATCTTTATTAACAATTGCTTCATCATTAAAATGTGAGATTAAAT -CGTAAATGATTTCACTTGTAGATGACGCGTTCGTATTAACTAGATTAATATCACCATACTGATCAACTGC -AGGATGATGATCTATTTTAATAAGTTTACGACCTGTACTATAACGTTCATCGTCAATTCGTGGAGCATTG -GCAGTATCACATACTATTACAAGCGCATCTTGATATGTTTTATCATCAATGTTATCTAACTCTCCAATAA -AACTTAATGATGATTCCGCTTCACCCACTGCAAAAACTTGCTTTTGCGGAAATTTCTGCTGAATATAGTA -TTTTAAACCAAGTTGTGAACCATATGCATCAGGATCTGGTCTAACATGTCTGTGTATAATAATTGTATCG -TTGTCTTCGATACATTTCATAATTTCATTCATCGTACTAATCATTTTCATTCTCCCTTTTTTAGAAAAAT -TGCTTAATTTAAGCATTAGTCTATATCAAAATATCTAAATTATAAAAATTGTTCTACCATATTAAACTAT -TTTCCCGATTTAATTATTTAGATATATATTTTTTCATACTAATTAGTTCAGGGGCCCCAACACAGAAGGT -GACGTAATGTCAGCTTACTATAATGTGCAAGTTGGGGTGGGGCCCCAACACAGAGAATTTCAAAAAGAAA -TTCTACAGACAATGCAAGTTGGGCTCCAACATTTGTGTGAAATCTATCGTATGCCTATTTTCTCTGCTAA -GTTCCTATACTTCGTCAAACATTTGGCATATCACGAGAGCGCTCGCTACTTTGTCGTTTTGACTATGCAT -GTTCACTTCTATTTTGGCGAAGTTTCTTCCGACGTCTAGTATGCCAAAGCGCACTGTTATATGTGATTCA -ATAGGTACTGTTTTAATATACACGATATTTAAGTTCTCTATCATAACATTACCTTTTTTAAATTTACGCA -TTTCATATTGTATTGTTTCTTCTATAATACTTACAAATGCTGCTTTACTTACTGTTCCGTAGTGATTGAT -TAACAGTGGTGAAACTTCTACTGTAATTCCATCTTGATTCATTGTTATATATTTGGCGATTTGATCGTTA -ATTGTTTCACCCATTTGAGGTTGTCTTCCTAAAAGTTGCATAGACTTCAAAACATCTTGTCTATTAATCA -CACCCACTGTCTTTTTATTACTCGAAACGACAGGAATCAATTCAATACCTTCCCAAATCATCATATGCGC -ACAACTTGCTACTGTACTCATAGCATTTACATAAATAGGATTTCGCGTCATCACTTTATCTATTTCGTCG -TCGTCCTTCGTATTAATCATCTCTCGACTTGTTACAATACCTACTAATTTATAAGACTCATTGACTACCG -GAAATCTTGTATGGCCAGTTTGATTCGCCATACGCTTATAATCTGCTATTTTCATCGTATCAAACAGCAC -AGATAAATCATCTAATGGCGTCATTATATCTTGAACTATTAAGATATCTTTTCGTATTTTCTGATTAAAA -AGTGCTTTGTTGATAATATTTGCAACTAGGAATGTATCATAACTTGATGATAGAACAGGTAAATCATGTT -CATTCGCAAAATCAATAACTTTATTAGATGGCTTAAATCCACCAGTAATTAATATAGCCGTGCCTCTTTT -TAAAGCTTCAATCTGCACATCTTCGCGATTTCCGACAATCAATAATGTCTTTGGCCCAATATACTTTAAA -ATATCTTTGAGTTCCATTGCTCCAATTGCAAATTTAGATACCATCTTAGTGATACCTTTGTTGCCACCTA -ACACTTGGCCATCAATAATATTGACAATTTCATTAAAAGTTAAATGTTCAATTTCATTACGATTACGTTT -TTCGATTCGAACCGTACCAACACGATCTATCGTTGCGACCATGCCCATTTTATCAGCATCTTTAATTGCA -CGATATGCTGTCCCTTCAGATACGTTTAAAAATTTAGCGATTTTACGCACCGAAATTTTAGAGCCTATAG -ATAACGATTCAATATAATCTAAAATTTGTTCATGTTTTGTCATTCTTTACCTCTTCTTTTCGAACAGTAT -TAACTACATTATAACTTTATTTTGGATAAAAAGCATTGAAGTGAAATGAAATAATGATCGTTTCACCTAT -TTTATTTTTTGAAAATATACAACAAACACAAAGATCACAAAATCTTTAATTTTAAATGGAAAAATCCATT -ATTATTTATTAGAATGTAAGTGAGGAGGGATGTACTAATGTATAAAAATATATTACTTGGTGTAGACACT -CAGTTAAAAAATGAAAAAGCACTAAAAGAAGTGTCTAAATTAGCTGGCGAAGGTACAGTCGTAACAGTTT -TAAACGCAATCAGCGAACAAGATGCTCAAGCATCAATTAAAGCAGGTGTTCATTTAAACAAACTTACTGA -AGAACGAAGCAAGCGATTGGAAAAAACACGCAAAGCTTTAGAAGATTATGGTATTGATTATGACCAAATA -ATTGTTCGTGGTAATGCAAAAGAAGAACTATTAAAACATGCTAATAGCGGTAAATACGAAATTGTTGTTT -TAAGTAACCGTAAAGCAGAAGACAAAAAGAAATTTGTACTTGGAAGTGTCAGCCACAAAGTAGCAAAACG -TGCGACTATCCCTGTATTAATCGTTAAATAAAATTTTTATCCAGAATCACAAATAATCTTTCAATCATGA -TGCAGTCTCAAACGACTGAGTAAACACAAGAAATGATTATGACTGTGGTTCTGGATTTTTTATATCGTAG -TAAATTTATAATCAATGTCTAATTGTATAAAACTAAAATTACGAGAGTAGGTCAGAAATGATAAAGAACC -ACTGATGTCTCCCCCGTCCACGTCGCAACTGAATCAGTAGAATATAAAAACACCCATTAAAAATATGCAG -ACGATAACTTCCACATAGATTAGCGAGGTGTTTTTTAGTGTAAAATCTATATTCTATTTAAAACTGAACA -GATTCACCTGGTTTTAAAATTTGCACGTCCCCTACATTAACAGCATCTTTAAATTGTTGTGGATCTTGTT -CGATTAATGGGAATGTATCATAATGAATCGGTACAGAAATTTTTGGTTTAATAAATTCATTAATAGCATA -ACTTGCATCATCAATACCCATCGTAAAATTATCTCCAATTGGTACAAAACATACATCAACTGGATGACGT -TTCGCAATAAGTGACATGTCACTAAACAGACCTGTATCACCAGTATGATAAATTGTTTTTCCTTCAACTT -CAAACACGATACCCATTGGCATACCTAAATAAACTGGAATACCATTTTCATGTGTAAAACTTGAACTATG -AAATGCTTGAACAAATTTAACGCTTCCGAAATCAAAGTTTGCTTTACCACCAATATTCATACCATGAACA -TTTTCAACACCGTGATATGAAGAAAGATAGTCAGCCATTTCTGCACTTCCAATTACTGTTGCTTCTGTTT -TCTTTGCTAGTTCTACAACATCACCAAAATGATCAAAATGACCGTGCGTTAAAACGATATAGTCTACCTG -CACTGTTTCAATATTCAAATCACACTTAGGGTTATTTGAAATAAACGGATCTACGATAACCTTTTTGTTG -TTCCCTTCTAAATAAATCGTTGATTGACCGTGAAATGATAACTTCATTTGAGCATCCTCCTATCAATTGC -TATATAAATTTAGTACCCTTTTGCCTCTTAATTATAACAAATTCTCAAATTTTAAAAATTGAAAATCTAG -TTAATGTATTAGCTCGATTTTGAAATCTAATAATAATTAGCATAAAATGTAAGTAATATTATGTTGAGGA -GTGTTTATAAAATGACAAAAATATCAAAAATAATAGACGAACTGAACAATCAACAAGCTGATGCAGCATG -GATTACAACACCGTTGAATGTATATTATTTTACTGGATACCGTAGCGAACCCCATGAAAGATTATTTGCA -TTATTGATTAAGAAAGATGGTAAACAAGTACTATTTTGTCCAAAAATGGAAGTCGAAGAAGTCAAAGCAT -CACCTTTCACAGGTGAAATCGTTGGATATTTAGACACTGAAAATCCTTTTTCACTTTATCCTCAAACAAT -CAATAAATTACTAATTGAAAGCGAGCACTTAACAGTAGCACGCCAAAAACAATTAATCTCTGGTTTCAAT -GTCAATTCATTCGGAGATGTTGATTTAACAATCAAACAATTGAGAAATATTAAATCTGAAGATGAAATTA -ACAAAATACGTAAAGCTGCTGAGTTAGCAGATAAGTGTATCGAAATAGGTGTTTCTTATTTAAAAGAAAG -TGTAACTGAACGTGAAGTAGTCAACCATATTGAGCAAACAATCAAACAATATGGCGTCAATGAAATGAGT -TTTGATACGATGGTTTTATTTGGAGATCATGCCGCATCACCTCATGGCACACCAGGAGATCGCAGATTAA -AAAGCAATGAGTATGTACTATTTGATTTAGGTGTAATTTATGAGCATTATTGTAGCGATATGACACGTAC -CATTAAATTTGGTGAACCTAGCCAAGAAGCACAAGAAATTTATAATATTGTATTAGAAGCAGAAACATCT -GCAATCCAAGCAATTAAACCTGGAATACCTTTAAAAGATATCGATCATATCGCTAGAAATATTATTTCAG -AAAAAGGTTATGGTGAATATTTCCCTCATCGCTTAGGTCATGGTCTAGGATTACAGGAACATGAATATCA -AGATGTTTCAAGTACTAATTCTAATTTGTTAGAAGCTGGCATGGTCATTACAATCGAACCAGGTATTTAT -GTACCAGGTGTTGCAGGTGTAAGAATTGAAGATGACATACTTGTCACTAATGAAGGATACGAAGTATTAA -CACATTACGAAAAATAAGAGTGGGACAAAAATGAAAAGCTTGTTACTAGCGCATTCTCATTCAGTCAAAC -ACTGCCAATATAACATTGTAGCGCCTAGGACATAAATTTTTGTCCAAGTCTAAATGCAATATGTAACAAA -CAAGCTAGAAACACATATGCAGGTATGTTCATCAGTAACATGTAATGAATCAATATCATTCATGTTCGAT -GATTTCTTCGCATTGTTTCTAGCTTTAATTTATCATTATTTAATTTTAATAACCAAGGAGATGATAACGT -CATTCTTTAATACGCTGTAATTCATTCCCTTTTCATCAAATTTAAATTATAAGTGTAATGCTTCTTCTAC -AGATTTATATTCCATTTCAAATGCCTCTGCAACGCCTTTATTGGTTACGTGACCTTTGTAAGTATTTAAA -CCTAATGATAATGGTTGATTTGATTTAAATGCTTCTCTATACCCTTTATTAGCTAGCATGAGCGCATAAG -GTAGCGTAGCATTATTTAAAGCTAACGTCGAAGTACGCGGTACTGCACCCGGCATATTTGCAACTGCATA -ATGAACCACACCATGTTTGATATATGTAGGATCATCATGTGTCGTAATTTTATCAGTTGTTTCAAAAATA -CCGCCTTGATCAATAGCAATGTCAATAATAACTGACCCATTTTTCATTTGTTTAATCATGTCTTCTGTTA -CAAGTCTTGGCGCTTTAGCACCTGGAATTAAAACTGCACCTATTACTAAATCACTTTGTTTAACATACAA -CTCAATATTCAACGGATTTGACATAATTGTATGTACACGTCCACCGAATAAATCATCTAATTGTTGTAAA -CGCTTTGGATTAACATCTAAAATCGTAACATCTGCACCTAGTCCTAGTGCAATTTTAGCTGCATTTGTTC -CTGCTTGACCACCACCGATAATAGTTACTTTACCTTTAGGTACTCCTGGAACGCCACCTAGTAGAATTCC -CATACCACCATTAAGTTTTTGTAGGAACTCTGCGCCAACTTGAGCTGACATTCTTCCTGCTACCTCACTC -ATTGGTGATAATAATGGTAAAGATCGGTCTGGTAACTGCACAGTCTCATATGCAATACTAATTACTTTTC -TATCTATCAAAGCTTGTGTTAATTTTTCTTCATTCGCTAGATGAAGATAAGTAAATAATACTAGTCCTTC -TTTAAAATATGGATATTCTGATTCAAGAGGTTCTTTAACTTTAATAACCATATCCACATCCCAAACTTTT -GCTTGTTCAGCAACAATCTCAGCACCTGCTTCTTTGTAATCTACATCTTCAAAGAACGATCCTGAACCCG -CATTTGTTTCCACTAAAACAGTATGTCCACTTTCTACTAAAGCGTGCACACCACTTGGTGATAAACCAAC -ACGATTTTCATTATTTTTAATCTCCCTTGGTATACCAATTTTCATACCATCCACCTCCATAATCATCTTA -ACGCGAACATTTTGAAAGCGCAATCAAAAATCCACAAAATTGTAAAGGTTATTACACTGACTTTTCCGAA -AATTGTGGTAAAATAAAATTAAGAAAGAACAAGGAGGCACTTACTATGATTACTTACAAAAATATTTTAA -TCGCAGTTGACGGTTCACATGAAGCGGAATGGGCATTTAACAGAGCAGTTGGTGTTGCTAAACGTAACGA -TGCGAAGTTAACAATTGTGAATGTAATTGATTCAAGAACGTATTCTTCTTATGAAGTTTATGATGCTCAA -TTTACTGAAAAATCTAAGCATTTTGCAGAAGAATTATTAAATGGTTATAAAGAAGTAGCTACTAACGCTG -GTGTTAAAGATGTAGAAACGCGTCTAGAGTTTGGCTCTCCTAAATCTATCATTCCTAAAAAGCTTGCACA -TGAAATTAATGCAGACTTGATTATGAGTGGTACATCAGGCTTAAATGCCGTGGAAAGATTTATTGTTGGT -TCTGTATCAGAATCTATCGTTCGTCATGCTCCATGTGACGTGTTAGTTGTTCGTACTGAAGAGTTACCAG -CAGACTTCCAACCACAAGTTGCAACAACTCAATTACGTGAAAAATATCAAAATTAAATATAGATGATCAT -TAGATAACTACTTGATCATTATGAACCAAGTGCAACTTTCTGCACTTGGTTTTTTATTGTTTATAAATAA -AACTCACTTAATAATGTTGTCATAATCTTCTTCGACTACTTAATTTTTTTAAGATATTCGTGAAAAAAGA -CATTACACTAGTTAATTTTCAAACAATACAAAAAGCGTCTACCTCCTACTTATAATTGTAGCGGAGATAG -ACGCTTAATATTTATTAAAAAATTATTTTAGACCACCGTATGTCATAACATCACGAGCAATCATACTTTC -TTCGTCTGTCGGTATAACGACAACTTTAACAGGTGAATGCGGATAGTTAATAAATCCTTCTTTACCACGT -TGTAAGTTTTCATTTTTCTTAGGATCCCAGTAAACGCCCATAAATTCTAAACCTTCAAGAACTTTTGCAC -GAATTTCCACTGAATTTTCACCAATACCTGCAGTAAATACGATTACATCAACACCATGCATTCTCGCAGC -ATATGATCCAATATATTTGTGAATTTTAGAAGCAAATACATCTAAAGCCATTTGTGAACGTGCTTTACCT -GATTCAGCTTCTTCTGATAAGTCACGTAAATCACTAGATGTACCTGATAATCCTAATAAACCTGATTCTT -TGTTTAAAATTTCCAATACTTGTTCAGCAGTTTTGCCAGTTTTTTCCATAATAAATGGAATTAAAGCAGG -GTCAATATTACCAGAACGAGTACCCATTGTTACACCAGCAAGTGGTGTGAAGCCCATTGATGTATCAATA -GATTTACCGCCATCGATAGCTGCAATTGATGCACCGTTACCAATATGACAAGAAATAATGCGTAAATCTT -CAATTGGTTTATCTAACATTTCTGCCGCTCTTTGTGACACAAATTTATGACTTGTACCATGGAAGCCATA -CTTACGAATACCGTAATCTTTATAATAATGATATGGCAAGCTATATAGATATGCTTTTTCAGGCATTGTT -TGATGGAATGCTGTATCAAAAATCGCCACATGAGGGATATTCGGTAATAATTTACGGAAAGCACGAATAC -CCATCAAGTTAGCTGGGTTGTGAAGCGGTGCTAATTCGCTTAATTCTTCAATTTCTTTTTCAACTTCATC -AGTAATTGCTGCTGATTCAGGGAATTTTTCACCACCATGTACAACACGGTGACCAGTTCCATCGATATCG -TTAATATCATTAATGATATTATGTTTTTTAAATGCGTCTAACATGATATCAACTGCTTCAACATGATCCT -TGATATCTTGTACTGTTTTAACTTTTTCCCCGTCTACTTCAATTGTAAAAATAGAATCTTTTAATCCGAT -TCTTTCTACTAATCCTTTTGTTACTAATTCCTCTTCAGGCATTCTGATTAATTGAAACTTTAATGATGAA -CTACCAGCGTTGATAGCCAAGATTAATTTTGACATAAGTAATGATCCTCCATCGTTTGCTTTTTATACTA -TTTCATTTTCATTTTATCATTCATACAGTTTTATGACTATACTATTACAGATTATTTTTTAGGACGATTT -GTGTCCATCCACTGATTTAACTCTGTCATAAATCCTTGAAATTGTGAAGGATTTTTGAAATCAGGAATAT -TTGCCAATAATACTTCAACTGACTTTGTTTCACCCGATTTTTTCTTTTGTAAAATTAATATAGATTTTCG -CGCTTTTTCATTTTTAAATAAAGTTGGTGGTAAATTTAAAAATGCTTGCATTTCTGTCTCTGTTGCAATA -TATTTTTCAAGCTGTTTTACATGTTCACCTGTAAAAATATTACTTGGTACCACTAGAAAGGCATATCCAG -CATCTTTTAATGCATTTATTGCTTGTTCTATTAATAAATAATGTGAATAACTATGTCCTTCTTCGAAACC -TAGCTTAAAGTCCCTGCTTCTTTCATCAATTGGATAATAGCCTACTGGAAAATCACCAATAACGATATCT -GCTTCTTCTAACGGTAGTGGCATAATGGCATCTTGAGGATACACATCGAAAGGAATTTCTAAGAAGTTTG -CTAAATGTACACTAACACGTGATAAAACTGGATCAACTTCAATTAAATGATGCATAACCGCAATTTCAGG -TAACACTTCTTTTACAGTAGCACTTAAATGACCGGTACCACTTGCAATATCAACAATATGTAATTCTTCT -TGATTGTTCATAAATCGCTCAACTAAAAATCCTAATATCAATCCAATTGAATCTGGTGTAATTTGATGAT -TTGCTTGTATCTTTTCTTCCTGCATTAAACTTAAATATGCAAATTGGAATGCTTTACGTCGATCTTGTAA -CGTCGATTGTTCTAACAATCCTCGTTCATTTGTATAAACTTGTTCCATTGCTAGCCCAAGATTTTCAATA -AAACTTTGGCCATTTTCATTATTTAATGTTTTAGCTTTTTCATCTAATGAATGAAACAAGCGTTCCATAA -TTGTTTGTTGTTCTGCCATATTCGTCCCTCTCCAATAAAAAGTGCCCATAGGTCTTAGCAATCATAGAAA -ACAATTCTATTTTAATGCTGTTGACAACGATGGACACGATGTATACATTTTAAGATTTATCTCTTTAATG -ATTAAATATTTTTGTATGCAGCTAAAGCAGCATCAAAATCTGGGAAATCAGTACCTTCACTAACGATTTC -TTTATAAACAACTTTATTATCTGCATCTAATACAAATACTGCACGAGCTAATAAGCGAAGTTCTTCCATA -ACAACGCCATAGTTTTCACCAAATGATAAGTCACGGTGGTCACTTAATGTAATGACATTGTCTAAACCTG -CTGAAGCGCACCATCTTTTTTGTGCGAATGGTAAGTCTGCTGAGATTGTAAGCACAATCCCCTCTTCTTT -AGAAGCTTCAGAGTTGAATTTGCGAGTCTGCTGATCACAAACACCTGTATCAATTGATGGTACCACACTA -ATTAATTTCTTTTTACCAGCATAATCTGCTAATGTTACTTGATTTAAGTCATTATCTAACACTGTAAAAT -CAGGTGCAAAATCACCTTCATTAATTTGTTGACCTTTTAAGTGGATTGGTCCACCTTTGAATGTTATTTC -AGTCATATACTTGACCTCCTGCATTTTAAAATTCTAACTACATCATACGACAATTTATGGTTTGATTACA -ATTTTCATGCTTTAATCAAAAGCGAATTTAATTTTATACAAATTGTTGAATATAATCAAAAGCATTTTTT -AAAATTAAAATCGCAGTAATAATAATAAATAATACTTTCACATAGCCAACACCTTGTTTGATAGCAAAAT -GAGCCCCAGCATATGACCCTACAATCATACTCGCAGCCATAACTAAACCTATTACATAATCTACTTGTCC -TAATACCATAAATAATACAAGCGCACCTATATTAGAAGCAAAATTCAAAACTTTAGCATTTCCTGCAGCG -CTTAAAAAATCAAAACCAAAGATTAACAATACAAAAAGCATAAATGAACCTGTTCCTCCACCTACAAATC -CATCATAAAAGCCGATTAAAATAAAAAGTGCTGCAAATAGTATGGCTTTCTTAAATGTAAATTGAGTAAA -CGTACGTGTATTGCCCCAATCTTTTTTAAGTAATGTGAATATAAACACCGACGAAAGTGCAATAATGATT -AAAGGTTTCAATATTTGTGACGGAACCATGGTTGCAATATATGCGCCACATGCAGATGCCAAAAATACAA -AACCAAATAATTTGGCAACAACATATAAGTCCACTTTACCGGACCTTATAAACTTTATCGCACTAGTTAA -AGAACCAAATGAACTTGCCAATTTATTTGTACCTAAAGCCACAGATGGTGGTAGACCGATTGCTAATAAT -GCTGGCGTAGAAATTAAACCACCACCCCCTACAACCGAATCTATAAACGCCGCGATAAAACCAAATAAAA -TTATGATTATAATCATCGTTAAATTCAAATCCATAGTTTAACATCCCCTTATGTTTAAATTCACTCTAAG -ATTTTATTTATAAAAAGTCGTTTATTAATTGGTTTGTTTGCTGTTCTTTAATAGTTTTATAATCACTAGT -TATTTCAAGTGTTTCAATATTTTCAACAGCACGATTAATCATCTCTTCAAAATCAAAGACACTTTCATAT -TGAACTACCTTATCAAAGTTTGGTTCGGTTACTGGATTTTTAGGGGTGAAAATTGTGCAACAATCTTCAA -AAGGTTGAATAGATGTTTCAAATGTACCAATTTCTTTCGATTTAATAATAATTTCTTCTTTATCGTAAGT -TAATAAAGGACGTAATACAGGGGTAGAAGTTACATTATTAATTGCATACATACTATGAAGTGTTTGACTG -GCAACTTGACCTAAATTTTCACCATTAACGATGGCATAAGCGCCTATTTGATGTACTAATTTATCAGCAA -CACGCATCATCATACGTCTCGTTGAAGTCATTGTATATCTTGGATGTACAACTTTATTTACCTGTTTTTG -CAATTCTGTAAATGGTACAATATGCAATTTAATTGGTCCAACACGTTCAGCTAAAATACGTGTCAATTCA -ATAACTTTTTCTTTTGCTTGATCACTTGTAAATGGTGGACTATGGAAATGAATCGCTTCAATTGTTACGC -CACGTCTCATCACTTCCATCCCAGCAACTGGTGAGTCTATACCGCCTGAAAGCATTAGTAACGTCTTACC -ACCAGTACCAACTGGTAATCCACCTGAACCCGGAACAACTTCTTCATACATATAAATTGCATCTAATCTA -ACTTCCACTCGAATTTCATGATCTGGACGTTTGACATTAACAGAAACATTTTCAATTTGTTTCAATACGG -TACCACCCAATTCACGTTGTAATTCATACGTATCCATTGGGAAATTTTTATCGGCACGCTTCACATCAAT -TTTAAAAGTGCTGTTTTCTTCAAATTGCTGCGCAAATTTAATTGTCTCTGCACTCATTGCCTCTATTGAT -TTTTCTACTTTTAATACTGGACTAATAGATTTAATACCGAAAATTTTTGATAATCGATTTGTTATTTCAT -TTATATCTGCATGGTCTTCAAGTTCAATATACATACGATCTCGTTTGCCTTTAACGACAAATCCATCAAG -TCCTTTTAATGACTTATTTACATTATTTCTTAATTGATTTACAAATTTTTTTCTATTTGAACCCTTTAAT -GTTAACTCCCCGTATCTAACAAGCAAGTGATCATACTTCATTATTTTAGCAACTCCTTAATTTCCTCATA -AATGATGATAAATATTTCTTTAAACCTCGCTATATCTTCTTTAGTTGTAGTAGCTCCAAATGATAATCTT -ATACTACCTTCAATAGATTTGTCTGATAATCCCATTGCAGCCAATACTTCATTTAATTTATTACGTTTAG -ATGAACAAGCACTCGTCGTAGATATCATAATGTCATATTTTGAAAAAGCATTAACTAATACTTCACCTTT -TACGCCAGGAAAACTAATATTTAAAACGAATGGTGAACCTGAAGTTGATGAATTAATATAAACACCTTGA -TATTGGCTTAAAAATTGACGGACGTCATTATTTAACTCAGTAACAAATGCATTCAATGCTTCAAGGTTTT -CATTAGCCATTTTCATCGCTTTAACCATAGCAATATCATTGGGTAAATTGACTGTACCACTTCTAACACC -ATACTCTTGACCGCCACCTTGAATGATTGGCTCAATATTTTGAATATGATTAACAAGTAAGACGCCTTGA -CCTTTTAACCCATTAAATTTGTGGCCACTTAAACTAATACTATCTACGTTATTGAAATCCATTGAAATTT -TGCCGAATGCTTGAACCGCATCTACATGAAAATGTGCCTTAGGATAATTTTTTATAACTTCAGCCATTTG -TGGAATGGGTTGAATTTGACCTGTTACATTATTTACATACATACATGTTACTAAACCGACTTTATCGGAC -ATTAAATCGTTAAAATGTTGCAAATCAATCGTGCCATCTTTTGTTACATCAACATATTTAACTTTAAAGC -CTTCGCGCTCTTCCAAATATCTGACAACTTCTAAAACAGACGGATGTTCTAAAACAGATGTAATTATTTC -TCTTGCTGTATCAAATTTACGATAAGCCACACCTTTAAGCGCGATATTGTTAGATTCCGTTGCACCACTA -GTGAAAACAACATCATATGTCATATTAGTATTGACCATATCATTTATTTGAACTTTTGCTTGCTGTAATA -ATTGATCTGCTTGCAAACCAGCTTTATGCGGACTATTCGGATTATAATACATTGATTGATTTACTTTTAA -ATAAGTATCTAACACTTCTTCAAATGCTTTCGTCGTTGCCGCATTATCTAGATATATCAAAATAAACACT -TCTCTTTCATTAATCATCAATCTTTTAAAATTGTTTTTACTCAAGCATTATACTATTATCACATAAAAAA -TAAAGGCTATAACAAAAATTAATCATTTTTCCACCCATTTTAATAAGAATTGAACTATTTCACTCAATGC -ATAGCACGATGCTTTTTTCACTACTTATATTAATTTAAACTTCACATTTGATTACGTTTATCTTTAAACA -ATTGCTATTTATATTTATTGTCCCTTTCATATATCCATATAAAAAAAGAAGCTAGACAACGTATCGTTGG -CTAACTTCAATTATTAAACTCATCAGTCCAATTTGACAGAGAGCTCATATTATTTAAGTATAACTACATA -CTATTTTCTATTGCTTAATAACTTCTTCTTCAATATGTTTAGTGACACCTGGCTCAACACTTTCAAGAGC -TTGCTCTGCAATTTCAATCGCACGCTTATAGCGATTATTTTTAAATAATCGTTCAGCTTCATTTAAGCTC -TTATCAACATTGCTATAGTCCTTACGATATCTATTTCCATATTGAATTAATTTCTCTGCATAAACAGCAT -TAACAAGAACATCATTTGCTTCATCTTCAAATGTATTCATTTGAATCACAATTTTAGACACTTTATCTTT -TAACTGTTTAACGTGTATTGGACGTTCACTAAATTGTTCGTTAACATCACGAACTTCATGATCAATTTCA -TTTTTCATGATGATAAACCTTTCAGGAACGCTTGTTAAGTTAGAAGCAAGTAATCGACGATACACTTCTT -CTTTCTTCGATTGTACTCGTAACAGATTGTCTTCTGCTTCTGCTTCATCTTCACGCAATTGAATCAGATG -ATTTTGTAGCTTTTCTTGTTTGTCATTAATAACTGTGACATGATCTTCTAAATATTGTAAATTATCCTGA -ACCTCGCTATATCGTACAGCAGATTTAGACATTTCTTTTAAAATATCATCATATACAGAAATTAAACTTT -GAATTTCATTTTCAAATTGACGAACACTCTGAGCATCAGATTCATTTATATAGTAGTTTTCACGTACATA -TTCAATTTCTGTTTGCAATGTATAATTCATGTCTTTTGCTTTGAATAAGTTATCCGTAATGATATCTTTT -GTTTCTTCGACATCATTTTTAGCTTTAACTTCATGTTCAATTAAATCATACATGTCATCTAACTTATCAT -TGATATTAGCTAGTTTATCATTAGCTTCTTCTAATTCTAAGCGACTAATTAATGGTTCAACGAAACTAAG -CTCTGTTTTTAAGCTTTGTAATGTACTGTCTACTTTTACGTGATCCAGATCATACCCTTCAACTTTAAGA -TCACGGCAACCATATTTTAAATCTTGGAATTGACCAGGTAATTCTTTTTGAGTTTCTCTAATTAATTCTG -GTATTTCTTCCATATAAGATCTTAGCTGTTTCATTTGTTCATTCAAGGCAGCTATATGGTTGTGCGCTTG -TACATAATTACCATCAGCTTTTAGTACTTCATATTGCTCTAACCTTGGCTCGAATTTTTCAATTTCAGTT -TCAAGAAGACTTGCTGCCTCACCAAATTGATGACGATTTGCTAAAACATCACGTTTCATTTCACGATAAT -CAACCTTACATTTGTCATATAATTCATCATTATCTTTGTATAACGCAATAATTTCATTTACATCTTCTAA -TTGTTGCTGATAGCTTTGTTCGTAACTATCCATCAACTCATTTGCATCATCAATTTCACATTGAGATGCG -TTGAAACTAAATTTATCTAATAAAGCCTCAGCATTATGGATTTTTTCTTCCACAGGAGCTAGATACTTAT -TTGTACTTTCTACGTTGTCCTTTTTCATTGCATCGTATTTCGTTTTTGTTTCACCTTTTAAATTCAACTT -AGATAATTGTGCAAGGTTTTGATCAAAAGGTAACGTTTCAATTTCATTTTTACGTTCGATTGCTTTTTCT -ATTATTTGTCTTTTATTTGAACGTAAATAGAATAATACACCTACAGCAATCAATATAATCACAATTATTG -CCAAAATGATATATAACACCATATGCTTCTCCTCCTAATTTATCATTACTATTATAACGTAATTTTGCTT -AAGGATAAATTATAAAATGAATTTATTGCCATAATATTTTCGAAATTCTATACTATTATAAAATCTATGA -AAATAAGAGGTTTTAAATATGACAACAATTAACCCAACAAACTACACATTATTAAAGAAACAAGCAGCAA -GCCTTATTGAAGATGAACATCACATGATTGCTATTTTAAGTAACATGTCTGCCTTATTAAATGATAATCT -AGATCAAATTAATTGGGTCGGCTTTTACTTATTGGAACAAAATGAACTTATACTTGGACCTTTCCAAGGA -CACCCCGCTTGTGTCCACATTCCAATTGGAAAAGGTGTATGTGGTACAGCCGTTTCAGAACGTCGTACAC -AAGTTGTAGCTGATGTTCATCAATTCAAAGGACATATCGCTTGTGATGCTAATAGTAAGTCTGAAATTGT -CGTTCCAATTTTTAAAGATGATAAAATTATCGGTGTCTTAGATATCGATGCCCCTATAACGGATCGATTT -GATGACAATGACAAGGAACATCTTGAAGCAATTGTTAAAATTATTGAAAAGCAACTCGCATAAAAGGACA -TCAGCATTTTCAATAAAGTGTTGACAGTTAGCAGGAAAATGTTACAATAAACTTTGTGTGAATTAACGAA -AGTAGCAGTTGTATATTATTGAGCGCTATGTTGTTCCCAATGCGGACGTGTCACGTAACTGTCGCTATAA -GGTGAAGACACATAAAACAATATATCTTAGTAAGCATGCAACACTCTTTTTTGTTTATTCATAACAACAA -AAAAGAATTAAAGGAGGAGTCTTATTATGGCTCGATTCAGAGGTTCAAACTGGAAAAAATCTCGTCGTTT -AGGTATCTCTTTAAGCGGTACTGGTAAAGAATTAGAAAAACGTCCTTACGCACCAGGACAACATGGTCCA -AACCAACGTAAAAAATTATCAGAATATGGTTTACAATTACGTGAAAAACAAAAATTACGTTACTTATATG -GAATGACTGAAAGACAATTCCGTAACACATTTGACATCGCTGGTAAAAAATTCGGTGTACACGGTGAAAA -CTTCATGATCTTATTAGCAAGTCGTTTAGACGCTGTTGTTTATTCATTAGGTTTAGCTCGTACTCGTCGT -CAAGCACGTCAATTAGTTAACCACGGTCATATCTTAGTAGATGGTAAACGTGTTGATATTCCATCTTATT -CTGTTAAACCTAGTCAAACAATTTCAGTTCGTGAAAAATCTCAAAAATTAAACGTCATCGTTGAATCAGT -TGAAATCAACAATTTCGTACCTGAGTACTTAAACTTTGATGCTGACAGCTTAACTGGTACTTTCGTACGT -TTACCAGAACGTAGCGAATTACCTGCTGAAATTAACGAACAATTAATCGTTGAGTACTACTCAAGATAAT -ACCGTTCAATACAAACACCCACAATTGTGGGTGTTTTTTTTATTAATTTAAAAATGATAGATTCAAGATT -ATATCGAGCTACCCTATTTTACAATTAACTTAGAATTTACAAGTCTTATTTGTTGAATTATCTACAAATT -TCATCATTTCTTTTTAAAAATATCAATTGCGATATACGAATCCTTATCCCTCTATCAAATAACCATTCAT -CGTCTTACTTAATAAATAATTTCGGATCATCTGTAATTAATCCATCTACACCTATTTGTCTTAATTTTTC -TCCAGTTTTCAATTTATTAACTGTGTATGGCATAACCTGTAATTGATGATGATGTGCTTCATCAACAAAT -TTTCTGGTCACTAATGCATAATTAGGATTAACATAACTAGCAATTTGAGCAATTCTTGAAAAGTTTGGCT -TTTTATACCAATACTTACGTTTACTACAAAGCACACCTAATTCATATATACTGCCTAATGTGTTTAACTT -TTCGATGCATTCGATATCAAAAGATTGTATAACTACTTGTGTCGCATCGACTTTCTTTTCTTCCAAAAAT -GCCAGCAATTTACATTCTATTCCTGGATATAAATTCGGACTTTTCAATTCAATCAATAGCTTTTTATCAA -ACTTTAAGCATAATGAAAGTACTTCATCTAACGTGGGTATTCGTTCTCCCTTAAAAGCAACATCTTTATA -ACTACCAAAATCAAATGATTTTAATTGCGATAATGTGTAATCAGCAATACGCCCCTTACCATCCGATGTT -CTATCAATTGTTTCATCATGTATCACAACAAAATGTTGGTCTTTGGTCAAATGAACATCTATTTCTAACA -TAGCAACATTGAGCCCCATTACCTCTCGATAACCGACCATTGTATTTTCAGGAAAATCACTCGGCAATCC -ACGATGCGAAACAATTTGTAATTCATCTTTCAGTTTATTCAGAGTCATTAATAAGTCACCTTTCTGTTAA -ACTTTGATAAACTATTCTAAAATTAAACTATCACAATTATATTGGAGGTTAAAGCAATTGCATCAACATG -ACTTTAAAGTCAAAACTTCTTGGCAAGGTGGTCGTAACAATGTCGGAAACGTTCAAGGCGACATACTTTC -AGAGAATATTTCAATACCTGCTTCTTTAGGTGGTGTTGGTATAGGAACAAATCCCGATGAAATGTTAGTA -TCAGCCGCGTCATCATGTTATATCATCTCATTAGCAGCTACTCTTGAACGTGCAAAGTTCACAGATATTT -CAATTGAACAACAATCGATTGGAACAGCTTGTTTAAATAATGGAAAATTCAGTATGTCAAAAATTGTGCA -CCATCCTCACATTCAAATTCCAAGTGATCAAATAGCACAATTAGAAAAGCGATTACCAAAATTGATAACA -ATTGCAGATAATAATTGCATGATTTCAAATGCTGTAAGAAATAATGTGGACATAAAAATCTATCCCATCA -TTCAGGCCAAATAAAATCGTTAAGTGATAACATTTGTTCGACAATATAGCGTTATCACTTTTTTTAGGCT -TTTAAATTTTCAGAAAATTTGCTAAAATAGTGAAATCTTATTTATAGGAGGCATATAAATGTATTATCAT -CAACCGTTGTTATTAACACCTGGCCCAACCCCTGTTCCTGATGCCATTATGAGAGAAATTCAAGCACCTA -TGGTTGGTCATCGTTCTAAAGATTTTGAAGACATCGCTCAACAAGCATTTCAAGGTCTAAAGCCAATATT -TGGGAGTCAAAATGATGTACTTATATTAACATCTAGCGGTACAAGCGTCTTAGAAGCTAGTATGTTGAAC -ATTGTAAACCCTGAAGATCACTTCGTTGTCATTGTTTCAGGTGCCTTTGGTAACCGATTTAAACAAATTG -CACAAACTTATTACAAAAATGTACATATTTATGACGTAACATGGGGAGAAGCTGTAGATGTCAAAGATTT -CATCAATTACCTTTCAACTTTAAATGTTGAAGTTAAAGCAGTATTTAGTCAATATTGCGAAACATCTACG -ACAGTGCTACACCCTATTCACGAGTTAGGAAATGCCATCAATCAATTTAATAGTAATATTTATTTTGTAG -TTGACGGCGTAAGTTGCATTGGTGCTGTTGATGTTGACATTAACAAAGATAAAATTGATGTACTTGTTTC -TGGTAGTCAAAAAGCAATTATGTTACCTCCAGGATTAGCTTTTGTAGCTTATAGCCACCGTGCAAAAGAA -CGTTTCAAAGAAGTAACTACACCAAAATTTTATCTAGACTTAAATAAATACATTTCGTCACAAGCTGACA -ATTCTACACCGTTCACACCAAATGTGTCTTTATTTAGAGGTGTAAATGCATACGTTGAAACCGTAAAAGC -AGAAGGTTTCAATCACGTAATAGCACGACACTATGCAATTAGAAATGCATTAAGAAGCGCCTTAAAGGCA -TTAGATTTAACTTTATTAGTCAATGATAAAGATGCATCTCCAACGGTTACGGCATTCAAACCTAACACAA -ATGATGAAGTGAAAATAATCAAAGATGAACTTAAAAATCGCTTTAAAATAACAATTGCTGGTGGTCAAGG -CCATCTTAAAGGTCAAATTTTAAGAATTGGTCATATGGGGAAAATTAGTCCTTTCGATATTTTATCGGTA -GTATCTGCTTTAGAAATTATTTTAACTGAACACCGTAAAGTTAACTATATCGGTAAAGGCATATCAAAAT -ATATGGAGGTTATTCATGAAGCAATTTAATGTACTCGTTGCAGATCCCATATCAAAAGATGGTATCAAAG -CATTATTAGATCACGAACAATTCAATGTAGATATTCAAACTGGTTTGTCCGAAGAAGCATTAATCAAAAT -TATACCTTCATACCATGCTTTAATCGTTCGTAGTCAAACTACAGTTACTGAAAATATCATAAATGCTGCT -GATTCTTTAAAAGTAATCGCACGCGCCGGTGTTGGTGTAGATAATATTAATATTGATGCTGCAACATTAA -AAGGTATTTTAGTTATTAATGCCCCAGATGGTAATACGATTTCAGCTACTGAACATTCACTAGCAATGTT -ATTATCAATGGCTCGAAATATTCCGCAAGCACACCAATCACTTACAAATAAAGAATGGAATCGAAATGCA -TTTAAAGGTACTGAGCTTTATCATAAAACATTAGGTGTCATTGGTGCTGGTAGAATTGGTTTAGGTGTTG -CTAAACGTGCACAAAGCTTCGGTATGAAAATACTAGCTTTTGACCCTTACTTAACGGATGAAAAAGCAAA -ATCTTTAAGCATTACGAAGGCAACAGTTGATGAGATTGCCCAACATTCTGATTTCGTTACATTGCATACA -CCACTAACACCTAAAACAAAAGGCTTAATTAATGCTGACTTTTTTGCCAAAGCAAAACCTAGTTTGCAAA -TAATCAATGTGGCACGTGGTGGTATTATTGATGAAAAGGCACTAATAAAAGCATTAGACGAAGGACAAAT -TAGTCGAGCAGCTATCGATGTGTTTGAACATGAACCTGCAACTGATTCGCCTCTTGTTGCACATGATAAA -ATTATTGTTACACCTCATTTGGGTGCTTCAACAGTCGAAGCTCAAGAAAAAGTGGCAATTTCTGTTTCAA -ATGAAATCATCGAAATTTTAATTGATGGTACTGTAACGCATGCAGTGAATGCACCTAAAATGGACTTAAG -CAATATTGATGATACTGTAAAATCATTCATCAATTTAAGCCAAACAGTTGGTGAATTAGCTATTCAATTA -ATGTACAATGCACCAAGCTCTATTAAAATTACCTACGGTGGCGACTTAGCCTCTATTGATAGTAGTTTAT -TAACACGTACAATTATTACTCATATTTTAAAAGATGATCTTGGTCCTGAAGTCAATATTATCAATGCTCT -AATGTTGTTAAATCAACAACAAGTGACATTAAATATTGAAAATAATAAAGCAGAGACAGGTTTTAGTAAC -TACTTAGAGGTAGAATTATCAAACGATAGCGATTCCGTTAAAGTTGGTGCTTCTGTCTTTACAGGTTTCG -GTCCAAGAATTGTTAGAATTAATAATTTTTCTGTAGACTTAAAGCCAAATCAATATCAAATTGTGTCATA -TCATAATGATACACCAGGCATGGTAGGTAAAACTGGCGCATTGTTAGGTAAATACAATATCAACATTGCA -TCTATGACTTTAGGTAGAACTGAAGCGGGCGGAGATGCGCTAATGATTTTATCCGTTGATCAACCTGTTT -CAAACAATATAATTGATGAACTTAAACAAGTTGGTGAATACAATCAAATTTTCACAACTGAATTGACGGT -ACAGTCATAAACAATTTATATAAATTCAAAATGCCAAGAAGACATTGGATTACTTCCATTGCTTCTTGGC -ATTTTTTTAATATTAATTTCATTGTAACTCAATATGAAACCTTTGGTTCAATCATTCACTTCAAGTTATG -CTGTCAAACAACAATCAAATTACAAATTATCTAGTACACCTCTAAGTTCACCTAAATGATTAATAACATA -GTCGGCATGATGCGCTTCTAACTCACCTGCAGCATCCTTTCCTTTTAAACCTGATAATGTTCCAATAAAC -GTTGCACCTATTTTTTGAGCACTTAATAAGTCAGCTAACGAATCGCCTACTATAAATACGTCATCTTTAT -TTACAATGTTATCTTGCTTATTGATATAAGATTCATATTTATCGCGTTTATTACCATTTAAAGCTGCGAT -ATAACTAAAAGGATTCGGCTTTCCTAATGGTCGTGCTTGCGGATACATATTCTCTGCTTCTAAAACATCA -CTTGCTGTTGCAATAAAATCAGCTTCAAAATACGGTAACAATCCTAAATTTTCAAATGGCACAACAGTCT -CAGTATAAGGACGACCTGTTGCTATACCTAATTCGAAACCAGCACCTTTTAAATCATTCAGAAGTACCTT -AACTTCATCTACCGGTCTCAAAATAATTTCTTGATAAATATAACCTGTCTTAAAAGTAGTTCGTGCTATT -TTCTTTTCAACCTCTTCATACAACTTCGATCCTAAATACCATTCTTGATAAACTTCTTGCGCTAACGTCC -ATAATGCACCCTTCAAACTAAATAAATTAGCATCCGAAACATGTAACTCTGTTGTTGCAAACTCTTCCAA -AGCAGCATAAATATTATTTTTACCAACTTTTACATTATCCAAAAATTGTAAAGGTAGTTGTTCATTTAAA -TTAAAACGGTCTGCTATGTTTGTGCTTATATTTTGCAACTTCAATTCGACAGGCTCATCTCGATACATGA -ATGCCTCAATTTCATCATGTGATAACTTTTTCAAAATATCAATTAAATGAATACTAAAAACGATAAATAA -CATATCCCAATTTGAATTCAGCCCTAGCGATTTTAATTTGTTTAAAATCTTATCTTTTTGAAAAATTCGA -TTCCTAATGTCTTGTATATCGTTATCAGTCAAAGTTTCCCAATCTATATGTGAATGAAGACCTAAATAAC -ACTTATCCATTAATAATTCATATACCGTTAATGCAGAGACATCGAAACAACGTTCTTCACTTAAAAAAAC -GCCATCAACATCAAATAAAATTTTCTTCACAATCCCCACTCCATTTCTGAAAATTCAGATATAAATCATT -CTACTATTTGACTAAAAAAAGCGCAAACCCTATTGAGTTGGATTTGCGCTTTAGCTGTCTAAATTTTATA -AATGTTTTTCAATTTCATCAGCAACCTGCTGAACGTGTGTACCAACAATAACTTGAGTTGAATGTTTGCC -ATTAACAGTAACACCAACTGCACCGGCGTTTTTAATCTTCTGTTGATCAATAATAGATGTGTCTTTTAAC -TCTAGATGTAACCTTGTTGCACAATTGGTTAAATTAACAATATTCTCTTGACCACCTAAACCTTCTAATA -TTTGTATAGCATGATTATGATATTTACTTTGTTTAATATCATTTTCACCAGGAGCAATATTATCTTTTAC -AACTGTTGGATCAACTAATTCATTTTCACCTCTACCAATCGTATTCAAGTTAAATACTTGGATTACTACA -CGGAAAATCACATAGTATAAGATGAAAAATACAACACCTTGAACAAGCAACATCAATGGATGATTTGATA -CCGGATTAATTAGTGATAACACATAATCTATCAAACCTGCACTAAATGAAAATCCAGCTGTCCAATGGAA -TGTAGCTACGATAAATAAAGATAATCCTGTTAATAACGCATGAACAACATATAAGATTGGCGCAACAAAC -ATAAATGCAAACTCAATCGGCTCTGTAACACCAACGAAAAATGCTGCAACTGAACTCGCTAGGAACCAAC -CGTAAACTTGTTTTTTCTGAGTAGTTTTAGCTGTATGATACATTGCTAACGCAGCCGCTGGAATACCGAA -CATCATGATTGGGAAGAATCCTGCTTGATAGCGTCCTGTAATACCTTTTATAGCATCTTTGCCACTTTGG -AATTTACCAATATCATTAATACCAATCGTATCAAACCAGAACACACTATTCAGTGCATGATGTAATCCTG -TAGGAATTAATAATCTGTTGGCAACACCATATACGAAAGCCCCAAATGATCCTAAACCAACTATAGATTC -ACCAAATTTTACAATCCATGAATAAAGTAGTGGCCATAAGAATAACAATATGACAACTAAAAATGTACAG -TAAAATGCAGTCATAATTGGAACTAAACGTTTACCACTAAAAAATGATAATGCTAATGGTAATTCTGTTT -CACTAAACTTATTGTATGCATAAGCTGCTATTAAACCTATTACAATACCAACAAAGACATTGCCATTATT -CATCTTTTCAAAAGCTGAATTTATTTCAGAAGCTTTCATTCCTAATAAAGGCGCTAATTTCATTGGTGAT -AATACAACTGTAACTAAAAAATATCCTAACGCAGCTGCAAGCGCAACTGCACCATCATTTTTCTTTGCCA -TTCCTATAGCTACACCAATTGCAAATAAAATACCTAATTGCTCTAAAATCGTAGTACCTACCGTAGTAAA -GAACATTGCGATTTTCGGCGCCGCATGAAGTGCATTTAACGTATTACCAATTCCGGCAATAATTGCTGCA -GCCGGTAAAATGGCAACTGGTAACATTAACGAACGCCCTAAATTTTGGAAAAATTTATACATTGAATGTC -ATCCTTCTTAAAATAAGGTAGAAATATAAAGATTACTAATGTAACTAGAATAACTACTTCGATACTCCGT -TATAGTCACCTAGACTTACTAACCAGCTATATTTCTACCTCAAGTTATTTTATAAACTTTTTACAATTTC -ATGCAATTCTTGTTGTAACTTTGCTGTTCGTGTTTCAATCTCTTTTGTAATGTAATCGATACGCTCGTTT -CGTTTTAAATCTTTAGGTAAATCGTTAATATCGATTGGTTTACCAATATTTATGTATGCTTGTCCAGTTA -TAAGACCATGAATCTTAGTAGGACCAACATAAGCAACAGGTAATATTGGTGACTTACTTAACATTGCAAT -TGTTGAAGCACCACGTTTCAAAGGTGCACCTTCTTGCGATGTGCGAGAACCTGTTGGGAAGATACCAACT -GTCTTATTATCTTTCAACAAATTGATTGGGCGTTTTAAAGTACTAGGTCCTGGATTTTCACGATCTACAG -GAAATGCATTTAAAGACGTTAAAAATTTACCAATCCATTTATTTTTGAATAATTCTTTTTTAGCCATATA -ATGAATTTGATTAGGATATAATGCCATACCTAGCATAATGACTTCGTTATAACTTTCATGCGTACAAGTT -ACGACATATTTACTATCCTTAGGAATATTATCTTTACCGATTACGTATAATGATTTTGACATTTTAACTA -AAATGAAATTCAAAATCTTACTAATCACTGAATACATTGTGCCACCTACTTAACTTATTTGTTTATAACA -ACTAGATTTTATCACTATATTTTTACTAGAACAAGATAGTCTGAAAATACATCTAAAGTTGTATAGTGTA -TTACTAGCAATAATTATAAAAAAAAGACATAATTAAAGCATATATAAATCATATAATGGAGGTTAAGTAT -GTCAGATTTTAATCATACAGATCATTCAACAACAAACCATAGCCAAACACCTAGATACAGAAGACCTAAA -TTTCCATGGTTTAAAACAGTCATCGTTGCATTGATTGCTGGAATCATTGGTGCACTTCTAGTACTTGGTA -TAGGCAAAGTATTAAATAGTACAATTTTAAATAAAGATGGTTCAACTGTCCAGACAACAAATAATAAAGG -TGGCAATCAATTAGACGGTCAAAGCAAGAAATTCGGTACCGTTCATGAAATGATAAAATCTGTCTCCCCT -ACAATTGTTGGAGTTATTAATATGCAAAAAGCATCAAGTGTAGACGACTTATTAAAAGGCAAATCATCTA -AACCATCTGAAGCCGGTGTAGGCTCAGGTGTCATCTATCAAATAAACAACAATTCAGCTTATATCGTTAC -AAACAATCATGTTATTGATGGCGCAAATGAAATTAGAGTCCAATTACATAATAAAAAACAAGTTAAAGCG -AAATTAGTTGGTAAAGATGCAGTAACTGATATTGCTGTACTTAAAATTGAAAATACAAAAGGTATTAAAG -CGATTCAATTCGCCAACTCTTCAAAAGTACAAACTGGCGATAGCGTATTCGCAATGGGTAACCCATTAGG -ATTACAATTTGCTAACTCTGTAACATCTGGTATCATTTCAGCAAGTGAACGTACTATTGACGCAGAGACA -ACTGGTGGTAATACAAAAGTCAGCGTTCTTCAAACAGATGCTGCTATTAACCCAGGTAACTCAGGTGGCG -CATTAGTAGATATTAATGGTAATTTAGTTGGTATTAACTCAATGAAAATTGCTGCGACACAAGTTGAAGG -TATTGGGTTTGCTATTCCAAGTAATGAAGTTAAAGTAACAATTGAACAACTTGTAAAACATGGTAAAATA -GACCGCCCTTCGATTGGTATTGGTTTAATTAATTTGAAAGATATACCTGAAGAAGAGCGCGAGCAACTTC -ATACTGATAGCGAAGACGGTATTTATGTCGCAAAAGCTGATAGTGATATTGATCTTAAAAAAGGTGATAT -TATTACAGAAATTGATGGCAAGAAAATTAAAGATGATGTTGATTTAAGAAGCTATTTATATGAAAATAAA -AAGCCTGGTGAATCAGTCACTGTTACCGTTATCCGTGATGGTAAAACTAAAGAAGTTAAAGTGAAATTAA -AACAACAAAAAGAACAACCAAAACGTCAAAGCCGATCAGAACGTCAATCACCTGGCCAAGGCGATAGAGA -TTTCTTTAGATAATTTATAGACAGAAAAGTACATTAAGAGCCTACTCATATTCATTCCTAAGAATGTAAT -GAGTAGGCTCTAATTTATTTAGCTATGCAATTATATTTATTGATAGTTAACCATGAAGTATTTTTTCTTA -CCGCGACGAATAATCGTAAATTCGCCATCAATTTTATCTTCTGGTGCTAAAGCATAATTAACATCTTGTT -GTCTCTCACCATTAATATAAATCGCACCATTGTTAACATCTTCACGCGCTTGTCGTTTAGAAGGAGAAAT -GCCTGTTTCAATAAGGACTTCAACGATATTTGTTGTGTCATTTGATAATGTCACTTGAGGCACATCTTTA -AATCCATCTTTTAATTCTTTCGCTGATAATGATTTTAAATCACCACTAAATAATGCTTGTGAAATACGGA -TTGCATCATTTAATGCATCTTCACCATGAATAAATTTAGTTACTTCTTCAGCTAATGTTTTTTGAGCTTC -ACGTAAATGTGGTGCTTCATTTTTAGATTGTTCTAAGCGATCAATTTCTTCTTTTCCTAAGAAAGTAAAG -TATTTTAAGAATTTAATTACATCTTCGTCTGATTGATTAATCCAGAATTGATAAAATTCATAAGGACTCG -TCTTTTCAGCATCTAACCAAACAGCACCTGACTCAGATTTACCAAATTTCTTACCATCTGATTTAGTTAC -AAGCGGAATAGTTAAACCGTATGCGTCTGTTTGACCATACATACGACGCATTAATTCAATACCACTTGTG -ATATTACCCCATTGATCTGATCCACCTACTTGAATCTTACAATTCAATTCTCTATTCAAATGACCGAAAT -CAATAGCTTGTAAAATCGTGTATGTGAATTCTGTATATGAAATACCATGTTCTAAACGACTTTGGATTGA -ATCTTTACCTAACATGTAATTAACGCCGACGTGTTTACCATAGTCACGTAAAAAGCTAATTAATGAAATT -TGTCCTAACCAGTCTCTATTATTAACAAGCACTGCACCATGGTCTGTTCCAAATTCAAAAATATTATGCA -TTTGCTTACTAATACCTTCGATATTTTTATCTACTTGTTCTTCTGTTTGTAGCACACGTTCTTCTGATTT -ACCTGATGGATCACCAATCATACCTGTACCACCGCCAATTAAAACGATAGGACGATGTCCATGTTCTTGA -AATCTTCTTAATGTTAAAAATGGTAGTAAGTGACCAATGTGTAAGCTATCTGCCGTTGGATCAGCACCGC -AGTATAACGTCACTTGTTCTTTATTTAATAAATCTTCAATACCTTGTTCATCAGTTTGTTGATAAATAAG -ACCTCTCCATTTTAAATCTTCAATTAATACATTCGTCATTATTATTTCCTCCTATTTATAATTATTTAGT -GAATACTTGTTAAAATACTTTAAAGCTTTTTGAACGTAAAAAAACCCTTACAACAAATATGTAAGGGCGC -GATTGCACGTTACCACCAAACTTAAACATAATCATAAGATAATGTTCACTCTATTAATGATACGTTCATT -AATAAACGTAGGACATGTTAGTTATAAAGGTGTATTCATATTATTAAAAACACTAGTTCACAGCGACCAC -TAGCTCTCTGATGATTTCAAATAATATTACTTGTCCTTTTATCCTATTCTTTATGCATTTTCCCTAATTA -TAATTAACGTTAAAATAAAAGTCAAATTGCTTAAATATGGTATACTATACGTAATTTAGGAGGTTAAGGA -TGACGAATCAAGACAACAATCATCAATTGAATCATCGTATATATCAATTTGAAAAGATATATAAAGCTAT -CAAACATGTCATTGTTTTTATATTTATGATTTTCATTGCCATCGTTGCTATCGCTGTGATTGCGATGTCT -TTATATTTTCATCATTTAACTAAAACGTCCGACTCATTATCAGATGATGCTTTAATAAAAAAAGTTCGAC -AAATACCTGGCGATGAATTATTAGATCATAATAACAAAAATTTGTTATATGAGTATAACCATTCTCAAAA -CTCACTCATTATAGGACCTAAAACATCAAGTCCAAATGTCATTAAAGCATTAACGTCATCTGAAGACACT -TTATTTTATAAACATGATGGCATCTTACCAAAGGCGATTTTAAGAGCAATGATACAAGATATTTTTAATA -CTAATCAAAGTTCAGGTGGTAGCACAATTACACAACAACTTGTTAAAAATCAAGTTCTTACCAACGAAAA -AACATATAGTAGAAAAGCAAATGAACTTCGCCTAGCAATTAGATTAGAACACCTACTCTCAAAAGATGAA -ATTATATATACGTATTTAAATATAGTTCCCTTCGGTAGAGATTATAATGGCGCTAATATTTCTGGAATTG -CATCCGCTTCATATAGTTTATTTGGTGTTCCACCAAAAGATTTATCAATTGCACAATCTGCATACCTTAT -CGGTTTGTTGCAAAGCCCATATGGCTATACACCCTACGAAAAAGATGGAACATTAAAATCGGATAAAGAT -TTGAAATATAGTATTCAAAGACAACATTATGTATTAAAGCGTATGTTAATCGAAGATCAAATCACTAAAA -AAGAATACAACGACGCATTAAAATATGATATTAAATCACATTTGTTAAATCGAAAAAAGCGTTAATTGAT -GCTCACTCTTTTAAGTAACCACAATAATCCATCCAAATATTAAAAACAGCAGTAAGATTATTTTCAATTA -GAAAATTTCTCACTGCTGTTCTTTATTTTAAATACTCTAAAGGAAAGCTATTAAACAAATCAATAGTTTA -TAATTTAATTGCTTTCACATTGTCTACAAAGCTAATCATACATATGCTATATCCAGTTAATTACTTAGAT -TCTTTTCTGAATTTAGGAATGAATAAAGCTAACATACCTAATAACGCATATAAACCCCACCATGATTGGC -TTGAAGTTGTTTCTCCAGTTTTTGGTAGCATTTTAGATTGACTAAGTTTGTTTTCTTTCGATGGTGTGCC -GGCCTTTTCTTTTGTTTTCACTGTTTTGTCTACAGTTTTATGAATATCACTCGGCAGATGTTCAGTTGTT -TTTTTATCAGTAACTTTGTCTGTATTATTATAATTTTGTCTCACGCCATCAAGCTTTGCTGCTTTTCCAG -TATGATTTTTATCGGTATTATGTGCTAGTTGTATAACTTTGCCTTCATTTTTATTAGAGTCTTTGTCAGT -ATCGACATTAGATGTCATTCCAAGGCTATTATCAACACCCTTATCAGTGTCTTTAGCAATTTGAGTATCC -ATTTCTTTGAAATCATACTTATCGAGGTGAGTGTTATCCGACATATCGGATAAATGATCAACATCATTTT -GCACATCTTTGTCAACACTACTATCAGCATCTTTAACCACGTCAGACTCTGGTTCTATCACATCTGCTTT -ATCAGACGCATCTTTTGGATTTGTTGCAGTGCTGCTATTTTCAGCTGTATCCGTTGCAGTAACCTTATCT -TCTTGTCCTGTTTGTACATTTAGAGGTTCAATCGTGTTATTTTGTGATGTGTCATCATCTTTTGTCTTGA -TATCCTGATTTACAATTCTGACATGATATTGACCTTCATAACCAATGTTTGCCACAACGACTTTAACAAT -CGCATTATAAATTGCTTTGTCAGGTACATATGGGAAAATCAGCGTTCTAGAATTATTTTTAGGATCTTTA -GAAACAGTAGTGACACGTTTACCTTCTACAATTAAATCTTTCCAGTAACTGTCATCCTTTGTTTTCATCA -CTACATATTTTTGACCATTTAAAGTTGCTGTATAGAATGGATGTTCAACAAATCCATCCATGACTGACTC -ACTATTTTCTTCACTTTCAAAAACAACAAAATGAGCCTCTTGTACATCTGTTAATTGATCATTTGTAGGT -GTAACATTTTCAAATTCTGTCACTGCAGACTTAACTTGATCGGCTAACTCTACTCTAGTTTGATCTAATT -TCTTTTTATATTCTGCTTTATATTTTTCCGGCAATTTATCTTGTAATTTTTCTAATTCATAAACTTGTCT -TTCTAATGTTTTAGCTTTGTGATACGGAGCTAATAATTTTTGTAAATTGTATGTTTCCTCATCCACATAG -TCGTCTGGGTTATTAGTAATAGGCTGTGCAAAGACCATTAATGTATAATCATAATCTTCATGGAAGTTCT -CACCATATTCAATAGATGACACAATTTTAACTTCTCTCGCCCCATTAGAAACTGGAAAACGAATATAGGC -ATAATCTTTATCAGAATCATATGATACTAATTCGACTGGTAACTTTTTGTCACCTTCATAAACTTCAAAT -TTCTTCCATGTTGAAGCTGTCTTTAAACCTAATTCAATTATTGGTCCTGTTTTTGTAAAAATAACAGTTG -CTGGTTCAACAGTACTAGCATAATGATAAAACTGTCTCTCACCTTTATCATTTTTCATTTGAAAATCAAT -TGGTCGCCAATGATCAGCTGTATGTTCTTTATCGATGATAGCCGGGTTTTTAATGGCATCTTGTAGTGAT -TCATCTGCTGGTGGATACTGTTGGTACCCATTTGACTGATTACTTGATGCATTCGTTGCATCGTTAGTAT -TGTCATTAGAATTTGTTTCATGAGCTGGTTGGCTTGATGCTTGATCTGAATTCGCTGACGCTTTTGGTTG -TGCAGGTTAACTCATATTGTTCGTTGCCTGCGGTTGATCATTAGTATTGTTGGTCGTTGATGTATTTTGA -TTAGATGTATTCGTGTTTGTTTGATTACTTGCGTCTGAACTTGATTGATCATTCGTTGCTACTGCATCAT -TTGTATCTGATTTTACAAGTGAAGGATCGTTATAAATAGGTTTAGCAAATACTAATTTAGTATAATCATA -ATTTGTTTCAGCTCCATCATCAATTTGAGTTGAAGAGACAATTTTCAGCTCTTGTGTACCATCTGAAACA -GGGAATCGAATATAGGCATGGTCTTCTGGAACAGGACTATACGATACAAGTCTCACTGGCAATTTTTGAT -TGTTTTCATAAACTTCAAACTTCTTCCATGTTGAAGCAGTATTGATGTCTAATTCAACCTCAGCTTTCTT -TTTAGTGTAATATACATCTGCTGGATCTTTGATGCTGAAAAAGTGATAGTACTGCGTTTCATTGTTTTTA -TCTAATAATTGAAAATTAACTTGTTCTCTTGGACCTATATCATGTTCTTTATTTTCTACTGCAGGATTTT -TAATTGCATCTTTAAGTGATTCATCCGCTGCAGGATAGGTTTTCGCAGTGTTTGTTGGTTGCGTAGCAGG -TTGTGTTTGATTTGTATCCTTTGGTGGCTGAGTTGTAGTTGCATTATTATTTTGATTTTCCGAGATTTTA -TCTGAAGTATTTGTATTTTCTGCTGCTTGCGCTTGATGTTGAGAAGTAATTAAAAATAGTGTACTGACAA -TGACCGATGCAACGCCTAGAGTTGATTTTCTAATAGAATAGAAAGACCTTAATTTTGGGTGATGTTTGTT -CATGTTGTTAACAACTCCTATAAGATGGTATTTAATTGATAATAATTATCAATATCAATTATTAGTGTTA -ATTGTAGCGCATCCCAATTAAATATTGCAACCTATTTTATTAAAAATTTTTAATATGAATGTTCATTGCA -TCGCTTTCCTATTCTTCAAGCCCACTTTTTATCTTGGAATACATTAATTAACCATCTTCAAACATTGCCG -TTAGATTCGCCAAATTGAATCTATTTTTAGCACAGCAAAAAAACCGAACTGCTGAAATAATGCATCTCCA -ACAGTCCGGTCTATTAAACTATTTACTTATCTTTATTAAACAATTGACATGATGTATTAGAATAACCCAA -TTGCATGACCATCATCAGTAACATCCATGTTTAATGCTGCTGGTTTTTTAGGTAAACCAGGCATAGTCAT -GATTGCACCTGTCAACGCTACGATAAATCCTGCACCTGTTTTCGCTTCTAATTCACGAATTGTAATTTCA -AATCCTGATGGTGCACCTAACAACGTTTGATCATCTGAGAATGAATATTGTGTTTTCGCCATACATACTG -GGTAATTATCCCAACCATTTTCTTTAAATTGTTTTAATTGTTTTTGCGCTTTACTACTAAACGTTACTTT -TGAACCGCCATAGATTTCAGTCACAATCTTTTCAATCTTTTGCTCTAATGGTAATTCTAATTCATATAAA -GGTTTAAATGAATTAGGTTGATCAATGACTTCTAATACTTCATTTGCTAAGTCAACGCCACCTTTACCAC -CTTTTTCCCAAACTTCAGTTAAGGCAATTCGTACGTTATTTTCTTTAGCCCAAGATTTTACATATTCTAC -TTCTGCATCGGTATCATGTATAAATGCATTAATTGCAACAACCGGTTCTACACCGAATTTTTTAATATTA -TTAACATGACGCTCTAAATTAACAATTCCTGCTTTTACTGCTTCTACATTTTCTTCTTTTAAATTATCTT -TTGCTACACCACCATGCATTTTTAATGCACGAATCGTTGCTACAACTACAACTGCTGCTGGGTCGAATCC -AGCTTCACGCGCCTTAATGTCCATGAATTTTTCAGCGCCTAAGTCTGAACCAAATCCAGCTTCCGTTACA -ACGATATCAGCTAAATCACGTGCTGTTTCAGTTGCTAAAATTGAGTTACAACCGTGTGCGATATTCGCAA -ATGGTCCACCATGAACTAATGCTGGTGTCCCTTCAATTGATTGTACTAAGTTTGGTTTAATTGCATCTTT -TAAAATCATTGCAAGTGCACCTTGCACTTTTAAATCTGCAACTGTAACTGGCTTGCGATCTCTAGTGTAA -CCAATAGTAATACGACTAATTTTATCTTTTAAGTCTTTAATACTTCTACTTAAGCATAAAATCGCCATAA -TTTCAGACGCTACTGTAATATTAAAGCCATCTTCACGTGGTACACCATTTGTAGGTCCACCTAACCCAAC -GTTTACATGTCTAAGTGCACGATCATTCATATCTAATACACGTTTCCATTCAATACGTCTTTGATCGATT -CCTAATTCATTACCTTGGTGAATATGATTATCGATAAACGCAGACAATGCATTATTAGCAGTTGTAATCG -CATGGAAATCTCCGTTGAAATGTAAGTTGATATCTTCCATAGGTAAGACTTGCGCATAACCACCACCAGT -TGCACCACCTTTAATACCAAATGTTGGTCCTAAAGCAGGCTCTCTTAATGCAACCATAACGTTTTTATTT -AACTCATGGAATGCATCAGCTAAACCAACTGTAACCGTTGATTTACCTTCACCAGCTGGTGTTGGGCTCA -TCGCAGTTACTAAAACAACTTTCCCTTTGTTTTCTCTTGGCGTAATTTTATTAATGTCGATTTTAGCTTT -GTAATGACCATAAGGTTCTAATGCATCCTCTGAAATACCTACTGATGCAGCAATATCCTTAATTGGTTGT -AGTGTTGATTGATTCGCAATATCTAAATCTGATAAATGAGTCAACTTTTTTCGCCCCTTTTTGTTTAATT -TATGCATTTATAATATGTAAGTTGTAGCTAAGAAATTTTTACTTACATTCATATAATAACGAACTGTTAA -AAACTTGTCGACTAAATCGGGTTAGCGCTTTCATTTTTGCAATAAATTCACTTATTAAAGTTTTGTATTA -TACAACTTTTAGCGCTTGATACTATTGATAACTATATTTTTCTATTATTTAAAATAGTCATCTTCCAAAG -GTCATATTAAAAATAAAAAGCAATATAAAGATATGCCATTATTGTTATGTCATCATTTTCAAATGTTTTC -TACGAAATGATATGACACAAGTTAACAGCTCTTTATATTGCTTATCGTAAAGTAAACGATTATTTAAACA -TTAACATGAAATATGTTGTCACCCTTTATTCTTCGAAAGAAATCTTCTATAACATTCATGTCATTATTCC -ATTGTACTTAAATCCCCTGCATCTAAATTTAATTCCCAAGCTTTTAATACACGTCTCATAATTTTACCTG -AGCGTGTTTTAGGTAATTTATCTTTAAATTCGATTTCACGTGGTGCTGCATGCGCCGACAAACCTTCTTT -AACAAATAAACGAATTTCTTCTTTTAATTCGTCTGTTGGTTCATATCCTTTTCTCAGTGCAACAAACGCC -TTAATTATTTCACCGCGAACCGGATCAGGTTTACCAATAATTCCTGCTTCGGCAACTGCTTCGTGTTCAA -CCAATTTAGACTCAACCTCAAATGGCCCAACTCGTTCGCCAGCTGTCATAATTACATCATCAACACGTCC -TTGGAACCAAAAGTAACCATCTTCATCTTTATATGCCGAATCACCAGATACATACCAGTCTCCAATAAAA -TATGACTTATATTTTTCTGGATTCTTCCAGATACGATACATCATTGATGGCCAGCCTTTTTTTATAGCAA -GGTTGCCCATTCGATTTGGTGGTAATTCATTACCTGCATCATCGATAATTGCAGCTTGAATACCAGGTAA -TGGTTTGCCCATTGAGCCAAGCTTGACGTCCATCGTTGGATAGTTAACAATCATATGTCCACCTGTTTCT -GTCATCCACCAAGTATCTAACACCGTTAAACCGTATACTTTTTTCGCCCATTTTATAACTTCAGGATTTA -AAGGCTCACCTACTGATAGAATCGAACGTAACGATGACAAGTCATATTTCTCAACAATATCGTCACCAGC -ACTCATTAACATTCTTAAAGCTGTTGGTGCCGTATACCAAATCGTCACTTTAAAATCTTCAATCATACTA -TACCATTGTTCTGGTGAAAAGCGACCACCAGCTATACAATTTGTAGCGCCATTTAACCATGGTGCAAAAA -TACCATAAGATGTTCCTGTAACCCAACCTGGATCTGCTGTACACCAATAAACATCATCTTCTTGTAAATC -TAATACATATTTTCCAGAAATATAGTGCACTAACATCGCTTGTTGAACATGCAATACACCTTTAGGTTGC -CCAGTAGAACCTGATGTATAATGTAAAATCAAACCATCATCCGACTTTAACCATTCAATGTCAAATTCAT -CGCTAGCAGTTTCCATCAAACTAATGAAGTCTATGTAATTGTCTTCTACATCCTCATCTACGACAACAAT -TTTTTTCAAGTTCGGTAATTTATCTACAGGTACTCGAGGTAACAATGCCTTATTAGTAATTAACACTTTA -GCTTCACTGTTCTCTAATCTATCCGCAACCGCCTTTTCCATAAATGCTTCAAATAACGGCCCAACAATTG -CACCAATTTTTAAAACACCTAACAACGCAAAATATAGTTCAGGTGTACGCGACATAAATATAAATACTCT -GTCACCTTTGTCAACTTCTGCATGTTCAGACAAAACATTCGCCGCTTTATTAGATAACCGTTGCATATCT -TTATAAGTATACGATTCTTTTCTGTGTTCATCTTTGTAATTTAATGCTATTTTATCCCCTAATCCTTGAT -CTACATGGCGATCTATACATTCATATGCCATGTTCATTTTTCCAGTTTCACTCCAAGAAAATGCTTGTTC -TACGTCTTTCCAATCAAAAGTATTATATGTTTCTTCATAATCTTTAAGGTTATGTTTGCCTTGCGCTCCT -TTATAAACTTCGACTTTCATTTGAAACTCCCCCTTTGTTATGTGAAAACGCTTTCTTTCTCAATATTATA -CATAACATTTCTAATTATTCAAAATTTTTACTTTTATCCTTTTTCTAGTATTAATTATTGTAAATTTTCT -ATATAATGAATTTAATACAATCACGACGTCGATTGAGGAGTTGAAAATATGAATCATTTAAAGACGTATC -AATCCGAAGATTATTACATACATGACAAGCAATTTGTTATTGAAGGTCCTTTAACACACGAAGATTTGAA -AGCGCTTACTTTCGATGCGTATTTAACCGCATTTAGAGATGCTGAAGATCAGTTTGAAGCTTTGTTAGAA -ATTACAACATTACCAGAAGGTAGAATTTATGTTGCTCGCCAAGATAAACTCATTGTGGGTTATGTCACTT -TCCACTATCCTGATGAAATTGAGCGCTGGTCTACAGGTAACCTTCCATATTTAATCGAATTGGGGGCAAT -TGAAGTCAGCATCAATTTTAGGCAATTACAACTTGCAGAAAAATTAATACAACTTAGCCTTTCTACACCA -GAATTCGAGGATTATATCGTTATAACTACAGAATATTACTGGCATTGGGATTTAAAAAATTCAAAGTTAG -ATGTATTTGACTATAAAAAATTAATGCAGCGGTTAATGGCAACTGGTGGACTTGAAATATTCGCTACAGA -TGATCCAGAAATAACAAGTAATCCAGCTAATTGTTTAATGGCAAGAATTGGCAAAAATATTACATTAGAA -CAGCAACAAGCGTTTGATGATATTCGTTATATGAATCGGTTTTTCTTTTAATTTTTGGAATATCGGAGGG -ATTATATGCAACAACATTTATCAAAAACTGCATATGTATATTCAGATAAGTTATTACAATATCGATTTCA -TGACCAACATCCCTTCAATCAAATGCGTTTAAAATTAACAACAGAGCTACTTTTGAATGCAAATTTATTG -TCTCCAGAACAAATAGTACAACCTAGAATTGCAACAGATGACGAATTAATGTTAATTCATAAATATGATT -ACGTCGAAGCTATTAAGCATGCTTCACATGGCATTATCAGTGAAGATGAGGCTATGAAATATGGATTAAA -TGATGAAGAGAATGGTCAATTTAAGCATATGCACCGCCATAGTGCCACAATTGTTGGAGGCGCTTTAACT -TTAGCAGATCTTATTATGTCAGGCAAAGCATTAAATGGTTGTCACTTAGGTGGTGGTTTGCATCACGCTC -AACCTGGTCGAGCAAGTGGTTTTTGTATATACAATGATATTGCAATTACTGCACAATACTTAGCTAAAGA -ATACAATCAACGCGTTTTAATCATAGATACCGATGCACATCATGGGGATGGTACACAATGGAGTTTCTAT -GCTGATAACCATGTTACTACTTATTCTATCCATGAAACCGGAAAGTTTCTTTTCCCAGGCTCTGGTCACT -ATACTGAGCGCGGTGAAGATATCGGCTATGGACACACTGTAAATGTCCCACTTGAACCGTATACCGAAGA -TTCATCATTTTTGGAGTGTTTTAAATTAACAGTTGAGCCAGTCGTAAAGAGTTTTAAACCTGATATTATT -CTAAGCGTAAATGGTGTCGATATACATTATCGTGATCCACTAACTCATCTAAATTGTACGTTACATTCAT -TATATGAAATTCCATATTTTGTAAAATATTTAGCTGATACTTATACGAATGGAAAGATAATTATGTTTGG -TGGCGGAGGCTACAATATTTGGAGAGTTGTACCACGTGCATGGAGTCATGTATTCTTAAGTTTAATTGAT -CAACCAATTCAAAGTGGTTATTTACCGTTAGAATGGATTAATAAATGGAAACATTATTCATCTGAATTAT -TACCTAAAAGATGGGAAGATCGTTTAAATGATTATACCTATGTCCCCCGCACAAAAGAAATTAGTGAGAA -AAATAAAAAATTAGCTTTGCATATAGCGAGTTGGTACGAATCTACTCGTCAATAAGTCACCTAATCTGCA -ACGATTTTAAATGATGAATAAAAGGCATTCTTCCAACACCCGTATAAGTCGAGTCGTTAGATGAATGCCT -AATTTTGTGAATTTATTTTGTAGTTCCTCGGTATTCAATTCTGTGTGGTAAAACTACATTGGGTTCTTCT -ATCTTTTCATCGTTCATATATTTTGTTAATAAGCGCATCCCTACTGCACCGATATCATATAATGGCTGAA -TAACACTAGAAAGTTGTGGTCTAACCATCTCAACTAAGCGTGTATTATTGAAACTAATAATTTGTAATTC -CTCTGGAACTTTAATACCAGCATCCATTGCACTATGCATGATACCAATAGCTTCTTCGTCACTGATACAT -AATATAGCATCTGGAAGGTTACCTTTCATTTTAGCAAAAGCTTTTACGCCTTCTTTATAACTTTCAGCAC -CAGAACAATTCAATGTATCACCTAATTGAAGACTATTTTTATTTAACACTTCAGTTAAACCTGCTAATAC -ATCTTCTTGAGCTTTTTTAGAATGTTCTCCACCTACTAAAGCAAATGATTTAGCGCCTTTTTCAATTAAT -TTTCCCGTAATTTCTTTCGCAGCTTCAGTAAAATCAATATTAACAGATGCTATATGTGCATCCTTACCAT -TTGTTCCTGATACTACTACAGGTACAGATGATTGATTTATCAATTCTTTCATTTCTTCAGTAATTGTACC -ACCAAGGAAAATAATACCATCAACTTGTTTACTTAATAAGTTATTAAAAATTTCTTTTTCTTTTTCAGGA -TCGTTATCTGAATTTGAAATAATTGAGTGATATTTATACATTATTGCAATATCTTCAAGTCCACGAGCAA -GTTGTGAATAATAGATATTAGATATATCTGGAATGATCACACCTACTGTTGTTGTCTTTTTACTAGCTAA -ACCTCTAGCAACAGCATTTGGACGATAATTCAAACGCTTAATGACTTCGTTAACTTTATTTTTAGTTTCT -GCTTTAACATTTTGGTTCCCATTAACAACACGCGACACTGTGGCCATAGAGACACGCGCTTCTCTTGCTA -CATCATATATAGTAACTGTCATAATTTCCTCCTTGTAAACGTTTTATTCATTATAATAACATGTTTTCAT -TTCATTTTCATAGTTTACCATATTTTAATTTACAGTAACATATTTTTGTTTGGAAAAATTTAGCGAAAAG -CCTGAAATAAAAACAAACGCTAAATGATAACGAACGATATATTTTAATTTTATATAAACTTTTTTCATTT -TTAATTGTAATATTTTGAGAAAGCCTTTTCAAATATCAATTGCATTTGTTGAAAAATGTTCACATTTCAG -TAACAAATATGTGAATCTATTATATTTTACAGATAATTCATAGTTATAATTTTAATTACTACTATCAGTC -ATAATCTTTAATAATTGTGAAATTGAACAAGTGTCGAAGTATTATAACAATCGTTAAGTGCAGTATACCT -TTATTTCTATACAAAAAATAATAGCCACTCTAAAAGTAATATACTCTTAGAATGGCTACAAGTTTAAAAT -TGTCGATTCAAAGATAATATTCTACTTCAACATGACTTATTAGTTAAGTAGTCAATAGTTTCCTTGGAAT -ATTATTTTAACTTTTTAGCGTTATATAAATCAGACAAAGGCTTTAATTCATCATAAAATGCTTGGAATTC -ATCTAAATCCATTTGTTGACCCGCATCACTAAGTGCAACAGATGGATCTGGATGCACCTCAGCCATAACG -CCATCAGCACCTACTGCTAATGCTGCTTTCGCAGTTGGTAACATGATATCTTTACGACCTGTACTATGCG -TAACATCTACCATGACTGGTAAGTGTGTACCTTGTTTTAAAATTGGTACTGCTGAAATATCTAAAGTGTT -ACGTGTCGCCTTTTCATAAGTTCGGATTCCACGTTCACATAAAATAATGTTTTGATTACCTTGTGAAGCA -ATGTATTCAGCTGCATAAACAAACTCTTCGATTGTAGCAGATAAACCACGTTTTAATAGAATAGGCTTTT -TCGTACGGCCAGCTTCTTTTAATAACTCGAAGTTTTGCATATTACGTGCACCAATTTGGAATACGTCTAA -ATACTCATCAGCCACTTCAAAATCATTTGGATTTACGATTTCGCTGACAACATTTAAATCATATTTATCT -TTAATTTGTTTAAGTATTTTAAGACCTTCGACACCTAAACCTTGGAAGTCATATGGTGATGTACGTGGCT -TAAATGCACCGCCACGAATAAATTTTTCACCTTTAGCATGTAAGTTTTTAGCAACAGCTTCAACTTGTTC -AAATGATTCAACTGAACATGGCCCAAATACAAATGATTTATTGCCGTCTCCAATAATGCCCCCATTATCA -AATGTTACAATCGTATCTTCAGGTTTCAACTTACGTGATACATATAAATGTTTTTCATTTTCAGATTTTT -GTAAATCTGTAGAGGCTTTGAAAATTTCTTTAAATAATTGCTTAATAGTATTATCGTTGAATGGTCCTTT -GTTACTATCGATTAAGTCGTTAAGCATTTCTTTTTCGCGTTGTGGATCATAGATACGTGTACCTTGTTTT -AATTTTTCTTCCCCAATTTTTTGTGCTAGTTCACCACGTTTAGATAATAAGTCTAAAATTTGATGATTCA -GTGAGACAATCTCACTTCTGTATGATTCTAATTTATTACTCATCCTTACTCACCTCTACGAATTATTTCA -AGTATATTCCACTTTAAAGCAATAAAATATAATGTTAAAAAATATTCTAACAATATCATATGTATAGTTC -AACCCTAAATTGACAGAAAATAATTAATTTTCTAACTATATGATGCTTGACTGACATTTCGATTTTCTCA -GTCATTGTTGGAAAGTTATATTCTATATTGATATTTATTAGCACATGTTAATCAATTAAATAAGTGTCAT -GATTATAGCTTATTTTGAGTCAACATTACAGCTTTTAAGAAAAATTTTGGTTTCTATCTTCTATTATAAA -TCTAAAATTCTCATACATTCAACCTAACGCTTAATAAAAATTAACAACCTTTGTATATTAATATAAATCT -ATAGTGAACATCACTCACCAACATATTCAGCCATATTTGAATTAGTGAACGTCATTGTACCTACTTAGAT -TCATTATTTATTTGATTATCAAATATTTTTCCATCATCAGCTTAAAATGTGCAATATCACTATTGTTATC -TAAAGATGTTTCAAACAACATAAATACATGAAATGATCGCGTTGCCTTTCAAAATAAACTGATGATATCA -AAAAAGGTAAGCACCTGAATGCCTACCTTTTATTTTGAAATTCAATTTTTAAAAATATAATACATAGATG -ACTGCTATGATTGATTATTAAACGATTTTAGTATGCTTAGTCATTAAATGTACGTTTCTCTATTTTACTT -TTAGCTTTTTCAACTTTAGCATTTGATTTTTTTGATGCATTGGATGATTTAGCATTTGTTGCTTTTGAAT -TTTTTTGATTAGTCTTTGTCGTTGAGTTACTTGAACTACTTTGTTTCTTTGCACCTTGTGATGCTTTCTT -ATTATGTTGCTTTTTCTGACCTGAAGTTTTATTTGTCGATGCTTTTGATGCATTTCGTTTATTTGAAGGT -GTTGTTTTTTTAGATTGTTTACCTGATTTCTTGTCAACAGCTGTATTATTAGGTGTTTTTTCATCAGCTT -TACGTGTAATAACACCATTTTCAAATTTAGCTTCTTTTTGTTTAACAGTGTCTTTATTATCTGTATTAAC -TGTTTCTGATACATCATTCTTTTTAGTAACTAATAGAGGAATTTCTTTCAAGTCATTTTTAGCAACTGGT -TTTTCTGCAAATAACGCTTCAGTTAATTGACTCTCTTTTGAGCCTGGTGTTAATTTAGCTTGCTTCTGTT -TTGCAGCGTTTGCTAATCTTTCAGCTTGTGACTCTTCTTTCGATACGTTTAATGTCGATGCTTTTGATTC -TTCATTTGATACATCTGCACTTTTATCTGTTTCTGCTTGCGCTTCTTTCTTCACTTCTTGAATCGCTTGT -GCTTCTTGTGATGTATCACTTAAATTATTTGCACTTGCTTCTTCTTTTATCGCTGCTTGTTGTGCCTTCA -ATGCCGATGCCTTTGACTCTTCATTTGATACAGCCGCACTTTTATCCGTTTCTGTTTGTGCTTCTCTTTT -AGCTTCTTGAATCTCTTGTGCCTCTTGTGATGTATCGCTTAAATTATTTGCACTTGCTTCTTCTTTTATT -GCTGCTTGTTGTGCCTTCAATGCCGCTTGTTCATTTTTAGATTTGTTTAAAAATCCTTCAACACGTTCTT -TTGTAAAGGCAACCGTTTCTTCAAGTTGCGTTTTTCTTTCTTCAAACTTTTGCGACAGTTCTTGTTCTTT -GACTTTTAAATCATCTGCTTTTTGATAAACTTTATTTTTAAAATATAAGCCTAAAGCTGAACCAACAAGC -GCGCCAGTTATAAAACTAACAACAAAATCTTTACGGTTTGGTAATGGTTCATTTTGATAAGTGTGTTTAT -TTTTTAATGTTCTTTTATTATTTTGTTGTTGCGTCATTTGTATATCCTCCTATAACAAATGCACTTAAAT -AAGTAACAACCTCATTTAAGTGCATTTGTTTAATTATTAATTATTTATCTACTCGAGAAGTATAGCTATG -ATTTGCATCAGTTGCTACATTATTAGCTTTGTAATTTGCACTTCCACGACGGTAGTGTCTATTTTGCCAT -TTGTCTGCAATTTCCATTGCAACATTTGACCATTGAACAACTTGTGAGATTTTATCTTCATTTTGAGAAA -TATTATGTGTAATTGAATTTGTTACACGATCTACAGAGCTGTTTAACGTTTGTACTGAGTCACCGATACC -TTTAACAGCATCTACTACTGAGTTTAAACGATCTACTTTACCTTGGATATCCTCAGTTAAACGGTTTACT -TTATGAAGTAAATCTGTTGTTTCACGAGTAATACCTTGAACTTGACCTTCTACACCGTCAAGTGTTTTTG -CAACATAATCTAAGTTTTTCTTAACAGAATTTAATACAGCTACGATACCGATACATAAAATTAAGAATGC -AATCGCAGCGATAATTCCAGCAATTGGTAAAATCCAATCCATTAAAAACGCCTCCTAATTAACATGTAAT -AATGTCATTAATAATAAATACCCATACTACTCTATTATAAACATATTAAAACGCATTTTTCATGCCTAAT -TTATCTAAATATGCATTTTGTAATTTTTGAATATCACCTGCACCCATAAATAAAATAACAGCATTATCAA -ATTGTTCTAATACATTAATAGAATCTTCATTAATTAACGATGCACCTTCAATTTTATCAATTAAATCTTG -TATCGTTAATGCGCCAGTATTTTCTCTAATTGATCCAAAAATTTCACATAAGAATACACGATCTGCTTTA -CTTAAACTTTCTGCAAATTCATTTAAAAATGCTTGTGTTCTAGAGAAAGTGTGTGGTTGAAATACTGCAA -CAACTTCTTTATGTGGATATTTCTTTCGTGCTGTTTCAATTGTAGCACTAATCTCTCTTGGATGGTGTGC -ATAATCATCTACAATAACTTGATTTGCAATTGTAGTTTCATTGAAACGACGTTTAACACCACCAAACGTT -TCTAATGCTTCTTTAATATTTGTAACATCTAGCTTCTCTAAATAACTAATCGCAATTACAGCTAATGCAT -TTAAAACTGTATGGTCACCATATTGTGGAGATAGGAAGTGATCATAAAACTCACCATCCACATACACATC -AAAAGCAGTACCTTTATCCGTAATTTGAATATTTTGAGCATAAATGTCATCCGACTCTTTAAATCCATAG -TAATAAATTGGAACATCTGCTTCAATTTTACGTAGATGTTCATCATCACCCCAAGCAATAATACCTTTTT -TAACATTATGTGCCATTTCTTGGAATGCATCAAAAACATCATTAATATCTTTAAAATAATCAGGATGATC -GAAATCAATATTTGTCATAATTGCGTAATCAGGTTTATAACTTAAAAAGTGACGTCTATATTCACATGCC -TCAAAAGCGAAATAATCACTTTCAGGCAATCCCATACCTGTGCCATCACCAATTAAAAATGAAGTCTTTT -TATCACCATTCATAACATGTGATAATAAACCTGTTGTAGAAGTTTTACCATGTGCACCAGTTACAGCTAC -TGAAGTATATTGATCAATAATCTGTCCTAAAAAATCATTATAACTTACAACATCTAATTTCAATTGATGT -GCACGTACTATTTCTTCATGGCTACTCGCGAATGCATTACCTTGTATAACTACCATATCTTCTTTTATGT -TATTAGCATCAAATGGTAATATTTTTATCCCCTTATTTCTAAGAGCAACTTCTGTAAATACGTAGTTCTC -AATATCCGATCCTTGAACTTCATGTCCTAAATCATGCATGATTTGTGCTAATGAACTCATGCCAGAACCT -TTAATTCCGACAAAATGATAGTGTGTCATTATATAAAACTCCTTACTCATAATTATTCTTTATTTAAATC -TGCTTCCGTAACATAAACATCCCTTGGTTTTGAACCATTAGCACTCGAAACATAACCGAGTTGCTCTAAT -TGATCGATAATTCTTGCTGCTCTATTATAGCCAATTTGGAAATGTCTTTGGATTAATGATGTTGAAATAT -GTCCTTCATTAACCATAAATGCACAAACATCATCAAATAATTCATCTTGTGATTGTGTTTGTGTTTTTTT -CAACAATTCTTTTTCTTCAAATAGGTAGTCCGGTTCTCTTTGTTGTTTGATAAAATCAACAACATCATCA -ATTTCGTCATCAGAAACAAATGTACCTTGAACTCTAATCGGTTTATTCATACCGCTACCAAGATATAACA -TATCGCCATATCCTAACAAGCGTTCTGCTCCACCACTGTCTAATATCGTTCTTGAATCTACACTTGATGA -TACCATAAATGCAATTCTTGTTGGTATGTTGGCTTTAATTAAACCTGTAATTACATTGACAGATGGTCTT -TGCGTAGCTACCAACATATGAATACCACATGCTCTCGCTTTTTGAGCAATTCTAGCAATAGACTGCTCAA -CTTCTTGCGGAGCCATCATCATTAAATCAGCCAACTCATCAATTACTATGACAATTTTTGGCATTCTTTC -ATCATATGGTGCTTTTTTGTTAAATGCTGTTATATTACGTACATGGTAATGTGCAAATAACTTATAACGT -CTTTCCATTTCTTCTACGGCCCATTTTAAACTCTGTGTAGCTGCTTTGACATCTGTAATTACCGGTGCAA -CTAAATGTGGCAAACCATTATAAGGAGCTAATTCAACCATTTTTGGATCAATAAGTAATAATCTTAATTC -CTCAGGATGATTTTTATATAGTAAAGACATCAAAATACTATTGATACAAACTGATTTCCCTGATCCAGTT -GCACCTGCAATTAGTGCGTGTGGCGTTTTAGCAATATCCATAAGTAATGGTTCATTATTAATTCTATACC -CCATCGCAACTGTTAATTTAGATTCAGCATTTTTAAAACTTGGAGATTCAATAATAGAACGTAAGTTGAC -CGTCGTTGGATTTTGGTTCGGAACTTCAATACCAACACGACTAGTTCCTGGAATTGGCGCTTCTATACGA -ATATCTTTCGCTGCCAATGCCATTTTAATGTCATCTTGTAATGCCGTAATTCTTGAAACTTTAACACCTT -TTTCAACTGATAATTCAAATCTTGTAACACTTGGACCTTCAGTTACATCTTGTACTTCTGCAGGTACATT -AAAGTAAAATAATGCGTCATTAAGTTCTTTCTTTTTATCTGTAATCCAGTCCTCGTCCGGCTCAATAACT -TGTGGTTCTTCTAGTAATGAAACACTTGGCAATTTAATATTTGGGCCTTTACGAATCATCGGCTTAGAAG -TTTGTACAGCTTGATTTGTTGCAACATCTGGTTGATTCGTCCGAGGTCTATTTTCATTAGCTGTATCTTC -ATTTTGATTTGAAAATGAAAGCTGTAAATCTTTTTGTTGATCATCATTATCTTGTTGTCCACTAGTATTG -TTTTGATGTGTTGTTTCTTCGCTTTCTTCAGTTATGTCGCTTACTTCTGAAACTGAAGACGAAGTTGATT -GATCAACTTGCTCATTTTCCAATTGATTATCATCTTGGCTTTCTTCAAATATTTCCGTTTGAGTTGAATC -AGCAGAAGGTTTCTGCTCTGAATATTGTTGTGCATTTTGATAATCATTTTCTGTTGCTGCATGACCAATA -AGTTGATTGTTCTCAACATTGTTTGATGTCATATTATTTGTTTTATATGCATTCGTGTTTGACTCTTGTG -AATCAGTACTTGATGATGGTGTGTTTTGAGTCGCAGTCTTGCTTTCACTCGCAGCTTGTTTACTTTGTAC -AGGCTTTAATTCAGGCACATTGACTTTTGAATGCTTTTTACGATCCATCATACGCTTTTTATCAGATGGC -GTCATGACAACATTAAATGGTCTTTTACTTAAAGTTGAAACCTTTTCAGTCTGTTTCTTTGGATTTACGT -TTTCAATAGTTTTCTCTTCGACATTTTGTTTACTTTCAGCTGCTTCGTTTTGCACATTTTCTGTAATTTC -TGCGTTTTGCTTTTCTATTTCATTCATGCTTGAATCTTCCACAACATGACCATCATTCACATCATTCGTT -TTCAATGAGTTGACACTTAAGTTTGTTTGGTCATCTTTTTTATGACGTGGCGCTAATTCAATTTCATTAT -CAACCGTTTTATCGATATTATTAACTTGAGATTCAGTTACTGCGTGCTCTTGCGTTTTAGGAGCGTCTAC -ATGCATTTCAGACGCGTCTCTATTGGTATTATCTTCGCTATTTGAAGTAGTATCCTCATCTACTTCTGTA -TCATTTAATTCATAAAATTCTGCATCATCGATTTGACTTCCTGAATATTCTTCTTCATTCGTTGCTCCAT -CTTCTTCTGAATCAGCAATTAATCTGGATTGATTTTTTAGTTCATCTTGATTATTTACTTCAACGTTATG -TTGCAGTGCTGATTGACGTTGAGACGTTACATCCGAAACCGTAACTTCATCATCTGACAATTGTTTTGTT -GTCGATACTTGATTCAAACTAACTTCCTCATAATTGTATGGACTTTCATCTACATGAGTGTCATCAGTGT -CTTCATTTTGTATTGACGCTTTTTTATTTTCATCATTTGATACAGCTTCATCCTCTATTTCATTTGTATG -AAGCTGACTAGCCTCTGTACTATTATCTGTTAAGTCACTATCATCATTTAATGAACTATCACCAACATAG -CGTTCCGCTTGTTTAGCATACATTTCATCAATTGCACGTTGTATTGCATCTTGCTCTTCGTTTTTATGTT -CTTCACGCTTTTGTTGCAACGCTTTTTTAAATCGACGCTTTTGAAGCACTTTACGTTCTCGTTCACGTCT -AATTTCTTCAACAATTTGTGAAGCATAAATGTTTTCAATTTTGATAGTATTATCAACTTTTGAATAATTA -GGTGTTGATTTTGTTGTTGATGATACATTTTCATCAGATGATTTAGATGCAGTTCCTTGCTTGACAACAC -TATCTTTTTGTTTCTCTTGTTCTAAATGTTTATTTTGAGACGTTTGCGTCTTAGCTACATATTTATCATA -TTTTTGTTTATCTGACTCAACTTTTTCTGAAGATTTACTTACAGGGATACGACCATTTTCTAACTTTTTA -GGTTTCATTGTGCCAAAAATAGCTGACGGTACCTCTGAAGTCTTGAAACTTTCTTTGTGATAATCTGTAG -TTGAATCTTTAGCACGATGATTTGTATTATTAGAATATATATTGTGTGTTTTTGACTTGTGCGTTTCCTT -CTCAATACCATTAATTGCAGAAACATATGTACCTGGCTTATTCGTATGGTAATGTGAATGATCTTTATAT -TTTATACTTTGCTGTGATATTTTAGAATTCCCACGTTGTTCACTATAATTTTGTTCTTCAGTTGTTTGAT -TTCTTCTACGGCGATGTCGTTTTTGTGAACGAGAATCGTGGCTTTGTTTGCGATAGTCTCGATGGTATTG -TTCTTTTTCATCTGAAATAGTATCTGCAGATTGTTCAACATTTTCATTTTCATAAGCTACGCTCATAGGA -AAACGGAATTTTCCCCTCGGACGACTATAAATATCATTATTTTGAGGCAGTAATGAGTCATGATCGTTAT -CTATATTTTGTGATTCTTGACGTCTTTTTTTCTTTCTATGAATCAAGTCATCATTTGAATCATTATCTTC -GCCGAATAATTTATCAAACCAGCTCATATTTTCACTACCTTCCTTAATTATTCAAAAAATGCTTGTCCAA -TTTCATAGCTGTCATTTAATACCATAATACCTTTTTCTTCAGGTGCATTAGGTAAATTCAATTCTTTCAT -TGAACAAATCATACCGCTTGAGGCAACACCACGTAATTCAGCATCTTTAATTACCATACCGCTAGGCATC -ACTGCACCTACTTTAGCAACAACAACTTTCTGTCCAGCTTCAACGTTAGGCGCGCCACATACAATTTGTA -ATGTGTCATTTCCAACATTTACATTTAGTACACTTAATTTATCTGCATCAGGATGTTTGTCTTTAGTTTC -AACGTAGCCAACTACAAATTTCGGTGATAGATCAGCATTTAATTTATAATCAAAACCAGCTTCTGAAATA -CGCTTTTGGAATACATTTACAAGTTCATCAGTTAATTTAATATGACCTGTTTCTTCAATTGTTATATCTT -TTGAAATTTCAAAAATATTATAACCTACAACATTACCTTCATTAGTAATTTCAAAAATATTATAACCTAC -AACATTACCTTCATTAGTAATTTCAACAACGTTACCTTTTTTATTGTAGTTTAATTCACCTTCAACTGGT -TCAATTTGTAAAAATGCGACATCTCCTACATATTTAGGATTGTAAAATAAATTCATTATGACAAAACTCC -TTATCCAATTATTTCTATTTATCTTTATTAAATTTACGACGATTTGCTTCTAAACGCTGAATCACGTTTG -GATCTCTTTTTTGTTTATTATTTTTACCTAAAATAAATATCGGTTCAAGATGACCCTGTTTATATCCAAA -GGATAATGATGTAATTGGAACTAGACCTTTAGTGAAAAATTCCATTGTTAAATGTGCCATCACATCATAT -CCTGTTTTATTGCGTATATCTGCAATAATTAACACATCTTGGTGTGGCACTGCTACGAGCATTTCACCTT -GACATTGTGCCTCAATTTCATTTAAAAATGCAGTATTTAGAATCCTACTTGCATCATACCCGTCATTTGA -GTTAATAAAGTAAAAAATATTACCTTTTACTTCATCAGTCGTATATGAATTTGATAATTTTCTAACATTA -AACAGAGACATTTCTCTTATTTGTTGTTCAGTTAACTTCAAATCCTCTAACATGCTTTCATCAATTAGAC -GATATGATTTTCCTAAATCGACTGCATAATAAACTGCTGTTTCTGCAGTATGTTCATCATAGATAAAAGG -AACACCTTGTTTAGTTTTTTTATCAAAGCTAGTCGCTCTAATGACAGGCATAATTTGACTAGATGATATA -CTCTCAAGGGTTTTATCTGCCATTTGTGCAATAGCTTCATCAACGTAATAAACAATTTCATCTACAATTT -TTTCTTTTTTATCTTCATATTTTGCGACTATAGCGTTAAGTTTAATCGTGATACCTTTGTTATTATCTGT -TCGATAAATACGCAAAGTTTCTTCTTCACGATTAAATTTAAAATCAACGTCTAAATGGCTTAAACGTTCC -TTTAATTTATCTCTCATTTGAAAGGTATTCATATGTAACACTCCTAATTTCGCACCTTATAATAGTTTAC -AATAAATCAACACATAGTAACAGAGAAAAACGAGTATTACCCCGTTTTTCTCTAGTCTAAATTACACGTA -TTGAGCTAAAAATGCATCTATCTGTTCAATTGATTTTCGTTCTTTTCCAATATAACTTCCAAGCAGTTCT -CCATTTTTATATACTAGAAAACTTGGAATCCCCATAATACCATTTTCAATACAAATATCCATAAATTTAT -CACGGTCTACTGATACGAAGTCAAACATAGGATATCTCGCTTCTAATTCCGGTAAATCTGGTTCTATCAC -TCTACAATCTGGACACCAGCCTGCAGTGAATTCAAATACTGTAGCACCTTGTTTTAAAGATTCAAATTGT -TGTTCTGATTCAAGTTGTTTCATTTTTATGTCTCCTTAATTAATGATTATATATAACTATTTAGAAATAA -TAGTTGTTATTACCCGATTATTTATATTGTAATGTTTCTATTTGATTGTTATCTAAATTACAAATGGCTT -CTGAAAGTAAAGATCTAGCAGCAAAATAGTCTCTTATATCAAATACTGAGTCTGTACTATGAATATATCG -TGCACATACACCAATAACTGCAGTTGGAATACCAATATTAGCTTTATGAATTTCTCCACCATCTGTTCCA -CCAGGTGACATATAGTATTGATGTTCAATGTCATGTGCTTCTACTAACTTTAATAAATAGTCTCTAAATG -CAGGCTTTAAAATCATTGTACCGTCTTTTATGCGAATTAACGTACCTTTACCAAGTTCACCGGATAATGG -TTGATTACCTTTAACGTCATTGGCAGGTGAACAATCGACAACAAATGCAACGTCTGGGTCTATCATCTCT -GCAGATGCTTTCGCACCTCGTAATCCAACCTCTTCTTGAACATTTGCGCCAACATACAAGTCTACATCTA -ATTCTATATCTTTTAATAATTCTAGTATTTCAATTGCCAAGACACAACCATAACGATTATCCCATGCTTT -AGCACTATATCGATGTTCAGATAACTGTGTGAATGGCGTGTGAGGTACAATTGTATCTCCTATATCTATT -CCGCGCTCACGCACTTCATCTTCATTTTGAGCACCTATATCTAATGTTAAATCTTTAATTTCCGGTGCAC -CTTCACTACCAGTACGAAAATGTTTAGGTATATTAGAAACAACACCGATAATTTTATCGCCATTTCTATT -TTTAATTACTAAGCGTTGTCCTTGCCAAATATCATTTGCAACACCACCTAAATTTGTGAATTGAATCATT -CCATTTTTAGTGATGTTTGTAATCATGAATCCAATTTCATCCATATGTGCTGCAATCATTACACGTTTTG -CATTTGGATTTTTAGATTTTTTAACACCAAAAAAACCACCCATACGATTTTCAATAAATTCATCTACGTA -CGGCGCCATTTGCTGAGTCATATAATTTTTTACTTCTTCTTCAAAACCTGGTGCCCCATGAAGCTCAGTT -AAAGTTTGAATTCGTTGTAATGTTACTTTTTTATTTATGTTCATAAAAGTTCTCACTCCTTATAAGTTAT -TATATCATCTTCAATATGGTAAACTAATGATATGAATTTGAAATCAAGGGAGCATAAATGATGACTAAAC -TGAAATATATAATTCCAACAATAATTGCAGTAGCCATTGTAATTATTTCTACCATTTCAATCATCCAATT -TATTAATCGTAAACGCTATAATCCCGTTAAAGTACTTAATGAAGTAAAATCATATTTTATGAATGTCAAA -GGCTCATATATCGTTTATGAACCATTCGTTCATCCTGAAACTGATAAATACCGTTTAGTTTATCAAGGTG -GAATTACAACTATTAAAAATGGTCAAAATATTCATTATGATTTTTATGCAGATGCATATACTGGTGAAGT -CATTAACATTGTAGAGCGTTAATACGAATTTTATCCATATTTGATTTGGATCGTAAAACTTAAAAATGAG -CCACACCCTAATTAGTAAGATAGGATGTGGCTCAATTTTTTATTCTTGAAAATTTGTTTAGTAATACATC -TTTTTTTAGTTATTATCAACTAATGTTTCACGTAAAATATATGCATCTATACTTTCGCCATCATCGCTGT -ATTTTACAGCAAAGTAGTTTTCATCATGATAAAACAAGAACCAATATTGTTGCTGGATAAAATATGGTAT -CATGCGTTCCTTTTCACGAATTGATTGCATAGGATAATCATCATATGCTGTTACCCATAGAGGATTTTTA -TGTGCAGTAGTCGGGAATATATCACCCATATGAACTGCTTTATCTCCTTGACTTTCAATCGTAATGATTG -TGTGGCCAAAGCTATGACCTCCACTATGTTGCATCTTGATACCCGGAACCGGTTCAAAATGTTTTTCGAA -TAAAATCAACTTGTTACTATAATCGCCTTTATTCTTATCCCAGTAAGTTGATTTACTTCTTATATTAGGT -GCAATAAACTCATGCCACTCATCTTGTTGCACAACATGAATCGCATTTTCAAAAATTGCATGTCCCGCTT -GATCAGTCAAACCGGCAGCATGATCAAAATGCATATGTGTCATTAGTACATAATCAATATCCTTTGGCGT -TAAATTATAATTTGCCAAATCAGCAGTTATATGACTTTCTTCATCTACACCAAAATTACGTAATTGCTTT -TCAGATAATTTACCATTACCAATACCCGCATCTATAATCAAATTATATTGAGCCGTTTGAATCAAAATTG -GATGTGTCGGTAAATTGATTTGATTTCGTTCATTTGCATTGTATTGCTTTGACCACAACGGCTTCGGAAC -AACACCAAACATTGCACCGCCATCCATTTTTGTATTGCCACCATTTAGATAATGAATAGATATATCCCCG -ATTTTCATAACATCACCTATTCTTTCTATATTCGTTATTACAATTAGCATGTGTTTATTACATCATATCA -CTATTCATAAATGCGAACAAAAATGAAACGCCCCACACTAATACACTTCCAACTACTTATAAAAATTAAT -GCAATCATATTATATGTAAATGCATCATAACCATCGGACTGTAATTTTAAATTAATAATTAAAATTTCCA -AGTAAAATGCAAGCTTTATTCTTTCAAATCAAAGGTATTTAGTATAACATTGTTCATAGGCGCATTGTCT -CCTTTAGTTTGGGTTTGGTCACTTTAAATTATAGAGGCAATAGCGCTTTTTTGTATTAAAAAACAAAAAG -TTCCACCTTTCCACCATATGTTACTTTACTTGATATATGAGAATGATTTTACCTAGTAAATGAGAAAAGC -AATGTCCTATATTAAAGTACATTGCTTTTTCTATTAACGAATACCTATGACTAAACTATCTCTAGCTGTT -TCTACAACTTCTGTACTGATTTTATCTAAGCCATTTATATCCATAATTCTATCTATCTGCGCAAATAAAC -GATGAATCAGCCTAAAATTCCCTTTTGTAATTTTAATAATCGTCGTTATTGCCTCATAATCAGTAAAATC -TTCGAGTTTTAGATCAAATCCTAAATCTTGCCACTTATATTCTAATATATGATGCGTCTCGTCTTTACTT -AGATTATCAAATTCATGTGCAAAACCTATACGCGAATATAGTTGAGGATAACGAGATAGTTTTTTCTCTA -TACCTGGCATACCAATAAATATCATTGCTAAATTATGTTCATCATAAATAGCTCTTAATTGCTCTAAATG -TTGCACTTTAAGGCGATCAATCTCATCTACTATAATTAAATCAATATATTTAAACATATCACTATAATGT -TTACTATGATCATGACCATACTTATTTACGATGTGTAATTTTTGACCCAAATCAATACTTGCACTAATAC -TATATAGATCATTACTTAATCTTGTTTGTTTTTCAGCCGGTGCAGTATAAAATATCTTATTCACCGATAA -TATATCATCAGTCGTTTTACTAGCTAGATCTTCCCACCCTCTATGATTAACTTGCTTTTCAATAGTATTC -CAATTTGTGTAATACCTAGAAGATAAAGTTTTTCCGACACCAGGTTGACCATAGCAGATCCCAATATATT -GATATTTGATACAAGCATCGCAAAATTCAGCAAATCGTTTATACTCTTTCGTTTCAATGAAATTCTGATT -TTTAGTCATTACGATACCTCTTTAATTTTTTGACGTTTTTGGTCGTTTCTTGAGGTGAGTAACCATAACT -TTTTTCTTCCTTAATTAAATCAGTGGTGCTTGGACTAGCAATGTTTTGTTTTAAGTGTTTTCTTCTCTGA -CTACGTGCGTGTTGTATCTCTTTTATATCAATTGAATAATCAGCTAAATCAGGGGATATTGCTGTACAAA -GAAATTCATCTCTATAAAAAACGCGTATTTCAGCCATATCATTGGGATTGTAACGAATTAATACATACTC -ACCTACATAAGCAGTTAGGTTTGTATTACTGTATCTAAAGCCTTGAAAATGAATACCATCTGAATGAATT -TTTCTAGATTTAGGTATTTCTAATAATAATAAATCAAGTTGTTCTAAACTGCTTGGCATATTAGGAAAAA -AATGATTACTGTTCCACCGATTGATAGGAGTGCTCTGGATAGCACTGTGCTCTTTTTGATTATAATCTTC -AATTAAAAAGTATCGTAATTTTTCTTCGAAATTTTGAAAATCTATTAAATCGCTAGAAGTATCATTATTG -TTTATATATCCAGGAAGTTGTTCTAAGAAAGTTTGGTTAACTGTCTGAAAAAACCGTTCTATTTTCCCGC -GACCACGAGGGACACCAACTTTTGAAAACATCAAGTTAATTTTCAAATCAATAGCGACTTGTTCCATGTG -GTGCGAGGTAAAGTCACTCCCGTGATCTGTGTAGAATTTTTCGGGTATACCACATACTGGCCAATTGGTA -TTATTCTTATTCCATATTGCTTGGTGTAGTGTTAATGCTGTGTTTTGAGCATTAGGAGCATCAAAACTTA -TAAAGTAGCCTGCAATTGCACGACTATAGTCATCCATAATAATGGTTAGCCATGGTCTATTGATATTACC -TTTTTGATCTAATATATAAATATCTAGCAAAGTATGGTCGGCTTGCCATATTTCATTGGGTCTTGAGGAT -TCTCTTATTTGTATTAAATCGTACTTATTTTGATAGTATTTTTCACCTTGGTGAGAGAAATCAATAACAG -ACTTAGGCATTGCTTTAATAATACTATAAACTTGTTTATAACTTGGTTTATAAAAATTATTCTCTATACA -ATAATTAGCGATTTTCCTATGAATCGTAGCAATACTATTTCTTTTATTCTTGAGTGCAAGGCGTTTAATC -TCGTCTATTATGTTTTGTTTTAATTTATGCTCACCTTTATCAACTCTTGTATTATGAATTAGACCAGTAA -GACCTTGTTCCTTATATAATTTATTCCACCTATAAAGTGTACTTAACGCAATACCTTTGCTTTTAGAAAT -GCTTGATAAAGATTGCTTGCCCAAGATAAAAGGTTTTATAATATTGTACTTTTGAGTAGCTTCTTTACGT -TTGGCTTCAGAAAAATTAGTTAGATACTTCTCCTTGTTTTTCATCTTCCTTTTCCTCCAATTTATTGAGG -TAACGATAAATCGTTGTACGTGAAACTTGCCACTGCTCTGCAATTGTCTTAATTGGCGTGCCATTATCAT -AAAGTGTCTTAAGTAAGTTTAAATCTTTTTGATTTAATTTTTCGGGTCTACCTCCATAGCGTCCTCTAGC -ACGTGCTGCAATTCGGCCAGCTGAAGAACGTTCTAAAATTAAATTTCGTTCAAATTCTGCAAACGCTGCG -AATAAATGAAATAATAATTGTCCTGTAGAACTTGATTTATCCATCGTTATATTTTCTTCTAAACTATGGA -AACTTACACCTCGTTCGTTAAGCTCATTAACTAATGTGATTAAATCCTCCATATTACGTCCTAGTCTGTC -GAGTCTCCAAACAACAATCGTATCTCCTGATCTCGCAAATTCAATTGCTTTATCTAATCCAGGTCTTTTA -CTTTTTGAACCACTAATATGGTCGCTAAATATCTTTTCACAACCATATGCGTTTAATCGGTCCTCCTGTA -AATTCAGATTTTGTAATCCAGTTGAAACTCTTGCATAACCTATTTTCAAAATACAAACCTCCTATATACA -TATACAGTGTACCATAACTTAATTTCAAGGTCTTTTGTGAACATAGATTTTTTGTTGGGTTTTTGAACAC -GAAAATATATGTATTACTCACTTATTTCGGCATAAAAAGAGAGTGTACAGAAAATGGTTATTTTCTGTAC -ACTCTCATCTTTAATAATATATTTTAAATGTTATTAACAAAACTAATTTAATAAGAGTCAAGCATAGTTT -ACATATGTATTATGTTTGAAACATATCTCTAATTACTTTTTACTAATATCATTTAAAATGTCTCGCAATT -CTTCAATTTCTTTGTTATTTAATTCTTCATTTTTCGCAAAATTCAGCACTAAACTTTTCATGTCCCCTCC -ATACAGTTTATTAAGAAAGGTTTTAGCAGTTTTCATTTTAATATCGTCTTCTTTAATATTTGATGAGTAA -AAATAAATATTCTCTGATTTGTATCGTTTTATAATCTCTTTTTTATATAGTCTTGTGATTAATGTTCTAA -TCGTTTTATCGCTAACTTCTTTATATTTTTGAATTTCAACTACAATTTCATTAGCTGATACTGATTTTTT -ACCCCATATTATATTCATAACATCCCATTCAGCCATAGATATTTCAACTTGCTTATTGGCCATTTAAAAC -ACCCATTTCTTTTAATATTTTTTCACTGATTAATTCAGCATTTTTCCCAGATGGCTTTCCATCTGATAAA -TGTGTAGCAAAATAATACTTATCATGATTTGTAATTACGTAACCTACAAACCACCCATTATTATACTTCC -CGTTTACTATACCTGTACCTGTTTTCCCATACAGTTCATACTTTTCATTTTTCTTAATCAATAATGAAGA -AGATAATTGATTCTTTGCTTTTTTACTAAAATGGTTATTTTGTTCCATCATATTTTTAAAAACTATTACT -TGTTCAAGATTAGATATTTTCAAACTATCTTCCATCCAATAGCTTTTATAACTTCCCAAATTTTTATTAC -CATAATTTAATTGCTTGAGTTGAGTCGCAGTATAGTTCTTTGGTATTTGATCGCTAATACGTTCGAAGTA -CCAATTAACTGAATTTTGCATTGCTGTATTTAAATCTTGTTCCTTATTCCAAGCATCAAAAGGGTAATGC -TTATGATTCCATGACATACGTGAATTTTCATCATTTATAATATGTCGGTCAAGTCCAAACATAGCTAAAT -AAATTTTATAAGTTGAATTAGGAGAATACCTTTTTCTACTTTCTTTTTCGTTATAAATATAGTATTTGTC -TTTCTTCATGCTGTACATGACGAAAGATCCACTATTTGAACCAAAAATTTTACTTTTATCTAAAATTTGG -TAATCGTTGTGTAAGGGCTTTTTATAATTATAATCAGTTATGGATTGCCCCATCAAAAACTGGCTTTGAA -TTACCATGAGCAAAAAAGTAAAAATACAAATAAAAATTAGAATTAATTTGGACTGTTTTTTCAGATTGGC -TTCTTTTATATTAATTAATCTTCTTTTGAGTAATGACTTTTTACCATTAAATGAATGGCTTAATATATTT -TTATTAAAAAATGGAACATTTAATACGGAGTCCATAATAGATTCCGCATAAGTTTTAAATTCATTTTTGT -TAATATTATTAAGGACAAATCTATCGGCTTCTACTTCATTGTCATGAATTATCTTTCTTTTTACAATATG -TACTAATGGATTGTAACTCATAATAATAGAGAAGATATTAAAGATAATTAAATGTAAAGTATCTCTATTT -TTAGCATGAGCATATTCATGCAATATTATATATTTTAGTCTTTTGTCAATTACACTTTTAAAATATGAAC -TAGGAATCAAAATAATATATTTCCCATACCAAAAAGTTATTGGAGATTGAATAGTCTCTGCTTTTCGAAT -CACAATATTTTTTTTATATTGATGGTTGAAAAGTATCGTATCTACTTTATTTTTTTCATTTTCGTTTAGA -TAAAGTGACTGTTTCTTTAAATATTTAAGATATAATAAGGATTTCAAAAATTTAAAACTTAAAATAATAA -CTAAAACTATCCAAACAACTGTGCAGATATTATCAATTGAATCCCAATTAAACTTATGGATATCTGTTGT -GAACTCTTGAATAGGTTTGGTGGTATTTATGTTATGGTTCAAGTCGTGTGACTTACTTTCAACTGTGGGC -GCTTGATTATTCACATTATTAAATTTAAAAAGAGAGAATTTAATAGGAATGAAAGGAATTAATCCTGCAA -GAAGAGTTAGATACCAAACTTTATAATTTAACATATAATTAAAATAGCGTTTTAATATGTACCTAAAAAA -TAATAACAATAGAAATATAAAACAAAAGCTTACTATGCTCATTATTAATAACTTAGCCATTTCAACACCT -TCTTTCAAATATTTATAATAAACTATTGACACCGATATTACAATTGTAATATTATTGATTTATAAAAATT -ACAACTGTAATATCGGAGGGTTTATTTTGAAAAAGTTAATATTTTTAATTGTAATTGCTTTAGTTTTAAG -TGCATGTAATTCAAACAGTTCACATGCCAAAGAGTTAAATGATTTAGAAAAAAAATATAATGCTCATATT -GGTGTTTATGCTTTAGATACTAAAAGTGGTAAGGAAGTAAAATTTAATTCAGATAAGAGATTTGCCTATG -CTTCAACTTCAAAAGCGATAAATAGTGCTATTTTGTTAGAACAAGTACCTTATAATAAGTTAAATAAAAA -AGTACATATTAACAAAGATGATATAGTTGCTTATTCTCCTATTTTAGAAAAATATGTAGGAAAAGATATC -ACTTTAAAAGCACTTATTGAGGCTTCAATGACATATAGTGATAATACAGCAAACAATAAAATTATAAAAG -AAATCGGTGGAATCAAAAAAGTTAAACAACGTCTAAAAGAACTAGGAGATAAAGTAACAAATCCAGTTAG -ATATGAGATAGAATTAAATTACTATTCACCAAAGAGCAAAAAAGATACTTCAACACCTGCTGCTTTCGGT -AAGACTTTAAATAAACTTATCGCAAATGGAAAATTAAGCAAAGAAAACAAAAAATTCTTACTTGATTTAA -TGTTAAATAATAAAAGCGGAGATACTTTAATTAAAGACGGTGTTCCAAAAGACTATAAGGTTGCTGATAA -AAGTGGTCAAGCAATAACATATGCTTCTAGAAATGATGTTGCTTTTGTTTATCCTAAGGGCCAATCTGAA -CCTATTGTTTTAGTCATTTTTACGAATAAAGACAATAAAAGTGATAAGCCAAATGATAAGTTGATAAGTG -AAACCGCCAAGAGTGTAATGAAGGAATTTTAATATTCTAAATGCATAATAAATACTGATAACATCTTATA -TTTTGTATTATATTTTGTATTATCGTTGACATGTATAATTTTGATATCAAAAACTGATTTTCCCTCTATT -ATTTTCGAGATTTATTTTCTTAATTCTCTTTAACAAACTAGAAATATTGTATATACAAAAAATTATAAAT -AATAGATGAATAGTTTAATTATAGGTGTTCATCAATCGAAAAAGCAACGTATCTTATTTAAAGTGCGTTG -CTTTTTTCTCATTTATAAGGTTAAATAATTCTCATATATCAAGCAAAGTGACAACCATAAAAGGTGAAGA -ACCTTTTTATATTCAAAATCAAAAAAGCGGACATATGAAAAGTGAAAAAATTCCATCTGTCGGGTTTATT -ACAGAACCAATATGCTTTATCTAAAGAACCATTATAGTACGAAAAAACACTTATGATTGTATGTGTACAT -ACCCTCATAAGTGCTCTATTTTTGTGAATGGAATTTCGCTTCCATACGATAAATACGTGACCCTTTATCC -GAAAATTTCTTTTCATATTCTGTTAAAATATTACTGCCATCGTCTTCTTGATGTAAATTTAGATTTATTT -TTGTAAAATACATTCCAAATTGAGACATACTTTCTAAACTGTAGGCAAATAGTCCTCTGTTATCAGTTTT -AAAGTGTAAATCTCCTTCATCATTTAAGATTTGTTGATACAACGCTAAAAACGTATGATACGTTAAACGT -CGTTTTGCATGACGATTTTTTGGCCATGGATCTGAAAAGTTCAAATAAATACGCGAAACTTCGCCGTTTT -TAAAATATTCATTTAATTCAATGGCATCATTACAAATAATCTTTAAATTTGTTAAACCCATCTCTTTAAC -TTTATCCAATACTTTATAAACGATACTTTTCTCACGTTCCATTGAAATATAGTTAATATGAGGATTTTGA -GCAGCTAATGTTGTAATAAACTGCCCCATACCCGAACCAATTTCAATGTGTATCGGTTGCGTTTTATCAA -ACCATTCAGTCATTTCCCCTGCATGTTGACCGTCCATGTCAACCAATTCAGGATGATCTTTTAAATAATC -TTCAGCCCATGGTTTGTATCGAACTCTCATATTTTATTCTCCTCTTAAATAAACATGTTACTATTCATAA -CTTCATTTAGGAATTTAAGCCAAGTGTTCATATCCTTATATCTTTTTTGCTCTTCATACCATTGAACAAG -ACCTATAGATTGAATTACCGTATACCATTTCATACGTTTATTTAAATTCAAGCTCTCTTGAACTCCATAT -GTTTCAAGCCATTCAGACCATTGTTGTTGTGGAACATAGTTGTAAAGCAGCATTCCGATATCAATTGCCG -GGTCTGCAATCATTGCACCTTCCCAATCGACTAAAAATAGTTCATCTCGATCAGATAATAACCAATTATT -ATGATTCACATCACCATGTACAACAGTGAAAAAACGCGAATCTAAACTCGGTATATGCTCTTCTAAATAG -GTTAATGATTTTCTCACAATATGATGTGTTAAAACTTCTCTTGATAAAGAGGCATTAATTTTATTAAGCA -TAATCTCAGGAGTAATAGGTTCCATTTCCATACGCTTTAACATACTCAATAAAGGTCTAGAATTGTGTAT -CTTCTTTAATAAATGTGCAACTCTTGTTTGCTTCATTTCATTTGAAGATAGTTCACGGCCATTTTTCCAA -TGTTGCGCTGTAACAACCTCGCCTGTTTCTATGCGTTTCGTCCATACTAATTTGGGCACAATACCTTCTG -CTGATAATGCCGCAATAAATGGATTTGAATTTCGTTTTAAAAACAACTTTTGTCCATCTTGTTCAGCCAT -ATATGCTTCACCAGATGCACCACCTGCAGAATCAAGTGTCCACCCTAATTGATAAAACTGCTCCAACTCG -TCCACCTCACTTTCAATTAGAAAATGGCTCTAGAAATAGGTTTTTCAAGAGCCATATATTCTAATTTATA -ACACCATACTGGTACAAATTTTATGTCCAGATAATTATTTTAAATCCTCAACCAATGCCTACATTACACG -ACTAAATTTAAATCGTAATGTCTGTCATTGACACCATACATTCTATAGTCACTTACTTGACATAAAATGT -TACCGTGTCTAAAACTACATGTTTTTGTAACTTTTGTAGGCGATAAACTCTAGTTTTCAAAATAATTGCT -ATCCCATTTTCATGGTTAACATAAATTTATGAACTGTAACATTTACGTACTTAGTAAAATATGATGCACA -TCATATTTGTAACTCATAGAAAATTTTATAATTTTTATCATTATATTTCAACTGAAAATGAGAAACAAAA -TGGCACTTTTTACTAATATGTGTTTTCTAAACAACACTTTTAAGCTTCGTTTTAAATTATAACATAATTC -ACTTACGAAAGTTGATAAATTTAAGTAATTTAATCTAAAAATATGATGATAGAATTTTAAATACTGTGTG -ACTCTATATACTTTTCAAATCCTTCTTGTAATTGACGTGTAATTGGGCCAACTTTACCATCATTAACTGG -TTCACCATCTAATTTAATAACAGGTGTAACCTCAGCTGAAGTACTTGAAACAATAACTTCATCTGCGTTT -CTCAAGAAATCTACAGTAAACGTTTCTTCTTTAAATGGGATGTTATAGTCTTCGGCAATTTTTTTAATTA -CAATTCGGGTAATACCATTAAGAATATAGTTGTTAATCGGATGTGTATAAATCACACCGTCTTTAATTGC -ATAAGCATTACTTGAAGATCCTTCAGTGACAGTTTCGCCTCGATGTTGGATTGCTTCAACTGCATTATAT -TTCACAGCATATTCTTTTGCTAATACATTTCCTAATAGGTTCAAGCTTTTAATGTCGCAACGTAACCATC -GGATATCTTCAACGGTAACACCATTCACACCATTTTCTAAATGATCATAAGGACGATCATAACTCTTAGT -ATAAGCAACAATTGCTGGTTCTACTTCAGGTGTCGGGAAGCTATGATTTCTTTCAGCTACACCTCGCGTT -GCTTGAATATAAATTGCCCCAGTTTCAATTTGATTCATATCAACTAATTTACGAGATAGTTCAATTAATT -CTTCTACAGAATAATTTAAATCTAAACCAATCTCATTGGCACTACGTAAAAATCTTTCATAATGTTCTGT -TACTGTAAATAACTTACCATTGTATACTCGAATGTATTCATAAATACCATCGCCAAATACGTATCCTCTG -TCGTTGTATGAAACCTTTGCTTCACTTGGACTTACAAACTCACCATTTAAAAAAATTTTTTCCATATATT -ATTCCTCCACGCATAATGAATAAATTGCTTCTAAGTAAATACTAGTTGCGTTAAATAACTGTTTTTTAGT -GATATATTCATTTTTCTGATGCATTAAATCTTCAGAATCACTAAACATTGCGCCAAATGCTACACCCTTG -TCTAAGTTTCTCGCATAAGTACCGCCACCTATAGTATAAGGTTCAGTCATATCATTTGTTTGATTTCTAT -ATGCAGTAACTAACTTTTGTACAAAAGGATCATTTTTATCAACATAATGTGGTGGTTGGACTTTACCTAA -TTTCACTTCAAAGCCATATTGTTGAATCTCATTTGCAAAACGATCCATAGCTTTTTCAAATTCAAATCCT -TCTGGGTAGCGCAAGTTGATACCGAAAAGACCCGCATTTTCATTATCATATGTAATAACACCAATGTTAG -TTGTCACATCACCCATGACATCTGTATGGAATTTCATTCCCATCTTTTCACCAAAATCTGAATTAAATAA -GTAGCGATTACTAAATGCTACAAACGCTTTTGCATTATTATCAAGATTTAATGATGCTAAGAATTTTAGT -AAGTAAAGACCCGCATTCACACCGATAGATGGGTCCATACCATGAACCGCTTTACCTTCAACTGTTAAAA -CTAGAATGCCACTATCAACAGTACTATCACCTTGTAAATGATTTTGTTCTAAAAAATACTCAAAGTCTTG -AATAACATCTGTCATATTTTCTTTAACAAGCACTCTTGCTTCTGCATGATCAGGTACCATGTTGTAACGT -TCACCAGATTTAAAAGTTATTAATTCATAATCAGGTTCATCTTGATCTTCAGCAAGCTTATTTTGAACTA -AGTCAAATGTTGTAATGCCTTTTTCACCATGAATACACGGAAATTCTGCATCTGGTGCAAAACCTAATGT -TGGCATTTCTTCTGTTTTAAAATAGCGATCCGTACATTTCCAATCAGATTCTTCATCCGTACCAATAATC -ATATGAATACGTTTCTTCCAATCCACATTCATATCTTCTAATATCTTAATTGCATAATAAGCAGCAATTG -TTGGACCTTTGTCATCAAGTGTACCTCTAGCTATGATAGCATCTTCTGTTACAACCGGCTCAAACGGATT -ACTATCCCATCCATCACCAGCAGGAACAACGTCAACATGACATAAGATACCTAATACGTCATTTCCTTTA -CCTGCCTCAATTCTTCCTGCAATATGATCCACATCATGTGTTGTAAATCCATCTCTATGTGCAATTTCAT -ACATGTAGTCTAATGCCTTACGAGGACCTGGACCAACTGGTGCGTCTTCTGATGCTTTTGCATCATCTCT -CACACTTTCAATTGCTAATAATCCTTTTAAGTCATTAATGATTTGATCTTCGTATTGTTGAACTTTTTCT -TTCCACATTCGAAATCGACTTCCTTTTTTCTATAAGTTAAATCCTATTTTACATGAAATGATATAAAAAC -TACAATAAGATGTCAGAAAATAATAAAAAGGAACAAAACAACGCTATCGATTTAACATAAAATTAATGAT -AACTGCTTTGTTCCTTTTCTGTATTAATTTAATTTAATATGCCAGTTCAATACCAACTTATTAATTGTAT -GCCTTATTCTTTATCAGACAATGCATTTTTATTCTTTTTTAAATCTTCTTCAGTGACGATACGTAAATTA -TTATTTGGTGCTGCGCCACCTTCATCATCAAATTTACCTTTTTCAATACTTTCGTCAGTCTTATTGTCAT -ATTCGGTAAATTTTGATTTTTCTTCTTCGAAAAATGCTTTTGGATTATTTTTTAATCTATTAGCATATTC -TTTCGGATTTGTTTTTACTTCTTTAATTGTTTCATTTGCAATTGTTCCTAATTGCGTCGCTTTATCCTTA -GCATTATCTTTATAGCTTTGAGGATCTTGTTTGTATTTATTATATTCTGCTTTCAGCTTGTCACGACTAT -CTTTACGTGTAACAAGTACAGCTGCTACAGCGCCACCTATACCTAAAATCGCTTTAAATAAATTACCTTT -TGCCATATCAATCGTCTCCCTTTTATTTATAATTTAATTTGTCAAAATCATTTTCAGTTAATAAACGATA -TTCTCCTGAATCTAAATTGCTATCCAATTCTAAATCAGCAATTTTGATACGTCTTAAATGTAATACCTCA -TTTTGAATGCTATGAAACATTCGTTTAACTTGATGATATTTTCCTTCATAAATTGTTACGTGTGACGTTT -GATTATCAATATAAGTTAATATTGCAGGCTTAACCTTGCCATCAGACAGTGTTATACCCTCTTTAAAAGC -TTGAATGTCTTCTTCAGTGATAGGATTTGCTGAAATAACTTCATATTTTTTAGAAACATGTTTGTTTGGA -CTCATTAATTCATGATTAAAATCACCATCATTCGTTATCAATAAAAGCCCTTCTGTATCTTTATCAAGAC -GACCAACCGGAAAAATATTTAAATGTTGGTATTCAGGTATTAAATCAATAACGGTTTTTGAATGATGATC -TTCAGTTGCCGATATATAACCTTTTGGCTTATTTAACATAATATAGACATTTTCAACGTATTCTATTAAT -TCTCCACGAACTGATATCTTATCGTTTTCTGGTTCTATATGTGTTTTTGGTGATTTAATTACTTGTTCGT -TGACATTTACAAGGCCTTTTTTAAGTAACTGTTTGACCTCATTACGTGTTCCGACGCCCATATTTGCTAA -AAATTTATCTATTCTCATCGTAAAAACCTAACTCTACGTCTTAATTTTTCAGGAATTTCACCTAAGAATT -CGTCCGCAAGACGCGTTTTAATTGTGATTGTACCGTAAATTAGAATACCAACTGTTACACCTAAAATGAT -AATAATTAAATATCCAAGTTTTGTTGGCTCTAAGAATAGGTTCGCAATGAAGAATACTGCTTCTACACCT -AACATCATAATAAATGAGTATAAGAATATTTTTGCGAAATGAATCCAGCTATAGCTAAATTTAAATTTCG -CGTATTTTTTAAGAATATAGAAGTTACAACCAATTGCGAATAATAATGCGATACTTGTGCTTAAAACAGC -CCCCGGCGTATGGAATAGCATAATTAATGGGTAGTTTAATGCTAATTTAATTGCAACAGAAGCTAAAATA -ACATAAACCGTTAACTTCTGCTTATCGATACCTTGTAACATTGACGCCGTTACACTTAATAGTGAAATTA -ATATTGCTACAGGCGCATAATAGAATAGCAAACGACTACCATCATGGTTAGGGTCATGACCTAAAACAAT -TGGATCGTAACCATAGAATACTGTGAATAACGGTTGTGCCAAGGCCATAATTCCAATACTAGCTGGAACA -GTTATAAACATTAATACACCAATAGATGTTCTAATTTGATGATGCATTTCATGTAAGCGACCTTCTGCAA -ATGTTTTTGTAATATAAGGAATTAAACTTACTGCAAAGCCAGCACTTAATGATGTCGGAATCATTACAAT -TTTATTAGTTGACATATTTAGCATATTAAAGAATATATCTTGTAACTGTGAAGGTATACCAACTAAAGAT -AAAGCACCGTTATGTGTAAATTGATCTACTAAGTTAAATAATGGATAATTCAAACTTACAATAACGAACG -GAATACTATAAGCAATAATTTCTTTATACATCTTGCCATATGACACATCTATATCTGTGTAATCAGATTC -GACCATACGATCAATATTATGCTTACGCTTTCTCCAATAATACCAGAGTGTGAATATACCAATAATCGCA -CCAACTGCTGCTGCAAAAGTAGCAATACCATTGGCTAATAAGATAGAACCATCAAAGACATTTAGTACTA -AATAACTTCCGATTAATATGAAAATCACGCGTGCAATTTGCTCAGTTACTTCCGATACCGCAGTAGGTCC -CATAGATTTATAACCTTGGAATATACCTCTCCATGTTGCTAATACAGGAATGAAGATGACTACCATACTA -ATGATTCTAATAATCCATGTAATGTCATCAACTGACCAACCATTTTTATCGTGAACATTTCTAGCTAAAG -TTAATTCAGAAATATATGGTGCTAGGAAATAAAGTACTAAGAAACCTAAAACACCGGTAATACTCATGAC -AATAAAACTAGATTTATAAAATTTCTGACTGACTTTATATGCACCAATCGCATTATACTTCGCTACATAT -TTAGAAGCAGCTAATGGTACACCTGCTGTCGCAACTGCAATTGCAATATTATATGGTGCATAAGCGTATG -TGAACGGCGCCATATTTTCTTGTCCACCAATTAAATAGTTGAATGGAATGATAAAAAGTACGCCTAACAC -CTTTGTAATCAAAATACTAATTGTAATTAAAAAGGTCCCACGCACCATTTCTTTACTTTCACTCATTACG -TATCTCCCTATCTCATGTTTATTAATGTTTTGTAAATAAAAAGCTATTTCTCTGTAAAATCATTTTCATT -ATTATGAATATATCACAAAACTTTATTTCATTGTCGTATATTCAATGAAATATCATAACAAAAATAATAA -CGTGTTGTCACTGAATACTCAAAGTTGCTTTGAAATTCATAAATTTTCATATTGTCATTATACTACTAAT -GCCAATAAATGGCGGACAACTCTTAAAATAATAATAGCGTTCGAATAAATGCTTATCCTTTTATGAAACA -CACATTATAAATATATTCAGCGCGAGTGTCATTTCATAACACAAGAGATATAGCAAAGTTTAAAAAAGTA -CTATAAAATAGCAATTGAATGTCCAGTAACAAATTTGGAGGAAGCGTATATGTATCAAACAATTATTATC -GGAGGCGGACCTAGCGGCTTAATGGCGGCAGTAGCTGCAAGCGAACAAAATGACAACGTTCTACTCATCG -AAAAAAAGAAAGGTCTAGGTCGTAAACTCAAAATATCTGGTGGCGGTAGATGTAACGTAACTAATCGATT -ACCCTATGCTGAAATTATTAAGAACATTCCTGGAAATGGGAAATTTTTATATAGTCCCTTTTCAATTATT -GATAATGAATCCATCATAGATTTTTTTGAGTCTAGGGGTGTTAAATTAAAAGAAGAAGATCACGGTCGTA -TGTTTCCAGTTTCCAATAAGGCACAAGACGTCGTTGATACTTTAGTGACAACTATAGAAAATCAACATGT -AACGATTAAAGAAGAAGAAGCTGTTAGTAGAATCGAAGTTAATACAGACCAAACTTTCACTGTACATACT -CAAAATAATAGTTATGAAAGCCATTCGCTAGTAATTGCTACAGGTGGTACAAGTGTCCCTCAAACTGGTT -CAACAGGTGATGGTTATAAGTTTGCACAAGATTTAGGTCATACCATTACGGAGTTATTCCCGACCGAAGT -TCCAATTACATCAGCTGAACCTTTCATTAAATCCAATCGTCTAAAAGGCTTAAGTTTAAAAGATGTTGAA -TTGTCAGTACTTAAGAAAAATGGTAAAAAACGCATCAGTCATCAAATGGATATGTTATTTACTCATTTTG -GTATCAGTGGTCCAGCTGCATTAAGATGTAGTCAGTTTGTTTATAAAGAACAAAAAAATCAAAAGACACA -GCATATTTCAATGGCAATCGATACATTTCCTGAATTAAACCATGAACAATTAAAACAACACATCACATCA -TTATTATCGGACACACCAGATAAAATCATTAAAAACAGCTTGCATGGACTAATTGAAGAGCGCTACTTAT -TGTTCATGCTGGAACAAGCTGAAATCGATGAAAATACCACATCACATCACTTATCAAATCAACAATTGAA -CGACTTAGTAAATATGTTTAAAGGGTTTGTATTTAAGGTAAACGGGACATTACCTATAGATAAGGCATTT -GTCACAGGTGGTGGTGTGTCACTAAAAGAAATTCAACCTAAAACCATGATGTCTAAATTAGTTCCTGGAT -TATTTTTATGTGGTGAAGTATTAGACATACATGGTTATACTGGTGGTTATAATATTACAAGTGCACTCGT -AACAGGACATGTCGCTGGATTATATGCCGGTCATTACTCACATGCATCAATGGAATAATAGTATAAAATT -GGGTTCGATTCTCTCTAGTAGATCAACCTTTTCATTCAATTAAAAATGACCTTAATATAACTGAGTCACT -AAAAAGTGTCGTTATATTAAGGTCTTTTTGTTTATTATGATTCTTTTTCTTTTTTAGAACGTCTTCTAGC -TAATAATGCTGCGCCTGTAATTAGTGCTAATTCTTTTAATGGTAAATCCATTTCTTCAGAACCAGTATTT -GGAAGTTCTTTTACAACTTTTCGCACTTCTTGTTTATCTTCTTTTTTAATAGGCGTACAAACTTTTGGAG -CAGGTTGCCCCACTTTTGGTGACGCTTTTATCACTTCAGCAGGTAATTTAATTGCTAAAATTTCATCAAT -AATGAGTTGCGTATCTTTTTTGATGTCATTTAATGTCGCATCTTCATCAACCATTCTATTGCCATCTGCA -ACATATTGATCAATTAATGCTTTTACTTTAGCTAATTGTTCTGGTGTTGCGATCGCTTTGAATTTCGCAT -ATGTTTGTTGAGCAATGTTATCAATGCGCAGTAAGCTATTTTCTTTTTCAGTAATTACTGCTTCTATATC -GCCTAATGCAACATTAAATCGTTTTAAAACTGCATCAACATCAGCATTAGTGCGTGCTGTTTTTAATTCT -TCATCCATTTGTAATTTTAATGCAGTTATAGCTTTTAATGCATCAGCCTTATTACGATCACTTACTTTTC -GATAATTTTGCACTAAATGTGTAACACGTGCAAGATCATCATTAATCGTTTTTTCAGCATCTGGCTTTTT -AATAGGATGTACGTCTAAATCATGTATTGTTTGTAGATTTAATGTTGCTGTTTTATCAACTTGTGCATTG -CTACGATCTTGATCAATTTGTCCAATAGCAGTGTCATAAATGTTTTGTAACTGTGCTAAAATACTATTTC -TTTCTTCTACTGTTGCTTGAACATTCGCTTCAATTGCTTGTTTCTTATCGTTGAATAATGTTGTTAATTG -TTCTCGCGCAGTTGCTTTTTTATTAATAACAGGTTCGATTTCACGAATTTCGTTTTTCCCATCATGCAAT -AAATATGCCACATCAGCATTAGTCACTGCACCAGCAATTTGTTGTTTAGCTTTAATTAACTCTTTTTCAA -CTTGTACTATTGCAGCATTTTGTTCTTCATCTGTCGCTTCGTTATTTGCTTTAATTAAATTAATTTTATT -TGTAGCGATATTTTGAATTTGTTGTAATGCTGTTGCTTTAACTGTTGTCGCTGGTTTAATTTTTGAAATA -ATATTTTGAGCATCGATACTATTTTGATTAACTTGCGCAGTCTTATCTGCGTGATTGATCTGATCAATAG -CTTGATTAAGTGCTTGTTCTACTAAATGTTTAGCAGCTAATCTTTCTTCTTCGGTAGATAAATCACTTTG -ATCAATAAGTGCATTTTGAGCTTCAGCTTTTGCGCTGACAGATTGACGCGCTGCTGGTTTAACTTGAACT -TTAGGTAAAATCACTTTGATGTTGTTGTTACCATCAGCCTCAGTTTGATCCACTTCTGCATTCGTTTTGT -TTTGTGCAATATCATTTTTAATTGCATTAACAATTTTATTTAACGCAGCAATAGCAACATTTCGTTCATC -TTGCGTTGTATCTAGCGTATTTCGTATTGCATCGAGTTGATTATTATTACTTTCATCAATGTTATCCAAC -GCTGCACGTTTGCGTCTAACTTTCGGTTTAATTTGTTCGATTGCCTTAATCGTTTGGTTTCTAACATCAT -TGACAGCTGCATCTTGTGTCGTATTGTCTATATCTTGTTGACCTTGTTTAAGTGTGTCGTTTATTTGTTG -GTTTGCTTCATCTAATTCATCTGTCGTAGCATGTGGTGTATCTTTTATAGATTCTACTTGGTTATCTGCG -CTCGCTTTTATGGCTTCTTGAGCTTCAGGTTTAACCACAATGTGCGGTTCTACGCCTTTTAACGTAGCAA -TACCATTTGATTCAACACGTTTCACATCATTATTCGCTATTGCTTGATTAATGTTTTGTAATGCACGTTT -TTCATTATTCGCTAATTGATTTAAAGCAACTTGTTTTTCTTCATCAGTCGCATGTTCCGCTTGCTCAATT -TCGTGCTTTTTAGCTTCATATTGTTGCTTAACTGCATCTCTAGCAGCTGCTCTAACAATATGGTCAGGCG -TCACTAATGCAATGTCGTCAAGCGCTTGATTTGTTGAGTCATTAACTTGCTGATTTGTTCTATCATTCGT -GATATTTGTCATAGCTTTAGCAACTAAATCATTGATTTTATCTAACGCCGCTTGTCTTTCTTCTGCTGTC -GCTTCTTTATCTTGATTAATTTGCGCACGTAATTCATTCGCTTTTTGATTGATTTTTTCACGTGCTGCTG -GTTTAATTTTTGTTTCAGGTTGAATAATTTTAATCGCTGATACACCATTTGTTGCCGCTTGATTCACCTG -ACTATTCGTTTGAGCTTGGTCAATAGCTGCAAGTGCTTTTTCTTTTTCTTTAGCTAATGCTTGTAAAGCA -ACTTCTTTCTCATTATCTGTTGAATCAAGACTATTATCAATTTGCTGTTGCTTTTCTTTAACAGCTTTTT -CAATATCTGCAATTGCCTTTGGTTTAATTACTACTTCAGCTTCAACATTATCTATAGCATTAATCGCTTG -ATTTGTAGTTGCGTCTACCTGATCATTTGTTTGGTTTTGATTAATTTGATTAAACGCTTGATCTTTAAGT -TGATTGATTTGATTAACTGCAGCCTGCTTTTCTTCGTCAGTTGCATTAGGTGTTTGTTTAACCGCTTCAA -TACGCTTCGCTACTTCAGCAGTGATTTTATCTCGCGCTGCTTGTTTTTTTACAACGTCAACTTGAACAGC -ATCGATATTATTCTCTGCCACTGTCGCAGCTTGGTCTACTTCCGCATTTGTATTTGCTTGTTTAATACTT -TCAATAGCTTGTTGTCTGTCTTGATTTAAAGTATTGATCGCAGCATTTTTCTCATCATCTGTTGCATCTG -GTGTAGCATTGATTTCAACTAATTTAGCACTATAATGCTGATTGGTTTGTGCTAATGCTGCAGGTTTTTT -TACAATATTTGGCTGAATCGCATTAATTGCTTTTGTACCTAATTGTTGTGCTTGATCTACTTCTGCATTA -GTATCAGCTTGATTTATATTATTAATTGCCGTTGCTAAATCTTGGTCTACTTGATTTAATGCTACTTGCT -TTTCTTCAGTGGTTGCATTTGTATTTTGATTAATTTCTTGTTTTTTTGCAGTTGCTAAGTCCGTTAATAC -ACCTGTAGCAGTTTGTTTCTTCGTTACATGCGGTTGAACTGCACCGATTTGATTGACTGCATCGTCTCTA -ATACTATTGACCATCGCAGTAGTAGACGTCACACCAATATCATTTAATGCTCTATTTTTAAGTGTATTGA -CACGATTTATCGCTTCTTGTTTCTCTTCTCGAGTCGCGCCAGGTGTAGCATTGATATTTGTTATCGCCTC -TCGCGCTTTTTCATTTACAGCATTGCGTGCATCCGTTTTAACTTGTGTTGCCGGTTGAATCACAACTATA -TTTTGTGTGCCCTGATCTTTTGCTTGTGCAACTTCTTGATTCGTATCTGCTGCATTAATATTTTGCTTCG -CTGTGGCTACAGCTTGATCAAGCAATTGTTGTGCTGCTTGTTGCTCTTCTAAGGTCGCATCATTATTATT -AAATATCGCATTATGTTGCGTTTCCGCACTTTGATCAATAGCGTTTTTAGCATCTGTTTTAACCTTTGTA -GCTGGTTCAATGGCTTGTATACCTTGAATTGCATTTGTCTTTACTTGCTCAACATCAGCATTGGTATTAG -CATTTAATATATTAGTATTCGCAACAGCTACAGCAGCATTTACTTTCTCTATTGCTGCTTGTCTTTCTTC -TTGAGTCGCATCAGGATTTGCATTGATCTCTGCGATATGCTGTTGTGCATCATGTGATACGGCATCTCTT -GCTGCTTGCTTGACAACAGTTACAGGCGCAATAGGATTAATGGCATTCAGACCATCACCTTTGGCAGTAT -CTACATCATCATTGGTTGTCGCTTGATTGATTTGTTCTAATGCGTGGTTCGTGGCTTGCGTTAATTCATT -CAATGCTGCATTTTTCTCTTCTTGTGTTGCTTCTCTATTGCTATTTATTTGTTGTCGTTTCGTTGCTGTC -GCTTGATTAATTGCATCTCTTGCAGCTTGTTTGTGTGTCACTTGTGGCGCAACTGCACCAATTGTATTAA -TACCATTATTTTTAGCTGTTTCAACATCAGCATTGGTAGTAGCATTCGTAACATTATCAATAGCATCTGT -TTCATCCGTTGTTAATTGATTTAATGCATCTTGAATTTCATCTTGAGTAGCATCTGGCGTGTGATTGATA -ATTTCTCTTTGTTTCGCTGCTTTATCACGTATAGCTTGTTTAGCATTTGGTTTAACAACTGGTGTTGCAG -TGTCTCCACTTAAAGTCTGTATACCTTGATCTTTAATTCTAGTAACGCCATCATCAGTCGTTTGGTCACC -AATATTCCCAATAATTTCATTTTTATGTTCCTCGATGACTTGAATCGCTGCTTGTTTTTCTTCATCTGTC -AGTTCATCATTTTGGTTAACTAAATCTTCCATGTCATCAACTTTTCTATTAACGGCATTTTCAGCGTCAA -CACTGCGAATTAACGTATGTTGCATCTGATTTGCTAATGAATCGATATCTGCTTGAGAAACTCTTTTGTT -TAAAGGTACATTGTTACGGTTTTCATCTAAAATTGTTTGTGCGCGTCTTTTAAGATCATTAAAAATATCT -AATGATGCAAATGTATAATCCGCTTGTTGAATTCGTCTATCGACTTCGGCTTGCAATGCGTCTTTATTCA -TGATGATATCAATTGTATATGGATTTGTACTTACAGTATGACTTTCAGCAGGTGAATTAATAAAATCTTG -TGAATATGTTTTATACGTTAATGTATCGTTAAATGTTACTGTTCTTGGTGTTGGCACATTGTTCACACGT -AGCTTATACTTCAAATCCAATATTTTATCAGGCATTAGTCGTGCCGGCGAATTCCCTGTACCTCCACCAG -TACTTTTAATTGTAATAATTCGATTTGCTGCGTCATACGTCACATTCATATCATTAATATCAACACCTGA -ATTACCGCTAGGAAAATCTTTAGTCAATGAATTATTTACATATTCAACACCTTCAGGTAATTGAATTTTA -TATACAAAATCATCTGTATTGAATGAAGCGCCAAAGTTACCATTATTCTTTAATGACGTTGTAACTGTAA -ATTCTTTATTATTTGTTGCTGTTGGCTCCATTGTACGTCTTTCAACATAGACATGTGACCCAGAATGAAG -ACCGATTGAGTCTACAAAGTCATAGTATTTATATCCATCTCGTAATTGATAAATACCACGTGCATCTGTT -ATTGCGTCATTTTTAGGTACAAATTGAATTTTTAGATGACTAACATTTTCAGGTACTTTTAATAAGCGCC -AAATCGGACCATAAGCAACTACTTTTTCACCAATAACAGTATCGTTATCAGCATTTTTAATGATTAAATT -TGTCATACCTTGATAGTTTTTAGTAGTCATAGTATTAAATTCAAAGATTAATTCAGAATTCGGATTTACT -GTTAATGTTTTCTCGATACCATTAAAATCGCCATGATCATTTGTATCATTTCCTCTAATACGACCCAATG -CAATTACATTGCCTTGCGCTTGATAGTTCTTGGCATCTCCTGAATCAAACATGCTCGTTCTTACCATTGC -ATGACTAAACACCCCTACTTTACCACCATTAATCAGTGTGTAGCCTGGTAAATTATCAACAACAGTTACT -GTAGGCACAGAACGGTTCGTACTTGGTCTAATGTTGTTATCATCAAATGAAAGCACTTCGTTAGGTGCAT -TTTGTCCTATATTATTGGCATTGGGATCAGTTGTTGGCGTGTATGGCGCTGTAATTGCAACTGGTGCACT -ACCATTTCCTGCCGTTGGATCTGCTGGTGTAGCCGTTGGATCTGCTGGTGTTGCATTAGGATCTGTTGGC -GCAGCACGTCTGCTTCTCTTTTTCGGTCTATTAGATGCTTCTTCAGCAATCGCAACTAACTCTGGCTTAT -CAGACGAATGACGAACATCTTCTTGAATTTCTTTTAAAGTCAGATGACGCGCTGAATCATTGTTATCTGT -ATTATTAGGCACGTTTAATGTATTGTTATTTGATGCTAAATTATTATTTGTATTCGCCGCTGGCTCTGTT -GCTGTTGAATTAGCATTAGAATTATTATTATTTTGCGCAGGCGACGCGCTAGGCTGTATTGGAGCAGGCC -CGACTTGATTTGCCACATCAACGTTTTGATGATTAGTCAATGCTTGATTTGTTGATGTATTGTCTGTTGC -ATGTGCATTAGGAGTATTTTGCGAATCATTTACTATGTCTCGATTAGTATCGGCATTTGTATTTTGTGAG -TTGCCAGGTAATGCTTGATTTGAACCACCTTGCACATTATGATCCGTAGTTAAAGCTTGTGCACCATTTG -GGTTTGAAAGTAATAAAACTGTCCCGATTAAAGTAGAGAATATCCCTACTTTATATTTTCTAATACTATA -TTTATTTTTCTTTAACAAATTCATTTCGTTTTCCTCCTGGTTGTCTATTCTCTGCTGTGTTGTTTAGAAT -TATGCTAAAAATATAAGCTCCCCGATTATGTTTATAACCATATTATTTTGTACAACATTTTAAGTTCACT -CAATTTTATCATCATCATTTTATAAAATAAAGTTTTATTTTATTACAATTTAGTTTCCGTTTTGTAATTA -ATCACTTAAAAAATCATAACAAGAACGCTTTAGATTGTTTTGTAACAGAAAGCAATTCATAGCAAAAAAC -ACCAAGCAACCGAAACGTTACTTGGTGTCATTACAAATGTAATATTATTTTAAATTATGTCACTACTTTA -AATACTTTTTATTTCCAAACCTTCATCGCCCCAAGCGTGCATGCCGCCTTCGACATTTACGGCATCAATG -CCATTTGCCTCTAAATATTCTACAACTTTAGCGCTTCGAACTCCACCAGCACATACAATATAGTATGTCT -CTTTTTTGTTAAATGCATTTAAATTGTCGGGAATGGTATCCATTGGAATTAACTTTGCATTAGGTATATA -TCCCATTGCTGTTTCTTCGTCAGTACGAACATCAACAATTTGAACTGGTTTAGATTCTAAAAGTTTGGTT -TTTAATTCATCTGTAGTAATTGACTTCATTTTAAAGTCCTCCTTATAACATTATTTAGCTACAATATTGA -CTAATTTTTGAGGAACAGCGATGACTTTCATGATGTCTTTACCTTCAATACTCGCTTTAACATTGTCATT -AGATAAGGCAATTTCTTGCATTTCTTCTTTTGATGTATCTTTAGCAATTTTAATTTTAGCTCTCAATTTA -CCATTAACTTGAACAACGATTTCTACTTCATCATCTACAAGTAGTGCTTCGTCATAAGTTGGCCAAGGTT -GGTACGTAATAGACTCTTCATGTCCTAATTTTGACCATAATTCTTCACCGATATGTGGTGCAATAGGTGC -TAACATTTTAACGAAGCCTTCAATGTAAGGTTTATAAACTTCATCAACTTTATAACACTCATTAATAAAT -ACCATTAATTGACTAATAGCAGTATTAAATCCTAATGTTTCAAAGTCTTCTGTTACCTTTTTAACAGTTT -GGTTATAAACTTTATCTAAAGATTTATTATTTGTAGTTACTATTTTTGAACTTAATGTTCCATCTTCATT -TACCATTAAACGCCATACACGATCTAAGAATCGACGAGACCCATCTAATCCTTTTTCACTCCATGCAATT -GCAGCATCTAAAGGTCCCATAAACATTTCGTAAAGACGTAAAGTATCTGCCCCATGAGATTGTACTATAT -CATCAGGATTGATTACATTTCCTTTAGATTTACTCATCTTCTCATTACCTTCTCCTAAAATCATACCTTG -GTTAAATAATTTTTGGAAAGGTTCTTTTGTAGGTACGATACCTAAATCATAAAGTACTTTATGCCAAAAT -CTTGCATACAATAAGTGAAGCACTGCATGTTCTACGCCACCGATATATAAATCAACAGGTAACCAATGTT -TTAATTTTTCAGGATCTGCTAACATATTTTCATTTTTAGGATCGATGTAACGTAAATAATACCAACAACT -ACCTGCCCATTGTGGCATTGTATTTGTTTCACGACGCCCTTTCATACCTGTTTTTTCATCTACAACATTT -ACAAATGAATCAATATTAGCTAGTGGTGACTCACCAGTCCCTGATGGCTTGATTTCATCTGTTTCAGGTA -ACAACAATGGTAGCTCTTCTTCAGGAACAGTTGTCATTGTTCCATCTTCCCAATGAATGACAGGAATTGG -TTCGCCCCAATAACGCTGACGACTGAATAACCAATCTCTTAATTTGTAATTAACTTTCTTTTCGCCAGCA -CCTTTTTTCTCTAATAATTGAATAGCTTTAGTAATTGCCGCTTCATTTTCTAAACCATCAAGTTCACCAG -AATTAATATGTTTACCTTCACCAGTGTATGCCGCTTCTTCAACATTTCCACCTTCAATGACTTCAATGAT -TGGCAAATCAAACTTTTTAGCAAATTCATAATCTCTGTCATCATGCGCTGGTACTGCCATAATTGCACCA -GTACCATATGTTGATAATACATAATCAGCAATCCAAATTTGTACTTTTTCACCAGATAAAGGATTAATTG -CATATGCACCAGTAAACACACCTGATTTATCTTTTGCTAAATCTGTACGTTCTAAATCAGACTTTTTAGA -AGCTTCTGTTTGATACGCTTTCACTTGATCTTTATATTCATCAGTTGTAATTGAATCAACCAATGCATGC -TCAGGACTTAAGACTAAGAATGATGCACCATAGATTGTATCTGGTCTAGTCGTAAATACTTCTACTTTTC -CTTCCGAATTATCTACATCAAATGAAACTTTGGCACCTTCTGAACGTCCAATCCAGTTACGTTGCATATC -TTTTAAAGACTCAGGCCAATCTAAATCATCTAAATCTGCTAATAATTGATCTGCATATTCTGTAATTTTA -AGTACCCATTGTTTCATTGGTTTACGATAAACTGGGTGACCGCCACGTTCAGATACACCGTCAATCACTT -CTTCGTTAGATAAGACAGTACCTAATGCAGGACACCAGTTAACTGCAACTTCGTCAACGTATGCTAAACC -TTTGTTATATAACTGTATGAAAATCCACTGTGTCCATTTATAGTATTCTGGATCTGTTGTATTAACTTCA -CGATCCCAATCATAACTGAACCCTAATTCTTTAATTTGTCGTTTAAAAGTTTGGATATTTTTCTTTGTAA -ATTCACGTGGGTCGTTACCAGTATCTAAAGCATATTGCTCTGCTGGTAATCCGAATGCATCCCACCCCAT -CGGATGTAATACATTATATCCTTGCATTCTCTTATATCTTGAAATGATATCTGTTGCTGTATAGCCTTCA -GGATGTCCAACATGTAAACCAGCACCTGATGGGTATGGAAACATGTCTAAAGCATAAAATTTCTTTTGAC -CTAAGTTATCATTTGTTTTAAATGTTTTATTTTCGTCCCAATAGTCTTGCCATTTCTTTTCAATTTGATT -GTGGTTGTAATTCAACACATTTCCTCCTATTCAATAAAAAAAGACACCTCTAACTATTCTATTTACATAG -GGACGACATTTGCCGCGTTACCACCCTATTTCACAAAAATTGTGCACTCATTTTAATAGTAAGAGATGTC -ATTCATTCAATTTAAAATTAATACGATTTACATTTAGTCCTTAACACTAGCTCTCAGCATCACTAGCTTT -CTGTAGAAAAGCTCCAAACGAAATTAAATTATACAAATTAATATTATGTTATAACGACATTTATTTCAAG -TCTATAACGTTAATTCTATTTACTCATTATGCATCTATTTTTTTAGGTTGCGTATTATTCTCCTTGAAAA -CCATTAATAATATTAATGCAAATACAAGTAGTACCATCATACCGATAAACATCATGCGCATATTAAATGC -ATCAACTAATACACCACCAAGAAATGGACCGAATGCTTTTCCTACTGTAGCAGCTGAATTCACAAAACCT -TGGTACTGTCCTTGCTTACCATCTGGCGCTAACTGATTGGCTATAGTTGGAACTGCAGGCCATACAAACA -TTTCTCCAAAAGTTAAAATAATCATACCGACAACAAATATTGTAAAGTTTTCGGCAAAACTCGTGACAAA -GAACGACAACATAAAAATGATGATGCCGACAAACATTTGCTTCTTTAAGTTTCCTTTTAACAGATAGAGA -ATTGGTTTAATTAATGGTTGTGCTACTAAAATCATTATTCCGTTAATTGTCCATAAAACACTATATTGTG -CCATTGAAATATTAATCGATTGTGTAAATGATGCGATTGTAGACTCCCATTGAATATACGCAACCCAACA -AATTGCAAACATTGCACAAATTAGTACTAATGAAATAAATCTTGCTTTATTCTTTTTACCAGTAATATCT -AAATGAGTTGGATATTTAACTTTCGCATTAATTTCAATATTAAATTGCGTTACCGCGACAAGTGCAAACA -CAACATACATAATAAGATTGGCTAAAAAGATATAGTTAAAGCTAAATTCTGCGACAAAGCCGCCCATTGC -AGCGCCGACAGCAACACCAATATTTTGCGCTAAGTATATCGCATTAAACGTTTGTCTTCCGCCATTCGGC -CACACTGCTCCAGCCATTGCGTATATCGCAGGAATAATCATTCCGCCACCAAAGCCTAACATTACAAGCC -ATACAGCATACCAAGGCCACCCGTGAAAGAAATTAAGTAGCGTTGTACTACAAAGACAAGTGAAAGTTCC -AATTAAAATCGTCTTGTATCCACCTAATTTATCAAATAGTGAACCACCTAATAAGTTTCCAATAACCATG -CCAAATGAATTTATCATTAGCACTAAACCAGCAACAGTTAAACTTTTTCCAAGTTCTTGTTTCATATAAA -TTGTATTTAAAGGCCACAAAAAACTGGAACCAGTAATATTTAACGCCATGCCAATTACTAGCCACCAGAC -TGATTTAGGTATATTCATATTTCATAGTTCCTCTCTCTTTTTTGTCAAACTATAATAAACACTATAACAT -TAAAATATGTTAAAATCTGTACTTAGAACTCTTTTTTTTATAGAAAGGAAAATGACTTATGGGCAATCAT -TTCCAATACGCTTTTGAAAACAAACGTTATCACACATGGAATTACCATTTAAAAAATAAATTTGGACAAA -AAATATTTAAAGTTGCATTGGATGGCGGGTTTGACTGTCCTAATCGTGATGGCACTGTAGCACATGGTGG -ATGTACATTTTGTTCTGCTGCAGGTAGTGGAGACTTTGCAGGTAATCGTGCAGATTCAATTGCAGTACAA -TTTAAAGAAATTAAGGAAAAGATGCATGAGAAATGGCACGAAGGAAAATATATTGCTTATTTTCAGGCAT -TTACAAATACACATGCACCAGTTGAAGTGTTAAAAGAAAAATTCGAACCTGTACTTAAAGAACCGGGTGT -TGTGGGATTATCTATTGGTACGCGTCCTGACTGTCTACCAGACGATGTTGTCGAATATTTAGCAGATTTG -AATCAACGAACATATTTATGGGTTGAATTGGGACTACAAACAATCCATCAATCAACATCTGATTTAATCA -ATCGTGCCCATGATATGCAAACTTATTATGATGGCGTGGCAAAATTACGTAAACATAATATCAATGTATG -TACACACATCATTAATGGCTTACCTGGCGAAGACTATGACATGATGATGGCTACTGCCAAAGAAGTTGCA -CAAATGGATGTACAAGGTATTAAAATTCATTTACTTCATTTGTTAAAAGGTACACCGATGGTAAAACAAT -ATGATAAAGGTTTATTAACTTTTATGACTCAAGAAGAATACACAAACCTAGTTGTAGACCAATTAGAAGT -GATTCCCCCTGAAATGATCGTTCACCGAATTACCGGTGATGGTCCAATAGATATCATGGTCGGTCCAATG -TGGAGTGTTAATAAATGGGAAGTATTAAATGGCATCGACGCTGAATTAGCACGTAGAAATTCTTATCAAG -GCTTGCGTTACAAGTCTAAGGTGAAGCAATGAAATTAGAACGAATACTCCCCTTTTCAAAAACACTTATT -AAACAACATATAACACCAGAAAGTATTGTTGTAGACGCAACTTGCGGTAACGGCAATGACACTTTATTTT -TAGCCGAACAAGTACCAGAAGGACATGTTTATGGTTTCGACATTCAAGATTTAGCTTTGGAAAATACACG -TGATAAAGTTAAGGATTTCAATCATGTTTCTTTAGTAAAAGATGGACATGAAAATATTGAACATCATATA -AATGATGCACATAAAGGTCATATTGATGCAGCCATTTTTAACCTAGGTTATTTGCCTAAAGGTGATAAAT -CTATCGTGACAAAGCCTGACACGACAATCCAAGCTATTAATGCGTTATTATCTTTAATGTCAACCGAAGG -TATTATCGTATTAGTTATCTATCATGGTCATAGTGAAGGCCAACTTGAAAAGCAAGCTTTGCTTGATTAT -TTGAGTACTTTGGAGCAAAAGCATGCGCAAGTTTTGAAATATCAATTTTTAAACCAACGTAATCATGCTC -CATTCATTTGTGCCATAGAAAAAATTTCTTAAACATTTGCTGCGCTATACTTTTTTATAATTTAGGATTG -AGTAGCTAACATTTGAAAAAAATATCAACGACAAAAAGAGGTTTTCAACTTAATGAAAACCTCTTTTTAT -GCTATTAAACTTACACAGCAATAATTGCGTTTAAACTATTTTGCATTGCTGTTGCTCTACTTGCAATCGC -ATCACTGATGAAATTCAACAACTCTACTTTCTCTTGTTGTAACTTTTCATTGAAATGAATAATAACTGTT -CTTTCATCGTCAACAGGACGCTCTTTGTAAATCCATTCTAATTCAACTAAATTATTATACGTTCTAGTAC -GCTTATACGGTTTAACTTCAACAAATCTGTCCATTTCTTTAAGCGTCATAGAACCTTTTTGCCATAAAGT -TAGTAAAATTAAAATTTCTTCTCTAGACATTTTGTACTCGCTTTCAATCTCGCTGAAAATTGAGTTAATG -TCACCCAAAAGTGTTTCTAATTGCAAAATCCCAAATACAGTATCGTTATTTACTTTTTTCATGCTATACA -TCTCCCAATTAATAATCACATATTTAGCTACCATACAAGTATTAACAAACATCCCAACAATCCCAAAACT -TATATGTGCTAACTTATGCATAAAACTACAAGTGTAAATAAACTTGCTTTCTATTCAATTGTCTAAGTTG -AATAAAATTAAATAAGTATAAAAACCAATAATCACTAGAGTTAATATTTAGAAATAAGATAATAGTACAT -AAAACAAATCACTCTATTACATATTAATTTTATAATTTATATACAAAGAAAATATATCAATATTACCATT -AAATTGCAACAATTCTACATATATTTCCTCAAAAAAGATACGCATTGAATTTTTATTACATATAACTCTC -ATGAAAATTGATTAAACTAAATTAATTAGTTACCTTTAAATTTAACAAATTAAATCAAACCGAATGAGAC -TAAATTGGTTATTTTTCAAGATATGATTTGCATAAATCAAAACATTTCTTACAAATCAAATGTGTATAAA -ATGTGATATACATTCTCAACCTTAAAAAAGTTTAAAAAAAAGATGAGCATCTACTGTCTCACCTTTTTAG -AATATTAAATTTCTACAATTTCGTCATCTTCAACAATAAAGCCCATTGTATTGACGCTATTATTTAAGAA -AGTCAGAATATAACGCATTACTTCATCGCGTTCTGGCTCATTGTGAACCTCGTGGTAAAAACCTTGCCAA -GCTTTAAAATATAATTCAGGTGTTTGATATTTTTCTTTAAACTCATCAATTGCCCTAGTTTCAACAATTA -AATCCTTCGTTCCATACATTAATAGTGTTGGCATTGGTTGAATGTCATGAATATGAGCCATCGTATCTTT -CATCGTCTCATTAATTGTGTTATACCAATGATACGTTGCTTTTTTTAACATTAAACCATCGTTAACTGTT -TCTTCAACAATTTCTAAATTACGTGTTAAATCTTTTGGTTCTACACCAACATTAAAACGTGTGTCTTTTG -AAATTTTACCTATATTTGAAACAAGTTTATCTTTACGATTTTTTCCATTCTTTTGAAGTTCTAGCATAGG -AGAAATTAACATCATCCCCTCGATTGGCAATTCTACTTTTTCAAGTAAATTTAATAAAATCAAACCGCCA -AGTCCTACCCCTAATACATAAGTAGGAATTTTATATTCATTAGCTATCTTTAACCAGTCTAGCAAACTTT -CGTGATACGTTTGAAAGTTTTCAATTTGTCCTTTATTAGCTCTTGAAGTTTGACCTTGACCAGGCAAATC -TCCCATAATCACATGATAGCCATTTCTTCTTAACATCGTAATAACATATGCATATCTTCCCGTATGTTCT -AATATATTATGAGCAATAACAACGACGCCTTTCGCATCATTTTCAGCTTCCCACTTCCACATTATTATAC -TGCCCCTTTTTCATTAATCTTCAATAACATAATTATAGCAAATTCACTATGTAGATTTCTATTTATAGTA -TTATTGTTGTCCATATTATTATATACAAATGAAATCAACATCAATAATAGTGTAATTATACATAATTATT -TTTAATTGTTTTTGATGAAAACGCTTTCTCGAATATTTTTTTCATGCTAAACTTATTGTAAACACAAGGG -TTTGGAGGAGTAGCAATGGCACTATTAAAGAATTTTTTTATCGGATTATCTAATAATAGTTTTTTAAACA -ACGCAGCAAAAAAAGTGGGCCCACGTTTGGGTGCCAATAAAGTCGTTGCCGGAAATACAATTCCAGAGTT -AATTAATACAATCGAATACTTAAATGACAAGAATATCGCTGTTACGGTAGACAATTTAGGGGAATTTGTC -GGTACAGTTGAAGAAAGTAATCATGCTAAAGAACAAATTTTAACAATTATGGACGCGCTTCATCAACATG -GCGTAAAGGCACATATGTCTGTTAAATTGAGTCAGTTAGGTGCAGAATTCGACTTAGAATTAGCTTACCA -AAATTTAAGAGAGATTTTACTTAAAGCAAATACTTACAATAATATGCATATAAATATTGATACTGAAAAA -TATGCTAGCCTGCAACAAATTGTTCAAGTTTTAGATCGATTAAAAGGCGAATTTAGAAATGTTGGTACTG -TAATTCAAGCATATTTATACGATAGCCATGAATTAGTTGATAAGTACCAAGATTTACGATTACGTTTGGT -TAAAGGTGCATATAAAGAAAACGAATCAATTGCATTTCAATCTAAGGAAGACGTAGATGCAAATTACATC -AAGATAATTGAACAACGTTTGTTAAACGCACGCAATTTCACTTCAATTGCAACACATGACCATCGCATCA -TTAATCATGTAAAACAATTTATGAAAGAAAATCACATTGAAAAAGATCGTATGGAATTCCAAATGCTCTA -TGGTTTTAGATCAGAGTTAGCAGAAGAAATTGCAAATGAAGGATATAATTTCACTATTTATGTACCTTAT -GGCGATGATTGGTTTGCGTATTTTATGAGAAGATTAGCAGAACGCCCACAAAACCTTTCTCTTGCTGCAA -AAGAATTTGTGAAACCTGCTGGCTTAAAACGTGTTGGCATAATTGCAGCTTTAGGAGCTACAGTTATGTT -ATGTTTAAGTACAATTAAAAAATTATGCCGTAAATAGAGCTTGGCATAAACAATAATTTAGGAGTCTGGA -ACATTAATCAGTGTTCTAGGCTCCTAAATATTATATTGGCAGTTCTGAATCATTTATAAATCTTTGATTA -TGAACTCACAACAGCGCTCTATGCTTTTATAGATTTTAATAAATTAGCCATTTCAATTGCACTTACTGCT -GCTTCGGCACCTTTATTGCCAGCTTTCGTACCTGCTCTTTCAACAGCTTGTTCAATACTTTCAGTCGTTA -AAATACCAAATATGACTGGTACATTAGTTTGATCATTTACTTTAGAAACACCTTTCGCGACTTCATTACA -AACATAATCAAAATGAGACGTAGCACCGCGAATTACGCATCCTAATGTAATTACTGCATCATAATTTCCT -GATGAGGCTAATTTTTTAGCTACTAAAGGAATTTCAAACGCACCCGGAACAAATGCAACATCAATATTGT -CTTCATTAACATCATGTCGAATCAAAGTATCTTTTGCACCTTCAAGTAATCTTCCAGTGATAAAATCATT -AAATCGACTAACTACGATTACAACTTTCAATTCTTTTCCAATTAATTTACCTTCAAAATTCATGTTAAAG -TCCTCCTATATTAAATGACCCATTTTTATTTTTTTCGTTTCCATATAATCATGATTATGTACCGTTTCTG -GTACGATAACTTCAATTCTTTCTGCAATATCAATGCCATATTGTTTTAATCCTTCGAATTTACTTGGATT -ATTACTTAATAAATTGATATGTTCGATGTTAAAATATTTTAAAATCTGTGCAGCAATATGATAATCTCGC -AAATCTTCATCAAAACCTAATGCTAAATTTGCAGTTACTGTATCATATCCTTGCTCAATTAATTCATATG -CGCGTAATTTGTTTAACAATCCTATGCCACGACCTTCTTGAGGTAGATAAATAATCATGCCGCCATGTTC -ATTGATATACTTCATAGACGATTCAAGTTGAGCACCACAATCACAACGTTGACTATGGAAAATATCGCCT -GTAAGGCACGCAGAATGTAAGCGTACATTTTCATGTTGTCGAATTGCACCTTTTGTCAGTACAACTATCT -CTTCATCTGTGTAAGTCGCTTTAAAACCATACATATCAAATGTTCCGAAATCTGTAGGCATTTTCACTTT -TGCCTTAAATTCAATTTCTGGTTCTAATTTTTTACGATATTCAATTAAATCATCAATCGTAATCATCTTT -AATTTATGTTTTTCTTTAAACTTTTGTAAATCTTGTCCTTTCGCCATCGTGCCGTCATCATTCATAATCT -CACAAATGACACCAGCGGGCTTGGCACCAGTAAGTTTAGCTAAATCAACAGCCGCTTCAGTATGACCATT -ACGAGCTAATACCCCTTTATCTTGTGCTACTAATGGAAATAAATGACCAGGACGATTAAAATCTTTAGCT -TCACTACTTGGATCAATGAGCTTTTTGGCAGTCAATGTACGTTCATAAGCGCTTATTCCTGTTGTTGTAT -CTACATGATCAATACTCACTGTAAATTGCGTACCAAAGATGTCGGAGTTATCATCAACCATTTGTACCAA -ATCCAAACGTTGTGCAATATCTTTAGACACTGGTGCGCATATTAATCCCCTTGCTTCTTTCGCCATAAAA -TTAATGGTATTATCGTTCATCCATTCAGTGACCGCTACTAAATCACCTTCATTTTCACGATTCTCATCAT -CTACTACAATAATTGTTTCTCCATTTTTTAAAGCCATTAAAGCACTGTCAATATTATCGAATTGCATGCT -ACCCCTCCTAAAAACCAAATGCTCTTAATTTATCTACAGATAATTGGTCTTTATCCTTATTTAAAATATT -TTCAACATATTTAAACAAAACGTCTGTTTCTAAATGTACTTTATCTCCTAATTTTTTGGATGATAAAATC -GTTGAACGCCTCGTTTCTGGAATAAGATGAATGTCAAAACTGTTATCATGTTTGTCAAATACCGTTAGAC -TTACACCATCCACAGTGATAGACCCTTGTTTCACTAACTGCTTATTAATATGTTGGCTACATTGAATCGT -AATAATTTTGGCATTGGCTGTTTCATTTATTTTTGAAACTGTTCCTAGTTCATCTACATGACCGAGGACA -AAATGTCCACCAAACCTACCGTTACCACTCATGGCACGCTCTAAATTTACTTCTGATTGTCGCTTAACAT -CTGCTAAATAGGTTTTATTTTCAGTGCCTTTAATTACTTGTACAGTAAAAGATGTCTGATTAAAATCAAT -CACTGTTAAACATGCACCATTAACACTGATGGAATCACCAATATGCATATCTGCCGTAATCTTATGTGCT -TCGATTTCAATCGTCCTGACTGATTGACGAATTTGAACACTTTTAACGACACCTATTTCTTCAACGATGC -CAGTAAACATGCATCATCACTTCTTTCGTAAAGTTAATTTGACATTTTGATTTAATAACTCGGAATGAAC -AATTTCAAATTGGTTCGCATCTGGTATCTCAATCACATCATTTGTTTGATAAAATTGATAATTTCCAGAT -CCGCCAATTAATTTCGGGGCATAATAGAGAATAAATTTGTCTATATAATTAGATTGGAGAAATTCTGAAG -TAGTGGTTGGACCTGCCTCGACTAGCAAAGTTCCAACTCCTCTTTTATATAAATTGTGAAGAATTGTTGT -TAAATCACAAGACTTCAAGTAAATAATTTCAATATGTGTTTGATTGGTTGTTAAATTTGGATTTTCAGTA -TATATCCAAATTGGTGTTGATTCATCTTGATAAATTTGCTGATTAAAATGAATATTCCCAGACTTAGACA -ATATTACTTTTATAGGGTTTTTTCCATCTTGAATACGTGTAGTATATTGTGGATCATCTAATTCAACTGT -ATGTCTTCCAGTTAACACTGCATCGTGTCGATGTCTTAACTTATAGACATCTTGTTTAACCTCTTTGTTA -GTAATCCATTGACTTTGTCCATTATCATTCGCTTGTTTACCATCTAAACTTGCAGATACTTTCACTGTAA -TTTGTGGCAGTTGCTTTGCTTTTGCTTTAAAAAAGTCTTGGTATAATTGTGATGCACGTTCATCATCAAC -GCATTCAACCTCAATACCGTGATCCCGTATCGTCTCATCACCATGTGTATCTAACGAATTGTCTTTTGTT -GCGTAAACTACTTTAGCTATCTTACAATCAATTATTTTGTTAACACAGGGTGGCGTTGAACCAAAATGAC -TACATGGCTCTAACGTAATATAAATCGTCGCACCTTCAGCATTTTGTTGTGCCATATCAAGTGCTTGAAC -CTCCGCATGCTTGTCACCTTTTCTCAAGTGTGCACCAATACCAACAATCCTACCTTCTTTAACTACAACA -GCGCCAACGGGTGGATTAACACCTGTTTGACCTTGTACCATATTTGCAAGTTGAATCGCATAATCCATAA -ATTGACTCAAATGATCACCTCTATAAACAAAAATCCTCACATCATGAATTAAGATGCAAGGAGAAAAATT -TATCGTTAAATAAGCCTATTTGTACACATTTTTACAAATACGCTACATTATCTTTGTCGATAATTAACAT -TCTTTCTCCCATCCAGACTTTAACTGTCGGCTCTAGAGTCTCACTAGATCAGCCACTAATACGAAACATA -TTAGCAGGTCGCAGGCTTAATTTACTGCCGGTTGGGAATTTCACCCTGCCCCGAAAGAATTATATATGAA -ATTGTTATAGATTATTTGAGTACGTAGTATGTCAACTACATTTAAAATGATACTATATGTTTTCTGAAAA -AACAATTAATGACGGTTTTAATTTAATATAATCTGAGTACTATAGGCATCTCATTGCTATGATTCTTACT -AACAGACATTAAAATCAAAACCTCAATGCGTCTCTATAGAGCGTTCTCTTTATTATCTTCTAGTTACAAA -TTATTGATTGTCACTTCGCTGTTCTTGCTCATTCGATTCTAAAGCATCATATAATTGAGATACTGTATGC -GCAACTTGTTCTACTATCATTTTCACACCATTTCGTAGTTTATTAACACCGTTTGTCATTTGACCTATCG -CAATCATATTTGTTAATGTTCCAAACCTTGGACTAATAACTTGATTGGTTTCCGGTATGATTTGTATGCC -TCCCATTGGATGTGCTTGTACAATTTGTCTATTTTCAAGATTTTTAATTAATTGATCATCTTGATCTAAT -TCATTTAAATGACTTTTTGCACCTGTCGCGTTAATGACAACATTATATATGTCTACTGATTCTTGGTTTT -TGTATGAAAAATAATACAACTTGCCATCATGTTTCACATCTTCTAAATCTTTTTTCAAAATTAAAGACTT -ATTTTCTATTAATTCAATAATTAGTTCAGCAGTTCTTGGAGGCATTGGATTTGAATTTAATTGAATCATC -TTTGAGTATTTTTGATTAAATTGATGTTGGTCTTCAATGCTTAAGCTATTCCATATCCAATTTAAATTCT -CTTTCAAATATTCAATGATACTTTGGAAAATGCCCATTTCTGTTGGACGCGCTAAATCATACTTCAAATC -TGCAATATGATTTCCTGTACGTCTATGTACTAATTTTTCAAAATCAATGTCATATTCAGCACATTCTTTT -AAAAATAAAGAAACTAACGTATCAAGCGGTGCATTGCCGAAATGATGTTTTTTTATGTCATTTAATTTGT -CTTTAGTTAAGTACTTGAATGTCACGTCTATCATTGTACCTCTTACACTTGGTAAATTTGCAGAACGACT -CGTCATAGTAATTGGTAATTTCGGATGATGAGCAGCAACATAACGAACAACATCTAAACTTGCAAGGCCT -GTACCAATAATCGCAATATCGTCCAGTTCATTTACTTCGTCTAACGTATTATATGTTGGATAAGGCGTAG -CGATATATCCTTTTTTGCCCTTCAAGTTATATGGATCATGGTAGGCAAATGTACCACATGTTAAAAATAC -ATAATCGTACGTTTGCCATGATTGTTCTGAATTTGTAGTACATATGTAATAAGTTAAATTCGTTTCATCG -ATATTAGAATTTGTATAAATCTCTTGAACTTTATTATAATTAGTTGATATATTTGGATATTTTTTCGTAT -ACATAGATAAATAAGATTTCATATAATGTCCGAATACAAATCTCGGTAAATATGCAGGTTCATCAAAATT -AAAATCAGTTTGTTGTTTATACCACTTCCAAAATTCAGTCTCATCATCTAAATTTAAACTCATCTTTTTC -GAAGGCATATTAATTAGCAGCTCAGAACTATCATTTTGAAATGGTACGCCCTGTCCCATATTTACTTTAT -CATCGTATAAATCTATATCTAATTGATTAAATTTCGGGTGCTTAACTAACTCTCTCAATACACTTACACC -AGCAGTTCCCATGCCGATTATTGCTACACGCATATATCATCCATCCTTTAGTCATTTTAAATATTTTCTT -TTATCTATTACCCATATTTATAGCAATTTGGTATTTTTAATAAAATTTATTAAGGTAATCTATTATTTCA -CTTTTACAACCACTAAACCATTTAAAACTTTTCATTTAATATCAAATCTAGTGTTTGTGTTAAAATATTT -TTAACAATTTGCCATATTTTATGAATTCACCATTGTCATACTTCATTACTTCATCATAATTATGATTCGT -TTTAAAGATGTTCATTCAATATCGACAACAGCTTATGTGTTAAAATATTTTTAACGAGGTGAATTAAATT -GAAATTTATAGCAAAGATATTAATCTCATTAGTAATTCTATTTATGATTTTTAGTCGTAAAAATAAAGCT -TCTTAATCAATACCCTTGATTACAAAATAAATTCAACTAAGGTGATTGGCCATACACTCAAGATATGGCT -AATCACCTTTTTCAATGCAGAATAAAGAGTATATTTTGCAAAATCAATATTTATAATTTATCTTTAATAC -CCTTTTAATACTAAAACCAAATTTAAATTACATAGTCATATCGTGAAATATACCAAAGAAACATAGATAT -TTATCTATATAGATGATAATCTATTTAACGTCTAGGAGGTATGTTATGACGTATAAAGAACTAGCAACAT -ATTTAAAAATTTTATCAGATTCAAGCAGATTAGAAATACTAGATTTACTTTCTTGTGGAGAGTTATGCGC -TTGTGATTTGTTAGAACATTTTCAATTCTCTCAACCCACACTTAGCTATCATATGAAAGCATTAGTAAAA -ACCAACTTAGTTACGACACGAAAAATCGGAAATAAACATTTATACCAGCTTAATCATAATATTTTTGAGT -CCGTAATTAATAACTTGTCAAAAGTTCATACCTCTAACCAACGATGTATTTGTCATAACCTTAAGACTGG -TGAATGCTAATGATGACAACTTTAGCGACATTCATTTTTCTAGTAACTTTATTATTTGTATTATGGCAAC -CTAAAGGCCTAGATATTGGATTTACTGCATTAGCAGGTGCCTTTATTGCTGTTATTACTGGTGTTGTAAG -TTTTTCCGATGTTTTCGAAGTAACAGGTATAGTCTGGAATGCCACTTTAACTTTTGTATCAGTCATTCTT -ATTTCATTAATATTAGATAAAGTTGGATTATTCGAATGGTCAGCTATTCACATGCTTCATGCTTCAAAAG -GTAGTGGCCTAAAAATGTTCGTTTATATCATATTATTGGGTGCCGTGGTTGCTGCATTTTTCGCAAATGA -TGGCGCAGCTTTAATCTTAACGCCCATTGTATTAGCAATGGTAAAAAATATAGGTTTTAGTAAGCGGGCC -ATATTTCCATTTATTATTGCAAGTGGTTTTATTGCTGATACAACGTCTTTACCTTTAATCGTGAGCAATT -TGGTCAATATCATTTCTGCAGATTACTTTAACATTAGTTTCTCTCAATATCTTAGTAGAATGATTATCCC -TAATTTATTCTCGTTATTAGCTAGCCTTCTAGTTTTGTGGTTATATTTTAGAAAAGCGATTCCTAAATCA -TTTGATGCAAATCACATAAAAAAACCTATAGATGCCATTAATGATTTAAAGCTATTTAAAATTTCATGGA -TTGTTCTAGTTATATTACTTTTCGGCTATCTAATCAGTGAATTTACTAAAATTCCGGTATCAATTTTCAC -CGGAATCATTGCTTTTATATTTCTAATATTGGCTCGTAAATCAAATGCTGTAAATATTAAGCAAGTCATT -AAGGGCGCACCTTGGAATATAGTATTATTTTCAATTGGTATGTATATCGTCGTATTCGGCTTAAGAAATG -CTGGCATTACTTTAATATTAGCTAAAATATTAGAATATATTTCCAATTACGGTCTATTTAGCACTATTTT -GGGAATGGGCTTCATTTCAGCATTTTTATCATCAATAATGAATAATATGCCTACAGTTTTAATAGATGCG -ATTGCTATTGGTCAATCAAATGTCCATGGCATGTTAAAAGAAGGCCTAATTTATGCAAATGTTATCGGTT -CTGATTTAGGTCCAAAAATTACACCGATAGGCTCTTTAGCTACATTACTGTGGTTACACGTCTTAACACA -AAAAGATGTTAAGATTTCTTGGGGCACATACTTTAAAACTGGTATCATCATTACAATTCCAGTACTATTT -TTCACACTTTTAGGATTATATCTAACACTTATACTATTTTAAGTAATAAAAAGACGCTTTCTATTTATTG -CGATAGAAAGCGTCTTTTTGTACTTGAGCAAGTCATATCATAACTTAACTCTAACAAATTACTTATTCAA -ATGTTTACTGTCATCTTTATACACAAAGTATTTGAAGTATTTTCCTTCAGTCTTCATGTTCTTATAAAAG -TCAGCGATAATTGTTGCATTACTTTCTGCCCACTTAATATCTGTAGCATATTGATGTTCTCCTGGATTTT -TTGGATTCCATCTCATACTATACAATGTATTTTGATCTGTGCTTGATAAGAAGTGCTTATGAATGAAATC -AGCACCGCCTGAAATAGCTTTTTCAGGTGTATCCCAACCATGCTTTTTAGCATATTCTGCACCTGTTTTA -ATTGGGTCTTTATCAAGAGCTCCCACTCCATAGAAATTGTAGTATTTTTTACCATCAATTTCGACACCAT -TAGCTAATTCACTTTTAACTGCGCCAGTTTCTAATAATGCATGTGAAATTAAATAAACTTCGTTAACGTG -CTTATCTTTAGCAGCTTTTAAGAAATCATCCGTATGTTTCAATAACGTTGGTCTATCGACTAACATACGT -TTAATTCTATTTTTATCAATCCCTTGATACTTTGATAAATCTAAAAATTGATATTTTTGCTTTTCATTAT -CGATAAAAGTACCGCTATCCATTGCACTTTTAATTTCAGTTGCAGATGCATCTCTCCATGCATCATTCTT -TTTATTTGATACCTGTTGACTCGTATAATTATTTATTTGTTTCTTTGCTGCATCGTTTAATGTAACATTT -AACTTTTCAATCTTAATGTCGGATTTAACATGTTTGAAAAATATCTGATCGGATATCATTGAGAAAAATA -AAAATGAGACAACAGCAAATATGACAACAAGTCCTATTATTCCAAAAATAGAACCTTTCTTGTGTTTATT -CATATCCACACCTCTTAGGTCATTGTTGTTATACATTCAGTTTGACTACGATAATAAAGTTTAACATTAT -TAAAACCGTTTAACAATTTTATCTATGCATTGTTACATATTCATAAATAAACAGTAATGTAAATGAAACG -TTTTAAACGATTTATCAACATTACTTTACGTTGATTCACGAATCATAAATGTTTTATCTTTTTGTATAAC -CTTTGAAAACCTTTATATCAATAATCTTATTATTCACGTATTAAAAAACAAAAAATTCTCTTGTTCGTTT -ACTTAGTTTCTTTTTTATAATCCATCATAATAAAACTTGCTGCATTTGATCTATTTTTATAATAGTACTG -ATTTAAATCAATTGTACCTTCAATTTGACCATCACGATACATCATTTCATTAGTGAAGTTATTTATCATC -ACGAAATCAGCGCGATCTCTTATAACATCTAAATCGTCGTTTCGTGCAAAAAAATGTTCTAAATTTAAAT -GTGCGTAATCCATTGTTACCTCCCGATTACAAATTTTGTTCTATCTACTATTTAGCAAAGTAATAATACA -TCATATCACATTAAATTAATTACTTATGTCTTATATTTAACACTTAATTTAGCGATTACGCAAATGAATG -ATTTTTCTAAATATTTTATTCTATCTTTATCCGGAAATATTTGTTATACGTATAACTTGGAGAATGACTA -CTTGAAATTTAATGACGTATACAACAAACACCACAAAATCATACACCATCTTTTAAAAAAATATAATATT -AGCTATAATTATGATGAGTATTATCAACTACTCTTGATAAAAATGTGGCAATTGAGTCAGATATATAAAC -CCTCAAGCAATCAATCTTTATCCTCTTTTTTATTCATGCGACTAAACTTTTACCTTATCGATCTATTCAG -ACAACAAAAACGTTTAAATGATATCATTTTATGTGAAAATCATTCACCAATACTAACTGAACAGCCAACA -TACTTTAATGAATATGACCTTCGTTTACAAGATGTTTGTGCCCTACTAAACCACAGGGAACGTCAGTGGC -TTATGCTTTATCTTGAAGGCTATAAGCAATATGAAATTGCTGATATTATGTCATTATCAACTTCAACAAT -TAAATTAATTAAGGCATCAGTTAAGCGTAAATGCCAACGTTTTTTTAAATAGATGCGACGTGTCGTGTTG -ATTAAAATGATTAATACTCTTGGAACGCTCAATAATATGCATTTCATTTATGCGAACCATTTTATTATTA -ACTGATTGAAAAGGAGTACTATATTTGCAAGACATTTCTACAAAACACCTACTTTATATCCAAACCGCAA -CTTCGAACCATCTTGAGACAAAATGTGTCTTTCTGTACCATGAATACAATCTCGAATTCCCTATTACTAA -AGCCATTCCTTATTATGCTAAATTGCATTTTACATCAGCATCAATTTTAATCGATGCGGCAAAAAGCATA -CTCAACATTAACAAGCTGGTGCCTATTTACCTTAATCCGAAAACGATTCTTTTCCCAATAAAACAAAAGC -GTGCACCGATACAAACATATATCAATGCACACTATATAATTGGTATGACGGAAATGGGCAATTCGACTAT -GCTCCATTTCAAAAATGGCAAAACATTAGAAGTCGATGAACCCATGTCTCTTATTTCCAAAAAATGCTAT -GAAAGTTTAGCATTGAAGCATTTCATTGAAAATACTAATGACTATTAAATTTATGTTCTAACAGTTTCTT -TGTAAAATATGATGTTGTGATTTTTATTAAATAGATACTAACTAACATTAATAAAATCGCCCCAATGATT -GTTAAAATAACAACCGTTGTCGACAATTCTACTTTAGGGTTAACGAAAAATTGCACACCAGATAGACTTG -TAATTAATCCAAATAAAAACAAACCTAATAAAGCAACGTATGCAAACATCATCACCACTAATGTTACAAA -GATGCTATAACTTTTAGTTTCTTTACTACGAAATACATTTTCTCTTAAGTACGTATTAGCAAAGGTGATT -GGCTTATTAAAGTTCACATTGTCCTTGTCAGTAATACTAGACAACCGTTGATCTAATGCCTGTTTTTCAT -TTTTGTTCAAAAACCATAATTGCTTTTTAACCTTTTTATCAAATGATGCTTTATTCATAATTAAGGATTT -CTCTCCTTTATAATATTGACGTAATTTTAAACATTAGCGTCAATTGAAAGTGTATTTTATATATTTTACA -GAAATACATGCATCAAATCTACAAAAATTAACTTTGCAATTTTATTTTTAGTAATTTGACACTGTATAAT -TGACACCGTTTATATTGCAAACAAATGGTTTTAGTTAAGTGTAATGATGCGCCTTTAAACATATCTAAGT -TTCTCATATAATGAAAATGACCATACCAATGAAATGCTTTAATATTTATTTTAAAGATGATAGAAAGGAT -TAAATATGCAGAAATTCAAGGATTTGTTTTATGATGATTTATCAGTTGCACGTGGAAATTATTTTCTAAC -TTTATTATCCGCATTCTTGATTACTATTATTCTACTAATTGGTTTCGTTGTCAGTGATACACACATACTT -TATGGCGTGTTTATAGTGCTCATCGGTATTGTGTTATTACGGTTATTCAAAATTAATTTACTCTCATTTA -AAAAATTAACAATGTCACAAGTGATTTATATCATCGGTGGTGCATTGCTAATTTATGGGTTAGATCATCT -TTATTTACATTTTCATGACGTACCGACAAATGAACAAGAATTAGATCGAGAATTACAACATATGCCTTTG -TATATGTCTATTGTCACAATTGCTATTATCCCTGCCATTGTAGAAGAAATCGTTTTTCGAGGCATGATAA -TAAGAGTTGTATTTAGAAAGCATTTATTTATTGGATTAGTTGTGTCTAGTCTAGTGTTTGCATCATTGCA -TGAATCGGATACTTGGATTGGGTACTTACCTTATTTATATTCTGGAGTGATTTTTGGCCTAATATATTTA -AAAACAAAGCGATTAGAAGTCGTTATTTTAATCCACTTTATAAATAACCTATCCTCATTACTCATTCTGA -TATGGGGATAATACTAGTTGATATAATACACAATGATTGCCCCTCAACATGTTATTCACAAAACGATATG -CAATACAAATTAATAATATACTAGCTTTTAAAACAATAAAAAACCTTGTATAATTAACTTAATTTTCATA -AAAATTAAACGTCAAACTTTATTTTAGGAGAATTAATATGTTTTCGAGGAATAACAATATTTTTGTTGAT -GATTTGTCTGTAACAAAGGACAATTATTTAATTGCAGTTTTAAAAATGTTGATCATTTTTTTAGTAATTA -ATTATGGAACAGACATCAGTTATGACCATGAGTATGTTGGGCTATTTATTATATTACTAGGTGTTGTACT -TCTTAAAGTTTTAAACATCAATTTATTATCTTTCAAAAAATTAAAATTCCCTCATATGCTTTATATTATA -TTTGGATTTTTGTTGATGTATGGATTAGATTACTTATATGATACGTTCGCACCGCCTACATTAAATGAAA -TATTGATAGATGAAGAGTCTGAAGATGCACCTTACCACATAGCTCTGCTTAGTACTGCTATCATTCCACC -AATTACAGAAGAAATCATCTGTCGTGGATTGATTATACGAATTTTATTCAGAAATCATCTTTTCTTAGGT -TTTATAGTTTCAACTGTATTCTTCACGCTAATACATGAATCAAACACGCTGATTGGTTATCTTCCGTATT -TTTATTCAGGTTTAATTTTTGGCTATACTTACTTAAAAACAAAACGATTAGAGGTACCGATTTTAATACA -TTTTATCAATAACCTCTTAGCCATGTAACAATAAAATCATTAATTATTTTGATATTTACATGATGACACC -AAAGCTTTTACAAAGTATTAATAGGTGACTTTCCAAATGTTATTGCATATTTACGTTCTGTAATTATATC -AAAACAACAAAACATATTAAGTTTAGCTATGAAAAAAATCTATGACGATAGATTTTTTTCATAGCTATTT -TTTATTGTTATCGAGCCTATCCCAGACTCTCTATACTGTTATATTAACAGTCATTGACTGAATGATAATA -AGCTTTTCAATTATAGAGGCCCCAACATAGAGAATTTCAAAAAAGAAATTCTACAGGCAATGCGCGTTGG -GGTGTGGGGCCCCAACACAGAGAATTTCGACAAGAAATTCTACAGGCAATGAAATACATATTAATTTAAA -ATTGACTCCAATATGAAAAACCCCCATAAGCACAATGCCTATGAGGGTTTAAATATATTTATATATTATA -AAATAGAAAGACCTGAAGATTGAATATCTTTCGCAAAGCCTTTAACTGTATCTACTGATAATTCGTTAAT -ATCGCGACCTAAGTTTGTATTCACTTTTTTCACAACATCTGCAGGGCATGTAATAATATCTGCACCAATT -TCATCAGCTTGAATCACATTGAATAATTCGCGGCAACTTGCCCATAATAATTTAACGCCGTCTTTACTAT -GCGTAACTTTTACAGCCTCTTTCATTAATGGTAATGGATCTACGCCTGTATCTGCAATACGTCCTGCAAA -TACTGAAACATATGTTGGCACACCTTCAGTTACTGCTTCAGTTATTTCTTTAACTTGTTCAATTGTATAA -ACAGCCGTAACGTTTAATCTCACATTGTCAGCTGAAAGTTTTTTAATTAAAGGAATCGTTGATTCACCTT -TTGTATTTACAATAGGAATTTTAACAAATACATTTTCGCCATATTGTTTTAAAATTGCTGCTTCTTTTTC -CATAGTTTCTAAATCGTCTGCAAATACTTCAAATGAAATTGAAGCATCTGGAATTTCTTTCACAGCTTCT -TCAGCAAAAGCTTTGTAATCTGTTACGCCCGCTTTCGCCATTAAACTAGGATTTGTTGTAAAGCCATCCA -CTTGTTTGTTTTTATAAGCTGCTTTCATTTCTTCAATATCTGCACCATCCGCAAATACTTCTACATTTAG -TTTAGCCATATAATATAGCCTCCTTGATTCTTATTAAAATTTTAACAACATCTGCATGTCTTTTTCTTAC -AACCATTTGTAAAAAATGATTTTTATTTCTTTGTTATATAAAACATTTATATCACGCTTTTATAATATAT -AGCTAATTTTTTGCCTATATTTCTTAAAAATGACTTTAGCAACATTGTGTCAACAAGGTAATTAAACTAT -TGTTTTGTGATTGTTTATGATACGATATGTAAATGATAACCATCCAGGAGGTCTAGCATGTCTCGTTCAA -AAAAATACTTTTACTTATCTAGCTTAATGATTATTTTAAGCTTTTTCTTTAATACAAATAACGTTTTCCT -AAGTGGGCTTTTTAATTCTTTTATTAAATTAATACTTTTCTGCAGTGTTATTAACTCAATTGTACTAATA -TTGTCTATAATTTTTGCAGATCGTTCAATTAAATCACTAAAGCCTGATGCAGATTGGATTAGAATTGCGA -GTAAAAGTTTGCCTTGGATTATTCTAATCGTTATTTTAGTACATATCTTTTCGATTGTTCACACATTCGG -TTTTATTTAAAAAAGATAAAATGTCAATGTAGCCTTAATACAAAACAATACAATGTATCATGCTAAAATG -AGTAAATCCATTTGATGACGTTGTTGCGTATAAAAATATTAGATTTTCGAAATCATAACTATGCATCTAA -TCGCTATAGTTATACAACAAGATATAACATATAATGAGGTTTGATAATGCATCGACAATTTTTGTCGTCG -CGTTGCCAAAACCTCTTTTTTAAATTCAAACTACTTCTTTTCGAGGTGAACCAAATGCAATATGTATATA -TTTTTATCGGTGGTGCTTTAGGCGCTTTATTACGTTACCTCATTTCTTTTCTGAATACTGACGGAGGTTT -TCCAATCGGAACACTGATAGCCAATTTGACTGGTGCTTTTGTAATGGGATTGCTAACAGCCTTAACAATT -GCATTTTTTTCAAACCATCCGACCCTTAAAAAAGCTATTACGACTGGTTTTCTTGGTGCTTTAACGACTT -TTTCAACATTTCAATTAGAATTAATACATATGTTTGATCATCAACAATTTATAACTTTACTACTATATGC -TGTAACAAGTTATGTCTTTGGTATTTTGTTATGTTACGTCGGTATAAAACTAGGTGGTGGTTTATCATGA -TATCAATCATTTTAGTCATGATTGGCGGCGGTTTGGGTGCAATTGCTAGAAGTGCCATTACTGATTATTT -CAATCATAAATTCACTTCAAAGTTACCTATCGCAACATTGATAGTAAATCTTGTTGGTAGTTTTTTAATT -GGATTAACTATAGGCTTATCAATTTCAATCTCATGGTTCCCTGCGTTCTTTGTTACCGGTTTTTTAGGTG -GCTTAACAACTTTCTCAACATTAGCCAAGGAACTTACACTAATGATGACGCCAAAATTTAATATTAACCT -TTTTCTCAATTATTCACTTTTACAATTCATCATTGGATTTATAGCTTGTTATATTGGCTATCATATTTAA -AAATAAAATGCTTCATTCAGCAAATAGGTAAATTACGACACCTTCCTGAACGAAGCATTTTTTAATTTTC -ATGCAAATTTTTTAGCACCAGATAATGCCTATCAAAATAAAACAATCTTTGTTGCCGTTTAAATAATGTG -AATGTCAATAAATTCTCCAAACTAGTCGAAAATAAAAACGTTAAGCAATATGTCTATTACCTAACGTTGA -CAATTTATCTGACCTTTTCATCAGTTGAGCGATTTTAATCTATCCTTCAAAAGTTTTTGGATCAGGTCCA -ATTCTCTTATCTTGATTTAAACCATCAATTCGCGTCATTTGTTCATCTGATAATTCGAAATCAAATATTC -GGAAGTTTTCAGAGATTCTGTTTGGTGTCACCGATTTAGGGATTGTAACCACTCCATGCTGCACATTCCA -TCTTAAAACAACTTGGGCAGGTGACTTTCCTAATTCTTGAGCAATGTCTTTAATTGTCTCATCATTTAAA -AATTGTGCATTCATCAATGGTGACCAAGATTCCATCACGATATGTTGTGCTGCCAAATATAATTTCAATT -TATGTTGCGTTAAATATGGATGATATTCAACCTGATTAATTACAGGTTTAATTGACACTTGTGCCAACAA -AGCTTCCAAATGTTCAGGTTCAAAATTGCTGACACCTATATTTTTAACTTTATTATTTTTATATAAATCT -TCCATACCTTTCCATGTATCAACCATTACGGCTTCGTTCGTACCTGGCCAATGTACTAGATACAAATCTA -AGTATTTTAAACCTAATCTAGATAAACTAGCTTCGTAGGCAGCTGCTACATTTTCACGACCAAAATCCTC -AAAATATAATTTTGAAGTAATAAATAAGTCTTCTCTAGCAATACCAGTTGATTCCAATCCGGCACGAATG -CCAGCACCTACTTGTTCTTCATTCCCATAAACTTTTGCGGTATCAATACTACGATATCCTTGTTCAATGG -CATACTTAACACTTTCCATGCAATTTTCATCATTTTCCACACGAAATGTCCCTAAACCAATTTGTGGCAT -CGTGTTTCCATTATAAAATGTTTTAACCTCCATAAATATCGCCTCACCTTTTTGATGTATTATACCCTGT -TATCATAACAAATCTGAGTTGAATACATGAGAAAAAACACTTAGAGCAATCAACCACTAAAATGCTAGTA -ATATCTCTCAAATATTAATCAAATTGTAAAAGTAATTCTGTTTAATTTATGACAAACTAAAAAAGCCGAA -GTAACAACATATAGTCATCACTTCAGCCTAACATTTAATTGAATGATTCAATTTTATCCATCATTTGTTG -TAAGTCTTCCACGTTGTATTGAATACGACCATGGAATACAAATTTGTTAAAGAACTCGTCTAATTGTTCA -GCACCGACAAGCACTTTGACAGCACTATTTTGATTATAATTTGAAATTGTTACATCGCCTTCATTTTTAG -GATTAAAGTATAAAATTGAAGTCGGTGTATATTTAGCACCTAAATGTTTTTGTAAGTCTTCAGCCAATTG -TTTAATTGCCTCAATTTGATCTGAATAATTTACAAATGATAATGAACGTTTGTCATCATTTTGATCCATA -ACAATAGTTTGCGGTCTAGATTTATCTAAATCCAATGTATCAAATACTTGTTCCATAGGTGGTAAATCTT -TAAATTGACCGCCACTTATACCATTATAAACATGACCTTTTAACAATTGAGAATCAATAATATAAAGACC -AGTTCTTGTTAATACTAAATGACTAATTCGTTCAATATTATTAAAGCCATCCTTTGGTAAAAAGATATTT -GCCATAATGTGCATATCTTCTGGTCGAATTCGTTTTTCTTTAACTAATCTTTCACGAATACCAATTAATC -TCATGTCCGTTACATATTCACTATGATTTTTCGAGAACAATTTTAATGCGTCAATCTCACGATCTTTTGT -ACTAACCATGTGATTATAATCTTCTTGTTGTTTTGTAATTGTCTTTTTATTTTGAATACGCTCTTTCTCT -AAAGCTTCTTCATGAGACTTTTTAATGTTTTGTTCTTGTTGTTCATACTTTTCTTCTGTTTGTCGCTTAA -CTTTTTTCTTACTACCTAAGGCAACTAAGAAAAGGACAAAAAAGATTAATGCAATGACTACTGCAATAAT -GAGTCCAATGACTACCGGTGAAGATAAATCCATCACAACAACGCTCCTTTTTAATATATGAATAACTTTA -ATTATAATAGAAAAGCTAAAGATTTTCGATACATATTATCATTTATATACCGAAAATCTTTTATTTAGCT -ATATTCAATTCATCTTATTATTTTACTGCGTCTTTTAATTCTTCCACTTTGTCTAATTTTTCCCATGGGA -ATAAGACATCTGTACGTCCAAAATGACCATAAGCAGCAGTTTGTTTGTAAATCGGTTGTTTCAAATCAAG -CATTTTAATAATACCTGCAGGTCTTAGGTCAAAGTGTTTTCTAACTGCTTCGACAAGTTGCCCTTCAGAA -ACTTTACCTGTTCCAAATGTATCAATTGCAATTGACACTGGTTCTGCAACACCAATCGCATATGCCAATT -GTACTTCACATTGATCTGCTAAACCTGCTGCTACAATATTTTTAGCCACATAACGTGCAGCGTATGCAGC -TGAACGGTCTACTTTTGTAGGATCTTTACCGCTAAAGCATCCGCCACCATGACGTGCATAGCCACCGTAC -GTATCAACAATGATTTTACGTCCTGTTAATCCTGCATCACCTTGAGGTCCACCGATTACAAAGCGTCCTG -TAGGATTGATGTAGAATTTAGTTTGTTCATTAATCAAGTTTTCTGGAACAGTTGGATAAATGACATGCGC -TTTGATGTCTTCTTGAATTTGTTCAAGTGTCACATCATCAGCATGTTGTGTTGATACGACAATCGTATCA -ATACGTACAGGGTTATCATTTTCATCATATTCAACAGTGACCTGAACTTTACCGTCTGGTCGTAAATAAT -TTAACGTACCATCTTTACGCACATCTGATAAACGTTTTGCCAATTGATGTGATAAATAAATTGCTAGAGG -CATATACGTCTCTGTTTCATTCGTTGCGTAACCAAACATTAAACCTTGGTCACCTGCACCTGTTGCTTCA -ATTTCTTCTTCGCTATCTTTATCACGATACTCTAATGCTTTATCCACGCCTTGTGCAATGTCAGGTGATT -GTTCATCAATCGCAGTTAAAATTGCCATTGTTTCATAATCATAACCATATTTTGCTCTTGTGTATCCAAT -TTCTTTGATTGTTTCTCTAACAACTTTCGGAATATCAACATATGTTGTTGTAGAAATTTCGCCGGCGATC -AATGCCATACCTGTTGTAACAGTTGTTTCACAAGCTACACGTGCATTTGGATCGTCTTTTAAAATAGCAT -CTAATATTGCATCTGACACTTGGTCAGCGATTTTATCTGGGTGTCCTTCTGTAACAGACTCTGAAGTAAA -TAATCGTTTGTTATTTAACATAGTTTGCTCCTTTAAATTTATATAACGAAAATTCTCTCTCTGTGAGCTA -AATAAAAAAGACCTTCTAACTATTAATATAGAGAGAAGGCCTAATACGTCCATTCGCTCTTATCGTTCAG -ACCTATTTGTCTGCAAACGGTTTGGCACCTTTCTTTTATAAAAAAAGAGGTTGCTGGGTTTCATTGGGTC -CATGTCCCTCCACCACTCAGGATAAGAGAATCCGTTAAAAATAATACTACCTAATTAATGAATTAATGTC -AATTTTTCACAAATAAATTTACAGTAAAATATTGTAGATTAATTATGTTAATGTGTTATACTAATTAAAT -GTAAAGGCTTACATTTAAATTATCGCTTTGGAGGGATTTAGGATGTCAGTAGACACATACACTGAAACAA -CTAAAATTGACAAATTACTGAAAAAACCAACGTCACATTTTCAACTTTCGACGACACAACTTTATAATAA -AATCTTAGACAATAACGAAGGGGTATTAACAGAACTTGGTGCTGTTAATGCAAGTACTGGAAAATATACT -GGTCGTTCGCCTAAAGACAAATTTTTTGTCTCAGAACCTTCATATAGAGATAACATTGACTGGGGAGAAA -TTAATCAACCTATCGATGAAGAAACTTTCTTGAAGTTATACCATAAAGTACTAGACTATTTAGATAAAAA -AGATGAATTATACGTATTTAAAGGCTACGCTGGTAGCGATAAAGATACAATGTTAAAACTTACAGTCATC -AATGAATTAGCATGGCATAATTTATTTGCTAAAAATATGTTTATTAGACCTGAATCAAAAGAAGAAGCTA -CAAAGATTAAACCTAACTTCACTATCGTTTCTGCCCCACATTTTAAAGCAGATCCAGAAGTTGATGGTAC -TAAATCTGAAACCTTTGTCATTATTTCATTTAAACACAAAGTCATTTTAATCGGCGGTACTGAATACGCT -GGTGAAATGAAAAAAGGTATCTTCTCTGTAATGAATTATCTCTTACCGATGCAAGATATTATGAGCATGC -ATTGCTCAGCAAACGTTGGTGAAAAAGGCGATGTTGCATTATTCTTTGGTCTATCTGGCACAGGTAAAAC -AACCTTATCGGCTGACCCACACCGTAAACTAATCGGTGATGATGAACACGGCTGGAATAAAAACGGGGTC -TTTAATATCGAAGGTGGCTGCTATGCAAAAGCAATTAATCTTTCCAAAGAAAAAGAACCACAGATTTTTG -ACGCAATCAAATATGGTGCAATTTTAGAGAACACTGTAGTTGCAGAAGATGGTTCAGTGGACTTTGAAGA -CAATCGTTATACAGAAAACACGCGTGCCGCTTATCCAATTAATCACATTGACAATATTGTAGTACCATCT -AAAGCAGCACATCCAAATACAATTATTTTCTTAACTGCGGATGCATTTGGTGTTATTCCACCGATTTCAA -AGTTAAATAAAGACCAAGCAATGTATCATTTCTTGAGTGGTTTCACTTCTAAATTAGCTGGCACAGAGCG -TGGTGTGACAGAACCTGAACCATCATTCTCAACATGTTTCGGCGCACCGTTCTTCCCGTTACACCCTACT -GTTTACGCTGATTTATTAGGTGAACTTATCGATTTACATGATGTTGATGTTTATCTTGTTAATACTGGAT -GGACTGGCGGAAAATATGGTGTAGGACGTAGAATCAGCTTACATTACACACGTCAAATGGTAAACCAAGC -GATTTCTGGCAAATTGAAAAATGCAGAATATACAAAGGATAGTACGTTTGGTTTAAGCATTCCTGTAGAA -ATTGAAGATGTACCGAAAACTATTTTAAATCCAATTAATGCTTGGAGCGACAAAGAGAAATATAAAACAC -AAGCAGAAGATTTAATTCAACGTTTTGAAAAGAACTTCGAAAAATTTGGTGAAAAAGTTGAACATATTGC -CGAAAAAGGTAGCTTCAACAAATAAATTTAAATACTAATTAAAGAGCCAACCGCTGTTAAATTTTAACAA -TGGTTGGCTCCTCTTATTTTATATGGTAAAAATTTATAGGCAATTTTATTACAACAATCACATTTAAGGT -GACCTTCATGCCAAACTCACATCACTCATTCAATGGAAGCAGCACGTCTTCACATAAAGTACCGATTCCT -TACGCTATGCATGTTGCCCCACTTTGCATAAAGTACCGATTCCTCACTCAACGTATATCACACATCTCCA -AAGATTGATAGTTCCCATGCGCACACCACGTTTCATACTACCTATGCAACTCAACTTGGTTCATAAATTC -TTTAATATAAGTCAATGTTTCAACCATCGCTGGTGGTCTTGGCACATGTCCTTCTGCCATTTGATAAAAT -GTTTCATGCATGGCACCTTTTAACTCTAGTTGATCCGCTAAATAATACGCATGATGAATACCAACTTGCT -GGTCTTTCCCTCCATGTACAATTAATATTGCTGGACTGTTTTCATTAATGTTTGGAATCGCTTGGCGTGC -CTCATATGCTGCTCGATCTTTTTTCGGATGACCAATCATTCTACGTAACATCCCTCTTAAATCAACGCGC -TCTTCATACATCAAATCAATATCTGAGACTCCACCCCAGATGATATAACTATTTACAGGTAAGTCTTGAA -ACGTCAACAACCCTTGTAGTCCACCTCTTGAAAAACCAACCATATGAATAAAAGCTTGCGGATATTTATC -ATGTAGCAACCTCAATAATTCAGTCACATCATTTAAATCGCCACGATAAAATTCATCTTTACCTTCACTC -CCATTGTTACCTCGGTAGTATGGCCCAATCACTAAAGTTTGACTATCTGAAAATTGCATTAATCTACCTG -CGCGCACACGTCCTACTTGGCCTTTGCCACCTCGCAAATATACTACAATGCGTTTTACTTCATGATGTGG -TGTCATCATTAAAGCTTTTACTTGTAAATCATCTGACAAATATGTAATTTCTTCGAATTGATGCGTAAAA -GATTCAATTGGCATTCGTTTACGTTTGATAAAATCCAAGTGATTGCACCCTCTCTACGCATTTTAAAATG -GTACTATCTTGCAGTAAGAAACTCCGTTGTGCGAGTTCAATATCATTGATACAGTTAAACAACACTGGCC -CTGCTGTTTCTAAATAATCGTTCTTGCTTACCAATGATTCAACTTCGATAAAATATACATCTTTTACAAA -ATCAGTTTGATCATGTGTTTCAATGGTATATTGCGCTATGTAATGAATATTTTTAACTTTGGCGCCTGTT -TCTTCATATAATTCACGGGTAATTGCTTCAGCACTACTTTCCCCGCGTTCCCTTTTACCACCAGGAAATT -CAATACCCCGTAAATTATGTTTGGTAAAAAGCAATTGATTTTTAAACGTTGGAATAGCTAGCACATGATT -GCCATCTGCTATCTCATTATCCTTTTTAAATGTCAAATTAACTTGACGATTATCTTTATCCCTAAACTTC -ACGCGCATCACATCCCTACATTGTATGTTAATATAATAGTTAATTACTATCGTTGGAGGCATTAATTATG -AAAAAGATATTCTTGGCGATGATTCATTTTTATCAACGTTTCATTTCGCCACTCACTCCACCAACTTGTC -GTTTTTATCCAACATGTTCAGAGTACACTAGAGAAGCGATTCAATACCACGGTGCTTTCAAAGGCCTTTA -TTTAGGCATCCGTCGTATTTTAAAATGTCATCCGCTTCATAAAGGTGGCTTTGACCCAGTTCCGTTAAAA -AAAGACAAGTCAGCAAGCAAGCATTCACATAAACATAACCATTAATATGGTTGTAATTGAGTTATATCCA -CTAAAGGGGGGCGAAATTCGAGTCGCCCCTCTTTTAATATGCCTGAATGCGCCACCACATCTTGTTCAAA -ATAATAACCTGCTGGTGTAACATCTCCTGGATAATCACCTTTACGAGCAAGCATCGCTGTAAAATAACGG -CTTAAACCATATTCATACATGCCGCCAACAACCACTTTTACACCATGACTTTTCAAAGTATCAATTGCCG -TTTGCACTTTATCAATGCCACCTAGACGAAATGGTTTTAATACAACAACTTTCACATTGTATAATTTTAT -CAAATTAATTATGGCCGACAGTGACGTCGCCTTTTCATCAAGAGCAATTGGAGGTATTGTTCCATCCACT -ACGTCATCAAGCATTGAGATATCTGTAAATGGCTCTTCGATATAAAGAACCTGTTCACGCGCTAATAACT -GTAACTGTGTAAAATCTTGACGATTCAAGGATTCATTTGCATCTATAACCAATTGAAAGTGGAAGTCTAA -TTCCCGTAACACTCTAATTTGATGCATGATTTGAGGCGTCCATTTTAATTTAATTCTGGTCGGCTTTGTT -GCTTTCAATGACTCTAGTTGTTTATTTGATAAGCCGCTCGCTGTCGCTCCATATGCTACTGAAAATGAAA -GCAGTACATGAAACATTTGATACAATGCCATGACAATAGTTGCCCTTGCAGCAGGCGTATTTTCCAATGA -ATCTACTAGTTTTAGTGCAGCTTCATACGTTTCAAATGATTTATTCCTATTATCTTCGAACCATTGCTCA -ATTACATGTTTCACTGACGCAATTGTTTCATGATCATACCAATCTGTTTGAAAAGCGTTACATTCCCCGA -AATATGCATTTCCTTTATCATCATTCAATTCGATAAACAAACAATCACGATGCGTTAAAGTGACTTTCGG -TGTTACAATTTGTGACTTAAATGGCTCACTATATTTATAAAAATGCAAAGCTGTCAACTTCATCAAATCA -TCCTCTATACAACTTATTTCTTTGTAATTTACCTGTTGATGTATAAGGTAAAGTATCAACCTTTTCAAAG -TGTTTCGGTACTTTATATTTCGCTAAATGTTGTGATAAATATGCAATCAATTGTGCCTTTGAAATGTTAC -TTTCACTGACAAAATATAATTTAGGTACTTGTCCCCAAGTATCATCAGGATGCCCTACACATACTGCGTC -AATGATACCTGGAAATTGCTTCGCTACCGTTTCAATTTGATATGGATAAATATTTTCACCGCCACTAATA -ATTAAATCTTTACGTCTGTCATAAATCATGACATAACCTTCATGATCTATTTCAGCAATGTCACCCGTAT -TAAAATAACCATTTTCAAACGTACCCGTTAAATCTGTTGGATACAAATATCCATTCATCACATTGGCGCC -TTTAATCATTAATTCTCCATGACCTTTTTTATTAGGATTTTTAATTTTTACGTCTACATTGGCACTTGGC -ATTCCTACAGTGTCAGGACGTGCATGCAACATTTCCGGTGTTGCTGTTAAAAATTGCGAACATGTCTCAG -TCATGCCAAATGAATTATAAATTGGCAGGTTATATTGTAATGCCGTCTCTATCATACTGGCAGATAGTTT -AGCACCGCCGAGTAATATTTTTTGTAAATCATAAGGTTCATGTAAACCTTGTTGCATAAGCCAATTTAAA -GTTTGTGGCACAAGCGAAATGTGTGTGATGCGTTCATTTTTTATCATCGTTAAAATTTGTTCGGCATTGA -ATTTATCAACAATGCGCACAGTAAATCCTTCAATAACAGCTCTTAAAAGTACACTGAGACCCGAAATATG -ATAAATCGGCAAGACAGATAGCCAATTAGTATCACGATCAAATCCCAAGCTCTCTTTACATCCGATTGCA -CTGGCATAATGATTACGAAACGTTTGCGGCACCGCTTTTTGAGGACCAGTTGTCCCTGATGTAAACATAA -TCGATGCAATGTCATCTAAATTAAATGATGTATTTAATATGTTGGACGGCGAATCTTTCGGCACCACAGT -TTCATTCGATGTATCATATTGGATACCCATTGTATTGTCCAACAAACCGTTCGTTGTAATATCCGTTCCA -GCGAATTCAATATCATCCAGCGATACAATTTGAAACCCTCGCAATTCCAGTGGCAAGGTGCAAAAAATCA -ATTGTACATCGATTGACCTCATCTGATTCGTCATCTCATTAGGTGTCAACCTTGTATTAATCATCGCAAT -TTCAATATTTGCCAACCAACATGCATGTATTAAAATGATTGATTGAATCGAATTATCTATGTATAGCCCG -ACACGAGATTGTTGATAAGCCTTGAGCCTTTTAGCCAATAGACTCGCTTCACAGTATAAATTTTGATAAG -TATAAGATTCTTGACCGTCTGTTATCGCAATATGATGTCCATTTTGTTGTGCTTGTTTATATAACCAAAA -GTCCATGCGCTATTCCTCCAAAATCATTTACATTATAATTATAACGATTTTATGACATTCTAGCAGTGGT -TATGTTTAAAAATATAAAAAAGTAGACGAATTGATGCATTGATATGATTGTTATAATGCTCAATACATAT -CGTTATATCATTCGTCTACTATTATCAGTTATTTTTATTTAATTTTAGTGTTATTCTGTCATTCTGATGT -GGTGATTTATCCATTGTTGCCACATCATCTGCAATGTCAATCGGTCTATGATTCATATCTTGTAATGCAC -TTAAATGAAATAGTTCATCATCTAAATTTTCAATGAGATATACATAATATGTTACCTTGTCCTTTTTATA -TTTTAACGTTTTCCAAAAGTCCGGCTTGCAATTCAATACATTATCCGGAATATATTCAATAAATAAGTAA -CGTTTGCTGCCTACTTTATCTACGAAATATTTTACAGTGCCTTTTTCTATACCTCTTATATGTGCATAGT -CTGCTGAAAAGTAAATTCTACCTATTATTTCATTATGTTGTTGTATTTCAAATCGTTGGCCTACTATTTT -ATTGTTTGTGCCACAACTACTTAAAAAAATCAGTAGATATAGCATTAAACATATTTTCATCCCCTTGAAT -TTTAAAAACTTTTTCAAAAGCAACACCTCTAAAAATAATTACACTATATTATATCAAATTAAATTTATTA -TTTTATTAAATGATATTGTCATGTTCGTGTCATTTTAAGCAGTAATACAACTTTACAATTATTAAATTAG -CATTCCTACAATCCAAAAATATTTTTAAAGTTTTGAAAAAAATAAAGTATTTCCACTACTAATTTGGTAA -AATATGATTATGTGATATAGTGAAAGCGTTTTACACTTAATAACTCCCTCTTAAATGCATCCAGGTTTTA -TGTAGTAAATCATGAAAATAACATATAAATATAGAGGAGATTTACCTTTGAATACAGAGAACAACAAGAA -TCAAAACCAATCTGCTAAAAATTCTGAAAGACGTGGCATGTTAAAAGGATGCGGCGGTTGCCTTATTTCT -TTTATTATATTAATTATCTTATTATCAGCCTGTTCAATGATGTTTAGTAATAATGACAATTCCACTAGTA -ATCAATCATCAAAAACGCAATTAACTCAAAAAGACGAAGATAAAAGTGAAAATATGCCTGAAGAAAAATC -AGAATCAGAAACAGATAAGGATTTACAATCAACCGAAGAAGTACCCGCAAATGAAAATACTGAAAATAAT -CAACATGAAATTGATGAAATAACAACAACAGATCAATCAGATGATGAAATTAACACACCAAACGTTGCAG -AAGAAGAATCACAAGATGACTTGAAAGATGATTTAAAAGAAAAGCAACAACCAAGTGACCATCATCAATC -CACGCAACCTAAGACTTCACCATCAACTGAAACAAACAAGCAACAATCATTTGCTAATTGTAAGCAACTT -AGACAAGTATATCCGAATGGTGTCACTGCCGATCATCCAGCATATCGACCACATTTAGATAGAGATAAAG -ATAAACGTGCATGTGAACCTGATAAATATTAAACAACAAGCGAATTGAATTCAAATTGTATTTAGCTTTA -TGCACTAATCACATAGTAAATAATGAGGGAGATTTTTTAGGCATGAGCAATCAATTCAAAAGCGAAGAAG -AGCGAAGACAATGGGAACAATTCCAAGCTTTCCAAAATCAACAAAACCAACAGAACCAGCAATACGGACA -AAAGAAATCTAAAAAAGGATGGTTCTGGGGCTGTGGTGGTTGTCTAGTATTATTCATTTTAATTATCATC -GGTATTTCAGCTTGTACAGCTGGTATTACAGGTAACCTTGGCGGAAATAGTTCTAAAGAAACGAACAAAA -CCCATAAAATCGGTGAAACTGTTAAAAATGGCGACCTTGAAGTCACTGTAAATTCAGTGGAAACTATGAA -ATCTGTAGGACCATCTCTTGCACCAACAAACGCTAAAGGTATATTTGTCGTTGCTGATGTGACGATTAAA -AACAAAGGTAAAGAAGCGTTAACAATTGATAGTTCAATGTTTAAGCTAAAATCCGGTGATAAAACATTTG -AAGCAGATAATACAGGTTCAATGTCTGCTAATCAAAGTGACAATGGTAGTATAGAAAATTCATTTTTCTT -ACAGCGTATAAATCCAGATAGCACTGCTCAAGGTAAAATTGTTTTCGATGTGTCAGAAAACATAGCCAAC -GCAAAAGATAAAAAATTAGAAGTTATTTCTAGTTTATTTAGCGTCAAGAAGATTACATTTGATTTATCCG -ATGCTAAAAAAACATCAAAAGCTAAAAAAGACAAGCAAGATACAGAAGTAGCTGTTGCGAGTTCAAATAG -CGATAATGTAAGTTATGAAGCTTCGGCTACTACACCTGCTACAACTTCTAGTGCGGATACTGATTCTGAA -GATAGCGAAAAGTCTAGTAAAGATGAGGATAAGCAGAATGCGTCTAAAAGTGATAATTCTAGTGTAGAAA -AAAGTGAATCTAATGAGGAAACTGCTCCTGTAGAGCCCATGCCCCATAGCAAACCTACCACTAGTGAAGC -ACCTCCTAGCCAAAATATTCACAATGAAGATAGCATGTACGACGCTTCAACAGAATAAAATTTCAGGGTA -GCTCGGCTACCCTTCTTTTACGGAAAAATTAATTATACATAATCAAATCAAGGAGATAAAAAAATGAAAT -TCAAAGCTATCGTTGCAATCACATTATCATTGTCACTATTAACCGCCTGTGGTGCTAATCAACATAAAGA -AAATAGTAGTAAATCAAATGACACTAATAAAAAGACGCAACAAACTGATAACACTACACAGTCAAATACA -GAAAAGCAAATGACTCCACAAGAAGCCGAAGATATCGTTCGAAACGATTACAAAGCAAGAGGTGCTAACG -AAAATCAAACATTAAATTATAAAACAAATCTTGAACGAAGTAATGAACATGAATATTATGTTGAACATCT -AGTCCGCGATGCAGTTGGCACACCATTAAAACGTTGCGCTATTGTTAATCGACACAATGGTACGATTATT -AATATTTTTGATGATATGTCAGAAAAAGATAAAGAAGAATTTGAAGCATTTAAAAAGAGAAGCCCTAAAT -ACAACCCAGGTATGAATGATCAAGCTGAAATGGATAATGAGTCGGAAGACATTCAACATCATGATATTGA -CAATAACAAAGCCATTCAAAATGACTTACCAGATCAAAAAGTCGATGATAAAAACGATAAAAATGCTGTT -AATAAAGAAGAAAAACACGATAACCGTGAAAATAATTCAGCAGAAACTAAAGTTAAATAAGGGTATACTT -TGATTAATCGTAATTTTTAGGAGAACCGCTATGATAACATTTGAAAATATACAACAACTTGAAAAATACA -CCTTAATGACTATGCATGGTCTTTTTAATCAACTTAAACTCGGTATTATTTCAATCGACAATGCAGAGCA -TACGCTCTTTACACCTTATATGATGGAAACACTCTCTACCCTAGGTGTGAAACCAGACATTATCGATTTA -ATTCACAAAGGGACAGAGTTAGAAGACTTTTCAGCATTTAATTTATCAATTGATGATACAGTTACAGTCT -GTTTACAAAGAACTGAAGAACTATTAAAACAATACAAAAATGTAGAATTCAATGACAAAATATTAATCAA -TTGGCGCATTATGCAAGAGAAATAGACATATAAAAGTAGAACCTAACTATGTGGATATTGATTTTATTCT -TTCTAAATTACAAGTATTTCATTTTATAAAGTTTGAAAAGAGGTTTATTGAAATGGAGAAAAACGAATAT -ACAGCTAAATATAATGAATATAGTCAATTATTAGACGCTACTTACTCGCAAGCTGTAGCATACCTTTTAA -ATAAATATGGCGCTGTAACCGATGACTATTATAAGGAAAAATCATACACACGATTTTTAAATGGAGAAAT -CAAAAGTATTTCAAAAGGAAAATACACTAGAGCTAGCGAAGGATTATATTGTCATCACATAAGCGAGGAC -AAATTCCAAAACTTATCTGACCTAAGATTCATTTCCGAATTTAAGTACTCATACAATTATCAAAAGAAAG -AAAACTTAGTTTACTGCGATTTAATCGAGCATTTAATTTTACATGCAATTATTACAAAAGAATCCAATGG -CCAATTTGGTGTGGCTGGATTATGTCAAATGATCAAACCAACAGTCATTGATTGGTACATTGGCGAATAT -AATCCAAAACCAGCATGGATGCAAGCCACCAAAGCACGTGCCTATTTGCCTGGAATATTAGTAGAGAAAT -TACTCATTAAAATTGACGATATGTTAAAAGGCATAGAAATATATGATTTCCTTGAGTCTAGATAAATGAT -TAATGGAGATTTATTTTTTGCTGTTGAGATTTTGTTATAGATGTTTAAACCTGTAATTAAATATATTTTA -TAAAAATAGACCACGCATACCTCTCTATAAACGGACAATGTTTATAAATGAGTTTGCATGGTCTTGAATT -GTATTAGTTTTCTTTTAGTTTTAATAAATCGACTAGATTTTCTGATATATTATTTTTATTAATAGTACGA -TTATTTGTTTGATTTGATAGAAAATTAGATTGAATATAACCTATATGTCTGTATACGTCAGGGAATAATT -CACTTTCAACATAATGATACTGTTTTAATTTCTCCCTTAATTCTTTACAAATCTCAGGCCTTAAATATTC -ACTAGTCAAGATTTCCTCTTTTTTCAACCTTGCATCTAAATATAGTTTTTTCTTTTTTAAGTCTTCCATT -TCTTTATCTATTTTAATAACGCTTTCATCTTTTAAGATTCGTTTAATTAAATATTCCAATTCCTCTTTGT -AATCATTAGATTTTTCACTATCCATGTCATGTTCAGTTTTCATAGTTAAATTGCGTATTCTTTTGAGGTC -TTCTTTAATTCTACTCTTATGATTTTTCAATTTCTCTTCTCTAGTTATTTTTAGTTTTTGAAAAGCAGAT -TGCGTTTGATTTAACTCCCTTTTTAATTTTTCTTTATAGTCATATGAAAAATTTAACTTTAAACGAACTA -GAGGTATTTTATTAATTTTATCTCTATTTACATTTTGTTCATTCTGAAAAATCAATAGCTTTTCGAAGTT -AAAAAACGCACCCTTTTGAGCTATTATTCTTTTGTTTTTACTAATCATTTTTACTCTTGAAAACAAATTT -TGTTCGCTGTGTATTTTAGGATTGATATTATACATGTCTAAGGTTGCATTGTTAAACACTTGTGAGTTAG -AAGTTAAAAATAGGAGCGCTATAAAGGGGTTTTCAGTAATATCAATTAATGTAGTTCTTAGCCCATAATG -TTGTAAATAAGCCATATTGTTTTCTCTTTTTTTAAAATCTTCTGCTTTATATTCTTTTTTATTTAAGCAC -GTATACTCTATTAAATCTGGGTACTTATAAGCCATATCTTCGTATATATTCTCAAACTCTTTTTTTAAAT -CATCTATTATATCATTTCTTAATAATCCTGCTTTCATTGGCCAATCATTTGCTTGACCTCTATAATAATT -CGTGGTTGAAGTATCATCATATAATATTTCAAAAGTTTGGATTAATTCTTTATACAAGTAAAATAATTTC -CATTCTTTTTTACCATTAAAATTATAATTATTTAGACGTTCATTCAATAAATATATACTGTCTCTGTATG -ATTCTAATTTTGGATCATAATGATTCAATTTCTTACAAGTAATTGAATCAATACTATATAATACTTCATT -ACTTTCCTTTATTTCTGATATTTTAAGGTTAATGTCTACATGTAAAACGTTGAAAAAATCTTTTTCTTCA -TAAATTTTATCGAAATTTAAATATAAATATTTAGTATTCATTATTTATCCAACCCTAAATTATAAAGTCT -AATCCCAGCTGCTATTTTAGAAACTTCCAACTTAATTGCAATATAGTTAATTAACTCTTCTCTTTCTGAA -ATTGATAAACCAGAAGTTAAATTAATATTATTTTCCTTGTAAAACTTATATACTAAAGCTTCCATTTGCT -TTTTGGGCATTAGTAAATTAGCTGAAAAGTCATTAGCCACCCTTTCTTCAATCATTTCTTCAGTGTCATA -TGCATAACTATTATTTCTATATTTGATTTTATTTTTATGATTGTGTAAAAAATGTCCTATTTCATGGGCA -ATTGTAAATCTTTTTCTATTACTAGAATGATTTTTATTTACATAAATAGTTCTTTCATCAATATAACCCG -AAACATCATCATCCAAATCTTCATACTGAATTTTTAAATCCAGTAATGCGGTCACTTTATTTAAATCAAT -TGCAAAATTATCAGAAGTGATATAAAGTTCCTTTTCTTTCCCCTGTATATATGGTTTAAGCAGATTAAGT -ATGTCATCTTCTAATACATCTTCATAATAAACTTTGTCAATGGCAGTCATAAAAATCGCCTCCTAAAAGA -TATTGTTAATCTTCTCTATCTATTAATTATATTTTATATTCTAAAGCTTAAAATAACCAGTCTAACTTTC -ATTATTTTAGTCACTAATTAAATATGCGCATATCTTTACTTACATTTATTGTTTTAATCACTAAAATTAA -TAATAAAATATTTTTTCACTGTACAACCGAATCTAATCCAACGATCCCGAAAAGAAGAACAACGGTGGCT -CGGCTTCATATTCATTTTTGTCTAAGTGTTCTTTTTCAATTATTTCATCCACTGTTAATCGGTCTTTAGC -ATCTTTCTCTTTCAATAATCGCCCTATTTTTTCTTCCTTATATCCTATGCTACTATTAAACTGATTTCCT -TCATCTCCTGTATTTATATATGCCTGAAATTTATATTGTTTATCATTATTTATATATCCTTTAATAAAGT -AAGCATTCACAGGGCTTTTTTGAAACTTTGTTATTTTCATAGACTTATAGTGATTCAGGTTATGCTTAAA -ATATAAATCGATTCGCTTTTCTTGTGTCTCAATATAATGTTCTTTTTTACTTTTGTGAAACGCGTATGCA -ATAACAATTAGTACTATTAATAATGCAACAACTACCACAAATACATATCTCTTTTTCATTTTAACCCCCA -TAGTTTAGTATTTATTTCTTATAGATTTTAGATTTCAAAAAACAATTCACTTTGACATGCTATCTTTTTT -CTATGTTCCGTTTACGCCCCTCATGAAACGTTGTTTCAAAATACTTTTAAAAATTATTTGCTTGACATAA -TTATAAATACATAAAATAACGCTGTTATATATGGGTTTATAAAATGTAGGAAAATGGCGAAATGAAAATG -CTGTTTTTCCTAACATCAAAGATGTTAAATCATACTCGCGTATAATTTCATTCCTTGGCTTACCATTTTC -ATATAATCTAACCATTTATAACTTAAACTCTGAACTAAATGTTCTTCTTTCTTAAATTAACAAAATCTAC -TATCATAGAATTTGTCCAATTAGATGATATAATAGTAGAGTCGCCTATCTCTCAGGCGTCAATTTAGACG -CAGAGAGGAGGTGTATAAGGTGATGCTTATTTTCGTTCACATCATAGCACCAGTCATCAGTGGCTGTGCC -ATTGCGTTTTTTTCTTATTGGCTAAGTAGACGCAATACAAAATAGGTGACATATAGCCGCACCAATAAAA -ATCCCCTCACTACCGCAAATAGTGAGGGGATTGGTGTATAAGTAAATACTTATTTTCGTTATCTCAATTA -TACTGCTAATTTTTCTTTTTGTAAAATATGCAAGGTTTTAAAGAGAAACATCAAGAACTAAAGAGTGCTC -TATGCCAAATTGGACTGATGCGTTCAATATCGGAAGTTAGGCAACTAAACATTGCTTAACTTCCTTTTTA -CTTTTTGGAGCGTAAAGTTTTAAACATAATAATATTCGATTGCGCAAATGATTGTAACTTCCATAACCAA -AATTTGTATGTTATGTAATGATTTTTTAAAATACTCTTGTCCTTTAATGATTGTGAGGATAATAATAATT -TTTATTACACCATACAACCGAATCTAATCCAGTGATCCTGAAAAGAAAAACAACGGTGGTTCCGCTTCAT -ATTCACTTTTATCTAAGTGTTCATTTTTAATTATTTGATCGACGGTTTTCCAAGTTTTTACTTCTTGCTC -TTTTAATAGTTTTCCAAGTTTTTCTTCGTCATATCCTATATCTCTTTGAAATTGCTTTCTACCACCTACA -TTAATAAAAGCTTGGAATTCATAGTCTTTATTGTTATTTATATAACCACCTATAAAATAACTGTCCATTG -GCGACTTTTTAAATCTCGTTACTTTAAGTGACTTATAATGATTCAGGTTATACTTAAAAAATAAATCTAT -TCTCTTTTCTTGTGTTTCAATGTAATGGTCTTTTTTTTGTTTATTATGTGCATATGAAATAACTATCATA -CCTATTAAAATTACACTAACTATTATTAAAATATATTTCTTATTCATCACTCTAATCTCCCTGAAAAGAA -GAACAGTGGTGGTTCTGCTTCATATTCACTTTTATCCAAGTGTTCTTTTTTTATAATATCTTTAGGTTTT -AATTCATTTTTATGGTCTTTTTCTTTAAATAATTTACCAAATGTCTTATCATCGTATCCTATGCTATCTT -CAAATTGATGATTGTCAGTTACAGAGATGAGAACTTTAAAATCATAATTTTTGTTGTGATTAACATATCC -ATCCACAATATAGCCACCCATAGGCGTCTTTTTAAAACTAGTAACTTTCATAGAGCTATAATTATTAAGG -TTATACTTAAAATATAAATTTATTCGTTTTTCTTGCGTCTCAATGTAATGGTCTTTAGTTTTCTTATTGT -GCGTATAAGCAATGACTAGCAGTCCTATTAAAATTACTATAAGTAATATTAAAATATATTTCTTTTTCAT -CACTCTAATCTCCCCGAAAAGAAGAATAAAGGTGATTCCGCTTCATATTCATTTTTGTCTAAGTGTTCTT -TTTCAATTATTTCATCGACAGAGAGTTTATATTTAGGATCTTTTTCTTTGAATAATTTGCCTAATTTATC -TTCATGGTAACCAATATCTTTCTGATATTGATTATCGCTTCCCGGATCTATACTTGCTTGGAATTTATAT -TTTTTATCATCATTTATATAACCTATAATGAAATACCCACCCATCGGAGTTTTATGGAAATCTGTCACCT -TCATATTTTTATAATTGTTAAGATTATGCTTAAAATACAAATCTATCCGCTTTTCTTGTGTCTCAATGTA -ATGGTCTTTTTTTGCTTATTATGCGCATATGCAATAATAATTAGGCCTATTAATATTGCAACAACTACCA -CAAATACATATCTCTTTTTCATTTTAATCCCCTAGTGTAGTATTTATTTCTTATAGATTTTAGATTTCAA -AAACCAATTTACTTTGACATGCTATCTTTTTCTATGTTCAACGCCTCTCATGATTCGTTGTTTCAAAATA -CCTTTTAAAAATTACTTGCTTGACATAGTATTAAATACATAAAGTCGCGCTGATTTGCTTTTCGTATTAT -GTATAAAATAGCAATCTTATTCTAAATTAATATCTTTTTAAGTTCACTTATCATTTTATTACTTAAATCA -AAATTTGTCTCTTTTCTAACATTTTACTTTACATCAATTTTAATTACTTTAAATATTGTATAAATTAATT -ATTTAAAATGCTATAATCGATAAGATTATTAATATTTAATTTTCCAATTTTAATTTCTTTACATTTTTAG -ATATTAAATAAATCTCATGGTGACTGATGGTTTCCATGCATCAACGAATTTCCCAATCCTTTGGAAAGTT -GAATCATTAATTAATCCTAATATCAATTGCACACACGCAAAAAAGGAGACATGTCAATGACAAATAAAAT -GAAGAAATGGCAAAAATTATCCACCATTACGTTATTAATGACCGGAGTGATTGCTTTAAATAATGGTGAA -TTTAGAAATGTTGATAAACATCAAATCGCTGTGGCTGATACGAATGTTCAAACGCCAGATTATGAAAAAT -TGAAGAAGACGTGGCTCGACGTTAACTACGGTTATGATCAGTATGATGAGAATAATCAAGATATGAAGAA -GAAGTTTGATGCTAAAGAAAAAGAAGCCAAGAAGTTACTTGATGACATGAAAACTGATACGAATAGAACA -TATTTGTGGTCAGGAGCTGAAAACCTTGAAACTAATTCTTCTCACATGACAAAAACCTATCGTAATATCG -AGAAAATCGCAGAATCAATGCAACATAAGAATACGGTATTAAAAACAGTTGAAAACAAGTTGAAAATAAA -AGAAGCCCTAGATTGGATGCACAAAAATGTTTATGGCAAGAATCCTTCTCAAAAAGTCGAGGATTTAACT -AAAAATCGTAAGGGGCAAACTACACCCAAGAATAACTCATTGAATTGGTGGGATTATGAAATTGGTACGC -CAAGAGCATTAACAAATACACTACTTCTAATGGATGATATGCTCACTAAAGATGAAATGAAAAATTATTC -AAAACCTATTAGTACATATGCACCATCCAGTGACAAAATTTTATCTTCTGTTGGTGAATCAGAAGATGCT -AAAGGTGGAAATTTAGTGGACATTTCTAAAGTAAAACTTTTAGAAAGTGTTATTGAAGAAGATGTAGATA -TGTTGAAAAAGTCTATAGATTCTTTTAATAAAGTGTTCACTTATGTTCAAGATTCTGCCACTGGTAAAGG -TCGCAATGGATTCTATAAAGATGGCTCTTACATTGATCATCAAGATGTCCCTTACACTGGTGCTTATGGT -GTTGTACTATTAGAGGGTATTTCTCAAATGATGCCGATGATAAAAGAATCTCCTTTTAAAACTACACAAG -ATAATGCTACATTAAGCAATTGGATTGACGAAGGGTTTATGCCATTAATCTATAAAGGTGAAATGATGGA -TTTATCACGAGGTAGAGCTATCAGTCGTGAAAATGAAACGAGTCATACAGCGTCAGCGACTGTAATGAAA -TCATTGTTGAGATTGAATGATACCATGGATGATTCAACAAAAACTAGATATAAGCAAATCGTTAAAACTT -CTGTTAATTCTGATTCAAGTTACAACCAAAATAATTATTTAAATTCATATTCAGACATAGCTAAAATGAA -AAAGTTAATGAATGATAGTACTATTTCTAAAAACGATTTAACACAGCAACTTAAAATATATAATGACATG -GATCGTGTCACCTATCACAATAAAGACCTGGACTTTGCATTTGGTTTAAGTATGACATCGAAAAACATCG -CACGATACGAAAATATCAACGGAGAGAACTTAAAAGGTTGGCACACCGGTGCAGGCATGTCTTATTTATA -TAACAGCGATGTCAAACACTATCGCGATAACTTCTGGGCAACAGCCGATATGACTTGTCTTCCAGGCACT -ACTACTTTAAATGATATGCCATCTACTAATACTAAGAATGATAAATCTTTTGTTGGCGGGACAAAATTAA -ATAATAAATACGCAAGCATCGGTATGGATTTTGAAAATCAGGACAAAACTTTAACTGCCAAAAAATCATA -TTTCATATTAAACGATAAAATTGTCTTCTTAGGAACTGGCATTAAAAGTACTGATTCATCAAAGAATCCA -GTTACAAGTGTTGAAAATCGCAAAGCAAATGGGTATAAATTATTTAAAGATGATATTGAAATTACCACTT -CAGATGTTAATGCTCAGGAAACCCATTCAGTCTTTTTAGAGTCCAACGATACTAAAAAGAACATTGGTTA -TCATTTCTTAGACAAGCCAAAAATAACTGTAAAAAAAGAAAGTCATACTGGTAAGTGGAGTGAAATTAAT -AAAAGTCAAAAAAAAGATGACAAAAAAGATGAGTATTATGAAGTAACTCAAACACATAATACATCTGACA -GTAAATATGCATATGTTTTGTATCCTGGTTTATCAAAAAGTGATTTTAAATCGAAGAATAATAATGTAAG -TATTGTTAAACAAGATGAAGATTTTCATGTGATAAAAGATAATGATGGCGTATTTGCTGGGGTTAATTAT -AGTGATAATACTAAATCTTTTGATATAAACGGAATTACTGTTGAATTAAAAGAAAAAGGCATGTTTGTAA -TTAAAAAGAAAGATGATAAAGCATATAAATGTAGCTTCTATAATCCTGAAACTACAAATACCGCTTCAAA -TATAGAATCAAAAATTTTTATTAAAGGTTACACCATAACTAATAAAAGTGTCATAAACTCTAATGATGCT -GGTGTAAACTTTGAATTAACTAAATAATTAAGAAAATCTCGGCACTATAACATTTTTATAGTGTCGAGAT -TTTATAAGCATTGCAAGATTTTATATCATAGTTAAAGTCATCTATTGATTTATATATTTTTGTTTCATCA -CAATATGAACAATTATTTATTGGACGTATTTAGCTCTTTCTTTATTTCAGAAACTGACTTAGGATTTTTA -ATAAATTTTCTACCCAATTCATCTGTATAAGAAATATCAGTATCAAATTGAAAATCATCAATAGATCTTA -TGCCAGCTGTAAATGATAACTTTCTATCATTATTTATATAACCACTAATAGAATAGCCATCCATTGGGTT -TTCTTTACAATTAGTAAAGCTTATATTTTTATAACCTTTCACATTGTGCTTCATATAAATCGTTATTCTT -TCTTTTTGTTCATCATAATATTTCTTTTCGTCGTATTTCATCTTCAAAAAGATTCCGCCTAGAATCAATA -TTAAAATTATAATTACAATCATAAGAGATTTTTTATTCAAAAAATCAATCTCCTTTTCACTGGACTTATT -GACAAACATTTTAAATAAATTAAGCATACTGAGTTTTACGATGATTGTATAAACGTTGCAAATCATATGA -CTGTTGGTTTTAACATTAGTCAATTTTTCTTTCTTATAATCTTAAATCATGATCAGGTTTACTTTAAAAT -TTAAATAATTATATTTTTCATCCATTCTATCCATAACATTTATTCAATTGGACCTGAAAAGAAAAATAAC -GGTGGATCGGCTTCATATTCATTTTTGTCCAAGTGTTCTTTTTCAATTATTTCATCGACTGAGAGTTTAT -ATTTAGGGTCTTTTTCTTTAAATAATTTGCCTAATTTATCATCATGGTAACCAATATTTTTCTGATATTG -ATTATTGCTTCCCGAATCTATACTTGCTTGGAATTTATATTTTTTATCATCATTTATATAACCTACAATG -AAATACCCACCCATTGGAGTTTTATGGAAATCTGTCACTTTCATATTTTTATAATTATTTAAGTTATGTT -TAAAAAACAAATCAATTCTTTTTTCTTGAATGGCGATATAATGTTCTTTTTTTTGCTTGTGCGACATATA -TGCAAACATCATTAATATTGCTATAATTAAAATAATAATTAAAATAATAACTTTAGTTTTCCGAATCATA -TTTTACCTCACTTTTAAATTTTTAATAAAGGAGTTTTTATTTTGAATCTTTCAGACGCTCTTTCAAGAAG -TGTTTCCGATATGTCTTATGAAAATTTAGATAAAGATCAAACATACGACTTTCTTGGCCAAGATTACAAA -GTCATCGAAAAACGCGACGATACCCAGAATGGGTTTAGAGCATATGTTTTCGCTCCAGTAATCAAAGGTA -AAGTTGATAAGAGTCAACTTTTAATAGGTTACGCTGGCACTGACCCATATAGTCTAAATGATATTCGTAC -TGATTTACAACTTCCCATTCATCATAACACAAATAATCTAAAAATTAATAATCATTATAAAGATTTAAAA -AACTCAACTATTCACAAAAAATACAATACAATAAAAGATAAAAATGACCTTTTTAGTTTTTCTTCTAATT -TAAATAATAAAGCACTTTTCGGTGATCTATGGGCAGCTAAGTTTGCACCGACTCAAATGGACGAAAGTGA -TGCTTTTACTGAATCAGTTAAAAAGAAATATCCAGATAGTGAAATTCACCCATTAGGACATAGTTTAGGT -GCGTTTTTAGCTCAATATAATTTAATAAAACATAATCTGGATAACGGTACAACGTTTGCAGCACCTAACG -TATACCATTCATTTACTGGAGACTTTAAAAAAGACATTGATAATGGTGTCTATGATTCAAAAATACGCAA -TATTGGCCATTTTGATGATCCTATTAATAATTTGAATTTTTTTAATCCTCGTATTGGCAAAAATATTACA -TCAATGCCACATTATGATGGATTTATAACTAACCTTCCTTTGATTGGTCAACACACGCTTAAATCTTACA -ATGATTTCGATGCAGATGGTAATGTGAAGGAAATGCCAGAACTTGAACAATTTAATGATGACCAATCTCT -TAATAATAGATTTCAATTATTTGACCCATTTGGTATAAAAAGCAGATTTTTCGACTCTATTAAAATCGAT -AGTTCTATATTAAATAGAACAAGTGAAAATGATTTTGATCCTTTTGCTATTCTCAATAAAAAAGATAAAT -TATTCGAATCAAATGACCTTGATATAGAAGGATTTAATAATAAACAAAAAGAAGATTTAAGCATTGATTT -AAATCCTTTTGATGATGAATTAAATGATGAGGACGAACCATTAATTCCCAAAAGAGGCGATAGTAAAAAA -TTAAAAGCAGAAAAGAAAATCTCTGTTAAAAAAACCAAAAGTAGTTCCAAAAATTCAGGCAAAAAAGTAA -TAATTCAGCCTGATGAAGTGCGTAATATCGCTAGCACAATTCGTGATAGACTATTTTTGTATACACAAAT -AATTACTGCATTGGATGAATATAGAGAAGAAACAATGTCAGGGGCTAATCGCATTTTAGATAAATATCAA -TCAGAGCTTCTAAGCGGTTCACATGAATTTATAACACCTAACGATCTTGAACAGTATATGGAGATTTTAT -CAGTTGAGGGAAGTTCAGGTAATTTCAAGTTTTATAATAGTGGTTTAATGGATGACTTAATTCAGGCATT -AGATCAAAACAAAAAAGACTTGCTACAATTTGCTGAAAAACTAGAATTTGCTGCAAATAAATTCGAAGAA -AAAGATTTAGAAGAAAGCGATGTTTTTGGACTATTTAGTTAAAGAGGGTAATTTATATGAGCTCAAAAGA -TGCAAAGAAAAGTCAAGAAGAAGCTAGATTACAACAATTAAAGCAAGAAATGCGTAATAGTACTGATAAT -ATGGTTAGCAATGCTAAAAATAATGTAGCATTAAAATTTCAAACATTAAATGAAATCATTGAAACAATTA -ATAATTCTTCGCAAAGTTTAGAAGGTACATTTGAAGGAAAAGCAAGCGAAGCAGCCCAACAAAGTATAAA -TAAACTCAAAAACAATAACGAAAATCTTAAACAAAAATTTGAGACCCTATTAAATACATTGAAGATAAAT -GGATGATATTGAGAAATTATTAATTTATCTGTACTTTTTTATACATTACTAAAATCCCCTCGCTAAACAA -ATAGTGAAGGGATTTTAATTTTTATTTCTTATCTAACTTATTTTAGTATCATTAATAAAAACTACAATTT -TATCATAGTACAGATTTGCCAATTTAAATGTATAATTTAATTATATTCTTATTAAGTCACTATTTAAAAA -GAAGCATACTCTTTATATATTTATCCTATTAAACAAATTAATATGTCTATTATTCACCTATATATCTTTC -AGTGTATCGATCAACATGCTAAAACACATTTGTGTAACTCTATCTTTAGTACCATCTTTTAATTTTTTCA -TCTCACCTATAATATATTCTAATTGAATATTATCATCATTATTACAATGATTATCTTTAATGAATGCACT -TAAATTAATAATTTTCTCATTACTACTTTTAAGCTCATTTGATACTTTGTTTAAATTATTATAGATTATT -TCTATAGTATCTATATCTTTCATTCCAATATACGCTTCTTTTAATTTAGTTCTATTTGTAAAGTCACCAT -TTAAAATAGTTTCTAAGTATTGGTTATATATAGAAGTCATCAAAGTTGTTCTTTTATTTATTAAACGGTC -TTTTAAACTTTTGATTTCTTCATATAGTTGCTCGTTTGAAAAGCTAACTAAATCTAGTCTATTTATCGTA -TCTCCAACTATTAAATTATTCTGATGCAAATCGTAATTATCCACTAATTCATCTTCTAATTCGCTAATTT -TAATGCCATCTATTAAATATAAGTTTTTTCCTTTTAAATTTAATAAAGATAAATAAGCTTTTACTTTATA -ATTAAAATTTTCATTGTTTTTATCTTTTATTATTTCTATAGCTTGAATTTCTTTTTCAAGTAGTTCACTT -TCACTTAATTTAAAGAATTCTTTTAATACATTTAATAAATCAGCTTTAGCATCTTCTTCTTTGAAGTTAT -TCGTTATATTTTTCAAAAAAATTGATTCATCAAAAATACCATATAATAATAAGTTCTTTAGCTCTATATC -AAAAAAGACATAATTTGCTAGTTCATTATTTTTGTATAAGTATTTAAACAAAGCAATAGATGTTTTCGTA -TTTAAATTGTTAAAATCATTATATGTAAATTGAAGATCCTTAATTTCAGATTCACCTAAATTTCCGCTTC -GAAATTCATTATACAGAATGAATAATGAAATGAATAATGAAATGTACAAGGTGATTTTAAAATCTTTTGA -TTTATATTTAATCTCATCTTGCATTTTATTAATAATTAACTTGAAGTTTGAAACTACTAAATTCAAAGTT -CTCATATTCAAATGGTAATATTTATAATTTAAATTATTTTGTTTAGATTTTTCGAAAATAATTTCTTTTT -TTTCATCACTTATATCAAAAAAACCATTAAATAGCTCTTTAGTAGAGATGTTCTTTACAAATAACTTAGG -TAAATTACTTTTTACTATATCCATTGCTACTTCTCTATTATTAGGAAACTTTAATATTCTAGAAATTATT -TTCTCACTATTCTTATGAAAATCCGCTTTTTTATTTAGCTCATCTAAATTTCCTATAAATAGCACTTTAC -AGTCTAAATAATCAATTAAATCATTTCTAATAAATCCCAAAAATTCTTCAAAACTTACTTTGTCACTCAT -TCTTTCAACATCATCGATTATTAGCAAAGCACTTTTATTATTTTTCATCAGGGAATTTTTTATCTTTTTT -AATGAATTATCATCAATATAACGTAATATGTTATCAGAAAAGTTATTCATATTTAAATAAGGTACTACTT -GGAAATTTTTCATGCTTTTTAGGACTTTCCTAAGATTTTTAGTAGATGTATTTATCAATTTACTTATGAT -TATACTCTTAATTTCATATAAGTTTTGCAGGCCATATAAACTTATATACCTAATTTCTATTTTATCATCA -AATTCCTTTAATATTTTATTTTTAATATAATAAGTTTTCCCTACTCCCCATTGTCCATCTATAAAAAGGG -CGAACAATTCATCACTATCTATATAGTTTTTAATTGCTTCATTTAATTTTTCCATCAATTCACCTCTACA -AAATTTTAAATTCTATATCATTTATATAAAAATTTTTTGAAGTAATCCTTGTTTGAGACTTTTAAGTATC -TCAATTTTACATTTATTAAAACTGATATATTTATCAATTTTATAAAATAGATCACCTATTTTTTGCTGTT -CTTCTAGATTATGGGGTATCTTTATTATACTATCTAACAACTCTTTTTTTGTTATACCTTTAATTGAAGT -TCCTTGTAGATTAGCGCTAATTTTTTTCATTGTATATAGCAATGAATATAATGAGTATAATTTGTCATAT -TTAAGACTACTTAATGATAAAAAATCTTGACTTGTAGCATAATCAAATTCTACCAAACACAGTTTTCCAA -CCCCGACTCTTGTAACTATTGCAATTGAATTGGCAGGAATAAGTTTTGCAGAAGAAAGCTCAATTGAATT -CTTGGAAATAAATTTATTACATTGTCGTAGAATCAAATCATTTACTTTTACGTCAGAGCTTTGAATCCAT -GGAATATCTCCATTCCAAAATTCTTTAATCTTTGTATTTGGTGTTCCGCCTCCATATACTTGGCTTGCTA -TATCTTCTATTTTCTTCTCTTCCCAATTCGGATAATCGTTTCCATTCTCATCCTTGAATCGCAATTCCTG -TGAGAAGATTTTCTGCATATAGCCTTTTTTCTGTTGTTGAAGTAATTCAAGTTTTTGTTCTTCTAATTCA -ATTTGTCGGTCGAGTTTGATGAAGAATTCGCCTATTTTTTGCTGCTCTTTATTTGAAGGGACAAATCTAT -TTATTTTATTAATGGTTTGTTTACTTAAGCTTGGCACACCTGTTGATTCATCGTATACTTTCCAATTTAT -TTTTCTAAATAAACTTAATATAAATAGTATGTCTGTTTCTTTTTTAGGTGTACAATAAAATAATGTATCC -ACCGTCCAAAACGGCGCCTCAAGCAAATATGGTTTGTTTATAGTCCCTTTTCTCCCAATACCAACAGCAT -CAATTTCACTTAGTGGTTCTGAAACACTTGTCATATAACCGCCAGTACCATAGACTGGTATATCACCTTT -TTCCAAATGTTTATAATCTTTTCCAGAATTAACTTTTATAAGATCCCCTAACTTTTTCTCTTCCCATTCG -CCTTCAAACCCTGGGAATCTCAACTCTGGCACATTTTTCGTTTGTGTATTACTCATCTTTCAACACCCCA -AGTTCTTTCAGGTATGCATTGATTTCTTGTTCAATTTCTGCGATTTCTTTATCGATATTTTTCAAATCTT -GTTGGACTTGATCTAAATCAATTGGCGCTTCTTCTTCGAATGTATCGACATATCGCGGTATGTTTAAGTT -GTAATCGTTATCGGCAATCTCTTGTAATGTCGCGCTGTAGCTATATTTATCAATCGTTTTTTTACGCTTA -TATGTGTCTATAATACGTTCGACTTGGGCATCGCTTAAATGGTTTTGATTTTTTCCTTTTTCAAAATCAT -TGGATGCATCGATAAATAATACGTTGTCGTCTTGTTGGCGACATTTTTTAAATACTAAAATACATGTTGG -AATACTTGTCCCATAGAAAATATTCGCTGGCAAACCAATCACGGCTTCTAAGTAGTTCTTTTCTTCAATT -AAATAACGACGAATGATACCTTCTGCGGCACCACGGAATAAGACACCATGTGGGAGTACAACGGCCATGG -TACCTTCATCGTCTAAGTAATGTACCATGTGTTGAATAAAGGCAAAGTCTGCTTTGGATTTTGGCGCAAG -TTTGCCGTAACCACTAAAACGTTCATCATTTTCAAATTTTGAATCTGCTGTCCATTTCGCACTGTATGGT -GGGTTCGCAATAACCGCATCAAATGTATTGCCTAAAAAGGCTGGATTTTCCAACGTATCATCATTACGGA -TATCAAAGTTCTCATAACGTACATCATGTAACAACATGTTCATGCGTGCTAAGTTGTATGTGGTATTGTT -ACGTTCTTGTCCGAAATAACGATATACTTGTGTCTCTTTACCAACACGCAACAGTAATGAACCTGAACCA -CATGTTGGGTCATACACGTGACGTAATTTATCTTTACCGTCTGTGACAATCTTTGCCAGTATCTTAGATA -CTTGTTGTGGTGTATAGAACTCGCCAGCTTTTTTACCCGCTGTCGCCGCAAAGCGCCCGATAAGGAATTC -ATATGCATCACCTAACATATCAATTTCCATATCACTGTGAACGAATGGTAAATCGTCAAGATTAACCATA -ACTTTGGAAATTAACGCAGTACGTTCTTTGACATTGTTACCTAAACGCGTTGAACTTAAGTCCATATCGC -TGAACAGTCCGATAAAGTCATTTTCACTTTCTTCACCTAGTGTTGATGTTTCAACTTTACGAATTGCCGT -CGCCAGATGTTCGATATCGAAATCTTGCGTTTCAATTTCATGAATCATCGCGCTGAATAAATCTTGTGGC -TCAATGAAGTAACCGACTTGGTCAATTAATTCTACTTTTAAGTCTTCACGGTATTCTTCATCTGCCCATG -CTTCTTGATACGTGATGTCTTCACCTGACAAGGCATCTGCATATTCTTGTTCGGCTTTTTCAGATAAGAA -GCAATAGAAAATCAAGCCTAAAATGTAATTACGGAATTCACTCGCATCCATGTTCCCTCTTAAATCATTC -GCAATCGACCATAATTTTTTATGTAATTCAGCTTGTTGCTGACGTTGTTTTTCAGTAATAGACATGTGAT -TCCTCCGCCTTTGCATAAGTAATTTATCTCTTTGTGTAATAGATTTATTATAACATTTGGTTTTGTTGCG -ATGTTTAGAATTTTGATGTTGGTTGTGGAAATTTTGAGTTTTAGCGGCGCAATTGTTATTGAAAATTTTT -TTGGAAATGTTGTAGCTTTCAAATGCTTTCAAAATCATTTATATTCTCAATGATGTCAAAAAGTTGTTCA -TTCATACATAAATAAAACCAATCAACAATTGAGTTGGTGAAAATCAATCATTGATTGGCTTTGATGCATA -TTAAATAATGCAATATATATTAATAAATGTTAGTTATAGTATATTTTGTCAGGATTGGGTGAATGTCTAA -GTTTTAATTATTTATCTAAATTATCTGCAATGAATTTCTTAATTTCAGGAGAGAAATAAACAGCGAATGC -TCTTGTGCTTTCACCTGATGGCTTATTACCTGCATAGATTACACCAATAGCTTCGTACTTACTATTTAAT -ATAGGTGATCCAGAGCTACCAGGCTGGATTATTGCATCCGATGACACTATATTCCCATTCACTGATAATA -CTTTACCAGTTGATTCATACATTTGTAGTTTATTTCCATTAGGATTTGGATAACCAATGACTGATATAGG -TTCATTTTCTTTAGCCTCTGATGCTATATTAAATTTGCTAGTGAAATCTTTGAATTTTCTACCTTTTGGT -TGTGTTGATTTTTCTTCAACTTGCACAACCGCAATATCTTCTTTACCAGGATAATCTACAATCTTAGTAA -CTTTATAAAGTCCACCACCATTATTATAAAAACCATTAGGATGTGCTTTAATTTCATCACCGACTTTCAT -GTGATAGGTAACATGTTTATTAGTAATGATTGTATGATTTCCAACTACAAATCCTGTTCCTGCGCCCATC -CATGTAACCCCACTGTATGGTGCAACATTTGTATTTGTAATTTATTTTACACTATTTTCGGCTTTGGCTG -TTTGTTGAATACCCTCAACCATTGTTGTGCCAACACCAGTCACTGATGTTAAAATCGTCAATGCTGCAAT -ACTTTTGATGATTATATTTTTATTCATTTTTGTGCTCCTATAATTATTCGTATTAATATAAGGTTAGGTT -TTTGAAGTTTTATTTTTTTAATCATTTCGAATAAATAGAATCACGGAGATATGATTTGAATTGTTGATTT -TGTTGTTAATTTTTAAAAATCATCTATCTTATGTAAGGATTGATTTATCTGCTTAATTATTTATCTAAAT -TATCTGCGATGAATTTCTTAATTTCAGGAGAGAAATAAACGCCATATCCTTTTGTACTTTTATTTGCAGG -GCCGTTTCCACCAAAGTGAACACCTACAACTTCGTATTTACTATTAAATACAGCTGAACCTGAGTTGCCT -GGTTCTACGAAAGCATCAGAAATAATCATGTTGCCTTTCACTGATAGCACTTTTCCTGTTGATTCATACA -TTTGAAATTTATTTATATAAGGTTCTGGATAGCCAACAATTGAAATGCGTTCATTTTCTTTGGCTTCTGA -TGCTATTTTTAAAATACCTGTATAATCTTTAAAATTCCTATTTTTTGGATGAACAGCTTTATCTTCCACA -TGTAGAATGGCAATATCTTCTTTACCTGCATAACGGACAATTTTTTTAACTTTATAAAAACCGCCATTAT -TATATTCACCATTAGGATGCGCAATAATATGTGCGCCAATTTCCATACCTGCAACGACATGCTTGTTAGT -AACAATTGTATTTTTTCCGACAATGAAACCTGTTCCAGATCCTATCGAAACGATACCATTGTATGGTGCT -ACATTAGTATTTTTGATTAGTTTCACATTATGTTCGGCTTTGGCTGTTTGTTGAATACCTTCAACCATTG -TTGTGCCAACACCAGTCACTGATGTTAAAATCGTCAATGCTGCTATACTTTTGATGATTATATTTTTATT -CATTTTTGTGCTCCTCTAAGTATTCTTATAATTATAATGTTAGGTTTTTGAGTTTTTTTGAATCATTTCG -AATAAATAGAATCACAGAGATATGATTTGAATTGTTGAGTTTGTTGTTTATTTTAAAAAATTATTTATCA -ATGTAAGGATGGATTTGTATGTTCGTTTATTTTTCTGTGTTATCTGCAATGAATTTCTTGATCTCGGGTG -TGAAATAAACTAAATATGATTTTTTTGTTGCATCATTTTTGACATCGACAGCATATGCAATTGCAATGAC -CTCATGATTTGAATTAAACACTGGGGATCCTGAATTGCCACCTTCAGCAAATGCATCTGAAGTCATTTGA -TTACCATCGATGGATAATATCTTTCCTGTTGATTCAAACATATGATGCTTATTTTTATATGGATTAGGGT -AACCAACGATTGATAAACGATCATTTACTTGAGCGCCACTCGCAAATTTAAGGACTTCAGTATTTTCACT -GAATTTTTTATTTTTTGGATAAACAGAATCTTCTTCAACTTGAACTATTGCTAAATCTTCAGATCCTGCG -TATGGAATGATTTTTTTACTTTATAGTATCCACCGGTATCATTTTCGCCATTTGGATGAGCAAGAATTGT -GCTACCAACTTGAACACCAGGTAATACATGCTTATTTGTTAAAATTGTATTTTTTCCTACCACAAATCCT -GTAGCTGATCCAATTCTAACAATTCCTTTATACGGAGAAATATTTGTGTTTTGTACTTGCTTCACATTAT -GTTCGGCTTTTGCTGTTTGTTGAATACCTTCAACAATGGTTGTGCCGACGCCAGTCACTGATGTTAAAAT -CGTCAATGCCGCAATACTTTTGATGATTATATTTTTATTCATTTTTGTGCTCCTCTAAGTATTCGTATTA -ATATAAGGTTAGGTTTTTGAAGTTTTATTTTTAAAATTATTTCGAATAAATAGAATCACAGAGATATGAT -GATAGTTGAATTAGTTATTAAGTTTAAAAATGTAATCTAAGTTGAGGCATGTAAGTGAGCTTTCCGGCTT -ATTTTTCTGTGTTATCTGCGATGAATTTCTTAATTTCAGGCGTTAAATATACGCTGTATGACTCTTTTTT -AGAATGACCAATTTGGTCTCCACTATATAAAACGCCCACAACTTCATTTTTATTGTTAAAGACCGGTGAC -CCTGAATTGCCACCTTCAGCAAATGCATCTGATACTAATTTATCTCCATTAATTGATAGTACTGTTCCTG -TTGATTGATACATATGATGTTTATTTTTATATGGCGCTGGATAGCCAACGATTGCAACTCTTTCATTCGC -TTTAGCTTCCGATGCCAACGTTAGGATTTCAGTATTTTCACTGAACTTTTTATTTTTTGGGTAAACTGAA -TCTTCTTCAACTTCAACGATAGCTAAATCTGCCGAGCCTGCATATGGGATAACTTTTTTGACTTTATAGT -ATCCGCCAGTATCATTTTCGCCATTTGGATGGGCAAGCACTGTACTACCTACTTGCACATCTTTAACGAC -ATGTCTATTTGTTAAAATAGTGTTTTTACCTACTACAAATCCTGTAGCTGCGCCTACTCTTAGTATGCCT -TTGTATGGCGAAATACTAGTATTTGTTATCTTCGTTACATTATGTTCGGCTTTGGCTGTTTGTTGAATCC -CTTCAACCATTGTTGTGCTAACACCAGTCACTGATGTTAATATCGTCAATGCCGCAATACTTTTGATGAT -TATATTTTTATTCATTTTTGTGCTCCTCTGTTTATTCATGATGCTTTTGATATAGACGTTTGCTTTTTAT -GTTATATTCGACCGATGTTTTTCATTAAAATTATTGAACACATGCTCATGGTGTATATTTAAATATGTTT -ATTGTTCAATGTGCTTTTGAATAAAATCTTTAATTTGAGGCGTAAAATATACAGCACCATTGTATTCAGA -ACCAACTTTTCCAATGCCGCCATATACAACACCTATGACTTCATTGTTAGAATTTAGAACGGGTGATCCT -GAATTACCTGGTTCGATATATGCATCAAAATTTAAAATATTGTCTTTAATTCGTTTTATAGTTCCTGTAG -ATTCAAATTGTTTAAAACTGTTTTGTGCAGGTAACGGGTAACCGATAACTTTAATTTTGTCATCAACTTT -AGCATCTTTTGCAAATTTAAATGCTTGAACATTATCATTAAAATTAAAGCCATTGGATCCACGTTCAACC -GCTTGTTCTTCTATATTCATGACGGAAATATCTTCATTGCCTGGATAATCGGAAATACTTTTAATTTTAT -AAATACCACCATTTCCTTTGTCACCATTTGGATGAGCAGTAATTCTATCGCCAACTTTATAATCCTTTGA -TACATGTTTATTAGTGATAATTGTATTTTTACCGATTACAAAGCCTGTCGCATCTTTAAATGCAACGACG -CCATGATACGGAAAAACATTTGTATCTTTAACTTGCGTAACATGCTTCTCTGCTTTTGCTATTTGTTGTG -TCTCTTCAACGACTGCAGCACTTATTCCAGTTACTGATGTTAAAATGGCTAATGCTGCCATGCTTTTAAT -GACTAAATTTTTATTCATTTTCAAGCTCCTTTACAATTTGAGATATATTGCAACGCTCGTTTTAAAACAA -TTTGATTATTTATCTATATTTTCTGCAATGAATTTTTTAATCTCTGGTGTGAAGTAGACGCCATAAGCAT -TTCTATTGTCATCATCTTTCACATCTGAAGCAAAATGAATACCTACTAGTTCGTTGTTGCTATTTAGGTT -GTGTATGCATGTCACAATTCTCCCTATCATGACTATTATTCCATATAATTATGATATTAATTATCGACTT -GTAAAGTTATATTCTTACTTGAAAAGTTATAAACATAAATGTCAAATAATGCTAATTATGGTAAGTTAAT -ATTACATTTAGTAACATCAAAGTTAACAAATATAGAAGAAAATCCTCAACTTTCTAATTATGAATCAGAA -TATTATCTTCTTGAAAAAAATTTAATTAAGACACAATTTATCAAAAGTACTAAAAGTAGATGTCTATATG -AAGAAACCACTTATCACATATTGACGAATGGAGACATCTTAAACCAACCCGGAAATTTGAAATTATGGAC -GTAGGCAAGGCTTTTGTCCAACCGTTTCATTGCATGAATTTGGAAAAACATGTCAGATACCTTTATGAAA -TTTCCGAATATTTGCATTTAAGTAAATCATAAATTTCAGAAGTATTATGATAATATATACCATTAAAACC -AATTACTAATTCATTGTTCTAACTATGCAGGTAACTTTCCGCAATAAGTCCAAAATAAATCTAATGGATA -AAAAATAATCAAAACTTTAACTTTAATCAATATTGAACTGCAAAAATTTGGCACAAGCTAAAACAATGAT -TAAACCGACAGGGATTGCCAATGACACAGGTAAATCAGTAGAAGAAATGATGTGTAGAAGTTCACAAGTA -AACTGGAAAATAGCAATTAATTAAAATTCGTTTCAACCTTTATACATACTAAGCAAAATTACACACTTTA -TAAAAATAATATTAATTTTGTAAAATTCAGCTTATTTGGAGGATTAAAAGCAATGATAAAACAGGTTCTA -AGAAAAAGTTTACATACAGTAAAAGAACATATCGATAAAAGTAACTTCCAAAAAAACTTAATATTTTCAC -TTGTCATATTCCCATTCTTATTTGTGCCTTACATTATAATAGATATACTCGTTCATTTATCTAATAATCA -AGAATACTTTAAGTTATTATCATCTATTTCACATATATTTTTAATGTTCTTTGTAACAGCAATAAGTTTA -TACGCTATACTTTCTATACCTTTAACATCTAATTCATGTAGGAAATCAAGCTTTAGAAAGATTAGTAAAG -TAATAATTTATTTTTTAGTATTTTTTTATATCCTAAGCCATCATATCAATATAGATATTTCTAAAATGGA -CTCTTCTTGGCATTTTTATGCGCTTTTTTTATGTTTTTTTATTATTTCATATAAATTAACTGAAAAAATA -ATGAAGGTATGCAAATGGATATTTAATGAAGAATCAAATAACGATGAAGGTTTAAGAACTCAAAAATTAT -TTTTATAACGACTGTGGTTTTTGGTACAATAAGTATCTTCTCAACAATTGCAAACGTTTTAGTAGCAATA -AAACAATTTCTAAATTAGTTATATCAGCTAAATAATAAAAGGTAGCAAAAATTATATAGTAAAAGCGATA -GTAGATTATTAAAAAAATATATAGCATTTGTTCTCACAGCGTCAAAACTCTAAAGCAATTAAGCCATCGA -GAGTATTTAAATACATATAAATTCAAATTAAGGAGAATAGGTAAATGAAAAAAGAAATTTTAAAAAAGCA -ATGGGTATTATGGACAATCTTAGTAACATCTTTCTTTAGTATAGGCACACCAGGTATAGCAATAATCCCG -TTCAGTTTATCAATATATGCATTATCTAAATTAATACTTGTTAATAAATTTGTAGAACCCGATTTAGTAA -CACTTCAAAACTTGAAAGAAAAAAATAAAAGTATCAACATTGAAAATCAAAAAATCAAGCGTGAAATACA -AGAATTGAAGAATCTAAAAAAAGATTTAATATCTAGTATAGAAGAAGGTACTAAAGAACTTGAACACATT -ACTAGTTATTTAAATGATGAATTATTTAAATATGATATAGAATTAACTTATCCCTTCGATTTAGTTGAAG -TAGACTCATCTCAAATTAATACATATATTAAAAAATTACAAATGAAAGAAAAAGAATTACTAAATCTTGA -AGAAGTGAAAATATTTAATGTTTCTACAGAGAATAAGAGACATCAAAATGCACAGGCCAAGCAAATAATA -CGATTATTTAATGCTGAAACTTCTCAATTAATAAATAAAGTAAATAGCAAAAATATCGAAAGCATGCAGA -ACAAAATATTTAAAAGTTATGAAGGGATAAATAAAATATTTGAAACGGATAATGTACGTATTCCTGAAAC -TTTACTTGACATAAAACTTGAGATGTTAGATTTAATGCACAAGTATCAAGTTAAGATAGAAGATGAAAAG -ATCATAAGAAGAGAAGAACGAGCTAGACTGAAAGAAATAGAACAAGCAGAAAAAGAAATGGAGAAAAAAC -TAAAAGAGCTTGATAAAGACATTAGACACCACAATAATGAAATCAAAAAGCTGACAATGTATTTAAATAA -CACAGATTTACAAGTCGAAAAAGAATTATATATTGAAAAGATTAGAGAATTAGATCAATCACTCAAGAAT -TTAAATTCTGAAAGAGAAAATGTAGAGGACAGAAAAGATAATGCTCAATCAGGGTTTGTTTATATAATAT -CAAATATCGGTTCATTTGGAGAAAATGTTTATAAGATTGGTGTAACCCGTAGATTAGAACCAATGGATAG -AATTAATGAATTAAGTAGCGCATCTGTTCCCTTTGAATTCGATGTGCACGCTTTAATTTTCTCTGAAAAT -GCTTTTGAGCTTAAAAACAAATTACACGAATACTTTAAAAAATATAAAGTTAATAAAGTTAACGGAAGAA -AAGAATTCTTTAAGGTTAATATTAATGAAATTAAAGATAAAGTTTTATCAGAACACAATAGCACAGTTCA -ATTCATTGATGAACCAAAAGCTATACAATACAGAGAAACTTTAAGATTAACTTCACTCTAAAAATTTGGG -TAGCCCGCCTACCCTTATTATTTTTTTCCAACTTTTATGAGTATGTCATATATCAATAAAAAAACAACCA -AATTGTAAAAGGTTTTATGGTTTTGGATATGAATGTAATTATTGTAAAAAGTAATTATTTATTAATCAAT -ACATTGTAATATTAAGTGCAACCCAATAAAAATTCATAAAAATACCCACAATGGGCACTTTATTGTAAGG -TGTTTACAACCACGAAAACACATTTAAGTATTGCCAATATGAGCGATAACTATCTTATACTAACTGAGCA -CGTATAGAGAAAATTATTCTTTAAGACCTATTGCACGTAAATTAGACCGATCCGCATCTACTATCTTACG -TGAAATTAGCAGAAATAATGTAAATAAGTTATATCAATCTGAAACGGCTCAAAAGAATTATGTAACTACA -AGAAAACTTTGTGGTCATCCTACTGGATTTACTCCAGAACTTAGCAATATCATTAAGTAAAATTTAAAAA -TACCACTACTCTTCTGAATTAATCGTGATTCGATTTTTTAAAACCGATTTTCTTTTATAACCAAGGATTT -ATGTTTTAACCACTGATATGATTAGGTTCGATGTTAATGGTAGCGATCATGCAAATTCACCAAATAATGA -AAGAATACCTACGCCACATATACACATATATACTGAAGAATATAATAATGGTGGTATTGCGATCCCATTA -AAAGATATTGAAGATTTAGAATTAACAGATGAAATTATAGAATCATTAGACTTCTTTATGAAGTATACTA -ATATAAAACACGATAATGTTATAATAGAACCAAGATTACTGTAAAAGAAATGGCGGGATACTTATTGAAG -ACTATCGAAGAAAGAATGAACGAATATTTCAACTGGTTAAAACAAAATTATATCTTCAAAGAATTAGATA -GTTCTACAGAAATTACTACTCCCTTTAAGAACCATTTGAATGATTTTATTAGAATATATGCTGATACACT -ACCTAATAATGAAATTTGTCTATCAGATAACGGATTGACGATTAATGAATTAGAAATGTTGGGTATTGAT -ATAAACACAAAAACGAGAACTAAACTTATACAGAATATTTTAAATCAATTTAATTTAAAATTAGTTGATA -AAGAAATTACAGCGGATGTTAAAAATTAGAGTTTTGCTCAGTCTAAACATAATTTAATTCAAGGCATATT -GAAAATTTATGACCTTACTTTAACTACTAAATCTAACGTTACAAACAGATTCTATGAAGAAGTATTTGAA -TTCTTATATGACCGAGAAATAAGAGGTTTAGCACAAGTTTCTGTTTCTGGAGAATCAGGTTTAAAATATT -CTATTGATTATATTGTTTCAGAAACAAAATCACAACCAGAAAAACTAGTTAACTTTACAAATAACTTAGA -TTTTAACAAAATAACTAATGAAGCTTATATTTACCGTGATATCAAACCAAACAGACCTTCCAGAAACAAA -TTAGAACCTATCATGTTAATAATTGTAAATGATGTATATCATCCGATAAATGAAAGAGCACAAACTGTAG -CAGAACATGAGAACCTTGAGATATTAAAATGGTCTAATAAATCAAAAATCATTGAAACTTTAACCTCATA -AATTAACATTAGACCCCTATTTGTAATTCTTTAATTTTCAAATCATATCGTGCAAGTAAAAAAGTAGATA -CTTTTTTATTTGCACGTTTTATTTTAGAACAAAAAGAGCAAGGTCAACGAATCAGAAAATCTTTTTCTTG -ATACGTATTTGACACTTGCTCTTTTAAGAATACTAACATTTCATTGTATTTCCGTTAAATTAACGGAGAA -GGCGGATTACCTCGATATATTTATCTCTAGAGTGTTAAAAAATTGTACATTCTTAAACAATCAAAAGTAT -ACGTTATTAAATTATCATTTCCACTGGAGAATCATGGCGACTAAAAGATTATTAAAGTAAAAATACATTT -AAAGTCACGACAATATTAAACCTCTAAAAAACGTCATTTTCAAACCGCCATTAAACAGCATTTTTAAACC -GCTATTGACATAAAACATATTTAGAATAAATCATTGAGAAAAATTAAATAATTCAACCAGCAATAAACTA -ACTATTTACATGAATCTATAAAACACTTAGAACAAAAGTTCGAAAAACGCACTTTATGATTGTATAGTGA -TATCAAATATACTTATCAGTGAGTATTAAGAAATACTTCCATTTTAATACTCTTAGAATCAACTACTTTA -TTATCTCCGTAAATATTTAAAAACTTATATGGAACAAAAGGTACTAGTTCTTTTTTAGGAAATAAGTCAA -ACCAAAAACTTGTATTGTTCTTTTCAGTAAATTTTATATATCCAGATTCAAATGCAGAACCATCAAACTC -GTATAGCTTTTTTTCTTTAGTGAGCCAGTGTCTTGCTTTGTAATCTAGTTCTTGAATAGTAACCATATTC -TTATTTGTAGTTATTGTAAATCCAAGTGATTGTCTATTGTCGATTGTTACCTGTACAGTAATTAATTTAT -CTCTTTCATTTTCAGAACTATTAAATGTAAGACCACCATACATACAACAACCTCCAAAATTTTGGTTTAT -ATCCGGTTCAGATTTAGGTATTATACATGTATAAAAATATGGAACACCAAAAATGTCTACTTTTTTACCT -TTATAATTGTTAGCTAATTCTGTATTTTCTAATTCAGTTTTAACCTCATTATAACTCTTATACTCAATTG -GAAAAATTAAATCATGAGATAAAAACTGTCTAGAATTGATAACTCCTCTTCCTTCAACAGGTGGAGACAT -ATAAAGATTCATAACATTTCCCATAGTTCCCTTATTACTTTTATAATCACTTACTTTATTTAGTTCGTCT -ATTTTAGGATCGGGTTGGGAATTCGCATAATTTATATTATGAAAAACTATTTCTAGAATCAAAATAATAA -TTACAGTAGATAATTTCTTCATAAAACCTCCTCTAACTTATTCAGTCTATTTGACAATGAAACTTATTAT -AAATTCACGCTTATAGATAGTTCAGGTTGTAGTGTGTCGATAGCATTCGTTTTAAAAATAAAAATTCACT -AGCAAAATAAATTAACATTCTATTTATCATTATTACTAATTACAACAAATAATTTTGAATCCGTATTCAA -GATAATATATAAATTTCAAATTTTACTACTATTCAAATCGTTGTCCCCTCATATAATAGTTTATTTTCAT -GATTCAGTTGATAATCATCAATCACTTAATCTTTATATAAAAATACATCGATATGATAATTAGATGAGCT -AACTGTTCTATTATCACTATAAAATTGAAAAAACTCTGCTCCTACTGAACCTTTTATGTTATATAAATCA -TAATAAAATGATTGATTTTGATGATTATTAGAATGAAAGAAAATGCATCCTTTTTGTATGTTACCGGTAT -CTTTATTGTATATTTTATATAAATTTTCTAATTTAAATCGAACTTTAGTATCTAATTCTTGTACTGTTAC -TTTAGCCTTTTTAGTTTTTATAACAAAACCTTCTTGTTGGATACCATCTTTAAATACATTAACGCCTATA -ACTCTCTCTTCATCTAATTGATTTCCATCATATATCGTAACTCCTCCGTATAAGCATGATGTTTTTTCTT -CAGTTAAGCCTACACATTTATTTCCATAATACAGTCCATAAATATCTATATTTTTCCCTTTAAATTGATT -TGCTAAATCTGATGAGTTAAACTCAACTTTCAAACTAGAAGTTTTAAGTACGGATATATCAATATCTTTT -AATATTATAGTATTATTCAGTAGTTGATCTGTACTAATTTTATTTGACTCGTCTAATTGCCACGTTATAT -CAGTATAATAACTTGTTAAATTAAATAACTTACTACTATCTATATCAGATTTTTTCTTTAAATCATTTTT -GTCTACATCAGCATTAACATAATTATTATTTATAAGACATAATAAAGTTATTATAATCGCAGCTATGCAG -AACAATCTCATAAACTTTTTAATATTTTTTATAATATAATCTCCCTCAATTATTTTTTGGTTAAATGAAC -TTCTACATTAATAGATTTACTCTCAACTGTCTTATTATCATTATAAATTAGTAAATATTTAGTCGGATAA -AATTTTTCACCAGATTCAGGCATCATATCATACCAAAAAGAATGACCATTTCCTTCGATAAACTTTATAT -AGCCAGTCTCATAAGGCGAACTATTAAATTCATATAAATTTTTATGCTTAAGTAAATAGTTTCTAACTTT -ATAATCTATTTCTTGTGCTGTTATGTTTTTCTTATTAGTAGGTATATCAAAAGATAATGAATTTCTCTCG -TTTTCAAAAACTTTAATTAAGATATTATGAGAGTTATCAGTTGAATTATTTTTATCTATTTGATTTCCAT -CATGCTCGGTCACACCGCCATACATACACGTTTTTTCAATTAGTCTACCATCATTTAATTCCATATTATC -CGCTGAAAAATAGCATTGATAATAATAGTTTGTCCCAAACAAATCTATGTTTTTATTTTTGTATTTATCC -GAAAGGCTATTATTATTAAATTCTGTTTTTAAAATTTTAGAACCATCAATTTTAGAGCCATTTATTTTAA -ATAATAAATCATGTTGTAAAAACTTCTCTTGGGCTTTAATGTTTATTTCTGATACGTGTTTATCATCATA -CAAATACCTCATATTATCCATTAGACCAGTGAATTCACTCGCTTTATTCAATTGTTCTGGTTTAGGATTG -CCATTTAACATAAATAGTAAGCTGCAAGACTTAACACATATGAAGATAAAAGCAAATAACTTCATTCCAA -CAACTCCATATTTTAAATTTTTATAAATTCGATGTATTACAGGTAATATTAAACGTACACATTACCATTA -AAGGCATTAAAATTTAAATAGTTAATACATATGTTAATTTCAAATAAATTCGCATTTTAGTGTTAAAACT -AATTATCATTAGTTACTATCTACATATGATATTTCAACATCAAGATGAAATTTTTCAGATTCTATTATTT -TATTATCTTCATAAATTTTCAAAAAACTTACAGGCAGTCCATCTCCTGTATAAAACAAATCATATGAAAA -TGATTTTTCATCATTTAAATGAAATAAAACTTTCCCCTTATTAAAACCTGAATAAAATTTAGATTTATAC -CCATATTCTTTACCTTTACCATTGTTATTATGACCATATATATTGTATTCTTCTTGAAGATATCTCCTTA -ATTTAACATCAATTTCTTGAGCTGTGACTAGTTTTTTATTAGTTGCTATTTTGTCAGTAGAAATTGTTTT -ATGCTTGCCATTAATCCAAAGATTTATAGGGATTTTTCTAGCAGAATTTAAGTATTGTCCTGATAAAGTG -GCCCCTCCATACATGTATTTAGTTTTACAAGGACCATTATAATCAATGCCAAAAATATCCATTTTCTTTC -CTTTAAATTTACTTATTTCGTCCCAATTATTAGATTCTGAGATCAAATCATTGGTACCGGTTGAAAATTC -AAGTTGATTTGCAATAGGTAAGTTTTTATCTGTGACGCCTTTTAAATCTATATAATCATATTTTGTATAG -AAATTTCTTAAGTTACCTACACCAATATCTCCTTGCGCATACGAAAGGTCTTTAATGTTAAAAAATAATA -TAAAAACTAATATAAAACTGTATTTAATTTTTTTCATGGCATTTCCTTTACTAAGTTATGATTGAAGTAT -TTCAACTTTCGTCCTTATAAGATATTTCTACATCTAAATGGAATTTATCAGTTTCGACAGTTTTGTTGTC -ATTATATATTTTTAGGAAACTTTCAGCTTGCCCTGTTCCTGTATCAAATAAGTCATAAGAGAATGATGTA -CCGTCATTCAAATGAAATGATATTTTCCCAGTATTAAATCCAGAAAAAAACTTGGATTTTGTACCGTAAT -TTCTTCCTTTATTTGTATCATTAAAGCCATAAATGTTATATTCTTCTTGTAGATATCTTCTTAATTTAGT -ATCAATTTCTTGAGCTGTTACTATCTTTTTATTAGTTGATACTTTGTCAGTAGAAATTGTTTTAAGGTTG -CCATTAACCCAAAGATTAATAGGAATACATCTAGACTTCTCTAAATAATCACCCGCTAAAGTAACTCCTC -CGTACATATATTTATTTTTTAGACAATATCCACTATAACTTAGGCCGTATACATCAACAGCACGATTTTT -GAATTTTTTTACATCTTCAACATTCTTAAATTCAGCTGTTACTGTCGAATTATCCTTAGAAAAAACTAAT -TGATGTGAAAGACGATTATTGTCAGGATTAATATTTTGATGGTCTTCGATTGGATAGCTACCATAATAGT -TCCTAAGATTCAAAACTCCAACATCAGCGGTTGCGATATGATTTTGTGAATAACAAAACAATAAAACAAC -AATGATAAGTATTCTTTTCATTTTATATTTCTCCTATAATTAAATATGTCTATCTTTATTATCCTTTTAT -TGTAAAAAAACATTCTTCTTCTTAAATCATCCTGACTCTATCCCACTTATATACTATTACTCGTTAATCT -ACTTTTGTTATCTATACTAAAATAGAAAAATTTTTATAGTAATAAAGTTAGATTTGAATCATTAATCGTT -CATCGTCATTTGCTATGCAACTTTGTAAAAATATGTTAATATCTATAGTTCTTTATAGGATTGTAAGTTG -ATATGCATCAACTTTTAATTTGTTATGTAAATAAATAAACATCAATATGATAGTCTGATGAATCTATTGT -TTTATTATCATTATAAATTTGCAAATATTGATCTGGTAAATTTCCTTTAATATAAAATAAATCATAATAA -AATGATTCTTTATGCTCCGAATGAGAATGGAATTTAATATAACCTTTTTGTACATCACTAGTCATTCGAT -CATATAATTTATATACATTATTTAATTTTGTTCTTACTTTAATATCAAGTTCTTGTGCAGTAACTTTCTT -TTTATCTGTAGTAACGATAAATGTATTAACATTTACATTATCCTTATACACAGCTACTCCTATTTCTTTA -GGTTCACTTAATTTATTATTTTCATGAGGTGTTACCCCGCCATAAGTACAGGCAGTTTTCACTTGATGCT -CACCATGACAATGCGCTTTATAATAGACACCATAAATATCTACAGTTTTTCCAAAATACTCTTTGGAAAT -TTCCGATGAGCTAAATTCCACTTTTAAATCTTTAAATTCAGCAGATTTTCCATCTAACCAAGTAAAATTT -TTAAATAATAAATCAATATCTAAAAATTTTTCTGTAGTTAATACAGTTGACTCATTTATTGTAAAGCGAT -TAGTCATATAGTCTTTATCAATATTATGTAGAGCAATATCGTCTACACTTGACTTCTTACACAAATCCTC -AATTTTAGGATTTTCTTCATTTGCATATGCATTGTTTACACTACATATTGCAATTAAATTTATAATTAAT -AATAATACATTTAACATTGCTTTACTCTTTTTTATAATATCCCTCCTTCACAAAAAGCTTTCTTATAGAA -ATTTTTCAATATAAATTAAAAAATTCTGGTTTTAACCTTTAAATATTCACTAATACTTTTTGATTACGAT -TTTAAAACTTAACAATCCTATTAACAATTGAACAAACACATTTTAAACTAAGTGACTCAGATAATAGACA -AAAAACCTTAAAAATAGCGCTTAAAATGGGTAAAACCATTTTAAGCGCTATAACGGAGAGTGAGGGATTC -GAACCCTCGAGACGCTTGTGGCGCCTACACACTTTCCAGGCGTGCTCCTTCGGCCAACTCGGACAACTCT -CCTCAACAATAAATATGTAATAAAAAAACAGAAGCGATATTTCACTTCTGTTTGTATGACTCCTACGGGA -CTCGAACCCGTGTTACCGCCGTGAAAGGGCGGTGTCTTAACCGCTTGACCAAGGAGCCATGGCTCCACAG -GTAGGACTCGAACCTACGACCGATCGGTTAACAGCCGATAGCTCTACCACTGAGCTACTGTGGAATAATA -GAAAATAATGGAGCGGGTGATGGGAATCGAACCCACAACATCAGCTTGGAAGGCTGAGGTTTTGCCATTA -AACTACACCCGCTAATGTAAACGATTATGGGGCGGCTGAAGGGGATCGAACCCTCGAATGTCGGAACCAC -AATCCGATGTGTTAACCACTTCACCACAACCGCCATGAATTAAGAATGGTTCAGGACAGAGTCGAACTGC -CGACACATGGAGCTTCAATCCATTGCTCTACCAACTGAGCTACTGAACCGTAATGGTAATAATAATGGCG -GTCTCGACGGGAATCGAACCCGCGATCTCCTGCGTGACAGGCAGGCGTGTTAACCGCTACACTACGAGAC -CTATTAAATTAAAAACTATGTATTGCGGGAGGCGGATTTGAACCACCGACCTTCGGGTTATGAGCCCGAC -GAGCTACCGAACTGCTCCATCCCGCGCTAATATTATTTTGAATTACCTAATTAATATACCATAATCAAAA -ACCTAAAGTCAAGAACTTTTTGAATTTAATTTAAATGTTATCTCTTAAATAATTACTTAAATATCGTAGC -AACATGTTCTCTGTTGAACACAAATATTAGTATATTCATTTTTGTAGTATACGTCAACGACATTTTTAAA -GTTTTTTGTGTAAAAAAACGCTTCTTATTCCCTTTTATCATATAAGTGTCTAATAGTTGTTATAAATAGT -GTTACAGCATTTTAAAAGGTATAGGAATTATAAAGTTTACAACGCCTATACCTTCTGAAAAAGAAATTTA -AAAGCTTGCTACAACCGCATGCTCATTCAGTCAACGACTACCAATATAACATTGTAGCCCTAAGACATTC -CTTGGCGCTTCAATTACCACATTTTTTTCAAAATCAGCAGCTACCTACAGACACAACATAACACAACAAT -ACATTACCTATCGTGTCATGTAATCTTGCATCCGATCTTGCAACGCTGTAAATGTTTCGAAGCCATCCTC -TTCTAAGAAGTGCCCTCCATCTTCCACGATTCGCAAGTTCCCCTCTAATGCATTCATTAAACGCTGAGTC -TCTTTATATGAAACGTATTTGTCATTTTTAGAACTCAATCCGTAAAAATTGTCAACTTTCTTTTTAATAT -TATCGTAATCAATAGTTACATTACTTAAATCGATATCTAAATCTATATTTTCTGCATCTTCTTTAAAGCC -CGCTATACTGAAAAAGCCTTCAATCGGCTGATCAATCATTTCAATATATTTTAAAGCTGTGATTGAACCT -AAACCATGTGTTACAAAATATGTATCCTTTTTGCGTACATTAATTTGTTTCGTCATAGCTTCAATCCACT -GATCCACTGTATTCGCTTCAGGGGATTCAAAATTAAATAATGTTACGTCATATCCTTCTAAAGTTAAGTT -ATGCTCCAACCACTGATACCAATGATTTCTACTATTTCCATGCATAGAATGTACAATGATTACATCTGTC -ATCTCATTCTCTCCTTTCAACTTACTACTTCTTTTCTATTTAAAAAAATGAATGATTACCTATAATTGTA -AAATAAAAACACCTTAATTAGAAATGTTATATCGCAAAGTGACATTTCTAATTAAGGTGCATTGTCATCA -TTTCAATATCATTCAATAATAGCTAAACCTTCTTCTTCGATTCAGTTTCATGAAATAATTCCCGCTGAAA -GTATCATGATTTACACATTACTTCCACCATTATATAACTTAAAAATGACTATATTTCATCAAACATTATC -TAAAGGCGTCGCACCTACACCAACTCCATCCAACAATTAACTTACAACTCTGCGATTACTTCTTCAGCAG -CAACTTTACCTTGTGTAATACAATCAGGTAGTCCAACCGCTTCAAAAGATGCACCAGTTACTCTAAGTCG -TGGATATGTTTGTTTAATATGTGCTTGAATCTGCCTAATTTGTTGAATGTGACCAACATGGTACTGTGGC -ATACTTTTCGGCAAACGATTGACAATTGTAAATTCAGGATCGCCTTTAAATGTCATCATTTGACTTAAAT -CTCTACGTACAATCGATACTAATTCATCATCTGTATGATCATCAACCACAGTATCACCTGGTTTACCTAC -ATACGCACGAATCAAAACCTTACCTTCTGGTGTAGTAAATGGCCATTTTTTCGATGTCCAAGTACATGCG -GTAATGTCAGTATCACTCGTTCTCGCAATCACGAAGCCAGTACCATCATAAGTATTTTCAATGTCTTTTT -CATCAAATGCCAATACAACAGTTGCAACAGTCGTACTATCCATCGTTTTAAAATAATCAAATGCTGGATC -TTGTCCGAACCAATTCAAAAAAACTTGATGCGGTGTTGTCACTAATACCCCATCGAATACATCTTCTTGT -TGATTACTGTAAACAATTTTATATTGCTTTTGAGATGTAATAATATCATCCACTGACGTATTGTAACGTA -TTGTCACACCTTTATTTTTCACATCTTGTTCTAATGCTTCAATAAATGAACTTAAACCATGCTTAAATTG -TTTGAATTGTCCTTTTGGTGCGCCAGGATATAATTGTCTTTGTTTCAGACGCTTATTTTTCTCATCCTTC -ATACCTTTTATCAGACTTCCGAATGCCTCTTCTTTTTCTTTAAAATTAGGAAACGTACTCATCAAACTTA -ATTTATCAATATCGGTACCATAAATACCACCCATTAAAGGCTCAATTAAATTCTCAAGTACCTCATTACC -TAATCTTGCTCTGAAAAATGCACCAACAGAAATGTCACCATTCTGCATTTGAGTAGGTTTTTTAAATAAA -TCAAACCCTGCTCTTAACTTTCCAAATGGTGAAATTAATTTAGTTGTCACAAACGGTTTGATATCTGTCG -GAATTCCCATAATTGATCCACCTGGAATAGGATACAATTTGTTTTTCGCAAAAATATAAGATTGTCCAGT -CGTATTTGTAACAATATCTTGTTCTAATCCAATATCTTTCGCTAATTCTGTCATAATCGTTTTTCTACCT -AAATAAGATTCAGGCCCTAGTTCAATCATATAACCATCTTTACGATACGATTGAATCTTCCCCCCCGGAC -GATTCGATGCTTCAAAGATGGTTACATCAATATTAGGATCTTGCTGTTTTAAAAAATATGCACTTGATAA -ACCTGTTATCCCCGCTCCTATAATAGCCACTGATTTAGTCACAACGTTTCACGCTTCTTTCGTCATTAAA -ATATAGACTTGATTTCATCAACAATTGCACCGATAAATAATGGATGTGTATTCGGCATTTTTGGACGATA -ATAATTCGCGCCAATGTCATCGCAAACAACTTTACATTCATAATCATTGTCATAAAGCACCTCTAAATGC -TCACATACAAAACCTACTGGCGTATATATAAAGTTTTTATACTGATGTTTTTCATATAAATCACGTGTTA -AATCTTGTACATCTGGCCCTAACCAAGGTGTACCTGTATTACCTTCAGATTGCCAACCAATCGCGATATG -TTCAATATTAGATTGTTCTTTAATTAAAAGCGCAGTATGTTCTAGTTCTTGTGGATATGGATCATTATTC -TTTTCGATTAAACCTTTTGGCAAACTATGTGCCGAAACAACTAATACCGTGTCTTTGTGTTCCTCTTCCG -GTATTTGAGCTAATGTTTCGTTGACTTTATTCGTCCAATATTCAATAAATTTAGGTTGTTCATAATAATG -TTTCACATGTGTAAGTTGAATACCATATTTTGCAGCTTCTTCATCAGCACGTTTGTCATATGATCCTACT -GAAAATGAAGAATAATGTGGTGCTAGTACTACAGTGATTGCTTCAGTAATACCATCTTTGTGCATTTGTT -CAACCGCATCTTCGATAAATGGTGAAATGTGTTTTAATCCTAAGTATAGTTTAAATTCAACATCTGCATA -TGCTTTATTTAATGCTGAAACTAGCGCATCAGCCTGGTCATCTGTTGTACCTGCTAATGGTGATAAACCA -CCTATAAATTCATATCTATCTTTCAAATCTTGAAGTTCTTCTTCAGATGGACGTTTACCATGTCTAATGT -CTGTATAATATGGCTCTATGTCACTTTCTTTATAAGGTGTGCCATAAGCCACAACTAATAATCCCATTTT -TTTAGTCATTGATAATACCTTCCTTTAAATGAATTATCTTTCATGTGCTTCAATGTAATACTATGATTAT -CTTTGTGTATATGTGTGTACGAATCCGCTTACTTTACGTAACGTCTCTGGTTGCACTTCTGGGAAAACAC -CGTGTCCTAAATTAAAGATGTGTTTACCGTTCTCCATACCTTGATCTAATATTGGTTTCAATCTCTCTTC -AATGACATTCCATGGTGCTAATAAAATTGATGGATCTAAATTACCTTGTAATGTTTTAGTAACGCCTAAT -TGTTGAGCCTGATTAATAGACGTTCTCCAATCTAGGCCTAATACATCAATCGGCAAATCATTCCATTCAT -TGATTAAATGACTGGCACCTACACCGAATAGAATTACCGGCACATCATGTTTTTCTTTAACCTCACTGAT -TAATCGAATCATATGTGGTTTAATGTAACGTCTGTAATCCTCGACATTTAATGCACCTACCCATGAATCG -AAAATTTGAATCAATTCGGCACCTGCTTCGACTTGAGCTGTTACATATTTAACAGATACATCGACTAAAT -GATTCATTAAAGCAAACCATGTTGCTTCATCTCTATACATCATCGCTTTTGTAAAATTGTAATTTTTCGA -TGGTCCGCCTTCAATCATATATGACGCTAATGTAAATGGTGCCCCAGTAAATCCTATTAGCGGCACATTT -AACTTTTCTTCTGTTAAAAGTTTAATTGTATCTAATACATATGGTACATCTCGTTCGGGGTCTATTTGAG -AAAGTTTCTCAACATCTTGAATTGTTTTGATAGGATTATGAATCACTGGACCAATACCCGATTTAATTTC -TACATCGACACCAATTGGCTTTAATGGTGTCATAATATCTTTGTATAAAATTGCTGCATCTGTATGATAA -TTATCAACTGGTAAATGTGTAACATAAGCGCACAACTCCGGCTGATGTGTAATATCGAATAGTGAATATT -TTTCTTTCAATTTTCGATATTCTGGTTGCGAACGGCCAGCTTGTCGCATAAACCAAACAGGTGTATGTGT -CGTTTCTTCACCTTTAATCATTTTCAAAATTGTATTGTTTTTATTATGCACCATAAAGGCCTCCTAAATT -AAAATCATTCTTATCTATATTATCATATCGCTCATTCGTTCGTATTTTCAATAAATAAATGTCATAAAAC -TGACATTAAATTACACATCATTTGTTTGTGTATTTAAATTTTAAAATCTTGATGGATTATCTCCACATTT -TTTTGTCTTGCATGATTTATTATAGTAACTTTAACCGTATATTAATAGTGGTAATGACTAGTTTATCGTC -GTATAATAAATAAAAACATAAGGGGGACCTTTCATATGAAGAAATTATATACATCTTATGGCACATATGG -ATTTTTAAATCAGATAAAAATCAATAATCCATCTCATCATTTATTCCAATTTTCAACTGCTGATTCATCG -GTGATTTTTGAAGAGACTGAAGAAAATACTGTACTGAAATCACCTTCAATATATGAAGTTATTAAAGAAA -TAGGCGCATTCAATGAAGATCATTTTTATTGCGCAATTTTTATTCCGTCAACTGAAGACCATGTTTATCA -ACTTGAAAAGAAATTAATCAGTGTTGATGACAATTTCAAAAACTTTGGTGGCTTTAAAAGTTATCGATTG -CTAAGACCTGTTAAAGGTACAACATACAAAATTTACTTTGGCTTTGCTGATCGACAAACTTATGAAGACT -TTAAAAATTCTGATGCTTTTAAAGATCATTTTTCAAAAGAAGCATTAAGTCATTACTTTGGTTCAAGTGG -ACAACATTCAAGTTATTTTGAAAGATATTTATACCCAATAAAAGAATAGATTCGAAGAAAACTTCCATTG -GTTATGCTGTTAACGTATAGATGCTAATGTAATCTGAACGCCGTATCATTTGGCTTTCAACATTACATGC -ACCTTTACAACATACATGCCAATGGAAGTTTTTTAGTCTCGTAATAATGTTTCCTGATATTTTAACTTTT -TAATAATACTTCTAATCGTTAATAAACCTACAATATAGAAAATGAGTACAACATAGAATAACGTCATATG -TTTTATAATAAATGTCAATGCAAACACAGTACAAATAACAAACATTAATCTATATAAAAACTGTTCATAC -CCTTTGATTACCTTATCTTCAGGTACAGGCCACACTTGAGGCCATAAGCCATATGCTTGTTGTGAATAAA -ATTGTGCCATTTGTAACAATATAATATATACAAATAAACACCCAATAATTGCTGTCACTAATGGATATGA -TAACCAAACTATAAGTAAAACTGCAATAATTACTAACCTAAAGATAATATTAAATGCGTCTCTCCCTCTT -ATAAAGCTTCTAATAAATAAGAATAAATACATCGCATTAGAGTTAAATTTATTACCCTTTGGAACTGGTA -AAAGTATATCTAGATAACTTCTTCTGACTGCAGATTCTTTCAAATGTTTTACATCGGTAAACATATTAAC -AAATTTATAATAATTCATATGATGTCGATGTTCGATAGCAATCATTTTCTCCCATGGATACAAAAAGCCA -GGTTTATATTTTTTAACTAAAAATTCTATTAACACAGGCAAAGCAACCATCACAAATGTGATGTACCATT -TTGGAGCTAATAGTAAGTAATATGTTAGAGCAAAGATGATGAATGATATTAAATTAACTTGCCATGTTTT -AAGTCCCGATTGATACCATTGCCATCTTAAGCGTAAACCAACATATGGAAAAATTAATGCACTGACTCCA -AAACAAATATAAAATGCCACATTATGTTGATTAATATTGTAAAACAACGGGAACATTACAATAACAATAA -TGAGTTGGATTAAAATGCGCGCAAAGTAGCTATATAAAATCGCATGACGCATAAATTGAGACATGTGTTT -TTCAAATGGTAATAAAAAGATTTTATCCGCTTCTTTTAGGAGTGGTCGCATTGGAAAAATGGATGTCAAC -GCAACAATCACTGCTGCTATTAATGAAAAATTGATATTCGTTGGAATATGTTTTAACCATTCACCATATC -CAAAAATAAATGCACCCAGCAAAATAAGTAAAAAGACCATGAAATGACCATTAAATATAAACTTATTATA -ATAATTTTTCTCTTTACGAAGGGCATGTAATCTTTTATTAAATAATGTGGTCGCTTGGTTACGCATGTAC -ATCTCCACCTTGCGTCACATGAATATATATATCGTCTAACGTTTGATTATGTAAGCCAGTTTGTTGTCTC -AATGCTTCTAAATCTCCAAATGCAACGACTTCACCTTCGTCTAGTATGATAAAACGATCACAATAACGTT -CAGCTGTTGCTAAAATATGTGTACTCATTAGAACGGTTCTACCTTCGTTTTTCTTTTCAACCATTAAATC -TAACATGGATTGAATTCCTAATGGATCTAGGCCAAGGAATGGTTCGTCTATAATATACAATTCGGGATTA -ACGATAAACGCACAAATAATCATGACTTTTTGTTTCATCCCCTTAGAAAAATGACTCGGAAAAACTTTCA -ATTCATTTTCTAAACGGAATGTCTTTAATAATGGCATTGCTCGATTCATCGCTTCATCACGATCAATATC -ATATGCCATTGCTGTCATCTCAATGTGTTCCTCTAATGTGAGTTCTTCGTATATAACCGGTGATTCCGGA -ATATAAGATAACTTTCTTCTATAAGCCTCTATGTCATCATTAATGTTGATATCTGAAATTGATAGAGATC -CTTCCATAGGTGTAAGCAATCCTAGCATATGTTTAATCGTTGTACTCTTACCAGCGCCATTAAGGCCAAT -AAGTCCAACGATTTCGCCTTTGTTTAATTCAAAATTTATATCTTTAATTACAGGGCGTTTTCCATATCCA -CCTGTAAGCTGTTCTACTTTAACTGTCATAAGGCACCTCCATGACTTATATTGTACCAAAAATTATAAAA -TGCTCATATTAAATACACATATCCTAATATCGAATTTTTAGCGACAATGTTATAATGAATGGTAATACAA -GTTGAAAAGGAGTGTAGTCATCATGTCAGAAACAATTTTCGGCAAAATTTTAACTGGAGAAATTCCTAGC -TTTAAAGTATATGAAGACGATTATGTCTATGCCTTTTTAGATATATCACAAGTTACTAAAGGACATACGT -TATTAATTCCTAAAAAAGCTTCTGCTAATATCTTTGAAACTGATGAAGAAACAATGAAACATATCGGCGC -AGCATTACCTAAAGTAGCAAATGCTATTAAGCGTGCATTTAATCCTGATGGTTTAAACATTATTCAAAAT -AATGGTGAGTTTGCAGATCAATCGGTATTTCATATTCATTTCCACTTAATTCCTCGATATGAAAATGATA -TTGATGGATTTGGTTATAAGTGGGAAACACATGAAGATATTTTAGATAACGATGCAAAACAACAAATTGC -TGAACAAATTCAAGCACAATTTTAAATGTATGCTTAATCTAAGCTCGAACGGGTATAATATGATTAATAT -TATAACAATTGCGTTTGAAGTGATAACATCAAGGTTAGCAATTTTAAACAAAATGAGTTATTAAGATAAC -AGATGTTAAAAGTGAGGAGAATATAAATGAAAGCATCACGCATTCTATTCGGTATCGGTGTTGGCGTAGC -AGCTGGTTTTGTAGTTGCACTTCAAGGACGTGACGACAAAAGTGTCAAGAACAACACGATTGATCGTACT -GCCCCTACTGGTTCAAAATCAGAACTACAACGTGAATTTGAAACGATTAAACAAAGTTTTAATGACATTT -TAAACTATGGTGTTCAAATTAAAAACGAAAGTGCGGAATTTGGTAGTTCAATCGGTGGTGAAATTAAGTC -ATTACTTGGAAACTTCAAATCTGACATCAATCCTAATATTGAACGTTTACAGTCACACATCGAAAATTTA -CAAAATCGTGGCGAGGATATTGGAAACGAAATTTCTAAGTAGCACGTTTACGTTCTCGATCACAACTATT -TTTATTAGTAACAGCATATTTATTTTTTAAAATTAAATGCCAAATAAACGAGATGACATTAGAAATTAGA -TATTTCTTGTCATCTCTTTTTTATGGCTCGAATGAATGTTTGATTACCAATTACAGTAAGACGTTGTTTG -TAGTGATTTTCCCTTAAATCATATTTATGAATTGATTGAAAATATTGCTTAGGATTCATTGTGTTATCCT -TGCACTTTGATTACGCTTTACTTAAATCATTATCGACAAACAACATACTTATATTTTCACTGAGCCGAAC -CTTATATGCACATTACATATACCTTACTTCCACAAATTATTAATCTGGTATTTATTATAATTACATATCA -CTATATTTTTAGCATTTGTATGACTTAGTTAGTTAAAAGATGCTTTTGCATATGCCCTGCCATATCCATT -TTTTATATTATTCAAGTTTTCAAATACTCATGTCACACGCGCCTTTTTCATAAGTGATGCTTTATTAGCA -AAAATATGTGTTCGCAGAAATTTGTTCTGCATTCTACTTCTACGCTAGTCAATCAGCCAATTTTACCAAT -CCCACTTTCGCGTTTCAAATCAAACAATACGTCGCCCCTTTCTTCATATATAACAAATCTTCTAACATGA -TATGTTACTATTGAATTACTGAACCTGAGTTAGTTATAATCTAACTTATATTGAAAAGAGATGAGGCGTA -AGATATGTTTTTATGTAAAAGACAAATTGATATCAATGCACGATTTGGTTTGCCTAGAATTGCATTTATG -AGTGCAGTTGCAACCATCATTATGTTTTTAGTTAGTTATGAAGTAATGTATTTTTTATCTAATACGCCGT -TATCAGATAGACATTTTCTCATCTTTTTATTACTTGTATTTATGACGTATCCATTACATAAAAGTATACA -TTTATTATTTTTCTTACCATATAGAAAATCGTTTAAAGTTCATAAGTTGACTAAAAGAAAATGGCTTATA -TTCTATAATACCTACGTCAATCAACCTGTACACAAATTTTATTTTTGCATTAACTTAATATTGCCGTTAA -TTATCTTATCTGCAATGTTCGTTTATCTAACAATTTCATTCCCGCAATATGGACATTATTTTATGTTCTT -ATTGGCATTGAATTTCGGTATTTCCATTACAGATTTATTATATTTAAAAATAATTATATTTTCTAATTAT -GGACAATATATAGAAGAACATAGTACAGGTATTAATATTTTGAAAAAAATTAAAAATCCATATCATTTAT -AACAAAATAATTATAGCAAGGTGTTATTATTTGTTTTCAGGCTATGTAATAGCTTACAATCAAATGTATA -TAGACCTTGTTTTTTTATTTTCATCAATTTCTACCCCTAAACCTAATGCTCTAGTCTGATGTCATGGGTT -ATTGATTGGTGATAATATAAAACTATGTTATATTCACGATGATTAACTTACAAAGGAGTTTCAACTATGA -AGATGATAAACAAATTAATCGTTCCGGTAACAGCTAGTGCTTTATTATTAGGCGCTTGTGGCGCTAGTGC -CACAGATTCTAAAGAAAATACATTAATTTCTTCTAAAGCTGGAGATGTAACAGTTGCAGATACAATGAAA -AAAATCGGTAAAGATCAAATTGCAAATGCATCGTTTACTGAAATGTTAAATAAAATTTTAGCTGATAAAT -ATAAAAATAAAGTTAATGATAAGAAGATTGACGAACAAATTGAAAAAATGCAAAAGCAATACGGCGGTAA -AGATAAATTTAAAAAGGCCCTTCAACAGCAAGGTTTAACAGCCGATAAATATAAAGAAAATTTACGTACT -GCTGCTTATCATAAAGAATTACTATCAGATAAAATTAAAATCTCTGATTCTGAAATTAAAGAAGACAGCA -AGAAAGCTTCACACATTTTAATTAAAGTTAAATCTAAGAAAAGCGACAAAGAAGGCTTAGATGATAAAGA -AGCGAAACAAAAAGCTGAAGAAATTCAAAAAGAAGTTTCAAAAGATCCAAGTAAATTTGGTGAAATCGCT -AAAAAAGAATCAATGGATACTGGTTCAGCTAAAAAAGATGGCGAATTAGGTTATGTTCTTAAAGGACAAA -CTGATAAAGATTTTGAAAAAGCACTATTTAAACTTAAAGATGGTGAAGTATCAGACGTTGTTAAATCAAG -CTTTGGATATCATATTATTAAAGCTGATAAACCAACAGACTTTAACAGTGAAAAACAAAGCCTGAAAGAA -AAATTAGTCGATCAGAAAGTACAAAAAAATCCAAAATTATTAACTGATGCATACAAAGATCTATTAAAAG -AATACGATGTTGACTTTAAAGATCGTGATATTAAATCAGTTGTCGAAGATAAAATCTTAAACCCTGAAAA -ACTTAAACAAGGTGGCGCACAAGGCGGACAATCCGGCATGAGCCAATAACACAAAACCGAGCAACCGTGG -TTTAAAAATCATACCACGGCCGCTCGGTTTTTTCGCATTAAAAATCGGACAGATGAGCTCATGTTTCAGT -ATACTCATCTGTCCGATATCTTTTAATTCTTAATCGAGTGATTCAGGATTGTAGAATCTACGATTTTCAA -GACCAAATATTTTATCTGTAAACTGACCCTTGTCAGTTTTTTTATAAGCCTTTTCAAACATATTCATTCT -AGCATCGATATTATCGATATAGCATAAAATTTCTGCTTCTTTTAAGTATGGCAGCTTTGGCGAACCATAC -TCTAACTTACCATGATGAGATAAAATCATATGTCTTAACAACATGATTTCTTCTCCTTCAATGTTCAATT -CACGAGCTGCTTCAACTACTTCATCACTCGCAATCGAGATGTGTCCTAATAAATTACCTTCGACTGTATA -CGACGTCGCAACAGGACCACTCAATTCTCTAACTTTACCAATATCATGCAAAATAATACCACTATATAAC -AAACTTTTGTTTAACAATGGATAAATGTCACAAATTGATTTTGCAATACGTAACATCGTTAATACATGAT -AGCTTAAGCCACTCGCAAAGTTATGATGATGAGAACTAGCAGCTGGATATGTGTAAAATCGTTCTTGATA -TTTTTTCAATAAATGACGTGTGATACGTTGTAAATTAGCATTTTCAATATCTAGCAAATAATGAGAAATC -TCTTCTTGTATTTCTGCCGGTGATAAAGGTGCACCATCTACAAATTGTTCTGTTTTTAATTGATCTTCAG -TTGTCGCTAGTCTAATTTGGTTGACTTTCATCTGTTTATTTCCGCGATAGTTTATGATGTCACCTTTAAC -ATGTACAATTTCTTCAGGCTTGATTGTTGCCATATCATTTTTTGTAGCCGTCCAAAATTTCGCTTCAATT -TCACCACTTTTATCTTGCAAATGTAATGTCATATAATCTTTACCTTGTGCTGTTACACCCTGTGTAGCTT -TATGCACTAAGAAAAAGTGATCAACTGAATCTCCGGGATTTAGATTCTCTATATTTCTCATCGTTTCCCG -CCTTCCTCTATTTTGTTTAATGTAATCACTTCTTTTGATGGAACAATATTATCTTTTACACATGTAAAGT -ATAGTACTTGATAGTGTTCTGATAATGATCGTAAATAATTCAACATTTTTTCAGTACGTTTTTTATCAAA -ATGAACAAATGCATCATCAACAATTAATGGGAACGGATAATATGGTCGTAGTACCTTAATTAAACTGATA -CGTAAAGCTACATAAAGTAATTCTTTTGTAGATTGACTTAGTTCAACAGGATCATATAATTGACCATTAA -CATGTTTAACCGTAATTGAATCTTCATTATAGTTAATCATCGTATATCTGCCATCTGTTAAATGCTTCAA -TATTTCTACCGCTTCATTAATAACTTGAGGCAAACGTTTATCTTTAATTTGTTTAATGTGTTCATCAACT -AAACTTTGTAAATAACTTAAACTTGCCCAATCTTTTGCGATATCATTAAGTTGATTTTTAAGACTGTGAT -ATTCATGTCTTAAATTAGCAAGCGTTGTATCAGTTTCCATGTGATTGATTTGTGCACTTAAATCACTGAC -TTGTGCTTGCATTTCAAGATATTGCTCATTATATTCGTCAACTTGAGTAGCCAATAAATGATCTTCTTCT -TCAAGTTGTGCTGTTGTTTTTTCACTTAAACTAGAACTTAATTCATAAGAATAGTTTTGGTTCTCAAGAT -ATTTTGTTAAATCATTAAAACGACTCAAATTACTAGTGTATGTTTGGTAATCTTCATGATGTTGGTAAAA -ATCTTCTTCAGTACCAACATTGATAAAATCGAATAGTGCTGTAATTTCTTTATTATTTTCTTCTAATTGA -GCATTTAAATGATTTAATTCATTTGTAACAAGTTTGGTATTTTCAGCATTAATACGCCATTTTTCATTCG -TGTCTTCAGCTGATTTCAACCATTGTTGCACATCGTGGAATAAAGATAATTTGTTGAAATAAACAAATTG -TGATTTTGTTACAGCTTCAGCATGATTGTAGAATGTATCTAATTCTTGAACCAATTGCTGGCGTTGTTGA -TTTAAATCACTGATATGTTGATCTAATGCTTTAATATTCGCCATTGTAGAAATACTATCAACAATTAAAT -CATTTGAAATTTTAGATGATAAGTATAATTCATCCTTAACGTTTTCAACTGTCGATTGTAATTCATCATG -ACGCCCTTTCGCATCATTTAAACGACCTTCAATATACTGACGTTTCTCTTCTAAAATATCTTTATTTTTC -AAAGCTTGTTGCCAGTGATCACGAATGCGATATTGCTCATCAAGATCAAAATCTAAGTCATAGTTTTCAT -CTAAAATGGCTAGTTGTGCTTTAATTACTTCGATTTCATCTGTGATGGCCTCGCTATAATATACTTCTTT -TGATTTAGACATGATGATACCGATAACAAATACTAAAGTTAATACTGCGAAAATAATACCAAACAACATG -TTGTTTGAAATAAATGAGAAGACAGTTAAACCAATACCTACTAATGTTAAAAGAATAAACGTTGTTCGTA -ACAATTTTTGACGTTTTTGTTTTTCTTGTTGCTCAATTTCGAAACGTTCTTTCAACTTGCTATACAAGTT -CTCTTTTTCGTTTAATTCAATGACTTGTTGTGAGTATTCTTTTTTCTTTTCAAAAGTCTCTTCAGGAACT -ATTTTTTCTTCAACAGAATCTAGTTCGCTATGAACCGCATTATCTTCGATTTTATTTTCTTCTAAACTAC -GTTCTAATTGCTTAATGTATGCCGCTTGTTCTTGTTTATTCTTGATTTGCTCACTGACATAACTTTTCAT -TGCCTCAGAGCTATCTACGTCATGATGCGTTTCAGACCAACCAATATTTGCTTGCAATTCATCTTTATCA -CGTTGTTTATTCGCAATATCCTTTTCGATTGCAGTAAGTTCAAATTCTTTATTTTTAATTTCATTTTCTT -GTTGATTCAAACTAATGAAGGCGTCAATATCAGATTGTTTAACTGGCTCTAATTGAGTCGCTTCTTCTTT -AAGTTGAGCTAAACGCTCATTTCTTAAACCAATATCTCTTTCTAACGATTGCTTATGCGCTCGTGCTTTT -TCGTAACGATCTACACCTTTTTCTGGGAATGTGATTGGCTCAATATTTAACTGTTGTTCTAGAGACTTCC -ATTCTTGTGAATGATCATGTAAAGCAACCTCTTTTTGTTTTTCTTCATGCATTTTTGATAATTGATTTAA -ATTATGCTTTAAATTCTCTAATCGACGTGATGATTTATCTCGATCATCTACTAAACGATGATATGTTTCT -AGTTTAGCTTCTTCTTCACGAATTTGACTTTCTAGTTGTTTTAATTGCTCAATTTGTTGATTAATAATCG -GATTTTTACCTGATTTTTTATATAATTCATCTTTTTTACGATTAATCACTTCGCGCATTGACGTGAATTC -AGTTGATCCTAAAGCCCCTGCTTGTAATAAATAATCTTGCAATTGTTTTTCATTTAGATTTCTATGAATG -TCTTGAAGCCCTAGTACATCAAATGAAAAGATACCTTGATATGTCTTTTTAGAAATATAATTAAGTTTCT -TTTGTAACCAAGCATCATCACGCACAGCACCATTAGGTAAATATACTTTCACATCACCTTGAGCACTGCC -TTTAATTCGTTCAACTTCAATCTCTAAGCCATCATCAAGAATAAGTACTAATTTACCACCGTATTGGTTA -CCTAGACGTGGTTCTAGTCTTGGCTCTTTAGACTTTTTAGTTGGAAAACCAAATAATATCGAATGGATGA -ATGCTTGAATCGTCGATTTACCCGCTTCATTTTCACCAAAAATTTCAGTGAAGTTTTTATTAAATTCAAT -TTTACGTTGAACAAATTGACCGTAACCATAAATTTCAAGTGATTTAATTATCATTTTGTTCACCTCTCAT -TTCAGCTTTTAATATTTCTTCAGCACGATTAACTAATGCTGTATGGTCGAATGTTCCATAATCGTCTAGG -AACTTAGATGCCCTTGGATTTAAATATAAGTCTGACATCGCTTTATCAAAAACAGTTTGATCGACTAATA -ATTCCGCTGAAAATTCATTAACTAAAGGTGACTCATCATTTTGTGCATATTGTATTTTTAACTCATCAAT -ATATACAAATTGATTTTCGTTTTCTTCATAATCTGTAATCATTTCTTCAACTTGTAATAAATCTTGAGGT -GAAATTAATGTCTCACTATTAATAACAAGCGTTAAACGATAAAAGGCTTTCCCTTCTTCTCTCACTTGTT -CTTTAAAGTTTTGAATGACCTCGTATAAACCTTGCTTAGATGTCTTATCCGTTTCAATAGTTGCTTCTTC -AAATCTAATATACTGTGTAGGATAAAATTTAGTTTTTAATTTTAAGTGGTCACCCTCGATTAATAAGCAA -CCTTTTTCACCTTGCTCATTAAAATGTCTACCTTGAATATTACCTGAATAGTTAATTACAGGCATATCAC -TTAATTGTTGACGTTCATGTATATGACCTAAAGCCCAATAATGATACAATTTACTGTTTAAATCTTCTAA -AATGAACTCGGTATATCTTTCGTTAACTGAAGATTTACTGTACGTACCATGCAAGACACCAATATGTATG -CCTTTTTGGCCTTGACTTGATGGATATTCATCAATCTTGTTCTCATAACTTGCTCTATTTTCATAACTAA -ATCCGTGAATATAAATTGTTTCACCAGATTTAGTAATTGCTTCATACGTCTCAACTTTATTTGAAAATAC -AGAAACATTATCTGGCCAGTTTGATGAAATCTTTGATGATAATGGGTCGTGATTACCATGACAAACATAA -ACAAAGATTTGTTCATTTTGTAAACGTTCAAATTGCTGTTTTAAGAAAATTTCAGCACGTAATGTTCTGT -TTTCACTATCAAACAAATCACCCGCGATAATTACAAAATCAACATCTTGTTGTAATGCAATATCTACAAT -GTTTTTAAAGCTTTCATAAGCACTTTTTTGAACATCCTCAAAAATTTTAGGGCTTATATGACTCTTAGAT -TTGAAAGGACTATCTAAATGTAAATCCGAACAATGAATAAATTTAACCATACATCCATATCTCCTTAATT -AAAGGTTCTAACATCAATTTTGCAAAATCCAACTATACAAAGCATTCTAATCACTATATTCATACTTATA -GGTGTAGTGATTCATTAGCTGATTTATTAAAACCAGTCGCCATTTTTATTTTTATTTCGTTAAAAAATTA -TTATCTACACAATAATAAAGTGCTTTAGTCAAATCGTGATGTTTTATTTATTAACAAGTTTATTATTTCT -TCATTTTACCATAATACGCTTCATATCGTCGATGAACATATGAAATTGAGACACATTTATAACAGTTTAA -AATTTTATTTGTAGCGTGCGTTGATTTTTTTCAAAAATTTCAGTCGAAAATGTAATTTCCGTAATTGTTA -ACACCGCTAGTGAACCAACTGATACATTAAAGATTTACATGATTACTCTACTAGATTTGCTTGGCAGTAA -TGACCAATTAGAAGCTAAATGTCAAAACTATCATTGCACTTAATACGCCAAACATTTTCAAGCCGTTCTT -AATGAGTCATTAAAAGTGAAACACTTTTCCATCAGTCCGATACATGACCGAACTAATAGTATTATGCTCA -AAATTTTACACTCCAAAATGCAAAAAGGAAGTTAGGACACGTTTACTAGCCTAACTTCCGTTATCAAGCT -CATCCGCCCGTTTTGGCATAGAGCCAATATTGTTTGATTGCCCAGCTTCAGTCGTCCGTTCTGAGCTAAA -GTTAAGACATGTTTAATAACCTAACTTCCGATATTGAACGCATCTGCCCAATTTGACAGGGGGCCTCCAA -CTTCCGTTATCAAAACTAAAAAAACTACCCACAAAGTCTAGGACTCTGTCGGCAGTTTATTCCTCTATTT -AAAGGATTGAAAAATATTATTTTAATATTAGTCAGCGTAAATTTCGTCTAATGGTTTAACGATAATTTGG -TTGATTTCTTGGAATACTTGACTCATTTTTTGTTCAGCATTCATTAATGCAGAGATGTTTTCATCTTTTT -CAATTGCTTGCGCTTGTTCTTGCGCTTTTTGTAAATCTTCTTCAGCAATTTCTTCACCTTGCATTTGTTT -TTGTTGGAAGTTAATTTGAGTTTCACGGAACTCGTCGAATAACTTTTTAGATTCTTCGTTAGCTTTTACA -TTAGCGAATGCTTCTTTGATTGCTTTGTATTCTTCGCTTTCTCTTAAAGCTTGTTCTAATTGATTTGCAT -AATCATATAAATTTACTGCCATGGTTATAGCACTCCTTTGTTGTGATGTTTATTAAAACGTTCGATATTA -CTTTACCACATCTCGCTTTTTTAGACAAAGATTGCAACCAAACCTTGGAAAAATCCAATAATACCACCTA -AAATGAAACCTAATGACATAATCAACTTTAGTTCTTTGTTAGCAATTTCTATAATTAATTTTTCAATATA -ATCTAAGTCAAACGTATTAATTTGTTCTTCAATTAATCCTCGTAAATCCACTTTTTTCATAATTGTAGAT -AAGTGAATCGATAATTGTTCAATGATTAAATTTGCTAATTTGCTAGAGAGTTGACTTTCTAAATAATCAA -CAAATTGAGGCATTAACGTAACCACTGGCTTATTCGCTTGTTTGCTTGCATATGTTGTTACATACATTGA -TAGATTTTCAGCGATTTCATTAAACTGCGACGTATCTAACAGTTTATTCAATGATTTATCTTTAAAAGTT -TGATATTCATTGGTAATTAACGATGTCACAATTGCTCTTGCTTTAGGATGAGATGTTAGACGTATAAGTT -CTTGTTGAATTCGATCTGCAATGCTCTCTTTTGTCATAAACATTTGCAACATACCAATTAACTTACCTTT -CTCATTGAAAAAAGTATCCAACATATCATTAATATCTTGTGTGCCTTTTGCAGATGATAAATAATTTCTT -GCACGATCACATAATAAGTCTGTTGCGTTATCTACATGCTGATCTAAAAATGTTACAAGTTGATTTGGCA -ATAAAGATGCTATTGTTTGGTTTTGATGCTTTGTATAATAATTATTCAATTGTGATGCAATATATTGATT -TCCATTAGTTTGTAATACTTGTTCTAAATCAATATCGATTTGAGAAGTAATTTGTTTAATTGACAATTGA -TCTTTCGTCAACTTTTGTAACTGCTGTTGAATCATAGATTCTATTGCTTGTTGTGATTGCTCGCTTTTTA -ATTTTTCATTAATTAAAGTTTCTGTAAGCAAATGCTCTTCAATCACTTGGCCAATTTTAGTTGCAATTTC -TTCGCGTCTTTTCGGTATTAAACCTGGTGTAAATGGGACTCTAAATTTAAATATATAGTATGGTTTAAAG -GGGTGAAACAGCATTCTAATTGCAATTACATTAGTAACACCACCAATTATCGCCCCTACTACAATCATAA -ATATGATAATAAATAGTGCATTCATAATTTTGACTCCTTTATGACAACATAGTTATTCATTATACCACTA -TTTTTATTTTTTAATTCATTAATCATTTCACTTTCTGCTCAATTTATTATTAGTTTACATACAAAAAGCG -ATGCCTCACCTCTCGAAACAGGTGTGTTACATCGCTTTTATTATTTATTAAAAGTATATAGGCCTAGATA -TGTACTAATTCTTCTTTAGCATTTCTGTTAAAGTATGTTTCAGCTTCTCTCATTTTAGAAGTACCGAAAA -TTGGTTGGTTATCTGGATTTAATACACGATAAATATTGCTTACTTTGTTACTTTGTAAAATGTACCCATT -ACGAGTCTCAATGTTATTCCAATAAATATCACTTGTTGGTGCATGGTTTGGATATGCACAGTGATTTCTT -GAAATTGTTTGAACGATTTCTAATGGATCACAGCCAAATGTACTGTTTAATACTTCAGAGTCTCTGAATA -ATGCACAAATTGAAATACAAGTTGTCCAGTTTGGTAATACTCTCTCTTTTTCGATTTGTACTAAAGTCTT -TTTAGAAAGTCCAATTGTTTGCGCCATAGTATCTTGCGTATAACCAGCCTCTATACGAACCATTTTAAAT -TTTGTTTGAATTAAATCTGTAAAACTCTGTCTATCCATTCTGTTATCTACCTTTCTGTTTGGGGAATTTT -ATCCGGACACAAGAAATTGCAATAATACACATTTCTTGAAACACAGATTACATCTTAATATATTTTTAAT -AAAATGAAAAGAGTCAATTTCACATTTGTATTAAATTTTGATCAAGTCAACAAAAGTTAAGTTTACTTCA -TAATGAAACAAAAGTAAACGAAGTTAAATTTTATGCATTATGTCTACATTTGATAAAACTTACACTTTTA -TTATGATATCAAATTTACAAAGAAAACTGTATAATAAATGCTATCGCTGTAAAAAAAATCTAAATAAATC -GATTAAAAATTGTCGATTTTTTGACGAAGCTACATCAACGCAACTTTAAATCAACTTATTTTCCATTGCA -TAAATTGCTGCTTGTGTACGATCGCTAACTTGTAATTTACTAAATATATGACTGACATGTGTTTTAATTG -TTTTTTCAGATACAAATAAAGTTTCTGCTATCTCTTTATTTGTTTTACCTTTAACCATTTCACGTAACAC -TTCAATTTCTCTCTTTGACAACTTATTCGTGTAGTGTGGTTTTTGGCTAACTGTTTCGAATACATCTTGT -GCCTTAGGATGTATCATTTTTTCACCGTTCATAACTCGTCTAATAGTTTCAATTAATTGCTGAGGCTCAA -CGTCTTTCATTTCATAACCATCAGCACCTTTATTGATTGCTGAAATTACATGTTCATCATCAACATAACT -TGTTAATACCAAAACTTTAATATCCGGATAATGTGCCTTAATATATTCCGTAATTTCAATACCATTCATG -CCAGGCATCACTAAATCTAATAGCACAATATCAGGATGCTCATGCTCTTTTAAATATTCTAAAAATGTTT -CTCCATCTGCAAAGTCTTGTAAAACTTCTATGTTTTCAATCGTGGATAATAAAAATCGCAATCCTTGTCG -CACAATATAATGGTCATCTACTAATATTACTTTGTTCATGGGTTATCTCCTTAAATCAAGCTATTTTATA -GGAATTGTAAATTGTATTTGTGTACCCTTTGTTGGCTGAGAATGAAAGGTCACTTTACCTCTTAATAATT -TAACTCTTTGTTTTATGTTATTTATACCGTGTGATGAAGCTATCTGAACATTATCGATCTCAAATCCTTG -ACCATAATCAATCACGTCAATATATAGTATATCGTTCATTTGTTTTAATGTAAGATCCATTTTATTCGTA -TCAGCATGTTTCTTAACATTATTAATACACTCTTGTAATGCTCTGTATATGTTTTCTTCGATTTCATTAG -ATAAATCGATTAAACCTTCTACATTTACATTTAATTGTATATGCATTAATTTACTATATGCTGTCAAAGC -ATGAATTAAGCCTTGCTCAAGTCCAACTGGCTTAAGTTGCCAAATCAATGCACGCATTTCATTAACGGCA -TTTTGACTCGTTTCCTCAATCGTCTTGAAAGCTTGTTTAGCAATGGATTCGTTTGACATGCCATACGCAG -CATGTGCTGTTAGTTTTACAGAAAATAACATTTGATTTACTGAATCATGTAAATCTCTAGCTAAACGATT -ACGTTCATTAATTTTTGCTGCTTCTTTTTCACGGTCTGTTAAATAAATACGTTTGATGGCTGACCCTAAT -TGAAATGCGACAGACTCTAGCAACTCTAAATCTTCATCACTATAAATTTCAGTATTTGGTGACGCTACAT -TTAAAATGCCGAATTGTTCTTGACCCGATTTAAGTGGTACCGTTGCATGATGTGTAATATTGTCATTTTG -GCTAGGAAATGCTTTAGAGGCTAAGTTAATACGAGAACAATTGACGATATTCGACGCTTTCATTAGCCTA -CGTTGATTAAATGCTTTCACACACCAACAAGACCCATCTTTAATATAGTGACAGTGGTCTGCTGTCAAAG -ATTGTGGTAAAGCCACATGTGATACAAGTTCATGTTCACCTACGCTATTGATGAAAAATATCCAGCCTGT -CGTGAAATTACTGCCCTCAATTAAATATTTTAACGCACCTTGGGTCATGCTATACATTTCAGTTTCTTCA -TTTAAAAATTCGGCAATCTCTTTTAATAAAGCTAGTCGCGTCCTTTGTTCCATCAAATCGCTCCAATTCA -TTTTTACGTGTATTAACTATTATACATTGAGTTATTATATTTTTAAATCTTAGACGTGAACATGATAAAA -TGGCCTTGATTACTTAATAGTTATATTTCGGAGAACTGATTTGTGATATGATATTAAAGACTATAGGAGG -ATTTTATGAAATTTAAAATACCAGAAAACTTTAATGACTTAAGTTTACGAGATATTTTCCAACAACTTAA -GGTACCTAAAAAAGATTTACATCATTTAAATATGTCTAAAGATATTACTATTAATGATAAACCTGCGCGA -TTAATGGATAAAGTGCATACTGGCGACGATGTATTTGTTCCAACCATCGATGAAAAAAGTAATTATGTTC -CAAGTTATCGTTATGCACAAATTAAATACGAAGATGATGATATGGCAATCGTAATGAAACCTAAAGGTGT -TAAGACCCACCCTAATGATTTAAAAGAAAGCAATACTTTAATGAATCATGTGATTTACACGGTTGATAGC -GATTATGTCGAACCAATTCATCGACTGGACCAGGAAACAGTAGGATTATTAATTGTTGCTAAAAATCCTT -TAATGAAAAAAATTCTTGATCGCATGTTAGAAGACAATGATATTACGCGGATATACAAAGCAAATGTTAA -GGCACTTTTACCTTTAAAACCACAAACGATTGATATGCCAATTGGTAAAGATAAATTCCATTCGAATAAA -CGACGTGTGTCTCCTACTGGACAGCGTGCAATTACACACATTTTAACTTCAAAAATGATAAAAGAAACTG -TGTGCCAACTTGAAATCAAGTTGGATACTGGACGTACTCATCAAATTCGTGTGCATTTAGCTGAAATTGG -TCACCCAGTTATTGGTGATCCTTTATACGGTGATTCAACGTTAAGACAATTAGAACTTGAAAGTTACAAA -ATAGAGTTTGTGCATCCCTTGACTAAGGAAGTCATTTCCGTTTCTTTGGATGACTAATTTGTTTAGTTTG -GCATGATATTTAAATATGCAATACTGCATTGTAACTAAATCAAGTATCAACTTAAATCGGATAGATGGAA -AATTATTAATTTTTTCAGATGTTCGGTTTTTTTATGTTTTTTACGACCTTAGGATTTTATATTTTGAATG -TATTTGGATTTATAGCATCCTTGGATAATGACTTGTAGTCTTTTTCAACTGCGTTACGTGTATCTAAGGA -CAATACATGACATCATAAGATTTTTATCACATATTGTTTGGTCAATACATGTACAACAATTCATCAAATA -AAAAATAGGTTCTATAATAAAATGGAATCCATGAAAAGTTTTTCCTTTCATGGCTCTATATCAAATCGGA -CTTATAAGTTCAATTTGACATAGACAAAAAAATAAAGCTTGAACACTACATCTACCTGTAATGCCCAAAC -TTTATTTTATATTAATATTTAATTAATGAGGATCTACCATATCTTCTGGTTTAATCCATGCTTCAAATTG -TTCTTCTGTAACATATCCAGTTTGAATTGCAGATTCTTTTAAAGTTAAACCTTCTTTATGGGCTTTCTTA -GCAATTTGAGCAGCTTTTTCATAACCAATATGTGGATTTAATGCAGTAACTAACATTAATGATTGATTTA -AATAATTATCAATATTCTCTTCGATTGGTTCAATGCCCACTGCACAATTGTTATTAAATGTTTCCATTCC -GTCAGCTAAAAGGTAAATTGATTGTAGTGTATTATGCATAATAACTGGTTTATAAACATTCAATTCAAAG -TTACCTTGTGAACTTGCGAAGCCAACAACTGTATCATTACCCATTACTTGGACTGCAACCATTGTTAACA -TTTCACATTGTGTAGGATTAACTTTACCAGGCATAATTGATGAACCTGGTTCATTTTCAGGGATAGAAAT -TTCTGCCAAACCAGCTCGTGGCCCTGAAGCCAACCATCTCACATCATTAGCAATTTTCATTAAGTCTCCT -GCTAGCGCCTTCAATGTTCCGTGTAGTTGTACTACTTCATCATGTGCTGTTAATGCATGGAATTTATTTT -CAGAAGATACAAATGGATAACCCGTATTTTCAGAAATATACTGTGCCACTTTATCACCAAACTCAGGATG -TGCATTAATACCTGTACCAACAGCTGTACCACCGATGGCAAGATTTAAAATGTGCTTCTTAGATTCAGAT -AACATTGTTTCGCAACGGTCAAGCATATAACGCCAGCCACTAATCTCTTGTCCTAGTTTGATCGGCGTTG -CATCTTGTAAATGTGTACGACCAATTTTTATAATTGAATCAAATTTATCTTCTTTTTCTTTCAAAGTATT -TCTTAAAAGTTTTAATGCAGGTTCTAATTTTGTTTCAACCTCTTGATATAGTGCAACATGCATAGCAGTT -GGGAATGTATCATTCGAACTTTGTGATTTATTTACATCATCATTTGGGTGGATACTTTCATCACTATGAT -GATCTTTTAAATACATATTAGCAACATAACTTACTACTTCGTTCACATTCATATTACTTTGTGTACCGCT -TCCTGTTTGCCATACAACTAGTGGGAAGTGTTCATCTAATTCACCTGATAAAATTTGATCACATGCGTAT -ACAATGGCATCTTTCTTTGCCTCGCTTAATTTTCCTAAATCAAAATTAGCTAATGCTGCTGCACGCTTTA -GTTGTGCAAAACCATAAACTACTTCGATTGGCATACGCTCTTTACCAACTGGGAAATTACGTTTACTTCT -TTCTGTTTGAGCACCCCAATATTTATCTGCAGGTACTTCTATTTCTCCAAAAGTATCATGTTCAATTCTT -ACTGACATTCAATTTCTCCCCTTATCACTGTTTATTTAACTGTAGTATATCATTAAATAATTTAATTGAG -CAATTTATGATTAAAACGTTTTCATAATTTGAAATAAAAATACACTAATCGCACGTGCCCACCCTTTATT -ACAGTGATACGGTCATACGATTAGTGTGTTATCTATCATTATTTAGTTAATGTTGAACTAAGTTTAATTA -CGATACTTTGTTTTAGTAGCTTCAACCGTAGCAATAGCTGTAAGTATATATAATACAGCACTAACAATTG -TCGTATATGGATTTAGAGCAACAAGCGTACCTAATACTCCTGTTAAACTCGCATAAAACCCATCAAGTGT -ATAATACAATATTCCTGTTATTAATAAACAACAAATTACACTTATTACAATACCTGATTGATTACTTTTA -ATGAATGTTTGCGCATTAACATCATCGATTAATCCTTTTGATAAATTGAGTTGTAATTTTATTACTTTGA -AAATAATAGGTAAATATAATGCCCCAATTGCCAATGGAAATGCTTTAATTGATATTAAACTTATAATAAC -TGTTGCTATCAATAATTGAATCCAGTATTTTCCTAACATAAATATATAAATCTCCTCTAATTTCATTCTT -CAATAGCATATCATAATCTTGGCATATTAAGAAACGCGGTTTAATGATTTCATTAAAAATATTACTGATA -GATGACTTCTTTCAATTATGTCTGGAGTAATTAATTATCAATTCTGTTTAAATGGTGTTTTAAAATTTAA -AATTGAATTTTTGATATATTACTATGTCTAGTACACAAATCAATATTCTATGCTCTACAAAGTTATATTG -GCAGTAGTTGACTGTAGTCCCCAACATTGAAGCTTCGGCATGTCAGCTTACTATTTCATGCAAGCTGGCG -GGGCCACAACACAGTGGAATTGGATTTCCAATTTCTACTGACATTGCAAGTTGGGGAACGACCCCAACAT -AGTGAAATCGGATTTCCAATTTCTACAGACATTGCAAGTTGGGGAACGGGTCCAACATAGAAGCTGGCGG -AAAGTCAGCTTCTGTGAATATAATAAAAAAGCTAGGTAACAAAATGCTACCTAACTTCATATTCAAGATT -ATCAATCCTATTTGATATAGGTTCTATACTATTCATTGTTTACATGATAAATAGCTGTATATTACACAAT -TATAATACTTTACTGACTGTCTTCTTCAGAATTCTTTTCTTGATCATTTTGATCAGAAATTTGTTCCATT -TCTTTACCTAATTCTTTTAAATCTTCAAAATCAGTTACCATACTGTTTTCTTCTTCATGATAATTTAATT -TTGGATCTTTGTCTTTAGACATAATCAATACCTCACAGATTTTTAATTAAGCAAAGCGTGACGTAAAGTA -AGCTTTAACATCTTCGGGTAAACCTGCAGCCGCTTCTTTATCAAGAATAACATTTACCATTCTATGTGCT -TTTAAATCGGCTGGTTCAAAGCTTGTTTTACCATTTTCTTGATATAATTTTTCAACTACATCTCGTTTAT -TAGCACCAGTCACTACTAAGAAAATTTCTCTTGCTTCCATTAGTCCTTGACGAATACTAACATTTAACTT -ACCTTGCTCATCGATAGAAACAACTTGTAATGTTAATTTCCCTTTATTTTCTTTAGTTTTAATCTTATCA -GCGATTAATTCGATTGCATCTTTTTCATAAGCAATTGGATAAACTTGACCTGCTGGTACACCTAACGCTT -CGAAATATGATTTTTTATCGTCATAATCTAAAATATTTATTTGGCTAAAATCAACAGCATGTTTTTCAAT -ATTTTTCTTTAATTCATCTAGTACTGGCGCTTGATCAGTATCTAAATGAAAACCTGCAATTGTAGTAGGA -TTATTGTTAAATTGCTTTCTAATAATATCAGCAGCATATTCTGCTACAAGTTGACTATTGTCAAAGACTT -TAAAGTTCATTGCCATGATTTCTACACTCCTCTTAGTTTGCATTTTACATAAAAACGGCGATATTAATAA -TTATTATACCCTAACTTTCAATATATCAAACCATTTAACTTTAACATGCTTATACTCTAAATATAGCACT -TAAGCATCATTTTTATAATGAAAATGAGTAAATTTTAATTCAATCCTGGAAAATCTTGTTGACGTAACGC -TTCATAAATTAATAACGCAGCAGTATTTGATAAATTTAATGAACGAATATGTTCACTCATAGGAATTCTT -AACGCTGTGTCTTGATATTTCTCTTTCACCCAGTCTGGTAATCCTGTCGTTTCTTTTCCAAAAATGAAGT -AAAAATCTTTGTCATGATTTGAAAAATCAAAATCACTATAAGTCTTTTTACCAAATTTTGTTAATAAGTA -ATACTCGCCATTTGTGGCTTCAAAAAATGCTTCAATACTATCATGATACGTAATATTCACAAATTCCCAA -TAATCTAAACCGGCTCTTTTTAACATTTTATCATCAGTTCTAAATCCAAGAGGTTTAATTAAATGTAAAT -GTGTGTTTGTACCTGCACACGTACGTGCAATGTTACCAGTATTAGCTGGGATTTCTGGTTGATATAAAAC -GATATGATTTGTCATATTACTATTCTCTCCTTGTGTCCAATCCTTTTATCATTTCATTCTGAACTTCTGC -ATCCTCTTGATCGTAATTTGCATTGATAAAATCTCTTGCTTCTTCCCCAAGAATTTGACCAATAGCCCAA -TAAGCAGTTGCTCGAATCATCGGTCTTTCATCTGTTGTTGCAACTTTTTTCAATTCTGGAATTGCATCCA -CTTCATTAAAATGCGCCAATGCTAAAATAGCATTTCGTTGTATCGGTTTTTTACCACGCCAAGCACCTGC -AAGGTGACCATATGTTTGTTTGAATTCTTTATTAGACATACGTAGTAAAGGTACTAATCTTGGCTTTAAA -ATTTCTGGTTCCAAAATGATGTCATCTTGTTCGGTATTAATACCTCTATTTTTCGGGCAAACTTGTTGAC -ACGTATCGCAACCATATAATCTATTCCCAATTTTATAACGATATTGGTCAGGCATATAGCCTTTTGTTTG -CGTTAAAAAACTAATGCATTTCTGACTATTTAATTGGCCATTTCCAACTAATGCACTTGTTGGACAACGA -TCAACACAAATTGTACAATCACCACAGCTATCTAATAATGGATCATCAGGTTCAAAAGGTATACTGACTA -ACATTTCACCGAGGTATGTCCATGTTCCTAGTTTAGGATTGATGACAAAGCCATTACGACCAACAAATCC -TAAACCTGCACGTTCTGCTACTGCCCTATCTGATAATACACCCGTATCTACCATAGATTTGATTTCAACA -TCTGGAACTTTAGATTCAATAAATGCAGCTAACATATCTAACCGTTTACGCATAATTGTATGATAATCTT -GACCCCACGATGCTCTAGCAAATAAGCCTCTGCGATCACCTCTAACACTCTTAGGTGCACCTTTCAGTTT -GTTAGGATAACCAACTGCAATTGCTATGATTGACCTTGCTGTTGGTAAGGATAATTTAGGCTCCGTTCGT -AAAGCAATATCAGATTCTTCAAATCCTGAGGCATAACCATTTGCATGATATGCTTCTAGCTTTTGCTTCA -ATTCATCAAAGGGATCGGCAGTAGTAAATCCAATACTGTCGATACCAATTGTATATGCATAGTCAATGAT -ATCTTGCTTTAACTGCTTTGTATCCAATCGTATGCCCCCCATAAAATAATACTATGTTATTTTAACACAA -CCATTATTCATATTGAGGTTTCATTTCACATAATTTTAATAATAAAAAGCTTGAATATATGATATAACTT -TGTGGTGCGCATCATATATTCAAGCTACGTTAGGTTGTTATAATACTCTTGCTAAGAAATTTTGTGTTCT -TTCATGTTGCGGTTGTTCAAATATTTCGACTGGTGTGCCTGACTCGACGACAACGCCATCTGCCATAAAT -ATGACTTTGTCACTTACATCTTTGGCAAATCCCATTTCATGTGTCACAACCACCATGGTCATACCTTCTT -TAGCTAGGTCTTTCATTACTTTTAATACATCACCAACTACCTCAGGATCTAATGCTGAAGTTGGTTCATC -GAATAAAATAACATCTGGATGCATTGCTAAAGCTCTTGCAATTGCTACCCTTTGTTTTTGACCACCTGAT -AATTGATTCGGATATACATCTGCTTTTTCTTTTAATCCCACTTTATCTAATAACGACAATGCTTCCTTAT -GTAATTCATCGTTATTATCTTTCTTTAATAATTTAGGAGCTAAAATAATATTATCGACAACTTTTTTATG -TGGAAATAGGTTGAAGTTTTGAAATACCATACCCATTTTTTGGCGTAGTTTATCTACTTGTGTCCCTTTT -TCCGTTAAATCATTGCCTTCAAAAATCACTTGACCTTTAGTGGGTACTTCTAATAAATTCATACATCTTA -ACAATGTACTTTTACCACTACCAGATGGACCTATTATTGCTACTACTTCCCCTTGATTGATTTCAAGATT -GATATCTTTTAAAACTTCATTATCTCCAAAAACTTTATTAAGATTGTTTATTTTAATCACTGGCATTCAA -TCTCCCTTCAATCATGTTCATAATGCGTGTAAGTACAAATGTTAAGACAAAGTATAATGCTGCTGCCACT -AGTAATGGTGTGAATGGGTCAAATGAAATACCTTGAACCACTTGTGCATTAAACATAATTTCGCCAACTC -CAATTGTTGACACAATAGATGATTCTTTAATTAAAGTGACAAATTCATTACCTAAAGCTGGTAAAATGTT -TTTAATTGCTTGTGGCATAATTACACTTTTCATCGTTTGTCTATAATTCAAACCTAGACTACGTGCGGCT -TCCATTTGGCCTTTATCAACAGCATTTATACCTGCACGAATAATTTCAGCAATGTAAGCTGAGGAATTAA -TAACTAATGCAATTGTTCCACAAACAAGAGCTGAAATGTCTAGTCCTAATGCAGCCGTTATACCAAAGAA -TACGATAAATACTTGAACTAACATTGGTGTTCCTCTTAATATTTCGATATAGATAGAGGCAATCCATGAA -ATAATTTTTATTTTACTTAATTTCATTAACGCAACGAATGCACCTAAAATAGAACCTAATGCTACACCGA -TAAGTGAAATTAATATTGTAATCTTAATTCCTTTCAAGAAAAAACTACCATACTTAGAAATAAAACCACT -GTCATCATTCATCGCATTTGCAGCATTAGTCATATATTTATCGATTAATCCTTTATCTTTAACCTCTTTA -ATCGTTTTATTAATTTGTGACAATAATTTTGGTGAATCTTTTGGTACTGCTATCACTGTATCTTTTTCTT -CTTCATTAAATTTCACATTGGAAATTCCTAATTTAGGATTTTGTTTTAAATATGCTTCTGCTACAGGTTT -TTCAACTACAACACCTTCAACCTTTCCACTTTTCAGAGCTAATATAACGTCTGGTAAACGGCTTAATGAA -GTAATAGATGCATTTTCAATTTCGGTTTGAGCGATTTTTTCTTGTTCAGTTCCCTTTTGTGCCCCTACTT -TTTTATTATTAAAGTCTTTGATATCTTTATAATCATTAACTTTATCTTTCTTTACAAGCATGATATTTTT -AGTCATCATATATGAATCTGAAAAATCAACTTGCTTCTTACGTTCAGGCGTTGAAGTCATTCCGGAAATA -ATAATATCAATTTTTCCAGTTTTAAGAGCTCCTAACAAACTATCAAATGACATATTGACGATTTTTAATT -TTAAATTATTATCTTTCGCAATTTTTTTAGCTAAATCAATATCTACACCTGCATACTCAGTCTTACCATT -AACTGTATGCTCAAATTCCATTGGTGCATAATCTGCAGAAAGACCCACTCTAAGTTCACCGCGTTCTTTA -ATCTTCTCCCATTTTTGATCTTGTTCAGCATATGCTGCGGGATTGATATACACCATAGCACTGCTAATTA -ACAACCCTAATACTAATATAAACCTAATTAAACACTTCATTTATACAGCCCTCCCTAATTAATATTCATA -ATTATACATATTAATACATTTTGATGCAATAGTGTTTTATAAATGTATTTTTATCAATATAAAGAAAAGC -TTCTTTTTAAAAGACTTTACTTAAAAAATCGTCTATTATACGCGAACAATTCTTAAATTTTAAAATCAAT -CAAAAAAAGCGCTACTATCAATATCTTATTGACAGTAACGCCTATATTTATCATATATTAAAAATTATTC -TTGTCATCAAGCTATAAATTATTGTTTTGGAACTTCAAATTTATAAATATCATTAGAATATATAGGAATG -AATTTTTTACACAATTCATGAACAATAAACGCCGATACAAATGGTATGACAAAATAACCAAGAGCTAATA -AAATAATATTCATTGTTGGATCACCTGACATTCGGTTAAATGCATTTATTGGGCCAACTAATCCTGTATA -TCCAAATCCAGCAGACAATGGTGTTCCTTTAACCTGAAGAACGTAAGCAATGATTCCAGTAATTATTCCA -TTTATAGTCAATGGTATCGAAATAATTAAATTTTTCAAGTAAACTGGGATCATCATTTTTGCAGCTCCTA -TGAGTAAAACTGCATTTACGCCAATAGAATTGACACGCAATGAGCCGAATAAGAAAGTAACACAAGCAGC -CACTATACCTAGGTTTGCTGCTCCACTTCCTAGCCCGTTTAAACTAATCGCAGTTGCAATCGCTACTAAC -GATATTGGTGTTACCATTAATAATGAAAATGCCACACTAATAAGTATAGACATTAACAACGGATTTAAGT -CTGTAAAAGAATGAATTACATTTCCAATTGCTTGAGTAATTTTTCGAATGTAAGGTAATGTGATTAGACC -GATACCCCCACTAACGATAGGTACTAAAACTGGTAATATAATTAATTCAAAAGATCCAAGCTTGTTTTGT -AATACCATATATATAAGACATGCAATAATAACAACCAAACTTGTATTTATAATGTCACCTATACCTTTTA -ACATAAAACTATTATTGCTATATACAACAGCACCTGAACCAATCATAGCTGATGTACCTACTATAGCAGC -ACCTGCGCCATTAAATTTAAATTGATGAGCAGCTAAAACCCCAATAATAAATGCCATAAATGATTGAATT -AGTATCACTAACTGATACGTTAATTCTAAAATTTCATTACCACTTTTAAATATTTTTAATACTTCACCTA -ATAAAGCATTCGGAACAAGTGCAATAACAACACCAGCACCAATAGAATTTAAAATCTTACTGAAAAACTG -TTTATTATCAGCATTCTTTGCGTTACTCATAAACGACCTCCAATTTGAACATTAAACTCATCATATTATA -GAAAATTAACTTTAACAATGATTAGTTGGCTAATTTAATCTAAATATAACAATTCACAAAAGGAATAAAG -TAAATTGGAACAATCTAATCAGTAAACAATGTTATGTTAATTTTAAAATACTACTAATTACATCTTGTGA -CTAATAATGTAATAAATTGTAAATATTAAAATAGCCATATTACTATTAAGATAGATAAATTGAATCGACT -TGGTATAAAGCACAATAAAATAGCACTTTTACAAATATTTTATTAGAAAAGTTAAAACAAATACATACCC -CAGATAATATAGTCATTATCATTAATGTAATACCAAAAAAAGAAGTTAAACAATGTATAGTTGCTTAACT -TCCTATATTAAACTCATCATTACAATTTGACATAGAGCCTATTAAAGCGTGTGCCATTTGAGTGCCACTT -TATTTGTATTGTATAGAGAGAAATAAAAAGAAACCTTGTTTTACAAGGTTTCTAGTACGTTATGTTATGT -AAATAACAGTTAATTATACCGGTGGTCGGGGTCGAACCGACACTCCACAAGTGGAACGGGATTTTGAGTC -CCGCGCGTCTGCCAATTCCGCCACACCGGCTTAATGGTAAACAAAAAACTTCCCTTTGGAAGCAATTATG -GAGCGGAAGATAGGATTTACACCTATACCTCATTCCAGGAAGGAATGTATTCTAAGAGTTGAACTACTCC -CGCATTATTATTAAATTATGGAGCGGAAGATAGGATTTGCACCTATACCTCGTTCCGGGAAGGAACGTGT -TCTAAAAGTTGAACTACTCCCGCATAAACCTGGAGGCGGCAACCGGATTTGAACCGGTGATAAAGGTTTT -GCAGACCTCTGCCTTACCACTTGGCTATGCCGCCAATAACTGGGCTAGCTGGATTCGAACCAACGAGTGA -CGGAGTCAAAGTCCGTTGCCTTACCGCTTGGCTATAGCCCATTAATAATAAGGGCGGCTGAAGGGGATCG -AACCCTCGAATGTCGGAACCACAATCCGATGTGTTAACCACTTCACCACAGCCGCCATGGCAGGGGCAGT -AGGAATCGAACCCACACCAAAGGTTTTGGAGACCTCTATTCTACCGTTGAACTATGCCCCTATTAAAAAT -AATAAATGGAGGGGGGCAGATTCGAACTGCCGAACCCGAAGGAGCGGATTTACAGTCCGCCGCGTTTAGC -CACTTCGCTACCCCTCCATAAATGGTGCCGGCCAGAGGACTTGAACCCCCAACCTACTGATTACAAGTCA -GTTGCTCTACCAATTGAGCTAGGCCGGCTAAGAAATGGTTCAGGACAGAGTCGAACTGCCGACACATGGA -GCTTCAATCCATTGCTCTACCAACTGAGCTACTGAACCATAATAAAAATGTAATGATGGCGGTCTCGACG -GGAATCGAACCCGCGATCTCCTGCGTGACAGGCAGGCGTGTTAACCGCTACACTACGAGACCTATAAAAT -ATTGCGGGAGGCGGATTTGAACCACCGACCTTCGGGTTATGAGCCCGACGAGCTACCGAACTGCTCCATC -CCGCGATAATAAAAAATAATGGCGGAGGAAGAGGGATTCGAACCCCCGCGGCCCGTTAAGGCCCTGTCGG -TTTTCAAGACCGATCCCTTCAGCCGGACTTGGGTATTCCTCCATTATTATAGGTAAATCGCTATTAATTA -TAAAATTAAATGGCGGTCTCGACGGGAATCGAACCCGCGATCTCCTGCGTGACAGGCAGGCGTGTTAACC -GCTACACTACGAGACCATTAGTAAAACGGAGGAAGAGGGATTCGAACCCCCGCGAGCCGTTAAGCCCCTG -TCGGTTTTCAAGACCGATCCCTTCAGCCGGACTTGGGTATTCCTCCAAAATTATATGGACCTTGCAGGAC -TCGAACCTGCGACCGAACGGTTATGAGCCGTTAGCTCTAACCAACTGAGCTAAAGGTCCTAAATATAATT -TTACAACTAATAAATAGTGGCGGTGGAGGGGATCGAACCCCCGACCTCACGGGTATGAACCGTACGCTCT -AGCCAGCTGAGCTACACCGCCTTATATAGTTTGTAAATAATATGGTGGAGACTAGCGGGATCGAACCGCT -GACCTCCTGCGTGCAAAGCAGGCGCTCTCCCAGCTGAGCTAAGCCCCCATAATAATTACAGTATATCGGG -AAGACAGGATTCGAACCTGCGACCCCTTGGTCCCAAACCAAGTGCTCTACCAAGCTGAGCTACTTCCCGT -ATAATTAACGCGCCCGATAGGAGTCGAACCCATAACCTCTTGATCCGTAGTCAAACGCTCTATCCAATTG -AGCTACGGGCGCATATATTTTTATTGAAAATGGTGCCGAGGACCGGAATCGAACCGGTACGGTGATCACT -CACCGCAGGATTTTAAGTCCTGTGCGTCTGCCAGTTCCGCCACCCCGGCACTATAAAAATGGAGCAGAAG -ACGGGATTCGAACCCGCGACCCCAACCTTGGCAAGGTTGTATTCTACCGCTGAACTACTTCTGCATATGC -GGGTGAAGGGAGTCGAACCCCCACGCCGTAAGGCGCTAGATCCTAAGTCTAGTGCGTCTGCCAATTCCGC -CACACCCGCAAATGGTGAGCCATAGAGGATTCGAACCTCTGACCCTCTGATTAAAAGTCAGATGCTCTAC -CAACTGAGCTAATGGCTCTTCCATGGTGCCGGCCAGAGGACTTGAACCCCCAACCTACTGATTACAAGTC -AGTTGCTCTACCAATTGAGCTAGGCCGGCAATATGTAAGAATAAATGGTGGAGAATGACGGGTTCGAACC -GCCGACCCTCTGCTTGTAAGGCAGATGCTCTCCCAGCTGAGCTAATTCTCCGATTTAAAACTGCCTGGCA -ACGTTCTACTCTAGCGGAACGTAAGTTCGACTACCATCGACGCTAAGGAGCTTAACTTCTGTGTTCGGCA -TGGGAACAGGTGTGACCTCCTTGCTATAGTCACCAGACATATGAATGTAAATTATACATTCAAAACTAGA -TAGTAAGTAAAAGTGATTTTGCTTCGCAAAACATTTATTTTGATTAAGTCTTCGATCGATTAGTATTCGT -CAGCTCCACATGTCACCATGCTTCCACCTCGAACCTATTAACCTCATCATCTTTGAGGGATCTTATAACC -GAAGTTGGGAAATCTCATCTTGAGGGGGGCTTCATGCTTAGATGCTTTCAGCACTTATCCCGTCCACACA -TAGCTACCCAGCTATGCCGTTGGCACGACAACTGGTACACCAGAGGTATGTCCATCCCGGTCCTCTCGTA -CTAAGGACAGCTCCTCTCAAATTTCCTACGCCCACGACGGATAGGGACCGAACTGTCTCACGACGTTCTG -AACCCAGCTCGCGTACCGCTTTAATGGGCGAACAGCCCAACCCTTGGGACCGACTACAGCCCCAGGATGC -GATGAGCCGACATCGAGGTGCCAAACCTCCCCGTCGATGTGAACTCTTGGGGGAGATAAGCCTGTTATCC -CCGGGGTAGCTTTTATCCGTTGAGCGATGGCCCTTCCATGCGGAACCACCGGATCACTAAGTCCGTCTTT -CGACCCTGCTCGACTTGTAGGTCTCGCAGTCAAGCTCCCTTATGCCTTTACACTCTATGAATGATTTCCA -ACCATTCTGAGGGAACCTTTGAGCGCCTCCGTTACCTTTTAGGAGGCGACCGCCCCAGTCAAACTGCCCG -CCTGACACTGTCTCCCACCACGATAAGTGGTGCGGGTTAGAAAGCCAACACAGCTAGGGTAGTATCCCAC -CAGCGCCTCCACGTAAGCTAGCGCTCACGTTTCAAAGGCTCCTACCTATCCTGTACAAGCTGTGCCGAAT -TTCAATATCAGGCTACAGTAAAGCTCCACGGGGTCTTTCCGTCCTGTCGCGGGTAACCTGCATCTTCACA -GGTACTATGATTTCACCGAGTCTCTCGTTGAGACAGTGCCCAAATCGTTACGCCTTTCGTGCGGGTCGGA -ACTTACCCGACAAGGAATTTCGCTACCTTAGGACCGTTATAGTTACGGCCGCCGTTTACTGGGGCTTCGA -TTCGTAGCTTCGCAGAAGCTAACCACTCCTCTTAACCTTCCAGCACCGGGCAGGCGTCAGCCCCTATACA -TCACCTTACGGTTTAGCAGAGACCTGTGTTTTTGATAAACAGTCGCTTGGGCCTATTCACTGCGGCTCTT -CTGGGCGTTAACCCTAAAGAGCACCCCTTCTCCCGAAGTTACGGGGTCATTTTGCCGAGTTCCTTAACGA -GAGTTCGCTCGCTCACCTTAGAATTCTCATCTTGACTACCTGTGTCGGTTTGCGGTACGGGCACCTATTT -TCTATCTAGAGGCTTTTCTCGGCAGTGTGAAATCAACGACTCGAAGACACAATGTCTTCTCCCCATCACA -GCTCAGCCTTAATGAGTACCGGATTTGCCTAATACTCAGCCTTACTGCTTAGACGTGCAATCCAATCGCA -CGCTTCGCCTATCCTACTGCGTCCCCCCATCGATTAAAACGATTATAGGTGGTACAGGAATATCAACCTG -TTATCCATCGCCTACGCCTGTCGGCCTCAGCTTAGGACCCGACTAACCCAGAGCGGACGAGCCTTCCTCT -GGAAACCTTAGTCAATCGGTGGACGGGATTCTCACCCGTCTTTCGCTACTCACACCGGCATTCTCACTTC -TAAGCGCTCCACATGTCCTTACGATCATGCTTCAACGCCCTTAGAACGCTCTCCTACCATTGTCCAAAGG -ACAATCCACAGCTTCGGTAATATGTTTAGCCCCGGTACATTTTCGGCGCAGTGTCACTCGACTAGTGAGC -TATTACGCACTCTTTAAATGATGGCTGCTTCTAAGCCAACATCCTAGTTGTCTGGGCAACGCCACATCCT -TTTCCACTTAACATATATTTTGGGACCTTAGCTGGTGGTCTGGGCTGTTTCCCTTTCGAACACGGACCTT -ATCACCCATGTTCTGACTCCCAAGTTAAATTAATTGGCATTCGGAGTTTGTCTGAATTCGGTAACCCGAG -AGGGGCCCCTCGTCCAAACAGTGCTCTACCTCCAATAATCATCACTTGAGGCTAGCCCTAAAGCTATTTC -GGAGAGAACCAGCTATCTCCAGGTTCGATTGGAATTTCTCCGCTACCCTCAGTTCATCCGCTCACTTTTC -AACGTAAGTCGGTTCGGTCCTCCATTCAGTGTTACCTGAACTTCAACCTGACCAAGGGTAGATCACCTGG -TTTCGGGTCTACGACCAAATACTAAACGCCCTATTCAGACTCGCTTTCGCTACGGCTCCACATTTACTGC -TTAACCTTGCATCAAATCGTAACTCGCCGGTTCATTCTACAAAAGGCACGCCATCACCCATTAACGGGCT -CTGACTACTTGTAAGCACACGGTTTCAGGTTCTATTTCACTCCCCTTCCGGGGTGCTTTTCACCTTTCCC -TCACGGTACTGGTTCACTATCGGTCACTAGAGAGTATTTAGCCTTAGGAGATGGTCCTCCCAGATTCCGA -CGGAATTTCACGTGCTCCGTCGTACTCAGGATCCACTCAAGAGAGACAACATTTTCGACTACAGGATTAT -TACCTTCTTTGATTCATCTTTCCAGATGATTCGTCTAATGTCGTCCTTTGTAACTCCGTATAGAGTGTCC -TACAACCCCAACAAGCAAGCTTGTTGGTTTGGGCTCTTCCCGTTTCGCTCGCCGCTACTAAGGGAATCGA -ATTTTCTTTCTCTTCCTCCGGGTACTAAGATGTTTCAGTTCTCCGGGTGTGCCTTCTGATATGCTATGTA -TTCACATATCGATAACATGACATAACTCATGCTGGGTTTCCCCATTCGGAAATCTCTGGATCAAAGCTTA -CTTACAGCTCCCCAAAGCATATCGTCGTTAGTAACGTCCTTCATCGGCTTCTAGTGCCAAGGCATCCACC -GTGCGCCCTTAATAACTTAATCTATGTTTCCACCATTTTTATAAGTCAAACGTTAACATGAAGTTACGTT -CTTTTATAAAAAGATTTAAACGCGTTATTAATCTTGTGAGTGTTCTTTCGAACACTAGCGATTATTTCTT -ATGAATTCAAGCTTATTTAAAACTCTTTATTCACTCGGTTTTGCTTGGTAAAATCTATATTTTACTTACT -TATCTAGTTTTCAATGTACAAATAATGGTGGAGACTAGCGGGATCGAACCGCTGACCTCCTGCGTGCAAA -GCAGGCGCTCTCCCAGCTGAGCTAAGCCCCCAAATAGGTATTAAATTAATGGTGGGCCTAAGTGGACTCG -AACCACCGACCTCACGCTTATCAGGCGTGCGCTCTAACCAGCTGAGCTATAGGCCCATTAATTTGAATGA -ACAAACATTCAAAACTGAATACAATATGTCACGTTATTCCGCATCTTCTGAAGAAGATGTTCCGAATATA -TCCTTAGAAAGGAGGTGATCCAGCCGCACCTTCCGATACGGCTACCTTGTTACGACTTCACCCCAATCAT -TTGTCCCACCTTCGACGGCTAGCTCCTAAAAGGTTACTCCACCGGCTTCGGGTGTTACAAACTCTCGTGG -TGTGACGGGCGGTGTGTACAAGACCCGGGAACGTATTCACCGTAGCATGCTGATCTACGATTACTAGCGA -TTCCAGCTTCATGTAGTCGAGTTGCAGACTACAATCCGAACTGAGAACAACTTTATGGGATTTGCTTGAC -CTCGCGGTTTCGCTGCCCTTTGTATTGTCCATTGTAGCACGTGTGTAGCCCAAATCATAAGGGGCATGAT -GATTTGACGTCATCCCCACCTTCCTCCGGTTTGTCACCGGCAGTCAACTTAGAGTGCCCAACTTAATGAT -GGCAACTAAGCTTAAGGGTTGCGCTCGTTGCGGGACTTAACCCAACATCTCACGACACGAGCTGACGACA -ACCATGCACCACCTGTCACTTTGCCCCCCCGAAGGGGAAGGCTCTATCTCTAGAGTTGTCAAAGGATGTC -AAGATTTGGTAAGGTTCTTCGCGTTGCTTCGAATTAAACCACATGCTCCACCGCTTGTGCGGGTCCCCGT -CAATTCCTTTGAGTTTCAACCTTGCGGTCGTACTCCCCAGGCGGAGTGCTTAATGCGTTAGCTGCAGCAC -TAAGGGGCGGAAACCCCCTAACACTTAGCACTCATCGTTTACGGCGTGGACTACCAGGGTATCTAATCCT -GTTTGATCCCCACGCTTTCGCACATCAGCGTCAGTTACAGACCAGAAAGTCGCCTTCGCCACTGGTGTTC -CTCCATATCTCTGCGCATTTCACCGCTACACATGGAATTCCACTTTCCTCTTCTGCACTCAAGTTTTCCA -GTTTCCAATGACCCTCCACGGTTGAGCCGTGGGCTTTCACATCAGACTTAAAAAACCGCCTACGCGCGCT -TTACGCCCAATAATTCCGGATAACGCTTGCCACCTACGTATTACCGCGGCTGCTGGCACGTAGTTAGCCG -TGGCTTTCTGATTAGGTACCGTCAAGATGTGCACAGTTACTTACACATATGTTCTTCCCTAATAACAGAG -TTTTACGATCCGAAGACCTTCATCACTCACGCGGCGTTGCTCCGTCAGGCTTTCGCCCATTGCGGAAGAT -TCCCTACTGCTGCCTCCCGTAGGAGTCTGGACCGTGTCTCAGTTCCAGTGTGGCCGATCACCCTCTCAGG -TCGGCTATGCATCGTTGCCTTGGTAAGCCGTTACCTTACCAACTAGCTAATGCAGCGCGGATCCATCTAT -AAGTGACAGCAAGACCGTCTTTCACTTTTGAACCATGCGGTTCAAAATATTATCCGGTATTAGCTCCGGT -TTCCCGAAGTTATCCCAGTCTTATAGGTAGGTTATCCACGTGTTACTCACCCGTCCGCCGCTAACATCAG -AGAAGCAAGCTTCTCGTCCGTTCGCTCGACTTGCATGTATTAGGCACGCCGCCAGCGTTCATCCTGAGCC -AGGATCAAACTCTCCATAAAAATTATGATGTTTGATTAGCTCATAAATACTAAATAATGTTTGTAACTAA -TAGTTGCGTTTTTGGAATTAACGTTGACATATTGTCATTCAGTTTTCAATGTTCGTTTGTCACTTACAAG -ATTTAATTATAACGCGTAAGTTTTTGTAAGTCAAGAATTATTTTTAATTATTTTATTTCTAAAAAATAAA -TTTCCTAACTCAATTAATTCAACAAATATTATTTTATTATGTATTTGTTCGAATTTCAATAGTCAAATTT -ACACTTTATTAATATTTTAAATCAACAACTTAAAACATTTGTTTTTTAAATATTAGTGCCGTTTGACGAC -TTTTATATAATATCAAGTTATTCTAGTAGAGTCAACATAAAACAACACTTATTTTTGTTTAAAAATTACT -GTTGAAGGGATTATTTTCTATTCGTAAGTACTATATGTATTTAAAGTGTAATTCCTTACGCTTTTTACTT -CAGTTTTACAAACATACTTATCCTCACTTTATGGATAGTTATTTAGTAAACCTTCGTTTGAATATTTTTA -TGTTTATTTATAAAGGATACTAGTTATTAGTTAATACCACTTCCGTAGTAAGAATGTTCTTTTCTTCTAT -TTAAATATTTTTCAGAATAAGCATAAAAAAGAATAAGCATAAAAAAGAATGAGCATAAAAAAGAAGTTAA -ACAACTTTCATGTCGTTTAACTTCTTAAATATTACGCTTACTTATATGAAGTAAGCTAACGCCTTTTTAA -TTTGTCATACTACCAAAGTTAAATTATTTATCTTGGCATTCTTTACAAACTCCATAAATTTCCATTCGAT -GATGTGTTACGTCAAAGTCAGTCATATGCTGAGCTAATCTTTCAATTTCATTTAACTGTGGATATTGAAA -ATCAACAATCTTACCACATTGTTCACATATAATATGATAATGATTATGTGTATTAAAGTCGAATCGACTT -GATGAGTCTCCATATGTTAATTCTTTTACAATTCCAATATCTTTAAACACTCTTAAGTTATTATATATTG -TCGCAACACTTATATTTGGAAAATCAGGTGAAAGTGCTTGATAAATTTCATCAGCTGTTGGATGAGTATG -TGAAGAAATTAAATAACGTAATATTGCTTGTCTTTGAGGTGTAATTCTTACGCCTGCTTGTCGCAATGAT -GCAATTGATTCTTCTAGTTCATGTTCAATTGATTCTATTTCAACACTCATCTATATCACCATCTTTCTTA -TATAATAATTATTATTACTTACTATAAATATAACTGTAGTATTGCGCGCGTGTCAATATTTACATGATGA -TTTCATTTAATAGCCTTTTTTAGCATCAACTTCATTCTCAATTAGACCATTCTTATTGAGAAAATTAACT -AGATTGTTTTTAAAAATATCTAATAAGTCATACTTTGCTTCATAATCATTACCAGTTATATGCGCTGTTA -TAGTTACATTATCCAATTCATATAATTCATGATTAGGTTTCAAAGGTTCATTTTCAAACACATCTAAATA -TGCATGTCGAATAACTCTACTTTTTAATACTTCTATTAAGAGCGCTTCTTTAACTATGCTACCTCGTCCT -ATATTTATAAAAAGTGCTTCATCTTTCATTAATTCAAAATGTTTTTTCTTTAGTAAATGAATCGTTTCTT -GCGTTTCTGGTAAAGCATTTATAACAATGTCAGCATTTGGTAATGTGCTTTCAAGTGATTCGATAGTATA -TATCTCATCAAACTCATCTTTGTTCTGACCTGACTTGCTCAGACCAATTAAATTCATATTAAAAGCCTTT -GCTAACTTCGCAGTTCTAGTAGCAATTGCACCTGTACCTAAAAATAAAACTGTTTGTCCTGATAGGCGTT -TACCAGTTATTTTCGAATCATATATATGTTGTCGTTGGTTATCATATGATAGTTTCATCTTTTTATAATC -ATCTAAAATGAAAGCCAAAATGTATTCAGATAATTGTTTAGCTTGAACACCTTTTCCATTAGTTAAAAGT -ATGCCGTGATCTGCAATATAATCTAACGGTAATGTATTTACACCCGTTGCAAACCATGCGATCCATTTTA -AATTTGGACAACGTCGTAAAAATGCCTCATTGATACCGCCATCATAACCAACTAATATATCTAAATTAGC -CAAGTCGCTCTCAGGTATTTCTGATGCTTTTTTATAAAATTTAAAATCTACATCTGAAAAGCGTTGTTGT -AATTCAGTTTCAACTTCACGCATACGATTCAACCCAACAACTTTCATATATGTCACCCCAAAATGTTTTT -AAGTTCTTCTATTTGTGTTTTAACTTTAACCTTCTCGATAACATCTAATACTTTACCTTGTTCATCTATT -ATAAAAGTCGTTCTTACAATGCCCATACTTTCTTTGCCAAATGATTTTTTTAACTGATATACGCCAGTTT -CTTTAGCTAATTTAAAATCTTCATCTACTAATAAATCGAAATTCAATCCGTATTTTTCAATAAAATTTTG -GTGTTTTTTCTTTGAATCACCGCTTATACCATATACTGCAACATCTAAATCATTGAACATTTCTAAATTG -TCTCTAAAGTCACAAGCTTCTGTGGTGCAAGTAGGTGTATTATCTCTAGGATAAAAATATACAATCGCCT -TTTTACCTTTTAATGTATCATTTGTAATGACAGTTCCGTCCTGATTTTCTAATTTAAATATTGGAAATTG -TTCTCCTTTTTGCAACATATAATCACCTTTTTCTTCATTATAATAATTTTATGATACGATATTAGATGAA -AATATTAAATTAAAAGAGGTTGATATAAATGAATTTTAGTGAAAGTGAACGTTTACAACAACTTTCAAAC -GAATATATTCTAGGCGGTGTCAATTCCCCTTCTCGTTCTTATAAAGCTGTAGGAGGCGGTGCACCTGTTG -TTATGAAAGAAGGACACGGTGCATATTTATATGATGTCGATGGCAATAAATTTATTGATTATCTTCAAGC -ATACGGTCCAATTATTACGGGGCATGCACATCCTCATATTACTAAAGCAATTCAAGAACAAGCTGCTAAA -GGTGTTTTATTTGGTACACCGACTGAACTAGAAATTGAATTCAGCAAAAAATTACGTGATGCAATTCCAT -CTCTTGAGAAAATTCGCTTTGTAAATTCTGGAACAGAAGCAGTCATGACAACAATTCGTGTTGCACGTGC -ATATACTAAAAGAAATAAAATTATAAAATTTGCTGGATCTTATCATGGCCATTCTGATTTAGTATTGGTT -GCAGCAGGTAGCGGCCCATCTCAACTCGGTTCTCCAGATTCAGCTGGTGTTCCAGAAAGCGTAGCACGTG -AAGTCATTACTGTTCCTTTCAATGATATTAACGCATATAAAGAAGCAATTGAATTTTGGGGTGATGAAAT -TGCCGCAGTATTAGTAGAACCAATTGTTGGTAACTTTGGAATGGTAATGCCTCAACCTGGATTTTTAGAA -GAGGTTAATGAAATTTCACATAGCAACGGGACACTAGTGATTTATGATGAAGTAATTACTGCATTCCGTT -TCCATTACGGTGCCGCTCAAGATTTATTAGGTGTTATCCCTGATTTAACTGCATTTGGTAAAATTGTTGG -CGGTGGTTTACCAATTGGAGGCTATGGTGGACGTCAAGATATTATGGAACAAGTAGCACCTCTAGGACCT -GCATATCAAGCTGGTACAATGGCTGGTAATCCGTTATCTATGAAAGCAGGTATTGCATTACTCGAAGTAC -TAGAACAAGACGGTGTTTATGAAAAATTAGACAGCTTAGGCCAACAACTAGAAGAAGGTTTACTTAAATT -AATCGAAAAACATAATATCACAGCTACAATTAATCGTATTTACGGATCTTTAACATTGTACTTTACAGAT -GAAAAAGTCACACATTATGATCAAGTTGAACATTCTGACGGCGAAGCGTTCGGTAAATTTTTCAAATTGA -TGTTAAATCAAGGTATCAATTTAGCACCTTCTAAGTTTGAAGCTTGGTTCTTAACAACTGAACATACAGA -AGAAGATATTAAACAAACTTTAAAAGCTGCAGACTATGCTTTTAGTCAAATGAAATAACTTTTAAGGAAA -TATATTTTAAATTGAATTAAAATAAAACAAATGCTCACATAGTAGATTCATTTTATATCGTTAACTATTA -ACGTTTAAATTGATATGTCCCTATGTGAGTTTTTATTTTACAAATTTATACTATTTTAATCTCTGACTAA -AGTTTTACATCGCTATCAGTATTATGTATGATTTATTTTAACAACTATAAATAAGCTTGAATTTTGTAAC -TAGTAAGTGTATAACAGTAATGAATACGAATGTTAGATATTCAATAAACTTAAAAGGGGCGTCATTATTT -TTGAGACTAGGAGCTCGGATTTTCAAAACTGGTATAGCCATTATTTTAGCTATGTCTATCGCTTCTTTAC -TACCGGATGATGTTGGTCTGAAAGCCTTAGCTGGTGTCAGTGCTGTTGTTGCAATGCAACCTAGTATTTA -TCGTTCATTTAAAACAGTTTCTGATCAAGCATTGGGTAACATTATAGGTGCCATACTATCTGTTACAATG -GTAACAATTTTTAGTGATAATTTTATCATTATGGGTGTTACCGTCATAGTACTTATTGCTATTTTATTTA -AATTTAATTTAGCACATGTTGCTACTTTGGCGAGTGTAACAGCATTAATCATTATGGGACAACATACCGG -TTCTTTCTATATTACTGCCTTTTACAGGTTTGTACTTGTAATGATTGGTGTCATAAGTTCATCTCTAGTT -AACTTTGTGTTTCTACCACCTAAATTTGAAACAAAAATTTACTATAATTCATTAAATATATCCTCAGATA -TTTTTATGTGGTTTAAATTAGTATTAAATGATACGACGGAGTTTAATAATATTAAACAAGATAGTCATAA -TTTAAAACAACGTGTCGAAAAGTTAGAGAAAATTTATGATTACTATAGCGAAGAACGTCCTATTACAAAA -AAACATATTCACCAACAGAATAGAAAGAAAATACTTTTCAGAGAAGTAGTTCAGACGACTAGACAAGCTT -ATGAAGTATTAAACAAATTGTCGCGTTATCAAAACGACTTATATTTACTTAATAACAATTTCCTATTACA -AATCAAATTAGATTTAGATTCATTAACTGCTTTTCATGAGCAAATTTTAGCTAGCCTTTCTAAAAAAGCA -CGTTATAATGTGACACATGTTGATTATGAGTTAGATAATCCGCAGAAAAAAGATTTATTGTCTACATTTC -AGCATGAGTTAATAAATCACCCTTATCAAACGGAATATTCGTTTGCCAATGTTATGCAAATTGTTGCAGC -CATCGAAGAGTATCGACACCATTTAGAGCATTTAGACCGCATAAGAATTAGCTTTTTCACATATCATAGA -TCTGATGCAGACATTGAAATTGTTGAAGAAGACTTTGATTTATAACATTAAAACAATTCCTGTAATTAAT -ACCACAATGAGATAAAGTAATATTGAATCTCGAAATTAAATTTAAAAAAGCAGTAAGATTATTTTCAATG -AAGAAAATCTCTTACTGCTTTTTCTATGTTATGACCTCACCATCCTGTTACAAATCTTCCCTACAAAATT -GTACTGAAGTCAAACAACTAATACTTTATAAATTTTGAATGCTATATAAATGCTCGTAAGCACCTTGTTT -TGCAATCAATTCACGATGCGTACCTGTTTCAACAATATGTCCATTTTCAATTACGACAATTTTGTCAGCA -TGTGTAATAGTGGACAAGCGATGCGCTACGATAAGTGTCGTTCGATCTTTACTCAACACATCTAATGCTT -CTTGAATAATGGATTCACTTTCTAAATCAAGTGCACTTGTTGCTTCATCCAGGATAAGAATTGGCGGATT -ATTTAAAAATATTCTAGCAATCGATAATCTTTGTTTTTGACCACCTGATAATTTAACACCTCGTTCACCT -ACTTCAGTGTCATATCCCTGTGGCAAGTTCATGATAAAGTCATGTGCATTAGCCATTTTCGCCGCTTCAA -CTACTTCTTCATCTGTTGCTGTTGGACGACCAAGTAAAATATTTTCCTTAACTGTATCAGAAAATAAAAT -ATTATCCTGTTGCACCAATCCTATTTGATTTCTTAAACTTCCCGTTAAAAAATCTTTAATGTTGTGACCA -TCTATTAAAATTTGCCCAGAAGTTACATCGTAAAATCTCGGTATTAAGTTAATTAATGTTGATTTACCAC -CACCACTCATACCTACGAAAGCAACTGTTTCTCCTTTTTCAATACTCAAATTAATATCTTTTAAAATTGG -AGCTTCGTTATCGTTATATTGAAAACTAACATGATCAATATCAATACGACCTTGTTTAATTTCAATAGGT -TGAGCACCAACACCATTTTTAATGTCATAATCTTCGTCAATTAATTGGAATACACGGTCCATTGAAGCAA -AACTTTGCGTTAAAGTTGTAAATGATGCGACTAAACGACGTAAAGGCCCGAACAATAACTCCAAGTATCC -AACAAATGCTGCAAGTGTACCTACTGTGATTGATCCAGAAATAGCAAGATATGCACCAACACCGATGACA -ATTATTGGTCCAATATCTGTAACTGTATTAATTGCGGCAAAAGAATAGGCATTCCATCTTGTATGTTTCA -ACGCACGTGTTAAGAAATTAGTGTTCTTTTTATCAAAGTTTTTCGCTTCATTGTCTTCAATCGCAAAACT -TTTAACGACTGAAATACCTTGAACACGTTCATGCAAGAATCCTTGAACCTCAGCTAATGCTTGAGATCTT -TCACGCGTCAATTTTCTTAATCTTCCAAAGAAAACGTACACCGTTAAAATGTAAAATGGGAAGATAAACA -GTGCTGCTAAAGTCAATTTCACATCTAAAAAGAACATTATGGATAGTGCAATAATAATTGTTATACAATC -TAACCAAATATTCATTAACCCGGTTAAAATGAAATCTTTTGTTTGTTCAACATCATTAATCACTCTAGAT -ATTACTTGACCTACTTGATTATTAGCATAAAATCTCGCACTTAAAGCTTGTAAATGGTTGTATAACTTTT -TACGTATATCATACAATATTTTATTACTTGTCCATTGCGCCAAATATTGACGTATAAATTCAATTGGTGG -TCTCACTATTACAAAAATAAATAATGCGATACCAATGGCAATAGTTAAATGATGAACTTTTTCATCAGTC -GTTAATGCGTGGTTATTAATCACGCCATCTATTGCATATTTAATTAAAAGTGGTATAAGCATTGGTATAC -CAAACTTAATTATCCCAACAATAATCGTTGCAAAAATACGATATTTGTATGGCTTAACAAATTGCAAATA -TCGTTTAATCATACAATCCCCCCTAATCTATTGCCCTATCCTATTCATAAGCATAAAAATGAATAGAGGT -TGGATACATAATTTGTAGATGTAAATTCTTCTTACAATTTACATTTTTAAAATTAAGATATCTCAACCTC -TGTCATATTCATGTGATTAAATACGTTGTCTTATTCGTATGTTATATTCTATTCAATTTAATCTATGGAT -ACTGTGTCCCCACACGACAGCAAAAGTTATCATACTTCTTTACATCACTAAGTCAATATAAATGATTTAA -TCAGTATTTACACTTTATTTGCTTAATATTGTCTAATTTTTTTGTAACGGTCTTTCCAAACTTTGATAAA -ATCTGGCGCAAATGGGCCCTTCTTTTGTTCTATCCATTGTTGAAGAATGTCCACGTTGCGTCTTAAAATA -ATATCAATATCATGCGGATAATTCATTTGATTCATATGTTGCTCATATTCATCTTCATCTAATAAATGAT -ACTTTCCATTTGGATATACTTTAATATCTAAATCATAGTCTATATATTTTAATGCCTCTTCATCACAAAC -AAATGGCGATGACAAATTGCAATAGTAATAAATTCCATCTTCTCTAAACATGCAGATAACATTAAACCAA -TATTCTGAGTGAAAGTAAACAATTGCCGGTTCACGTGTTATCCAAGTTCTTCCGTCACTTTCAGTTACTA -ACGTATGATCATTGCCACCAATGACAACATGATCAGTACCCTTTAATATTGTTGTTTCAGACCAAACGCG -ATGAATCTTACCATCATGTTTATAACTCTGAATTTTAATGTTTTCCCCTTCTTTAGGTATGGATTCTCTG -ACCATACTCCACACCACCTTCTGTTAATTTAACCATTATAAATTATAGCATATTTCAGAAATAGTATTAT -ATAAATACATATTTTTACGAAATAAGATTTTACTACTTAATGATTAAACTCGGTAATATTGCTAAGTACT -ACAACAGAGATTTACATGTCCCATTTAAAGTATATAAAATCATCACTTTTATATATCAACACTTTAACTT -TTTGACATTGTTATCCTCTGAGAATTGAAGATAACATTTATACATTTTTAAAATTAATGTCACTATATTT -TCCGATAATCTTATCAATCATCGAATGTTACCCATTTATAAATTGATAAATCTTTGACATAGGTACAGGG -AATGTATATTGATCTCGATCACTTAAATCAAACCAAATCATGTCATCTGGTAATCTTTCAATGTTAATTG -TTCCTGAAACGGCGTATACCTTTATCTTCCATGTTAAATGAGTAAATTGATGCTTCAATTCAAAAATAGG -TGTTTCTACTGGTTGAATGTCATGACCGATTTTTTCAGTCATTTCACGTCTAGCATGCTCACTTTTAAAC -ATAGGAAATTGCCACATACCATGCAATAATTTTTCGCTACGCTTTTGCAACAGATATTGACCTTGATTAT -TTCTAATTAAAAAGACGGATTGCTCAATTACTTTTTTACTTACATTTTTAGATTTAACTGGTAACTTTTC -AAATGTACCTTTATCAAATGCCTCACAGTTTTCTTGAACTGGACAAAATAAGCATAATGGATTTTTCGGT -GTACAAATTAATGCCCCTAATTCCATCATAGCTTGATTAAACGTTCCAGCTTCTGTAGTAACATACGGTA -ATAATTCTTGTTCGTACGATTTCCTCGTCGATTGTAATTTAATATCTCGATAGTCATCATTCAATCTAGA -CCATACCCGAAAAACATTTCCGTCTACAGTTGCTAGTGGTACATTATATGCAATGCTCATTACTGCAGCT -TGTGTGTATGGGCCAACACCTTTTAAAGCTTTAAATTGATCAGGATCTTTGGGAACTAAGCCTTCATATT -TATCATGAACTTCCTTAATTGCCGTATGAAAATTTCGAGCTCTACTATAATATCCTAAGCCTTCCCAGTA -CTTTAACACTTCATCTTCCGAAGCTTGACTCAAAACTTCCACAGTTGGAAATCGTTCAACAAAACGATGA -TAATAGTCAATAACTGTTTTAACTTGTGTCTGTTGTAACATGACTTCACTTAACCAAATATAGTACGGAT -TGGTCGTTTGTCGCCATGGCATTTCTCTTTGATTTTCATCAAACCAGTGTATCAAATTTTCTTTAAAACT -AGACTGCTGATACATTTATAAAACCCTTTCCTCACCAAAATTAATTGTCTTTACTCATAATGTTTTTATT -GTACATTAAAATCATGGTTAGTATGTAAGTTAATTTAGTTATTTGCGAAATTGGATTATAATAGTATATA -TAATATTATGAAATGAGTGAACTGATATGGACACTGCAACACATATCGCAATTGGGGTGGGCCTTACAGC -ACTTGCAACTCAAGATCCAGCAATGGCTTCTACGTTTGGTGCAACAGCTACAACCCTTATCGTTGGTTCA -TTAATTCCTGATGGGGATACTGTTCTTAAATTAAAGGACAATGCAACATATATTTCGCATCATAGAGGTA -TCACGCATTCCATCCCTTTCACAATACTATGGCCAATTTTAATTACATTTTTAATATTCACGTTCTTTAG -TGGAACCCACCCATTTCATGTATGGATGTGGGCTCAGCTCGCAGTATTTTTACATGTCTTTGTAGATATA -TTCAATTCTTATGGTACACAAGCTCTTAGACCTATCACAAACAAATGGATTCAATTAAGTGTGATTAACA -CATTTGACCCTATTATTTTCACAGTTCTTTGTATTGGTATTGTATTATGGGTTGTAGGCTTGCATCCACT -TGCAGTCTTCTTTCCTATAATCGCTTTACTAATCATTTATTACATGATTCGTTTTAAAATGAGAGCCGTA -ATTAAGCAACAAGCTTTAAAAGCAATTCAACAAGAGCATCACCCTGTTAAAGTATTTGTTGCGCCAACAA -TAAAATTTATGGAATGGCGTGTCGCGATACAAACTGATGCACATGACTATGTTGGAAAAGCATATGGTAG -AAATGTGGTGTTTAGTGATAAAGTTGAACGTCAAAAATTATCAACAGACTCCATTTTATGGAAAGTCAAA -GGTAATAAAGATATACGTACTTTTTTAAACTTTTCATCAATCTATCGTTGGCAAACAACAACGTTAGCAG -ATGGTTCTACTGAAATTCGTTTGATTGATTTGCGTTATTTAAAAAATGATCATTATTCATTTGTGGCAAT -TGCACACGTAACAAAAGATAATGTCATAGACCACTCTTATATTGGCTGGGTATTTACAGAAGATAAGTTA -CAACGTAAACTGTATGCTAAATAATTTCAAGTTATTATTCACTAAAGTTAATCTATAAAAAATGAACAAC -CGGGCAGAATGAAAATCAAAACGATTTTTACTCTGTCCGGTTTTTTAATGTAAAACTATGAATGCTTTTA -CAAAACCTAATATTTATATTGTCGCTAACAAACTACCTTCAATGACTCGAAATATTAAAATCAGTATAGG -AAAACAATATCTAGATTATATTCTAATTATTTCTGATTCTCACAGATTAATTTACACAACAAGTCAGCTA -AACATCATGAAGAAGTATCCGCCTCGTCTGTACTATCTTTTGAAACATCTTGTTGATTATCAGTTTGTGT -CACTTTAGATGTTTTATTATAAATTGCGTGTGTCGTATACCTTGCTAATACGAAATTTACTGCAGCTATT -AAACATAAGAATAAAATAAAGTAAAAATGATATGGAATGTTTTCCATACTTGATATACCAAATATGATAG -ATTGTGCTATACCATTAACAATGTAATACATTGGATTCAGCATTAGGATGTGATTGATAAATACATGATT -TGGATTTGGTATAAAAATAATTGGCAACACTAAGAAACACAATACACAAATCCCATAAAATATGATATTT -ATTTTTTCAGTTAACAGTCGAATAAGACCAAAAGTAACTGATATTAATCCTACAAAAATAGTTGCCATCA -CAATAAAATAGAATAGCGCTATATATGATGTTTCGAAGTTTACTGGTTTAACCAATGCACTAATCATCGT -CAAAATGACTAGCATAATAAAACTTAAAATAGACATAATAACTACTGGCGTCGCTGCGGAAATATTAAAT -AACTTAGTAACTAAAAAGTCATTCATATAATGATGATAAGAGATATAAATTGTGAACATCAATACCGCAA -AAACAATCAATGCAATAAGTCTAAATAACCATCGCACCTCTTTAACATCGGTCAAATGACTAAAGGAAAA -TAGCGTTTCACTTGCAATAATAAGTATTAAACATGCAGCTAATACGATTAGAAAACTTTTCCAACTTTGT -TTTAAACGTTCTGTTACATACCTTTTAGTATGCGGTAAGTTTTTAAAATATAAAATAATATTATCTAGCA -TCTTTACACCTACAATTCAATATAAATCCATTTGTCTTCTTTTAAATTGGCAATACAATATCCATTCCCA -ACTTTAGTAATCCAAATGTTATTGTTAATATTAAACTTATCTTTTAATTCTTTTTTATCTACGATTGGAT -AAACAAAACCGTATAACTGATTATTATCATTGAAAAGTAATTGTATCGGTTGTTGTGTAACGGATGCAAC -GAAACGGTTATCATCATCAGGAACTAAAGTTTTAATAACTGAACTATGCTTTTTATGTAATTGACTGTTA -AAGTATGCATAGTAATTACTATAATTTGATTTCATAAATGGCGCTAATTTTTTAAAACTATGCGTTTGAT -ATAAACCTGCCGGGTTAAAATATTCTAATTTATCTTTACTAACATAGTAAGTCTTATTATCAGCGGTAAC -ACGATAATTTTTACTATTTTCACCAGTAATTGTAACTACACTATATTTTGGAATTGTGACTTGTTTATCC -CCTTGCAGATCCACACTGCCATTAAAAGCAATTCCATAAGCTAACTTTTCGCCATATGGATCTTTATTTT -CATTTTGCATCGTAGCACGATTCGTAAAATCTGTTATCGAAATAATTCCTATATTATTGAAAATGAGCAA -CATCATCAATGCTAAGCCTAAAATAGTACCTGAGGCTAAAGTCCAAAAACGCACTAAAAACTTAGGCGGT -TTTGCATGATTATAGCGCTCAACGCGTTTGAAATTATAGGTCATCTCCGGTATTCTTGTACGATTCTTTT -TCCAATCTAAATCAAAGTTTTCAATTTCTTCTTTTGAGTTTAGACTTAATCGATCACGTTCATGTTCTTT -AAAAGATGGAATAACTTGTTTAAGTGACCCTTCCATTCTTAATTGACCATGTGAAAACCAAGCTATATAG -TTACTCACTTGTGAAATTTTATCAATATCATCACCAATTGACACAATCGTTAAATTATTTTCAATATAAT -CATTTGTTAATTCAATCGCACGTTCCATAAATTGTGGTGTTAAATAGTCAATAACATGATTTAAAATAAT -AATATTTGATTTTGATGAGCGTGCAATACTTAATAGTAATTGAGCGTATGCCGCTTTCGAAATATGGTTA -ACCGGCTTCGTTTTATAATCGCCTAAATGTGCATATTGAATAATCTGTTCAGCTTTATGATTATTAATTT -CATATGGAAATAGTTGAACTAACTGCGCTGTATAAGCTTCAACAGTTTGATGAATTAACGATTGATCTTC -AATATATCCGTAGAACAAATCTTCAGTACAAACTACTTTACCTTTATCGGGTTTAATTGCACCTGCCAAC -AATTGACCTACCATCGCTTTGGAAGATTCAGGTTCACCAATTATACCTAATGCTTCACCTTGATAAATAT -GTAAACTAATATTGTTTAAATCGATATCTTGAGCATCATATCCAAAAGGTAAATACCATTTTTTATTCTG -TTTATTCCTATAGTAGTGTGTTACTTTTAGTAACTTTAAAACAATTGAACTTCCCATCTATTTTCATCCT -TCTATAATTGTAATAACGCTATAGGTAAGCCTTCTTCGGGTTCATCACTATTAAATCTAAACCCCCACGC -AAAAATACCTTTTAATCTTTCTACTTTAAAATATTGATTACTGCCATCAGTCAGTTTATAAATTTTACCA -ATTTCAATCTTTTTTCTGTCTACTAAGTAACTTTCGGCAACAATTACTTTACTTTGATAAACGTCATATT -CATTTAAAATACCATTCATCTCAGCTTTTCTCATTTTCTCTTTATAAAGTTGTATTTCGTGTCTTAATTC -TGGCTCAGACATCTCACTCAATTTCTTCTGTTCCATCGGCAATACCACTTTCTTCTAATTTAGCTTTAAT -TTTATCATATTTATATCCTTTTCTCATAAGGCCTTCGATAGTTTTTGAAATTAATTTTTGTTGCGTGTAC -TTCTTTCGATTTTTATTATAAATTTTTTCTAAATCTCGTTGTAATAAATCGTCTAAAACCGCTTCATCTT -GTGTAAAATCCATTTCATTCAATACAGCATGAATGGTTTCCATTTCAAACCCTTTTTGAATTAAAGATTG -CATTACTTTTTCTTTAACCTTATTTTGTGGCCCCTTTTTTGTTTTAGATATTTTTTCAGCAATTTGGATA -ATATCATCAAGTTCCTGTTGTTCTCTATAAAGTTCTGTAAACATTTCAATGATATTTGGTTCTATACCAA -GTTGATAAAGTTTTTGTTGATAAATTTTAGGTCCTTTATCTGTCGTGCGAATCATTGTATTTTTTAAACT -TTCCGCATAATCTTGATGGTCGATTAACTTTTCGCGATAACAATATTCAATCACTTCAGAAATCGCTTGC -TCTGATATCTCTTCTTTTTGTAAATATTGTATAACTTCTTTTTCAGTTCTCTTTTTATATGATAAATATT -GGATTGCTTTATTTAAACCTATGCGATAATGATCATACTTTTGAATCTCTGCCATGTCAGCAGCTTCAAG -TTGTTGCCCTTTTTTTAAATTAAATTTGACTAATGTATCGATATCTATACCCATTTCAAATTGTTCATCT -AAAAAAAGATTAAAACGTTCTTTGTTTTTCTTTTGAACTTCTATTTTAGTAATCTTCGGCACTGGATCAC -CCCGTTACTTTCTCAAGTTTTAATACAATACTCTTTTATTATTCAATAAGCCACTTCCTATAGCAAATGT -TTAACTTTAAATATTTTTCGATGCTAACAAAAAATCACACTATCATCTTTTAAAATGAAAGTGTGATTAC -AAGCAAATCTGTAAAATTTATTAAGCAGAAACAATTCAACTTTATCATTATGGCATTTCAATTATACCTT -CTACATTATTGTTCCAAGTATCTTACACATGAATGCAAGTATTTAACGATTTAATTGTGACATAGCCTGT -TGATATTGTGTTTCATTGATATAATTTTGTTGCTTCATTTTTTCTAAGTTCGTGCTTACACGTTGCGTAA -AATTCTCAGACATATTATTGATATTATATACGCTAGGTGCATTGACTTTACTAGCTAAAATAGCGCTTTG -TAAAACTGTAATGTGAGACATTGTTGTACTATTTTTATTCACGGTTGTTCCAAAGTAATGGTTTGCTGCG -CCCTCAAGCGTATATTGATTATCCCCAAAGTAAATATTATTTAAATAAAAGCTTAAAATTTCGTTCTTAT -TATATTGTTTTTCAACTCGATGAGCTACAAATAATTCTTTTACTTTTCTAGTAAATGAACGATCATTATC -ATAAAAATAATTTTTGACAACTTGTTGTGTAATGGTACTACCACCTTGCACATCTCTGTCGCTAATCGTT -GAAAATAAAGCTCTAGTTGTACCTTTCAAATCAAATCCATGATGATTGTAGAATCGTTCATCTTCCATTG -AAATAAAGGCACCTTTAACATACTCTGGCATGTTATCAGCTGACACAAAACTACTTTTATTTTCAATTTT -TCTTAGTTCATCCACATTATCGCGTGTAGATAAAAAATACATGATACCAATAAACAATGCGATAATGATT -AGAATGGTTAATAATATTTTCAATAGTATTCGTTTACTTTTTTTCTTTTTCGGCGGTTTGCCAACTGGTT -GATAATACGTATTATAGTGAGGTTCGTGTTTCATATGCTCAAAATGTTCATTTGAGTTTGAGTACCTATC -GCTTCTTTTCATGCGTTTGCTCCTTCTTTTAAAACTCACTTAGTATATACCTTGAGTTTACCAGTACTAT -CACAAATAGGCTACACTTTTTGGGAAAATCAGTCCAAGGGCTTACAATCGTATACGCCATCATACTTACT -TTTTTGTTTTTTGAAAAGATTATAGATAAATCATTGCGATTTTAAATATTAATCATGTCAAATATTGTTA -TATTTTATAAAAATAAAAGACCATCCCTATTAAATGCCAATAGAGACGACCTTTTATTTGTTATTCATTT -TTTAAAACTAAAATCCATATTTCATTTCAAACGAAAATATATAAATTTTAACAATCGATAACCACAATAC -TTCTATTGTAATTGTTTAACAATTTCTCGATTAAAATCATCTAAATCGTCTGGTACTCGACTTGTTACAA -TATTGTTGTCTACAACTACTGACTCATCAACTACATGTGCGCCTGCATTTGATAAATCTTTGCGTACATT -TAATACTGCTGTTAACGTACGACCTTTTAAATCGTCTGTATCTATTAGTATTTGTGGCCCATGACAAATG -GCAAATGTTGGTACATCATTTTTAGTAAAGTATTTAGCAAATGTGCCATATCGACCTTCTGTATCTCCAC -GTAAATGATCTGGTGAAAACCCTCCAGGAATTAATAATGCATCATAATCTTCTGGTTTAGCTTCTGCAAT -GCCTACATCGACAGTAACTTTTTCACCGTGTTTACCAAAAACTTCACTATTTGCAGTATCTCCAATCACT -ACAGTATTAAAGCCAGCATTCTCTAATGCCTCTTTAGGACTTGAATATTCTATATCTTCAAATTCGTTTG -CTAGAATAATTGCTACTTTTTTAGTCATTGAAAATCACCTTTCTATATATCATTGATATAAATACTATAG -ACAAGTAAATCAGTGATTAAACATACAAGATATAAAAACATTAAGCGACTGTCGCGATATCTAACTCTAA -CACATCTTATGTGGCATTTACTTAGATACTAATTTAACCTTTTCTTCAAGCTGATCTAACAATCCAATCC -ATTCATCTATATCTTCAACACGTACTTCATCAGGATTTACATGATCGATATCCTCAATAAACTTATTTAA -ACGCGCTTTTATCTGTTCGATTGTTTGCTGTTCATTCATAAAAAGTTAACTCCTTTTATTTTGTTTTCTT -TTTCATTATTATCCTAACAGAAATTGCGTTAAAGCGATATAATCTTAGCTATATTTATGACATTCAAATT -ATTTTGACTTTTAAAAATCCCCTTTTCAATTAACTAAAATTAAGAGATAATTTGTTACGAGTGATAATAC -GAAGTGGTATCATACCGATATGAACCAAATAGAAAGAAGGAAGTTTAAGACGATGAATAGCGTCAAATTG -AAGCAACCTGTTAGCATTCACAATGATCCATGGGAAGCATATAACGATGTTAAAGAACATGGCCAATTAA -CTTTAAGTAACATCGAATTTACAACTACAAATCTTTGTAATATGCGTTGTAGCCACTGTGCAGTTGGTTA -TACTTTACAAACTGTCGACCCCGAGCCTTTAGATATGGACTTAATTTATCGTAGACTTGATGAAATTCCA -AATCTGCGAACGATGTCAATTACAGGTGGCGAACCAATGTTTTCTAAAAAGTCTATTAGAAATGTTGTTA -AACCTCTATTAAAGTATGCACATAATCGAGGTATATATACACAAATGAATTCAAACCTAACATTGCCTCA -AGATCGTTATTTAGATATTGCTGAATATATCGATGTTATGCATATCTCACATAACTGGGGAACAACTGAT -GAATTCGCAAATGTTGGCTTTGGCGCAATGAAGAAGCAACCACCGTTAAAAGCTAAGTTAAAATTATATG -AACAAATGATTTCGAATGCATGTACATTATCAGAACAAGGAATGTTTGTATCTGCGGAAACAATGCTCAA -TCAAAGTACGCTACCACATTTACGAAAAATACATCAAGAAGTCGTTCATGATATGAAATGTAGCAGACAC -GAGATTCACCCTATGTATCCAGCTGACTTTGCAAGTCAATTAAATGTGTTAACTCTAGCGGAAATGAAAA -AGACAATTCATGATATATTGGATTTCAGAGATGAAGATATTTGGATGTTATTTGGTACTTTGCCTGTGTT -TCCATGCTTAAAAGATGATGAAGATCAAAAGTTACTATCACGTTTAAGAACTGCTAAAAATGTAACGACT -AGAAATGACCCGGATGGCCGTAGTCGTTTAAATGTCAATGTATTTACAGGTAATGTAATCGTAACTGATT -TCGGAGATGAAACAGGTACAATTTCGAATATACAAAAAGATAAATTAACAGATGTATTTGATAAATGGTT -ATCCTCTGATCTTGCTAAATCATTAAATTGTCATTGTTCCGAGTTTAGTTGTTTAGGACCAAATGTTCTT -GTTAAAAATATGTACTATCCGAATATGGATTTTAAAGATAATGAGCGTCATATGCACAAACAACCACAAA -TTATACAATTTTAAAAACGCTTAATTATGCGGAGAAGCACTTTATCGATAAGTAGTCTCCGCATATTTTA -ATGCTATTACAAAATAAAAAACAATTAATTGCTGGCAGCACTCTACTTAAATAATAAAGGTCATTTAATA -GGACTAATAGTCTATAATAAAAGGGTTAAATTTTAACTAAAAACATAAATTTGCATAATCAAAAAGACAG -ATTGTAGGTGGAATATTCGAACATAACAGTTCAATTCATCCTTAACAATCTGTCTTTATATTTTTAGTCT -CTAATATGTTGCACTTGAGCTAAATATTCAATTGTTTGTTTACTTTCAATGCGACGTGCTTTTCTTCGTT -CAACACGTTGTGGTGCTGTATCATAAAACCATTTTTCAACATCATCTTCTGGATATACTCCAGGTACATG -TTTAGGCTTCCCTTCATCATCTAACGCAACAAATGTTAAGTAACTTAATGCAGCTAAATCATGCTTGTTA -TTAAATACATCGTCAATTCTAATTTGAACGACCACTTCCATCGAACTTGTCCCAGCGTATGAAACCATCG -CTACGTATTGTAATATGTCCCCTGTTTTAATCGGCTTTAAGAAATCTACTGAGTCTGTAGATGCGGTAAC -TACTTGCGCACCAGCATGTTTCATAGCTGTGATTGCTGCAATTTCATCAATATTAGCCATCAATGTACCA -CCAAACATTGTATGATGGTGATTCGTATCTTGAGGGAAAACTTGTCTATTTTTATAACATTTTGATTCTG -ACATAGATTTCATTGGTCTGTCCTGATTTGTCATTATTTTATCTCCCAATCTATACTTTAATCACGTATT -TGACCTTTAAATACATGTTTCATTTCCTACTCAGCACCTCAAAATAACATTTATTAAAATGTTGATGCCC -AATTTCCATTTTCAAATACTAGTTCTTTTGAACCATCTTCGAATATGCCATAAATAGTCAAATCACTACT -ACCAATCATGAAGTCGACATGTACGTTTGAATCATTTAATCCGCTTGCAATCTTTTCCTCAACAGTCATT -TCCGTTCCACCTTGAATATTAAAGGCGTAAGCAGATCCAATCGCTAAATGACATGCTGCATTTTCATCAA -ATAAAGTATTGTAAAAAATGGTATTACGATTTGATATCGGTGAATCATCAGGTACTAACGCAACTTCACC -TAATCTTCTTGAACCTTCATCTGTATTGATTAAATCTTTCAATACCGCTTCACCTTTTTCAGCTGAAAAA -TCAATAATTTCTCCATCTTTAAACATCAATTTAAATTGATCGATAATTGTGCCATTATAACTTAAAGGCA -ATTTATTAGTAACATATCCATCTACTCTATTTCGATCTGGTGCTGTAAATACTTCTTCAGTTGGTATATT -AGCAATAAAAGCTTGTTCCTTACCGTTAACATAACTTGTAGCATCTTCCCATATATGATTTTTCGCTAAA -CCTACAGTTAAATCAGTGCCTTCAGATACATAATGCAACGCATGGTAATTTTTTTGCTGTAATTTTTGTG -CGTAAACACTTAAATTAGCGATGTGTTGACGCCAATTTTCAACTGGATCGTTACCATCAATTCGCACAAT -ATCGAATACCTCGTCAATAAACTTAATATATGCTTCTTCTACAGATAGTTCAGGATATACTCTCTTCGCC -CAAGCTTTAGATGGAAAAGCAGCTACGACCCATGGAAATTGATTTTTTTGTACACTTTCCATATATCCTT -TAAATGCGCGTGCGTTTTGTTGTTGAAATGCTTGTAATTTTTGGCTATCGATACCATCCATTAAATCTGG -ATCTTCACTAATAAGTGCTAAATTAGCAGCGCCACGTTTAACGTAATCCATTCTCGCTTCAACATCATAT -GATTTTATCTCATGATTAGCAAAATGTTCCACAGATTCATTTTCAAATTTTAAGCGTTTTAAGGTTGGAT -CGCTATATACAACACGTACATCTGAAGCACCACAACGATAAGCTTCTTCTACAATTAAATGCGTTAATTC -TAATGTTTCTACTGATGATCTAATAAATACTGGCTGTTTTGGTTGAACATTCATACCAACCTTAACTAAT -AGTTCAGCGTATTGTTGTAACTTTTCTTTGTAATTAGTCAAAATTCCCACTCCTAGTCGTGTCGCAATTG -TCCTAAAGCGTCAGCAATAGCTGTCACTTCACTTGGCGACAATCTTTCTCTTGATTGAACAAAATCATAT -ATATCTGTTAATTCTTCTTCATTTGCATTTTTATATTTTTCAGGATCTAATAATCCTTGATTAACAATAT -TTAACTTCTCTCTAATAGCTAATACTTTCTCTTCATTTGTCATAGCCACAATGTTCACCTCTAATAATAG -TTATGTTATCAAAGTATCACAATTTAATAAACTTTAATAGAATTTTATATAATCTGCTTTCTTATTGTTT -AAAGTCGCTATAAAATGGGGATATAACTACATAGTTTGGAGGAATCAAAATGGTAGATGTAGCATTTGTC -TGTCTTGGCAATATATGTCGTTCTCCAATGGCAGAAGCAATCATGCGACAAAGACTTAAAGACAGAAATA -TTCAAGATATAAAAGTACATTCAAGAGGTACTGGTAGCTGGAATTTAGGAGAGCCGCCTCATGAAGGTAC -ACAAAAAATTCTTAACAAACACAATATTCCATTTGATGGCATGATTAGTGAATTATTCGAAGCGACAGAT -GATTTTGATTACATTGTGGCTATGGATCAAAGTAACGTTGATAATATTAAATCTATCAATCCTAATCTTA -AGGGACAATTGTTCAAACTGTTAGAATTTAGTAATATGGAAGAGAGTGATGTACCAGATCCATACTACAC -GAATAATTTTGAAGGTGTATACGACATGGTATTATCATCTTGTGATAATTTAATAGACTACATCGTAAAA -GATGCAAATTTGAAAGAGGGGTAGTTTTTTATGGAAAATAAATTTGTTCCTGGTATTTTAATTGGTGCCG -TAATTGGTGGTGCAATTAGTTTAGCTGATAAATCTACACGTCAAGCTTTAGTTCAATCAGTTAAAGATGC -AAAAAATGGTAACCGCACTCGTAAGCCTTCTAAAGTCAGCAAGATTAAAGACGAAGTTTTATATTGGAAA -GATGTTGTTGAAGAAATTCGTCGTAATAATCCTGAATTAGAACGTTCATTAAAGGATGCGAAAGAAACAT -TTGTTAATAGAAAAAATCAACGCTAAGATGATTTTGTTTTTATAAGGTAATACTTAACAATTTGGTGTAC -GCCTTTCGTAGTTATCATTATTAAATGATAATACAATGATTGGCCAAACTGCATTGTTTCAGTATTGCCT -TTGTTTTAATTTTAAATCAAAATAGCCTATGAAAGATTTAAATCAATTAAATTCTATAATATTATCATTT -TTAAAGCATATCATTGTTTAGTTTTTTTATAATTGGATAAATACTAATAGTTACTTTATAAAACATTACA -TAGAGAAAGGTTAAGGAGTGCACATGTCGAAAAAGGACCACTCTTCTTCAAAATACCTTAATTCTGTTAA -GGAAGCGCAAGAGGAGTCAAAAAAGAAAAATAAAAGTAATCCCAAAATTGATGTTGATCGTACATATATT -GAACCTCAACAATTCCAATCTAAGAAACCTAAAAAAGATGATCAGGTTTTCTTCTTATCAAGATTAAATA -AACCTGCAAAATATAAGAAAGACTCTAATTTCTTATCATATCTCATCTATCGCATAGGAAAAGATGATGC -CTCAGGACTAGCAGCGCAAATGACTTACCATTTCGTACTTGCTATGTTCCCTATGTTGCTTTTCCTATTA -ACATTATTACCATTTTTCAATATTAAGCAGAGTCAAATTACTAATATGTTAAGTAATGCACCCGCTGAAA -CATCTACTCTAATTAAGAGTGTAATTGGTGATATAACTCAAAACTCCAGTGGTGGCTTATTATCTATCGG -TTTGATTTTAGCAATTTGGTCAGCTTCAAATGGAATGACTGCAATTATGAATTCTTTCAATGTTGCTTAC -TATGTAGAAGATAGCCGTAATGGAATCGTATTAAAACTACTAAGTGTTGTCTTCACTGTAGTTATGGGCG -TTGTGTTTGTAGTTGCTCTAGCATTACCAACGCTTGGTTCTGTAATTAGTCATTTCCTATTCGGTCCACT -TGGATTTGACGAACAAGTGAAATGGATTTTTAATCTTATTAGAATTGTGTTACCAATCATTATTATATTT -ATCGTATTTATCGTGTTATATTCGGTTGCACCTAACGTTAAAACGAAACTTAAGTCAGTATTACCAGGTG -CAGTATTTACTTCAATTATTTGGTTGGCTGGGTCATTTGGTTTTGGTTGGTATATTTCAAATTTTGGTAA -CTATTCTAAAACATATGGCAGTATCGCAGGTATCATCATTTTGTTACTATGGTTATATATCACAAGTTTT -ATTATAATTGTCGGTGCTGAAATCAATGCAATCATTCATCAGCGTAGTGTAATTAAAGGTAAAACACCTG -AAGAAGCAGCATTAGAACATGATGACAATAATAAAAATCATTATAATGAGAACACTAGGTACGAATATGA -TGAAGATACTAATGCAACACATCAACGAACGTATCATGTTGACGAACATCCTAGTGATACCTATCCAGAA -GATGATAAAAATATAAAAGACAAAATCGTTGATAAGCTTAAAAAAGACTAAATAACAACAAAACAGAGGT -TTTCGCTAATGATTGCGAAGACCTCTGTTTTTTAGTGTATATTTGATGTTATATTGTGATTGGCGTAAGT -AACTTTTCTTAATTCGATAAGAACTATTGAATTAAATTATGTTGGAATGCATAGATAACAGCTTGTGTTC -TATCTTGCACTTCTAACTTACTTAAAATGTTACTCACATGTGTCTTAACCGTTTTAATAGTAATATGCGA -TGCACTAGCAATTTCTTGATTTGAGTAACCTTTCGCAATCAATAATAATATTTCCATTTCTCGTTCTGTA -AGCATTTCATATAACTCTGCGCGCTTTTTCATACGGTTACGCATTTTCACTAAAACTTCCGGTTCAAAAA -CAGATTCTCCTCTAGAAGTTTTACGAACTGCATCGGCGATATCTTTTGCACTTGTTGTTTTTAAAATGTA -ACTATCGACACCTGCATCTAATGCACGATATACCTCTTTATCTTCAATAAAACTAGTTAACATTAATACT -TTAATTTGCGGTAAATCTTTTTTAATCTGAGTCGTCGCTTCTACACCATCCATGTCTTCCATAAGTAAAT -CCATTAATATTAAATCTGGCTTCAACTCATGGGCTTTGGCAATTGCTTCTTTACCAGAAGCGCCTTCACC -AACTACTTCAATATCACTTTGCGTTGATAGATAACTTGAAATTCCTATACGTACCATTTCATGATCATCC -ACAAACAATACTTTAATCGTCATACGAATCCTCCTTATTTAAAGGTGCTTTCACCTCGATACGTGTACCT -GAATCTGGCAATGATACAATATGGAACGTTGCACCAATTTCCAAAGCTCTTTCACGCATATTTTTAAGTC -CATAACTTTGTTCTAATTTTTCATCAACATTAAAACCTTTACCATTGTCTTGAATTCTCAACAATAAATA -ATCGTCTTTATTAAACAATTCTACTGTCACTTTTGTACCGTTTGAATGACGCAATGTATTCGAAATTGCT -TCCTGTGTAATTCTGAACAAATGATCTTCAATACCTTTAGGCACTTTAAAATCTTGTATTTCATGCACAA -CTTTCATTGGCACTTTTTTTTGTAAATCAATAACTAAATCTTTAATACCCTCACCTAAAGATTTGTCTTT -TAAACCAAGCGGTCTTAAATGTAACAGCAAAGCACGCATTTCTAGCTGCGAATCTTGAACCATTTTCTCT -AAAATCGGAATTTGTTGGTCTAATGGTGGTTCTAACTTCGTTTCTTTGATAGCAGAAAGCATCATACTTG -CCGCAAAAAGTTGCTGACTAACAGAATCGTGAAGTTCTCGTGCTAGTCTTTGACGTTCATCTTCAATAAT -CTTTTTAACTTTCACATCATTAATATTATAATTTTCATTGGTTAAGTTTTGAGTTTTAAGTCGCAACTTA -TGCAATTCTTGATTTAAAGGTACAAGTGTATGGTATAAGTCTAACGTTTCACTATATATTTCTATATTTT -GATCATTAATGCCAACTGTTTCGCCTTCCATTGAACGCTCAATTTGCGTCTTAATCCAATCATTTTGCTG -ATTGATTTTGTAAGCGAGTACCGAACCAACAATAATACACAATAATATGATGATGAGATTTAAAAATAAA -AAGACTGGTATTCCGAATATTTGTGTATAAAACATACCTTGAAAATAGATGATATTTACAAAAACTTTAT -CGATGAACAGAAATGCAGCTAGCATGCTATATACTAAGATGAGCATTGAACCAATTGTTCTAATGTAGTG -GTTCATCGATAAATCACCTCTACGTCTCCGATAAACGTTGATACGTAGATATTAACTGTATAGTTATCCG -GTTTCATCATTTCTTCAATATGAATATTGTTATTTTCAACTTTATATGATTTTTCATTCACGTAAGTACT -TCCATAAAAAGCAGCTACATGTAAATTAATATTGTAATTAACCGGCAATATAACCTGCACTTTACCTAAA -ATGTGTCTAACAACAATGGTATTATTTTCCTTAATATTTGCAGCTTTTGTTAAGTCAATATGTAGGTCGC -CAATTCCATGTTGAATTTGGACATCTTCCCACTTATATACATAAACTGGTGTACGTTGCTCACCAAACCA -CTTTTGTTTAATAAAAGATGGTGAAGTCATAACCTCATCCGTCGCAACTACTTTTTTGGGTTTAAACTTG -TGTATTAAATAACGCACAATAAGTAGTAATAAAAAGACGAACAAGATGATGATTGTATACTTATTAGACA -ATAATGTGAATGCAATTAATAGCGCGCCTATCCAAAACGCCAAAAGGCCACGTATTTTATGAAAATAAAG -ATATCCTACATAAACTAATACACATCCCAATAATAGAACGAGTAAAAAGCCAATTTTTTCAAAAAATATG -TAGTAAAAATTGGCAATAATCATTAATGCAGTAAAAATGATCAACATTTGCGTTGATATATATTTGTGTG -TCATGTTTCGCCGCCTTTCTATGCCACAGCGTTCATATAATTTATTAGATACGATGTTTTTTCTGTTGCT -ATTTTTTCAGTTGAAGTTTGTTGAATTTGAGTTTCAATTTGTGCATAATATGCTTCAACTTTATTCAACT -CTGATTTAATATTTTCAATTTCTTGATTATTGATTTCTCTTGCACATTGAATTTGAAATGCTTCAACAAT -ATCAATATATTTATTTTCTAATGTTAGCATTAGACTGTCAATTAACTTGCTAAGTTGTTCTTTTTTAGTA -ATTAAATAATGCATATAATCATCTAAATTTTTCATTTTTTCATCTAACATTAAAAGGTAGTGCTTGATAT -TATTTCTTACTGTTGCTCTCAAAAACTGTTCAATATAACGTTCAACATAGTTCATAACTATCACCTTTTA -TAATAAGTTTTAAAGTACCAAATGCGCTATGTATCTTCGTTGATGTCGATGATATGTTTGCTTATAAACT -ACTTTATTACAACATATTTTTGAAATGACGCATTGATTGTGTTCTTAATTATTATAAAACAGTTCCGAAA -CCAATATGAATAGGCTCCGGAACTAAATGATGTTCATACTTTAGTCTTAGTATATGTTGAACTATTCTTC -TTCAATCTTTGTCGTTAAAATCGGACCATCCTTAGTCACGATAACTGTATGCTCAATTTGAGCAACAAAA -CTTTTATCGCTCGTTTCAAAAGCCCATTCATTTTTACCTTCTGTAACGAATGATGCATTTGATGAGATAA -ACGGTTCAATAGCTAATACCATACCTTCAGTTAATAATGTTTTGTCTTTTGGATCAAAGTAATTAAGTAC -ATGTGCTGGCGCTTCATGTAATGATAAACCAACACCATGACCTGTTAAGTTTTTAATGACTTTCAAATCA -TTTTGTCTAGCTGTATTATGCACCGCTTTACCAATGTTACTCAACTTAGTACCCGGTTTTACTTTTGCAA -TTGCATTCTCAAATGCCATCGTTGCTACGTCACATACTTTTTGTTTCATTGGATCGTCTGATTCTCCAAC -GACAAATGAAATGCCTGTATCTGCATAATAGCCATTCTTCAATGCCGATACATCAATATTTACTAAATCT -CCTTCACGAATGACACGCTTACTTGGAATCCCATGTGCCACCTCTTCATTAACACTAATACACGTTTGAC -CAGGAAAATTTTCATCATGAATTGGCGCTGAAATAGCGCCGTATTCTTCAAATAACTCTTTCGCAATATT -ATCAAGCTCTTTCGTAGTGATACCTGGTTTGGTTGCAGCTTGCATTGTATTGCGCACTTTAGCGCATATG -TATCCAATTTCTTTTAACGCTTGTAATTCTTCTTCTGTTTTTACAATCATTTTATCCCGTTCCTTTTTTA -TATAATTATAACTTATTATAGCAAAAATTCTTTGATATACTAAAGATGTTACTTTAGTATTTTGGAAAGT -GAGTGGGACATAGTGTGATAAAGAAAATTATTTCTTAATCGTCCCCAACTTGCATTGCCTGTAGAATTTC -TTTTTTGAAATTCTCTGTGTTGGGGCCCCGCCAACTTGCATTGCCTATAGAAATTGGTGTTCCAATTTCT -CTGTGTTGGGGCCTACACCCCAACCTGCATTGCCTGTAGAATTTCTTTTTTCGAAATTCTCTGTGTTGGG -GCCCACACCCCAACTTGCATTGCCTGTAGAAATTGTAGATCCAATTTCTCTATGTTGGGGCCCCGCCAAC -CTGCACATTATCGTAAGCTGACTTTTCGTCAGCTTCTGTGTTGGGGCCCCTCCCCAACTTGCATTGTCTG -CAGAAATTGGTGTTCCAATTTCTCTATGTTGGGGCCCCGGACTAGAATTGAAAAATGCTTGTTACAAGTG -CATTTTATTTCAGTCAACTACTAACAATATAACATTGTGGAGCCCAGAGCTTTGATTAATGTATATGAAA -GTCAAAGTAATGCATAAGCATGATTATTTCAAATGTTTTACATACATGAACTTTTCCAATGTACGATACT -ATTATTATAAAGCGCTCGCTAAGATTTTACGATGATTAGAGGTTAAAAAATGAACGGTCAATGGTATAAA -CATTTAATTGGTGCCAGAACAATTAAAACTGGTATTGCCATTTTTTTAACGGCTGTCTTTTGTATGGCAC -TAGATTTAACACCCATCTATGCCATTTTAACAGCTGTAGTCACAATTGAACCAACTGCCAAGGCATCACT -TATAAAAGGTTATCGTAGATTACCTGCTACGGTAATTGGTGCAGGCTTTGCAGTATTATTTACATATTTA -TTCGGCGATCAATCACCTTTTACATATGCATTGAGTGCGACGTTCACGATTTTATTCTGTACAAAACTCA -AATTGCAAGTTGGTACGAATGTTGCTGTACTAACATCATTAGCTATGATTCCAGGTATTCATGATGCCTA -CATATTCAACTTTTTGTCTCGAACATTGACAGCGATTATTGGACTCGTGACATCAGGTTTAATTAACTTC -ATGGTGTTTCCACCTAAGTATTATGGTCAGGTCGAAGAAAAATTAAGTAAGACAGATGCCTTGATGTATA -AATTATTTTACAATCGCTGCCAAGAAATTATCTTATCAAGACTGCAATCTGATAAAAGCGAAAAAGCATA -TAAAAATATTTTCAATTTAAACAATCAAGTTGAAACGTTAATAAGTTATCAACGTGATGAATTAAGCTAT -CATAAGAAAAAAGAATGTGATTGGAAATTGCTCAATCAATTAACTAAACGTGCATATACGAATCGTTTGT -TTATCACTCATTTATCAAATATCATTTACTTGCCTAAAAATACTCGTGTTAACTTTTCAGGTGACGAAAA -AATGGCATTGCTAAAAATTAGTAGTAGCATCAAAGATATTTTTTATGATGGTTCATTTAAGAGAGAAGAT -GATTCTGTAGAAACTTTACGTTCGACAATAAAAGCACTTGAAATTAGTGGTGAAAATCAAATTAAAAGTC -ATATACTGTATGAAGTTTTAATGATTTATCGACTGCTAGACAGCAGATATGCATAATTTAAGTGCCTTAT -GCTAATTGGAATCATTAGATATATTCTTACTTTATCAGTAATTTTATCGTATATAGCATGTCCCTTTTTA -AAATTACAAGCATATATATTCAGACTCAAATATAGCCACACGCCTAAACTACGGAGGGATGTGGCTGTCT -TTTTTGATTGTAATTGTGTATCAGATTTAAATCATTAATGTAACGAGACTAATTCATTAATAAATTTAGT -AAAACCTGATTTAGTAACGTTTATCCTTAACGAAACACCAGATTCTGTTACCATGTTTGAATGCCTTAAA -CCAGAATCAAAATCAATATAAATACAAAGCAGTTCTTGATTAAAATCAATAATCGTAAAATGTAAATCAG -GTTCTATAAAATATATTTCGGTAACTGGATTGTCGTATTCAATATATTTTAAATTGTCCATGTCACTATC -AAAAAGTGCAAATTCAAATTTAATTTCTTGATCTTCGAAAGTTGCACTAGTGTCGAAATAATAAATTTTA -TTATCTTCTTCGATAACTACATCTTTTAAAATAAATGTTATCGATGTTTTGCTATGTAAATAAGATGCAT -CTTTTAATATCACTTTAGTAGGCTTCATCGTCAAATTCCTTTCATCATTCATTTTTTCATGTTGCATAAT -CACCATTACTATTGATAATTCTAGGATAGATACTCATTGTATAATAATTATTCACTAGAACAAAAAAACA -CACATCAATTTGGTTGTTTCCATCCAAAATAATGTGTGTGTTTATACATATATGATTAATTACTAAACTT -CATCGTTTATCAATTTTAAACCCATTGATGCGATGTTCAGAGTTAACGAGACTTCTTCTGTCTATTTGCT -CTGTCTATTAATACTTGTTTCGCTTGCTTTTCCGCTTCATTATCTATTTCTTTAGGCTCAAACGGAATAC -CCTTACGTTCACAAGCTTTTTCTAACAGATAATCAGTTATTTCGTAATTTTTAGGTAAAATTGGTCCGTG -TAAATAAGTACCTAATAAATTTTTATAATGAATGCCTTCTTTTTTATCTTCATCATTATTACCATAACCA -AAAGTAACATGACCAAGTGTACCGAAATTATGATATGTTCTACCACCGTGATTTTCAAAACCTACAATAG -TTCCAAAAGTATCACTTTCGATAACAATATCTCCTGTTAATCGGTTTGTCTTTGATTCAGTATAAAAATC -TAAAATACCTAACCCTTCTAATTCTGTACCATCAGGCGTGATATATTTTTTTCCTAAAAATTGATAGCCT -CCACAAATCGTTAATCCCGGCATACCATCTTCAATCGCTTCTTTAAGTGGTGTCTTAATTTTACTTAGTT -CTTTTGTTGCTAATGCTTGTTCTCTATCACTTCCACCACCGATAAAGAAAATATCACATTCATCAAAGGT -AATACCTTCTGTTTCATTGATTTCTACGACATTAACTTTAATATTTCGTTTTTTTGCACGTTGTCTTAAA -GCAATAATATTTCCTATATCACTGTATAAATTCAATTTATCTGACATAAAATGATAAATAGTCAATTCAT -GCATATTATGATTGACCTCCTTCAAACGAACGGTTTAATTGTTCAAGCATAGGCGCTAATGATGTATAGT -TTGGTATTGCAACTGTGAAACCTTTATAATCCATAGTCTTTGCCGTTGCTTTATAAATATCACGCTCAAC -TATAATTGGTACTTCAACCTCTGCTAACTTCAATCGCAATTGAAGTTCTTCTGCTCGTGTACCTGTCACG -ATGATAGCTTCAATTTGTTGCTTAGATAATTTTTCGAAATCTGCATCATAAATCCATGAAGTATCTCGAC -CATCTGCAGCGTTATCATTTAGCGAAATAACATACACTTTTTCGCCTTCTAATTGTTCACCAACTGATAA -ACTTGCATTCATTCCTGCAGGGTTTTTAGCTAAATTGATCATCGCTTCTTTTCGTTCTTTTTTAAAGTAC -TGCATACGACCATTGTCTGATGTATACGTTTCAAAGCCATTTTTAATTGCTTGTTCATTTAACCCTAGCT -CTCTTAAAACTGTATATGCTGCTAACGCGTTATAAGCGTTAAAGTCACCTGCTATTTTCATATCATATTT -TTCATCATTGATATTTAAATGTAAAAACGGTGCCACATCAAATCTTGATATTTCATATTTTGCTTGCTCT -CGTTTGAAACCACACTGACAGTGATAATGACCAATTTGATTATAATGAATATAATCATATTGCAATAAGC -GACCACAGTTTGGACAATATCTACTTTCATTCATCGTACTTTGTTCAAATTCATGAGCATGTGCTTTCAT -ACCATAGTACACAATCGTATCACTTGCGATTTTCAAACGACTCACAAATGGATCATCACCATTTAGCAAT -AATTTGATGCCTTTATTACTAATTGTCTCTGCAATGTTATTAACCATAATATCAATTTCACCGAAACGAT -CCATTTGATCTCTAAAGAAATTAGTAAATACCATCATTGAAGGTGTAACTTCTTTTAACACACGTGGAAT -CGAACCTTCATCAATTTCGATTACCGCAATTTTAGTCTTAGGTGTTGATTGCATGATGAATGCAGAAGTT -ATACCTGCAGCCATATTAGCACCTTCATTATTGTGTATAATTTGAATATTATTCGCTTTTAAAGTATGTC -CAATTAAGTTTGAAGTCGTTGTTTTACCATTTGTTCCACTGATAAATACAATATCATCAACTTGCTCTGC -TAATTTTCTTAATATATCTGTATCCACTTTTCTAGCGATTTGTCCAGGTAAATCTGTTCCTCTTTTACCT -ACTGCTCTACTTGCTTTACGCGCCAATTTCGCTAGATGGATTGCCGTCCACTGTCTCATGTGTTTCCTCC -TCAAATTTCCACTCGCATCATTATAACATGACAAGGCAACTTCAAAAAAGTTTCTCAATCACAAATTGAT -ACAGTGTTTCTAAATTATAATCATTCTCATTTAGATAATTAAAAATGATATTTATTCTCAATTAAATCTC -GGTAAATGATACATTTTCTCAATTAGAGTGCTAAAATCAGTCATTAAATTATAATTATTATTATTTACAA -TTGAGAATGAGTTTGTTATACTAAGTTTAATTCATAGTAATTTTAATTTACAAATAAGAGGTGTATCAAA -ATGTTAAGTAAAAATTTATTAGAAGCATTAAATGATCAAATGAACCATGAGTACTTTGCAGCGCACGCAT -ATATGGCAATGGCAGCATACTGTGATAAAGAATCGTATGAAGGATTTGCAAACTTCTTCATTCAACAAGC -TAAAGAAGAACGTTTCCATGGACAAAAGATTTATAACTATATTAACGACAGAGGTGCACATGCAGAATTC -AGAGCAGTTTCAGCACCAAAAATTGACTTTTCAAGCATACTAGAAACTTTCAAAGACAGCTTATCTCAAG -AACAAGAAGTAACAAGACGTTTCTATAACTTATCTGAAATCGCTCGTCAAGATAAAGATTATGCAACTAT -CTCATTCTTAAACTGGTTCTTAGATGAACAAGTCGAAGAAGAAGCAATGTTTGAAACTCACATCAATTAT -TTAACTCGTATCGGCGATGACAGCAATGCATTATATCTTTACGAAAAAGAACTTGGCACTCGTACATTCG -ACGAAGAATAATTAAACATCACTACAATAGACAGATAAATATCATACGACATGATAGACATTTGGGTCAC -TTACAATAACCCAATGTCTATATTATTTTGCTTTACGGAGATCACTAGATTCATTTTCTGAATCATTGAT -CTGCGTTTTTTCATTTTCAAGGCTAATTATTGTATTTTTAGTCATTTGTTTTTTAAACTACTAATGTTAA -TAACTCTAAATTTAATGTTGTATTAATTTGACCGATTTTAAAGCATATCATCATTTACTTTTTAATCAGA -GTTACATCCAAATGATAGATTTCACGTTATACCTTCACGTATAATATTATGTATCGTTTGTAAGCAAATG -ACTAAAAAGTTTATTAATATATACATTTAATTAATTGAAAGGATTGACTACATGATACAAGATGCGTTTG -TTGCACTTGATTTTGAAACAGCAAATGGTAAACGTACAAGTATTTGTTCTGTCGGAATGGTTAAAGTCAT -TGATAGTCAAATAACAGAAACATTTCATACTCTTGTGAATCCGCAAGACTATTTTTCACAACAAAATATT -AAAGTTCATGGCATACAACCAGAAGATGTTGAAAATGCACCTACGTTTGACTACGTATTTCCATATATGA -TGCAATTTATTGCAGATTTACCTGTTGTCGCACATAACGCGGCATTTGATATGAACGTCTTACATCAAAG -CATTCAAAATATTGGTTTACCAACTCCAAATTTAACTTACTTTTGTAGTTATCAACTTGCTAAAAGAACC -GTTGATTCGTATCGATACGGTTTAAAACATATGATGGAGTTTTATCAATTAGATTTTCATGGTCATCATG -ATGCATTGAATGATGCCAAAGCATGCGCAATGATTACTTTTAGGCTACTGAAAAATTATGAAAACTTAAC -ATATGTAACTAATATTTATGGTAAAAATCTAAAAGATAAAGGCTAGGACTAAATAAAATACTCCCTTCAA -AGTAAGCATTGTAAAAATGTAAACTTTGAAGGGAGCTTTATTTTATATAAAGTCATATATCGTCATATTT -TTATAAGTTGATTGTTCTAAATTACCTACAGTGACACCAATAAGTCGAATTGGTACATCAGGGTCTTTTA -AATCGTTATAAAGTAAATATGCAATATTATAAATATCTTCTTCAGAACTAACAGAATCTCTTAAACTCAT -CTGTTTAGATAACGTTTCAAATTGATAAGTTTTAATTTTAACCGTTACAGTTTTAGCCGACTTCTGTAAT -TTATTTAGACGTTCAGCTGTTTTACCTGACAACTCCCATACTTTTCTTAAAATCTCTTCATCATCATTCA -CGTCTGTTGCAAATGTGCGTTCAGTCCCTACTGATTTTCTTACTCTTGTTGATTTCACTTCACTATGGTC -AATACCGCGTGCCTTGTTATATAAACCCCGACCTCTTTTTCCAAACAAACGTATTAATTCAAATTCCGTT -TTCTCATATAAATCTCTACCGTTAAAAATACCATTATCATGCATTACTTTTTTGGAAGCTTTACCTACGC -CTGGAAAATCTCCAATATCCAATGTCATCAAAATATCATGGACATTTCGATAATCAATCACAGTCATACC -ATCAGGTTTATTCATACCACTCGCTAATTTAGCTAAAAATTTGTTATAAGAAACACCTGCAGATGCTGTT -AAATGTGTCTGCTCTAGAATATCTTTTCTAATATACTGAGCAATTTTCGAAGCAGGAAGGTCTGGTCTCA -CTAATTCTGTAATATCTAAATACGCTTCATCTAATGACATCGGTTCTACCTTATCTGTATAACTACGGAA -AATAGACATAATCTGCGCAGATGTTTCTCGGTAAGCACCAAAATTACTTGTGACAAAGTATCCATTTGGA -CATAATTTATGCGCTTGTGACATAGGCATTGCTGAATGGACGCCGTATTTTCGTGCTTCATAAGATGCCG -TAGAGACAACGCCCCTACTACTTGCTTTACCACCAACAATGACTGGTTTCCCTTTCAATTTGGGGTTATC -TCTCATTTCGACTTGTGCAAAAAAATAGTCCATATCGATATGAATAATTCGTCTCTCAGTCAAGTGCTCA -CCTCCCTACTAATTTTTACTTTTATAACGCACAAAAATATCTCAACATAATTATACGCTGTGTACGATTT -TTTTACATAAATCTTGCACTTAGCGATAACTATATTGAGATAACTACAAGTTGTTATAAAATCAATTGCT -ATTTAAGCATGATGATGAAGACGATTGAGTAAGAAAACATAGGTAATCTGAAATAATTCAAGCAAATTCA -TTTTGCTGGTATCATCATATTAAAATTTATTATTGAGTCGGCTTTTGATGATACAAATAAATACTATCTT -CATCTTGTTGAACATATTTAAAACTACTAGATATTGTTAATGCAACAAGCAGAATATCTATAAAGCAATA -AGCGGTATGCATACTAAACATAAAAATAAGTGATGAATAACCAAATACCTTAATTAAAATAAGCAAGCCA -GCACTTAATAGGATTAGTGGTGACAGCATAATAATTGAGAATTGCCATTTGTTGAAGCAAGCATCTGCTG -TTTGGAATAAGATTCTGTCTTTTTTTATATTAAACATAGGTTTGCTATCTTTTTTAAATAACAGAAATAA -TGCTCTATGGATAAGTTCATGTAAAATCAATAAAATAATGAATCCAGCAAACCCATATACAAGATTGATG -ATGATATTTTGATCGACAACCGCTGTGACACCTAACGCCCACTTATACGTAAATAAAATCACGAATAACG -CAATAACAAGTTGCAAGATAATAAACCTTCGCATTTGAAAATTATTTGTCGTTAAATCAATTTTATGCAT -TACCAACCCTCCCGATCATGACATTCTTATTCTTCTTTAAATATAGTATACAATGTCACATTTAATTTAA -AAAGTTCATATCAAGAAAGTAAATTGGCTGTAATAAAATTTTAATATACGACTTCTTTCTTCACTTATTA -AGGCGAAATTTTATCTCAAATCATGTGCGCTATTTCAAATTGAATAATGCCACTGTCTCAACATGTGTTG -TTTGTGGAAACATATCTACCGGTGTTACCTCTTCAAGTTGATATTTTTCAGCTAATAATAATGCATCACG -TTGCTGTGTTGAGGGATTACATGAAATATAGACAATACGCTTAGGTTCTAATGTAAGCAAAGTCTGAATA -AACGTTTCGTCACAGCCCTTTCTTGGCGGATCAACCATTACAACATCTGGTTTAATCCCTTGTGCTTTCC -ATTGTAAAATAACTTCTTCAGCTTTCCCACAGACAAAAGTTGTATTATTGCATTGGTTTATAGTCGCATT -TTGTTGTGCGTCTTCAATTGCAGAAGGTACAACTTCAACACCGTATACATGTTTTGCATGTGGTGCCATA -TATAGTCCTATTGTTCCAATACCACAATAGGTATCTAATACAACTTCATTACCTGTCAATTGCGCATACT -CAATTGCTTTATTATATAATTTCTCTGTTTGTTCAGAATTAATTTGGTAGAATGACTGATCACTTATTTT -AAATGTACTATCTGTTAATTGATCAATAATTGTATCTTTACCATATAGCGTTATAGACTGACGTCCCATA -ATAACATTAGAGTGGCTATCATTAATGTTTTGTTTAATGCTTGTCACATTAGGAAATGCATCTAATATCT -TCTCAACAACAGCATTTTTTTGTGGCCAATTTTTACCATTAGTTACAAAAATAACCATCATTTCGTCTGT -ATGATATCCTGTTCTTACAACCAAATGTCTCATTAAACCTTTTTTCAATTGTTCTTGATAAATACTTACA -TTTAAATCTTTTAAAATAGATTTAACTTCATTCATCACTTCTTGATGTTGTGAATCTTGTATTAAACAAC -TTCCCATGTCAATAATGTCATGGCTTCTTTGACGATAAAAGCCCATAATAACTTCATTCTGTTCATTCTT -ACCAACTGGAATCTGGGACTTGTTTCGATATCTCCAAGGATCTGTCATGCCAACTGTATCGTTAATCTTA -GAATTATCAAAATGCGCTTTTCGCTGAAACAAATTAATCACTTGTTCCTTTTTCATTTCAAGTTGTGCTT -CGTATGATAAGTGTTGAAGTTGGCACCCACCACAACGTTCATAATATATACATGGCGGTGCAACACGATT -CTCACTTCTCGTATTTATATTAAGCAACTTACCTATCGCAAAGTTCTTTTTTACTTTGATAATTTTATAT -TCAATTTGTTCATTAATTAAAGCTTGTGGTATGAAAATAGGAAAGCGATCTATTTTTACGACACCATGAC -CTTCATGCGTTAAATCAACAACTGTTCCCGTTTTAATGTCATTTTTAGCTATTGCTTGCAAAATTTTACC -TCCAAAATGAACAGGTTAGGAACAAAATTATGCGCTTCCTAACCTGCCATTATATATTTCACTACTTCTG -TTTATTCTTCGATTAAATTGTCATCAACATGATCATTATTTATTAACTCTTCATTTACAATATCATTTGG -TGCAAAGACATCTATATGACGTTCTAGATTCAAGAAATTCGCTGGTAATTTACCACCATATTCTCCATCT -ACATTTAGTTGTAAGTCTGTGAATGATGAAATATTAATTGCCTTTGCTTTTTCATAAATAACTTTAGGAT -GCTTAGTATGTTCTCCTCTTGAAGCTAAAGTCATAATATGACCAAGTTCTGCAAGGTTTGATTTTTCAAC -TATAATTAACGTAAAATAGCCGTCATCTAACTTAGCGTCCGGCACTAATTTTTCAAATCCTGCCATTGAA -TTTGTTAAACCTAAAAAGAATAATAATGCTTCTCCTTGGAAAACATTACCATCATATTCAATTCTTAAAT -CTACAGCTTTCATTTGAGGTAACATTTCGAAACCTTTGATGTAATAAGCAAATGGACCAACAATAGATTT -CAATTTACTCGGTGTTTCATAAGAGACTTGCGTCAATTGTCCGCCTGCAGCTAAATTAATAAAGTATCGA -TTATTCATTTTACCAATATCTACTTTAGTAGAATGACCTTCAATGATGACATCAAGTGCCCCCATGATGT -CATTAGGTATATGCAATGCACGTCCAAAGTCATTAACAGTACCCATAGGAATGACACCTAGCTTAGGACG -ATTAGGCTTTTCTGCGATACCATTAACTACTTCATTTAATGTTCCGTCACCACCTGCAGCGATTAATACA -TCATAATTTTCATGCATAGCTCTTTCTGCTTCAAGTGTGGCATCACCTATTTTCTCGGTTGCATATGCAC -TCGTTTCATATCCCGCTTTTTCTAATTTTATTAAGGCATCAGGTAATTCTCTTTTAAATTGCTCTTTACC -TGATGTCGGGTTATAAATGATTCTAGCACGTTTCCTCATATCTTATCCCTCTACTTAAAATTCATATATT -TTAACTTCATCTTGGTTTCGTCTAATAGGAGTGGGACAGAAATAATATTTAACAAAATTTATTTCGTTCT -ACCCCAACTTACATTGTCTGTAGAATTTCTTTTCAAAATTCTCTATGTTTGGGGCCCCACCCCAACTTGC -ACATTATTGTAAGCTGACAGAAAGTCAGCTTCTATGTTGGGGCCCCGCCAACTTGCATTGTCTGTAGAAT -TTCCTTTCGAAATTCTCTTTGTTGGGGCCCCACCCTAACTTGCACATTATTGTAAGCTGACAGAAAGTCA -GCTTCTTTGTTGGGGCCCCACTAGAATTGAAAAAAGCTTATTACAAGCGTATTTTCTTTCAGTCAACTAC -TGCCAATATAACATTGTAGTGCCTAGGACATTGAATTTATGGCCCAGGATCAGTCTTATCTCATCATTCT -TAATATCGTTAAAGACCAACTTGTATCTTAAACAAATACTATCTCAATATGTACAAAGGTTGTTATTTAT -TCAGCATTTTTTGCCGTTCTTCGTTATATAGACTTCGTCAGTTATGCTATTTTACCTTTAAAATGATGTT -GTAAATATAATGTTGTCTTTATACAAAAATGTTTTATACCTTTTTATTATACAGTTTGCCTTAATATAAT -TAAAGCTAACGCATTAATAAAATTAATATTTTTACCATTAACATGTACAATGAATAAAGTTAAAAGTAAT -ATGACTTCTATAGATATAAATAAACCCTCGATTGCATCTAAGTCAGCAACCAAGGGTTCATTGTTATATC -ATCATAGTCTGATGAATCTAATTATCTTTTATCTAATTCTTGTTTTAATAGTTGATTTACTAATTGTGGA -TTAGCTTGACCTTTAGACGCTTTCATAATTTGACCAACTAAGAAGCCCATAGCTTTGCCTTTACCATTTT -TGTAATCTTCAACTGATTGTTCGTTATTGTCTAATGCTTCATTTACAAATTTTAGAAGTGTTGCTTCATC -AGAAATTTGAACTAAGCCATTATCTTCCATAATTTGTTTAGCATTACCACCTTTAGCTGCTAACTCTGGG -AAGACTTTCTTCGCAATTTTACTGCTCATTGTTCCGTCTTCGATAAGTTTAATCATACCTGCTAAATTTT -CTGGTGTTAATTTTGTATCTAATAATTCTACTTGATTTTTATTTAAATATTCGTTTACGCCACCCATTAA -CCAGTTAGATGTTAATTTAACATCTGCGCCGTGTTCAATTGTTGATTCAAAGAAATCTGACATTTCTTTA -GTCAATGTTAATACGTGTGCATCGTATGCAGGTAAGCCTAATTCATTTACATACTTAGCTTTACGCTCAT -CTGGTAATTCAGGAATTGTCTGACGAACACGCTCTTTCCAAGCATCATCAATATATAAAGGTACAATGTC -AGGCTCTGGGAAGTAACGGTAATCATCAGAACCTTCTTTAACACGCATTAAAATTGTTTTACCTGTAGAT -TCATCAAATCGACGTGTTTCTTGTCCGATTTCTCCACCACTTAACAATTCTTCTTCTTGGCGTTTTTCTT -CATATTCTAAACCTTTACGTACATAGTTAAATGAGTTTAAGTTTTTCAATTCAGCTTTAGTACCAAATTT -TTCTTGACCATATGGACGCAAAGAGATGTTAGCATCACAGCGTAAAGATCCCTCTTCCATTTTAACGTCT -GATACACCAGTGTATTGAATAATTGAACGTAATTTTTCTAAATATGCATATGCTTCTTTAGGTGAACGAA -TATCTGGTTCAGATACGATTTCAATTAGCGGTGTACCTTGACGGTTCAAGTCAACTAATGAATACTCACC -TTTATGCGTCGACTTACCAGCATCTTCTTCCATGTGAAGACGAGTAATACCGATTCGTTTTGTTTCACCG -TCGACTTCGATATCGATATACCCATTTTCACCAATTGGTTGATCAAATTGAGAAATTTGATATGCCTTTG -GATTATCTGGATAGAAATAGTTCTTACGGTCAAACTTAGATTCTGTTGCGATTTCCATATTTAGTGCCAT -TGCAGCACGCATTGCCCAGTCTACTGCACGCTTATTAACAACTGGTAAGACACCTGGATATGCTAAGTCG -ATAACATTTGTATTTGAGTTAGGTTCTGCTCCAAAATGCGCTGGTGATGGAGAAAACATTTTTGAGTCCG -TTTTTAACTCTACGTGAACTTCAAGTCCTATAACTGTTTCAAAATGCATGATTTCCACTCCTTATAATTT -TTCATAAACGTCATGTAAATTGTATTGTGTTTCATATTGATAAGCGACACGATATAACGTTTTTTCATCG -AATGGTTTACCAATGAACTGTAAACCGATTGGTCGGCCATTTGATTGTCCACAAGGAACAGAAATACCAG -GTAATCCAGCTAAGTTTACTGGTGTTGTTAATAAATCATTGGCATACATTGTTAATGGATCATCAATTTC -TTCACCTAAATTAAACGCAGTTGTAGGCGCTGTTGGACCAACTACTACATCATAATTTTCGAATACTTTA -TCAAAGTCATTTTTAATCAATGTTCTAACTTTTTGAGATTTTTTATAGTAAGCATCGTAGTAACCTGAAC -TTAATGCAAATGTACCTAAGAAAATACGACGTTTTACTTCTTTACCGAAACCTTCAGATCTTGACATTTT -ATATAATTCTTCTAATGAATGAGCTTCTTTAGAATGATAACCATAACGAATTCCGTCAAAACGAGAAAGG -TTTGACGAAGCTTCTGATGATGCAATCACGTAATATGATGGAATACCAAATTTAGTATTTGGCAATGATA -CTTCCTCAACGACAGCACCTAAAGATTTTAAAGTTTCTACAGCGTTTTGAACTGCTTCTTTTACGTCATC -AGCTACACCTTCACCTAAGTATTCTTTAGGTAATGCAACTTTTAATCCTTTAATATCTTTACCAATTTCA -GATGTAAAGTCTACATCATCAACAGGTGCACTTGTAGAGTCATTAGCATCTGCACCAGAAATAGCTTCTA -ATACGATTGCATTATCTTTTACATTTCGAGTCAATGGACCAATTTGGTCTAATGAAGATGCAAATGCAAC -TAATCCAAATCGAGATACACGACCGTATGTTGGTTTCATACCGACAACACCACAATATGCAGCCGGTTGT -CTAATTGAACCACCAGTGTCTGAACCTAAGCTAAATGGTACTAAGCCAGCTGCAACTGCTGCTGCAGATC -CACCTGATGAACCACCTGGTACTGCTTTATGGTCAAATGGGTTAACTGTTTTTTTGAAATAAGATGTTTC -TGTTGAACCACCCATTGCAAACTCATCCATATTTAATTTACCGATTAAAACGGCATTCTCATTATGTAGT -TTTTCCATTACAGTAGATTCGTAAATTGGCACAAAACCTTCTAACATTTTACTTGCACATGTTGTTTCTA -ATCCGTTTGTAATAATGTTATCTTTTATACCCATTGGAATACCAAATAATTTGCCATCCATTTGGTCTTT -TGCTTGTAATTCATCCAATTCTTGCGCTTTTTTAATTGCATTTTCTTTATCCAGCGCTAGAAAAGACTTA -ATTGTTGGATCAGTCTCTTCAATTGCATCATATATATCTTTAACAACATCAGATGGTTTGATTTTTTTGT -CTTTAATTAAAGTTAATAAATTCTCAACCGATTCGTAGCGAATGCTCATCTTACGCGTCCTCCTCATTCA -TGATTGTAGGCACTTTAAATTGTCCATCTTCTGTTTCTTTGGCATTTTTCAAAGCTAATTCTTGCGGAAT -ACCTTTAATTGCTTTATCTTCACGTAAAACGTTTTGTAAATCTAAAACGTGATATGTAGGTTCAACGCCT -TCTGTATCAGCGCTATCATTTTGTTTTGCAAAATCTAAAATGCTTTCTAATGTGTTGGCCATTTCTTCCG -TTTCTTCAGGAGAAATTTGAAGTCTTGCAAGATTCGCGATATGCTCAACTTCTTCACGTGTTACTTTTGT -CATTAATAAAAGCCTCCTTTAAGTCATTCATCACTAAATTGTATCAAATTTCCAATTAAAAATCTAAGTA -TTTATGAGGTACTACTTTAATTTCATATAAACTGTATAAACATTATCATTCGTTTACCAAATCATTTTTT -ATGAAAACAACACCCTTTTATTATTAGACAACCCAATTCAATATTATGATTATGCAATTTTAATTATAAA -AATTTGCTCATATCTAAAAAATACGAAAGCGTTTTCTATATTGGTATACAAGTATTTCAAAAAGAATAAA -TTTAATTTTCCTACTTTTCTAAACATTTATCTTTATGTATAATGTTTTCAAGTAACTAAATTATAAATTA -AATAAAGGGAGTGTTTATCATGCTTACAATGGGGACAGCATTAAGTCAACAAGTAGATGCCAATTGGCAA -ACTTATATTATGATTGCCGTCTACTTCTTGATACTAATCGTTATTGGCTTTTACGGTTACAAGCAAGCAA -CTGGTAACCTAAGCGAGTACATGTTAGGCGGACGTAGTATTGGACCGTATATTACTGCATTATCAGCTGG -AGCTTCAGATATGAGTGGATGGATGATTATGGGTCTACCTGGTTCTGTCTATAGTACTGGTCTTTCGGCA -ATGTGGATTACAATCGGCTTAACATTAGGTGCTTATATAAATTACTTTGTTGTTGCTCCTAGACTTCGCG -TTTATACCGAATTAGCTGGAGATGCAATTACATTACCAGATTTCTTTAAAAATCGTTTAAACGATAAAAA -TAATGTGTTAAAGATTATTTCTGGATTGATTATCGTAGTATTCTTTACATTATATACACATTCTGGTTTC -GTATCTGGTGGTAAATTATTTGAAAGTGCTTTTGGATTAGATTATCATTTCGGTTTAATATTAGTTGCTT -TCATTGTCATTTTCTATACTTTCTTTGGTGGATATTTAGCTGTATCAATTACAGATTTCTTCCAAGGTGT -CATTATGTTAATTGCGATGGTTATGGTCCCTATTGTTGCTATGATGAATTTAAACGGCTGGGGAACGTTT -CATGATGTAGCAGCTATGAAACCTACAAATTTAAATTTATTTAAAGGGTTATCATTTATAGGAATTATCT -CTCTATTTTCATGGGGATTAGGTTATTTCGGTCAACCTCATATCATTGTAAGGTTTATGTCTATTAAATC -ACACAAGATGCTACCTAAAGCTAGACGTTTAGGTATTAGCTGGATGGCTGTTGGTTTATTAGGCGCTGTG -GCTGTTGGTTTAACAGGTATTGCATTCGTACCTGCTTATCATATTAAACTAGAAGATCCTGAGACATTAT -TCATCGTGATGAGTCAAGTACTCTTCCATCCTCTTGTAGGTGGTTTCTTACTTGCTGCGATTCTAGCAGC -AATTATGAGCACCATTTCTTCACAATTACTTGTAACGTCTAGTTCTTTAACTGAAGACTTTTATAAATTA -GTTCGTGGTGAAGAAAAAGCTAAAACACATCAAAAAGAATTCGTTATGGTTGGACGTTTATCTGTATTAG -CAGTAGCAATTGTTGCCATCGCGATTGCATGGAATCCAAACGACACAATTCTAAACTTAGTAGGTAATGC -TTGGGCCGGATTTGGTGCATCGTTCAGTCCACTTGTGCTATTTGCACTTTACTGGAAAGGTTTGACACGT -GCCGGTGCTGTAAGTGGAATGGTTTCAGGTGCCTTAGTCGTTATCGTTTGGATTGCGTGGATTAAACCAT -TGGCACATATCAACGAAATATTCGGCTTATATGAAATTATTCCTGGATTTATTGTAAGTGTAATCGTTAC -ATATGTTGTAAGTAAACTTACTAAAAAACCTGGTGCATTTGTTGAAACTGACTTAAACAAAGTTCGTGAC -ATCGTTAGAGAAAAATAATTCATAAGTCTTAACAAATTAAAAAGGTACTAATGTTAATCAAAATTATGAC -TAACATTGGTACCTTTTTATTATCTTTAATTTACAATTAATTACTGTAAATATGAACTTGCGGTTCTTTG -TCATCTTTTGTCTTACTAATTAAAGCACGTGGTTGGTTACCATCTTTAATCCGAATTTCATAGTTATCGA -TTTTATCGAAATATTTATTCGCTTGTTCAGTAACGTACTGTGTAATACCAATTGTTTCAGCTTGTCCATA -GTAATCGATTGGTAAATCTACTACTAATCGTTGTGGCTTTTTATCAACAAATTTAACTTTTCCTACTGCT -TGTGTGAAATTAGAAAAATATGATTGCAAATTATCATTAAATTGCTTGAAATTATTATTTAAATTTTCAT -CATAATCTGCTGCTGTTGAAGAAGGTAATAAAGCTGATTTTTCATTGATATTATGCCATTCATTAAGCTT -TGTTTGACTCTTTTCTGCAGTCGCTTGAGTGATAAATTCACCTGGTGTGATTGAATCTTCACTTGATTGC -TTATAAATTGCAAAATGAATTGGTATATCTTTTAAATCATCATTTTCACGTAACCTTGATAATATCTCAC -TAGCCATTTGTTTACCTTGCTTTTTAACTTCGCTATCATCTAGTTTTTTACTAAAAGTCGGTCCATCTTT -TTCTTTTTTATAGTAATAAACACTATTCATAGCTAAACCAATCGTCATACCTTTAATATTCTTACCTTTT -GTATCTCCACCACCATAAAAATCTTGCTCTAAAATGTTAGATAAATAGGCTGGTGATTTTTCTGCAATCT -TTTCAGGATCTGTTTCACCTTCGTGTGATGGATTAAGTCCTAAATTTTCATTCGCTTTCTTGTCTTTTTT -ATCTTTTTCAGACATTTTATCGATTTCACGTTTTGTATACTTAAGATTTAAATAGGCATTAATTGTTTTC -TTGTCCAAAAATTGACCATCTTGATACAAATATTTGTCTGTTGGAAACACTTCTTTACTTAAGTTCAATA -AACCATCTTCAAAGTCGCCGCCATTATAACTATTTGCCATGTTATCTTGTAAAAGTCCTCTTGCCTGGCT -TTCTTTAAATGGTAACAATGTACGATAGTTATCACCTTGTACATTTTTATCCGTAGCAATTTCTTTTACT -TGATTTGAACTATTGTTATGTTTTTGATTATCTTTTCCAGCCTGGTCATCCTTATGGTTACCACAAGCAG -CGAGTATAAAGATAGCTGTAATCAATAATACTAATGTACGCTTCATCGACATACCCCTCTAACTATTTAA -TTCATTTTGCTTATCTACAAATTGTTGCTCTGTCCAAATTTCAATACCTAAACTTTGTGCTTTTGTTAAT -TTTGAACCTGCATCTTCACCAGCAATAACGACATCTGTATTTTTAGTAACGCTACTTGTAACTTTAGCAC -CTTGTGATGCAAGCCATTTAGATGCTTCATTGCGTGTCATTTGATGTAGCTTACCAGTCAGTACTATCGT -TTTACCACTAAATTCAGGATGTCCTTCAATATCTGATGTTTTGATACCTTTATAAATCATATTAACATGT -TTATCTTTTAATTTTTGAATTAAAGCACGAATATCTTCATTTTCTAAATAAGTAACTACAGATTGTGCTA -CTTTATCACCTATATCATGAATTTCTACTAATTCCGCTTCAGTTACTGTTAGTAATCGATCTATCGTTTC -ATATTTTTCTGCTAACACTTGGCTCGCTTTAACACCTAAATGCCTAATACCTAGACCGAATAATAAATTT -TCTAAAGAGTTGTCCTTTGCTTGTTGAATGGCAGCTAATAAATTATCAACTTTTTTCTGCCCCATTCTGT -CTAAAGGTAATAAATCTTCTTCTGTTAAATAGAAAATATCAGCAACATCTTTAATTAATTCGCTTTGATA -AAGCTGTTGAATAATTTTAGTGCCTAAACCATCAATATTCATGGCTTGTCTTGATACAAAGTGAATCAAT -CCTTCAACAAGTTGTGCTTGGCATTTTGGATTAATGCAACGAAGTGCTACTTCGCCTTCAATACGTACTA -ATTCATGTCCACAACTTGGACAATGGGTTGGCATATGATATGTGACAGCATCCTCAGGTCTACGTTCTGG -AATACTACGTACAACTTCAGGTATGATGTCACCTGCTTTTTTCACTACAACACTATCACCAATTCGAATA -TCTCTGTCATGAATTAAATCTTCATTGTGCAAGGATGCTCTTGATACAGTTGTACCAGCTACTTTTACTG -GTTCTAAAATAGCAGTAGGTGTGACTACACCTGTACGTCCAATACTTAATTCAATATCTAATAATTTAGT -TACCACTTCCTCAGCTGGGAATTTATAAGCAATGGCCCATCTTGGTGATTTTTGTGTGAATCCCATTTCG -TCCTGCTGATCTAAATCATTAACCTTTATCACAATACCATCGATATCGTATGGCAATGATTCCCTTTGGC -TTGTCCATTTTTCAATATATTCTAAAACGCCATCGATATCGCTGACGCGCGCTCTATTTTTATTCGTTGT -AAAACCTAATTTATCTAACTCATCTAATGCTTCACTTTGCGAACGCGCATTGAAATCGGTGAAATCATTG -ACACTATATATAAATACGCTTAGCTTTCGTTTTGCCGTTAATTTAGAATCTAACTGTCTTAATGACCCCG -CAGCTGCGTTTCTTGGATTTGCAAATAACTGCTCATCATTTTTTTCTTTTTCTTCATTTAATCGTAAAAA -TGAACGTCTCGGCATATATGCTTCACCACGAACTTCTACATTTAATGGTTCTTTCATTTTCAAAGGTATC -GCATGAATTGTTTTTAAATTTTCGGTAATATCTTCACCTGTTGTTCCATCACCACGTGTTAAACCTTGAA -CGAAGTATCCATCAACATATTTCAATGATACTGCTAAGCCATCAATTTTTAATTCGCACATATATTCAAC -GTTGCCAATTTGTTCACGTATGCGTTGGTCGAATTTTCTCAAATCATCCTCATTAAATGCATTCCCTAAA -CTTAACATTGGCGTGTCATGGTTGACTTTATTGAAAGAGGCTTGGGCTTCACCACCAACTCTAACCGTTG -GAGAATCTACAGTCTTAAACTCAGGATGCTCCTCTTCTATTTTAATCAGTTCATGAAGTAATTTGTCATA -TTCACTATCTGGTACAGATGGATTATCCTCTACATAGTATTCATAACTGTATTGATTTAATAAATCATGT -AACTCGTTCACACGAGACGATAAATCAGCCATCCCTTAATCCTCCTTTTTTTCAATTGGTGCAAATTGCG -CTAACAAACGTTTTGGCCCTTGTGATTTAAAGATAATATCTAGTTCGATTGAGCCATTTTTCTCGTTTAC -ATTACTCACCATGCCTTCTCCCCAGGCTTTATGCATCACTTTGTCACCTACATTCCAATCAGATGACGAT -ACTTGTTTTTTCGTTGACGTTGTTCGTTGACTAAATCCACGTTTAGCAAAAGGTTTTGCCTTAGGTTGTA -TCGTTTGTCGTTTGCCACTTGAATGATTTTCTAATAGTGATTCTGGAATTTCCTTTAAAAATCTAGATGG -CATATTTGACTGAGGGCGACCAAATAACATTCTTGATGTCGCATGAGTGATGTATAACACCTCTTCAGCC -CTTGTGATTGCTACATAACAAATACGACGTTCTTCTTGCATTTCATGATCACCTTCACTCTTAATCGCTC -TAATATGTGGGAATAAAGATTCTTCCATTCCCATTATAAAGACGATTGGAAATTCAAGGCCCTTAGCCGA -GTGCATCGTCATTAGTGTTACGCCATTTTCAGTATCTGCCTCATCAATATCAGCTACTAACGATAAATCC -GTTAAAAAGTTAATTAATGACTGTTCTTCTAATGGGGTATTTTCCTCATAGTCTTTTGGTACTGACATAA -ATTCATCGATGTTTTCTAATCTACTTCGAGATTCTAGTGTATTTTCACGTTCAAGCATTTCTCGGTAGCC -AGACTTTTGTAATACTTCATCAACTATTTCATGAATTTCTAAAAATTCTTGTTCTTTTATCAAGCTTTGG -ATTAACTCGTAAAAATTAAGACACTCTTGTGTCACCTTTTTTGACAATCCGATAAAATCAGCTTCTCCAA -GTGCATCAAACATACTGATATTGTTTTGAAGTGCATAATTTTGAACTTTTTCAACAGATGAAGGACCTAC -ACCTCTTTTTGGAACATTAATAATACGTTGCAAACTAATGTCATCATTACTATTGGCAATTATACGCAAA -TAACTTAATAAATCTTTAATTTCTTTACGGTCATAGAACTTTTGGCCACCAACCATTGTGTATGGCATAT -TAGATTTCATGAATGTTTCCTCAAGTACACGTGATTGTGCATTTGTTCTATATAAAATTGCCATATCTTG -ATATTTCTTACCATTACGTTGATGCTTCATAATTTCTCGTATTACAAATTCCGCTTCATCACGTTCTGTC -ATTGCTTCATAGTAATGAATTTTCTCACCATTCGTATTTGCAGTCCACAGTCCTTTTGGCTTACGTTCAG -AATTATTTTTAATCACTTCGTTAGCCGCATTTAAAATCGTTTTCGTCGAACGATAATTTTGCTCTAAAAA -GATTGTATTCGCTTCTGGGTAGTCTTTTTCAAATGATAAGATATTTTGAATATCAGCACCACGCCAACCA -TAAATTGACTGATCTGAGTCACCTACAACACATAAGTTTTTAAACTTACTTGCTAATAATTTAACTAATG -TGTATTGTGCTTTATTGGTATCTTGATACTCATCTACATGAATATATTGGAATTTGTTCTGATAATATTC -TAGAACTTCTGGTACACGCTCAAATAAGTTAATCGTTGTCATAATAAGGTCATCAAAATCTAACGCTTCA -TTACGTGACAATTGGCGTTGATATCCACTATAAACCGTTGCTACCATTTGCGAGTGATAATCTGTGGCTT -CTTTTTGAGCATCTGCAGGTGTTTTAAGTTCATTTTTCAAATTACTGATCGCACCGATAAACATACGTGG -TTCAAACTTTTTACTATCAATATTTTCATTTTTTAAGACGTCTTTAATAACAGATTTTTGGTCTGTAGGA -TCAATTATCGTAAAATTGCGTTCTATACCAATTCGATCTGCATCACGACGTAAAATACGCACACACATTG -AGTGGAATGTTGACATCCAAATCACTTCTGCTTGATCACCTACTAATTTTTGAACACGTTCTTTCATTTC -TCTTGCTGCTTTATTTGTAAAAGTAATAGCCAAAACATTGTATGGTGAGACATCTTTTTCGTCTAATAAA -TAAGCAATTCTATGTGTTAAAACACGTGTCTTCCCTGAACCAGCACCTGCCATAATTAACAATGGTCCTT -CTGTTGTCTTTACAGCTTCACTTTGCTCTGTATTCATATGATTTAATAACGCATTCATTTACTAGACTCC -TTTATTTTTACTGTTTTTAAAGCTTTTTTAATATCTTTATAAATAATATCACCGACGATAATTGTATCTG -CAATAGCTGCCATCTCTGTCGCTTGTTGTTCTGAGGAAATACCGCCACCATAAAAAAGTTGCGTTTCTGT -TAGATGTTCTGAGACAGCTTGAACCTTTGATACGTCGCCATAAATGCCACTATACTCTATATACATAACC -GGTAATCGATACAGATGATTGACCATTTGGGCATATGCTTCTAAATCTTCTGTTGTTAAATCTGTATTTG -CTTTGGTATGTTTTGCCACTTTGCTATCAGCATTGCACACGACATACCCTTCAAATATTACTTCTTCAAA -ATCTATACTATGTCCATATGTTTTAAGCGCTTCTAATAATGTACCATTGTGAAATGCAACATCTGTACTG -TTCAGTACTGTAGGTACAAAATAAAAATCAAAACCAGGCATTACACTTTCGATGTTTGATATTTCAAGTA -CTAAAGGCAATGGGTATCTTCTTACCCTGCTCATTAAATGAATGACATTATCTTCAGTAACGTCATCAGT -TCCACCAATCATAATTGCATCTGTTTGAGACATACAAATCGCATCTAAATCATCATCTGAAATATGCTTA -GCTGGGTCTAATTTAAAAATATGGCGCCATTTTTTAATGTCATACATTTTCCGAAACTCCTTTTTTAACA -TACATATGATTATAGCATTTTTAAGTGTCGAGTTCTAAAGACTTAATATGAAATTTAAGTTCTTTTACTC -TGTAAATTTTTTCGTGAAAAAACAATGATTATCTACCTTATTAGTACAGATAGATAACCATTGTTTATCG -TTCGTTTATCGTTCATTTATTATTCATTTGTTTCAATATTCATACGATCTAAAATCATTGTATAAGCATC -ATTACCCCATTGTAATGAACGCTTCACTCTAGAAATCGTTGCAGTCGATGCTCCAGATTCTTGTTCAATC -GTTGCATAGGTATAACCTTGCTTAATCATTTTAGCAACTTGTAATCGTTGAGACAGTGATTGAATTTCAT -TTACAGTACACAAATCATCGAAAAATTGGTAACATTCTTCTCTATTTTCTAACGTTAGTATTGCATCAAA -CAATTCATCTAACGCTGCACCTCGTAATTTTTCAATTTGCATATCGAAACAACCCCTATAATTTTATTCT -TTATGTCATTTTAACGCATTAACCTATTAAAGTGTAGCGATTTATATTTTATTAAATCTGAATCGTTACT -TTATTTAATTTTATGCTAATCCAGCGCGTTCGAAAATAGTGTCAACTTGATTCAAATGATGTTTAGGATC -GAAACATTCATCCAATTCTTCTTTTGTTAAAACACTTGTAATAGACTCATCTTGTTCGATTAATTCACGG -AAAGGTGTTTTCGTTTCCCAAGATATCATCGCTTTTGGTTGTACTTTGTCGTATGCTTCTTCACGGACCA -TACCTTTATTAATTAATGCTAATAAGACACGTTGTGAGAAAATCAGACCAAATGTTTTATCTATGTTATT -ACGCATATTATCTTCAAATACAGTTAAACGGTCCACAATATTTGTGAAACGATTCAATGCATAATCTAGT -GCTATTGTAACATCTGGTAACATAATACGCTCAGCTGAAGAATGAGAAATATCTCTTTCATGCCATAATG -GCACATTCTCATAAGCTGTAGTAATATAACCACGAATTACTCTTGAAATACCTGTGATATTTTCAGAACC -AATTGGATTTCGTTTATGAGGCATTGCAGATGAACCTTTTTGACCTTTTGCAAATGCTTCTTCAACTTCT -CTTGTTTCGGTTTTTTGAAGGTTACGAATTTCAACGGCAAATTTTTCTAGTGAAGTTGCGATTAATGCTA -ATGTCGCAATATAGTATGCATGTCGATCGCGTTGCAATGTTTGCGTTGATACAGGCGCTGTGCCAATACC -TAAATGTTTACACACATAACTTTCTATTTCAGGAGGAATGTTAGCAAAAGTACCTACTGCACCACTCATT -TTCCCTACTTCAATTTCTTCTCTTACTTGTTTGAAACGTTGTAAGTTACGTTGCATTTCCGTGTACCACA -ATGCCATTTTGACACCAAATGTAGTTGGTTCTGCATGCACTCCATGTGTACGTCCCATCATCAATGTATA -TTTATAATTTTTTGCTTTTTCAGCTAAAACGTCGATAAATCTTTCTAAATCTTTTTCAATAATGTCATTT -GCTTGTTTAATAACGAAACTTAAAGCTGTATCTACAACATCAGTAGAAGTTAAACCATAATGTACCCACT -TACGTTCTTCACCTAGCGTTTCAGAAACTTGTCTAGTAAAGGCTACAACATCATGGCGCGTTTCTTGTTC -AATTTCTTGTGCACGTTCGACATTTACCTTTGCGTTTTGACGAATTTTTTGTACGTCAGCTTTCGGTATA -TGTCCTAATTCACTCCATGCCTCACATGCTAAAATTTCCACTTCTAACCATGCTTCATAGCGATTTTGAT -CAGTCCAAATATTAGACATTTCTTCTCTAGAATAACGTTCAATCATTTTTTTTAACTCCTATCGTATGTA -TACTCGAATTTTCAAAAACAGAACATTTTTAATAAAAATAAATAAAAAGTTCGTTTTTAACTCTACTCTT -CACAGTTTAACAGAATTGGTTATAAATGTATAAAAAATTTCCGTATATTCTCATTCTATTTTATTTTTTA -CATTAATACAATTATCTATGGCAGATTAATACTGATTTCTAATTGTAAATGTTCGCAACACTTTAATCTA -ATTGGTATTTATAATGATCCATTAAGAATATATTATTGCATTTTAGTTTTTCTCCCCTCACCTAGACTAT -CCACCTTTTTATTACAATTAGGACAATCAATAGCTTTAGTAATACCAGATATTATTCACTTTACTTCTCA -TATTGTATAGAATTTTCAACAATCTACTTTTCCTAGTTTCATAATATTCCTTCTTACATTCCATAATGTG -TTTTAAAATTATTCGCTTCTAATATAACAAATTTTCTACTCACAAAAAGAATTGCATAGGTATGGCATTT -TAAATATAAGCAATTAATATTGAACTGCTCGAGTCGTATAAATACGAAAGTGATTATAGAAAAGTACTCA -GAGATTTTCTTAATAGTAAATTTTTATAGACAGACATCAATTAACTACGTTTCTTTCAAAATCGACTAAC -ATATTTTCATGAAACGTTCGATCATATTAATTATTGAATAAGATGTTTGCAATTTAGTAAATAAGCTACT -AAATTATTGCATAAACTGATAATGTCTAATAATTAAATATTTTTTAAACATAGATTAAAAATTTATATTG -AAATTCTTAACTAAATTTAATATAATTATTTTATAATAAAAGAAAGGAGTTTTTATATGAAAAGAAACTT -TCCAAAATTAATAGCTTTAAGTTTAATATTTTCTTTAAGTATTACCCCTATTGCAAACGCTGAGAGCAAT -TCAAATATCAAAGCAAAAGATAAGAGGCATGTGCAAGTTAATGTCGAGGACAAGAGTGTTCCAACTGACG -TACGTAATTTAGCGCAAAAAGACTATCTTTCTTATGTTACTTCACTTGATAAAATCTATAATAAAGAGAA -AGCCTCGTATACACTTGGTGAACCTTTTAAAATTTATAAATTCAACAAAAAGAGTGATGGTAATTATTAT -TTTCCTGTTTTGAACACTGAAGGTAATATCGATTATATAGTTACAATTTCACCAAAAGTCACTAAGGATT -CTAGTTCATCTTCTAAATACACAATCAATGTTTCTTCATTTTTATCTAAAGCCTTAAATGAATATAAAGA -TCAACAAATTACTATTTTGACAAACTCAAAAGGTTACTATGTGGTTACTCAAAATCATAAAGCTAAACTA -GTACTAAAAACACCACGTCTAGAAGATAAAAAGGCAAAAAAGACCGAGAGTATACCTACTGGCAATAATG -TAACGCAACTAAAGCAAAAAGCTTCTGTCACTATGCCAACTAGTCAATTTAAAAGTAATAATTATACTTA -CAACGAGCAATATGTAAATAAACTTGAGAATTTCAAGATAAGAGAAACTCAAGGTAACAATGGTTGGTGT -GCAGGCTATACGATGTCTGCATTACTAAATGCGACTTATAATACTAACAAATATCATGCAGAAGCTGTGA -TGAGATTTTTACACCCAAACTTACAAGGACAACAATTCCAATTTACTGGTTTAACGCCAAGAGAGATGAT -TTATTTTGGACAAACTCAGGGAAGAAGTCCACAACTTCTTAATAGAATGACTACATATAATGAAGTTGAC -AATCTTACTAAAAATAATAAAGGAATTGCTATTTTAGGTAGTAGAGTAGAATCAAGAAATGGTATGCACG -CAGGGCATGCTATGGCAGTTGTTGGGAACGCTAAATTAAACAATGGACAAGAGGTTATAATTATATGGAA -TCCATGGGATAATGGTTTTATGACTCAAGATGCTAAAAACAATGTTATTCCAGTATCCAATGGCGACCAT -TATCAATGGTATTCATCTATTTATGGTTATTAAAATTTGTATTTTAGAAAGGTAAATAATATTATGGAAC -AATTTGAATTATTTAGTATTGATAAATTCAAATGTAATTCAGAGGCTAAGTATTATCTTAATATTATTGA -GGGAGAATGGCATCCTCAAGATTTAAATGATAGCCCTTTAAAATTTATTCTCAGTACCTCAGACGATTCT -GATTACATTTGCAAATATATAAATACAGAACACAAACAACTCACATTATATAATAAAAATAATAGCTCAA -TTGTTATTGAAATATTTATACCAAATGATAATAAAATACTACTAACAATTATGAACACAGAAGCTTTAGG -AACTTCTCCTAGAATGACTTTCATTAAGCATAAATAATAAGACTATCTAGATATATTTAAGTAAACTATT -ACTCTTATTAAAGGACTCTAGGAAGAAAAAATTTCATGCAATGAGATTTTTTTAGAAAAAGCGACGATAT -ATATAATTTAACAATGATTTTAAAATATTAAGAACCCCCAGCATATACTTTATATAGCTTGCTGGGGGTT -TCTCATACAATATGGATCGAGCATCTTGCATGTATAAACACATAGGCTATTCAAAGTAAAATTACTCAAA -CTTTGAATAGCCTTTCCTCCTCAAATAGTCTTTATTTAAATTGGATTATGTTATTGGATTTTCTTACCTA -CAAAAATGATTTCTTGATGTGATACTTCAACCGTGCCATCTTTTTGCTCCTGAAACACGGGTTTTTCAAT -ACGTTTTACCGGCATATACCCTTGCATTTTCATTCGTGACAAACAATCTGCAATTGTTTCGTTCTCATTT -ACTTTGAATTTCATGTTCTACTACACTTTCCAGTTCTTCTGGTTCATAGTCTTTAAGCTTTCTACGACGA -ATGCCTTTAGTCCAGAATCCACCATGTATGTTTCGAGGTTCATACGCAATGATAAATGCTTTCGGATCTA -AATTTTTTATCGTATCCATCAATTTACGTTCATATTTTCTTGGTGTTAAAATTTGCATCACCATACGACT -ACCATCTCTACCAAATGCAGCATAGTGCGTAACGCCATATCCTAAATTTCGAAGTTCATTCGGTAAATCT -AACTCATATTCTGCTGAAGTTACATTTACAACTGTATAACCTAATGCCAGTTTTTCTTCTATTTTCATAC -CAACAATGATACCTATTGAAAAACCAAATGCGTAGGCAATAATATTTTGAATATGGTCTAAATTAGACAT -AACCAAACCTAAACCAACGATATAAACTAATACTTCTAAAAAACTAACTGATGCAGCAATATAACGATAA -CCTTTCAACGTTAAAATTGTTCGCATCGTTAAAAACGTTACATAACAAACGTTAATGATAAATATAGTTA -GTACCATTAACCATGGATTTTCTGTTACGAATGACATAAGGCGCCCCACTCTCTTTCAATTACACTTTAA -ATATCAAACTGCTTCAAACTAACCTTAATAAATGCATATTAATATAATATAGTACGAAAACTCTCATAAA -TAAATAGCGAATTTGTCATAAATAAAATTTATTCTCAAATGAACATACTTACTTTATTTCATACATTATC -AATTTATATACTGAAGTAGCCTAGTTGAATGTGGTTTAACGTTATTAATTCTAACTCATATTTAATTTAA -GGCACACGTTAGAAGAAAAAATTAAATTAGGATTTTGGCCACGTGTATCTTGTATATGCAAGTTCACGTT -TGTGTGCATTCCGTATATAATGATTTTCAATTACTTTTTGTTCTTCTGGCGTAACTGGCTTACCTTCTAA -ATAATTATCAATCGCCTCATAAGTTACACCTAATGCATCTTCATCTGGAAGCTGTGGTTTGTCATCTTCT -AAATCAGCAGTTGGTGTTTTTTCATACAATTGTTTTGGTGCACCAAGATAAGCTAATAACTGACGACCTT -GGCGCTTATTCAAACCGAATATAGGTGCAATATCTGCAGCACCATCACCATATTTCGTATAAAAACCAGT -TATATTTTCAGCTGAATGATCTGTTCCTACTACAATACCTTGTCGGTTTGAAGCAATTGAAAATTGTACT -TTCATACGTTCGCGAGCCTTTTCATTACCTTTTTGGAAGTCTGTTAGGACAATCCCAGCTTCTTTCAATG -ATTGCACACTTTGATCAACTGCAGGCTTAATATTGACTGTTACTATTTCATCTGGCTCAATGAATTGTAA -AGCTTGCTCAACTTCATCAGCATCTTTTTGAACTCCATAAGGTAATTTAACTGCAATAAACGTACAATCA -ATGCCTTCTTCACGTAATTCGTTAACAGACATTTGCACTAATTTTCCAACTAATGTAGAATCTTGTCCTC -CTGAAATACCTAACACTAAAGATTTTATAAATGAATGTGATTGGACATAACTTTTTATAAATTGTTTTAA -CTCAGCAATTTCTTCCGCACTGTCGATACGCTTTTTCACTTTCATTTCTTGTACAATAACGTCTTGTAAT -TTACTCATTATCTTCTTCCATCTCCTTAACATGTTCCGCCACTTCGAAAATACGTTTATGTTTATTATCC -CAACATGCTTTACTTAAATCGACTGGGTACTCTTGTGGATTTAAGAAACGCTTGTTTTCATCCCAAATGG -ATTGTAATCCTTGTGCTAAATAATCACGTGATTCATCTTCTGTTGGAATTTGATACACTAATTTACCATT -TTCATAAATATTATGATGCAAATCAATGGCTTCGAAAGATTTTATAAATTTCATTTTATAAGTATACACT -GGATGGAATAATTTTAAAGGTTGTTCATCGTATGGATTTTCATTTTCCAAAGTAATATAATCGCCTTCTG -CCTTACCTGTTTTCTTGTTTATAATGCGATATACATTTTTCTTACCTGGCGTAGTAACCTTTTCAGCGTT -ATTTGATAATTTAATACGATCACTATATGAACCATCTTCATTTTCAATAGCTACAAGTTTATATACTGCA -CCTAATGCTGGTTGATCGTATCCTGTAATCAGCTTTGTACCAACGCCCCAAGAATCTACTTTTGCACCTT -GTGCTTTCAAACTCGTAATCGTTTCTTCATCCAAATCATTAGACGCGATAATTTTAGTTTCAGTAAATCC -TGCTTCATCAAGCATACGTCTGGCCTCTTTAGATAAATAAGCGATATCTCCAGAATCCAATCGAATACCT -ACAAAGTTAATTTTGTCACCTAATTCTTTTGCAACTTTTATTGCATTTGGCACGCCAGATTTTAAAGTAT -GGAATGTATCTACTAGGAACACACAATTTTTATGTCTTTCAGCATATTTTTTGAAGGCAACATATTCATC -TCCATAAGTTTGGACAAATGCGTGTGCATGTGTACCAGACACAGGTATACCAAATAATTTACCCGCCCTA -ACATTACTTGTAGAATCAAAGCCCCCGATGTAAGCAGCTCTAGCGCCCCACAATGCTGCATCAATTTCTT -GCGCACGACGTGTACCAAACTCCATTAATTTATCATTTGATGCAATTTGACGAATTCTACTAGCCTTTGT -TGTAATTAGTGTATGGAAATTTACAATGTTTAATAAAATTGTTTCTATTAATTGCGCTTGAATCAATGGT -GCTTCTACGCGTAACAATGGTTCGTTACCAAAGCATAATTCGCCTTCTTGCATCGAACGGATGCTGCCAG -TGAATTTTAAATCTTTTAAATATGATAAGAAATCATCCTTGTAGCCAATAGACTTTAAATATTCCAAATC -AGATTTTGAAAATCCAAAATGTTCTATAAAATCAATGACGCGTTTTAAACCATTAAAAACAGCATAGCCA -CTATTAAATGGCATTTTTCTAAAATATAAATCAAATACAGCCATTTTTTCATGAATATTATCATTCCAAT -AACTTTCAGCCATATTTATTTGATATAAGTCATTATGTAACATTAAACTGTCGTCTTCTAATTGGTACAC -TCGTATCTCTCCAATCGACCTAAATATTTTCTTACATTTTATCATAATTCATTTTTTTATATACATAAGA -GCCCCTTAATTTCCATACTTTTAATTAAAATCAACCAACAATTTAATGACATATACATAATTTTTAAGAG -TATTTTAATAATGTAGACTATAATATAAAGCGAGGTGTTGTTAATGTTATTTAAAGAGGCTCAAGCTTTC -ATAGAAAACATGTATAAAGAGTGTCATTATGAAACGCAAATTATCAATAAACGTTTACATGACATTGAAC -TAGAAATAAAAGAAACTGGGACATATACACATACAGAAGAAGAACTTATTTATGGTGCTAAAATGGCTTG -GCGTAATTCAAATCGTTGCATTGGTCGTTTATTTTGGGATTCGTTAAATGTCATTGATGCAAGAGATGTT -ACTGACGAAGCATCGTTCTTATCATCAATTAATTATCATATTGCACAGGCTACTAATGAAGGTAAATTAA -AGCCGTATATTACTATATATGCTCCAAAGGATGGACCTAAAATTTTCAACAATCAATTAATTCGCTATGC -TGGCTATGACAATTGTGGTGATCCTGCTGAAAAAGAAGTTACACGCTTAGCAAATCACTTAGGTTGGAAA -GGAAAAGGTACTAATTTTGACGTGTTACCACTGATTTACCAATTACCTAATGAGTCAGTTAAATATTACG -AATATCCTACGTCATTAATTAAAGAAGTACCTATTGAACATGATCATTATCCAAAATTAAGAAAATTGAA -CTTAAAATGGTATGCAGTCCCTATCATTTCCAATATGGACTTAAAAATCGGTGGCATTGTGTATCCAACT -GCCCCCTTTAACGGTTGGTATATGGTAACTGAAATTGGCGTACGTAACTTTATTGATGATTACCGTTACA -ATTTACTAGAAAAAGTTGCAGATGCGTTTGAATTTGATACACTTAAAAATAATTCATTTAATAAAGATCG -AGCACTTGTTGAATTGAACTATGCTGTGTATCATTCCTTTAAAAAAGAAGGCGTATCAATTGTCGATCAT -TTGACCGCTGCAAAGCAATTCGAACTATTCGAACGTAATGAAGCACAACAAGGTCGTCAAGTTACCGGAA -AATGGTCTTGGCTAGCACCGCCATTATCTCCAACATTGACGTCAAATTATCATCACGGATATGACAATAC -AGTAAAAGATCCAAACTTTTTCTATAAAAAGAAAAAATCAAATGCTAACCAGTGCCCTTTCCATCATTAA -GTTAGTAGAGGTATAGCATATGCAATTATATTATTTAGGCCCTAAAGGTACATTTTCATATTTGGCTTGT -CGTCAGTATTTTTCTGAAAATGAAGCAACTTTTCAACCAAAGTCAAATTTATTTGAAGTCATCAAGTCAG -TTGCAGATGATGACACATCGATTGGTGTTGTCCCTATTGAAAATTCTATAGAAGGAACAATCAACATTGT -GGCAGATGCACTTGCACAGCAAGATGTCTTTGCACACGGTGAAATACGTTTAGATATTAACTTTGCATTA -TATGGTAATGGTTCGAACACCATTTCTGATATTAAAAAAGTGTATTCTATTGCACCAGCAATCAGTCAAA -CAACAAATTACATACATCAACATCAATTTGACTATGATTATGTCGACAGTACAATTCAAAGTTTGACTAA -AATTGAAAATGGCGTTGCAGCAATTGCACCTTTAGGTAGTGGTGAAGCTTATGGTTTTACACCTATTGAT -ACACATATTGAAGACTATCCACATAACGTGACACGTTTTTTAGTTATAAAAAATCAGCAGCAATTTGATC -AAAATGCGACATCATTGATGTTTTTAATTACACCAATGCATGATAAACCTGGGTTGTTAGCAAGTGTGCT -TAATACATTTGCTTTGTTTAATATTAATTTATCCTGGATTGAGTCTCGTCCTTTAAAAACACAATTAGGT -ATGTATCGATTTTTCGTTCAGGCTGATTCTGCAATTACAACCGATATAAAGAAAGTCATTGCTATTTTAG -AAACCTTAGATTTCAAAGTAGAAATGATTGGTGCTTTTAATTAAACTTTATTTTCTAGGTTCTACAATTT -AAATAAAATAAAGAGTCAACCAAGGATTAAAATAGGAATCCATCCTTGGTTGACTTTCTTTTGTTTGTAT -TGTTTTTACACGATGCTACGGTATACGTTTCGTTACCACTCGTTCAAGCAATTGCTAATGTAACATTTTA -TTTTTCGTTCTAATCTGCAATTACTATTTCAATGGCAGTGGTTGATTTATATCAATACCTAAAACTATAG -GCATTATATAATACACGACTAAAATAATAATTATTGCACTGATTAAGTTTACCCAGAATCCTACTGATGC -CATTTGTTTGATAGATATTTTACCTGAACCAAAGATAATTGCATTTGGTGGTGTCCCTACTGGTAACATG -TATGCACAGTTAGCCGCCATAGCTGCAGGTGCCATAAGTAGTAATGGATGCACTCCAACAGCAACAGATA -ACGTTGCTAAAATCGGTAAAATCATCGTTGCAGTTGCGGTATTAGATGTCACTTCAGTTAAAAATAGGAC -AAAGATAGTTATGACGATTACAATAAGAATCGGGCTGACACCATTTAATGATTTCAACTGTTCGCCTAAC -CATTTTGCTAAACCACTTTCAGAAATACCTTTCGCTAATGCTAAACCGCCACCAAATAAAATTAATACAC -CCCAAGGGAGCTCTTTTGCAACTTCCCAGTCAATGATACGGCGATGTTTTTCAGTATTTTTAGCTGGAAT -AATAAATAATAATATTGATATAAAAATAGCAATCGTACCATCTGCAACGGATGACGTAACTTCCCATTTT -TTCAGAAGAAACTCTCTTGTAATCCATAATAAGCTGGCAAGTACAAAGATAGTTTGTACTACCTTTTCTT -CATACTTCATTTTGCCAAGCTCGTCTAACTTTTGTTTAATTAACGTCTGACCACCAGGTAAATATTTCAA -ATCATGTCTAAACGCAACATATCTTAAATAGAGCCAAGTAATACCTAACAATACAATGACCGTTGGAATC -CCTACAATCATCCATTTAGCAAAACTAATTTCATGTCCAAAATGTTGCATGTATTGTCCTTTTAAAATAA -TTAGCGGCGGCGTTCCGATAAGTGTACCTAATCCGCCAATCGTACCTGCATAGCCAATTGCTAAAACTAG -AGATTTTTCAAACTTTTGAATACTTGTTTGATTCGTATTGGCTTCTTGTAAATCATGTGCTTCCTTAATA -ATTGCTAAACCAATCGGAATCATGATCATTACAGCTGCAGTGTTCGATACAAACATAGATAAGAATCCTG -TTGCCACCATGAATCCAAGTAATATTTTTGAAGTGCTTGCACCAATTAAATTAATAATTGTCAACGCTAC -TCTCGTATGTAAATTCCATCTTTCCATTGCAATTGCCAAAATAAATCCACCTAAAAACAAAAAGATAATA -TCATTGCCATATTCGGATGATACTTGTTCTGGTGTAAGTATGTGACCTAATGGTAATAACACAATTGGTA -ATAAGCTCGTTGCTGCAATAGGAATTGCTTCAGTAATCCACCAAGTCGCAATCCATAAAGTAATCGCTAA -GACATAGACGCCTTTCCAAGGTAAGTCTTGTGGATGAAAGAACAATAATGTTAATAGGAAAAGTAATGGA -CCTAATATTAGTCCAATAAGTTGTCCCGTACTAAACGGTTTCTTTTTCTTTGATTTTGAAAAGAATGTTA -AATACCTTTTCGATATCATTGATTGATGTTGATTGAAATAAGCCATAAATTTCCCCCTCATGATGATTAT -GACAAGCTACTTCAACTCACTATATTAGAGTATAGAAAGTTGTCTATCTTGTATTATCATTACCGTCAAA -ATACCCCTTTTATCAGATAATTGGGTTTATTATAGCATATTTATACCGTTTTATGAATGCGCTTTCAAAA -ATTATCCAGTAATCTTAATCCTAATGTCATGCGAAACTTTTTACTTTTTTATTTCATCTACATTGATTGT -AGTAACTTGAATACCCGCTTCAACAGGACTTAAAAACACTGTATCAATATCTTCCAAATGAATTGATTGA -GTCGAATTATTGAATGTATTCCCAACGATTAATACATCTTTATGTTTAACATTATTATAATTACGTACAT -GTATCGCATCTTTAGACATTGACCCTTTAAATTCATTTCCAATTATATTCATATTTATTCCTGCTTGGGA -ACCTAAGTCTTTTCCTGTCATCACATCTGCAGCATTTTTACCATCTCTAACTCCTAAATATCTAATACCA -CCCTCACAGTTAATAAACTTATTATTAATAATGAAAGCATCTTTATACTTCAAGGGAGTTAATGCATAAC -CTTGTATATCTTCAAATATATTATTTCTAATATTAATATTCTCATAGTAACGATTATGTCTACTTGCATG -TGAGCCAATAGCACGATTCCAACTTCCCATTTCGGGCAATTCTGAAGGTCCAAAATAACAATCTTCGATA -ATGACATTTTTCGTTATCGTACCATCTGTCGTTCCGAATTTTGGAAAAGCACCAGGTACTTGAATGTCTA -ATTGTATTGCTTCAGAATAAAAACGTTCGCCACTATAGTCTACGAATCCTTCAAATGAACAGTTTTTAAT -ATAGAGTCCATTAATCCCACAAGCATCAATTGCATGACCACTCACTACATTCTTAATGGTTACACCTATT -AATTGAATATCTTCAGCATGTCCAATGCACATAGCTGTATTATTATAAGGATACGATACGCCATTCATAT -CAAACTTGCCGCCTTTAATATGAATATGACTGTGTCCATTATAACCACGATAAAAACCAAAGCGATGACC -ATTTTTTAATAACGGACCAGAATGACATCGACGTAAAATAGTTTCATTATCCAACAAAAGTGTTGTATTG -CCATATATCGTTAATGGTTTGCAAATATCATACGTCCCTTTCGGTATATAAACTGTCGTTGGTTTACATC -TTCCATGATTTAACGCACGTTGTATTGCTCGAGTATCTTTAGTTTTGTTTATGCCTGTTAACCCATAATC -TTTCATATTGATATACATAAATCGTCATCCTTTGTCTATTTTCTAATTACTTCATATATTAACCAATTAT -TCAAATTATAATCGTGTTAGGTTGATTTAGCAGATAGTCATAAATCTCGTGATGCCATCTATTAGCATTT -TTATATTGAAAACATCAACACTTGATATTAGTTCTAAGTTTGTCACATTTAGTATTCTATTACAGCTATT -TTAAAGCTATCGTAAAAACATCTTATAATATTTGTTGATTGCGTGATTTGCTCTTCCAAAAAAGTTGATT -AATCTATATACTTAATCTATATTTATATATTAACCATTAGGGTTAAAAAATACTCTAGCATTTATGAATA -GATGGGAGTTTATTTTATTATTATATAGGAGAGATGTTGAATGACACATCGCGCACTATTAGTTGTTGAC -TATTCATATGACTTTATCGCAGACGACGGCTTACTAACATGCGGTAAACCTGGACAAAATATTGAAGATT -TTATTGTTTCTCGTATCAATGACTTTAATTATTATCAAGACCATATATTCTTTTTAATGGATTTACATTA -TTTACATGACATTCATCATCCTGAAAGTAAATTATTCCCACCACACAATATCGTAGATACAAGTGGTAGA -GAATTATACGGTAAAGTAGGTAAATTATACGAAACAATTAAAGCGCAACCTAATGTACATTTCATTGATA -AAACGCGCTATGATTCGTTCTTTGGTACCCCGCTTGATAGTTTATTGAGAGAAAGAAGTATTAATCAAGT -CGAAATCGTTGGTGTATGTACCGACATTTGCGTGTTACATACAGCAATTTCTGCATACAACTTAGGCTAT -AAAATTTCAGTACCTGCTGAGGGAGTGGCTTCATTTAATCAAAAAGGGCATGAATGGGCACTTGCACATT -TCAAAAACTCATTAGGTGCAGAGGTAGAACAACACGTTTAAATCGTGCTAAAATAATTATAAAGAATACA -ATATACAAGGGAGATATTTGACAATGGCTAAAACATATATTTTCGGACATAAGAATCCAGACACTGATGC -AATTTCATCTGCGATTATTATGGCAGAATTTGAACAACTTAGAGGTAATTCAGGAGCCAAAGCATACCGT -TTAGGTGATGTGAGTGCAGAAACTCAATTCGCGTTAGATACATTTAATGTACCTGCTCCGGAATTATTAA -CGGATGATTTAGATGGCCAAGATGTTATCTTAGTTGATCATAACGAATTCCAACAAAGTTCAGATACGAT -TGCCTCTGCTACAATTAAGCATGTAATTGATCATCACAGAATTGCAAATTTCGAAACTGCTGGTCCTTTA -TGTTATCGTGCTGAACCAGTTGGTTGTACAGCTACAATTTTATACAAAATGTTTAGAGAACGTGGCTTTG -AAATTAAACCTGAAATTGCTGGTTTAATGTTATCAGCAATTATTTCAGATAGCTTACTTTTCAAATCACC -AACATGTACACAACAAGATGTTAAAGCAGCTGAAGAATTAAAAGATATTGCTAAAGTTGATATTCAAAAG -TACGGCTTAGATATGTTAAAAGCAGGTGCTTCAACAACTGATAAATCAGTTGAATTCTTATTAAACATGG -ATGCTAAATCATTTACTATGGGTGACTATGTGACTCGTATTGCACAAGTTAATGCTGTTGACCTTGACGA -AGTGTTAAATCGTAAAGAAGATTTAGAAAAAGAAATGTTAGCTGTAAGTGCACAAGAAAAATATGACTTA -TTTGTACTTGTTGTTACTGACATCATTAATAGTGATTCTAAAATTTTAGTTGTAGGTGCTGAAAAAGATA -AAGTTGGCGAAGCATTCAATGTTCAATTAGAAGATGACATGGCCTTCTTATCTGGTGTTGTTTCTCGAAA -AAAACAAATCGTACCTCAAATCACTGAAGCATTAACAAAATAATACTATATTACTGTCTAATTATAGACA -TGTTGTATTTAACTAACAGTTCATTAAAGTAGAATTTATTTCACTTTCAATGAACTGTTTTTTTTTACGT -TTGACTAATTTACAACCTTTTCAATAGCAGTTTTCATTCCTTTAGCTATCCTAATCCACAGATTAGTGAT -TTCTATACAATTCCCCTTTTGCCTTTACATTTTCTTGAAATATTTGCGATGTTGAGTATAAATTTTTGTT -TTCTTCCTACCTTTTTCGTTATGATTAAAGTTATAAATATTATTATGTACACGATTCATCGCTCTATTTT -CAACTTTCAACATATATAATTCGAAAGACCATTTAAAATTAACGGCCACAACATTCAAATCAATTAATCA -CTTTTTCCAAAATAATCATATAAGGAGGTTCTTTTCATTATGAATATCATTGAGCAAAAATTTTATGACA -GTAAAGCTTTTTTCAATACACAACAAACTAAAGATATTAGTTTTAGAAAAGAGCAATTAAAGAAGTTAAG -CAAAGCTATTAAATCATACGAGAGCGATATTTTAGAAGCACTATATACAGATTTAGGAAAAAATAAAGTC -GAAGCTTACGCTACTGAAATTGGCATAACTTTGAAAAGTATCAAAAATGCCCGTAAGGAACTTAAAAACT -GGACTAAAACCAAAAATGTAGACACACCTTTATATTTATTTCCAACAAAAAGCTATATCAAAAAAGAACC -TTATGGAACAGTTTTGATCATTGCACCATTTAACTATCCTTTTCAACTAGTGTTCGAACCTTTAATCGGT -GCTATTGCAGCAGGTAATACAGCAATTATTAAACCATCTGAGTTGACACCAAATGTTGCACGAGTGATTA -AACGATTAATCAATGAAACATTTGATGCAAATTACATTGAAGTTATTGAAGGAGGAATTGAAGAAACGCA -AACGTTAATTCACTTACCTTTTGACTATGTCTTCTTTACAGGAAGTGAAAATGTAGGCAAAATCGTTTAT -CAAGCTGCCAGCGAAAATTTAGTTCCTGTGACATTAGAAATGGGCGGTAAATCTCCAGTCATCGTTGATG -AAACAGCGAATATTAAAGTTGCCAGTGAGCGCATTTGTTTTGGGAAATTCACCAATGCCGGCCAAACATG -TGTTGCACCAGATTACATTTTAGTACACGAATCTGTAAAAGATGATTTAATCACAGCCCTATCAAAAACG -TTGCGTGAATTTTATGGTCAAAATATACAACAAAGTCCAGATTATGGCCGCATTGTAAACCTTAAACATT -ATCATCGTCTGACGTCATTACTTAACAGTGCACAAATGAATATTGTATTTGGTGGTCATAGTGATGAGGA -TGAACGTTATATAGAACCAACATTGTTAGATCACGTTACAAATGATTCAGCAATTATGCAAGAAGAAATT -TTTGGTCCTATCTTACCGATTTTAACGTATCAGTCATTGGATGAAGCAATAGCCTTTATTCACCAAAGAC -CAAAACCTTTGAGTTTATATTTATTTAGCGAAGATGAAAATGCTACGCAGCGTGTAATAAACGAGTTATC -ATTTGGCGGCGGCGCTATTAATGATACATTGATGCACCTAGCGAATCCTAAATTACCATTTGGTGGTGTT -GGCGCCTCAGGTATGGGACGCTATCATGGTAAATATTCATTTGACACTTTTACACATGAAAAAAGCTACA -TTTTCAAATCTACACGATTAGAATCAGGTGTCCATTTACCACCATATAAAGGTAAATTTAAATACATCAA -AGCTTTCTTTAAAAATTAATTTTTGAGACAAAAATAAACCATGCTTCCATAATTTGATGTTCTTGAAAAC -AATAAATTTCAAGGTATACACAAATTTTTTGGAAACATGGTTTTCTTTTTATCATGATTAATTAAAGATT -AAAATATGACACATACACCTTCAGATGCTACACGAGTGTTATCACATAGCGTAATTTTACCTGTTTCTTT -ATTTCTTTCGAAAACAGTTACAACTGAATCTCCTTGCTCATGAGCACAAACTAAAAGGTCATCTGATGAG -GCAATATTAAAATCTCTTGGGAATTGACCACCACTTTCAGTAATTGTTACTAGTTCTAAGTGTTGACCAT -TATCAAGAACTTTAAAAATTGCAATGCTATCATGCCCTCTATTAGATACATATAAGAATTGTTGATCATG -AGACAAACGCACTGCTGCAAGTTTAGTATCTCCATCAAAGTTTTCAGGAATTGTTAAATGACGCTCGAGC -TCTTCAAATTTACCGTCATTATATTCTGCAACACTCACAGTATTGGATAATTCGTGTACGACATAAGCAA -ATTTTCCATTATCATGAAATTCAATATGTCTTGTCCCATCACTATCTTTAAATAAAGATTCTTTATAAAA -TTCAAACCCGTTGTCATCAAATTTATAAGTAACGATACGATCAGCACCTAAATCTGTTACTGCAACGTAC -TTACCATCTGGAGTTTGATTAATATAATGTGCGTGTGGATGATCTTGTCTTTCATGTGTACCTGTTGGAA -AATCATGCGCAAGTTCTTGAATTAGACGTATTATTTCACCTGTGTGCGTGTTTAATTCATACATACGTAT -GATGCCAGCTCCATATACCGCTTCAAATAAATATCGTTTATCTTCTGAAATCGATACATAACAACCTGTA -CCAGCTTTTGAAGACAAACATTTATTTAATAAATGCAATTCACCATTGTCATCAATTTTCAAACTCGCAA -CACCGCATTGTTCTCCTTCTTTGTTGATTCCATATAAAACTTCGTTATTACGCACCAAATATGTAGACGC -TTCTAATTCAAATCCTGTTTCTAATAAATCAATACGTGACTGATTTTCGTTTAATTCAAAACGATAAATC -CCTTTACCATTCTTTTTAGTGTAAGAACCAATATATCCATTTGTCATTACTTTTACCCCTCCATGTTAGT -CTTATTTTCATTTTATTAAATTTTAGCTAGAATTAACAATCATTTATCATTTCCTTAAAGCTAAAACTGT -TTAACTACTTTAAAAGAACTATTTGCTGGTGATGTGTCATTATTCGATTTTAATTAATCCCTCTTTTTTA -CTTACCCGAGCATTAATTATTAACGCGTTTATGCTTCCACAAAATTTTTGTTGCAAAATAGAACACATGT -TCGTATAATGTAATTATCAGATTGGGGTGAATTAAGGATGACAAGTTATGAAGAAGAAACTGATTATCGT -AACGTTCCAAGAGAATTACTAGATAACAATATACCTATGGGAAGAGGCATGATTAAATGGGCTCCTTTTG -CAACATTACCCGAACAATTCGAAACGATTCAACAATACATTATCGACCAAAACAAAATTACACGTCCTGT -ATTATCAGATGATCAATTGGCTGAGCTAAACATTCGGCTACACGAGGCGCTACAATATGCCCAACCTGTA -GAAGTTAAATTTTATAATAATGGCTTTGTAGATTCAGTACGCTTAACCATTTATCGTATTGATGCTATTA -ATTATGAAATTGATGGTTATGTTTACAATCAGCAACAACGTCAAAAAATTTCTATCTTTGATATCTTAGA -TATTGTCTTGTTACCTTAATGCTTTGAACATAATTAAAGGCAAGAACAATCAATATTGTCCTTGCCTAAA -TGTTATTAGTTATTTTTACTTTCGATATCAGAAATAATTTCTTTAGTTTTTCTTTCAATATCTTCAAAAT -CTTTTTTAAAGATATAAGCAAATGCTACTACACCAACACCAGCAACTAATGTTGTAATAGCAACTAAGCT -AAATACGAATTTAAACACACATTTAATAAAATTCCACATCTCAATTTCACCTCTGTTAAATTAAATACCT -ATCTACATTTCATTATACTATCATATATAGAATAATCATTAAATAAATACCCACTTTTACGAAATATATT -CATCAAATTATATAGCGAGCAAGCTAATGATTATTTTCAAAAATGCCGAGGAACCTCTGTTTCAACGTGA -CATGACCTTATATGCTAATGTTAACAATGACTATTATCGTGAATGCTAACTTAAGATTGTTATTTATGAT -AAGATGATTTTAAGTTTTTAACTTAATATCCCCACCATCTATAAAAATATGTTTTAACAGATTGATAAGT -CTTATACACCGAGAAATCACCTCAAACAATTTTATATTTCATTTAGTAAAATATAACTTTATTTAACATG -ACATTCAATATACATACGATTACTATTTATTTACAATATATTACAACTAAAAAGAAAGGGGCCGATGATA -TGCAACAAGTGACATCAGATATTATGACTTTTAGAGGTTCACATTTCGAGTTAGGTGTTAAAACTGGTAA -ATGGCTTCAACAAACACCTCTTCTAAAAAATAGAGAAAAAGAATGGAAAAAACGTGTCCCACGTTTCGAT -ATAGATGTAAATGAAACTTATCAAATATTCCAAACTTACGCACCTCAAATATGGGAAGAATTAATGGGAC -TACAAAGTATACTCAAAATGCCAACACGTCAAATTATTTTAAACTTTGGACATTATCGTTTTACCGATTT -AAAAGAAAGTGGTTGCACTGTCTTTCAAGGCAAAGACTTCATGGTTAGAAATTACGATTACCACCCTGCA -ACTTATGATGGACGCTACTTACTATATCAACCTACAGATAGCGGTTTAGCTCAAATTGGTCCTGTATCAA -GGGTAACTGGAAGAATGGATGGTATGAATGAGTCAGGATTAACTATGGGCTATAACTTTATGCACCGGAA -GAAACCAGCAAATGGTTTTGTATGTTATATGATTGGTCGTCTAATTCTTGAAAATTGCCGAAATGTAACA -GAAGCAATCCAATTATTGAAAGAAATACCACACAGAAGCTCATTTAGCTACATACTGATGGACAAATCAT -TGAACCATGCAATTGTTGAAGTGACGCCGAGATCAATAGATGTTCGTTATGATAATATATGTACAAATCA -TTTTGAAATATTAACACATGAAAATCGCAATTATACAAAAGAATCTAAAGAAAGACTAGCGCGTACCATT -TCACAAACTAATGATAATTTAGATATGACTACAGCATTTAAGTTATTCAACAATCCTCAGTATGAAATTT -ACAGTAAACTATTCAAAAGCTGGTCTGGCACCATCCATACATCAATGTATCACCCTGAAACATTAACTGC -ATATTTTACATTGGGAGAAAATGCGCCACCAGAAATAATAGATTTCAAATCATGGTTAGATGGTCAAGAC -CTTAATATCACTCACTTTACTGGCAATATAGATACCGACTTAACTTTTGCCAACAAATAAATAACACCGA -TATTAGAGAAATTATGCTTCCTAATATCGGTGCTTACATCCTTTATTTATTCAACTTTGATATTACCATC -AATCGTATAAAATTCTAAAACACTATCGCTTTTCCCAACTTTACCATTAATAAACGTTTTATTTTTAACT -ACGCTATCACCCGTTCCCGGATTTAGCTTCAGTATAGTATCTTCAGGTTTACTATCATACTTAAAACGAA -TATCTCCTTGTTTAGTAGAAGCTTTTGCATCTACTTTTGATGGCATGTTTTTAAATTCAATGTCACCATG -ATCGTTTAAAAATATGGATTGTTTAATTTGACTCTTGTCGATTTGTAGCATACCAATAACAACTTTAATA -TTACTATTTTTAATGTTACTTTTACTAATATAAGTAGGACTATTATTTGTCTTTGAATCTAGTGCGTCAA -GATTTGAGTTTTTAATAACTACTTCACCGTTAATGCTTTGAATACTTGTGTTCTCTAAATCAACATCACT -GATTCTAACACTTCCTGCTCCAGACGATATATTTAAACGTTTAATCATTTTATCAGGCATTTCAATCGTT -AACGTTTTCTTATTCTCATGAAAAGGATTCATATCAATTGCATATCCTCTTGTCTTAGACCTTTTATCAC -TAATCTTCAACGTCTTATCTACTATATTAATTAATATATCATTGTCACCATCATATTTAACTCTAAATTG -ATTCCCCCGCTTTATACGAAGTTCTGTACTATCCAAATTTATAGATACATTGTCAAAAGCATCGTCTTTG -AATGTTTTATCATATTGTTTAGTACCATATTTGTTTTTATCATAGCTGAACCAAATAATGGTTGCTGCTG -TAAAAAAGACAACAAACACTAAAAGCCCAATAAAAAAGAATTTCTTCATTTTCTAACGCTTCCTTTGACA -GTTTTAATATACCAAAGTAAATATTTTAAGATTAAACGATAAATGTATTCTAAAATCTTAAATATGACAA -TGATAAATACTAATCCTAATCCTGAATATGATATGGCAAAAAATACATTACTAATTGAGTCTACAATTCC -TCTGGATATTGCTGATGCTAATAAAATAATTGGACAAAACAGCAGCAAAAGTGATATTAAAAATAATGCT -AATACAAATAATCCAACTATAGATACTGGTATAAGGATGACAAAAATAGATAGAATGCCTAAACTTAATG -AAGCAGCAACAGCTCTTGAAATATTTTCAAAAGTTGGTTTAGATTCAGCATAATCAATAACACTTCTAGC -TTTTGTTTCAGCTGCAACATCTTGTGGGTCTTTTAACTTCTTTAAAATTTCCTCTTCATCAACGCCATTA -AGTTCTTGCTCATAAAAATAACGTTCATATTCATACATTTTTTGATCTCTTAAATGCCTAGGTAGCGCAT -CAAGTGCTGTTTCTAATTCATTTAAATAAGTAATCTTGTTCATATAGGTCACTCATCCCAATAAAATTAT -TCATTCGTTTTTTATAACTTTAAGACCTAAAGCTATTTACTAAAAAATTCAATACGTTTAATTTCTAAAT -CTTGATAAAGTAAGTTTAATTTTAAATGGTTATCTCTATCAATATACTTTACCGATGAGAAATCATTGCC -AACTTTTGTTCTTTTATATCCGAATCCAAGATTTTCAATCGCGTTATTTATCGGCGAACCAATTCCTCCA -TCAAAATTAGTATGTATCTTTTCATCTCTTACTAATATTATCCCCTTAACGATGTTATCCTTTTCTCTCA -CTTTAACGGTAAGGTCAGGGTGAGCTTTACTGTTATAAAATTTAAAACGATCAAACTTAATTTTTTTATT -TACTTCATAGCCTTTTTTATCAAACTTCTCATTTAATTTAATATCGTTTATTTCAAGATTAGACAAATCC -ACAGTTTTCGTATGACGATATTGATATAAACCAATTAATACACCAAAAGAACAGATTAAAAATAATATAA -ACACAACCCAGCGATTTTGAATACGCACTGATGTCACCCTTTCTTTGTACTTATTTAAATATAGCATAAG -GTGCTTCCCGTTTCATCCTTAACAAAAATTAACAAAGAATTTGCAATTAATTTATTTCATTACCTTTTAT -TACTATAAATTGGTATAATGTTGTAAATGCTAAAGGAGGTTTTTACAATGACAAATTTAGAAACTTATTT -CAAAAATAGCCAACCCTTAAATGAATACATTGATGGAATGAAGACAAATCAAGATACCGTTCTCAGTATC -TATCAATCATTTGAGTTACCAGAAGATGATTCACGCATCAAAAAAATAAAAGAGATGAATTATTCTAAAG -TATTAGTAATTACTGAAGACTGGTGTGGAGATGCAATGATGAATCTCCCAATTCTAAAACACATCAGTGA -AGCATTAAATTTAGAAGTGCGCGTGTTCCATAGAGATGATGATACAAAACTGATCGATCAATATTTAACA -AATGGTAAATCACGTGCAATTCCTATCTTCGTATTCTTGAATGATCAATTCGAACAAGAAACAGTTTGGG -GACCAAGAGCAAATGAAGTCCAAAAATTTGTAACTGATGTTCGTGCCGATAAATTACCGAGCAAAGATCA -TCCAGACTATGCAGATTTAGAAAAAGAAACACACTTAGTTATATCAAATCGCTATAAAACTGACGCTTCA -TTTTGGAAAGCAGTTTATAATTCCATCCTAAACAAATTAGAAAATAAATAAATTTACAATAAGACAAACT -TTGAGGTTGGGAAAATTTAAAATTCCCAACCTCAAAATTTTTTATTAAATGTCTTTTTTAGCGACATATA -AGATATTCAAAATGAAGAATATCACTATAGAACCTAATGAAATTACCCATTGCCAATTGCTAAAATCAAA -GTTAGAGCTAATCATTTTATCAGTTAAGTAAGCAAAAGGGATATAATCAAAAGCATCTAAAACTTTATCA -CCATATCTTGGAATAAATGTAATGAATGGTTTAATAAACGGTACAATAAGTACTAAAAATACACCTAATG -AAAATATCATTGCTGTTTTTTGTGATGCAAGTGTGATTAAGAATAAAAACAAGCCAAAGAATAGTAAAAA -GATTAGGAAGAACCATAAATTATCTACATATTTAGAAAACGCCAAATTTTTCCCATTACTAGATGCCTGC -ACAACAATCAAAATCACATAATGAATTAATGCAAATAATATTGAAATTAAAATAATTGAAATTGTTTTCG -AAATAATGTATCCAACACGTGTTTTAACTTTACTCATATATAGTTGGATTGTACCTTGTGAAAAATCACG -CGTAATTGTCTTAACAACAAACATTAATCCAATTATTAACAATAACCATTTTGCTGCAGCAAATACAGAT -CCATAGACAATAATATGTTTCGGGTTATCCATCGAATTTGCCATAAGTATACTTTGCGTTGCAATCAAAC -TAGATACGACTAGTATCGCTAAATATGTTAAAGGACTTTTAAATATACTATAAAAATCATACTTAACTAA -ATTTAAAATTCTCATTATTTATCACCTCTTTGATTTATATTGAAGTACGTATCACGCAATGAACTTTTAC -GTGTTTCAATATATTTCGGATAAATATCTAATTCAGATAATGCTTTTAGTATAACTTGATAATTTTTTTG -TGCATTGATCATTAAATGTCCATCTGCTTTGTCGACATTTTGTAATTGGAAATGCTCTGCAAGATATTTT -TCAGTTCTATCAAAGTCTTTATGATCAACAGTAACTATCGTTGTGTCAGATGCAACACCTTCCTCCATGT -TTACATCTTGAACAAAATGTCCGTCTCTCAAAAATACAGCTCTATCACAAATTAATTCAATATCTTCTAA -CTTATGACTTGATATTAGAATTCTCATATCAAGTTCATTTACTAGAGACTTAATTGTAGTCAGCACATCA -ATTGAGCCATCTGGATCCATACCATTTGTAGGCTCATCCAAGATTAAAAATTTAGGTTTATTCATTAAAG -ATACTGCAATTGCTAACTTTTGCTTCATCCCCATTGAATATTTCTTAACTTTCTTTTTAATATAAGGTCT -CATACCAAATGCATCTATAATTTTGTCTGTGTATGCTTTATCAAAACCCTTACCTAATACTTGTGCAAAT -AATTTCAAGTTATACAATCCTGATTTATTATCATATAATTTAGGATGCTCAATTAAAAAACCGATATTAT -CTGCATTATCAATATCTACTTTTCCATCAAATTTAATAATATTACCATTCATTACTTTCATAACGGTTGT -TTTACCAACACCGTTTTTCCCTATTAATCCAACAATTCTACTATCGCCAAAGTCAAAATCAATATCATTT -AAAACGACATTTGAGCCGTATTTTTTTGTAATATGTTCTAATTTCATCGACTGCCTCCTTTAAATTTTCT -AGTATTTATTTTATTAAGCTGTTTAAAATAATTAACAATAAGTATAACAATGCTTATAATTAGAAAACCA -ATATTTAAAATATATGAATATAGATCTGGGAATGATGATTGACTTAGAACAAAATAATTCACCAACACTA -TTGCAATTGAAAATAAAAATGGAACTAAAATGATAATAGTAAACACGTATATACCATAGGGCACTTTGAC -TCTGCGCAATTCTGTAAATTGACTAAATGCAATTGGTATAGACAAGAAGTTAGATATGACAAATGCATAT -GCAGTTGAAAAATAAATTGAATTTGGTTCAATCACATCTGCTTCATAAGCATATAAACTAATAACAAGCG -TTCCAACTAATGTTAAAACAATGCATGTAATATAGTTCGCATTAAGCAATTGTTTTTTTGACACAGGTAA -ACTCATATAAAAATAATATGAATCATTACCACCTAATCTACGATTGAGTCTAAATAAGTGACCAGCATCT -AAAATCCAAATAATCAATATTGTTGGACTTATAAAAGATTGCAATAGGTAAAAGAACTTTGTTGAGTCAA -GCATTATATAAAAAGGATATAAGGTTAATAATAGAACATAGATGATAAGTGTATATCGTCGTAATTTAAA -ATTCCTAATTAACAATGCCTTCATTTAAAAACCTTCTTCCATCAATTTGATGTTTTCATGATATTTAGGT -TTTCTCTTTTCAAGATAAACCATTAAGTTTTCAATAGAAGGTGTAGTGATATTCACTTTATGACCTAAAA -TTTCTTTAAATACTTGCGCATGTTCTGTTAATCCTATAAATCCTGTACGCTTATGTTCTTCAAAAATAAG -TAGAGATGCTAATTCATCATCAAGGTCCTCAATTGCACCACTCACAACTTGATATCTTTGTAACAGTTGT -TCTTTTGAACCATTTAAGATAACTTCACCGTCACTTAAGTGAATGATATAATCAGCTATTTTTTCTAAAT -CTGAGATAATGTGTGTCGACATGAATATTGTTTTATTTTCATCAATTAATTCTTGCTGAATTATCTCCAA -TAGTTCATTTCTAGCTAAGGGATCAAGACCTGAAGTAGGCTCATCAAAAATATACAATTCAGCATGATGT -GAAAATGCAACTGCTAATGATAATTTCATTTTCATGCCAGTCGAAAATGTTTTTATTGATTTATTGATTG -GTAAATCGAACTTTTCAAGATAAAATTCAAATACTTGATGGTCCCATTTACGATAAAAAGGGGCAATCAT -TTTTTCAAGTTGCTTCGTAGTCCATCTCTCATTAAAATAATTTTCAGCGTAAACAAACCCAATTCTATTC -TTTAACTCTATCGGATTGAGAGCCATATCCTCTTCTAATACTCTAATAACACCAGTTTGTGGTTGATACA -AATCCATAATTAACCTTATTATTGTGGTTTTACCAGCGCCATTTCTACCAATAAAACCAGTGACGAATCC -TTGAGGAACTTTGAAAGAGATATTCTTTAAATTAAACTGATCACTTGAATAATTAACATTACTTACTTCT -ATGGCATTCATGATGATTCCTCCTCATAAATGAACGTTAAAATATCTTGAAGTTCCTCAAGTGACATTTC -GATGGCTTGCGCTTCATTAACCAATTCTTTAACCAAATTTTCAATGGTAAAAAATTGTTTCTCTTTTAAA -ATAGAACTATCTTGCTCCTTAACAAAGGTCCCTTTTCCTCTAATTGTGGTAACAAACCCATCTTTCTCTA -AATCTTCATAAGCACGTTTGGTAGTAATTAAACTTACTTGAAGATCTTTGGCAAGTTCCCTCATTGATGG -CAAATGCTCTCCAGGAGCAACATGTCCCTTTAAAATATTTTGTTTTACTTGTTGCTTAATCTGTTCATAA -ATCGGAAAATCACTATTGTTTTTTAAAATTATTTTCATCAACGTCCCCCTATCACCTTCTGTATATATAC -AATATACACAATATACACAGTTTTGTAAATATGCATGTTTCATTATCAACCAGTCTTCAGAAATAACACT -GGGTATTGTATTACTAGCAGTTGAATAAAATGAAATGACTCTACCATTTAATCTTGCATTGTCTACTTCA -ATAAAAAAGACTGTCAAAACGAATATTCTTATACTTTGACGGTGATTGTCGCGTCATTAAGAACAGTCGT -TTAAAACAGTCAATTCTATTTGTTATTTTTACGTCGATCATTACTTCTACTTATAAAAGCACAAATCATA -AACATAATTGCTGCCAATAATAGTTTTATACCTTGGCTCTCATGGTTTGTTGCTTGTAAATAATAACCAA -CAATAAATAAAATAATTGCTAATGCTACAAATATTTTTGTTAGATGTTTCAATTTATTTCACCTCAACAT -CGACATTATAACAAATATAAAGATTTATCATAACTTAATATATTGTATAGTGTAATATAACCAATCTCTC -ATTGGCTTACATGACAACAAAACTATGCATTCAAAATGATTATTGATTGCGATATATTGTGTTCAATGAT -ATTATTTAAGTGTATCCACAGAATTATACTACACAACCCCAAGTCTGGTACCAGCAGACTTGGGGTTATT -TATGTGTGTAGGATCATTTTTTATTTTTCCATTTCAGTTCTAACCAAAGCCGAAAAATAATTAGTAAGCC -ACCTGTAATAAGTGTCATCATCCCTTCTTGCCACCACATCATTACACTACACCTCCGTTCGACTAAAGTA -TCATACTGAAGGATGACCTACACCTATTCTAACACAAAAACAGAACATGTGTTCGTATTTTGGTAGCGGA -TTTTACATATTATTCGTTAATTCACCAACAACACTTTATCTTTGGTATAATTGAAGATAATATATAGGCA -TACAATTTTTTTAAAGAGAGGTTAAGCAATTATGAATCCTTTAGCCCAAAGCTTAAATGAACAACTTCAA -CAGTCAAATGCAACTGCCTTTGCAATGTTATCTGACTTAGGTCAAAATATGTTTTATCCAAAGGGCATTT -TATCTCAATCTGCTGAAGCAAAGAGTACAACATATAATGCAACTATAGGTATGGCGACAAATAAAGACGG -AAAAATGTTTGCATCATCTTTAGATGCAATGTTTAATGATTTAACTCCAGATGAAATATTCCCTTATGCG -CCACCACAAGGCATCGAAGAATTACGTGATTTATGGCAACAAAAAATGTTGCGTGACAATCCAGAGCTAT -CAATCGACAACATGTCACGACCAATTGTTACGAATGCATTAACACATGGTTTATCTCTAGTTGGCGATTT -ATTTGTAAATCAAGATGACACTATCTTGTTACCAGAGCATAATTGGGGTAATTACAAACTTGTTTTCAAT -ACAAGAAATGGTGCAAACCTTCAAACATATCCTATCTTTGATAAAGACGGGCATTATACTACTGATTCAC -TAGTAGAAGCTTTACAATCATACAATAAAGATAAAGTCATTATGATTTTAAATTATCCTAATAATCCGAC -AGGTTACACACCTACGCATAAAGAAGTGACTACGATCGTCGAAGCAATTAAAGCATTAGCTAATAAAGGT -ACAAAAGTTATAGCTGTTGTGGATGATGCATACTATGGTTTATTCTATGAAGATGTGTATACTCAATCAT -TATTTACTGCATTAACTAATTTACATTCAAATGCAATATTACCTATTCGTTTAGATGGGGCAACAAAAGA -ATTTTTCGCATGGGGATTCCGTGTTGGATTTATGACATTTGGAACGTCTGATCAAACAACTAAAGAAGTT -TTAGAAGCCAAAGTAAAAGGTCTTATACGAAGCAACATTTCTAGTGGACCGCTTCCAACACAAAGCGCTG -TTAAGCATGTATTAAAAAATAATAAACAATTCGATAAAGAAATCGAACAAAATATTCAAACATTAAAAGA -ACGCTATGAAGTCACTAAGGAAGTTGTCTATGCTGATCAATATCATTCACATTGGCAAGCATATGACTTT -AACTCTGGATACTTTATGGCAATAAAAGTTCATGATGTTGACCCTGAAGCATTGCGCAAGCATTTAATTG -ACAAGTATTCTATTGGTGTCATTGCACTTAATGCTACAGATATTCGTATTGCGTTTAGTTGTGTAGAAAA -AGACGATATCCCACATGTATTTGATTCAATTGCTAAAGCAATTGATGACTTAAGATAATTAACTTCAACC -AATAATCCGATGTGTATGACTCGGATTATTGGTTTTTTATTTTTAAAATTATTCCTTCTTTCAAAGCATC -ATAAGATATATTTTATTCAGCAACTTATTAATCGCTATACCTAATTAGTTTTATACATCTCTCCTAACAA -AACTTGATACACCTTAGATAAATTTATCAAACGTGTGGCAAATCACTTCAAGTATCACATCTCTACAAAT -GTAAAGAGCTTGGGACATTAAGTTCTTAGGCAATGTAAAAAAGCTGATTTCTATTAATTATTTGATAGAA -ATCAGCTTTTTTTAAATGTATTTGATAATATACAGCTCGTCGAGCTACTATTTTCCTTATATTAAGTGCC -ATTAATACAAAACCTAGCTCTCGTTTAACTTTATTTATTCCTCGAACTGACATTCGAGTGAAACCCAAAA -TAGCCTTCATAAATCCAAAAACAGGCTCTACATCAATTTTTCTTTGACTATAGATTTTTTTCGTTTCTGG -TTCAGAAAGCTTTTGATTAATTTGGGCTTTAAAGTATTCCCAATTATAATTCTTCATGATTTTCTTATTG -GATTTCGAATTTGGCTTCATGCATTGTTGCCTCAAAGAACATGCTGAACAGTCATCGCATTCATATAGTT -TGAAGTCACGTTTAAAACCATATCTATCATTACGGTATGCATATCTTTTAAAACCTATTCTTTTGTTATT -AGGACATATAAATTCATCATTAAGTTCGTCATATTTCCAGTTTTGAGTGTTAAAAATGTCACTTTTAAAC -TTTCTCGTTTTATCTTTAATAAACATACCATACGTAATAAGTGGCGTTTTATTAAAATCATCTATAATAG -CCATATAGTTTTGCTCACTACCATAACCTGCATCAGCTACAATATACTCCGGTAAATAACCGAAGGTATT -TTGAATCATTGTTAAAAATGGAATTAAAGTTCTAGTATCTGTCGGGTTTTGAAATAGGTCATAGGATAAA -ACAAATTGAGAATTTGTCGCTATTTGTAAATTGTATCCTGGCTTAAGTTGGCCATTTTTCATATGGTCTT -CCTTCATTCTCATAAAAGTTGCATCATGATCAGTTTTAGAAAAGCTATTTCTATCTTTAAGAATCGATTT -TTGTTCTTCATATTTACTTTTTCTTTCGGAATAATCATCAAATTTCTTTTTGAACTTCTTAATCTCAGTT -CTTTTTTTACGGGTCTGTTTTCTAATTTGAGTACAATCTTCGTTCTGAATAGAATGATTTAAATCTTCGA -TTTCTTTATCTAAATGACTACCAATTAAATCTATTTCTTCTATTGTTAAATCGCTATCTCCATCTTCTTT -TATCTCTGGTATTATTTTTTCTTCAACTAAGTCACGATATAATGCTTTTGAATTTTCGTTCAATTTCGAT -TCGTGATTTTGAATACTTTTCTTCCACACAAATGTATACCTATTGGCATTAGCTTCTACTTTTGTACCAT -CAATAAAAATTGAATTATCATCAATAAGATTTTGCTTTAAACATTGACTATGAAACTGAATAAATAAAGA -TTCAATTAATGCATCAGTATTAGGATTTACTCTAAAACGATTAATAGTTTTATAAGAAGGTGTTTGATTT -TGAGCTAACCACATCAATCGAATACTGTCATGAAGTAATTTCTCTATTCTACGACCAGAAAATACAGATT -GAGTGTATGCATATAAGATAATTTTTAACATCATTTTTGGATGATAGGATGTTGCGCCACGATGATGTCT -GAATTCATCGAATTCGCTATCAGGTATCGTTTCAACAATTTCATTAACATATCGTGAAATATCATTTTGA -GGAATTCTAACAGAAGTTTCTATTGGTAGTGTAAGTTGGGTCATGTTATAATTTTTATACATAAGGCACC -TCGTTAATTTAGTTTAGTGGTATTTATTAAATTATACGAAAGTGTCTTATTTTTTTAAAGTATTTCAAAG -TAAAATTACATGTTAATACGTAGTATTAATGGCGAGACTCCTGAGGGAGCAGTGCCAGTCGAAGACCAAG -GCTGAGACGGCACCCTAGGAAAGCGAAGCCATTCAATACGAAGTATTGTATAAATAGAGAACAGCAGTAA -GATATTTTCTAATTGAAAATTATCTTACTGCTGTTTTTTTAGGGATTTATGTCCCAGACTCTTAATCTAA -AATTAAAGATTAAAATTTAATTTCAATGTCTACTTTTTTAATGTCAGTTGCTTTAAATACTTTTGAATCT -TGTTTCGCAGCTTTTAAGTCAACAAATTTTGATGATCCGTCTTTAAAATACACTTTATACACAGTGCGTT -CAGAAAGTCCAATATCATGTTTAGTAATACCTTGATCGCTTGCTAACGCTAGTCTAAGTTTAGCATTCAA -GTCGTTTGTTGTTATTTTATGTGGATGTAAAAACGCAAATTCATTTGAAACTACATTTGAAAATCCATTT -ATCGTTACTGGAAACTTCACTTTAGTCGCTATGTTAGACACTTTATTAAGCGCTTTATTAGATTTAGTGT -GTTGTTTTACATCAATATCTATCTTTTTAATATCTTTGACACTGAATAAGTTTCTTGTAAAGATATCTGA -TTTAAGGTCAACTACTTGTGTCTTTCCATTTTTAAAGTGTACAGTATACTTTGCTTGTTTCGCAAATTTC -AATTCAATATCATTGATACCTCTATCATGTTTTAAAACTGATTTAACTTTTTTATTTAAATCTTGATAAC -CAATTAATTGTTTATTCGAAAGTTTTAGTTTTGATGCAATAGGTGTTGATGTCCCATTTACTGCGATTGT -GTATGGTACATAGCTATCCGCTTTCGCTTTTGACCCTGTTTTAACATCGACATCTATCTTTTTAATATCT -TTGACAAAAAGCAAATTCAGTTGGCTAATTTTTGAGTTTAAATTAATCACTTTTTTTGTTCCATTTTTAA -AATGTACTGTATAAGTTGCTTTTTTAGCATATTTTAATTCACGTTCACCGATACCTCTATCATACTTCAA -TACTGATTTAACTTTTTTAGTGATATCACTGTAACTTACACGTGAGTCACCTTTAAATTTTAAATCAGAT -AAATTTGGTGTTGATGTCCCATTTACTGCAATTGTGTATGGTACATAACGCTCTGCATTCGCTTTTGATC -CAGTTTTAACTGTAACTTCAATTTTCTTAATATCTTTCGCATGAACTAAATTAGCTGTATAAATATTCGA -GTTTAAATGTATCACTCTTTTACCACCATTTTTAAAGTAAACAGTGTAATACGCTTTCTTTGCGTGTTTC -AAATCACGTTCACTAACGCCTCTGTCAGATTTCAATACTGATTTAACCTTTGCTGTTAAATTTTTGTAAT -TTGTCCAAGGTTTATTTGAAAATGCTAAATTAGATTGAATATTAGTTGTTGTACCATTTAAATTAATTGA -ATATGGCACTTGATTATTTGCTTTTGCTTCTTTATCTTTCGCTTGCTTTTTAGTTTCTACATTTATATTG -ATATTTTTAATATCGCCTGTATTGATTAAGTTCGCTGTATAAATGCCTGCTTTCAAATCGATAACTTTTT -TCGTGCCATTTTTAAAATTAACTGTAAATTTCGCTTGTTTTGAAAGTCTTAAATCTACATCAGTTATACC -TCTGTTTGATTTTAAAACTGATTTTACATTATTCTCTAAATCTTTATAACTAATTTGTTGATTCTTTTTA -AATGTTAAGTTTGATAAAATGTTTTGGCTTGTACCATTCACAGTGATTGTATACGGCACTTGAACATTTG -CTTTTGCCTCTTTATCTTTCACTTGCTTTTTAGTATCTACGTTAACACTAATTGCTTTAATGTCACTTGT -ATTAATTAAGTCAGCTGTGTGAATGCCTGCTTTCAAATCGACAACTCTTTTTGTGCCATTCTTAAAATGA -ACCGTGTATTTTGCTTGCTTAGAAAGTCTTAAATCGATATCACTAATACCTCTATTAAAGTACAAAACTG -ATTTAACTTTATTCTCTATATCTTTATAACTAATTTGTTGATTCTTATTAAATGTTAAGCTTGATAAAAT -GTTTTGGCTTGTACCATTCACAGTGATTGTATATGGAATCTGTATTTTAGAATATCCATGATGTAATGAA -CTTGATGATTTATCTATTTGCTTAGCTGCGGCAGATGCTTCGTTAGTATTAAAGTTTGCTCCTGTTGATG -CTAAAACACCTAATGCTAATGTTGTTGTAATCAATGACTTAAATTTCATAAATTATCTCTCCTTTTTTAT -GTAATTCGTGATTGCAACTTAATTATAGCCAGACTTTCTCTATTTTTTGAATTAACTGAATATTAATAAT -AAATTATCTTTAACAATAATTTTTTAACACTGTTAAAAGTTCTTTTAATTTTGATTAACTAATTAATTTA -CAATACCTAAAATGTTGTTTGATTTTGTTTATACCAAGCTTCAAACTTAAATGTCATTACAACCTTCATT -TCTTAAATCCGATTACATTTGTCAATTATATTTACAGCATCTTTATACTCAAAAAACATTTACTCAAAAA -TATAAATTCGATTTAATAATTAATTTAAATTTAGTTAATCAATTTTGCATCTATTTTGTTGTAAGCTATA -TAAAAGGAGTGATAATGATGGTGAAAAAAACAAAATCCAACACACTAAAAAAAGATGCAACACTTGCATT -AGCAAATTTATTATTAATTGGGGCACTGACAGACAATAGTGCCAAAGCCGAATCTAAGAAAGATGATACT -GATTTGAAGTTAGTTAGTCATAACGTTTATATGTTATCGACCGTTTTGTATCCAAACTGGAGACTTTTAA -CATAAAATTACTTATCATTCAAAAAGTAAAACAGCATAATATCAAGGTTTATAACTTTATCATTATCAAT -AATACCTCATATAAAATAAAATTTTAGGGACTTTTTAGGGACTTTAAATTTAAAATTACAAGTTTAATAG -AAACATCAAAATAATCACATGTTTGTGTGGAATGTACACCCCAAAAGCTAGACTGAAAAATCTATTTTTT -GAGGTGTATTTTTATAGGTAAATATAATAAATTAGAGTAGACAACTCAGAATTCCAATTTTATAATAATA -TTGCTTGACATATCAAACTAGATAGTACTATTTTGAATATATTATTATAATCAAAAATTCATTGTAAACT -TTTAGACAAAAGGAAGTAATAAAAACGTGAAATTTAAAACAACTAAAGAATGTAAAAGTAATAATATCTT -TAAAAGAAGTCAAGAAATTAATAATAGAGAAAGTGAAAAGGGTTGTTTATGGGGCATTAGCATGTTGATT -CTACTTTTCTTATTGATTCTGTTTGGAATAACTGCTTGTTCATCAAGCATTCACTTTATTAATTAGATTT -TTTTACTTGGAGGTATCATGTGAAGAACCATACAAATATAATTAATATCTTATTAGTTATAGTCAACTCA -TTAACTCATTTTCTAACTCTAAACACCTCATTTTTTAATAATTCAGCATCGGATTTCTGTTTTATCATAG -GGGCTATATTTTTCTTAATCGGAATTTTTGTTGCAATATACGGTATGAAGCGAGCAACATATTGGTTAAA -CTTATTGATTTTATTTACCAATATTTTTTATTTTCTACACTTCTGTGTGTTACTTTTGTTAAAATATATA -GGATTTAAATTATTTATTTATGAAGGGTGTGTATTGTTATTTACCTAATTTATAGTCTAATTGTCTATTT -CATCTGCATTATAAATTTTTTCATAATGGCTGCACCATTCTTAATGACTAATGCTGATTATGTATGGACG -CCTATGACTACAGTTACGTTATTTATTTTGAGTTTGATTATTTTCTTGATATTTATAAAAACAAAAGATG -TCGTTCATTTAACAATTTTCATATTAAACTTACTTTTTTCAATACTTTATTGTTTGCCTATACTGTTTTA -TTTATGAACACTTTTATATTATCTAGAAAATTAAAACCACCCTTTTACGGGTGGTTTTTTTAATATTTAC -TTTTTAGTGCTTCGTCAATTTCGTTATAAATCTTTTGAAGTTGATATTTTGCTTCTGACATTTTCTTAAA -GTCTTTTGACTTAAGAGCATACATTGCTTTTTGACCTGAAATTTTTATAGTTCGCTTATAATAAGTGTTT -AAACTTCCAGTAGCTAATTCATTAACATTTAGTTCATCTAATAACGATTTTAATTCATTAGCTAACTTTT -CGTTTTGATATTCATTCGATGTTGGCAAGCTTGTGCTAGCTTGTGCCTCATTTTTATCTAGATTAGTTAC -TAGTGGTGATGCTAAAACGATTGCTAAAGTTCCCGCAAGTATAGATTTTCTAATTTTCATTTTTTATTCT -CCTTAGTAATTAGTACTAATTTATTTTAATGACTAACTAAAAAAAAGTACATTAATTATTCATTAACTAT -ATAGATCTTCTTATTAAATGAAAATTAATAAATTATCAAATTGACATACCTTATTGTATTTATAGAAAAA -CAAAAAAAGGTAAGCACCGAAATGCTTACCTACTTCCCATAAACAATATAACACATATACATTGATTTGG -AAAGCGCAAAAATAAATTTAATAAACTAGCCCGAAGGGGAGCAATACATAAAAAATGAAAGGCGCTCCTT -GAAAACGCCCAAGGTAATATTAACATAAAATGGCTACTATTGCATTATCTAATTTTATTTAATTAAAACA -AATATATATAGAACAAAAAAACTAGCCCGAAGGCTAGCTTATGAATAGATGAAAATTTGAACACATTGCT -GTGTCTAAGATAAATATAGCACATATTAATTACTATTAATAGAAAAATTATAGCGTTTTTTTAGATTATT -TCAATTTATCGAGACCAAATTCATCAAAACACTAATTGAATTTTAATTTTTAGTTAAAAATAATTAATCT -TTTATTAATTTCAAGTTAATTAATATATTTCGTCGATTAGATTAAACTCATTTTAGGAATTTCGCAAAAC -TAACTATAAATTTAAATATAGAATTTAAGGAGAATTAACATCATTATGAAAAAGAAATTAGCAACAACAG -TTTTAGCATTAAGTTTTTTAACGGCAGGAATCAGTACACACCATCATTCAGCGAAAGCTTTTACTTTTGA -ACCGTTTCCTACAAATGAAGAAATAGAATCAAATAAGAAAATGTTAGAGAAAGAAAAAGCTTATAAAGAA -TCATTTAAAAATAGTGGTCTTCCTACAACGCTAGGAAAATTAGATGAACGTTTGAGAAATTATTTAAAGA -AAGGCACAAAAAATTCTGCTCAATTTGAAAAAATGGTTATTTTAACTGAAAATAAAGGTTACTATACAGT -ATATCTGAATACACCACTTGCTGAAGATAGAAAAAATGTTGAGTTACTAGGTAAAATGTATAAAACATAC -TTCTTTAAAAAAGGAGAGTCTAAATCATCTTATGTAATTAATGGTCCTGGAAAAACTAATGAATATGCAT -ACTAATAGTAGTTACATAAATTAAAAGGTAGATATTTCTTTTTTATATAAAGGTTTGGCAGACATTTCAT -AACTTGCCAAACCTTTATATATCTAATTATCAAACTGCACTAAACTTACCAAAACTGCTTATTCTATTAC -CTGCCTTGTCTACCTCTCCTGTCGCTATATAACGACGTTGTCCACTATTAGCAATATAAGTAATCCATCT -ATAGCCATTAATGCAATATGCGCCGTCATATTTGATAGTTGCGTTATTGGGTAATACACCTGTAATTCTT -GAATTAGTTGAATAGCCATCCCTCACGTTATTACCTTTAACATTGGCAACTGTGTAATAACCAGTCTCTT -TTTTATACGGTACATTGTTTTTATCGAGTGTATAACCTGCTGGCACTGGTGAATTCTTTTCATTTTTAGC -TGGTGTTTTAACATTACTGATACCTGATACACACTTCCAATAAAAATAACCACACCATTTAAGATGCGGT -GTAGCGACTGTAATATTTCTATGTTGTTGAGATATATGTATCGAGTGAAGGGCAAAAAGGATATCAATTG -CAGGATAAGTGTTAGGTTACTAGGCCACTTAACAGGCTATATAGTTCACTCCTACTATATACAGTTAATT -ATAACATAAAAAGCACCCCGTAAACTATTATACGGGAATGCTAAAGTCATATATACTACGAGGGAGTAGT -ATGAAAACTATGCTCTCTATCATAAGAAAAAACACCCAGTGACATGCTTGGGTGAACAAGGATAGATGTA -AATAGTTGATGCATGTGTAACACATCATAACAAAAAACTAGCCCGAAAGCTAGCTATAACATACAATCTA -AAAAGACGTCCCTTGAATACGTCTAGAAAGATTATAACATAAAAAAATAGGCAAGTACCGAAGTACCTGC -CTAAAAAAGGATTATCCACTTTTTCATCCTAACTGATTTCTCCCCATAAGTCACCTAATATCTGATTAGG -TGGGGAAGAACCATTCGTGCATGAATGAGAATTTGATGAAAGATAATTTTCACTACACATATTCAATCAA -GACATTGCTTTCTATAATAAACAACTATTTTGTTTTATTTCTTTTCTATAATAACCTTTGTAATTAAGTT -GAATCCAGGGTTTTTAATATGCTCTGATAAATCTGGGACAACAAAACCTTTTTCTGTTATAGGGAAAGAC -TTCGTTTCTTCTTTTTTCTTATTCTTATCATAATAAGTGACTTCGATCTTTGCGCTTGGATCTAATTCAA -CTACTCTAAACTCTTTATATGCTGTCGCATCTAATGCCCATTCGACATAGTATTCAATTTTTTCTTTTGT -AAGTGTAGTCCCAGGTTTAATAGGAAACTCGACATAATGAGGGGATAGCAATTCATTTCCTTTACCATCA -ACTCCAGTCACATTTACCATCAAATACGGGCCTGTTGGTTCAAAATAACTCGCGTCATCGCCTTTTTTAT -ATTTTCCTTTGTCGAATGAACTTGATGCACTTACCTCATTAGTAATTGAAGAAAATGAGAATAATAACAA -TAAAACAGTTAAAAATAATAAACCTCTTTTGAGCATGGCGCTTCCTCCAAATATAATATATTTGTTTTTA -TTTATCTCTTTTTATAGCTAACACCCTTATTTAAGATGATAAATATCAACAACTTCATTTTATATTGAGA -AAATATTAAAAATCAATAAAATATTAAAAGAAACTAAAATTACATTAAAAAAATAATTAACAAATATTTA -ACATTTTAACCTAAGAATTAAAACACTTCTTTCACAATCAATCTCTCATGCCATATCCACTCATTATGAT -TGTTCCAATAAATGCGACACCAACCATCTATAATTTCAAACACATATATTAATGTTCCAGGCGCGTATAC -AGCCTGTCCAACATCGAATCTATAGTTAGTACGATTATCACCGTATCTAGTGGCTGAAGTAGCACCTAAG -CCGTCGATTTTCGCATTAAAATAAGCACCTTTTGACCATTTAAGGTTATAAGGCGCTTTACTTCCAACTG -TTATTTTACTTGCAGATTTACCGACTGCTTTTTGAGCAGGTGGTTTAACTTTATTTGTGATCTTATTCAT -TAAGCCCTCACTTTTATACTTAGGTCTAATAAAGTGAGTACAGCCGTAATAATTATCCCAACGTAACTTT -GCAGGCGTATTTGCGTTACCGTCATAGTTCTGTTCCAAAATTAAAAATTGATTTGTATTACCACCATTAA -ACACTAAACCAATATGACCGTATTGTTTATATATTCCTTTGGTAAATACAGCCACATCACCTATTTGTGG -AACAAACGATGGTGTGTTTTCATATACTGTTGCCATGTTTTTAAAATCGTTATTGATTGCATCTTTTGCA -TTTCCCCACATTCTAATTTCTAACAACCAATAAATGTAATCAACTGCTAAATCTGCACATTGGTAACCAT -ACCAACCGTCAAAATCAATATATCTACCTTGATACCAACGTAACCTTGCTCTTGCTTCACTGTATGTTTT -CATTATTTTACCTCCTAGTATTTTCTTCTTGGTTCTTCATATTCTAAAGCTTGGTGGCTATCACCTATAC -CTTTAGTAGTCGGGTCTTGAATCACACCAGTTAATACTAAAAATCCTAATATAGCGTTTAAACCGTCTGT -TAATTGCTCTGTATAAACTTGGATATCATACCCAATAGCTTTTGCGATGTTTTGAGCAAATAAAAAGATA -GCTGACAATATCGCTACCCAAAATGATTTTTGTTTCATTCTAATTTTCCAATTAATCATATTCTTATCTC -CTTTTATCCAAAATAAAAAGACGACTAATAAGCCGTCTATTTGATATTTATATTATGGTGTGTTAATTTA -TATATAGAAAAAGGGCAACATGCGCAAACATGTTACCCTAATGAGCCCGTTAAAAAGACGGTGGCTATTT -TAGATTAAAGATTAAATTAATAACCATTTAACCATCGAAACCAGCCAAAGTTAGCGATGGTTATTTTTTA -TTGCTTAATTCAATAAGCTTGATTACTAGACCTATCAATGCAATAAGGAATAAACCAAACTGCAACATGG -TACTAATTGTAATCATTAGGCGTCTCCTTTCTAAAGATTTCAGTAATGCCACCATAGGCACCACCTCCTT -ATACTCAGATAGCCACCATCTATCCAACTTGCTCAAAGCATATTATAGCACATATACTTTTTTTACTGCT -TGTAAACTTTCAGATTATTCTCGGTTCATAATAATCTGAACATTACGTGTTCAAAACTACCATGTTTAAC -TTGTATATAAATATATATCAATATGCATGTTTTCAGAGTTAATCGTTTTATTATCTCTATATATTCTTAA -TAGTGTATTTGAATTCTGTCCTTGAGCACCAAATAAATCGTAATTAACCGAAGGTTCTGTAGAAGTATGA -AACACGATTAATCCCCTCTGAACCTTCCCATCAAAAACATCAGAGTTATATAAATTATATTTTTCCTGTA -AATAACGTCTTGCTTGAAGATCCAACTCCTGAACAGTTACATTTTTCTTATTCGTTTTAACCGTTTCCAA -AGGTACTGTATTTTGTTTACCGTCTAGCCATAAATTGATTGGCACTTTTTTCTCTTCGGTCAATCGATTA -TTATCATGTAACGTTACACCACCATACATGCAAGCTGTTTTGTTTGGTGTACCACCCGCACATTGATAAC -CATAATAAGCACCATATAAGTCTACTTTTTTCCCTTTATATTTATCAACAATATCCTTTGAATCAAAATC -TACTAATAAATCGTTATACCATGAATGATTTGTAAAAAAGCCTTTAAACAATATAGTATGCTGTAAAAAT -TGATCGTGACTCTCTTTATTTTCAGTTTTAGCTTTTTCATTGTAATAATAGATTTGTTTAAGATTGCCTA -AAGCTGCTCCCTGCAATTCAGACTTTTTTCGCAAATCTTTTTCATTTATTTCTTCGCTTTTCTCGCTACC -ATTTACAAGTGGACTTGTTGTCCACGTTAGGGCAATGAATAAAAGTAGTATAAATGCTGTTTTTTTCATT -TTGCTCACCTCTAAAGCATAATTCCATACAAACTTTTTATTATCTAAAATATTTGGATAATAGATTATTT -TTGTCGAAGTAATTATTAGTTATATACAATAATTATAGAATTATCATTATTTACTTATACATACATATAT -TACTATACCTTTTTTATACTTGTCTATAATATAATAAAAAGATTTCATTTTTACTCTATTATACATTTCA -GATATCTTACTTACTTGGTATTGACAACACTTCCCAACTTCACTTGCAGTATGCTTCCTGTCTTTTGAGC -TGTGTAATACAATGTACGTAACTCTTTTCAATCAAAATAAAAAGCCAGTGCCGAAGCACTGACCAAAAAC -ATTATTTACATTTACGACCATACAAATAACATGACAACCATCTTGCCCAACTCATTTTGTCCACCTCCCT -TAAGGTAATAACGCAGTAATTGATGCAGTAATGACTGCAATCATAACAATTGTTACAAGCGCCCATATGG -CACCTACGAGCCATTTATTTTGGGCGAGTGTCTTTTCTTCGTTTTTTTGCGCAACATCTACTTGCGTTTG -ATATCTTTCTTCAATTCTGTTTAATATCTTTGTTTGCTCTAAATTCTCATCTACAACTTTATCTTGCTTA -TCTTTAAGTTCTTTATGAGATTCTCTTAGTTCATTATGATGTTGCTTATGTTCCTCTCTAAGTTCAAGCA -CATGATCAGCTGTTTCATTTGCTAGTATTTCAACATCATCCACACGTTCAACTAATTCAGAAAGCTCTTT -TTTTATTTTCTGAATATCATCCAAAACTACACCTACTTTCTAAGAAAGCTATGAGCGTAATGCTCATAGC -TTAGTATAGCTACATTGTTTCGCTATCAACTGTTTTATCAGATGACAAGTCAGTTCTATCCACAACTTCT -TTCACTACTTTCACACGTTGTTTTTTGTTAGTTAATTGATATAACAAATTTAACGTCTCCGCAATTTTCT -TAGCGTTTTCTTCAGATTTAAAATCTTGAGCATGGTTAACCATTTCAGAAGTTGTAAAACTTCCTGTGAA -ATCTTGATATACTACACGTTCTGTACCTTCTTTGTCGATTTGTACTAAAATAAACCTTTCTGTATTGTTG -ATAATTTCTTTTGCCATAATTAAATGACCTCCTTAAATTTTTGTATAAAAATAGTGCTAAGGATTACTCT -TCCTCAGCACATTGTTGATTTTCTTTATTTTCTTGTATATACGCTTTTAACATCGCGTTTTCTTGTGTTA -ACCTCATAATTTCCTGTGATAAATAATGAATTGTATATTCAGGATTAGCTTGTAATCCTTGTTTGTTATC -CTGCATTCTTTGACTCCTCCAATTTCTTGATTCTTAGTTGTTGTTCTTTGATAACAGGGATAAGATGAAT -CCATAGACGATCATACGCTATACCTTCAATTTCTCCTTTGTCATCATACGTGACAAACTCTTTTAATCCT -AAATTCTCCACCTCTTCAGCAATCAAACCTACGTATCTATCAAGTTTATAGGTGTCTTCCGATAATTTTC -TATCTTCTCTCAGCTCTCTAGCTAAAATTTCAGACTCAGCTTTATCAAACCACGTTCTAATAGGTAAGTT -AAGAATAGCTTTTGAATGTTCCAGTTGTTCATCTCTATCGTTATATTGATTTTCGATAGATAACTTGTAT -TTACGCGCTGATGTCGAACGCCCAATTGTGCCAGCAGAAGTAATATGCAAATTAGCTGCGGCCGAATAAG -TACGTCTATAAATTGAGTTAGAAGCTATCCTATCTCCTGCATCATCTGAACCTACAGACAGTAGGTCTGT -ACTCTGTATATGAATATACCTATTACCATCACGTCGTTTCAGCATATTAAATTTGCCATACCCTGCTTCG -ATTGTTGTATCTCCACCTGTTGCATATCGTCCATTAACAATTTGAACAAGACCTTTATTTCTTTCTTTAG -AAAACCTGATACCCGCACCGTAATCATAGTTCTCATCAGAACCAAACATAATATAACCGTCACTCGAATA -AGCATTATCTGCATTAGACAGCGTGAATGCAAATCGGTTTAATCCAGGCACTTTGTCTGTGTTTGGATAT -AAATACACCGGTGCCTGTTTGCTTTTGATATTCGATGAAGCGTAAGACTCCAGAACAACCCGATTATTAT -CTGACGTTAGTGCAACGACACCACCATAGGAATTGATTGTTATACCATTCATGCCACTATCACTGTAAGT -TTTATCCCACCATTGAATCGTACCAGATGAACCACCGTCTTCACCTTCACCATCAATATAAGTCGAAATA -CCAAAATGTGACATATAAAGTGAACCGCCAGCGGTGTTATTTCTAAATCTTAGGTGACCGTCTTTCAGTC -GCGTAAAAATATCGTCTGTTGAACGTTTCCCTCTCCAAGTACGTTGCACAATACCACCTAGTTCAATAGA -ATCATTCTGTATTTGAACATATCTGTTATTGTCACCGCCTTTAATTCCAATTCTATTAACATTGATATCA -AGGCCCTCTCTTGATAAATTAAGGCTGTTGACAATATCGGTTTTATCTACTTTATCTCGCATATTTTGGA -TAAGAAGGTTTATTTCTCTATTACCGTTAATATCAATTTTATCAGCATTTAATCTAATACCACGTGGCCC -CACATTCAAAGCTTGAGCCACTCCGTTATCATCATATCTGATTGTTGTTCCATCTGTAACGTTTTGAACA -ATCTCGTTTAATATATTTGAAAGTGTACGATTGGTTGCATTAAACTCTTCTTTAGTAGTTCTTAATTTGA -TTTCCTTACCATTTTGTATAATTTGAGAACCATAGCGAGTCAATGTTTTCCTCTGTGCATCTGTGCTTTC -TTTGACCTTGTTGTCTGTATAAACATTAGCTTTCTTTTCAGCGTTTCTAGCCTTTAGTTCTGCGTTTTGT -TTTGCCTCTTCAAGTTTAGCTTGAGCATCTTGTATAGCGCGTTGCTCTTCTTCCGAAATTTTACCATCAG -CATACGCTTGCGATTCCTTCTCTTTAAGATCATCTTGAGCATCAATGTATGATTTTAAAGCTTCTTGCGC -TTCTTGATTTGCTTGTTCAATACTTGCTTTAATCTCAGGATTATTGGACAAATCACTTAACTGGTCATCA -GTATATTGTTTTTGTTCTTCCAATCCGTTTCGATATTCGTTTAACGTAACTTTATCTTTGATTTCACCTT -TTAAAGTCGTTCTCTCAGCTTCAGCAGTATCTAAACGTTCAACAATACCGTCTTTGTCTGTTTTATAGTC -CGATGTTTTTACATAGTCACGTAATTGTTCTTTTGTGGATTCTCTAGCTGCTTCAATAGCTGATTTAACA -ACATTAGGTTCTCCGACTAACTGCAAATCTTCATTCACCGTTAAACCAAATTTTGTTGCTATTATTTCCA -ACGCTTCTTTATATTTTTCATCAGTGTATTGTGACTGTAATAATTTAAATCTATCTGAAATGGCGATTTT -GACATCTTCTACATCTGTATAAACATCTTGTAATTTCTTTCTATACTCAAGAAATAAAGTTTTTGTATCT -ACCAACCGACCAATCGTTGCAGTTTCGGGTGTCATAGATTCTAAATTATTTTTAATTTGATTATAAACAT -CAATCACAGCGTCTAAACTTGCTTGTAAGTCCGCTTTCAAATCATTATCTACTAAGTACTCGCTATTCAG -TAATTCTGTAGCTTCTGACAAAAGACTAGCGTGTTGTATAGATAAATTAATAAAAATATTGTTTAATTCA -CTGAATAGCGCTTTCTCTCTTGTTATACCACCTAATTTTTCAACATCATTTGGTGTTGCTTCAATCCATC -GACCATTCCAATATCTACGCAAGACAGCAACATCAGGGTTACTTGTATCATACCAAAGCGTATCATTGAC -TGGATTTTCTGGCGGTGTATCACTTTTATGAATTTTGCGTTCAAAGTATTCTAATTCACCATCTACAATA -TCTTTTACTATAGTATTGATATTGCTAATATTGTCGTTTAATTTTTGGTGTATTAGGTTTAATCGCTTGT -TAAACTCTTCTCGTAATTCTGATTCTTTGAACTCTTTAGGTTGACCGAATGTATATGTGCTATTTTCTGA -AATTATGTTATATTCTTCAGCAATAACTTCTGCCTCTACATACAATGGCGGGTTAAAATCTCTATGTTTT -ACTCTGACTGTATCGCCAATTGATATAATCTCGTGCGGATACGTAACTTCCAAATCAGTAGAAGTAATCT -CATATGACATAACTGCCGACTTACGTTTATTTAACTCTGTTTTGGCTAAAGAACTTAATCGTGTTTCATT -CATATTTTGATCATCTGATTGTGGTTCATATATCCCCCAAATATAGCGCATAGGTAGGTTGAATTGACTT -TGCGCTTCGTCATCTGTCACAACTAGCTCTAAACGCTTCCCTTTGTCATTTTCAGGTCCCACAGCAATTA -ATGCTGTTTTGATTTCTGACATATCAATCTTCCTAGTTAACCCGACTAAATCTTTACCATATTCAATTTC -TTTACCTTTGAATAAGCTGTTTTTCTTTTTGAGTACTACATATCTACCTTTGACGGTATTAGAGCTAAGC -TCAATATAAAAATCTAAAACCATTTTATAGGTTGTACATAATTGCTTTAAAACTTCATATCTAGTTTGAT -AAGAAGTCCATGACGTAGTACGTAAGCCATCGTATTCGGTTTGTTCAGAAACTTCCCAACCTGTATCGCT -CAACACATCTTTCAATGCTTCTGAAGTTGTCTTTTTCTCAAATTTTCCTGGTGCATACGGTTTAGCTGTT -GTTATATCAGCAAGATAAGACGCTATACATTCTATCTCTGTGTAGCCGTCCATCGTATCTTGAACCCAGT -TAATAATAAATTCACGCCATTGTTTGTTTGAATCCCTTATAATAACACGATGTCGTTTACGGAACTTTTC -AGCTCTTTCTGATGATATGAGCAGTTCAAGCATTTCTGAATTGTCATTAACATTACGTTTATGAATCGCT -CTAACTAAGGAAGGGTCATCAGTAGAAAGGAAATCTATAATCTTGTCGTTAAAATCTAAAACATGTATCA -CACTCTCATCTCCTTTCTATAAATATCTATCTTGCCATTTAACCGTCGTATCAAAGACGTTTTCAGGTTG -TATGATTAATTCACTGTACCCAGAATCAACATTGAAATAATTACTTCCAAACGATTTCTCGCTCAACATT -GGTTCCTCATTGATGACAACACTTTTTGCTTGCATATCTATTTTCACTAAATCACCTTTTTGTATAATGA -CATCCCTTGCGCCTTTCGGTTTCGGTAGAATCTCCGTATTGAATGAACCTAATCCATTCATCTCCATCCA -CTTATAACCGTTATACTTCGCACTATAGATAGCTATGATAGAAGCTGGACGCTGATAAAACTTACCGCCA -TCTATCCACTCTTTCTCATCCATATCAATAGGTTTACGTCTATCTGGGTCTTTAATGTGATCAAATTTCC -AAGTTTTAATAGAAAATTTATTACCTACTCTTCTGAGCCGCATATAAACAACGATTCTGTCCAAGTTATA -CATTATCGGTTTATTCTGATAGTCGTATATCTTTTTGGGGTCTCCTTTTTGGTTATACAACGTAACAACA -ATATGTCCTATTTTTCTATCATGATATTTATTTTCATAACCAATAGAAGCAAGTAACTTACCATCACTAT -CATAAATATGTTGTGCTGTTCTTCCGGCACCTTTACCTTTTTGTTCAACAATACATTTATAGGTAATTTG -AAAATCTGTCATCGCTTTAGGGAGCCCTCGTTTCGTGCCAGCACCAACCCAACCTTTTGCATCAGGAAAA -TTAGTTGCTTTATATCCTTCGCCAAGATTGGATATCACAAAATCACCGCCGACCTTACCACCTAAATCAT -TACTTGGAATATCTTCAGTAATCATCTTAGTCCAACCTTTGAAATCACGAAACTCACTATGATAAACAGG -AGGCATGTAATCCTTAACTTCTTTGGTTACCTCATCATCACCAACCATAAAATAATCTTCATCATTTTTA -GTGATCATAAAGTAACTAGATGATTTAATTGCTCGGGCTTCAACAATTAAAGGAGTGTCAGCAGTCCCAC -TATTTACAACTGAAACTTGGTCTGAAATCGCAGTATTTTTATTTCCTGTTACTGAATATTTGTAAGGGTC -TGTTAGTACTACTTTGATAGTGAACTTAACAGGTATTGTAAATTCTTTGTGCAGCTTTATTGGTCCTTCA -AAATAAGCGTTCCAGTACCAATCTTTAGATTTAAATTGTAATTTAACTTGTTCCTCGTAGTTAAAAAACT -TTACTAATTCATTCAAGACGTCATCATGTGTTTTAATACCGTTGTGAGATAAATAGTCATTACGTACCAC -CAAAGGTATATCAAAACTATAAGATTCAAGCCTACGCCCTTTATATATAGACCCCGAACGTCCATCTACA -TTTTCTGTTTTTAAAACATAATTAAAAGAGGGTATTTCAAACCCTCTTTCGACATACAACCAAGGAATTG -TTTTGTTGTTCACTTTAATAGTGTCTATCATTGAATAGCAATTCCTCCTTTTCTAAACTTTACTTTTGTT -GATTCTTGCCTTTCTCGCTTTTCTATAGACGCGTTCACCTTTTTATCAAAAGCGTATTCGTCAATAATCG -GCTGATAATCTTTATCTGCAATCACATCGTTAGATTGTGCTATTTTCAGTAATAAAGCTATTTGTTGTTG -CTGTTGTTCAATCATTTTCAATAATAAGCTAGGATCATCAAACCCGTTTAAGTCTGATAATTGGCTAGGA -CGCTTATTTTTACTCGCTTTTTTCCCTCTTACTTCTGCTGCTGCATAATGCAAAATCTTCATTGCATCAT -TTCTACGAGCTGGATCTGTTGGAATAATCCATTCTGGATGACCGTCTTCACCTAAGTTATACCAACCATC -AAAAACTTTTCCACCTGTAGCATATGCGTAATCACCAGCACGTTTAAAACCACCCCAACCATATCGTCTA -ACAATGTACTGCATTGCTGAGATACCTTGATGTACTGGATTATTATAATTAGTGTACCCTCGTTTAGCGT -TAGCTCTAAAAGTTGAGCCGATAATTTGGAATAATCCTCTAGACGGGTCTCCTCTTTGAGCATTAATGTC -CCAATTATTCACTGCATTTGATTGATAGTTACTTTCGCGCTTTGCAACTCGCATCATCTGGTCATGAATC -CACTTACCTTTATAACGTCCTCCTAAAATACTTTGTGCTTGTCGGATTACTCGGCTGGCATAAGTTGCAC -CACTTCCAGAAGTAGCGCCACCGCCACCAATTGATAACCTACCTTTTTTCTTAGCATTCCTTAAATATGG -TTCAGGGTCAAAATGTCTTCCATTTCTCCTCATTTCAAAATGTAAATGTGGTCCTGTACTAAATCCGGTA -TTACCAGTTAAACCAACAACATCACCGGGCTTTACCATCGTGCCACTAGGTGGTGATTTGCTAAAGTTTT -TCAAATGCGCAAATAGCATATCGATAACGCCACTAGTAATTTTTACATAATTACCATAACCACCAGACAT -AAATGGCATTCTTGTAAGTCTGCCACCCATCGGCGTTCTAACTTCTTGATATACAAATGGAAAATCGACA -CCTTCATGAAATGGTCTTCCGGTTGCAGCGGTATAAGCTGCGGTACGTCCATAATGATAATTAATTTTGT -CAGGGTCTAATATTCCACCGACTAAATCGCCACCGCCCATAGCTTCTAAATTTTCTTTTATCCAATCAGT -AGCACTTTTCTTAATCTTAGACCATGCAGCTTTTGTTATGTCGCCTGCAATTCCCATACCTTTAGTTAAA -GAATTGAAATCAATTCCAAAAGCTTCAAGTATATAATTTAAAAGTTTGCCTGGATTTTCCATAAAATCTA -AAACATCGCCAACTTTATCGCCAAGCCATTTGGTACCTTTACCTATTTTATCTTTTGTCCAGTTAAATGC -CGATGATGCACCAGATTTAATATCTTTCCACATAGTACCTAAACTAAATCTCGGAAGCGTTCCGTTTAAC -ATTGAATAAGTTTGTGCCCCGTTGTATACTTTTGAGCCTTTAGGTAAATAAGCCGTAGTATCTGTATTTG -GTGTGATTACACGTTTACCATTAGGGAATTCAATCATTTCATTTCTGAAACCATTTGGACCATTTCCGCT -TCCCTTATCCCCAACTGTAGCGAATGTGTCACGTGCAATCTTACCGTTCTTAACTAATCTTGTAGTAGTA -TGTGTATGTTCAGTACCAGTGTGTAACTTCGGTATTTTGTCCATACCCAACTTACCACCGACCCAGTTTA -AACCTTCAATTAATTTATTAAGACCTCTTTTAACAGCGTCTACCATACCACCGATATGATCTTTAATTTT -ACTAATGATAGATTTTAAACCGTCACGCATGCTTCCAAAGATGTTACGCACTCTATCCCATAAGCGACCC -GCTATACCTACCGTGTTATCTTTAATAGAGTTCCAGATGTTTGACATCCAATTTCTTAATTTAGTAAATA -TATCTTTCGTCGCATTCCATAAACTTGTGAATTTAGACCTTACACCCGTAAATAACGAATGAGCCTTGCC -GACGGTATTGCTTTTGATATTATTCCACGTACTAGATAACCAGTTTTTCATATTAGTGAAAATAGATTTA -ACACTATTGTATAAGAAACCAAAAATACTTTTCGTTGCATTCCAAATTGCAGATAATGATTTTGTGAAAA -TACCTTTGATAACACCCCAGATACCGGATATTAAACCTTTAAGCAATCCACCAAAGTATCTAACAACACC -TAGAATCTTACCTACAAACCACAGTTGTATTAAATTCCAAATTAACTGCACAGTGCCTTTTAGTATCATC -ACAATACCGTCCCAAACACCTCGCCAATTACCAGTGAATAAACTTGAAAAGAACTTAATAAAGCCAAGTA -TGATATTTAAAGCACCTTGTATTACTCCTTTTATATTCTCCCAAGTACTGACAATCAAGGCTTTAACCGC -CGGCCAAATAAATTGCATCACTTGCCAAATCGCAAACATGATTGGTTTAATTACAAAATTTAAGATAAAT -TCAAATATAGCTTTGATAAAATTGCATATATTTTGAAGCGCTTGAACAATAGAAATTCCGTTTTCATTAA -AGAATCCATTAATTTGACTCCAAATATCTTTAGCGAAATCAACGATTGCTGAAACCGCTTGTTTAAAGAC -GTTTTTAACGGAATCAATGAAAGGTTGGATAAATTGAATGAAATTACTAAACGTTTGTTTAACACTGTTA -ATTGCACCATTAACAAAATTTCTGAATGTTTCAGATTTCTTATAAGCTATTGTAAATGCGACTGCTAAAC -CAGCCAGTACACCTAACACGATACCAATTGGACCAGTTAATGCTGTGAAGACTGTTCCTAAAATAGGCAC -TTTAGTTGATAAAAAACTAATCAATCCGCCAGCCTTTACAATACTAGCTAATAATGGAGCTAATACAGTT -ACTGCGTTGCCAATTGTGCTTATGAATGCACCTAATCCAAAAACTACAGGACCAATTGCAGCAGCAATAC -CACCGAATATAACAATCGACCTTTTAGATCCATCACTTAAACTTGAAAACCAATCAACTGCTACAGATAG -CTTTTTGATTAATTCTTCCATGACTGGAGCAAACGCACTTTCAATAGAAGCCCATACATCAGCACCTACT -AATTTAAGTTTATTCATTGCTACTTTAAATCTTTCGGAGCCACTTTCAGAATCTTTAAATGTCTGATTGA -CCGTTCCTTGCGAATCTTCGATAGTTTTTAAGAACTCTTGGTAACTAAAGCGACCGCCTTTAATAGCATC -TGCTAAATCAGGACCTGCTTTTGCACCAAATGCTTCAATCGCTAAACTTGTTGCGCTAGCTATATCCGGT -GTCCTTTCAATTTCTGCTAATGTCTTCTTAAATTCTTCTCTTGGGTCTTTACCCGCTTTACCCCAATTGG -ATATAGCTTTTTTCAAACCACTGAAGGCTATTTCAGTATTAACACCTGATTTCTCCCATTGAGAGAATAA -AGCGATTGATTCTTTCATCTCAAAGCCCATAGCCCTCATTGGAGCACCGTATTTAGTAATGCTATCAGCT -AATGTATCAACACTTATACCGCTAGCCTGTGCTGCTTTCGCTACCATATCAAGTACACTTTGATACTCAT -CAGCTTCAATACCTGCATCACCCATTGCACGCGTAATTAATTGAACGGCTTGTACGCCGTCAGAACCTGT -TATGTGACTAAATTTCAAGAATGACTCTGTGGCACTCTCAAGTTCTTTGCCAGTGAAACCTAACCTTGTG -TTAACTTCCCCTAAAACACCGCCTACAGTCTCAGCGTCTGCTGGAAAGTTGCCATAAACATCTTTAAATG -AATTCTGCAACTTCTTAAGCTCTCCGCCGGTTGCTCCTGTTGCTTGGGTAACTGTATCTAAACCTTTATC -AACTTCTGCAAAAGCTTTTCCTGATGCTGCTGCAATACCTAAAACAGGTGCAGTTACACCAATCATCAAA -CCTTTACCAATGGATTTTAAACCATCACCCATTTTTGTTAATTTAGGTCCCATACTTTCAAAAACTTTAC -TGGTTTTTCCCCAGCCACTTTCTGCCATTCTTTGAGCTTCAACTTGAGCTTTTTTGAACTCTTCAAACTC -AGTTGTTGTTTTTTCTAGTTCTTTTTCTAAAAAATTCAGCTCATTTGCTTGTTTGTTATATTCTTGTCGT -AATTTTTGAGCTTCCGCGCTGTTTTCGCCCTGTTCTTGAGATACCTTGCCATATTGCTTGGCTAAATCAT -CAACGTTTTTCTTATAACCTGTGATAGTTCCATCAAGTTCTTTAATCCTTTGTTTGTAACTATGAGTTGA -TTTTTCGGTATATTTGAAGTTGTTACCGGTTAATTTTAAGTCAGAATTTAAAGTTTTAAAGTTTCGTTTG -ATTTCTGCAAATGATCTATTTAAATTTGCTGCATCTAAATCCAAACCTATAGATAAACCTTTTATTCTTT -CTCCCATTTTTTACCTCCTTTCTAAAAAAGTTCAAAAAAATAACCCTAACCAAACGGTTAAGGTTAAAAC -GCATCAATTAAAGCCTCTGCTTTTTCTTCAGAAATGTCATTGTTTTTATTTTGATATATGGAAAGTACAT -AATGAAATGGCATTTTTAAAACTTCGTTAGCGTCTTTACCATTTTCAATTAAGTCCATCATGAGAGTATC -CATATTTTTCAACATTGCTTTATATGTTAAATCTTCAGGCTTTATTTCATGTTCTGGATAAAATTTCTAG -TTTCCTCAGTTTGCTGACCTTGAGTAATGAAAATCACTTGTTCACGAAGTGCATTCATTCCATCAGGTGC -ATGCATACGTTCTTTTAGGTCTTTAACTGTGAATTGGTTATCGTAAATTTTTACAACCATATCCATCAAT -CTGTCAGCGATTTCTCTTGGTTTCATCGTGCTATTTTCGTCCTCAATATCATCGATTAAATCCATTGCTT -CGTATACAATTTCAAATGAAATGAAGTGTGGTGTTAAGTACGTTTGTAATTTAATTTCATTTGCTTTCGG -GTCTTCTACTAATTGAATAATGTTACGTTTTAATTTTGCCATTTTATAATACTCTCCTTATTTTCAAATA -AAATAGAGGGGTTGCCCCCTCTTATGCTTCTACATTTATTGTTATAGTGTCACTCATATTACCAACTGTT -GCTTTAACCGTAGCAATGCCTTGTGCTTCCGCAGTAACTTGACCATCACTATTGATTGATACAATATTCG -TTTGATCTGTTGTGTATTTCAATAACTTACTTTGATTAGATGGCTCTACTACAACATTTAAATCGTATGT -GTCGCCAACTTTAAGTGTTTTAATGCTATCTGGTATATTAACCGACTTTACCGCAGTTTCCGATGAAGCC -GGTTTTGTTACAAAGTTTCTTCGTTACCCTCTGTCACGTTTCCAGTATATTCTTCGCCTAAAATTTTCTT -TAAGAAAGCCTCTTCGCCTTTTTCACCGTCTCCATCATGATTTGTCATGTTAGCTGAATCAAAGATATAC -TTACGTACTGACTTTTTATTATCAACTAAAGGGAAAAGTGCCTCACCTTCAACCTCTTCACTTGAGAAAT -CCCAATCTTTCTCAGCCGTTTCTCCATCGATTTTAGGATTTGTAAACATGACTTTAGGTAATAAAACCGT -TCTAAATGTGCCGTCTCGACGCTCTTGTCTGAACCAAATTGCTACATAGTTGTTTTGTTTACCTTGAGTT -TCTTTATAAACACCGTCTTCATCATACTCTTCATTGAATACTATTTTGCGAATCTCTTTAGGGAAAGCAT -GCATTTGTAACGAAATTTTACCTTCTCCGTCTGTGTTCCCTGATTCGATTGGACCACCATCAGCATATGC -TGTTTTCAAGTCTCCTCCAGTTTCAACACCAATTTTTTGTAATCCTCTTGTTTTTGTAATATCACTATAT -TTTAATTCCGCGCCTTCTTTCGTTAATTTAGCGAAACCTAAACCAGTAATGTTAATATACGCCTTTGGCG -CACTTGCATGTTTTACTGCCATTTAATTTTCCTCCTTATAAAAAATGCCCTCGTAAACGCGAGAGCTTCT -ATATGTTTTAAATTCTTCTATATATTCCGGTTTTCCATTTGAAACATTTCCCATTTTTAGTTCAGACCAT -AATAACTTTTGAATGCGATTAGATATCTTATTTCTTATGATTCTCGCATTATATTCATCATTGTACTTAA -CAAAAACATCTATTTGGACAATATAACTATATGCACACTCATCTCCGTCAGTATAAGTTGTAGGTATTGG -GTCGTCGATATCGTCAATAACAATAAAAGGTACATCAGTATCTTTTACATTAGGGTATTTATTGAACTTA -ATATTATTGATATTTACGTGCTCTCTAATAATTCTGTCTTGACTAATCACTTCATGAACTTTGTACAAAA -TATCAATCACAATTTTTTCAACTCCCTTTTTAGCGTCTCAAAATACTTATTTTGCCCTTGTCTTATTGCT -CTATTAACACCGCCCATAGCTTTAGGTTTGATAAATTTACCTGTTCCTTTTTGAACGTGTCCATATTCAA -TTAAATGTACGATTTTATAACGGTCTTTAGAACCTCGCCAATGAACAGTAATTGTACGTTTTCCGTTTAT -CCATTCAGGTTTACTAAAACTTACCTCATTAATTAATGCTCCCGTATCTTTTGAGGGCTTTAGTTGTTTT -TTACTTCTTCAACAATTACCTTAGCACCAGCTATTAACGCCTTATCTTGAACTTTTACCATCTCTTTTAT -GCCAAAACGTTTTTCTAATTCTCTTTCTAATGCTTTATCACCTATCACTTTCACACTCATGAACTATATC -CTCCACGAATCATAATAAAGTCTTTATTATCCAAATCTGGTGATACTTGCTTTATATTCAAACGATTTTT -GAAATATCTTGATTCAATTTCAAGATAATGTTCTTCACTGGGTAAATAATCACCTTGCGGATCACGAATA -TACAATTTAATGTCATTTTGGGTTCCGTTTGAGATAGCTTGTTCTAATTCACGTAACCAGACACCATCAA -TACTCGCCCAACAGCTATATAATAATTTTTCTTCTTTTTCTCCAGCTTCTGGACCATTATTTTCAGTATA -CTTATAAAAATGAACACGAGTATTTAAACGTTTAGTTGTAATTCTAGGTTTTTTAAACACTTTCTTCATC -TTCTGATACCTCCATTAGAGATAACGAAAAATCTATTATTTCAGGTCTGTAATTATCGTTGAAGTGTTCT -AATAAATCTTGATAAGCATATCTAGCGCGTATAAGTATCAATTCTTGACCTATTAAATTCTCTAATTCAA -AAACTCCGCACTGATTTTTTATACGCTCGTACGACATTTTTAACAACTGCTTTAAGTACTCATCCTCTGA -ATTATGGTCAATCTTTTCAAGTGATTTAAATTTGACAAGCAAATCATCAATCGTCATTGTCTTCACCATT -CAATAAGTCGACGATTTCACTTTTAACCATTGAACTAGACGCTTTTTTTTGTAATGATTCGCATAGTTCT -AATAATTCTTGTTTTGTCAGCTTATCTAAAGGTACGATATAAACTTTGTCGTACTTATTTTTGATTTGAT -TTGTCAACAATTCAACACGAGGATTGTTATACCCTTCAGCTGGATACAACTCCCCTACTTTGTACTTGTG -TTGATTGTGCTCTATGTCTTTAAAAGCTCTAACAACTTTAAATTTCACCATTTTATCACCTCATAAAATT -TTATAGTGTTTCTTCGGTACCTTCTAAAGCTGGCTTATGTCCTTTTAAATCTAATTTCCAAACAGCAGCA -ACTTTATTATCTTTCGCTTTGCCGTAAGCAAATTGTTTTGCAGTGTATAAATCCATATCATCTAACGCAA -GTGTTTCTTTAAATTTCTGAACATTAATACCACCAGCTAAATAACCATCATATAAACCTTTAACGTACGT -TAAAACCTTACCTGCTTCTTGGACTGTAGACTCGATAACATTCAAATTAAATGGTAAAGCAGTAACATAT -ACGCCATTTGCATTTAAATGTGTATACTGTGCTTGAACCTCAAAAGCATCGGACGGATTAACAACCATTG -TTACATTACCTTTAACCGCTACTGATTTACCTTTCTCGTTAGTTGAGTGGTATTTAAACACTTGCGTCAA -TTCATTAACCGTAGCGCGCGGATTAGCAAATGTAAGCGTACCTTGTTCTTCTTTCTCTGGATAAGCACCC -TCAGTTACCGATACACCTTTTTGTACTTGACGGTTTAAGCCGATTGGTTGGTCTTTACCAGTACCTTTTA -AGAACGCAGTTTCAAGCGCCACTGCAAATGCTTCTTCGATTTGAACACGAACAAATCTTTCAATCCACGC -AGGACCAAAATCATTTAAATCTTTTGGTAAAACAACAAACGCTGTCAATTTATTTTGAATTGCTGTTTCT -TCACTGAACGCAGCATCTAATTGACCTTTAATTTCACCATAGATTTTACCCCAAACGGCTACGCCAGAAG -TTTCAGATTTTAAGAACTTCAAACGCAAACCAGCGTTTTTAATACCTAAATCAGCTAATAACGGATGATT -CGTCGTCAAATCTTCAAAAATTCTATCAATTGTTTCTTCTGGCAAAAGTTTTTCTTCTTTATAGTTAACG -TTTTTATTGATATCCATGAAGAAACTTCTTTGGTTTGCACTCAAAGATTGTGCTGATTTAGGTAAACTAG -AAACTCTTTCAGCTTCTGCTTTTGCTTGTAATTTAGTTTCTTCAAATAGTTGGTTAATCATGTCACCGTA -CAATTCATTTTGTCTTTCTTGCGGTTCACCGTTGTTTACTGCATTAATAAATTCGTTTTTCGCATTTGCG -AATGTTTCCGATAAATTTATAGTCATTTTATGACCTCCTATTTTTTGTATTAAAAAAGGAATCTTGAAAA -TCCATTTGCTGATACTTTACTATCTGCAACATCGATTTCTGATTCCTTTTCTTTCATATTTATTTTTTCA -ATTACTTTATTTGCTATTGCGTCAATATCAATGTTAACCTCTGGCGTTTTACTTACCAAAGCTGTTACAC -GATTTAATACATCTTTCGATAACACTTGTGTATTGCTTGCTACAATTTGCATATTGTCGTTTTCAAACAT -TTTACTATCCGCAAAACCTTGTTCAATGGCTTCATCAGCATTTAGCCACGTTTCCCTAGCCATCATTTCT -ACAAGTTCTTGTTTGTTTTTACCAGCTCTAACCGCATATGCCTCAGCCATTATTTGACCAACATGTTCTA -ATGTTTCTGCAGCATGATTTAGATCTTTCGCTTCTCCTTGCGCAATACTTGAAGGATTGTGAATCATCAT -TCTAGCAACCGGACTCATTTCGATGTGGTCACCAGCCATTGCGATAAGCGATGCCGCACTTGCTGCTATT -GCTGTGATACGAACATTCACTTTGCCTTTATGAGCTCTTAAATGTGTATATATTTCACTACCAGCTACTA -GGTTACCACCATTTGAGTTAATTATAATATCAACATCTTCATCACTAAATTCTAGTTGTGTTAAAACATC -TTTAGGACAAGTCGAATCCATACCAAGCATTTCGTAAACCCATTTATCTTCGTTGGAAACGATGACGCCT -TTAATCTCCGCTTTCATCTTCATCACCACCTTTCAAAGTGTTTTCATCTTTTTCTTTTTCATCATTTTCA -CCACTGTTAGCTTTTTCGTAGTTTTTAGTAATCAGGTATTCGTCTAATTCAGGATTGTCTGATGGTTCTT -CACCTAACATAATCCGCACCTCATTCCTTGTAAATGAACCAGAACTTACAAGTTTGTCAATTGCTTCAGC -ATATTGAAGTGGGTCTTTTTTATTCACACCGACAATTTCTATTCTTGTATCTTTCAAATACATGCTTTGT -GTTATGAGTTTCGCGTTTAATTCGTTCTGAATCTTTTTTAATAAAGGTGTTAAACAGACCTTCTCAAATA -CAAGCGTGTTTTTTTCCAAATCAGCTGTTTCTCTGTAAATCAAACCTGGAGGTATACCAATCATCAACGC -AACATTTTTTATTGCATCTCTCATTAGCTCACTCAATTCAGAAAAAGGCATGTTACTATTCTTACCACCA -TTAGATAATTCCTCATAATCAAAACCTTCTATCAAAGGCGCGATTGCTAGTTGATTTTTATTAAAAGTAT -TGAATAATTTATTTGTGAACGCTTGTAATTTTTCTATATTCTTTTCGTCATATGCGCTAGAGGCAGATTT -CAAAATCCCTCTTATTTGATAGTTTTTTAATTGTGCACCTATCATTCTTCCGAATATTTTCCCGTAATCT -TCGAATAGACTTTCTACAAAGTGTGTCACTTTATTGTTGTTGTACTTTAAATATATGACCTCTTGCATTG -TGAAAGTACGTTGATAAGTATAATCTTTAACCGTTACATCTTTGAATATATCATCATACAAAGCGTACTC -TTCTCTGTAAAAGCTATCTGCGATAAGTAATTCTTTGCTGTCACTTACTACGATTAAAACCTCGTTATCA -TAAATTAGTTTATATATAACTTGTTGCCAAAAACTATCGCTTGATAAGTCAGTATTTGGTTTTATATTTA -ACTTGTAGTAAACATCATTCTTTTGAATTCTATTACCTTCCAATACTTTAAAATGACTTTGAGCGACAGC -TCGCGCAACAAATTCAATACAACTATCAATCGCTAAACGTTTCACATACGCTTGTTGTGATAGATCTTCT -ATCATATCTAAATCAAGCATATATGTTATATCTTTCCTAGTTTTAAATATCTTTTCTAGAATACTCATGT -CTCACCTCCTCTATTAGAAATCTATACTCATTAATGCATCAAGCGCTTTAGACATGTCTTTGTCTACTAT -ATCGTCTGCTCTATATAATGCGTGAACAAAAGCCATGAACCCATCGGTTTTTCTTCTATTTTCATCTTTT -TTAATATATTCTTTATTACCATCGGGTTTAACCTTTACTGCAACATTATTAGTAAACCAACGCATCAAAG -GATTGTCTCCATATATTACGTTATGTTTCGCAAACATTGTATCGATACGTGGTGCAAGTAATCCATGTAT -TGCTTTTGGATTTCTAAGTACTTCAAGTTTTATGCCAGCATCCTCAAACGCACGTCTTACAATATCAGTT -CTATAATTATCAGCTATGACTTTTTCAAGCCCATATTTTTCTCTAGCCTTTAAAAACCAATCAACTATAT -ATTCAATTTCAATGACATCATCATCGACAATGGTCAATAATCCCATTTTTTCCCATTCTTTAATAGGAGG -TTCTAATTTGACATCATCCAAAAACCCTTGTCTTACAAACGAATGTCCTAACCAAATGTAATCATCGTTT -TTTCGGAATAATAGCCCTACACTTGCAAAATCTCGAATGTTTGCAAAGTCTAAACCACCAATACACATTT -GATTATCTAAATTTGGTATCTCTCTATTAGTCGCTAGTATTTCTTTCCATGGTGCTATTACTTTTTCAAG -GTCAACTTCAGGCAAATTCATTCGCTTAGTCATGAATTCGGGCTTATTTGAACGGTTGAATGGTAAATCG -TTATATTCTTCTTCAATCGTACTTAGCAGTGTTTTAGCGTATTCTGATAACGGTTTATGTAACATTGGGT -TCGCCTTTTCCCACGTCTGTCTGTCATCAACTTCTTTTGGATCGTCTAACTTACAATAAAAAGCAAACAA -TCTACTATTTTTAACCTTGCCACTTAATACACTTGCAATTTTGTGCTTCATTGCATCGATATAACCCTCT -CTAACAAAACCATCAGTACTTATATAAAACGTTCTTCTATTTTTCTTTTTACCTAATCCACCACGTTTGA -CGTTTACCATTTCAGGACCAAAGAAATAATGAATTTCATCAAAAATAACACACCCCTCACGTCCACCGTC -TTTGGTTTTTGTGTTTGATGTGTTATATCGAATAACCGATTTAGTTGCACGGTTTATTATTTTTGCTTTA -CTAACTTCATAAGGAGCTTTTGGCGTTTTACCCGTCTTATTTCGTTTGTTATCCATTAAAACGGTTCTGA -TTTCATCAAACGATGTTTTTGCTTGATCTTCACTATTAGCAACAATGGAGATGTGATATTCTTTAACTCC -GTGTAAGGGCGTAGAAAGAAAATCACTAATAGCACTTATTAGACCGTTTTTCCCGCCTCCACGTCCCATG -AAAATAGCAAATTCTGTAAAGAAAGCTTCATCTGTATTTTTATCTATAAGAAATATATTAGCTATGATAA -ACCTTTGAAATGGTAATGTTGGAAAATACCATTTTTCAATAAATTTGATACAATCCTCGATTTTCTGTTC -ATCAAAATATACATCATCTCGTGAATATATATGTTTTTGTAGATAATTAAAGAGATCAATTCTTTCTTTA -TTTAAAATTATCTTTCCTTGTTTCCACAAATTTATATATTCATCAACGTATTTATTACTAATCATAGGTA -ATCATCAGATGGCGTTTCTGTGTCTTCTTTCTCTTCGGGCAATAAATCCGATAATTGTTTGATTATTTTT -TGATATGCAGCATCTCTAGCATTAAATAGTTTGGCTACTGGTCTTTCCCTTTCATATGGTGGCGCCTTTT -CAGATTGAGTAAATAAATCATAGTCACCTTTTTCTTTTATGTCTTCCCACATGTAATCAAGCATTACACG -TAGCCTTGCTGCTTGAATAATTAAACCATCAACTACTTTTAATTTATTGCTAGGTATGTCTTTATATAAT -ACTTGCAGCCTTTCTTTTTCTTTAAGCACTAAGTTTTCATCAACTATAATCTCCATTTCATCACCTGCCT -TAAAATGGTTATAAGAGGGGGGTTATACATGGATTTTTAAAATTATCGCGAAGTCGAGCCCCTGCCCGTT -CCCCAAGTATTTTGATCGCTTTTGATTTTTTTGACCCGGGGGTATTTACCATTTTTCGTCTTTCCATTTA -TTTTCTTTTTTTATAAATCTCTTTTCTTTTTTGTTGTGACATTTAATACACAGTGTTTCTAAATTGTTTA -AGTCATGAGCAAACTCCGGATGATGTTCTAGCGATAATATATGATCTACATCCAACGACTTACGCTTGCT -TTTGTCATATGTCGTTAACTTGCCGTCTCTCTTACATTGTTGACATTCATAATTATCTCTTTCTAGCACT -CTTTTTCTTGTTGTTTGCCATTCTTTAGACTTATAGAATCGTATGCGTTCGTCTTTAGTCATCATAATGT -TTCACCTTATATAACTTAAGTAGTATCAAGACGCATCTATACTTGATGTGTAGTAATGTATTTACTATTA -GTTTGAACATGTTCATACCTCATAAATAAAAAGACACATCACATAGTGATGCGCCTCTTGTTCATGCGTC -GTATTAGCATTTAATAACTTTAAATATTAATCTGATACTAACATAATAAACTGTTTTAATGCGGACTTAC -ATAGGGTAAAAGTCCGCTACACATAACCAATATACTTTGCTAACTTATCGATCAGTGCATTCCTTCTACG -TAATATACTTGTCTTACTTGTACCAAAGTAATGTGCTATATCTTCCCATTCATAACAACCAATAGGACAA -TCCCAATATCTAAACCTTAATAACTCAAGCGTATCCTCATCACTTTCATCTATCAATCTATCTACACCGT -TAACTATATTTCTTAATGTATTGTACCTGTTATCACTAAACTTCTTTATTGCACATCGTTCAATCGGGTT -ACCCGGCAAATTACTTTTGCCAGCTCCCGCATTATCTGGTTCATGACTTTCAAGTAATTCATATTCTCGC -ATCTTCAACTCTCTTCGATAGTTATCGATGTGCTGAATGTATTCTTCAAGCTTTTTGATATCGTGTTTCT -CAATCTTTATCATTCAATGCAATACCTCCGATAATATAAATTACTTTTTAATATCGTTATTCATTCGCTT -TAATTCAATCCTGTATTCTTTTAACCCGTTGTATCCTTTAGTTTTAACTACTTCATCAAGTAGATAATCA -TTCATATATCTGAGCGCTTGTATCTCCCTTGCACGATCACTATTAATACTGATACAAACTAATAGCAATA -TAGCAAATACAATAGTCATAGTAATCCACATCACTCACTTACCTCCGCTCGAAAGACGTAATCACTCGGC -GCCTCTACATCATCATTAGCCGTCATCATAATATATACTTGCTCAGTTACATACTTACCTAACTCATACA -TCGCTAGTAAGAATAATAATCTTAGTATTTGCTTAATCATTTTTTATCTACCTTCTTTACTTCGTATAAG -ACCGGATATAAATTTAAAAAGTGTATTCTATATCCAATCGTCTTAACTTTTACTTTATCACCTACTTTTA -ACCTAGCTTGTATGTCTGCGCTATCAAACTTTCCTTTGAAGAATAAGTCTGAGTTTTCGATGACTTGTTT -ATCATCTAATACAATATAGAATTTGTCCTCTTTATCTTGTCTTTTGTTATATTTATCTGTAATTGTCCCT -TGATGTACTTCTTTGTTTTGGTAACTAGCCACTGTATAGATAGGCAATGCGACAACAAGTAGCAATGCGG -TTATACCGAATAATGACAGTATTCCAACAATAAAGATGTCGAACCCATCCATATTTTTAAGTTTTTTAAT -CATTTCCCACACTCCCTTATATTTTCAAACAACTGACCCACTTTAATAACTGCATCCCTTTTAACTTGTT -TCTCGTACTTCTCTTTCGCTTCTTCTTTACTCTCTGCCTCAACAACTGTAAACCTTTGATTACTCTTAGC -TTTAGTTATGTGTGTATGTTTACGTCCTGTTGAATCTTTGAATGTTGTGACTAAGTATTGTGTCACTTCC -CCAAAACCTCCTTGACTCGATCTAAGATGTCTTTACACTCCGCTACTTCCGAAGCCTTTTGCTCCACGTT -CTGAAACACTCTCGAATTCCTCCACTTGCTTTAGTTCAGGTGTCCATATAGGCACGATAACCAGTTGTGC -TAGTTTGTCGCCTTTGTTGATTTGGTAAATTCTTCTTATGCCTCTTCCATCTTGTACATAGTTACCTTTT -ATATCTAAAATGCTTATTAATCCATCTTCTAATTCAGCGTCTATATCATCATATAAAAAGGGTATTCCAT -CACGTTCTTCATCATTCTTAATATTAATCCCTAAATTGCCGTGATATCCGGCGTCTATCTTGCCTGTTTC -AATCACTAAATGTGTTTTACTACTTACACCACTACGGCTAGTTAATAGCCCGACATAGCCCTCTGGTATG -CTTACAGCTACATCTGTTTTAATCACTGCCTTTTCTTGTGGCTCAAGTACGACAGTTTCAGCTGAGAATA -TGTCATAACCTGCATCCGTCTTATGATTTCGTTCGGGCATTCTAGCATTTTCTGATAATAGCCTTACTTG -TAATGTGTTAGTCATTTTCCTGCTCCTCCTTGATTAAATGAATTGGTTTAACAACAAAGTCTATAAGACT -AATAATAGATCCGTCAGATAACTTGTAATGCGTGTCTCTAATATCGCCAACAAGTTGTACAATTTCTAAA -GTTGAATTTGTTTCTGGATTAAAAACCTTGTCTCCTACACTAATGCTCATTTTCCTGTTCCTCCTCATAT -TTATAGACAACTTGACCTGCCATAATCCCTACTGCTTCATCAAGTTCAACACCTTCTTTAACTGAATATT -GAATAGCATTTGTCATTCCCTCAAGTATTTCATCAAACGCTTGCGCTTTCTTATAAACGTCCTCAATCTC -TTTTAGTAATCCCTCTGTGTCATTACCGTTATACGCACTAGCACTTATAACTGATTGTTCAATTTGTTCG -CGATTATTCATTAGTGTCATCCTCCGTATTCGGATAAAATTTAATAAACATTTTATTACCATGCTTATCT -ATGGCAATTAACTCTTCGTATTCGTCGTGTGATACATACTTATCAATCACACAATTTTGTAACATTTGCA -TCATTTGCATATGCTTTTCAGCATTCATCATTTCCATCTCCTCTAAAATAAAGTTAGTTGCTTCTGTTCC -TCGTATTCCAAACCATGTTGCTTTATATATATTTCGAGCTCTTCAGCAGTATCAAATGTCTTTTTAACGC -TTTGCCAACCTGGCACGATATGCCCATGAAAGTAATAAGTGCCGTTTACTACATGAATATGTGCCACTCG -TTCGTTATCCTGATACAGATATCTCTTAAATCCAAAGAATTGATTTAGGTATTCTTTGCGTGCGTTATCT -GTCATGATCTACTTCTTAACTTTCACGAATATGTCGTTTTCCAACAGGTAGCACGCATAACGTCCTCTTG -GATGTTTCTGAGGTACATTAAACAAGTGTGGCTTCTTTCTTCTTAGCTCAGCCTCTCTCTTTCGCTTTCT -TTCCAATTTGCGTTCGAGTCTAGCTTGTTCCAGTCTTTCTATTGTTTTCTTTTCTCTGTACTCGCTTAAA -CGCGTACCTTCTGGTGCGTCCATTGCTTCATGTAGTTCCCAACCGTCTTTTACTCTCTTAGAAACCATTC -CAGCGGTTATACCGTGACTTTCTATTAATTCCATTTCAAATTTACTGAACCTATAAGGTTTATCGTTTAT -TGTTACAATTCTTGCTTTTCTCGCCATTTATTCCACCTCTTATATTTCTTCTATTCGTATGATTATTTTG -GGCTCAATTCCATAACGCTTTGAGCTAGTTATTTCTGCAATTTGATTGTCATCTTTCCACAAATAATTGT -TACAAGCGTCTAGAAAAGTAAAACTCTAATTCAATTTTTAATGCATTTTCTAGATTTAGCTTTGGCATTT -GATTTTGTAAATATTTTTTATGTTCTGTATATTTTGTAGGCATATATGTGTGTGCATATCTACCTTTTGT -GCTAAAACGCGGTCGAGGCGAGCCCATAGGTGCCTCGAAAGTTTCGTTAAATTTAATTTCTATCTCCATG -TAATCCCTCATATATATTCAAATAAGCTTGTTTGGTGTCCTAACTCCATTTGTTCATTATCAATAAGTGT -TTTTAATTCATAATCATCTAAGTACCAACGTCGACCATTGAATTTTGTGTGTTTTAATCCAACAACTAAA -TGCCGTACATCTTTAAAATGTGGTGTAACTGAAAACATTTTGTTGCCGTCATGATCAAATAGATAGTATT -TATCAAATGCATCCATTTTCAATCACTCCCATTTGCTATTTAGACGCTTAATAAAAGCTTCTCTGTCTTT -CTCAAGGTTTTCATCTACTTCCGGCGTTTTCGTTTCTCTCGTGCTGTCTGTGAGCCATTTGGGTGTTTTT -TCTTTTGATTGTTTAACGAAAGGTTTATAATTTTGTTTTTTGCTTTCAAGTTGTTGCTTTTCAAATGCAC -GTACTTGTTCAATAGATTTCAAGTTTGCATTAAGCCATGTATTCAAAATGCTTTTAGCATATCCCCAAGT -AACTTTATTTCTGTCTTTAGCGATTTTAAGTGATGCGGTAACTATTTGATCTGAATCATTTTCAAATGAA -TCAAGATAATAATTTAAATCGTCTAAATTGTAAGGAGTTATGAAACCGAATCCGTTATCTTGGAAGAAGT -CGAAGGCGGTTACCTTCTTCTTCTCATTCTCACCATTCTTTACATTATCCCCATTCTTTACATTCTTGTT -TGTGTTGATTTGTTGTTGATTTGTTGTCCATTTGTTGTCCATTTGTTGTTGATTTGTTGTCGTTTTTGCT -GTCGGAATTTTCTTCCATACTTTGATAAATCGCCCAATTGACAACGGTTATAACAGAAAATTTGTTGTCG -GACTTTACGACGATAGTTCCAAGGTTTTCTAAAAGCTTTATGTAGTCTCTTACTGTGGATTCTTTGAGAC -GTAACTCTTCGCTTGCTCGCTTTCTCCCGAACACAAATTGACCTTTTTCTAATTCAACAACTCGTCTGCC -AACAAGCTGTGTATGATCCTTATGACTAGCCTTCATAAGACAATATGCAAATACTTTGAATAACTTTTCG -TTCTGAAAAATAGGCGAATCTAATAGTTTTCTATGAAGTTTTATCCAACCAGTCATATACACACCTCACT -TTCAAACCGGTTAAATCAGAATGGTAAATCATCATCATTTAGTTCAATCGGACCATTTGCATTCGCAAAC -GGATTATCTTTTACTGGTTTGTTATTTGAATATTGCGATTGTCCACGTGTTTGTTGTACTTGTTGTTGAT -ATAAATCTTGTTGAGTGTCATTTGAGTTCTTCGGTTCTAAAAATTGAATACTATCGGCAACAACTTCCGT -AACGTATACACGTTGACCTTCCTTATTTTCATAGTTCCGCGTTTGTAACCTACCATCTACGCCCGCCAAC -GATCCTTTAGATAGGTATTTATTAACGTTCTCTGCTTGTTTTTTAAATACGATGATATTAATAAAGTCTG -CCTCGCGCTCTCCTTGTGCATTCGTAAATGTGCGGTTAACTGCTAATGTGAATGATGCTACATTTACACC -ACTTTGAGTGGTTCTTAATTCTGGGTCTCTAGTTAAACGACCAACTAATATTGTTCTGTTTAGCATTTAT -AAACCTCCAACATAAACGGGCGCGCCCGTCACTTTTTGTATTTCACTTTTAATGTATTTTGCATTTGAAT -TTTGACTACTTAAATGAATTAAATGTATTTCTTCGAGTCTAGTTAAATCATTTGCTTTTAACATTCCGAT -AGCATGTTCTAAGCTAAAATGAGACTCCATAATTCTGTTTGCTAATGTGCTGTGCACACTGCCGTTTTTT -ATGTTTTCCTGCATTTGTTCATAGATATAATTAACTTCTAACATCATGTGCGTAATGCCGTTAAATTTGT -ATTTCAAATACTTTGTATCAGTAACATACAGAACCTTATAACCTAATGTACTTTGTAATAAGAAAGCCAC -AGGCTCGTTAGCATCATGTTCGATGTCAAACGGTAGAATTGACCATGTGCCTATTCGCAGCTCTTGCTTT -GCCTTAATCGTGCATAAGCGATGACTTTCAAAATTCATAGCTTGTTGTGTTCCAGCAGTCATATAGCTGA -TTACACCATTGTCGACAAACTGCTTTGTGTACTTTGCATGATCACCATGTTCGTGTGTGATAAGACACCC -TGCTATATGTCTTGTTTTATATTTAAAATGCTTTTGAACACGTTCAAATTTTATACCTGCCTCAAGTAGT -AACGTAGTACGTCCATCATTTAAGACGTAGCAGTTACCACTTGAACCAGTTGCTATTGTTTCAATTAAAA -TGGCTCTTCTTCGCTTTCTTTTTCTGTTGCAGGTTCTTTTATTTCTTCAAAGTCAGATACATCAATAGGC -TTATCATTTTCTAATTCTGTGTATTGTGCTTCTTCAAGAACTGGTTGTTCAAAGTCCAATTGTTCTTGAT -TTGCATTTTCTTCAACTTCTGCGTCCAACACTTCTTTGCGTTGACGTTGTTCGGATTCTTGTGCGTATTT -GAAAATATTGCTATCTGTTGATGTGTTGATATAACGTTTAGCAGCTCTATTGATAACTGTTTTTTTAGCC -ATTTCTTCTTTGAAATTATTATGTGTTTTAGAATTTTGTAATGCTTTTTCATCTTTAATCATTGATGACT -GCATCCATGCTTGTTTAATTTGTTCAATAGTCATGACTTCAATATAGTTATCTCGTCCATCATTAAATAC -GATTGTGCAGTACGCACCGATAATGTTTTCTTTGTCGATGTTAAAGAAGTCTTGTTCGTGTTTAATCGCT -TTGATACGTCCTGTTTCTCCCATTTCTTGCTTGAATGTATCGCCTTTATAAATCACTTGAGCAACAACAT -CTTGAGCACCTGCATCACGTTTTAACATCATTACATTACCGTGATAGCTACGTTGTAACTGCATTTTGTT -GCCGTAAGGAATAAAGTAGCATTGATTTTTAGCTGGATTTAAACCTTGCGTTACCATGTCTAATAAGGCA -TTTGCTTTGCTTGTATCGTTACAACTCATTAATTTGTTATCTTGGCTGATTTGTAACCATGCTTGTTTCA -TGGCATTACTTGGTGAATAATCATTTGGCAATTCCAAATTGCCTTGTGACTCTAAAACTCTCACTTTGTT -TAATACGTTGTCAGATACGTTCTTTTCTTGTACTAATTGTTGTTCAATAGTTTGTAATTTATTATTTTCA -GTCATTTTATATAGTCTCCATTCTTAATTTTTTATCTTGTTCATTTACTATCAATTGAATTTGTTGTGAT -TCTGTTTTGATAAGCTCTGTTACTGATTCAGCATTATCAATAAATATTGGTGCTGTAACTTTAAAATGTT -TTGACAGTGTATTGATGATATCTAAGCCAACATTAATTCTTGAGGCGTTATTTAAACCGCTGTCGTATTC -GACGCCGTTAACCGTTGTGGAACATGTTTCTTCTAATTCGCCGTTAACTAAGGTATTGAATAACTTAAAT -TCAGCAATATCAAATTCGTTATTGATATTTTCAGTAAGCATTTTGACTTTTGTTGTTGTAAATTCTTTTA -AGATATAAAGGTCATGTGAATACTTTTCTTTTTCATCCAATAATCTGTCTTCTTCATTTCTTAATTCAGA -AATAACATCATCTAGATGTTTATTTGATTTTTCGATTGATCTTGACACTTCAATTTCTGATTTTTCTTGA -GTAAGTTCGCTTATTTTGTCATCTATTCCTGAAACTTTATCTTGAATAGTTTTCCTGATGTTAGAGCGTT -TTTGATTAATCTCATTTATCTCTAACATTACTGCTTTGTATTCGTCAGTTTGCGTAACGTCAACGTGAGT -CGTTTTCAACTTATTAATTTTGTTTTGTATTCTTGCTGAACGCTCTTCTGCTTCGTTGATTTTAATTTGA -AGATTATTATTGTCATCCTCTAACTTCTCGATGATTGGCTTTATTTTCTTGCCTTCTGAAATAATGTGAT -TGATAGATGTTTGTATTGTTTCTAATTCTTTCGATTTTTTTACATTGAATTTCTGTAAAGCTTTTTCTCT -TGCCTCATTCACTTGTTCAGTTGGTAACTGTTGACCACAACAACTACATACATTGTCATCAAGATGTTCA -AATTTTTGATTTTTAGATTTTTCTAAATCACTTTTTAGTCCTTTGTGATTTTCCAATAATTGATTACGTC -TATTTTCTTCATGTGTGATTTGTTGTTTGTTTTGCTTTAATCTCGTTTTAAGGTTTGCTACCGTTCCATT -TTCAACGTGTAATTCATTTGTTAAAGCATGGATTTTGTTCTCATTACTTGCGCTGTTATTGTCTTCTATG -CGTTTCAATTCTGATTGTTTATCAGCTAATTGATTACGCAAATTAATTTCTTCCTTACCGTTTTGAATAT -CTATACGCTCATTTTCAAGTTGCTCAATTTCTTGTTTGATAATTGCGTATCTATCGTTATCGAATTCTGG -TACATCCTGCTTATTTTGTTGTGTTTGGTTAATACGTATCGGAATATCTTTGATATCTTTGTTAATCTGT -TTTATCTTGTCCGTAAGAATCTTTTTCTTTGTTTCAATTTCATGATCTCCAAGAATATTATTTAATTCTT -TAAAATCATCATTTGTTTTAATGACATCCTCATCATTGATTGGTTTAGCAATTTCAAACAACAAACTTCT -TCGCTTCTTCCAATCTAGTAAGTTAAATGCTTGAGGGTTCGTAATTAACTTGAATACATCTTCATCAATC -AGTTCATCAATACGAGCTTTATAATCCTTTACTTTTATTGATTCATCATTGATATATTGTTTCTTCGTTC -GACTTCGTGAGTATTCCTTGCGATTCGTTTTTTGATTTATTGTGTATTTAGGATGTGACTCTTTTTTAAA -AGTCGTAATTTTTCCGTCGATTTCAAATTCTGCGAAAACAGTCGGAATTAACTCATAATTTTCTGCGTTT -TTTTCGTTTAAAGGTACAGGGTTAAATGATTTGGTTGATCCGTCCAAACCTTTATCGAAAAGCAGCCATT -GTAATGCGGTTGCTGTTGTAGTCTTACCAGTCGCATTATTGCCGTATATTTTTGCATCTTTACCGTCAAA -GTTAAATGTTACTTCTTTGATTCCAGCAAAGTTCGATATAGTTAACTTATTTATTTTCATATCTTTCCTC -ATGCTCCTTTTTTAATCTTCCGATGACCTCTTAGCACCTCGATAATTAAATTTTTTATTCGTTCATGGCT -GTCTGGATTGATTTCATGTATCTGCACAAGCTTATTGTTTGTTTTGTAACTGTCGTGATAGTGCAGGAAA -TTAATCGATAAGTATCCGTGATGATTACGTTCAATTTCCAATAATGCTCGTTGGTTTGACAAAGTATATT -CGTCGAATAACGTCTTAAAAATATTCAATATATTTCTTTCTGTGTCTCTCATGCTTATACCTACCATTTC -ATGACTAAGTTCATTAGTTTGTCCTGTTCATCTGTGTTATTTTCAATCCATTCATAAATACTTTGTTTCA -AAATATCTAACGCTGTGTATAGATCGTTCTCGTCAGAAACTAGTATCCCGTCAATTGAATTCCCCTCATG -ATCTAAAACAACTATTTCGACGCTATATGCTCGTTTCTTAACTCTTAATCGAAAATCAAAGCCATCTACA -TTAATTATTTTTTGACATACGTCACCCGTTTTGTAATACATCATTCTCGTCCTCCTTGTTGTCAGCTAGA -CCTAAAAGTTTTTTTAATTTATACATTTCGATAACATTAGCGATATCGTGGTAATCATTTTCGTTATTCA -ATAAATTAGCAAGACCTACAATATCCCCAAGCGCACAATGTGACGATGATGTAGTATCTCCATTGCTAAC -CCCTACAGTTGAAAAAAGTAAAACGGCAAATTCAGTTTCTTTATTGATTTCATTCACTACTTCAAACAAT -TCTCCATTCTTTTCAGCCAATAAATCTCTTAATTCTTCCTGCGTCATGTCTTTATAATTTTTAGTCATAG -TTGACTTCCTCCGTTTTTCGTTTTATATTGAAAATGAATTAATTTTGTTAATCGTTTGTCACTGTTACTT -GTTGGCGCAAGTAGCAGTTTTTTCATTCTTCATAAAAGTATTCCTTATAGAATATGAATGTTGCGATACT -TGCGAATCCTGCAATTGACCATGCTGTAGTGAAGTACAGCAATGGCATAAGCACAATCGCTAAGACTGTG -AAGCACAGTACTGCTAATAGGTAGCTTTTATAAATGTTGCTCATTTTATTCTCTCCTTATATATTTCATT -GAAATGCTCATCGACGAATTTATTCATCTTTCTTGCGTTAAATCTCCAGCGATTAAAATTCTCATCTGGG -TAATGCACAATTCCTTGCGCTCTTAGTTCTTTTTCAAATCTAGGATGAAATAGTAATCTGTCCTTGATAG -TCTCATCAGATGCAATTTTTAATTTCTTCTTTAAGTCACTCATGTTCCATACAGGGTCTAATGAATAACC -AATTAGCTCATCATATTCATCTTTTGTGATAAGTACATGTGTTTCAGGTATTGGAACTGTTACGTTTAAA -ATATGTGGCATTTCTATCTTTCCTTTCGTGTATAATGTTGTTATCTCCTAGTGAAAGGAGGTGATATTGG -TGTATATTGATCCTTTAAAAAATGTTCGTTTTTCTATTAATAACGTAATTAGTAATGTTGAAATTTCTAA -AAGTATGGCAATTAAACAATCTTTAAAACCTAAGTACCAATTAGATATAATTAATAGAAACAACATAAAT -TTATTTTCTGACTTCAAAGTAGACTTTCATCTAAACAACTTAATTGAAATGAATTTTAATTTGCGTAATT -CTTTTTCATCTCTAACATTTCAAAGAAATTTATTTTCTGAAGAAACGATAAAATCTTTTAAGGAACTCTA -TAGGTTTGATGATGAGATTGTACTTCAAGCACAACAGACCATTAGAGATTTTTATATCAATCCAACTGCT -ATCTCTACTTTGGCTGAAGCCATCAATTCGACCTATCCAATAAATGAGCAAAGTACCTACAAGAGACACG -ATGAATTTGTCAAACGTATCGAAAATGATTTTCCACATCCTTTCAAAAAGTTAATAAGATGGTCTAATGG -CATTGCAGCAGGTGCTGACATTCAAATCTTTGTAACAAACTATATAAACGAGAACGATTTACATATTCAA -AATTCATTGATAGTTGCTATAGTTTGTTTATTAAGTTTTTTATCGACCTATTGTTCACATTCTAAAAAGT -AATAATAAGGCCTAATTTAGTTAACCTTCTTTAACAACTCTGCAACTGCTCGCAACAATTCAGGGTTGTT -ACTTCTTTCTAAACAGTAACTAGCATGCTTTAGTAATTTGAGTTTTAATTTATTTTTTTCTTTCGCGATT -CTAAATTTTTGTAACATTTGTTATGCCTCCTTTGCATTTCCAAAAATTTAATCTAACTTAAATTCTTTTC -CATCTATTAATCCATAAAAGTTATTTTTTAAATGCGGATGTCTTTCAAGCGTCATTTCAATAAAACGCGG -GTCTATCATTAAGTCGTAGCCATCGTTGTATTGAATATTAACGGGTCGTCTATTACCGGCTTCGTCATAG -TAGTAATAAATGACTTTTTTGTTTTGAGCTTGCATTGTTCGTTCCTCCTATTAAGATGTTTGTTTTTCTC -CTAAAAACTTATTAACAAAGTATTGTTGTCCTTTGCCTGTTACTTTTGGCGTCTTACTAATTGATGTGTG -ACCGTCCGAATGTGTGATTGATGTTTCTTTAATTTCGAATAACTCACGTTCCATTGAATACTGTGTAGGC -ATGTTATAATCCACACCCTTGCGTTTAATAAGGAATCCGTTTTGACGTAACCACTCAAACAATCTGCGTT -GCCCGATGTTTATACCGTTTTGTTTAATGATCTTTGCTAACTCTCCAACTAAAATTGATGTCTTAGTAGT -AGCTACTGCATCTGCAAATACAATTTTTGGTTTATCACGTTCAATCTTTGTTTCTAATTGATTGATTGTG -TTGTTAGCAATTTTTAAAGCACGTTGCATAATCATTTCTGGGCTATTCCATGCTTTTTCAACTTGGATGA -AGTATTGTCTTGCACGTTTGCCAGGTTCACTACGTTGAATCATTGCAATCTCTTTTGCAGTGTCTAGTGT -GAGTGCGTGGTCAGTTTGATTCTGACGACCTCCTAGTGGGTTATGGACAAAAATGTCCGTGACTATATAA -TCGATATTTTCTTCAAATCCGTAATCACTCATTCTTTCAAACCATTTTTTGTATGGAGTCTTAACCTCTA -ATGCTTGATGAAGTTCTCGACCGCTGATTGCGATTTCTCCATTTTCTTTTTCTTGTATGTTGAACATTTC -GCCTATGTTCGATTTTGTTTGTAATGCTTGCATATTGTTTGTGCTCCTTTCTGCTATACTCCTATTAAGG -AGGTGAATGACTTATGACTGATGAAGCTAAATTTGTCCTTTTACAACTTTATTCAATTTACCTTGATAGA -ATTGACGAAGGTATGTCTAAACGTTCTGCATCTTATTTCGGTAGTGATGAATCCTCATTTAACGCTTTCT -TTTTAGGTTTTAATTTTGAAGACTATATCGATGCAGTTCTTGAATTAAAGCATAGAGATTTTGTAATTGC -TTCTGCTGAAGATGGCGGTTTTCTTGAGATGGCTCTTTCTCGAGAAGGTATCGCCTACTCAGAATCAGAA -TCCAAAAAAGATTACAAAACACTTATGGGTTTAATTAGAGATTTGAAAAAATTAATAATCTAAAATCCAA -TCATCTGCTATTAAATCGTCTGCGCTAGGCTGCCACCTTCCGGCGGCGGTTTGTCTTTTTTTCTTATAGT -GTCTAGATACGACTAGGCATTGATAACGCTGCAAATTAGTTGGTAATATCCCATACACATCTTGATTCTC -TCTCCTTATACTTATTCCTTTCTCCATCGCTAGCTTCGTTGCTACTTGAATGTTCATTTGTTATTCCTCC -TATTAAGATGTTTGTTTTTCTTTAAATGCTAAAATAATTGATTTCTTTTTATCATTCGTAAATACGAAAT -TTTCGTATTCATTACCTAAAAAAATATCATCATATTTAACATTAAAAGCACTCATATACTTAGAAAGTAA -ACTATCTTTAATGTTTGTAGAGTCTTTTTCCATATTTTGAATTGTACGTGATGAGACCTTAAATAAATCT -CCTAACTCTTTTTGAGTCAATCCGTAATCAGTCCTCAACTCTTTTAATGTTTTCATGTTGTCACCGCCTT -TCGTAAACCTAATATAATACGAAATTTTCGTATTGTCAACATTAAATACGTTTTTTTCGTAAAAAACTTT -ACTATGATATGAAAATTTCGTATAATAAGAAAAAAGGAGGTAAGTAATATGAACAAAGAAAGAAATATTA -TTATAGCCAAAAACATTAGAAAATTTCTCAACGATTCAAATATGTCTCAAAAGAAACTTGCTGAACTCAT -TAACATAAAACCATCTACTTTAAGCGATTATTTAAATTTACGTTCCAACCCCTCTCACGGCGTTATACAA -AGGATAGCTGATGTTTTCGAGGTTGGTAAAAGCGACATAGATACTACATACAAAGACGATAACGACATCA -CTTCCATATACAACAAACTCACACCTCCCCGCCAAGAAAACGTACTTAACTATGCAAATGAACAATTGGA -AGAACAGAATTCTAAAGGAGATAACGTTGTAGATATTAATTCATATAAACAGGAGAAAACTCCAGTTAAC -GTCAATGGTTGCGTCTCTGCTGGTGTAGGAGAACGTTTACACGATGAAACGCTATTTACTGAAATGGTTA -AAGGACCTATCCCCACACACGATTTAGCGTTAAAAGTAAATGGTGATTCTATGGAACCTATGTTTAAAGA -TGGCGAAATCATATTTGTGGAGAAAACTCACAATATAAAGAATGGACAAATTGGTATATTCATCATTGAA -GAAGAAGCGTACGTTAAGAAAGTCTTTGTTGAAGATGATAGATTGACTCTAGTTTCACTAAATAAAGATT -ACGACGATCTACACTTTTATAGAAATGAAAGTGTGAGGTTAATTGGAAAAGTTATTTTATAAAAGGAGCA -CTTGCAAATGAAAAAATATGATATTGCAGTCTTAGACTTTGAAACTATGAATGAACATATGAACAGCCCT -TGCGAAGTTGCTGTATCTTTAATTAAGGATTTATCAATAGTAAAAGTTTATTCATCTTATATTAATCCTC -CTAATAATAGATATAACTTGAAAAACGCTAAAATACATAAAATACCTGAAGATGTCATATTAAAAGCACC -TAAATATCCAGATATTTACCAAGAAATTCTCTATCTTTTAAAAGAATCACATTTAATTATTGCTCATAAT -GCACTTTTTGATATTTCAGTATTAAAAAATACTAATAATTATTATGACTTACCTGTTCCAAACTTCATGT -ATGTCGATAGTATAAATATCTTTAGAAGCTTCCACGCAATCTCTAGTTTTAAATTAGAAAATTTGTGTAG -CTTATATGATATCGATAAAGAAAAATTACATTCTGCTAAATTTGACGTGCTAGCTTTATCGAAGATGTTG -ATATCACTCGCTAAAAACAATAAGCATTATAGTGTATTAAAATTAATACATTATATGCCTAAGCAATACA -TTAGATTTAGCAAATATTCTAACTCTCCAACTAAACTTTTCGATTCAGGATTTCAAAAAATTCATATGAA -AATATCTGAGATTAATAAAATAGAAGTGGAAAGTGTAATCCCTATTTTAAAAGATAAAAATGTTGTTTTT -ACAGGTAATTTTGACACTGAAAAACAAGATTTAATGATATTAACTAGAAAGAAAGGAGCTTATATCAGAA -GTGACGTAACTGCAAAAACAGATATTTTAGTCGAAGGTGTTCAAGATGATAAATATAAAGATGTGAACGG -ACTAGTTTCAAAACAACGAAAAGCTCGAGAATATGTTGGAAATGGTGCAAAAATTCAATTTTTAAATGAA -GAAGACTTAATAAATTTAATAAAGGAATAATAACGATGATCAAAAAAATTTTTACAAAAAAACATGTATT -CTTAGTTATAGAAGATGAAAACCATAATCACAGTGATGCTGTTTTTGGAAAAAGTATATTACTTTCAATT -TACGTCGGTGTGAATAAAAAGACTAATTCTAAATCAGGGAAATTTATATACCTTGACAGATCTAAAAGAA -TCGTTAGACAATCTGATATCACCAAAATAGAATCAGCTAACGAAAATGATGTAGATTTTTATAATTTACT -GAAGAAAGAAAAGGAAATTGTTTATTCCAAAAATATAGTAGATAAATACAATTTAGCGAACTATATAATT -TACTACGAAGTTAGTACTAAAGAATAAACCAATCCATTATTTCATAATACTAACCTTAAATTTACAGAGG -TTTTAATTATGAAACATGAAAAAAGCAATCTTAACTTTAAGTCTTATATTTATTACCTACTATCTCACTT -TTAAATATATGTGGATTAAAGAATTGAAGTATTAATTATGCTTATTTAAAAAAGACGTCTATTTCAGCAG -TGTTTGAAAGGAAGTTTATAATGAAAATAACTAATTGCAAAATAAAAAGAGAAACTGTAATATACGAAGT -TTTAACTAGTGGTAATCAACCATTCACTTATGAGTTACCTAAAGATTTATCGTCACATAATGCGCGTAAA -TACTTGGAATTTATTTCACAAAAATTAGATGGCGATAAGTTAACCAAAGAAGATTCATTATGATTTTACT -AAACAAAAAAACGCCTACTAGTGTGAAAACGTATTGATTAATAGCGCCTATATGGAGTTTTAATATAAAA -AGTAAGCAAAGGAGAAATGAGAATGAAAAGATTGTTAGGTTTATTATTAGTGAGCACGTTAGTGTTAAGT -GCATGTGGAAATGATGAGAATCAGGAAGAATCTAAAAAAGAAGTTAAATCAAAAGAAAAGAAAATTGAGA -AGGAAAAGGAAAATAAATCGAAAAAAGATAAGGAAAAAGAAGTTGCAACACAACAACAACCAGACAATCA -AACCGTTGAACAACCCCAATCACAAGAGCAATCGGTTCAACAACCGCAACAACAGATACCACAAAATAGT -GTTCCTCAGCAAAATGTCCAAGTTCAACAAAACAAAAAGCAAAAAGTTGATTTAAATAATATGCCTCCCA -CTGATTTTTCTACAGAGGGTATGTCTGAGCAGGCTCAAAAACAAATTGAAGAGCTTTCAATGCAAAAAGA -CTATCATGGTCTGTCACAAAGAGAATACAATGATAGAGTTTCTGAAATTATAAATAATGATAATTGATTC -CACAGGGTAGCCCGCCTACCCTTATTATTTTTTGCCAATTTTGAGGAGGGAACGCATGAAAACACGTTGT -TACGATGGTAAAAAATGGCAATATGAATTTAAGCATGAAGGAAAAAGATACCGTAAGAAAGGTTTTAGAA -CAAAGCGTGAAGCTAATTCTGCTGGACTAGACAAGTTAAATGAGTTAAGAAGTGGTTTTAATATAGATAA -CTATATAACTCTTGAAGAATACTTCGAAAATTGGATTAAAACATATAAACAACCTGTTGTTAAAGAAAAT -ACCTACCGTCATTATAGAAATGCATTACAACATATACAAAAACATAAAATAGGTAAAATGGAGTTATCAA -AGATAAATAGACAAGTTTATCAGAAATTCATAAACGACTATTCAAAAGAACACGCAAAAGAAACTATAAG -AAAAACAAACGGTGCTATTCGGTCAGCTTTAGATGACGCATTATATGATGGACTTATTTTTAAAAACCCC -GCTTATAAAGTTAATTATAAAGCCGGAAAACCTACGAAGTCAGAACAAGAAAAATTCATCTCGGTAACTG -AATATGAAATACTAAAAGATCACGTCAGAAAGAAGAGAACTCGTTCATCATTAGCGCTATTCATAATGAT -TTGTACGGGTTGTCGTGTCAGTGGTGCAAGAAATATAAAGATTGAGCATATCAACCAAGTGAAAAACACT -ATATTTATTGACGAGCGAAAAACCAATACTTCCCCTAGATATATCAGTATCGCTAAATCTGATATGAAAC -ACATTATGGACGTCATAAGTACATTTGCAATTAGCTATGATGGTTACATTTTCAAAGAAGGCGGATCTAT -AATTAACCTTCATGCTATCAATAATGCTTTGAAATCAGCCTGTAGAGTCAATAATATACCAATTATTACA -TCGCACGCATTAAGACACACTCATTGTTCTTATTTACTAGCAAAAGGTGTATCTATACATTACATTTCTA -AAAGATTAGGTCATAAAAATATAGCAATAACTACATCTGTGTATTCTCATTTGTTAGAAGAAAAATTTAA -TGAAGAGGACAAAAAAACAACTAAAATTTTAGAAAGTATGTAATTTAGGGACCCATTAGGGACTCCAAAC -CCAATAAATACTGTTGTTACAAGGTTTCTATGTATCCAAACTGGGGGGCAATATAAACGCGCTTATTTAA -TCGGACAATCTTCTTATATTAAAAATAATGATGTCGTAATATTCAATGAAGCATTTGATAATGGTGCATC -AGACAAATTATTAAGTAATGTGAAAAAAGAATATCCTTACCAAACACCTGTACTCGGTCGTTCTCAATCA -GGTTGGGACAAAACTGAAGGTAGCTACTCATCAACTGTTGCTGAAGATGGCGGCGTAGCGATTGTAAGTA -AATATCCTATTAAAGAAAAAATCCAACATGTATTCAAAAGCGGTTGTGGATTCGACAATGACAGTAATAA -AGGCTTTGTTTATACAAAGATAGAGAAAAATGGTAAGAACGTTCACGTTATCGGTACACATACACAATCT -GAAGATTCACGTTGTGGTGCTGGACATGATCGAAAAATTAGAGCTGAACAAATGAAAGAAATCAGTGACT -TTGTTAAAAAGAAAAATATCCCTAAAGATGAAACGGTATATATAGGTGGCGACCTTAATGTTAATAAAGG -AACTGAAGAGTTCAAAGATATGCTTAAAAACTTGAATGTAAATGATGTTTTATATGCAGGTCATAATAGC -ACATGGGACCCTCAATCAAATTCAATTGCGAAATATAATTATCCTAATGGTAAACCAGAACATTTAGACT -ATATATTTACAGATAAAGATCATAAACAACCAAAACAATTAGTCAATGAAGTTGTTACTGAGAAACCGAA -ACCATGGGATGTATATGCCTTCCCTTACTACTATGTATACAATGATTTCTCAGATCATTATCCAATCAAA -GCCTATAGTAAATAGCACTCAACAAAAAACTCGCTTCGTTCTAAAAAGTCGAAGCGAGTTATATTGTTAA -AATTTGAATTGACTAACTTTAAACTGATATCTCATCGTTTTCATTTCTTTAACTTCCACTATACCTCTAC -ATGCCTCATATGCACCTAACAATATCAAGTTAGGTTATCCATAATAAAAGATACAGTGTCTCAAGCTATC -TATCCCAAAACAAATAAATAGTTACCTACTACGTGATACGCAGCAGGCAACTTGCGAAAACTTATTTCTG -TTCTTTATCATTAATTGTTTTAATTAATTTTACATCATGTGTCTTCCAATCAACTTCATATAATGCTGAT -AATTTTTCTTCTTTTTGATCTACATGGTTTTCACCAGACCAATAGCCCCAGAAACCATGTTTGTTCCAAT -CTAATTTAAAGTCATCCATTGATCGTTTATAATGAACGATAAATCTTGATTTACCTTTATCATTTTTATC -GTGTGACATTACAGCTAAAAATTCTGGATTAAATCCTTCTGACACAGTTACAGGCATTTTATTTTTAGGC -GTGAAATTATCTTTCGCCCATAGGTTTCCGTTTCGAGTTAATGAAAAGATTTCACTTTTCACTCTATCAT -CACTGTCATTAGTTAGTTGTCTCGTATGATCATGTCCCATATTATTGATAGAATGTGCTTCTACTTTCCA -AGCTACACCTTTATTTGTTGTAGGTTGATCAATAAGTGTGCGGTAAGATGGTTGTTGATAACTAATTGTC -TCTGAATAATTTTTCTCTTTTGTAATATTTCCAGTTAAACCACCACGATTAATTGAAAAATCTCCACCTG -TTTTATAGCCATACGTATATTTAACTTCTCTTGATTCATCTTGATTTTTAGGCGCAAAATCAGTCACATT -TGTACTGTTGTTGTTATCATCAACGTTTTGAATCGAGACTGAATAAGAACCAGGCCATCTTAATGTACTA -TTCCAATAACCATTTGGATTTAAAATTTTCAATCCACTGCCAATTGTACCTTTCGCCTTAATAAATACTG -TCTCTTTATCATAATTTGGCTCAGTAAGAAAATTAAATTGTAAGCTTTGTGAGATTTTTTTCTCTGTATC -ACTCGTTGTAGCCGTACGTGTATACATCTTCGTATCACCATCAAGGTTCTTCTCGGAAACTGTAGTAATT -TTAGATTTAATTTCTGCATAAGAAGATGCTGGAAATACAGTTAAAGCTGTTGATAGCGCTAAACTACAGA -TTGTAATATTTTTACATACTTGTTTAATCATTTGTCATCCGTCCCTTCTACTTTATCCTTCTTTATATGG -TTTATTTTGATCAGAGTATTTTTCAACGACTTTAACTGTTTTATTTTTCCAATCTACTTCATAAACTACA -ATAAATCTTTGACCATCTTTATTTTGTTCTAAAATTGGTTGTCCATAATGTATACCAGGTTTATTTTTCA -AAATATCTTGATTACGTGTATATGTAACTTCGAATCGTGTTTTTTCATTTGACTTTTCATTAGAAATATA -AGTTAAGAATTCTGGGTTAAATCCGCTTCTTACAAGCGCAGGATATCTATATTTTGATGCAAAACTTAAT -TCAGGATTTTCTACAGTAGATAATCTAGTATTTCTATAGAATAAGAATTCATCATTTCTGTTCTTAATTT -CATTCCCGTATTTTAAATCGTTGGCAACAACAGACCAGTGTACGTGTCTATTATTATTTTTACCGCTCGC -AATTGTGTCGTAATTTTGTTGGTTATAACTGATAGATTTAGAATAGCTATTAGATGATGTTCGTCCAATA -CCTTTTGTTGAATCGAATTTACCACCTAAGCTATAAGAAAATGTACTATCTACTTTCGCAGTGGAAATTT -TATTTTTTGGCAGTTGATCTAAAATTTCAGTTTTAGGGTTTCTTTGTACTTGAAAATCAACGTGATATTC -ACTCGGGTATTTTAACCATGATGCGTTTGTTTCATTTCGATGAGATTCAAACTTTAAATTTGAATGAATT -GACCCTTGTTTTTTGACAAGTAAGACATTCTTGTCATATGTTGGATCATCGATAAAGTCGAATTGTAAAT -TTTGTAAAATATTTGTCTCTTTATCGTATTCAGATACAGTACGCTTTGTAACTTTACCGTTTTTACCAAT -ATCATCAGGTCCTGGTGTATTTTTATCTTTATCATTCACATTACGCTTTTCTTTTTGTTGAGCCTTATCA -ACATGTTCTTTCTTAGTTTGGTCTTGTGAGTCTTTATTCGCTGAATTCGCTTCTGTATTTGCTGCTGATA -ACAATAAAAGTACACATGATAATGATGACGCAATGAATACGCGCTTTTTATTTTTCATTGTTATAACCTT -CTTTCTTATATTTAATATTGTTGATAGGTATCGACATGTGAATAATATCACAAAAACTAAGAATATATAT -TTAACTATTTATTAAATGATTTTGTTTATATTATTAAATACTTTTTTCGATATAAAATTAATGTGTGTAC -AAAGTGATTAAATTAGTAAATCGCATTATTTAGTAGTTAATCACCATGGATCTATATGTTATACATGCTT -AAACTAAATTTTTTTCATACAATCCGACTGGACGATTCACAATGAAAAAAACACTTACTATCAGTGATTA -TTAGACTACTGATACAAGGTGCATATTTTAAGATGTAATCATGAACATAGCACGTCACTTTGTTACTTAA -AATTAATGTTTAAATACAATAATTATGTTTATATAAATATATATACTACTTTGAAAAGGTGTGAGCTTAA -TGACAACTTTTAGTGAAAAAGAAAAAATTCAATTACTAGCAGATATTGTTGAACTACAAACTGAAAATAA -TAATGAAATAGACGTTTGTAATTATTTAAAAGATTTATTCGACAAGTACGATATTAAATCTGAAATTTTG -AAAGTTAATGAACACCGCGCCAATTTCGTTGCAGAAATCGGTAGTGGCTCTCCCATACTTGCATTGAGCG -GTCATATGGATGTTGTTGATGCAGGAAATCAAGATAATTGGACTTATCCCCCTTTTCAACTCACAGAAAA -AGATGACAAATTATATGGTCGAGGCACAACAGATATGAAAGGCGGTCTGATGGCTTTGGTCATCGCACTC -ATTGAATTAAAAGAACAAAACCAATTACCTCAAGGAACCATTAGATTACTCGCTACTGCTGGTGAAGAGA -AAGAACAAGAAGGCGCCAAATTATTAGCAGATAAAGGCTATTTAGATGATGTTGATGGTCTAATGATTGC -TGAACCAACTGGATCTGGAATTTATTATGCACATAAAGGGTCTATGTCATGTAAAGTAACTGCAACTGGT -AAAGCTGTCCATAGCTCAGTTCCATTTATTGGTGACAATGCAATTGATACACTGCTTGAATTTTATAATC -AATTTAAAGAAAAATATGCAGAGCTTAAAAAAAATGATACTAAACATGAGTTAGATGTTGCTCCCATGTT -CAAATCATTGATAGGAAAAGATATTTCTGAAGAGGATGCAAATTATGCATCTGGTCTTACAGCTGTATGT -TCGATTATAAATGGCGGTAAACAATTTAACTCTGTACCAGATGAAGCTTCACTTGAATTTAACGTAAGAC -CAGTTCCTGAGTATGATAACGACTTTATAGAATCGTTTTTCCAAAATATCATTAATAATGTGGATAGCAA -TAAGCTTTCACTCGATATTCCAAGCAACCATCGACCTGTAACAAGCGATAAAAATAGCAAATTAATTACT -ACGATTAAAGATGTAGCTTCTAGTTATGTAGACAAAGACGATATATTTGTTTCGGCGCTTGTAGGTGCAA -CGGATGCTTCCAGCTTCTTAGGAGATAATAAGGACAATGTTGATTTAGCCATTTTTGGACCAGGTAATCC -ATTAATGGCACATCAAATCGATGAATATATTGAAAAAGATATGTATCTGAAATATATTGATATTTTCAAA -GAGGCTTCCATTCAATATTTAAAGGAGAAATAAGAGGTATACTGTCAGCTGCCCTATTCGCGTGCTGGCA -GTTTTTTATTGCGAATTTTAAGTTGATAGAAATAGCGATGAATATTGTTTGAATGTAAATATTCAAATAT -CAACAAGCATATTTCCATTGAATAGGTGATGTAAAACTGAAACTATAGCGTTGATTTGTCATACTTAAAT -TGCATTGTCTGTTGAAATTGGGAATCCAATTTCTCTTTGTTGGGGCCCCACCCCAACTTACATTGTTTGT -AGAATTTCTTTTCGAAATTCTCTGTGTTGGGGCCCCGCCAACTTGCATTGTTCGCAGAATTTCTTTTTGA -AATTCTCTGTGTTGGGGCTCCTGACTAGAATTGAAAAGTAATACACATCAGTAACATTTCTATTTTCATT -TATGATATTATCTAATTATTAATTTATAATATAAAGGAGTATGCAATTAAAATGAACAAAGTCCACAAAC -CTTTATATTTTTATTTAATGCTTTTCTTCTCTACAACTATCATAGGTGCACTTTTATTGTATTTACCTTT -CACTGGTAAAAAGCCAATATCTTTTTTAGATGCCCTATTTATAGCTTCAAGTGCATTTACAGTTACTGGC -TTGTCCCCAGTTGATATAGGATCACAGTTTAATATACTTGGTGAGATAGTAATACTATTATTAATACAAA -TAGGTGGTCTAGGTATCGTAACCGTAACCCTATTGACACTAGTATTTTTAAATAGAAAGATATCAATGAA -AAATAGATTTTTGATTATGGTTACATGGAATATTGACGAACCTGGTGGTGTTATTAAGCTAATTAAACAC -TTGGCTATTTATAGTTTAGTCACTGAATTAATTGGTATGATTTGTTTGTGTTTATCTTTTATACCAAAAT -TTGGTATAGGCAAAGGATTATTTTTAAGCTTATTCACATCAGTATCAGCTTTTAATAATGCTGGATTTGC -CCTTTTTAAGAATAACTTAATAGATTATTCTAATGATCCAATTGTCATTATCACAATCTCAATACTCATA -ATATTTGGAGGTATTGGACATTTTGTCGTAATAGACTTTATTAATTGTAAAAAATTGAGTAAATTATCTT -TACATTCTAAATTAGTCTTAACTACAACTAGTATCCTAATAATTATAGGAGCTATTACATTCTTTTTATT -AGAACAGTTTAATACTATGCAAAATATGGGACTAGTTGAAAAAATCGGAAATTCTTTTTTCCAATCAATA -ACAACACGAACAGCGGGCTTTAACAGTATTGATATAGCAAGCATTAACAAATCTACTGCTTTAATGTTAA -TGCTACTTATGTTTATTGGTGGTGCCCCTCTCAGTGCAGCTGGAGGAATTAAAATAACTACTTTTGCAGT -AGCGTTTATTTTTGTATTAAATTATATACGTAAAGAAAATAATGTTTCAGTATTCAATAAAGAAATATCT -GACAAATATATAAAACTATCTATTGTTACCATTAATATCTCATTTCTATTTATCAGTATCATTACTTTTA -TATTATCGATAATTAATCCGAACATATCATTAATCAAGTTATTATTCGAAGTGGTTTCTGCATTTGGAAC -AGTCGGGTTAAGTATGAACCTTACCACAGAATATCATGGTATTACTAAAATAATTATTATATTCGTTATG -CTTTGCGGTAAAGTAGGACTATTAACTTTATTAAGAACATTTATACCACCAAAAAGTCCAAAAAATTACC -GCTACACTAAAGGACAAATTTATCTATAAAATAACTATCCATCTTTAACAAGAAATGAACTAGTGTTTTA -ATCTATTACATTTAAAAAACTACCTAAACAGGTAGTTTTTTTGTTTTTTATTTATTTTAGGACGACAAAA -CGTCTTATATCTTTAAAAAAGCAAATGCATAAGTACACCTTTAAAAAGATCTACTCAAAACTAAACTATA -CAATGATTTAAATATTTAAAACTTATTTTTTACTACGTTAACCTCAATTGTTGAAAAGATGAATGAAAAT -GATAATTTAATAATGTATACTTTTGATTGTTTAAACATGTACATTTTCTAAAATTCTAGAGATAATTTTA -TTGCTGTGAACAACAATGAAATTATCTTCAGACATAAATACGGATTTTGAAGTTACTACTCTTTCATATT -TACAAAAATTAATAATTGTTATGATGAACTTAAACATGAAAATAAGCAAAAGTGAAATAGCTAGACACAT -GGGTGTTGATAGAAGAGCAGTTGATAAATATTCAAATGTCTTTGACCTTTATTTTATAAATTCTTCCATA -AAAATAACCACACTTCTAAATCAATAGGTGGGTGTGGTTTTGTGCTTTATATTTTAAGAATAGCCATCTT -CAAATTATTTTCACTTGTATGATCTTTGATTTCTGTAAATCCAAATTTTCTATAAAATTCTCTTAATCTA -TCTACATCCTCATACTCTATCCAAATATATGAACCGCCAAATATGTTCGCACCTTCTAAAACTTTCACAT -ATGCTAAAGTTAATAAATCGTTTGCATTTATGGATTTTGTAGCCAATGCTTCTTCAGAATAATTTTTTTC -TATTTGAGCAATTAAGTATCCTTGTATGATTAAATTGTCATTTCCACTGTGAGTTTCACCCTTTTGATAT -AACTTCTTCTTTAACGTGTTTGATATTTTATCTAACATACGTTTTGTAAAAAACTAAGGGTTTATTGCTA -ATTGTAAAATAGCCAACTAGTATTTGTTTGTTTTTGAATTGTGAAAAAACTAAATGAGTTCTAGACAGGT -TTTGTCTATCAAATGCTATAGACTTATTTTTCAAAAATAAATCAACATCGTGTGCTGATTCACTTCCTGA -AATTGATATTGTCTCAAATGAATTTAGTATATTTAAAACTGAAGGTATCTTTCGCTTAACCTCTTGCTTA -TCACCTGTTAACAATTCTGAAAGTGATATTACTTTTACAGTCAATTACTTCGATAATCCTTCAATAGATT -TTCAATCTCACAAGTTGATTTTATTTTAGTCGCTTTTATGTTTGTTTTGTTCACATTACTATTATTTTCG -TTAATCTCCATTGCATCTATTAGTTTTTGCGCTGATTTTTTTGTGAATTTATAATCAGTAGTAATACTTA -TTGTAGCCATACTACTCACTTCCTTATTTTACTTCATTTGACAACCAAGTATACATTGTCTACGTTGTCT -TCTTGTTTACAATGTATCATGAAAGCATCTTTTCGACAATAGATTCAATAAATTTCTTTAGTGTATATGA -TTTTACACTTAAACCAATTTGTTTCTTAGCATAAAAACACCCATGCTGTAACTAGTGTGGGTGTTTTCAA -AATGCAGACAGCTTCTTATTACAATACGCAAGTGAGTCCTCTGCAAAGCCGAATTGATTACCGGAAATCT -AATTACATTACAACATACTAGAAGAAACTCCTTATATACTCAAAAGGTATACTAAACTTCTCTATATAAT -CTATATGATTTTAACATTGAAAAAACCCCCCATTATGAATCTAAATAACACATCAGCACATAATAAAGAC -GCCTTCCAAAAGTTTTGGTAACTAATGGAAAACGTCTTAAAAACATATTTTCATACGCTCTAATATTTAT -TTGGAACGAATCATACTCGTGCATAATGTAATTTTCTAGTTAGTCAAAACTAGAAACTGTTTTACATCAT -TCCTGGCATGCCACCCATGTTAGGTTGGTCATTATTTTTTTCTGGAATTGATGCCACAACCGCTTCAGTT -GTTAAGAACATTGCCGCAACACTTGCTGCATGTTGTAATGCTGAGCGTGTTACTTTAGTTGGATCAACGA -TACCTACTTCTAACATATTAACCCACTCGTTTGTAGCAGCATTAAAACCAACACCTGGTTCTGCATTTTT -CAAGCGTTCAACGATGACAGAGCCTTCTAATCCTGCATTTTCAGCAATTTGACGAACTGGTGCAGTTAAT -GCTTTAAGTACAATATTCACACCTGTTTCAATGTCGCCTTCAGCTTCAATTTCACTTACTTTTTGGTAAA -CATTTACTAGTGCAGTACCACCACCTGCAACAATACCTTCTTCAACTGCTGCACGTGTAGAGTTTAAAGC -ATCTTCGATACGTAATTTACGTTCTTTAAGTTCTGTTTCACTTGCTGCACCTACCTTGATAACTGCAACA -CCGCCTGCTAATTTAGCTAAGCGTTCTTGTAATTTTTCACGATCAAAGTCAGATTCAGTTTCTTCAATTT -GAGATTTCAATTGGCTTACACGTGCATCAATGCTGTTTTCGTCACCGTCACCATCTACAACAGTTGTATT -ATCTTTAGTAACTTCTACTTTACTTGCAGTACCTAACATATCAATCGTTGCATCTTTAAGGTCTAAGCCT -AAATCATCTGTAATCACTTGCGCACCAGTTAAAATAGCTAAATCTTCTAACATTGCTTTACGACGATCAC -CGAAACCAGGTGCTTTTACTGCAACAGCTGTAAATGTGCCACGCATACGGTTTAGCACGATATTTGTTAA -TGCATCGCCTTCAACTTCATCAGCTACAATTAAGATTGGACGATTAGATTGAACCACTTGTTCTAATAAA -GGTAAGATATCTTGGAAAGAAGAGATTTTTTTATCTGTTACTAAAATATATGGGCGTTCTAATTCAGCAA -CCATTTTATCTGAATCAGTAACCATATACGGTGATTGATAACCACGATCAAATTGCATACCTTCAACCAC -TTCAAGTTCAGTGTTCAAGCCATTTGATTCTTCAATTGTAATGACACCATCGTTACCTACTTTTTCCATA -GCTTCTGAAATATAGCGTCCAATTTCTTCATCTGCTGCTGAAATCGCACCTACTTGCGCAATTTCATTTT -TATTTTCAACTTTTTGAGAATTTTCATGTAACGCTTCAACAGCAACTTTAACTGCTTTGTCGATACCTTG -TCGTAAACCAACTGGGTTTGCACCACTTGTAACATTTTTCAAGCCTTCTTGAATCATTGCTTGAGCTAAT -ACTGTTGCAGTTGTCGTACCGTCACCAGCAATTTCATTTGTCTTATTTGCGACTTCTTGAACTAGTTTAG -CCCCCATATTTTCATATGGATCTTCTAATTCGATTTCTTTAGCAATCGTTACACCATCGTTCGTAATTAA -AGGTGCTGTAAACTCTTTATCTAATACAACATTACGTCCTTTAGGACCAATCGTTACTTTAACTGCATTT -GCTAATTGGTCAACACCACGTAACATTGCTTGACGTGCATCTTCAGAGAATTTCAATTGTTTAACCATAA -GTGATAAACCTCCATTTGTTTAGTCATATTTCATTTTCGTTCTTTACAATCTATCTATGAATTATATTCT -ATATTATTCAATTACCGCTAAAATATCTTCTTCATTTAAAACTAAATAAGTCTCATTATCTCGTTTAACT -TCTGTACCTGCATATTGTTGGAACACGACACGGTCCCCTTCTTTCACTTCAGGAGTCACTCTTGTACCAT -CATTTAATAGGCGTCCTGTTCCTACTGCAACGATAACGCCTTCGTTTGATTTTTCTTTAGCACTATCAGT -TAAAACAATACCACTTTTAGTTGTTTGTTCTTGTTCTTTTTTCTCAATAATCACACGATTTCCAATTGGT -TTTAGCATGATTGTTCCTCCTTAAAAAACCTAAAGTTTAGCACTTAACTTTATAGAGTGCTAACATACAT -TTATAATAATCAAATTTGGTCAAAACTTCAAGTCATAACCTTTCAATTAAGTTTTGTAACTTCAAGTTAT -TTACGATAAAATAAATTATAAACAAATATTTGGAGGAAAATTATGACAAGACTATGGGCATCATTGCTAA -CTGTTATTATTTATATATTGTCTCAATTTTTACCGCTTCTCATTGTAAAAAAATTACCATTTGTACAATA -TAGTGGCATAGAACTGACTAAAGCAGTCATTTACATACAACTTGTTCTATTTTTAATCGCCGCCACGACG -ATTATTTTAATTAATTTAAAAATTAAAAATCCAACAAAATTAGAATTAGAAGTTAAAGAACCTAAAAAAT -ATATCATTCCATGGGCATTGCTTGGATTTGCACTGGTAATGATTTATCAAATGGTAGTTAGTATTGTATA -TACTCAAATTTTTGGCACACAACAAACAAGTCCAAATACTGAGCGTTTAATCGTTATTGCACGTAAGATT -CCATTGTTTATCTTTTTCGTATCAATCGTTGGTCCTCTATTAGAAGAATATGTATTTAGAAAAGTAATCT -TTGGCGAATTATTTAATGCAATTAAAGGTAATCGTATCGTCGCATTTGCTATTGCAACGACTGTAAGCTC -ATTAATCTTTGCATTAGCGCATAATGACTATAAATTTATTCCTATATACTTTGGTATGGGCGTCATTTTT -TCATTAGCATATGTATGGACGAAACGACTTGCTGTTCCAATTATTATTCATATGTTACAAAATGGATTTG -TCGTTATATTCCAATTACTTAATCCTGAAGCTTTGAAAAAAGCCACGGAACAAGCGAATTTTATATATCA -CATTTTTATTCCATAATATAAAAAACGAATCACACACGGATTATCGTCGCTGTGATTCGTTTTTATTTTT -CTTTTTATTTCGCTTTACAAATAAGAATAGCATGATTGAAAATACCACCATCATAGAACATACAATTGCT -AGCCAACTTTTACTATATGCAGTTGACGCACTTTTCTTATTATCTTCTTGTTTTTTTACAACTGTAAAAT -CATCTTTTTCATGAGGCTCAAATGAACGTTGTTTTGAATCCGGCTTATCTTCGGGCTTTTTCAAATCTGG -CATTGATCCAATTTCGCCAGTAATTAATGCGAGTACTTGTTCATCTAAATTACGATAGTACCTTTCTGAT -TTCAATGGATTGAAATATTGGAATCTAAAGTAATTCGATTGCTGTTGTAATCCATTTAAATATGCATTTC -CGCTGAAGTTTTGTTTACGGATGATATTGTAGATATCTTCATCAGTTACCTCACCATATTCTTTCCCCAA -TTGATTAATTTGATTTAAAATATACGGATTATACTTGTAAGCCCCATTCGCCAAGGCTAAAAATCGTTGG -GATACAAAATCATTACCAGTAGGATTTTGTGAGTTTCCTTGATTTCCATTTGGTTGCCATTGACCTTGAT -TAGATCCATCTGAAGCATTTGGGTTCCATGTCCCCCCATTTTTCGAGCCACCAGATTGATTGGAATCCCC -AGGTTGATTGGGATTTGGAGACGGATTTGGATTTGGCTTATTAGGGTCTGGTTTTGGATTCGGATTCGGA -TTTGGATCTGGTTTTGGATCCGGATTTGGCTTCGGTTTGTCTGGATCTGGTTTTGGATCCGGATTTGGTT -TCGGCTTATCTGGGTCTGGCTTTGGTTCCGGATTTGGTTTCGGCTTATCTGGGTCTGGCTTCGGATTCGG -ACCTGGGTTTGGGTTATTTGGGTCAGGTTTTGAATCTGGACTTGGGTTTTGGTTGTTTGAGTCTGGCTTC -ACATTATTCGAATCAGGATTAGCATCACGACTATTCGAACCAGTTCCTTCATTACCAGCTTGATTTGATT -CGTGAGGTGTCCCAGTCTCATTATTATTCATTTCACTATTTACTGATGGTGAAGTTACATTATGATTCAA -ATTAGTCGTTGGCTTTTCTCCATTTAAGTTATCCTTTGCTTCAACTGTGTGCGTTGCAAGCCCTAAACTA -CTACTACTACTTAAAATTAACATACTTGTTGAAAGTAACATTTTCTTAAACCAATGATATGACATTTCAC -GAGACACCTCCCTTTTTCATATAAGTATTAATCTAAGTATAATAAATATGCGTTGAAAATGCATTTATAT -TTGGAATTTGAAAATGAATATTAATATTCTTGAAATTTTCGTAAATATTACTTTACAAGTTCGAGTATAA -ATTTTATACTAAGTCTATTAAGTATTCTTTACTAAAGAAGGAGTAATGATTATGGGTTTATTTAAAAAAG -ATAAAAAAGCAATGACTTTTGACAACGCAATGGAAGAAAGACGTTCAATATATAATTTGAAAGATTCAAT -ATCAATTAGCGATGACGAATTAGAATCAATGATTGCACATGCAGTTAAACATGTTCCTTCATCATTTAAT -TCTCAATCAACTAGAATTGTTCTCTTATTAAATGACAACAATAATAAATTTTGGGATAACACAAAAGCAA -TTTTAAAAGAAGTCATGGGAGAGAATCGTGATTTCGAGCCAACTGAACAAAAAATTGATAACTTCAAACA -TTCATACGGTACAATTTTGTTTTATGAAAATCAAGATGTTGTAAGTGGTTTACAAGAACAAATGCCAAAC -TACTATGATAATTTTGCAATATGGTCAACTCAAACAAATGCCATGCATCAATTTGCAATTTGGACTGCAT -TAGCTACTAAAGGCATAGGTGCTTCATTACAACACTATAATCCACTTGTTGATGAGATGACTTCAAATGA -ATTTAATATTCCTAAAAGTTGGAAACTTATTGCTCAAATGCCATTTGGTGATATTCGTGAAGCTGCTGGC -GAAAAAACATTTAATCCAGTGGAAGATCGTTTCGTAATAAAAAAATAATCAATATATTGTTGGGAATGGG -ACAGAAATGATATAGAATCATTAGTTATTCATTATGTAGTAGTTCTTACACATTAGCCGCTGCTAATGTG -TACTTAAGAATAGGAATACATGAGTAAAACTCATGTATAAGAAATACTAATTTCTAAAGAAAAAGTATTT -CTTTACGTTAGAGCCCACCCCAACTTGCATTGTCTGTAGAAATTGGTGTTCCAATTTCTCTATGTTGGGG -CCCCATCAACTACTGTCAATATAACATTGTAGAGCCTAGGACTTTGATTTTATGTCCTGGGCTTGTTTTT -TGCGTTTCAACATAACTTTTAGTATGTTATATATAAGATCTATCAAGGATGTGATGTTATGAAAGTCCAA -ATTTATCAATTACCGATTATTTTTGGAGATAGTTCTAAAAATGAAACTCAAATAACGCAATGGTTCGAAA -AAAATATGAATGCTGAAGTAGATGTAGTCGTTTTACCTGAAATGTGGAATAATGGCTATGATTTAGAGCA -TTTAAATGAAAAAGCAGATAATAATCTAGGACAAAGTTTTTCATTTATTAAACATTTAGCTGAAAAATAT -AAAGTCGATATCGTAGCTGGGTCAGTTTCTAACATTAGAAACAATCAAATATTTAATACAGCTTTTAGTG -TGAATAAAAGTGGCAAACTGATTAATGAATACGACAAAGTTCATTTAGTTCCTATGTTAAGAGAGCATGA -ATTTTTAACCGCTGGCGAAAACGTAGCTGAACCCTTTCAATTGTCTGACGGTACTTATGTGACCCAACTT -ATCTGTTATGATTTACGTTTTCCAGAATTATTAAGATATCCTGCTCGTAGTGGTGCTAAAATTGCATTTT -ATGTGGCACAATGGCCTATGTCACGTCTTCAACATTGGCATTCTTTACTAAAGGCACGTGCAATTGAAAA -TAATATGTTTGTCATTGGAACTAATAGCACTGGATTCGATGGTAACACAGAATATGCTGGTCATTCGATA -GTTATAAATCCAAACGGAGATTTAGTTGGAGAATTAAATGAATCCGCAGATATTTTGACTGTAGATTTAA -ACTTAAATGAAGTAGAACAGCAACGCGAAAATATACCTGTATTTAAAAGTATTAAATTAGATTTGTATAA -ATAAAAAGCACACGAAATAATATTTAACACATGTCATGACTAAACATAGATTTATGAGACGATTTTTCAT -AAGCCTATGTTTATTTTTTTATAATAGATAACTCAGTAAGAACCAGTTTCGCCCTTAGCAAATGAATGAT -TTTCTTAATTAAATTGATTATTTTTTTGACCTTTTCCAACATTAGACTTATTCATATATTTTAACGGTGG -ATCTCATAATGAGGATTAACTCTTCCCTACTTTATTACAATAAAAAAAGGCCGCGAGCTTGGGAGGGGCT -CACGACCATACTTATTATTAAGGGAATGTTTTACAGTTATTTTTTCAATCTATTTTTGGGGATGTTATTA -ATTATGAAAAAAAATTTTATTTATCAAATAATGATAAATCGATGTTGTTTACGATAGCTTACATGCTAGA -AATAATTATCTGTAATGATAATTAAGAAAAATACATAGCACTGAGTCCAAGGAAACTAACTCTACTAGCA -AATGTTACTCACTTGCTAATTTTACATGGTTATTAAGTTGGGATGGCTTAATAACTCATACTTTTAGTAC -TATACGAAGATAACAAATTTACAATGAAAGTAATTAATTATTCATCTTATTTTTTAGTGAATTTGTTCAC -TGTGTCGATAATCCATTTTACTAAGTCACCGATTGTTGAAATGATATCTTGTGCCATTGAAATCACTCCT -TCCTTAATTAAGATAAAAATTCTTAAAATTAAACAACTCATCAACTATTTTCCATCACATCTCTGTGATC -TAGTTATATTAAAACATGCTATAAGCATTTATTTTCCATTTTTTCTTAACTAGTCGTTTTTTATTCTTAA -CTGTAAATTTTTTTATGTTAAAATATTAAATACAAATTACATTTAACAGTTAAGTATTTATTTCCTACAG -TTAGGCAATATAATGATAAAAGATTGTACTAAATCGTATAATAACAGTGAGGAGAGTGGTGTAAAATTGA -ATTATTTTGATAACAAAATTGACCAGTTTGCCACGTATCTTCAAAAGAGAAATAACTTAGATCATATTCA -ATTTTTGCAAGTACGATTAGGGATGCAGGTCTTAGCTAAAAATATAGGAAAACTGATTGTTATGTATACT -CTTGCCTATATTTTAAACATTTTTATCTTCACTTTAATTACTAATATATCGTTTTATCTAATTAGAAGGT -ATGCACATGGTGCACATGCACCTTCATCTTTTTGGTGTTATATAGAAAGCATTACACTTTTTATTGTTCT -ACCTCTATTAGTACTACATTTTCATATTAATGAAACACTAATGATGTTTTTAGCATTATTAAGTGTTGGC -GTAGTGATTAAATATGCACCTGCAGCTACTAAGAAGAAGCCTATCCCGGCAAGGCTTGTAAAGCAAAAAA -GATATTTTTCAATTATAATTAGTACAATTCTTTTCATTATCACACTTTTTGTAAAGGAACCATATACCCA -ATTTATTCAACTGGGTATTATTATACAAGCTATTACATTACTACCAATATACTATTCAAAGGAGGACTAA -ATTATGAAAAAATTACTCAACAAAGTTATTGAGCTTTTAGTTGACTTTTTCAACAGCATCGGTTACAGAG -CAGCCTATATAAATTGTGATTTTTTATTGGATGAAGCTGAAGTACCAAAAGAATTAACTCAATTACACGA -ATAACTATAAGAGAAAGTGTGATAGTAAGTGGAAGCATTAAATGATTATAATTACGTTTTATTTGTAATT -GTTCAAGTTTCATTAATGTTCTTTATATCTGCATTTATTAGTGGAATACGATACAAAAAATCAGATTATA -TATACATTATTGGAATAGTGTTATCTTCAGTATATTTCTTTGACAAAATCAGAAGTATTTCACTAGTTGT -TATAACGATTTTTATAATAATTTTTCTCTATTTTAAAATTAGACTATATTCTGTATTTTTAGTAATGGTT -ACTCAAATCATTTTATATTGTGCAAATTTCGTTTATATCATTATTTTTTCATACATTATAACAATTTCAC -ACAGCGTGTTTATAGTTCTACCAATCTTTTTGGTAGTGTATGTATCAATTTCTTATGCACTTGCCTACAT -TTTAAATAGAATATTAAAAAGGATAAATGGTACATACCTTTCTCTTAATAAAAAATTCCTTACTGTTATA -ACTATTGTTATAGTAATAACATTCTCTTTGTTATTTGCATATTCGCAAATTGATGCGAGTGATGCATCAA -CAATCAAACAGTATTCGCTTTTATTCTTGGGAATTATTATATTACTGAGTATCTTAATTTTTATTTATTC -TCAATTTACTCTTAAAGAAATGAAATATAAACGTAATCAAGAAGAAATTGAAACCTATTATGAATACACA -TTAAAGATTGAAGCAATTAATAATGAAATGCGCAAGTTCCGTCATGATTATGTCAATATCTTAACGACTC -TTTCAGAATACATTCGTGAAGATGACATGACCGGTCTTCGAGACTATTTCAATAAAAATATTGTACCTAT -GAAAGATAATTTACAAATGAATGCTCTTAAGTTAAATGGTATTGAGAATCTTAAAGTACGTGAGATTAAA -GGTCTTCTAACAGCTAAAATTTTACGTGCACAAGAAATGAATATACCGATTAGTATCGAAATACCAGATG -AAGTAACTCGCATTAATTTGAATATGATCGATTTAAGTCGCAGTATTGGTATTATTCTTGATAACGCAAT -AGAGGCATCAAGTGAAATTGATGATCCTATCATTCGAGTTGCATTTATTGAAAGCGAAAATTCAGTAACG -TTTATTGTTATGAATAAATGTGCAGATGATATACCACGTATTCATGAATTGTTCCAAGAAAGTTTTTCTA -CTAAAGGTGAAGGTCGTGGTTTAGGTCTATCAACTTTAAAAGAAATTGCTGATAATGCAGACAATGTCTT -GTTAGATACAATTATCGAAAATGGTTTCTTCATTCAAAAAGTTGAAATTATTAACAACTAGCCATAAGGA -TGTGAATGTATGAAAATTTTCATTTGCGAAGACGATCCAAAACAAAGAGAAAACATGGTTACCATTATCA -AAAATTATATAATGATAGAAGAAAAGCCTATGGAAATTGCCCTCGCAACTGATAATCCTTATGAGGTGCT -TGAGCAAGCTAAAAATATGAATGACATAGGCTGTTACTTTTTAGATATTCAACTTTCAACTGATATTAAT -GGTATCAAATTAGGCAGTGAAATTCGTAAGCATGACCCAGTTGGTAACATTATTTTCGTTACGAGTCACA -GTGAACTTACGTATTTAACATTTGTCTACAAAGTTGCAGCGATGGATTTTATTTTTAAAGATGATCCAGC -AGAATTAAGAACTCGAATTATAGATTGTTTAGAAACTGCACATACACGCTTACAATTATTATCAAAAGAT -AATAGCGTTGAAACGATTGAGTTAAAACGTGGCAGTAATTCAGTGTATGTTCAATATGATGATATTATGT -TTTTTGAATCATCAACAAAATCTCACAGACTCATTGCCCATTTAGATAACCGTCAAATTGAATTTTATGG -TAATTTAAAAGAACTGAGTCAATTAGATGATCGTTTCTTCAGATGTCATAATAGCTTTGTCGTCAATCGT -CATAATATCGAATCTATTGATTCGAAAGAGCGTATTGTTTATTTTAAAAATAAAGAACACTGCTATGCAT -CGGTGAGAAACGTTAAAAAAATATAATAAGATAATAAAGTCAGTTAACGGCGTATTCAATTGTAAATCTT -GTTGGATTTTAACAAGATAACTAGCAAATGCACTGTATAGCTGGCTTTTTATTTTTTAATAGCAAAAATT -TAATTTAAAGCGTAAATTTAAATAAAACGATACAACGTTTCATTGTATACCTATTCCTATTACTACATAA -TTTATCAATTTCTATTTCACTCTACAATCCTATAGCGCAATTTTTAACAAAATATACTAAATTTGAAATC -GACAGTTTCCATAAATAAAATGCTACAATATCCTACCCAATAAATCTTATTTTGCTCGCAAAAAAACAGT -GTAGCACAAGATTCAACTTGTTTCCTACACTGTTTTATAAATGAATTATTTAAAATGCTTGTTCAACCTC -TTGTAATGTTGGCAAACTATTAATAGCACCATACTTCGTTGTCACTATTGCAGCAACGCGATTGCTAAAC -GCTAAAATTTCCTCACCTTCATTTTCAAATAACTGAGTTAAATTTAACACATCGGTTGCTAAAATCCTGC -TAATAACTGCACCAATAAAGGCATCCCCTGCCCCAGTTGTATCAACAGATTTTACCTTATAGCCACTATG -ATAATGATTAATACCATTTTTCAAATATACGGCAGCACCATCTGCTCCTTTCGTATAAATGACTACAGTG -ACATTACCTGTAAATAATGATTGAATGGCTTCATTTTCATCATGAATACCTGTAATAAATTCTAATTCTT -CATCTGAAACTTTTACAATATGCGCCAATGGCAAAAAGGTATGAATAGTTTGTCTTAAATCTTCTGCGTT -ATCCCATAATGGCAATCTTACATTAGGATCAAATACGACAGTACCATTTGCATTTAATGTTTTGGTAATC -AATTGATAATGCGCATCTCTCATTGGACTATCGACCAAATCAACAGAACAAAAATGTACTACATCGTTTT -CATTCACATCAATATCATTCACAAAACTTGGTTCAAATAACATATCAGCAGAGGGCTTACGATAAAAAGA -AAAATCTCGCTCTCCCGCTTCAGTCAAACTCACAAAAGCTAACGCAGTGTTTGCTTCATTCGTGCGATAC -ACTTTTGATACATCTACACCAATACTTGATATCGTTTCAATAATGCTATCTCCAAATGCATCATTACCTA -ATTGTGTAATCATATGCGCTTGTTGTCCTAACTTTTGAACTGTACAAGCTACATTGCATGGCGCGCCACC -AATTTGCTTCGTAAATGTTTGAACATCTTTTAAATTCGCATTTGTAATATTTGGAATAAAATCAATTAAC -GCTTCTCCTATTGAAAATAAACGTCTCATTTATGTTCATCCTTTAAATCATATTTAGTAAATTGTAAATA -TACTTGCCCTGATTCTGTTGATGTTTTAATACCTAGTGCGTCTTCTGTCGGGAAAATTCGAGATGTCAAA -ACACGTTCCCCATCATTACAGAAAATTTCTATACTAGATGTATCAACAAAAATTTGTAATTGCTTTAATG -GCGTTTCTAATATCGTACTACGCGTCGTACCTTCAACATTTGTAGGCAATAAACCACTGTCGCTGCGATC -TAATGTTATTTTATTTTCACGCTTGTTATAAGCGATTAATGTTGAAGAAGTCTTAGACGTACGTAATTCA -AAGTATACTTCGGTAGCATCATTATCCAAAATATCTATGATTAATTCATACTGTTTACCTTCATACGGAT -GTAATTTTCGAGTAAATTTATTTGCGTAGCCTAATGCTGTCTCTTTATTGTGACGTAATTTTTCCAACGC -TGGATATGGACGTTGCTTAAGTTGACCATTTTCTACATTTAATACACGAGGAATTGTTAAGCAATGGGCC -CATCCTTCATTATCTGTAGGATATTCGATTTCCGGTAACCCCATCCATCCAATTAGTACTCGTCGGCCTT -TTTCATCTAAAAATGTTTGAGGTGCATAGAAATCAAAACCATTATCAAGCTCGACAAAATTTTCATGTTC -ATATGTTAACTTTTCAATATCAAACTTTCCAAGTATATAACCACTTTGATAAATATTGTTGAACTGATCG -CATTTTGGTTCAATACCTTGTGGACAAATAAGTATGACATCTTGATTATCTACATTAAAGTAATCAGGGC -ATTCCCACATATATCCAAAATCATCTAACTCTGTATTTATTTCACCTAAATAATGCCAATTAATTATATC -TTCAGTATTATAAAGTAATAATCGACCTTGCTGATCATTATTTTGTGCGCCAATGATCGCATAATATTTC -TCACCATATTTAAAAACTTTAGGATCTCTAAAATGACTCGTATATCCTTCTGGTTGCTGGCTAATTACTG -GCTTTGGAAACTTTTCAACTGAACCGTCTTCTTTCAATCGTGCGATCATCTGACTCGCATGGCGTTGCCA -ATGATTATCTCGATGATTTCCTGTGTACATATAATATAAATGCCCGTTATATTCAAAAGCGCTACCGCTA -TATACACCATGGCTGTCATATTTGGTATCTGGGTTTAAAATTGGCCCTTCAGCTTTAAAGTTTATTAAGT -CATCACTCGTGTAGTTATACCAATACTTTAAGCCATGTACTGCGCCTAATGGGAACCATTGATGTGAAAC -ATAATACTTTCCTTTATAAAAAATAAGTCCGTTGGGATCGTTTAATAAGCCCGTTTCTGGTTGTATATGA -AATTGTTGACGAAATTTTGATTGATCAACTTGTTGTTTTAATGTTTTAAAATAATCAGTATCAACGTCCT -CGATTCGTTGATAACGTTCTTCTCTAGTCCATTCGGTCATAATATTCACCCAGTCCTCCTTTTATAATTT -ATGCTGTTAACAATTTATATTCTATTATAGCAAATTTTACCTACGTTCTTTAACTTTTAACCTATCCATT -TATACTTTTATGGTATCGGTTTCACATTTATTTTAAAAAATACAGCGTCTAAATATTAACATCTACTGTG -ACGCTATATGGCATATCTTGCTTTTTAAGCATCTGTTGTATCTCTTCCATCGCGCATTGACCAGCTTCAA -AATAATTATAATGAATTGTTTTTATCGATGGAGACACTAATTGTGTCATTGGATCACCACCAAAACCATA -TATTTGATGTGGTTTCATAACATCTTTTTTATCAGAATAATATTTATAGGCAGCTAATGCAATCGTATCA -GTTGCTCCAACAACCGCATCTACTTGCTCTACATTTTCCAAAACATTTGCAACATCTTTTTGTGCTTCCA -CATAAGTAAAATTTGTTTCATGTATATTAGGTTTAATTTGATATTTGGCTAACTGGTCAAGTAAACCACG -TTTTCTATGTATACCAACTGCAATATCTTTTTCACTCACACTAAACACTTCAACTTGTTGATATCCCTGT -TGACCAATCCATTCACCTATAATTTGACCTGCTTTATAATCATCATGCACAATACTATGCAGTTGTTCAT -GTTGTTGACCAACAATAACGATTGGTACATTCATTTTATTAATGACTTCAATATGTCTCTCTGTTATGTC -TGTAGCCATTAAAACAATACCATCTACTTTACTGCGTGCTAATGTTTCAAGCGCTTGTATTTCTGCTTCG -ATATTTAAACCTGTATAATTTAAAATTAATTGTGATTCATATTTTTGGCATTGTTTTGCCAATCCTTTGA -TTGTTTCATCTACTGCATATGAATTCATTCTAGGTATAATGGCACCAATAAGGTGTGTTTGTCTCGCTCT -TAAGCTTTGAGCAAATTGATTCGGTTGATAGTCATGTTCTGCTATAATTTTTGTTAATTTTTCACTTGTT -TTTTTACTGACAGATCCATTATTTAAAAATCTAGATACTGTACTTTTTGAAACGCCTGCCAATTTGGCAA -TATCAGATATATTTTTCATACTTATTCACCTATCATTATTTGTGACACTTAGCCTTATTTTAGCATATGT -GTAACCGCTTTAAATAATATTTCTGCTTCTTTCATAAAAAGATTTCAAAATAAAATTTCTGTATAACAAA -ATGTCCCAACATCAACCTTTAGTTAAATGTCAGGACAATGAATATTCTATGTATATATAAATCTAATATC -GAATATGTTTATTGAATCTATTTAACTCACCTTCAAAGTAAGCATGTTCACCATGAACAATCTTGTCTAA -CCCTATATTCGTTTCTTGTTCTGTAACAGATAATGGTGTAATTAATTTAATTACTTTCGCAATAATAAAC -GTCATGACGATGCTAAAAATTACAACTGCTGTTACACATAATATTTGCACAAGTATAATATGCACGTCAC -CAGTGTAAATAAAACCATTCTCAATATCTGGATTTGCTTTTTTACTTTGGAAAAAGGCTGTTAATACTGC -ACCAATAATACCGCCAACACCGTGGATACCAAATGCATCTAATGCATCATGATACTTTAATTTTACCTTT -ATGTAATTGATGACAATATAACAACAGATACCCCCTATTAAAGCCATGATTGTTGCACTAAGATATGTTA -CATATCCAGCTGCAGGTGTAATAACAACTAATCCTGCTAATGCACCGAGTAAAAGTCCAAGTAAACTTGT -CGTCTTTTTAAAAATATATTCTAAAATTAACCAACCAATAGCCCCGGCACTGGCAGAAATAACTGTATTC -GTAAATGCAAGCATTGCAATTTGATCAAATGTAAAAGCACTGCCTACATTAAATCCATACCAACCAATCC -ACACGAATATACCGCCAATCAATGTAATGATAAGATTATGTGGTGTTGATTCAGAATGTTTGTTTCCTTT -TCCAATCATTATAGCTAATACTAAACCAGAAACACCTGATGTAATATGAACGACTGTACCTCCAGCGAAA -TCTAATACACCGAGTTTGTTAATCCAACCGCCGCCCCAAACCCAATGTGCTACTGGACTGTATACAAGAG -CAGTCCATATTACTACAAATAATAAATAAGGAATAAACTTCATTTTCTCAGCGATTGAACCTGATAATAT -TGAGATTGCAATCGTACAAAACATCATTTGGAATAACATAAATAATGCCAATGGAATATGCGGACTAATA -TCTTCTTGTGTCGCGAAACCTACATGATTAAGAAATGTATATTCCCAGTTACCAAACCATAAATTCCCTT -CCCCAAAACTAATTGTAAAACCTACTGTTATCCATACAAATGTAACAAGCACAATTGCTGCCATACTTTG -CATGACAGTATTTAGCGCATTTTTAGATTGAACTAACCCACCATAAAATAAACTTAATCCTGGTGTCATT -AGCCAAACTAATAATGTACACAAAAACATAAATATCGTATCGTTAAGATTCATACTTACCACTCCCTTGT -TTCCATAATAATCTGATAATTTATAAAAAGCAAAAATGCGTAAAGTTTTATTACATCTTTTGGAACAAAA -TGTGCCACGCTATATAAAAAATGATTTCATGAACTAAAACAAAAAAGACTACTTACTCGCTTTTAAAGTA -GCGGAAGTAGCCATAGAATCTAATATCAATTTTATTATTAAAATGATAACGTTAAACTTTTTGAACTGTA -ATTGTCCATGAAGCATTATCAATTTGTTCATAGTTTGTTACAGGATATCCATTTTCTGCAGCCCAATTTG -GAATAGCTTCCGTCGCTTGTGTGCAATCAAAATCAATTTTTAATTCATCTCCAGATTGCAATGTTGCCAT -TTTCTTTTGCGCTTCAATTAACGGAAATGGACATACCATTCCTACTGTACCTAATTCGTGTATCATAGCT -ATTTCTCCTTTTCCAATCACTTTTATTTGATCAACATCATTGGCATAATAACCTTCTATACTATTTGCGT -TTGCTGTTGGACCTTTGCAGATTGTTGTTGTACTTTTTTCATTGGACGAACAAAGATAAAATGACTCATT -GTCCATACCCCAACTATCATCGATGCTAGCGCAATCCATCCTTGCCAAGTCATCGTTGCCGTTTCAACCA -AACCGTTACCGATAGAACAACCACCAGCAACTGACGCACCAAATCCCATACATATACCACCAATAGCACT -GTTTCGTATTGTAATCTTGTCTGGCAATCGCCATTTAAATTCTCTTGCTCCTCTAGCTGCAATATATGAA -CCAATGAAAATTCCTAGAACTAAAAAGACACCCCAATCAATAAATTTAGTTTCACCTGTAATCAAAAAGT -GTACTAAATTTGCTGATGGCGTTGTTATACCTAAACCGTCATTTCTTCCAGTTGATGCACTCATTGGCCA -AGCTAAGAGTGCGATAAGTCCAATTGCAATTGCTGCAATAAATGGATGGTATCGTTTTTCGAAAAGGTAA -TATCTAATACCTGTATAACGTTGCTTTAGTTTTGGAACAGCAACTCGAACTTTCTTATTATTGAGCGTTC -TTACAACGAGAAAAATGGTGATTATAGTTAATATAACGACTAATCCCCAAAACGGAATGCCCGTTGTTTG -AGACATATCACTATTTACATTCGTTGGTTGATTAATTTTATCCATTACTGGCTTTAAAATCCCTGTTTTA -GTGATTGCTGCAGTAACAGCATATAATACTAATGCAATCCAACTACCAATTAGCCCTTCACCAGCGCGAT -ACCAAGTACCTGTTGCACATCCTCCAGCCAATACTATTCCAATTCCAAAAATAAAAGAACCTATAACTGT -TCCCAATATTGGAAAACTATGTGCAGGAATTTGTAAAATACCTGTTGTCGTCAAAATCAATAATCCTATA -CTTTGAACAGTAATAGCGATTAATAATGCATAGAACATCTTATTATTCTTTTGCACATACATATCTCGAA -AGCCACCTGTTAAACAAAATCTTGTTCTTTGCATCACAAAACCTAAGAGTCCCCCGACAATTAAGCCACT -AAAAATCATCCACATAATCCTAACCCCCCTAATTTCCGATAAGTTTAGTATGTATTATAGGCGATGATTT -TCTTGTTTTCAACCTTATACACAATATTTTTGATATTTATATTATGTTCATATAAGAAATGCGATTAATT -ACGATTCATCATTATATCTCTACGTGTTAATTTATTAACCTATATTATATTTATCAACACAACAGTTTTC -CCTTTCATTTTCAAACATAACAGAAAAAGCCTGAGACATACTTAGTCCCAGACTGTTCTATAATTAATTA -AAGATATAACAAGGTTAATCATTCAAAGCTAACATCACATTTATTCACTGTAATTTTTCATAAAGAATAA -TAATGACTGTAATTCTATACCTAAGTCAATTTGATGTACTTGCACATCTGAAGGCGTATTTATTCTACCA -GGAGTGAAGTTTAAAATACCTTTCACACCAGCTTGGACGAGTTCATCTGCAACTTTCTGTGCAACTCTTT -CTGGTGTAGTTAGAATCACAACATCTATTTCTTCCTTCTTCAATGTTGTTATTAATTCATCGTTATCTTT -TACAATAACGTTCCCTATTTTCTGGCCAATAACATCTTCTTTTACGTCAAACGCTTCTGTAATCGTCATA -TCGTCATGTATTGAAAAGTTATATGTGAGCAAAGCTTTCCCTAGGTTCCCAACTCCGACAATTGCGATTT -TGATCATGTCACTCTCGCTTAGTTCAGATTTAAAGAAATCCAATAAACTATCTATATTATATCCGTACCC -TTTTTTACCTAATTCGCCAAAATATGAAAAGTCACGACGAATTGTTGCCGAGTCAATTTGTAACGCATCG -CTAATCGCTTTTGAATTTACACGATCTATACCTTTAGATTTTAATGAACTGACAAATCTATAATATAACG -GCAAACGTTTTAAAGTTGCTCGAGGAATTTTAACTTGGTCACTCATTCGCTATTTCCTCCTTCGTGTTTG -AATGAATTATATCTATGTATTCAAACGAGTTAGAGCGTAATTGTTAGATTATTAAAAAACAAATAATTGA -TTACAATGAATACCTAAATATTATACATTATTGAATTTTAAAAATAAATATCTTAGTTTCAAGACGGCGT -TTTATACTGTAAAATGGTTATTAATGTAATAATTACGACTTTTATCATAAGTTAATAAAATTTGCGAAAG -ACGAAAGGTGAAGATCGAATGATACTTTTACAACTCAATCATATATCAAAATCGTTCGATGGTGAAGATA -TATTTAATGATGTTGATTTTGAAGTAAAAACTGGTGAACGAATTGGTATCGTAGGAAGAAATGGCGCCGG -TAAATCAACATTGATGAAAATTATAGCTGGCGTAGAAAACTATGATTCTGGAAATTTGTCAAAAATTAAA -AACTTAAAACTAGGTTATTTAACTCAACAAATGACTTTAAATTCTAATGCAACAGTTTTCGAAGAAATGT -CAAAACCATTTGAACATATTAAACGAATGGAAAGCTTAATCAAAGAAGAAACAGATTGGTTATCAAAACA -TGCAAATGATTACGATAGTGATACATATAAAACACATATGTCCCGTTATGAATCTTTATCGAATCAATTT -GAACAATTAGAAGGATATCAATATGAAAGTAAAATTAAAACAGTACTTCACGGGTTGAATTTTAGTGAAG -AAGATTTCAATAAACCTATCAATGATTTTAGCGGTGGCCAAAAAACACGTTTATCTTTAGCTCAAATGCT -ATTAAATGAACCTGATTTATTACTTTTAGATGAACCTACTAACCACTTAGATTTAGAAACGACAAAGTGG -CTTGAAGATTATCTACGTTATTTTAAAGGTGCAATAGTCATCATCAGCCATGATCGTTACTTTTTAGATA -AAATAGTTACTCAAATTTATGATGTGGCTTTAGGTGATGTCAAACGCTATGTTGGTAATTACGAGGAATT -TATACAGCAACGGGATTTATATTATCAAAAACGAATGCAAGAATATGAAAGTCAACAAGCAGAAATAAAA -CGATTAGAAACTTTTGTTGAGAAAAATATTACCCGTGCTTCAACAAGCGGAATGGCAAAAAGTAGACGTA -AGATTTTAGAAAAAATGGAACGCATTGATAAACCAATGTTAGATGCCAAAAGTGCAAATATTCAATTTGG -CTTTGACCGGAATACAGGTAATGACGTCATGCATGTAAAAAATTTAGAAATCGGTTATCAAACTGCAATT -ACCAAACCTATCAGTATAGAGGTCTCTAAAGGCGATCATATAGCAATCATTGGGCCAAATGGTATTGGAA -AATCGACCTTAATTAAAACTATTGCAAATCAACAAAAAGCGCTTAATGGCGATATTACTTTTGGCGCAAA -TTTACAAATTGGTTATTATGATCAAAAGCAAGCAGAATTTAAATCTAGTAAAACAATTTTAGATTATGTG -TGGGATCAATATCCGTTAATGAATGAAAAAGATATTCGTGCAGTTCTTGGACGTTTCTTATTTGTACAAG -ACGATGTTAAAAAGATAATTAATGATTTATCTGGTGGTGAAAAAGCACGTTTACAACTAGCACTACTTAT -GTTGCAACGTGACAATGTACTTATTTTAGATGAACCTACCAACCACCTCGATATAGATTCAAAAGAAATG -TTAGAGCATGCACTCCAACATTTTGAAGGAACAATACTATTTGTTTCCCATGATCGTTACTTTATTAACC -AATTAGCAAACAAGGTATTTGATTTAACAATTGATGGCGGAAAGATGTATTTAGGAGATTATCAATATTA -CATTGAAAAAGTTGAGGAAGCGGAAGCGTTGAAAGCGCACCAAGAAGAACAGTCAGTTAACGTACAAGCA -CATGAAAAGTCCATGGAACAATCGTCGTATCATAACCAAAAAGAACAAAGACGTGAACAACGCAAACTTG -AACGACAAATATCCGAGTGTGAAAATGAAATAGAAACTTTAGAGACTACTATCTTACAAATAGACGAGCA -ATTAACCCAACCAGAAGTTTATAACAATCCACAAAAAGCAAACGAATTAGCTATCCAAAAACAAGATAGC -GAACAAAAATTAGAACACGCTATGTCTAAATGGGAAGAATTACAACAAAAACTATAAAAATATACATAAC -TCTAACTGTAAAATCGCTATAGTTAGAGTTATTTTTTTACAAATTTTAAATTTTTTTATTCACAATAAAA -ACGCTGATATTATAGCTATCCACAGAGTTATCCTAGTTATCCACAAGTAAATTAACACTAATCAATCATT -TATTTTCTGTTTTCCCACCTGATATCCACAATAAATGACGTTATCAACACCTTTTATCCACAAGTTATAC -ACTCTTTGTTGATAAGTACGCATGTTCTCTATTGACATTGTTTTTATCAAAATCCATTGTTAAGACATTT -TCTTTATGAAATAATAATAATAATATTATTGAAGAATATTTTTATTATTATTAAAAATAAATAAGGAGAT -AGTTATGAGCACAAATCAAACATTTTTAATATTTGTTATAGCAATTATTATACTTACATCGGTAATAGGA -ATTGTTGGACGATACATGAGTCGTCAACGTCTATTAAAATCTATGGAAACATTATGGCAAACGATTTCTC -CATTAGAGTCTTTTATCAGACCGAACTCACATTTCGACTATGAGTATAAGCTCTACAAGGATAAATTTGA -ATCACATTCTTTAGTTGATGATAAAACTTGGTCCGATTTAAATATGAATGCAATCTTTCATAAGATGAAT -TATAATTTAACAGCTATTGGCGAAATGAAACTATATGCCTGTTTACGTGGAATGCTTTCAATTACGAACA -AATCATTACTTAGTTTATTTAATGATAATGCTGAATTTAGAAAAAACGTAACATATCATTTAGCTTTGAT -TGGTAAAACTGTTTATCCAACATTTCCAGACCAAATTACACCGGTAAAACGTCATAATATATTGTTTCTA -TGCCCGTTTTTACCAGTTATCTCATTTGCAGTTATATTTATTAATTCACAAGTTGGTATTTTATTATTTC -TTATGAGTTGCCTATTTAATATCATTTTATCTGCAACTTTAAAGCGTACATATGAGGATGACTTAAAGTC -TATATTTTATGCATCCAATGTTTTAAAACAAGGCTATACTATCTCAAAAATTAAACATGCTCCACAACCC -GAAGTCAATTTTAAGCAATTTAGAACAGCACGTCATTTAACGAGTGTTTTAGCTGAAGTTAATGATGAAG -ATATCGGAGCTATGGTAATTAAACTAGTTAAACTTATTTTCATGCTTGATTATGTTTTATTCCATTCAAT -TCAAAAAAGCTATACAACACATATAAATGAGCTAAAAAATTGTTTCGATTACATAGCTGAATTAGATAAT -CATTATGCATTAGCAATGTATCGTAGAACGCTAGAATGCTATACCGAACCACAAATTGATGATTCAAATG -ATGGCATAGTATTCTCCGAGTTAACACATCCACTCATAGCAGATGCAGTAGCCAATGATTTCTCACTATC -ACAAAATATACTGTTAACTGGATCTAATGCTTCGGGTAAATCAACATTTATGAAATCCATAGCAATAAAC -ATCATTCTTGCATCGGCTATACAAACAGTTACCGCAAGCAAATTTGTATATCAACCTGGAATTGTGTTCA -CGTCAATGGCAAATGCCGATGATGTGTTATCAGGCGATAGTTATTTTATGGCTGAATTAAAATCTATTAA -GCGTATTGTTGAAATTCCTGATAATCAAAAAATATACTGCTTTATCGATGAAATTTTTAAAGGTACCAAC -ACAACTGAACGAATTGCCGCTTCAGAATCAGTACTATCATTTTTACATGAAAAATCTAACTTTAGAGTTA -TTGCAGCAACACATGATATTGAGTTAGCTGAACTCTTAAAACAACGTTATGAAAATTATCATTTCAATGA -GGTAATAGAAAATAATAACATACATTTTGATTACAAAATTAAGCCTGGCAAAGCAAATACACGTAATGCC -ATCGAATTATTAAAAATCACTTCATTTCCAGCAAAAATATATGAACGAGCAAAAGATAATGTTTCCAATG -GTTAGCATGAATCTTGAACATCAATCAATGTTCAAGTCGCAACATTGTTATATTGGCAGTCTTTGACCAA -ATGAAAATGCGCTTGTAACAAGTTTTTTCAATACTAGTCCGCGGCCCCAACACAGAAGCTGGCGGAAAGT -CAGCTTTCAATCGTGTACAAGTTGGCGGGGCCCCAACATAATAAATCATTAGTGGTTCTTTATCTTTTCT -GTCTCACTCCCCTAATTGCAATATAAAAACGTCAGCTATCACATGACAGAAGACAATGAACAGTTTCAAT -AATATTCATCGTAATCATGTTAATAACTGACGTTTATTTTATTCTGCAGAATACTCTTCTAAATCTATAT -TGCTGTGCCCATTTAATGCTAAATCAGCAAATCGACCTTGCTGATACAAATAGTGGCCGGCAACGCCTAT -CATTGCAGCATTATCTGTGCATAATTTAGGACTTGGGATAGTTAATTGAATGTCATTGACTTTGCATTGA -TCCGCTAAAGATTGACGTAATCCTTTATTACTCGCCACGCCACCAGCAACAATTAATCGCTGAACACCAT -ATTCTTTACAAGCTTGAATAGCTTTAAACGTGAGAACCTCTACAACACTGTTTTGAAAGCTCGTTGCTAC -GTTAGCTTCAATGATTGGAATATTTTTTTGTCGTTGATTGTGAAGTTGATTGATTACGGCACTTTTCAAC -CCACTAAAACTAAAATCATAACTATCTTTATCCAACCAAACACGAGGGAATGAATAAGTATCTTCACCTT -CAGCAGCCAACCGGTCAACTTGTGGACCACCTGGATAATTTAAACCAATTGTTCGTGCCACTTTATCATA -AGCCTCACCTACTGCGTCATCTCGTGTTTCACCAATGACTTCAAATGTTAAATGATCTTTCATATAAACT -AATTCAGTATGTCCACCTGAAACAATAAGTGCAATTAGCGGGAATGTTAATGGCTCTTCTATGTGATTAG -CATATATATGTCCTGCAATATGATGAACAGGAATAAGCGGCTTATCGTAAGCAAATGCCAATGCTTTGGC -TGCATTAACACCTATTAGTAACGCACCAATTAGTCCAGGGCCTTCTGTAACCGCTATGGCATCAATATCT -TCCATTGATACGTCGGCATCCACTAGAGCCTCGTTTATTGTTGTTGTTATACCTTCAACGTGATGTCTAC -TTGCCACTTCAGGAACGACACCGCCAAATCGTTTATGACTTTCAATCTGACTTAAAACTGTATTTGATAA -AATATCTCTGCCATTTTTTATAACACTAACGCTTGTTTCATCACAACTTGTTTCAACAGCTAGTATTAAT -ATATCTTTAGTCATTTAAATTCACCCACATAACCATTGCGTCCTCACCTTCACCATAATAATTTTTACGT -TTACCACCATATTGAAATCCTAAATTTTCATATACATGTTGTGCCACTTTATTATTAACTCTTACTTCTA -AACTCATCACATCACAAGTGTGACTTGCATAGTTTATTCCGTATTTTAAAAGCATTTGACCTAAACCATA -TCCTCTATAATTATCATCGATTGCAACTGTCGTAATTTGAGCTTGATCGATAACAATCCATAAACCTAAA -TAACCAATAATTTGTTGTTCAAATTCTAAGACAAAATATTTCGCAAAGTTATTTTGCTCTATTTCATGAT -AAAATGCGTCAATTGTCCAAGAACTATCATTGAAACTCCGACGCTCAATATCAAAGACTTGTGGCACATC -TTCTTTGGTCATCTCTCTAATGTTTAATTGTTCTTTTGACTGTTGATCCAATTTCGTTCCGCCTCAGCTA -ATTTATGGTATTTAGGAGTAAATGTATGTACGTCTGAAGGTTTATCTATCAATTGATACATGACTGATGC -ATTTGGTAGCTGCGCAATCACATCACCTTGTAAATCATCTTGTAATTTTACTGTATCTTTCCCAATATAA -ATAAATGGTTGGTTTAAATCTTCTAAAAAAGCTCGCAATGCATCTATCGACATATATTGATCTTCTAAAA -TAGTCACTAATTGACCATTTTGCCATTGGAATATGCCTGTATAAACTGCTTGTCGTCTTGCATCAAACAC -AGGAACCAATAATTTATCAGTATGATCGATTGTTGCTGCCAATGCCTTTAATGATGAAACACCATATAAT -TTAACATCTAACGCATACGCTAATGTTTTAGCAACAGTAACACCGATACGTAAGCCAGTATATGAACCAG -GACCTTCAGCAACAATAATCGCATCTAATTGCTGTTTAGCTATTTTGCTCTGCTCAAATAGCTGACTAAT -CGCAGGCATTAATTGCACTGAATGATTTTGTTTAGAATCCGTAGTTATTTCAGCTAAAACTTCATCGTTT -TGCATCAATGCTACTGATAATGGTTGATTCGATGTATCAATGAGCAGCGAATTCATGGATAATTGCCTCC -TTAATTTGTTCATAATGTTCTCCTTGCGCGAACAACTCAATTTGTCTTGAATTTTCAGATATTGTTGAAA -TGTTAATAGATAAATGCGTCGCTGGGAGTAAATCTTTTATAAATTGACTCCATTCAATAACAGTAATTGC -CTGATCTTCGAAAAATTCATCAAACCCTAAATCTTCATCAGAATCTTCTAAGCGATAACAATCCATATGA -TGCAATTTTAAATTTTTTCCCCTATATGATTTGATGATGTTAAATGTCGGGGAATTAATCGTACGTCTTA -CACCAAGAGCTTTTCCTATAAATTGTGTTAACGTTGTTTTACCTGCTCCTAAATCTCCGTTAAGTAAAAT -CAAATCACCACTTTTCAATTGCTCAACTAAAAACATAGCAAATTGATTCATTTCATCTAAATTATTTATC -TTTATCAATGTTGATTCTCCTATATTATGCTTTTCATTCATAAAAATGATTATCCATTGTTCAATCGTAT -CTAACTTTATATTTAACCTTTATATTGTAACAAATTTCAACTTAAATTTCTTATCTTTGAAACAGATTAT -CTCTTCAAAGTTAATTGTAAGAAAATTTAAAATATTTGTTGACATGCTAAAGCAGATATAGTAAATTAAA -TTTATCAAATTTTTAGACAATTCTAACTATTAAAGTGGTATATACCATTCACGGAAGGAGTATAATAAAA -TGCTTAATCAATATACTGAACATCAACCGACAACTTCAAATATTATTATTTTATTATACTCTTTAGGACT -CGAACGTTAGTAAATATTTACTAAACGCTTTAAGTCCTATTTCTGTTTGAATGGGACTTGTAAACGTCCC -AATAATATTGGGACGTTTTTTTATGTTTTATCTTTCAATTACTTATTTTTATTACTATAAAACATGATTA -ATCATTAAAATTTACGGGGGAATTTACTATGCGAAGCGACATGATCAAAAAAGGAGATCACCAAGCACCA -GCAAGAAGTCTTTTACATGCCACGGGCGCGCTTAAAAGTCCAACTGATATGAACAAACCATTTGTAGCTA -TTTGTAACTCTTATATTGATATCGTTCCAGGACATGTTCATTTAAGAGAGCTTGCAGATATAGCTAAAGA -AGCAATTAGAGAAGCCGGTGCCATTCCATTTGAATTCAATACAATTGGTGTTGATGATGGAATAGCTATG -GGACATATCGGAATGCGATATTCTCTACCATCACGTGAAATTATTGCAGATGCAGCTGAAACTGTAATTA -ACGCTCATTGGTTTGACGGCGTATTTTACATTCCTAATTGTGACAAGATTACACCCGGTATGATTTTAGC -AGCCATGAGGACAAACGTACCAGCTATCTTTTGCTCTGGTGGACCAATGAAAGCTGGCTTATCTGCACAT -GGTAAAGCATTAACACTTTCATCAATGTTTGAAGCAGTCGGCGCTTTTAAAGAAGGATCGATTTCTAAAG -AAGAATTTTTAGATATGGAACAAAATGCCTGCCCTACTTGTGGTTCATGTGCTGGGATGTTTACTGCAAA -TTCAATGAACTGTTTGATGGAAGTTTTAGGTCTAGCATTACCATACAACGGTACTGCACTTGCAGTCAGT -GATCAGCGACGCGAAATGATTCGCCAAGCAGCTTTTAAATTAGTTGAAAATATTAAAAATGATTTAAAAC -CACGTGATATCGTTACTCGCGAAGCAATTGATGATGCATTTGCACTTGATATGGCTATGGGTGGTTCAAC -AAACACGGTACTGCATACGTTAGCCATTGCCAATGAAGCTGGTATTGATTATGACTTAGAGCGCATTAAT -GCTATTGCCAAACGCACGCCATATTTATCAAAAATAGCACCTAGTTCATCGTATTCAATGCATGATGTGC -ATGAAGCTGGTGGAGTCCCAGCAATTATTAATGAATTGATGAAGAAAGATGGCACGTTACACCCAGATAG -AATCACAGTTACTGGCAAAACGTTACGTGAAAATAACGAAGGCAAAGAAATTAAGAACTTTGATGTCATT -CACTCTCTTGATGCACCATATGATGCACAAGGCGGTTTATCTATCTTATTTGGTAATATCGCCCCTAAAG -GCGCAGTTATTAAAGTTGGCGGCGTTGATCCATCTATCAAAACATTTACTGGGAAAGCAATTTGTTTCAA -TTCGCATGATGAAGCTGTTGAAGCAATAGACAATCGTACCGTTCGTGCAGGCCACGTCGTTGTCATTAGA -TATGAAGGACCTAAAGGTGGACCAGGTATGCCTGAAATGTTAGCACCTACTTCCTCTATTGTTGGTCGTG -GCTTAGGTAAAGATGTTGCATTAATTACTGATGGTCGTTTTTCCGGTGCCACAAGAGGTATTGCAGTTGG -TCATATTTCCCCTGAAGCTGCATCTGGTGGACCAATTGCCTTAATTGAAGATGGAGATGAGATTACTATT -GATTTAACAAATCGTACATTAAAGGTAAACCAGCCTGAAGATGTTCTGGCGCGTCGCCGAGAATCTTTAA -CACCATTTAAAGCGAAAGTAAAAACAGGTTATCTAGCTCGTTATACTGCCCTAGTAACTAGCGCAAATAC -AGGTGGCGTCATGCAAGTCCCTGAGAATTTAATTTAATTTATTTTTATATTGGAGATGGTTAAAATGTCT -AAAACTCAACATGAAGTAAACCAAAATATTGACCCTTTAAAAATGGCTGAATCACTTGAACCTGAACAAC -TAAATGAAAAAACTTTAAATGACATGCGTTCAGGATCAGAAGTGCTAGTAGAAGCTCTACTTAAAGAAAA -TGTGGATTATTTATTCGGTTATCCTGGTGGTGCCGTACTACCTTTATACGACACATTTTATGATGGTAAA -ATCAAACATATTTTAGCAAGACACGAACAAGGTGCTGTTCATGCTGCAGAAGGTTATGCACGTGTATCTG -GTAAAACAGGCGTCGTTGTAGTTACAAGCGGTCCAGGTGCAACTAATGTAATGACAGGTATTACGGATGC -ACATTGCGACTCTTTACCACTAGTTGTATTCACTGGACAAGTTGCTACACCAGGCATTGGTAAAGATGCA -TTCCAAGAAGCGGATATTCTATCTATGACTTCACCAATTACAAAACAAAATTATCAAGTGAAACGTGTTG -AAGATATCCCTAAAATCGTACACGAAGCTTTCCATGTAGCTAATTCTGGACGCAAAGGTCCTGTAGTGAT -TGATTTTCCAAAAGATATGGGTGTTTTAGCTACAAATGTGGATTTATGCGACGAAATCAATATTCCAGGT -TATGAAGTTGTTACAGAACCAGAAAATAAAGACATTGACACTTTCATCTCACTTTTAAAAGAAGCGAAAA -AGCCTGTCGTATTAGCCGGCGCAGGTATTAATCAATCAAAATCAAATCAATTATTAACACAGTTTGTTAA -TAAACATCAAATCCCAACAGTTACTACTTTACTAGGTCTAGGTGCTGTACCTTATGAGGATACACTATTT -TTAGGTATGGGAGGTATGCATGGTTCTTATGCTAGTAACATGGCATTAACTGAGTGTGATTTACTCATTA -ATTTAGGTAGCCGCTTCGATGATAGATTAGCAAGCAAACCTGATGCCTTTGCACCTAACGCCAAAATTGT -ACATGTAGATATTGATCCTTCAGAAATCAATAAAGTTATTCATGTAGATTTAGGTATTATTGCAGACTGT -AAAAGATTTTTAGAATGTTTAAATGATAAAAATGTTAAGACTATAGAACACAGTGACTGGGTTAAACATT -GTCAAAATAATAAGCAGAAACATCCATTTAAACTTGGTGAAGAAGATCAAGTATTTTGTAAGCCACAACA -AACAATCGAATATATCGGCAAAATTACAAATGGTGAAGCAATTGTTACTACAGACGTGGGACAACATCAA -ATGTGGGCAGCTCAATTTTATCCATTTAAAAATCACGGACAATGGGTTACAAGCGGTGGTTTAGGAACAA -TGGGATTCGGTATTCCTTCGTCAATTGGTGCCAAATTAGCTAATCCTGATAAAACAGTCGTATGCTTCGT -CGGTGACGGTGGTTTCCAAATGACAAACCAAGAAATGGCACTATTACCCGAATATGGTTTAGATGTCAAA -ATCGTACTAATCAATAATGGAACATTAGGTATGGTTAAACAATGGCAAGATAAGTTCTTTAATCAACGCT -TCTCACACTCAGTATTTAATGGTCAACCTGATTTTATGAAAATGGCAGAAGCATATGGCGTCAAAGGTTT -CTTAATCGATAAGCCAGAACAACTGGAAGAACAATTAGATACAGCGTTTGCTTATCAAGGGCCAGCTTTA -ATTGAGGTTCGTATTTCCCCTACTGAAGCTGTAAACCCAATGGTTCCAAGTGGCAAATCAAATCATGAAA -TGGAGGGCTTATAATGACAAGAATTCTTAAATTACAAGTTGCGGATCAAGTCAGCACGCTAAATCGAATT -ACAAGTGCTTTTGTTCGCCTACAATATAATATCGATACATTACATGTTACACACTCTGAACAACCTGGGA -TTTCTAACATGGAAATTCAAGTCGATATTCAAGATGATACATCACTTCATATTTTAATTAAAAAATTAAA -ACAACAAATTAATGTTTTAACGGTTGAATGCTACGACCTTGTTGATAACGAAGCTTAATTTTAAGACAAA -GGCAATGATGCGCTAATTAGTTATAGATATATCATAGGCTGCTAGTTAACATCTGCCACTATTACAAAGC -TATATTTCAGAATTTTCGAAAAACAAAACATTTAATTATTTGGAGGAATTTATTATGACAACAGTTTATT -ATGATCAAGATGTAAAAACGGACGCTTTACAAGGCAAAAAAATTGCAGTAGTAGGTTATGGATCACAAGG -CCACGCGCATGCACAAAACTTAAAAGACAATGGATATGATGTAGTCATCGGTATTCGCCCAGGTCGCTCT -TTTGACAAAGCTAAAGAAGATGGATTTGATGTGTTCCCTGTTGCAGAAGCAGTTAAGCAAGCTGATGTAA -TTATGGTGCTATTACCTGATGAAATTCAAGGTGATGTATACAAAAACGAAATTGAACCAAATTTAGAAAA -ACATAATGCGCTTGCATTTGCTCATGGCTTTAACATTCATTTTGGTGTTATTCAACCACCAGCTGATGTT -GATGTATTTTTAGTAGCTCCTAAAGGACCGGGTCATTTAGTTAGACGTACATTTGTTGAAGGTTCTGCTG -TACCATCACTATTTGGTATTCAACAAGACGCTTCAGGTCAAGCACGTAATATTGCTTTAAGTTACGCAAA -AGGTATTGGTGCAACTCGTGCAGGTGTTATTGAAACAACATTTAAAGAAGAAACTGAGACAGATTTATTT -GGTGAACAAGCAGTACTTTGCGGTGGTGTATCGAAATTAATTCAAAGTGGCTTTGAAACATTAGTAGAAG -CAGGTTATCAACCAGAATTAGCTTATTTTGAAGTATTACATGAAATGAAATTAATCGTTGATTTGATGTA -TGAAGGCGGTATGGAAAATGTACGTTACTCAATTTCAAATACTGCTGAATTTGGTGACTATGTTTCAGGA -CCACGTGTTATCACACCAGATGTTAAAGAAAATATGAAAGCTGTATTAACTGATATCCAAAATGGTAACT -TCAGTAATCGCTTTATCGAAGACAATAAAAATGGATTCAAAGAATTTTATAAATTACGCGAAGAACAACA -TGGTCATCAAATTGAAAAAGTTGGTCGTGAATTACGCGAAATGATGCCTTTTATAAAATCTAAAAGCATT -GAAAAATAAGATAGACCTACAATGAGGAGTTGTTAAATATGAGTAGTCATATTCAAATTTTTGATACGAC -ACTAAGAGACGGTGAACAAACACCAGGAGTGAATTTTACTTTTGATGAACGCTTGCGTATTGCATTGCAA -TTAGAAAAATGGGGTGTAGATGTTATTGAAGCTGGATTTCCTGCTTCAAGTACAGGTAGCTTTAAATCTG -TTCAAGCAATTGCACAAACATTAACAACAACGGCTGTATGTGGTTTAGCTAGATGTAAAAAATCTGACAT -CGATGCTGTATATGAAGCAACAAAAGATGCAGCGAAGCCGGTCGTGCATGTTTTTATAGCAACATCACCT -ATTCATCTTGAACATAAACTTAAAATGTCTCAAGAAGACGTTTTAGCATCTATTAAAGAACATGTCACAT -ACGCGAAACAATTATTTGATGTTGTTCAATTTTCACCTGAAGATGCAACGCGTACTGAATTACCATTCTT -AGTGAAATGTGTACAAACTGCAGTTGACGCTGGAGCTACAGTTATTAATATTCCTGATACAGTCGGCTAC -AGTTACCATGATGAATATGCACATATTTTCAAAACCTTAACAGAATCTGTAACATCTTCAAATGAAATTA -TTTATAGTGCTCATTGCCATGACGATTTAGGAATGGCTGTTTCAAATAGTTTAGCTGCGATTGAAGGCGG -TGCGAGACGAATTGAAGGCACTGTAAATGGTATTGGTGAACGAGCAGGTAATGCAGCACTTGAAGAAGTC -GCGCTTGCACTATACATTCGAAATGATCATTATGGTGCTCAAACTGCCCTTAATCTCGAAGAAACTAAAA -AAACATCGGATTTAATTTCAAGATATGCAGGTATTCGAGTGCCTAGAAATAAAGCAATTGTTGGCCAAAA -TGCATTTAGTCATGAATCAGGTATTCACCAAGATGGCGTATTAAAACATCGTGAAACATATGAAATTATG -ACACCTCAACTTGTTGGTGTAAGCACGACTGAACTTCCATTAGGAAAATTATCTGGTAAACACGCCTTCT -CAAAGAAGTTAAAAGCATTAGGTTATGACATTGATAAAGAAGCGCAAATAGATTTATTTAAACAATTCAA -GGCCATTGCGGACAAAAAGAAATCTGTTTCAGATAGAGATATTCATGCGATTATTCAAGGTTCTGAGCAT -GAGCATCAAGCACTTTATAAATTGGAAACACTGCAACTACAATATGTCTCTAGCGGCCTTCAAAGTGCTG -TTGTTGTTATTAAAGATAAAGAGGGTCATATTTACCAGGATTCAAGTATTGGTACTGGTTCAATCGTAGC -AATTTACAATGCAGTTGATCGTATTTTCCAAAAAGAAACAGAATTAATTGATTATCGTATTAATTCTGTC -ACTGAAGGTACTGATGCCCAAGCAGAAGTACATGTAAATTTATTGATTGAAGGTAAGACTGTCAATGGCT -TTGGTATTGATCATGATATTTTACAAGCCTCATGTAAGGCATACGTAGAAGCACATGCTAAATTTGCAGC -TGAAAATGTTGAAAAGGTAGGTAATTAATTATGACTTATAACATTGTTGCCCTACCTGGTGATGGAATCG -GTCCAGAAATTTTGAACGGATCTCTATCATTGCTTGAAATTATAAGTAATAAATATAATTTTAATTATCA -AATAGAGCACCACGAATTTGGTGGTGCCTCTATTGATACATTCGGCGAGCCTTTAACTGAGAAAACCTTA -AATGCGTGTAAAAGAGCAGATGCTATTTTACTGGGTGCAATCGGTGGACCTAAATGGACAGATCCTAACA -ATCGACCAGAACAAGGATTATTAAAATTACGTAAATCATTAAATTTATTTGCAAATATACGTCCCACTAC -CGTTGTCAAAGGCGCTAGTTCTTTATCACCTTTAAAGGCAGAACGCGTTGAAGGCACAGATTTAGTTATA -GTCCGTGAATTGACAAGTGGTATTTATTTTGGAGAACCTAGATATTTTAATAATCACGAGGCCTTAGATT -CTCTTACTTATACAAGAGAAGAAATAGAACGCATTGTTCACGTAGCATTTAAATTGGCCGCTTCAAGACG -AGGAAAACTAACATCAGTTGATAAAGAAAATGTATTAGCTTCTAGTAAATTGTGGCGCAAAGTCGTAAAT -GAAGTGAGTCAATTATATCCAGAAGTAACAGTGAATCACTTACTTGTTGATGCTTGTAGTATGCATTTAA -TCACAAATCCAAAACAATTTGACGTCATCGTTTACGAAAACTTATTTGGCGATATTTTAAGTGATGAAGC -TTCAGTGATTCCTGGTTCACTTGGTTTATCACCTTCTGCTAGTTTTAGTAACGATGGTCCAAGATTGTAT -GAGCCTATTCATGGATCAGCACCAGATATTGCAGGTAAAAACGTTGCCAATCCATTTGGAATGATTCTAT -CTTTAGCGATGTGTTTACGTGAAAGCTTAAATCAACCAGATGCTGCAGATGAATTAGAACAACATATTTA -TAACATGATAGAACATGGGCAAACGACAGCAGATTTAGGCGGCAAACTGAATACTACTGATATTTTCGAA -ATTCTATCTCAAAAATTGAATCACTAAGGGGGAGATGTAAATGGGTCAAACATTATTTGACAAGGTGTGG -AACAGACATGTGTTATACGGAAAATTAGGCGAACCGCAACTATTATACATTGATTTACACCTTATACATG -AAGTTACTTCTCCTCAAGCATTTGAAGGACTTAGGCTTCAAAACAGAAAATTAAGACGCCCAGATTTAAC -ATTTGCAACACTCGATCACAATGTTCCTACTATTGATATTTTCAATATTAAAGATGAAATTGCAAACAAA -CAAATCACAACATTACAAAAAAACGCCATAGATTTTGGGGTGCATATTTTTGATATGGGTTCTGATGAAC -AAGGTATTGTTCACATGGTGGGACCTGAGACAGGACTTACACAGCCTGGCAAAACAATCGTTTGTGGTGA -CTCTCACACAGCAACACATGGAGCATTTGGTGCTATTGCATTTGGAATTGGAACAAGTGAAGTTGAACAT -GTTTTCGCAACTCAAACGCTATGGCAAACAAAACCCAAAAACTTAAAAATCGATATTAATGGCACCTTAC -CAACAGGCGTCTATGCTAAGGACATTATTCTGCATTTAATTAAAACGTATGGTGTTGATTTTGGTACAGG -CTATGCTTTGGAATTTACTGGTGAAACAATTAAAAACCTTTCAATGGACGGTCGAATGACTATTTGTAAC -ATGGCTATCGAAGGTGGTGCCAAATACGGCATAATCCAACCTGATGATATAACATTTGAATATGTTAAAG -GTCGACCATTTGCCGATAACTTCGCTAAATCAGTTGATAAGTGGCGTGAGCTATATTCTAATGACGACGC -GATATTTGATCGTGTAATTGAACTTGATGTTTCAACATTAGAACCACAAGTGACATGGGGAACTAATCCT -GAAATGGGTGTTAATTTCAGTGAACCATTCCCTGAAATCAATGATATCAACGATCAACGTGCGTATGATT -ATATGGGGTTAGAGCCAGGACAAAAAGCTGAAGATATCGACTTAGGGTATGTTTTCCTCGGTTCATGTAC -AAATGCTAGACTATCAGATTTGATTGAAGCTAGTCATATTGTTAAAGGAAATAAAGTTCACCCAAATATT -ACAGCTATCGTCGTACCAGGTTCTCGTACAGTAAAAAAAGAAGCTGAAAAATTAGGTCTAGATACTATCT -TTAAAAATGCAGGATTTGAATGGCGTGAGCCAGGATGTTCAATGTGTTTAGGCATGAATCCTGACCAAGT -ACCTGAGGGCGTACATTGTGCATCTACAAGTAATCGAAACTTTGAAGGACGACAAGGCAAAGGTGCAAGA -ACACATTTAGTATCCCCTGCTATGGCAGCAGCAGCTATTCATGGTAAATTTGTGGACGTAAGAAAGGTGG -TTGTTTAAATGGCAGCAATCAAACCTATTACAACATATAAAGGTAAAATAGTCCCTCTTTTCAACGACAA -TATCGATACAGACCAAATCATTCCTAAAGTACACTTAAAGCGTATTTCAAAAAGTGGCTTTGGTCCATTT -GCTTTTGATGAATGGCGGTACTTACCTGATGGTTCAGATAATCCTGATTTCAATCCAAATAAGCCTCAAT -ATAAAGGTGCATCCATATTAATTACTGGAGATAATTTTGGATGTGGTTCAAGTCGTGAACATGCAGCTTG -GGCACTTAAGGACTATGGCTTTCATATTATAATTGCAGGAAGTTTCAGTGACATTTTTTATATGAATTGT -ACAAAAAATGCAATGTTACCAATTGTTTTAGAAAAAAATGCACGTGAACATCTTGCTAAATATGTTGAAA -TTGAGGTCGATTTACCAAATCAAACTGTGTCATCACCAGACAAGAGTTTCCATTTTGAAATTGATGAAAC -TTGGAAGAATAAACTTGTAAATGGCTTAGATGACATTGCAATCACCCTACAATATGAATCATTAATAGAA -AAATATGAAAAATCACTTTAAGGGAGTTGAATATTATGACAGTCAAAACAACAGTTTCTACGAAAGATAT -CGATGAAGCATTTTTAAGACTTAAAGATATTGTCAAAGAAACACCTTTACAATTAGACCATTACTTATCT -CAAAAGTATGATTGTAAAGTTTATTTAAAACGAGAAGATTTACAATGGGTACGTTCTTTTAAATTAAGAG -GTGCTTACAATGCTATTTCTGTTTTATCAGATGAAGCTAAAAGTAAAGGTATTACATGTGCGAGTGCAGG -TAATCATGCTCAAGGTGTTGCCTATACAGCTAAAAAACTTAATTTAAACGCTGTTATCTTTATGCCAGTC -ACTACACCTTTACAAAAGGTAAATCAAGTAAAATTCTTTGGAAATAGTAACGTTGAAGTTGTACTAACTG -GTGATACATTTGATCACTGTTTAGCTGAAGCTTTAACTTATACAAGTGAACATCAAATGAACTTTATAGA -TCCATTCAATAATGTTCATACAATTTCTGGACAAGGTACGCTTGCTAAAGAAATGCTAGAACAAGCAAAG -TCTGACAATGTTAACTTTGATTATCTATTTGCCGCAATTGGTGGTGGTGGTTTAATTTCAGGTATTAGTA -CCTATTTTAAATCCTATTCTCCCAACACAAAAATTATCGGAGTTGAACCTTCAGGTGCTAGTAGTATGTA -CGAATCTGTTGTCGTAAATAATCAAGTTATCACATTACCTAATATCGATAAATTTGTCGATGGAGCTTCT -GTAGCCAGAGTTGGCGATATTACTTTTGAAATTGCCAAAAAAAATGTAGATAACTACGTACAAGTAGATG -AAGGTGCTGTATGTTCAACAATTTTGGATATGTATTCAAAACAAGCAATAGTAGCAGAACCCGCTGGCGC -TTTAAGTGTAAGTGCGCTTGAAAACTATAAAGATCATATTAAAGGTAAAACAGTGGTTTGTGTCATTAGT -GGTGGTAATAATGATATTAATCGAATGAAAGAAATTGAAGAACGTTCATTACTATATGAAGAAATGAAGC -ATTACTTTATCTTAAATTTCCCTCAACGTCCAGGTGCATTGAGAGAATTTGTAAATGACGTATTAGGACC -TCAAGACGATATTACTAAATTTGAATACTTAAAAAAATCTTCTCAAAATACAGGTACTGTCATTATTGGT -ATTCAACTTAAAGATCATGATGATTTAATACAACTCAAACAACGTGTAAATCATTTCGATCCTTCCAATA -TTTATATTAATGAAAATAAGATGTTATATTCATTGTTAATTTAACACATATTAAGAAAAGCAGTCATAAA -TTGATTTCTAATTGAAATCATCTTATGACTGCTTTTTATTATGCTTTACATTATTGAGGTTGCACGCTTT -GTATACCATCGTATATTTCTTTGAGCCTAAAGTCTTCTTCATTCCCCACCCCATTATTTATATTTTGAAT -GGCAGTTGAAATTACTTTGTCATAAATAGCCTTCTCACTTTCTGGTAAATTATGTCGTGGTATACTCATC -AAAGCATATGCTTTTTGTTTATCTTCAATATTTTCTATACGATTCTTATTATTATTAAAATTCTCATTAG -CTTCACTACCATTATTATTAATATTATGCGTGTTTTCTTTTTCATGTTTGTTTTCTTGCATATGATTCGG -GATTTCTGACTTATTTTCAGCATCTGTAGGAAAATATATTTTATAAGCAAAAAATCCACACACAATCAAT -GAGCATACAAATAAAAAAGTTAACATCGTACCAATAAATATTTTCAAATCCGTTCTCCTTTCAACCATTC -ATTCTTACATGTATATTTAGTATTAAAAAATCCTTATAGTCTCAACTTGCCTGGCAACGTTCTACTCTAG -CGGAACGTAAGTTGGCTACCATCGTCGCTAAAAACCTTTCTTGACTTGTGACAATCGCTTGCTTCTTTCC -TCTCCTTCGGCTCTCGCTTACTCATTTAGCTCTACTAAACTCGTTGCGCTCTTTTCTCGTTTCGTCAGAT -TCAAACGTTTTCACTTCGCCAAGCCATTTTTCTTTGTGTTAACTTTTATTTTGACGTTTTAGACATAAAA -AAAGAGACCTTGCGGTCTCAACTTGCCTGGCAACGTTCTACTCTAGCGGAACGTAAGTTCGACTACCATC -GACGCTAAGGAGCTTAACTTCTGTGTTCGGCATGGGAACAGGTGTGACCTCCTTGCTATAGTCACCAGAC -ATATGAATGTAGATTATACATTCAAAACTAGATAGTAAGTAAAAGTGATTTTGCTTCGCAAAACATTTAA -ATTTGATTAAGTCTTCGATCGATTAGTATTCGTCAGCTCCACATGTCACCATGCTTCCACCTCGAACCTA -TTAACCTCATCATCTATGAGGGATCTTATAACCGAAGTTGGGAAATCTCATCTTGAGGGGGGCTTCATGC -TTAAATGCTTTCAGCACTTATCCCGTCCACACATAGCTACCCAGCTATGCCGTTGGCACGACAACTGGTA -CACCAGAGGTATGTCCATCCCGGTCCTCTCGTACTAAGGACAGCTCCTCTCAAATTTCCTACGCCCACGA -CGGATAGGGACCGAACTGTCTCACGACGTTCTGAACCCAGCTCGCGTACCGCTTTAATGGGCGAACAGCC -CAACCCTTGGGACCGACTACAGCCCCAGGATGCGATGAGCCGACATCGAGGTGCCAAACCTCCCCGTCGA -TGTGAACTCTTGGGGGAGATAAGCCTGTTATCCCCGGGGTAGCTTTTATCCGTTGAGCGATGGCCCTTCC -ATGCGGAACCACCGGATCACTAAGTCCGTCTTTCGACCCTGCTCGACTTGTAGGTCTCGCAGTCAAGCTC -CCTTATGCCTTTACACTCTATGAATGATTTCCAACCATTCTGAGGGAACCTTTGAGCGCCTCCGTTACCT -TTTAGGAGGCGACCGCCCCAGTCAAACTGCCCGCCTGACACTGTCTCCCACCACGATAAGTGGTGCGGGT -TAGAAAGCCAACACAGCTAGGGTAGTATCCCACCAGCGCCTCCACGTAAGCTAGCGCTCACGTTTCAAAG -GCTCCTACCTATCCTGTACAAGCTGTGCCGAATTTCAATATCAGGCTACAGTAAAGCTCCACGGGGTCTT -TCCGTCCTGTCGCGGGTAACCTGCATCTTCACAGGTACTATGATTTCACCGAGTCTCTCGTTGAGACAGT -GCCCAAATCGTTACGCCTTTCGTGCGGGTCGGAACTTACCCGACAAGGAATTTCGCTACCTTAGGACCGT -TATAGTTACGGCCGCCGTTTACTGGGGCTTCGATTCGTAGCTTCGCAGAAGCTAACCACTCCTCTTAACC -TTCCAGCACCGGGCAGGCGTCAGCCCCTATACATCACCTTACGGTTTAGCAGAGACCTGTGTTTTTGATA -AACAGTCGCTTGGGCCTATTCACTGCGGCTCTTCTGGGCGTTAACCCTAAAGAGCACCCCTTCTCCCGAA -GTTACGGGGTCATTTTGCCGAGTTCCTTAACGAGAGTTCGCTCGCTCACCTTAGAATTCTCATCTTGACT -ACCTGTGTCGGTTTGCGGTACGGGCACCTATTTTCTATCTAGAGGCTTTTCTCGGCAGTGTGAAATCAAC -GACTCGAAGACACAATGTCTTCTCCCCATCACAGCTCAGCCTTAATGAGTACCGGATTTGCCTAATACTC -AGCCTTACTGCTTAGACGTGCAATCCAATCGCACGCTTCGCCTATCCTACTGCGTCCCCCCCATCGATTA -AAACGATTATAGGTGGTACAGGAATATCAACCTGTTATCCATCGCCTACGCCTGTCGGCCTCAGCTTAGG -ACCCGACTAACCCAGAGCGGACGAGCCTTCCTCTGGAAACCTTAGTCAATCGGTGGACGGGATTCTCACC -CGTCTTTCGCTACTCACACCGGCATTCTCACTTCTAAGCGCTCCACATGTCCTTACGATCATGCTTCAAC -GCCCTTAGAACGCTCTCCTACCATTGTCCAAAGGACAATCCACAGCTTCGGTAATATGTTTAGCCCCGGT -ACATTTTCGGCGCAGTGTCACTCGACTAGTGAGCTATTACGCACTCTTTAAATGATGGCTGCTTCTAAGC -CAACATCCTAGTTGTCTGGGCAACGCCACATCCTTTTCCACTTAACATATATTTTGGGACCTTAGCTGGT -GGTCTGGGCTGTTTCCCTTTCGAACACGGACCTTATCACCCATGTTCTGACTCCCAAGTTAAATTAATTG -GCATTCGGAGTTTGTCTGAATTCGGTAACCCGAGAGGGGCCCCTCGTCCAAACAGTGCTCTACCTCCAAT -AATCATCACTTGAGGCTAGCCCTAAAGCTATTTCGGAGAGAACCAGCTATCTCCAGGTTCGATTGGAATT -TCTCCGCTACCCTCAGTTCATCCGCTCACTTTTCAACGTAAGTCGGTTCGGTCCTCCATTCAGTGTTACC -TGAACTTCAACCTGACCAAGGGTAGATCACCTGGTTTCGGGTCTACGACCAAATACTAAACGCCCTATTC -AGACTCGCTTTCGCTACGGCTCCACATTTACTGCTTAACCTTGCATCAAATCGTAACTCGCCGGTTCATT -CTACAAAAGGCACGCCATCACCCATTAACGGGCTCTGACTACTTGTAAGCACACGGTTTCAGGTTCTATT -TCACTCCCCTTCCGGGGTGCTTTTCACCTTTCCCTCACGGTACTGGTTCACTATCGGTCACTAGAGAGTA -TTTAGCCTTAGGAGATGGTCCTCCCAGATTCCGACGGAATTTCACGTGCTCCGTCGTACTCAGGATCCAC -TCAAGAGAGACAACATTTTCGACTACAGGATTATTACCTTCTTTGATTCATCTTTCCAGATGATTCGTCT -AATGTCGTCCTTTGTAACTCCGTATAGAGTGTCCTACAACCCCAACAAGCAAGCTTGTTGGTTTGGGCTC -TTCCCGTTTCGCTCGCCGGCTACTAAGGGAATCGAATTTTCTTTCTCTTCCTCCGGGTACTAAGATGTTT -CAGTTCTCCGGGTGTGCCTTCTGATATGCTATGTATTCACATATCGATAACATGACATAACTCATGCTGG -GTTTCCCCATTCGGAAATCTCTGGATCAAAGCTTACTTACAGCTCCCCAAAGCATATCGTCGTTAGTAAC -GTCCTTCATCGGCTTCTAGTGCCAAGGCATCCACCGTGCGCCCTTAATAACTTAATCTATGTTTCCACCA -TTTTTATAAGTCAAACGTTAACATGAAGTTACGTTCTTTTATAAAAAGATTTAAACGCGTTATTAATCTT -GTGAGTGTTCTTTCGAACACTAGCGATTATTTCTTATGAATTCAAGCTTGTTTAAAACTCTTTATTCACT -CGGTTTTGCTTGGTAAAATCTATATTTTACTTACTTATCTAGTTTTCAATGTACAATTTCTTTTTAGTCA -AGCGCTCGCATACTGCTTTATTATCACAAGCAATATCGCTTTAACCAAAAAATATTTGAATGTTAAATAA -ACATTCAAAACTGAATACAATATGTCACGTTATTCCGCATCTTCTGAAGAAGATGTTCCGAATATATCCT -TAGAAAGGAGGTGATCCAGCCGCACCTTCCGATACGGCTACCTTGTTACGACTTCACCCCAATCATTTGT -CCCACCTTCGACGGCTAGCTCCTAAAAGGTTACTCCACCGGCTTCGGGTGTTACAAACTCTCGTGGTGTG -ACGGGCGGTGTGTACAAGACCCGGGAACGTATTCACCGTAGCATGCTGATCTACGATTACTAGCGATTCC -AGCTTCATGTAGTCGAGTTGCAGACTACAATCCGAACTGAGAACAACTTTATGGGATTTGCTTGACCTCG -CGGTTTCGCTGCCCTTTGTATTGTCCATTGTAGCACGTGTGTAGCCCAAATCATAAGGGGCATGATGATT -TGACGTCATCCCCACCTTCCTCCGGTTTGTCACCGGCAGTCAACTTAGAGTGCCCAACTTAATGATGGCA -ACTAAGCTTAAGGGTTGCGCTCGTTGCGGGACTTAACCCAACATCTCACGACACGAGCTGACGACAACCA -TGCACCACCTGTCACTTTGTCCCCCGAAGGGGAAGGCTCTATCTCTAGAGTTGTCAAAGGATGTCAAGAT -TTGGTAAGGTTCTTCGCGTTGCTTCGAATTAAACCACATGCTCCACCGCTTGTGCGGGTCCCCGTCAATT -CCTTTGAGTTTCAACCTTGCGGTCGTACTCCCCAGGCGGAGTGCTTAATGCGTTAGCTGCAGCACTAAGG -GGCGGAAACCCCCTAACACTTAGCACTCATCGTTTACGGCGTGGACTACCAGGGTATCTAATCCTGTTTG -ATCCCCACGCTTTCGCACATCAGCGTCAGTTACAGACCAGAAAGTCGCCTTCGCCACTGGTGTTCCTCCA -TATCTCTGCGCATTTCACCGCTACACATGGAATTCCACTTTCCTCTTCTGCACTCAAGTTTTCCAGTTTC -CAATGACCCTCCACGGTTGAGCCGTGGGCTTTCACATCAGACTTAAAAAACCGCCTACGCGCGCTTTACG -CCCAATAATTCCGGATAACGCTTGCCACCTACGTATTACCGCGGCTGCTGGCACGTAGTTAGCCGTGGCT -TTCTGATTAGGTACCGTCAAGATGTGCACAGTTACTTACACATATGTTCTTCCCTAATAACAGAGTTTTA -CGATCCGAAGACCTTCATCACTCACGCGGCGTTGCTCCGTCAGGCTTTCGCCCATTGCGGAAGATTCCCT -ACTGCTGCCTCCCGTAGGAGTCTGGACCGTGTCTCAGTTCCAGTGTGGCCGATCACCCTCTCAGGTCGGC -TATGCATCGTTGCCTTGGTAAGCCGTTACCTTACCAACTAGCTAATGCAGCGCGGATCCATCTATAAGTG -ACAGCAAGACCGTCTTTCACTTTTGAACCATGCGGTTCAAAATATTATCCGGTATTAGCTCCGGTTTCCC -GAAGTTATCCCAGTCTTATAGGTAGGTTATCCACGTGTTACTCACCCGTCCGCCGCTAACATCAGAGAAG -CAAGCTTCTCGTCCGTTCGCTCGACTTGCATGTATTAGGCACGCCGCCAGCGTTCATCCTGAGCCAGGAT -CAAACTCTCCATAAAAATTATGATGTTTGATTAGCTCATAAATACTAAATAATGTTGTAACTTATAGTTA -CGTTTTTTGGAATTAACGTTGACATATTGTCATTCAGTTTTCAATGTTCATTAAAATTATTTATGGAGCG -GGTGATGGGAATCGAACCCACAACATCAGCTTGGAAGGCTGAGGTTTTGCCATTAAACTACACCCGCTTA -TTTAATTAAGAATTTTGATGCGGCCGAGAGGACTTGAACCTCCACGGGACTTCTCCCACTAGGCCCTCAA -CCTAGCGCATCTGCCATTCCGCCACGACCGCGGATATAGGCATTTAAAACATCTTCGTTTTACAGAACGT -TATTTATTATATTATGATTAAAAATATTTGTCAATAACTTTTAATCGTTTTTTTACATTAAATTAATTTG -TGTTATCAGTTGTTAACACAACGTTATTCATAATAAAACATTAAGAACTTATTGTCAACATATTTTATAA -ATTAAATTTAGAATTGACTGTCTTTCAAATCAAAGTTTATTTAATTTGTTCTTTTTTAAGGAACGTGTTT -AATCATACTAACTATAAGCTGTACAGTCAATAGATAAATTCAATCAAAATGTCATTAAAAATGTATAATT -ATCTTTTGTGCCACTTTAAAGCTTTAATTGGGTAAAGTTTATATATAATTCATTACTAAAATACGCCAAG -ATTTTTAATCTAATCTATTTAATTTCATCCTATCAAGTCACAATTTATGCCATTACCTATATTAAAAGTA -GAAAAGCCGCGATTGCGAAGTATTAAATTACGACAATCTCGGCTTTAAACATTTTATAAACACAATTTCT -TCTTATTCAATTACTATGTTTACCAATCAAAATAACTCACTGATAAATTCTATATAAATTCCATACAACT -CATAAATAATCTTACATATACATGAATTAGCTCTATTTGTATTGTACTTATTTCAATTGTCTTTTCATTC -TTAATTTTCCATTGCAATGTCCGCAACGCATACGATTCGTATCAACTTTACGGATACGTATATATTTTGC -ATGACATTTAGTGCAATAATATTCATAATTTGCCCGTTGTTGATAGCTTTCAATGCTGTTACAAAATCTA -GGCGCTCCAACCTGTTGGCTCAATCGTTTAAAATCTTGATCTTTATGTTGATAACCTTTACCAGCAATAT -GCAAGTGATAATGACACAGTTCATGCAGTATAATTTTTACAACAGCATCTTCTCCATAATGCTCATATTG -TTTTGGATTAATTTCAATATCATGAGACTTTAAAAGATAACGTCCGCCTGTTGTACGTAACCTTTTATTA -AAATATGCACGATGTTGAAAGGTACGTCCAAATTTTTCTTCCGAAAGGTTCTCGACCATTCGCTGAAGTA -TTTCGTTATTCATGTGGATCAATCATTGTTAATGATACTTTGTCTTTATTTTTATCAATACTATGAATCC -AAACGTCTACGATATCACCAACACTGACAATATCCATTGGGTTTTTAACAAATTTCTTAGAAAGTTTCGA -AACATGGACAAGTCCATCTTGTTTAACACCTATATCTACAAATGCTCCAAAATCTACTACATTTCTAACT -GTGCCACTCAATTTCATTCCTTCTTTTAAATCTTCAATTGATAGCACATCGGATTTAAGGATTGGTGTTT -CAAACTCGTCCCTTGGATCTCGATTAGGTGCTTTCAAGGATTTAATAATATCCTCTAATGTAGGTACACC -GACTTGTAATTCAATCGCCAGTTCATCCATATCCAATGAATTTAATTTAGCTTTTAATGCATCACTACCT -AAATCATTACCACCAAATCCGAGTTTATCTAATAACTGATACGTTACTTTATAGCTTTCGGGATGAATCG -ATGTATTATCCAATGGCTCTGACCCGTCTACTATTCTTAAAAATCCTATACTCTGCTCAAAAGTTTTAGC -ACCCAAACGCTTAATCTTGCTTAACTCTTTATTATGCTTTATTGCGCCATTTTCTTCTCTATATGCAATT -ATATTTTTAGCAATTTGCGAACTTAGACCAGACACATATTGTAATAATGATGATGATGCTGTATTGACAT -CAACACCTACTTGGTTAACTGCTGTTTCAACAACGAAAGTTAATGCATTTTCTAGTGCTTTTTGATTAAC -ATCATGCTGGTATTGTCCAACACCAATAGATTTAGGATCGATTTTAACTAATTCACTTAATGGATCTTGA -ACGCGTCGTCCAATTGATACGGCACTTCTTTCTTCCACTTGAAAATCAGGAAATTCATCTCTAGCAATTT -CTGATGCTGAGTATACTGAGGCGCCCGCTTCATTGACAATGATGAATTGTACTGGCAACTGATGCTTTTT -AATTAAATCTGCAACAAATTGTTCTGTTTCACGACTTGCTGTACCATTGCCAATTGCAATTAATTGCACA -TCATACGCTTTAACCATTTGTACAAAATCCTTCTCTGCTGCTTCTTTTTTAGCAACTGGTGGATGCGGAT -AAATCACACCTTTTGCTATAAAAGTACCAAATGGGTTAATGACTGCTAATTTACAACCTGTTCTAAATGC -AGGATCTACGCCTAATATTTGTTTACCTTTCATTGGAGGTTGCAGTAATAGATTTCTTAAGTTTTCACTA -AAAACATCTATTGCATGATTTTCAGCTTTTTCAGTTAAATCAGCATGGATTTCACGCTCTATCGAAGGGA -CAATTAAGCGTTTCAAGCTATCTTTAATCGCCTCTAAAATATAACTGCGATTTACATTATTATGATTGAT -TTCTTGACGTGCAATGAAGTCCTCTACTGCTGTCGTATCGAATTCAAACTTTACAGATAATACTTTCTCT -TTTTCGCCACGATTCACAGCTAAAACTCTATGATTAGCAATGCGTTTAATTGGCTCACTATATGCATAGT -ACATTTCAAAAATACCTTTTTCATCTTCAGCATTTTTCTTTTTAGATGTAGTTAACACACCTTGATGATA -CATATCTTTTAAAATTTTTGTTCTATATTTAGGATTATCTGAAATTTGTTCAGCAATAATATCTTGCGCA -CCTCTGATAGCATTTTCAACCGATTGCACTTCTTCATTTATAAATTGTTGTGCTTTTTCTTCAATTGATA -CTTCATGTTTACGTGCCTTCATCCATATCGCTAATGGTTCTAATCCTTTACGTTTCGCCTCAGTCGCCCT -AGTCTTTTTCTTTTGTTTAAAAGGTCTATATAGGTCTTCAACACGTTGTAATTTGTTCTGTTTTAAAATA -TCTTTCTTTAATTCCTCAGTAAGTAATCCTTGCTGTTCTATATTTTTGATAACTTCTTCTTTACGTTTTT -GTAAATTGACCATATATTGGTATTCGTCATCAATTTGCTTTATTTGAACTTCATCTAGTCCACCAGTTTG -CTCTTTTCGATACCTCGCAATAAATGGTACTGTATTTTTTTCTTCAAGCAGTGTTAACACTGCTTCAATT -TGTTTTTTACTAAATTGATATTTCTCTATGATTGAATTAATCAATTGATTGTCCATTTACTTAACCCACA -CTTTTTCTTAAATTTACTCATTTATTTTAACATATTCTAAAATACTTCTATTAAGGTATGATACTTAATG -CAATTTTAACTTCCAAAACTTTAAAAACGAATTATTAGGTCATACTATATCTTAAAACGCACTAAGATTA -TTGAAAATGACACACCATCATTTCCTAAATTTCATAATCTAAACCTACTTTTTTTATTCTAATAGCAATC -CACTTAATTAAACTGACAATTAGATATCTTCTTCACTTAAATTATTAATACTATATCGCGACATTTATGT -GGATACACATTAAACTACGTTAATAATGTATTAATTCGAAAATCTTAATTAAATTAAAAATATCCCTCGA -TTTCAATTTAATAATCAAGGGATAATTATATGGATTTTTCATTATAAAACGCATTATTAATAAGCAAATT -CTATTTATGTGCTGCTTCTTGTAATTTCTTAATTGCCGTTCTTTGAAGTCTGGAAACATGCATTTGACTT -AAACCGATACGCTCACCTGTCTCTTTTTGACTCAAACCCTCAATAAACGTACATTGTATGATTTCTCGTT -CGCGATCAGATAATATAGGTAATATTTTTTCTAAAATCATACGTTTTTCAGTTAAGTCATAATGGTCATC -TTGTTGTCCCATAATATCTAATAGCGTAACAGTTGAACCATCTTTATCAGCTTCAATGGAATGGTCAACA -CTTAACGCATTATAACTTTGTCCCATTTCCATTGCTTCTAACACTTCTTCTTCTGAAACTTCTAATCGAT -CAGCTATTTCACTGATAGAAGGTGAACGCTCTAATTCAGCGGTTAGTTCATCGCTCACTTTTTTGATTCT -TGGTCCAATTTCTTTAATACGTCTCGGAACATGTACACTCCAAGTTTTATCTCGTAGATATCTTTTGATT -TCACCGATTACAGTAGGTACTAAAAAGGCTTCAAACTTCCGTTCAAAGGACATATCGAATCTATTTATGG -CACCTATTAAACCAACCATACCAACTTGAACTAAATCTTCGTGATGTGATTGTCCTTTAGAATATTTATA -TGCCAATGACTCAATTAGTTTTTGGTAATGTTTAACTAACTTATCTTGTGCATCTGTATTCTTATTTTCT -TGGTGTTCTTTAATCCATTGGTTAATTTGCTCAGGTGAAACTTCATTAGCTGATTTCGACTCTTTCGCCA -TTATTTCGCACCTGCTCTTTTTTTATATACTTAGTCATACTGATTGTCACACCAGATTCTTTATATACTG -TCACTTCATCCATTAAAGATTCGATTAAAAATAAACCTAGGCCACCTTCACGTAAAAAGTCTATATTTTC -ATCTTTATCGTAAGGACCTATTTTTGATTTAGTTGTTTCATAATCAAAACTGTCACCTTTATCAGAAATA -ACAATTTTAATTTTATCTTCTAAAATTTCAAAATATATGTTAATAATGCCCACATTGTTTTTTTCTTTGT -ATGCATGTTTAACTGCATTTGTCACAGCTTCACTAACTGCAATCTTGGCATCTTCAATATCATCATATGT -AGCACCAGCTCTCGAAAAAACGCCAGAAAGTGTTAAACGAATTAAACTTACATACTCTGCCGATGCTGGC -ACGCGCATTTCGATAAAATCTTCTTTAGATTGCATGTTATTCGACCTCCGTTCCTTCATTAACATGCATT -AAATCCTTAAGACCAGTAATTTCAAATAGTCTACCGATACGATCTGACACACCTAAAATGTATAGCTCTT -TATCATTTTGGTTTAATGCTTTTAATGTACCTACGAATAAACCTAAACCTGTCGAATCCATATAACTCAC -ATTTTCTAAATTAACATAAATATCACGAGTTCCATCTTGTCTCATAGGTGTTAAAACCTCTTCTAATTCA -GGCACAGTATAAACATCTAATTCTCCACCGACTTTAACTTCGTAAAATTTATCTTGAGTGGTTGTTTCTA -TATTAAGATTCATTTCATTACACTCCTACTTATTAAAAATATTTATCTTCATTTTAAGCGCTGTATCCAC -CATATTTATATTTCAAATTATTATATACCCATCGAAATAATTTCTAATCTTCTTTTTTAAATTAATTTAC -TCTTTTTATAATCAAAATAGTCATATCATCTTTTTTATTTGGGTTTTGAAGTTTTAAAATTGCTTCATAG -ATAATTTGAACAATATCTTGTGGGTGCATATGTTTATGTTTTTTAATATATTCTAAAAGTTTTTGTTTAT -CTATAAAGGTACCTTCACTATTTCTAGCTTCAGTCACACCATCCGTTAAAATGATAATTAAATCATCAAG -GTATATTGGAATTTCTTGTTGTTGATATCGTGTTTGTGAACTGATTCCTAACACTCTACCTCTAACTGAA -ATTTCTTCAAACTCTTCTTTTTCAGCGCGATAAATATATCCAGGCTCATGACCAGCTGAACTACAATATA -ATAAATGGTTCATTTCTTCATATAAACCATAAAACATTGTGACGAACATATTTTGATTAATATTCTTTTC -AACAACACGATTTAAACGTTTTAAGCCATCACTCGGTAATTGTGAGTGTCCATAAGAATCCATGCCAAAC -TTTATCATACTCATTGCTAAAGCAGCTGGTATACCTTTTCCAATGACATCTGCAACAGCAAAGCTCATTG -TGCCATCGTTATGGTCAATTAAATTAAAATAATCTCCACTTACTTTTTGTGCCGCCACTGAAATAACGCC -AATTTGAATACTATCAAATTGTGGAATATCTGTTTTAAGCATTGTTTGTTGTAAGCTAGAAGCTAAGTCT -ATCTCTTTATCGTGAACTTGAAGTTTATCTACCAATCTTTGATAATCTCGATAACTATAACCAAAGCCTT -TAACGATTTCTTGTAAGACATCTAATGTCTTGAACACATCTTCACGCGTTAAGTTTAACGTCAATATATA -GTTTTTGTGAATATCGACAATGTCTTCAGGCAAGACGTCCTTACGAATCACTTCGTCAGTGTATTTCTCA -CACTTTTTTATCAATTCTACTTTATCTTGGCACGTTAAACTTTCATCAATTAAACCCTTATAATGTTGCT -TAAATTCTTCCACGATTAGTTGCCTCCTCACTTCCCTTACAAAGCAAATGCTTAAGCAAGGATAATTATG -ATTCACTTACTAACATTTATTTAATTGCACTTATCAATTTTGTCGTTTGCAATTTTGCTGTAGATGATAC -TTTTAAGCTAAAAAAACTTTAGGATGGAATACCTAAAGCCTAAAAAACTTAAGACATCCTTTTATAATAA -AAAATATGAATATCATAACTGGTATTTGCTAAAATCTTTGTTTATAAGAAATTTCTTCGTACAGAATTTA -GAAATAGTTATAATTATTATAAAGTTATCGTCTTTTATATCAATATTTTATTTATCTCTGAAAAATACAT -ATAATAGACGCCTAATTTTTCTGATGAACTACTGCATTCAGCCCTAAACTAATCATTAGTGCATTATCTA -CTTCTTTCATTTTATCATCGGATAAGTATGTCAGTTTTTCTTTCAATCGTTTTTTATCAAGTGTACGAAT -TTGCTCTAATAATATAACTGAGTCTTTATCCAATTTATACTTTTTCTTTTCAATCTCTACATGTGTCGGT -ATTTTCGCTTTGTTAATCCTACCAGTTATTGCCGCAACAATAACTGTAGGACTATATTTATTACCAGTAT -CATTTTGAATTATGACTACAGGTCTGACTCCCCCTTGTTCAGATCCCTGTACTGGTGATAAATCTGCTAA -ATAAACATCTCCTCGTCTAATCATTCATTCGTTGAATTAGAAGATAAATATGTTTCGTTGCAATCGCATG -CTTCACACTCTATCGGAAAAGCTTCGTTCGCTAGGGAGAGATTTAAATCAGCCATTTGTGAATATCCTTC -TTTTAAAGATTGTTCTAAGCTATGACTTCTATTTTGACTAAAAGATAACATATGAGAACCTCCAATTGAT -TCCAAAAGTTATTAAATGACCTTTAATTACTCTAATGATAACAAATTTTATATGCACTGACCATATTATT -TTAACAATTCATTTGTTACAAAACGTTGATCACCATCATGATAGATTCGCGGCAAACGTCTCGACAAGTT -ACAAAGCACTTCATAATTAATAGTATGTTGCTTTTCAGCTGCCACCTCTACCGACTGTGGACTTTCTCTA -TGATTATCTATTAAAATCACCGAATCTCCAGCTTTAACTTGATCTGGCACTTTTACAATTGTCTGATCCA -TACATACGCGACCAATAACTTCGCATTGATGACCATTTACATTTACAAAGCTACCTTGCATAATGCGTAA -ATAGCCATCTGCATATCCAATAGGTAACAATGCTATTGTTGTTGGATCAGTAGCTGTATAAGTTGCACCA -TAACTTACAGACTCACCCGCTTGTAGCGTCTTTGTTTGAACTACATTAGCAATTAATTGCACACTTGGTT -TAAGGTGTACTTTAACTTTTTGCTGTACATACTCTGATGGATAATATCCATAAAGGGAAATTCCTGGTCT -TATTGCATTACAGAATTGGCAATCCATTAATAGAGAACCTGCTGAGTTCTGACAATGTATATATTCAGGT -TTAATTGCTTCATTGACCATATCTTTAAAACGGTGATATTGTTCAGTTGTCATATCTCCTGGTTCGTCAG -CACAGGCAAAGTGTGTAAACACGCCTTCAAATACAAGTTGCTCATATTGTTGAATGATTTCAATCACTTC -TTGATACGTTTTAGTATCTTTAATACCTAAACGTCCCATTCCTGTATCTAATTTAATATGCAACCATAAC -TTTTTCTCTTGCTCACCAGAAATGTTTTTAATTGCTTCTTTCAACCACTGTTTAGACGGAACCGTTAAGG -CAACTCGGTGTTGTATCGCTTTATCAATATCTTTAGCTGGTAACACACCTAAGACTAAAATTTTAGCAGT -AATCCCATGCATTCTAAGTTCTATCGCTTCATCTAACGTTGCTACAGCAAAAAATGTGGCACCATTTTCC -ATTAAATGACGTGCTACTTTAACACTACCTAGTCCATAGGCATTGGCTTTAACGACAGCCATCACTGTTT -TATTTGGATGCAATGTACTGAATACTTTGAAATTTGATGCAACAGCGTTTAAATCTACATTCATATACGC -AGATCTATAATATTTATCTGACATATTACTTCCTCCTGTAATTCCCACACGTTTTAAAACTAGATTTTAA -TTATCATTGTATAACAAATTTAAAATGCTGACTTTTCTAAAACAACTTGGCTCATCGCATAATGCTCAGT -GTGTGAGATACTAACATGTACGATGAACCCTTCGTAATCGATCTTTGGTTTGCCAAGTTCGTCGTTGTAA -CAATCTATATCATTAAATGCGACATGTTTTCCTAAGCCTGTGCCTAATGCTTTACTGAACGCTTCTTTTG -TAGCAAACCTGCCAGCTAAAAATTCAATTTTACGTTGCTCATGTGTGAAATTGTTGAATTTGTGCTGTTC -ATTTTTAGTTAAAATCCGCTCAACCAATTTTGGTTGCTTACTATATAACACTTTTATTCGATCTATTTCG -ATTAAATCTACACCAATTCCATGTATCATTGATTATTCCTCATTTTTATTGTTTTCTATATGTCTCTCGT -TATTTAACCAGCGTTTCAACCTACGTGCTTCACTTCTATCTATTAATTCAATTTCAGCTTGACCACCCGC -TGTATAAAGTGTCAAAGTTGCTAATCGATAGCGTCTCATTATAGGACCAACATCGATATCAATATTTTGA -ATACGAAAATATGGTATTACTTTTTCATCCAAAAATAAAATGCCGTTTCGTACACGCAAATGGTGTTTTT -CAAATGCATATCTGCAGTGCTTATATCGATAGACTGGCGCTATGACAAGCGTGAAAATAGCAACAAGTAA -TATTATAATCACACTACTAACAATAGATATATAGTTATCTAATATCTCCCAAAATAGCCAGTTCAAAATA -TTAAATGCTATTAAAAGTACAAACGCTATTGGTATCCAAAACAGCACAGCACTTAACCTCATCACTTTTT -TAGCATGTGGTGACATAAACTTATAATCACTCATCATTTTCACCTCTCAAATACCACGACTTCAATATTT -GCACATCTTTGCTACTTGCGTATTTTAAGTTAATCGATTGGGCTCCCACACCTTTAGCAACAATAAAACT -AAAATTATTTAAATTGTTGCGTTTAAGTAATGTATGTTGCCAAGTGTCAAATCCTATAATGTGTTGCGCT -TTAAAATAATAAATATTTCGTTTCAATAGCACGAAATTCTGGATAGTAATTTGTTCATCTGTCATTTTAA -AACCCGCATGTTTGACATAAAGATATCCTTTGATTACAAATAAACCAATAATGACTACTGTTATAATCGT -AAATAACAATAATAATTGATTCCAAAAGTAACAGCCAATTCCTGCCATAGCTATGACAATAATACTAGGT -ATTAAAAAGTGTCTGTGGAAACCTGACAAAGGCATACCTTCATTGACTTGCTGATAAGATAAATCTGGTA -CTAGATTCTGGATAATTTGATATGCTTTGTCTCGTTTAATAAACGGCAATATCGGCACACTACCTGAATC -ATTGTCATCATCTTCGATTTTTTTATTTTCAAAATCACTTGTGATGATAAAATGTATTGCAGTGTAGCCA -AATAATCTTCGTATATATGACTGACGTTCAACAACAGCTTGCAATCGTTTCGTTGGTACAGTCACTTTCA -TCTTGTTAAAGAGTCCATATTCAATTTTAAGTTGCTCATTTTCAAGCATCACCGAAAAGCCATAAAATCT -TATCATCGTTATAATCGTTCCAATAATATATGCCGCTATTAATACTAGTAAAATGATAATTAATACTGAA -ATACTTACAATTTGAACCCATTGACTAATTTCATGATTTAGCTTCGACCATGGGATCAATTCTCTTACAG -CGCCGTAAATCGGTACTAAAGCTGCTAACGTTACACCAATGGCGCCACTGGTCATTGCCATAAATAGTGA -TTCTTTAAAATTCATCTGATATATAGGAATGCGTTTATTTTTCTGATTTAGCATACTATCAGTGTTCTGC -ACTTCATCTAAGCGACCTTCTGCGATGTCTTCCACATTACCTTCAATGTCATGATTACAGTTGTCATTCT -TCTCAGTACTAGACTTTTGCGCCACTTCTGTCTTCAACTCTGTTTGCAATTGATCAATATATCGTTCAAG -ATATTCACCTTGCTTTTTCGAAATAACACTTAAGACAATACCATCACTTGGCGTTTTGATTTGTAAATCC -ACGCCACCTATCATTTGATTGACGACCCCTTGAGTCATATCAACGGACTGAATACGTTTTATATTTAATT -CTTTACGCTTTTTATTAAAAATACCTGTTGTTAAAATGAAATAATTATCCTCAATCCAATATCGCGTGTT -CATAATTCCGACAATTTGAGAAATGTATGATATTAAAAAGAATACAAATACAATACCTATCCATAAATAT -GATTCGGGATTCGTATAATCAAAATCTTTCAATTGAAAGATAACGAAAATAAAAAAGACGACTATGTTTT -GTTTGATAGCATTGATTATGCCATTAAAATATGAAATCGGATGTAATTTTTGAGGTTCAGACATCACTTT -CAACCCCTCTCAAATTCGACATAGTTCTCGCTTCGATTATTTTAACATCGTCATGAGACATCATCGGTAA -ATAAATAGTATGACCTGCAGTCATAAATCCAACTTTATACAAATTAAGCACTTTACTAATTGGATTAGAT -TTAATCGACAAGTATTGTAAACGTTCAATTCGACTCGTTTCTTCTTTATATATTAAAAATGATGTACGAT -ATTGTACACTGAGTTGATCAACTTGATAAAAGCGACAGTGATATTGCCATAAAGGCTTAATGATTAATTT -TAAAACAGTCAAAGTACATAAAACAAATAAAATATAAATTAAGTACTGAGGCCATTCAAATCTTAACCAT -ATAAAATAAAAAATGACATACACAGCTACACTCAATATAAATTCTAAGCCATTCGTAATGTAGTAATACA -ACAATGCTGACTTAGGACTCTTAGATAACTTAGTATAATCTGACATATACCCCTCTCCCCAAATAAAAAT -TATACGGATTTATAATCTATTTCATTTTATTTTTATATGTTGATAATTATAGCATATGGAATATTTCATG -CTAATTTATTCTTCCTAAAGGTACATCTAAAAATTTAGTTAAGCAGAAAGTACTTGAATACCTAAAAAAG -ACACCATGTTATAATTTTATCAACATGATGTCTTTCATCTATATTCAATCTTTCATCTTATCAAGAGCAA -TATTTAGTTCAAGCACATTCACATAATCATTTGTTAACACACCACGCTGCTTACGATGTTGAATCAAGTC -GGCCACTCTTGAAGTAGATATATGACGAGCATCAGCAATACGAGGTGCTTGCTTCAATGCATTTTCAACC -GTAATATGCGGATCTAAGCCCGACCCAGAACTTGTTGCAGCATCTATTGTTACATTTGAATTATCAAATT -TAACATGATGTTTCACGCGTGCTATTAATTCGGTGTTTCCATTCGATTCATTACTTCCACCTGATGATAC -GCCGTTTTTATATAATTTTTCAGGATTCATATTATAATCAACTGCACTCGGTCTCCCGTGAAAATATCGT -GTCTCTGTCCAGTGCTGTCCAATCAATTTTGATCCAACTATACGATTATCATACGTAATTAAACTACCAT -TTGCTTGTTGATAAAAAAATATTTGACCAATTAACGTGATAGCTAACGGGAATAAAAATCCACACAATAC -CATAGTTATTATCGTTAAACAAATACTATTTCTTATCGTATTCATGGTACAGACTCCTTCCTCTTCACAC -AAAAAATTGTACAATCATATCTATTAATTTAATGCCTAAAAACGGGACGATTAATCCACCTAATCCATAA -ATCAACATATTATTTATAAAAATTCTATCAATGCTGTAACCCTTTACTTTTACACCTTTCATGGCAATTG -GAATTAAGGCAACAATGATTAATGCATTGAATATCAAAGCTGATATAATTGCAGATTTAGGTGACGATAA -ATGCATAATATTTAGTGAAGTCATTTCAGGAATCGTTGACATCATTAGTGCAGGTAAAATTGCAAAGTAT -TTTGCTACGTCATTAGCCAAACTAAATGTCGTTAATGCACCTCTCGTCATTAATAGTTGTTTGCCTATTT -TTACAACCTCTATTAACTTTGTAGGATTCGAATCTAAATCAATTAGATTGGCCGCCTCTTTAGCACTAAT -TGTCCCTGAGTTCATAGCTAATCCTATATTCGCTTGTGCTAGCGCAGGTGCATCATTTGTACCATCTCCT -GTCATCGCAACAATATGGCCTTTCGCTTGTTCATCTTTGATGACTTTAATTTTATCTTCGGGTTTACACT -CTGCAACAAATCTATCAACACCCGCTTCTTTTGCAATTGTAGCTGCTGTTAGAGCATTATCGCCCGTACA -CATAACTGTTTCAATGCCCATTTTTCTCAATTCAGCAAATCGTTCTACAAGACCATCTTTAATCACATCT -TTTAAATAAATCACGCCAAGCATGACGTTGTTTTCAATGACTATTAATGGTGTGCCACCTTTACTCGATA -CATCCATACAGATAGACTCAATATTAAGAGGAATATTGCCTTGTTGTTGTTTGACAAGATTTATCATACT -ATTAGGTGCACCTTTGAATACCGATATTTCATTTGTAATGATTCCGCTCATTCTAGTTTCAGCTGTAAAA -GGCTTATATGTGCCATCAATGTCTTTAGGCAGCTCATTTATATACATCTGCTTCGCTAATCGCACAATAC -TTTTTCCTTCTGGCGTATCATCGTAAATTGATGACATATAAGCAGCGACTATCAATTTTTCCATCATTTG -TTGATTCACTGGTAAAAATTCACTAGCGATTCGATTGCCATAAGTGATTGTGCCTGTCTTGTCTAAAATC -ATTACATCGACATCTCCACATACTTCTACAGCACGCCCACTTTTCGCTAATACATTGAATTGAGTAACAC -GATCCATGCCTGCAATACCAATCGCCGATAACAAACCACCGATTGTCGTTGGTATTAAACATACTGTTAA -CGCAATGAGCATCGCAATAGGTAAAATTAAATGCAGGTAAGATGCTATTGGATATAATGTTACAATAACG -ACTAAAAATATAATTGTTAACGTTGTTAATAATGTAAAAAGTGCAATTTCATTTGGTGTTTTATTTCTTT -CCGCCCCTTCAACTAAGGCAATCATTTTATCTAAAAAAGATGTACCCGCTTCACTCTCAACACGTATTTC -TAACCAATCAGATGTTACAAGTGTACCGCCAATGACTCCATCAAAATCGCCACCTGATTCTTTTATCACA -GGTGCAGACTCACCAGTAATTGCAGATTCATCAACGGTTGCTAATCCATTTATTACAACGCCATCAGCAG -GGATTGTTTCTCCATTTTCTACCCGAATATTTTGTCCGGCTTTTAACTCTGTGGCGTTCACTATCCGATA -CGCACCATTTTCTTCTATCAATCGAGCAGTTAAATTTGATTGTGCTTGTCTTAAACTATCAGCTTGCGCT -TTTCCACGACCTTCAGCAAAGGCTTCTGAAAAATTAGCAAACAATATAGTTATTAATAATATGATAAAAA -TTGTAATCAAATAACCTCGCGATAGATAGCTAGTTCCAAATATGTCAGGAAAACATATTAATATCAACGT -TAAAAGCATTCCAACCTCGACGACAAACATTATCGGATTTTTTATTAATTGTTTAGGATTCAGCTTATAA -AAACTCATTTTCAAAGCTTCTATCACCATTGTTTGATTGAAATATTTATTTACATGATGCATTTTTTCCA -TCCCTTTACTTTATTTTAAAGTTAAAAATTCACCAATAGGACCAAGTAATAGTACTGGAATAAATGTCAA -ACCACTTAGTAAAACGATAAATACGATTAGTGATACACCAAAATAAGGTTTATCAATCGCTATTGTATGT -TTATCTTGGTGGTATGATTTTTTATTCACTAAACTTGATGAAATCATTAATTGCAAAATAATTGGTATAT -AACGAGAAAGCAACATAATGATTCCTGTAGAGATATTCCAGAATGTTGTATCATCTTTCAGTCCTTCAAA -CCCTGATCCATTGTTCGCAGCAGCTGATGTCATTTCATACATAACTTGTGAGATACCATGAAAAGACGGA -TTCGTTATACTTTCACTTGCTCCAGGAATCATAAAAGCAAGTGCTGAAAATACTAAAATTAAAATTGGAT -GTATGAGAAAGACTAAGACAATACATTTCATTTCACGGGCGCCAATTGGCATATTTAAATATTCTGGCGT -TTTACCAACCATCAAACTGCATATAAACAATGTCAGTAAGACATATATCAATAAATTCATGAGTCCTACG -CCTTCGCCACCAAATACAACATTTAGCATCATTAATACCATTGGTCCTAATCCACCTAGAGGCGTTAAGC -TATCATGCATGTTATTAACAGAACCCGTTGTAAATGCCGTCGTAATAACTGTAAATAGTGCTGACAAACC -TGCTCCAAACCGTACCTCTTTACCTTCCATATTCGCTCCATGAATTCCTAAATTTGCTAGTATTGGATTA -CCACGATACTCACTCCACATAGTTAATGTAAGAATTGCTATAAAAATGAAAAACATTGCGACAAATAATA -TCAGCGCATGACGATGTACTCGTTTACCATGTCTACTTAACATGCGACCAAATAAGAACAACATTGACAT -AGGAAGTAACATCATACTGCCCATTTCTATAAAATTGCTCCAAATATTTGGATTTTCAAAAGGTGTTGCA -GAATTTCCTGCTAAAAATCCTCCACCATTCGTACCAAGATGTTTTATTGATTCAAGTGATGCAATAGGTC -CAAATGCAATATGTTGAATATGTCCGCTTAAAGTCCGAATCATTAAATTAGCATGCAACGTTTGTGGTAC -ACCTTGAGTCATCAATAAAATACTAATTAAACATGATAATGGTAAAAGCACTCGGACAATAAACCGAACA -ATATCTTGATAAAAATTACCAATGATATTAGTCAATCCGGTTAAACGTCTCAACATCGCTATACAAACGG -CGTAACCTGATGCACTAGATGTAAACATTAAATATGTCATTACAATCATTTGCGTTAAATATGTCACACC -TGATTCACCGTTATAGTGTTGTAAATTACTATTTGTTAAAAAAGATATTGCTGTATTAAACGCTAAATCT -ATCGATTGGTTTAAATTATGATTTGGATTTAAAAAAAGCCATTGCTGAACTATTAGCAATACAAATGTTA -TAACCCCCATAAATCCATTAAATGCCAGAAAATGTTTGACATATGTTTTAGCTGACATGTGTTCTAAATC -TGTGCCGATAATTTTAAAACACATATTTTCAAATCTAGTAAATATTAAATCTACTCTTGACGATTGCACC -AATGCTACGCGATATAGATATCCACTAAAAACATATGCAATCATAACCATCATTGTTAGAAACAAAATTA -TTTCCATGATAACCCTCACTTAATATATTTCTAAAATTTTTCACTACGAATTAAGGCATAAAATAAATAC -AAAACTAATGCAATAACTACCAATAATAAAACGATGAGCATTGCCATAACCTCCTTACAACACAACAACA -TCGTAACAACTTGTTTATGAGAGAAACATTAATTTTCAAACTTAGTTATTAAGAAATCATTAAGATGTGT -ATGCAGAAATAAATTTTATAGCATTTAATTGTGAAGAATATTATGATATTGCTATCGAGGTGAAGGTTAT -GTCAAACACTGAATCGCTAAACATAGGAAAAAAGCGTGGATCTTTAACAATTTACATCGGTTACAGTCCA -GGTGTTGGTAAAACATTTGAGATGCTTTCAAATGCCATTGAACTATTTCAAAGTAACGTTGATATTAAAC -TAGGATATATTGAACCGCATCAACGTGATGAAACAAATGCATTAGCTGAACAATTACCTAAAATCGCAAC -CAATTTTACTAAACATGGTAGTCATCATTTTCAATATTTAGATGTCGACCGCATAATCGAAGAATCGCCG -ACAATAGTACTTATCGATGAGTTAGCACATACGAACATTTCTAGAGATCGTCATGAGAAACGATATATGG -ATATTGAAGAAATTTTAAATCATGGTATCGATGTTCATACTACTTTGAACATTCAACATATTGAAAGTTT -AAGTAGTCAAATTGAACTGATGACCGGTGTACATGTTAAAGAACGTGTACCCGACTATTTCATAATGAGC -GCCGATGTATTAGAAGTCGTAGATATCTCACCTGAACAATTAATTAAACGCTTAAAAGCTGGCAAGGTAT -ATAAAAAGGATAGGCTAGATGTAGCATTTAGTAATTTCTTTACGTATGCCCACCTAAGCGAACTGCGTAC -ATTGACGTTAAGAACAGTTGCCGACTTGATGAGTGATAAAGAAAAAGTCCGACACAATCATAAAACGTCA -CTCAAACCTCATATTGCTGTGGCAATTAGTGGGAGTATTTATAATGAAGCAGTAATTAAAGAGGCATTCC -ATATTGCTCAAAAAGAACATGCAAAATTCACTGCTATTTATATAGATGTATTCGAAAAAAGCAGGCAATA -TAAAGATAGTCAAAAGCAAGTGCATCAACATCTCATGCTTGCAAAATCTTTAGGAGCAAAAGTAAAAGTA -GTTTATAGCCAAACCGTTGCATTAGGATTAGACGAATGGTGTAAAAATCAAGATGTAACCAAATTAATTA -TCGGACAACATATTAGAAATAAGCGGCGAGACTTTTTCAATAAACCTTTAATTGACCATTTAATGTCCTT -TGAACATAGCTATAAAATCGAAATCGTTCCAATCAAACAAATACCTGTTGAATTGAAAATGAACAAATCA -CCCTATCGTCCTAAAGGCAAACGGTTCGCCATAGATATGTTAAAAATGATTCTGATTCAAATAATTTGTG -TAATGATGGGACTGTGGATTTATCAACTTGATAAGCATGAGTCTAGTACGATTATTTTAATGATTTTTCT -CATCGGCATCATTTTGTTATCCATTTGGACGCGGTCCTACATCATTGGCTTTTTAGCAGCAATTATTAAC -GTATTTGTTTTTAATTATTTTTTTACGGAACCTAGATATACATTTGAAGTATACCGCTTTGACTATCCTA -TTACATTTATCGTCAGCATTTTAACAAGTATTTTAACGAGTGCTTTATTAAAACAAATTAAATTCCAATA -CGCCATTACTAAAAAGCAACTTTATCGTACAGATTTATTATTTCAATTTAATGATTCGATTAAACAAACT -TATACAGTTGAAAACTTACTAATAAATGCTGGATACCAAATTAATCAATTATTGCAACAATCAATTACTA -TATACGTTATCAATCAATCCAAAGTAATTAAAACAATACCATTGCAAAACCATATCGATAATAAGACTCA -ACAGCATGAACAAGCATTAAGCTGGGTAATTAAAAATGAAAGACAAGCTGGTGCAACAACAGATACATTT -CCAGGCATTAATAAATGGTTGATACCAATTGGCACATCTCCGATTAAAGGCATTCTAGCCATTGATTACC -AAAGTTCTCAAGTGATTAATCCATATGATGCATCAATATTAGAATCAATGTTAAATGAACTTTCTCTCGC -CGTTGAAAATGTGACGTTGCTTAAACAAACAAGAGAATCCATGTTACAGGCTGAACGTCAACTGACACAT -TCAAATTTTTTAAGATCAATTTCGCATGACATACGTACACCGTTAACAACAATTATGGGAAATTTAGATA -TTTTAGTGTCACATAGTAAAGATATGTCTATCATAGAAAAGGAACAATTACTTGTGCATAGTTTTCAAGA -AAGTCAGTATTTATATCTATTAGTGACAAATATTTTATCATTAACAAAATTACAGTCATCAAATGTTCAG -ATAAAATTGCAACCTTATCTCGTTAGTGAATTAGTAGAAGAAATCGATATGATTTTAGAACGTCGCCATT -TAAAAAAGCGTATAACTGTATCATCCTCAGTAGATTTACAGTTTATACACATTGACAGTAAGTTGATTTT -ACAAGCTTTATTCAATTTGATTGAAAATGCAGTTAAACACACTTCTACTGACACCAAAATCAATTTATCT -ATTCGTTATGCTAGCGATGAACAAATCGAATTTGCTGTTATAGACGAAGGACCTGGAATTAGTATAGAAG -AACAACAAAAGATATTCGAGCCTTTTTACACAGGGTCAAATAAATATTTTAAAGATAACCAAAAAGAAAG -CATGGGACTAGGCTTATATTTAGTACAGACTATCCTACACAAACATCAATCAAACCTACAATATAAACCG -AACCAACCACATGGCAGTATATTCTATTTCAATATAGATACAGACTTTAATGAAGGAGACATATAATGCA -ATCTAAAATATTGATAATTGAAGATGATCACGCAATCACACATTTACTTGATGTTGCATTAACTTTAGAT -TATTACAATGTAACTACAGCCGAAAATGCCACACAAGCACACTTTAAAATTCAAATTGATAAACCAGATG -TCATTTTATTAGATTTAGGTTTACCAGATAAAGATGGATTATGTTTGATTTCAGAAATCAGGCAACATAC -TGACATTCCTATCATTGTAATAAGTGCAAGACAAGAAGAACAAACAATTATTCAAGCTTTAGATAACGGT -GCGAATGACTATATGACTAAGCCTTTTAATGTTGATGAGCTTCGGGCACGAATTCGAGTCATCGAAAGAA -TCGCTAAGTCACATCAAGAAACTAACATTGTATTTACTAACGGTTTGTTAAGCATCGACTTTGGCTCCAA -ATCTGTTGTTATTAATAATCAGGAGGTACATTTGACACCAAATGAATTTAGCTTGTTAGAACTATTGTCA -AATCATAAAGGAAAAGTACTCACTTATGAGATGATATTAAAACGAATATATGGCTATGTTAATAAGACTG -AAATGCCTAGTTTAAGAGTGCATATGACATCATTAAGACAAAAACTTTCACAATGTCACGAGGACGCAAA -AGATATTATTAAAACACATCCACGCATTGGTTATCAAATGTTGCAGTGGAAAGAGAAATAATTAAATAAA -AAAGATCGCTGCCATTAAACGAATGATTGGCAGTGATCTTTTTTATATTCAACTTATTATTTATTGCGCA -CTAGTGTCAGCAAAATGCCCTATTGTTTTTTACAAGCACATGATACCGAAATTACTTTCATAAAATTTAT -TTTTGGTCAATTATTCTTAGTTTTAGTGGTTGTTATATTCTAGATTCATATTTATATTTAAACAGAATGA -TATAACCGCACACAGCTCTCAATCCAATTAAATATTTAACCTTTAAAATGTTAGTATTTTGATATCTACA -TAGAATCAGTTATTGAAAACAAAAAAGAGCTCAAGACATTACATCTTTAAGCTCTTAATCTATAAATTAT -TTTTGATGGTCAGCAAATGTGCGACCTTTCATAGGTCTGCTTCCACCGCTACTCTTCTCTTTACGGTCGA -ATTTTTTTGTACTTTTCTTCTTACTTGAGTATCCTTTTGAACGTTTACTCTTACTGTCAAATTTAGGATT -ACCACGCTTACTATTTCTGTTACGAGAACCACTTGGTTTACCGTTACGGCCTTTGCGAGATAATGGTTTT -TCAAAAGTTAATTGAACTTCAACTTCATCGTTCGCTTCTATTAACTCTTGTAAAAGTGCAGCAACTAAAT -CAACATCGTTATATTCATTTAACAACTCTGTAGAAATGCGTTTCAAGCGTGATTCTGACTCTTTAGACAT -CCAGTTTTCAACTTTTTCTTTGATGTCATCTTCACGTGCTTGAAGTACTTCTTTACGATGTGGTGGACGA -AGTGCGCTCATTTTTCTACCATTAGCATCTTCAATTTGTCTAATGTAATCCATTTCAATTGGATTTACAA -ATGTTACCGCGATACCTTCTTTACCAGCACGACCCGTACGACCAATACGGTGTGTATAGCTTTCAGTATC -TTGAGGTATATCAAAGTTATAAACATGACTCACACCAGAAATATCTAGTCCTCTTGCTGCTACATCAGTA -GCGACTAAAATATTAATTTGGTCATTTTTAAATTTCTTTAATACTTCTAAACGTTTCGCTTGTGTAATAT -CACCATGTAAGCCTTCAGCTTTATATCCTTTAGAAATCAAAGCACTTGTTAATTCATCAACACGACGTTT -TGTACGTCCGAATACGATTGCTAATTCAGGTTGATGAACATCTAGGAAATTTGTAAATGTATCAAATTTC -TCTAATTCTTTAACAATTGTATAGAATTCTTCGATTTGTGGATCAGACATTTCATTATTCATTGTCTTAA -TGATTTTTGGTGATTTCATAAATTGTTGTACTAAAGCTTGGATTGCTTTAGGCATTGTAGCTGAGAACAA -CATTGTTTGACGTTGTACTGCTGGAATTTTATCCATAATAAATCTCATATCATCGATGAATCCCATATTC -ATCATTTCATCAGCTTCATCTAAAATCAAAGTATGAATTCCGTCCGTTTTTAATGTGCGACGATTTAAAT -GGTCGATAACACGCCCAGGTGTTCCGACTACGATTTGTGGGCCTTTTTTCAAGGCTTTAATTTGGCGTTC -GATAGGCATACCACCGAATACAGTAACAACTTGGACACCTTGTCCACGGCTAAATTCTCTTAATTGTTCA -GCTACCTGCATTGCCAATTCTCTTGTAGGTGCTAAAATCAACGATTGAACCCCTTGTTTCCCTACTACTT -TCTCAATTAAAGGAATACCGAATGCTCCTGTTTTACCTGTACCGGTTTGAGCTTGCCCAAGGATATCAAT -TCCTTGTAACGCATAAGGGATACTGTCTTTTTGGATAGGTGTCGGCTCTTTAAATCCCATTGATTCAAGT -GACTGAACCGTATTATCCGAAATCCCTAGTTCTTTAAAATTTTGCAAAATAATTCTCCTTTTTACCTGTT -TATTTCTCAATATACTTTTGCATATAAGTTCATTAATATTTCATCAACTTCTATATAGTACCACCAAAAA -AATTTAATCGCAATAAAGCAATTTGCGAATATTTATTAGAATCACATTAATTGATTGTCATATTTTTGTC -AAAAAGCTAGCATTAGATAAGATGTAAGCGTTACGCATCATTCGAATAATCATTATAAAAAAATTTTTAT -AAAATACGTATATCGTTAACATTCCACAACAAATTTTACTGAAACACATGTGAAATTAGACATTATAATA -CTACATCTTTTTGTAAAATATTATATAAACATTCAAACTACTTCCTATATATAGTGTGTACATAGAATTA -ACCTTGATTTAGTTTCAAATTTATAGATTTAACATAAAAAGAAAAAGGCAATTTTGTATTTACACACAAA -ACCACCTCATCTTTGTAATCTTTTAGTATTAATTCAAATCATTTTTATAAGTAAAAGGTCGCTCGACTAA -TCTCTATGAAATTAAAGCATTTACAACTTCTTCTAACTTCATACCACGTGAGCCTTTAACTAATACACGG -TCATGCGCTTTTAAATCGCTTGTTAAAACTCCTATCATATCGTCTTTAGAATTGAAGTGTTGTGCTTTTT -CGACATGTTGCTGGCCCGAATCATAAATATACTTCGCTTCATTACCAAACGTATACAACACATCTATATG -CTTTTCTTCTAAATAATTACCTACACCGATATGCATTTCTTTGCTATTTTCACCTAATTCTAAAACATCT -CCTAAAATTAGAATGCGACGCCCTGTCAAGGTACTCAGTGTATCAATAGCTGCTCTCATACTTGTAGGAC -TTGCATTATAGGCATCATTTATCACAGTAATATCATTTTCTAATGTATGTTGCTCCATACGCATACCAGT -TAAGCTGACATTTTTTAAATTTTGATAGATTGTGTTATATGTCAAACCTAATTCATGACCAACCGCAATG -GCAATCGTCGCATTTTTCATATTATGCTTTCCTAATATTGGCAGATCATAATGTTCTTTATTATTAATCG -TAAATGAAATACCTGTAGTATCTCTATCATCAACACAACAAACTAATGCATTATCAGTAGCAACACCAAT -ACTAATACATTTTGCATTTTCAACTTCTTTAACATGCGGTTTTAATAATGGTTCATCGCCATCATATATA -AACGTACCATTATCTTTTAGACCTATTGTAATTTCAGATTTAGCTTTAGCAATCCCCTCACGCGAACCTA -AATCTTGCATATGTGACTCACCAATATTAGTTATGACTGCAATATCTGGTTGAGCGAGGTTTGACAGAAA -TTCAATTTCATGGAAACCTGACATCCCCATCTCCAATATTGATATTTCAGTATCATTATCTAATTCCAAA -ATAGTTAAAGGTAAACCAATTTCATTATTGTAATTACCTTGCGTTTTCTTAACTTTAAATTCGGTATGCA -ATACACTTTCAATCATATCTTTAGTCGTTGTTTTACCATTAGACCCTGTGACGGCAATTACTTTAGGGTT -TACATGTCTCAAGTAAGCTTGTGCCAATTGTTGTAATGCCGTTAATGTGTCTTCAACCCATATAATAGGC -CCGCTTACATTTTCATCTATAGGTGTGCCTTTTTGATAAAAAGCAGCCCCAGCACCATCTTGTAATGCCT -TAGAGACAAAGCGATGACCGTCAACATTTTCACCTTCAAATGGTATAAATAACATATTTTTAGAAATTGC -TCGTGAATCAATTGTGACTCCATTTATCTCTTGATTTAAAAATTGATCTTCAATTTCACAAGGAATCCAT -GATTGAATTTGCTTTAATGTAACATTAATCATAATAACAACCTCAGTTAGTCAATTTTGTATTTATTTTT -CTGTTTATCCTGGTGACGTTCTTTAGCAAGCTCGATAAGTTTTGTAATCAATTCTGGATAAGATAAGCCC -ATATTTTCCCATAATTTTGGATACATACTGAAAGCCGTAAATCCAGGCATTGCATTTGTTTCATTAATAT -ATATTTGGTTGTCTTCTGTTACAAAGAAATCCGCACGGACTAAACCAGAACAATCTGTCGCTTTGAATGC -CTCTAATGCCATATTTCTAAGCGTTAATTGAACATCTTCGTCTAAGTCAGCTGGAATTTGTAATTGAACC -TTACCATCTTTATATTTTGATTTGTAATCGTAAAACGCGACATCTTTTACGACTTCACCTGGCCATGTCG -CTTCAGGATAGTCATTTCCTAAAACTGCTACTTCAATTTCACGTGCGTTAACGCCTTGTTCAATAACAAG -CTTACGGTCAAATTGGAATGCTTCTTTAATACCTTCTTTAAGTTCCACTTCATTACTACATTTACTGATA -CCTATACTTGACCCTAAGTTAGCAGGTTTAACAAAGACTGGGTAATTTAATTTATCATTTACTAATTTTA -AAATGTTATGTTCATATTTTTCATATTCAGAACGTAAGAAACTAATATAAGGTAACTGTGGTAACCCTCG -ATGTTCAAATAATTGTTTCATTACAAGTTTGTCCATAGAACTTGCAGCTGACAATACACCATTTCCTACA -TATGGTACATCCAATACTTCAAAAAGCCCTTGAATCGTGCCATCTTCACCATTAGGACCATGTAATAATG -GGAATACTGCATCGTATGGTTGTCCTGAACTACTTTCTTTCAGTAGCTGTGAAATCTCAAGCGCCTCTCC -ATTTTCTAAATGAAGCTCATCAGTAGATTTAATTTCAGTTGTAATATTATTTTGCTTTCTCCAATCACCA -TCATTGGTAATATAAATGATATCAACATGATATTTGTCTTTATCTATTGCATTTAATACATTTTGTGCTG -TCAGAATCGATACTTCGTGTTCTGCACTTTTCCCTCCAAAAACGATACAAATATTTTCTTTTGTCATTTC -GTTTTCCTCCAATGATATATCAGGGTTTGCTACCTTAATATAAATTAATATTGATTTAGTCCAATTGTTA -AATGATTTATTCGCATCTTTGAATCTTAATAGTATCACATTTTAATGCTGTTTTGCATTTTAAAAACGAG -GCGTTATGTGTCTGTATCTATGTTGATTCATTTATAATCAGAACAATATTCCCTTCTATTTTATTCCTAA -TTCAAATTGAAATCTATAGCTGATATCACTGTGATATTCTAGCTAATTTTTAAAAAGTCATGTAAAATTG -ATATAAACATTAGTGAGTATAAAAGGAGTTTGCAATGAATTATTCATCTCGTCAACAGCCGGATAAGCAT -TGGCTTCGCAAAGTAGACTGGGTATTAGTAGCCACTATAGCTGTTTTAGCAATTTTCAGTGTTCTGCTTA -TTAACTCGGCAATGGGCGGTGGTCAATACAGTGCTAATTTCGGTATCAGACAAATTTTTTATTACATTTT -AGGTGCAATTTTTGCAGGTATCATCATGTTTATTTCACCTAAAAAGATTAAACATTATACATATTTATTG -TATTTCTTAATCTGTCTATTATTAATAGGATTGCTCGTTATTCCTGAGTCACCTATTACACCTATTATCA -ATGGTGCCAAAAGTTGGTACACGTTTGGCCCTATCAGTATTCAGCCATCTGAATTCATGAAAATTATTTT -AATTTTAGCATTAGCGCGTGTCGTTTCTAGACATAATCAATTCACATTTAATAAATCATTCCAAAGTGAT -TTGTTATTATTTTTCAAAATTATTGGTGTCTCGTTAGTACCAAGTATTTTAATATTACTGCAAAATGACC -TAGGAACTACATTAGTATTAGCAGCAATTATTGCAGGTGTGATGTTAGTAAGTGGTATAACATGGCGTAT -CTTAGCACCTATCTTTATTACAGGTATTGTTGGTGCAATGACAGTCATTTTAGGTATTCTATATGCACCC -GCATTAATTGAAAATTTATTAGGTGTCCAACTGTATCAAATGGGACGAATCAATTCATGGCTTGACCCCT -ATACATATAGTAGTGGTGATGGCTATCATTTAACTGAATCACTTAAAGCTATCGGTTCAGGACAGTTACT -AGGTAAAGGATACAATCACGGTGAGGTTTATATACCTGAAAATCATACTGACTTTATCTTTTCAGTGATT -GGAGAGGAACTTGGTTTTATCGGTTCTGTCATATTGATCTTAATATTTTTATTTTTAATCTTCCATCTAA -TAAGATTAGCTGCGAAAATTGAAGATCAATTTAACAAAATCTTTATCGTTGGTTTCGTCACTTTACTTGT -GTTCCATATTTTACAAAATATTGGTATGACAATTCAGTTGTTACCAATCACTGGTATTCCATTACCATTT -ATTAGTTATGGTGGTAGTGCGCTATGGAGTATGATGACTGGAATAGGTATAGTCTTATCAATTTATTATC -ATGAACCAAAACGATATGTAGATTTATACCATCCAAAAAGTAATTAATTTAAACTATTTTGAGTTTCAAA -TATCATAACTTTTCAAGATGACGTTATATAGTCTATTTGCGTCGTCGATTTAAAATGTCATATATAGATA -TTACTCGATAATAACAATCCCTCTTTGAAGTGCTTGAGACATTAAGTTCTTAGGCAATGTAAAAAAGCTA -ATTTCTATTAATTATTTGATAGAAATTAGCTTTTTTGATATGTATTTTATAATGTACAGCTCGTTGAGCT -GCTATTTTCCTTATATTAAGTGCCATTAATACAAAACCTAGCTCTCGTTTAACTTTATTTATTCCTCGAA -CTGACATACGAATGAAACCCAAAATAGCTTTCATAAATCCAAAAACAGGCTCTACATCAATTTTTCTTAT -TGGATTTCGAATTTGGCTTCATGCATTGATGTCTCAAAGAATATGATGAACAGTCATCACATTCATATAG -TTTGAAGTCTCGTTTAAAACCATATCTATCATTACGGTATGCATATCTTTTAAAACCTATTCTTTTGTTA -TTAGGACATATAAATTCATCATTAAGTTCGTCATATTTCCAATTTTGAGTGTTGAAAATGTCACTTTTAA -ACTTTCTAGTTTTATCTTAAATAAACATGCCATACGTAATAAGTGGCGTTTTATTAAAATCATCTATAAT -AGCCATATAGTTTTGCTCACTACCATAACCTGCATCAACTACAATATACTCTGGTAAATAACGAAGGGAT -TTTGAATCATTGTTAAAAACGGAATTAATGTTCTAGTATCTGTTGGGTTTTGAAATAGGTCATAGGATAA -AACAAATTGAGAATTTGTCGCTATTTGTAAATTGTATCCTGACTTAAGTTGGGCAAAGTGTCTTATTTTT -TTAAAGTATTTAAAAGTAAAATTACATGTTAATACGTAGTATTAATGGCGAGACTCCTGAGGGAGCAGTG -CCAGTCGAAGACAGGGGCCCCAACACAGAAGCTGACATATAGTCAGCTTACAACAATGTGCCGGTTGGGG -TGGCTGAGACGGCACCCTAGGAAAGCGAAGCCATTCAATACGAAGTATTGTATAAATAGAGAACAGCAGT -AAGATATTTTTTAATTGAAAAATATCTTACTGCTGTTTTTTTAGGGATTTATGTCCCAGCCTCTCTATAG -AGGGATTTTGTTATATACTACTTGCTTTCATTTTAGTAAATCCAGTCAAAAAAGCTATCATCGAATAGTC -CGACGATAGCTTTAACGGTGTGTGATTCACAATCACAGTCAATTATTTTAATTCGTGACTTACTTTATTA -GATGCTGGCAAAGTATTAATAATGTCTAAACGAGATTTAGTTTTTTTAATATTCACACCTAATGATGACA -ATAGTTTGACTACATTTTGAATCTTTTCAGGACGTTTCATTATTATCACCTCGTTTGGATCGCTTTCAAT -ATTATCTTACCCTATTCGACATACCTTTACTACATCATTTACAAAATTTTTAATTTATTTTCAAAATTAA -AATCTATAGCGCACTCTACATTATACCCTAAAATACAATTTTGTATCCTTCATCATAGATTTCTTTTTCA -ATACTATTCAAATTTGCTGGTGTCTCATACGCTACAGTTACCTGACCGTCTATTATATTAATAATCACTT -GATGAACACCTATCATATTTGAAATGCGTTCTGTCAATTGACTTACTTGTTCTTCTGTTTCAATTCCCGC -TGTGTAAATCGTATTTTGATGTATCATCTTAAACTCCTTTAGTCTTTAATCAATTTTTGAAAAGTCACTA -ATAACTCTTCCATTGCCTCTTCCTGAGCACCTTGATTAACTTTATTCATAATACAACTTTTCATATGTTG -TTCTAATAACTTTGTCGCAACACTGTTTAACGCCGAACGTGTCGCTCTTATTGCGTAAGGACATCATCAC -AATAGACATCTTCTTCAATCATGCGATTAATCGCTCTCACTTGTCCTTCAATTCGATTTAAACGTGATTT -AAGATTCGTTTTTATTTGTTCAGAATGATGTGCATTATCTTGTTCAGTCATAGCATTCACTCCTTCATTT -ACATTCCTTACTATACTATATCCCATAAAACACAACGTCAACACAAAGTGTGTTTTTCAAACTAAATTGT -CATGATATTTAAATTGCTTCATGATACAATTAATAAGATATACTACTCGTTTAAGATTTTCGATGGGAGG -TTTCAAATGATAGAGTTATTATCCATTGCACTCAAGCATTCTAATATTATTTTAAATTCCATATTTATTG -GTGCATTTATTTTAAACTTATTATTCGCCTTTACCATTATTTTCATGGAAAGACGTTCTGCCAATTCTAT -CTGGGCTTGGTTACTAGTCTTAGTTTTCTTGCCTTTATTCGGCTTCATTTTATACTTACTATTAGGACGA -CAAATTCAACGCGACCAAATTTTCAAAATTGATAAGGAAGATAAAAAAGGATTAGAGTTAATCGTTGATG -AGCAATTAGCCGCTTTAAAAAATGAAAACTTTTCAAATTCCAATTATCAAATTGTAAAATTTAAAGAAAT -GATTCAAATGTTGTTATATAATAACGCAGCATTTTTAACAACAGACAACGATTTAAAAGTATACACAGAC -GGCCAAGAAAAATTTGATGACTTAATACAAGACATCCGTAATGCTACTGATTATATTCATTTTCAGTACT -ATATTATTCAAAATGATGAATTAGGTCGTACCATTTTAAATGAACTTGGAAAAAAAGCGGAACAAGGTGT -AGAAGTTAAAATTCTTTATGATGACATGGGTTCTCGTGGACTGCGTAAAAAAGGCTTACACCCGTTTCGC -AATAAAGGTGGACATGCTGAAGCATTTTTCCCATCAAAATTACCTTTAATTAACTTGCGTATGAACAATC -GAAACCATCGAAAAATTGTTGTAATAGATGGACAAATTGGATATGTTGGTGGTTTTAATGTTGGTGATGA -GTACTTAGGTAAATCAAAAAAATTCGGCTATTGGCGAGATACGCATTTACGAATTGTCGGGGATGCAGTG -AATGCATTGCAATTACGATTTATTCTAGATTGGAATTCACAAGCCACACGTGACCACATCTCCTATGATG -ATCGTTATTTCCCAGATGTAAATTCTGGCGGAACGATTGGCGTACAAATAGCTTCTAGTGGTCCTGACGA -AGAATGGGAACAGATTAAATATGGTTACTTGAAAATGATTTCATCTGCTAAAAAATCGATTTATATTCAA -TCTCCCTATTTCATACCTGATCAAGCCTTTTTAGATTCTATTAAAATTGCGGCATTAGGTGGTGTTGATG -TCAATATCATGATTCCTAATAAACCTGACCATCCGTTTGTTTTTTGGGCTACTTTAAAAAATGCAGCATC -CTTATTAGATGCCGGTGTTAAAGTATTTCACTACGACAATGGCTTTTTACACTCAAAAACACTTGTTATA -GATGATGAAATTGCAAGTGTTGGAACAGCTAATATGGACCATCGCAGTTTCACGTTGAATTTCGAAGTCA -ACGCCTTTATTTATGACCAACAAATTGCCAAAAAATTAAAACAAGCTTTTATAGATGATTTAGCAGTATC -TTCTGAATTAACAAAAGCACGTTATGCTAAGCGAAGTCTTTGGATTAAATTTAAAGAAGGTATTTCACAA -TTATTGTCACCTATCTTATAAAATAGAAATATGAGGAGTGTAACTTTAATGCAACAATCAGACATCATTA -GTGCAGCCAAAAAATATATGGAATCTATTCATCAAAATGATTTTACAGGCCATGATATTGCGCATGTATA -TCGTGTCACTGCTTTAGCTAAATCAATCGCTGAAAATGAAGGTGTTAATGATACTTTAGTCATTGAACTC -GCATGTTTACTTCATGATACCGTTGACGAAAAAGTTGTAGATGCTAACAAACAATATGTTGAATTGAAGT -CATTTTTATCTTCTTTATCACTATCAACCGAAGATCAAGAGCACATTTTATTTATTATTAATAATATGAG -CTATCGCAATGGTAAAAACGATCATGTCACTTTATCTTTAGAAGGTCAAATTGTCAGGGATGCAGATCGT -CTTGATGCTATAGGCGCTATAGGTGTTGCACGAACATTTCAATTTGCAGGACACTTTGGTGAACCTATGT -GGACAGAACAAATGTCACTAGATAAGATTAATGATGATTTAGTTGAACAGTTGCCACCATCTGCAATTAA -ACATTTCTTTGAAAAATTACTTAAGTTAGAATCTTTAATGCATACAGATACGGCGAAGATGATTGCTAAA -GAACGTCACGACTTTATGATGATGTACTTGAAACAGTTTTTAACGGAATGGAATTATCACGACTAGACAT -TGGAGTTGTAGTATGATGATGCGATGTAATAGCGTGTTGTTGTGGAAGCTTGGTGTCATGCCATGTTACT -TTGATGTGTTGTTGTGGGAGCTTGGTGTTGATGCCATGCTACTTTGATGTGCTAGTACCACGATGCGTCT -TGATGTAGTGCTATGATGTGGCGTTGCGGTGTTATGGGTGGCATAGCCCGTGGTATTGATGCCATGCCGT -TACAATTCTATGATATGTCGTTGGGACGTTGCAATGTGTATTATGCCGTTGTGACGTTATTATTTCACAC -TGTTACATGTATTTGTGAATTGCTGTGGAAATGTTGCGACATATACTGCTACACTGATGAATCATTGTGT -CAAGATGACATTGCAATGAAGAATAGCAACTCTGTTATTAACCACTTTTTACATGGTGAAATCTCGTTAA -TATTATTTCAAATAAAAACAGCAGTAGGATGACTTTCACATTTGAAATCATCTTAGTGCTGTTTCTATTT -ATCACATATTGTATAATGTGACACTAAGTTTCGCTATTGAAGCGAAAAATAATGTGCTCCCTATAAAGTT -AAAATTATCTTCAACTTTTAGGGGGCACATTATTTGGACTTGCTAAGGTTATTTCTTTTTCTTTTTAGAC -ACTACTTGTGTGTTTTTGCCTTTTTTATTGCTGCCGCCGTTGTGCTCTCTTTCATACGCTTCAATGAAAG -GCTGTACTTCTTTTTTAGCGACTTTTTCATAATAAATGTTCGCAAAGTGTGTTTGAACTACAAGGAACGC -CGCGCTGACTGACCAGTACAAACCAAGTGCTGATGCTGAGCTTAATGAAATCCAGATAATCATAATTGGT -GAAATGACCATCATCATGTAACCCATTTGACGTTGTTCGTCTGGCATCGTTTTACTTGATACATATGCTT -GGATAAAGTATAAAACACCGGCAATAATTGTAATCCAAATATCAGGACGTCCTAAATCGAACCATAAGAA -GTGTGGATATTTAAACAAACCATCTACAAGTTGGTCTTTAAGTACAAAGTATAATCCCATGATGATTGGC -AATTGGATTAGCATTGGTAAACAACCCAACATACTCTTAATCGGGTTCATGTCATACTTTTTATATACTT -GCATTAATTCTTGGTTTGCAGCCATTTTTTCTTCTTGTGTACGCGCACGCTTCACTTTTTCTTGAATTTT -CTCAACTTCTGGCTTTGCAACTTTCATTTTTTGACGCATCATATGACTATTTTTATAGTTTGACAACATG -AATGGTAATAAAATAATACGAATTACCAATACAAGAATAATAATAGCTAAACCATAATTGTCGTTTAATA -AGTTATTTCCCAACCAATCCAATACATTTTTCATTGGATCTACGAATGTATTGTAGAAAAACCCACTACG -TTTTTCAGGTTTAGAATAGTCACAACCAGCCAAAAAGACCATAATACCTAAAAATAATGGTAGTAACGTT -TTTTTCTTCATTTTTCCACCTCTATCATTATATTCACATAGGATTTATTCTATCACATTAATGAGTACGT -ATGAAACAATAAGTGGAAAAATTTAACTAATTATTAAAAAAATCTTTGAATCGATTAACAGTCTTTTCAA -TATTTTCACTTTTAGAAATGGCTGAAATGACTGAAATTCCATTGGCACCTGCTTCTACAATCGGCGCCAC -GTTACTAGTATTTATACCGCCAATGGCTACAATCGGTAGTTGCGGATTCATTTCTTTAAATGTTGCAATC -ATTTCTGGACCTACTGGTGTATGCGCGTCATGCTTCGACGGCGTAGGATAGATTGGTCCAACACCTATAT -AATCAACATGAGTTAAATCAGATTTTGCATACTCATCTAAATCACTAATACTAAATCCAATAATTTTATC -AGTGAAATATTGTGCTATCTCTTTGACTTTCGCATCATCTTGACCGACATGTATACCATCCGCGTTAATT -TCTTTTGCCAAGGATACATCATCATTAACGATAAAAGGCACATCATATTGATGACAGAGATGCTGTAATT -CTTTAGCTAATACAAGTTTATCGTTTCCTTTTAAAGCTGATTCACCCTTTTCTCGAAATTGGAAAAGTGT -AATCCCTGCCTTTAATGCTGCTTCTAATACTTCATGAATAGTTCGATGACTCGGAACATCGGAGGTTCCA -CAAATAAAATACACATTTAGATACGATTGGTTAAACATATTATTCCACCTCTTGAATGCGAATCCGTTGT -TGATAGGTTGTTTCATTTAAATGATATAACGTATCAAGCAACAATGGTGAAAACGTACCAGGACCACCAC -AATTTTCATTTTCAGCAGCTACCTCAGCAGCAATATTAAATACGCTTACCGCTTCAATTAACGCTTCTAT -GTCTGGTTCTGTTTCTCTAAATAAAAATCCAGCAATAATGCCTCCTAATAAACAACCAGCTCCAGTTACT -CGTGCTAATAATGGAGATCCATTAGCTAATACGATTGCTTTATCACCTTGAACAATAACGTCCTCTTTAC -CTGTGATTACTATTGCAGTTTTATATATTGCGTAAGCCTTTTTCGCTATTGTAACCGCATCAAGATTAGC -ATCACTATCTGTACCTTTCATAGTTGCTGTATCATCAATCAACGCTAATATTTCAGATGCATTGCCTTTA -ATTACTGATACTTTCGCTGATTTCAATAATAATTTACAAAATTGCTTTCGATATGTAGAAGCACCAACAG -CTACAGGGTCAAATACAATAGGTAAGCCTGCCTCATTTGCCGTTTGAGCAATCGCAATAATATCTTGTTC -ATTTTGGGCTGTTAAAGTACCGATATTGATTAATAGCGCTTGTGCAACTTTGTAAAATTCTTCAGCTTCT -TCGGGAGCTTCACTCATTGCAGGGCTCGCACCAATACTTAATAAACCATTCGCTGTAAAATTTTTAACTA -CATCGTTTGTATAACAAATTGTTAATGGGTTTTCAATACGTATGTTATTTAGATAATTCATCGTCTAATC -CCTCTTTCTTTAAATATGCAAAATGATTCACTGGACCTCTACCACGGCCGATTTCAGGCGTATATTGTAT -ACTCATTGAAATAAACTTTTTAGCCTTGTGTACAGCCTCAAATAATGGTCTACCTTTTGCAAGTTCTGCC -GTTATAACTGCTGAAAATGTACACCCTGTTCCATGCGTATGTTTTGTTTTAAATCGTTCATTTTCAAATG -TTTGAACACCTTCTTTAGTAAATAAATAATCTTTTGCTATATCAGCATCATTTGAATGACCGCCTTTAAT -GATGACACCTTTACTACCAATCTCATTAATAAAGATGCGGCCAGCCTGCATAATTTTTTCTTCACTATCA -ATGGTTAGTCCCGTTATTTCTTCAGCTTCTGGTAAATTCGGTGTTACTACATCAGCTAATGGCAATAACG -TATGTTGCAAGTTTTGCTTTGTGTTATTATCCATTAATGAATCACCGCTTTTCGCCAACATAACAGGATC -AATTACATACGGAATAGATTCATGTTGCATTAAATAATGACGAATCGTTTCCATAGTATCTGCTGTAGCA -ATCATCCCCGTTTTAATAGCATGCGGTAAGGTATCATTGAAGACACTATCAAGTTGTTCATCTACCCATT -GATGATTTAAATTATGAATATGTTGTACGCCCAATGTATTTTGAGCAACAATACTTGTAACGACGCCCAT -ACCATATACACCACATGAATGAAATGATTTTAAATCAGCCATTACGCCGGCACCACCTGTTGGATCAGTA -CCTGCAATGGTTAATGCTATTTTAGGTTTAATCATTTACTTTTCCTCCAAATTCCCATTGTTCTAGTGTC -ATAGCCATATTGAAAAATCGACGCTCATGTATGCAACTTTCTAAAAATACTTGCTTTACTTGTTCCAATT -CCTTGTCAGACATTGATTCGGCTAATTTATTCATTAATGACTCAAATACGTTAATTATGTCATCCATTTC -AGTACTATAAAAATCAAACCATTTTGCCGTATCTTTTTCTCTATTAAGCTTATGATCACTTTGAGAGCGC -TTAGCTAATTCTGCATAAATATATGGACAAGGTGCCATTGCAGCAATTGTATAAATAGCATTTTCACGAC -TATGCGCTTGGAAATACATATGTTTTATGTAATGGTCGCCACTTGGAGGCCAAACTTTTGTTTTAATGAT -TTCTTCGTATGATTCACCAACAATTTGCGCTAAAATATCATGCGCAAGTACTTCACCTTCAACCATAAAT -TCTATTTGCTCTACTAAAAATTTTACGTCATTCATGCTATTCATTTTTGGAATTAACAAAGCATATAAGT -TTGTAAATTCTTTTAAATAAGCTGCATCAGCTTGTAAATAATGACGTAATGCATCAGCTTGTATATTGCC -TAATAACATTTTTTGAATAAAGTCATCCTCATAAATATCATTAATGATTGGCTTTGCAGCTTGGTACAAT -TTTTGTGAAAATTCCATTGTAAAAAATCCTCCCTAAATAAAAAAACTACTTCCAACATGAAAGTAGTTTG -ATGGCAATGTTGCTATACTAGCCCCATCACTTCAATAACTACTTTCCTACGTTGGTACTAACCAAATCAG -GTCATAAGGGTCTGAACAGTTCATCTCAGCCATATCATTAGGCTCCCCTAGTAGTTCCTTAGTATTCAAT -TGCAAATTAATCTTAGCAAACGGTTTCAACATTTTCAATTATTGTTGCTCAGTTGGGAGTGGGAGAGAAA -TGATTTTTTCGCAAAATTTATTTCGTCGTCCCACCCCGGCAAGGTTGACTAGAATTGAAAAAAGCTTGTT -ACAAGCGCATTTTCGTTCAGTCAACTACTGCCAATATAACTTCGTAGAGCATAGAACATTGATTTATGTC -CCAGCCTGTACAATTATATATATTTGCGAAATAAAAAAGACCGGAACATATCGAGAATTCCCCGATATAT -TCCAATCTAAAAGTTACTTATATAACTATTGGTTAGCTATGCATAAATGGCTTATGCAGTAACCCAATGT -CCAGCGCCACCAGTGTTATATAGTTTTACTGCTGCGGCATCTTGAACACTTTCAGGAGCATTTGCTGGTG -ATACACCTTTATATTTAGCAGGTGCTACTGAATCCCAAGTTGATTGTAAGAATTGATACTTACCAGCTGC -ACCTGATGTTGGATTTACAGCATGAATATTGCCACCTGATTCACGTTGAGCAATTTGTTTTAGATGATCA -TTCACATTTACTGATGAACCTTCTGATGCTTTTGATTCAGTTGGTGTTGCAGTAACTTGTGAATTGTTTG -ATGTTGATGCTTGTGGTTGTTGAGTTTGAGCATTTTGTGGTGCTTCAACTTCTTGTGATTGTACTTGATT -AGATTGATCAGCTGATGGTGCAACATTATTAGTTGCAGGTGCTTGTGCACTCATGTCTGCTCCATTAGCA -CCTGTTGCATGGTAATTCCAAGCAAAGTGTGTACCATCTGATTCAAAGTGATAAGTAAACCCTTCATAGT -CAAATGTATAATTATAAGCGCCAGCTTCAATTGGTTTTTGATTTAATGTTTGATCATTTGATTGCGCCAT -TTGCGCTAAAGATGCTTTATTTAAGTCCGCTTCACTTGCTTGGGCTTCGTGACCTGCATTTCCTGCTACG -ATTCCTAAACCTACTGCTAATGATGATGCGAGTAATGTTTTCTTCATAATCTTAAAATCCTCCTACAAGT -AATTTGTTTCTCTAAAAGTTTTACAGAGACTACTGTAACATCTGTAAAATCCGTGCAGGTTACAACAAAA -TAAAAAAATAGCCTTGTTTTTTACACAGTGATTACAACGGAATCCTCCATAATTTCAGATATGATTCTAT -CGAGAATTGTCATGACAGTAAAAATGTTTTTAATTTGCAATTTTTTATGTAATCGTTTTGCAATCTATGT -CTATTTTCTATTAGAAAAACTACACAAAAAGACGACCTACACAACAGTACTAGTCATGTAAGTCGTTTTT -AAGTGAGTATATTTCAAGTTAATTAGATCTATAAAAAATTTAGGATGGATTAAATGTATATTAAGGATGT -TTAGGATAATTGGATTTAAATTTCTAATAAGTCATGATTATCTATATTTTGAGAGTCAATATCTAAAATA -CTATCTGAGAGAATTTCATTATTTTGGGATTTAGGGGACATAAATTTTATTGTTTCAACATATAATTCAG -TGACAAAGTGTGTTTGTCCGTCTTTATCATACTTTCTTGATCTCATTTGACCAGTTATACCAACCAATGT -ACCTTGATTAGTGTATCTTTCTATATTAGAAGCTAACTTGCCAAATGCTTTACAGAATAAGTAATCACAG -ACGATTTCTCCATTTTCATCTTTATAATTTCGGTGCGTTGCAACACAAAACGTTGCAATTTTTCTATCCT -CCTTTTCAAATATTTGTGCGTCTTTCGTCAGTCTCCCGACAATTACGATTTTATTTAGCATGTAGTGTGT -GATTCACCTCCTATGCCTATATCTTAATTACTAGCTTAAAAATGGTCAAAATGGCAAATTTTATATAATT -AATAGCTATAGCATCTCGTTATTTGTTATATTTAAAGAAATTAGTCATGAAATGACCTTAAATCTTCTAA -ATAATTCAAAAATCATAAATATTAAACTAATGGGATGTGGGAATATGAAAACTTTTAAAGCAGTAAGGTT -TCAAATTGTGAATGAACACGGCAGAATTATAGAATATGAATTAGAAGATGGCGTAATAATTAATAAAGAG -GAAAGTGGCACGGGTTGGCTGCTTGAAATTGTCATTTCTAATGAGCATTATGAAACATTTAAGGAATATC -AAGACAATGAACAGTTATTGGATATTCGTGTCGTCATCACGCGTCCAGCCAATGATCCAGCTTTATTTGA -ATCTACTGTGAAAAGTATTAAAAATTTTAAAACAACAATGTCTATCGTATTTGAATGCCATATTTACACT -TTACGTCAACAGTATGCTGAAAGTTTATTAGAACAACTTATTGATGATGGATTATCTGGTGAAGAATTAA -AAAAATCATTTAATCGAATGATGCAGTCTAAACCAAAGTTAAAGGATGAAAAATTAGAAGAGTAAAATAA -AAAACATTCAAAGATTATGCCAACACATTAAATCTTTGAATGTTTTTTGTTTTATTTTACATCTTGAATT -GCAAATGTAAGTTCACAACTACAAGCAAGTTGACCATCGACAGTAGCTTTAGCATTACCTTTACCGATTG -GTCCTTTAATTTTAGTGATTTCTACTTCCAACGTTAAAGTATCACCAGGTACTACTTGACGTTTAAAACG -ACATTTATCAATACCAGCAAATAAAGCGATTTTACCTTTATTTTCTTCACTATTTAAAATAGCTACCGCA -CCTGTTTGAGCTAACGCTTCAGTTATTAATACGCCTGGCATTACCGCATACTCAGGAAAATGCCCTTGAA -AGAATGGTTCGTTTCCTGATACTTGTTTAATAGCCACGCAACGTTGACCTTCTTCATATTCAACAACTTT -ATCAATTAATAAAAATGGCTGTCTGTGAGGTATAATTTGTTTAATTTGGTTATAATCAAAAATTGTTTCC -ATGGTTGAAATCCTCCATTATATTAATTTACTGAATTAATCGTTAATACGTTCAATGTCTGCACCTAATT -GCTTCAATTTACCGTGTAAGTCAACATAGCCTCTATCTAGGTGCGTTAATTCAGTAACGCTTGTTTTACC -ATCAGCAACTAATCCAGCTAAAATTAAGGCTGCTGCTGCTCTTAAATCAGTCGCTTTAACTTGTGCACCT -TGCAATTGACTTTTACCTTCAAGTTTAGCACTACGACCTTCTACATTGATATTAGCATTCATACGTTTGA -ACTCTGCGACATGCATAAAACGATTTTCAAATACAGTTTCAGTTACTACTTTATGTCCGTTTGCTGTTAA -TAATAATGCCATCATTTGTGACTGCATATCGGTTGGAAAACCAGGATGCGGTAATGTTTTGATGTCAACA -GGCTGTAAATCTCCTTCAGCACGTACACGAATACCATCTTCTTGATATTCCAATTCAACGCCCATTTCTT -CTAATTTATACACTAAACTAGCCATATGTTCTTTGATTGCACCACGTACAAAAATATCGCCACGAGTAAT -GGCACCAGCGATCAGTAATGTGCCTGCTTCAATTCTATCTGGAATGATAGCATGTTCTACACCATGTAAT -GATTCTACACCATTGATTGTAATTGTGTCTGTACCAGCACCAGTAATTCTACCGCCCATTTCATTAATGT -AGTTTGCTAAATCAACAATTTCAGGTTCTTTAGCTGCATTTTCAATTAAAGTCTTACCCTTAGCTAATGA -TGCTGCCATAATAATATTTTGTGTTGCTCCTACACTTGGAAAATCTAAATGAATTGATGTACCTTTTAAT -CCATCTTTAGCATTAGCATAAATATTACCATTTTCAAGATGAATTTCTGCGCCTAAAGCTTCAAAACCTT -TAATGTGTTGCTCAATCGGTCTACTTCCAATTGCACAACCACCAGGCAATGCAACAATAGCATGTCCTAG -TCTTGCTAAAAGAGGTCCCATAACTAAAATACTTGCACGCATTTTACTAACATATTCATATGGTGCCTCT -TCATTTAGAGTCTTTGTTGCATCAACGACAACAGCATTTTCGTCCTTTTTGTATGTAACGTCAGCATTTA -AGGTTGTTAATACATTATTTATTGTTTCTACATCACTTAAAGCTGGAACATTAACTAATTTGCTCGGTTT -ATCAGAAGCTAATAAAGATGCTGTTAATATAGGTAATACTGCATTTTTAGCACCTTCTACTTTAACTTCA -CCCGTTAATTTATTTCCACCTTTGATTACTATTTTATCCATCGTAAATCCTCCACTTAGAACTCCTATTA -CTTTACATTTCCCTATTTTAAAATTATTTTAAGTCATTATTTAATTATATCTAGTTTTGATTACAAATCA -TAGAGTTAGACTTATTTTATTAAATATTTTACCTGCGTCGAGTATTGTAACAAATCTACAATAAAATTGC -TTACTGCAGTGCCTAATAAAATAGCAACAAATATCATACACACTTGTAATTGAGTGGCATATCCTTTTTT -AAAAAATTGATCTAATCTAATTGATTGTAAAGCCCAATAGGCAATACAAATACATACAACATGTAACACT -AAATGGATAACTGCATATTGTCCGATATAATCCATTTTATCACCTCATAAGATTACTGTATTACATTGTA -CATGAAAAATTTAAATAATGATACAAAGTTTAATACCCGTTTTTAGTAAAGTTTAAGCTAACTTACTATA -TAATTCTTTTTACATAAATATCATAACTATAAAGTATCTTGGCATGGAAAAATGTAGCTACTTTCAAAAA -AAGAAACGTCGACTGTAGATAGTGGTGAAAGGAAATTTTGATTTTAGCAATCTATTAATGATTGTAAAAA -GTAAAACTATTCTTGGGAGTCGAACATAAATCGATGTCTAGACTCTATAGTGTTATATTTGGCAGTAGTT -GACGGGGCCCCAACATAAAGAAATTGGATTCCCAATTTCTACAGACAATGCAAGTTGGGGGCGGGGCCCC -AACACAAAAGCTGGCGGAAAGTCAGCTTACATTAATGTGCAAGTTGGGGTGGGCCCCAACATAAAGAAAT -ACTTTTTCTTTAGAAATTAGTATTTCTTATCAGGCTGGGACATAAATCAATGTTCTATGCTCTACGAAGT -TATATTGGCAGTAGTTGACTGAACGAAAATGCGCTTGTAACAAGCTTTTTTCAATTCTAGTCAACCTTGC -CGGTGGGGCCCCAACAAAGAGAAATTGTATTCCCAATTTCTAGAGACAATGTAAGTTGGGGTGGGACGAC -GAAATAAATTTTGCGAAAATATCATTTCTGTCCCACTCCCATTCCTATTTTTAAATACACATTAGCTGTG -TTTAATGATAAAGAACCACTACATCATAAATCTTTAATGGTTCTTTATCAATTCCTTCCCCACTCTCATG -TTTTGTATCTTTAAATTAATATAATTCAAAAAAGGGTCGAAGATATGAAATCACATCTTCGACCCTTTAT -TTACTATTTTAATTCAGCCACACGCAAACGGTTATTTGCTCTCTCTAAAGCTCTTTCGGCTCTATGAATA -TCAGTATTGTCGTCATCATTTTCCAAGTGAGACTCTGCTCTTGCTTTAGCTAATTTAGCTCTTTCAACAT -CAATTTCTCTTGCAGTTTCTGCAGTCTGAACAATGATTGAAACTTTATCTTTTCTAACTTCAACAAAGCC -ATCGCTTACAGCAATATATTCAGTTCCATCGTGAAATTTCACTTTTACAAAGCCTGTTTTTAAAGCAGCT -ACAGTTGGAATATGTCCACTCATGACACCTATCTCACCAGCTGTTGTTTGCATAACAACGAGTTCAACAT -TATCACGATTGTAAACAGAACCATTAGGAGTGACAATATCTAGGTTTAATGTATTCATTATCCATTCCTC -CTAATTGTTATACTTCAACACCCATATCTTTAGCTTTTGCAATAACATCATCCATGCTACCAACTAAACG -GAATGCATCTTCTGGAATATGGTCATATTTACCATCTAAGATATCTTTAAAGTTTGCAACTGTTGTCTTA -ACAGGTACATAAGAACCTTTTTGACCAGTAAATTGTTCCGCTACGTGGAAGTTTTGAGATAAGAAGAATT -GAATTCTACGTGCGCGTTCAACTGTTTGTTTATCTTCATCAGATAATTCGTCCATACCTAAGATAGCAAT -GATATCTTGTAATTCACGGTATTTTTGAAGTGTTGATTGTACATCACGAGCTACTTCATAATGTTCTTGA -CCTACAATTGATGGTTCCAATGCTCTTGATGTAGACGCTAATGGATCCACGGCTGGATAAATACCCATTT -CAGTTAATTTACGTTCTAAGTTTGTAGTTGCATCTAAATGGGCAAACGCTGTCGCTGGCGCTGGGTCAGT -ATAGTCATCGGCAGGTACGAATACCGCTTGAATAGAAGTTACTGATCCTTTTGTTGTAGACGTAATACGT -TCTTGTAATTGTCCCATTTCAGTAGCAAGTGTTGGTTGGTAACCTACTGCAGAAGGCATACGACCTAATA -ATGCAGATACCTCAGAACCAGCTTGTGTAAATCTGAAAATGTTATCGATGAATAATAATACGTCTTGACC -TTGTTCGTCACGGAAATATTCAGCCATTGTTAAACCAGATAATGCAACACGCATACGTGCACCAGGTGGC -TCATTCATTTGCCCGAATACCATGGCTGTTTTCTTAATTACACCACTATCACTCATTTCGAAGTATAAAT -CGTTACCTTCACGAGTACGTTCACCTACACCGGCGAATACAGAAATACCACCGTGCTCTTGAGCGATGTT -GTTAATTAATTCTTGGATTAATACTGTTTTACCTACACCGGCACCACCGAACAATCCGATTTTACCACCT -TTAATATAAGGTGCTAGTAAATCTACTACTTTAATACCTGTTTCTAAAATTTGAACTTCTGTTGAAAGTT -CATCGAATGCTGGTGCTTGACGATGGATAGGATCGCGGCGAACAGAATCACTAATTTCTTCTTTAAGGTC -AATTGTTTCACCTAGTACATTAAATACACGACCTAATGTTTCATCACCAACAGGTACACTAATTTCTTTG -CCTGTATCTTTTACATCCATGCCTCTTTGGACACCATCAGTTGAATCCATCGCAATTGTACGAACAACGT -CGTCACCTAATTGCAGCGCAACTTCTAATGTTAGTTGTATTGTACCTTCTTCTTTAGGCACATCAATAAC -CAAGGCGTTATTAATTTTAGGAACTTCGTTATGTTCAAATCGAACATCAATTACAGGACCCATAACTTGA -GTTACACGGCCAATTCCCATGCTATTTTCCTCCTTTAAATATTATTCAAGCGCTGCGGAACCACCAACAA -TTTCAGTAATTTGTTGCGTAATTTCTGCTTGTCTCGCTCTGTTATATTCTAATGATAAGTCATCAATAAG -TTCAGTTGCATTATCAGTGGCATTTTTCATCGCAGTCATACGTGTTGCATGCTCACTTGCTTTTGCGTCT -AATATTGTTCCGTAAATCAAACTCTCAACATATTGAGGCAAGATTACACTTAAGATAGATTCTTTATCTG -GCTCAAATTCATAAGAAGACAAATGACCATGTCCCTTACTAGAATCCTCTTGAGATAATGGTAATACTTG -TCTAGATGTAGGCTTGTTTTCAAGAACGCTGACATAATGACTATAGTATATATTTAATTCATCAATTTCT -TCTTCACTGTATAAGTCTATAGCATGGTTAGCTAGTGCTTGAACAGATTTGAAAGAAGGTTGATCAGGTA -CGTCTACTTGAGAATACTCAATGTCATAACCTCTATTTTTTAGGAAATCAACACCTTGTTGCCCTAAAAC -TACAATACTGTATTCGCTACTATCTTGATGTTTCGCTTCAATATCAGTAATCAATTTTTTAAGCACGTTT -GCACTATATGCACCTGCTAAACCTTTATCACTCGTGATAACTAAATATCCACTTCTAGTAATTTTACGAG -GTCTTAGCATTGGATGGTTTGTATTGCTACTTGCCCCTGCAACTGCAGTAATTGCATCTTGCATTTTATC -CATATATGGTGTGAATTGTTTTGTATTTTTTTCAGCTCTACGAAGTTTTGAACTTGATACCATGTTCATC -GCTTTCGTAATCTGCTTCATTTTTTTGGTTGATTTTATTCGAGTATCTATTTCTTTAAGAGAAGCCACTA -TCTCACCACCTTATACTAAACTTGTTTATTATTCAGATTTGCTAAAGCTTTTTTTGAATTCGTTAATTGC -TGTGTCAAACTTCTCAGCATCTGGTAAGCCACCAGTTTCTCTGATTTCATTTAACAGTTCAGTAGCATTT -GATTCTGCCCAGTGGTTTAACTCGTCTTCAAAACGTGTGATATCTACAACTGGAATATCATCTAAATATC -CTTTTGTTAATGCATAAATAATCAACACTTGGTGTTCAACTGGTAATGGTTTGTTTTGATCTTGTTTTAA -GACTTCAACAGTACGTTTACCACGTTCTAATTTACTTGCAGTAAATTCATCAAGGTCTGAACCGAATTGT -GCAAATGATTCAAGTTCTCTATATGACGCTAAGTCAAGACGTAACGTACCAGCAACTTTCTTCATTGCTT -TAATTTGTGCAGATCCACCAACACGAGATACAGATTGTCCGGCATTAATCGCTGGTCTTACACCTGAGAA -GAATAAATCAGATTGTAAGAAGATTTGTCCATCTGTAATTGAAATAACGTTTGTTGGTACATAAGCTGAA -ATATCACCAGCTTGTGTTTCGATAATTGGTAATGCAGTAATTGAACCGCCACCTAAGTCATCGTTTAATT -TTGCTGCTCTTTCTAATAATCTACTATGTAAGTAGAATACGTCACCTGGGTATGCTTCACGACCTGGAGG -TCTACGTAATAATAATGATAACTCACGATAAGCTGCTGCTTGTTTAGTTAAATCATCATATACGATTAAA -ACATGTTTACCGTTAAACATGAATTCTTCACCCATTGTTACACCTGAATATGGTGCAATATATAATAATG -GAGAAGGTTCAGAAGCTGATGCTGCTACAACAATAGTGTAGTCTAAAGCGCCTGCTTGTCTTAACTTTTC -AACATTTGCTCTTACTGTTGAATCTTTTTGACCAATAGCAACATAGATACAAATCGTACCTTGATCTTTT -TGGTTCAAAATTGTGTCAATTGCAATTGTTGTTTTACCTGTTTGACGGTCACCGATGATTAACTCACGTT -GACCTCTACCAATTGGTACTAAAGCATCAATTGCTTTGATACCTGTTTGTAATGGCTCATCTACTGATTT -ACGATCCATTACACCAGTAGCTTTTTTCTCTACTGGACGTGTTTTAGTTGTGTTAATCGGTCCTTGTCCA -TCAATAGGTTGTCCTAATGGATTAACAACTCTTCCGATTAGTTCTTCACCTACTGGTACTTCCATGATAC -GACCAGTACGTTTAACTTCGTCACCTTCAGTAATACCTGTGTATGGTCCTAAAATAACCACACCCACGTT -TGACTCTTCAAGGTTTTGGGCTAAACCAAGTACGCCGTTATGGAATTCTACTAGCTCACCAGCCATAACG -TCATTTAATCCGTGAATTAATGCAATACCATCACCAATTTGTAATACAGTACCTACATCAGTTACGGACA -TTTCTGACTCATAATTTTCAATTTGTGAGCGAAGTAATGCACTGATTTCTTCAGCTTTTATGGCCATCTA -TGTCACTCCTCTTTATAATTAATTAACTCTTCTAAATTTTCTTTGTAATTGGACAAGATCATTTCTAACA -CTACCATCTAATACAGTTGTGCCGACTTTAACTCTAAATCCACCAATTAAATCTGGATTAATTTTTGTAT -CTACAATAACTTTAGATAACTTCGTTTGTTGAGTTACTAGTTTGACAATCTTAACTAACTCTTCTTGACT -CAATTCATATGTTGACTCAATTGTTGCAAAATCTTGATTGTAGTGTCCGTTATATAAGCTTTGGAACGCC -TTGAATACGTCAGCTATTAATGAGATATGTCTATTATCTGCTAACACGTACATCATATTTTTAATGTATG -GATTAATGTCAGTAAATACACCATTAATCAACTCACGACGTTGTTCTGCTGTTTGAGTTGGATTACTGTC -AACCATTTTCAATTGCTCAATTTTATCTTTTACTGCTTCGTTTATAACTGTTAATTCTTCATTAATAGTT -TCTAAATTATTTGTATCTAATGACACGTCAAATAATGCTTTAGCATACTTGTTAGCTACTTTTACCATTA -TTTATCGCCTGCCTCTTTTAGATACTTGTCAACCAATGCTTTTTGGTCTTGTTCAGAAATTTCTTTTCTA -AGAACTTTAGAAGCAATTAACACTGATAGTTCAGATACTTGATTATTAATATCTGCAATGGCACGTTCTT -TTTGGCTATTGATTTCACTTTGTGCTGTTTCAATCATACCGTTTGCACGTACGTTTGCTTCATGAATAAT -TTGTTCTTGCTGTTGACGTGCTTGAACCTTAGCATCTTCTAAAATCTTTTGAACTTCTTCTTGTGTTTCT -TTAAGTTTTTGTTTATTTTCTTCTTCAAGTTTCTGTGCATTTAACTTAGCTTGTTCTGCGTCATCGATAT -CTCTGTTAATATCTCTTTCACGTTTATCCATTACATCTTTCAATGGACCCCATGCGAACTTTTTAAGTAA -CGCAAGTAATACGATGAAAGTTAGGACCTGTACAATCACAGTACCCCACTCAACGCCTCCAGCTGCACCA -AGAAAGAATAAGTTAGCTGTTTCAGTCACGGGTTCATGACACTCCTTTCATTAAAATAATCGCTAGTGTT -ATATAGAAAAAAACGACGAGGTTAGGACCTACTGAATTTATGCGATAGGCATGGTGCGTTCATATCTCAA -CTATTTAATAAAGTTCAAAGATATTACTATATATGGCATCATGAATTATGTCCTATGCGCTTTGTCCCGA -CCTCTTTTATCTGTTAATTATCCAGCAAATGTCATGAATGCAATTACTACACCGATGATAGGTAATGCCT -CAACTAAACCTACACCAATGAACATGATACCCATTAATTGACCACGTGCTTCTGGTTGACGTGCTACACC -TTCAACTGTTCTTGAAACGATTAAACCGTTACCGATACCTGCTCCTAATGCTGATAAACCAATTGCGATT -GCTGCTGCGATTAAATTCATAATTTAATTTCCTCCTGTGATTGTATATAATTATTGAAATTTTTAGTGTT -CATCTGCCACTTTATGTGACATATAAACCATCGAAAGCATAATAAAGATATATGCTTGGATTGTTCCTAC -AAATATTGAAAATGCTTGCCAAACAATTAATCCTGGGATACTAATAATCCAACCCCATGCTGGTTCGTTA -AAGAATAAGCCAGCAAGTAATGTTAATAGTATCTCACCTGCAAATATGTTACCGTACAAACGCAGACCAA -GCGTTAATGTTGAAGTGAACTCTTCAAAAACATTAATAATTGCCAATGGCCAAAACGGCTGTACATAACC -TTTAAGATATTGTTTCGTACCACGCATTTTAATTCCATAAAAGTGAGTTAACAGTATTATCGTTGTAGAC -AACGTTAAAGTCACTGTTGCATCAGCTGTTGGTGATTTCCACCACAATGTGTGATCTTTCGTTACTATTG -AAAACGGAAGACCTAACATATTAGCTATAAAAATGTACAGAATCAGCGTTACTGCTAAGAAGTGGAATTG -ACCACCTTTTTTCCAAGCCATGTTACCTTCAATGATTCCCCTCACGAAATCAAAAATCCATTCAACGAAA -TTTTGTTTGCCAGTTGGTCTTTTTTTCAAATTACGCGTACAAATGATAGCAAGTAGAAAAACAAGAAACG -CCGTAACAAGTATCATCAATATACTTGATAAATTGAAAACGATATCAAAACCGAATAAATTCCAACTCAC -GAGCGGGGATTTGTGATCCATAATCTCACCTCTTTCTTAATTTATTTGCTCACCTTTAGTAAAGGACGTA -TGATAACTACAACATATGAAATCATTAAACCAATAATTATACCGATTATACTTACATGCGATTTATTAAA -GTACCAAATCATACAGGCAATAATTGCAACTAAGTATCGCCACATATTTCCAGTTGAAATATGCATAGTG -TCTGGTCTTTTAGCTTTGGCTAAGTAGCTCTCAAATATAACAGTATTGATTGCAGAACCAGTAACACCAA -TGATTAATCCTAAGATAAATGCATGGTGTGTAAAAAGGTATAATCCTCCCAATATTATTAATAAATACAA -ATAATATTGAATGTACTGTTTAAAAATGTTGTAGAAACGACTCATTTTATATGCCTCCGTGTGACTGATA -TCAATCATGAAAACCGTTCCACTCATACAAACTAAATGATAATATACGCGATTTGTGGTGTCAATTCTAT -TCAAATTGTTGTAAAAAAATAAGCATGTTCAGACACAATTTAGACACATTTAGACAAAAAGTCTTTTTTA -ATTGAAATCGCTTGGTTTTTCAGTGATTAAATTCAAATAATACTTAATATGATTAACTATTCTTTCTGAA -GCAAATCCATCACCGTAAGGATTAGATGCTTCAGACATTTGATGATATAATCTCTCATCATCGATTAATT -CTTTTGCAGCTTGATATACGTCTTGTTCATGCGTACCAACAACTTTCAACGTACCAGCATCAACACCTTC -AGGTCGTTCTGTAACGCTTCGCAATACTAGGACAGGCTTATTAAAAGATGGCGCCTCTTCCTGTATGCCT -CCCGAATCCGTCAAAATAAAATAGGATTGTTTAGCAAAATTATGGAAGTCTATTACATCTAAGGGTTCAA -TCAATTCAATTCTGTCATGCCCCCCTAAAATCTTATGAGCCACATCTCGGACTTTTGGATTTTTATGCAT -TGGATATACTAACGCTAAATCGGTGTACTCATCTATCAAGCGTCTAACTGCTTTAAATATATTTTCCATA -GGTTGACCTAAATTTTCACGACGGTGTGCTGTCATAAGAATGAACTTTTTGTCATGGTATTTATCCATGA -TGTTAGATTTATAATTGTCATCAACTGTATATTTCATAGCATCAATCGCTGTATTACCAGTGACAACAAC -ACTTTCTGAATATTTCCCTTCATTTAACAAATGCGATGCAGCATTTTTAGTAGGTGCAAAATGTAAGTCA -GCTAATACACCAACTAATTGTCTATTCACCTCTTCTGGAAAAGGTGAATATTTATCATAACTTCTAAGCC -CTGCTTCAACGTGTCCAATCGGCACTTGGTTATAAAATGCCGCTAAACCACCTGCAAATGTCGTCATCGT -ATCACCATGTACAAGTACCATGTCTGGTTTTTCTAATTGAATCACTTGTTCTAATTGAGTGATTGATTTA -GAAGTTATCTCAGAAAGTGTCTGTCCTGATTTCATAATATTCAAATCGTATTTTGGTTTGATTTCAAAGG -TACTTAATACTGAATCAAGCATTTCTCTATGCTGTGCTGTAACAACAACAATTGGCTCGAGCATTTTTTC -TTGTTCCAAAGCTTTAACTAAAGGAGCCATCTTTATGGCTTCGGGTCTTGTTCCAAATATGGTCATAATC -TTTTTCATCAAACTACTTATCTCCGATTCTTCTATTTAGTACCAAACAATCTATCTCCAGCGTCACCTAA -CCCTGGTGTGATATATGCTTTGTCATTTAGCTTTTCATCAAGTGCAGCAATATAAATATCTACATCTGGA -TGTGCTTCATGCATCTTTTCTACGCCTTCTGGTGCTGCAATTAAACACATGAAGCGAATATTTTTAGCGC -CACGTTTCTTCAATGAAGTAATAGCTTCAATTGCTGATGCGCCTGTTGCTAACATAGGATCAACAACAAT -GATTTGTCTTTCAGTAATATCTTGAGGTAACTTAGCAAAATACTCTACAGCCTTTAATGTTTCGGGATCT -CGATACAAACCGATATGTCCAACTCTCGCTGCAGGTACTAAACTTAAAATACCATCAGTCATACCTAAAC -CAGCTCTTAAAATTGGAACGATAGCTAATTTTTTACCAGCTAATCGTTTAGCCGTCATTTTAGTTACAGG -CGTTTCAATATCAACATCCTGAAGCTCTAAGTCTCTAGTTACTTCATATGCCATCAACATACCAACTTCG -TCTACAAGTTCTCTAAATTCTTTAGTACCTGTATTTACGTCTCTAATATAGCTTAGTTTGTGTTGAATTA -ATGGATGATCGAAAACGTGTACTTTACTCATAAAAATTACTCCTATCTTTGTGTATGTTTATTGATATAG -AGGATATTCAGCTGTTAATTTCGCAACGCGTTCTTTAGCTTGTTGTAATTTTTCTTCATCTTTACTATTT -TTCAATGCTAAACTGATGATTTTTGCAACTTCCTCAAAAGCCTTTTCATCAAATCCACGCGTTGTTGCAG -CAGGTGTACCTAAACGTATACCACTCGTTACAAAAGGTTTTTCTTGATCGAACGGAATGGTATTTTTGTT -ACATGTGATACCAACTGAATCTAAAGTCTCTTCAGCTTCTTTACCAGTAAGTCCTATAGACCCTTTTACA -TCAACAGCTACTAAGTGATTATCTGTACCACCAGAAACAATTCTAAATCCTTCATTAATTAATGCTTCTG -CAAGAACTTTTGCGTTTTTAACCACTTGTTGTTGATACGTTTTGAAATTATTTTCTAACGCTTCTCCAAA -AGCAACTGCTTTTGCTGCAATAACATGCTCAAGAGGTCCACCTTGAATACCAGGGAAAATTGTTTTATCT -ATGTCTTTTTTATATTCTTCCTTACATAAAATCATACCACCACGTGGTCCGCGTAATGTTTTGTGTGTTG -TAGTTGTTACAAAATCAGCATATTCTACTGGATTTGGATGTAAACCTGCCGCTACTAATCCTGCAATATG -TGCCATGTCTACCATTAACTTAGCGTTTACTTCATCTGCGATTTCTTTAAACTTTTTGAAATCAATTGTT -CTTGAATATGCTGATGCTCCTGCCACAATAAGCTTAGGCTTATGCTCTAACGCTAATTTACGAACTTCAT -CATAATTGATTCGTTCTGTGTCTTTATCTACTCCATATTCAACGAAATTGTAGAATTTACCACTAAAATT -AACAGGCGCTCCATGTGTCAAGTGACCACCATGACTCAAATTCATACCTAAAACTGTGTCGCCCATTTCT -AATGCAACTAAGTAAACAGCCATGTTCGCTTGTGAACCTGAATGTGGTTGAACATTGACATGTTCAGCTC -CAAACAACGCTTTAGCACGATCAATTGCGATGCTTTCAGTAACATCTACAAACTCACAGCCACCATAATA -TCGGCGTCCTGGATAGCCTTCAGCATACTTATTAGTCAACACTGAACCTTGTGCTTCCATAACCGCTTCC -GATACAAAATTTTCCGATGCGATTAACTCTATGTTGCTATTTTGTCTCTGAAATTCTCTCTCGATTGCTT -CTGCGATAACTTTATCTTGCTTGGTGATATAAGACATAAAATCTCCCCTTCTTTCAAAAAAACTTATTGG -TATTTAGCACGTTCGCCACCAATCTTTTTCGGCCTAGATGTGGCAATAGTTACAATTGCCTGTCCTACTT -GCTTTACTGAAGTCCTTACAGGTACACATACATGTTTAATATGCATGCCTATTAACGTTTGACCAATATC -AATTCCACAAGGAACAGTAATATGTTCGACCACGATTGGATCCTTCATATGCTGAAAAGCGTATGTTGCC -AAACTCCCTCCAGCATGTACATCTGGAACGACGGAAACTTCTTCCATTGTTAATGGATTAAACTGAGATT -TTTCTATTGTTATCGCTCTGTTGATATGTTCACATCCTTGAAAAGCAAAAGTAACGCCTGTCTCTTTACT -CACAACATCTAATGCATTAAAAATAGTTTCTGCAACTTCCATCGAACCGACAGTCCCTATTTTTTCGCCA -ATGACTTCCGATGTTGAACATCCAATTAAACATATATCTCCTTTATTAAAAAAGGACATATCTTTTAATT -CGTGTAATAACATTGTCAAATCTTTCATAAAAGCCCACCCTTCCTAAAAATAAAAAAGGAATATAGCAAA -GTGCTACACTCCTCTATTATAACTTATTTAACTGTTAACATATACTAATTATACAGAATTCCTACTAGCA -AATAATATCTTTTAATTTTAAAATTAAACTTACAAGTTCTTCATAGGTATGTACATACATTTCTTTTGTA -CCGCCGTATGGATCTATAACTTCTCCTGCTTCTTTTACATATTCATGCAATGTGAAAACATGATTTTGCA -AACCAAAGTGTGCCTCTATTAATTCTTTGTGCGAATACGACATAGTCAAAATAATATCTGCTTTCAAATC -TGCTTCAGTAAATTGTTGCGATAAGGTCGTTTCAGCTAAATGATGTTCTTCAACTAAGTCTTCAACATAA -TTCGAAACACCTTGATTGTTCACAGCGAATATACCTCTTGATTCAAATTGATGATTTGGCATAACCTCTT -TTGCAATACTTTCCGCTAATGGGCTACGACATGTGTTACCTGTACAAACGAATAAAATCTTCATAGTTCA -CATCCTTTAATAATGTGATTACCTGCAGCTTTTAACATGCGATTCATAATTGCTTCTGTATTATCATTCA -GCTCAAAGCCGTATATATACGCCGCTGAAATATTTTCATTTTCATCAAGTGAATGTAACACATCATAAAG -ATTATGACTTGCTTGTTTAACATCATTGTCATCCTGACATAATTGAATGAATTGCGCTTCACTTGGTATA -AACGCCACCTTATTACTCGGCACAATAAAAGCTATAGAAGACCAATCTTTACCGTCATTTCCAATTTTGC -TCTCGATATCTGTAATAATTGTAAGTGGTGTATTGGGTGAGTAATGCTTATACTTCATACCTGGTGCAAT -TGGCTGTTCAGTATCATTATAATCAGCATGGGCGATACTATTCGGAAGTATTTCTGTTATCATTGCTGCT -GTTATAGAACCAGGTCTTGCAATTTTATAAGGAAAAGATGTGCAATCTAAAACCGTACTTTCTAATCCTT -CTTCACTTTGTTCAGCTTGAACAATACCATCGATACGTCCATTCAAATCTTGATATACATGATTGAAAGT -TGTTGGTGAAGGTCTACCACTTAAATTAGCACTTGGAGCAGCTAGAGGTTCATTTATGATTTGTAATAAT -TGTCTACCTACAGAATGGCTTGGCATTCTAACAGCAACTGATGATAAACCTCCAGAAACTTTTCGACATA -GATAGCCTGGCTTTAACGGCAATATAAACGAAATAGGGCCCGGCCAGAATGCCTGCATTAACTTTTCTAC -GCGTGGATCCAAAGTATATGTAAAATCTTTTAATTGACCTTTACTGTGTATATGAACAATAAGCGGATTG -TCAGATGGACGGCCTTTAGCTTCATATATTTTAGCTACAGCTTCTTCATCTGTCGCATTTGCTGCAAGTC -CATAAACTGTTTCAGTTGGTAAACCTATTAAACCACCGTTTAAAACAATGTCTTTTATTTCATTAATTTT -AGGATATTGCTGTAAATCTTCATTATATTCTCTAACATCCCAAATTTTAGTATCCAACTTAATCACGCCT -TTCTTATTTATCATAATACAAAGCAAAAAGCTATGCACTTAACTAATCATAGCAAAGGCATAACTTTTAA -TTACCATTTAAATGAGACGATTCGATCGTGGCCATTTATATCTTTAATAATGTCGATTTTTTTGTCAGGA -AATTTATTTAAAATTATTGATTTAAGTGCCTCACCTTGATTGTAACCAATTTCAAAAACAACTGGGCTGC -CTTTTTCCATAACGTGAGGTAAATCTTCAATGATTGATTCATAAATAGCATATCCATGGTTATCTGCAAA -CAATGCCTGATGTGGTTCGAATCTCGTAACCGTTGGAGACATCGTAACCATATCTTTTTCATCTATATAA -GGTGGATTAGATATCAAGCCGTTCAACTTGATACCTTCTTTAATTAAGGGCTTTAATGCATCCCCTGTTA -AAAACTGTATTTGTGATTGATGCTTCTCAGCATTATTACGAGCCATATTCATTGCTTCAAGTGAAATATC -AGTAGCAATAACATTTAAATCCGGCTTTTCACATTTCAAAGTAATTGCAAGTACACCACTACCCGTTCCG -ATATCTACGATTGTTGCATCATCTTCTAACTGTTGTAAGAAATGCAACATTACTTCTTCAGTTTCAGGTC -TTGGTATCAAACAATTTGAGTTTACATCAAACGTTCTACCATAAAATGAGGCAAAGCCAACTATATACTG -TATAGGCTCTCCTAATAACATACGTTGTAAGGCTAAGTCGAACTTCATAATCATCGCTTTCGGCATATCA -TCATGCATGTGGACTACAAAGTCCGTACGCGTCCATTGAAATACATCTAACATTAACCATTCAGCTCGTG -TTTGTTCAAACCCTTTTTGTTGTGTTAAATGAATTGCTTCATCTAACTTTTCTTTATAATTCACCATTAT -TAAGTTCTTTCAATTTATCTGTCTGCTCTGATAAAGTCAGTGCATCTATAATTTCTTCTAAATGGCCTTC -CATAATTTGCCCTAATTTTTGAAGCGTTAGACCTATACGGTGGTCTGTTACACGGCTTTGTGGATAATTA -TAAGTTCGAATACGTTCTGAACGATCACCAGTACCGACTGCTGATTTACGTTGTGACGCATACTTTTGTT -GTTCTTCTTGAACTTTCATATCGTATAAACGTGCTTTTAACACTTTCATTGCTTTTTCACGGTTTTGAAT -TTGAGACTTCTCAGAAGATGTTGCAATGACACCAGTTGGTAAATGGGTAATACGTACTGCAGAGTCAGTT -GTGTTTACGTGCTGACCACCTGCACCACTTGAACGATACGTATCGATTTTTAAATCTTCATTTCTAATTT -CAATTTCTACATCTTCAACTTCTGGTAAAACTGCCACTGTAGCTGTTGAAGTATGAATACGTCCACCTGA -TTCTGTTTCAGGCACACGTTGAACGCGGTGCGCACCATTTTCAAATTTCAATTTACTATACGCGCCATTA -CCAGAAACTGAGAAACTAATTTCTTTGTAACCACCATGGTCACTTTCAGACGCTTCTACTATTTCAGTTT -TGAATCCTTGTGATTCTGCATACTTTGAATACATGCGCATTAAATCACCAGCAAAAATCGCAGCCTCATC -ACCACCAGCTGCTGCTCTTATTTCTACAATAACGTCTTTGTCATCATTAGGATCTTTAGGAATCAATAAT -ATTTTAAGCTCTTCTTCAAGATTTGGAAGTTCAGCTTTAATACCACTACTTTCCTCTTTTAACATTTCTA -CTTCTTCTTTATCATCAGTTTCACTTAACATTTCTTCAATATCAGCTAATTCTTCTTTTTTAGCTTTATA -GTTACGATAAACATCTACAGTTTTTTGTAAATCAGCTTGCTCTTTAGAATATTTACGTAATTTATCTGAA -TCATTTACAACATCTGGGTCACTTAACAGTTCATTTAACTGTTCGTATCTTTCTTCTACAATATCTAATT -GATCAAACACTTATAATTCCTCCTTATTATTATCACTAGGTGCTACGATATGGTGCGCGCGACAACGTGG -CTCATAACTTTCATTGGCACCTACTAAGATAATCGGATCATCGATTTTAGCTGGTTTACCATTTATTAAT -CGTTGCGTTCTACTAGATGAAGAACCACAAACAGCACAAACTGCTTGAAGTTTCGTTACTTGTTCACTGA -CAGCCATCAATTTAGGCATTGGTTCGAACGGTTCGCCCCTAAAATCCATATCTAATCCAGCAACAATAAC -ACGGTGTCCATCTGCTGATAGTTTTTCTACTATACTTACAATTTCATCGTCAAAAAATTGTACTTCGTCT -ATTCCTATAACATCAACATTAGTTAAGTCGTGCGTCATAATTTCACTTGCTTTAGAAATATTAATCGCTT -CAATGGCATTACCATTATGAGAGACCACTTTTTCTTTATGATATCGATCATCAATCGCCGGTTTAAATAC -AACGACTTTTTGTTTAGCGTATATGCCCCTTCTTAAACGTCTTATAAGTTCTTCGGATTTACCGCTAAAC -ATACTACCTGTAATACATTCTATCCAACCGGAATGGTAAGTTTCATACATTGAGAGTTCCACCTTTTTCA -AAACATAATCGCTTTATTATATCATATTTCAAATATTCATAAATGTCTTTTTCATAATTATATCGATATT -GTACATGAACAATTATTTTATAAATTTGTCTTGCATATTTATATACAGCCATTCTATTTTGTTGCTTCTT -ATTCGTGCGATGTTTCTACTCAATACAAACTTTAATAAAGGGAAAAATTTATCATTATGTATTAACAACA -TGTTATTGAGTCACTTCTTTGAACACAGTCGTAAGTAAATACCCTTACTACACTTATAAATAAAAAAGCT -GTCTACAATTCCATTATAGGAAGCAGACAGCTTAACGATTACTATATTAGTTGTTTGATTTAAGACCAAA -CTTTTTGTTGAAACGTTCCACACGTCCATCCGCAGCAGCGAATTTTTGACGTCCAGTGTAGAATGGATGT -GAATCAGATGAAATATCTAAACGAATAACTGGGTATTCTTTTCCATCTTCCCACTCCATCATTTCTGAAG -ATGTTTTTGTAGAACCGCTTAAGAATTTGAAGTTTGTAGTAGTATCTAAAAAGATTACTTGGTGATACTC -AGGATGAATTCCTTGTTTCATTATTTTCAGCTCCTTTGCCCTGAACCATCTGGAACAGAGTTATTTGTGA -GTTTTTACCCAATACTGTGTAATTATAAAGGTAATTAATTCAAAACGCAAGCCCCTATATAATGTTTATT -AAATTATAGGTCGACCCGTTTTAGTACTTTCTTCTGCAGACTTTTGTAGCTGCTTGAAGAAATCTTCATT -ATTCTTAGACCTTTTAAGTTTGCGAATAAATCTTTCAGTAAAGTCTGTTGAGTCAGTGAATAGATTTCTT -AATTGCCATAATGTGTCTAATTCAGATTTACTTATCAACAATTCTTCTTTACGCGTTGAACTTCTGCCAA -TATCAATTGCAGGGAAGATACGACGTTCAGACAATTTACGATCTAAATGTAACTCCATGTTACCTGTTCC -TTTAAATTCTTCGTAAATCATATCGTCCATACGTGAACCCGTATCAACTAATGCAGTTGCAAGTATTGTT -AAACTTCCACCCGCTTCAATATTTCTCGCTGCACCGAAGAATGCTTTTGGTTTGTGTAAAGATGCAGGAT -CTAAACCACCTGATAATGTACGACCACTTGGTGGAATAACTAAGTTATAAGCGCGTGCTAATCTCGTTAT -AGAATCCATTAAAATAATGACATCTTCCCCAATTTCTACTAAACGCTTTGCACGCTCAAGTAATAATTCA -GCTACTTTAACATGGTGTTCTGGTGGTTCGTCAAACGTTGAATGAACGACTTCAGCAGCTTCTACTGAGC -GTTCTAAATCCGTTACCTCTTCAGGACGCTCGCCAACTAACAAAATAAATAGCTTTGCATCTGGTTTGTT -CGTACTGATTGCATTCGCTATTTCTTTTAATAACGATGTTTTACCTGCTTTAGGTGGCGCCACTATTAAA -CCACGTTGACCTAAACCAATCGGTGTTACTAAATCCATGATGCGCGTTGAATAATTTTGTGTTTCTGTCT -CTAATTTAATACGCTCATCTGGATAAAGTGGTGTCAAAGCTTGGAAATGCGGTCGTTTCTTCACTTCTTC -TGCGTTATGGTCATTGACAAAGTCAACTTGTAATAAGCCATAATATTTTTCGTTATCTTTAGGTTTTCTA -ACTTTCCCAGTTACTTTATCCCCACGTTTAATTTCAAAACGACGAATTTGGCTAGCAGATATATAAATAT -CTTTTTCCCCTTTAGAATAGTTCACTGTTCTTAAAAAACCATAACCATCCGGTTGTATATCATCTAAGAT -ACCTTCCATATAATAGTTACCATCTTTTTCCATTTGTGCTTCCATAATAGCTAGAACAAGTTCTTTTTTA -TTTAATTTACTATAGTTCGTCAACTTAAGAGTTTTAGCTTTTTGAGTGAGTTCCTTGGTAGTATAGTTCT -TGTACAATTCGTGGAATGATTCATACTGAGGAGATGTACGTTCTCTTTCAGGCATATAGTTTACACCCAT -TTCATTATTTTTTAGTTAGTAAGTAATAGATAGGCATGACAATGCATAAATAACTGTGCTAGCACAATCC -CATTATGCTAATCCCCAACCTTTTAAATACATGAATAACTATAGCAAATTTTTATTTTAATTACAAAATC -TATTTATAAAAATTGCAAAATTAAAACAGTACACAAAACTTAATTAGTCATGTGCACTGTTTTATTGCGA -TTTTTAATTCAAAAATCAAATTTATTTAAAATAGCCAGCTATAGATTTCACTTCTAAGAACTCTTCAATA -CCATAATCGCCCCATTCACGACCTAAACCAGATTGTTTATAGCCACCAAATGGTAAGTCTGGCTTTCTAC -CTGCTTCGTTTATTTCTACTGTACCTGCTTCAATAGAACGAGCTACTTTATGCAATGTTTCTTTGTCCTT -ACCAATAACATATCCTGCTAAACCATATTTTGTATCATTTGCAATTTGAATCGCTTCATCTAAATCGTTA -TAAGTGATAACTGACATTACTGGCCCAAAAATTTCTTCTTGTGCTATCGTCATTTGATTATCTACATTAA -TAAAAATTGTCGGACGTGCAAAGTATCCTTTTTCAAGTCCTTCTGGTTTACCAGGACCACCATAAAATAA -TTCAGCACCTTCTTCAATACCTTTATTAATATAATTTTGTACTTGATCAAATTGTTTTTTACTAATGATA -GGGCCTACTTGTGTACCATCTTCTCTTGGATTACCGACACGCACTTGGCTAAATTGTTCTTTTAATTCAG -CTAAGAATGCATCTTTAATTTTGTTAGGCACTAAAACGCGTGTACCAGCTGTACATACTTGACCAGTATT -ATTAACAACTTTGCCTGTTGTTGCTTTAGCCGCTTCTTTAATATCTACGTCATCTAGGACGATGTATGGT -GATTTGCCACCAAGCTCTAATGATACCTTTTTAAAATCTTTAGCAGCTTTTTCCATAATTTTAGAACCAG -TAGGGCCTGATCCTGTAAATGACATCATGCGTACTTTAGGATGTTCAGATAAAGGATTCCCAACGCCTGC -ACCATCACCATTAACAAGGTTAAATACACCTTTAGGAACACCGACTTTATCAAAAATCTCAGCTAAAATA -ACAGCTGCAAATGGTGTTTCTTCAGATGGTTTAAGTACAACTGGACTACCAGCCGCAAATGCTGCTGCTA -ATTTTAATGATGTTTGGTTTGTAGGGAAGTTCCACGGTGTAATTAAGCCAGATACACCGATTGCTTCTTT -AACAACTAAATCATCTCCGCGGCGTTCTTCAAATTCGTAATTATCTAATGCGTCTCTCGCTGCAACAAAA -TGGTTTAGTCCCATTTGATAATGGACACGCTCAGATAATGATAAAGGAGCACCTAACTCATCCGTAATAG -CTTGTACAATATCGTCTTTTCTGTTTTCATATTCTTTTACAATTTTATCTAATAACGCTTGTCTTTCTTT -CACAGATGTATGACGGAACTCTAAATAAACATTGTCTGCCGCCTCGACGGCTTTATCAACATCAGCTTTA -TTACCTTTAGCAACTTTCCCGATTACTTCTTCGGTTGCTGGATTTATAACTTCTATCGTTTCATTACTAT -TACTTTCTACCCATTCGCCATTAATGTATTGCTTTGTGTAGTCTCTCATTATTCTTTCACTCCTCAAGAA -TGATTTATATATTATTTATCCGTAATGCATACGATATAAACATTACATTCCATTATGATACGCTCCCTTT -TAATATGTTCAAAATAAAATGCTTTAAAATTTTGCTGCATCTAATTTTTTATATTTTTAAATAAAAATAA -CTATTCCCACATCATCGCAAATAATGCGAAGACTTAGAAATAGTTATAATCAATGCTATGTTTAAACGTC -ATGTAATCATTTAGCAGTACGTTGATCTGTTAAATCGACATATGATTGCGCCCATGCTTCAATTGGATGT -AAAGCCTCTGCTAACGCTTTACCTTTTTCAGTTAGCACATAAATAATTTGTACTGGACTCGTAGAAATGA -TTTGCTTCTCAACTAACTCCCATTGTGCAAGCTCTGACAACTTAAGACTTAAAGCACGTGGTGTTATTGT -TTTCAAATCTCTTTTCATATCGGAAAAGTGTGCTGAACAGTCATTACATCTTGAGAGATAATTAATGATT -AATCCATTCCAACTTCTACCAAGTATTTTAAAAGTTTCTTCGAGATACGGACATACTTCCATCATCTTCA -CCTCTCATCAATAAATTTAGAATGTAAACGAACACCCTTTTTTAATCAGTATAATTATTATACCACAAAA -CAAGATAAATCTATACAGTTTCCGTCCAAATATCTGCACCTAAAGCTTTTAAATGTTCTACAATATCTGT -ATAACCTCTATAAATATGTTTAACATTGTAAATTGTAGTTACACCCTCAGCAATTAAACCAGCAATAATT -AAACAAGCTCCTGCTCTTAAATCGCTAGCATAAACTTCAGCACCATGTAATGTTGATGGTTTTATCGTTG -CTGTGCCTTCGTCAACTTCAATATTTGCACCCATGCGCTTTAATTCTTCAACATGTTTAAAACGCTCCGG -ATAAATCGTATCAGTTACAAATGAAGGACCATTTGCCATAAATAATAATGGTGTAATAGGCTGTTGCAAA -TCAGTAGCAAAACCTGGATATACTAGTGTTTTAATATCAACAAATCGATATGGCGCATTATTATTGATGC -GAATTCTTTCGTCTCTTACATCAACATTCACACCTAATTCACTAAATTTAGCAGTTAATGTTTCTACATG -TTTCGGAACAATATTATTTAATATAACATTTTCTCCACATGCTGCAGCGATACACATATATGTGCCTGCT -TCAATTCTATCAGGTATAACTTGATACTCAGAACCATGTAATTCTTTGACACCATTGATTTTAATTGTTG -ATGTACCCGCTCCCTTAATATTAGCTCCCATACTTGTTAAGAAGTTAGCAACATCAACTACTTCCGGTTC -TTTAGCAGCATTTTCAATTACAGTTTGTCCTGTTGCATAAACTGCAGCTAGCATAATGTTAATTGTTGCA -CCTACGCTAACCATATCTAGAAAAATATGTGCACCTTTTAACTCTTTAGCTTCGATTTTCATTGATGTCG -TACTTGATTCATCAATTTCAGCACCTAAAGCTTTAAATCCTTTAATATGTTGATCAATTGGACGTGGCCC -AAGTGGACATCCTCCCGGTAAACCAATCACACATTTTTTAAATCTACCTAACATGGCACCCATCATATAG -TATGAAGCACGTAATGATTCAACTTTATTATTTGGTAATGCAGCATTTTGTATTTCAGTTGTATCAACTT -CTAATTCCGTACCATTTAGTGATGCCTTAATATTTAAATCTTCTAATAAACTCACTAAAGTTTTAACATC -AGAGATTTGCGGTAACCCTTCTAATTTCACATGTCCTTGAGCTAATAATGTTGCAGGAATGATAGCTACA -GCACTGTTTTTCGCGCCACTGATATTAACTTCCCCATTTAGTGTGCGTCCACCTCTTATTTTTATTACCT -CTTGAGCCATATCATTTATCTCCTTTGTCCATTACTTTTTAATTTTTTGCATTATTAGCATTATAAATTA -ATTTTACTTTATTTGTAAAATAGTTTATTTTAATCGTTAAAATCTTGTCTTTCTATTTTCGATTGATTAA -TAACAAATCATTCACCTTTACTAATATATGCTGTTCTTCCCCACTTGACCATGGTCTAAAGTCTGATTAT -TCAACTAAATATTGACGTTGTTTTGACAATTATTTAGTTTTAATTCTACGGTTTTCACGTAAACTTTTTT -CATAAATTGCTCATTTTCCTTATAATTATATCACAATCAATTTTGATATATTTTACCATTTTTACGCTTT -CATTTTAAAATCAAACTGTTTTATTTATTACTTATACAACATAAAAAAGAAGCAAACACCATTTTGTCTG -ATTCTTTTAAAATTAATATCCCTACGTTATTAATAACTTAAAGACTAAATATTAATTATTTAGCGCGGTT -TGAAGTACCGAACTCTTTAATTTTACCTTTAACTGTTTCTTTGATAGCTTCACGTGCAGGTCCTAAGTAT -TTACGAGGATCGTAAACTTCTTTGTCGTTATTTAAAACGTCACGAACTGCTTTTGCTGAAGCGATTTGGT -TTTCAGTGTTTACGTTAATTTTAGCTGTACCAAATGGAATTGCTTTTTGGATATCTTTAGTCGGGATACC -AGTACCACCGTGTAATACTAATGGTAAACCTGTAGATAAACCGATTTCTTCCATTTCTTTAAATCCTAAT -TTTGGTTCACCTTTGTATGGACCATGAACTGAACCTAATGCTGGCGCTAATGCATCAATACCAGTTTTTT -CAACTAGTTCTTGACATTCTTTAGGATCAGCATAAATGATGCCGTCTGCTACAACATCATCTTCTTGTCC -ACCAACAGTACCTAATTCAGCTTCTACAGAAACACCTTTTTCATGAGCGTATTCAACAACTTTTTTAGTT -GTTGCTACGTTTTCTTCGAATGGGCTGTGTGAAGCATCGATCATTACTGATGTGAAACCAGCATCGATAG -CTTCTTTACATTTTTCAAAGCTTGAACCATGGTCTAAATGGATTGCTACAGGAATAGTGATGTTTAAGTC -ATGCATTAACCCTTCAACCATTTTAACAATTGTGTAGAAACCGCTCATGTAACGAGCAGCACCTTCAGAA -ACACCTAAAATTACAGGTGCATTTTCTTCTTGTGACGCTTCTAAAATTGCTTGAGTGAATTCTAGGTTAT -TAATATTGTATTGACCTACCGCATAACCATTTTCTTTTGCATCAATTAACATTTCTTTCATTGAAACTAA -AGGCATGAAAGTTCCTCCTTGAGTGCTTACGCACGTATTTTTCAAAGTAATTATATCAAAAAAATAGCGT -CAATGCATTGAAATACTGCAGATTAAATGTGTATTTTTTGAAAAATGCGATAGTTATACTAAATGCAAAC -GTATACATTTTTATACAATTTAAGCCGTTGCATAATATGTAGTCATTAATTACAATATTTTATAAGTAGA -TTGGAGGATAAAGATGTCAAAAATCTTAAACACACAACTAATAGGTATCTTTAATAGGCTAGAAAAACAA -TCTTTAGAAATTCAAATGGCCGCCCAATGTTTAATTCAAGCAATTGGTGGCGAAGGTTATGTTTATGTAA -AAGGTTATGATGATTTACAGTTTTTCGAAAGTTTCATTCTACATAGTGATGAGCGTTTAAAATCTAGCCG -AAAACTTGACGCTATTAAAGACTTTAAAGAAATTGACTCAACTGATCGTGTATTATTATTCGCACCATTT -TATAATGATCAAGTTGCATTAGATATTCAAAAACTTATCGCCTTAGATATCGATGTGGTCTTAATAAGCA -ACAAACCTAAAACAGATGATTTCCCTGATCATCTCGTACATTTTATCGATTTATCTACACCAAGACCTAT -AGTCTATACTGAAGATTACGATAAGATTGTCCAGCCACATGCGATGGCATTGAATTATGTATACTATGAC -ATTTATACACAAATGATTGAAATGACAAGAGACTTAGAATTATAAAAGTCACTATTGTTATTTAATACCT -TGTCACTAACATAATATTAAAATTATAAGAAAAACCGGTACTTTCAATGTTTAACAATGAAAGTACCGGT -TTTATTAGCAAATTTATTTATTTTGTTGATATTTTAATGAAGCTTCAATGAATGATTTAAAAATCGGGTG -CGGACGATTTGGTCTAGATAAGAATTCTGGGTGGAATTGACAAGCAATAAAGAAATCATTTGTCGGAATC -TCTACCATTTCTACTAAACGTCCATCTGGACTTGTACCAGAAATTACCATACCATTTGCTTCTAATTGTT -CTCTATAGTCATTATTAAATTCATAACGATGACGATGTCTTTCTTCAATTTCCGCTTTACCGTAAACATC -TTGTGCCAATGTGCCTTCTTTAATTGAACATGGATATAAGCCTAAGCGTAATGTACCACCTAAATCTTCG -ATATCTTTTTGTTCTGGTAATAAATCTATAATTGGGTATGGTGTTGCTGGGTCTAATTCAGCTGAATGTG -CGCCTTCAAGGCCTAATACGTTTCTTGAAAATTCAACTGTTGCAAGTTGCATTCCTAAACAAATACCAAA -GAATGGTACATTGTTTTCTCTAGCATACTTAATTGCACTAATTTTACCTTCACTTGCACGGAAACCAAAT -CCACCTGGTACTAAAATACCGTCGACATCTGCAAGGTATTCGGCCGCATTTTCATCTGTAACTTCACTTG -AATCAATCCATCTAATATCAATATCTTTAGCGAAAGGATATCCGGCATGTTTTAATGATTCAACTACAGA -TAAATATGCATCTTGTAAGCTAACATACTTACCAACTAAACCAATTGTAATTTTACCATCCAAATTATTA -ACGATATCTAACAACTGTTTCCATTCATCAAGCTGTGTTTCATATTTCGCGTTTAATTGTAAACGTTTAA -TAACGATATCGTCCATATTTTGTTGGCTTAATTGTAACGGAATTTCGTATAAAGAATCTGCATCACGACA -TTCAATAACACTTTCTTTATTAATGTCACAGAATAATGCAATTTTATCTTTTAAATCTTGTGTCATTTCA -TATTCAGTTCTTACAACGATTAAGTCTGGTTGAATACCTAAGCCTCGTAATTCTTTAACGCTATGTTGTG -TTGGCTTCGTTTTCATTTCTCCAGCAGCTTTAATATAAGGCAGTAATGTACAGTGAACATACATAACATT -TTCTCTACCTAAATCGCTACGAATTTGACGAATCGCTTCAATAAACGGTAATGACTCAATATCACCTGTT -GTACCGCCAATTTCAGTGATAACAACGTCTGCATTCGTACTTTCCCCTGCAAGTAATAAACGTTCTTTAA -TTTCATTTGTGATATGCGGAATAACTTGAACTGTTCCGCCTAAGTAATCACCACGACGTTCTTTTTTCAA -TACGTGTGAATACACTTTACCGGCTGTTACATTTGAAAACTTGTTTAAATTAATATCAATAAATCTTTCG -TAATGTCCTAAGTCTAGGTCAGTTTCTGCACCATCATCCGTTACGAATACTTCACCATGTTGATAAGGAC -TCATTGTACCTGGGTCAACATTTAAGTATGGATCGAATTTTTGAATTGTTACATTTAGACCTCTATCTTT -TAATAATCTACCTAGAGAAGATGCTGTAATACCCTTCCCTAATGATGAAACTACGCCACCTGTTACAAAA -ATAAATTTTGTCATGTCTTGACCTCCTAATTATTAAAGGGAATGCTTCCTCATCAATTGTAAAAATTACG -TAAAACATAACATTTGAGTAAGCTCATTCAAGTTGTTCATTTGTCGAATTCGACAAAATTAAATTCTGTT -TACTTACCGTTTTCATACTGCTATGTCACTATGTATATCATTTACAACTTTGATTATTGCGTTATCATTT -CTTGATTTACTCAATTAAATAAAAAAACGCTCCCTCTCACAAATTTTGTAAGGGGAGCGTATAAATTTTA -TACACGTGTCCTATTTAAAGGAGCCCGAATAAAATTTTATCATCTTTCAACTAAAAGTCAAACAAAAAAT -TAATCGTTGAAGTCTTCTTCGTCTTCAAACACTTCTTCATCTTCGTCTAGTTCATCTTCATCTTCTTCAA -TGACTATATCCGAATGATTGATTTCTTCTTCAACCTGCTCATCTTCTGGATCATTTAGTTCTTCTTGATC -ATCTGTTTGAGCTGGAATATCATCGTCGTCATCCATTTCATCTTCGCCCAATAATTTTAAGTTTTGATCT -TCTTCATCATCTGCATCCAGAATATCGAATTTTTGAATAGTTGGTGCGATTTTCTCTTCAATATCATCTA -CCGAATACCAATCACGTAATCCCCATAAATTTTCTCCAACATTTAAAAAACGACCATCTGTGTTTAAATC -TGTGTAAAATTGTACAACGCGATTTTCAATTTCTTCGTACTCATAATCACCTAACGCTCTAAACTCATCG -ATGATATCATATAAGTTCATAGTTTCGCCTTTATCATTCAATAATGTATAAGCCATATCAATAAATGATT -TTTCATCAACCATTTGTTTTGTATAATCTTGAATTTTCATTGCCCAATACTTCCTTTCGAAGGATATAAT -CTAAATTTATACGTCTGAATTCATTTATATATAGTAACAAAACTAAATTATAAATGACAATATCATATTT -CGCAATCACTGTTAGTAATTTAAATATTTTTCAAAAACGACATAATCATCAGTTTGTTCGATTTCAACGA -AATTACTATTTAAACATAATGGTTTAAAATCATTATTCTCTCCAAACAGAATCATCGTAATCACATTAAG -GTTGTCATAGTTTTTTCTTAAGTAAGTAGGCAATTGTCGAAGCGCACTTGAACCAATACCATTAAAGCGA -TATGATTTATCCACTTCAATAGCAGCAATGTTCATGCGTTCACCAATCTGCTCCAATGCGATAAAGCCAA -CCTTTTGGCCATCAATCATTAAATTAATGATATGTACATTGGTCACTTCTGAACGACTTTCTTCTTCAAG -CTTTAATGACGAAACATGTTTTGAATCTAAGTCCAAGTAATATAGTCGTTCTTTGCCAATTGGTCCTTCT -TCTTTAGTCGCTGTATGCATGAATCCAGCACGTTCGTATAGGTTCCAAGCATTGTCATTTTCCGCATCTA -CTACTAGATATAGATGATTAAAATCAGGAAATACACCTTGAACATATTGCGGCAATGACATCATTATTTT -CGTGCCATATCCAAAACCTTGATATTTTTCATTAATCGATAATGAACGAATATAAACGACATTTTCAGGT -GTATCATAACCTTCATGCTGATAGTAACGATGTAATACAAAAAAGCCCACCACTTCATTTTTATCGTTTA -TTGCTACGTTAGCAATCCTATCAGCATCATTAATTGCATCATCAATAACTTCTTTAGGTAAAGATGAATA -TATTTGTTGTCTTTCATTCAAGTCAAAATCATTAATTGCTGAACGATATTGTTCATCAAATGCTTTTAAA -GTGATACCTTCAAAACAAAGTTCTTTAGCCATATATTTAACCCCTATCTTTTTATATATGAAGCATGAAT -CCCCATATTATTTTACCTATTATTTCACTACGATACCATTATTTGCTCTAAGTTAAATAAATTACTTATT -TATATTTTTTAAATTTCAAAATTAATGTGCTATTCCTCATTACTTATCATTTTAATCAGAGACTTACAAA -TACACTGCGTACGAACTACTTTTAATATTGCGTCACTAACTAACAATCCTATACAACTTCAAAATTCCTA -GAAAATAATATATATAACTTAACGTCTACGTTTGTAATACATTAATTGCGATACGCTTACAATGTTGAAA -TACAATGGCATCAAATTTGTTAATAATTACTATTATTACTTGTTTTTTAGTCATTTTACTATACTATTAT -TTAAGGATAGACATTAATAATGAGGTGGGAATCTTATGAAAGTTGGCATTGACGCTGGCGGTACACTAAT -TAAAATCGTTCAAGAGCAAGATAACCAACGTACTTTTAAAACTGAATTAACTAAAAATATTGATCAAGTT -GTGGAATGGTTAAACCAACAGCAAATTGAAAAATTATGCTTAACTGGAGGTAATGCAGGTGTTATTGCTG -AAAACATCAACATTCCTGCACAAATTTTTGTAGAGTTTGATGCTGCATCTCAAGGACTAGGTATTTTGTT -AAAAGAGCAAGGCCATGACTTAGCAGATTATATTTTTGCAAATGTCGGTACCGGTACGTCACTACATTAT -TTCGACGGCCAATCACAACGTCGTGTAGGCGGTATCGGTACAGGTGGTGGCATGATTCAAGGACTCGGTT -ATTTACTAAGTCAAATCACTGATTATAAACAGTTAACTGACATGGCACAACACGGTGATCGTAACACTAT -CGATTTAAAGGTTAGACATATTTATAAAGATACCGAACCGCCCATTCCCGGTGATTTAACAGCAGCTAAT -TTTGGTCATGTACTACATCATTTAGATGCTGATTTTACACCTAGCAATAAATTAGCAGCCGTTATTGGTG -TCGTTGGCGAAGTTGTTACGACAATGGCCATTACTGTTGCACGTGAATTTAAAACTGAAAATATCGTTTA -TATCGGTTCTTCATTTCATAATAACGCTTTATTACGCAAAGTTGTGGAAGATTACACTGTGTTACGCGGT -TGCAAACCGTACTATGTTGAAAACGGCGCATTTTCAGGTGCTATTGGTGCATTATATTTAGGAAAATAGA -AAAAGACCATTTATATGCGCGTTGTTTTAAATAGACGCTATATAAATGGCCTTTTATTTTATGGTCTAAG -TGTTTTGAATACGTATTGTTCCATTTATTATCACTTAATTACAACTCAATTCAGTTAAAATGTAAGTTCA -TTAGACAATTTTTGCGCTGAAACAATTGTACCAACCACGCCAGTTTTTAAATCTATCGCAACGGCTTTAT -GATCATCTCTAAGTTCATCTAGCCATTCTCCGAAAACAGAACCTTCAATCGTAATTAAATCACACTCTTC -AAAATCTTCATCTCGAACTTTTAACGCTCTGTTTTTAATACTCCATACAGGCATAATATGCGGCTTTTTT -TCGTCGCTATCATTTTCACTAATGAGAATAAACTGCTTACTACCTTTTTTAGTTAAGCCGTATACTTCAT -CATATTTCGCTACATCTTGGACAAATTCTTTGATTCTAATTTTATCTAATTCCGTCATCACTTCTTGTGT -AACAGCTACAACGTTTAGTAGATGCCCTTCTTCTTCCATTGTTTGATTCATAATAATATGGTCTTGTTCA -TCAAACAATTCATCTAATTCATAAGTAGCAAAACGATCAACGTCCATTTTTACAACTTTATCAAATGGAA -TATCACGACTTGTTAAAAATGATACGGCCACACTTTCTTCTGTCCAAACGCCTACATACGCTTCACTTTT -ATAATTTAGGCGTACTAGTTTTTTATTTTTAGAGGCGAAATAAATACATTCATTTATTAATATATCTCTA -AAGAATGGATATGCTTTATAAGACATGCTTGACCCTCACTTTTTAAAATATGTCATACATAAAATAGTAA -ATGACTCCAACAAGTTAGTCAATTAGACATATTATGAATTCAATTTAATGTCATGTTTTTCATTTTAAAA -ATTCAATAGCATTAAATTTTACGTATACACAAATTCGGTCTATAACACGAAACATATCTAGTTACTAAAA -ATTTCAAAACGAAAACCTTTAGTATACCTTTATCAACAAAATGGCAACTCTTATAACATAGTGAAATAAA -AGTCGCCATTTAATATTAGTATTACAAAGTATTGCCATATCATAAATTTAATTACTGTTGACTAGAATCG -AAAAAAGCTTGTTACAAACGCATATTCAGTCAACTACTGGCAACACAACATTGTAGCGCCTTATGTTCCG -AACTCTAATAGTGTTCAAGTTCAGCTAAAAATGCGCGTTCATTCTCCAGTACTGTTTCTTTTGAATCACC -ATGCCAAATACAGCCAAACCTTGATTTAACTTTATCTTCACCGTACCAATCACCATCATAATAAGATAAC -GGGTATAAACTACCTTCTTTGACATATTTCAAAATCGTATTGAAGAAATGTGTGTTATCACCTTTTGAAT -GATAACTATAAAACTTTTGATATCCTGAATTCAACTCGTTAGCAAGTAATAACATGCTCGTTGAACCATT -TTGTCTAAAGTTTAAATCAATTGCATAAACGTTATCATCCTCATCGACGAGTAGGTCAAAACCAGCTACA -CCAAAGAATCCTTGATTCACACCGTTTTCCATAATTTGTCTACCTGCTTCTATAACGTGCTCTGGTACAT -TAGTAGTATTTTCATTTCCGTTATAAAATCCGTACTTATCCGTTAATTGCGTTGCCGCACCAAGATATTG -AATACCTAGCGATTCCGAGTATGCAAACTGAACGCAATAATTCGCTTTTTCTTCAATCTTCTGTTCGATA -ATAAGCGAATTCGTTTCAGCAGTTGCCTGTTTAATACGCGTTATCGCTTTTTGTAAATCTGCATCATGAT -AACAAATCATAACGCCATAGCCACCTGCTGTCGGAAGATCATCTCCCGGCTTAATTACAAACGGGAATTC -CCAATTCTTAATCTCGTTTTCGAATTGCTCAATTTTTACAACTTTTCTTTTTGGTAAAAACTTCCCATTT -GTCCATTCAGGTATTCTTGCTTTATTATTTAAAGCAACAAATAACGTTTTATCTAATGCATAATATTGCT -GATTCAAGATTGTTTCATCATGAATATATTGAAAATAAATCTTTTTATTTTCCTTATGTGCCAATTGTTT -AATCAAGTTTTCGTAAGATTGCTGATTGTTAAATGTATAAATTGAGTTCGGTACTTCCTTACCAATAACT -TGAAATAGCTGATGCAATTTGTCTGTCGCACTAGCTTCGTGAACAATAACAGGTAATTGATTTGCTATTA -ATAACTCCCTACCAGTTAAAAAATTAGATTGATGTTCGTCCGGTTTCAACCATGGATTCGATATATACGA -AGGTCTTGACGTATAGACAACATCTTTGTCATATAAATCACTTAACGTTAAGTTCGGCTCATTACCATTA -TTTGTCATTACTTCCCATTCCCTTTCAAATGCGCATGCTCTTCAATAATGTCTTGATAAACGTCTTGATT -TGTAATTAACTCTAACCCCATCAACGCCATTATTTTAGCACCTTTAATTAATGCTTCATCACCATGTACA -CTCGCAGCTGCTTCTCTAAATCTATGCGTATGTCCTACTAAATTACGTGATCCTATTTTAATATGAGGAT -GTATTGTTGGCACAACATGACTTACGTTCCCTGTATCCGTAGAGCCATAACCAAAATCATCATCAATAAC -TGCTTCACCAACTTCTTCAGCATATTTAGCAAATAAATCATCTAATTTCGGCGTTTTAATGAATTCATTC -ACACCGTTTTGAATTGGACCAAATTCATAATCACAACCAGTCTGTATCGCAGCTCCACGTGCGATTTGAT -TTACTTTTTCTGTTAATATATCCAATTCTTTACGCGTCATTGCTCTAGTATAAAAACGAGCATGTGTATA -GTCTGGAATAATATTAGCTGCTTTCCCGCCATCTAAAATCACACCATGCACACGTTGATCTTTTTTAATA -TGTTGTCGTAGTTGTGCTACACCATTAAAATAACTAATCATAGCGTCTAATGCATTTAACGCTTCATCTG -CATTTTCAGAGGCATGAGCACTTTTTCCGTAAAATTTAACATCTAAAACATCCACTGCCAAAGTATCAAT -CGTTTTATAAGTTTCATTTCCCGGATGAATCATTAAGGCAATGTCTATTTGATCAATCACACCAGCCTTG -ACATAAGAAGCTTTAGCGCTACCATTTTCCCCACCTTCTTCAGCTGGACATCCGAGAACGACTACTTTAC -CACCAATTTGGTCAATCACTTGCTTCAAACCAATTGCACCAAGCACACTTGCAGTTCCAATGATATTATG -ACCACAAGCATGACCCAATCCTGGCAAAGCATCGTATTCTGCTAAAAAACCTATAGCTGGCCCGTCAAGA -TCCGAATCATATGTCGCTATAAACCCAGTTGCATGTCCAGCAATCTCGGTTTCAATTTCAAAATCATGTT -CTTTCAAACGATCTATTAAAGTTCGAGACGCAAATATTTCTTCATTACCAAGTTCAGGACGTTCATGAAT -TCTATGACTGATTTCGATATAACTATATTTATTTGTTTCTATATAATCGAGAATTTGTTGTTTTTCACTC -ATTTTTTACTATCTCCCTTTTACCCTACACTCATTTTAATCATCCACAATATTTTGTTCTTTCAAAATGA -ATTATTACTTATTCTATCGGTTTTATCTCTTGATGTCATCTAGTTTTTCTTTATTTACAAAATTTTCTAA -TAACTAAAAGCCTTCATAAATTTATAAAACAGTTTCAAATTGTAAAACATAAGCCCTATTGTTACAATTT -AAGTATTGTTAGAAACGCAACTTGCAACAAATTTAAGTTTAATAATGTAACGAATCATAAGCGTTTTATA -GTTTTGAGTAGTTAATAGGAGGAAATTTAAAATGACAAAAATGAATGTTGAAAGTTTTAATTTAGATCAT -ACTAAAGTGGTTGCCCCATTTATTAGATTAGCGGGAACGATGGAAGGATTAAACGGAGATGTCATTCACA -AATACGACATTCGTTTCAAACAACCAAACAAAGAACATATGGATATGCCTGGATTGCATTCATTAGAACA -TTTAATGGCTGAAAATATTAGAAATCATAGTGACAAAGTCGTTGATTTAAGTCCTATGGGTTGCCAAACT -GGTTTCTATGTATCATTTATTAATCATGATAATTATGATGATGTATTAAATATTGTTGAAGCAACTTTAA -ATGATGTGCTAAATGCTACTGAGGTGCCTGCTTGTAATGAAGTACAATGTGGCTGGGCAGCAAGTCATTC -ATTAGAAGGTGCTAAAACTATCGCTCAAGCATTTCTAGACAAACGAAACGAATGGCATGATGTTTTCGGT -ACAGGAAAATAAATCTTAGTCAATCAAGTTAATCAGAAAAGCAGTCGAACAATGATGTTACAATCGCCAT -TGTCCAACTGCTTTTTATTATGCTTCAAAGTCAAAAAATCGAACAAATGAAAAAGTAAAATCTTTAACAT -TTGTCCGATTTATTTGAGAACCACTATAATTTCTTAATTAGTCCCATTAACACGAACTGCATAGGTAACC -TTAAATATAGTTGCCATGTTGGCAATTGTTTATCTCCTAAAGGTAACTTTTTAACTGCCATATAGATATT -AGCTGGGAATACAGCTAGCAAGAATAGATTGATTGTATTTTTCAAGCATTGAGATGGTCTTTTAATTAAA -AGTGCAAGTCCAAATAATATCTCAAAGATTCCTGTAACAAGAACCGCTGTTTTTCGAAGCGGCAAACATT -TCGGTATGATATTTCTAAATTGTCGTTCTCGTGTAAAATGCAATACACCTATTATACTAAAACCTATTCC -TAATAAATATCTTAGTATGTTCAATCAGCTTCAACTCCTACTCTGTAATTATTTTATGAATTAATGTAGG -CGATACAACATAATCAGCAATTGTTATGCTTGAATCTAATTTTTTAACAACATCGTCTACATCTTGGCGA -TTACTGTGAATCGTTAATAATGATTCTCCTTCTTCTACTTTATCACCAATTTTTTTATTTAAAACAATAC -CAACCGCTAAATCAATATCATCCTCTTTTGTTAAACGTCCCGCTCCTAACATCATCGAAGCGACACCTAT -ATCGTTAGAGACTAACTCAGTCACATAACCTGATTTTTTAGCTTTATATTCGATTTGATATTGAGCTTGT -GGCAAACGCTCTGGATGGTCAATAACTGTTTTGTCGCCACCTTGGTTTTTAATAAATGTTTTGAATTTTT -CTAATGCTGCACCTGAATCAATTGCCTCAATTAGCAACGCTCTCGCTTCTTCAAGCGTTTCAGCTTTGTT -TGCAAGTACAACCATTTGAGAACCTAATGTTAATACAAGTTCTGTTAAATCTTTCGGACCTTGTCCTTTC -AACGTATCAATTGCTTCTTGTAACTCAAGCGCATTGCCAATCGCACGTCCAAGTGGCTGATTCATATCAG -AAATAATCGCCATCGTATTACGTCCCACATTATTACCAATACGTACCATTGCGTGCGCTAATGCTTCAGC -ATCTTCTAATGTTTTCATAAATGCACCGCTACCAGTTTTTACATCTAATACAATTGCATCTGCACCAGCA -GCAATCTTTTTACTCATAATTGAAGAGGCAATTAATGGTATTGAATTGACAGTACCAGTAACATCCCTTA -AGGCATATAATTTTTTATCTGCAGGAGTTAAATTTCCTGATTGTCCTACAACTGCCACTTTATTTTCATT -AACCAATTTCACAAATGTTGCTTCATCTATTTCAACATGAAAACCATCAATTGCTTCTAATTTATCAATC -GTACCACCTGTATGACCTAATCCACGCCCACTCATTTTTGCAACAGGAACATCTACAGCTGCTACTAATG -GTGCTAAAACCAATGTAGTTGTATCTCCTACACCACCTGTTGAGTGCTTATCTACTTTGACACCTTTAAT -ATCACTCAAATCTATCATATCACCAGAATTAACCATAGCCATCGTTAATGCTGCACGCTCATCATCGTTC -ATATCTTGGAAATAAATCGCCATTGCTAAACTTGACGCTTGATAATCAGGAATATCCCCTTTAACATAGC -CGTCAATAAAGAAATTAATTTCTTCCGTTGTTAGTGTATGACCGTCACGCTTTTTCTCAATAATGTCTAT -CATTCTCATTTTTATCATCCTTTTCTTAAAAAGCTTAGGACAAAGCATCTGCGCTTTCTCTAGTCCATTT -TTAAAAGCACAAGCGAAAATTATTATAGCAAGCTATCGATTTCATTTTTAATATCACAATTTAAATGCGA -TGTTATTATTCTTAAATAGATTGGTTATAACGTCAAAGTCCCTATTAAATTATCTTAGAATCATCATGGC -ATTTATGATGTCTTAAAACTGATATCGACATACTTATATATGGTTACGATGTCCCATGCTTACATATTTT -TTATAAAATTAGTAATCTGAATCTGCTTCTAAACCTTGCATAATTTGAACACCTGCGCTCGCACCAATAC -GTGTCGCACCTGCTTCAACCATTTTATTGAAATCTTCTAAATTACGTACGCCACCTGATGCTTTTACTTC -TACATCAGCACCTACTGTATCTTTCATTAATTTAACGTCTTCTGCAGTCGCACCGCCACCTGCAAAACCT -GTTGAAGTTTTAACGAAGTCCGCACCAGCCGCTTTTGTTAATTCACTCGCTTTTACAATTTCGTCATGGT -CCAACAATACCGTCTCAATAATCACTTTTACTGTGTGACCTTTCGCAGCTTTAACCACTGCTTCAATGTC -TTGTTGTACATCATCAAAACGCCCATCTTTTAATGCGCCGATGTTGATGACCATGTCAATTTCATCTGCA -CCATTTTGAATTGCATCTTCTGTTTCAAATGCTTTCGTTGCAGTTGTCGACGCACCTAATGGGAACCCTA -TTACCGTACAAACGAGCACACCTGAATCAGCTAGTCGCTCTGCTGCATATTTTACATGCGTTGGATTCAC -ACATACAGATTTAAAATTGTATGCTTTCGCTTCATCGATGATTTGATCGATTTGCGTACGTGTTGACTCA -GGCTTCAATAAAGTGTGATCAATCAATTTTGCACTATTCATTTTCTATCTCCTCCTTTATGGTTGATTAT -AAAAATACGGTTGTAAATTAGTTGATTGAGCGTCAGGTTCATTTAAATATCAGGTTAGATGTTCGCTTTT -TATGTAACCGCATACATATACTATTACATTAATTCATTTCCCATAAACAAACAATACAATTGAACGTGAT -ATCTTCATTATGAACGATGACTTGACAACAAGCTAATCGGGATTATATTTTTATAATTCTTTAATTCTAT -AGTACAAAAATTCGCAAAAAAGGGAAACAAATGTTATCTTAAAATTATTAATGAATATTAAGGAGAAGAT -AACAAATGACAAAAGGTACACCACATATTCAACCAAATGGAGTAAAAATTGCTAAAACAGTATTAATGCC -TGGCGATCCGCTACGCGCAAAATATATTGCTGATAATTTTTTAGAAAATGTTGAACAATTTAACGATGTA -CGTAACATGTTTGGTTACACTGGTACATATAAAGGTAAAGAAGTTTCTGTAATGGGTTCTGGCATGGGTA -TTCCAAGTATTGGTATTTACTCATATGAGTTATACAACTTCTTTGATGTAGATACAATCATTCGTATCGG -TTCTTGTGGCGCATTACAAGAAAATGTTAACTTATACGATGTTATTATTGCACAAGCTGCATCAACTAAT -TCAAATTATGTAGATCAATACAATATTCCAGGTCATTTCGCGCCTATCGCTGACTTCGAGTTAGTAACTA -AAGCTAAAAATGTCGCTGACCAAATCGGTGCTACTACACACGTAGGTAACGTATTATCTTCTGATACATT -TTACAATGCCGATCCAACATTCAATGATGCTTGGAAAAAAATGGGTATTTTAGGTATCGAAATGGAATCA -GCTGGTTTATATTTAAATGCGATTCATGCTGGTAAAAAAGCACTTGGTATTTTCACAGTAAGTGATCATA -TTTTACGTGACGAAGCTACTACACCTGAAGAACGTCAAAATTCATTTACACAAATGATGGAAATCGCTTT -AGAAATCGCAGAGTAACTTATTTAAATTGAGTTTAATTGCTCTTTAACAATGCGATTAAACTCAAAAAGC -CAACACATTCTGGGCGTATCCCCATTTATGTGTTGGCTTTTATTTATATTATTACTTATCTGTAGATTAG -CTTAAGTAAGATTTAAACATCCAATTATGTTTATCTACTGATGTTTGCATACCTATAAACATATCTTCTG -ATACATCATCGCCTGCATTACCAGCAATTTCGATTGCGTTTTCTAATTGTTTTGAGATATTTGTGAAGTC -TTGTGATAATTCTTCAACCATTTGTTCTGCAGAGTAACCTTTCGCAGCTTCTTTAACAATTGATTGCTCT -AAGCATTCAGTTAATGTACCTACAGGGTTTCCTCCTACCGCTAAAATTCTTTCAGCTAATTCGTCTACAT -ATTGGCTTGCTTCATTATATAATTCTTCAAATTTAACGTGTAATGAGAAGAAGTTAGGCCCTTTCACATA -CCAGTGGAAATTATGTAGCTTTGTATAAGCTACTGTCCAGTTTGCTACTTGTTGATTCAATTCTTTTACA -ACATCTTGTTGATTACTCATATTTAATACACTCCTTAAAATTGTCTACGTCTTGCTTGTTTATATTAATT -ATTATATTATAATGATTCTAATCTGTAAAGTGTTTTTACTCTCTTTTTTATAATTATTCTAATCTATCTG -TTAAGTGTTCCGCTTTTTAAATATCTAAATTTTAATTCATCATCTAGTATATCTATTATCAATTAGAAAG -TATGTTTTATCAATCAGTAAGTTTTACTTTCGCATTATCATCTAAAAAGAACGATTTTTCATAATCATTT -GGTTGGTGCCATGTTGTTTTCCACATTCTATTTCTATTATCAGCAAACATTCGATAACCGAAATTACGGA -CTGGTTTAGGTACAAGCCATAAACCTACGCCCAATAATTTAGTTCGATTAGGTAGTGCTGTGATTAGTTT -AATAATCGCCTGCGATTCAAAATATATACGATCACCTTTCTGTAAAATCACACTATTTTTATTTGCCGCT -TCTGGATGTTGTTTAAAAAATTGTTGTCCAACTTCACCTTTTAACGTGGTAAATTGATAATTTCTTGGTA -GGTCATGTTGAATTAACCAGATGACATAGTTATAACAATATATACAGTTTCCATCATAATATACGATTGG -CATAATTTATTCGCTCCTTCAATAGTACTTATAGTCATTTTTCCTAATTTAAAAACATTTAAACAAGGTT -GTCACTTGATAAGTCCTCGCGACACGAAATTGCCATAAAATTTATTTTTCAGTTTTGTATTTATTGTATA -ATGCATTTTTTATTTACTTTAAATTTCTCAATCTACAGTGTAATCTTATTTCTTATTATCAACTTAGCGT -TTAGTCGTTTGTCTTATTCAACATACCACTGGAAAACTCAAATAAAGTTTTAATTCAGTAACATAAATTC -ATTTATATTCATATACTGTCTTTATTATTTATTAAAATAAAAACGAGTAATCTATCATAAGCTCTTAATT -AGCTCTTATGGTTGATTACCCGTCATTTTTTCTTTATACGGTTATTCAAATATGCAATTTTTAATCTTTC -CTTACTTCTTTTCAAAAACTACCATATATTATTAGTCATGTTTGACTTTGACTATACGTGTGTATTTTAA -AAACTGCTCTGAATATTTCTCCTTAATTTCCTCTAAACTATCATATGTAATACCTACAATATGCCAATTA -GGATTGAAATAATAGAAAGAATCTTTTTGTCGTGACCATTTAATCATATTACCGTCTTTATTATAACGTG -GTAATGTTACCTCATAGCCTTCTAACACATTAATATACGTTTGGAAAATGTCTGTATCTATACGATTAAA -ATTATCAATAACTAAATAACTTTTATCCTTTTTAGGCATTAATTGAGTAATAAATCCTTCACGATAGTAT -AATGCCCCTGTTTCATTTGGTAAATACTTGCCATAAAGCATATCTTCTGAAAAATCAGGATGACCTGTTG -TTATAACAGGATTTGCATTCGCTTTTTGCAATAAGTCATTAGCCGCTTTTAAGCCTTCCTCTTTTCGATC -TACAACAAGTAAAATAAATGGCTTTAACGCTTCTTCTTTTTCACTTTCAAGCATATCTGGTTTTTGAACC -ATTTCAAATGGAGATTTCAATCCATTATTATCGCTCATTTCAATAATTGCATCATACTGTGCTTGTGACA -TACTTGCAATAGCCTGTTTTGCATTTTCTTGAAGGAAATATAAATTTTTCAATTTAGGATGCTTATTTAA -TGTACTTAATGTAATCGGCGTAATGTCTTTCTCATAAGACACTTCAATCACTGTACTATTTGTTCTACCA -GGAATTGGTGGTTTTTCATGAATATGCTTTGATACTTCTCCAATTCCAACGACAGATTGATTTTTCGTTC -GATTATAAAAAATAATATTGTCGCCTTCTTCTAACTGAGTATAAAAATGATAACCATTACGTTTAATACC -GTTGTACGTGTGCGTATAAATCGTATATTGGTTTCCAGGTTCAAATTCTTCAGTTTCAGCTAAAAAGAAA -TAACGTGGTATCTTAATTTCGCCTTTACCAAGACCACTTATTAAATCAAACTCTTCTGCAGTGATTTGGT -TGAACAATGTCTCTTTCATATTACTCATACGAAATTCCAAAGCTTCACTACGCTTTAAATAATCTGCTGT -TAATGGTTTCAATTGTTCATTAAAACGAAACTGTACACGTATTTTATTTTGTGCACCTGTTTCAACACTA -ATAATTTCACCACATCCAAGTAGTCCAGTATCCGTCTGAACTTGATAAAAGATGACTTGATCTCCTACTT -TAGCCTTTTTAAACGCTCTAAATCCTTGAGATGGATTAAAATGTGCGCCTGATTCAAATAAAGCTGTTTG -TCCTACTAACGGTTCATTATGATTCCAACGGTTATATCCACAATTCAACCAAAAATAATTCGTTTCTGCT -GTCATCTTAATACTCCTTAACCTGAATAAATTTTAGAAACACTATGAATTACATTCTTTTAATGTTTCTT -ATGCAGTTGGGCGCGTATACGATCAACTGTATCCCCTTTGTTCACTGCGATTTTAATCGCATTTCCTATA -ACATTGTAGCGCCTAGGACATTAATTTACGTCCCAGACCCTTATCGTTTTCACTTCTAAGTAAGTCGAAC -TATTTTGCTTTACAACAAGTGCGACTCTATATGCAGTTGGACACACACATACGAGCAACTGTATACCTTT -TAATCAGTTTTCTATATTTTATTTATTATATATGTCTTAATGATAAAAATTGTTACAAACAGTTTAACAT -ATTTAGCTACCTATTTTGCATATAAAAAACATGCTTGCATACACTATGCAATAAAAATTACAAAATTATA -TATGATACCACTATGCTTGCTTATCTCTATAGCGCCATTGATACGCATTTTTAAATATCTATACGCCTTT -AGAATTTTAGCATGTCTTAATTTTCATTAAATATTAATTACTTCATTTTATATACACCAACAAAAACCCC -CTCACTACTATGCAAGTGAGAGGTTATGTTGATGTGCTTTATTTTCAACAATGTCATTAACACAATCATA -TTTCTGCTGTTAATGCACTGTACTATATTCAAACGCGCTATCGACTATTAATTTGAAGCTACAAAGGTAC -CGCATAATGGCAGCACATTAATTAACAATGCGCTAAACTTTAATGAGGCGCTGATTTGCTTGTCTTTAAA -AGTCAACATAGCACTGATAATTCCTAAAATAGCCACTATACGTGGAATTGTCATGCTCGGATACTGCGGT -ATATGTAAGAAAGCACCAAGACCTGCTATCACACCACATACTAACGCAATATATAGAAATTGCTTCAAAT -CATTCACTCCTAAATTGTTATTACACTATTACACATAGCTAATCATCAATGTGAAATCACCTTCAAAGAC -ACTATCCAAATCTTCAGAAGTCAAAATAAAGTTTGTACCAGTAGTCAGTTTGAAAATTTCACCATCGACA -ATCATTTGCCCTTCACCTTCCAACACTGTAACTAAACAGAACTCTCTAGGCTTCATATAATTTAACGTGC -CAGAAATTTCCCATTTAACCAATGTAAAGAAATCATTCGATACAATGTGTGTACACTTATGGTTCTCAAT -AATTTCACTTTCAGGCAAAATATTAGGTAATGGTGCATTGTACTGAATAACGTCTAAAGCTTTTTCAATA -TTTAACGGTCTACCATTATATTGATTATCTTGACGATTGAAATCATAAAGTCTATATGTAATGTCTGACG -ATTGCATCGTTTCGTATGCTAGTATTCCTGAAGAAATAGTATGTACTGTTCCTGCTGGAATAAAATAGAA -TTCTCCAGGTTTTACTTTAATATATCTAAGTATCGACTCTATCGTTCCGTGTTGAACATGATTCGCAACT -TCTTCTCTAGACTCTGCTAATGTCCCTATAACTATTTCTGCATCTTCTTCAGCATCTATAATATACCAAC -ATTCAGATTTGCCATATTGCCCATTTTCATGTTCAAAAGCATAAGAATTATCAGGGTGCACATGAATAGA -AAGTGATTCTCTTGCATCCACTATTTTAGTTAGAAGCGGAAAATCTTTGCTTGGGAAATCACCAAACAAT -TCACGATGTTCTGACCAAATACGGTCTAATGTTTGACCTTGATATGGTCCATTAATAATCTCGCTCGTAC -CATTTGGATGTGCTGACACACACCAACATTCCCCAGTTGTATCATTGTCTAATTGATATCCAAACTCACT -TAGACGTTGACCGCCCCATAATTTTGTTTTTAAAATTGGTTGTAAAAATAATGGCATTGTTGCACCTCCA -TTGTGATTAAGTAAGCAATAGAACTCTGATGTTGTTGTTCCATTATATTTTGATTTTGTTCTCATTTATA -TCGTATTATAAACTTCCACATTTCAAATTAACTATTAGTGATTGTACCATATTTACTAACATTGCAGTAC -TGCCAATTAAAGCGCTTCACTTAAATTTACAGTACTTTAACATTTTTAAAATTTTATAGCATAGAGATTA -TATCTCTCTTACATTTGTACATATTTCTCTTTAAATTTACTCGCCCATTATACCAATTAATAAACAACTT -TAATAGTTGTGCCATACATTGTTCAAATTCATTGTAAAACACATAGACAATACGTACTTATTCATACTTA -TAATTCATCATTATCAAAAAAATAACGAGTTACGAAAAAGTAACCCGCTTCAAATCATATTTACTATCCT -TATTAATCCGTTTCATTTTCAAATTGAGTTAAAGCATCTTTAATGTCCTGGTCACCACTAATAATTTGAA -ACTCTTGGTGATTAAAATGATTGGATGTGACAATTTCTTTTAATACTGTCGCAACATCTTCTCTAGGAAT -TTCACCTTTACCTTCAAAATATTGTGCTGCTTCTATCTTTCCAGATCCTGCTGCATTTGTAAGTGCCCCT -GGATGTAAAATTGTATAATTCAAACCTGAACGTCTTAAATAGTCATCAGCGTAATGTTTAGCAATTGTAT -ATGGCTTTAAATCACCGCTATCATCAAAAGCCTGACGTCTCGAATCATATGTTGAAACCATGACATAGTG -TTTAATATTAGCCTCTTTACTCGCAATCATTGATTTAACAGCACCATCTAAATCGACAATAATTGTTTTA -TCTGCACCCGTATTCCCTCCAGAACCTACTGAAAAGATAACTTTATCGAATGGTTTAAACGTCTCAGTTA -AAGTCTCTATTGAATCATTTTCAACATCAACAAGAATTGCTTTCATACCTTGTGATTTTAACGCATTAAG -TTGATCGGATTGCCTAACACCTGCAGTAAATGGTACATTTTCTTTTGCTAATTGTTGCACTAGTAACGAA -CCTACACCGCCATTAGCACCTATAACCAAAATATTCATTTACAACACTCTCCTATTTATTATTCCCTATG -CCATACCACTTTATGAGATATGTAAAACTTGTTACAACTATAAAAATCAATTGACATACTACTGGGAACG -TATTAAATTAATATATGAACAAATATTCATATGAAAGGATTGTCATATAATGTCAGAACAATATTCAGAA -ATAAATACAGATACATTAGAACGCGTAACTGAAATCTTCAAGGCATTAGGCGATTACAATCGAATACGTA -TCATGGAATTGTTATCAGTCAGTGAAGCAAGTGTTGGTCACATTTCACATCAATTGAATTTATCTCAATC -AAATGTCTCGCACCAATTAAAATTACTTAAAAGTGTGCATCTTGTGAAAGCAAAACGACAAGGCCAATCA -ATGATTTATTCATTAGATGACATCCACGTAGCAACTATGTTAAAGCAAGCCATACATCACGCGAATCATC -CTAAAGAAAGTGGGTTATAATATGTCTCATTCACATCATCATCATGACCATATGCATAGTCATGTAACTA -CAAATAATAAGAAAGTATTGTTTATATCGTTTTTAATAATCGGTCTATATATGTTTATCGAAATCATCGG -CGGTCTCCTTGCTAACAGCTTGGCATTACTATCTGACGGTATCCATATGTTTAGCGACACATTCTCATTA -GGTGTTGCTTTAATCGCATTTATATATGCTGAAAAGAATGCCACAACTACAAAAACATTTGGTTATAAAC -GTTTCGAAGTACTCGCAGCGTTATTTAACGGTGTAACGCTTTTTGTAATAAGTATTTTAATTGTTTTTGA -AGCGATTAAACGTTTCTTTGTTCCTTCTGAAGTCCAATCTAAAGAAATGTTAATCATTAGTATTATTGGT -TTAATTGTCAATATCGTTGTTGCATTCTTTATGTTTAAAGGCGGCGACACTTCACACAATTTAAATATGC -GTGGTGCTTTTCTACATGTTATCGGAGACTTATTAGGTTCAGTTGGCGCCATTACTGCAGCTATTTTAAT -TTGGGCATTTGGATGGACAATCGCCGATCCTATCGCAAGTATTTTAGTTTCCGTTATTATTTTAAAAAGC -GCTTGGGGTATCACAAAATCTTCAATTAACATTTTAATGGAAGGCACACCAAGTGATGTTGATATAGATG -AAGTTATAGCTACTATTAAAAAGGATTCACGAATACAAAGTGTGCATGATTGCCATGTTTGGACAATTTC -AAATGATATGAATGCATTAAGTTGTCATGTTGTTGTAGACCATACATTGACAATGAAAGAATGTGAATTA -TTATTAGAAAACATTGAGCATGATTTATTACATTTAAATATTCACCATATGACTATTCAATTAGAAACGC -CTAATCACAAACATGATGAATCGATTATATGTTCAGGAACACATAGTCATTCACATAGCCACCATGCTCA -TCATCACGCGCATGTACATTAATAATTTTAACCTACTGCCATTGCATCGATTAAACTTTTCAATGGCAGT -AGGTTTTTTATGTCTTTATGGCGACTTATTTGGTCTTTGATGATGCAATGTTTATTAACAAATTTTCAAC -TATTATTTCTTACATTAGTCATATTTTTGACAATTTACTATTATAATTCTCTAACTTTAGTCACTTTAAT -TAATTTTTATTAGATATTAATATGAAAATAACGTGTTTTTTGTTATTGTATTTATATGAAGAAAAGGAGG -CACCACTTTGTTTACTTACTTTAAATCAGCATTTAAAAATGCTAAACCACAATTATTAATAACATTGATA -TATGCACTTATAGCATTTGCTGTAATTGCAGTTGTATATTTACTTGCTAATTTCCAGCTTGCTAAGTATG -TACAAACTATTGCAATTTATTCACAATTTGGGCAAAAACCACCAGTAGATGCATATTTAAAAGTTATCGC -TGTATTACTTATAGCAGCTGTAGTTTCACTGTTTGTTTTAGTTCAAATTTTTATCGGAATTACAAATGTT -ATGAAACGAGCAATGAGTCATGAAAAAGTAAAATTTACCGATTTATTTATTGCATTTAAAAAAGGTAATT -ATTTAAAGAGCGTTCTGATCGGCCTTGTATCTATAGCAATGATTATCGTTCTTTCACTTCTGACATCATT -ACTATACAAATTATTTTCTCCAGTATCAGAAATGATTATGAATTCAGTACAATCATCATATGCAGATAGT -ACACACCTGGTTGGTATTGCTATTACAACTCAAAGCATCATAATCATTGTTGTTTTATTGATTAAAGCAA -TTATTACTTGGTTATTGTTAATACCTATTTTCAACTTTATGACTAGTTTCGTTGAATCAACTAACGATAA -AGTAAAAACACACTTAGCTAATGGATTTAAAGCAATGAAAAATGGTCAAAAAACATTTTTCAAATTTTTC -ATTGGAATACTATTATTAAACTTAGTTATTATTTTATTTAAAACACCTGTGGGTTACTTGATTTCATTTA -ATACGCAATCACTCTCTCAAAGTGTTGCAGAAAATATCATAAGAGTTTATACAGTAATAACAATCATTTT -ATTCGTTGTTATTCATGCAGTCATTTTAATGGGTATCGTTCAATATTACTTAAAACGTGGTCAAAAAATT -ACTAAAGATAAAGTAAAAACAGCTGACAAGAATAAAAAAGTTGTCACTGAACCAAAAAATACAAAAGTAG -AAAATGATAAAGTGACAACATCTGTTGAAACGAAAACAGAAAAAGCACAAGATTCATTAAATGATAATAC -TACAAAAACAATGACTTCAGATAAACCAGAAGACAACCAACCAAAATAAATTTTAGAGAGTCTGGGACAT -AAATCCCTAAAAAAACAGCAGTAAGATAATTTTCAATTAGAAAATATCTTACTGCTGTTCTCTATTTATA -CAATACTTCGTATTGAATGGCTTCGCTTTCCTCGGGTGCCGTCTCAGCCTCGGTCTTCGACTGGCACTGC -TCCCTCAGGAGTCTCGCCATTAATACTACGTATTAACATGTAATTTTACTTTGAAATACTTTAAAAAAAT -AAGACACTTTCGTATAATTTAATAAATACCACTAAACTAAATTAACGAGGTGCCTTATGTATAAAAATTA -TAACATGACCCAACTTACACTACCAATAGAAACTTCTGTTAGAATTCCTCAAAATGATATTTCACGATAT -GTTAATGAAATTGTTGAAACGATACCTGATAGCGAATTCGATGAATTCAGACATCATCGTGGCGCAACAT -CCTATCATCCAAAAATGATGTTAAAAATTATCTTATATGCATACACTCAATCTGTATTTTCTGGTCGTAG -AATAGAGAAATTACTTCATGACAGTATTCGATTGATGTGGTTAGCTCAAAATCAAACACCTTCTTATAAA -ACTATTAATCGTTTTAGAGTAAATCCTAATACTGATGCATTAATTGAATCTTTATTTATTCAGTTTCATA -GTCAATGTTTAAAGCAAAATCTTATTGATGATAATTCAATTTTTATTGATGGTACAAAAGTAGAAGCTAA -TGCCAATAGGTATACATTTGTGTGGAAGAAAAGTATTCAAAATCACGAATCGAAATTGAACGAAAATTCA -AAAGCATTATATCGTGACTTAGTTGAAGAAAAAATAATACCAGAGATAAAAGAAGATGGAGATAGCGATT -TAACAATAGAAGAAATAGATTTAATTGGTAGTCATTTAGATAAAGAAATCGAAGATTTAAATCATTCTAT -TCAGAACGAAGATTGTACTCAAATTAGAAAACAGACCCGTAAAAAAAGAACTGAGATTAAGAAGTTCAAA -AAGAAATTTGATGATTATTCCGAAAGAAAAAGTAAATATGAAGAACAAAAATCGATTCTTAAAGATAGAA -ATAGCTTTTCTAAAACTGATCATGATGCAACTTTTATGAGAATGAAGGAAGACCATATGAAAAATGGCCA -ACTTAAGCCAGGATACAATTTACAAATAGCGACAAATTCTCAATTTGTTTTATCCTATGACCTATTTCAA -AACCCGACAGATACTAGAACTTTAATTCCATTTTTAACAATGATTCAAAATACCTTCGGTTATTTACCGG -AGTATATTGTTAGCTGATGCAGGTTATGGTAGTGAGCAAAACTATATGGCTATTATAGATGATTTTAATA -AAACGCCACTTATTACGTATGGTATGTTTATTAAAGATAAAACGAGAAAGTTTAAAAGTGACATTTTTAA -CACTCAAAACTGGAAATATGACGAACTTAATGATGAATTTATATGTCCTAATAACAAAAGAATAGGTTTT -AAAAGATATGCATACCGTAATGATAGATATGGTTTTAAACGTGACTTCAAACTATATGAATGCGATGACT -GTTCAGCATGTTCTTTGAGGCAACAATGCATGAAGCCAAATTCGAAATCCAATAAGAAAATCATGAAGAA -TTATAATTGGGAATACTTTAAAGCCCAAATTAATCAAAAGCTTTCTGAACCAGAAACGAAAAAAATCTAT -AGTCAAAGAAAAATTGATGTAGAGCCTGTTTTTGGATTTATGAAGGCTATTTTGGGTTTCACTCGAATGT -CAGTTCGAGGAATAAATAAAGTTAAACGAGAGCTAGGTTTTGTATTAATGGCACTTAATATAAGGAAAAT -AGTAGCTCGACGAGCTGTATATTATCAAATACATTTAAAAAAAGCTGATTTCTATCAAATAATTAATAGA -AATCAGCTTTTTTACATTGCCTAAGAACTTAATGTCCCAAGCTCTCTTATGCAGTTGATGCGCAGCATCC -AACTGTGTTCCTCTATTTTTCAACTTTAGTTGTTAGGGGCTTCTTTCTAAAATAACTAAGTGAATTATCT -ATATATGAAGAGGTCTCCAATACTTTTTATATAATTCGTGATTACATTCTATACTTTTAATTGTATTTTC -TGCTGTATGGAAAGTTGGTTTTATTAATTCTGATTATGTTCAGAACTACAATTCATAAGAAAAATGTGTT -AAAATATATTTGTAGTAAGTAGAAGCAAAAGATGAAAATCTTTAACTCTTGAAACACAAAAAGGGCAACA -CTCGGAAACATGTTACCCTAATGAGCCCGTTAAAAAGACGGTGACCTTATATTTTATTTAAAAATAGCCT -TCAAAATGCCGGTCAAAGCGAATAGAAGGTTATTTTTTATGGTCTTGAGTACTAATCAATACTAAACCAA -TGATTGTTAATACAATCATCAGCATTTCAAAATCAGACATGCTAGTCCTTTCTAGGAGTAACAACTATAA -CCATAGGCATCACCCCTTTATTAAGAGATTAGCCACCATCTATCCAACTTGCTCAATAAATATTATAACA -TGCACACTTTTAAACAGTAATTCATAGTATAAGTTTTTTCATTTCTTAATCAACTCGATAAACAGTTGAG -TGACATACCCTTGTCTAACTAGCTATTTCTTCCCCTGTTATCGTTTGTTCATCATATAAAAATTTAATTT -CTCATTTTTTATTCTCTGATAAAGAAGAGCACCAACCTTTTCGGCTGATATGCTCCCTTCAAAATAGACA -TTGAAAAATGAAAACTTTGAAAGAGAAATCGTCAGTCTATTATTGATAAGTATTATCCTATCCTCGAAAA -ATTACTTTCAGACACAAGTGAACAAAAATTTTACTATAAGCGTATACTTTGGCAATATTCGAAGGAAAAA -CATGGATTAACCTATGCATATTATACATTTAGAGCTTATATACTTAAACATGATGAATTTACTCCTTATA -TTATGAAATGTTATCAATAGATGTCGCCTAAAGATACAACAAGATTCGAGACAAAACCTGATCATCAAGC -ACAGTTTGACTGGAAAGAAAGCATTAACTTTAAAACGAAAGATAATCAAAGGATTCCACTATATATAGGT -GTGCTACTACTTTATTATTCTCGTTTTATAATCATGTATGACAATGAGTAAATCAAGTGATGCCTTATTT -AATTCATTAACACAATCGTTTGAGCTAATAGAAGGTGTATATAATGAACTTGTAACGGATAACTTGAAAA -TAGTCATGTATAAGCCAAGAAAAGAAAGTACAAGTGGTCGAATAAATCGTAGATTTAAATAATTCGCTGA -TGGTTTTAAATTTCAAGTAAAACCTTGTATTTCCGGCCTCCCTAGAAAAAGATAAAGTTGAATCAATAAC -AAAAATATTAGATGAAATTAATGCTTACCAAGACGAATTGCATTTGGAAGAGATTCCTAAGTTTTTTTAA -TCTTAATGAACGATTTAACTACTAAGTTCATACTAGTACAGGTAAATTGCCTATTACTGCCTAAGAGAAA -GAAAAAATTTTCTTACAACCACTACAGAATGTGAATGTAAAAAACTCATATAAAGTGAAACATATCTTAC -TTATGGAATGAAATGTTTGATTATCCCAAAATCACAAATGCGATTTTGGAGTTGTTAGGGGCTCTAACGC -AAATACACTCCTACTTAAAATAACGGTAGTTGTTATAGTATACTTAAATGCATAAACCATATAAAAGGTG -ATGCTAATATGACATACGGTTCAATTGTAGCTATACTCTGTGCCCTATTTGTGATTTTCTTCATTCCATA -TATGGAGAAGAAAGACAAAAAGAAGAAATAACACTAGTATCTGGATTACTAGCATACAAAGGAGCAGTAA -GACATTTTCTAATAGAAAATAACTTTACTGCTCCTTTGTAAATTACTCTTCAACTATTGTAAATTAAATA -ATAAATAACTGCCGATGTTATTAATCAGCTAAAAAATGCTTTGCTAAATATTTTGCTGCGCCATCCTCTT -CATTCGTATAAGCCGTTACATCTGAAGTTAATGCTTGGATTTCAGGACGTGCATTTTTCATAGCGACTGT -GTAATGGCCAAATTCAAACATTGCTCTATCATTGTCGCTATCTCCAATAACTAACGTTTCTTTTTGATTG -ATGCCAAAATGTTCAATCATTTCTTTAATGCCTGTACCTTTATCAGTTTGATAAGCCATTGTTTCCGCAT -TAAATCTTGATGAATTTGAAACACTAATCTGTAGTTGCACATGATTTTGCTTTAATTCATCTCTAAATGC -TGTTATTTTTTCTAAATTAGAACTGAACAGATAAATTTTTGAATATTCACCTTCAGGAAACTTAGTTACC -CAATCTATCTTACCAGCAAGCGCATCTTGTCTTGAAGACCATTCACTATGACTTACGCCATTAATAGGAT -CTTGACTACGAATCATATCTCGCATCCATGTTTCATCTTCTTTTAAAGAAACTCTATTACCTTCAAAAGG -AAATACCTCATAATAAATTTGTTGGCGCTTAGCTAAATTAATAATTTGTTGCACTTGAGCCAATGATAAA -CCATGTTTGAAGATAATTTCTCCATCTACTTCTCCAATGGTTCCATTTGAACTAATGATGCCATTTACCG -CAAAATCTTCAGGTACAAGTTGATGTATTTCAGAATGCGAACGTCCAGTCGCTAAAAATACTTTATATCC -TTTCTCTCTCAATCGATTAATGACATCTTTCGTATACGTTGATGCTTGATTATTTTCATGTAAAATTGTA -CCATCCATGTCCAAAAATATTGCTTTTACGTTATCCATATTGCCCTCCACTGTCAATTTTAGCTTAATTA -AATTTTGTCATTATTAGTTAGTATTTGCAAAATATTTACTCTAACATCGCCATAGAAAATCGATTATTCC -ATCTTTGAACTGCTACATTTTTCTGGAAAAATCGTGACATGTTTTCAGATGTCAAAATATCATCTATTAA -CCCTTGTTGTACACTTTCCCCATCTTTTAATAGCAAAATTTTAGTAAAGTTACCAGTAATTTCTTCAATA -AAGTGCGTCACATAAATCATCGCAAGCGTTGGATATGAATCTGACAATGAGTCAAGTATACTTAACAACG -ATTCTCGTGCAATAAAGTCTAAACCAGCTGCTGGCTCATCTAAAATTAAAACCTGGGGTTGCCCCATTAA -AGCTCGCGCAATCATCACTCGTTGTTTTTCACCGGTAGATAAATAACCAATATATTGTTGTGCTTTAGCA -GACATTCCAACTAATTTAAGTAATTGATGTGCTTCATTACGTACCTCATCATCAATATCTTGATAAACAC -CAATTGATTTAAAAGCACCGCTTATCACTACATCGATTACTCTTTCACCCTCTTGAAACTTTTCCAGTAA -ACTATGAGATACAAAACCTATATGTTGTCGTACAGTTTCTGTAGAATACCCTACCTTGCCGGGCATTTTA -CCAAATAGATTAACATAGCCAGTTGTCGCAGGCTCATACGCATTTAAAATATTTAGAAGTGTTGTCTTGC -CAGCACCATTTAAACCATATAGAATCCATTTATCACCTTCATTAATTTGCCAAGAAATATTTTTTAAAAT -TGTTTTTCCTTGCTTCATTCGCCCAACTTGATCTAATTGAATTAACATGCGATGCCACCCCTTTATTGCT -ACTCCATACTTCTCATAAAATCATATTAACATATCACTCTTAATTGTCAGACTATTTAAATAAATAAACT -ACTTCATTTTTACGCATTTCTGCCGAATTAAGATGAAGTAAACGCTAAGTCGACCTAAAAAAGCACCCTT -TTAGTCGATTAATCTAAAAGGGTGCCATATACTTTAATTTTAATACATGATTGATTCTAAAAAAGTGAAT -TATTCCACAGTAACTGATTTAGCAAGGTTACGTGGTTTATCAACATCTAAATCTCTGTGTAATGCTGCAT -AGTATGAAATTAATTGTAATGTAACAACTGATACTAATGGCGTTAATAATTCATGTACATGAGGAATGAC -ATAAGTGTCGCCTTCTTTTTCAAGGCCCTCCATAGAAATAATACATGGGTGTGCTCCACGTGCTACTACC -TCTTTAACATTACCACGAATTGATAAATTAACTTTCTCTTGTGTTGCTAAACCTACAACTGGTGTACCTT -CTTCGATTAAGGCAATTGTACCGTGTTTAAGTTCTCCACCTGCAAAACCTTCAGCTTGAATGTAAGAGAT -TTCTTTAAGTTTTAACGCACCTTCTAAACTTACGTTATAGTCAATAGTACGTCCGATAAAGAATGCATTG -CGTGTTGTTTCTAAGAAATCTGTAGCAATTTGTTCCATGATTGGTGCATCGTCAACAATCGCTTCAATTG -CTGTTGTTACTTTTGCTAATTCTCTCAATAAATCAATATCTGCTTCACGACCGTGCTCTTTTGCAACGAT -TTGAGACAAGATTGATAATACTGCAATTTGTGCAGTATATGCTTTTGTAGATGCAACTGCGATTTCAGGA -CCCGCGTGTAATAACAATGTGTGGTCTGCTTCACGTGATAAAGTTGAACCTGCAACATTAGTGATTGTTA -ATGATTTATGACCTAATTTATTAGTTTCAACTAATACGGCGCGGCTATCTGCAGTTTCACCTGATTGAGA -AATATAAACGAACAAAGGTTTTTCAGATAATAATGGCATGTTGTAGACAAACTCAGATGCAACGTGTACT -TCAGTTGGTACGCCAGCCCATTTTTCTAAAAATTCTTTACCTACTAAACCTGCATGGTAGCTTGTACCTG -CTGCAATAACGTAAATGCGGTCTGCTTCTTTAACATCATTAATGATGTCTTGATCAATTTTCAAGTTACC -TTCTGCATCTTGATATTCTTGAATAATACGACGCATTACTGCTGGTTGTTCATGAATTTCTTTTAACATG -TAGTGTGCATAAACACCTTTTTCAGCATCTGATGCATCAATTTCAGCAATATATGAATCACGTTCTACAA -CGTTTCCATCTGCATCTTTAATAATAACTTCATCTTTTTTAACAATAACGATTTCATGGTCATGGATTTC -TTTATATTCGCTTGTCACTTGTAACATTGCAAGTGCGTCTGATGCGATAACATTGAAACCTTCACCAACA -CCTAATAATAATGGTGATTTATTTTTAGCAACATAGATTGTGTCTTTGTCTTCAGCATCTAATAAACCTA -ATGCATATGAACCATGTAATAATGACACAACTTTTGTAAATGCTTCCTCAGTTGAAAGTCCTTGATTTGA -AAAGTATTCAACTAATTGAACGATAACTTCTGTATCTGTTTCTGAAATGAATGATACACCTTGTAAGTAT -TCACCTTTTAACTCTTCATAGTTTTCAATAACACCGTTATGAACTAGAGTAAAACGGCCATTTGATGATT -GATGTGGATGAGAGTTTTCATGATTCGGTACACCGTGTGTTGCCCAACGTGTGTGACCGATTCCAACAGG -ACCATCAAAATCGCTACTATCAGCAACTTTACGTAATTCTGCAATACGACCTTTTTCTTTGAATACAGTT -GTATTATCATCATTTACTACTGCGATACCTGCAGAGTCATAACCTCTGTATTCTAATTTTTCTAAACCTT -TTAATAATAATTCTTTGGCATTATCATAGCCAATATAACCAACAATTCCACACATAACGACATTTTCCTC -CATATTGGAATAGTACGCGTAAATTATGATTTATTGCCGATAATTTAGATTGACAATCTGCTTTCATAAT -ATAAATAGGAACATGCTATCATCGCATTCATCCATAACAAATTAAGCATAGTTATTTTTACAACTATGCA -AATTGCTCACACTGTACTTTCCATATTAATATTTTTTATATTCAATTTCTGGCGATCTTATTAACTTTGT -CCATTAAGTCACCCTAATGTTTTACTTAATAAGCTAACGAATGAGCCACATCCGGGATAGCATCCGCCGA -TCTATTCGATCACTATCCTCCTCGTCTACAAATACATATTTTGCACTCTATAAAGGCCACTCATATATTA -ACCTTTAATCTTCAAATACAAATATTTATTTGCACAGGCGCTTTAACTGTACTGCCGAACTTTCCCCCTT -TCCATTAATCATTATTGTACAACGGTGTTGTTTTGTTTTGCAAATATTTTCACAATAAAATTTTAAAAAT -CCTAAAACAATTTTTTTGTTTTACTTTTTCAAAATATCTACGCAGTCACATTGATGACACTTTATTTAAT -TTTGTCACATTTATTTTGACAAAGTTGATTTTTGTTTATATTGAGGATTGCGTTATGGCTCTTTACACTA -AAGATAGTCACATACATTAAAAAAGAGGTGTAAATATGTCGCAAACTGAAGAGAAAAAAGGAATTGGTCG -TCGCGTTCAAGCATTCGGATCATTTTTGAGTAGTATGATTATGCCAAACATTGGTGCATTCATCGCTTGG -GGTTTCATCGCGGCCATTTTTATAGATAATGGTTGGTTCCCGAATAAAGATTTAGCTACGTTGGCTGGTC -CAATGATTACTTATTTAATCCCACTATTGATTGCATTTAGTGGCGGTCGTTTAATTTATGATTTACGTGG -TGGTATTATCGCTGCAACGGCAACTATGGGGGTCATCGTTGCATTACCTGATACACCAATGTTACTTGGA -GCTATGATTATGGGTCCTTTAGTTGGTTGGTTAATGAAAAAGACTGACCAATTGATCCAACCTAGAACAC -CACAAGGTTTTGAAATGCTATTTAATAATTTTTCAGCTGGTATTTTAGGATTTATCATGACAATTGCAGG -ATTTAAAATTTTAGCACCACTTATGAAATTTATCATGCATATTTTATCAGTGGCAGTTGAAGCATTAGTA -CATGCACACCTACTTCCACTTGTAAGTATTTTAGTAGAGCCTGCAAAAATTGTATTTTTAAACAATGCGA -TTAACCATGGTGTATTCACACCGCTTGGTGCAGATCAAGCTGCAAAAGCTGGTCAATCTATTTTATACAC -AATTGAATCTAACCCTGGACCAGGTTTAGGAATTTTACTTGCATATATGATTTTTGGGAAAGGTACTGCA -AAAGCAACTTCATATGGTGCTGGAATTATCCACTTCTTCGGTGGTATTCATGAAATTTATTTCCCATATG -TATTAATGCGTCCTTTATTATTCATCGCTGTTATTTTAGGCGGAATGACTGGTGTTGCAACTTATCAAGC -AACAGGATTTGGATTTAAAAGTCCCGCGTCACCTGGTTCATTTATAGTTTACTGTTTAAATGCACCTAGA -GGTGAATTCTTGCACATGTTACTCGGTGTCTTCCTTGCTACACTTGTATCATTTGTCGTAGCAGCTTTAA -TTATGAAGTTCACTAAAGAACCTAAACAAGATTTAGAAGCTGCAACTGCTCAAATGGAAACTACTAAAGG -TAAAAAATCTAGTGTTGCATCTAAGTTAGTATCTTCTGATAAAAATGTTAATACAGAAGAAAATGCTAGT -GGTAATGTTAGTGAAACATCTTCATTAGATGATGATCCTGAAGCGCTATTGGATAATTACAACACTGAAG -ATGTTGATGCACACAATTACAATAATATAAATCATGTTATTTTTGCCTGCGATGCGGGTATGGGTTCTAG -TGCAATGGGTGCAAGCATGTTACGTAATAAATTTAAAAAAGCGGGCATTAATGATATTACAGTTACAAAT -ACTGCAATTAATCAATTGCCAAAAGATGCTCAATTAGTTATCACTCAAAAAAAACTAACTGATCGTGCAA -TTAAACAAACACCAAATGCCATCCATATTTCAGTGGATAATTTCCTTAATTCACCAAGATATGAAGAACT -TTTAAATAATCTAAAAAAAGATGATCAAGCATAATAATTAAATAAATTAAAAAATGGAGGATACCGCCAT -GTTATTGAGTACACGTGAAAAAGAAATGATAGCCCTATTGATTAAGTACCACGGTCAATATATCACTATA -CACGACATTGCTCAGCAACTTGCGGTGTCCTCTCGTACTATTCACCGTGAATTAAAAGGTGTTGAAGCAT -ATTTAACTTCATTTTCATTAACTTTAGAACGCGCAAACAAAAAAGGGCTACGCATTACTGGCGCAGATTC -TGATTTAAACGATTTGAAGCAATCGATTGCACAACATCAAACCATTGACTTATCTGTTGAAGAGCAGAAA -GTAATTATTATATACGCTTTGATACAAGCCAAGGAGCCAGTTAAACAATATAGTTTAGCGCAAGAAATTG -GCGTTTCTGTCCAGACTTTAGCAAAGATGTTAGATGATTTAGAGCTCGATTTAAATAAGTACCAACTATC -TTTATCTCGAAAGCGTGGCGAAGGTATTTACTTGGTAGGTACTGAATCAAAGAAACGTGAATTTTTAAGT -CAATTAATGGTGAATAACTTAAATAGTACTAGCGTTTATTCAGTAATTGAAAATCATTTTGTCTTTCATT -CATTAAATCAAATCCACAAAGACTTTGTTGACTTAGAGCGTATTTTTAATGTTGAAAGACTATTAATGGA -CTACCTAAGTGCCTTACCCTACCAACTTACCGAATCAAGTTATTTAACTTTAACTGTCCATATCGTGCTA -TCCATTTCACGTATAAAAAATGGAGAGTATGTCGCATTAAACGATGATATTTATGATTCTGTACAAAACA -CATTTGAACACAAAGTAGCAAGCGAACTTGCTGATAAACTTGGTCAAATATATGACGTCACGTTTAATCT -GGCAGAAATTGCTTTCATTACTATCCATTTACGTGGTGCTAAACGAAAAAATCTTAATGATACATCATTA -AATAATCGTTGTGAAGAAAACAAAATTAAAGCGTTTGTTAAAAAAGTAGAAATGATTTCAGGTATGACAT -TTGCAGATTTGGATACTTTAGTAGATGGACTGACGCTACACCTTAATCCTGCAATCAATCGTTTGCAAGC -TAATATCGAGACCTATAATCCGTTAACAGACATGATTAAGTTCAAATATCCAAGACTGTTTGAAAATGTA -AGATTAGCTTTAAATGATTGTTGGCCTGATTTGATTTTTCCAGAGAGTGAAATTGCTTTTATAGTTTTAC -ACTTTGGTGGCTCGATTAAAAACCAAGGTAATCGATTTTTAAACATATTAGTCGTTTGCAGCAGTGGTAT -GGGAACTAGCCGTCTATTATCAACTCGTCTAGAACAAGTTTTTAGTGAGATTGAGCGTATTACACAAGCA -TCAGTCAGCGATTTGAAGTCACTAGATTTAAGTCAATATGATGGCATTATTTCTACTGTGAATTTAGACA -TAGACTCCCCCTATTTAACGGTAAACCCATTATTACCAGATAGTGATATCAGTTATGTCGCACAGTTTTT -AAATACAAAGTCTACGTTCCAAGAGACGCGCGATAAATCATCAAACATGATTGATAAGGATGATGTTCAT -ATTGAAACGAAAGATATTGATGGCAACACATCTTTTGAAAATGAACAAACTTCATACTTAACTTCAGTTT -TCGAAAAACATTTAAGTGACGAAAAATCAGAACAATTAATGCATCATATGCGTTCGGGTTTAACTTTGCT -TGATTCAGTGAAAATAGTTAGTACCGAAGTTAAACAGTGGCAAACATATATCGCAGATTATCTATATCAA -TGCGATGTAATAAACGATCCAACGTCATTCGCTGAACTACTAGAGCAACGATTGATTGACAATCCAGGAT -GGATATTAAGTCCATATCCTGTTGCAATACCACACCTAAGAGACAATATGATTAAACACCCTATGATTCT -AATCACAGTTTTAGAAGAACCGTTAACATTGCCTAGTATTCAAAATGACAATCAAACAATTAAATATATG -ATTTCCATGTTTATTCCTGACAATGATTTTATGGCATCACTGATAAGTGACTTGTCCGAATTTTTAAGTT -TGAAATTAGAATCTATTGATACTTTTATGGAAAATCCACAGGAACTTGAAACATTATTAAGAAACAAATT -TTTAGAACGAATTAAAAAACAATTTATTTAGGAGTGTACAAAATGAGCGAATTATTTAGTAATGACAATA -TCTTTTTAAATGTAAATGTTAACAGCCAAAATGAAGCAATTGAAAAAGCAGGTAAAGCCTTAGTTGATAG -TGGTGCTGTAACAGATGCTTATATTCAAGCAATGAAAGATCGTGAGCAAGTCGTATCAACATTTATGGGA -AATGGCTTAGCAATTCCTCATGGCACAGATGAAGCTAAAACAAATGTGATTCACTCAGGTTTAACATTAT -TACAAATCCCTGAAGGCGTTGACTGGGATGGCGAAGTAGTTAAAGTTGTCGTGGGAATCGCTGGTAAAGA -TGGCGAACATTTAGACTTGTTATCTAAAATTGCAATTACATTTAGCGAAGAAGGAAATGTAGACCGTATC -GTTCAAGCAAAATCTGCAGAAGAAATTAAACAAGTTTTCGAGGAGGCAGATGCATAATGAAAGCAGTTCA -TTTTGGTGCTGGTAATATAGGTCGTGGATTTATTGGATATATTCTAGCAGATAACAATGTAAAAGTAACA -TTTGCAGATGTAAATGAAGAAATCATTAATGCATTAGCTACTGGACATCAATATGATGTTATTTTAGCTG -ATGAGTCTAAAACAACAACACGTGTAAATAATGTTGCAGCGATTAACTCAATGCAACCTTCTGAAGAATT -GAAACAAGCAATTTTAGAAGCAGATATTATTACAACAGCTGTTGGTGTTAATATACTACCTATTATTGCT -AAATCTTTTGCGCCTTTCTTAAAAGAAAAAACAAACCATGTTAATATTGTTGCTTGTGAGAATGCTATTA -TGGCAACTGATACATTGAAAAAAGCGGTACTTGATATTACTGGACCTCTTGGTAACAATATTCATTTTGC -TAACTCAGCAGTTGATAGAATTGTACCATTACAAAAGAATGAAAATATATTAGACGTTATGGTTGAGCCA -TTTTATGAATGGGTTGTTGAAAAAGATGCATGGTATGGTCCAGAACTAAACCATATTAAATATGTTGATG -ATTTAACACCATATATTGAGCGTAAATTATTAACTGTGAATACAGGACATGCATATTTAGCGTATGCTGG -AAAATTTGCTGGTAAAGCTACAGTTTTAGACGCTGTAAAAGATAGTTCAATTGAAGCTGGCTTACGCCGT -GTTTTAGCTGAAACAAGTCAATATATTACTAATGAATTTGATTTTACTGAAGCGGAACAAGCTGGTTATG -TTGAAAAAATAATAGACCGTTTCAACAATTCTTATTTATCTGATGAAGTAACACGTGTCGGACGAGGTAC -GTTACGTAAAATTGGCCCTAAAGATAGAATTATAAAACCATTAGCATATCTTTATAATAAAGATTTAGAA -CGCACTGGTTTATTAAATACAGCTGCATTGTTATTGAAGTATGATGATACAGCAGACCAAGAAACTGTTG -AGAAAAATAATTACATTAAAGAACACGGTTTAAAAGCGTTCTTAAGCGAATATGCTAAAGTTGACGATGG -CTTAGCCGATGAAATAATTGAAGCTTACAATTCACTTTCATAATTTATTGAGCTTTGTTTGAAACTATAA -TTTTCCAACGTTATTCGTTAACAATCAGTAATAATGTAGTAGTTCCGTTGAATTAACAATATTACATTTC -TGAACATAAAAAATACTCCCTTCAACATAGACACTTAACTTGTGTTATGTATGAAAGGAGTATTTTTGCG -TTAATAATTTGTTTTATTTTCGAGCCACAGCCACCTATTCAATGGCTATTGGTCATTACTAAAACAAATT -CATATTAACTGTTAGACTTGGTTACTTAGTAAGGAATATTTCCCTATGAAATAACTAGATGTTCACATTC -TTAAATAAATTTTATTCTTCAGTTTGTTGGTCTTTCTTAGTGAATCTTCTAATTAAGAATGCCATACCTG -CACCTAGAGCTAATTCAACATATGGTAAATCGTCATTATGTGACATACCAGTATCTGGTAAAGTTTTAGC -TTGTTGTTTTGCTTTATTTTCTTTACCTTGTTGCGCTGATGTTGCCTTAGCTTGGTGTTTGTCAGTGTTA -GTTACTTTAAGCATATCTTGATTAGCACTATTGCTTCCATTTGAAACTGTAGCTGGAGATGCATTGGCAC -CGTCGTTTTGCGTAGCTTTATTGTTTACATCTGCAGTTGCACCAATTGCTGCTTGATTATCTTTTTTATC -TGATGTTGCCATGTCAGCCTTTTGACTATCCTCAGTCGAAGTCGCTTTATCTTTTGCTTCTGACGGTTTA -GATGTTGATGGTTTATTCGATACATCAGTATCAACGTTGCCTTCAGATTTATCTGCTTCGTTAGATGCAA -CGTTAGTTTCAGACTTAAGTTGTCCAGCATCTGTTTGATTTGTCGTACTTTCTTTTTTATCTTTCTCTGT -ATTAGAAGGTACTTTTGGTTCTGTAATGTCTGCTGAAGGCAATGTTTCAGTTGTTGATTCAACCATACTT -TGATTTGTTGAATCTCTACCATCTTTTTCATCCTTAGCTTTATTTTCAGATTTTGGTTGTGCAACCTTGC -CATTAGTTGATTGAGATTCAGCACTATTATTTACTTCAGCATTTTGTTTTGAATCATTTACAGATGCATT -ATCTTTGCTATCAGCAGATGATGCTGCACCTGTGCTCGCATTTGTTGTTGGAACCGTTGCTGTTGATCCT -GTTGGTGCGTTCTCGTTTGTTGCAGTTGTACTATTGTTATTTCTTGCGCTTTCTGCTGGCGTTGCATTAT -CTGTTTCTGTTGCAGATTTATCAGTTGTGCCGTTATTAGTTGATTCTACTTCTGATTTATCACTTGTACC -ATTACCCGTTGCCGAATTGTCTGTTGATGTTGCTGTTGTTCCACCAGTTGCCGCATCATTATGATTATTT -GTCGTTGTTGAAGACGTATCTGCATTGGCATTATCTGTTGACTCAGTTACATTAGGTTGTCCAGTATTTT -CTGGTGTTGCATTAGCATTTGAATTTGCTGTTGCATCATTATTATCTGAACCACTATTAGTATCATTAGC -ATTTGGATCCTTCTGAGGTACAATCGCTTCAATTGCAGGTATCGTTACATTTTGTAATTCATCAACTTCT -GTATTTGTTTGCGTTTTATCTAATTTATCAGCAAATCTGTCAAAATATCTACCTAAATCTGTACGTGCAA -TTTCTTTCGCCGATGCATCTGCATTTTCAATTATTTCTATTTGCTTGTTAACCACTTCTCTAATTGCTTC -CAAAGCATTTTTCTTAACTACTGGATTAATACGTTGTGCTTTAAGTTGTTCAAGCGCACTATTTTTGACA -GTAGCGATTTCTGCATTTGTAGTTTGATCAGAAATATCTTCAGTTGCTTTTGATAAAATGTCTTCTAATG -CATTCGTAAACGCTTCTTTTTCTTCAGTTGTAGCATCAGCGTCGACATTTACTCCTGCTTCAATCTGGTC -TAGTGCAGTTTCTAATTCTTCGATAGCTTTTTGTTTTTCTGTTGAGTCAATTTGAATGTTATCAAACGCC -TCAAGTCCTTGAGCTTTCGCTTTTTCAACTTCAGCAGTTGTTGTTGCATCAGTAATACCTTGTTTAGCTT -GATCTGTAATTTGTTTAATCGTTGCTAATGCAGCCGTTTTTTCTTCAGCAGTTAACTGGTCACTTTGGTC -TATAGACTCTTTCGTTTCCTGTGCTTTAGCATCAATCGCTTGGTTTGCTTTAGGTTTAACAGTAGCATCT -ACTTGAACTGCATCAATTGTCGCTTTACCTTGTGTTAATGCATCATCAACATCACTATTATCCACACCAT -TATTAATGCTTTCTAATGCAGTTTGAACATTTTGGTCAACTTGCTTAATTGCTTGTTGTTTTTCATCTTG -TGTTGCATTAGTGTCAGCTAAAATATTATTTTTCTTCTGATCTGCATAGGCATATAAATCTGTTGTAGCC -GATTCTTTTTTACCGGTTGGAATTGTGTAATCGTTAATATTATCTAAGTCATTATGAATTTGAACTTCAA -TGTCATCTTTAGAAGTAGCTTGATTAACATTTTGATCCGCTGTTTGTTTTAATTCAGCAAGTTTTTGTTT -CGCTTCAGCAATTTCACTTGAAGTCGATGCGTTAGAGTTATCCGCTTCGTTCACTTTAGCGTTATATGCA -TCTGCAATTTTAGCTAAAGCATCTTTTTTGTACTCACTAAATGTTTTAACTGCATTAATTTTAGCTTTCC -CTTCTTTAACCGCATTATCAACATATTCATTTGTTGATGATTGATCAATATTTGTTTTCGCTTGATTTAA -CGCTGCATCAACTTCTTGTTTTGCATCATTAATTTCTTGTTGTGACGCATTTGGTGTTTGTTCAATTTGT -GTTTTCTTATCAGCTGCAGCTTGATCTAATTCTGTTTTACCTGCTGGTTTCTTAACAGGATTTGCATGAA -GTTGTTGAACTTTTTGTACTGCTGTATCTTTAGCAGTAGTTACATCACCTGTAGTAGTTGCTGCATTAAT -ATTATTTAAACCTTCTTCATATGCTGCTCTAACTGGTTCTATATCTTTTCCTTTTTCTTCATTTGTAGTC -GTATTATCATTAAGGATTTCAGTTATTTTATTTTGCATTTCATTTAGCAATTCCGCTCTTGCATTCGTTT -TAACATCTGTTGATGCTTGAATTGGGTCAATTGCTTGAATTGCATTATCTTTTGCAGTGTTTACATCATC -GATTGACTTTGCATTTTCAATATTTTGATTACCTTGCGTTAATTGTGCATCTACTTGTTGATTTGCTTGT -TCTTTTTCTTCAGTAGTCGCATCTGCAGTTTGTGCAATAAGTGCTTTTTGTTCCTTTGCTTTTGTTGCTA -ATTCATCTTTAGCTACATCTTTAATTGTCGTATCAGCAGTAATACCTTGAATGTCAGCAACTGCTTGATC -TTTAATTTGTGTAACATCGTTAGTCGTTTGCGCATTTAAAATATCTTGATATGCTTTTTCTTTAGCTTTA -GAAACTAAATCTTTTGCTGCATTTTTCTCTTCAGTCGTTGCACCTGTAGTATTATCAATTGCTTGATTTT -GAGTTGTCACAGCTTGATCTACTTCATTTTTCGCATTCGATTTAACTGCTGTTGCTGGTTGTGTACTTTG -AATCGAATTTTTACCTGCATCTTTAGCAGTGTCTACACCATTATTGTCAGTTGCAGCTGTAATGTTATTT -TTCGCGTCTGTAACTGCTGTTGCTAGTTGTTGAATCGCCGCTTCTTTTTCTTCATTTGTTGCGTTTTGAT -CGTTATTAATAACCGCTGTTTGTGCTGCTTGTAATTGATCGATCTCATCTTTCGCTGCTTGTTTCTTCAT -AACTTTTGGTGTTACAGCGTTAATTGCCGCTTCTGCATTAGTTTTTGCCTCATCTACTTCTGCATTTGTT -GTAGCTGCTGTGATGGCTTGATTTGCTTTAGCATTTTCAGTATTAGCTTCAGTTTCTGCTGCTTGTTTCT -CTTCATCTGTTGCATCTGGCGTAGCTTGAATTGCTTGTAACTTGTTATTTAATATTGTAGTGATTTCATT -ACGTGCTGTAGCTTTTTTATTAACAGTTGGTGTCACTTGATCAATACTAGCTTCACCTGTTGTCTTCGCT -TGATCAACTTCATTTTGACTATTAGCAGTCTCAATGTGGTTGTTTGCTTCTGTTACTGCATTATCTACGT -TCGCATTAGCCGCTGCAATTTCTTCTGCTGTAATCTCTTGCGTTTGAGCAATGGCTGCTTTACGTTCATT -CGCTTTCGTAGCAATGGCTTGTTTCGCATCATCTTTCGTTGTTGTCGCTGGTTGAATTGCTTCAATTTTA -GCAATTTCTGCATTCTTAGCCGCTTCAACTTCTGCATTTGAATGTGCACCATCTATTGCTGTATCAGCTG -TCGTTTTTTCTGTTTGAACTTGTTGTTTCGCTGCTGTTTTCTCTTCTGTTGTTGCACCGTTATTAGCATC -AATTGCTGTTTCTTGCGCTTGTACTTTATCTGCAATTGCTTGTTTCGCTTGAGGTTTAACATTTGCATCA -GGTGTAATGGCTGCGATTGTAGCTTCATTTGTAGTTTTTGCATTATCCACATCATTGTTTGCTGCGGCAT -TATCAATATCAGCGTTTGCATTAACTACTGCTTGATCCACTTTATCTTTCGCTGCTTGTTGTTCTTCAGT -AGTCGAATCATTCATTGCTTCGATTGCAGTTTTACGTTCACTTGCTTTTTGAGCGATTTCTGCTTTAGCA -TCCGATTTCTTAGTAGTGGCAGCTTGAACTTGATTAATTGCAGCAATACCATTGTCTTTAGCTGTCGTTA -CAGCACTGTTTGTATTTGCAGCATCAAGATTCGTTCTTGCCTCTTGTTTTTTTGCATCTAATTGCGTATA -TGCCGCTTCTTTTTCTTCTGTTGTTGAAGTGTTACTATTTTGGATTTCTTGTTTACGTGTATTATATGCG -TTGTCTACTTCTCTATCCGCTGCAGGTTTAACTCTAGCTTGTGTTTGAATGGCATTGATTTTATCTAATA -CTTTTGCTTTAGTATCAGCCACTTCCTGTTTTGATTTAACAACTTGGATGTCATGTAAACCTTCTGTTTG -AGCTGCATCTACTGCTGCATCAGCTTCTGCTACTTCTTCATCAGTTGCATTTGAAACTGTAGCATTTTGA -GCTTTTCTAGCTGTAGCAGCTTGTTTAACTTCATTATAGGCATCCATTTTTGTTTGCGTAGAGTCCGTAA -TATTCTCAATTTTGAATATTTCTTCGTTTTTAACTCTATCTAAATCTTGTGCAGTCGTTGTCGCTTCAAT -TGCTTTAACACCTGAAACTTTAGCTGCATTAATACGTTCAATCGCTTCCGCTACCTCTTCATTTGTTGTA -TCAGGATTTAAAGGTGCTTGATCAATTTGTGCTTGAACAACTTCGTCAAATTCTTCAAGAGCTGCTGCTT -TAGCTGTTGTAGCAGGTGCAGTTTGATTAATATCATTGATCGCTTTTGTTTTAATGGCTTCTACTTGTGC -ATTTGTTGTTGCTGCATCAATATCTTTAATTGCCTTTGTTTCAATTTTACCAATTTTATCATTTGCTACA -TCTTTTTCATCTTGTAATGATGCATTTGACTTTTTAATTTGTTGTTTACGAGTTGTAACTGCTTGGATAA -TATCTTGTTTCGCTTGAGGTTTAACTGTTGGTGTAATCACATCTTGTTCCAACACTGCGATACCATTATC -TTTTTCAGTTGTGACACCTTGTGCTGTTGTTTGTTTATTAATTTCTGCGATTGCATTATTTTTATCATTG -TTAATTTTAGTCACAAGCGCTGCAACTTCATCTTGCGTAACTTTTTTACTTTGTTGTGCTGCTGTAACCT -TTTCTTGAGCTTTAGCATCTAATTCAGAAATTGCTGCTTGATTATCAATTAATGCAGCTTGTAATTTAGT -TACTAAACCATCAATATCCGCTTGAGATGCACGATTTGCAGTTTCAACATGATTCGCATCTTCATTTAAA -ATAGTGTCTGCTTGTTGTTTAAGTTTATTGTATTCTGCAATTGATGCTGTTGTGTAATGACTATCATCAA -CTTGTGAGTTAACTTGTTGTTGCAACGCATCTTTGTTCATTTCAACTGCTACTGAAAATGGATCTGCAGT -TAGTGTAACTTCTGGTTGCGCATTATTAATTACAACATCTGAAGCAGTACGATATGTTAATTTTTCATTA -AAATCAATATTTTTAGGTGTATCAATATTCGCAACATTAACTTTATATGATAATTTTAAAGATTTATCTG -GGAATAACACTTCTTTCGTATGTGTACCACGTGCTGTTGTCACACCTTGGCTTGTAAATGTAACTTTATT -TGCATTTTGATCATAATTGACAGTCATATTTTTCAATACTGTACTGTCTTCATTACCATTAGGGAATGTT -GTAGTTAATGAATCATTAACGTAAGTTACACCTTGTGGTAATGTTACTTCATATTTAAATTGATCTGCTT -TCAATGAAGCACCAAAATTACCATTGTTACCGATTTCAGTATTAATAGTATATTCTTTATTGTTAGTTGC -TTTCGGTGCTAAATCTCTATTTTTGACATATAAATGTGATCCTGAGAATAGACCTACATTATCAATGAAT -GAATAGTATTTATAACCATCTTTATTTGTTGTAATTCTTGAAGCATCAGCAACTGCTGTATTGTCAGGAA -TAAATTCTAAATCTAAACGATCAGCATCTGTTGGTACTTTAAATAAGTGTGCAGTACCAGTCTTAGCTAC -ATTTACAGTTGCTAATTCAGTATTTTTCTTAGCATCTTTAATAACTAAATTTGTTGCACCTTGCTTACTA -TTCGTTTGCATAGTAGTAAAGTTGATAATTAATTCTGAATCTGGTTTTACATTAACAGTTTTTGAAATAC -CGTTAAAGTTACCGTGATCTGTAGAATCATTTGCATTCACACGACCTAATGCAGCTACATTCCCTCTAGC -TTGGTAGTTTTGAGGGTTATTCTTATCAAACATATCGCTTCGTCTTAATTCTGAGTTAACGAAACCAATC -TTACCGTTGTTAATTAATGAATAACCATTTACTTTATCTGTAACAGTTACAGTTGGATCCTGTCTATTCT -CATCTGTTGATATGGCAGGATCATCAAACGTTAATGTTGTATTAATACTGCCTTCACCAGTATTGCTAGC -ATTTGGATCTTGAGTTTGTGCGTTTGCTGCTACAGGTGCTGCTGGTTGCGCTGCTGCTGGAGCATTCGCT -GGCTGTGTTTGATTTGCCGGTGTTGTATTATTATTAGGTGTTGCTTGGTTATTTCCTTGACCTGCTTGGT -TGGCAGGTGCTGCTTGATTTCCAGGTTGTGCTTGTGCAGCGTTATTCGGATCAGCTTGATTACCTTGTCC -AGCTGGTTGTGCTGTACCTGCTGCCGGTTGTGCTGCGCCTCCTGCTGGATTAGCCTGTCCACCTTGGTTT -GCTGGTTGTGCTGCTGGTTGTCCTTGGTTGGCAGGTGCAGCTGGCTGTGCTGTAGGATTAGCTTGAGCAC -CAGCATTTGCGTTAGGCTGTGCATTGGCATCAGCTGGTTGTGCTGGTTGATTTTGTGCAGGCTGATTTTA -CTCTGCTGCAGACGCTGTTGTCGGGTTAATAGATATAAATGTAACAGTGGCAATTAAAGCTGAAAAAATA -CCGACATTAAATTTTCTAATACTAAATTTTTGTTGTCTGAATAAATTCATTAAGTCATCCTCCTGGTTGA -TTATTCTCGCTGTTAAATGATGTCACTTAATCAACTTTTAAGATAAACAGTTTGCTTCCATCTTATAAAA -GGTAGAGCAACTCTATCTAATTAAAATTAATTTTATCATCATTATATATTGCTTACCAGTGAATTTTATA -TTACATATTGATTACTTTGTTTTTATGTATTCTTTATTATTTTGACTTTACGAAATAATATTCTTGCTTT -AGTCAAATTAAAAGAGCTTGGGACATTAAGTTCTTAGGCAATGTAAAAAAGCTGATTTCTATTAATTATT -TGATAGAAATCAGCTTTTTTTAAATGTATTTGATAATATACAGCTCGTCGAGCTACTATTTTCCTTATAT -TAAGTGCCATTAATACAAAACCTAGCTCTCGTTTAACTTTATTTATTCCTCGAACTGACATTCGAGTGAA -ACCCAAAATAGCCTTCATAAATCCAAAAACAGGCTCTACATCAATTTTTCTTTGACTATAGATTTTTTTC -GTTTCTGGTTCAGAAAGCTTTTGATTAATTTGGGCTTTAAAGTATTCCCAATTATAATTCTTCATGATTT -TCTTATTGGATTTCGAATTTGGCTTCATGCATTGTTGCCTCAAAGAACATGCTGAACAGTCATCGCATTC -ATATAGTTTGAAGTCACGTTTAAAACCATATCTATCATTACGGTATGCATATCTTTTAAAACCTATTCTT -TTGTTATTAGGACATATAAATTCATCATTAAGTTCGTCATATTTCCAGTTTTGAGTGTTAAAAATGTCAC -TTTTAAACTTTCTCGTTTTATCTTTAATAAACATACCATACGTAATAAGTGGCGTTTTATTAAAATCATC -TATAATAGCCATATAGTTTTGCTCACTACCATAACCTGCATCAGCTACAATATACTCCGGTAAATAACCG -AAGGTATTTTGAATCATTGTTAAAAATGGAATTAAAGTTCTAGTATCTGTCGGGTTTTGAAATAGGTCAT -AGGATAAAACAAATTGAGAATTTGTCGCTATTTGTAAATTGTATCCTGGCTTAAGTTGGCCATTTTTCAT -ATGGTCTTCCTTCATTCTCATAAAAGTTGCATCATGATCAGTTTTAGAAAAGCTATTTCTATCTTTAAGA -ATCGATTTTTGTTCTTCATATTTACTTTTTCTTTCGGAATAATCATCAAATTTCTTTTTGAACTTCTTAA -TCTCAGTTCTTTTTTTACGGGTCTGTTTTCTAATTTGAGTACAATCTTCGTTCTGAATAGAATGATTTAA -ATCTTCGATTTCTTTATCTAAATGACTACCAATTAAATCTATTTCTTCTATTGTTAAATCGCTATCTCCA -TCTTCTTTTATCTCTGGTATTATTTTTTCTTCAACTAAGTCACGATATAATGCTTTTGAATTTTCGTTCA -ATTTCGATTCGTGATTTTGAATACTTTTCTTCCACACAAATGTATACCTATTGGCATTAGCTTCTACTTT -TGTACCATCAATAAAAATTGAATTATCATCAATAAGATTTTGCTTTAAACATTGACTATGAAACTGAATA -AATAAAGATTCAATTAATGCATCAGTATTAGGATTTACTCTAAAACGATTAATAGTTTTATAAGAAGGTG -TTTGATTTTGAGCTAACCACATCATTCGAATACTGTCATGAAGTAATTTCTCTATTCTACGACCAGAAAA -TACAGATTGAGTGTATGCATATAAGATAATTTTTAACATCATTTTTGGATGATAGGATGTTGCGCCACGA -TGATGTCTGAATTCATCGAATTCGCTATCAGGTATCGTTTCAACAATTTCATTAACATATCGTGAAATAT -CATTTTGAGGAATTCTAACAGAAGTTTCTATTGGTAGTGTAAGTTGGGTCATGTTATAATTTTTATACAT -AAGGCACCTCGTGAATTTAGTTTAGTGGTATTTATTAAATTATACGAAAGTGTCTTATTTTTTTAAAGTA -TTTCAAAGTAAAATTACATGTTAATACGTAGTATTAATGGCGAGACTCCTGAGGGAGCAGTGCCAGTCGA -AGACCAAGGCTGAGACGGCACCCTAGGAAAGCGAAGCCATTCAATACGAAGTATTGTATAAATAGAGAAC -AGCAGTAAGATAATTTTCAATTAGAAAATATCTTACTGCTGTTTTTTTAGGGATTTATGTCCCAGACTCT -GATTTATATCTTGAAATTATTTATCTAATCCCATTTTATCTTGAACCACATCAGCTATTTGTTGTGCAAA -TCTTTCAGCATCTTCATCAGTTGCTGCTTCAACCATGACACGAACTAATGGTTCTGTTCCAGAAGGTCTT -ACTAAAATTCGACCTTCTCCATTCATTTCTACTTCTACTTTAGTCATAACTTCTTTAACGTCAACATTTT -CTTCAACACGATATTTATCTGTTACGCGTACGTTAATTAATGATTGTGGATATTTTTTCATTTGTCCAGC -TAATTCACTTAGTGATTTACCAGTCATTTTTATTACAGAAGCTAATTGAATACCAGTTAATAAACCATCA -CCAGTTGTATTGTAATCCATCATAACGATATGTCCAGATTGTTCTCCACCCAAGTTATAATTACCGCGAC -GCATTTCTTCTACTACATATCTGTCGCCAACTTTAGTTTTATTAGATTTAATTCCTTCTTGTTCAAGCGC -TTTGTAAAAACCTAAGTTACTCATAACAGTAGAAACAATCATGTCATTATTCAATTCTTGATTTTTATGC -ATTTCTTGACCAATAATAAACATAATTTGGTCACCGTCAACGATTTGACCATTCTCATCTACTGCTATGA -TTCTGTCTCCATCGCCGTCAAATGCTAACCCAAAATCACTTTCAGTTTCAACAACTTTTTCTGCTAATTT -TTCAGGATGTGTAGAGCCACATTTCTCATTGATATTATATCCATCAGGACTACATCCAATTGTTTCAGTA -TCTGCCTCTAAATCACCAAATAAGAATGGCGCTAGTGATGATGTTGAACCATTTGCACCATCTAAAACAA -TTTTCAAACCTTCAAAGTTAACATCTACTGTTGATTTTAAATAACTCAAATATTTTTGTGCCCCTTCAAA -GTAATCTGAATAATGTACAATATCATTGCCAACTGGTCTTGGTAATTCTGGGTTTTCTTGATCCAATAAT -GCTTCAATTTCATTTTCTTGTTCATCTGATAGTTTAAAACCATCTGATCCAAAGAATTTAATACCATTAT -CCGCAACTGGATTATGAGAGGCTGATATCATTACACCTAACTCTGCACCCATATCGCGTGTTAAATATGC -AACACCTGGTGTTGAAATAATACCTAATCGCATCACTTCTGCACCAATTGAAATCAAACCAGCTATTAAT -GCTGATTCTAACATTTCACCTGAAACTCTAGTATCGCGACCTACAAGTACACGTGGGTGTTTTTCACCTT -TATTATGTGCTAGAACATAGCCACCATATCTTCCTAATTTAAATGCCAATTCAGGTGTTAGTTCTTGGTT -TGCGACACCTCTTACTCCGTCTGTACCAAAATATTTTCCCATTGTTTACTCTCCTTTAATTTAGCTATTT -ATTTTACGTTTATATAAGCCTTCGTTTCACTTGGTTCTGCTTTAGAGACATGTTCTGGTAAATTGATTTT -TACAGTCTTTTCAGTTGATTCTGAAATACCATCTAAATCTACTTCTGCATCAACTTCGCTTATATTTTGC -AAGTCATCTCGACTACCGAAGATTTCAATTTCTTTATCTTCTAAGTCAATCGAACTTAATTCTTTATCAT -CTGCTAAACTACCTTTCTGTTTAACATTTACTTTAACCTTTTTGCTAAAAGGCTCTACTTTAACTTGTAA -ATTCACTTCATTAGGTTGAATCGATACATTTAATTTATTCAGTTTTTTATCAAAAGCCGTTACTTCCGCG -ATATCTTTTGTGTCACCATTAATCTTTTTATTAGTTTTAAAAGTGGCTTTTAAATAAGCGATATCATTCA -ATTGTTCTTCTCCACCTGTTATTTTAACTGTTTGTGGTGAAACTTCTTGCTTTGTAATTTTATAAAGTGG -ATCAATATCACTTTGACTAACATCAGGTTGAACTGTCATCTTTTTAGTTACTTTGTTTTCAAGCGTAATA -TTTGCCAATTTAGGTTTTACAGAATAATGAATGTCATCAGCTAACCCTTTAACTTGATACTTCTCTTGAT -ACTTTCCAGCTTTAGCATTTGATAAATCAATCACTACTCTTAAATCTTCTGGATTTTCAATTTTTATTAT -CTTTGATTGTGGTCCTGAAATAGTCACATTAACTGTTTCAGGCGCTTTTGTTAAATGCAAATCTTTAGTG -TTATAAAGAATTTCAACGGGTACATCTTGAATCGTTTTACTAGACTTTTGACCAAGATTACCAGTGTTAA -AGATATTTCCAAAAACATTGTTAACAGATAAAAAGAAAAACAATGCCAAAAGAAAGGCAATAAATCTTAA -GCCCCATTTACTTTCTAGCATATTATTTCACACCTTTCTTTTGAAAGCGTGTGCCAAACCAATGTTCAGC -AAGCAACTCTTCAAAAATTTCGTTTGAAATGTCTCGGCGTAATTTTCCATCAAATGTTACCGAAATATCA -CCAGTTTCTTCAGATACAATAACGGTAAATGCATCAGATACTTCTGAAATACCAACCGCTGCTCTATGTC -TTGTACCCAAACTTTTAGATATCTTAGGACTATCAGACAATGGCAAATAACTTGCTGCTGCTGCAATCTT -CGTGCCTTGAATAATCATTGCACCATCATGTAAAGGTGTATTAGGTATAAAGACATTAATTAAAAGTTCT -TGTGAAATATTTGAATCCATTGCAATACCTGTTTCAATATAATCTTGAAGACCTGTTTCTTTTTCAAAGA -CAATTAATGCACCTATACGTCTTTTAGCCATATATTGCACAGCCTTTGAAACCGATTGAATCAATTTCTC -TTCATCTTTACTATACGTATTAGAAGTATAGCGTTTTAAAAAGCTACCTCTACCAAGTTGTTCTAACGCA -CGTCTAATTTCTGGTTGGAATATTACTATTAAAGCTAATACCCCCCATTGAATAACGATATCGAATAATT -TAGATGTTGCAGTCAAGTTCAATATCATACTTATCTGCTGACCAATAACAATTACTAATATCCCTTTAAG -TAATTGTATCGCTTTAGTTCCCTTAAAGACCGTGATGAGAAGATAAAGTACATACCAAACTATCAGTAAA -TCAAGGATACTCGTTACAATTTTTAACGTACTGAGGTTTTGAAAAAAGTTGGAAAAATCCATAACATCTC -CTCCGGGTAATATTTTTCCATAATACCCATTATACCAATCATTTACATCACTGTCATACGAACATATATT -TAAATAGAAAAAAATTTATTTTAAAGATTATAACTACTCTTAATCATTTTAGTGAATTAAAAAAAGTAGT -GCAAAAAGCAAAATATACTTTATACACTACAAATCATTTATTTATAATAAAGTTTCACCAAAAAATGTTC -CAACTAACGAAACCGATTGTTCAGCAGTATGGTTATTATGATCAATAAGTGGATTCACTTCAACTAAGTC -CATTGAAGTAACTGACTGAGACTGATGTAATAATTCCAGCGCAAAATGACTTTCTCTATATGTAAGTCCG -CCTAAGACTCTAGTACCTGTGCCTGGCGTTTCAAGTGGATCTAAGGCATCAACATCTAAAGATAAATGAA -CGCCATCAACATTGCGTGACTTCAAATATTCTATTGTATTTTCAATTACTTCCTTTATCCCCAATTTATC -AATATCTGACATAGTAAATGTTTTAATATTATGATCTTTGATAAATTGTCTTTCACCTTTATCTAAATCT -CTCATACCAATTAGTACGATGTTTTCTGGCTTGATTACATTACTATTTAATTCTAAAAGTTCTTTAGGAC -CTTCACCTGTCAAAATCCTTAGAGGCATACCATGAATATTTCCACTTGGTGACTCTTCAGGTATATTTAA -ATCACCATGTGCATCATACCAAATAACACCTAAATTATTATAATGTTTACTTATTGCTGATACTGAACCT -ATCGCAATAGAATGATCTCCACCAAGAACTAGAGGAAATCTGTTATTTTCAATTGATGCTGATACTTCTT -TATTTAATTTTTGAGTAACATCTATAATTTCATCGTAGTTTCTTAATCCATTTTGTTCACTTTGAAATTT -TTCAATGTCTACAGCTGATACCTTAATATCCCCTTTGTCATTAACATCAAGGTCTAATTGCTTTAGTCTT -GGTATTAAACCTGCATATCTAATCGCAGTTGGTCCTAAATCAACACCTAATTTTCTTTGTCCAAATGTTG -ACGGTACACCAATAATATCAATTCCTTTTTTCTTTGTCATAAGCGTCCCCCTTTGTTATACATAATTTCA -GAATAATGTATACGCTTACTATAATCAAGTAATAGCCATAACATAACGCCTTAGCATCCTAATTCTCAAA -AAATAAAAAAAGCACTTCCCAAGAATGGAAAGTGCAAGTAGTGAGCCATAGAGGATTCGAACCTCTGACC -CTCTGATTAAAAGTCAGATGCTCTACCAACTGAGCTAATGGCTCTAATGGCTGGGCTAGCTGGATTCGAA -CCAACGAGTGACGGAGTCAAAGTCCGTTGCCTTACCGCTTGGCTATAGCCCAATATATAGATGGTGGAGG -GGGGCAGATTCGAACTGCCGAACCCGAAGGAGCGGATTTACAGTCCGCCGCGTTTAGCCACTTCGCTACC -CCTCCAGCTTATTCAGTTAATTAATAATCAAAATGGTGGAGAATGACGGGTTCGAACCGCCGACCCTCTG -CTTGTAAGGCAGATGCTCTCCCAGCTGAGCTAATTCTCCAATATAATGACTCCTACGGGACTCGAACCCG -TGTTACCGCCGTGAAAGGGCGGTGTCTTAACCGCTTGACCAAGGAGCCATGGCTCCACAGGTAGGACTCG -AACCTACGACCGATCGGTTAACAGCCGATAGCTCTACCACTGAGCTACTGTGGATTAATATTAATGCCTG -GCAACGTTCTACTCTAGCGGAACGTAAGTTCGACTACCATCGACGCTAAGGAGCTTAACTTCTGTGTTCG -GCATGGGAACAGGTGTGACCTCCTTGCTATAGTCACCAGACATATGAATGTAGATTATACATTCAAAACT -AGATAGTAAGTAAAAGTGATTTTGCTTCGCAAAACATTTAAATTTGATTAAGTCTTCGATCGATTAGTAT -TCGTCAGCTCCACATGTCACCATGCTTCCACCTCGAACCTATTAACCTCATCATCTTTGAGGGATCTTAT -AACCGAAGTTGGGAAATCTCATCTTGAGGGGGGCTTCATGCTTAGATGCTTTCAGCACTTATCCCGTCCA -CACATAGCTACCCAGCTATGCCGTTGGCACGACAACTGGTACACCAGAGGTATGTCCATCCCGGTCCTCT -CGTACTAAGGACAGCTCCTCTCAAATTTCCTACGCCCACGACGGATAGGGACCGAACTGTCTCACGACGT -TCTGAACCCAGCTCGCGTACCGCTTTAATGGGCGAACAGCCCAACCCTTGGGACCGACTACAGCCCCAGG -ATGCGATGAGCCGACATCGAGGTGCCAAACCTCCCCGTCGATGTGAACTCTTGGGGGAGATAAGCCTGTT -ATCCCCGGGGTAGCTTTTATCCGTTGAGCGATGGCCCTTCCATGCGGAACCACCGGATCACTAAGTCCGT -CTTTCGACCCTGCTCGACTTGTAGGTCTCGCAGTCAAGCTCCCTTATGCCTTTACACTCTATGAATGATT -TCCAACCATTCTGAGGGAACCTTTGAGCGCCTCCGTTACCTTTTAGGAGGCGACCGCCCCAGTCAAACTG -CCCGCCTGACACTGTCTCCCACCACGATAAGTGGTGCGGGTTAGAAAGCCAACACAGCTAGGGTAGTATC -CCACCAGCGCCTCCACGTAAGCTAGCGCTCACGTTTCAAAGGCTCCTACCTATCCTGTACAAGCTGTGCC -GAATTTCAATATCAGGCTACAGTAAAGCTCCACGGGGTCTTTCCGTCCTGTCGCGGGTAACCTGCATCTT -CACAGGTACTATGATTTCACCGAGTCTCTCGTTGAGACAGTGCCCAAATCGTTACGCCTTTCGTGCGGGT -CGGAACTTACCCGACAAGGAATTTCGCTACCTTAGGACCGTTATAGTTACGGCCGCCGTTTACTGGGGCT -TCGATTCGTAGCTTCGCAGAAGCTAACCACTCCTCTTAACCTTCCAGCACCGGGCAGGCGTCAGCCCCTA -TACATCACCTTACGGTTTAGCAGAGACCTGTGTTTTTGATAAACAGTCGCTTGGGCCTATTCACTGCGGC -TCTTCTGGGCGTTAACCCTAAAGAGCACCCCTTCTCCCGAAGTTACGGGGTCATTTTGCCGAGTTCCTTA -ACGAGAGTTCGCTCGCTCACCTTAGAATTCTCATCTTGACTACCTGTGTCGGTTTGCGGTACGGGCACCT -ATTTTCTATCTAGAGGCTTTTCTCGGCAGTGTGAAATCAACGACTCGAAGACACAATGTCTTCTCCCCAT -CACAGCTCAGCCTTAATGAGTACCGGATTTGCCTAATACTCAGCCTTACTGCTTAGACGTGCAATCCAAT -CGCACGCTTCGCCTATCCTACTGCGTCCCCCCATCGATTAAAACGATTATAGGTGGTACAGGAATATCAA -CCTGTTATCCATCGCCTACGCCTGTCGGCCTCAGCTTAGGACCCGACTAACCCAGAGCGGACGAGCCTTC -CTCTGGAAACCTTAGTCAATCGGTGGACGGGATTCTCACCCGTCTTTCGCTACTCACACCGGCATTCTCA -CTTCTAAGCGCTCCACATGTCCTTACGATCATGCTTCAACGCCCTTAGAACGCTCTCCTACCATTGTCCA -AAGGACAATCCACAGCTTCGGTAATATGTTTAGCCCCGGTACATTTTCGGCGCAGTGTCACTCGACTAGT -GAGCTATTACGCACTCTTTAAATGATGGCTGCTTCTAAGCCAACATCCTAGTTGTCTGGGCAACGCCACA -TCCTTTTCCACTTAACATATATTTTGGGACCTTAGCTGGTGGTCTGGGCTGTTTCCCTTTCGAACACGGA -CCTTATCACCCATGTTCTGACTCCCAAGTTAAATTAATTGGCATTCGGAGTTTGTCTGAATTCGGTAACC -CGAGAGGGGCCCCTCGTCCAAACAGTGCTCTACCTCCAATAATCATCACTTGAGGCTAGCCCTAAAGCTA -TTTCGGAGAGAACCAGCTATCTCCAGGTTCGATTGGAATTTCTCCGCTACCCTCAGTTCATCCGCTCACT -TTTCAACGTAAGTCGGTTCGGTCCTCCATTCAGTGTTACCTGAACTTCAACCTGACCAAGGGTAGATCAC -CTGGTTTCGGGTCTACGACCAAATACTAAACGCCCTATTCAGACTCGCTTTCGCTACGGCTCCACATTTA -CTGCTTAACCTTGCATCAAATCGTAACTCGCCGGTTCATTCTACAAAAGGCACGCCATCACCCATTAACG -GGCTCTGACTACTTGTAAGCACACGGTTTCAGGTTCTATTTCACTCCCCTTCCGGGGTGCTTTTCACCTT -TCCCTCACGGTACTGGTTCGCTATCGGTCACTAGAGAGTATTTAGCCTTAGGAGATGGTCCTCCCAGATT -CCGACGGAATTTCACGTGCTCCGTCGTACTCAGGATCCACTCAAGAGAGACAACATTTTCGACTACAGGA -TTATTACCTTCTTTGATTCATCTTTCCAGATGATTCGTCTAATGTCGTCCTTTGTAACTCCGTATAGAGT -GTCCTACAACCCCAACAAGCAAGCTTGTTGGTTTGGGCTCTTCCCGTTTCGCTCGCCGCTACTAAGGGAA -TCGAATTTTCTTTCTCTTCCTCCGGGTACTAAGATGTTTCAGTTCTCCGGGTGTGCCTTCTGATATGCTA -TGTATTCACATATCGATAACATGACATAACTCATGCTGGGTTTCCCCATTCGGAAATCTCTGGATCAAAG -CTTACTTACAGCTCCCCAAAGCATATCGTCGTTAGTAACGTCCTTCATCGGCTTCTAGTGCCAAGGCATC -CACCGTGCGCCCTTAATAACTTAATCTATGTTTCCATCCTACAGGAAACGCGTTATTAATCTTGTGAGTG -TTCTTTCGAACACTAGCGATTATTTCTTATGAATTCAAGCTTATTTAAAACTCTTTATTCACTCGGTTTT -GCTTGGTAAAATCTATATTTTACTTACTTATCTAGTTTTCAATGTACAATTTCTTTTTAGTCAAGCGCTC -GCATACTGCTTTGTTTTCAAAAAATCAAATGCTCATTTACAAAAGTAAACTCCGCTTTAATTTTTCTTAA -CGCATTGTCTGACAACCGCTTTCTTTAAAAAGAATAGATTGTCAAGCGCTCGCATACTGCTTTATTATCA -CAAGCAATATCGCTTTAACCAAAAAATATTTGAATGTTAAATAAACATTCAAAACTGAATACAATATGTC -ACGTTATTCCGCATCTTCTGAAGAAGATGTTCCGAATATATCCTTAGAAAGGAGGTGATCCAGCCGCACC -TTCCGATACGGCTACCTTGTTACGACTTCACCCCAATCATTTGTCCCACCTTCGACGGCTAGCTCCTAAA -AGGTTACTCCACCGGCTTCGGGTGTTACAAACTCTCGTGGTGTGACGGGCGGTGTGTACAAGACCCGGGA -ACGTATTCACCGTAGCATGCTGATCTACGATTACTAGCGATTCCAGCTTCATGTAGTCGAGTTGCAGACT -ACAATCCGAACTGAGAACAACTTTATGGGATTTGCTTGACCTCGCGGTTTCGCTGCCCTTTGTATTGTCC -ATTGTAGCACGTGTGTAGCCCAAATCATAAGGGGCATGATGATTTGACGTCATCCCCACCTTCCTCCGGT -TTGTCACCGGCAGTCAACTTAGAGTGCCCAACTTAATGATGGCAACTAAGCTTAAGGGTTGCGCTCGTTG -CGGGACTTAACCCAACATCTCACGACACGAGCTGACGACAACCATGCACCACCTGTCACTTTGTCCCCCG -AAGGGGAAGGCTCTATCTCTAGAGTTGTCAAAGGATGTCAAGATTTGGTAAGGTTCTTCGCGTTGCTTCG -AATTAAACCACATGCTCCACCGCTTGTGCGGGTCCCCGTCAATTCCTTTGAGTTTCAACCTTGCGGTCGT -ACTCCCCAGGCGGAGTGCTTAATGCGTTAGCTGCAGCACTAAGGGGCGGAAACCCCCTAACACTTAGCAC -TCATCGTTTACGGCGTGGACTACCAGGGTATCTAATCCTGTTTGATCCCCACGCTTTCGCACATCAGCGT -CAGTTACAGACCAGAAAGTCGCCTTCGCCACTGGTGTTCCTCCATATCTCTGCGCATTTCACCGCTACAC -ATGGAATTCCACTTTCCTCTTCTGCACTCAAGTTTTCCAGTTTCCAATGACCCTCCACGGTTGAGCCGTG -GGCTTTCACATCAGACTTAAAAAACCGCCTACGCGCGCTTTACGCCCAATAATTCCGGATAACGCTTGCC -ACCTACGTATTACCGCGGCTGCTGGCACGTAGTTAGCCGTGGCTTTCTGATTAGGTACCGTCAAGATGTG -CACAGTTACTTACACATATGTTCTTCCCTAATAACAGAGTTTTACGATCCGAAGACCTTCATCACTCACG -CGGCGTTGCTCCGTCAGGCTTTCGCCCATTGCGGAAGATTCCCTACTGCTGCCTCCCGTAGGAGTCTGGA -CCGTGTCTCAGTTCCAGTGTGGCCGATCACCCTCTCAGGTCGGCTATGCATCGTTGCCTTGGTAAGCCGT -TACCTTACCAACTAGCTAATGCAGCGCGGATCCATCTATAAGTGACAGCAAGACCGTCTTTCACTTTTGA -ACCATGCGGTTCAAAATATTATCCGGTATTAGCTCCGGTTTCCCGAAGTTATCCCAGTCTTATAGGTAGG -TTATCCACGTGTTACTCACCCGTCCGCCGCTAACATCAGAGAAGCAAGCTTTCGTCCGTTCGCTCGACTG -GCATGTATAGGACACGCCGCCAGCGTTCATCATGGGCCAGGATCAAACTCTCCATACAAATTATGATGTT -TGATTAGCTCATAAATACTAAATAATGTTTGTAACTTATCGTTACGTTTTTTGGAATTAACGTTGACATA -TTGTCATTCAGTTTTCAATGTTCATTAATGTTCAATCTCTTTTATTGTACTTCATTTAATTATTGAAGTC -AATAACTTTTCGAACGATTACTTTATTTATTTTATATTGTTTTTATAGTTATTTCAATGGTAAGTTTTAC -ACTTTTGAAATTCTTCTTTAAAAACATCATCACCGTTTTTGACGACTTTATTATCTTATCAACTTTATAA -TTTAAAGTCAATAACTTTTTTGAAAAACATTCGTGTTTGCAAGTCGCTTCTTTTTTCAATGCGTTTATTG -CTTAACACAAGAACTTATTTTACCAGCATTCCAAAACAAATCAATATAAAAACGTACAAAATAAAAGTAA -TTTTGTACGTTTAGCATATATTATACCTATTTATTTGTGGCAGCTATAACTTTTTGTGCAATCGAGCTAT -AAATTTTACCTAGACGATCATCTGATTGATATATTGACGGTGCAAAATCTTTTGGATTCCAAGATGGTTG -CTCTAAAGGTAATTCCCCAAGTAATTGAGTATTAAGTTCATCAGCTAACTTAGTACCGCCACCTTTGCCA -AAGACATATTCTTTATTCCCCGTCTCTTTACTTTCAAAATAACTCATGTTTTCAATTACGCCAAGAATAG -AATGATCCGTATGTTTTGCCATCGCACCTGCGCGAGCTGCAACAAATGCTGCTGTAGGATGAGGTGTCGT -TACAATAATTTCCTTACTTGAAGGTAACATCGTATGAACATCTAAAGCTACATCTCCTGTTCCAGGTGGA -AGATCGAGTATTAAATATTCAATGTCTCCCCATCTAACTTCTGTAAAGAAATTCGTCAACATTTTACCTA -ACATTGGTCCTCTCCATATAACTGGTGCATTTTCTTCCACAAAAAATGCCATTGATATAACTTTAACGCC -ATGACGTTCAACTGGAATTACTTCCTTCCCATTAATTCCAGGCTTTTCATCAATACCCATCATATCTGGT -ACACTAAATCCATATATATCGGCATCTACTAATCCAACTTTTTTACCTTCACGGGCTAAGGCAACGGCTA -AATTTACTGCAACAGTAGATTTACCGACGCCACCTTTACCTGAAGCAATAGCAATAAATTCAACTGGATT -ATTTTGAGATAATAAGCCTTCTATCGTTTTAGGTTTATTTTCTTCTTTTGGTTTAAATTGATTTACTTTT -TCTTCTGGTAACGTTTCAAATCGTATACCCACAGTTTTTGCACCATTTTCTTTTAAAACATTAACAACTG -CCATCTGTAAATCTAATTGCGGTGCACCACCTAATTGTGCCATTGCCACTTTAACACTTACATGTTCTTT -TTCTTCCTTAATAGAAACTTCTACAATACCTTCTGTTTCTTTTAAAGGTACATCTATAATAGGATCTTTA -ATTTCTCCTATTAGTTCTTTAACTTGATCTACCGTTAACAAAGCAAATCCCCCTTAATCAATTTAAAATA -TCTACATCATAGCAAATAACAATTTTTGCTTAGTCTATCAATAAAAGTATAAAACTTTTCATTAAATAAA -AAAAGAAGTTAGCCTATTATTTTCAATAGACCAACTACTATAATTATTTTAAAATTTCCTTCTATTACTT -TCTATTTCTTTAGGTTCTCTTATAAAAAGCGCTATCACATAAGCTGCCATAACAAGCACAGCTACAAAAG -CAAATGAGATATCCACCCCTATAGCAATTGATTGCTGTTTAATTTCAGTTGCAGTTAAATGCGATGGCGA -TGTAGATGAGAATATTTTTGCGCCAAAACTCATCAAAGTAACCATTAATGCTGTTCCTAATGAGCCAGCC -ATTACACGACCAAAGTTCATAATAGCCGTGCCATGTGAGATTTCTTCATTTTTCAAAGAATTAATTCCTG -TAGTATTTATCGGCATCATGAGTAAAGAAACTGAAAACATTCTAATTGCATATACGACTATTAAATACGT -ATAAGATGTGTCTGTATGCAAGAAACACAACATAATAGTAGTAATTGTTAAAATCGTAAAACCAGTATAA -ATCAGTGGTCTAGGACCATACTTATCATAAAATTTACCTGTAAAAACCGACATAATACCATTTATGATTG -CACCTGGCATGATAACAAGTCCAAACAATAATGCAGATAGAGCTAAGCTATTTTGAACATAGAGCGGTAT -TAATAACGCTGGACCAACCATTGACATCATTATAATCATTGAACTAATCGTACATAATGCAAATGTTCTA -TTCTTAAAAACACTTAAATTTAAAAGTGCATTGCTTATATTGAATTGTCTACGAATAAATAAGTAGATGA -TAATAGAACTAATTATCATTGCACCAATGACTACCGGGCTAGTAAATCCTAGGTCGCCTGCACTACTGAA -TGCATATAACATTAATCCAAATCCAATCGTTGAATACATTACAGAGCGCTTATCTAGCTTAGTATATTTC -ACTTCATTATAGCTTGAAATTGAAATTAAACCGAAGATGAATGCGACTAAAGCAATTCCTACAATTATAA -TAAATGGTACTCGCCAACTCGCTTGATCAATGATTAATCCAGTAACAGTAGGCCCGATTGCTGGTGCAAA -TTGAATAACTAAACCAGCTAATCCCATTGCAAATCCTCTATGTTCTTTACTGAATAACGTAAACAATGTG -AATTGCATTAAAGGCATGAGTACGCCTGCCCCCCATAGCTTGGATGACACGTGCTAACATTAAAACTCCA -AAATTGGGTGCCATGGCTGCAACAATTGATCCTACTAAAAATGTCCCCATCGCTGCTAAGTATAAAGGTC -TAGTTTTAATCCTGTCCATTAAGTATGCTGTTAGAGGTATCATGACGCCATTAACAAGCATAAACCCAGT -AACTAGCCATTGCGATGTACTTTCATTAATATTTAATTCTCTCATTATACTAGGTAACGCTGTATTTAAT -AATGTTTGATTTAAAATAGCTACAAACGCACTAATCAACATAACAGCAACTATGAAGTTTCGTCTCCGGG -TTGTTAATTCAACTTTAGCCATCATAATTCCTCCTTTGTAACAAATTTACGTTTATTAGCATATATACTT -AAAATATATTTCAGATTAAAGTACCAACTATTTATATCAATGGTTATTATTAACCGTGATTAATTGAAGC -AAAACAACTCATTTTCTACTATATGAATAAAAAGAAGTTGGAACACATCATTGCCCCCAACTTCAAAACT -CTATTTTCTATTATTTAGATTTTTACTTTCAGGGTAAAACTGCAGCTTACAAACATATAAAAAGCCTATA -ATAACCATGATGACCCAAAAATCAATGTTGATATACACATAGTTCAGATGAATAATAAAATAAAATAACG -TTGTTGCAACCATATAAGAGATTAAATGAAAAGTTGCACCTCTAAAATAAGCATTTTCAGGTAACATTTT -TCTAAAATAATCCATCAAATGTTCAACTGCAAATACGATAAAGTAGCCAAATATAATATAACTACCATAA -TATAGCAAATTGTCGTACATACTTCTGTTATATGTGAAGTCACCTAACCTAAAATAAATAAGAATTCTAC -TTAATCCATATAGTCCGAACCCTAAAAACGTTAAGAATATCGCACCAGAAAGCACAAAGATAAAGAGAAC -AATAATTGTTGTTAATAAATTATAAAACTTATGTTTAAGATAATTCATAACTATTGTCCTCCTTACCATA -AATAATTTATATTGCTTTTAATTTTAAGATAGTTGATTACACTTCAAACTTAGTAAAATGATTATTTGTT -ACTTTATTTACACTACATCAATTTTAATCATAATTCTATTCTTTTGTTTGTGACGCCGCTTCTCTATAAA -ATATGAGCCATACAACGATGAGCCCTACACTTATCAAGGATACAACGCCTAAAATATTATGCAAGTTTGC -ACCAAACAATCCTGATTTTAACGCATAAAGGTATCCCATAATCGTCGAACCTATTGATGCGCCAAGGTTT -TTTGTTAATCCATAAAACGACATCATTTTCTTCATTTGTATTGGACTTGTTTCCTCTTGGACAATTACAC -TATCTTTTGTATAAATATATCCAAAGCTTAGTCCACTTAAAATTAAGACACATGCTATAAGAATTGGTAA -TTTTATACCAAACGCAATGATTATACTACTTAATAATAATAATGTAAAAGACGACAAATAGATAACTTTT -CTTGATAACTTCGCTTCAATATGGTGCAAATTAAAATTCAATGTAATCCACGCTACAGAAAGTGGAAAAA -TAACTAATCCACTTTGCAATGGCGATAACCCCAGTTGTTCTTGAAGATACACAGGAATATATAAATTAAA -GCCCATTAAACAAACAGCTGTAAGAAGATCTGTAATAAAGACCAAAGTAATCATTCGATTAAATTCTGCT -ACTGGTAAGAATGGGGATGAAACTTTTTTCTCAACATTAAATAATCGAAGTGCAACTAATATTGCTAAGA -CAAAACCTATGATATTTAAATATAAATGTTGTTGGTTTAACAATGCAAACATAATTAAACCAATGAAAAT -ATAAAACAGGGTGATACCTTTAGTATCGAATTTTGATTTAGCCACAGTTTCTTCTTCTGGAAAATGAAAT -GTCCAGACAACCAATATTATTGCAATAATCGCAATCGGTATGTTTATGTAGAATAACCAATGCCATGTTG -CAAATTCTAATATGCCACCACCTAGAAGTGGTCCAATGATACTCGAAATCCCCCAAACGCTACCAACGAT -ACCCATAATTTTATAGCGTAATGGAATTTCAAATGCTAATTTGGGCACAATTTGTGACAAGGACATCATG -ACACCAGATCCAAACCCTTGAATTACACGTGATATAACCAACATACTAAAATGTGTGCTTAAACCTGACA -TTAAACTACCAACCGTGAATAGTGTAAGACCTGCGATAGCAATATAAATAATTTTAAAACGAGTTAATAA -TTCACCTACTATAGGATTGGCAATTACTAATGCGATAAAATACGCGGTAAAAATTAATGAAATTAAATTC -CCTGCATTTAAATCTTGCTTAATTGTTGGTAACGCTAAAGAAATAATTGATGATTCGATTGCAGCCATAA -ACATGATTAATATTAAAGCTATTACAGTTACAATTGATTTTAAACGCATGCTATACCTCCTTCTTTATAT -ATATTTATACGATTTTATTTACAAACTATTGATTTGTATTTGTATAAACACTTTTGACTTTCAAATCTTA -ACGATAATAGTCATACAAAACAATCCTCTATTAGAATGAATTAAGTAATAAAAAAAGCGGAGTTCCCCCC -ACCTTCTGATAAACTATTACATAAAATATAAAATAGCAATTAAATGCAATAATGATGCTATAACAATAAA -AATATGCCATATCATATGAAAATATGGTCTGTTTTTTTGTGCATAGAACCATGCACCAATCGTATATGAC -ACACCGCCTAAGAAAATGAATAATATGAATATCCATGATGTGCGAATAAAAATAATTGGTAACAAGATAA -TACCTACCCAGCCCATCACTAAATAGACAATTAAGCTTAACTTTTGGTTAACTTTGACAGCTATGGATTT -ATATAAAATTCCCCAAAGCGTTGTGCCCCATAATAGGATAAACACTGTCCATCCAATCCAACCACCTACA -ACTGTTAATAAAATAGGCGTATATGTACCTGAAATTGCTACATAAATCATACTATGATCAATAATTCTTA -AAATATATTTATGAGGCGTTTCATTTTGCATAGAATGATAAATAGTAGATGAAATAAACATCATAAAGAT -AGAAATAACATAAATAGACATACTCACAGACGCAAGCGTACCATATGCAATATAACTGTGCACAGCTGCA -TAGGGTAACACTAATAATGTTAACAAAGCTGCAACACCATGAGATGCTGCATTACCAATTTCTTCTCCAA -ATGATAAAGGGATGATATCCTTAAATGTTTCTACGATTGTGTCATTACTTTTTTCACTAGATTTGGACAC -GTAAGTCACCGCCTAACATTAAATTAAACCCATTCTACGTAAATCTTCAGTCGCTGTTGCAACACTATCT -TTACCTTCTTTATTTTTAAGAGGTGAGAACTCTTCTTCTCTAGGAACTTGTAACGTGACAAAACTAGTTC -CATAAGTAAATATGTCAAAATAGAACAATTCGAATTTTAAAGTTGGTTGTTCAATAACACCAAAGTTCTC -ATCTAATTGCTTCAAATTCTTAATAGCTAAATGATAAGGTAATTCACGATTTACAGCATTTAAAATAAAA -CCAAGTTTAAATGCATGAATACCGATATTAGCATTGTTAAATTGATTTGCAACTTCTGGATCTAATTCTG -AATACTCCAATACTGTATCTTTACAATCGACATTAACTAATCGCCCAACACTTTCTCCTGGTTTTGGTTG -AATCGTTTTAGAAGTAATATCGTAATCATGTTCTACCGTAAATCCTGCAAATAGTGGATCCAACACTTTT -ACTAAAACATTATCGATATTATTCAAGAAAATATACTTAACGCCATTATTAGACATTTCTTCTAAGTATC -CTGCCTTGTCTAAAGATTTAAACACGCCACCATTACCATTCGGCGTTTCCATAATACGACCCTGTTGATT -TAAAATTAATTGTCCTGCTTCACTAAGCGCCACAATATTATCTTGCTTAAAGAAATGGATTGATTCTTGA -TCATAACCAAAGTAGTTATGTGATTCAAAATAAGCTAAAGTTTCTTCATGATTGATATCACTTGTCATAA -TGTACCATTGAATTTTATGACCAGTTTGTCGATGTAGTTCTTTTAATTGTTTTGCCTGAAGTTCAAATAA -ACTTACACCTTCAATTTCGAATGAACCTTTAGGTCCTTTATATCCAAGTCTTGTTCCTTGTCCACCTGCC -ATCAAAAGTACTGCAAATTGTCCTTCTTTAATAGCTTGAAGTCCTTGTTCCTCTAAACGCTTAATCTCAT -CATCACTCATTTGTGATTTAATATCATATTTCACTTCAGAAACTGCAGATACATCATCTATCGTTTTCTT -ATTGATGTATAAATCGTTATATAATTTGGCAATAAAATCTAAATCTAATGACGCTACCTTCTCTTCAAGT -GCTTCTTTTTCATTGTTACTCATTATTTTTTCATATTCACATAAATGATCTTGTTTATATTTAGCTAATT -GATTTTTATCTAGCATTTTATGCCTCCTGCTGAGTTTGTAACCTTTAATAATTTATTTTCTATAAAAACT -TAGTATTCCAGTTGCTTATTATATCATTGATGAAAGGCTGAAATAAAACATAAACTGTTCCGATCATTAA -CGCAGTAGCTAAAGATAAGTCTACAAGTCCACCTGTTTTAAATTGAATCGGTGTCTTCACATTAAACGGT -AACGGATAAAATAATTTCACGCCTTTTGGTGTTATCATATCTAGTATAACATGTGACACTAATCCAATTA -TAATTGCTGCCATATAATAATTAGGCGTCTGAATAATTTGCAATAAAAATGCTATGATTGCGATAAATAA -TATTGAATGCGTAAAGGTTCGATGTCCAAAGATCAATCTCACAAAAAAACTAATTACCTTAAACCTTCTG -CCAATCTTACTTTGAGTGTGACATATATCGGGTAATAAGCTAGCTAGAGTTGCTAGAATGATAACCGTAA -CCGACGAAAAAATATCCGTTTGAAAATATTGTGTTGTTAGCGCTCCAACGAGCATGCCGCATGAAGCATG -TGTTTTACCTGTCATATTTGTTCTCCTTTAATACTCATATTTTACCATAAATTCGCCAAAAACACGAACA -TATTTTCGTGTTGAACTTCATTAGTATGACACAATTTAAAAAAGTATCACATAACTCTTGAAAACGATTA -CAAAATCGTTTATGATGTATTTACAAAATATTTAAAGGATGTGTTTGAATAATGGCAATGACAGTAAAAA -AGGATAATAATGAAGTGCGTATTCAATGGAGAGTTGCTGATATCAAAATTCCTACAAGTGAAATTAAAAA -TATTACACAAGACCAAGATATTCACGCAGTTCCTAAATTAGACAGCAAAGATGTATCTAGAATCGGCTCA -ACATTTGGTAAAACGAATCGCGTTATTATCGATACTGAAGACCACGAATACATTATTTATACTCAAAATG -ATCAAAAAGTTTACAATGAATTAACTAAATAAATTGTATAAAAAAATCATTCATGGTGAGGGCTTCATGA -ATGATTTTTTTAATTGATTCAACACCCAGCATAAACAAATACAAAAGGACAACTGTTTTCACAATTTTAA -CAGTTGTCCTTTTCTATATCTAATTACAATAACAAGTGTGCCATCAAAGAAATAATTGGTAGTGTAATGA -TTGTTCTAATCAAGAAAATCATAAACAATTTGCCGATGCTTACAGGAATCTTCGAACCAAGTATGACGCC -ACCTACTTCAGACAAGTATATTAACTGCGATATACTAAGTGCCCCAATAACAAAACGAGTTATATCATTT -TGTACACCTTCAATTAATATAGAAGGTAAAAACATATCGGCAAAACCGATAATAATCGTTTGAGAAGCCT -GTGCCGCTTCAGGTATATGCATTAACTCTAAAAATGGAACAAAAGGTTTACCCAAAATAACGAACAATGG -CGTGTAGTTCGCAATAATGGTAGCAATAGTACCAATACTCATCACAACAGGTAAAATAACAAACCACATA -TCAACAACCGTTTTCAATCCTGACTTAAAGAAGTCAACAATGCCCGGTGCTTTAATACCTACTTCTGTTG -CAGTATCAAAGCCATGTCTCAATGCCGTCTTTCCTTCTGGCAATGCCTCAGTACGCGCACTTTCAGGTAC -CTCCTTAGCATACTCATCAGGAATTTTATTTAAAGGCCAAATTCTTGGCATAATGACTGCTGCAACGAGG -CAGGATACTATCACTGATAAATAGAAAGCAAAAAATTGATTTTGCATATGTACTGTTTCAGCAACTACAA -TTGCAAAGGTGATAGAAACTACACTAAATGTCGTTGAAATAACTGTTGCCTCACGACGAGAATAATATCC -TTCACCATATTGTCTACTTGTAATTAAGACCCCAACAGTTCCGTCTCCAATAAATGATGCTAAATTATCT -ACCGTCGAACGTCCTGGCAATGTAAATAAAGGTCTCATAACCGGTCTAAAAATAGGACCCAACATCTCTA -ACAAACCGTATTCCATTAATAGTGGCAAAAATAATGCCGCAAATAAGAATACTGCCACTAAAGTTGGCAA -TAAACTCGAGAACAATAATCCACCCGTTTCATCTGAATATATTACTTTTGAACCAATTCGTAAAAATGTC -ATCCACGCAAAGACAACGGCAAGTAATCGCAAAATTAACCAACCTATTCTTACATTAAACGCATTATGCA -ATAATCCATCAGGTTTCAATTTATCTTTTAAAATAGTTGAACAAATCAGTGTTATGATACCCGACAAAGT -AATTATCGTCACAATTAAAAATGGCATTACGCCACCTAATACATCTTTAAGAACGCCTGCTAAAAATGCC -ACTGGCAACGTTGTTTGCTTCTGTCCATCTTGTTCGACTGGAATTGGTACTAGAAATAATAAGATACCAA -TTAAAGACATCGTAATAAACTTAAGTCTCCCAATGACTATCTCTTTCCTTGAAAAGCTATCCATAAAATC -AATCCATTTCTCTATGTATTCGTTTTAAGTATATACAGAATTCTATTCAGTTAACAAACATATTCCTTAT -CATTATATCTTTTAAAATGTTTATGTATGCAAAATAATGAATAATTACAGTTATTAAATATACGCTATTT -CTTGTAATTTTTCAAGATGAATTCAAAAAAGGTTAAGTACAATTACTGATTTCGTACTTAACCTTTTATA -AACTCTAATCATATGTTAGTTATTTCATTCTTCGTAATAATATTAAGAAGTATGGTGCACCGATAATTGC -AATGATAACCCCTACAGGAATATCCAGTGGCGGATGAATGCCACGGGCTAAACCATCACCAAATGTTAAC -AATATAGCACCAATTAACCCCGACATGATAATAACGTGTAATGTTTTATTTCCTATTAACTGTCTCGCAA -TATGAGGTGCAATTAATCCTAAAAAGCTAATACCACCGACAACTGAAATTGCGGATCCTGCTAATATTAC -TGCTAAAATTAGCAATAGCATTTTAATAGTTTTAACTTTTAAACCGAGTGCGGTTGCAACAGCATCACCT -AGATTCAATACATCTAATTGATAACTCAATAAAATGATGATTGGTATCGTTATTAAAAACCAAGGTAATA -TAGTATAAATATTCGACATATCATGTCCATATAGACTACCCGTCAACCAAACAAGCGCTTTGTTTGCTTC -CAGTGGATTTCTGATTAATAAGAACTGCACAATCGCCGTACATATTGCGCCTATTGCTAAACCAATTAAG -GCAAGCTTTGAACCTTTAACATCATATTTTGAAATTAAAAATGATAAAAATAAACTTACTGCAAAGGCAC -CTAAGAATGAACCTATAGGTAATACAAACAATGGTGCTGTTGGAAAGATCATAATAATAATCACAGCAGC -TAAACTGGCACCTTTAGAAATACCTATAACATCAGGTGAGGCTAACGGGTTTCTTATTACAGCTTGTATA -ATTGCACCTGATATAGCCAAGCTACTACCGATAATAATACCAAGTAACGTTCTAGGTATACGATACTCAT -TTAAAATAAAATCATCTTGTGTAAAGATTCCCTTAATAGCATCAATCGGGTGAATCATGACAGACCCTAC -ACATAAACTTATGAATATACTCACAATTAAAAGGATTGTGATTAAACTATAACGACGTATAATTTTCGTT -GTCATCATATTCTTTTCACCCCTTTAATCGTTATAAATAAGAAGTAAAGTGCACCTACGAATGATGTAAC -AATCCCTACTGGTGATTCATAAGGATATGTAATTAAACGACTTAATACATCTGATAGTAGTAATAAATCT -GCACCTATAATAAATGTTAATGGAATCATGACTAAATAATTCTTACTCACATAGCGCTTGACGATATGTG -GCACAATTAAACCAACAAAGCCAATTGGTCCTGCTATTGATACAGACATACCTGTAAGAATAATAACTAA -TAGTCCAATGATGATTCTAACTTTATTTATATTTTGACCCAATCCCTTAGCAATATCATCGCCAAGTTCC -ATTATCGTTAACTGACGACCAATAAAGACTGTTGCAATTAATGCACCAATAAGCCATGGTAGAATGGTTA -AAATCTCATCCCACTTCATACTGGATAATGAACCAACAAGCCAAAACATCACTTGTTCATTAGAATTTTC -ATTTAAGATTATAATCCCTTCAGTCATACTACTAAAAAATAAATGAATGGCCATACCAGCCAACGCTAAT -TTAATAGGCGTCATACCTTTTGTAGCACCAGAAAGTGTGTAGACAGTTAATCCACCAATAAAGGCGCCAA -TGACACCTAAATAAAGTGAGTAGTATTCTAATGATGGAATAATAATCGTTACTAATACAATGACAAATGA -CGCGCCAGAACTAACACCAAAAATCTTTGGAGATGCCAGTGGGTTACGAGTCATTGCTTGCATTAACAAA -CCAGATACCGCTAACGCACCGCCAATAAATAACCCTGCAATCATCCTTGGCATACGTACATTATGTAATA -AAAACGTTGCTTTTGTATCCGTATGACCAGTAACATAGTGAACGATATCGCTAAAATTAATTTTTGAAGA -ACCAATTGCCATATTTAAATATACACAAATAAAAAGAAAGCACACACTCACCATATACGTGAGTGTTGTG -CGTCTTTTTCTTTTATGATCTATGGCAGATTGGCTACTTAATTCTTTTATAGCCATTTACTTCCACCTTA -CTTTTGTTCTTTTTTTGATAATTCAACAAGTTCTTTAGCCATTTCTTCAGAAGAAATTAAGCCACGAGAT -CTTGCCCAAACATCACGGTCAACAATATCAACACGATTATTTTTAACTGCATTCAATTTTTTCCATGTTG -CATCTTCTTGTAACTTCTTGAATTCAGCAGAATCTTTTTTAGCATTATCTGTCATAATAATCATGCGTTC -AGGATTTAAGTCAGCTAAATGTTCAGTATCTAATTGTAAGTAAGGTCCTTTCAAGTATTTACTTAAACCT -TTTGTTACATCATCACTTAATGCATTTTTAAATCCAAGTTCGTTTAAAAATTGTCCAACATACGAATAGT -TTGGATGTGCTAATAAACCAGCTTTCGCAACAACTGCTGGAAGCACTTTTTGATTTCTATCAAATTTAAT -TTCATCTTTATACTTATTGATTAATTTATCATGTTCAGCAAGACGTTTTTCGCCTTCTTTTTCTTTATCT -AAAGCTTTCGCAATTGTCTTGAAAGCATCGATATTTTGCTTGTAGTCACCATCAAAACTCTTTAATGATA -ATGTTGGTGCAATTTTGTTTAATTCTTTATTAATACCTTTATGTCTACTGCTATCAGCGATAATTAAATC -CGGTTTTAATTTACTAATTTCCTCTAAGTTTGGCTGTTTACGTGTACCTACAGAAGTATAATCCCGAATT -TTTTCTCTAACTGGTTTAATGATACGTTTTTTCTTACCATCATCAGCAATACCAACTGGTTTAACGTCTA -ATGCTGCTAATGCATCTGCAAATGAGTACTCTAATACAACGATACGTTTTGCATCTTTAGGTACTTTTAC -TGTACCATTTTCATCTTTTACCGAAATAGTATCTTTAGTTGATGATTCTTTTTTACTTGAATTATCCGTA -TTACCACAAGCTGCAACTAAAAATAAGGCAACTATTAATCCCAATATACTAAAAGTTTTTAGACCTCTCA -TCGTTCCACTCCTTAATATGTATAACTTCATTTATTATTTTATTGATAACAATTATCATTGTCAAGTAGC -GTTCAATCTTTTTATATTACTAAAATGTATGACTATATTTATTTCCTCTAATAATTATGACTACAATTAG -CACATTTCCTTAGACAAAATACTGATAATGTATCATGGCTATATCATCTTTGAATTAATACAATTGACAC -CATTTAGCATGACCGTTATCTCTTTAATTCAGCTGATATTACCTATTGCAGTTTTATGTGACGAACTGTT -GCACTTAATTTGATAAATCATTAAATACAAAAAATCTAAGTTGAACAATTATCATACAACCGTGCAAACG -ATATGTAGTATAACTTGTCAACTTAGACTTATTGATAAATATATTAATATTGGTTCACCATAGCAGGAGA -TTTCACATCAAAATTTTGAAGTAGCGTATCAATCTTTGAATCATCAATATATACCTTATGTAAATTTTTC -ATATACATCGAATGAGAAAGTGCTTCATAATTAAGTGAAAAACTAATATGATCTCCTACTTGATAGTGTC -CTTGACCATTTAAATCAAGCATTAAATGATCACTCGAAGCGCCTAAAATATTGATATGCTGATCCATAGG -TGAAATATTATCGACTTTTGTATCTAAATACCCAATATCTACAATAGCTTGTATGAATGATTCATGCGTT -TGTGTATTAACTCGAGGTTTAATTTCTAAAATCTCAGCCTCCAATGTAATCGCATCTTGATATAACATAG -CTATCGCTTGATTTGTAGTTGTATCAACACCTCTAAACAACGTTTCACCTATTCGCAATTCATTTATTTT -ACCCAAATCATTATATAAAAGTTGTGGTAACATGCTCGAATTACCACCTGAAATAATTTTCAATCGATAT -CCTATTTCTCTTTCAACAGCTGAGACGAATCGATTAATCATAAAGATATCATCATCACTTGGCGCATCAG -ATTTAAAACACATAAAATTGAATGCTAAACCAACAAAATGGATATTTTTCAAGTGAATAATCTCTTTAAT -ATAATCTAAAACATCATAAGTCAGAACACCTTCACGGCCATCTTTCCAATCTACCATTAATAAAATCTTA -TGTTTTTTTCCTAAAACTTCTGCTACTTCATTTATATGATGTATGGTAGATAATTCTGTTTGGATACTCA -TATCAACTTTTTCTATCATATCTGAAATCTCTTTTTTGGCAGGCGTACGCAATAACGTATATGTTAAATC -CTGATCTGCCATACTAATTATGTTATCCAATCTGGATTCTGCAACATGATTGATACCTAACGCTTTTAAG -CTTTCTACAATTGTACGGTCACCAGCTATGCACTTAATTACTGGTGTGAATTGAATATTTTTACTTTGAA -AAACTGTTTGAAGTACTTTGGCGTTATATTTAATCTTCGATATATTTATATTAACGTGTGCCATGTAGTA -CTACACCTCTTTTTTTATCGGATTATCTAACTCAATATTTAAATATTGCTTTACTTTATTTTCCATTCTC -ATATTTAACAACGCTTTGACAGTAATTGTCGGTCCAAACAAAATATCTTTTAACTCATTTGCATGTGGTA -ATGTTGGGTTAATGGCATGCGCTACTACTTGCTGTACTATGTTAAATAATTCGGCTTCTTCAACACAATC -ATACTGATTAAAATGATGGATTAATTCTGCCATTTGATTTTGAATAACAGCATGTTGGAATTTTGCAATC -ACTGCATCTATAGAATCAGCTATTAAACTATCATTTGTAATTTTAATATCTGATACACGATGTTGTAATG -TTTCTAAATCAATTCTAGAACCACCTAAATCTCTCACTAAAAATTGAATGTCAAAATGTGGCCCCAAGTT -CACTACTGTATTTTGCATGTGTGCTTCTAATGCAATTCCATAATTTTGAATAAAAGCAATTAAAGGCGGG -ATTAATGCTTGAGAGTATCGTTCAATAAATGTCGTAATACTTTCTTTAGTAATTCCTTGATTTAACCACT -CTAAGTAACTATCCACGATAACTTTTTGATCTATTGGATTTTTATTAACTAGACTTGCACTAACTACTGT -TGCACCTTTTCCATCAATTTCAGGCTTTTGTCTTATAATACAAGCAAGCTGACGCGCCCTATCTTTATCA -ACATTTGCATATTCACCGAACGGTTCCATAGCAACTTTAAATCCTGGATATTGATTCAACATGTTTTGTA -AAGCATAACTTAACTTTGGTCCATCTACAGTAGTCACAGTTGAGACTGTTCTAACGGCACTTGTTGCTTG -TGCATCGACGGGCAACTTAACATGATATGGTTTATCAATTAAAGACATCGTCCTGAATGATAAAGTTGCT -TTTGAAAGTATTGTAAACGGCGTTGGAATTAATATTTTTTTAGCAATCCATGCTTCAAAATATTTCCCTA -TCGTATGATCATATTGCCAAGGATGTACTAAAATCGCTCTATAGTCTTCACTTTTCAAACCTAAACTCTT -CAAAAACACACGAATCTGATTGTAGTATTCGGGAATTATTTCATCAATAATAAATTGATCATTACCATCT -ATAGCTGTGCACACAACATGGTCTTTTTCAATCATCATAATTTGCAAAGGGATTTCTTTTTCAAACTCAG -GTGCATATGCTCGTACTTCTTCCATAGTTAAGGGCAATTTCGTTTTGGTTAAAGGGTGTGTTGGATGCCC -CTCTGGTACCAAACTCTCAGAATAAGTTAAATCATCTGTCTTATCACTATCTTTTACATGTTGTAACCAT -GAAAAAAAGTTAATATCTTGTGGTAATCTTGAAAATTTAAAACTTTGACTTATTAATGTTTGTCTGTGAG -ACATTTGCTTATATGTTTCAACTAAACTATCTCGACTGTGTATTAACTCTTCGCGTAGTCGCTCTGAAAT -AGGGATATCAAAGTCATGATTCAACACATCTAGTAGCCCTTCTAACGTCATGATTAGCGACGTTTCACCT -TTATTTAAATAAGTAATATCACCTGTAAACTCATAGCGTTCTAATGCACTTTTTCTAACAACTTCAATAG -TCAACACATGCATATGATACTGAATTTCAATTAAAGATTCTTTTTGTGAAATAAATGTTTGCTCGGGGTA -AATACGTTCTTTAATAATGGCGTTAATTACACGATATTGAATATTTCTATCTGCCTTTGCCCATTCAAGA -TATACCATGATTACTTTCCTCCAACTTTAACTTCAACTTTCTATTTATAAAATAGAATACCATTGTAATG -CATATAGTACTTATTCCCATTATTGAAAAAGTTCTAACAATGCCAAACACATCTGCACATATACTCATCA -ACAGACTTCCCAATGGAATCATACCTCTATCCATCATAATAATACTCAGTACTTTACCACGTTCATAATC -TTTAACATTATTTTGAAAATAAACGCGATTTGTCGTACGTGCCCATTGACTAAATAACCCAATCAATGTA -ATACAAATGAACATGATGACAATATTGTGAAATACCACACCTAACAAAGCAATACCAAATAAAAATGAAC -TTAAATAATACATATTTACCATACCAATATATTTAAGTACTCTAGGTAAAACTAGCGTTGCAATAATACC -ACCAATGGCACACATCGTCATAGCGATACCAAATATTTCAGATTTCCCCGGAAATACTTTGTTTGTTAAA -ACTGGTAAAAGTGTCGTATATGAAAAACCTGTCGCCATAATCAATAATGATGTTATAAATATTTGTCGAC -CTTCCATATGTAATTTGAAGTAATCTATAATGACTTTTAACGGCATGTACCTTGTTGCATCTTCAGGTAT -TTTAGTTACTTTAAAATGTAATGGTAAGCATAATAAAACTGCGATAAAATAACAAATTGACTGTGCAAGA -AATGTTGTTGGCGCATGATAGACTGCTAATATGACACCAGCAATGGCAGGCCCTATTGAACGACAAATAT -TAATGATGAATGAATGAAATGATACAGCTTGTGTAGTAGATATTTTATCTGATAAATCTGGTAAGATTGC -TTGTCTTAAAGGTGTTTCAACTGCACTTAAAATCCCTCTTAATGTCGCATATATAATAATGACGCTAATT -GGAATTGCAGTGAAACTATACGTAAGCACACATAAAATTGCAGTTACTAAAAATGATGATGAAATTGTAA -TTCTCAGCAATCGCCCTTTATCATATTTATCGGCAATTGCCCCTGCCCACACACTTAGTAATAATATTGG -TACAAGTCTGCAAAAATTGACAATCCCCAGATAAACTGCGTTATGATAAGTGGTAAGTACAAACCAATTT -AGCCCTATTTGTCCAATCCAATTACCTAGAAATAGTAGAAAAGAACTGCTAAAAAAATATTTTGTCATAA -AACTTACACCCGCATTCTGTTGATAATAAGAATCATTATCATTAATATGGATTATACAAATCTATCTTGC -TTTTGTAAAATATTTCATAGAGGTGAATTATGAACTTGAACTTAATTTTTAAAGAACAGACATTAAAATT -TAACAAAGAAGAACAAGAAACATATTTATTTTTACAACAACATAATAGCGATTGGGCTAATATTTTTAAA -GAGATGATTTTACAAGGAAGAGATAAAGTCACTCAGAGATTAGTCACATCAATGCATCGCGAAAACTTAG -TTAAAGCGCGCACTCAAAGTAAGAAAATATTGAGTCGTGATTTGATTATGTTAGATATCTCAACGACTCA -TATACTAGAAATCCAGTTCCCACAAGCTAAGCAAACATTATATGCTCCTATCACTGGAGAACACGCCTTT -GATCGAATTGATGTTGAAGGCCCTTTCTACATTAAAGATAACATTACAAATATGATTACACGAGTACACC -ATCCAAATGAAATTCTTGAGTGTATTTTAATTGAAGCACCAGATTTAAAAAATGCTGCTAGTGATCAATT -TCAGCAAGATTTAATAAACAGTGCAACTAATATGACATTTGCGATGAGCTATCAAGCACTGTCAATGCAA -CATGATTCTACACCTTTATTTAATATTATCGAAAATAGCGAAGATAGTTACTTGCGTTCAGAGCAAGCCG -TTATTGAAGGTCATCCGCTACATCCCGGGGCTAAATTACGTAAAGGTTTAAATGCATTACAAACATTCTT -ATATTCTTCAGAATTCAATCAGCCTATTAAGTTGAAAATAGTACTGATTCACAGTAAATTAAGCCGTACT -ATGTCACTGTCTAAAGATTATGATACAACTGTTCATCAACTATTTCCGGACTTAATTAAACAATTGGAAA -ATGAATTTACACCAAACTTTAACTTTAATGATTATCACATTATGATTGTACATCCATGGCAATTAGATGA -CGTATTACATTCTGATTATCAAGCAGAAGTAGATAAAGAATTAATCATTGAAGCAAAACATACGTTGGAT -TATTATGCCGGTTTATCTTTCAGAACATTAGTTCCTAAATACCCAGCTATGTCGCCACACATCAAATTGT -CGACAAACGTTCATATTACAGGTGAAATTCGTACATTATCAGAACAAACGACGCACAATGGTCCACTAAT -GACACGTATTTTAAATGATATTTTGGAGAAAGATGTCATATTTAAGTCCTATGCATCAACAATTATTGAT -GAAGTTGCTGGTATTCATTTTTATAATGAGCAAGACGAAGCAGACTATCAAACTGAACGAAGTGAACAAT -TAGGTACATTATTTAGAAAAAACATATACCAAATGATTCCACAAGAAGTCACACCAATGATTCCTTCAAG -CTTAGTTGCAACCTACCCATTTAACAATGAATCACCTATCGTGACATTGATTAAACGTTATCAATCAGCT -GCATCATTGTCTGATTTTGAATCATCGGCGAAATCGTGGATTGAAACTTACAGTAAAGCATTGCTTGGTC -TCGTAATCCCACTAGTTACTAAATATGGCATTGCATTAGAGGCTCACTTGCAAAATGCTATTGCAACATT -TCGGAAAGATGGTCTATTGGACACGATGTATATTAGAGACTTTGAAGGTTTAAGAATTGATAAAGCACAA -CTAAATGAAATGGGATACAGTACATCTCATTTCCATGAAAAATCAAGAATTCTTACTGATTCAAAAACGT -CTGTGTTTAACAAAGCCTTTTATTCTACCGTTCAAAACCATTTAGGCGAATTAATTCTTACAATCTCTAA -AGCATCGAATGATTCAAACTTAGAAAGACATATGTGGTATATCGTTCGTGATGTACTAGATAACATCTTT -GATCAACTTGTACATTCGACACACAAATCTAATCAAGTAAATGAGAATCGTATAAATGAAATTAAAGATA -CCATGTTCGCGCCATTTATAGATTATAAGTGTGTTACAACAATGCGGCTTGAAGATGAAGCACATCATTA -TACTTATATTAAAGTTAACAACCCTTTGTATCGAGAAAATAATTAAAATTATAGAATTTCATTAATCGTG -AGCTCAAGGATTACATTAACTTATTAAATACAATCTATACAAATAAGAGAATAATACATTTTCCATATTC -AAATTATTAAAAATCACAAAAAAGCTCGGCACTAAAATGGTGTGCCGAGCTTTTTTATCGAATAACTTAT -TGTAAACCTTGTCTTTCTTGGTTATTGTTTTCATTATTTTTTTCGTGTTTTTGTTTCCACTCTTTTTGAG -TCATTACATCGTCAACTTGCATGTTAACTTCAACTACATCTAAACCAGTAATATATTTAACTTGTTCTTT -AACTAATTCAGTTACTTTACGGAAGATTTTAGGTGCTGATTCACCATATTCTAAAATTACTTTTAAGTCT -ACAGCAGCTTGTTTTTCACCAACTTCAACAGATACACCTTGTGTAACGTTGTTGCCACTTGAGAATGCAT -TAGTGAATGTATCAGTTAAGCCACCTTTCATGTCTAAGATACCTTTAACTTCACGTGCAGCGATACCAGC -AATTTTTTCAACAACTTCATCAGAGAAAGTTAATTTGTTTTTGAATTGAGGCTCTTGATTTTGTTCTTGT -TGTTTTTGACGCTCTTCTCTTTCTTTTTCGTTAACACCAGTTTGATTGTCGTATGCTTGTTTTGCTTTAT -TGTTATCTACAGTCATAATAGATTCTCCTTTTACTTGTTATTTTTTATATTTTTTTAATTAAATTCTAAA -TTGATGAATTAACTCCATCGATTTAAAAAATTCATAAAATCTTGCTTACGGTCTTTCATATACCCAATAC -CTACACCAATTAAACATAAAACGATGATAAGTATTGTTTTCCAAAAACCTAACGTTAAGAATAATATCGC -GATTAATAGAAACGCTAAGAAACCAACGATTCTCCATTTAAATACTTTTAAAAAATTAATCACTTGTTGT -GTAGAGTCTTGTCCGTTTTGGTTATGATTGTTAGCCATGATATACCTCCCTTACAACACTCGTGGACCAG -AAGTTTTCTGATCTCTCACATTTACTTCTAACTTACGTACTGGCATTTCTGTAAAATGTTCTACATTCTT -TTTAATATCCGCACGAATTGCTTCAGTTAAAGATTGTACCTGAACATTATTCGGTACGAAAAAGTCAGTT -TTAATGTCGATATAAGATTTATTTTTTTTGTTATATAGTTTTGCAACTACATTCGGTTGTCTTACTTGGT -CATATTTTGCAACTGTATCAAATGCAGTTTTTTCAACAGCTTTACGAGATACGTAAACATGACCATCATC -GAAGTCTTTGTATAATCCAGGTTTTCGATGCGTAGGTTTGAAGATACTAAATACTAATATAAGACCTATT -AATATCAATAGTGCAGCAAGTGAAATAAGTAATGGTTGGAACCATTCAAATTGAAGGAAGTAGTCTTGAT -ATTCAGTTATACGTCCATCTTGGATATACATGAATAACAGGAACCCCACGATTACTACTATTAATAAGCC -AAGGATAAAGTTTTTAAGTCGTTTCACCCCTAACGACACCTCCTTAGTTAAAGTTAATTTAAAAACATAT -TAAATATGTACCCATCAGATTTTTTCTTAAACATAATAAATTAATAACTTTAAATTTATTTTTAATATAT -AAGATGAAGTACCATTTAGTAATATATTCCCTAGTTTTTGTAAATAAAACCTCTTTGTTAATTAATTTTC -GTCAATATGTTTTGAAGAACGATATTCTAATACGTCTGGATCACGATGTTTAATTAAAACCTTATTACTA -TTTCTAGGTTTTTCTTCACTTAAAGATTTTAAAAGCGACCATATCATCGCAATAATGACCACGGAAAATG -GCAACGCTGCGATGATTAATAAATTTTGTATCGCTTGCGTACCACCTGTGTAAATCATAATAATTGCAAA -TAATGCCATAATGATACCCCAACTCACTTTGACAAATGACTTTGGATTAATATCACCACTTGAACTCAAC -ATCCCTAAAACATAAGTTGCCGAGTCCGCTGATGTAACAAAGAAAATCATAATAACAAGTAAAGTAATTA -AGCTTAATACAAAACCTAGTGGGTAATGTTGTAGCGTTGCAAAAGTTGCTGTTTCTGTCGCAGCTTTAGC -AATTTCGGCAATATGATTATCTTGTAAGTAAATTGCTGACGCGCCGAATACCGCAAAGAATATAAAGCAA -ACTAACGCCGGGACAAAAAGTACACCTAGAATAAATTCTTTAATCGTACGTCCTTTTGACACACGTGCAA -TAAATATACCTACAAATGGTGCCCAAGATATCCACCATGCCCAGTAAAAGATTGTCCAATTTTGTAACCA -TTGGAATTTTTGACCGCCAGACGGAATGCGTAAACTCATACTAAAGAAATTTGCAATATAATTACCTAGA -CCATTCGTAAATGTATTTAAAATGTAAAGCGTTGGCCCAACAATAAAAAGACCAAGAAGTACTACAAAAG -CAAGTAACATGTTGATATTACTCAACGTTTTGATACCTTTATCGATACCTGACCATGCTGACCAAGTAAA -TAATATAGTTGCAATGACAATCAAGATTACTTGCATCGTGAAGTTACTCGGTACATTAAATAAAAAATGT -AAACCTTCGTTTATTTGCAATGCACCGAAACCTAATGTTGCAGCAACGCCTGTTACTGTAGCTATGACTG -CCAATACATCAATGGCACCACCTAAAGGGCCACGCATTGCTTTTTCACCTAATAAAGGCGTCAATGTAGC -GCTGACTAAGCCAGGATATCCTTTATGAAAGCTAAAATATGCAAACACAAGCGCGACAATACCATAGACT -GCCCATGCATGAATCCCCCAATGGAAAAATGAAAACTGCATTGCATCATTAATAGCGGATTGCGTGCCAG -CTTTATGAATAGGCGTTAATTTGAAGGCGTGACTGATTGGTTCTGCCGTTGTCCAGAACACAAGTCCTAT -ACCCATACCAGCACTAAATAACATAGCAAACCAAGATGGCAATGAAAATTCTGGGTCTTCACCTTCTTCA -CCTAATGTAATTGATGCGTATCTTGAAAATAATATATACACACAGACAAATAAAATAACTAAAACGAGCA -ATAAATAATACCAAGAAAAATGTAGCGCAATAAATGAAGTAATGTTTTGCGTGAGTTTTTCTAACTGTTT -CGGAAATATTGCACCAAAAGCAACAAATATCGTACAAATCACTAACGATACCCAAAACACTAGACTTACT -GATTTATTTTTCATAAATACAAACCCTTTCTGTGTAATGGTAAGTTCATACCCACAACTGCAACATTTTA -ATCATTTGTAATTTTATATAGACACAATTAATAATGCTTCATCTTTTAAAAATGATATATAAAATACTCT -CAAATTATTTATCATTGAACAACAAAGTATTTTATTGTATTTAAGTAATGCCTTTCTAATGCATTATTGA -ATTGATACCTGCAAAGTTGCCATATTTCACTTTAGAATCAATAGTCGCTAAACACAAAAAATAAGTCGCC -CTATACAGTATTTTCTGCATAAGGCGACTTTACTTACTAATCTATATATTAATTACTAATTTCCCAATCA -TTGACTGTTTTTCCAACAATAGATGTGCTTGATATAAGTTTTCAGGTGATAAACCTTCAAAAACTTGTGT -CGTTGTTGGTTGGTAATGTCCTGATTCTATATTTTTCGTAATATCTTCTAAATACTCATGTTGTTTAATC -ATATCAGGCGTTCGATGAATTGGACGCGCAAACATAAATTCATGTGTAAATGTTATACTTTTTAATTTTA -ATGCATTTAAATCTTGATCTTCATTAAAAGCTACGATAGTTGTAATATGCCCTAATGGTTTTATCAGTTC -AATCATAGTATTGTAATACAAGTCTGTATTATAGGTGCAAAATATATAATCTACTAATGGAATTTCTTTT -TCTTTAAATTGACGCACTAAATCCTCTTTATGATTCAATACGATATCTGCGCCCATCTTTTCACACCACT -CTGTTGTTTCTTGTCGTGATGCTGTTGTAATGACAGTTAAACCATACCGTTTAGCAATTTGAGTGGCAAT -ACTTCCTACACCCCCAGCGCCATTAATGATTAACACGGATTTACCTATATTTTCAGAAGGATTATGTGAA -ATTTTAAATGTATCAAAAAACGTTTCATATGCCGTAATACCAGTTAGCGGTAGACTAACCGCTTCATTAG -CGCTTATGTTGTGTGGCGCTTTTGCAACTATAGCTTCTGAAACCAATTGATATGTCGCATTTGATCCTTG -TCTATTTGGCGATCCAGCATAAAATACAACGTCACCCGGACTAAATAATGTAACGTTTGGTCCGATAGCT -TCAACAGTACCAATAGCATCAAACCCAAGTACACGAGGTGCTTGAGTGACTTCCATTTGTCGTTGTTTTG -TATCTACAGGATTTACACTAATGCTATTTACTTTGACTAAGATATCATCGTTTTCTGGCGTTGGCTTTCT -TTGTTCGTATACTTTAAATAAATTTCCTTCTTCCAATTTAAAGGGCTTTTCAAATCCTATCATTTTCATA -TCGTTTCACCTCATTTATGAACTTATTTCTTATTATACAAAATAGAAGCCATGTGTGCTTATGTCGCAGC -ATCATGACTCCTTTTTCATTTGAATATATAAATAATTACAGACGACTTTCGTATTACATTTTAGACTTAT -TTCTACCATGTTACTGAACAAATTTGCTTTAGATAAGAAAGTTATTAAATTTTGGTCAATTAACAAAGTT -GATTTGTAAAAATGTATACTTTATTATTCCGTAACTTTAATAACTTGTTTACCAAAGTTATCGCCCGTAA -ATAAATTTTTAAATGCACGTGGCGCATTTTCAAAACCATCTTCAATGGTTACTTGTGACTGAATTTTACC -TTCTTGAACCCATGTTGCGAGCTGTTCACTAGCTTCTTTAAAAGCATTAGCAAATTCACTTACTAAGAAG -CCTCTCATCATTACTTGCTTCTTAATAAGCGTACCTTGAATACGTGGTCCGATATCTGCTTCAGGATGAT -TATATGACGAAATTGCGCCACATACTGGTACACGTGCAAAACGATTTAAATGCTTAAATACTTCATCGCC -AACTGTACCACCAACATTTTCAAAATAAACATCAATACCATCTGGTACTGCTTGTGCTAACGATTCTGCA -AAATCCTCTTTCTTATAATCAATACCAGCGTCAAAGCCCAGTGTCTCTGTTAAATAATTTACTTTTTTGT -CGCCACCCGCAATACCTACAACACGGCAACCTTTAATCTTAGCAATTTGACCTACAACTGAACCTACAGC -GCCAGATGCAGCTGAAACCACAACAGTATCACCGTCTTTAGGTTGTCCAATATCAAGCAGACCATGATAT -GCCGTTTGTCCTGGCATTCCTAAGACACTTAAATATAAATCAAGTGGTACATCTGTCGTTGGAACTTTAG -TAATTTGATCCGCTTGGACATGATTAATGATTCGCCAAGGCAACATACCTACAACGACATCTCCTTTTTT -ATAATCTGCGAGTGTCGAATCAATTACTTTTGCAACGACATGGCTAACAATCGGTTTACCAATTTCAAAA -GGCTGTACATACGAATCTGCCTTAGTCATACGTCCTCTCATATATGGATCCACTGAAATATACAGCGTTT -GTACAAGTACACCATCGCTCTCAAGTTTAGGCGTGTCAATGTCTTCAATTTTGAATGTATCCTCTTGAGG -CATGCCTTCTGGTATTTTGTTAAAAAGAATTTGTTTATTTTGCATCATTAATCACCTTTCTTTATTTGAA -ACTTTTACTTACTTGTTACTTAAGCGTTAAGTTTGAATTGTGTCTTCGTGATGTCTGTATGCAAATACAT -TCTTAGTTGTTATATTTGGACTTAAGCACTGATTCATTCATGTAACTTCAACCACATTATATTTGCTATA -ATCATAAATTTAAAATGTTACGACTTAGACATTTTATGGAAACTCTCAAACAATAGATAATTTTTGAAAA -ACTCTAATATTACAAGCTTTTTTGCCCCCGAAAAACTAGCAGTTGCTTTATTTTTTCCATAAGAAGTCGA -TCAACTCATTAGCAACATTTTCATTCTCATGAAGCTGACTATGCTGTGCAGACTCACCTTCATATTTAGA -TTCTCGATAACTTTTCGGACTATTTCCCAGTAAATATTTTAATGATTTCGAAGAACTATTAGACACTCTG -CCGTCTGAATGTGTACCATCTTTCAAATCTCCATAAATATTTAGCACTTCGATACCTTTACCTTTATAAA -TATCTTTTAGCACGCGTAATTGCTGATAAGGTTGATTCATTCGACTTGGTTTACCATCTTTATCAACTGT -AATTTCATTGACATCTTCATTCATATTTAAAACGCCATTAAATGTCCCAGCAATATTCACTTGTTTGTTT -AACTGTGGCAGTGACTTGTCGTTACCATATGTCATCATATATTGTGCAAATGTTAAGTTCCCCATTGAGT -GACCGACAAAGTTGAATTTATCGAAATTGTATTCAGATTGTAACTTAGTCAGTACATTTTTAAACCACGC -AGCATTCTTATCCAAATAGCCTTGTCTGTTATTTTCAAGTTCAATTTTCACAATAGGATTCACTGCATCT -TTACTTAGTTTCCCTTTAAATGTCACTGCACCATCCTTTGAAACGTAAGCAGTGATGATATCTTTAGTTA -CCCCTCTTTTTTCTGCTTGCTTCACCATAAATTTTTCAGAGTTGGCACTACCACCAAATCCATGTAAAAA -CAATGTCGGAATTGGCTTTTTAACAAATTGCTGTTGTTGTATTTTAAATGTTTGTGCCTGTCGTTGACTA -AACACAACCGTAATAATAGTGCCTATAATAATAGCGACCGCTAACAATGTCGTACTAATTACAAAAATTT -TCTTCACACTTTTAACTCCCATTCATGTCTTTTATTTAAGTATAAAGGATGTGATTAAAAATGTCCTTTA -GTTGATTTTGAATACATCATTAACTTTAAAGATGACTTTGGAAAATTGTCCGTTAACGTTTGTTAATTGA -TTGCTTATTTAACTTTCAATCGTGTGTCTCCCATTGATTAATATAAAAATATGTATATGCATGTTTAATT -TTTCTCTTTTTATAAATAAAGACCTACCAGCACACGACTGATAGGCCTTTTAATATCTTTTATTATTTAA -TTTCTTTTGTTTCGGCTAACTCTTTGTACCAATAAGCACTTTTCTTAGGATAGCGTTCTTGAGTCTCAAA -ATCGACATAGAATAAACCATATCGTTTTTCATAACCATTTGACCAAGAGAACACATCCATTAATGACCAA -ATAAAGTAACCTTTAACATTTGCACCATCTTTAATAGCATCTGCAATAACGTTTAAATGTTGTCTTACAT -AATCAATACGTGCATCATCATGAACTGTTTTTTCAGATTCAATAAATTCATCTTTATATCCTAAACCATT -TTCAGTGATATAAATCTTATGATAGTTAGGATAATCTTTAACAACACGCATGATTTGATCATATAAACCT -TGAGGATAGATCATCCAGTCCCAGTCTGTGCGAGGTACGTCGACATCAAATTCACGTTGACCGACACCTT -TAAGTTGGTATTTAGAACCGCCTTTATCACCTGTCGCATTATGCGTAATTTCAGATTCTCCATCATAACC -TCTCATCCAATCACTCATGTAGTAATTGATACCTAAGAAGTCGTTTAAATCTTTGGCTGCATCTAAAATG -GCATAATCTTCATCTGTAATGTTTAATTTACCGCCATTAACAGATAAGATATGTTGCACACCTTCCATCG -TTTCACGAGAATACTCACCTAAATATGTTGCATCTAAGATGAATTTGTTATGGATGATATCTTCTAATTC -TGCTGCACGAACATCTTCAGGATTTGATGGATCGAACGGATATTTTGTTGGCAATGCGTGTACAACACCA -ATTTCTCCTTGATAGCCGCCATCTTTAAATAATTTTACTGCTCTTGCATGAGCAACCATCATATTATGAT -GAGATTGGAAAACTTTTTCAAAATCATATTTAATACCTGGAGGGAATTTACCTACTAAATATTGGCCATC -ACCAATTGGTCCAATTTCATTGAATGTAGTCCAATATTTTACTTCTGGGAATTCTTTAAAACAATATTCA -GCATAATCTACAAAGTAGTCAATCGTTTTACGATTTAGAAAATCGCCATCTTTGTGTAACACTTCTGGTG -TATCAAAATGATGCAATGTTACAAATGGTTCAACATGACGTTTATGACACTCCGCAAATAACTTATGGTA -ATACTCAACACCTTTAGGGTTAACTTCGCCATATCCATTTGGGAAGATACGAGACCATGCAATTGAAATA -CGGATACCATTAACACCGAATTTTTCACTTAATTCTAAATCCACTGGATATCTGTTATAAAAATCACTCG -CTGGTTCTGCAGTGTACCAATAGTTTTCTTCTAAATACGTATCCCATGCTACGCGACCTTTACCATCCGT -ATTTGTCGCACCTTCTGCTTGATATGCTGCTGTTGCTCCACCAAAAATAAAATCTTCAGGTAATGTTTTA -GTCATATGAAAAACTCCTATTCTTAATTTTCAAATTGTTGTTGAACGAAATCAAGGGCTGCTTGGCCATC -TCGTGTCAATTTGATATATTCAGCACCTTGAGTCTTCGCTAATTTAATACCTAATCTATCTGTATCTTGC -TTAATATCTTCATAGTTAGACGCAACTTGTGGCGCTAAAATGATTAATTGGTACTCTTTCATAATGTCCA -TATGTGCGCCATATCCGCCAGCTGCCGCTTTCACTGGCACATGATATTCTTCAGCTGCTTTATTAAGTGC -GTTGGCTAATAATCCACTTGTACCACCACCGGCACAAAGTACTAAGACATTTGTTTGTTCTGTGATATTT -GAAGCTTTAGCTGCATCGTCTGATACACCACTTGCCGCTAAAATTGAATCAGCTTTTTTCGTATCAAAGT -TTGCTGCAACTTTTTCTTTTAAATCTGAATTACTTTCTTTACGTCCTTCTTCTTCATCAAGAATTTCACT -ATCATAAACTTTTAGGAATGGGTAGTAAATAATAATATCTACAACAATTAAAGTAATCGCTAGTACGAAT -GACCATAAACCAAATCCAGTACCCATGATGATGCCGAGTGGACCTGGTGTTGTCCATGGTAAGTTCACAC -TAAAACTGTTCATTCCTAACACTTCAACGAAAAGTTTAAATATCCATACGTTCACAATTGGCGCTAATAC -AAATGGAATAAAGAACACAGGATTCAATACTAGTGGTGCCCCGAATAAAATCGGCTCGTTTACACCAAAG -AATGTTGGTACAACAGATGCACGTCCAATCGCTTTGTTTCGTTTAGATTTCGTCATCCACATAAACATAA -ATGGCACGACCAATGTTGCACCCGTACCACCAAATGTAACGATAAACATTTGTGTACCTGATGTAATAAT -TTTATCTGCGTGTTCACCAGCTTGAAGCAACTTGAAGTTCGCTTCGATATTCGCATATGTAATGGCTGCA -ATTGCTGGTTCTACTATTGATGGACCATGAATTCCTACAAACCAGAATAATGCAAAGGCACCAAAGATAA -TTGTGACACCTATCCATCCATCTGCTGCTGTAAATAATGGTTCGAATAATTTTAAAATACCTTCCGCTAC -ATTTGATTTAAAGCTGTTGCGAATGACTAAATCTAGTGCATAAAGAATGATGATTACCGCTGAAAATGGA -ATTAAGTCCTTAAATACTTGTGAAATATTCGGCGGTACTTCTTTCGGCATTTTAATTGTAATATTGCGCT -TCACACAGAAGTTATAAACAATAACAGTTACAAATGCTGATAAGAATGCTGTTAATAAACCTTTAGTTCC -CATAAACGCACTTAAGAATCCACCATCTTTGGCTGGATCAGAAGCTAAGAACAAGAATCCACACATCGCT -GCTAGCATTGTAGAAATAAAGTTAATTTGATTTGTACTTTCTAGCTTACGGTTAAATGAATCTGTTAAAG -ATTTCGCTGTCGTTCCTGCTACTAAAAATGCTACAAGCCCCATCGTATAGTTATATGGTTTCATTAAAAT -GGCTTCCATGCCTTTATCCCATTTAAAACCAAATATATTTGGCACGTATGCAATTAATAGAAAGATACTT -GAGAATAAGATGACAGGCATTGCAGAAATAAATCCATCACGGATGGCTCTTAAATATATGTTACGTGATA -ATTTCTCGAAAAATGGCTTCCCTTTTTCAATTTGTGCGATCAATTTTTGCATCATTGTCATCACCCTCTT -TTATAAAATTCTAATAAATGCTTCATTAAATCTTTCAGTAAAATTGTTGTCATTAAATGGTCTTGACCAT -GCATCATCGTCACACTGTATGCAATATCATCACCTTGCGCTTCTTTAGCTAATAAGCTTGTTTGTGCTCT -ATGCGCTTCAGCAATGCAATTGTTTCCTTCTTCAATCAGTGCATCTGCTTTTGCAAAATCTCCAGCTTGA -GCTGCTGTTAATGCTTCTAAAAACTTAGAACGTGCATCCCCTGCAAATGCAACAATTTCAAAACCTAATA -ATTGGACTTCTTCTCTATTCATAGCATTAATCCCCTTTTATACTTATTTTCTTTGTTTCCAAGATGTCGC -AGTATCTTTTAATACTTTATTTAAGTCATCAATATTTTTGAAACCAGTTGTACGTAACCATTCACGAGCA -GCATCTTCACCTTGTTCAATGTATACTTGAACAGCACCAGACCATGTAGCACGGCCACAAAGTACACCGT -TGAATTTAGCACCAGCTTCGTGAGCAAATTTTAAAGTTTCTTGGAATAATTCCGCAGAAACACCAGCACT -TAAGTAAATGTATGGTAAATGAGTTGATGCATCTTGATCTTTAAAGTGTTGTGCCGCTTCCTCTTTTGTA -TAAACCACTTCACCTTCAGCAAAGCCTTCTACATACTTCATGTTTACTGGTACTTCAACTTTCAATACAT -CAACGTTAAAGCGTGGTTCTGAGAACAATTTCATTGCTTCGTTAACCTTTCTAGGCTTAACTTTTGCAAA -TTCAACACTACCGTTATCAGGAATGTTGTCATCGTATGTTAATACTTCTAAAAAGAATGGAATATCTTCT -GCAACACATTCTGAACCGATTCTTTCAATATATGCTTTCTTTTGAATGTTAATTTCTTCAGCATCATCAA -CATCATAGTAAAGTAAGAATTTAACAGCATTTGCACCTTGTTCTTTTAAACGTTTTGCAGACCACTCTAC -TAAACAGTCAGGTAAACGACCTTTAGCGTTTACGTCATATCCAGTTTTTTCATAAGCAAGTAATAATCCA -CAATCTTTGTTACGTGCATCAGAAGCTGGTAAACCGTATTCAGGATCTAATAAAATTGAAGATGCATATT -GCGTTAATTCTTCCGCAACTAATACTTTTAATTGTTCAATTTGAGCTACAGTTGGTTCTTCAGTTTGATG -TTTTGCCATCATGCGTTTTAAAGCACCACGTTGGTCAAATGCTAATGCAGAAATGATACCTTCGTTATTA -CTTAATTGTTCAATTGATGCGATTTTTTGATTCGATTTTGACATTTTTTACACCTCTAAAACTTCAATTT -GATTGAATAAATCATCATAATTATTTAAATTGACATAACCTGTTTGTGCTTCTTGCGCATTCAGCATGCC -TAAAGTATTGGCTTTTTTTAGTAAATCGTGGTCGTTTTCATGATTAAGAATTGCTGAAGTAATTCCAGCA -ACTGTAGAATCACCTGAACCAACCGGATTTAATACGCTTATTTTCGGAATATTCACTCTATAGAATGTGT -GATTGTGCTTAGCGAACGCACCTTGTGCACCTAAAGACACAATAATCCACTCAATTCCTTCGAATAAGGG -TTGTGAAACTGCTTGTTTCAAACTTTCTAAACTTTCATCAAGTGGCTGGTTAAGCAACTGATATAATTCA -GAAATGTTTGGTTTAATGACTGTTGGTTTGTATGGATTTTCCAATACTGTTTGTAAAGTTGCACCCGAGC -AGTCTAATATCACAGGCACACCTTTGTTTTGGCATCGTTCAATGATTTGTGCATAATAATCTTGATTTAA -TCCTTTTGGTAAGCTACCTGAAATAGCAACTGCTTCAACTTTTTCTAGTAATTGCTCAAAATGTTTAATA -AATCCTGCAGCCTCTTGATTATCAATCTCCGGTCCCTGCTCTAAAATTTCTGTTTGTTGTCCTTCATGTA -AAATTGCAATGCAGTTTCGTGTTTCACCCTTAATGTTATAAAATGCATGCTTGATGCCGGCATGATCTAA -TTTTTTAGCAATAAATTGACCTAATTCACCGCCAATAAAACCACTCGCAAGGACTGGCTCACCTACTTGC -GCAAGTACTCTTGTTACATTTAAACCTTTACCACCAGCTGTTTTACTTACTTCTTGAACACGATTAACAT -CATCTAATTTCAATGCTGTTAATGGGTATGAAATATCAACGGATGGATTTAATGTTAAAGTTAAAATCAT -ATGTGTCGTCCCTTAATCGTGGTATTCGCCTCTGTCCCATTTTTCTAAGAATTCATCAAAGAAATGTGGA -TCAGCTTGATCTGCATTGCTTGTTTCTAAATGTTTAATTTTAGCGATTAATTTTTTGTTCTCTTCAGTTG -GTTTATATTCAGCATTAATAAATGCATCGATAATATCGCACATTAATAACTCACCAATAATACGTCCACC -AAAGCCAATAACGTTCGCATTTAATTCTTCTTTAGCATATAGCGCTGATGTCATATCACGTACTAGTGCT -GAACGAACGCCAGGTACTTTATTTACAGCATTGTTAATACCAACACCTGTTCCACAAATGCAAACACCTA -AGTCTGCATTACCGCTAACAACTTGTTCTCCAACTTTTTTACCAAAAATTGGATAATGTGTTCTTGTGAA -ATCGTATGTTCCTACGTCAATGACTTCATGTCCTTTTGATTTTAAAAATTCAGATACACGCATTTTTGTA -TCTGTAACAATATGGTCGCATCCTAATGCAATCTTCATAGTAATTTTTCCTCCTTAGCACATTTTATTAA -GCATATCTACGCGGATTTGGTGTCTACCACCATCGTATTTACCTTCAACAAAACCTTTAACGACATTTTT -CGCTAATGTGTCTCCAACAATTTCAGATCCCATAGTGATCATTCTTGAATTGTTATGGCCTCTAGTCATA -TATCCAGAGCGTTCATCTGATACTTCAGCAGCAATCATGCCTTTGATTTTTGTAGCAACCATAAAGCTAC -CTGCACCAAATGCATCGATAACAATACCTAAGTTACCTTCTTGACTTTGAACATCTTTTGCTACAGCCAA -AGTTGCATCAACAAAGTCAACTTCCTGTCCTTCTGTTACGTCAACAACGTCATATTTATTGTCTAATAAG -TATGATTTGATGACTTCTTTTAATCGTTTGCCAGCTTCATCTGAACCAATAATAATCGCCATAATAAGAC -TCCTTTTTACTTTAATTTTGAAATACCTTTCTTAAAATATGACATATTTATTTGTAGGTTATGAAAATCT -TGAGAAAAGGCTTTCAATTTGATTACGTTTAAATTATAAACATAAACAAACAATAAATCAACATAATATG -TTTATAATCTGTTTGTTTATGACATATTTTCAAACAATAAGTGAACATTCTTATTGTGGTGTTGTTTTAA -TTAGGTATTCGTCTGAAATTGTAGTAAAAATTTGTCGGGGTTCCCGTTTACATAAATTTGCAAAAAAATA -GCCCATAAATGAATGCAAATTCACATTCACTTATGAGCATATAGACACATATTTTAACAATGCAGTTATA -TTTTTAATTTAGTCGACTACTTCAATATATGTTTTAATCGTTTCTACTTTTTCTTCATCTTCATAGTCCA -TGACCACTGCAGTCAATTCGTTTAACTGACAAAATGATGTAAAATCTTCTTTCCCAACTTTCGTATGATC -AATTAGCAAGTATTTTTCAATTGAATTACTTAGTGCCAATTGTTGCGTATAAGCTTCATCTAATGTAGAT -GTCATCACAGCACCTTTATTTACTGCGTTACTACTAAAGAACATCTTGCTAAATCTTAGTTTTTCTAACA -TGGCATTCGCCATTTCACCTACAAATGCTTCTGTAATATGGCGCATTTCACCACCAATTAAATAGACACG -AAAATGTGCTGTTTGTTTTTCCAACAAAATTTTATACACCGGCAAACAATTCGTAATAATTGTGAGCGTA -TGATGATTGACTTCTTCTGCTAATAGTTCCACTGTTGTTCCTGGTCCGAAAAACAAAGTATCCCCATCTT -CAATTAATGATGCAGCTTTTCTAGCTATAAATCGTTTTTCTGCAATTTGACGGGTATGTTTTTCTTTATG -CGATATTTCTTTATACTGAAATGTTGAATTACTGCGTGCACCACCATGAATCTTCGTTAAAATCCCTTTA -TTTTCCAATTCAATTAAATCTCTTCGAACTGTCATATCAGACACATTTAAACCTTCGACGATTTCATTCG -TTCTTATCGTGCCCTTTTTATTCACTAGTTTAGCAATTTCGTCCAAACGTTCATGTTTATTCAATGTAAA -ATTGCCTCCTTTATTTAGGCGATGGGTCATTATCCTTTATGTTTAGACATCAATTTTAATATACATGCTT -ATTCTATAATAAAAATTGCGTAAAAACTAATATAATTTAACTGTTCGATTATATGTATAATTCATTTTTA -AAAAGAACTGTTTAAACTGCGCTTTTGATAATCGTAAAATGAATATACTATAATAAAAGCAAAAGACGTT -ATAAATCATTCATTATTTTGATGGGGTGTTTAACTTGAAACATGATTTAGAGACACTAAAACATATTATA -GATAGTTCGAATCGTATTACATTTTTTACAGGTGCTGGTGTATCTGTCGCAAGTGGTGTTCCAGATTTCC -GTTCAATGGGTGGCTTATTTGATGAAATTTCAAAAGATGGGCTTTCGCCAGAATACTTGTTAAGCCGTGA -TTATTTAGAAGATGATCCTGAAGGTTTTATCAATTTCTGCCATAAGCGCTTACTATTTGTCGATACGATG -CCCAATATCGTTCATGATTGGATTGCAAAATTAGAACGTAATCAACAATCTTTAGGTGTCATCACGCAAA -ATATCGATGGTTTGCACTCAGACGCTGGAAGTCAACATGTTGATGAATTACATGGCACGTTAAATCGTTT -TTATTGTAATGCATGTCATAAATCTTATATGAAGTCAGATGTTATTGATAGAACTTTGAAACATTGTGAT -AATTGTGGTGGTGCCATTCGACCGGACATCGTATTATACGGTGAAATGTTAGATCAACCTACCATCATAC -GGGCATTAAATAAAATTGAAGATGCTGACACCCTTGTCGTACTAGGTTCATCACTCGTTGTACAACCTGC -CGCAGGATTAATATCAAATTTTAAAGGCGACAATTTAATTATTATCAATAAAGATCGAACACCTTATGAT -AACGACGCTACTTTGGTCATACATGACGACATGGTTTCCGTTGTAAAATCATTAATGACAGAGTAATCAG -TACGTAAAAAGCATTTCCCGAGTAACAGGGAAATGCTTTTAATTTTGAAGTTGCGTATTCATTTTTTGAG -CTTGGAATTCGGAGTTTGGTTTTCGGAATTCGACGTTTGGAATTCCAAATTAAAATGAGTGAGAAATTTT -ATTTATTGCGTGCTTAACGATTTGGTTTTGTAGCGATTTTTATTTGATGATTTGTGTTTTATTTGATGTT -GGGATGCTACTTTTAATGGTTTGTCATTTGTTAGATTAAAAAATCAGATATCTTCGTTATCAAATTCCAA -TATTAAATCATTATATTTTTCAGAATATCTTGCATAATCTTCATTATTATTAAAAGCTAACCATAGACCT -CTATCATCATATAAATGATATATTAAGTTTTTAGTATTGTTAATTATATATATTTCAGAATAATTATCAT -TCTGATTGATATTTGGAACTAACCCTTTAAAGTCTTGATTGGATATAGCTTTTAATAATTTTTTATATTT -TATATCTTTTATGGAACACTTATATGAAAACTCCTCGCACAAAATATTATCATCCTTCTCCTTTTTATAT -TCTTTAAAGTAATACAATTCATCTATTGTTAACGATGTAAATTTTTTTATAACATTTGTTCTCTTATAAG -GTTCATTATAAACATATACTACATGAACCAAATTTATAGAATCAGAAGGCGAAAACAAATCTTCAAAAAT -GTTTATTGCATTATCATATACAGCTAAAAAATAAGTATTATTGATAGTTTTACCGTCCTCCAAAAACTGG -TATTTATCGCCACTTAAACTTAAATGAATTGCGTTTTTTACCTTTCTAAAATTCAACTTTTTTATATCAA -AATTATTTATATCAAAGCACATAATTTACAACACCTTATTCCCTTAAGATTTTTCCTTCTTTAGTTAAAG -AAGCTATTCTTTTTCCTTTGTTATTTATTAACTTCCAATAAGAACCACCATATGATTGCCCTTTATTTTT -GGAAATAGTCCATTTAATTTTTGGATATCTCCAGGTAGGATTTTTCCCTTTAAGCTTTTGAATAAATTTA -CCAATACTCACCCCCTTATCATTTAACAAACTTTTATTAACGTTTTTGGCTATATTATGAGTCTTTACTG -CTTTTAGATTGTAAAAATAATCGTCATGAATAATGGCATTTTCCGACATTCAAATTTTACAAAGTACATT -GTCATATGCATAATGATACCTGTAATTAATGTAATAATAGAAAAGGGTATATATGTCATATCGCCACCTG -CTATACAACTTATTAGATAATTAATTCCAAGACATATTAATTATCTAATTATAACCTTAGGTAAGTTATT -GCATAATATAAAAATTCATAATAGCTTATTTGCTTGCTCCTTTCACTTTTTAAGAGTAATAAATTAACCT -GAAACATAGACTTTAACATCCAAGTTTCAGGTTAGCGTAATGTAAATTATTTACTTTGTTATATTATGAT -TAAACATCTAATTCTCTGCTTGTAAGTGCTTTAATCATCTCTGGATCAGCATGTGAGAAAAATTGGCTAT -TACTTTCTTCTAATGTCGCAATTTGTTGTTTATCTTCTTCTGTAAGTTCAAAATCAAATATATCTAAGTT -TTGAGCCATACGTTCTGGATTCACTGATTTTGCGAGTACAACGATGTCACGTTCTACTAACCACCGTAAA -ATAACTTGTGCAATTGATTTGTTATATTTATCTGCAATGGCCTGCAACAATTGATTTTGGAATAATTGAT -TTTTACCTTCTGCAAATGGTGCCCAAGCTTCTACCACAACATTTTCTTGTTGAAGTGCTGCAACTTGTTC -TTCTTGTTGATGGAATGGATTAATTTCTATTTGGTTCACTTGTGGTTGAATTTGATTGTGAATACCTAAA -TCTACAATTCGATCAACGCCGAAGTTAGATACACCGATTGCTTTAATTTTACCAGTTTCTTTTAACTCTT -CTAATGCACGCCATGAGCCATATACATCATTGTAAGGCTGGTGAATAAGCACTAGATCAATATAGTCCAA -ATTTAATCGTTGTAATGATCGTTCGATTGATTTGATAGTATCTTCATAGTTAACATTTTCAATCCATACT -TTAGTCGTAATGAATAGTTCACTTCTATCAATACCTGAAGCTTCAATACCTTGACCTACTTCAGTTTCAT -TTAAATAACTTTGTGCTGTATCAATATGTCTATAACCCGCTTTAATTGCTTCTTTAACCGCTTCTGCTGT -TTGTTCTTGAGGAATTTGAAATACTCCGAAACCTAATACTGGAATCTTTACATCTTTACTTATTTCAATA -TGATTCATAAAATGAACCTCCTTTATCTTGTAAGTCCACTATAAACCATGGAGCAAACTCTATAGCAAGC -CAGAGGTTTACTTTCTCTCCCAAAGACGTTCAACATTGTCATCATGATTATCACTAGCATTGATTTTAGC -AATATGATTATCATAATTATCAATTTTATATTGTAGTAAATCTCTCGCATCATGAATTGTCTTTAAGTTT -TCATTTAATTCTTCGAGTTGCTTATTTAAAATTTGCTTTTGCTGTGCTTGAATATTTTCATTTTTAGGAA -GCTGCGCTAACCTACAAAATTCGATAAGCGATTCAATACTGACGCCTGCATTTCGCAAATTTTTCACTAA -ATAAATCCAATTTAAATCATTATCATTGTATATTCTATATCCATTTTCATCTCGATTAACAGGTGGAATC -ACACCAACCTTTTCATAATATCTTAAAGTGTCTTGAGATATATTCATGAGCGCTACGACTTCTTTAGTTT -TCATTGTGACTATCCTTTCAGTTATGTTTGGTTGTCTAAAGTAATGTTACTTTATATATTGTCATCTTCG -TTTGAATACTTCTTATTTTATTACTCAAATTTAAATTTGTCTCTTTTTTAACATTTTACATTTCATCGTT -TTTAATTACTTTAAAAATTGTATAACTTAAATATTTAAAATGATATAATCACAAATATTGATAATATTTA -ATTTTTAAAAAATATTTTCGTTGCAATTTTTGGGTGATGCTGAAAATTTGGGTGATCGATTGTTTATATG -CATCAACATTCTTTGTGGATTGTTTGACAGTAGACAGTCAATTGTATACGTTAACGAATTTTGAAAAATT -GAATCATTATTTAATCATAATATTCATTGCGCACGCGCAACACAAAAAGGAGACATGTCAATGACATATA -GAATGAAGAAATGGCAAAAATTGTCCACCATTACGTTATTAATGGCTGGTGTGATTACTTTGAATGGTGG -TGAATTCAGAAGTATTGATAAACATCAAATCGCTGTGGCTGATACGAATGTTCAAACGACAGATTATGAA -AAGTTGAGGAACATATGGCTGGACGTTAACTATGGTTATGATAAGTATGATGAGAATAATCCAGATATGA -AGAAGAAGTTTGAGGCTACGGAGAATGAGGCAGAGAAATTACTCAAGGAAATGAAAACTGAAAGTGATAG -GAAATACTTGTGGGAAAGCTCAAAAGATTTAGATACGAAGTCTGCGGATATGACTCGTACCTATCGTAAT -ATTGAGAAAATCTCAGAAGCGATGAAACATAAAAATACTAAATTAAAAACAGATGAAAACAAGACAAAAG -TAAAAGATGCACTTGAGTGGCTGCATAAAAATGCATATGGAAAAGAACCAGATAAAAAAGTTGCTGATTT -GACCTCAAACTTTAAAAATAAAACTTCTAGAAATACCAACTTAAATTGGTGGGATTATGAAATTGGAACA -CCTAGAGCATTAACAAATACGCTTATACTCTTACAAGAAGATTTCACTGATGAAGAAAAGAAAAAATATA -CAGCTCCTATTAAAACTTTCGCCCCAGATAGTGACAAAATATTATCTTCTGTAGGAAAATCTGAACCTGC -TAAAGGCGGAAATTTAGTAGACATTTCTAAAGTAAAACTTTTAGAAAGTATTATCGAAGAAGACAAAGAT -ATGATGAAAAAGTCTATAGATTCATTTAATACAGTCTTCACTTACGCGCAAAATTCTGCCACTGGAAAAG -AACGTAATGGATTCTATAAAGATGGCTCTTACATTGATCATCAAGACGTCCCATACACTGGTGCTTATGG -CGTTGTACTATTAGAGGGTATTTCTCAAATGATGCCGATGATAAAAGAAACACCTTTTAATGATAGTAAC -CAAAATGATACAACCTTAAAATCATGGATTGACGACGGATTTATGCCACTCATTTATAAAGGTGAAATGA -TGGATTTATCAAGAGGTAGAGCTATCAGTCGTGAAAATGAAACGAGTCACTCAGCATCTGCAACAGTAAT -GAAATCATTGTTGAGATTGAGTGATACCATGGATAAGTCTACAAAAGCTAAATATAAAAAGATTGTCAAG -ACTTCAGTAGAGTCAGATTCAAGTTATAAACAAACCGATTATTTAAGCTCTTATTCGGATATAAGCAAAA -TGAAGTCTTTAATGGAAGACAGCACTATTTCTACTAACGGTTTAACACAACAACTTAAAATATATAATGA -CATGGATCGTGTCACCTATCACAATAAAGGCTTAGACTTTGCATTTGGTTTAAGTATGACGTCGAAAAAC -GTCGCACGTTACGAAAGTATCAACGGAGAGAACTTAAAAGGTTGGCACACTGGTGCTGGAATGTCTTATT -TATACAATAGCGATGTGAAACACTACCGTGATAACTTCTGGGCGACAGCTGATATGAAACGTTTAGCAGG -TACTACAACTTTAGATAATGAAGAACCTAAAAGTACGGATGTTAAAAAGTCTAGTAAAACTTTTGTAGGA -GGAACAAAATTCGATGACCAACATGCTAGTATCGGAATGGATTTTGAAAATCAGGACAAAACTTTAACTG -CCAAAAAATCATATTTCATATTAAACGATAAAATTGTCTTCTTAGGAACTGGCATTAAAAGTACTGATTC -ATCAAAGAATCCAGTTACAACGATTGAAAATCGCAAAGCGAATGATTATAAATTATATAAAGATGATACG -CAAACAACCAATTCCGATAATCAGGAAACCAATTCCCTCTTTTTAGAGTCAACGAATAGCACTCAAAACA -ATATAGGTTATCATTTTTTAAACGAATCGAAAATAACTGTAAAAAAAGAAAGTCATACTGGTAAGTGGAG -TGATATAAATAAAAGCCAAAAGGATATACAAAAAACTGATGAGTATTATGAAGTAACTCAAAAGCATTCT -AATACAGATAGTAAATATGCATATGTGTTGTATCCAGGCTTATCTAAAGATGTCTTTAAATCCAAAGCAA -GCAAAGTAACTGTCGTTAAGCAAGAAGATGACTTCCACGTTGTGAAAGATAATGAATCGGTTTGGGCTGG -TATCAATTATAGTGATAGCGCTAAAACTTTTGAAATTAATAACACTAAAGTCGAAGTTAAAGCCAAAGGA -ATGTTTATTCTTACAAAGAAAGATGATAACACTTATGAATGTAGCTTCTATAATCCCGAATCTACAAATT -CCGTTTCAGATATTGAATCTAAAATTTCAATGACTGGATACTCTATTATAAACAAAAATACGTCGACTTC -TAATGAATCCGGCGTACGCTTTGAATTAACTAAATAAGCAAGAAAATCTCGGCACTATACCATTTTTATA -GTGTCGAGATTTTATAAGCATAACTATCATTCACCTTGTAATCCGCAGACCACATCTCCTTTGATAAGTT -CTCGATTATTTATAAATCGAATTTTTAAAGATGTACATGCTTCAATATTCTTATCATTCATTACTTGAAA -ATGTATATGAGGTTCAGTAGAATTGCCAGAATTCCCAACCTTCCCAATGATGTCACCATATTTAACATTT -TGCCCCTCATTCACAATGATTGAATATTGTTGTAAATGAGCTATTAAGCTATACTCATTTTCTGCGTGCT -TGATTACAATATAATTTCCTAAAAACTGTGATTCCTTCGTACTTCCAATACTGTTGTCTTGAACCCCATT -CACTACTTTTTCAACTGTACCATTTGCTGGCGCAATGATATCTTTTCCAAAACAAAAATAATCAGCATTT -ACTTTTCCTAGGTTCTTATATGTTTTATGATTTTCTTTAATAACTAAATCAATAGCATACCTTTGATGTG -GGTATAAATAGTGATAATTATATAATTCATTATCTCCACCCCAAAAAACCTCATAGCAATCTGTTGTCGG -CACTGCGTATTTTAAAGTCGTTTCATTCTTAATCGCATCATAATTGATTAACGGACGCATAACAAATCCG -ATAATACTATTATCTTTCCATGTCACTGCCACTCCAAATTGATTTGCTTTATCTATCCATATTTGCTCAA -TAGTACCATCATTTTGAGTACACACTTTTAATTCATGTACATCAGACTGCCATGTATAAGATTTGAAAAG -TTTCCTAAACTGCCAATAACTAAACTCTCGCTTCAAATTTTGATCAAAAATCTTATATATTTTCCTGCTC -TTACTTTTATTTAAATAATCCCCAAAGTTTGTTTTATTCATATATACTTAACCTCTTATATTAATTTTGG -TATCAATTCTTTCTCCAGTTCCTGCGTCATTTTTGCGCTACCTGAATCGTCTACACTTAATTGGACAAAT -CAACATATAAATAATTTTTTAAAACTAAAGTGTAGTCGATTCACTATATTTTCTAATCATCCCTTAAATA -TTAATATTTGTACTTAAAAAGTATACATATCACTCAACCAATCAATAATCATACTTACCTTCAACAAATT -CTTTAACATGCAGTGTTATCCCTTGATAATATGGATATTTTGTTAATCTAAATTTCTGCTTTAATGCTTC -ATCTCTACTATTCGACATCAAATAGGCATGTTCAAGATAGCTTAAATATGCTTCGTCATTGCCGCTATCT -CCAAAACCTAATATTGATTTTACTGGTATATTATATTTCTTCATCAGAAATTGAGTAGCATATAGTTTTC -CAGCATTTGACGGTGTGAAGTCAATATCATACGCATTTTCAGGATCACCAGCTAATGGATTGCTTCGACT -AAATCTCGCTGTATAGTTTTGGTCATTTGCGTATCTGACAAGTACTTCTAGAATACGCCTATCATTGTTG -TGATTACCTGTTGAATGAAAATAAAAATTATAATGTGTTTCATTACCTTCAAATGCTCTTTGTGGAATAA -ATTCGACATTATATTGCGCAGAAATATGATGTAATATATCCTCAATATCTTCAAATAAAAATGGTTCGCT -CAAGACTTTCTTTTTATATGTTTCTGATTCAACATATTCGCCATTATTCCAAGTGAACATTTTAGAACTC -AAATCAGAAAAGATATGTAATGGTTTAAACGTCATATTAACTTGATCCATTTTATCCATGACACTTTGAA -ATGTACTTCCTGTCAATACAACAGTGATCACTTCATTATTATTAGTTAATTTTTCCAACAATTTTTCCAT -TTCTCTTAAATGACTTAAATCTTCTTCATTTGTATTATGTTTAAAATATGTTTCATCAAAATCAAACAAT -AATAGACGCTTTGACATACTCATTCCTCCATAATATTTTAATGAATTTATCTATAACTTAAATACACTAT -AAGTCTCAATTAAAAGTATAAGATCGACTATATGCTTTTCATGCTTATTATATACAACTAATGAATCCCT -ATAAACTAAAAACATTGCTTACCACTTTTCAAAATACACGGGTCATATCCCTCGTTAAAAACTATTACTA -AAAATCAAAAATATAAAAAAATCAAAAAGTATGTTTTAAACTTTATGAAACGTGTTATATAAATAGTGTA -ATATACCACAACTTTAAAAGGAGATTGAGATATGAAACTAAAATCATTTGTTACTGCCACTTTAGCATTG -GGCTTATTATCAACGGTCGGAGCTGCATTACCTAGTCACGAAGCATCTGCAGATAGTAATAACGGCTATA -AAGAAATGACAATGGATGGTTATCACACTGTTCCTTACACGATTTCAGTAGATGGTATTACTGCATTACA -TCGAACTTACTTTGTTTTTCCAGAAAATAAAAAAGTACTTTATCAAGAAATTGACAGTAAAGTAAAAAAT -CAATTAGCTTCTCAACGTGGTGTTACAACAGAAAAAATTAATAATGCACAAACAGCAACGTATACACTTA -CTTTGAATGATGGTAATAAAAAAGTAGTGAATCTAAAGAAAAATGACGACGCTAAAAATTCAATTGATCC -AAGTACAATCAAACAAATACAAATTGTAGTTAAATAATAATTTGAAAATGAAAATAGTTATACAGGGCAA -ACGCTGAAAAATTGCGTTTGTCTTTTTAGTATGAAATGAATAATCGAACTTGTAATTTATTATTGATTGC -TTCTACTGACAATAGATTAGATTGGCCTATACTAAAGTAAATTCTATATTAACGTCTTCCGTAATTTATA -ATCTAACATAACAGCAAATTACAAATAGCTAGAACATAAATAAATCCCCTCACTACCGTTAATAGTGAAG -GGATTTATTTTATTACATAGACGTATGCTCTATGACAACCATGCTTAACCGTATTACACAACCTTTTATC -ATTGCTAAATTTCCAAATCGAACATTATGAAGTCAATGCTTCAATTTTTATAATCCATCATTACATTTCC -GCATTCATTATTCAGCTTCTCTAATTTCGTCTGCAATATCTTTATAGTCAATATTTGCATTTATGAAATC -TTCATCTTGAATTGGAAAATGCTGTTCAAATGTTTCTATATTTTGGATTTCTACCTTAACATCTTCTACT -TCAAAATCTAAGACATGTCCACCAAAGTTACGATCATCATTTGCAAAGTGTACATGGAATCCTGCTGACC -CGATACCATGGAATAGTTCTGGTGTAAAGAACCCAACGACTGCGCCTTTGACGTACGTTTCAGTTTGTTC -AGGTTGTCTTCTAGCTGAGTCAATTAAACGTGTATAAGGTGGCTCTTGTGCCGGCATCATACGTACATGC -ATTTTTTTAAATAAGCCTGAAATTTTTACTGCAGAAAATAAATTTTCACTCAACATCTTTTCCTTAATTT -CTGCAAAAACTGCTTCAGAAGATTTATCTTTCGTTTCATAGCTTGTATCTGCTACGAATTTAGTTACAGT -TGCATATGGTGTTAACTCATCACCTTTTAATTCCACAAATTCTTTATGTTCATTTGCATGATAGGCTTTT -CCATCTAAAAAGATGACCTCACCATTTGAACCTGTTAGTGTAGCGATACCTAAATCACCATGTTGCAATA -ATTCATTTATTGATGCAGTTCCTTTTAATAAACCTGCCATTAATGTGCCTAATGTACCATGTTGATATAA -AACACTAGCCATAAAATTTCCCACTCCTCATTAACATTTATCTTTGTTTTAGTTAAATACGTCAGGTAAC -ATATTTGTTGAAAGTTTGATATTATCTTTGTAATTTACAGGTATATCAATTAATACTGGACCATCTGTTT -CATAGCCCTCTTTAATTGCCGCTTCTAATTCTTCTTGATTAGTAACTCGTAAACCTTTTGCGCCAAATGA -TTCAGCATATTTTACGAAATCTACAGGACCGAAGTCGACACCTGATGAACGTTTATATTTCATTTCTTCT -TGGAATTCAACCATGTTATATTTTCCATCGTTCCAAATAAGTTGAATAATGTTTAGATTTTTACGTACGG -CTGTTTCTAAATCTTGTGATGAAAATAAAAAGCCTCCATCGCCAGCAACGGATACAACTTGCGTATTAGG -GCGTACAAGCGCAGCTGAAATTGCCCACGGTAATGCTACACCAAGTGTTTGCATACCGTTACTAAATAAT -AAATGTCTTGGATTGTAACTTCTGAAATTACGTGCCATCCAAATATAGTGACTTCCAACATCAACTGTCA -CTGTTGTATCATCAGTTAATACCTTTTGCATAGATTCAATAATTTCAACTGGATGTAGAATTCCTTCTTC -ATGCGTCGCTTTAATACCAGTTTCTTCATCAATATGTGTTCTTAATTGTTCTAATTCGTCTAAATGTTGT -TGATTTATAAATGGCTCATCTACTTTTTCAGAAATCATTTCAATCGTTTTAGCAATATTACCAATCAACT -CTTTTTTCGGTTGCATATAATTAGTAATTTCAGCTTGAACTTCGTCAATATTGATAATTTGTGTTTCTAA -TTCTTTATTCCAGTTACTAGCTTCGTATTCAATTGGATCATAACCGATTGTAACAACTAAATCACTTTTA -CGTAATAATTCATCACCAACTTGATTACGGAATAAGCCCACACGACCGAAGAAATGATTTTCTAATTCAC -GACTAATTACACCTGCACCTTGGAATGTTTCTACAACTGGTAAATTCGTACGCTCTACTAGCTTGCGAAT -GGCATTCGTCTCGTCAGCACTAGAACTTCTCATACCAGCTAATAAAACAGGAAATGATGCATTTTTAATC -GCTTCAATGACATCATTAATATCTTGTTCACTCGGTACTCCTAAATTTGGTTTTTGGCAAAGTGATATAG -CTTTAGATTCAACTGGTGAAGAAATCACGTCTTGCGGAATACTAATAAAACTTGCGCCATTTTTCCCTGA -AGTAGCAATACGAATTGCATTTGTCATAACTTCTGATAATGATTCAGGATCTTGTACTTCTTCACTGTAT -TTTGATGAGTATTTTAATAGCGCAGCATTATCAATACTTTGATGCGTTAATCGTAATAAATCATTACGTT -TCACTTGGCCGCCTAACGCCAAAACAGGATCCCCTTCAGATGTAGCTGTTAATAGTCCAGTCGTTAAATT -ACTTACACCAGGACCACTTGTAACAAGTACTACACCCGGTTTGCCTGTTAATCTTCCAATACCTTGCGCC -ATCATTGCGGCGTTTTGTTCATGACGAGTGACAATAAGTTCAGGACCATCATCAATTAAAGCATTAAATA -GATAGTCTATCTTTGCACCCGGAATACCAAAAACATATTCTACCCCATTATTTTTCAAAGTATCAATAAC -CATATCGGCTGCAGTGTACTTTTTATCAGTCATTTATATTCATTTCCCTTCAAATGTGATGTGTAGATGT -GTATTACATGTAATTACATTGTGATTTGTAATCTAATGATAGTTATGTAAAATTAATGATATTTATCAAA -ACTTTACATATACAATTAGATTTGTGATACATAAAAATTGCCTTCAGTACATTATATATCCTTTGTAAGA -TGAATAAAAATCGTTATTTGTAATACTAAGTATTCCAAAAATGCATGAGTAGATTTTGAAGGGAGTGATT -ATAAGGGATGTTGGATTGATTGGTGTGGAGGATTGTTAGCATATTTGAGAATGAGGTCTTTAGTCAATGA -CGGTTTGAAATTGTCGTTTTATGGCGGGCTGAAAATGCTGTTTTATGACGGTTTGAAAATGCTGTTTTTG -GCGATTTAAAATTGTCATTTCGATAAAAAAAGCCACAGCAAGACTTAGATCTAACTGTGACTTATACATT -TCATACTTATATTTATCGATTGTTTTTATAGTTATAAATGATAGATGCAGTTCCTAAACACATTAAGAAG -ATAATCATTAAGTATATAGAAAAGTTATTTGTTTTAATATAAAACCTAAAAAGTAGAAACACCAGCATTG -CAACAATAAAATAAACAGGAATAAAAGCTTTCTTCCAAAATACAGAATCTATCAATTAAGTCACTCCTTA -TTTTGATAACACTCTTAAATCATGGTTCTTGAGCTATCTTCCGATTTTCATCCGATAGCCCTTTCCCTTG -AACCACTATGATTAAAACATTATTGTCCGTCCTCCGCAAGCTAAATGACAATTTAATAATGTACACTTTT -GATTGTGTAAGCATGTTCAAATTATACGTGTAAATCAATAATTCATAGTTGAATTTATTCTATTCCTTAG -ACATTAAATAAAGGAAAATTCATTATACTCTACACATTCCATATTCCCCACACAAACGTAAAAAAACACC -TCGACATAATATCGAGGTGTTTTGTATATATCGTCCGACAATTAACGTTTTGAGAATTGAGGTGAACGAC -GAGCTGCTTTAAGACTTGGTTTTTTACGTTCAAAAAACTTTAGGGTTTCGTACAATTGTATAGACTGTCG -TAAGCCTTGATACTAAAGGATTCCTAATTTTTTCGTTCACATAGAATTGCATCAAATATCACCTAGGGGT -AACTAAAGGGTAACTAAATAAACTGCTGTCCGGTGGTATATACTCTCGTATCATCCGGTTATCGTCCGGT -CGTAAATATATTGATTTATCAATGTTTTTATGTATATCAATAGGTTATCGTCCGGTTATCACTTGATGAA -TTTATTAGTCTCTAATTAAATAATATCTAGTTCCCGGACCTCTACCTTCAGATCCGATAATCTCTAATTT -CTTTAGTTCAGCAATTAACTCAGATGTATAACTTTTTTGAAGTCCCATTGTTTCTTGAATTTCTAGCCTA -CTTGCTAACTTACCATCTGACAGAAATTCTACAATCTCTGTCAACTTCTGATTAGTAGGTATTTTATTTA -ACTTGTAATTCTTATTAAATAGTACTACTCGAAAATCCGCCTCTTTACTCGAAAGCTCACAAAACTCTTG -ATATCACTGGTTTCTCATGATTTTTTAATGTTTTTATTTTGAGTTACTCGAAAATTTTCCTCTTTACTCG -AAAGCTCACAAAACCCTTGATATCATTGGTTTCTCATGATTTTTTAATATTTTTCTTTTGAGTTACTCGA -AAATTTTTCTCTTTACTCGAATCCGAGTAAATAATATGTTCTCTTTGGATCATTCTTACTTGATCCATGT -GTCGATATAATATTCATTTCCTCTAATTCTTTCAATCTTTTTCTAGCAGTAGGAACAGACCTTTGAATAA -TATTAGCAATTTTAGATGCTGTTAGTTCGCCTTGATTATATAAATGTCTCACAATTAATTCTTGTTGCTC -ATTTAAACTTTCAAATAATTCAGGTGTTATTATATTACTCACTCTCCCTGTTTCTCTTTTTTTCCTTGCT -ATTATGTTATTCTTCAAAGCTAGTTGTACTGAACTATTATTAGGCTCTGAGTATACAGGATCATCTAAAA -AATATTGCTTCATTTCGTCAAATATACGTCCCACGCCCTCATTTGATTCTCTCACCCATTTATATTGAGT -TAATGCTGCAGCTAATTTTGGATTCCTTGAATATCTTTCTTCTTTAATATTCTCTAACGTAACAGAAGCA -GGCAGTGCACCCGGGCTACTAATTTCTAATCTGTCGTCAAACATTTTTATTCTTATATGATCGCCTTGAT -TATCATATCTGCGATGTACAATAGAATTTATCATCCCCTCAAACCAAGCAAATTCTGGATATTCTGGCAA -AGTTACAAATCTTCCCTCTTTACCTAAAAAAGTATATTCACGTAATTGTGTATTGATAAAGGCTCTCGCT -TCTCTTATTGCTACTGGCAAAGCTTTATCAAAAGTAATATCTTTTACAATGTTAAGTCTTGTCCCAGATT -CTTCTTTTGTTCCTTCATACCTCATAAATCGAATTCTAGCGCCTGGTAAATAAACATTGATGTGATTACT -AAACAATAACAAACCTGCAACTGTCAATTTACCTTCACGCATAAATCCTCTAGCTTTTAATAATTTTTCA -TTATCTACGTTTGTATTAAGTAATTGCTTAAATTCATCAACTAGTTCTTCATTCACATCTTCAATACTAG -AATACTCTACTAATTCTTCTTCGAATCTTCGTGAACCACGGTCGTATTCTAGATTTGTAATTTGATTGTG -TGTCAGTTTTCTACTTTTATCGTTAATCCTTAAATATACTGAATCATCTTTTAAGGTGATTATGGCATCA -TAACTGGGTTCAATGTCGAAAATAAGAATTTCATCCATAGTTCCATCGCGTTTCTTCACTTCTATTATTT -CATATGTATATTTAGGTATTCTATATAAATGTTCGAAAGGTGCTTCAATATAAACCTCTTTCTTTTTTGC -TTTTGAATGATTAAATCCCGAAATTTCTCCATTATCTTCAATACCAATTACCAGTTTGCCACCTTCAGCA -TTTGCAAACGCACTAATGTGTTGAGCAACATCTTTAGGATTTATAGATGCCCTCTTTCGATCTAGAAGCT -GTCCTTCAACCTCAGTTTGCAAATATTCAATATACTTACTACTAGTCATATATAAACCTCGCAATCTCGC -ATCTTATTGACTTTATTATAACATTCAATACTATATCTATCGAATATCATTACAACCTCTATCTGCTTGT -CGTACGAATCCCAAAGAAAAACCAGGTCATTTCATATGGTTTCCTAAAGTTTCGTATCATTGAATTTTAA -GCAGAATTGAAACAAATTAGTTCCTCTAGGGGTAACTAAATAGTATCTAAATGACTCTATAAAAACACAA -AAAACACTCTTTGGAATAATCCAAAGAGTGCTGTAAACGTTTCTTCAGTTGAACACAAATTGCTGACGCA -ATTTGCGAACTCCATCTGTAAGCGAACAAGTTCGCAACAGCTGCAGCTTAACGTTTTGAGAATTGAGGTG -AACGACGAGCTGCTTTAAGACCTGGTTTTTTACGTTCTTTCATACGTGGGTCACGAGTAAGTAATCCAGC -GCGTTTTAAAGAACCTCTGTATTCAGGATCTGCTTCTAATAATGCACGAGCGATTCCGTGACGGATAGCT -TGAGCTTGTCCAGTGAAACCACCACCATGTACGTTAACTAAAACATCATAGTTACCTTTAGTTTCAGTTA -CATCAAATGGTTGGTTTAAGTCTAAAATTAATGATTCGAATGGTAAGTATTCGCGTACGTCACGGTTATT -AACTGTGATGTTACCTTCACCTGGTACTAAACGTACACGTGCTACTGAGTTTTTACGACGGCCTGTGCCT -CTATATTCAACTTGTGCCAAAGTCATTTCCTCCTTCTAATTAACCACGTAATTCGTAGTTTTCTGGTTGT -TGTGCAGCGTGTGGATGTTCAGCGCCACCATATACAAATAATTTTTTACCTTGTTTTTCGCCTAAACGAG -TGCTTGGTAACATACCTTTAATTGAATTTTCAATTAAACGTTCTGGGTTAGTTCTTCTTAATTCACCAGC -AGTGATTGATTTGATACCACCTGGGTGATTTGAGTGACGGTAGTAAACTTTGTCAGTTTCTTTGTTACCA -GTAAATTCGATTTTTGATGCATTAATAACGATTACATAATCACCAGTATCAACGTGTGGTGTGTAAGTTA -CTTTATTTTTACCGCGTAAGATAGATGCTACTTCTGATGATAAACGACCTAATGTTTGGCCTTCAGCATC -GATAACATACCATTTGCGCTCAATGTTTGATTCATTTGCCATAAATGTTTGACGCATAATAATTGTCCTC -CTAAAAAATAAATGCTTCTATTCAAGCTATAAACAGTTTCATAACCTAATAGATGATTTCATTTGTTTCA -TTTTTAAAACGTTTCATTTCATTTATTTTGTTAACTGTTGTTCGTTTCTGCTTATATATCTTGTAACACA -ATAAGTTTCCGGGGCTTATCGTGGGGTGGATATAAAACAATACCGTTAATAATCTTATAATTTCACAAGC -TTTTTGTCAATGGCAATCAGTCATTTTATAATGATTTTTTACGATGTATTTTGATATCGTTACCAAAGTC -TTTTAATAACTCATTTTCATCTAAATAAATTTTCTCTAAATATAATCCTTCAGCCGGTGCAGTGAAAGGT -ACATTCTTACGATTCTTTGATTCAAGAAGTTTTGGTACATCTGATACTTCATGTCGCCCTTTTCCGACTT -CTATTAAAAATGCAACTAAGACACGCACCATGTTATATAAAAATCCAGATCCAGTGACAATATAATCAAA -GCCATCATCTGTCTTTACAATTTCACTTTGGTATAATGTTCTAACCTTGCTTTCTACTTCAGTTTTTTGC -GAACAAAAACCCGTAAAATCATGTGTACCTATGAATTGTTGTGCCGCTCTGTTCATTTTGTCTAAATCCA -ATGGTTCAGGAATAAATGTTTTCAAACCACTTTGAAATGGATCGCGTTGTTGTGCTTGATATACTTTATA -TCGATAGCGTTTACCGACACAATCGTAACGACAATGAAAATCGTCATCGACTGTAACTACATTGTTGACA -TAAATATCATCAGGTAACGTTCGGTTCATTGCATATTGCCATTGTGACATAGGTATATTCAAATCTGTGT -CGAAATGAAAGTACTGCTGTATCGCATGTACACCTCTATCAGTCCTACTTGAAGGATGGATTCTCACATG -TCTTTTATGAATGCGTTGTAATAGCTTTTCAAATTGTTGCTGTACCGTTCGACCATTTTGTTGAATTTGA -AAACCTAGAAAATTATTTCCTTGATACGCAATTTCTACTAATATACGCATGAATTTACACTCCTGAATAT -TTTAATACGAATAAAATAATTGCAATTGGGATAATCATGATTAAAGATAACGTATCTCTCAATTGCCATT -TAAGCTGTCTGTAGCTCGTTCTCTTAACATTGGCATCATAACCCCTAACTTCCATTGCGACCGCTAATTC -TTCGGCGCGTTGGAAAGCTGAGATGAATAGTGGCACTAGTAATGGAATAAATGATTTAATACGTGTTGCA -ATGTTCCCTGAACTTATTTCAGAACCACGCGACTTTTGCGCCAAAATGATTTTATCTAACTCATCCATTA -ACGTCGGGATGAATCGTAACGCAATGGACATTATCATACTTAATTGATGAACTGGTAATTTAAACATCTT -TAGTGGCGCAAGTAATCTTTCAAACGCATCTGTTAAATCAATTGGACTTGTAGATAGTGTCATTATTGTT -GCAATCATCACAATCCCAATTAAACGCAGTGATATATATAGCCCTTCTAAAATACCATTAGTTTCAATCG -TGATGCCATGCCATTCAACTAATACATATCCACCTTTAGTTAAAAATATATGCATCATTAATGTGAAGAT -TAAAAAGAAAAATATTGGCGTTAAACCTTTGATTAGGAACCATAATTGAATTTTTGCTAATCTCATAAAG -AATAAGATAAGTGCAAACATCCAAAGATATGTTAATGGTGAATGACAGAAAAATATTAATATAATAAAAA -GAAAAACAAACATTAACTTTGCTCTTGGATCAAGATGATGAACAAAAGAATTAATTGGTAAATATCGCCC -TATAATCAATTTATTTTTCATGTTGCCACTCCTTATACAAGCTTACAAATGCTTCTTCAGTTAAGGCAAT -ATCTTTTAATTTTGTTTGATGTTTTTGTTCAAAGTCATATTGTAACTGAACAATTTCAGGCAAACCAATA -TGCCAATCCGCCAATTTTTCTTTATCTTTGAAGAGCTCTTTTGGTGATGTTTGCGACACGATACTACCTT -CTTTCATTACGATGACTTCATCTGCATAACGTGCGACTTCATTCATATCATGTGAAATTAGGATAATTGT -CTTATTTTCATCTGTTTGTAGTGACTTGAGTAATCGCATTACTTGTCGTTTACTTTGTGGATCAAGTCCT -GCTGTAGGTTCATCAACCACGATAATATCAGGATTCATTGCCAATATCGATACAATCGCTATTTTACGCA -TTTGTCCACCTGACATTTGAAATGGTGATTGTGACATTACATCTCTTGAAAAGCCTAAATCCATCAACAG -ACGATGGGCATAGTTTTTGGCTTCATCTAAATTCATTTTAAAGTTTTTAGGTCCAAATATCATTTCACGC -TCTACTGTGTCCTCAAATAATTGAGATTCGGGAAATTGAAATACCATTCCAATTCTTTTTCTTACAGGTC -TAATATATTTATCTTTGGTCTTATGTGTAATAGTAATATCATCAACTGTAACTGTCCCAGTAGTTGGCTT -TAACAGTGCATTAATATTTTGTATCAATGTCGATTTACCACTACCCGTTTGTCCAACGATGGCATAATAT -TTACCTTGTTCAAATTCTGTATTAACATCATGAATAGCTTGATGCTGGTATGGTGTCCCTTTTTGATAGG -TATAACTTACATTGTCAAAGCGTATAATCATAGTTGATCCACCAGCCCTTCATAAGTTAAGAATGATGTT -TGGTGTCCCAGCATTTGATTTATTTTGATTGGGAATGGCAAATCTAGACCTATTGTTGTTAACTCTTCTG -CATGGTCGAAAATTTCAGTCGCTGTTCCTTCTTTATAGACAGTCCCTTTATTCATAACGATAACATGATC -TGCTTCCATCGCCTCAGATAAATCATGCGTAATAGAAATGATTGTAATATTATGTTCTGATTTAACTTTT -CTCACTAAATCCAATAAATTTTGACGTGCATCAGGATCTAACATAGAAGTCGCCTCATCTAATATAATGA -CAGAGGGGTTAAGTGCTAATACACTTGCTATAGCCACACGCTGCTTCTGTCCCCCCGATAATGCATTAGG -TTCATAATCTGCACGTTCTAACATATCTACTTGTTCAAGTGCTTCGCTGACTCTTCTGTGCATTTCGTCA -TGTGGAACCGCATGATTTTCGAGTCCAAATGCCACATCGTATTTTACAATTGAACCAACAAATTGATTAT -CCGGATTCTGAAATACAATTCCTATGTCTTTTCTTAACTTTTCAAAATTATCATCTGTTATAGCTTGATT -ATTATAAAAAATTTCTCCAGATTTAACTTTCTCTATGCCAATCATTAACTTGGCAATTGTAGATTTCCCA -GAACCGTTATGACCAACAATAGATGTCCACTGACCTTTAGGTATATTAAAAGAAACATCTTTCAATGTGA -AGGATGCATCACTTTGATATTGAAATGAAACATTTTTAAATACAATAACTGAATTCTTATCCTCCACTTG -TCTCTCTCCTTTACGATTCGTGTATCTATCATATTTTACAATATTTATAAATCGCTGTATATGACATTGA -CTGGGTTTGCTATATATTACTAGTATTTTCTGACTCATTTCTAGTCTTTAAAGTGTTGTTTAACAACTAA -TGATAAGGACATTTATTCCTCTCTAACAATTATGTATAAACGTTAATAAAATAAATGATTTACTAGTGTT -GGCCGCGTTTGATTCAACGATAATACTTTCACTTCATTCAGTTCTAGTGAAATTGATCAAACTAGCTTGA -TCATATTTTTAGATTCGCACTCAAAAAAGTAGATATAAAGAAATCGGACTTAAAAACATTGAAATGCTCC -CTTCAAAGTAGACATTGAAAAAATGAAAACTTTGAAGGGAGCTTTATTTATGTCAATAAAACCTAAAGTA -GACATAGATGTACTGCTATATATGTTTCAAGAATATGAAAAAGGCGTGTCGTTTCAATACTTAATCGATA -CATTACAATTAGATATTAATGTCAATACTTTGTATCCTAAGTATAAATATTATAAAACCCATGGTATTGA -AACACTACTTACACAAAAACAATACAATCACTATTCAAAGGAACTAAAATTAAAAGTTGTAAATGAATAT -TTGAATTCAAATCAATCAACCCAAGACATCGCAATCAAATACAATATTCGTAGTTCGACACAAGTCAAAA -ATTGGATAAAAATGTATACTGTAGGAAAAGAGATTAAGAATCAATCTCCTAAAACTGGGGTGTATATCAT -GAAAGCAAGAAAAACCACATTTGAAGAACGTGTAACAATTGTTGAATATTACTTGAATCATAAACAATCT -TATAGAGAAGTTGCAGAACACTTTAATATCTCATACGGTCAAATTTACCAGTGGGTTCATAAGTATCAAG -CACATGGTAAAAATGGATTAGTAGATGGCAGAGGCAAAGGAAAACCCAAATCTATGATGACGCCAGAAGA -ACAAAAAGAAGCTGAAATTCAAGCATTAAAAGCACAAAATCGATTATTAGAGATGGAAAATGACGTTTTA -AAAAAGTTTCAAGCATTGGAAAGAGAGATGATTCAAAGAGAAAACAAATCACGGCATACAAAACGATCGA -AGCGTTAAAACATCAATACCCTATCCAACGCTTGTGTCGTATTTTAGGCATTTCTAGAGCGAGTTATTAT -AAGTGGGTACATTATCAATCGAGTGAACTTGAATTAGAGAATGAACAGCTTAAGCGAGAAATAGAATCAA -TCTATCATAAGTATAATGGTATTTATGGCTATCGTCGCATTTATATCTATATTCGCTTAAAACTAGGTAA -ACAAGTAAACCGAAAGCGAATTTATCGTTTGATGAAAGAACTTAATTTAAAAGCAGTAATACGTCAAAAG -CGAAAACCTTATCGACGTTCAACGCCACAAATCACATCAGAAAATAAGCTTAATCGACAATTTGACATTG -ATACGCCAAATAAAGTTTGGTTAACAGATGTAACAGAATTTAAAATCAAAGAAGGTAGTAAGATATATTT -GAGTGCCATTTATGACTTAGGTGCTAAACGTATTGTTAGTTATGAGCTAGGCCCTTCTAACAATAATCAA -TTAGTATTTAAAACATTCAATCAAGCGATAGAAAAAGTAGAAAATACAAAAGGTATTTTATTTCATAGTG -ACCGAGGTTTTCAATATACATCGAAAACATTTAAACATATGTTGGATGAATGTGGCATGATTCAAAGTAT -GTCACGTGTTAGCAAATGTATCGATAACGGTCCAATGGAAGGTGTATGGGGTACAATAAAAAGTGAAATT -TTTAGAGGAAATAAGCACTTTAAATTTAATAGTGTAGAAGAAGCTACAAAAACAATTCATGATTTTATTC -TTTTCTTTAATCATGAAAGAATTACATTAAAAATGGCTGATTCTGTATAACAACAAAACCAACCATTAAT -TTTAATTATTTAATTGTCTACTAGACTGGGTGCAGTTCACATTTCTGTTCATAAGTCCGATATCTTATTC -AATAAAAAAGCGCGCACCCCATCATAAGTTTGTTGAGTTCACGCTTTAAATCTTTATTTAGTTGATGGGG -TACTCTGAGCTAGACAATATTTGTATGTGGCAAACATTATCGTTGCACTCATTTGCTTTATATAAAAGTA -GTTAGTGTATTTATATAAATTCTTATACTAATTCGATAATTACTGATTCAGCACCGTCACCGCGACGAGG -GCCTTGTTTAAGGATACGAGTGTAACCACCTTGACGTTCTGTGTAACGCTCTGCGATTTCACCAAATAAT -TTTTGAAGTGCAGTTTGTGTAGTTTCATCTTCGTTTAAGATTTCAACATTACGTAAAGTTTTAGCTGCAT -TACGACGAGAAGCTAAATCTCCTTTTTTACCTAAAGTGATTAATTTCTCAACAACACTGCGAACTTCTTT -TGCACGAGCTTCTGTAGTTTCAATACGTTCACTAATAATAAGTGATGTAGCTAAGTCACGTAACATAGCT -TTACGTTGATCAGAAGTACGACCTAATTTTCTGTAACCCATGAGTTAACCTCCTTTATCAATCTTCTTTT -CTTAATCCTAATCCTAAATCTTCTAATTTGTATTTAACTTCTTCTAAAGATTTACGACCTAAATTACGCA -CTTTCATCATGTCAGCTTCAGATTTGTCAGCTAACTCTTGAACAGAATTGATTCCTGCGCGTTTTAAGCA -GTTATATGAACGTACAGATAAGTCTAATTCTTCAATAGACATTTCTAATACTTTTTCTTTTTGATCTTCT -TCTTTTTCAATCATGATTTCAGCGTTTTGCGCTTCATCAGTAAGACCAACGAAGATATTCAAGTGTTCAG -TCATTATTTTTGCTGCTAATGAAACTGATTCTTGTGGTGTGATTGAACCATTAGTCCAAACATCCAATGT -TAATTTATCAAAATCACTGCTTTGACCTACACGTGTATTTTCAACAGTATAGTTCACACGTTCAACAGGT -GAATACAATGAATCAACAGGGATTACACCAATTGGTAAATCACTAGTATTATTTTGTTCTGCTAATGCGT -AACCTCTACCCTTGTTAGCAACTAGACGAATTTTTAAGTGACCACCTTTAGATACTGTTGCAATTTTAAG -CTCTGGGTTTAAAATTTCAACATCACTGTCATGTGTAATGTCGCTTGCTGTTACTTCGCCTTCATCACGT -ACATCAATTTCTAAAGTTTTATCTTCTTCAGAGTAAATTTTCAATGCTAATTGTTTAATGTTCATAATAA -TTGTAGAAACATCTTCAACTACATTGTCTACTGCTGAGAATTCATGTAAAACTCCCTCAATTTCAATGTA -CTTAACGGCTGCACCTGGTAATGAAGATAGTAGGATACGACGTAAGGAGTTTCCTAGTGTAGTACCGTAG -CCACGTTCTAGTGGTTCAACAACGAACTTACCGAATTTAGCATCTTCACTAATTTCAATTGTCTCAATTC -TAGGTTTTTCGATTTCTATCATTTAAATATCCTCCTTATATACGTCGACTTAATTTAAAATGTTTGCTCA -GTGACCTGTAACAATACCATCATAAATTATACACGACGACGTTTTGGTGGACGACAACCGTTATGAGGTA -CTGGAGTAACGTCTCTGATCGCAGTTACTTCTAAACCTGCAGATTGTAATGCACGAATAGCTGATTCACG -ACCTGGACCAGGTCCTTTAACTGTTACTTCAACTGTTTTTAAACCATGCTCCATAGCTGATTTAGATGCA -GTTTCAGAAGCCATTTGTGCTGCAAATGGTGTTGATTTTTTAGATCCTTTGAATCCTAATGCACCAGCTG -ATGACCATGATAAAGCATTACCGAACTCATCAGTGATAGTTACAATAGTGTTGTTGAATGTTGAACGGAT -GTGTGCTACACCATTTTCAATATTCTTTTTCACTCTACGTTTACGAGATACTTGTTTACGTGCCATTTAA -AATTTGCCTCCTTTACCTATTATTTTTTCTTGTTAGCTACCGTTTTAACTGGTCCTTTACGAGTACGCGC -GTTGTTTTTCGTTTTTTGACCACGAACTGGTAAACCACGACGGTGACGGATACCACGGTATGATGAAATT -TCCATTAAACGTTTGATATTTAAGTTAGTTTCACGACGTAAGTCACCTTCGACTTTATAACCGTCTACAA -CTTCACGGATGCGACCTAATTCGTCATCAGTTAAATCTTTCACACGAGTATCAGCTGATACGTTAGCTTC -TTCAAGAATTTTTTGAGCAGTTGACGTACCGATACCGTATATATAAGTTAATGAGATAACTACGCGTTTT -TCACGTGGAATATCTACTCCTGCAATACGTGCCATATTAATTTACACCTCTCTTTTATTAACCTTGTCTT -TGTTTGTGTTTTGGATTTTCACAAATTACCATTACTTTACCTTTACGTTTAATGACTTTACATTTTTCGC -AAATAGGTTTTACTGATGGTCTTACTTTCATTTTTATACCTCCCTATATTATGGAGTGACGATTATTTAT -AACGATAAGTAATTCTTCCGCGTGTTAAATCGTACGGAGACATCTCAACAGTTACTTTGTCGCCAGGTAG -AATACGAATGTAATTCATTCTGATTTTACCACTTACGTGAGCTAAAATCTCATGACCATTTTCTAATTCT -ACTTTAAACATTGCGTTCGGTAAAGTATCTAATACAGTACCTTCTAATTCAATTACATCTTGTTTAGCCA -TTGATTAACTTCCCCCTTTTTGCAATAGTAAGGTAATCGTCAATAGACAACTTTATTGTTACGAATCTAT -CAGTGATTAATTTTATAAGTTAAACAAAAATTACGGGAATTAATTATCGTTAATTGCCACTCTCATCTAT -CTAATATGATTAAATCATGCCTCACTTAAAATAGACCGCTAAAAGTTGATCTATTACAAATGATCTAAAA -TATCAATGACATCTTTGGTAACGTCGCTAATATCTTTTGAACCATCAATATTTTTCAATACACCTTTTTG -ATCATAGAAATCTAAAATAGGTTTAGATTGTTTAATATTAACACTCAAACGATTAGCTACCGTTTCAGGA -TTATCATCTTCTCGTTGATACAATTTACCACCATCGATATCACAAATACCTTCGACCTTCGGAGGATTAA -ATACAAGATGATACGTTGTACCACATGACTCACAGATTCGACGACCTGTAAGACGGTTCATTAATTCTTC -TTCCGGAACTTCGATATTGATGACAGCATCAATGTTTCTGTCAAGCTCAGACATAATATTATTTAATGCC -TCAGCTTGCTCGATTGTTCTTGGGAAGCCATCTAATAAAAAGCCTTTTTTTGCATCGTCTTCAGAAATTC -TTTCCTTAACGATACCTACAGTCACTTCATCAGGAACTAATTCGCCACGGTCCATATAAGACTTAGCTTC -TTTACCTAATTCAGTTTCTTCTTTTATAGCTTTTCTGAACATGTCACCAGTTGAAATGTGGGGTATTGGG -AATTTCTTGACAATTTCACTTGCTTGAGTTCCTTTACCTGCGCCAGGTAAACCCATCAAAATGATATTCA -TAAGTGCCCTCCTAAAATTATCTACCACCAAAGCCTTTATATTCTTTTTGAGATACTTGTGCTTCTAAAG -ATTTCATTGTTTCAATCGCTACACCAATAACGATAAGTAAACTTGTACCACCAATCTGAATTGATTGTGG -TAATCCCATAAACTTAGTTGCTAATATCGGTAGAATTGAAATAACGGCTAAGAAGATAGAACCTACAAAA -GTTAAACGATATAAAACTTTAGTAATATATTTTTTGGTTTGTTCACCAGGTCTAATACCTGGAACATAGC -TACCTTGTTTCTTAAGGTTATCAGCCATTTTTTCCGGATTAACTTGTACAAATGCATAGAAGTATGTGAA -TAGTATAATTAGTACAATATATACAACCATACCAACATTACTTGAAGGATTTGCAGCATTCGCAATGTTT -TGTGCCCATTCTTTATCTGGATAGAACAACGTTAATGTTCTAGGCAGTAAGAAGAACGCCATTGCAAAGA -TTACAGGAATAACACCGGCTGAGTTCACTTTTAAAGGTAGATAAGTTGCCTGTGAACCTAATCTTTGAGC -AGTTTGTTTCTTAGCATATTGAATCGGAATTTTACGAACGGCTTCAAGTACATAAATAGCACCTACAGTT -AATAGTATCAGTGACACTAAAAGTCCTAATACTTTCAACCATGCTAATGATGTATCTTCTTGCCCAACGA -ACGCAGTTTGTCCAAATTGAATTAGACTGGCTGGCAACGTTGATAAAATACCCGCAAATATGATAATAGA -AATACCATTACCAACACCGAACTGAGTGATTTGATCACCAAGCCATATTAAGAAAGCAGTTCCTGCTGTC -AAAACTAGTGCTATTAATAAATAACTCATAATTGACTGATTGATAATCAGCGCACCTTTGAGATAATTAT -TAAATTGGAATGCCATACCTATAGATTGGATAAATGCTAAAGAAATTGCTAAATAACGAGTAACGTTATT -TAACTTTCTTCTACCTACTTCACCTTGTTTTGCCCATTCTGAGAATTTAGGGACAATATCCATTTGTAAT -AATTGCATTACGATTGATGCAGTGATGTAGGGTACAATACCCATTGCAAAAATAGAAAATCGTTTCAAGG -CTCCGCCACCAAAAGTATTTAATAACTCAGTGGCACCTTGAGAACCTTGGGGATTATCAAAAGCTGCAGG -ATTTACTCCTGGAGCTGGTATATAAGTCCCTATTTTAAAAATTACTAACATTGCTAGTGTGAAGAAAATC -TTGTTACGAACCTCTTTTGTTCTAAAGAAGTTCACAAGGGTTTGAATCATTAGATCACCTCGTGTGCTCC -ACCTTTAGCATCAATAGCTTCTGCTGCTGAAGCTGAGAATTTATGAGCTTTCACTGTCAATTTCTTATCA -AGTGAACCATTACCTAGTATTTTGATACCAGATTTTTCATTCTTAACAACACCAGATTCTACTAATAAAG -CTGGAGTTACTTCAGTACCATCTTCAAATTTATTAAGTTGGTCTAAGTTAACAATAGCATATTCTTTACG -ATTTATGTTAGTAAAACCACGTTTTGGTAAACGACGGAATAATGGTAATTGACCACCTTCGAATCCTGGT -CTTACACCACCGCCTGAACGAGCTTTTTGACCTTTGTGTCCGCGACCACTTGTTTTACCGTTACCTGTCG -CAACACCACGTCCAACACGATTGCGTTCTTTACGTGAACCTTCTGCCGGTTTTAACTCATGTAATTTCAT -TTCGGCACCTCCTTGATTATTTTTCTTCTACTGTTACTAAGTGCTTAACTTTGTTGATTTGCCCACGAAT -AGCAGGGTTATCTTCAACAACTACTGAACTGTTAGTCTTTTTAAGACCTAAAGCTTCAACAGTTTTACGT -TGTGTTTCAGGACGACCAATAACACTACGAGTGAGGGTAATTTGTAATTTAGCCATAACTAGTTTTCCCT -CCTTAATTGTATAATTCTTCTACTGTTTTGCCACGTAATTTCGCAACATCTTCAGCATTTTTAAGGTTTT -GTAAACCATCGATTGTAGCACGAACCATGTTGATTGGTGTGTTTGATCCTAATGATTTACTTAAGATATC -AGTGATACCTGCTAATTCAAGTACGGCACGAACAGGACCACCAGCGATAACTCCTGTACCAGGTGCAGCC -GGTTTCATAAATACGCTTCCTGAACCGTAACGGCCAGTAATTGTGTGTGGAGTTGTACCTTCAACACGTG -GAACAACTACTAAATCTTTTTTAGCTGCTTCAACAGCTTTTTTGATTGCTTCTGGTACCTCTTGAGCTTT -ACCAGTACCGAAACCTACACGACCATTTTTGTCTCCAACTACAACTAATGCAGTGAAACGGAAACGACGA -CCACCTTTTACAACTTTTGCTACACGGTTGATTGTAACAACGCGTTCTTCAAATTCTTTCGTCTCTTCTT -CTCTACGAGCCATGTATTTGTCCCTCCTTTAAATTAAAATTCTAATCCGCTTTCTCTTGCTGCTTCAGCT -AATGCTTTAACACGTCCGTGATATAAATATCCTCCACGGTCAAATACGATTTCTTTAATGCCTTTGTCAG -CAGCTTTTTTAGCAATTGCTTCACCGACTTTAGTTGCTAATTCAACTTTAGTTGCTGTAGTAGCAATGTC -GCTGTCTTTTGAAGAAGCTTGAGCTAATGTTACGCCTTTATTATCATCAATAATTTGAGCGTAGATATGC -TTGTTTGAACGATATACGTTTAAACGTGGCTTTTCAGCTGTACCTGATAAGTTAGTACGAACACGAGCAT -GTCTTTTTAAACGCACTTTATTTTTATCAATTTTACTGATCATTTCAATACTCCTTTCTTTAGAGTTTAT -CTATTATTTACCAGTTTTACCTTCTTTACGGCGAACGTATTCACCTTGGTAACGAATACCTTTACCTTTG -TAAGGCTCTGGAGGTCTTACTGAACGGATGTTAGATGCTAATGCTCCAACTTGTTCTTTTGAAATACCTT -CAACTTTAACGACTGTGTTTTTCTCAACTGAGAAAGTAATGTTTTCTTCAGCTTTAATTTCTACTGGGTG -AGAATAACCAACGTTAAGGATTAAGTCTTTACCTTGCATTTGAGCACGGTAACCTACACCAACAAGTTCA -AGTACTTTTACGTATCCTTGAGAAACACCTTGTACCATATTATTTAATAAAGCACGAGTTGTACCATGGT -TTGTTCTATCTTCTTTAGAATCAGATGGTCTTACAACTTCAATTGTGTTTTCTTCTTGTTTGAATGTCAT -TCTTTCATTTAAAGTTCTTGATAATTCACCTTTAGGACCTTTAACAGTTACATGATTTCCATCAAAAGTT -ACTGTTACGTCACTAGGGATGTCAATAATTTTCTTACCAACACGACTCATGTTATGGCACCTCCTTATTT -TTTATTACCAAACGTATGCGATAATTTCTCCGCCAACATTACGTTTTCTTGCTTCTTTGTCAGTGATTAC -ACCTTCAGAAGTTGATACTAATGCAATACCTAAACCATTTAATACTTTAGGCATTTCGCTAGCTTTTGCA -TAAACACGTAAACCTGGTTTTGAAATACGTTTTAATCCTGTGATAACACGCTCATCGTTTTGACCATATT -TTAAGAATAAACGAAGTACACCTTGTTTATCATCTTCTACGTATTCAACATTTTTAATGAAACCTTCACT -CTTTAAGATTTCAGCAATTTCTTTTTTAATATTTGATGCAGGTAATTCTAACTTCTCGTGACGCACCATG -TTTGCGTTTCTTACACGAGTAAGCATATCTGCGATTGGATCTGTCATTGTCATTGATTGTTGCCTCCTTT -CAGACTCTTTTTTATTACCAGCTAGCTTTACGAACGCCAGGGATTTGGCCTTTGTAAGCTAATTCACGGA -AACAAATACGGCATAATTTAAATTTACGATATACAGAATGTGGACGGCCACAACGTTCACAACGAGTGTA -TTCACGAACTGCATATTTTTGTTTTTTTTGTTGCTTAGCAACCATTGAAGTTTTAGCCACTTAATTAGCC -TCCTTTAAATAATTATTTACGGAATGGCATACCGAAGTTAGCTAACAATTCACGAGCTTCTTCATCAGTG -TTAGCAGTCGTTACGATAACAATATCCATTCCTCTAACTTTACTTACTTTATCATAGTCGATTTCTGGGA -AAATTAATTGTTCTTTAACACCTAAAGTGTAGTTACCGCGTCCGTCAAATGCTTTTTTAGAAACACCTTG -GAAGTCACGTACACGTGGTAATGATACTGAAATTAATTTGTCTAAGAATTCATACATTCTTTCACCGCGA -AGTGTTACTTTCGCACCGATTGGCATACCTTCACGTAAACGGAAAGTCGCGATTGATTTTTTAGCTTTAG -TTACTAATGGTTTTTGACCAGTGATCAATTCTAATTCTTCAACAGCATTGTCTAATACTTTAGAATTTTG -TACTGCGTCACCTACACCCATGTTCACAACGATTTTATCTATTTTTGGTACTTCCATTACTGAACTATAA -TTGAATTTTTTCATTAAGTTTTCAGTAACTTCAGTGTTAAACTTTTCTTTTAAACGGTTCAAAGTGGGAT -CCTCCTTTCAACTTGTTATTAATTATTAGATTTAATTTCTTCGCCAGATTTTTTAGCGATACGAACTTTT -TTACCATCAACAAATTTGTAACCTACACGAGTTGGTTCGTTTGTTTTAGGGTCCAATAATTGTACATTAG -AAACATGGATTGCTGCCTCTGTTTCTAAGATTCCACCTTCAGGATTTAATTGAGTTGGTTTTTGGTGTTT -TTTCATAATGTTAACACCTTCCACAACGACACGGTCTTTTTTAGGTAGAGTAGCGATTACTTTACCTTCT -TTACCTTTGTCTTTACCTGCGATAACTTTAACGTTGTCACCTTTTTTGATATGCATGTGGGCACCTCCTT -ATTTGTATTGGTTGTTATTAATTAAAGTACTTCTGGTGCTAATGATACGATTTTCATGAAGTTACCTTCA -CGTAATTCACGAGCAACAGGTCCGAAGATACGAGTACCACGTGGGCCTTTGTCATCACGGATGATAACAC -ATGCATTTTCATCAAATTTGATATATGAACCGTCATTACGACGAACACCTGACTTAGTACGTACGATTAC -AGCTTTGACAACGTCACCTTTTTTAACAACGCCACCTGGTGTTGCATTTTTAACAGTACATACGATAACA -TCGCCGATGTTTGCTGTTTTACGACCAGATCCACCTAATACTTTGATTGTAAGAACTTCACGAGCACCAG -AGTTGTCTGCTACTTTCAAGCGTGTTTCTTGTTGGATCATTAGTTAAACCTCCCTTATCTCTAAACTTGT -ATTAAATAATTACTGACTCTTCAACAATCTCTACTAAACGAAAACGTTTTGTTGCTGATAAAGGACGAGT -TTCTTGAATTTTAACAATGTCTCCTAATTTAGCTGAATTGTTTTCATCATGAGTTTTGTATTTTTTAGAG -TATTTCACTCGTTTACCGTATAATTTGTGTGTTTTGTAAGTTTCAACAAGTACTGTAATAGTCTTGTCCA -TTTTGTCTGAAACAACTTTACCTACATAAACTTTACGATCGTTTCTTTCGCTCACTTTTGTAACCTCCTC -TTACTTAATTATTGATTAGCCTTACTTTGTTCAATTTCTCTTTCACGAGCAACAGTTTTTAGACGTGCAA -TCGTTTTTCTTACTGTACGAATACGTGCAGTTTCTTCTAATTGACCTGTAGCTAACTGAAAGCGTAGGTT -AAAAAGCTCTTCTTTTGAAGATTTGATTTGTTCTTCGATTTCTGAAGTGGTTAAGTCTCTAATTTCCTTA -GCTTTCATTTGTTTCACCACCCAATTCCTCACGTTTTACAAACTTAGTTTTTACTGGAAGTTTGTGACTT -GCTAAACGTAGTGCTTCACGCGCAACTTCTTCAGAAACGCCAGCAACTTCGAATAAAATTCTACCTGGTT -TAACAACTGCGATCCAGCCTTCAACCGCACCTTTACCAGCACCCATACGTACTTCTAAAGGTTTTTTAGT -ATATGGTGTATGTGGGAAGATTTTAATCCAAACTTTCCCGCCACGTTTCATGTAACGTGTCATTGCTATA -CGAGCAGATTCGATTTGACGAGATGTGATCCAAGACGTTGTTGTAGCTTGTAAACCAAACTCACCAAATG -TTACGTAGTTACCGCCTTTAGAACGACCAGTTGTTTTAGGACGATGTTGACGACGATATTTTACACGTTT -TGGTAGTAACATTATTATTTTCCTCCTCCACTAGTGTTCTTAGTAGGAAGAACTTCTCCACGATAGATCC -ATACTTTAACGCCTAATTTACCGTAAGTAGTGTCAGCTTCAGCGTGTGCATAATCGATGTCAGCACGTAA -CGTATGAAGTGGAACAGTTCCTTCTGAATATTGTTCAGCACGAGCGATGTCAGCTCCGCCTAAACGACCA -GATACTTGAGTTTTGATACCTTTTGCACCAAGTTTCATAGCTCTAGTGATTGCTTGTTTTTGTACACGAC -GGAATGAAGCACGGTTTTCTAATTGACGTGCGATGTTTTCAGCTACTAAACGAGCGTCAAGATCAACTTT -TTTGATTTCAATTACGTTGATGTGTACTTTTTTATCAGTTAACGCATTTAATTTGTTGCGTAATTTTTCG -ATTTCTGAACCGCCTTTACCAATTACCATACCAGGTTTACCAGTATGAATTGCAATGTTGATACGGTTTG -CAGCACGTTCAATCTCTACGTGAGAAACTGATGCTTCTTTTAATTCATTATCAATAAATTTACGGATTTT -TAAATCTTCGTGTAAAAGTGAAGCGAAGTCTTTTTCAGCATACCATTTAGCTTCCCAATCACGGATAATA -CCAACACGAAGTCCGATTGGATTAATTTTTTGACCCACAGTATTCCCTCCTTAAAAGTTAATTAAGCTTC -TTTAGCTTCTTCTTTACCGTCACTTACGACGATTGTAATGTGGCTTGTACGTTTGTTAATCGCACTTGCA -CGACCTTGCGCACGTGGACGGAAACGTTTTAATGTTGGTCCTTCGTTAGCATATGCTTCTTTAACTACTA -ATTCATCTGTGTTCATGTCATAGTTATGTTCAGCATTAGCTAAAGCGGACATTAATACTTTTTCAATTAC -TGGTGATGAAGCTTTGTTTGTTAATTTTAAAATTGCAATAGCTTCAGCAGCATTTTTACCTCTGATTAAG -TCAAGAACTAGTCTTACTTTACGAGGTGCGATTCTTATTGTTCTAGCAACCGCTTTTGCTTCCATTAGGA -TGTCCTCCTCTACTTAATAGATATTATCTTCTTGTTTTCTTGTCGTCTGCAACGTGTCCTTTGAATGTAC -GAGTAGGAGCAAACTCACCTAATTTATGACCTACCATATCTTCAGTTACATATACAGGTACGTGTTTACG -TCCGTCGTATACTGCAAAAGTATGTCCGATGAAATTAGGGAAAATTGTAGAACGACGTGACCATGTTTTG -ATTACTTGTTTCTTTTCGCTTCCTTCTTGAGCTTCAACTTTTTTCATTAAATGCTCATCGACGAAAGGTC -CTTTTTTAATACTACGAGCCATTTGGGCGCCTCCCTTCTTATTATGTGCGTGCAGCTTTAAGCCGCACAC -CCAAATAAGTTGATTATATTATTTTTTCTTACGTCCACGAACGATAAGTTTGTCTGATGATTTTTTACCA -CGACGAGTTTTCTTACCAAGCGTAGGTTTACCCCATGGTGACATTGGAGATGGTCTACCGATAGGAGCAC -GACCTTCACCACCACCGTGTGGGTGATCGTTAGGGTTCATTACAGAACCACGAACTGTTGGACGAATACC -TTTCCATCTTGAACGTCCGGCTTTACCAACGTTAACTAATTCGTGTTGTAGGTTACCAACTTGACCGATT -GTAGCACGGCAAGTAGATAAGATCATACGAACTTCACCAGATCTTAATCTGATTAATACGTATTTACCTT -CTTTACCAAGTACTTGAGCACTTGCACCAGCTGAACGAGCGATTTGTCCACCTTTACCAGGTTTAAGCTC -GATGTTGTGTACTACTGTACCAACTGGAATGTTTTGTAATGGTAATGCGTTACCAACTTTGATGTCAGCT -TCAGCACCACTTTCAACGATTTGACCTACTTCTAATCCTTTAGGAGCAATGATATATCGTTTTTCACCGT -CTGCATATACAACTAAAGCGATGTTTGCTGAGCGGTTTGGATCATATTGAATAGAATCAACTTTTGCATT -GATACCATCTTTGTTACGTTTGAAATCGATAACACGGTATTGACGTTTGTGTCCACCACCATGGTGTCTT -ACAGTCAATTTACCTTGGTTGTTACGTCCCGCTTTTTTCGGTAGCGGTTTTAATAATGACTTTTCAGGTG -TAGTTTTCGTGATTTCTGCGAAATCTAACGAAGTCATATTACGACGACCATTTGTTATTGGCTTATACTT -TTTAATAGCCATTGTCGCTTACCTCCTTAATGGTAATTGGTTTATTAGTTAAATAAGTCGATTGATCCTT -CTTTAAGAGTTACAATCGCTTTTCTTCTTTTGTTTGTATAGCCTTGGTAACGGCCCATACGTTTTTTCTT -AGGTTTGTAATTCATGATATTAACACTTGCAACTTTTACGTTGAAGATTTCTTCAACTGCCATTTTCACT -TGTGTTTTGTTAACACGAGTATCAACGTCGAAAGTGTATTTGTCTTCAGCCATTGCTTCAGAAGATTTCT -CAGTGATTACGGGGCGCTTAAGAATATCTCTTGCTTCCATTATCCGAGCACCTCCTCAACTTTTTTAGCA -GCAGCTTCAGTAATTACTAAGCTGTCAGCATTAGTGATATCTAAAACATTTAAACCTTGAGCAGTTGTCA -CTTGAACGCCAGGGATGTTGCGTGCTGATAATTCAACATTTACATCTTCGTTTTCAGTAACTACTAATAC -TTTTTTAGGTTGTTCTAATGTAGATAATACATTTTTGAATTCTTTAGTTTTTGGAGCTTCGAAGTTGAAT -GCGTCAACTACAGTTAAGCCATTCTCTTGAACTTTGAAAGATAATGCTGAGCGTAAAGCTAAACGACGCA -TTTTCTTAGGCATTTTGTATGCATAACTTCTTGGAGTTGGTCCGAATACGATACCACCGCCACGCCATTG -TGGAGCACGGATTGTACCTTGACGAGCACGACCTGTTCCTTTTTGCTTCCATGGTTTACGTCCGCCACCG -CTTACTGCTGAACGATTCTTAACAGCATGCGTACCTTGACGTAATGAAGCACGTTGTAAATTAATAGCTT -CGAATAAAACGCTATTATTTGGCTCAATACCGAATACTGCATCGCTTAATTCGATTGAACCTGATTTAGT -TCCGTCTAATTTTAAAACATCATAATTAGCCATTATGCATTTCCTCCTTTCACTTCTTATTATTTATTAC -CTTTTTTAATTGAAGTTCTGATTTCTACTAAACCTTTTTTAGGTCCAGGTACATTACCTTTTACTAAGAT -AACTTTGTTTTCTGTGTCAACTTGAACTACTTCTAAGTTTTGAACAGTTACAGTGTTTCCACCCATACGT -CCTGGCATTTTTTGGCCTTTGAATACTCTAGAAGCATCTGAAGCCATACCTACAGAACCTGGTGCTCTGT -GGAAATGAGAACCGTGTGACATAGGTCCACGAGATTGTCCGTGGCGTTTAATTGCACCTTGGAAACCTTT -ACCTTTTGATACGCCTGTTACGTCAATAACGTCGCCAGCTACAAAAGTATCTACTGAGACTTCTTGACCT -ACTTCGTAAGCATCCACGTCTACATTGCGGAATTCACGAATGAAGCGCTTAGGTGCTGCGTCAGCTTTTT -TAGCGTGACCTTCAGCTGGTTTATTAGCATATTTGTTAGATTTTGCATCTTTTTTGTATGCTTTTTTGTC -TTCAAATCCAACTTGGATTGCGTTGTATCCATCAACTTCTACAGTTTTCTTTTGTAATACAACATTTTCT -TTAGCTTCTACTACTGTTACAGGGATTAATTCACCGTTTTCTCCGAATACTTGTGTCATCCCAATTTTTC -TTCCTAAGATTCCTTTGGTCATCGAAAGTCCACCTCCTAAAATTGTCTATTATAATTTGATTTCGATGTC -TACACCAGATGGTAAGTTTAAGCCCATTAAAGCGTCAACTGTTTTTGGTGTTGGGTTTACAATATCGATT -AAACGTTTATGTGTACGTTGTTCGAATTGTTCACGTGAATCTTTATACTTATGCACGGCACGGATGATTG -TGTATACCGATTTCTCAGTTGGTAACGGAATTGGTCCAGAAACATCTGCACCAGAACGTTTCGCTGTTTC -TACAATCTTCTCTGCTGATTGATCAATCACGCGGTGATCATAAGCTTTTAATCTGATTCTGATTTTTTGT -TTTGCCATAATTTTCCCTCCTTATTCGTCTACATTTAGTGATAGACTTCTCCACGAAAACTATCTTACAC -AGCGCCATGGCAAAGCGGCCGGGTGTGTCAGTAACCTTTCGCTTCATCGCTTTTCTTAAAGTCCAACGTT -AGTTATATTACACGAAAAACATCGATAAATCAAGGCTTTTCACATAATTTTTCTATCTGTCTAACACATA -CTTTTATATTTTACTTTATATACTTAGTCAGTTCAACTATTTTCGAGATATTTTTTATTTCCTTCTTTAT -TGTAAATTCGTACCTTGAATCATTTTATTATTATCATTGAAAATTATTCTATATAATTAGTCATAAGAAC -GGTGGTGAATGAATATGAAAAATGGACCAAAATTATCTTTAGCACTTATAGGTATCTTTTTAATACTTTG -TGAGTTTTTCTATGGCATTCCTTTTTTAGGTGCAACGTTTATTTTAAGTTTTGGATGGCAGCCTTTACTC -TTTAATGCATTACTTTATCTAATTCTTACTATTATATTATTAGTGAATAGACAAAATGCAATTAGACCTA -TAGCGATTATTCCAATATTTGGTATAGTAGGTAGTTTTTTAGCTATTATCCCCTTCTTAGGAATTTTGAT -TCATTGGATTTTATTTTTCCTAATGATTCTATTTGTCCTAGTTGTATTATCAGCGCCAACCTATATACCT -AATAAAAATGCTCGTGTCATTTACACACAATACAAAGATGGACATAGAGAATAATTCTTAAAACCTTTTT -AATTAGGTATATATATTATAGAAGAAACACGTTCAACAATTTTAAAAGAAGTATATTTATATCGGATATT -TAAAGACATTCATAATATTGCTTTATGTTATTTCGCTTCTTATTTTATCCTTACTTCAAAGAAAAAACGA -CTACCAATCATTGGCAGTCGTTTTTTGTGTCTGGAGTTAACCATGAACAAATATGAAGTACAAAATGAAT -AGTACCATTAATACATACATTATCGGATGTACTTCTTTATGTTTTTTAGAGATAAGCATTGTAATTGGAT -AGAAAATAAATCCACACGCAATACCAGTTGCAATTGAATATGATAAAGGCATCATAATGATTGTAATGAA -TGCTGGCACTGCAACTTCAAAACTTTTCCAGTTTATTTCAGCAAAGTTTGCAGCCATTAATACACCTACC -ACCACTAAAGCTGGTGTCGTAACTGCACTTGTTACAACAGCGATTAACGGACTAAAGAATAGCGCTAATA -GGAAACAACAACCTGTTACGATACTAGCAAATCCTGTTCTAGCACCTACAGCAACACCTGAAGTTGATTC -GATATAAGAAGTTGTTGTAGTTGTTCCAAAAACTGATCCTACAATCGTAGCTAAAGAATCTGAGAACAAT -GCTCTACCAGCTCTTGGTAATTTATTATCTTTCATAATACCTGCTTGAGTAGCAACGGCTACTAATGTAC -CAGCTGTATCAAAGAAATCAATAAATAAGAACGTTAAAATAACAATTAAGAACTGTATCGTTAATAATTG -ACTTGGGTCTTTAAACGCTTCAAATGCAGCGCCGAACGTTGGTTCAATACTTGGAATCTTACCTACAATA -CCAGATGGCATTTGAATCAATCCAGTGAACATACCAACGATTGCTGTGATGATCATACCGATAAAGATAG -AACCTGGCAATTTAATTGCATATAAAATAACTGTAATAACGATACCGAATATCGCTAAAAGTACTGGTGG -ATCAGTTAAATGTCCCAATGTTACTAATGTAGATTCATTTTTAACTATAATACCCGAACTTTGTAAACCT -ACAAATGTAATGAATAACCCTATACCTGCTGAAACAGCCATCTTCATTTGATAAGGAATTGCATTAATAA -TAACTTCCCTAAACCCTGTGACAGTTAATATCGCAAAGAATATACCTGAGAATAAAACACCTGTTAAACC -AACTTGCCAAGGAATACCCATGGTTAACACAACAGTAAATGCAAAGAATGCATTTAATCCCATACCTGGT -GCTAACGCAATTGGATATTTAGCTATTAGCCCCATGAATAGCGAGCCTACAAATGCTGCTAATGCAGTCG -CTACAAAAATGGCACCTTGGTCCATTTTCATATCTTCTGATACGCCTTTAACACCTGCTAAACTTAAAAC -TTGCGGGTTAACTGCTAAAATATAGGCCATAGATAAGAAAGTTGTGATACCGCCTAATATTTCTCTTTTA -AAGTTTGTTCCATATTTATCGAACTGGAAATAGTTTTTCACGAATGGATGCTCCTTTTTTTAAAATACCT -TAATAGTTTAATATCATTCTTAATAAAAAACAATACCAAAAGCGAACTTTTCGATTTTATGATTCAACTT -TGTTCGATTTTATCTATAAATTCAAGTTTTTTAATGCATCTTTAAACGGATTATTGTCTAAACCTTCATT -TTTATTCATATACTTTTTCATTTCTTTACGAGATACTTTACCAGAGGATTTAGACTTCATACGCTGATCC -ATATGTGCTTGCGTTTCAGAATGTCCACAAACACAACGATATACCGCTTCTTTTCCTTTACCAAACAACG -TTAATTTCTTTTTACAGTTTGGACATCTTGCATTTGTTTTGCGCTGTACATTCTTTTTCGTCTTACAAGA -TGGATCTTGGCACACAAGCATCTGACCATTTTTAGTTTTAACTTTAATCATGAATTTACCACACGTTGGG -CATTCAGTGGTTGTTAAATTATCGTGTTTATATTTACGATCACTATTTTTTATCCCATTTACAACATCTT -TCGTAAAATCTTTCATTTCATTAATGAATGTTTTCGCCTGATATTTACCACGTTCAATTAAAAGTAATTT -TTCTTCCCATTGTGCAGTTAAAAGTGGCGACGTTAATTCTTCTGGTGCTAATTCTAATATTTGTTTACCT -TTTGACGTCACTTTAATTTTACCGTCTCTTGATTCAATGGCATTCATATTAAATAATTTATCGATAATGT -CGGCCCTTGTTGCAACTGTGCCGATACCACCTGTTTGTTTTAATGTTTGCGCATATTTTTTATCCTTCAA -TTGAATAAAGTTCTGAGGGTTCTCCATCGCTTTTAATAACGAACCTTCATTAAAATATTCTGGAGGTGTT -GTTTCATGTTCTCTAATGTTTGTTTTTGAAATCTTCACTTCATCGCCTTCTGAAAAAGGCTGTTGCATCT -CTGTAATAGATTCACCTTGTCTAATAGATTTAAAGCCTAATACAGTTGTTACATTCTCTTTCAAAACAAA -TGTGTGCCCTGCAACCTCTAAAGTAACAGTTATCGCGTCATACTCGTGCGGAGACATTAAAGCTTCTAAA -AAACGCTCGACAATCATATCGTATAACTTTAATTCTCTATTACTTAAGTCTGACATGACAGGTCTCACTT -CTGTAGGAATAATTGCATGGTGATCAGATACTTTTTGATTATTAAATATCGACATTTTTGATGAAAATGT -TTTAGACATTAATGGGCGCGCTTGGTCTTTATATGTTGTTGCCATCGTCGCCTGAATACGTTCTTTCATA -GTATCTACCATATCAGTTGTTAAATAGTTTGAATCTGTTCTTGGATAGGTTACGACTTTATGTCTCTCAT -ATAAACTTTGAAGTGTATTCAATGTTTCTTTAGGTCCAATTTTATAACGTCTATACATATCTTGTTGTAA -ATCTGTTAAATTGTACAGTGATTGCGGATACGACTTCTTATGTTTAGTAGCAACAGATTTAATCTTACCA -TCGACATTTTTCAAATTATTAACTATCTGTTCTAAAGTTTCTTTATTGGTATATCGCTGATTTGATTCTA -GCTGAAAATCAAACCCTTTTACCGTTAATGATAATGTATAGTATTGTTGTGGTTTGAACTGATTAATCTC -TTGTTGTCGTGTATTTACTAATTGAATCGTTGGTGTCTGAACACGTCCCAGGGATAGCTGTGCATCATAC -TTTGTTGTTAGTGCACGCGTTGCATTAATCCCAACAATCCAATCCGCTTCACTTCTCGCTAACGCTGCAT -AATACAAATCGTTATATTGGCGACCGTCTTTTAAATTTTTAAAACCTTGTTGAATAGCTTTTTTAGTAAC -TGAGCTAATCCATAATCGACGGAGTGGCTTTTTGTTACCAACTTTATCCAAAATCAATCTTGCAACTAGT -TCACCTTCTCGTCCAGCATCTGTTGCAATAATAATATCTTTCACTTTATTATCTAAAATTAACGCTTTTA -CTGTTTTAAATTGTTTGCTTGTTTTACCAATAACAACAGTTTTCATATATTTAGGTATAATTGGAAGGTC -TTCTAATCGCCATTCCTTTAAATTTTTATCGTATTGTTCAGGTGTCGCATTTGTCACTAGATGACCTAAC -GCCCACGTGACAATATATTGGTTATTTTCAAAGTAACCATTACGCTTTTGATTTATTTGTAAAGCATCAG -CAATATCTCTTGCGACTGATGGTTTTTCAGCTAATATTAAAGATTTCATAAATTATCCTTTCTCATACTT -TCTTTTATTTCGAACGTGCTTCATCTATTCCACTAATCTTTGATTTAAATTCAATGATTGCAAATGATGT -GTTAAATGTATTGTAACATGTTAATATCACTATTAACTTTCATTTCAGTTGAAATACTATATAATAAAAG -TAACAAAAAGTACGGAGGTAATGACATGAGCATAGTTCAGTTATATGATATTACACAAATAAAATCGTTC -ATTAAACATTCGAATTATGAATCAGCATCATACTTATATAAACTTCCTCAACAGTACAATGAAATAGATG -TATTAATAACCGATGCGATTGAATCACCTGGTGTATTTTCAATTAAAGAAAACGATTCAATTAAAGCAAT -CATATTGTCTTTTGCATACGATAAAAATAAATTCAAAGTCATAGGTCCTTTCGTGGCTGACAATTATGTA -TTATCTGTCGAAACGTTTGAAACGCTGTTTAAAACAATGACTTCGAATCAACCTGACGATGCCGTCTTTA -ACTTTTCTTTTGAAGAAGGCATTCAACAATACAAACCATTAATGAAAGTTATTCAAGCAAGTTATAACTT -CACTGACTATTACATAGAAGCCCGTACAAGATTAGAAGAAGATATGCACCAACCAAATATCATTCCTTAT -CACAAAGGGTTTTATCGTGCTTTCAGCAAATTACACACAACTACATTTAAATATCAGGCCCAGTCACCAC -AAGATATCATTGATAGTTTAGACGACCATCATCATTTGTTTTTATTTGTTAGCGAAGGTTTACTTAAAGG -TTATTTATACCTTGAAATTGATTCACAACAGTCAATCGCCGAGATTAAATACTTCAGTTCTCATGTAGAT -TACCGTTTGAAAGGTATCGCTTTCGAGTTGCTTGCGTATGCATTGCAATATGCTTTTGATAACTTTGATA -TTAGAAAAGTTTATTTTAAAATTCGTAACAAAAATAATAAACTCATCGAACGATTTAATGGTCTAGGTTT -CCATATCAACTATGAGTACATTAAATTCAAATTCGAATCACGTAACGTAAAAGATCAAACAATCCCTGAA -TAAAATACCAAGCAAATACCCCACAGTACATCATTAGCATGTATTGTGGGTTTTTCTACTTTTTGTAAAT -ATTGAAAATTATAAGTAGTTGTTTTTTACTATTAGGGCAGAATGCTTTACAATAACATGCAAGTGTCAAT -TAAGGGGAGCACTTGCATAAATAGTATAGGAGAGTGAGTAGTCTTGCAATTTCTTGATTTCTTAATCGCA -CTTTTACCTGCTTTATTCTGGGGAAGTGTCGTTCTTATTAATGTGTTCGTCGGCGGTGGACCTTACAACC -AAATTCGTGGTACGACGCTAGGCGCACTCATTGTTGGATTAGGTTTACTTATTACTGGTTTCGCAAAATT -CAATAATCCTACTGTAATTATTGTCGGTCTTATTTCTGGTGCATTATGGGCGTTTGGACAAGCGAATCAG -CTTAAATCTATTAGTTTAATCGGTGTATCAAATACTATGCCAGTTTCTACAGGTATGCAATTAGTTGGTA -CAACATTATTCAGTGTTATCTTTTTAGGTGAATGGTCTTCAATGACTCAAATTATCTTTGGTTTAATCGC -CATGATATTATTAGTTACTGGTGTAGCACTTACTTCACTTAAAGCTAAAAATGAACGTCAATCAGATAAT -CCTGAATTTAAAAAAGCAATGGGTATTTTAATTGTATCTACAGTTGGATATGTAGGTTTCGTTGTACTTG -GTGACATCTTTGGTGTTGGTGGAACTGATGCATTGTTCTTCCAATCTGTCGGTATGGCAATTGGTGGCTT -TATCCTATCCATGAATCATAAAACATCACTTAAATCAACAGCACTTAATCTATTGCCAGGTGTGATTTGG -GGAATTGGTAACTTGTTCATGTTCTATTCTCAACCAAAAGTTGGTGTAGCTACAAGTTTCTCATTATCAC -AGTTACTTGTTATCGTTTCAACATTAGGCGGTATTTTCATTTTAGGCGAAAGAAAAGATCGTCGTCAGAT -GACTGGTATTTGGGTAGGTATTATAATTATCGTGATAGCTGCTATAATTCTAGGTAATTTGAAATAGAAA -GTTAAATACTCATGTAACGTAAAAATGTTATCGTTTCTGAAAATAACCATTCACTTTTAGAATGTTTAAA -ATTAATTTTCGTGAATTTTACGTTGAATGTTCCTCTATATGTCCCAGGAAATACATGGCTCTAAAAACAA -AACGCAATAACACATCATGACATTAATCATGCGGTTTAAGACTTTAAAATTAGCGATACTTTTAAAGTCT -TGATGATATTCGTTTATCAGGTATGCGCCATACATATGAAGTGGATAGCTGCATAACGCACTGCATTATC -TGCTAGAATGTATGAGTTGAACAACTATGTCATAAATAAAAGCCCCCTTTTCACACTATGCATTTACATA -TTGTGGTAAAGGGGGCTCTCATTTTCTACGAATACTAAAATGGATTTTATTTTCAAATGTGTAAACTAGA -CAAACACTGCCTGATACACGTACAAAATAATGATACTAATAATGATTGTTAAATTGGTCGTCATACCTAT -AAATGGCAGTGTTCGATATTTAAACTGAATACCATAAGAAATAATTGCGACACCAACCGGGAACATCCAA -GTGACCAACAATGTCGTCTTAATCATATCATCTGATACCGGTAGCAACACATGTACTAACAATCCCGCAA -CTAATGCTAATCCATAATGTAAACATAAATATTTAATAGTAGCAGGTATATACTTTCTTTCCAGAGTAAA -ATTCAACATGACACCTAGCAAAATCATTGATAACGGCATATTTGCATGGGAAAGTATGCTAAAGAAATCG -ATTGCCACATGTGGTAAATGGATGTGACTTATATTCAATATAAACATTACAATGTATGTAACGAGTGGCA -CTGATTGTAATAATTTCTTACCTAAATATTTAAAATCGAATTGATCACTACCTTCACTAAAGTAGCTACC -TACAAAGTAAGTAATTCCAAACATCACAAAGGCACCACCTATATCAGCCATACCAAAATAAATAAGTCCC -GTTTTAGGCCATATCACTTCAATTAGTGGATATGCAAACAATCCAATATTCATAGCACCAGTCATCATAC -CTACTGATCCACGCATGTGATTATCATATTTTCTAAAAAACCAGACAGCAATCATTTTCGCCACAATACC -ATAGATAATCATTAAAATTGGTAAAATGGATAATGACAATTTTAATTCTGCACTGTTTAAATTCACAATA -ACTAAAGATGGGAGTGTGACATTAAGAACTAATGTAGCAATGACTTGACTATCTGTTGCCTTTATATAAT -TAATGCGCTTCAAAAAGTAACCAAGCGCAATTAATAAAATAATCATAGTAAATTGTTCTGTCACTGTTAT -CCCTTCTTTCAATAATCTTCATAATTTATAACTTTAACATACTCCACAGATATTTTAGAAGTCTACTGTT -TCATGCTATAATCTACATTAAATGCACTTAATTATATTTCAAAGGAGTGTTATAGTATGTCTTTAGAAAA -CCAACTAGCCGAACTTAAATATGATTATGTTCGTCTTCAAGGTGACTTAGAAAAACGGGAATCTTTGAAT -TTAGATACTTCCGCTCTTGTTCGTCAACTTAAAGATATTGAAAATGAAATTAGAAACGTTCGTGCTCAAA -TGCAAGATTAATAATCTATCATTCAGACAATAAATGCTTTTCATTACATAAATTTGACTAGCATTGCTCT -GAATACGTTATATTGATGAATTGCTTCATTTTTCGCTCAATTACATCTAGAATCACAAGATGTTGTCGTG -TTATGATTTAGTGTCTCATTAACAACATACGCGCATATCTATCCCAACACTGCTATTTATGTTTTCTACG -CTACTGTACTACATGAACCCTTTGAAACGGAGAGGAAGTTATCATATGCAATTTTATCTGATTTTACTAG -CAATACTTTATCTAATTGTTAGTTTTATTAGTATTTTTAAAATGGAAGTTGTATTTACTCGAATTTTGAG -AATTATTATGGGTGTGTTGTTATTATTCGTCTTAGCATTAACGACGATGAGTTTTCCAAAAGAGAATTGG -TGGGTATTTATCGTCTTATTACTCTTAGTTGGTAATGTCGAAGTGACAGGATTTAAAATGCTTAAAAAAG -ATCTAAAAGGCGTAAACATCTTGAATTTAATGTCATTATTTATCTTCGTCATATATTTCATCTTAACCAT -CGTACTATTCTAAGTAATAAACAAAACATGCAATAACATAATTGCAACCTTATATTATCATCAGATTACA -TATCGAATGCCAGTATTGTTTTATTAACACATCGATTAAATCGCACGTGAAATAAGGTCTAAAATTTCAA -ATTTTAAAAAGCCATAAAAGTAGTCAACATCATGACCGCTTTTATGGCTTTTATATTATCTATCGTTTAG -TGAATCGTTTTTTTAAAGTAAAGAGAATTTCATATATTACTGGTACAACTACAAGTGTTAATAAAGTTGA -TGAAATTAAACCACCAATAACTGTAGCGGCTAATCCTTTCGAAATAAGAATCGAGCTATCTTGACCAAAT -AACAAAGGAACTAATGCACCGATTGTTGCAATCGCCGTCATTAATATCGGTCTAATTCTAGTACCGCCTG -CTTCGATTAATGCTTCTTTCATCTCCATGCCCTGCTGCTCATTATTAATGACACGGTCTATTAACACAAT -GGCATTTGTTACTACAATTCCAATTAACATTAGCATACCAATTAAACTTGGTACTGATATTGTTTCTCCT -GTGATTAATAGTGCAATAATTACACCGATAACTGTAAATGGTAAAGAGAATAAAATTGTAAATGGTGCTA -AGCCACCTTTAAATGTAATAACTAGGATTAAATATACGATAATGATTGCAGCTAACATTGCAAAGGCTAA -TTGTGTCATTGCATTGTTAATATCATCTGATGCACCACCGATATTAACCTTTACATTATTCGGTTTGTCC -AAATTATTTATTTTAGACATCACTTGTCGTGTTGTGCCACCCACATCTTTATTTGTTACTTTAGCAGATA -CCGTCGTTGCATAATCACCTTGTTCTTGCGTCAATTTACTTGGTGTCGTTGTTTTAACTAACGTAGCGAT -ATCTCCCAATTTAATCGTACCACCAGTCGGCTTTTTCAAAGTTATATTATTCAACTTATCTTCTGACCAG -TCTGTTTGCTTATTTTGTTTGACTTTAACATCAACAGTTTTACCATTTTCTTTAACAGTCGTAACTGTTT -TTTCTGGTAAGTTTTCATTCAAGTGCATTGCAAGTTGACTTGCAGAAATACCATTTTCTGCCGCTTTATT -TTGATCAATTTTAATTTCATACTGATCATATGTTTGTGATAAATCAGATTTGACATTGGCTAGACCTTTA -ACCTGTTTCATTTTCTGTTCAATATCTTTTACAGTTGATTTTATGGCATCCATAGATGGACCTTTCACAG -TAACCTCTACAGATTTATTACCTGCACCTGTTCCTAAATCTTGATTTTTCCACTCTCCAGGATGTTTAAA -GCCATCTGCATGTTTAATAACCTTATCCGCTTCTACATCAAAATTAGGCGTGTCATTATCATATTCAACC -ATGATTGCCATACTATTTGTACTACCCGTTGGATCTACTGGACTACTACCGCCAACTGAGTATTGAATTG -TTTTTACATGCTTTTTCTGTTTTAAATATTTTTCAACATCTTTCGCATGATTCAACACTGCTTGCTCCGT -TTCACCAGGCTTCGGTGTATAAGTAATAGCTAAAAATTTATCGTCACCTGCTGAAATAAAGCTAGTGCCT -AGTCTCGGTCCTCCAAATACAATAGTTGTAACCAAAATTAATGTACTTAATATAATTACAATCCACTTAT -GATTTAGTGACCAATGCAATACTTTTTTATAAGTTGTACTAACAACACCTAATCCTTCTTGATGTTGTTT -ATTACGACGTTTAACGCCTTTTTTAAATAGTGTTGCTGCCAACGCTGGAACGAGTGTAATTGACACTAAT -AACGATGCTAATAAACTAAATGCAATAGCCAATGCAAAAGGTCTAAACATTTCTCCTACTGAACCTGATA -CAAACACAAGTGGTAAGAAGACGATAATAGTAACTAGTGTCGATGACATTATTGGTTTAAATACTTCAGT -TGTCGCACTGATAATTAAATTTTCACCTTTTAGTTGTTCTTCTGAATCTGTTAAGCGTCGATAAATATTT -TCAACAACTACAATCGAATCGTCTATCACACGTCCAATCGCTACTGTTAATGCACCTAACGTTAGTATAT -TCAATGAAACATCACTCAATTTCAGAGCAATAAGCGCCATAAGAAGTGATAATGGAATGGATATAATAGA -AATTGCCGTCGTACGAATGTTTCTTAAAAACAGCAAAATAACTATAATTGCCACGATTGTACCTAATGAT -GCTTTTTCAACCATCGTATAAAGTGATTTCTCAACAGGCTTTGCAGTATCCATTGTTTTTGTGACATTAA -AATCTTTATTTTCATCAACGAATGTATCAATTTTACGCTGTACATCTTTGGCTACTTGAACTGTATTGGC -ATCTTGAGCTTTAGTTATTTGTAGATTAACCGCATCCTTGCCATTCGTTTTAGAAATAGAAGTACGCACA -TCACCAACTGTAATATCAGCTAAATCTCCTAGTTTCGCTGTCGGCATACCACTTATATTATTTGATGCTG -ACGTTTTTGAATTTTGCTGCGGTGATGCCTGATTAACGTCTGACATGGCTGAATTTTGTTTATTGTCACT -TTGGGATTGAGATTGCCCTTGCCCTCCTGCCAACGTTAATGGAATATTTATGTTTTTAAAAGCATCAACA -GATTGATATTGACCATCAACAACAATTGATTTATCTTTATCACCAAATTGGAACAATCCAAGTGGCGTTG -TTCTTGTTGCCGTTTTTAGATAGTTTTCTACATCATCAGCAGTCAACCCATATTTTTCAAGTTCATTTTG -CTTAAATTTAAGGGTGATTTCACGGTTCGTCTGCCCATTTAATTGCGCATTTTGCACACCATCTACCGTT -TGTAATTTTGGTATTAATTGTTCATTCAGTACTTTCGTTACTTTTTTCAAGTCATTCTCTTTATTTGAAA -ATGAATATGCTAAAACCGGAAAAGCGTCCATCGAATTACGTCTTAATTCTGGTTGACCAACTTCATCTTT -AAATTTAATTTTATCGATTTCTTTTTTAAGCTGTTCTTCTGCTTTATCCATATCTGTATTATTTTCATAT -TCAACTGTTACAATTGAAGCATTTTGTATGGATTGCGTTTTAACATTTTTCACATATGCCAACGATCTTA -CTTGATTGTCAATTTTACTACTTATTTCATCTTGGGTACTTTGTGGCGTTGCACCCGGCATTGATGTTGT -AACTGAAATAACTGGATTTTGTACATTTGGTAGTAATTCTAATTTCAATTTAGCACTCGCGTATACACCG -CCCAAGACAACTAAAACAACCATTAAAAAGATAGCAAACTTATTCCCCAAAGAAAATTGTAATAGCTTTT -TTATCACAGTACTTCCCCCTCTTTCACTATATTCAAAAATATTTTACTCAACCATTCTATATTGTATAAA -AAAATCTGAACGCAAATGACAGTCTTATGAGCGTTCAGATTTCAGTCGTTAATCTATTTTCGTTTTAATT -TACGAGATATTTTAATTTTAGCTTTTGTTAAACGCGGTTTAACTTGCTCAATTAATTGGTACAATGGCTG -ATTCAATACATAATCAAATTCACCAATCTTTTCACTTAAGTATGTTCCCCACACTTTTTTAAATGCCCAT -AATCCATAATGTTCTGAGTCTTTATCTGGATCATTATCTGTACCACCGAAATCGTAAGTTGTTGCACCAT -GTTCACGTGCATACTTCATCATCGTATACTGCATATGATGATTTGGTAAAAAATCTCTAAATTCATTAGA -AGACGCACCATATAAGTAATATGATTTTGAGCCAGCAAACATTAATAGTGCACCAGAAAGATAAATACCT -TCAGGATGTTCCTTTTCTAAAGCTTCTAGGTCTCGTTTTAAATCTTCATTTTTAGCAATTTTATTTTGCG -CATCATTAATCATATTTTGCGCTTTTTTAGCTTGCTTTTCAGATGTTTCCATCTTCTGCTGCCATTTAGC -AATTTCGGCATGAAGTTCATTCAATTCTTGATTTACTTTCGCTATATTTTCTTTTGGATCCAACTTTACT -AAAAATAGTTCAGCATCTCCATCTTCATGCAACGCATCATAAATATTTTCAAAGTAACTAATATCACGCG -TTAAGAAGCCATCGCGTTCCCCAGTGATTTTCATTAATTCAGCAAATGTTTTTAAACCTTCTCTATCAGA -TCGTTCTACTGTCGTACCTCGTTTTAAAGCCAAGCGCACTTTTGAACGATTTCGGCGTTCGAAGCTATTT -AATAACTCATCATCATTTTTATCAATTGGTGTAATCATAGTCATACGTGGTTGGATGTAGTCTTTTGATA -AACCTTCTTTAAATCCTTTATGTTTAAAACCAAGCGCTTTCAAATTTTGCAAAGCATCTGTACCTTTATC -AACTTCAACATCAGGATCGATTTTAATTGCATACGCTTTCTCAGCTTTAGCAATTTCTTTTGCACTGTCT -AACAATGCATTTAACGCCTCTTTATTACTATAATCAACAACAAAACCACGTGAAATATAACATAGCGTAT -AAGGTAATTTAGGTACTTTTTTAAAAAGTAACTGCGCAACACCCTGAATTTCACCGTCACGACCTACAGC -GATTCTTCGCGCGTACCATCCAGTTAATTTTTTTGTTTCTGCCCATTTCGTTAATTGTAATAAATCTCCA -TTTGGGTTAGATTTAACAAATGCGTCATGTTCCTGATTAGTGATATGCATCTTTTCCATGATTTATGATA -TCTCCTTCTATTTAACAATACCTTTAATTATACAGTTTGTATCTTATAGTGTCGATTCAGAGCTTGTGTA -AGATTTGAACTCTTATTTTTGAAATGTCCATGCTCCAATTAATAGTTTAGCAAGTTCAAATTTACTCATT -TTAATTGTGAATCATTTTATATCTATGCTTCCTGTTAAATTTAATGTTATCGTACAATTAATACTTTTCA -ACTAGTTACCTATACTTCAATATACTTTCATCATCTAACACGATATTCATTTCTAACATGAACCAATTTG -ACTTCAATGAATAAATTTCTCCTCAAGCAACCACATTAATGTTCATATACAATTACCCCTGTTATAATGT -CAATAATCTAACAATGAGGTGTTTGATATGAGAACAATTATTTTAAGTCTATTTATAATTATGAACATCG -TTGCAATCATTATGACATTGAGTCAACCTCTCACCGTGAATTACTTTAGTTTACGGGTTATACTTATCTT -TTTCACATTTATATTATCAATCTTTTTCATTTTAATTAAGTCATCACGATTAAATAATATATTAACGATT -CTTTCCATTGCGCTTGCCATTATTCATATGGGCATTCTCGCTCATAGCACTTACGTATATTTATACTAAT -GGTTCAAAGCGATAAATAGCACCTCTGATAAAAATTGAATATGGTGAAGTTGCTTGTGCGTCTTTTATTA -TAACCGAATGATATTTTGAAACTTTACCATCTTCAATTCTAAAATAAATATCATCATTTTTTAAAATCAA -ATCTGTGTAATGGTCGTTCTCTTCTACAATGTCCATATCAAACCATTTCAACCAATTCGATACTGTTTGT -GATCGGTTTTTACTTTTCACAATAACAGTTTCAATTGAAAATTGTTTTTGAAAATATTTTTGTAATTTTT -TAGTACGCATGGAATCACTTTCTTCCCATTGAATAAAAAATGGTGGCTTAATTTCATCATCATCCTGATT -CATTATATAAAGCAATTGCCACTTTACCTTACCATCTTTATGTGTATCTCTTTCCATTTGAATCGGTCCT -ACTACTTCAACCTGCTCACTTTGTAGTTTATTTTTAACTGCCTCTATATCATTTGTACGCAAACAAATAT -TTTTAAAGCCTTGCTCATACTTCTCTTGAACAATTTGAGTAGCAAAAGCGACTCCACCTTCTATCGTTTT -TGCCATCTTTTTCAACTTTTCATTATTTTCTACATCTAGTAGCTCAATATAATTTTCATTGATATAACCT -AATTTATTGAATGTTCCATATTTATGATGATACCCACCTGAATGTAATTTTATAACATCTCCTGGAAAAC -TAAACCGATCTAACTGATCTATATAATGAATGATGTGATCAAATTTCAATATCATTAGTATCCCCCTATT -TACATGTAATTACGCTTATTTTAACAAAGTATAAATATTTTTGCTCTTAATAATTATATATTGATTTCTA -ATTGTCCCCGTTTTATAATTACTATTGTTGTAAAAAAGGTTAGCTAAGCTAACTATTTTGTCTTAGGAGA -TGTCGCTATGCTATCACAAGAATTTTTCAATAGTTTTATAACAATATATCGCCCGTATTTAAAATTAACA -GAGCCTATTTTGGAAAAACACAATATATATTATGGTCAATGGTTAATCTTACGCGATATCGCTAAACATC -AACCCACTACTCTCATTGAAATTTCACATAGACGTGCAATTGAAAAGCCTACTGCAAGAAAAACTTTAAA -AGCTCTAATAGAAAATGACCTTATAACAGTAGAAAACAGTTTAGAGGATAAACGACAAAAGTTTTTAACT -TTAACACCTAAAGGGCATGAATTATATGAGATTGTTTGTCTTGATGTACAAAAGCTCCAACAAGCAGTAG -TTGCCAAAACAAACATTTCACAAGATCAAATGCAAGAAACCATAAATGTGATGAATCAAATTCATGAGAT -ATTATTAAAGGAGGCACACAATGACTAATCAAGGCTCATTAAATAAATCACCTATTTTCACCAAAAGTTT -TACAATTAACTTTTTTGTCAATTTTATCGTATACCTATGCATGTATTTGTTACTTGTAGTTATTGCTGGC -TATAGTAAGCAAGCTTTCGACGCTTCCGATTCATTAGCCGGATTAGTTGTAGGACTATTTATTGTTGGTT -CTTTAATTGGTCGATTTGCTACAGGTAAATTTGTAAATCAAATCGGACCTAAACGATTATTATTTATTGG -TTTAATTGCTTTAATTATCACGCAATTACTTTATTTTATTGATGGATCTTTAGCTTTTTTAATCTTTGTA -CGTCTCATAAACGGTATCGCAACTGCAGTTGTGACAACTGCAACAGGTACTATTGCGGCATACGTTACCC -CTGTTAATAGAAAAAGTGAAGGCATCAGTTTATTTTCTTTAAGTTTAGTATTAGGTACAGCGATTGGCCC -ATTTCTAGGCATGTTACTTATTACAAAATACGCAATTGATTTACTGTTTATTATTTGTGTTATATTAGGC -ATACTCGGAGTCATTATCTCATTATTTATAAAAGTTGATTTCGAAGTAACAAATAGCAAAACTGAAACTA -ATGTCATTGATAAACCAAGATTTAGTATTCATCAATTTATTGCAAAAGAGGCCATTCCTGTTGCTGTTAT -TATGCTTTTAATTGGCGTTACCTATGCGTCCATCCTAACTTATTTACAAGCATTTGCTATAGAGCGACAC -CTAGTAACTGCAGCAAGCTATTTCTTTATTTGCTATGCTATAGCATCGTTAATTACTAGACCTATTGCTG -GTAGATTGATGGATGATAAAAATGAAAATATTATTGTCTACCCAGCATTTATCATGCTTTTCCTTTCATT -TGTGTGCTTAATTTCAAGCTATCAAAGCTGGTTAATATTACTTGCTGGTGCTTGCCTAGGTTTAGGGTAT -GGAAATTTATCATCTGCAATGCAATCTATTGCGATAAAAGTCTCACCCCCGATTAAATATGGTATCGCGA -CATCTACTTTTTACGTTGGTCTAGATGCAGGTGTCGGCTTCGGTCCATCATTCCTTGGGTTATTTACTCA -TATGTTTTCATATAGTGAAATCTTCGGTTTTATGGCCGCTTTAGCAATCATTACTATGCTTGTTTACTTC -TTAATTCATGGACGTCATGTAACTAGAAATGCCATGAACTAAATATTTATATTCAAAAATAAAAAGCATG -CCAATCTCTATTCATCATTTGTCTGTCCCCAAGACGCAATTATGATGTACTGATTGGCATGCTTTTTAAG -TTTTTAGTTTGTAACGCTTAACACTTCTATTTCTTTAGTAATTTTATCTAACAATTTCTTTTGAGAAGTA -CTATAGAAATAGAATACTTGTCTTTCATCCGTTTCAGAACGCAATTTAGAAATAAGCTCTTTTTTATAGA -TTTTACGGATAATCACATCGATTTTACTTGTATCCCATAGCATTTCAAAATGTAATGTATCCCTCAATTC -TTTACCGCTAATCTTTTCAGCTTCATACACTTTAAAAAGTACTACAAATTCTTCAATTGAAATCTTATGT -GTTGTTTTTAACCAGTGCTTTAACTGACTTAACTCCCTTTCTGCTTCTATAAAACGTTGAACTTTATTAC -TCATAATATGATGCCTCCTATGTTTCTTCTTAGATGTTTGTAATTCATATTATTATACAATTACTTAAAT -TTATTATATATCAAACTTAGCATTTTATCTATTACAAATATTAAATTGCTGGCTATATCTTGTTTAGATT -TATATCTTTTGGACAACTTGTTGTTTATTCGACAACATTTATACCTAAAAAAGATATATTACAACTCAAT -GACTTGGAGTGTGACAACAATGTTAAAGAGCCACTAAAGATTTATTATGTAGTGATTCTTAAGAGTGGGA -TAGAAATGATATTTTCATAAAATTTATTTCGTTGTTCCCCAACTTGCATTGTCTGTAGAATTTCTTTTTG -AAATTCTCTATGTTGGGGCCCCGCCAACTTGCACATTATTGTAAGCTGACTTTTCGTCACCTTCTATGTT -GGGGCCCCGCCAATTTGTAAAAATATTTAAAACGATCATTTCTATTAAATTTGGCATAGATATGACCGTT -TTTACTTTAATAAATAATATTGTATTTTAGGGAGTAAGACAGAAATATTAAAGAATCTCTAATGATTTAA -TATGTAGTGGTTCCTACACATTAACCACCAATATAATTCATGTTTATCTTTTTACGTTGACGATTGGCAA -CTGTTTGAGCAGTTCTCTCATCTGAATATCGATCATCTCTTATTTGCCATAAAGCTTTAAATTGTTCTTT -TAATTCTTCGTCGGTCACGCCAGAACGAATAAACGCTTTAACGTTAAATCCATCGGCAGTTGCAAATAAA -CATCCGTAAAACTTCCCATCTGATGACAGCCTTGCCCGTGTACATGTAGAACAAAATGATTGTGAAACAC -TTGTAATCAAACCAAATTGAACACCATTATCCTTATGTCGATAATATTTTGCTACTTCCCCAAAATATTT -TGGTTCTACAGGATCAATTTCAAAGTGCTGCTCTATCATAGTAAGCATTTCATCTTTAGTTACAACTTTG -CTGAAATCCCATCCATTATCATTACCAACATCCATAAATTCTATAAATCGAATCTCTATATGTTTATCTT -TAAAATATTCAAGCATTGGTATAATTTGATCATCGTTAATACCTTTTTGTATAACAACATTTACTTTTAC -ATTCAAACCAATAGACGTCGCGTAATCAATTTGTTCTAAAATCGTAGTCGCTTTAATATTACGATTATTG -ATTGATTGAAATAGCGTATCATCAATAGCATCCAAACTGACATTAATTCTGCGTAGCCCAGCATCATATA -ACTTTTGTCCATGCTTTTTTAATAACAAACCATTTGTAGTCAAACCAATATCTTCAATACCATCGATTTG -ATTTAATTTAGCAATAAGTACATCTAAATCCCGTCGCATCAATGGTTCTCCACCTGTAATGCGTATTTTT -TTTACACCTAATTCTGCATATACCTTAGCGATTCTAGCCATTTCATCAAACGTTAACAGTTCATTTTTAG -GTAAAAATACGAAATCATCTCCAAATACCTCTTTAGGCATGCAATAATCACACCTAAAGTTACACCGATC -TGTCACAGATAACCGTAAGTCACGGATGGGACGTCCTAGTTTATCTTTTATTTGTTCTACCATTTGTGGA -CCTCCTAACGGCTTACAATTTTTGAATTAAAGCGTCCAAATCATGCTGATAATTTATATTTTTGTACCAA -TATGAGGGCGCATCTACATCCCTGACATCCAAATAATCAGTTGATAATTCATGATATACATTTTTAAAAC -TGTAATTATCAGAATGTAGTGCTTTAGTTATAGCGCCTAATGCATTCGGACTATAAAATGCAATTGTTGG -AATAAAACGTCCATCTTCTTTAAAAGCTGCGACATCTAAATGATTTTCAATAAGATGAGAAACTAAAAAC -TGATACAACGTGCTTACAGCTTTACCAGTAATCATTGGTGTATCAACAGAAACGACAAAAAACAATTCTT -CTTCAGGATGTTGCTTCATGATTGTATAAATTCCTGCTAATGGACCTTTATCATTATGATTCTCATCATC -TATAACAACATTTGGATATTTAAATTGCGTTGCCAATTGCGCATTTGTACTAATAATAATTTCATTGAAC -ATATTTGTTGATTCTAATGTCTTAATTACTCTACTATAAAAGGTCTCACCGTTCACTTCCGCAAAAGCTT -TGGGCTTACCAAATCTTACTGAATGACCACCTGCAAGAATTATTGCTTTCATGCTCGCTTAACCTCCACT -AACCGGTGGAATTAATGCAACGGTATCATTAGGTTGAATGAAATCGGATTTTTGTACAAATTCCTCATTT -ACAGCAACTTGAAACTTTTTATTATTGATTTGCGGATAACGTTCAAACAATAAATTTTCAAATTGTTGTA -CAGTCAATGCTTGTTCAAGCACAATATCTTCCTGTGCTTTTTGTAATATATCTTTAATTTCTGCGAAGTA -AAGTACCTTCATCTCTCTTATTCCTCCCTCTTCGCTTCTTCATAATTCCCTTTTTGATGTCCTTGCCATT -TTGAACCATCTTCCCAAATTTCTTTTTTCCAAATCGGAACAATTTCTTTGATACGCTCAATTGCATATTC -ATTTGCTCGATAGGCATCTTTACGATGCGGTGAAGAAACTGCAATTAATACAGCGATATCTGAAATTTGT -AATGGCCCTATTCTATGAACAATACTCGTTATCGTTCCAGGCCATTTTTCATTTATTTCATCTCCAATTT -GTGCCAATTTCTTTTCAGCCATTGGAATATACGCTTCATATTCTAAATATTCCGTTTTGACGCCTTTAGT -CCATTCGCGAACATGACCGGTAAAAACAACTACTGCACCTTGATATTCATTTATAGTGAATTCACGATAT -TGTTCTGTTTGTATCGGTTCTGTCACGATTTCAAATTGTTTCATTCATTTCAATCCTCTATGTTAATTGT -GTATCACAATCATTTTTAATTTTATTTAATAACCATTGCTCAAATGCTGTAAAATCTTCATGCTCCCTTA -CATTAATGCTATAACAAACATTCGTCAATTGTTGTAATACTTGCAACTCTTCTTCATTTCGATAGACTAC -GACTTTTTCAAAATCAGCATTTTTAAAGCCTTCAACTAATACGATATTGGTGTCAATTGTAACAGATTTC -TCAATAATTTGAGTAAGATTTTGATTATCTACACGTGTTACAGTTTGCTGATATTGAAATCCTTGTACAA -TACTTTGATCTGCCCCCGCTTCAAAATGCTTCATGTGATCGACGTCTGAATCCTGTAATTGAATATCTTC -CTTACCATGCCCATGATGTTTAATAGTAGCAACTGTATAACCATGTGACTTTAAGAAAGAGACAATATGC -CTCATCAATGTTGTCTTACCAGACTTTTTGTAACCTACAATTTGTAAAATCATAAAAGAAGTTCCTCTTC -AGCAGCGTCAGATTCAGTCAATATAATATCTACTGTATGACCCGCTTTAAAACCACGTGACCCTCCTGGT -AACATGACCATACAGTTAGCATGTGCAATCGCTACAACTGCACCTGATTTATTGAATCCTGAAGGTACTA -CAGTAGCTCCAGCACTTGTTAACGTTGCTTTAGCACGTATAAATCGTGTGAATGGGTTTGCCTTGGTAAA -ATCTTCCATTAATGTTGCTTTAATTATTTGCGGGAAGACTTCTAGTGCGCCACACATATGTTTAACAGCT -GGTTTCACAAATAGTTCAAATCCTGTAAAACAAGCTGATGGATTTCCAGATAATCCAAACAAATACTTTC -CATCTGCAAATGCAACCGTTGTAACGCTACCAGGACGCATTGCTACTTTATTAAATAACACTTCCGCCTT -TACAGCCTTATAAATCTCAGGTAAATAGTCAAAGTCTCCAACAGAAACTCCGCCCGTTGTAATAACGATA -TCGTGTTTTTCCATAGCTTCTTTAACGACTTGTATACCACTATCTAAATCATCTTGTTGTGTTTTGTAAA -TACCAACTTCAAGACCTAATTTTTCTGCTAAGGCACGAATCATTGGACCATTAGAGTTACGAATTTTTCC -ATCTTCTAATACATCATTAACATCTAATAATTCGCTTCCTGTTGCAATAACAGCGACGCTCGGTTGCTTA -ATAACTTTAACCTCTGCATAGCCATATGTTGCAAGGACCGCAATAGCCCCTGGATTAATTACTTGTCCTT -TTTTTAGAACAACATCGCCTGTCGTTGTTTCTTCACCTTTTAAAGATATATTTTCATTTTTTGAAAATGG -TTTACGAATTGTAAATGTATCTTCTAGTTCAATCGTTTGTTCAAACATAACAACAGCATCTGCGCCATTA -GGTATTTGTGCTCCAGTCATAATACGCACCGCTTCGTGATCCCCAACTAATTTATCAGAAACTGAACCTG -CACCAATATGATCAATCACTTTAAACTCAATTCGATTCTGACCACTTGCCCCTTGTGAATCAACACTGCG -AATTGCAAAACCATCATAAGGTGATTTATCAAATCTTGGTATATCATAAGTAGCTACAATATCTTCTGCT -AAAATATGATTTAGACTTTTTTCAAGTGCTACCGTAATTGCCGGCATTGTACTCTGCTGATTAACGATAC -GTTGAATTGCTTCTTTAACTGGGATTGGGTTTCTTTTTTCTACTACCATTAAAAATCATCTCCAAAACTT -TTATTTTTTCATGATATACTAGATGCACTAGGAGGGGTAAAATGACTGAGTTTACTCATATTAATCAACA -AGGCCACGCCAAAATGGTCGATGTATCAGACAAACAAATTACAAAAAGAACTGCTGTCGCTCATTCAAGC -ATTACTGTAAATGAAACTATTTATAAGCAGATTTCTAATAACACCAATACCAAAGGCAATGTATTGAACA -CTGCTCAAATCGCTGGTATTATGGCTGCCAAAAATACATCAACAATTATTCCGATGTGTCATCCATTACC -ATTGACTGGCATAGATGTTCACTTCAACTGGGATGAAACAAATGCACCCCTTTATACTTTAAACATTCAA -ACAACTGTCTCTACAACTGGCAAAACCGGTGTTGAAATGGAAGCTTTAACCGCTGCATCAGCAACGGCTT -TAACCATTTACGACATGACGAAAGCAGTTGATAAAGGTATGATTATTGGCGAAACCTACCTTGAAAGCAA -GTCTGGCGGTAAATCTGGAGATTTTCAACGCCAATTAGATCAATAAATTATTTTGTAAGCTCATGAATCA -GATGATTTAATTCTGGTTTAATGAGCTTTTCTAATGCTAATTTAACTGCACCTGTTGATCCTGGAATTGA -AAATATCAATTTATCATTTACTGTACCTGCCACTGCGCGAGATAATAATGCACGCGTGCCAACATCTTCA -ACATAACTCAAATATCTAAATAATTCTCCAAAGCCTTCTATCTCTTTAGTTAAAAGCGGTTTTACTGCTT -CAATTGTTACATCACGTTGTGCAATACCCGTTCCACCAGTCGTAATGATGACATCAACATCTTCTTCTAA -CCACTTCTTCACCTGCGTCGTAATAGCTACTTTTTCGTCTTTTACAATGGTATAATGTGCATCGCTAACT -TCAACATTATCTACTTGTAACAGTTGGAGCACGCATTGACCACCTTTATCTGTATCAAAGTTTCTAGTAT -CTGATACCGTTAGTACGGCTGCTTTAACTGTACGATTCAATTTAACGTTTTGATGTTCGCCCATAATATT -ACACTCCTTTTGTTTTACCTTTTTATCCAAACAATAAATTCATTAGATGTGTGGCATCTGATGTGCGTGT -CATGCCATGTATTAAAAACCTTCCACCTTTAAAAGCAACAATGCGGTGCCCTTTAAATTCAAACATAACC -ATATATGAATTACTGCGATAATTTAGTTGATGCTGTTTTAAAAATTGAACAAGAATATCGTGTGTAATTG -ATGTATTTTCATACTGTACAGTGTCTCTCCCACACAATGTTGCATAACGTTGTTCATTCTTGTTTAAATA -CGGATAACTTGGTACATCTCCACAAGTTGTACAGGCTGTACGTTGCATTTTACTGAAACCAAATGAATAA -TGACTACCTTCCCAAATATCGCCATAAGTTATTTTTGTGTCAATTGGTTGTTCCGTTAATACTTTCATCG -CATCTCTTAATTGTAAACTTGTTGCCATCGTCACGGCAGGTTGAATGACCCCTACTGTATCACATGTTAA -ATTTAATGCTGGCAATTGTGGTACCAAACAGTTAAAGCAAGGTGTTTTACCAGGTATAAATGCAGCTTCT -GTATATGTACTCTGTACAACACCTCCATAAATCCAAGGTATACGATGTTTATATGCAAAATCATTAATCA -GTTGTCGTGTTTCAAAGTTATCGGTTGCATCAATGATAACGTCAACGTCCTGTCCATGTGTCTCCAAAAA -ATAATAATCCACATGGTCAATATAATCATCAATATCAACATCACTACGTAACGCTAGCAAATGCTTTTTA -GCTGCAACCACTTTAGGCATCATTTTCAAAGCATCTTCTTCAGTAAATAATGTTTGTCTTTGTAAATTAC -TAAATTCAATATAATCTCTGTCAACAATGATTAGTTTAGCAATGCCTGCTCTCACAAGACCTTCAGCCAC -ATGTGTACCCAATGCGCCCATACCAATAATCAACGCGCATTTTTGATTTATTTTGTTTTGACCTATTTCA -CCTATTTGTTTAAATAAAATTTGCCTTGAATAACGTTCTTGACTCACATTAAGTTATCCTTTCTATTTAT -CCTTACTTTCATTATATGACGTGCGTCAATGTCTCTCAAAAATTGCGCCTAAAAAAGAGTTTAAAACATC -ATTAAAATGCTAATAGAAGATTGCACTTCTACATTTTTAAATACGTTCTAAACTCTTTCAAGGCAAATGT -ATCATTAACCAATTGTAATAATTTCATGAGCCATTTGTTCTGCTTCATAGTTTGAATGTGTCACAAATAT -GATTGGTATTTGCCATTCGTTGAAAATACGTTTAACTAATGTAATACTCTCATCTTTTGTAGTATCATCC -AAACTAGAAAAAGGTTCATCTAATAAAATTAAATCTGGTTTCGTGCTAAGTGCACGTGCAAGTGCTACAC -GTTGTGCCTCTCCACCTGACAATGTCATAGGATATTGTTTCATCAAATGATCAATATTTAAAGTTTGGAT -TAATTGATCGATGTGTTCAGATGGTTCAGCCATAAAAGTAATATTTTTATAGACCGTCATATTAGGAAAC -AGTTGGTAGTCTTGAAATAAATATCCAATACGTCGTTGTTGAATTTTAACATTCACGTTTTTTGCCGTAT -CAGTAAGCAATTGCCCATTCACTTCGATAATAGCTTCATCTGCTTTACGTAATCCGGCAATCATATTTAA -AACAGTAGTTTTACCAATGCCAGATGGACCACGAACTGCATAAATTTTTGGTTCAGTATCATCTATATTG -ATGCGAATTAAAGTATTCTTTAATTGATATTTTAAATTGATTTTAAGCATCTAGTCGACCTCCTTATATT -TATCTTTATTCAATAAATTAATTGTAGATATAACCACAATAGAGAATGCGACTAGCACTAATACCCATAA -CCACGCTTCATTTTCTCTACCTTGTTCCACTAAGAAGTATATTTCTAAAGGTAGTGTATTCGTTTTATTT -GGAATATATCCTGCAACCATTAATGTAGCACCAAACTCACCTAATGCACGAGCAAAACTCATCATTATAC -CTGCTAAAATAGAGCGTTTAGCTAATGGTAAAATTAATTTGAGGAAAATTTTCGTTTCACTTGCTCCCAT -CGTTCTAGCTGTATTAATCATTTTCGTGTCTATACCTCTGAGGCCTTGCACAGTATGTTGATACATTAGT -GGAAAACTAACAATGACAGATGCTATCACAGCACCTGTCAAAGTGAATACTACAGGTAAATGTAGTACAT -TCGCAAAGAATTGACCAATTGGTCCTCTTGGCGAGAAGATGATTAATAGAATAAAACCTAATACCGTTGG -CGGCAAAACAATAGGTAATATCAATAAACTTTCCAATACTTTAACCCACGAACCCTTACGACGATACAAC -CATTTAGATATAAAAATACCTAAAATCGTTACAATAATCGTACTGATTACAGCAACTCGTATTGATATCC -AAAAAGGTGTTAAGTCAGGCATGGATTACAACTCCTTATGCTGTAAAGTGGTATTCTTTTAATATTTCTT -TAGCTTTATCTGATTTTAAGAATTCCATCCACTCTTTAGCTAATTTACTATCTGATGTCGCACCAGCTTC -ATATGTGATTGGTTTCTTAAGTTCTACTTCTTTAATTACTTTTACAGTATCAATTTTTTTATTTTGTTTA -TATAAGTCAGTTTTATATACAAAACCTTGTTTCGCATTACCTTTTTCAACATAATTTAATACTTGTTTTA -CATCTTTAGCATAAACGATTTTACTTTCAACTTCTTTAAACAAGTTATTGTTATCTAAATACTGTTTCGC -ATATTTTCCTGCTGGTACAGTTTTCACTTCACCTAATGCTAATTTATCATTGCCTTTTAAGTCTTTTACT -GAAGTGTAATTTGAATCTTTATCACCAATTAATACTAGACTATTTTTCGCATATTTATATGTATCATGTG -CTTTATTCTTGTCTTTTAATGCATCTACATCTTTAGTATTTGCAGACATAAATACGTCAACAGGTGCGCC -TGATTCAATTTGTTTTCTTAATGCTCCTGATCCACCATAGTTAAATTTAATATCAGCATTTTTATGTTCT -TTTTTAAATTCTGATGCTAATTTTTTTGTAACATCTGTTAAACTTGCTGCCGCTGCAACTTGAATTTCTT -GTTTTTTTCCATTGTCTGCTGCATCTTTTTTGTTGTCTTGATTATCATTAGAATTAGAACAACCAGCTAA -TACTAAAAATAATGCCATTACAATAGCTATAAAACGTTTCATTTTCATTATGAAATACCCCCAATTATTA -AATATTTACACTCTCATTATACACTTAACAATATTTTTGAAAAGAAGCGTTTTCTCTTTAAATAATGATT -CAAATAATTGTCACACTTTCTAAAAATTATTTTTTATTAATTGAGCTGCTAGTGTGCCTTTTTCTAAATC -CAATCAAATTCTAAATAATTGCCTGCTATTTTATTTAGTTAATCAAATTTCAGTTTTAAGCAAATATGTT -AAAATATTAAGCATATTGATTTAAAATAAAGTTCAAGCTAATTAAAGGGGTTAGATAATGAACAAAGATG -TATCTTTAGGTCAACCAATTGTTAGATATGAAGATGGAAAATTATTCAATACAACAGATCAATATGTGAC -AGAATTTCCACTTACAATTATGGTGAATGGTGAAGAATTTGCGACTGTTATATGCAGTCCAACAAACCTT -GAGGAGTTAGTCATTGGATTTCTGGCTTCGGAAGGTGCCATTTTAAAGCGAGATGAATTAAAATCTGTAC -TGATTGATGATAGTAAAGGATTTGCCCATGTTGAACTGAATAAAGATTTAGGCGATCGCTTTCAATATTC -CACAAAACGAATGATTGCATCTTGTTGTGGAAAGAGTCGTGAGTTTTATTTTCAAAATGATGCTGCTGTT -GCTAAAACATCTATGTCTAAAATCACTTTAACACCACAACAAATTATTAATATGATGACGCGTTTACAAA -GTGCCAGTCATATTTACCAAGAAACAGGTGGCCTGCATAATGCTGCTCTAAGCGATGGTTTGACATTTTT -TGTACATCGACAAGACATTGGCAGACATAACGCTCTAGATAAATTATATGGATTTTGTATTCAGCGACAT -ATTACTGTCCGAGATAAAGTATTAATTTTCAGTGGACGTATTTCATCAGAAATTTTAATTAAAGCCGCGA -AAATTGGTGTTGGCGTCATTTTATCTAAATCTGCTCCGACAACGCTTGCTGTAACCTTAGCTAATGACCT -AAATATTACGGCAGTTGGATTTATTCGAAATGGTGGCTTTAATATATACAGTCATCCAGAACGTATCATT -GATTCTGAACAATAACATATTCATTATAGTATGTCATAATGAACGTATTCTACATGAATCAACAATATAA -AAGCACTATTTTTATAAGTATAAGTAGCTCAAAACAATTTAAAAAGCAGTAAGTTGATTTCTACTCGAAA -CCAGTTTACTGCTTTTTTATTCTAATACAAACCTATCATCAATCGTTAATTTCCAATATCTTCTTTTAAT -ATTTGATAACAAAATGATTGGTAAACATAACCTTGCTTTGCATACATATCTTTTGCTGTATCTTCGCCAT -CTGCAACTAATATAACCGGTTTATGATTTCTAGATAAAGCATATTCACCTACTAATGACTGCATGGTAGA -ACCGATTCCTTGGTGTCGAAATTGTTCTAGTACACCAAATCCATCTAATTCAATGTAATTTTCACTTTCA -ATGACATCTACAACGCCAATAGGTTCATTATTTAAATAAGCTACTAAGCGTTTAATCACATCTTTTTGAT -AATGTTCCCTTACCATTTTTTCATGTGCATCTGCATAGTCTCTTCCAAATGGCAAACTAAACTGATATGC -AACTTTTAAATAGGCATCTATATGCGACTCGTCAACGATAGCAATTTCAACGTCAGAGTTACGCGGCAAA -TTAGCAAGCGCATCACTTTCTATGGCATACAATTCCATAATACCTAGTTCAAAATTCATATCTTTAAAAA -TAGCCATCCAAGTGTCATCAAGTTGTTCATTTTCCGGAAAACTAAATGCATAATGATTTGAACCTTGATT -TGTATGTAATTGATGTTGACGCTTTAAGTCTTTCAACCATTGCTCTTGGGTAGGCATCTTTTTATATAAC -CATGTGTTGCTTGTGTATCGTTGTGGAAAAATAGGCGTTAAATAAATCAACTGCTTGTCGTTATTTTCAA -ATATTGTACCGTCGCAATTAATATCTGACATACTTATATGAGACATTGGCACCTACTCCTTTCACTTTCA -ACAATTGAAAAGCAACTTAATCAATTACTTTTTTATCTTAAATATGATTACTTTAATCCCATAATTTGAC -GAAACTGCGAGTGATTAAGTAAAGCTGTACCAATCAAACTTGCTACAATTGCTTTTAATATATCACCAGG -CAAATAAGCTAATGAAATTGAAATAGCTTTCGTAAATGGTATGTTAATAATCATGCCCATAATCAATGTA -CCAATAACATCTAATGCTATAACACCAAAAACTAAAATACCAACGAATAAAATCCAGAAATTAATTTCAT -TGATGAATCTATCACGAATCGCACCAATCATGAATGCTACAACTGGATATAATAGTAAAAACCCTGTTGA -AGGACCTGCGAATACACCAATGCCACCGCGACCACCTGATAACAGTGGCAAACCAGCAACTACTAATAAT -AAAAAGACGATAACACTTAATGTGCCATATTTACGTCCTAAAATCACACCTGCTAAGAAAATACCAATGT -TTTGAAGTACAATTGGTACTGAAGAAAATGGTAGTGGAATTACCGGTACCAATCCTAAAATAGCGATAAT -CGCTGTCATTAAAGCTGTGTATACTAACTGTTTTGTTGTCATTTTTTACTTCCTTTCGTATTTCATGACC -ATTATTATAGCACCATTGTAAACTTTAAGGAACGAAAAGTTTACAATAAGTTGTTCTATATAAATTAAAA -CCTTAATTATTCTACACAGCTGTTAATTTACTTTTTTAGCAAGTGCAGTTATATAATCAAAAAATGCGTT -GTTATCTACATGATTTATGACATTAATTTTGCGCCCATCTTTACACTCAAATGTCTTACCTTGACTTGGT -CCATAACTTATTACATCCACTTTTTTCTCAATTGAGTGAACTAAGTCCTTGTTACCAATATAAGCAGTCG -TTAAAACATCCCATAAAAAGTAAGTAGAATTTGTTATAAAGTGTGTTAATGGTGGTACCGCTGCATAACT -TACTCCTAAAAAATCAATGCCCGTATATTGGCGTTCATTCGCCCATCTTTGTCTAACATCTAACGTTAGC -GGTACTTGATTCGTACTTTCTAAAGCAACCATATCAATCTCTATATCGCTATCAAAAACAATTTTAACCG -CTTCTGGATCCCAATATGCATTCCATTCTGCAGAACCATCATGCTCAGGTTCTTCAACATTTCCTTTTGG -TAAAAAGGTACCACCCATCCAAACTAATTTTTCTATATACTGAACGATTGATGAATCTTTTTGTAGTGCT -TTTGCTAAATCTGTAAGCGGGCCTGTAAATAATAATGTTACTTTTTCTGATTGTCTCTTTAAAGTTTGAA -TAATGTCTTCAAAGGCTTCTTTGTCTCTCACATTTGAAGCAACGTGTTTGACTGGCTCATTTAAAATTGG -CAATGCGTCCATAAAAAAGGCATGCATACGCCATTCTTTAGGAAATGGATTTTTTCCTCGTTCATATGAT -GGCGCAACTTGAATATCTTCCTTTGAAAAACGATTAATAATTTTTACTGATGCGCTCAAAGATGGTTCTA -AATAACAATCAGCACCAATTGTACTGACCCCTATCAATTGAACGTTTTCCATTTGTAATAATAAAAATAG -AGATACTAAATCATCTACACCACCATCATGGTTAAAATAAACTTTCTTAGTCACTCGAAATCCCCCTTAC -ATTTCATTTTCCATTAACAATATTATGTTTTTATAAAACGTTGTAATATATCTTTCTACAAAATCATAAC -ATTCTGTTGTAATCCTTTTAAACCTCTTCTTTAATTGATAGGCATTCCCTGATATGCCTTCCATAAAGTA -TGCACTAAAATAATTATGATATAACTTATTAATGCAGAGATACATTGAGCTATTTTCTCAGGTATACTAC -TTTAGCTGTAATAATACTAATCTATCATTAATTAAATTGAATGATAATAACGGCACTTATTATTTAAAAA -AATACAAAAATCTAACCTTCTTGCTATAAAAATAAGAGCCTAATACAATATCAAAAGATTGATATGTTTC -AGACTCTCATTTCACTGGCTTATATAGCTGAATTATTTTGCAGCTTTAATTAATTTTTCTTTTAAATCTT -TACGCATGAAATCTAATGTATAAGGATCGTTGTACCAGTATGTACCAGCATCAACTTTAACAATATGTCC -TTCTTTAGTAGCTTTCAAATTCTTCCACATGTTTGTTGATTCGTATCCTGGTGTAGGTTTACCTTCACTT -GTACTCACAATGTAATCACCAGCATATTTTTCAATTTCTTCTTGTTTCACTTCAGCCCAACCTGCTTTTG -CAGTTAACTTTTGTTGTTCTGGTTGCATTTTTAAACCAAATGCTTGATATAATACTTCTCCACCACGACC -CCAGTTATCGCCGTAAGTGTATAATTTTTTATCAAATTCATCAAACAATGACACTGTTGCATCTTGTCCA -ATTGCTTTTTTAATTTCTTTACCGTCTTTAGCAGTTGTTTCTTCCCAATCTTTCTTCCAAGCTTTTACTT -TATCTTCTTTACCAACAATTTTCCCTAACATTTCTTGTTGTTCTAAGTATTTATGCTTATTATAGTCAAC -AACTACTGTTGGTGCTACTTTTTGATACTTTTTAATGTCTTTGTCAGTAGAGTATACAATAATTAAATCT -GGCTTTTCTTTAGCAACTTTTTCTATATCACCATCACCAATTTTAGTAACACCTTTAAATTTATCTTTTA -ACACTTTGCTTTGATCAACTTGTTGATTTACAGCTACAATGTTTGCACCTAATTTTTTAAGTCCACCAGC -ATATGTTGGCGCAACTACTGCAATGCGTTTAGGGTCTTTCGGAATATCTACCGTTTTGCCATCGTCCATT -TTATAAGATTTAGTTTCAGCTTTGTTATTTTTTTCACCTTGGTTCCCACACGCAGCTAACACTAATAACA -TAATTATTAATGGTAATAATAGTTTTTTCATAATTTCCTCCTATTGAAAATGATTATCAATTATTCCAAA -ATTATACAAGATTGCATATACATTTACAATAGCTAGTGTTATTTATTTTTTTATTTTCGCAAAAAATTTA -GCAAAATATCTTAATATACCTATAAATTCCCGCAAAAAAGGTAAATCCGAACGTCAAATTTCATCTCTTT -ATGCCAATCAACGATCGATTTACCTTTTTAAATTTAAAATGTATCTGTAATACTCTTAGCAATATTTGTA -TATGCTGCATCTTCCATAGGTGGATTGTGTAATCCTGCACGCATGTCACGATAGTAACGTTGTAATGGCC -GATTCATTTCTAAACTTTTAGCACCAACAATGCGCATCGCTAAATCAATCACTTCAAGGCCTTGGTTCAT -TACCATTACTTTACTCGCACTCGTCGCATTTCTAATCTGACTTTCGGCTGTATATTGTTGATAGCCTTTC -GCTGTACTCCATAAAAATTGTCTCGCACATAACAACAGCGTTTCCATTTTTCCTAAATTTTGTTGCACAG -TTGGCAATGTTGCAATCGTTCCTTCTATACTATTAGGGCTATGTTGGATTGCAAAGTCTACAGCATAATT -TCTAGCAGCTTGTGCTATACCTAAATAACAGCTTGGTATATGCAATATCCAACCATTTGACGCTTTACTT -TTCTCTGTTTCCACTAAATGTTTTAATGGTACTTTTACATCATTTAATATTAAATCATGACTTTCTGTCG -CTCGCATACCTAATACGTCCCAATTATCGGCAATTTCAACACCAGGCAAATTCCTGTCCACTAAGAAAAA -ACCAACACTTTTTAATTCTTCTATATAAGCAGCAACAATAATATGTGTTAGTGCTTTACTCATTGATGTA -TATGTCTTCACACCATTTAAAATATACCCATCATCAGCTTTAACAGCATGTGTACTTGGTCTTCCCCCTC -TTGTTGGACTACCCATTTCAGCTTCACTAACTGCTCTATTAACTAATGCACCATTATTAATTTCAACAGC -AAATTGCTCCAACATATCTTGAGACCATAATTTCTGTTCATAAATTTGTCCTACGACACTCACATGCCAA -CCAATAGATAATGCTGTGGCACCATCAAGTTCGCCTAAAAATGATTGCAAAATAACCATGTCTTCTATGG -TCGCACCTTCACCACCATATTCTTTTGGTAACGTTAATTTTCCATAACCTTCTTTAATTAACCATTCAAT -ATTTTTATATGGAAATTGGCTATGTTGATCATTATATTCAGCCTTAGCCTTAAATGTATCTCCAATTACT -TTGAATTTTTCAATCCATTTTCTTTGAATTTCCGTTGTTATTAAAAAGGAATTATCCATATCATTCATAT -TAGTCACCCCACACATCACACAATATAAATTATTTATTCCTAGTTTAACACTCGACTTTAAAAATAAAAA -GGAACGTGCTGTGAACAATTAAAAGAAAGCTGATAATTCGATTAAGTATCCAATTAATTTTCTCCAAAAA -TACACCTTAAACTATACAATTCGCTGTATGGTTTAAGGTGATATTCAAACAATACTAGGTTTGATTTAAC -TATCAAGCATCTACTTTGTCATGTTTAATACCCGCAAATAATAAAATCCATGTCACAATAATAAATGGCA -ATGTTAATGCAGGTAAGCCAAACGGTTCAAGCAATGTTGTTGTACCTAGTTGCACCACTACAGTTAATAA -CACACCTAAAAAAGTCGAAATATAAGGGTTAATCGCTGTTTTAAATGTATATCCTAGTGCGATTGCCATT -AATACAAAGTTATAACCGAATAACCCCTGATTAATATCATCATAATTACCACCTAATAGAGCTACAATGA -TAAAGCTTAACAAACTAGCTATAACAGCTAAGAGTGCTGCTTTTCTTGATGCTATTAATATGCCGATTAA -AATACATACACCACCAATTACACTCGCTTCGATAAATACTTGACTGAATCCTTCAAATAATGACTGAATG -ACATGTATTCGATCATTGTTGCTAAAATTAACCGTTTCAATGTTTTGAGGCATTAACTTTAACGATGTAT -CTACAAATTTAACCTGTCCTGAAAGTAAAATTGTAAACCAAGTCACAATGACAAAAGGCATCGTCAGCAT -CGGAACTTTATATGGTCTTAAAACTTCTCTCACTGCAGCAGCGACTGGTAATGTTAATAAAGTTGCTATC -ATTGTTATAACAATATCTAATCCTGACTTATCTAAAAAGATTGTTAACGCAATGGCAGTTAACACTGGAT -TAAATCCGGCTAACCCATCATTAATCTCTGCTTCACTATAATTAATGTAACGTGCAAATGCATAAGCTAT -GATACTACCTATCATAGCTGCTAATCCAACTGTCCAGTCGGCCACAAATAATCCAATCAAGATAAATAAA -CCAGTCCACTTATTACTAATTAACACTACTTGAGATATATTTTTCAAAAGCACATCTATCATTTTCAAAA -TGCCCACCCTTTTTCTTGAATGTTTACTCATTAATATACTACCATTTTACAAAAAGTTATATTAAAAACT -CTATTTTCCAAATCCTAAATATATTTTGCTATTCGTTTTAATCATAATCATATATTTTTAAATACGAAAT -AGTAAATTTATTTTTTGCTGTTCCGTATTAAACTTTGTATATTACTTGTTTATCACAACAATTAGGATTA -ATATAAATTTTGTAAATTGTATCTAATATGAAATTGGGGGTTTTAATTTGCATTTTACACAACGAGAGCA -AGACAAATTAATGATTGTAGTGGCGGCGGAAGTTGCACGTCGTCGTAAAGCACGTGGTTTGAAACTAAAT -CATCCTGAGGCATTAGCTTTAATCAGCGATGAATTATTAGAAGGTGCACGCGATGGTAAGACCGTTGCAG -AGTTAATGAGTTATGGTAGACAAATTCTAAACAAAGAAGATGTCATGGATGGTGTCGAACACATGATTAC -AGATATCGAAATCGAGGCTACGTTCCCCGATGGTACTAAGTTAATCACAGTACATCACCCTATTGTTTAA -AGGAGGCAGTCAAATGATACCAGGAGAAATTATTACAAAAAGTACAGAGGTTGAAATTAATAACCATCAT -CCTGAAACAGTTATCGAAGTTGAAAATACAGGAGATCGACCAATTCAAGTGGGCTCACATTTTCATTTTT -ATGAAGCAAATGCAGCATTAGATTTCGAACGTGAAATGGCATATGGAAAACATTTAGATATTCCAGCTGG -AGCAGCTGTTCGATTTGAACCTGGGGATAAAAAAGAAGTTCAATTAGTTGAATATGCTGGCAAACGTAAA -ATTTTTGGTTTTCGTGGTATGGTCAATGGTCCTATCGATGAGTCACGTGTCTATCGCCCAACTGATGAAA -ATGATGAATATGCAGGCGTATTCGGAGATAACGGTACTGAAAACGTGAATAAAAAAGGAGGAAAAAGATC -ATGAGCTTTAAAATGACGCAAAATCAATATACGAGCTTATACGGTCCAACTGTTGGAGATTCTATTCGTT -TAGGTGATACGAATCTATTTGCTCAAATTGAAAAAGACTATGCGGTTTATGGTGAAGAAGCTACTTTTGG -TGGTGGTAAATCTATTAGAGACGGTATGGCGCAAAATCCTCGTGTAACACGTGATGATGTGAACGTTGCA -GACCTTGTCATTTCTAATGCCGTTATTATCGATTACGATAAAGTGGTTAAAGCTGATATAGGCATTAAAA -ATGGTTATATTTTCGCCATAGGTAATGCCGGCAACCCAGATATAATGGATAATGTCGACATTATTATAGG -TTCAACAACAGATATCATTGCCGCTGAAGGTAAAATCGTCACTGCTGGTGGTATTGATACTCATGTTCAT -TTTATTAATCCTGAACAAGCAGAAGTCGCATTAGAAAGTGGTATTACGACTCATATTGGTGGTGGTACTG -GTGCTTCAGAAGGTTCTAAAGCAACTACTGTAACTCCAGGTCCATGGCATATTCATAGAATGTTAGAAGC -TGCCGAAGGTTTACCGATTAATGTCGGTTTTACAGGTAAAGGACAAGCAACAAATCCAACTGCACTCATT -GAACAAATCAATGCCGGAGCAATTGGATTAAAAGTACATGAAGACTGGGGTGCAACACCATCTGCTTTGA -GTCATGCATTAGATGTTGCTGATGAATTTGATGTTCAAATTGCATTACATGCAGATACTTTAAATGAAGC -AGGATTTATGGAAGACACAATGGCTGCTGTTAAAGACCGTGTACTTCATATGTACCATACTGAAGGTGCT -GGTGGCGGTCATGCGCCTGATTTAATTAAATCCGCTGCATTTCCAAATATTTTACCTTCATCTACAAATC -CAACTTTGCCTTATACACATAATACTGTAGATGAACATTTAGATATGGTAATGATTACTCACCATTTAAA -TGCGGCTATTCCTGAAGATATCGCATTCGCAGATTCACGTATTCGTAAAGAAACGATTGCAGCTGAAGAT -GTTCTGCAAGATATGGGTGTATTCAGTATGATTAGTTCCGATTCACAGGCAATGGGCCGTGTAGGTGAAG -TAATTACACGAACATGGCAAGTAGCACATCGCATGAAAGAACAACGTGGTCCTTTAGATGGTGATTATGT -ACATAATGATAATAATCGTATCAAACGTTATATCGCTAAATATACAATTAACCCAGCAATTACACATGGT -ATTTCTGAATATGTAGGATCTATCGAGCCGGGCAAACTAGCTGATATTGTCTTATGGGATCCAATTTTCT -TTGGTGTTAAACCTGAATTAGTTGTAAAGGGCGGATTAATTAACTCTGCCGTAAATGGTGATGCAAATGG -TTCTATACCTACATCTGAACCGATGAAGTACCGTAAAATGTATGGTCAATACGGCGGAAACCTTACAAGT -ACGTCAATGACATTCGTGTCTAAAACTGCTTATGAAAATGGTATCAATCGTGCATTAAATTTAAAACGCA -TGGTGCGTCCAGTTAAAAATATTAGACAATTATCTAAAGCAGATATGAAAAATAACAGCGCAACACCTAA -ATTAGACGTTGATCCACAAACATATGAAGTATATGTAGATGGAGAAAAAATTACAAGTAATGCAGCAACT -GAGTTACCATTAACTCAAAGATACTTCTTATTCTAGGAGGAACATAGAATGATTGTTGAAGAAATCCAAG -GCAATATTGCCAATTTGTCAAATTCAGAAAAACAAAAGCACGTCGAAAAAGTATACCTTGAAAATTCAGA -TCTCGTTAAACGTATTCAAAGAGTCGTAACAGATCATGGCACTGAAATTGGCATTCGTTTAAAACAACCT -ATTGACTTACAATATGGAGATATTTTATACGCAGATGACCATAATATGATTGTTGTGGATGTTAATTCAG -AAGATCTTTTAGTGATTCAACCAAGAACATTGCAAGAAATGGGAGATATAGCCCATCAATTAGGAAATCG -TCATTTGCCAGCACAATTTACAGAGACTGAAATGCTAGTACAATATGATTATTTAGTTGAAGATTTATTA -AAAAGTTTAGGCATCCCATATGTTCGAGAAGACCGTAAAGTTAATAAGGCTTTTAGACATATAGGACATT -CTCATGATTGATCATACACACTTAAGATTATTTCAGTTCTGTGATTCACAATTTCCAACAGGTGCTTTCA -GTCATTCATTTGGTCTTGAAACATATATTCAACGAAATATAATTCATGATGATCATACTTTTATTGCTTG -GTTAAAAATGTTTTTACAAGAGCAACTTACCTATTCTGATGGTTTAGCCATGCGTTTAGTTTATGATGCA -TTGGAAAATGATGATACACAAAAAGTATTACACATAGATAAGCTGATGTTTGTTCAAAACTTACCTAAAG -AAACACGTGTTGGTGCAAAACAAATGGGGACTCGCATGGTTAAATTGGCTTTAGAACTTTATAATAACCC -ATGGATTGCTTGGTATCATCAACAAATGCAAGATAAGAAAGCAAAGTTAAATCCAGCTATTTGTTTTACT -ATGCTAGGCCATTATTTAGGTGTAGATATTGAAACGATTATTGATTACTATTTATATCAAAATGTTTCAA -GTTTAACTCAAAATGCTGTTCGTGCTATTCCACTTGGACAAACTGCTGGTCAAAAGATAGTTACTCACAT -GATTCCTTATATAGAAGAAACAAGAAAGCAGATTTTCGAATTAAAAGAAGCAGATTTTGGCATGACAGCG -CCTGGTTTAGAACTAAATCAAATGGCGCATGAGAATGTCAATGTTAGAATTTTCATATCATAGGAGGTTA -TAATTGTGGCAAATCCGATTAAAATTGGTATTGGTGGTCCTGTAGGTGCAGGTAAAACACAATTAATTGA -AAAAGTTGTAAAACGTCTTTCAAAAGAAATGAGCATCGGCGTTATTACAAATGATATATATACAAAAGAA -GACGAAAAGATATTAGTAAATTCAGGAGTTCTACCTGAAAGTCGAATCATTGGTGTTGAAACTGGTGGAT -GTCCTCATACTGCGATTCGTGAAGATGCATCTATGAACTTTGCAGCAATAGACGAATTATTAGAACGTCA -TGACGATATAGAACTAATTTTCATAGAATCTGGTGGCGATAACTTAGCAGCAACATTTAGTCCAGAACTT -GTTGACTTTTCAATTTATATTATCGATGTTGCTCAAGGTGAAAAGATTCCACGTAAAGGTGGTCAAGGTA -TGATTAAGTCAGATTTCTTTGTAATTAACAAAACTGATTTAGCTCCCTATGTTGGTGCATCATTAGAACA -AATGGCTGAAGATACTAAAGTATTTCGTGGTAAACGTCCATTTACTTTTACTAACTTAAAAACCGACGAA -GGTTTGGATGAAGTTATCGATTGGATTGAACGCGACACTTTACTCAAAGGATTATCATAATGGATGAACA -ACAATGGACTGGGCAACTTGATTTAACAGTGTTTTTTGATGGCAATCGATCAGTGTCAAGAGATATTTTC -TTTGAAAAAGCACTTAAAGTGATACGTCCAGTTTATCTAAATCAATCTACCATTCCTACATTTTATATAG -TAAATGTAGGTGGTGGCTATTTAGATGGAGATCGTTACCGTATGAATGTGAATGTCGAAGATAACGCTAA -AGTGACATTGACATCTCAAGGTGCAACAAAAATATACAAGACACCTTCCAATCATGTTGAGCAGTATCAA -ACTTTTAATTTGAAAGATAACGCATATTTAGAATATGTCGCTGATCCAATCATCGCATATGAAAATGCTA -AATTTTATCAACACAATACGTTCAATCTCAATAATTCTAGTTCATTATTTTATACTGATATTTTAACTCC -TGGTTATTCAAAAACTGGCGAAGCCTTCAAGTATCAATATATGCATTTAATAAATGAAATTTATATTGAA -GATGAGTTAGTCACATATGATAATTTATTATTGAATCCTAATAAACAATCGATCAATGAAATAGGTTATA -TGGAACATTACTCTCATTATGGCTCTGCTTACTTCATACACGAAGATGTTAACCAAAAACTAATCGATTC -AGTTTATGAAACCATTAGTTCTTACAGCAATACATTCGATTGTCGTGTTGCTATTTCTCAATTGCCTACA -CATGGTTTTGCAGTTAGAATTTTTGCTTATCGCACACAAATTATAGAGAAAATACTTGGAACCATCCAAA -GCTATATCGCAGAAAATATTTATGATCGTAAACTTGATTTTCTAAGAAAATATTAAAATAAAAAGACTAG -TGTACCTTGTTTCAAGCTTAATAAGCTGAAATAAGGTATGGCTAGTCTTTAACTTTAATTAAAGCATCTT -CAATATTTAAATTTTAAGTTAATTTTATGTCCCAATGCTGAATAAATAACTTCGTTTTAATAAATTGTTA -TCGTTCAATGTTATTAAACGCAATTAACCTTGATTTAATTTTTAATGTATTCTTCTAATTCTGAAATCAG -TTTTTGAATATTTGCTTTTTGTGTATCTGTAACATAAACAATAACTGTTCTTTCGTCTTGTAAACTTCTT -TTCTTTGATAACAATTTTAAATCTTTTAGCTTTTGTAAAGCTTTAGTTAAATAGTAAGGTTTGAACTCTG -AGCACTTAGCAATCTCTTTAGATGAGATTTCGTTAGACTCACTTCTTAAAATATGATTTAAAATATAAAT -TTCTTCATAGTTCAAATTGAACTTCTTTTTTGTATCTCTGAAAAACTTCTTAACTTGAAATGTTGCGTTG -ACTAAATCATTAATGTCATTAATTTTACTCATTATTAAACCACTCCTCTGATGCACATCTTGTTGTAGCA -AGGTTCACATGTAATTTATTAAATCGAAACTCTATCCAACTATGTTATAAAGTTCATTCTAAACAAATAA -GTATAAAAATTCAATATTTTTATTACTAGAATATGGTTAAATACATTTATTTCTTATAATAATTTGATGT -TTAAGATATTTTGTCAAATTGAAAATTATTAGTCTGAATATTTTGTATCTTAACTGATATGTAAACTTTT -AAAATTTTAATCTATATCAACGTGTTTGATTTGATATTTTTTATATTAATTGGATGGCTTGCTCACAAAA -TTTATAAAATATAAAAAAAGAAGAGCTTTAAATCATAACGCATGCCATTTATCTTTAAATGCAATGAGTT -ATCATTCAAACTCTTCTTATCAACCTACATACATTGACATTATACTATCATATGTTGTTTTACATATTCA -ACAAACATTTCAACGTTATTACTTTTAATATCATGCATTGGGACATTACCAATATTAAATTTGAACATTA -TAGTTTGACCATCATAATCTATCTTTTCTATTTCATTATAACTAATACTTCTATAATAAAATTGGCCATT -CATATCTACATTCATAATTAATCTTTCATTTGTTGCTATAAATGCCCCTTCAAATTCATTCGCACCTTGA -ACTTGATACTCAATTATTCCTAACACTGACGGACCCTTTTTTTCAGTTGGAAATAAATCATTTGGATTCA -CATTATCTAAAATCATAATATCCCTCCCACTTAAAACTATAAACTATTCTTCATAGGTATATGAAATACA -AGTGATTAACTATTTATTATTAAGCTTAACTTGTATTCCCTTTTCAAGATAATTATAACATGCTTGAATA -AGCATAGTGACTTTAGAAAACTTTTCCCGCTTGATTGTTACAATAACACGCCTTTCATCTAATTCACATC -TCTCTTTTTTAACTAATCCTTTCAAAATTAAACACTTTAAAATCGGACTAACCGCAAATATCGGGTGATG -GAATTCACCCTGTAATTCTTTAACCGTCAATTGACCTTTATGCAGATTTAATATTCCTAAAACGTATAAC -TCTTCTAATGATAATTGACACATATTTAAATAACACTTTAGATTTAGCAATAATTCTTGTGACGACAATA -AATACGATACATAGTCACAACTAAAATCAAATGTATATTGACCAAAATAACGTTCAATATAGTCACTAAG -CTCATTATTCATATATTCTATTTTATCTATATGCATTTTATTAATCGAAATAGTCAATTTACGTTGATCC -CTTTGATCTCTTGCTTTCAATAGCCATTGATGATTGTTTAAATAACTTAACATTTGAAGAAGTGCCATCT -TAGATTGGATTTCTTTCATTTTTAATAACCTATCTATTGAAGCGCTATTGGAATCAGAATTATCATATTT -AACTAATAGATTTAATAGTTTCACTTGAGTCAAAGTGAGATGAAATGAATATTTCAACATATCATTAATG -ACTTTCAACATTAGTATGTGTGCAGTTAAACGCTTAACTTTAAATTTAGACATCTTTAAAACCTCTCTTA -AACCATGCCTATATCTCAAGATGATATTTCAAATGAACAATACTATTGCTTGAGACCATTAATGAATGAT -CATAAATATTTCTTTCTATAAAATTAGCTTTCCAATAACTGTGTTGTTGCATAATATCATTCACAAGTAC -ACCATTTTCGGAAGTATGATTATCTTTATCTATACTTAAAACAATTTGTTTAGTTTTAGCATGGCTAAAT -TGTTGAAGACCCTTACACGATAAACGTATAGCGTCTGAATTCTCATTTAACAATGCGGCTGGCAAACAAA -TGACACATTGTACTTCATGTTTGAACTTCGTTACAATCATCGTGTCATTTTGATAAATAACAATCCCTCG -TAATTGATTAAGTATATTTATGATAAAAATGAATATTGATAATCTAGTCAAATTTATTTCTTTGCTCGCT -TCACTTATAATTGACATGTGCATAATAAGTCCTCGAAATTTTGTATAATTTGTCAAAAGTTCAGTAACCT -TATTAATATCAGACATTGTGATTTTTTCTTTTAAGTCATTATTCTCATTAATCAAATCTACATCACATAT -AATTTTAGAACGTGCAATAGACACCTGTTCTATTTGTCTTAGCGGTAAGATAAAATAGTCTATTAGATGA -TCAATTTCTTTATCATAGCGCGTATTCAACTCATTTGGTTCCAGATGATATATTAATTCAAATACTCCTA -TATAATTATCTATTAAACGTTTCAGTTTTTGAATTGCAGTAGTATTTAAGTCGTTAATTAAAAATGCAAT -CTTACATCTATTACTCTCAAAAGTCATATTAAAAATTGTAGCTACTAGCTTTTCTATCTTGCCTCTTTCA -GTACTCGTTAACAATTCCTTATATTCATGTTTAATACGAAATACTACATTTACATTGTAATTCACTATCT -TTTGAAGTAATAAAGTGATTTGTTCAATCGATAGCTCATTGCTTGTGTCGATTGTAACAATTATATGCAA -GTTTTCAGGATTAACACCTAATCTTTGAATGATTTGTTTAATAGTATAGTAATCCATCCAATAAAAATTA -CTTCCTTTAATATAGATGTTTTTAGGTTGATACATTTGACTCCTTTTTGTAGGCTCAAAAGGTATATCAA -TCTCGCGCATACTTGAAGAACTTTGATTAGTATCATCAAATAATTCAATTATATTTTTATCAATTTCAAC -TAATTGGGAATGGTTAATTGAATGAGATGTTGGACTATTTCTTTTTCTAATTAATTTAGGAGTGTCACCA -TACGTTTCTTTAAAGAGGTGTATAAAACGAGAATAATGATTAAAACCATGACTACTTGCGATTTCTTCAA -TGGGCTTCTTAGAAGTTAAAATATCAATTAAGCAATGCTCCAGTCTAATATGATTTAAATATTGAATAAA -ATTACTATAAGGCGTCGCTTTAAACATGTCACTTAAAGCTTTGTTTGTGATACTAACTTGATTAATGACA -TCTTTCCTATTTATCTTTTTATGGTGGTTGTTTGTTAAATAATCGTGCACTTCTTCGGCTACTAAATGAC -GACTACCATCGTATGTATTTAATGACATTAATTCAACACACATATAATTAATAATCTTATCATTAGCATT -ATAAGGCTGTTGTTTAATTTTGCTGTAGATTAAATACTTAATCAAGATTCTAAAAGTGCTAGCAACCTCA -TTTGTTAATATCTTGCCACGCATCATATAGTTTGCATTCATAAACTTCAAAAATGTCTTTGCACTTACTT -CAACAACACAACATACACTATCATCATGACCATCAATCTGATACAAATCATTCAACATAATAACGGTGAC -ATCATTTCTTTTCACATCATATTGTTGTAGATTGATTGAAACTACACCTGTACCTTGAAGCCAATATATA -ATTTTTAAGTTTGCTTCCTTCACACTACTCATTTTCATACTTTTAAAAATATGTAGTGAATAATTATCTG -TCATCTTACATCCTCACATATACAAATATATTGATTTACTCCTGTTTGTCTTTCTCAAATCAATTGTCAA -CATCTAATATTCACTACCAATTATATCGCCACATGTTTTTTAGCAGTAACAAAACATAAATCGATTATAT -CAAATAATACTTTTATTAAAACATTTTTTTATGCTAAATTAGGATATTTTATCCATTAAATATACATTTT -TATCCAAATACCAAAGCTTTCCTAACCAAAGAAATTTGATCGTTCGTGTCGAATTTTTATGCATTTTCTG -ATTAAAAGTCCTATATTATGCACAAAATATACATTTAGAATTTTCAGTAATATTACAAATTTGTAACATA -CTTATTTTCGAAACATTCAGTTTTTACAAAGAATGCCGTAGTTATAAGTTTTGCAAAATGCAAATTTCTA -TACTTTTACAATTCTATTGTGTCAAGATATTAGCAAAAAATTACAAAACGTTAACAAAGCACACAAGGAC -GCTAATTTCTGTTATAGTCTTTCTTGTCGTTTAATTACGAGAGATAACTTATAACATTAATTTTGTCACA -CGGACATTACGAAAATATTTTAGATTTAAAATTTTTAGGAGGATATTTTTAAAATGAAGAAAATCGCTAC -AGCTACTATCGCAACTGCAGGATTCGCTACAATCGCAATTGCATCAGGAAATCAAGCTCATGCTTCTGAG -CAAGATAACTACGGTTATAATCCAAATGACCCAACATCATATAGCTATACTTACACTATTGATGCACAAG -GTAACTACCATTACACATGGAAAGGTAACTGGCATCCAAGTCAATTAAACCAAGATAATGGCTACTACAG -CTATTACTACTACAATGGCTACAATAACTATAGCTACAACAATTACAACAACGGTTATAGCTACAATAAC -TACAGCCGTTACAACAACTACTCAAATAATAATCAATCATATAACTACAACAACTATAATAGTTACAACA -CAAACAGCTACCGTACTGGTGGTTTAGGTGCAAGCTACAGCACTTCAAGCAACAATGTTCAAGTAACTAC -AACTATGGCTCCATCATCAAATGGCCGTTCAATCTCAAGTGGTTATACTTCAGGACGTAACTTATACACT -TCTGGTCAATGTACATACTACGTATTTGATCGTGTAGGTGGTAAAATCGGTTCAACTTGGGGCAATGCAA -GTAACTGGGCTAACGCAGCTGCAAGAGCTGGTTACACAGTGAACAATACACCAAAAGCTGGTGCAATTAT -GCAAACAACTCAAGGTGCATACGGTCACGTTGCATACGTTGAAAGTGTTAACAACAATGGTTCAGTAAGA -GTTTCAGAAATGAACTATGGTTATGGCCCAGGTGTTGTAACTTCACGTACAATCTCAGCTAGCCAAGCTG -CTGGTTATAACTTCATTCACTAATTTGTGATGAAAGTGAATTAAGCCAACAAGGTTTCAAGAGCCTTGTT -GGCTTTTTTAATTTCTAGACATCAAAAAATCGGATTGGTAAAAATCTCAAAACTTCGATTTCCACCAATC -CGATTCACTCTGTAATAAAGAATAAACAACATACAGCCATTGACACACCCAAATTTAGGCGCGTCAAATC -GGCTATACATTGATAAATTTTTAGTTAAAGTACTTACAAATATACTTGCCTTCAAATTCTCAATTAATTT -AGTCATTACATGCCATGACATAAAGCTTACATTACATATATTAACATGTTCCGCTACAAAACATATTCAG -TATATGTATAGAGGATATTTATTCTAAGTTAAAACCTTTTCAAATTATAACCGCTACAATTATAAATGAT -TAAAGTGTTTCAACATATTATATATATTCCACGCTCACATTAAGTTAAACGTGAATTCGATGACTTTTTA -ATACCTATTCCTGTAAAACCATAGATAATTGCTATAATTGCGCATAAATAACATGGTACTGTCCATATGA -AAAATTCTCCAACAGAGACATGAAGTTGATTCGTATAGTAAATACCTGATGTTCCCCATGGTATTAAAGG -TAAAACCATCGTACTTGAGTCTTCAAGTGTTCTTGATAAAACGGAACGAGAGACTTGGTATTTTTCGAAC -AAATCTTTCATTAACACACCGACCATAATAATTACAATCGAAGCAACACCTGCAGCGAATACAAGCGCAA -TACAACAAATAACGGTAATACATATTAAACTTCCTACAGAATGGATGCCTTTAGAAATAGTAGTTAATAA -GACTTCTAAACATCCTGCTTTTTCTACAATACCTGCAAATGCATATCCGCAAAATATCGTTACTAATATT -TGGGTCATACTCATCATACCACCCTGTTCTAACAAGCTTTTCACACTGAATGAAATATGAGACTGATGTA -TCATTGAGTCGTTAAAACCACTAAATGTTGCTTTGAAACCATCTGTCATTTTGAAATGATGATTAAAAGT -CCCCACTATAATGGCAGAAAAGCTTGATATTAGCATAGCTGGCACTGTAGCCATTTTAAATAGCAAACAA -ACAATGATCACAATTAAGGGAACCCAGACCCATATGTTAATTTGATAAATCTGTGCAAGCTCTGATAACA -ATGTTTGAATCTGCTTATCATTTGAATGCCCTTTAAATTGAAATCCAACAATAAACCATACTAATAAACC -GATGATTGACGCAGGTATTGTTGTCCACATCATTGAATGAATGTGTTTAAATATATTCACTTTAGTGACA -AGCGCCGCTAAATTAGTTGTATCTGATAAAGGTGACATTTTATCGCCAAATACAGCGCCTGCTATAATAG -CACCCGCAGCCATTCCTGGTGAGATACTTAATTGATTACCGATAGAAATAAGTGCAATCCCTGCAGTTGA -TGCAGAGCCCCATGCTGTACCAGTTGCTACAGATGTAACAGCACTTATAAAAAAGGCTGATATTAAAAAA -TAGCTTGGATTCAATAAATCTAAGCCATAATAAATCAAGGCTGGCACTGTGCCAGAAAACATCCAACTGC -CTACTATAATTCCTACCGCTAGTATAATTAAAATTGCAGGCATTGCAGTATTTAAACGTTCTGCAATGCC -TGTTTCTAAATCTTGCCATGTTAAGCCTACACGTTTTGCAATCCATGCGGCATATGCTGAGGCAATAATT -AATAATACTTGAATTGGAATATCAAAAAACACAAAGCCTGTTACAACAACAATAACCATTACAATCATTG -TCGAAATTGATTCTAAAAAGGTTGGTTTTCTTGTCATCATCTATCGTCCCCTTCGCTTATTGATGAGAAA -CCTCTTTTCTTCAATTTATTGCTTTTGCATAATGCTATATCCTTTTCTATCTTCAAGCCATCATTTATTT -TAAATATTTTTCTAAATCAAGCTTATCTAAGCCAATGGATTCAACTGTTAAGCCTTCCTCAAAGAAGTCT -CTCTCTAAAATGGTTGATGCAATGACAATTACTGCATCTATATTTGGTGTCGGTACATCAATAACACGAC -CTAAGCTTGACCATAATACTAAACCATATGCAATATCCTCAGTTAAATATCTGCTTTCTACATGATTTGG -TCCTGGAATTTGTGAAAATACTGGGCTTGTATTAAACAAACGATTTAATGGTTCATCTTCTTTATCACGT -TCTAAATAACCACGTTCAATACGTGATTCTTTAGCTGTTGATAATTCAAAACCTAATCTACGGCCTAAAT -TTAAACGTTCTAATTCGATTGCATGAAGTAATCTAACTGTATGTTTAGTAATTCCTTCTTTATATAAAGC -GAACTCACCAGCATAATCAATACGACCGACATTCAATAATGTTGGCCCTGGATGCACTTCAGGATTACCA -TTTTCAAGATTTGTTTTAATTAAGCTTTCCTCTTTTACTAAATGATCATAAATACTTGAAACTTTGTCAT -AACAATCATTTAGACAGCTTCTATCATATGTTGAAAAGAAGATACGACGTACATTTAGAGATAAATCAAC -TGCTGCATTTTCAAAATCGACACGCGTACCATACGTCAACGTATTAGCTTCTGCTAATTGTGGTTTTGTT -TCAATATGTCTATCTTCTAAAACATTCATAAAACGAATTGACCCCATTGCTGCAGCCATGTTGAAGAATA -TCAACTGATTATCAGTTACATGCTCTGCCATTACATCAGCATAATATTCTATGTATGAAGATGGAATAAT -CACTTGAACAATTTCAGCATCTTTTAAAACATATTCCATATCATCACTAATATCAGTGAATTTTACGAAA -CGTTCATCACCTTCATTATTAAAATCAAATCCGCCCTTTTCGATTGCGTTTTGAAACTTACTTATAGATT -GATTACGACAATATAATTTAACATCGTGGCCTTTGCTCACCATATCTACTGCTGCCGTAACTGCGCCATT -TCCTGATCCTACAATTGCTATTTTCATAAACAACCCTCTTTCTATCTTTGGTTAAAATTAAAAACAAATT -ATACGTAAGACAATATAAAAATGATGCGAATTCATTACGCATCATTATAAATGTTAAGTATATATAACCT -TAAATTAACCTATTTAAACGCCGACGTCCACCAATTATTTTTATTTTTAATAATTGTTTAATAAACATGT -TTATTTTTGATTATATTTTGTTATAGTTAAAGATAATATTACAATTTTCAAAGGAGTGTCTAATATGACA -ACTGAAATGAACGACGTAACAAATCATCAACCGAATCGCAAATCCAATGATGAGAACATTATGGCGATGC -TTATCTATTTATTAAGTTTATTCACATCTATTATTGGTCCACTGATTATATGGTTATTGAAAAAAGATGA -ATCGAAACTAGTTGATCGTGCTGGAAAAAATTATCTTAACTATACGATTTCTTATATTATTTGGTCTATC -GTTTTAGTCGTTATCACTTTTATAGGCGTTTTCCTAATTGCTACCGATATTGATTTCATTATCATTATAG -GTTTCATCATTACGTTTATCGGTATTTTATCCATATTCGCTTTCTCAATTTTATCTTTTGTATTCACAAT -TATTGCGTGTGTCAAATATTATAATGGCCAAGAATATGTAATACCTTTAACAATTCGATTTATTTAAACA -TATTACAAATAAATATTTCCTATTAATTATCTGTTAATCTCACTGTAACTTTGACTAATTTTGTAATAAA -AATTAGTCAAAGTTTTTTTATTCTTTTACAAATCAATAACATTCCCCACAAGAAGCATTAATTTTGTTAA -AGTAACTATTGTCATCAATTCGAGATGTGAGAATAAAACAGTCGCTACGTTTTATTTATAAAAAAAGATA -TAGAACTTTGGAGGACTTTATTCATGAAAAAATTAGTAACAGCAACTACGTTAACAGCAGGAATTGGTAC -AGCATTAGTAGGTCATGCACAACATGCAGACGCTGCTGAAAATTATACAAATTATAACTATAATACGACT -CAAACTACAACGACTACAACAACTACGACAACTACATCATCAATTTCACATTCTGGTAACTTATACACTG -CAGGACAATGTACTTGGTATGTATATGATAAAGTAGGCGGAGAAATCGGATCTACTTGGGGAAATGCTAA -TAATTGGGCTGCTGCTGCACAAGGTGCTGGATTCACAGTAAACCATACACCTTCTAAAGGCGCTATCCTA -CAATCTTCTGAAGGACCATTTGGTCACGTTGCATATGTAGAAAGTGTAAACAGTGATGGTTCAGTTACAA -TTTCAGAAATGAATTATAGTGGCGGACCTTTCTCAGTAAGCTCAAGAACTATTTCTGCAAGTGAAGCAGG -TAACTATAACTACATCCATATTTAATTTAAACACGATGATACATATTGTCTTGAAACTTAATTCTAGTAC -ATATGTCATCAAAAACTTTGAGCTTTCCTTTATAGGAGAAGCTCTTTTTTTGCTATTTTTCATTGCCACC -TACTTATATATATTTCCTCCCATATTCATAATATTAATTTTTTCAATACTATTAACTTTAAAACTACGTT -ATCTAATTTAATTGATCCAGTTTTCCACATTACAATATTCATAGTTCTACAGTGACTAAGTTATATCACC -TCCATCAAAAGTACACGCTTACATCATTGATACACAAGACATCATGACATAGTTGTATACTGTCTAATCT -TCTACTATACTAAGATAAAAGGAGTGATCTTTTATGGAAAAAGTTTATGTTGCTGGTGCAATACCAGAAG -TAGGTTTAAAACTTTTACAAGAACATTTTGAAGTTGAAATGTATGAAGGTAAAGGATTAGTCGATAAAGA -CACTTTAATTAAAGGTGTTAAAGATGCGACTGCCTTAATTAGTTTATTATCTACAAACGTTGATAAAGAT -GTTATCGATGCTGGTAAAGACTTAAAAATCATTGCCAACTATGGTGCTGGTTTTAATAATATTGATATCG -AGTATGCTCGAGAAAAAAGTATAGATGTTACAAACACACCTAAAGCATCAACAAACGCGACTGCTGATTT -AACAATTGGATTAGTACTTGCAGTAGCGCGTCGTATTGTTGAAGGCGACCAATTATCACGTACAACTGGA -TTTGACGGATGGGCACCTTTATTTTTCAGAGGTAGAGAAGTATCTGGGAAAACAATCGGCATTATCGGTT -TAGGTGAAATTGGTAGTGCAGTAGCGCGTCGTGCAAGAGCATTTGACATGGATGTACTATACACAGGACC -TAATCGCAAAGAAGAAAAAGAACGAGAAATCGGTGCAAAATATGTAGATTTAGATACACTATTAAAGAAT -GCAGATTTTATCACTATCAACGCTGCTTACAATCCTAAAATGCATCATTTAATTGATACAGAACAATTTA -AAATGATGAAATCTACGGCGTATTTAATCAATGCCTCTCGTGGTCCAATCGTGCACGAACAAGCACTAGT -GCAAGCATTGAAAAATAATGAAATTGAAGGTGCTGCACTTGATGTATATGAATTCGAACCAGACATTACC -GATGACTTAAAATCACTTAATAATGTAGTATTAACACCGCATATTGGTAATGCTACATTTGAAGCACGTG -ACATGATGTCTAAAATTGTTGCTAATGCTGCAATTAGTGCCGTTCAAGGTGAGAAACCACAATTTGTCGT -TAACTAATAATTGAATTTATTATAATGACATTATAAAAACAAGACCCCCCATATGTTGAGCTCTAATTTC -AACATACGGGGGTTTTCATATTGTTGTATTACTTTTCTTTCGATTTATATAAGAATTTAGTCTGTCCAGC -TGCTAATGCATTTGGCATCATTTTCATAATACGATTTCTAACTGCAACAACTAAACGACTACGATATTGG -GCAATTTTACCGATTTTTCTAGAACGTTTAATTACTTTTGCAGTATGTTTGACACGTATTTTATCATAAC -GCTGTAATGCTTTTTCAAAGTCGTATGCATTAAAACAATTTACTAATACGATAGCATCTTCCATTGCTTG -TCCAGCACCTTGCCCCATATTAGGCGTTGTCGCATGTGCTGCATCTCCTAGTAAAATAGTACGACCATAA -ACAAAAGATTTGAGTGGTTTCAAATCATAAATATTATGCAATAAGATACCTGTTTCACTTTGTTTGTCTA -AGATCTCTCTAACTTCATTTGGATAGTGATTAAAGTATGCTTGCAAATGAGGTTTACCAAACGAACTATA -TTTATGATTGTTTTCCTTCGAGTTAATTGTAATGAACCAGTATGCTTGATTATTTAATAACGGAACAATA -CCTACTCTTCCTTTTCTTCCCCAGTATTCTTTTGCACAATCCGGATGTTTTAAATCAATATCATCAATTA -AACCTCTAAAGCATGTATACCCTTGATATAATACTTTACTGTCAGCATTTACAGATTGTCTCACTTTAGA -ATGAATTCCATCAGCACCAATACATAAATCAAATGCTTCACTCTCTTGTTCCGCGAAATGTATGGTAACT -TTATCTGTCTCATTATCTATATGCGTGACTTCATGATTTGTAAATATTGCATCATCTTTTACATAAGATT -TAATAATGTCAATTAAAGTTTGGCGTGGTAACGTCACATTCAATGTATTACTTTTTAATTTAACTGTAGT -TAACGGGCGATCTTTGTCATCTAACACTGTCATTGTAGATAAGATTTGCCCAGCATTTTTAATACCTTTA -GCTAAGTCATGATTACCTAGTTTTTTAAGCACATTATCTCCGATACCAATCCCAGCGCCAATTTCTTTAA -CTGACTCATTTTTTTCAAAGACTTTAATAGTATGACCTTGTTCTTGTAATAGTGCAGCAGCTGTTAATCC -ACCGATGCCTGCACCTATAATTGCTATCTTCATATTGTCACCTCTATATTTTTCATTCTTTTCTATTTTA -TCACATGCACTATTGTTTAAAAATGACTCTTGGAACTAACGTTTCATTTTTAAAGACTTAAGTGTATTAT -CTGCACCATTGTATATTACATGCACATTTAGACAGCAATATTCATTTACATAATGTACATTTGTAACAAT -GATGTGGGAGCTTGGGACATAAATCAATGTCCTAGGGTCTATAATATTATATTGGCAGTAGTTGACTGAA -CGAAAATGCGCTTGCAACAAGCTTTTTTCAACTCTAGTCAGGGGCCCCAACAAAGAGAATTTCGAAAAGA -AATTCTACAGGCAATGCGAGTTGGGGTGTGGGTCCCAACAAAGAGAAATTGGATTCCCAATTTCTACAGA -CAATGCAAGTTGGCGGGGCCCCAACAAAGAGAAATTGGATTCCCAATTTCTACAGACAATGCAAGTTGGC -GGGGCCCCAACAAAGAGAAATTGGATTCCCAATTTCTACAGACAATGCAAGTTGGGGTGGGACAACGAAA -TAAATTTTGTAAAAATATCATTTCTGTCCCACTCCCGCGTTTTATGTTAGGTTAAAATCCATTTAACTAA -CACACTCAGAATGCGCTAAAGGAGCTCGAAACAATAAATTGTTCCAGCCCCTTTAAGCACCGATGTCTTA -TTTATAATATGTTTGTCTAATATCATCTTTCTTTATACCAAACTGCTTATAGGATTTATCCATTAATTTG -GCAATTTTATCTGCCCAGCGAATGTCACTCGCATATTGATGTTGCGCAGGATTTTCTGGATTCCATCGCA -TTTGATATAAATTCAGTTGATTGTTTTCAAAATATTCATTACGAATGAACTTTGCACCACCAAGTATCGC -CTTATCTGGTGATGTCCATTGTTCCTTTTCAGCATAACTTTTCCCACTACGAACAGCACTACTATCGAAT -GCTCCTATACCAAAAAAGTTGTAATAGCGTTTTTTTCCATCTTTAATGCCTTTTGCTAATTCTGATTTGC -CGTTACCTGTTTCTACTAATGCATGGCTAACAAGATAAATGACATTAACCTCATATTTTTCTTGAGCTTC -TAGAAAAACTTTCCCTCGATTTTCTAAAATCCCCTTACCTTTTAGCAATTGATTAACTTCAGATTCCGAC -ATTGGCACTTTTTCTGTGATATCCATATACTTCATATCATTGTCTTTATGTGAAATAGTCATTGCTTTAG -CAATTTCATTATTATTTGCTTCAACAAATTTACCATCCTCTTCTTTTGTCTGTACAATACCTTTCCCTTG -TTGCATTGAAACAGCCTCATCAAAAGAGTAATTCACATCATTTTTAAACAATTTAGTTTCATTCACGATG -AGCAATACAGAAAAAACAACTAAAATAACTATCAATAGTAGCGTTGAAATACGTAACTTGAAATTCTTCT -TCATATAGACAAAACCTCATTTTTCTTACTTAGACAATAAAAAATATGCCACTACAATCGCTAATATTAC -GATTAAAAAAGAAGCGTTAACGATTACTTTCATCGTTGTTCTATCTCTGAACATCATATTAAAGACAACT -AGACTAATTGATAATGAAACAGCAAAAAAAGTAATAGCTAACACTAATTTCATCATAAATAGACAGACTA -AACCTATGACTAATAATGTATTAGAAATTACAGCTGACGTTTTTAACATTCTCGAATTAATATGCACTCA -CCCTTTTTATTTAAATAACTTACATAATCATAATAATACATGATGTTTCATAGCCCTGTCGATGGTTGAT -TATCAATAGCACATGATTTTCTCGATTCTCAAAAATATTGTTTGAAGTTTGATGAAGACTCGGATACAAA -TAATATTTCAATATAACTTAAAACAGTGCCCCTACACCGACATGCAGAAACACTGTTATATTCAAAAACA -AAAAATCGGAAAGATGAAAAGTAAAAAACTTTTACATCAATCCGATTTATTATAGACTCATATTAATCTT -CTCGAGACATACCTTTTAACATATTAAGCATATATGTTAAACTACGGTTCATGTCGTCATCTTTTAAAAC -GCCTAATAGACTTCTTACAGATGTCTTCGCATTAGGACTCGCTTGATTGGCAACGTGTAAACCTTTGTTA -ACTTTATTAAGGAAGTCACTTAAATCTGATACATTCAATTCGCCTAATAAAAATACCATTGAAGCCATAT -TAGATAATAGCCCTGTATAAATATCTTTGTTGAGCTCAACAGCAAATTTATTAATAATCACTTGACGTCC -TCTAACTGCGCCATTTAAAGCATCTAATAGTTTTGCATCATCTAATGTTTTAATGAGCTTGATTGCTTTT -AAAATGCTATCTTTGTTTGCAGCAATTGCCTCTGTAACTTCATTTAAACTTTCTAACTTAATTTGTTCTT -CTGATTTTTCTAAGCGTCTAATTTTAGAAGATATTCTCTCAGCCATTATTTATCCACCTGATTTCCCGGG -AAAACATAATCTGGACGTTCCCATTTTTTCTGTACTTGAACACTGTACTGCGGATGACGTTTTTTATTGA -CACGGAAATTATTAGGGTTCAACGGTGACTTACCACGTTTCGTAATTACCTCCATACGACAGCTTGTACG -TTTATAAGATGGTGTATCCGTGTATTGATCAACATCACTATTAGTTAATAAGTTAATTGCGCCTAGATCT -CCATTTTCCATCGCATCATTATTTAATGGAATATAGATTTCTTTACCTTTAACACGATCTGTCACGTGAA -CTTGTAATACCGCTTCTCCTGTTTCAGATATCAACTTAACTTCTGCACCTTCATGAATGCCTCTATCTTC -AGCAAGTTCTGGAGAAATTTCAACAAATGCACGTGGCACTTTGTATTTAAGCATTGGTGTTTGATATGTC -ATGTTACCTTCGTGGAAGTGCTCTAACAATCGACCATTGTTTACATGAATATCATAAACTTCATCTTGCT -TAAAGTAATTATCAAATGATAATGGGAATAATTTTGCTTTACCATTATCGAAATTAAATCCTTCTAAATA -AAGTATTGGTTCATCTGTACCATCTGGATGCACAGGCCATTGTAAACTATTAAATCCTTCTAAACGTTCG -TAGCTTACGCCAGCATATAATGGTGTTAGTCTAGCAATTTCATCCATAATTTCGCTTGGATGTTTGTAAT -TCCAATCGAAACTTAATTTATTAGCAATTGCTTGGAATATTTTCCAGTCAGGTTTAGAATCACCTAATGG -TTTCAATGCTTGGTATAAACGTTGAATACGTCGCTCTGTATTTGTAAAAGTACCATCTTTTTCTAATGAA -GGACTTGCTGGCAAGACAACATCTGCATATGTTGCTGTGAATGTTAAAAATTCATCTTGGACTACCATGA -AATCTAATTTTTCAAAAGCAGCTTGTACAAAATTAATATTTGAATCTACAATACCAGTATCTTCTCCATA -TAGATATAATGAGTGAATTTGCCCATCATGGATACCTTCAACCATTTCATGATTATCTTTACCAGCTTTC -GGATTCAATTTAACGCCATATTCTTTTTCGAATTTAGCGCGAATATCGTCCGCTTCAATACTTTGATAGC -CAGTAATTTTATCAGGCATACTACCTATATCACTACAACCTTGAACATTATTATGTCCACGTAATGGATA -CGCGCCTGTACCAGGTCGACGATAATTTCCAGTAACTAATAATAAGTTTGAAATTGCTGTACTTGAATCA -CTTCCAATGTCTTGTTGTGTGATACCCATTGCCCAACAAATGACAACGGACTCAGCTTTGGCACATTCTT -CAGCGAACTTAATCAACTCTGCTTCTGGAATACCAGTAGCCTCTTCAGCGAATGCCATTGTAAATGTTTC -TAATGACTTGTAATATTCATCAAAATCTTCAACCCACTCTTCGATAAAGGCTTTATCGTGTAAGTCATGA -TCAATGATATATTTCGTCACTGCGCTTAACCAAGCCAAATCTGTACCTGGTTTCGGTTGATAAAAACGAT -CTGCGCGTTCAGCCATTTCATGTTTTCTAATATCAAACACATGTATTTTTTGTCCAAATAATTTTTGAGC -ACGCTTCATGCGTGATGCAATAACCGGATGTGCTTCAGCTGTATTCGTACCAATCAATACAGACATTGCT -GCTTTTTCTAAATCTTCAATACTACCTGAGTCACCGCCGTGTCCAACCGTTCTAAATAAGCCTTTTGTTG -CAGGTGCTTGGCAATATCTTGAACAGTTATCAACGTTATTTGTGCCAATAACTTGTCTTGCTAATTTTTG -CATTAAATACGATTCTTCATTCGTCGCTTTAGAAGAAGAAATGAATGATAATGCATCTGGACCATGCTTT -TCTTTAATAGATGTAAAATTATCTGCAATGACATTTAATGCTTCATCCCATTCTACTTCATGGAACTCAC -CATTTTTCCTTACTAATGGTTTCGTTAAGCGTTGATCTGAATTAATATGTCCCCATGAAAACTTACCTTT -AACACAAGTTGCAATTTTATTTGCTGGAGAATCATGTGATGGTTGTACTTTTAAAATTTCTCTATCTTTA -GTCCAAACTTCAAATGAACAGCCCACACCACAATATGTACACACTGTTTTAGTTTTCTTAATACGCTCTT -TACGCATTTCTGCTTCTGAATCTGAGATTGCAAATAGTGGACCATAACCAGGTTCTGCTTTTTTAGTTAA -ATCAATCATTGCCGCTAATGAACCAGGTTCCGTATCAGTCATATAACCTGCATTACCTTCCATGTTAACT -TCCATCATCGCATTACATGGGCATACAGTTGCGCATTGACCACAAGATACACATGACGATTCATTAATCG -GTACATCATTATCCCAAATGACACGTGGATGCTCACGATCCCAATCAATTCTAATTGTTTCATTTAATTC -AATATCTTGACACGCTTCTACACAACGGCCACATAAGATACATTGATTTGGATCATAGCGATAAAATGGG -CCATAATCTTTTTCATATGGCTTCTCTTTATATTCATACGTTTGATGCTGAAGCCCCCATGCATCCATCG -TATTATGAATTTCACAATCACCATTATTATAATCACATACTGTACAATACAGCATATGCTTTTCTAAAAT -TCGATCAAGCGCTTCTTTTTGAGCATCTTTCACGTCATTATTCACTGTATTTACTGTCATTGGACGATCA -ATCACTGTACTACATGAACGTTCAATTTTACCATCAATCTCAACTGTACATGTATCACACGTTTGTATCG -GTCCCATTGATTCGTTATAACAAATTGAAGGCACAAAAGTATCTTGCGATTTAATGAATTCAAGTAAATT -TGTACCTGGTTCTACAAGATAATCTTTACCATCAAGCGTGACCACCAAATGTTCTTGCATACTATTCACC -CCATCTATATATTTTTCCGTAAATGACTTTTAATAAATTGCCTAATTTCCACCTAAAATAAAGATGCCCC -ACACATCTTTCAGATAGAATCAATATAATTGTATTACTTTAAGTGTATAATGTTAAGCGTATTTTTGTAT -TTTTTATTTTTGCAATCATTTTTATTTGAAATATTTTGCGCGAAATTAAATCATCTTTTTGTTTAATTGA -AAATAATTATCATTATTAGTTTTCCAATTATCTGTGTCACGCTTTTTGCCATATCTTTCACAACCTTATT -AATGACAATACTTAATAATCACCTCACCTAAAAATCGCTATACTATTTATAAATACCCTTTTTCTGAAAA -TTAATAACCCAAGTTTGATAAATATCTACTGCCATTTATAAGGTAAGATTTATCTTTAAATTAAATTTGT -AATGGAATAATTTGTAAAAATCAAATCAGGCATTAAATAAAATAGCCCATAAATACAAAGTGTTATCACC -TTCTATTTACGGGCTATTAATTCTATTCGTTATTCTTTTTACAGCTCATTCTATCTAATTAATTTGTGTA -CAAATTTGATAACTTATTTTCCCTTAGTTTACTACTCTAGATTATCTTTTAATAACTTAGTACTTTCAGC -TTTTGACTGCTCACTAGGAATGAAGTAGTACAATCCGTCACTTTGAATGCCGCCTTGACCACTCAATTGA -TGTTTATTAATTGTGTCATTAGCATCTTTATAATTGCTTCTAATCGTATTCAAATCACCTAATGTTAAAT -CTGTTTTAACATTATTTTGAATTTCATTCATTAGACTATTAAAATGTGTAATCGATGATGGGCTTGCAAT -CTTATTAGCCATCGCTTCAAGTACAATTTGCTGACGTTGTTGTCGACCAAAGTCACCACCAGCACCTTCT -TCTTTACGACTTCTAATAAACTTCAATGCTTGATCACCATTTACATGTGTTTGCTGTCCTTTTGTAAAAC -GAACACCATCAACAGTGAATGTATCATTACTTACTACATCAACACCGCCGATACTATCTATCATATTATG -CAAACCATCCATATCGATTGTCGCATAATGATCAATTGGCACATTCATCAATTTTTCAAGTGATTTAACA -GCCATATTTGGTCCACCATATGCATAGGCATGTGCAATTTTTTCAGTAGTACCACGGCCAACAATTTCCG -CTCTTGTATCACGCGGTATACTTACTATTTCAGTTTTCTTTGTTTTAGGGTTGATAGATAAAATCATAAT -ACTATCACTACGCTCTCCGCCACCCTTTTTCTTACGATCAGCATCTGAATCGACACCAAATAAAGCGATT -GTGAATGGATCACCATCGTTTAAACTCACTTTTTTATCTCTTAATTCTGAATGATTACGATCTAACGGAT -TGTGTATCTTATTACCAGTAATAAAAATTTTAGCAGCTACATACACAACAGCTACAATCGCTAAGATTAC -TAAAATACCGAATACCCATAAAAATATTTTTTTCGGTAGGCTCATTTTACTTTTAGACGAACGTTTCAAT -CCCACCACTCCTTTACTATTCCTTACATACTTTGTCTGGTTTCTCTATTTATTATATAGTAAAATAATTT -TTTTACTATACTTCTGTAGACGTATAACTATTTTTTATCATTTTTTATCTCTCGAGAATATCTATCTGTA -TTTTTGATAACCACCATTTGCATTTAAAATTTTAAGTACCGTTTCATGACATGCTTTATTACTTATAATA -AAAGGTGCACCCTTTAAATGATCAATTGCCTTACCATCTAAAGTTGTCATTTTTAGATTCAATAGTTCTG -CAAATAAAAACTGTGCAGCAATGTCCCAAGGTTTAGGATTTGTATTAATATGTGCCCCAAATTGACCTTT -TGCCACTCGCATAGAATCTAATCCGCAAGCACCAACTAAACGATAACTAAATGAGGCGTCAAATAAATCT -TGCACCGTATCCAGATTCATCACTTGTGCATTAAACGATATAATAGCGTCTTCCAATTTTAACGATGGTG -GTTCTTCCATCTTAAATCCATTACAAAAAGCACCTTCTCCTCGTATTGCTTTATAAAGCTTTTTATGCGG -ATAATCATATACGTACGATAACATTGGTTTACCTTCATAAAAATACGCCAATATAATACAATAATCTTCT -TGCTGTTTTACTAAATTGGCAGTTCCATCAATGGGATCCATAATCCATAAATGATTAATTTCATTCGTAA -TCATTTCATTACTTTTTTCTTCCGCTAATAGTTGGTGTTCCGGAAAATGTGTTGCTAAAAATTGTTGAAA -TTGTTGTTGAATCTGTTTATCTACATTTGTAACTAAATCAAATCGATGACGCTTGGTTTCTGTAGTCATC -TCCATAATTAATTGTGGAATCACATTGTCTATTTGTTTCAACCACGAACATATTAACTTATCTATTTGCT -GTAATGTTTTATCTGTCATTTCGTCCACCACTTCTCATATCATTATCATTTTATTATTACCCTATATTAA -AAGAATCAACAATACAACTGAAGACTTCTTCATTTTATGCATAAAAAAATCGGCTAGTCACGTGCTAGCC -GACAAATAGAAAGGAAAGTAAGTAATAAATATTGAAGATGTTGTGATGTAACTTGAACGATTAAAAGCTA -TCTGTTATATAGCTCTACCCCTTTGTTTAATCGCTCCCCCTGTTACAAGTAATATCATAGCACAATCTTT -TTTAAAATGTAAGCGTTTTCCACAAAATTTTTCCGATTTTTTTAAAAAGATATTGAAAATGTCCTCATTG -TCACTCTTATGTTATACTTTGTGTAATATATCATCTTTTAGGAGGTGGCTGTCATGAATAAAGCTGAAAG -GCAAAATTTAATAATTACTGCAATTCAACAAAATAAAAAAATGACCGCTTTAGAATTAGCTAAATATTGC -AACGTATCCAAACGCACAATTTTAAGAGATATTGATGATTTAGAAAATCAAGGTGTTAAAATTTATGCGC -ATTATGGGAAAAATGGTGGTTACCAAATACAACAAGCACAATCTAAAATTGCATTAAACTTATCTGAAAC -ACAATTATCGGCCTTATTTTTAGTGCTTAATGAAAGTCAGTCGTACTCGACATTACCATATAAAAGCGAA -ATCAACGCAATTATAAAACAATGTTTAAGTCTTCCACAAACACGCTTAAGAAAGTTGCTTAAGCGCATGG -ACTTTTATATTAAATTTGATGACACACAACATATGACACTCCCAATGTTGTTTTCCGACATTTTAATTTA -TTGTACAGAACGAAATGTGATGTTAGTAGATCATAGGGTTGATGATAATATTAAAGCCGAAAACGTTATA -TTTATTGGCCTTTTGTGTAAACATGGACATTGGCATGCAGTCATTTATGACATTGCTCAAGACAAAACTG -CCGAACTCGAAATTGAAAATATTATAGATATTTCGTATTCATTCGGTAAGACGATTCAAACCAGAGACAT -ATCCATTGATAACTATCATCAATTTTTAAACCCCATCGATTCCTAAACTATGGAGTCGACGGGGTTTTAT -CTACGCATAAATACTTATTACTGATATAACGAAAGAAACAAAATTATTTGCTATATGTAATGCAATTGTT -GAACCTAGGTTTCTTCCAGATTTTATATAAGTGAAAACTAATATGATGGATAGTATGAGATATGGACCAA -ACTCAAACGGCGACTTTGCATCAGTCACATGAATAAATGCAAATAAGAACACCGAAACAATACTCATAGC -TATAAAATTAAACTTCTTACCTAATTCTCCAATTAAAATATGTCTAAATACGATTTCTTCAACTATTGGA -CCTACAATCACAATTAATAAGAATGCTACAGGTAAAAATGCAGGCACTTCAAACATTTTATTTAGCTCAA -GTTCATTGGCTGTTTCACTATATTGCAAATGTTTAGGTAGAAACTGTGTCATATATTCATATGTATAAAT -TAAGATGAGAGCAATAATATACGTTATTGACAATCTAAGCCAATATTTTTTGATATACGCAAAACCAGCT -CGAAGCCTTGATGGCATCACTTTTAAATGAAATAAATAAAATGCGCCAATCCCAATCGTATATGCTAAAG -CTTGTGTGATAGTCGCTACAAATATCAGATTACTATCGATTTCATAATAACCAAACAAAATTGGTCCTAT -GTAAGCTGCAATTGTGAGTGCATAAAATATAACACCTATAATTGGAATTATAAGCAAATCTCTCCATGCT -ATATCTTTAAACGTGTATTTCTTTTTTTCATTTTCCACTGTTATATCCTTTCCTGTTTAATAATTGATTT -TTGGAGGTACTTCTACATGATAAACGAAACTAAGTATATGAGACAACAAATTACTAATTTGATTCAAATC -ATTGATACGATTAAATATAATACTTTAATGACAGATTGGAACATTCAAACGCATATTTATAAATTTAACC -AAATAGTTACTAATGAATTGAATAAGTTCAAAGGCTTTGAAACATCATATATAATAAACGAAAATCAAGT -TTTCTATTATGAAATTATAACACTACTTAATAAACGTCCCCTCCGACAAGTCGACTATGGTAACAAAATT -CAATATCTTAATTTTTATCATACAGAACTATCTAACGCATTATTTGCAATTAAATTTGCTCATTAACCTA -TTTTTCATAAAATGTCATTTAAACAAGTTATTTATTAAAATTCACTTTATTACATAAATTATACAATTAA -AAAGTTTCTTCAAATTGTAAAGATGCATTAATCGAGTTATAATCATAATGATTAAGATGGTAGATTTAGT -CTTATATAACTACATTTACTAAGATTTAAATAGATGAGTACATAATGTATAAATTGGGAATATACAGTAT -GACTTACGGTAATATATCAGTATATTGATATATTATTTGCACATGGGAGTATGCTATTTTTTATCTATAC -ATCTTAAAAAAATTTACAGTTTTATAATTCAATATCATTAAACAAACAACATATTCAGCTTATTTTTCAT -TCTCTTACGTTACAAGTTGTAAATACCATCACGTTAAACAACAATAGCCAACGCTAATAAAATATATTGC -GTTAAAGTGGAGTGATTAATATGTCAAACGTACTAACAGAAATAGATAGTCAATATCCATATATGACTAA -AAATGAAAAAAAGATAGCTAAATTTATACTAAATTCACCTCAAAAGGTGATTAAAATGAGGTCTCAAGAC -TTAGCAAGCTTATTAGATATTAGTACATCATCAGTCATTCGATTCAGCAAGAAAATTACTGATGGCGGTT -TTCACGACTTGAAAATAAATATATCTAAATATGTTCCTAAAGCATCATCAATTTACAATGTTGAATTAAT -GAATAACGAAAGCACAGAATCTTTAAGAACTAAACTCCATACACGTACTACACGCGCACTTAATCATGCA -AATAACGAATTAAATGATAAAACTATTGATCAAATATGTCATTGTTTAAAACGTTCTGAGACGATTTTTA -TATATGGTTTTGGCGCATCTTTTGTAGTTGCTACCGACTTATACCAAAAGTTATCAAGAATAGGTCTTAA -TATTCAACTTGTTCAAGAAACACATATTTTTGCAACATTATTAGCAACTCACAATTCGAACGATAGTGTT -ATTCTTATTACTAACAATGGTACACAAAGTGAAATGCAATCAATGGTTAAAGTTATTGATGACTACCATA -TACCTATAATCACAATTACTAGTACAAGGGATAATCCCGTAGCACAGGCATCAAATATTGTTTTAACATA -TGGGAAAACTGATGAAAATGAGATGCATATGGGAGCAACAACTTCATTATTTGCTCAAATGTTCACTATT -GATATTTTATATTATCGTTATGTTGCATTAAATTATCACGCATCATTAGATTTCATAACACAATCTAAAA -TGGCTTTAGATAACTATCGTAAACATTTATCAAATATTAACTTTAAACATTAACAGTCTTATATAAATTC -TTTAATCATGTCATATAATAATTTATGCATCATTTTCAAAGCTTACATGTCTTTTATCTTGTATAACATA -CGCATATGACCAATGATTTGATAAGGCCATTCTATTTCTTATATTAAAAACAAACGCAGTTGATTAACGG -ATTCATTCCATATATCAATTGCGTTTGTTATTTTAATAATGCTATTTTTTTAAGCCCACAGTAAAAACTA -ACGATAGTATTGCCACTTATAAGTAAATTCATACTACATCTTTGTTTTAAGCTATATTTATAAAAAATGC -GCCTACTCATAACATTTCTTTGGCTATTTAACTTTAATAAGCTAGGGCCAAGTTTGTCATAAAATAAGCG -CACATTATTATCATACTATTTTGCTTTTACATTATTTTTATTATATCTAATAAAATAATAAATCGTTACA -ATCGTTAAGAAGATGACACCAATAAGCACTGATATTCTAGTTTCAACATTAAATACCATACCGACCAATA -CTAATATTAAGAATAATATTGTTAAGTAGTTACTTACTGCGCCACCAGGCATTTTGAATGGGTGACCTTC -CACTTCTTCTGGGTGTAATTTTCTAAAACGTAAGTGACTGAATAAAATCATAAACCAAGGAATCATACCT -GGTAAAATAGACGCACTATATACGTATACGAAAATACTCTTCGCTCCATCGATATATAAAGGTAAAATTA -CATTTAATAAAGCACCAATTAAAATACCAAGAGATACTGCAACAACAGTGTACAATGGCACACCATTTCT -CATGATTTTAGTAAATATTTTCGGCATTTCACCTTTATGAGCAAGTGTATAAATCATACGACTCGCACTG -AAAATACCTGAGTTACATCCTGACATTGCTGCAGTTAATACAACAAAGTTAATTAATCCAGCTGCAAATG -TAATACCGATTTTAGCAAATGTTGCAACAAACGGACTTCCAATGTCTCCTAATTGATTCCAAGGATACAC -AGAAACAATAACAAAAATAGCACCTAAATAGAAAATTAAAATTCTCCAGATTACACCATTCACTGCTTTA -ACGATATTTTTCTGAGGATCTTTAGTTTCACCTGCAGTAATACCTATCAGTTCCACACCTTGGTATGAAC -CAATTACAATTGATAATGCAAAGAAGAAGCCAACAATACCATTTGGCATAAATCCGCCATTTGTCCATAA -ATTAGAAATACCTACCGCATGGCCACCATTTCCAAAACCAAAGAAAATAAGACCAAAACCAGCAATAATC -ATTAAAATAATTGTTACAACTTTAATTAAAGCAAACCAAAATTCAAATTCTCCAAACGCTTTTACCGAGA -ATAAATTCGCTGCCATTAATAATAAAATAGCAATAACACCAGGAATCCAAGTTGGCAATTCCGGGAACCA -AAACTTCATATATTCTCCTACTGCGATGACCTCACTCATACCAACAACAATCCATTGGAATATATTACTC -CATGCTGTCATATAACCTGCTGCAGGATGTATATAATCACTTGCAAATGTTGCAAATGATCCTGTTGTAG -GGTTTAAATAAATCATTTCCCCCATTGCTCTCATGATTAAAAATAAAAAGATACCCGCAATTAAATATGC -AAGGATAACTGATGGGCCTGTCCATTTAATTGTACTTGTGGCACCCATGAAAAGCCCCACGCCAATCGTA -CCACCAAGTGCAATCATTTGAATTTGACGGGCACTCAATCCCCTTTGTAGTTCATTGTTCTCCATAACTT -CTTACCCCATCTCTGATTGATACTAAATAAATCCATAAAAAAACTTATTGCCGTAATTATACTATAAATT -ATCGATTTTGGTACATTAATATTTGCATACCATGCAATCGTTTACAGAACTACTATAGCAGGCTTTTGCA -ACTTTGCAAACAATTATTTTGTGATTTTTCTAAAAAATTAAAAAAGTTGTCCATGAACCGTTGCGTCACA -TACAACTTCAGCTATTCTCGGTAATTATGATATAATTTTAATAATATTAAAAAGGAGTATATCAATGTTA -AAACAAATACTGCCACGTGCTACAAAAATATCGGTAATCTTTGCTGTAGCATTTTTCATCATAAATTATA -TCGGTATGGAAAAACCTGACATCCTATATTTAGTTGGAAGAACTATTATTGCAACACTTGCTTTCATACT -CATTTGTCTTACAGTATTTTCTATTATTAATTCTCCAGAGCGCAAGATTAAACTCGGTACGACTTTACCG -ATTGCATTAATTATTGGTATCATTTTCGGCGCCATATTTTTAACGGTACAAATCGGTGTCATCACTGGGT -TAATCATCGGTGTGATTGCTACGTTTATTTGGGAATTGATTGAAAAAAATAAAGGAGGTCGTTCATCATG -ACAACAGCATTAATTGGTGTAATTGTATTAATCTTACTAATTATTAGCTTTGTGCCAAACTACCGTGCTA -TGAAATCAGCAAAAGAACAAGGAAGTAATGCAACAAGAGCTACAATTATGGTAGGCATAGATATTATCTT -AATTGTACTTATCATCGTGACGTTATTATTAAAATATATGTAACTATTTAAACCACCCTATCTCATACAT -AAACATGAACGTTCTACCATTTCACATACATATGGTCGTCCATTTAATGAGGTAAGGTGGTTTTCTCGTT -AAAGTTTACCTTGTAATAGTAAAAAATAGCCAATTATTGCGAGTATTAAGTAAATCATTGAACCAACAAC -AAAAGATCTTACTTGCACGCGAAATGGTGTCTGTTTGTTAAATATAGGACCAATCACCAAATTTCCAACG -CCTAAAATTACTGGACCAGCTAGAAAAAACAATATAATGTAACCCATCATGATACGCCTCCTATTTCGTA -AAGAAACGCGCTACAATTTGATCGTAATCAATATCTTTTGCTACATAATCTACATTAGAAAAGTCCTGTG -CGCTTGTCATTTTATTCGTATTAACAATAACATCTAATCCAGCTGCAATCGCGGCTGTTGCACCATTTAC -AGAATCTTCAATAGCCAAACATTGTGTAGGCATATAATTTAATTGTTGTACTGCAGATAAATATAATTCA -GGGTCAGGTTTAACTTGTTCAACATCTTCTCTACCAACAACTACCTCTATATACTCGTCTAGACCTAATG -CTTTAAAGGTAGGCATTATTTCCGCTTTCACACTACTTGTGGCAATCGCCATAGGAATGTGACGTTGCTT -TAAAAATGCCATCAATGATTTAATCGTATCAATCATCGGTAATGTTGTACTAGTAAGATGATGTTCTTCA -TAAAGTTTATCTTTATTTTCCGAACCAATCGCTTTAATTAAATGGTCATGCAAATCTGTAGCTGCTCCTC -CAATAGAAGAACGATAAAAATCAATGCTTATAGGATCGGCATTATGCATCTCTAAATGTTTATTAATAAC -ATTAAATAAATGTTGTTCCGTATCTATTATTGTTCCATCGAAATCAAATATAACTGCTCTATACATATAT -TTACTCCTCTATTTTTTCTCTTTATCAAAGCTTAACACAGTCCGATGACCACTTCATTCTATTAGTGCAA -TTATAACTTTTTTGACCAATACTTTGCTAAAATAGGCCCTGTTATATTATGAATGAAACTAAACACTGCG -CCTGGTACTGCTGCAATTGGATTAAAATGCAATGCTGCTAATGACACAGCTAAACCAGAGTTCTGCATTC -CAACTTCAATACTGACTGCTTTTTGATCTTGTCGATCTAATTTTAAAAGACGAGCTAACCAATATCCAAT -CGTATACCCTAATACGTTATGTAACATAACTACTAAAAATATTAACAATCCTGTAGTTAAGATTTGGTGC -TTACTGCCACCTACAACTATTGCTAAAATTAATGAAATAGCAACAACTGATATAATCGGCAAAGCTGTAG -AAGCTTTTTCAGCAATTTTACGATTAATAATTTACAAAACAATACCTAAAGCAATTGGAATTAATACAAC -TTGAACAACTGACCACAACATACTCAGGAAAGATACTTCCAACCATTCATTTGCAAATAGATATATTAAC -GCAGGTGTAACGAATGGCGCTAGCAACGTAGAGACCGTCGTAATAGAAACAGAAAGCGCTACGTTAGCTT -TGGCTAAATAACTCATTACATTACTTGATGTCCCACCCGGACAACATCCAACTAATATTACGCCAACAGC -AATATCAGGTGGTAAATGAAAAGACTTTGCAATTATAAATGCTAATGTGGGCATAATACTGAATTGTAGG -CAGACACCAATAATTACTGCTCTAGGTGCTTTAAAGACCATTTTGAAATCATTAGGTGTAATTGTTAATC -CCATACCTAACATAACAATACCAAGTAAATAAGGTACCCACTTACCTAATGTCGCAACATGTTGTGGGAA -AATAAATCCAATAACAGCTGCTACTAACATCCATACCAAAAAACTCTTCGTGGCAAATATACTCAATTTT -TGAAACATTGTTAACACATCCTCGTCGATAATATTGAAAAATATTACCATAAGACCAGTAAGGTTACAAT -TACTTTTCTGAAAATTGAGATTATTTAGCCATTCTCTTTTTATTGCAAATATTTTATCACTGATAAACAA -TTATTTTAAACTTCATTCAAAAGTCTTAGTGAATAAAGAAAAAAAGCGTGGTAAAATCAACTTGAACAAA -ATTAAGTCACCTTTATAAATATTAAACGTGTATTTAATGCCATGTATTCCTCGGGAGGTCCTCACATGTT -AATTGATAAATTCGAAACATACATCATCAACATCGCCGGTTTAAATGACCGTACTACTAGAAAAAAATTA -AGTAAGTTATGCAAAAGTGTACAATTTTGTGATGCGTTGCAATTCTCAATAAACAAACAGTTTAATCAGT -ATGTATTAGAAATTAGCTTACCAAAGCAACAACTTCCATACTTCATTTCATTTTTAAGTTTTCATCAGTA -TAGTATTTTCCAAGTACTTTCACCAAAGAAAATAAATGAATTACTTGATTCTGATAATTTATATCAATCT -GCAAAGCGTTTCGATATCAATATTGATGGCTTGCAAGATGCTTTCATTAAAGACAAAGTCATCGATATTA -TGAATATGTTCCAAAATCACACTGATATCACTTATACGTTGAATAAGTCTCATGCGCATATTATATGTAC -GCCAGAAATATTCGCTAAATTGTTACATACGATTGCAACTAGAAATATCGACATTCTATCTGCCAATTAT -AGATCGTCATCTATGAGCAAAGCTCGTATATCATAATAAAAGACACATCTATACGATGATCATTTACAAT -GATTGCGTATAGTGATGTGTCTTTTTTTGTATTATTTATCTTCGGACGATTGATCCTCAACCATTTGTTC -AAATGCTTCACGAACTTGTGGTACTGTCATACCTACTACAACTTGGATACTCTTACCACTCTTTACTAAT -CCGTGTGCCATTTGTTGATGCGTGAAATATTCCGTATCCTCAACTTTACTTTCATCATAAACAGTTAAGC -GTAATCTTGTTGTACAGTTAGTAACATCTTTGATATTTTCTTTGCCGCCTAAACCGTCTAGGTAATACGC -AGCTTTGTCTTCGTATTCATTACCAGTTGAAGCACGTTTAGGGTCAACGTTATCACCTTTTTTATTTTTA -TAGTCTTGTTTAGAGAATAACTTAACCTCTTCTTCTGTTTTCTTACGTCCAGGTAATGGAATATCAAATT -TCAAAATTAAGAATCTGAATAAGAAGAAGTAAATCGCTACAAATATTAAGCCTATAACAACTTGTGCTAC -ATAAGTGCCCCAATGTTCTTTCCCAAGTGGTAACCAGTTTGTTGAAATAAAGTCTAACAAACCACCACCC -ATGTTACCTACAACACCAAATGCGTACATTAAAGTATCCATTGATGCTGCTAAAACTGCATGTAAAACAA -ATAAGTATGGCGCGATGAATAAGAATGTAAATTCTAATGGCTCAGTAATACCTACAACGACTGCTGTTAA -TGTGGCAGGAATAAGTAGTGCCGCCACCTTTTTACGATTTTCTTTAGGTGTCGTAGCATACATTGCTAAG -GCAATACCTAAACATCCAAATACTTTCCCATTTCCTTGAAGCATAAAGCCATAAGGGAATTGCTCTTTTA -ATGGCTTACTACTCTTAGCAAACTCATTTAAATGTTGTAACCATTCAGCTTTCAAGCCGTGATTGACTAC -TACTGGTCCAACTTCAATTGGCGCATAAATAAAGTGATGTAATCCTGTTGGTATTAATACACGTTCTAAG -AAGTGATACAACCATACACCGATATAGCCTGAAGCAATGATAAAGTGTTGCATTGAGCCAATACCGTGCT -GAACAGTTGGCCAAATAACACAAGTAATTGCTGCTAATGGTAACATCACAAAAAATGAGATTGTAACTAC -AAATGTTAAACCTTGGAATACTCCAACCATTTCTGGTAATCGTTTACTATAGTATCTATTGTGAATCCAA -GTAATAATAGCTGAAATAATAATACCACCTAGAATATTCGTATCCAATGTGGCAATACCTGCAATTGATT -TTAAACCAGGTACATTTTCAACGCCTTTTTCTAAATTAGCGCCAAACGTATGTGGCCATTGAGTTAAAAT -GGCATTTATAAATGTATTAAACATTAAGTAACCCATCAATGCTGCAAGTGCTGCATGACCTGGTGCTTTT -TTAGCTAAAGAAAGTGGTAAACCTACAACAAATACAACTTCCATATGCGTAAAAATAACCCAGCCACCAG -ATTCTATTACTGACCAAAATTTAAACCAAAACGTATGTTGATCTGCTAAACTCCCCATGATTGTAGGATT -TTTAAATAATGTCGCAAAGCCAAGCACTATCCCAAAGAAAGCGAACATTAATACTGGTACAATCATTGCA -CTACCGAAACGCTTTATCGCATTCATCTTCTATTCCCTCCATATCATCTTTCCTAACAATACATCTAATT -AGATTCATTTATAAATAGATGCCTTACTATTTAAATATAATATATAGTAAACGCTTACACACCTACAACG -ACATTGACGTATTTTGAAAGTATTTTGTATAATCAGATTATCTTTTCATATAGTGAAAATTTTTTCACAA -GCATGTCGAGAATATGCTCGATTTTAAAATATGTAAGTACTATAGCCATGTATAACCTTATATACAATCA -AAAAATTAATTTCTAAAATTTCACCTTTTAATGTAAAAACCATATATCACAAATTTATTTTCCAAGGAGG -TTGAATATGTTTTTAGACGAACACATTAATAGAAACTTTGACAAACTAAATGATAATGATTTACATATCG -CCCACTTCATCAACACACACGTTGATGAATGTAAAAATATGAAGATACAAGATTTAGCGCAATTCACACA -TGCCTCGAATGCAACCATTCATCGATTCACACGTAAATTAGGTTTTGATGGTTATAGTGATTTTAAATCG -TACCTTAAATTTGAAAGTAATAAGACACACCAATTACCATCTAACTCTATCGATAGTTTCAAGCAAGAAA -TCGATAGTACATTCAGTTATTTAGAACGCGTTGATTACCAGCTTCTTACTGAAAAAATGCATACAGCTTC -AACAATATATTTGTATGGTACAGGGCGTGCACAGTTAAACGTTGCTTCAGAGGCACAGCGTATATTATTA -ACGTTACATAATCATGTCATTGTACTTCATGATGAACATGAACTTAAAATGATTTTGAACAAGAGTGAAC -CTAATGATTTATTCTTTATTATTTCATTATCAGGTGAAACACATGAATTATTAGAAGTAACAAACTTGCT -TCAACTTAGACAAAAATACTTTATTTCTGTTACTACAATGAAAGATAATACCCTTGCTCAAAAAGCAAAT -TACAACGTCTATGTATCCAGTAACACATTCTACTTAACTGATGGTACAGACTATTCTAGCTTCATCAGTT -ATCATATATTCTTTGAAACACTTGTAAGAAAATATAATGAGTATTTACTACATAATGATATTTCAAATTA -GAAAAAAGGAAGTTATGATTTAATGGCCTTGAGCCTATCATAACTTCCTTTTATCATTTTATTGTTGTGT -TGATGTTTCGATAACGTGGTACATTTTATCAAACATCAATTCGAAACCATGCACCATGGAATCATGATAT -TCTTTTTTCTTTTGCTTGTATTCTAAATTAGTAAATCGTCTTTCCTTTTCAACTAATGAACGATAATAAA -ATAGCATTTGGGTGCCACCTGTTTCACGTTCAAAAAATTCTACCTCAATGACATCTTGTGTTTCACTTAG -TCCAGGCATACCGATAGTCATCTTAACGTATTCATCCATAACTAAAGATTCATAAATACCTTCAATCACA -TTTACTTTGCCATTACGTTGTTGATCTACAATACGATAATTACCGCCTTCTTTAACATCCGCTTCAATCT -CTTTATTCGTTCTGGCTGATGTCATAAACCATTGTTTTAACAAATCTTTCTTTGTCCAAGCTTCGTATAC -TAACTCTGGAGAAAATTTATAAAGCTTTTCAATTTCAACTTCGACATGTTCATTCTCTACATTAAATTTT -GCCACTGTTGTCCACCCACTTTCGCTCTTACTTTTATTTTAACGTATTTTTGCTCAGTTCCAAACATAGA -TGATCATCATTTTTAAAAGATTAGCGTTATACGGTGAGTACAACATGATCTGTTAATATAACAAGCCACC -TTACTTGGCTACATCGATATATTGTTAAGCATTACTATTTCATTTCTTGACTAGTGTTCTTTTTTAGCTT -TGGAAAATTAAATAAAATCGCAACAAGTCCGCATACACCTAATAATATAGGATAAATGCTATATGGGAAT -AACATTAACGGTGAAATACCAGCTACACCAGCCGCTGAAATGACTTGCGGGCTATATGGTAATAAACCTT -GGAAGCAGCCTCCAAATATATCAAGAATACTTGCTGATTTCCTTGAATCTACATCATATTCATCTGCAAT -ATTTTTAGCTAAAGGACCTGACATAATAATAGAGATGGTGTTGTTTGCCGTGGCAATATCTGCGACACTT -ACCAAACTCGCAATTCCTAATTCTGCGCCACGCTTTGATTTCACTTTAGAGCGAACAAATTGCAACAACC -ATTCAATACCACCATTGTGTTGAATAATACCGACTAAACCACCAATTAGCAATGCAATCATAGCAATATC -TTCCATGCTTATAATACCTTTGGACACTGCATCTAGTAGCCCCATCCAACTGAATGAACCATCTATGAGA -CCAATGATTCCGGCTAATAATGTTCCGCCAATCAATACGATAATGACATTTACACCTAATAATGCTAATA -CCAATACTAAAATATACGGTACAACTTTAATTAAATTATAATCATAGTTTTTAGCATGATTTAAAGAAAT -GCCATTCGTTAAGAAATAAAGAATAATAATCGTTAAAATAGCACCTGGCAATACAATTTTAAAGTTTACT -CTGAATTTATCTTTCATTTTCGTATGTTGTGTTCTAACCGCAGCAATTGTTGTATCTGAAATCATTGATA -GATTATCGCCGAACATTGCACCTCCAACAACTGTAGCCATTGCTAGCGCAGTTGGTACATCTGTCGCTTG -TGCAAATCCGTAACCAACAGGTGCTATTGCAGCAACAGTCCCTACTGACGTTCCCATAGATATAGAAACA -AACATACAAATCACAAACAATCCTACAATAATTAAATTTTCTGGGATTAATGATAGTCCTAAATTAACTG -TCGACTTTACGCCACCCATTTTTTCAGCTGTATTTGAAAATGCACCTGCTAAAATAAAAATCAACATCAT -TAAAATAATGTTTGAATGGCCTGCACCTTTCGTGAAAACCTCAACTTTTTTAGCAAATGATTCTTTTCGA -TTCATTAATAACGCCACAATTACCGTTATCGTAATTGCAACATTTAATGGCATTGAAGTAAAATCACCCG -TGATAATACCTACGCCTAAAAACAACGCCACAAATAATAACAAGGGGAATAATGCCCAAGCATTGCTCTT -TTTATGTACTTCCATCCTTTTTACCTGCTTTCCAATTAAAAATACCTCTTTCTCACAAACGATGAAGAAA -GAGGTTTTCATGTACTTTACCTGCTTATCTTCAAACCATTACGGTTACTGGAATTGGCACATTCGAGATG -TTGCCGAGGCTTCATAGGGCCAGTCCCTCCACCTCTCTAGATAAGTGATGCTTATTTACGTTTACGTTAC -AAGATAATCCTTAGTACGTCAATCATAAATTAATTAGGAGTCGTATAATATTTTTCATAAACAATCATTG -CTACTGTAATAATAATCAAAACAATAATGCTAATCGCAAGTATAAGCCACCATTTAAGCATTAATGCAAT -AAAAATGAACACGATAGACACACTTACTAATATTAATGATATGACTTTAAATTGCTGTGCACTTTGTTCA -GAAATAACTTTCAACTGTTTGTTTGATGGACGCGTATTTCTTATACTGATTCCCAGTATATTTTCTAATA -TTTGAACCAATACGATACTTATTGCAAATATAATAATTGGTAAAACATCATAGCTCCCTATAGTTAATGT -ATAAATTACAAATCCAATGTAAAGTAACCCTGAGAGCACACCCAAAAAGTAAGCAACATGTTTGTCAAAC -TTAATGATATGTTTTTTAACGTTTTGATGTGTAAGCCATACATTCGAAACAATCGCAACCACAACAAACA -GTGTGAATAATATATAAACTGGCAACTTTTGTTCAGGAAAAACAGTCGCTATTCCTAAAGCTAATGCTAA -AATCAAAAATAAAATAGCTCTAGATACTATTAATGCCATAATAACAACCCCTTTGTTTAATATCGAGTTT -GCAAATTTACGTTTATCAGCATTTCTATGATCAGTACTTCTACGGTCAGCGTTTCTATGTAATTTACATC -ATCTTAACATATAAATACTTCGCTATTTAATTGAAAACATATCCTATTATTCTTTGTCCGTTCTGACGTC -TAATATCTAACCTTAGGCATTACACTTGGTAATAAATTTAACTTTCTTCCACTAACCGCCACTAAACCCA -ATCCCGCAATAGTTTTTAACTTTTTCGTTGTTGTCCTGACATCCTCATTAAGAAAGTTTATTCTGCTTAA -AACTTATAATCCACACCCTGAGCAAACGCTCCTTATGACAAAGTATTAAAATAAGCCGATAAAGATACAC -ACCTTTACCGACTATTTAAAATACACTTCACCAATTCATTTTAATTTACTTGATTGAAGTAGCTAAATTA -ATATTATGTTGTTCAATTAAAAGCTTCATACAAACCTAATCTATTTGCACTCCACCGCTAACACCGAACA -CTTGTCCAGTTGTATAACTTGATTCTTCTGACGCTAATAGCACATAAGTTCCACATAACTCAACAGGTTG -ACCTGCACGACCTAAAGGTGTTTTTTGACCAAATGTTGGGATTTTACTTTGAGGTTGTCCACCAGAAATT -TGTAATGGTGACCAGAATGGACCAGGCGCTACACAGTTCACTCTAATTCCTTTTGGTCCTAATTCTTCTG -AAAAACTTTTAGTTAATGAAATAATTGCTGCTTTTGAAGCGGCATAATCATGAAGAATAGGACTAGGATT -ATAACCTTGTACAGACGATGTCGTCGTAATTGACGCACCCGGTTTTAAATATTCCAAAGCTTTTTGAACT -GTCCAAAATAGCGGATAGACATTCGTTTCAAATGTTTCAGTAAATGCCTCAGTTGTAAATCCATGAATAT -CATCATGATACTGTTGATGTCCAGCAACTAAAGTAACATTATCTAAGCCACCTAATTGTTGATATGCTTG -TTCAACAAGGTCATAGTTGAACTGCTCATCTCTTATATCACCAGGAATTAACACTGCCTTTTGACCACTT -TCTTCAATCACTTGGCGTACTTCTTGTGCATCTTGTTCTTCACTCGGAAGATAGTTAATCGCTACATCTG -CACCTTCTTTAGCATACGCAATTGCTGCTGCACGCCCTATTGCTGAGTCACCACCTGTGACTAACATTTT -ATAGCCTTGTAAGCGTTGATTACCTTGGTAAGACGTTTCGCCACAATCAGGTGCTGGCGTCATTTCAGAT -TGTAAACCCGGTACCTCTTGCTCTTGTTTTTCATAATCCGTGGTTTTAAATTTTGTTCTAGGATCTTGAG -CTGCCATTTTTAAACATCTCCTTATTCGCTTAATGGTTATTATTTACCCAATCTTCCTAGGAACTTAATC -ATGATTACACTAAAAATTACTTTCTTCTTTATAAAAACAAGCTCGAATTACTCATGCAATAGTCTCTTTA -CAAATTCAACAAAATACTCAGGTACTTTTTCTAGAATCCTTTCATCCGGTTTATATTGAGGGTGATGTAA -ATCATATTCACTATGAGAACCAATTAACGCAAATACACTTGGAAAATGTTGACTATAACCTGAAAAATCT -TCTCCAATCGTAAGCGGCTGTTCCATCATTTCCACCTTATATCCAACATGTTAGGCTACTGCTATTGCTT -TATGCGTCAATGCCTCATCATTCATCACAGCGCCAGGTAAATGTGTATAATTTAAATTAATTTTCATATT -ATATGCTTGAGCTAACCCGTCCGCAATATCTTGTAATCGTGTTTCTACAAGCTTTCGCACCACAGGATCA -AAACTACGCACTGTGCCTTGTACATACGCATGATCAGCAATGACATTCCAAGTATTACCACATGATATTT -GTCCAATTGTTACTACCGCTTCATCAAACGCAGATAGATTTCTACTAACTATGGATTGAATACTATTAAT -CAATTGCGCCAACACAATAACTGGATCGTTGCATTGTTCTGGCTTTGCAGCATGACCACCCACGCCTTTA -ATATGAAACTCAAAACGATCTACTGCTGATGTAATTGCCCCTGTTTTGATTGCAAATGTACCTACCGGAC -GCGATGGGTCATTATGAAAACCCAATACTGCTTGTACATCTTGTAATGCATGTGTTTCAATAATTTTAAA -AGCGCCATGTCCTAGTTCTTCTGCTGGTTGAAAAATGAATTTAACACGCCCAGTAAGAGTGCCCTCAATT -TCTTTTAACTTTACAGCTGTAGCCAAAATACTAGCCATGTGAATATCATGACCACACGCATGCATCACAC -CTTCATTTTCAGATTTAAAATCCTGTTCAACAAGCTCTTGAATTGGTAAAGCATCAATGTCAGCCCGAAC -AGCTATACAACTCAGACCTTGCCCCACTTCAGCAACAAGTCCAGTCGCAAGTGGTAAGTCTAATATTCTA -ATATTATATTCTGTTAAAATATCTTTAATTTTTTGTGTAGTCTTAAATTCTTTATCGGATAGTTCTGGAA -ATTGATGAAAATACCTTCTCCAGGCAACAGCTTGATCTTTTAATCCCATCGGTCATTCCCCTTCCTTAAG -TCAATGATATGTTGTCTACCCTACGATGATCGTCTTTAACTATTAAACGATGATTTCACAACAATGTACT -CTTGTTAATTACTTTCGCTAATGATAGACAGTTGTTTAATAATATCGTAACATTATTGTCAAACTATTCT -AACTTTTATAATTAAGAACCTATACAAAAACGTGTTCTCAGATAAACTTGTTTTACAAACCACAAAAAGC -TCTAAACATTAGTGTAAACCAATGCTTAGAGCTTTTAATTACTTTATACTTTAAAAGATAATGTGTTATC -TACGATGACCTTACCGTCTTTAATAACTTTTTCTGCGTGATTGATACCAAAATGATAAGGAATATATTCA -TGATTTGGTGCATCCCAAATTACTAAATTAGCCTTATCACCTGTGTTAATTGTACCCGCGTTAATGTCTA -TTGCTTTAGCAGCATTGACCGTAACAGCATTCCAAACTTCATTAGGCGATAGCTTTAATTTCAACGCTGC -AATCGCCATAACAAGCTGTATGTTGTTTGTGACACTACTTCCCGGATTATAATCAGTTGCTAATGCAATC -GCACCGTTATTGTCAAGCATGCCTCTTGCATCTGCATAATCTTCTTTACCTAAATAGAGCGTCGTTGCAG -GTAAGAGGACAGCTACAGTATCACTATTTCGCAACTTTTCTTTTCCTTTGTCACTAGACGCTACTAAGTG -GTCAGCTGATATTGCTTGTTCGTCAATTGCTAATTCCAGTCCGCCTAATGGATCAATTTCATCCGCATGT -ATTTTCACTTTAAAACCTGCTTCTTTGGCTTTTTGCATATAATGTTGCGATTGCTCTATTGTAAATACAC -CTGTTTCACAGAATATATCCGCAAAGTCTGCATAATGTTTTACTTCCGGAAGTAACGCAATCATTTCTTC -TAAAAATGCCTCATTTGAACTTGCCTCTTTAGGTACAGCATGAGGCCCTAGGAAAGTATGTTTCATATCT -AAATCATATTTCTCAGCTAAACGATTAGACACTTTCAATTGCTTCAGTTCATTTTCTCTATCTAATCCAT -AACCACTCTTACTTTCAACTGCAAGCACGCCGTGTTTAATCATAGTAAGCAAATCATGCTCTGCTTTTTT -AAACAAGTCATCTTCGGATGTTTCTCTAGTAGCATTAACGGTAGATAATATGCCACCACCCATTTCTAAT -ATTTCAAGGTAAGACTTACCTTGACGTTTTAATGACATCTCATGTTCTCGAGATCCACCAAATGTTAAAT -GGGTATGAGCATCTACTAATGCTGGGGACACTACCTTCCCACTAGCATCAATTGTCTCAGTCGCATCGTA -GTCATCTGTATGTGTTCCAGCATATACAATTTTGCCATCTTTAATGACAACTGTACCATTTTTCACAACA -TTTAATTCATCTAATTCCTTACCCTTCAAAGGTTTATCTGTTGATCTCGGTAAAATTAATTCTGCTATAT -GATTAATTATTAAATCATTCATTACTTATCACCTGCTTTATCAATCATTGGAATATGAATACCTTTTTCT -TTAGCTGTTTGAATAGCAATGTCATAGCCAGCATCAACATGTCGTGCAACACCCATACCTGGATCAGTCG -TCAATACGCGTTCCAATCTTCTTTCAGCACGCTCTGATCCATCTGCTACGACAACCATACCCGCATGAAG -TGAATATCCCATGCCAACACCGCCACCATGATGGAATGAAATCCATGAACCACCTGCAGCCGTGTTAATG -AGTGCATTCAATACAGCCCAATCACCAACCGCGTCACTACCATCTTTCATACTTTCTGTTTCACGGTTAG -GACTCGCAACTGAACCAGCATCTAAATGGTCTCGTCCAATAACAATTGGTGCTGAAATTTCACCGTCACG -TACAAGACGATTTAAAGCTAAGCCCATTTTTGCTCTTTCTCCATAGCCTAACCAAGCAATACGTGATGGT -AGTCCTTGATATGAAATTTTTTCTTCAGCTAAATCAAGCCATCTTAATAACTTTTCATTTTCTGGGAAAA -GTTTACGCATTTCTTCATCCGCACGCTCGATATCTTTTGGATCACCACTCAATGCAGCAAAGCGGAATGG -CCCCTTACCTTCACAGAATAATGGTCTAATGTAAGCTGGTACAAAGCCTGGGAAGTCAAAAGCATTTCTC -ACTCCGTTATTGAAGGCTACTTGACGAATATTGTTACCATAATCAAATGCTACAGCTCCACGTTTATGGA -ATTCAAGCATTAATTCAACATGCTTTGCCATTGAAGCTTGTGACAGTTCAACATATTTTTTCGGATCTTT -TTCACGCAATACTTTCGCTTCTTCTACGGAGTATCCTTGTGGCACATATCCATTTAGCGGATCATGTGCA -CTTGTTTGGTCAGTAATAATGTCAATTTTAAATCCTTTTTCTAGAATCGCTTGATGGAGGTCTACAGCAT -TTCCAACTAACCCGATTGACAATCCTTCTCCACGTTCTTTCGCTTCTTCTGCTAATTTTAATGCTTCATC -TAAATTAGCTGTTTTAATATCACAATATTTCGTAGCAATTCGCTTATCAACACGTGTTTCATCAACATCC -ACACAAATTGCTACCCCATGATTCATAGTAATTGCTAACGGTTGCGCACCACCCATACCACCTAAACCTG -CTGTCAGTGTAACAGTGCCTGCTAAATCTCCATTAAAGTGTTGATTACCTAGCTCAGCAAATGTCTCATA -AGTACCTTGCACAATACCTTGAGAACCAATATATATCCAACTACCGGCTGTCATCTGTCCATACATGATT -AAACCTTTTTTATCTAATTCATTAAAATGATCCCAGTTTGCCCATTCAGGCACTAATACTGAATTTGAAA -TTAATACACGTGGCGCTTCTTCATGTGTTTTAAACACAGCAACTGGCTTTCCTGATTGTACTAACATTGT -CTCATCTGATTCTAATTCGCGTAACGTTTTCTCTATTGCTTCAAAAGCTTCCCAATTACGAGCTGCTTTT -CCAATACCACCATAAACAACTAAATCTTCTGGTCTTTCAGCAACTTCTGTGTCTAAATTGTTGTATAACA -TTCTAAGTACTGCTTCTTGTTCCCAACCTTTACACTCAATACTCAAACCTTTTTTTGCTTGAATTTTTCT -CATAAAATTCGCTCCTGTTCTTTTTAGAAGTTAATTCCACTAAATTTAAAACGCTTACATTATTATCTTC -AATATTCATTATAGTATGTTAAAATATAGCCAACAAATATAAATAAACTAATTATCCATAGCTTGAATCT -ATAAATAAAAGGAGCAAAAAACATGAAAATTATTCAGTTAGAATACTTCTTGGCTATCGTGAAATATAAT -AGTTTTACTAAAGCTGCACAATTTTTACATATTAGCCAGCCATCTTTAACTGCTACGATTAAAAAAATGG -AAGCAGATTTAGGTTATGACTTATTTACACGTTCAACAAAAGACATCAAGATTACCGAAAAAGGAATACA -GTTTTATCGTTATGCGAGCGAATTAGTTCAACAATATCGATCCACGATGGAAAAAATGTATGATTTAAGC -GTTACATCAGAACCAAGGATAAAAATTGGGACTCTTGAATCTACGAATCAATGGATTGCGAATTTAATTC -GAAAACACCATTCCGACTACCCTGAACAGCAATATCGTTTATATGAAATACATGACAAACATCAATCTAT -AGAGCAATTACTGAATTTTAATATTCATTTAGCTATAACAAATGAAAAAATAACCCACGAAGATATAAGA -TCCATTCCTTTATATGAGGAATCTTACATTTTATTAGCACCTAAAGAAACATTTAAAAATCAAAATTGGG -TAGATGTTGAAAATTTGCCACTCATATTGCCAAACAAAAATTCTCAAGTGCGCAAACACTTAGATGACTA -TTTTAATAGAAGAAATATTCGTCCAAATGTCGTTGTAGAAACAGATCGATTCGAATCAGCAGTTGGATTT -GTTCATCTTGGCTTAGGTTACGCTATCATTCCGAGATTTTATTACCAATCATTTCACACGTCCAATTTAG -AATATAAAAAAATTCGTCCAAACTTATGCCGAAAAATTTATATCAATTATCATAAAAAGCGTAAACACTC -CGAACAAGTACATACATTCGTACAACAATGCCAAGATTATTTATATGGACTTTTAGAGGCTCTTTAACTT -AAGTTATTAGAGCCTCTTATGCAGTTGCTCAGTCAACTGTATACCTTTTGCCTTTAACTTAAGTTATTAG -AGCCTCTTATGCAGCTGCTCAGTCAACTGTATACCTTTTGCCTTTAACTTAAGTTATTAGAGCCTCTTAT -GCAGTTGCTCAGTCAACTGTATAAAAATTAATGACGTCATTTCAAAAATCGATACAAAAATAATTTATTA -TAAAAATTCTAAGAAAGAAGTGAACCCGATGTTAAAATCTATTAATCATATATGCTTTTCAGTCAGAAAT -TTAAACGATTCAATACATTTTTATAGAGATATTTTACTTGGAAAATTGCTATTGACTGGTAAAAAAACTG -CTTATTTTAAGCTTGCAGGCCTATGGATTGCTTTAAATGAAGAAAAAGATATACCACGTAATGAAATCCA -CTTTTCATATACACATATAGCTTTCACTATAGATGACAGCGAATTTAAATATTGGCATCAGAGGTTAAAA -GATAATAACGTGAATATCTTAGAAGGAAGAGTTAGAGATATTAGAGATAGACAATCAATTTACTTTACTG -ACCCTGATGGTCATAAGCTAGAATTACATACTGGCACACTTGAGAACAGATTAAATTATTATAAAGAGGC -TAAACCACATATGACATTTTACAAATAAGGCGTCATTATAAAAAGGCCTCTTGAACTCCGTTAAAATTTT -AATTAATTATTATATAATAAGAGAACTTTTCAAACAATACAGTTGTTATTTTTACTATCTCAACAAACAT -AAATAAGCAGTAAGATGACTACAACTTAAGAGTCTTCTTACTGCAATTATCTTTCAAATATATCAACGTT -AATATAACTTCTATTACGAAATACTCACATTCTGCCCTGCAATGCAAATTTCGTCACATATAAATATTTT -TAATTATTTTAAAAAATGATGCACTAAATTAGCAACGAGCTTCGCAGTTCTATTGTCAGCGTCATATGTT -GGATTCATCTCAGCAATACTAACTGAAGACACCTTATCACTTGGAATAATACGTTTTGCCAATTCAAGAA -CAGTATGTGGATACAAACCTAACACTGCCGGCGCACTTACCCCAGGCGCAAATGCACTATCAATGACATC -CATACAAATCGTAAACATAATGACATCATGTTCATGTATAAAACGCTCAATCATATCTTTGATTGTTGGT -GATACGTGACTCAATAATTCATCTGCAAAGACATAATCAATCTTTTTCTCTTTAGCATAATCAAATAAAC -TTTGCGTATTCCCACCTTGAGCAATACCAAGCACTAAATAACCTGTGTTTTCATCTTCTTCTAAAATTTG -TCTAAAGCTCGTTCCAGATGTAGATTGTTGTTCAGCACGTGTATCAAAATGCGCATCAATATTTATCACA -CCAATAGATTGTGTTGGATAGACTTTACGCGTTGCTAAATATTGAGCATACGCAATATCATGTCCACCAC -CTAATAAAAACGTTTGTCTATGATTAACAATTGACTTCGCTGCAAGTGTTGCAAATTCTTTTTGAGTATC -AATTAATTCCTCATGATCATGATAAACATTTCCGTAATCGACTAAAGTTTCACATTGATTCAAATCCGGC -AAACCTGCAAATGCTTGTTTAATCGCATCTGGTCCTTCTTTTGCACCAATGCGCCCCTTGTTTAAAGCAA -CACCTTTGTCAACAGCATAGCCTAATATACCAACCCCTGATGGTGTACTACTTTTTTCCAATTTCGACAA -ATCTTCAAATGTCACTGTTTGAAAATGCCTGAATTTTTTCGGGTCTGTTTCACTATCTAACCTTCCAGTC -CATAAATTTGGTTCACCTTGCTTGTACACAGCATTTCCCCCTCTTATTTATGTGGCTTTTTAACAATTAA -AGTATAACGTACTACAAATTTTGAATTCAATTCATAATTAAAAAGTACTTATCTATATACCTTTTACCCC -TATTTTCTATTCACTAACGAACACGAAAGCGATTTATGTTAATAAAATACGTCAAGACTATTACATTTTC -ATTAATATTAGCACAGACAATTTAACTCACGGCTTGTAATATGTATAATTGTTACAAAATGATATTTTGC -TTGTTACCTAATGGAGGTTACATATAATGAAAAACAATAAAATTTCTGGTTTTCAATGGGCAATGACGAT -CTTCGTCTTTTTCGTTATTACAATGGCGTTATCCATTATGCTTAGAGATTTCCAGTCTGTCATTGGTGTC -AAACACTTTATATTTGAAGTTACAGATCTAGCACCATTAATTGCTGCAATCATTTGTATACTCGTTTTCA -AATATAAAAAGATCCAACTTGCAGGTTTAAAATTCTCAATCAGCCTGAAAGTAATTGAACGTCTACTGCT -AGCTTTAATTTTACCTTTAATTATTCTAATTATTGGTATGTACAGCTTTAATACATTTGCAGATAGCTTT -ATTTTATTACAATCAACAGGCTTATCAGTACCTATTACACATATTCTGATTGGACATATTCTAATGGCGT -TCGTAGTAGAATTCGGATTCCGTTCATACTTACAAAATATTGTTGAAACGAAAATGAATACGTTCTTTGC -AAGCATAGTTGTTGGTTTAATGTACTCTGTATTTTCAGCAAATACAACTTACGATACAGAATTTGCAGCT -TATAATTTCCTTTACACATTCTCATTCTCAATGATTCTAGGTGAGTTAATTAGAGCTACAAAAGGACGTA -CGATCTACATCGCAACAACATTTCATGCTTCAATGACATTTGGCCTTATTTTCTTATTTAGCGAAGAAAT -CGGTGATTTATTTTCAATTAAGGTCATTGCTATTTCAACAGCAATTGTAGCGGTTGGCTATATTGGTTTA -AGCTTAATTATTCGAGGTATTGCTTATTTAACAACTAGACGAAACCTTGAAGAACTTGAGCCTAATAATT -ATTTAGACCATGTCAATGACGATGAAGAAACTAATCATACTGAGGCTGAAAAATCTTCTTCAAATATTAA -AGATGCTGAAAAAACAGGTGTAGCTACTGCATCAACGGTCGGTATTGCTAAAAATGATACTGAAAATACT -GTGGCTGACGAACCAAGCATTCATGAAGGTACTGAAAAAACAGAATCTCAACATCACATAGATAATCAAA -CTGAATCTAATCATGATGAAGATCATGACATCACTTCGAAGTCAGTAGAATCAGCAGAATCAGTTAAACA -TGCACCACAAAGTGACGATTTAACAAACGATTCAAATGAAGATGAAACAGAGCAATCATTAAAAGAACCT -GCGACCTATAAAGAAGACAGACGTTCATCAGTTGTAATCGATGCAGAAAAACATATCGAAAAAACTGAAG -AACAATCTTCAGATAAAAACAAATAATAACAAAGCGCTTGCTAGTACCTCTTAAAAAGATGATGCTAGCA -AGCGCTTTTCTATACTATATATTATTTTTCTAAAATTTTAACGCCCTCTTGAGTACCTACAATAACTTGA -TCTGCCATATCTAAGAAGTAGCCTGTCTCAAACACACCTGTCAGATGAATTAAATACTCATGGAACTTAT -ATGGGTCAATTCCTTTTGGTAACTTACAATCTAAAATATAATTGCCATTATCAGTTATAAATGCGACATC -TTCGTTTACACGGCGTTCTACTTTTATATCAGCGTATGATTCAATTTTACGTAATATGTGATACCAGTTA -AATTTATCCACCTCTACTGGTAACTTAAACGTCTCACCTAAGTATTGAACCATTTTCGTTTCATCGACAA -CCACAACAAAACGTGATGCCATTTCATCTATCACTTTCTCTCTGAACAGCGCACCACCACCACCTTTAAT -TATATTTAAAGATGGATCTACTTCATCAGCACCATCAATTGCTAAGTCGATATGATCAACATCATTGATT -TCGCATATTTTAATACCTAGTTCTTTTGCTAAAAATGCAATTTTATTAGAAGTGCATACACCTGTAATAT -TGTAACCACGTTCTTTAATTAGTTGCGCCATTTGAGGTAAGAGTAATTCCATTGTACTTCCTGTACCAAT -TCCCAGCGTCATGTCACCATTGATTTGACTTAAAACATCATTTAATGTCATTAACTTGAGTGCTTTGACA -TCTTTCATGAAGGTAGCCTCCCATATTTATGTAATCTATTCAATTCATATTTTACATGACTCGTATAAAT -TAACATACCCTTATTTCTAACATTTTTTTAAACATATCAATCAGAATTTACAATTCTAAAAATTTTTTAT -AGTACAATATACTTTAACTTAACGTTAAGGAGAATGATATGATATCAATTCACGCAATTTCGACAGGAAA -AATCCAAGATTTGCCTTATAGCTCGAAAAGACCGATGCGCTCTGCTTTAGATAAAACTAAGATTTCACAA -ACAACATGGTTATCTTCAACTGGTTTCACTGGTGATGAACAGGCTTATAAAGATCATGGTGGGCCACATA -AAGCAGTTTGTGGGTTTAGTAAACATAACTATGCACTGTATCAAGATGATTTACCTTCACTACCTACTCA -TGCGATGTTTGGAGAGAATTTAACATTTGATTATTTAGACGAATCTGATGTTTACTTTGGTAATCAATAT -CGTTTAGGTGAAGCGTTAATTGAGGTTTCTGAAATTAGAGAACCATGCTGGAAAATTCAAGCAAAATATA -ATATTCCTGATTTAGTGAAGCGCATGTCTACATCTGGTAAAACAGGTTTCTATTTCCGGGTATTAAAACA -AGGCTATGTATCTCCAAATGATCAGCTTTACTTAATACAAGAAGCACCAATCGAACATCGTTTATCTGTA -CAACAGCTTAATGACCTTTATTATAATGATAGACAAAATCAAGATATGTTACGATATGCACTAAACAATC -CATTTCTGTCACCAACAAGACGCGATAAACTTCAAAAAATGTATAACAGAACATTGAAATAATTACCTTT -CATTATAAATGTTAAATGAACTTTTCAAAACAAAAAGGAATCAACTTACACATCGTTTGTATAATAGTCT -TATCTATAACTACTGATGCTATTGATTCCTTTTTTATGTTATATATTTTCTTTATTTCAAACTGTATATT -AATGATGTCACTTCATTTGATACGATTCTTGATAACCTATTCAAAATTCCGCCAAATAACATAAATATTA -TATAAATGCCGATACTTTTAATCATTTTCTACTTTTTCTTCGATACGGAAACTTGTTTTCGAATTGAACA -CTTCACCAGCTTTTAAAATTGACGGTGCTTTTTCACCATATAAATTAATATCATTTGGTAAAAATTGTGT -TTCTAATGTAAAGCCAGAATGTGGTTTATAAATATTAAATGGACTATCCCACTCATCAGGCTGATTAAAA -GTAAAGAATACAACATGAGGCATATCTGTATCGACCTCTAACATAAATTCATGATTTTCAACATACATTT -TATGTTCACCAACTGTAAATGGGTGATCTAGACCACCAAAACGTGTCATTTGTTGGCTTAATTGCGCATG -TTGTGATGTAAAAATATCACTCAATTTTATCTTGTTATCTTCAAACACTTCATGTAAATCTAGAATATCA -CCTGTAACAATATTTCGCTCATCTAATACATACATATCTAATTGATTACTTGAAATGCGATGATTATCAA -CGACATTATTATCTCGATTCAAATTGAAGTACACATGATTCGTAGGACTAAACAATGTGTCTTCTGATGC -AACTGCTTCGTATTCAATCGACCATTGGTGATCCGCATCATAAATATGTGTAATCGTCACATCGATATCA -CCTGGGAAATGATCATCAGCTGATTTCAACACCGTTTTAAATATCACTTTAATTTGAGCAATTTCATTTC -TAATTTCATAATCAAATAACTTATTGTCCAAACCATGACATCCACCATGTAAATGATGTTCGCCGTTGTT -TTTTTCTAACTGATATTCTTTACCTTGCAACTTAAATTTAGCATTATCAATTCTACCGCTATATCTTCCT -ATAGAAGCACCAAATTTAAAAGGATTACTATGATAAAATTCATCCGCTTCAACAACACTTCCAAGAACAA -TATTATTATCATGATATTTCCAAGACACTACTCTTGCTCCATAATTCGTAAAAATAATTTTAGTTTCATC -ATTATCAATTTTGATTAAATCTACACCTTGTCTTTGGTGCTCAACTTCAACTATCATTTTTACTTCTCCC -TTCTAACCACAAGTGTTCAAGCTCTGCTGGGCAGCAACATTACTAAAACACCTACAATACAAATGATTGC -ACCGATAACATCATATTTATCTGGCATTTGTTTATCTACGACCATCGCAAAAATCAAACTCATGATGATA -AATACGCCACCATATGCTGCATATACTCTTCCGAATGATGGAAATGATTGAAATGTCGCAATGACACCAT -ATAACATGAGTATCACACCGCCTATTAGCCCAACAAGTGAAGACTGTCCTTCCCTAAGCCACAGCCAAAT -CAGGTATCCCCCACCTATTTCACATAAGCCAGCTAATATAAATATAAAAATCGGATATAACATGAAATCA -CTCCATCACACATTTGCTACCAATAATCTATCGGCTACATATCATTTGTTTACATTTCTTCTTACTTCAC -ATTCCCATTTTAAAAAGTTCGTTTTCACATTCATATTGTACACTTTTTTAGACATTATTCTATAGCTAAA -TATAAAAAAATAAGAGTAACACGCTTTCATCATCATTTTATATGATAAATGTGTGTCACTCTCATCAATT -TTATTTTTTAAATACACGTTTCATTGAATTAAATAAGCCACGTTCAAATGTAAGTACTGAATCTTTATAT -GTTTTAATTGCAATCCATATCAAGACAGCTACCATTACAATTGAGATTAATGAACTTAAGATGACTTCAT -GTAATTGAAGCCCTGAAGTTTGAGCGCGTACAACTAATTGAAATGGCGCCAAAAACGGAATATAACTTGT -GATTAAAGCAAGTCGCCCATCAGGATTATTTATCGTGAATATGGCGATATAAAATGCAATCATACCAAGT -AATGTCAGTGGCATCAAAGATTGATTTAAATCTTCTATTCTAGATGTTAATGATCCGAGAATGGCTGCAA -GTAATACATACGCCATAATTCCAACAATACTACTTATAATTCCGACAATAATAATTTGCCAAGACAATTG -ATTCATTTCCACGTTAAAACCTTGTAGCAAGTCTTTTAAGTCAAAGGCAAAAATGCATATGACTGCCATC -AATACAATTAAAATAATCTGAGTCACGGCAACTGCTATAATGCCTAAAATTTTAGCAAAAATATGTTGGA -TTGGTGAAATACTTGTAATAATCATTTCAATGACACGCGATGTTTTCTCACTAGCAATTTCCATAGCTAT -TTGAGATGCATAATTTAAAACAATAAAGAACATTAGAAAGATAATGCCATAAGCTAAAGCATAGTTAAAA -ATCTTTTGTCCTTCTGATACTTTATCGACTTCATCATTAGAAATCACCTTATTATCAACTTTACTTTGTG -CTTGTAATTTTTGTAAGTCTTCTTTGTTGATATTTAATTCCCCGGCTACCATATTTGTTTGAATAGCTGT -AAGTAGTGCTTGTACTTTTTGTGAATCTTCATGACTTACTCGCTTCTCACTAATGATTGTCCCTTGCAAC -GTGCGATTTTGATTCACCTTGATAATATAAGCTTTATCAAGTTTATGTTTTTTTACTTCTTTTTCAGCAT -CTTCTATAGAAACTTTAGTAAACTTAGCATCACTATGAAATGTATTCGCCTGTTGCTTGAAAACCTTATA -GATTTGTTCATTCGGTGCTGCTACACCAATTTTATCTGGACCATCATCAAACATGTTAATAATCTTATCA -ATGTTAGATAGGCCAATCATTAAGGCAGCAATGATAATCATAAAAATTACAAATGATTTAGCTTTAATTT -TTTTGATATATGTCAAAGTAAATGTCGCCCAAAACTTATGCATCCTTGCCACCAACCTTCTCAATGAATA -TATCTTGTAATGATGGTTCTACAACTTGGAATCGTTTAACATAACCTTGATGTGCTACAACTTGATAAAT -ATCTTTGGATACGTCTTCATTCTCAATCGTCAACTGAAGACCTTGCTTCATGTTTTCACTATGAATGATG -CCTCTAATGTGTGTTAAATCTGGTAGTGTTGTTTCTGACTCAATGACAACTTTCTTGTTACCATTAGATG -CACGTACATGATTGATATCACCAGAAACAACAAGTTGACCTTTATCTAAAATACAAACATCATCACATAA -TTCTTCAACATGTTCCATACGGTGAGAACTATAAACGATTGTACTGCCCCAATCATTTAAGTCTTTAACT -GCTTCTTTTAATAACTCAACATTAACTGGGTCTAGACCACTGAAAGGCTCATCTAATATTAGTAATTCTG -GTTTATGTAACATACTTGCTAACAGCTGAATTTTTTGTTGATTCCCTTTTGATAGACTATCAATTCGTTT -TTTACGGTTTTCAGTAATATCAAAACGCTCAAGCCAATACGATATTTGCTGTTGTATTTCTGTTTTTGAC -ATTCCCTTTAAAGTTGCCAAATATTTCAATTCTTCTTCAACTGTCAATTTCCCATGTAAACCGCGTTCTT -CCGGTAAATAACCAATACGATTGTACATTGTTTTATCTAGTTTTTTACCGTTATACGTAATGTGTCCTTC -AGTTGGTTCACTTAAGCCTAAAATCATACGAAATGTCGTTGTTTTACCTGCACCATTTCTTCCTAGAAAA -CCTAACATTTTGCCTGATTCTAACTCTAATGACATATCATTTACTGCCGTCATCTTACCAAAACGTTTCG -TAACATGCTCAATTACAAGTCCCATCTTTTGCCTCCTAAAACAATATGTATTTATCTTAATATAACATTT -CTATTCTCTATAAATACAATATTTTTAAAGTGAATTTATTTTTAAAATTTCTGAAATTGAAATATTTAAA -TAGTATCTTCTTTGCATGTTAAGTATCATGAGCGTTAGATATGCTTTTTTCCATGCCTTTATTGCCTTAT -TGGTAAAAAAAATATCCCAGCAACAATCTGCTGAGATATCTATATCATTACAATTGATTATCTGTTTCTT -CCGGTGTTTTCGGTGTTTCAGATGTCCCCGCTTTTTTCGGTGTTTCAGATGTCACTGATTGATTTTTAAT -TGAAGATGGGTATTTTGGGCTTTCGCCATATTTATTTGCCGGCTTACTGTCAAAGCATAGGAATACTATC -ATAACAATTGTTAGGCCTAAATAAACAAAATAAAGAAGTACTAACAAAATATTAAGACCCATCGGCATTA -AGGTAAAATCACTGTCATAATAACTATCGATAATCTGTAATACTATATAAAATATAATACTGAATACTGT -CATAATCATTGGAAATAACATTGTTCTTGATATATCGTGAAATCTTCGAACGCACAACGCTAAATTTGGA -ATAAACGTTGCCAAACTATAGACAAAAGTATACACAGATGTAAGGATAATCATCAATATACTCATAACTA -TTAATGCTTCGTTATCTGCCGCTATAGAAATAAAGAATATAAATAGGCTTATTATTAGCACACACACAGC -TGGAACCATAAGTATTAAATGCCACAACATCATATACCAATATTCACTACGTCTTGATCTCCCCTTAAAA -TTAACATAATTTTTCCAAAATAATACGAATGATTTCATAAAACCTACTTGAGGTAATTGTTCCATTGTAA -TCTCCCTTTCGTTAATCATATTTATATTTTTAATTATTATTACCGTTATAATTTACAAGATTCATTATCA -AGCCACTTCATTTCAATCGTCATTCACTTTGGAAAATGAAGTTTATATTTCATCACTAGTTAAATGAAAA -CCCGCTACAAGTACGCATCTATATGGAGACTCATTTGAAAGTCAATGCTTCGTTAACTATACTAAAAATA -TGTCACACTGCAATGTTCATGTTTAAAAGAGTCTCAATCTCTGCAAATAAAATATTCCATAACAAAGTAT -ATACTTTACATTTTTATAATTCTTAACAATACTATTTTATCAAACATTTACTACAATAAAAATATCTTTT -TCATTTTTATTTAAATTAATCATATAATTGCGAGGAGAATATTATGGATTTCGTTAATAATGATACAAGA -CAAATTGCTAAAAACTTATTAGGTGTCAAAGTGATTTATCAGGATACCACTCAAACGTATACAGGCTACA -TCGTGGAAACGGAAGCATACTTAGGTTTGAATGATCGTGCGGCTCATGGCTATGGTGGTAAAATAACACC -TAAAGTTACGTCATTATATAAACGTGGTGGTACAATTTATGCACATGTCATGCATACGCATTTACTCATT -AATTTTGTAACAAAATCTGAAGGTATACCTGAAGGCGTACTTATCCGCGCAATTGAACCAGAAGACGGTT -TATCCGCTATGTTCCGTAACAGAGGTAAGAAAGGCTACGAGGTAACGAATGGTCCAGGAAAATGGACTAA -GGCATTTAACATTCCACGGGCTATCGATGGCGCTAGGTTAAATGACTGTAGATTGTCTATTGATACTAAG -AATCGTAAATATCCTAAAGATATTATTGCTAGTCCACGAATCGGTATTCCAAATAAAGGTGATTGGACAC -ATAAATCTTTACGTTACACAGTGAAAGGTAATCCATTTGTGTCTCGCATGCGTAAATCAGATTGTATGTT -TCCCGAAGATACTTGGAAATAAATGTCATCTTTCATTGATTACTATCATGAAAATGAAATCTATCTCCTT -ATAAGTCAATCAATCAGCCGTCAACATGCGGATGGGGTGATTGTTTTTCTTTGTGTCCATCATATTTTTT -GATTCATCTCCTCTTTTTGAACTTGTTCTTAATTTTAAAATATAACAATAGAATTATTTATAATTATTAA -ATTTAGATGTATTAATATTATTGATATTATTTTCAAAAACTAGAAATATTGATTTATTGCATGTATAATG -TTAAAAGTGCCCTTTTATAACGCTTACATATAAAAGCTTATTTAGGGAGAGGGATATTCAACAAGGGGGA -TTTGAAAATGATAGAACTTAATGCAATTACAACATTATGTTTAGCCTGTATACTTTACTTACTTGGTAAA -GCTATCGTTAATCACGTTAATTTTTTAAAACGCATTTGTATACCAGCACCAGTGATTGGTGGCTTAATCT -TTGCTATTTTAGTTGCGGCTTTGGATTCATTTGGCATGGTCAAGATTAAATTAGATGCTTCATTCATTCA -AGATTTCTTCATGTTAGCATTCTTTACGACAATCGGTCTTGGTGCATCATTGAAATTATTTAAATTAGGT -GGCAAAGTCTTGCTATTATACTTTATGTTTTGTGCTATCATTTCAGTCATTCAAAACATAGTTGGTGTAT -CACTAGCAAAAGTATTAAATATTAAACCGTTACTAGGATTAACAGCTGGTTCTATGTCTATGGAAGGTGG -TCACGGTAATGCTGCCGCTTATGGTAAGACAATCCAAGATTTAGGCATTGACTCAGCATTGACAGCAGCA -CTTGCGGCTGCAACTTTAGGTCTTGTATTTGGAGGGCTTATCGGCGGACCAGTTGTAAAATTTTTAATCA -AACGTTATAACTTAAAGCCTCAACATAGTGACGATACATTTAAAGATTATAGCCAAGTTGCATATAACGA -ACATTTACATAGTAAATTTAATGCCACTGAAGTATTCTTCATTCAATTTACAATCGTTGTATTCTGTATG -GCAGTTGGAAGTTATTTCAGTCATTTATTTACAGCTCAAACAGGGATTAATGTTCCAATTTACGTTGGCT -CATTATTTGTAGCGGTTATTGTCCGAAATATCTCTGAAAGTTTTAATTTTAATATTGTAGATTTAAAAAT -TACTAATCAAATTGGCGATGTCGCATTAGGTATTTTCTTATCTCTTGCGCTAATGAGCATTCAATTAATC -GAAATTTATAAACTTGCTATACCTCTTATTATTATCGTTTTAGTTCAAGTTGTCGTTATGATTTTATTTG -CTGTTTTAATTTTATTTAGAGGTTTAGGAAAAGATTATGATGCTGCAGTAATGGTAGGTGGTTTTATCGG -GCATGGGCTTGGTGCAACGCCAAATGCCATGGCAAATTTAGATGTTATTACTAAAAAATATGGAAACTCA -CCTAAAGCATATTTAGTTGTACCTATTGTTGGTGCATTCTTAATCGATTTAATTGGTGTTATAGTCATTA -TGGGATTCATTCAATGGTTTAGTTAAACACCAAACTCATAAATAAAAGAGGAGGCCTTCGCCTCCTCTTT -TATTTATCCTCGATGTATATTCAAGCTACGTTGTTCTATCCATGACAATATTTCCGGACTAAATACGATT -TGTTTTTGTGTTAAGTCGTCAATATTTTTAGCATCTAACATCGTCATTATTGATTTCATGTGTTCAATAA -ATGATTCTACATAAGCTACTGTATGTGCAATGCCATTATTTTCAACTTGATTTAAAAACGGACGTGACAT -ACCAGTTGCCTTTGCACCAAGTGCTAAACTTTTAATTGCATCGAGTGGTGTACGTAAACCACCACTCGCG -AAAACTGAAATTTCGCTTTGATAAGCCGTTGTTTCAAGTAATGACTCAACTGTAGACTGTCCCCATGATG -ATAAGTAATCCATATCTTTATTTGCACGACGTTCATTTTCAATATCTACAAAGTTAGTACCACCTTTGCC -ACTAACATCGACATACTTAACGCCTATTTGTTGTAAGTCATGCATTAATTCTTTGCTCATACCAAATCCA -ACTTCTTTTATAATGACTGGAACAGATACTCGTGATACAATCGACGCTATATTATCTAACCAAGTCACAA -ATTCACGATTCCCTTCAGGCATAACTAATTCTTGAGGAGAATTAACATGGATTTGTAACGCTTGTGCCTC -AAGTAATTCAACTGCTTCCAAAGCCTTTTCTACTGGTACGTCCGCACCAACATTGCTAAAAATCATGCCT -TCAGGATTCATTTTTCGCGCAATCGTAAATGTCTCAGCCATGCGTGGATTTCTCAATGCTGCATGTGTTG -ATCCAACTGCCATCGCTAAGCCAGTTTCTCTTGCAACTACAGCTAGCTTTTCATTGATGTTTTTCGTCCA -CTCGCTACCACCCGTCATTGCATTAATATAAACCGGATATGTCATCGTTAAGTCAGGTGTCTGTGATGTC -AAATCGATATCATTTACATTAATTGATGGGATAGAATGATGCACAAAACGCATCTTATCAAAATCTGAAT -GCATTGCGTCAGATTGGGCCATTGCTATTTCAACATGTTCATTTTTTCTCTGTTCTCTTTGAAAATCACT -CATGATTAAACCTACCTTTTCGTCATTTCTAATTTAAAACCATTTTTTACGTCTGAAAAAGATGATTAAT -ACGACAGCTATAACAAACATTACAGCTAAGCAAATATAATATCCATAATGTAAATGTAATGCCGGCATAT -TTACAAAGTTCATACCATAAATCCCAGCTATGAATGTTAACGGTGAAAATATAACTGATACTAATGTTAA -TACTTGCATAATACTATTCATTCTAAATGACGTGTATGACTCAAAATTTTCTCGTATTTCATTTGTCATT -TCTTGTGCAGTACGAATGATATTACGTTGCTTAATCAAGTGGTCATCGATATGTTGAATGTATAGCGAAT -GTTTATTATCTATAATCAAATCACCATTTTGTTTCATTGTATCAATTAGCTCCTGCATAGGAAACAGTAC -ACGTTTTACTTTAATCAAATCCGAACGTAACTTAAAGACACTATCCATGACCATTTTATTAAAGCGATCA -TCTACATGGCGGTCTTCAAAATGATAAACACTATCTTCAAGTGCATATACAAAGTTGAAATATTTATCAA -CCATCATATCTAAAATTAATATGACGACATCTGCACAATCTAATTCTGCATCTAATGTATTCATATACTT -ATAGACTACTTTATTTAATGATTCCAACGTTTGATGATGATATGTTACTAATACATTGTCTTGTATAAAA -ATATTTAGTGCTATTGGTGAATAGTTTGACCCCATAATACTATGGAATACTAAGTATTGATAATCTTTAT -AAGATTTATATTTAGCTCGTGGCATACCGTTAATTGCATCATCCACTTCTAAATCATTAAAACTAAAATG -TGCTTTAAACCATTCATTTTCTTGTTCATTCGGTTCATCAAAATCATACCAAACAATAGTCGCATCTTTT -GGTATCTCTTTGATATCATCAACTACTTTAAACGGTTCGTATGTAGTTTGATACCGTATCGTTAAAGCCA -TCGATACTCCCCCTAAATAACGAATTCTCTATTATTTTATCATGAATTAAATAACGTGTATGTCTTAATT -TATTTTAGTATGATAGTCACTAAGGAGATGGTTATTATCACACAACTTTTTACACATACTCAAACCGTAA -CATCTGAATTCATCGACCATAACAATCATATGCATGATGCAAATTATAATATCATTTTTAGTGACGTCGT -GAATCGTTTTAATTACAGCCACGGTCTTTCTTTAAAAGAACGAGAAAATTTAGCATATACGCTATTTACA -CTAGAAGAACATACGACATACCTCTCAGAATTGTCTCTTGGCGATGTATTTACTGTTACTTTATATATTT -ATGATTACGATTATAAGCGGTTGCATTTATTTTTAACATTAACTAAAGAAGATGGGACACTAGCATCAAC -AAATGAAGTAATGATGATGGGAATTAATCAGCACACACGTCGTTCTGATGCTTTTCCTGAATCATTTTCA -ACACAAATAGCACACTATTATAAAAATCAACCAACTATCACTTGGCCTGAACAATTAGGACATAAAATAG -CAATTCCACACAAAGGAGCATTAAAATGACAGATGCATTACAACAAAAGATTCATATCGAACTACTAGAT -TTATTAGATGATGTTAAGTTTGAATTAACAGAATTAAATGCACAAAAAGGGTTATACATTAACGGACCAG -CAAATCAGTTACTTAAGCGTGGCGTGCATATGGCTTATGTTCAAGGACAAAAGCAAGCTATCGATAATAT -TATGACTATTGTGGAACAACAGCTTGAAGATCAACATTTCCTAGAACATTATGATAAATTTCAAAATGAG -GTTGCTCATCGCAATTATGATAAAACAGCTAACTTTGCAGAACTTAGTGATATTCCACGTCAATTCGATA -ATTTTTTAGATCAATTTTATCAAATTAAAGGGCAATACTTTATCATCACACATATCAATACACTTATTGG -TGATTTTCACTCAGAAGCTCATTAACAATTAGTCTATATAATCCTTGCTATATTTTCAAAAACAAAACCC -AGTTGCGTTTTCATGTTAAATATCTTCTACCATGAAATCGTAACTGGGTCATTTATATGTTATTAGTTGT -TTTGTGTTACATCCTCATCTATCGATTTGGCAATTTGTTTAATAGCTTTATGTGATTGTCTAATTGGATA -AATTGGAAAATCATGTACCATCTTAGGATAATCATAAAACTCAATGTATTGATGATGTTGCAACATCATT -TGTTCGAACAGCTTCATATCAGGATGTGTCATTTCACGTCCACCACCAAACATATAAACTGGTGGTAATC -CTTCTATTGTGCCATTAATTGGTGATATGCGCTTATCTGTTAATGGTAGGCCATTCGCCCATTTTTTCAT -AATCTCATTGACACCAAACTGACTTAGAACCGCATCTTGTTCGATTAAAGCATCCGAAATATCTTTATTA -GATAGTGTTGCATCTAAAATTGGTGAGATTAAATACAATTTATTCGGTAATGGCTGTTGATTGTCTAAAA -GAGATTGTACAAAGGATAATGCCAGTGCACCACCTGAACCATCACCCATGACTACGACATTTTGATGGCC -TACTTCAGATACTAATTGATCATAAACACGTTGTATCGCTTGGAAAGTGTCGTCAATATGAAACTCTGGT -GTCTTTGGATAGATAGGCAGTACAACCTCATATAATGTACTTAAAGTGATTTTATCCAACAATCTCCAAT -GGAACGGTGATGGTTGTAGTGCATTGAATCCACCGTGAATATATAAAATTTTCTTATCAATTTGATGTCT -GAAATTAAAGCGAAAGACTTGCATATCATCCAATGATAATTTTTCTAAATTTGCTTTAACATTTAATGTT -GAAGGCTGCTTATGTTTTTTTCTATTTTCAATTTCTCTTTTATAAAAAAATCTTTCAACATCTTGATCAT -TTTTAAACATAATCGAGCGATTGTGAAGCAAATATTTATTGACAACGCTATTCATAACACGGTTTCTAAT -CAATGTCTTAACCTACCTTTATATATTTTATGTATCCAATGATTGTCTATCCCCTACATTCTTTGCCAAA -AAAAGTATATAATGTAGAAGATATTTTCTTTTTCACTTTCAAATTTAAGACTACAATTGAACAGTGATTT -TTCATCATTATAACAGACAACTAGACATATTGATAAGTAAAGAAAAGAACTTTATACGGAGGTGCCTTGT -ATGACAAATCCAAATCAACGATTAGAACCATTTGATGAGACATTTCAACAACCGAATATTCATCGTGGTA -AGCGATATGGTAAGAAAAAACGTTCATTGGTAAGCATGATTATTCAAATCATTGTTGTTATATTAACCGC -AATCGCTGGATACAGCATGTGGAAACAACCCATTTTTAATATTGTCTTCACCAAAGAATCTGTAAATTTT -GATGGCATTAAAAATTTTAACGAGACAATTGGAAAAATGCATCAATTAAATATTAATTTGGGTAATATCA -ATGATTTACAACAAGGAATCGATCGCTTAATTTTAGTCTTTAACGGTTTCTTTATTTTATGTATCGTTAG -CCTAGTCATAACAATACTGACAATTGTATTTAATCGCACAGTTCTAAAAGTAGTAAATATTTTAGTGTTA -ACAATTATGTTAGTCATTACATTGTATTTCAGTTATATTATTAAAGCACTCGCACAAGAAATTGCAGATG -CTTTAAAAAAATATTATTTAAATGTACCACCAGATCAAGTGATTACAGAAGCTGACGCTATTCATAACGG -CATCATTTTACTGGGCTGTAGCATTGGTTTACTTGTTATAAGCTTATTCTTCCGTAATCGCATGCCTCGA -TTAAAATAATGTTATATAGTAGGGATTGGGACAGAAATGTTATTTTCACAAAATTCATTTCGTTGACCCA -CTTCCTGCTTTTTCTTTATTAATGACCTACTACATCAATGCCAAATTTTAATATAATTTCTCTAATATTC -TACAAATCAACAAATAAAAAAGTATCGATAACCATATATTGGCACCGATACTTTAAAAATCATGTCCCCA -CAACATAATTTTTGATTAGTCACACTTCAATTAACTTATTTTATTTATTCATGATTGATACTATTATCTG -CATCTATCTTTTGAGCCGTAGCTTTTGCTTTTTTGTTACTTTGTAAAAATAAGCATAAAATTAAAGCGAT -GATGCTAAATATCGTTGCAACTATAAATGCATCATTAATCCCTTCAACTGTTGCTAGTTTATTTACAAAT -TGTAATAGCACTTTCATTGCGCCTTCTTGACCACCATATTGCGATGCTAATTCACGCATATGATCTTGTA -CAACAGGATTCGTTTTATCTAACTCTTCCCCAAAAGCTGATAAATGTTGTGTAGTTTGCGTTGTCATTAC -AGTAACCAAGATTGCTGTTCCTATAGAACCAGCTAGTTGACGCATCGTATTTAAGAAGGCATTACCATGG -GATGCCAGTCGTCCCGGCAACGCATTAATAGCTGCTGTTACCATTGGCATCATAATAAATGCCATACCAA -ATGAACGTAGTACATAGATGCCCATGATTGTCATATATGGCGTATCCATATTCAATTTAGTTAATTCCCA -TGTTGCATAAGTCATGACAGCAATACCAAAAATGGCTAAAGGTTTTAAACCAATCGTGTCTAACAACTTA -CCAGCAAATGGTCCTAGTAGACCCATAATTAGAGAACCAGGTAATAATAACAATCCAGAATCTAATGCTG -AGAAACCACGTAAATTTTGTAAGTAAATTGGTAATAAAATCATACCACCATACAAGCTCAACATTACAAC -CATATTAATTACTGTTGTTAGTGTAAATGTTGGAAATTTCAATACTTCTAAATTCAACATTGGTGCTTTC -ATTCTTAATTCTCTTATTACAAATAGAATAATAAAGATAATACCAATCGCAAACATTGTTTCTATCTCAA -CAGAACCCCAGCCTTTGTTCCCCGCTTCTGAAAAGCCGTATAACAAAGCACCAAAACCAATCGTACTAAA -AATGATGCCTGGGATATCAGCTTTAGGGTTTGTTGTATATTGATATAACTTAAACCATACAAAACCAACT -AAGATTGCAAGAATACCGATAATGAACATACCGTAAAACATCACATTCCAGTGGTAATTTTGTACAATAT -AACCTGATAATGTTGGACCGATTGCAGGTGCTAAAATCATTGCGATACCCATTGTACCCATGGCAGCACC -ACGTTTTTCAGGTGGATAAATTGTAATAATAACAATTGAACCTAATGGCATTAGTACACCTGCACCAATG -GCTTGTAATACACGTCCAACCATCATGATTGGGAAATTCATTGAAATCGCACATATTAATGAACCAATTG -TAAAGAGTACTAACGCAACTAAAAATAATTTTCGATATGAATATTTATTAAATAGATACGCCGTAATTGG -TATTAAAATACCGTTTACTAACATGAATCCCGTCATCAACCATTGCCCTGTTGACGCAGAAATATTAAAT -TCCGTATTAATTTTTGGCAAAGCAACATTTAATAATGTTTGGTTTAAAATCGCAATAAACATACCGAATA -ATAATGCTGCTAATATTTTACCGCGTGAAACACCTTCACCAAAAATAAAGTTTTTATGTTCTTTTTTAAT -TTTCTCATTTACTTTATATTCTTCTGAGTTAGGATTTTTAGCAGCATATACTTCTTCATCAGATTCATTA -TTATCAGTGAATGATGCTTGATCTTGTTCAGACCCCTCTGTCTGTTTGTTTAGACTAACTTGATTCTGAT -TGTCTTTATTGTCAATACGTGCCTCTTCACGCGCCGTATGTTGTGACGATTGATCAGTTGTTCTGTCTAA -ATCACTTGCTTTAAATTTAGATTGATTTGATTGACGTGTCGCAAAATGTTGTTCCTTTTGTTGGCGTTTT -GCTTTTCTTCTTGATCTTATTAATAATAAATTGATAACACCAACAATAATGAGCGCTAAAACAATGTAGC -TAATAATGAAGGTCGTAGTCATTTAATGACCCCCTTAATTTTTATGGATTTTTACTTCAGCGTTCATTCC -AGGAACAACTTGTTTAGACGGTTCTGAATCTAACGTAATTTTAACAGGTATAACTTGAGATACTTTAGTA -TAGTTACCATCACTATTTGATGATGGCATTAATGAAAAACTAGCAGCAGTAGCTTTTCCAATACTATCAA -CTTTACCTTTAACAGAAGCTTTTTGACCGTCAATAGTCACATCAACATCTTTACCAACTTCAACATCTTT -AATATCTTTTTCGTCAATATTTGCAGTTACATATAAATCATCTAAATTGTAAGCATAAGCAATTGGATTG -CCTGCTTGTACCATAGAACCTTCCATGCCATCTAATTTAGCAATTGTACCTTTTTGTGGCATTTTAAGTT -CCATATCTTTAGTTTCGCCATCTTGACCTTGAACAGTAACTGTTGCTACTTTATCACCTTTATCAAGTTT -ATCACCTTGCTTAACATTTAGTGATTTGATTTGCCCAGAAGCTGGACTTGCTATTTTAATTTGATCGCCA -TTTACTTTAGCATTATCAGTTGTTATATAACTTGTTGTTTTATTCCAGAAATAAAAACCAGCAATCCCAA -TTGCTAGCAGTACAACAACCGTAATGACATTAATTAATATCATCTTTTTCATGAAACATTTCCTCCTATT -TGCTTTTAAAATTCACTTTATTTATTATAGAGACATGATAACTAAAAAAACACCAACAATTTTTATAAGA -GTGTTGGTTAAAATTCACAAAGGTGTAACAATATGAAACGACAAGCCAAAATAGAAATTCAAAACGCACT -TGTTGATTTGATGGCTGAATATCCTTTTCAAGAAATATCCACTAAAATGATTTGCGCGTATTGTAATATT -AATCGTTCTACTTTTTATGATTATTACAAAGATAAATTTGATTTATTGGATACCATCAACTCAAAGCATA -AAGAAAAATTCCAATTTCTTCTAAGCGCGCTACATCATAATTTCGAAAATATTAAACAGGATAAGCTTAA -ACTTTATAAATTCTTCATTATTATTGCTAAGTATATCAAGCGCAATGAGCAGTTTTTCAAAGACATTTTA -GTTACCTATCCAATGAAAACATTATTCATAGACTATATAAATTTAGCGAGAGATTATTATCAAAAAATTA -TGAATGACTATAGTACTACAGTAACCAATAAACAGCTTTATGTTACATATATCATAGGCGGTCAAGCTGG -GGTATTTATTAATTGGCTTTCGAATGGTTGTAATGAATCACCTGAAGAAGTTGCTGACATTTTATTGGCT -AATACGATTAAACTTCAAAACCAATAATACGGTTTCATTCTAATAAAGAAATGCTATAAAACAACTAGAT -AAAGTTAAACCAAATGGACAGATAATAGTACATATGTAATGGTGCTATCAATATAAAAATGCGCTTGGGA -CATTAAGCTCATATGCATATAAGATGATTTTTAACATCATTTTTGGATGATAGGATGTTGCGCCACGATG -ATGTCTGAATTCATCTAATTCGCTATCAGGTATCGTTTCAACAATTTCATTAACATATCGCGAAATATCA -TTTTGAGGAATTCTAACAGAAGTTTCTATTGGTAGTGTAAGTTGGGTCATATTATGATTTTTATACATAA -GGCACCTCGTTAATTTAGTTTAGTGGTATTTATTAAATTATACGAAGGGACCCAACACAGAAAATTCATT -TTATTAAATTTTACATTTATGTGCAAGTTGGGCAAAGTGTCTTATTTTTTTAAAGTATTTAAAAGTAAAA -TTACATGTTAATACGTAGTATTAATGGCGAGACTCCTGAGGGAGCAGTGCCAGTCGAAGACCGAGGCTGA -GACGGCACCCTAGGAAAGCGAAGCCATTCAATACGAAGTATTGTATAAATAGAGAACAGCAGTAAGATAT -TTTCTAATTGAAAATTATCTTACTGCTGTTTTTTTAGGGATTTATGTCCCAGCCTCATTTTTATTTTTGA -TGCTAAATTCATAGGTCTATGAATAGCTCAAGTTTTGTTTTTAAATTTTTCAATTCATTATAATAGAAGA -AACTATGTTTATCATCGATTTGTTTTAAATACCTTCATATTATATATCTGTAAAATAATTAATATAACTG -CTGTAGCTATAATAATAATTATGTAAGGTATAGGATTATCTTCACCTTTTACCCCCACTAATGGCGATGC -AATACCACCAAATAAAAACTGCACTAAACCTAATAAACTTGATGAACTCCCTCTACCACTACTACTTTCA -TCCATAGCTATTGTAAAACCAAGTGTCGCAACACCTGTCACTGGTGCTATTAAAATGATAAATCCTATCG -CTAAAATCCAAAAGTTCCAATGATTAAGCAATACAATCGTCACTAAAATTACACCGATAATCTGAATCAT -CGTCATGCCTCTCATCAATTTTTGTGAGTCTATAAAATCAACAAGGTACCCAGTAAGTTGACTTGATATA -ATGAGCGTAATACCAATTCCTGCAAACATCCAACTAAATTGTATTGCAGTCATGCCATAAATTTTTTGAA -TAATAAACGGAGACGCAGAAATATAAGTAAATAATATTACAAATGTCATACCTTGAATGAGCATTGGTAA -TACAAAACGTGGCGTCTTCAATAATATTTTGAAGTTTTTAAACATTGTCTTTAATCCACTACTTGACTCA -CGATTTGTCACTGTTAATGATTCAGGTACTTTTAATAAAGAACCTATGACCATGACGAAGCCAAAGATAG -TCAGAATGACAAAGACCATACGCCAGACAGAATAATTTAAAATTATGCCCCCTATTGTTGGCGCAACAAC -TGGTGCAATACCATTAACAAGCATCAATAATGCCATAAACTTAGTTAGTTCATTACCACTATACATATCA -CTTGCTATAGCTCTTGAAATAACTGCTGCTGCTCCACCTGTCACTCCTTGAAGAAATCTTAATGCAACCA -TCAGCCAAATATTATGTACAAAAACAATACCTAAACTTGCTAATGTAAAAATAATCATAGCTATAATAAG -CGGCTTTCTGCGCCCAGTTGAATCTGAAATTGGACCAGCAAACAAATTACCGAACGCTAAACCAATCATA -AACATCGATAATGTTAATTGTGCGTTAGACGTCGTTGTTTGAAAATCATGTCTAATATCTGGTAATCCAG -GCAAAAACATATCTATTGATAATGCTCCAATGGCAGTCAAAGATCCTAAAATAATAATAAATATCGGTGA -ACGCTTGTTAAAATGCGTTAAATCATTCATATGACTATCTCCTTTATATTATGATTAGTTTATAACTATC -ACGAACAGAAACTAATTTTAAATATGCTCTTTTATATATTAGCATTACTCACAAGTTTCATGAACATCAT -TACAACTTATAAAAGGTATAAAATGATATAAACCTCAGCACTCCATAATTTTTTCACAAAAAACAATCCC -TTCAAAGTAATTCACACTAATTGTAAATACTTTGAAAGGATGTTGTTTGTATTCCATGACACATGCATCT -TATTTAAGTTTTATACTCTATTTTTCTGATGTCTTGATTAATTGCAAGCGGTCTTGCGGACCTTGTTCAA -GCTCATATTCTTTATCTACTTGCTTACCGTTTTCATTTACTAATCTTACGGTTGCAGTAATCTTATCACC -ATGTTTTTCGGCATCTATAATTTGTGGTGAACTAATCATCATTAAACTTCCTTTAGATACACGCTTCTTT -ACATCATCATAAAAAGATGATCCTTTTTTTATATATGACGATACAAAATCAAAATCCGACTGATTAAACG -CAGCATTATTCGCTAAAGAATATCCAGCAAAGAATTCTATCAATTTGTTCTTCAAGCTGTTTTCTTCTTT -TTCTTTCTTTTCAACATAGTCTTCGATATCTTCACTGTCAAAATTCAAAGTTATCTCTGTATTGTATTTT -AAATCGCTGGCTTTAATCGTCTTCGTCTGTGTTGTAAATGTTTTACCTTTCGCTTTACCTGAAGCTGAAA -TGGTAATATCTTTATTTTGTGGATATGGACCATACGTTTTGGAACTTGAAAATGCCATTTCACGGTCATT -TATAGTTACTTTTTTAGAACTATCATTTAATTTTGTATCGCCTTTTAAAGTTACAGTTATATTTGCTTCT -TCAAAATCTTCAGTAACATCTACCGTTTCAGAATTACTTTGTCTAAAATCAAATTTTAAATGGCCTGCAA -AATCACCGTTCTCAGTTGATTTCATAGCTGGAATTCTATATGTCCCCGGTATAAAATTACCTATTGGCGT -CACTTTATTTGCTTCAGCTATAACCATCTTTTTCTTACCACCAGATTTAAACTCATATTTTGTTTTTTCT -TTCGGTTTAACAATTGGTTGCTTGGTAGGTGCAGTAAAGCTCATATTATCGAAAAAGATATAACGCGTGC -CATTTTTACTTACACGTAATATATTTTGACCAGATCTGGTTTGAATATAAGAAGCTACACTGGTCTTACT -CTTATTCAATTTATGTACCGTATTTTTAAGGTCGCTGACAAATTGCTTAAGCCCAACTTCATCTTTGATA -TAGTTAATGTATACTTTCGCTTCTTCAGAATCTACTTTATTATCTTTAGTACTTAATAATGTTGCTACTT -TTTGTTTATCATTATTCTCAATCGCATTCACTAATATTTTAGTTTGCGCTTCAGGTGAATTGAAGTTTCT -TAGTAAAAAGAACAATATAATAATTAAGATTAAAATGAAAAAACCAATTGCCCAAGGCACCATTTTTCTC -ATCTTGATGTTATTAGTTTGTATATCTTCATCGGTTGACTTTCTATATAATGCTTGACGACTATCAAATT -TATGTCCACATTGTGTACATATCTGTACATCATCTTGTGCTTGTTGTCCGCACTTCGGGCAAGATTTCAT -ACTTTCACCTCAATTCTGTTCCTCTTCAATTGTTATATGTATATCATAAAAATTATTTTATTATTTTACC -ATTATTATTTTACAAATATTATCCCAAGAATACAATTCAAGAAATGATTAACTTTACTTTAGAATTGTAC -CTTATTACATTATTTATGAAAGTACTCTCTCAATTATAACTAAAAAGAAGGTGTTCAATACATACATATT -TAGTCTTATATTTGAACACCTTCAAAAACCTATTTATGATTGCTATATGTTTTAATGCGATGATTGATGA -CTTCTAATACTTGCCTTACATTTTCAATATCTTCAGAATTTAAATCATTAGTAATATCTTGCGCAATATC -TGTCATAATCGCATTACGTTCTTTCAAATATGCTCTACCTTTGTCAGTTAAGGTTATGAATTTCAAACGT -TGATCAATATTTAAATTTGGTTTATCTAACTTAACTAATTTAGCATCGATTAACTTTTTAATTCGTCGGC -TTACTGCGGCCTTATTTACACCTTGTCTTTGCGTGATTTCACTAATTGTCAAAGGTTCTTTATTTAACAT -ACCTAATACGTTAGACTGCTCTAATGAAATTTCATATTCATTTTGTAAATCTTTCAACATTTTTGCAGTT -AATGCGTTAACGTTATTTATAAACTGCTCTAAAAATTGAATATGGTCTTGTAAATGTTTTACCATAATTA -TTTCTCCCTAATTACTATTTTTATAAAGTATCCTCAGCAATCATTGTATCGCACATCTAAAAAACACAAA -AATATTGACCCATATAAAATATAACAAATTAAGACTTACATGTTGCTACGTTCTCCTTGCTTTAATAAAT -TAAATCATCTACATTTATACTTAATATTTATTATAAGCGAGGTGTCAGTATGTTATTGAATTTATTATTA -ATATTTATACTTATCGTTATTTGTCCGTTAATTCTCAACTATACTCTGACGTTAAATTTAACATGCTACA -TCTTAGTTGTCATATCGATATTTTTGTCACTCATCTATAGCATCATGACCTATACTTTCCCTTGGTCTAT -GTTTGTTACATTTATAATAATCAGTATTATCATGCTATTCAAACATAGATATTTATTTTCTCATACTTCT -AGTCGCTTATTTATTAAAAAATTATTATCTTTTTCATATAAATTTGTACTCTACACATCAGCACTTCTAT -TTATAAGTACGATTCAGTCACCTATTGTGAAAGGTTTGTCTATGTGGTTAGCTATATTATGTCTTTCCCT -GTTACTAACCTTTATTTGTTATCTCGTTTGGACAGTATCATATAGAAATAGATCATACAACAAAGAAGTT -GATATCATAATTGTGTTAGGTGCTGGTATTTTTACCGAATTTGTCACACCAATGCTTGCAGCGCGTTTAG -ACCGTGCACTTGATATATATCAACAACAAGCATCAGCAACAAAGATCATTGTATCTGGCGGACAAGGACC -AGACGAACCAATTCCTGAAGCTTTAGCTATGCAACGTTATTTGATTGCACATGGTGTTGATAAAACAGAT -ATACTAATGGAATCTCACTCTATAAATACATACACAAACTTTTTATATTCTAAACAAATCATCAACAATT -TGTATCATGAAGCAGTTAAAATTGTTTGTGTAACAAGTCAGTTTCATGTATTACGCGCCTTACGACTAGC -CCAAAAATTAGGTTTATCTATCGATGGTGTCGGAAGCCATACACCATATCACTTTTTCTTACATGTGCTC -ATTAAAGATTATCTAGGCGTAATGTATCAGTATAGATTGTTATTAACGTTATATTGTTCAAGTAGTTGGT -TTATATGTCTATACGCTGCTTTTATTTATAATAGTTAACCCACAAATAAACTATTATTATAGGTTGTTTC -TAATATTGCGTCAAACTATCTTTAAATATTCGTTAATCCTTGATTAGACAATTGTTATATTGAAAATAAA -TAAACTAAAGCACGTCATCATTTTATATAATAGTGACGTGCTTTTTGTAAACCCAAATCGTATTCTGTTA -TCTAACTTTTATACTACTATGTCTTAAATTATTAACATTTAGCGTCTTTACAAGCCACTAATCAGTTATT -TTGCCATCTTCTAATTCAATCACTCGATCTGCATATTCAAATAATCTTCGATCGTGTGTAATCATAATAC -CAATCATTTGTTGTTCTTTAATTTGTTGACGTATCATCTCAACAACTTTTGTTGCTCTATCGGCATCTAA -ACTTGCTGTAGGCTCATCTGCTAAAATGATTTTCGGATTATTCATAAATGCTCTCATAATCGCAACACGT -TGCTTTTCACCGCCAGATAACTGATGCGGATATACATTCAAGCGATCTTCTAAACCAATATTTTTCAAAA -GTTGTATTGCTCTTTTTGAACTTTGTTGTTTGGTCATTCCCGCTTCTTGGCCTACGAGTGTCAATTGCTC -TATCACTTTTAAATAAGGAACTAAATGTGAAGATTGAAAAATAAAACCAATATCTTCCAATCGTAAATCA -CTAGAACGATGCTGTTTATCAAACAATGGTGCATCATTGTAAAGCACTGTACCACTCGTTTGACTTAACA -ATCCGCCTAATATCGTTAGCAATGTTGTTTTCCCAGAACCAGAGGCACCATTTAAAATGACAAATTCCCC -TTGTTCCACTTCAAAATTAATACCTTTTAAAACTTTTGTTTCAGACAAACCTTCTCCGAAATTTTTGACG -ATATCTTTAACAACTAATGCCATTATTCTGCACCTCCAATTGCTTCGATAGGATCCACCTTAAATAATTT -GATAAATGATAGTGAGGCACCTAAAATCGCTACTAATATAAATATCCCCACCATCAATAAAATATTTTGC -GTTGTTAAATAAAAAGGCATCGTTACAGGCATCATAAATGATAGTCCTACTATGATGATCACAGCAATAC -CTACCCCAATTATTGTTAGTGTTAAAATTTGTAAAACTAACGCACTCAATAAATGTCTTGTCTTAATACC -AATTGCTTTCAAAATGCCAATTTGTGATATTTTTTGAATCGTCATAACATAGAAAAATGCACTTAGAACA -ATTGCTGTAATAGCAAACAAACTCACAATCATCATATTTAACGGTGCTTGCTCTGCTTGATAACTCGCAA -TATTATCTGTTAAATCTTTTTCATTCACAACTTGAACGTCATTTATTTTATTAAGCTCATCACGTTGTTG -TTGCGTTAAATTTTTCACTGGATAAAATGCCGTATTAACCTTATTCAATGCATTAAATCCGTTATCGTTC -AATAGCACAATGGAACTATGCGAATACATTGTGTCGTTTAAAATACCAGAAACTCTATAACTAGTTGAAT -TATTTTTAAAATGTAATCTATCTCCGACTCTAATGTTGTCTGCAGCTAACTTATCATTAATAGCGACCTC -ATGAGCATTTTTAGGATAATCACCTTTTTTAAGTTGTATGCGTTGTTGTTTAACGTCATTCATTGTAATC -ACATCTTGTTCTTTATTAGATAATTTCAATGTTTGAATATTCATTTTATATGATTCTTGATGAATAACCT -TTTTAATTTGATTCTGTTGCGTATCACTAAGTTGCGATTTCTCAATTTGCGGCTCTTTCATTTTTTGAAC -AACATATTCATCATTATCAAAGTGTTCAAATAACGAAATATTCTCCCTACCAAGCCCTTGAGCTAAACCA -CTAATAAATAACACCATAATACTTAATAAAAGAATGATTAATGTGATTAAAATATAACGAAATTTGTAAA -ACATAATCTCTTTTATCGCTAATTTCATATCGATTCACTTCTCCCTATTTCTTCTTTAGCGTCAGTATAA -GGTTGAAATATGAACTCAATATGAACAATTGTTTTTTTACGCAAAAATATTTTACATGTATAATAAATGA -AAAAGATAAGGGAGTTTATAGTTATGGTGCAATGTCTTGTTGTCGATGACGATCCTCGAATCCTAAATTA -TATAGCTAGCCATTTACAAACAGAGCACATTGATGCATTCACACAACCAAGTGGTGAAGCTGCATTAAAA -CTTTTAGAAAAACAGCGTGTCGATATTGCAGTGGTAGATATTATGATGGATGGTATGGACGGCTTTCAAT -TATGTAATACATTAAAAAATGATTATGATATACCAGTTATTATGTTAACAGCACGGGATGCACTTAGTGA -CAAAGAGCGTGCGTTTATAAGTGGTACTGACGATTATGTAACCAAGCCCTTTGAGGTTAAGGAACTTATT -TTTAGAATTCGTGCGGTATTACGTCGATATAATATCAATTCAAATTCAGAAATGACCATTGGCAACTTAA -CGCTAAACCAATCCTATTTGGAACTCCAAGTATCTAATAAAACGATGACGTTACCGAACAAGGAATTTCA -ATTATTATTTATGCTTGCAGCACGTCCTAAGCAAATCTTTACTCGCGAACAGATAATAGAAAAAATTTGG -GGCTATGATTATGAAGGAGATGAACGAACAGTTGACGTTCATATTAAGCGACTACGCCAAAGATTAAAAA -AATTAAATGCCACACTTACAATTGAAACAGTAAGAGGACAAGGCTATAAGGTGGAGAATCATGTTTAAAA -CACTCTATGCTAGAATTGCGATTTATTCCATTACGGTTATTTTATTTAGTGCATTAATAAGTTTTGTATT -AACAAATGTTTACTATCATTATAATTTAAAAGCATCTAATGACGCGAAAATCATGAAGACGCTTAAAGAA -GCAAGACAATATGAACAATCAGCTAAACCAACGCACATTCAACAATATTTCAAACATTTAGGGCAAATGA -ATTACCAAATAATGACCATTGATCACAAAGGTCATAAGACATTTTATGGGGAACCTTTTAGAGAAGATAC -TTTATCACAAAATGCTATTAACAACGTGTTAAATAATAAAGATTACCATGGTATTAAAGATAAACCATTC -GCATTATTCGTAACTGGATTTTTCGACAATGTAACAGATAATACTGTTGGTATTAACTTTAAGACAAACG -ACGGTTCAATAGCAGTATTTATGCGTCCAGATATTGGAGAAACATTTAGCGAGTTTAGAACTTTCTTAGC -CGTCTTGTTAATATTGTTATTATTTATCTCAATTTCATTAGTTATCGCATCAACCTATTCAATCATTCGT -CCAGTAAAAAAGTTAAAGCTAGCGACCGAACGCTTAATTGATGGTGATTTTGAAACACCTATCAAACAAA -CACGCAAAGATGAAATTGGAACATTACAGTATCACTTTAATAAGATGAGAGAGTCATTGGGACAAGTTGA -TCAAATGAGGCAGCATTTTGTACAAAATGTATCTCATGAAATCAAAACACCATTAACACATATTCATCAT -TTATTAAGCGAGTTACAACAAACTTCTGATAAAACATTACGACAACAATATATAAATGATATTTATACTA -TTACAACGCAGCTGAGCGGATTAACAACTGAATTGTTGCTCTTATCCGAATTAGATAATCACCAACATTT -ATTATTCGATGATAAGATTCAAGTCGATCAACTCATTAAAGATATCATTCGACATGAACAATTTGCTGCT -GATGAAAAGTCGTTAATCATTTTAGCTGACCTAGAATCAATCGATTTCCTAGGAAATCAACGTTTGTTAC -ATCAAGCATTGAGTAATTTATTAATAAATGCTATTAAGTATACAGATGTTGGTGGTGCCATTGACATCGC -TTTGCAACATAGTCACAACAACATCATTTTCACAATAAGTAATGATGGTTCACCAATTAGTCCACAAGCT -GAAGCACGTTTATTTGAACGTTTCTATAAAGTGAGCAAACATGATAATAGTAATGGTTTAGGTCTCGCAA -TTACAAAATCCATCATTGAATTGCATCATGGTACAATCCAATTCACACAAAGTAACGCGTATGTAACCAC -CTTTACTATTACACTGCCAAATCATTCACATTAATCTCTACCTCCTGAAAGAACATTTCTGTTTTTATTT -CAGGAGGTATCTTTTATATTGATTAGCGCTTTCTAGCCACTTAACATTTAATTTCTACCATTCAACACAT -TTTAAATATATCAATGGTCGTTTATGGTTTAATAATTTTGAAGGAGGCATTAACCTATGATGAAACTCAA -TTTATTTATCAATGCAAATGAGACGGAATCTTATATTGATATACATGCACCTAAAATGAATGATCACGTT -CAAAGTATTATTAATGCAGTCAATGATTTAGACAAATCACATACATTAGTCGGATACATAGACAAAGAAA -TCCATATCATTAATGTATCAGATGTTATAACATTCCAAGTTATTAATAAAAATGTAACAGCCATTACAAG -CAATCAAAAGTTCAAACTAAAATTACGACTTTATGAACTAGAAAAACAATTACCACAACATTTCATTCGC -ATTTCCAAATCAGAAATCGTCAACAAGTATTACATTGAAAAATTATTATTAGAGCCAAATGGACTTATAC -GTATGTATCTTAAAGATGCACACTACACCTATTCTTCTAGACGTTTTTTAAAATCTATAAAGGAGCGCTT -ATCAATATGAAAAATTTGAAAAACTCATTATTTATTAGCTTAATCATTGGTTTATCCCTTTCACTGTTCT -TTAGTATGTTATTTGCAGACGGCAAATATTATCCACTGAACCCACAATCAACTATTGGCATATTGTATTA -TACGCATTTCACAGAAACTACCGTAATGTTGATTTCTATCATTTTATGGTTACTCATAGGCGTCGTCTTT -TTCCTTGGAGATTTTATCTTTAAATACACAGATTGGGGCATTACTAAAGCAACTATAGTGCATTTCATAA -CAACGTATGTCGGATTCTTACCTTTAGCAATACTTGCCGGTTGGTTTCCACTAACAATAAATTACCTAAT -CATATTTACAATTATCTTTATTGTGGTTTACACATTGATTTGGATTATTCAATTCTTTAAAAACAAGAAC -TACGTAGACACTATTAACGAGCAACTGAAACAATTAAAATGATTTTTATTAAAATTATAAAAGCTATATA -TTGCATTAAAGTAGTCTCTTCTGCAATGTATAGCTTTATGTCGTATTTATTTTAAATACGCATGAACTGA -ATAATATATTTTTACTATTTTCAAATTAAATTGTAACTGCAACTGTCCTTTACGACATCAACTCATCATG -ATAAAAACCTATCGAAATGCATTTTCAAATATTTTATTCATAATTTCTGCTACTTCTTTAGGACTCTCTT -TATATCCTCGTTTGACCCAATCTTGTAACACACCAATGATTGCATTACACATAAAAATAAGTAAAAAATA -CTTTTCCTTCGTCGTTAACATTTTTGTATTTAATACTGGTACAAAATTAATTTCGATACGTTGTTGTAGT -GATTTTTTTATGACTTGATGTAATTTATAAGCACTCTCATCACCTAATAACATCAAAATGAGCTGACCTT -CGCTTAGCCAAAAATAAATCATCTTTTTAAAAAATATTGCTTGTGTCAGAGTTTCACTTTTAAGAAATTT -CTTTTTTGCTTCTTTTAACAATGTATTAAGATAGCTGTATATAAAATCATCTTTAGTTTTGTAATGTGTA -TAAAAGGTTGTCCGACTTATTTGACTCTTTTCACATATATCTTTAACAGTTATATCATTATATGCCTTCG -TTTTTAATAGATTTACCATTCCATCATGTATGCGATTTATCGTTTTCGTTACACGACTATCCGTAAAAGC -TGTTTGATCCATATGCCCCACCTTTTTTCTGAACACTAAAAACAAATATGTTCACTATCTATTAATATTT -TATTCGCAATCTTAATATACGCTTATGATGATATATAAATAAAGTGAAATGTATCTCAATTTTGGAGGGG -TTATCATGGAAGCAACTATCGCGAAGTTGGATAAAGTTGTAAAAACGTATAACAAGCATCACGTATTAAA -CGAAATTAGTATGTCAATCAATAAAGGTGAACTGCTAGGGTTAATAGGTCCTAGTGGTTCTGGTAAAACA -ACAACAATAAAGTGTTTACTAGGTATGGAAAAGATAGATTCTGGATCTGCAGAAATTTTCGCTCATAAGA -TGCCTAATCGCAAAGCTTTAAATCGATTAGGCTATATGGGGCAAACTGATGCATTATACGAAAACTTAAC -TGCTCATGAAAACCTAGAGTTTTACGGTCGTTTGTCAGGTCTGAAAGGAAATATATTAAAAGATAATATT -GAAAAACATATCGTTCTAGTGAATTTAGAGCAAGCGTTAAATAAAAAAGTTGCACAGTTTTCAGGAGGCA -TGAAACGCCGATTATCTTTAGCAATAACATTGTTGGCCGAACCGGAATTAATCATATTAGATGAACCAAC -TGTAGGCATTGACCCTAAATTGCGCCAACAAATATGGCAACAGTTCAAGCAAATGACCAAAGACGGAAAG -AGTGTCGTCATCACAACACATGTTATGGATGAGGCGGAACGTTGTGATAAAGTTGGACTTATTGTCGACG -GAAGAATATTTGCTATAGATACGCCAACCAATTTAAAACAAAGATTTAATGTAGATACAATTGAAGCGGT -ATTTATTAAAGCTGAGGAGGTTTGTCAATCATGAAAATTTTAGCTATTGTTAGACGAGTATTAAAAGAAA -TGTTACGTGATAAACGTACACTCGCGCTAATGTTTCTAGCACCAATTTTAATATTGACGCTTATGTATTT -TATTTTTAACGGTGATGAAAACGATTTAAAAATCGGTATCGATACATCTGTTTCATCAAATATAACAAAA -CAATTGCCATCGTCCGACATAAAAACTCAAACGTTCCATTCTCATGAAAATATCAAATCTAAAATCGAGA -ATAATCATCTTGATGGTTATATTTACCAAGAAAATCAAACATTATATGTCATTTATACAAATGAAGACCC -TAACAAATCTAATATGATCAAACAAATGATTGGCAAAGCTATACAACAAGATAAAATAAGCAGTATAAAG -CATCTAATTGAAAAAGCACCTCCGACCATGAAAGAACCAAACAAACAAGATATTAAGATTTCACATTCCT -ATTTATACGGTAATTCTGATAGTACTTATTTCGATAAAATGTTTCCAATACTAATGGGCTTCTTTGTATT -TTTATTTGTATTTCTAATATCAGGTATAGCTTTATTACGTGAACGTACAACAGGTACGTTAGAACGTGTA -TTATCAACTTCAATTCGTCGAAGTGAAATCGTTCTTGGTTATCTGATTGGCTATGGTATATTCGCAATCA -TTCAAACATTAATCATAGTCCTATTTTCAATATATTTATTGAACATTAATTTAGCAGGTAGCTTATGGTA -TGTAATTTTGATTAATATTTGTTTAGCTATTACAGCATTATCTATGGGAATTTTCATTTCAACGTTTGCT -AATTCTGAGTTTCAAATGATTCAATTTATTCCACTAGTTGCTGTACCTCAGGTATTCTTTTCAGGAATTT -TTCCACTTGAAAATATGCCTGATTGGCTAGGAAACATTGGCTATATCTTCCCTCTCAGATATGCTGGTGA -TGCTTTAACCAATGTTATGATTAAGGGGCAAGGTTGGAGTAATATATGGTTCGATTTACTAATTCTAATG -ATCTTTATCATAGTCTTTATTATCTTAAATATTGTTGGTTTAAAACGATACAGACAGGTATAAATTCTCC -AAAACTTTTAAATGACTTCAATCAAGATAAGCTTCTAAATATAAAGCACTGATAATAAAAAGAACCACTA -AAAAACGGTAATGTCTATCACATTTAAAAAGACATTACCGTTTCGTTTATTATTTAACTTGTAAATACTT -AGTTACTTCTTCATTAATTTTGTGATATAAATCCTCATGATCTGTTAAGCGATAACCAAATGACGGCACC -ATTTCTTTAATCTTTGGTTCCCATCCTTTGAATTCATCACGATAGCATCGCTGTAAAACATCAAACATAA -TATCTACAGCTGTTGACGCACCAGGTGATGCACCAAGTAATGCAGCTAATGTGCCATCATCTGACGTAAT -GACTTCGGTACCAAATTGTAAGTTACCTTTAGAATCCTCCGTATCCTTGATTACTTGGACACGTTGCCCT -GCTGTAATCACTTCCCAATCTTCATTTTTAGCATTTGGGAAAAAGACTCTTAAATCATCCATACGCTCAT -CATTAGATAACATCAATTGTGACACTAAATACTTCGTAAGACTCATTTCTTTGATACCTGCAGATAACAT -CGTCACGATATTATTTGGTTTAACCGATTTAATTAAATCCATATGTGAACCTGTTTTTAAAAATTTAGGT -GAGAAACCTGCAAATGGACCAAATAACAATGAACGCTTGCCGTCTACAAAACGTGTATCTAAGTGTGGCA -CTGACATTGGTGGCGCACCCACTGCTGCTTTTCCGTACACTTTAGCATGATGACGATCAATCACTTCTTG -ATTTGTACAGCGCAGGAATAATCCACTTACCGGGAAACCACCAATATGTTTTGATTGTTTAATTCCAGTC -TTTTGGAGTAATGGTAAACTCGCACCGCCAGCACCAATAAATACAAAATCAGATTCATATGTTGTCGTTT -CGTTAGTTTCTAAATCTTTAACTTTAACTAGCCATGCTCCAGATTTCTGTTTCTTGATGTCTAATACATT -TTGCTTATATTGAATTTCCACACCACGTTGTTCTAAATTATCAAATAACTTTGCAGTTAACGCACCAAAG -TTAACATCTGTACCAGTTTCATCATAAGTTAAAGCAATTGGTTCATCAGACTTACGCCCTTCAATCATTA -ACGGTACCCAAGATTTCATTTCTTCTTCATCTTGCGATAATTTCATTTTTTCGAATAAAACATTTTTCTT -TAACGTTGCAACACGACTTTTTATAAAAGCTACGTTATCTTCGCCAATGACAAAACTCATGTGTGGCACC -GCTTGAATAAAGCGATCTGGGTTATCTAATTGTCCTGTTTTAACTAAATATGCCCAAAACTGCTTTGAAA -TTTGGTACTGCTCATTTATCTTAATTGCTTTACTACAATCAACTGTGCCATCCTTACCTTCTTTTGTATA -GTTCAACTCGCAAAGTGCTGAATGCCCTGTACCGGCATTATTCCATACATTTGAACTCTCTTCGCCAGGT -TGTGCTAATTTTTCAAACACTTTAATATTTTTCTCAGGTGATAATTCTTTAAGTAATGTTCCTAATGTTG -CACTCATAATACCGCCACCAATTAAGATGACATCTGTTTTGCTATGTTGTGTTGTCATAACAAATACAGT -CCCCCTTTTTAAAATGAATAATGGAACGTTCGAGAAATACGACATATTAATACCACTTTGAATCAATAAG -TGTCTCAACAGGTTCTCATGGTGATGCTCTATTACTATCTACTATGTATATTAATATTTTATAATAACGA -AACTACTTTAATTATATACTTTATGTGCGATAGCACAAAGACAAAACCACAAACCTTAACACCTATCAAC -CAATTTAATTTGATTGCTGATTACTCACTCTTCATTTTAACATAAAGCGCTACCATTATTATAATGTCAA -ACTTCTTTCATCAATGATCCATTAAAAAAAGATGAGATGTTAGAAAACATCTCACCCTCTGTATATTTAT -ATTTTGAAATACGTTTATTTATAATAATGACAAGATGAAAGTCCAAATACAGATGAATATTAGTAAACAT -ACACTGTATTTCAATGTCATTTTTAATAATTCTGATTCCTTACCAACTTGTTTTACTGCTGCAGTTGCAA -TTGCAATAGATTGTGGTGAAATCAATTTTGCCGCTACACCACCAACTGTATTAGCAGATACAAGAAGTGA -ACCACTTGTTCCAATTTGTTGTGCAACAGAAGCTTGAATTGGTGCAAATAATGAGTTGTTATTTACAACT -GATCCTGTCATAAACACACCTATCCAACCTAAGATTGGTGATAGAACTGGGAAGACATTACCTGCTTTAG -CAATACCTTGACCCATTGCCGCACTTAAACCACCATAAGTTGTGATTTTAGAAATTGCTAAGATGAAACA -AATTGTAAGAACTGGTAACCATAATTCTTTAAATGTAACACCGAATAATCTACCTGCATCTTTAAAGTTA -ACCTTTTTAGACATTAAAATTGTAATAATAATAGTTAATAAAATAGCTGTACCTGTTTGTCCAATAATAT -TTAAAGTCAATACTAATGGTTTATGCGTAACTTCGCTGACTGTTCCAGGTAAGTTGAATTTAAATACTAA -TGATGATAAAGCACCATTTGGTAAGAATAAGTTTTTAAAGAATGGCGCACTCCAAATCATTACAATGACT -GTTAATACAATGAATGGACTCCATGCATGTAATACTGCTTTTGCAGAATGTGCTTTTGCAGGTTCAATTT -CTTCATCTTTATTAACACGATAAATGTGTTTTGGTTGGAATTTTTTAGAAAATACTGCTAATGCTAACAT -TGTTAATAACGGCGGAATAATATCTGCTAATTCAGGTCCGCTGAAAACAGTTAATAATCCTTGCGTAAGT -GTATAAGTGATTGAAACTACTAAAATTGCTGGTAATGTTTCTTTAACACCTCTAAAACCATCAATAATAA -AGATAAGTAAGAATGGAATAATGAAATTTATGATTGCCAATGTTAAAGTTGCTGATTGAGAAACACCTAA -TACTGAAACATCTCCAGGTAATTTCAACGTTTCTACAACACCTACAGGGATACCAATCGCACCAAAAGCA -CCAGACGCTGCATTTGCGACTAAACATAACATCGCAGCTTTTAACGGATTAAATCCTAATTGTGTTAATA -AAAGTGCACAAATTGCAATTGGTACACCAAATCCTGCTGCACCTTCTAAAAATGCGTTGAATGCAAATCC -AATAAGTAAAACTTGAATACGTTGGTCTTGTGAAATATTTGTAATACTATCTTGAATTGTTAAAAATTGT -CCAGATTCAACAGTAATTTTATATAACAATACCGCCATCATAACGATATAGCCAATCGGAATGATGCCTT -GGAAGAAACCTTCGACTACTGCACCAGAAGCGATACCAACTGGCAATTTGAAAAATGGTATTGCAATTAG -TAATGTTACAACAAGTGTTGTAATGGCTGCATAAATACCTTTCATTTTAAAAACAGTTAAACAAAGTAAA -AACAGTACAATCGGTATTGCTGCAATTAAAGACGATAATAATAAATTATCAAATGGGTTAAACGTATTTA -CTAACATAGGCTGACTCTTCTTTCCATAAAGTAGTAGTGTAATTGCTTCATTAAAATCATGCTCTGGCTA -TAGCATTTTGTTATCGATAACATTTTACAGAACAGTGAGATTAATGTGATTTTTTTCACAATTAAAATAT -ACCATTTTTTCAGACTATTAACAATATCACTTTCCTATTTAATTGTTTTATTTTTCATTTTAAATCTGTT -CATCAAAATGAATTGTACTTAATGTAATGAAGTAACTTATACTATTCATGAATTTTACATAAGACCGTGC -TAAAATAAGGAAGATACTACGATGAGAAATGGAAGTTATAGCAATGATTAAACAGATAAATGTTTCTAAT -ATGCAAAAGTTTGAATCTCAATTAATGAAAGCTCAGTCTGAAGGTTATACACATGCCGTTCCATATGCCA -ATGAGATAATGATTTATCAATCTATGTTAGATGCGGTTCAATTATATCCTAAGTCTATCGTGGTTGATTA -TACTGTGGATGGACAATACAAAAATGATTGTCACTATTTCGGTCAATCATCGATCAACATTGCCGATTGG -GCTCAAAACAATAATTATTATCCTAACCTGATATATGCGATTCAACAGACTCTTGATTTAATACATTATT -ACTCTGTAGAAACGATTTTCGATTTAGCTTTATTGACACTTCTGAAAGGTGATTTATCAATCGATGGTCA -TGTCGTTTTTGATTTTAAAGCCCCTTTAGCAACAAGTGCTTCAATATGGGAAACTATTAAAACTATTGAA -GATTTTGATATGATGTCTCAGTTTTATTTGAATAAAATGGCTTATATCGATCATCATCCTATACCTTTTC -GCAACCTTTTTATCGAGGATTCAGAACAACTTAATTGGCCAGATAGTTGGTTGTATTCTACCAAGTTTAT -GCTACCTAAATGGTTATATAAAATAGCAAAGCAACGTGCTGATAACAAACAATTACAAAACCTCGGCCTG -TATACGAAGCAACCAAACGTTTTAAAAGATCACATCGTTTTTATCGGTGATCATTATCAATATATAGGTA -ATTCAAAATATTTATTTACTTACTTCGTTAAACATAATCCAATGACTGCCTGTTATTTTGTTACTGACGA -TCGTCGCGGACCACATTTCATATCACCTAAGTCTGAAAAAGCTGACGAATTGATTAACAGCGCACGTGTC -GTTTTAGTTGAAAATGATATACCTGAAACGTTGCAACCAAACGGTACTTTAATTCAATTACATCAAGGCA -CACCAATAATGCAATTATTTTTAGATAGTAAAGAACCTATTAAAAATATAGAAACACCTTTTTATCGTGC -TAAAAGGTATAATCGCTGGTTGCAATTCGATTATGTTATACATTCTGCTGATGATATTAGCCACTTTTAT -CAAACGGCTTTTCCTAGTCACCAAGCAAATGTATTGGCTTATGGTAATCCTAAACACCAATATTTACTAC -AAAAGCGTAACGAAAGTACTACTCAACAACAGTATAAGAAATCGTTTAAAATAAATGATCAAAAACCAGT -TTTATTATATGCACCTATTGGATTAGTGAGTGCGCAACAATTACCATTATCAGATGCTTTATTCAAAGCC -TATCATGTTGTGGTTCAGGGTGTTGATGAAACGATGTTACCAGAAGAGGCGCTTGTTGCACCAAAGTATC -TCAGTGCTCAAGACTTAATTCTAATGTCTGATGTCGTTATCACTGATTACTCAAATATAATATTTGATGC -GATGGCTATAGACAAAACAGTAGCATTATACACTCCAAATCACAGTCAATATATTGAGTCTCAAGGTGTT -AACGAAGATATTTGGCGTCATCTATCAAAAATTTGGTATACAGACCGACAATTATTAATTAATAATTTAA -TTTCCCAGGCAATACCAGTGATTAAATATCCACAAATACAACAGAAAGAACAACCATTAGAATCTATTTC -ACAACTTATATTGTCTAAAATGACATCTAATAAATAGTGCTTAAATTCCTCAGTGGCTGTGAATGAGGTT -TAAAAGTACTATAGAACGTAAACCTTTTTACTTTAAAATACGCAAAAAACGGTAAACCCTAATTCATATT -ATAGAGTTTACCGTTTTAATTTTTTAACTTGCATCATAATTACATTAACATTATTGTTGGTAGTTTGGAT -CAGTAACCATTGCTTGTCCAGTATAATCAACCGTTACAATTGAATATTTTCCATTTACGTTTGGGTCTTT -AAAACTAAAAACATACTTATAGTTACCATTATGTTCTTCAATTGAATAATCATTATAAACTTTATGACCA -TTACCAAATTTATTTGCTTCGTTGTTAGCTGCATTTAAAGCTGTTTGGAAATTAGGCAATTGTTGTAATG -CTTGTGATTTATTACCATTAAATGGATAAATTTGACGAGCCACTGGCGCTGCGTTTTGTCCATAATATGG -TGCAACGTAACTTGATTTTTGATTGTTAGTCGTTTGTCCACTGTTTGACTGGTTATTATTCGTTTGATTT -TGGTCATTGTTTGTTGCATTTGAATTAGATTGTTGCTGGTTATCGTTTGCACTATTATCTTTATTATCTT -TGTTTACGTCTTTACTATCATCTTTATTGTCTTTCTTATCTTTAGATGAATCATTTGTTTTTTTATCTTG -TTGTTCAGTTTTCGCTTTATCATCTTTTTCTTTATTACTGTCTTTTTGTTGGTCACTATCTTGACCACAT -GCAGCTAAAAATAATGATAATGCTAATAACCCTGTAACTAATTTTTTCATACATATCTCCTCCTATAATT -CGATATTCATTGAATAAGCTTGAAATACATATCTACCATGTGTATCATTTCATGGATTGTTACCAAAGAC -GTCAACAATAATATGGTGTTTTATTTCCCCCAATATCAACAACTATCATCTATGGTTCTTTTTATTATAC -CCTAAATTTTAATCATTATTATCTAATTTTTGCGAATTTTATGTTTTTTATACATTTAATCATTTTACTC -AACAATTTTATTACACATTTTACATTTCTATACATATTCAATGATTACAACAGCAATTTCTTTTTATCGA -CAACAGAAGTTACTGCTATAACTCTTTTTCCATAATTAAATCTGTATCCGTTACATCACCTGTTTGAAAA -TGATGTTCACCAACCACTTTAAATCCATGACGTTTATAAAATGCTTGAGCACGAGGATTATGCTCCCAAA -CTCCTAGCCAAATTTTATGTTTATTATGTTCTTGTGCAATTTTTTCGGCCAATGCTATCAATTGTGAACC -TCTTCCACCACCTTGAAAGTCTTTCAAAAAGTATATGCGCTGTACTTCTAAATAGGTCTCCCCCATTTCT -TCAGTTTGAGCACTATTAATATTCATCTTTATATAACCAACATTCGCACCATCTTCTTGATAAAAATAAT -GAAATGAATCTACATGGTTAATCTCTTGTGTAAATTTTTCCACAGTATAATTATCTTTAAAAAATTGATC -AAAATCATTGTCATCATAGTAAGAACCAAACGTGTCATAAAATGTTCTAGTTGCTAATTCAACTAATTCA -CTAGCATCTTGTTTTGAAATTTCTTTGATTATCCCAGCCATATAAATCCTCCAATAAACAGTAATCGAAT -CAAAATATTACTTATGTATTTTTCTGCCAAAACTATTTAAAAATACATTAACACAAATCAATTACAAATT -GTATTGATTGTGTGTAACATCAATAAATGATACATTTATTCCAGTAAAATGGCCGTATTTTTAAAAGAGA -AAAAGAGAGGATGTATCGTTGTGACAGAAACATTTAAAGCGTTTGTAATTGATAAAGATGAGAGCGGTAA -AGTGACACCAACTTTCAAACAATTATCGACTACTGATTTACCTAAAGGAGATGTGCTGATTAAAGTACAT -TACTCTGGTATAAATTATAAAGATGCTTTAGCGACTCAAAATCATAATGCAGTCGTAAAATCGTATCCTA -TGATTCCAGGAATAGATTTAGCTGGTACAATTGTTGAATCCGAAGCACCAGGCTTTGAAAAAGGAGAACA -AGTAATTGTAACGAGTTATGACCTAGGTGTCAGCCATTATGGCGGTTTTAGTGAATATGCGCGTGTAAAA -TCAGAATGGATTGTCAAGCTTCCTGATACTTTAACATTAGAAGAATCAATGATATATGGCACAGCTGGTT -ATACTGCCGGTTTAGCAATTGAAAGACTTGAAAAAGTTGGAATGAATATTGAAGATGGTCCTGTACTCGT -TCGCGGTGCTTCAGGTGGTGTCGGTACTTTAGCAGTACTCATGCTTAATGAACTTGGTTATAAAGTTATC -GCAAGTACAGGTAAACAAGATGTTAGCAATCAATTACTTGAACTTGGTGCCAAAGAAGTTATCGATCGAC -TTCCTGTTGAAGATGATCATAAAAAGCCACTCGCATCATCAACTTGGCAAGCTTGTGTAGACCCTGTTGG -TGGTGAAGGTATTAATTATGTTACAAAGCGTTTAAATCATAGTGGATCAATTGCAGTTATTGGTATGACT -GCCGGTAATACTTATACTAATTCTGTATTCCCTCACATTTTAAGAGGCGTAAACATTTTAGGAATTGACT -CAGTATTTACTGCTATGAAATTAAGACAGCGCGTTTGGCGTCGTCTCGCAAAAGATTTAAAGCCTGAAAA -TTTACATGAGATCAAGCAAGTTATTACATTTGATGAACTTCCAGAACAACTTAACAAAGTAATTAAACAT -GAAAATAAAGGCCGCATTGTTATCGATTTCGGTGTAGATAAATAGTATTCATGAAAAAGACATCCCGTTA -TGCGAGATGTCTTTTTTAATTTCTTTTGGTTTATAAAATTTCTGATACTTCATCAAATAGCACTTTACTT -TAATACATTTTAGGGAATCATGTATTCTCCGCCCCTATCATACTTGCAACACTAATCAAATACTGCCAAT -ATAACTTCGTAGAGCATAGAATATTGATTTATGTCCCAGCCTGTGTCTAAAAATAAAATTTAATTTCTCT -TTCTATATACATCAAAGGCATATATTGCCCAATAAACGACTGTGAATACACAACTATACAAAATAACTCT -CTCAATGTTTGTTAAAAATAAATAGATCATTAAAGCTGATAACACAAGTGCAACAAAATAATATATTATA -GCTTGTCTTAATGTATCGATTTTCATTGTTCTAACTCCCTTAGTTACAAAGTCGAAACTTCTATATCATA -TCAACTTGAACTTTACCATAAAACACACATTTTTTTAATATCATTACTTAGAAAAACAAAAACATACTAA -GTTAAGCTGTGTAGAAAACTCAGTATGTTTATCGGTACGATTTTTCATTTTTAGTATTTGATATACATAC -CGCCTGAATCTGGTTCGGTAGGCATAAATCCAAATTTTGCATACAATTTATCCGCCGGGTAGTCTGCGAT -CAGACTTACGTAGGTACTTTCGACAGCCACATTTTTAATATACTTCATAATATGTTCCATAATTTGACTG -CCGTAACCTTGACCTTGGTAACTTTTCAAAACTGCAATATCAACAATTTGAAAAACAGTTCCTCCATCGC -CAATCACTCTACCCATACCAATTAACCTATCTTTATCATACAAGGTTACTGTAAATAAGGCATTAGGTAA -TCCTTTTTCAGCTGCTTCGCGCGTCTTTGGACTCATACCTGCATTAATCCTTAATGCGCAATAATCCTCG -CAAGTCGGAATATCATATGTCACTTTAACCATTATTTACCCCACTTTTCATCACACAATATATCAACCTA -GTATAAATGTTTATTTACAATAGTCTTATTCGCTTCTTTAAACACTTCATGATGACTTGAAACATAACCC -TCTGCATTCGCATCTGGTTGGATATATGTTTTAGCAAGATTCGCTGCATTTGCACCATCACTAAATGCAC -TTGCAATTAGATGTGATTTTGCATCATGATAAACAATATCTCCACACGCATAGATACCAGGTATACTAGT -TGTCGTATTACCAAATCCTTTAACACGACAATCATCATGCATATCTAGCTTTGAAGATGTTTCACTCAAT -AATGTATTACAACGATCAAAACCATGACTAATAATGACATCGTCAAATTTAACTGCATGCGTATCACCAC -TTTCAACATGTTCCAAAACAACTTCACTTATATGCGTTTCATCATCATTGCCGACCAAGTATTTAATACG -TGTTTTCGGGCATAGTTTCACATTTAAATCTGTCACCAGCGTTTTCATCGCTTCATGACCACTTACATCT -TCTTTTCGATAAACAACTGTCACGCTTTTAGCAATCTTAGCAATATCATGCGCCCAATCTAATGCTGTAT -TTCCTCCACCTGATATTAATACATCTTTATCTTTGAAACGTCTGTAACTTTGTACAACATAATGTAAATT -AGTTAATTGATATCTCTCTACACCTTTAACATCTAATTGTTTTGGATTAATAATACCTGCACCAATAGCA -ATGATAACTGCTTTCGATGTATATATTTCTCCCGCTTCTGTTTCAACTTCGAAATGACGTTCTGATTTTT -TCCTAATATCTACCACACGTTCATTCAAATGAACTTCCGGTTTAAAATATAATCCTTGCTTAATTGTATC -TTTTAAAATTTCATGACAAGGTTTTGGCGCAATGCCGCCAATATCCCAAATAATTTTTTCAGGGTAAATT -CTCATCTTACCCCCTAATTCAGATTGAACATCTATCAATCTTACAGACATATCTCGCAATCCAGCATAAA -AGCTTGCATACAAACCAGACGGACCGCCACCAATGATTGTAACGTCTTTCATTATGTGCCTCCTATGACT -CTCTATATTCATTTCTTTCATTAACGCGCTCAAATTGATAATTATTATCATTTAAAGACATTATACTATT -AATATTTATATTGTTAAAATAAATCGCATAGTTAGCCATGAATTATCAATAACTATCCCATCACAATATA -AAAACACACCTTTCAAAGTACGAAACAACAATGTTCCTTTGAAAGATGTGTATATTTTTTAGTTCATATT -ATTTTTTAAAAGACTCATCACGTGGTTCTTTAAGAATTGCTTGTCTTAAAAGGAAAAATAGCAACAATAA -ACCTGCAAGCATACCTGTGTGCCCAATACCTGCAAAGCCTGCAAATGCTTCTGGAGAGTATGATTTACCA -GTGACTTGGAAGAATCCTTTTGTCACCATCATACCTATAGTAACGATAACACCTATGTTATATACATAGA -AGAACCAGTTAAATAAGTAGTAACTTGATAATTTAAATAACTTCTCCAATGGTAATAATATTAAAAACAT -AAACATACCTAAAATAAGTGTATGTGTGTGTACAAGTGATAATTGTGTTGTACCAGTAAAATCATATGCT -TTTGTTAGCTCTCTATAGAAAAAGCCACTAAATAAACCTATGATCATATAAAAAAGAAATGAATATAATA -ACCTACGCATTTTGAATCCTCCCTCACCTTTTCATTATATCCGATTATACCTATTATAACAGTGACAAAA -AAGCGAAGATATGACACAACTGAATTTGATTTAGCACATAGTATGACAGCTAAAATAACTTTACATCAAG -TGCTATACAAATAAAATAGCTATACCATGACGCTCGCTACAAACGTCTTGTATAGCTATATTCCTATTTA -TTAAATTATGACGGCACTTCAGTACGTTTTGTGCTATGTTTTCTAACAATAGCTGAAATTAAACTTGATA -CAGCGCCAAAAATCATAAACCCTATAAACATCCACATTGTACTATTTAATTCAATATGATGATTCAAGTA -TAATAGTTCTCTTACACTTGTTGCATAGTGTGTGAATGGATTCCAATCATATACATATTTTTGATAACTT -TCAGGCAACATTTGTTTAGGTAACGTTACAAGTTGCATACTAAAGAACATTAAAATGAAGAAAATTGGAA -TTGACTTCATACCTAGCCATACCATAACACCTAAAATAAGGCCCACGAAACCAAGAATCGCAAGTGCTAC -AAAAATTGCGATACGATTTGGATGGTCAAAATCAAATCCTTGAATGCCTTGCATGAAATAAATATAAACA -AAGCTACCTGCAAATGCTGCAACAACTGCAAATATCATTTGTCCAATTGAAGCAATGATACGATGTTGCA -CGACGATATTGTTACTAGTTCTAAATGCAAAGAACAATAAGATAGACGTTACGATTGAACCTATCCAAAT -TGGCATAAACATTAGGAATGGTGCATTACCACCTGCTTGGTGATCTTTAACTTTATTAAGTTTTTCATTA -TCCACTTTTACTGGATTCGTCAAACCATTGATGTCCGCGGCATTGACTTTAACATTTTGACTCGTTAATG -TTTCCAAACTTTGCTTCGTAATTTGAGCATTAATATTATCACCCATACCAGTTAATACAGCTGATGCAAT -TTGTGAACCTTGTAAGCTTGATCCTTCACTTACAATCGTTTTAAATTTAGCCTGCTTAACCTCTACTTGT -TGATTCCCCATTTTTTGTTTCATTTGTTGAACTACTTGTGGCGGAATTTCACCTGAAGCAACTTTTTGTT -GCATTTCTTCTTTTTTGCTATCCATAACTACTTTTTGTGTTTTACTCATAGCATCTTTTGAAAAGTCTTT -ATCAATAATAGCTACTCCAAAGATTTTTTGATCTTTCAAATCTTTTTCAAGGTCTTTTTCACTATCAACC -TTAACCCATTTAATTTTATTAGAATCACTATCTAATAATTTATCCTCTAATTTTTTACCAATGTTAACAT -TTTTATCTTGAATCGTTGTACCTTTGTCCTCGTTTAATATACCAATTGGTAAATCTTTTGGTTTAGGATT -ATATGCAGGATAAAAAGCTAAAGAAAAAATTACCAAGATAATCATAGTTGCTATTGGTGCAATCCATAAT -AATTTATTTTTAAATATATTCATTTTATTAATTACCTCCTTATTAGACAATGTGTTGAATATTTCGCATG -TTGTCTATTATAATATGTAAGTGGGAATAAACAATACACAATGTTCATCAATACGTTTATTAATAGACAA -ATACACCCACATTGTTCAATAACACAAGGAGGTTGATTTATTTTTGAAAGAAGATAGGCGAATTAGAAAG -ACAAAGACCTCCATTAAACAAGCGTTCACTAAATTACTACAAGAAAAAGATTTAGAAAAGATTACCATTC -GCGACATAACAACACGCGCTGATATCAATAGAGGGACATTTTACTTACATTACGAGGATAAATATATGTT -ACTCGCAGATATGGAAGATGAGTATATTTCAGAACTAACGACATATACTCAATTTGATTTGTTACGCGGT -TCTTCAATAGAAGACATTGCGAATACTTTTGTAAATAATATACTCAAAAATATTTTCCAGCATATTCATG -ATAATTTAGAGTTTTATCATACTATTTTACAATTGGAACGCACGAGTCAATTAGAATTGAAAATCAACGA -ACATATTAAAAATAATATGCAACGTTATATTAGTATCAATCATTCTATCGGAGGCATTCCAGAGATGTAT -TTTTACAGTTACGTTTCCGGAGCAACAATTTCAATTATTAAATACTGGGTAATGGACAAACAGCCCATTT -CAGTTGATGAATTGGCTAAACATGTGCATAATATTGTTTTTAATGGTCCATTAAGAATAATGGCAGAAAA -CCGTTTGCATAAATCAAACCTTGATTCACTAACTTAAGTAATACTCGCTTTTCCTAAATCCTTTAGAAAG -GAACTATATATCATGATTACTTCATTCAGACATTCTGAAGATATAGATAAACATATTATAAAAACACCAT -TAGATCATACAGCGTCATGGATTAATGTAGTAGAACCAGACCGAGAAGAAATTGAAAATCTTATGGAACA -ATATAATATACCTGAAGACTTTATACGTGACCCTTTGGACTCAGAAGAAAGTTCCCGTATTGAATATGAC -GAAGATACTGGTTACTCATTAATCATTATTGATTTACCTATCGTCAATTCAACTAATCGTAGCGTTCTAT -CTTTTGTAACGATTCCATTAGGCATTATTATTGGCAACGGTATTATCGTAACAGTTTGTGACGCTGAAAA -TGAATTTTTAGAAAATTTACCTAAGCGTGATATTAATTTAAAATTTCACAGCAGATTTGCATTAGAAATT -TTAACTACTATTGCCGACCATTATAATCGTAACTTACGATTACTTAATAAAAGTAGAATTCGTATTGAGA -AAGAACTAAAAAATAACATTACTAACAAACAACTTTTCAAATTAATGGAAGTTGAAAAAAGTTTAGTATA -CTTTTTAGCTGCCTTAAAAGGTAACGATACAATTATTAAAAAATTATTCCGTTTACCTGCAATTAAACGT -TTTGAAGAAGATGAAGAATTACTAGAAGATTTAATCATTGAAAATAACCAAGCCATCGAAACAACAGAAT -TACATCAACGTATCTTAGAAAGTATCACAACATCATACGCTTCCTTATTATCTAATGATATGAATACGAT -TATGAAGACATTAACACTTTTCACGGTACTATTAACGTTACCAACGCTCGTATTTAGTTTCTTCGGTATG -AATGTGCCGTTGCCAATTGATGACCATAGTTATATATCTTGGATTATTGTGGTAGGTATTTCATTAATTC -TTGTCGTAATTGTTAGTATTTTCTTATGGCGAAAACAGAAATTATAACTAAATTAAAAGGTATGACAGCT -TAAAGTTTCATCCTATTGCATTTGCAATGACTGATACTTTGATTACTGTCATACCTCTTTTTTTATTCTA -CAACTTCTTTATTTGCTTTTCTTTTCGATAAAATTAAAGTAACTGTTATAGCAACGATGAATGATATTGT -CATACCAACAAAGTAGTGTAACCATCCTGCATGTACTGGATTGATTGAAATAAATCCAGGCAATCCAGCA -GTTCCTAATGCGATTGCTTTAACCTTGAAGAAAGCAATATATGCTGAACCAATACCTGATCCAACGATAG -CGCCAATAAATGGATATCTTAGTTTTAAGTTAACACCAAACATAGCCGGTTCTGTAATACCAAGTAATGC -TGAAATACCTGCGGCAGATGCCACACCTTTTAACTTTTTATTTTGTTTAATAATAAAGAACGCTGCAATT -GCTGCACCACCTTGTGCAACATTAGACATTGTCGCAATTGGGAATATAAATGATCCACCTGTTTTAGTGG -CATCTGCAATTAATGTCGTTTCTACAGCTATAAAGCTATGATGCATACCTGTAATAACAATCGGAGCATA -CAATAATCCGAAAATTAATCCACCAATTGCACCACCAAATTCATAAAGCCATGTTAAACCATCTGATAAC -CAGTAACCTAATTGTCGAGTGATTGGACCTACAAATGAAAATGTTAGAAATGCTGTTATAAAAATAGATA -ACAATGGTGTTAACAAATTATCTAACACCGTTGGAATAACTTTGCGTAACCCTTTTTCAATTGAGGCTAA -GATATAAGCTGCTACAAGCATAGGTAAGACTTGTCCTTGATAACCTACTTGATTAATATGCAAACCAAAT -ACATCCCAATATGGAATAGCCTTACCTGCTTCAACTGCTTTTGGGAAATCGTATGCGCTCATTAGCGATG -GATGAACCAATATCATACCTAATGCAGCACCTAAAAACGGATTGCCACCAAAGCGTTTTGCTGCACTAAA -TCCAATTAAAATTGGTAATAATGTAAATGGTGCATTCGCAAAAACATTTATCATTTCAGCTAAACCAGCA -AATTGACTATATACATCTATCAATGATTTACCTGAAAAGAATAAATCTTTCGCAGTCAAAATGTTATTTA -ACCCCATTAATAAACCACCAGCAACGATGGCTGGTATAATCGGAACAAAGATATCTGAAAGCATTTTTAC -AAATCGCTGTACCGGATTCATATTTTTAGCAGATTGTGCTTTGACTTCCGAAGTGGTTGATGCTTCTTTT -CCAGTTAATTTTTCCAGTTCACTAAATACTTTATTGACTGTACCAGACCCAATAATAATTTGGTATTGTC -CCCCAGTAGAAAATGTCCCTTTAACTACATCCATATTGTTTAGCGCCTCTTCATTTACTAAACTTTCATC -ATTTAAAACTAATCGTAGTCTCGTTGCACAATGCGCCATTGCATCTAAATTCTCTTCTCCGCCTATCGCG -TTCAAAATATCTTCTGCGGATTGCTTATAATTCATATATTTAGCCTCCTAATTAGAACCGGTTCCATTTA -TTCCACTTTATTGTAACCGGTTCCAAAAATATTTGCAACACTCTATTATCATTTTATATAAACAATTACA -TCACTTTTGATAGCGCATTCATTTTTATTGCTATACTACATGCAAGTATATTAACATTAATTATCGGAGG -TAATTTTATGAAAGAACGTGGCCATATCGAACAGCTTTGGCGTGAAGAAAAATATCATGTATTGTTACAC -AGTCAACAGTCTTACCAAATGATAAGGAATGCTTTAAAAAAGAATTTATCACTTCATCAAGTCCAACAAA -TGATTGATGATGCTTTGTTAATTGAACCGAGTATAGGAAGTGTATGTAATGCTTTTGATCATATGTGGGG -ATATTTTAAAAAATGTGCGAATGAAGAAGAAAGACAACAATCAAAACTACTTAAAGCTGATTTTATTAAT -GGTAAAATCGACACCCAAACTTTATTAGGTTTTTTAGCAGAACTTGCTAATAAATATGATGTTCAATATT -TACTACAAAGTCGTGTTTTAAACACAAAAAGAAAGAGATAGATTGAAACTTTAGTTGTAACGGACAAATA -GTAGTCATTGGAGTTCAGCAATTCATACTTTGTACTAAAGTTTACTATAATCTATCTCTCAAGGTTTAAA -TGTACATATCTATATTAAAATGCGTTTCATGATGTTAGAAGATACCATACACATTTAATTAGTTACAGCA -TAAATCAATTTATACCCTTAATTATTACATTGTTTATATTTTAAATTCGGGGGAGTAATTTTAAGTAATA -TCTTGTTGCTGCTAATTCTATTGTTAATAAATTGATATTAGATGTAGAAATTGAGTGTGAAAGTTAATAA -TAGATGATTTAGCTAGTAACATAATTAATTCATATATAGTCAAAAAGTTCTGTTAGATACTGTTCTTGAT -GAATATTCTTTGATGTTAGGTGTTAGCTATTCTAGATGAGTTTCTTAGATGTGGATGCCTGTCTTGATGA -AGTTATCTATGATGTTAATATAATACTTGATGTTGATTCTTAGATGTTAGTGCGATTTCAAGATGCTGAT -TCTTTGTTGTTGCACTATCTTGGTGACGTTTCTAGTTGTTTATAGTTATCGCATCTCTTGATGTAAAATC -TAAGATGTTTATGCATTTCTAGATGTTAATTCTTCGCTGCTTAAGAATTATCTTGATGGTAAATCTAGTT -GTGCCATGCATTTTCTCATGATGAATCTAAGGTGTTAATTCATTGATGTGTGCTGTTTCTTGTTGCTTCA -TTATCTTGATGGTGAATTTCGTTGTCTAATGCACTTTTTCAAATGATTATTCTAATTGTTACGGCAATAA -CTAGATGGATTTTCTTAGATGTTCACTTTTCTAGATGTTTATACTTATCTTGATGTTTTCTAAACAGAAC -TTTTAAACGCTTTATTTTTTAGTAGATTGTTTAAAATTTCTTAGTTGATGGTTATTGTTGTTGATTTGAA -TAATTTGTAGCGAATATTTTGTAACAGGGCTACTAAGAATTTTTATAACAAGAAGTGATTTCAATCGAAC -TAATTTTCAGCGTTTGATGACAAAAGTGTATGTCCAAACTTAAATAATGGCGATAAAATTTAAGTCATGG -GTACATTTAATGTTTTTTGATTCAAACTTCCATTTTGGTCAATTTGCTTTTTTTATAACATAGTTGAATA -TCAATAAAAGATTAGCAAGTTAGTTCAAAATGGCTATGTATTGTTTTTTGAAATACATAGGTTTGAAATC -TATATTAATTATGCACCAAATAATTTAATTAGACTCTATCGAAAATTTCCAAATTTTGCTTACTATCTTT -CTAATTTTACTTTTATATTGTGCACGATGGATAAAAACAAGCGTTTTCCTAGGAGTTTTCTTTAATTTCT -TTTATTTTTCACTATTACCTTTTCAAAAATATTCAACTATAATAGGTATACTATCCATGATTTTAAAAAT -TTCCATGTTTTACATTTAAATGATAGATTTCAATATATATTAGGCAGGAGAGAGAAATATGACATGCCAA -CTTAAAATACATCATACATTATCGACAATACCAAGTCGTAATATCAATAATATTATGGTGCTATTTTCAC -TTACAAGTAAACTCAATATTACGATTAATGGTGAAACCAAAGACGTAAGTAATTATATTATCTTAATTAA -TCATGGTGATATTTATAATATTAACCACGGCGAAAATATAATCGAATTAATGATACCCGTTTTTTATTTT -TATCAACAAGATGATGATTTCTTTAATGGTTATTTAGATCGTCATTTATTACAATCAAGTAATTATATTA -AGTCATTAATTGCCGATTTAATCAGTACACCAACAAGTTCTTCTTTAATGGGAAAAAATATAGGTCAAAG -TATTATAGACACTTTACTTAAAGAAGCTTTTATAAGAATAGATCATGAATATTTACCAAATATTGCTTTA -AGCAATCCGGTGTTTATAGACTGTGTAAACTATATTCATGACAATATTGATGCGCACTTGTCTTTAAAAG -ATATAGCGATGCATTGCAACATCTCTGAATCATATTGTTCTAATCTTTTTGTTCGATATTTAAGTATGAA -TTTTAAAGATTATTTTACAAGTATTAAACTTGTTAACGCCATCAATTTATTACTTTCTACAAAACATTCT -ATTACAACTGTTTCTGAATTGGCCGGTTTTAACAGTCATACAAATTTTGCAAATCAATTTAAGAATTACT -TGCATTTTAGTCCTAAACAGTTCCGTTCACTCGTTTCCAAGATTACTGAACCACCACAAATACACTTCCA -ACAAGATAACGTATCACAATTCACTGAGTTAATTTCAACAATTGATTTAACAGCTCAGCTGGCTACAAAT -ACAACAGATATTCATATAGATGATTTTAATCCGAAAGATCGAAGTCAGCGTGCCAAAGTATTTGTTCGAT -TTAGTAATTTCAATGAACTATTTCAATTTATTTTCAATGAATATTACGATATTAACTTTGAGCACCTACC -AAAACCTGTCGTTTTCATTGACGATATTCACGATATTGAGATTAGCCAAACGAATTACAACCTGTTAAAT -AGATGTTTTGAAAAGCTTTTCGAAAAAAATATAGGTTTAGCAATCGCTATTAAATCAACACAACAATTCG -AAACGATGAAGCAATTAATACTAACATTTTTACAAGGCAATCAAGACTATAAGACAAGCAAGAAATTAGT -TAAATTTATGCTCGTATTTTGCTCTAACTCTATGACAGCAGAAGAAATTCATTTATGTCATCTTAAAATT -AAAAACAAAAATAAAGAAATTAAATATAGTGTGACAGTCGATGGCTTTTTAGAAACTTATTCAACCGTGG -AACAAGTTTATGATGTCATGCAGCGTCTTAAATTCCATTATTACTTTATTGATATTGAAAATTCAAAAAC -TGCAACACATCTTATCACTAAAAACCAACACTATCATCAAACTGACACTCATTTTGAACAGTATAAGAAA -TTTATTTTAGATTCAGGTATATCATCAACACAATTTGTATATAATAACCTGTCTGTAAGTGGATTTAAAT -ATACTAATGATGGTAAGAATCCAATTCAATTATCTGACATAGTGTATCACTTAATCGCATTATTGCGATA -TGGCGGTGGCATTAGCTATCAATTATTAGATGACCATTCAAATTATATTTCCTTGTACAACAAATATGGT -AGCCCCCTACCATTAATGCATTTATATAAAATGTTTAGACCTTTTGTTAATGAAGACATTGAAATTACAA -ATAATTATGTATTGAGTCGTAAAGATAATAACTACCATTTCTTATTATTCAATAAAATTAATGACCGATA -TATGTCAGACGTAAAACAAGACTTCATTTTCCATAATGAATTACCTCAAGACTCTTTGATGATTATTAAA -ACATTGAATCATGAACATGGTTCAATTCAACATTTGCTTCCAACAAGCGATCAACTTGTCTATATAGAAA -AAGAAATTCTAGATGAATTAGACAAAACGAATTACCCTAAAACGGAGCTTGCAGTTCAAGAAGAAACTGG -TCGTACATTTGAACTCAAGTTAAATCACGACGAGGTTAAATATATTTGCTTTAAACCAAGCTAAATACTA -ACAGTCCTCTTGTGTTTAGTTTCTTACGTTAAAGGCTATTTATATCATAAGGAGATGATATAGGATGAGT -AACTCACAAGCAATTCAAGCAATTGAAAACGTGCTAGCAACGTCAAAAGTTGGTGTATTATCAACTGCAT -ATAATAACAAACCTAATAGTAGATATATGATCTTTTATAATGATGGTCTTACTTTATATACTAAAACGAA -TATCCATTCTGCTAAGGTCAAAGAAATTAAAGATAATCCAGCAGCATATGTTTTATTAGGCTATAACGAC -ACAACTAATCGTAGTTTCGTTGAAATGGAAGCGACAATCGAAATCGTTACAGAACAAGAAGTGATTGATT -GGCTATGGGAAACACAAGACAAAAGCTTTTTCAGTTCAAAAGAAGACCCAGAGTTATGTGTTTTAAGAGT -AGTTCCACAATCCATTAAGCTAATGAATGATAAATCATTAGATACACCTATTAAAATTGATTTATAATAT -GTAAGTTTTTAGTTTTAAAATTAGTCAGCAATTGAACATGTTAGCTATAAATTTCAACAGTATCCTATTT -ATATATATTTCGATTTTGAAAGCGTTTAATACTTTTAACTATATTTTTATTATATAACAATATTTTAGAC -ACATTTTATTCACATTTATTGTGATTAAGGTGTGTCTTTTTAAATTAATTTTATGTAATATAAATACTGC -ATTTGCAAACTGTTGTACTTTTAGGTATAACAGAATTAACTACATTTAAGGAGATTGATGAACCGTGAAA -AAGAAAAAAGGTTTTGGTCTTGGTATTAGTTTAATTGCCATCATGTTGATTGTATGTATTGTACTAGTAA -TCATGATGATGACTGGTGGAAAGAAAGATACATATTATGGAATTATGAAAGACAATGCTACAATTGAAAA -AATGATTAGTGAAAAAGATGAAAGCATTGAGAAGAACGTTAAATTACCTTCAGATGCAGACGTTTCAGTT -AAAAAAGGCGACTTTGTAATTGTTTATAAATTAGCCGATTCTGATAAAATTATTAAAGTAAAAAAAGTTG -ATCATGACGATGTACCACATGGTTTAATGATGAAAATTCATGACATGGGCAAAATGCACATGAAACACTA -ATTAAGCTTTAATTTTGAGTAATATATAAGATATTAAAAGCAGCAGTAAGATATTTCTAATTGAAAATCA -TCTTACTGCTGTTTTTTTGAGAATAAATATACCAGTTTATTTGCAAATGCCCTGCGCTTTAGCGCATGCA -TAAAAGCCCCTACACTTCGCTTCAGTTCGCCTGCGCTTTGCGCATGCATAAAAGAGCTTGGGACATTAAG -TTCTTAGGCAATGTAAAAAAGCTGATTTCTATTAATTATTTGATAGAAATCAGCTTTTTTTAAATGTATT -TGATAATATACAGCTCGTCGAGCTACTATTTTCCTTATATTAAGTGCCATTAATACAAAACCTAGCTCTC -GTTTAACTTTATTTATTCCTCGAACTGACATTCGAGTGAAACCCAAAATAGCCTTCATAAATCCAAAAAC -AGGCTCTACATCAATTTTTCTTTGACTATAGATTTTTTTCGTTTCTGGTTCAGAAAGCTTTTGATTAATT -TGGGCTTTAAAGTATTCCCAATTATAATTCTTCATGATTTTCTTATTGGATTTCGAATTTGGCTTCATGC -ATTGTTGCCTCAAAGAACATGCTGAACAGTCATCGCATTCATATAGTTTGAAGTCACGTTTAAAACCATA -TCTATCATTACGGTATGCATATCTTTTAAAACCTATTCTTTTGTTATTAGGACATATAAATTCATCATTA -AGTTCGTCATATTTCCAGTTTTGAGTGTTAAAAATGTCACTTTTAAACTTTCTCGTTTTATCTTTAATAA -ACATACCATACGTAATAAGTGGCGTTTTATTAAAATCATCTATAATAGCCATATAGTTTTGCTCACTACC -ATAACCTGCATCAGCTACAATATACTCCGGTAAATAACCGAAGGTATTTTGAATCATTGTTAAAAATGGA -ATTAAAGTTCTAGTATCTGTCGGGTTTTGAAATAGGTCATAGGATAAAACAAATTGAGAATTTGTCGCTA -TTTGTAAATTGTATCCTGGCTTAAGTTGGCCATTTTTCATATGGTCTTCCTTCATTCTCATAAAAGTTGC -ATCATGATCAGTTTTAGAAAAGCTATTTCTATCTTTAAGAATCGATTTTTGTTCTTCATATTTACTTTTT -CTTTCGGAATAATCATCAAATTTCTTTTTGAACTTCTTAATCTCAGTTCTTTTTTTACGGGTCTGTTTTC -TAATTTGAGTACAATCTTCGTTCTGAATAGAATGATTTAAATCTTCGATTTCTTTATCTAAATGACTACC -AATTAAATCTATTTCTTCTATTGTTAAATCGCTATCTCCATCTTCTTTTATCTCTGGTATTATTTTTTCT -TCAACTAAGTCACGATATAATGCTTTTGAATTTTCGTTCAATTTCGATTCGTGATTTTGAATACTTTTCT -TCCACACAAATGTATACCTATTGGCATTAGCTTCTACTTTTGTACCATCAATAAAAATTGAATTATCATC -AATAAGATTTTGCTTTAAACATTGACTATGAAACTGAATAAATAAAGATTCAATTAATGCATCAGTATTA -GGATTTACTCTAAAACGATTAATAGTTTTATAAGAAGGTGTTTGATTTTGAGCTAACCACATCATTCGAA -TACTGTCATGAAGTAATTTCTCTATTCTACGACCAGAAAATACAGATTGAGTGTATGCATATAAGATAAT -TTTTAACATCATTTTTGGATGATAGGATGTTGCGCCACGATGATGTCTGAATTCATCGAATTCGCTATCA -GGTATCGTTTCAACAATTTCATTAACATATCGTGAAATATCATTTTGAGGAATTCTAACAGAAGTTTCTA -TTGGTAGTGTAAGTTGGGTCATGTTATAATTTTTATACATAAGGCACCTCGTTAATTTAGTTTAGTGGTA -TTTATTAAATTATACGAAAGTGTCTTATTTTTTTAAAGTATTTCAAAGTAAAATTACATGTTAATACGTA -GTATTAATGGCGAGACTCCTGAGGGAGCAGTGCCAGTCGAAGACCAAGGCTGAGACGGCACCCTAGGAAA -GCGAAGCCATTCAATACGAAGTATTGTATAAATAGAGAACAGCAGTAAGATAATTTTCAATTAGAAAATA -TCTTACTGCTGTTTTTTTAGGGATTTATGTCCCAGACTCTTTAAATGTCAGATAGTATTTTTTAAATTGA -TTTTAAATATTCTTGACCTTTTGCTTTATCATATACGTTTTCCCATTTAGCAATAACAATTGTTGATAAT -GCGTTACCAATAACGTTTACACATGTACGTACCATATCTAAGATACGGTCAACACCAATAATTAATGCTA -AACCTTGTGCCGGTAAGCCCATGGCGCCTAATGTTGTTAATAAAACAACGATTGAAGTTCCTGGTACTGC -CGCCATACCTTTAGATGTAATCATTAATGTTAACATCAACACAATTTGCTCTGATAATGTTAAGTGCATT -CCATACATCTGTGCAACGAATAATGCTGCAATAGATTGATAAAGTGCTGATCCGTCTAAGTTAAACGTAT -AGCCAATCGGTATAACAAAGGATGTAATATCTTTTGGTGAACCAAAGTTTTCCATTTTCTTCATCATTAC -AGGAAGAACAGCTTCCGAACTTGATGTAGAAAATGCTAAAAGCAATTCACTTTTCAAGATTCTAATAATA -TTCATGATATTAATACCACACATCCATGCAACTAGTCCTAGTATAGCGAATACAAAGAACACCATTGCAA -AGACAACAACTAATACTAATTTTAATAGTGGTAATAATGCTGATGCACCAAATGTAATAATTGTAGTACA -AATGAATGCAAACACTCCAAGTGGTGCTAATTTTAAAATTTTATTAATCATCCAGAACACAGCTTCAAGC -GATCCGCTTAAAAATTCTTTAACTGGTTCTGCTTTTTTACCTACTGCAGCTAATCCTAATCCAAAGAATA -CTGCGAAAAAGATAATAGGTAATAATTCACCCTTATTTAAAGCTTCAAAAAAGTTTGTCGGAATAATATG -TACAATGGTATCAATAAAATGATTTCCATATGTAGATTGTTCTGCTGCATGTGCAGTTGATTGATATTTA -GAAATATCACCTTTAGGTAATTTTGTTGGGTCTAATCCAGCACCTGGTTTAAATAGGTTACCGAAGATAA -TCCCTAAACCTATTGCGATTGTTGTAATAATTTCAAAGTATAAAATTGTTTTCCAGCCATAACGCCCTAC -AGTTTTCGATTCCCCAACGTTCGAAATAGAAAGCGCTAGTGAGCAAAATACAACTGGTATAACGATCATT -TTAATTAAATTTAAAAATACGTCACCAAATGGTTTAATGTAATTTGCTACGTTTTCTTGTCCATATAATA -AAAGTCCTACGACAACACCTAACACTAATGCAATAACTACTTGCATAGGTAGGCTAATTTTTCTCTTGAA -TAGAGCCATAGTACAAACTCCCCTTCATCTGACATCACTCAATTATATCAGAAAATTGATAATTATCTAT -AAAAAATTAAAATATTTATCTTTTATAGATGTCAAAAATCACTAATTTCCATACAAAAACTGTTTACCTT -AAATAATTAAAATTGCAGGCACTAAACTGTTTCACCAGTTATACGTTTCACTATTTTGATGGTTTATAAT -TCTGATTGAAATATTTATGCTTTGCAGTTTTCAAACTTTTCTTAGTCTCTGTATCAAAGCCTTCAACAAA -TAATCCTTTATTAGTACTGATTGGTTGCACAACATAAGTTACACCAGGTTCATCTTTAAACGTAACTTCC -TTATAGAAGAGACCTTTTTTAGCACTATACTCTGTTTTTTCTGATTTAATTTTATCTTTTAGATTTTTCT -CTTCCAAGTAACTGTCAATAAGTTGAATATTCTTATGGCCTTGATATGTTTTCAGACCAAAGAAAAATGC -TACAGCAACAATTAATGAAATAAATAATATAATGATAACTTTAATCGCGTTTTTTTTCTTCTTCATTATG -TAACTCCTTTTTGCTTATCTATTCAGTATGAACGAATCAATTTATTTAATAAAGAGTTTTTACCAGATTG -TAACAATTTTTTTCTTCTCAATATTATTATAGAAATCGAATTACATACACGATGCTTTTAAAAAATTTAA -TAACAAATTTCATTTTACTATCTATCAAAATAATTGACTACTTTTAACAATTAAGAATGATACAATTACA -TTTTTTTCAATTCAAAAAATCAGTCATATCAGTCATTACCGATGAAAATACTAAGATATTGATATGTTTT -GCATTATTTAACATTTAAATTCAATTATAGACAATTCGATAATTGCGATGAAATCAGTACTTGACAACTA -TTACACTTCATAATATTGTTTATTTTAACAAGGAGTGATTGGATGTATGTAGAAAACAGCTATCTTAGCA -AACAGTTGTGTTTTTTATTTTATGTTTCTTCAAAAGAAATAATTAAAAAATACACAAACTATCTTAAGGA -TTATGATTTAACCTATACTGGTTACATTGTTTTAATGGCGATTGAAAATGATGAAAAACTTAACATCAAA -AAATTAGGTGAACGTGTATTCTTAGATTCTGGAACACTGACACCATTACTAAAGAAATTAGAAAAGAAAG -ATTACGTTGTTCGAACACGTGAAGAGAAAGATGAAAGAAACCTACAAATTTCTCTAACAGAACAAGGTAA -AGCAATAAAAAGTCCTCTTGCTGAAATTTCTGTTAAAGTATTTAATGAATTCAACATTTCAGAACGAGAA -GCATCAGACATTGTTAATAATTTGCGGAATTTTGTTTCGAAAAATTTCGACAATTCCGACAAAAAGTAAC -TCCCTATCATAAGATGATGGGCAGAAGTATGCATCGCTATGTTTATTCATTATCTTTATTGCTTGTATAA -ATCTCGATGCTCAGTTCTTTTGCCCTGATTCCTTATCAGGCACAAATCTATCCATTTATAACTTTTTTAT -CCCCCCCCTTTTACTTTATCTTTTTTTATTCTACTCATATAATGACTTTGTAATACAAATTTATATAATG -GAAGTGATGATATTGAACTTCAATCAATTCGAGAATCAAAACTTTTTTAACGGTAATCCAAGTGATACAT -TTAAAGATTTAGGTAAACAAGTATTTAATTACTTTACAACACCTTCATTTGTAACGAATATATATGAAAC -AGACGAATTATATTACTTAGAAGCTGAGCTAGCAGGTGCAAATAAAGAAGACATTAGTATCGATTTCAAT -AATAATGTGCTTACTATTCAAGCTACTAGAAGTGCTAAATATAAATCCGGAAAACTCATTTTAGATGAGC -GAAACTTCGAATCATTAATACGCCAATTTGATTTTGAAGCTGTTGATAAGCAAAATATTACTGCTAGTTT -TGAAAATGGGCTATTAACCATTACCCTGCCTAAAATCAAACCAAGCAATGACACTACTTCATCAACATCT -ATTCCAATTTCTTAGTTAAATTTAAAATGAATACATTACTAAAGCCTTAATGTCATGCTACTAACGTTAC -ACATGGTATTAAGGCTTTATCATTTAAATTTAAAAATGCTTCGTATTACATATCAACTGTGTTTCAATGA -ACCATATTCTTTTTGATATAAATGGCGCATTGTAAATAATGCAATGCATCCGAATACCGCTAAGAAAATA -AATGCTAAATGGCTTGAACCTGTTAAATTAGCTACGTATGTGATGACCAACGGTGGGAAGAATCCTCCTA -AACCACCCATCATTGATACGATACCATTTGCTGATCCTGCTTCATTTGAGAAGTATGATGGTACTAATTT -AAAAATTAAGCCGTTACCAATACCTGCACAAATACTTATTGTTAAACAACCTACAGTAAATAATGCGATA -TGGTCTGAAATACCTAAAATAACGGCACCGATAATCATAATAACAAAATCAATCATCAGTACTTTAACTG -CATTAAATTTATCACCTAGTATACCACCTATTGGTCTCAAGAATGTTGCCAGCGCAATGAATACACCTGA -ACGAATACCAGCATCTACTTTGTCAATTCCAAAATGATTTACTAAGTAGTTAGGTAAGAAAATACCAAAT -GCAACAAAAGCACCAAAAGTAATGAAATACCAATAACTTAAGTAATATAATTTGTAGTTTTTAGATAATG -TTTTCATTTGGGCCATTAATGGCACTTTAATTTTACGTTCTTGTGTGTCACCAAAAATGAACATAATTAA -TGCAAATAAAGCGATAATAATTAAGTAACTTCTAACTGTTGTTTGCCAACCAATAATACCCGCTATCGGT -GGTGCTAAAAATGAAGAAACTGCTGTACCGATATTCCCCATACCATAAATACCATTTGCTAGACCTACTT -TTTCTTTAGGGAAATATTTAGGAACTGATGTAACACCAACAGAGAAAATTGCGCCACCTACGCCAAGGAA -AAATCCTGATGCCATTAACATCCCCGGCGTTTGTGCTTGGCCCAAGAAAAATATCGGGAATAACAATACG -ATAAAACTTGTAAAGAATACCCATTTAGCACCAACAATATTTGTTAAATAACCAAATGGCACACGGAGCA -CTGATCCCAAAATAACTGGTATCGCTAAAATGATTGATATTTGACCTTCAGTTACATTGACATCCTGTTT -AATAAAAGGCATTAAAGGAGCAATAATACTCCAAGCCATAAATCCAACCACTAAACTTAATGTTTGTAAT -GTAAGTTGAAAGCCACCTTTTGTTTTGTACATACGTTTCACCTTCACCAAAATCATTTATTTTTTAATAG -ATATCAATACTCTGCCTATATGTTAGAGGTCAATGTTATTTAAAGAGCCTGGGAAATAAATCAATGTTCC -ATGCTCTACGAAGTTATATTGGCAGTAGTTGACTGAACGAAAATACGCTTGTAACAAGCTTTTTTCAATT -CTAGTCAACCTTGCCGGGGCGGGACGACGAAATAAATTTTTCGAAAATATCATTTCTGTCCCACTCCCCA -ATATAGACAAAGTATTGACTACACATTTATTTTATTATGATTGTGAAAAAGTGAACATAAGGATTTTCCC -TTATTTATGGTGTAATTTCCCCTATACAATGTCCCTTTACGATGCATTTAGACACTATTTTGTCATCATT -TTAATCAGATTATTAAGGATCACTCACATGCATTTCTTAAATTTTTTTCAATTAGTTACAATTACTGCTT -GAAAATCACGTTACGTTACCCTTTATGCTGACAACGTAAGGAGGTTTATCATGTATAAAATCAATATTAT -TAGATCAGATTCCGTCTATAAGAATATACTCAAGACACCATTAAACGACCGTGATTCAATTTTCACTAAA -GAAATATTAGTACCTTTTAAAAAGAAATTTGAGGTGCAACAGATTCCTATTCATAATGATGCCAAGCAGA -CAATGAGTGCAATTCAATTTTTAGATGCCTTTCAAAAGTCTCCCAAAGATTTACGCATGTCTGACCAAAT -GTCAATACAATACCTGAATAATGATTTCTGGAGTAATTGCGAAAAATATTTAAAAGTTGCTATAGATCAA -TTTGCAAATTATAGTATCTCATCTCAAGTTTCTAACTATCATTTCACAGTATTACTTGGAGATAGCCAAA -AACCACTTATGTATCTAAATAAAAATCGCGGTGGTGATGGTGGCATACCAGGTTATATTATGATTTATTT -AGTGCCGAGTACAAGTACAATTAATTCTATGAAAAGCTTAATTGCACATGAAGTAAATCATAATATGCGC -TATCAATATATTGATTGGGATGGCGGAAGTTTGATTGAATTGATTATCGCAGAAGGATTAGCTGAAAACT -ATGTAGAATCATTGTATGGTAAAGCGCATATTGGACCGTGGGTAACAAATACTAATTGGAGTCGTGATAA -CGTAAAAATTAAAAATACTATTTATAATCATTTACATTTAAAGCATATATTTGAATCGATGCCTTTTCTC -TATGGTGATGATATTAATAAACTTCAAGGTAGGTCTATCGTTGGCTTATCTCATGCTGCCGGGTATGCAT -GTGGCTATCACTTGGTGAAATACTTTTTACAAAAAACAAACATACCTATTGAAGTTGCCACAACACTTCC -AGCACAAAAAATAATAAATGAGGTGAATGATTTTTGGCATACACATACACTTTAAAAGATATTATTGAAA -TTACAGGTGTAACTAAACGAACTTTACATTATTACGATGAAATAGGATTATTAGTTCCAAATAAAAATGA -TAAAAATTATCGCGTTTATAAACAGCAAGACTTAGAAAAATTACAAAAAATTTTAATACTCAAGTCTTTT -GATTTTGATATCGCTAAAATAAAACAATACATTTCATATGATAATGAACAATTGCGAAAGTTATTATCAG -AGCAAGTAAGCAAGTTAGATAAAAAGATTTCTGACTTATAATTAATTAGACGCTCTGTATGTGAATTTAT -TAAAGGACACTCTCTAATAGATACCAGCATTTTAAACAAGTCACTACAGACACAATATGATAAAGAAGCA -TCTATAAAGTATGGTCATACGAAGGCATATCAATCATTTATTAACCGTCAAGACAACTTACAATCACAGG -ATATCAGACAGAAATTGACAATGATCTTCAATCAATTCAATCAAATGTCTTTAAGTCATTATCCAATCCA -AGACTGTAATGATATCGTGGAAGAATGGAAATCTTTTATGAACACAATCGCTGATTTTGATGATGAAACA -TTATGCTGTATTGCTAAAACATATGAAAATGATACGCGTTTCAAAGATTACTTTAATTCATATGATAATC -AAAATTTAGCATCATATATTTCAGAAGCTGTTAATTATTTTTTGAGCAATGAGAATAAGAAAGACAATTT -TTAATCCTCACTTAGAGACTAAAACACTGAATACACCCTAACTAACATGTCATGTCCAAAATAGACAACT -ACTCATTTATTCTCTATATCAATAACTATATTAAAAGTTATTCCGTTTCCAATAAAATAAGTATGGCTTT -CCAAAAGGAGAAAGTATTAGCTTCCATACGGTTATAAAAAAATATATTTCGAAACATACAAAAGCGCCAG -AAGATAATCATTTCCTCTGGCGCTTTGTATGGTATTAATTTCAAACTCTAAAACTCTAATAATTTCTTTT -TCAATGCATATTCAACGAGCTCTGGTTTACTTTTCAAGCCAAGCTTTGTCATAATATGCGTTTTATGTGC -CTCTACTGTCTTTACAGAAACAAATAACTTCTCTGCAATTTCTTTATTCCCGTAACCTTTGGCAATAAGT -GGCAATATTTCTAGTTCTCGTTTTGATAAGATTTTAAAAGGATCTGATGTGTTTGCAGTGTCCTGATTTG -AATTAGATACAAATTCATTCACTAAAGATGTTGTAAGTTTCATATCTACATATGTTTCACCTTTATATAC -AGTTCGAATAGCTAACAATAATTGTTCATCAGGTGCATTTTTCAATATGTAACCTTTCGCACCATTACGC -AACACATGGAACAAGTACTCTTCATCATCAAACATGGTTAATATTAAAATTTTAGTTTCTGGAAAACTGT -CAGCAATTTTACTCGTAGCGATAAGACCTGACTCACCTGGTGGCATGCTTAAATCCATTAGTAACACATC -AGGTTTATATTCCATTACTTTTTGATAAGCTTCGACACCATCTGCAGCTGTTGCAACAACTTCCATATCA -TTTTGATAATTTAAAATCATAGAGAATCCCGTGCGGACAACAGCGTGATCATCGGCAATGACTATTTTCA -ATTTTATTCCCCCAATGTATGTTTCAAATTGGAATGTTCAGTGTAACATTGGTGCCCTCACCAATTTTCG -TTTCGATGTTGACGCTACCACTGACTAATTCAGCTCGTTCATTCATTCCATATAAACCGAGTCCAGAACC -TTTAGGCTTAGAACTTGGATCAAAACCATTTCCCGCGTCTATTACTTCAGCAACCAAATGGCGCCCAGTT -TGACGGATACCTACATTTATTTCATTTACATCAGCGTATTTCAACGCATTTAAAATAGCTTCTTGTACTA -CTCGGTAAACAACCGTTTCAATATCACTATCAAAACGGGTATTTTTAATATTGGAAGTATATATGATTTT -AACCCCATAATTTTCTTCAAATTGTTTAAAATATGATTTAAACGCTGCCTCAAGGCCTAAATCATCCAAA -GAGGCTGGTCTTAATTCCACCGACATATTACGTATATCATCGATTAATTTAGCGACAATGTATTCAATGT -TTTCTGCGTCTTCCAAAAGCTTTGCTGTATCTTCTTGATATTTCAACAATCGCAATTGAACATCTACATT -TAACATTTCTTGAATCACACTATCATGTAATTCCCTAGAAATTCGTTTTCGCTCATTTTCTTGTGCGGAA -ATCGTTTTACGCATCATACGTTGTTGATGCAATTTTTCTTGTTGTTCAATTTGTGATGAGACATTTTGAA -GCGTAAATGCATGAATCCCTCTATCCTGATCAATAAGCTGATAAGTTGCAGTAAACGGCATCACTTTTTG -ATCTTTCGTCTTCATAAACACTTGAAAATTCGTAGCTTGTACTTGCATGGACTCTAAGAAACAATCTTTA -CATGATTGTACGTCATAGGCATTCGTATACCCTTCACATCTGTGACAAATCGCATTCGCTACTGCACTAT -AATTATCTTCTTCGGATAATATATCTTTAGCTGCATCATTCATCGCAATAATTTTACCACTATCGTCGGC -AAATACTATTTTTTCGATTGAATGTTCATAGTATTTTTTTAATAAAGCTTCTAATTGTATACTGTCCTCA -TTAATCATGACCTACACCCTAATTCATCTCATTATTTATCATCATTGAAAATTCCAAATTTGCGTTGAAT -ATCATCGTTATCAAATATTTTTGGTAAAGAACGTCCATCTCTTTGACCAAATAATAGTACACCATACACT -TGATTTTTGTACCAAAGCGGTACAGCTAAGACTGCTGTTAATGATTCGCTTAATAAAATTGGATAGTCAA -TCTTTTCTTCTGGTCCCAATGCTAAACCGACATTAGCTATAATCATACGCTTCCCTGTTTTCATAACAGT -TCCAGCTAATCCACGGCCTTTTCTTAAAATAATTAATTTAAACCGATTATTTTTATTACCTGAAACATAG -TGCCATTTTATTGGAGATGATGGTTTGTTAGATTCATAGAAAGCGATTGCCGCAAAATCATAACCTTCTT -CTTTGCGTATTTTATCTAATGTCTCTTGAAATCTACGATCTTCAATAATTGCTTCTGGTGTCAAATCCTT -TCACCTCTTATACTTACACTTTATTCTTACGGTAAATAATATATCTGCGATTTATATATGTCAAAGGTAC -ACTCCAAACATGTACTAAACGTGTGAATGGCCAACAAGCCATAATAGTGAAACCTAATAATATATGAATT -TTAAATGCAATTGGTACACCACTCATTAATGATGCATCTGGTTTCAACATAAATAATTGTCTAAACCAAA -TTGATAATGAAGTTCTATAGTTAAAATCTGGATGCTGTACGTTTGTTACTAATGTTGCATAACATCCCAT -AAATACAATAAGTAATAATAAGAAATTAACAAAGATATCGGACGCTGAACTTAATCTGCGAATACTTTTC -GTAGTAACACGTCTCGCTGTTAATAAAAACATCCCTACCAATGTAATTATACCAAAGATACTCCCTATAT -AAACAGCACCAATATGATATAAATGCTCAGACACACCGGCAGCATCCATCCACGACTTAGGTATTAATAA -TCCTACAACATGTCCAAAAAATACCGGAATGATACCTAAGTGAAATAGCAAACTACCCCACATCAATCTT -TTTCTTTCAATTAATTCACTAGATTTTGCTGTCCACGAAAATTTATCATAACGATAACGTGCAATATGAC -CTGCGACAAAGACAACTAAACATAAATACGGAAATATAACCCATAAAAACTGATTAAGCATGATGTTTCA -CTCCTTTTGGTGATGTCAAACATAATTTCAATGTTTTTCTAAGTGCTTGAATCACATAGGCATATGGATT -GTTATCTTCACCAAGTGCATTCGCCATCACATATGTTCCATCCTCAATAATCATAATGATTAATTGAATA -TTCTCTTCAGCTCTTGGATCATTTCGCCATTCTGCCACTTGTAAAAATTGCAACATCAACGGTAGATAAT -CAGAAAGTTCATTGTCTACCATTTCTAGTCCAAACATCTCGTACAATACCTTTAGTTTCGCTAACATTTG -CCCACGTTCTTTTTGTGTATCAAACTTGTTATACGTCATATATAATGGCGCTTTTTTTGTAAAATCAAAT -GTATCAGTATAAATCGCTTTGATTTCTGATAATGAAAATGTCATCATTACATTTCTAAATGCTATTAAAT -CGTCATACCCTGGATGATCCTTCGAAATTGTTTCTTCAAAAGTCTTTGGATGAAATGTTAATTTTTCCGG -AAAGCATAGCTGTTGCGCTATATATCCAAAACTTTCTTGATACTTTTTAAAATTATCGAAATTAATCACG -GAAAATCCCTCCATAGAAATTCTCATTATAAATTTCTTGACCAGTTTTTCCTGAACCTACTGCAACACCA -CAACCTTCACAGTTATCACCAAAGTGTTCGCCACCATAGTTATATCCCGTACTACCTTGAGCATGATACG -TATCTAAATATGTTTCCTTATGTGACGTTGGAATAACGAATCGATCCTCATATTTTGCAAGTCCTAATAA -GCGATACATATCTTTAGTTTGGCGTTCAGTTAAACCTAATCGCTCTAAACGTGATGTATCAAATGGTTGT -TGTGTAACTTGGGAACGCATGTAACTTCTCATCATTGCCATACGCTGCAATGCTTCTTTTACTGGTTTTG -TATCTCCTGCCGTGAAAATATTCGCTAAATATTCAATCGGCAAGCGCATTTCTTCAATGGCTGGGAAAAT -CGCATCCGGATTTTGATTTGTATTTTTACCTTCGAAATAGCTCATAATTGGGCTAAGTGGTGGGCAATAC -CAAACCATCGGCATCGTTCTAAATTCAGGATGTAATGGAAATGCTAGTTTATATTCAATCGCTAACTTAT -AAATTGGTGAGTTTTGTGCAGCTTCAATCCAATCATAACTAATGCCATCTTTTTCAGCTTGTGCAATGAC -TTCTTCGTCGAATGGATTTAAAAATATATCTAATTGTTTTTCGTATAAATCTTTCTCGTCTACTGCTGAA -GCCGCTTCATGAACTCGATCTGCATCATATAATAAAACACCTAAGTATCGCATACGTCCTGTACAAGTTT -CAGAGCATACCGTAGGCATACCCGCCTCGATTCTCGGGAAACAGAATGTACACTTTTCAGCTTTGTTCGT -TTTCCAATTGAAGTAAACTTTCTTATATGGACAACCTGTCATACAGTAACGCCATCCACGACATGCGTCT -TGGTCAACTAATACAATGCCATCTTCATCACGTTTATACATAGCACCTGAAGGGCATGAGGCAACGCAAC -TTGGATTCAAGCAATGTTCACATAAACGTGGTAAATACATCATAAAAGTTTCGTCAAATTGGAATTTAAT -ATCTTCTTCTATTTTTTTGATGTTAGGATCTTTTGGACCTGTAACGTGACCACCAGCCAAGTCATCTTCC -CAGTTAGGTCCCCATTCAATTTCAATATTATCCCCTGTAATTTCTGAATATGCTCTAGCAACTGGAGAAT -GATTACCTGATTTCGCAGTTGTTAAATGTTCATAATTATAGTTCCATGGCTCGTAATAATCTTTAATTAG -TGGCATATCTGGATTATAGAAAATTTTCCCTAATGCAATTTTTGAAATTCTACTTCCAGATTTTAATTCA -AGTTTCCCTTTACGATTTAGTACCCAACCACCTTTGTAATGTTCTTGATCTTCCCAACGTTTCGGATACC -CTACGCCCGGCTTAGTCTCTACGTTGTTGAACCACATGTACTCAGCACCTGGACGATTTGTCCAAGTGTT -TTTACATGTCACACTACACGTATGGCATCCTATGCATTTATCTAAATTTAATACCATCGCAACTTGCGCT -TTAATCTTCAAGCCAATTAACCTCCTTCATCTTTCTAACTGCTACATATAAATCCCTTTGGTTCCCAATT -GGTCCATAATAATTAAAGTGATAACTAATTTGTGCGTATCCTCCGACTAGTTGTGTTGGTTTCAAATGGA -TTCTAGTCGGCGCGTTGTGTGAACCACCACGTGTATCTGTAATTTCTGACCCAGGCGTTTGAATATGTTT -ATCTTGTGCATGATACATAAACATTGTACCTTTAGGCATACGATGCGAAATAACTGCTCTTGCCGTTACA -ACACCATTACGGTTATACACTTCTAGCCAATCATTATCTTGGATATCGTGTTTTTCAGCATCTTCATTTG -ATATCCAAACCGTTGGACCACCTCTAAATAGTGTCAACATATGCTTATTATCTTGATACATTGAGTGTAT -ATTCCATTTTCCATGAGGCGTTAAATAACGCAGTACCAAAGCATCTGTACCACCTTTAATTTTCTTATCT -CTATTACCAAATACCATTGGCGGCAATGTCGGTTTATATACTGGTAAGCTTTCACCAAACTGTTGGAAAA -CTTCATGATCAACATAATAACTTTGACGACCTGTTAGCGTTCTAAAAGGTACTAAACGTTCTACATTCGT -TGTAAATGGTGAGTAACGTCGGCCTTGTTTATTAGATCCCGGGAATACTGCTGTTGGTATAACTTCACGT -GGTTGTGATGTTATATTCAAGAACGAAATTTTTTCAGCAGCACGCTCACTAGAAATATCTTTCAACGGCA -TACCAGTTTGTTCTTCAAGATCCTCATATGATTTCTGTGATAACTTTCCATTCGTAGCTGATGAAATATT -TAGTATGGCATCAGCGACATTACGTGCTGTATCAATACGTGGACGATTCGCTCTTACAGAATCATCATTT -GTATCACTCCACGTGCCTAACATACTTTTTAGTTCTTCGTACTGCTCACTGACACCGAAACTTACACCAT -GTGCTCCAACTTTCCCTTTTTCAAGTACAGGACCAAGTGTGACATATTTGTCGTAAATTTTAGTGTAGTC -GCGTTCTACAATTGCAAAGTTAGGCATTGTACGTCCAGGCACCGCTTCAATTTCACCCTTCGACCAATCT -TTCACTACGCCATATGGTGTAGATATTTCTTGTTTTGTATCATGACTAAGTGGTGTTGTCACAACATCTT -TAAACGTTCCAGGTAAATAGTCTTTTGCCATTTCTGAAAATGCTTTTGCCAATGTTTTATAAATATCCCA -GTCTGAACGTGATTCCCATAATGGATCAATAGCAGGATTGAAAGGATGTACATATGGATGCATATCCGTT -GATGATAAATCATGTTTTTCATACCAAGTCGCTGCTGGCAAAACAATGTCAGAATATAACGGTGTTGCCG -TCATTCTGAAGTCTAAAGAGACCACTAAATCTAACTTACCTGTTGTTTCTTCACGCCACGTAATTTCTTC -TGGCTTTTCATCTTCATTTGGTGTAGCTAATAATCCTGATTTTGTGCCAAGTAAATGCTTCATAAAGTAT -TCTTGACCTTTTGCAGAACTTGAAATTAAGTTTGAACGCCATATAAATAATGATTTTGGATGATTCTTTT -TCAAATCAGGATCTTCAATTGCAAATTGTGTTTGTTTTGATTTCACTTCATCAATTGCACGTTGCAAAAT -CGCTTCATTAGAATCTATACCTTCATCTTTAGCTTCTTCTGCAAACAACAAGCTATTTTTATTAAATTGT -GGATATGATGGTAACCAACCAAGTCTAGCTGCTAACACATTATAATCAGCTGGATGTTGATGCTTTAACT -CCTCTGTTTTAGCTAATGGAGATTTTAAACGATCTACATTTGACTCTTCATATTTCCATTGGTCTGTCGC -AAAATAGAACCAACTTGTTCCGTTTTGCAAACGTGGTGGTCCTTGCCAGTCTTTCGCAAATGCGACAGTA -CTCCATCCTTCAATCGGGCGACATTTTTCTTGTCCCACATAGTGAGCCCAACCGCCACCATTCACACCTT -GACAGCCACATAACATAACTAAGTTTAAGATTGAACGATAAATCGTATCTGAGTTAAACCAATGGTTAAT -ACCCGCACCCATGATAATCATTGAACGCCCTTCAGTATCGATAGCGTTTTGCGCAAATTCTTTAGCTACT -TGAATGACAACACTTTGTTTTACGCCTGAAATGGCTTCTTGCCAAGCAGGTGTATATTTTGATTCTGCAT -CGTCGTATCCATTTGATTCCAATTTATGATCAAAACGACGCACGCCATATTGACTTGCCATTAAGTCAAA -AATTGTAGCAATACGGACTTTGTCACCATTTGCTAAAGTGACTTGTCGAGTTGGAATTGGGCGATTGAAT -ATCCCATCTCCATCACTATCAAAGTATGGGAATTGAATTGTTTCTAATTCATACCCACCTTCTGTCATTG -ATAATGTAGGGTTAATTTTAGAACCATCTTCTGTTTCTAGTTTTAAGTTCCATTTCTTACCTTCTTCCCA -ACGTTGACCCATTGTGCCATTAGGTACCACTAAACTGTCACTGATTGTGTCGTGGATTACCGGTTTCCAT -TCACTTTGCTCTGTCGTTTGTCCTAAGTCACTTGCTCTTAAAAATCGACCTGCTTTATATCCATTTTCAT -CTTCATCTAACATGATGATAAATGGCATGTCTGTATATTGTTTCGCATAATTAATAAAGCGTTCATTCGG -TTGATTAACATAATGCTCTTGTAAAATAACATGTGTCATTGCTTGAGCAATTGCAGCATCTGAACCAGGA -TTCGGTGCTAACCAGTTATCAGCAAACTTCACATTTTCTGCATAATCAGGTGCTACTGAAATAACTTTTG -TTCCTTTGTAGCGAACTTCTGTCATAAAATGTGCGTCTGGCGTACGCGTTAGTGGTACATTAGACCCCCA -CATAATAATGTATGATGCGTTATACCAGTCACTTGATTCAGGTACGTCTGTTTGTTCTCCCCAAATTTGT -GGAGAGGCCGGTGGTAAATCTGCATACCAGTCATAAAAACTAAGCATTTCACCACCAAGTAAATTGATGA -ATCGAGCACCTGCTGCATAGCTAATCATAGACATCGCTGGAATCGGTGTGAATCCGGCAATTCTGTCAGG -ACCATATTTTTTAATTGTATATAGTAATTGTGCTGCGATAATATCCGTAACATCTTTCCAATTTGAACGC -ACATGTCCACCCATACCACGGGCTTGCTTATACTGTTTGGCTTTGTCTTCATTTTCAACAATAGAAGCCC -ATGCAGCCACACGATTGCCATTGTTTTCTTCTAATGCTTCAGTCCATAAATCCCAAAGTTTCCCACGAAT -ATATGGATATTTAATTCGAAGTGGGCTGTATTCATACCAAGAGAATGATGCACCACGAGGACAGCCTCTC -GGTTCATATTCAGGCATATCCGGACCACAACTTGGATAGTCAGTTTGTTGATTTTCCCAGGTAATCACAC -CATTTTTCACAAAGACTTTCCAAGAACATGATCCAGTACAGTTAACACCATGTGTTGTTCTTACTTCTTT -ATCATGACTCCAACGTTCTCTGTACATTTTTTCCCATTCTCTACTTTTACTTTCTAGGATCGACCAATTC -CCATTAAATTTTTCTGTTGGCTTAAAGAAATTCAATCCAAATTTTCCCATATTTATATCCTCCTACGTAT -AAAAATACGATGTGTAGATGTCGTGTTTTTAAATACTAAAAATGCCCAAGACTATTGCTTTAATTAGATT -GTACATTTTTTCACAAATATAAAATATTAGGGAATTACCTAATTACTTAAGGAATTTCCCTATCAATAAC -GGGATTTCATTGAAATAATACACAATCATGTGTGGTCATGCTTATTGCCAATCTAAATCGTTCAAATTTG -GCACAACGACAAATAAGGCTTCAACACGAATATATTCTCTCGGTTGAAACCTTACTTATTCATTTATTTT -TATAAATTAGTGACATAACACTGTATTAGTATCTGCACGATCGGTTGAAATATATGTTACATTTTCTTGC -TGCTTAATAAACGTATCATAGTAATCATATTGCGACGAATGATATGTACCATTCGATGTATCATTTGGGT -TTAGCAAACAGCCATAACCTTCGTCATATAAATGTTCACAGAGCATAAGAGCGTCAGGTTTAGAACCACT -TACTACATAAAATTGCTGAGTCGGATTAGAAGTTGTTGAGACATTTTCTGTATAACCCACTACTTCGCCT -ATAATACATATACCTGGTTTTGCCTCAATTGCGTAATGCTCCAGTTTCCCAACAATATTACTTAAGCGCC -CTTTAACGACGAATTCATTAAAACAAGATGCTTGAAAAACAATCGCTATCGGATAATCAATATCTGTGTA -CTGTTGTATCTGGGCGATAATTTTCTCTAAACGTTTAACTCCCATATATATCGCCAACGTACCACCATTT -ACTAAAGCGTTGACATCTACTTCATTTTCTTCTGAATCTTTAAAATACCCCGTCGAAAATGTAACACTTT -TAGCAACAGCACGCATCGTTAATCCTGTTTGCATCGTAGCAACTGCAGCACTCGCAGATGTCACACCAGG -TACAATTTCAAACGCAATATTAAAGTTGTTTAGTGTGTCAACTTCTTCTTGAACTCGTCCAAATATTGCT -GGGTCGCCACCTTTAAGCCTCACAACCTTGTTATATCGACGTGCTGCTTCCACGATACATTCATTTATTT -TTTCTTGCTGAATGTGTTTTGCATATGGCTTTTTACCAACATCTATAATCTCAGTTGTCGACTTCGAATA -TTGTAAAATCAACGGATTCACTAATCGATCATATAGTATAACATCCGCTTCGCGTATTAAACGCTCAGCC -TTTTTAGTCAAATAATTCGGATTACCTGGGCCCGCACCTATCAAGTAAACCTTGCCGTAACCATTTACAG -ACATATATATACGTTCCCGTCTGTAACTTCTACCTCATATACATCTACACAACCTTCATCAGGTTCTTGT -ACAATCCCAGTATTTAAATCAATCTTTTGATCATGGAGTGGACAGAATACATATTCACCACTCACTGTTC -CCTCTGACAATGGCCCTTGTTTATGCGGACAAATATTGTGAATCGCGTGAATTGTACCACTTTCAGTTAA -AAACAATCCTATTTCTTTGCCTTTGACAATAACCTTTTTACCAATTAAGGGTGTCAATTCATCTAAAGTT -GTCACTTTGATTTTCTCTTTCGTTTCCATGTATTACACCTTCTCCACTTCAAAGATTTTTCGAGCTTGCG -CATTACTAGTGATTGCTTCCCAAGGTTCAGCTTCGACTGCTTTTTTAGCATCCATAATACGTTCAAATAA -TTCATTCTGTCTTTCTGGATCAAGCAACACTTCTTTAACATTTTCAAACCCTAGTCTTCTTAACCACGGT -GCTGTTCTTTCAGCATAAATACCTGTCTCGCGATAATATTGCATCAAAGCACCACATAATTTGATTACTT -CATCTTCCGTTTCTACAGTTGTTAAAAATTCAGCTTTTTCAACTTCTGTACCACCATTACCACCGATATA -GATTTGGAATCCATTTTCAACTGAGATAATACCAAAATCTTTAACACCTGATTCAACACAACTTCTTGGG -CAGCCTGATACACCCATTTTGAATTTATGAGGTGTATCGATGTATTCAAATGTTTTTTCTAAACGAATGC -CAAGTCGTGTCGTGTATTGCGTACCAAATCGACAAAACTCTTTACCAACACAGCTTTTAACTGAGCGTGT -TTTCTTACCATAAGCTGATGCTGAACGCATACCTAGGTCTTCCCATATATTTGGTAATTCTTCTTTTTTA -ACTCCATACAAACCAACACGTTGCGAACCTGTCACTTTAACTAGTGGCACATGATATTTCTTAGCCACTT -CTCCTAGACGAATCAGTTGGTCTGCATCTGTAACACCCCCACGCATTTGAGGTATAACAGAAAATGTACC -ATCATTTTGAATATTCGCATGGTAACGTTCGTTAGCAAATCTTGATTCTCTTTCATCTTCATGATCATGT -GGATAAACCATATTCAAATAATAGTTAATCGCAGGTCGACATTTTGGACATCCACCTTTGTTTTTAAAGT -TTAAAACATGTCGAACTTCTTTAGATGTTTTTAAACCTTTCGCTCGTATTTGCGTAACAATTTGATCACG -TGTCAAATCAGTACAACCACATATACCTGCAGGTTTAGCAGCAACAAAGTCATCGCCCAACGTGTGCTGT -AAGATTTGAGCAATTTGCGGTTTACATTTACCACATGAATTACCTGCTTTCGTTTTAGCCGTAACTTCTT -CAACTGTAGTAAAACCATTTTCCGTAATTGCATTTACTATCGTGCCTTTATCGACACCATTACAGCCACA -AATTGTTTCATCATCAGCCATATCAGCAATTGATAGCGATGCCTCTTCTCCACCTTTAGTAAGCAATGAT -ACCAGTGTGTAGTCTTCAGTAGATTCACCTTTTTTCATCATGTTATAAAAGCGTGAACCATCATCGATAT -CACCATATAGTACTGCACCAACTACATTACCGTCTTTTAAAAAGATTTTTTTATAGTTATTATCAACGCT -ATTAAATATTTCAATACCTTTAATTTCAGCATTTTCAACAATTTGACCAGCACTATATAGGTCACACCCA -GAAACTTTTAATGACGTAAATGTTGTTGATCCCTTGTATCCGTTCGTTTCTTTATTTGTTAAATGATCAG -CTAATACTTTACCTTGTTCATATAGTGGTGCAACGAGTCCATAAACTTTGCCGTTATGTTCTGCACATTC -ACCAACTGCATATACATTACTATCACTTGTTTGCATCACATCATTGACAACAATACCACGATTAACATCT -AGACCTGATTCTTTGGCTACTTCTGTGTATGGTCGAATACCTACTGCCATAACAACTAAGTCTGTCGGAA -TCTCGCGTCCATCAGCCAATTTAACACCTTCAACATCATCTTCTCCTAAGATTTCAGTTGTGTTGGCTTG -CATTTCAAACTTCATACCTTGCTTTTCTAGATCTGCTTTAAGCATATTTCCAGCTTTACGGTCTAGCTGC -ATTTCCATCAACCATTCAGCTAAATGTAACACCGTTACTTCCATACCTTGATCTAATAAACCACGTGCAC -ACTCTAAACCTAGTAAGCCTCCACCAATTACAATTGCTTTCTTTTTAGTCTTAGCAATGTTCATCATTTG -TTCAGTATCATCAATTGTTCTCCAGCCAATAACACTTGGTAATGTCGAACCTGGCACTGGAATGACAAAT -GCTTTAGATCCTGTCGCAAATATTAATTTATCGTATGCTACTTCAATACCATTTGCAGTCGTTACATTTT -GATTTGCTCTATCCACGTCAACTACTGGATCATTGGTAATTAACTTAATATCGTGTTCTTCATACCACTC -ATATGGATTCATAATTGTTTCTTCAACTGTCATTTTATTTTGTAAAATATTTGAAAGCATGATGCGGTTA -TAGTTTGGATAAGGTTCTTTACCAATTACCGTAATATCATATAAATCATTGGCACGCTCTAATATTTCTT -CGATTGTTCGAATGCCCGCCATACCGTTACCAATCATTACTAGTTTTTGCTTTGCCATAAAATATGCCCC -TTTACTACATAATATTTATTTCAAAAAAAGGTGTTAACTTTTCGTTAGTGCTTTTATGTTTTCATTGGAG -TCATTAAGACTTTCTAATCTATCGTTAATAATTTGTTTTAAAATCGGGTCGAAGTTAATTGAAGGTGTGA -TGTGTATATCTGTATTAATAACCATGTCATTCATTTGCTGCTTCACTTTGTTAACAAGTCTTCCGTCATA -TAAAAATAAAGGTACGACAATTAATTTTTGATACTGTCTCGCAATATCTTCTAAATCATGTATAAAACTA -ATCTCACCATATAGCGTTCTCGCATAAGTAGGTTTATTAATCTGCAAATGTTGAACGCATGTCTGTAACT -CTTCATGTGCTTTTGTAAACTTGCCATTAATGTTGCCATGCGCAACAACGACAACACCGACTTGTTGCAT -TTCATCCACGCGCACCTCATCAATACGTTGCATGATTATTTCTGTCATTAAAGGATGTGTGCCAAGTGGC -TCGCTTACTTCTACCTTTATGTCTGGATACCGTCGTTTCATTTCATGAACGATATTCGGTATATCCTTGA -GATAGTGCATGGCACTAAAGAGAAGCAAAGGTACAATCTTAAGCTGTTTAACGCCACTTTGAATCAACGT -TGTCATTACTGTTTCTAAATCCTGATGCTCACTTTCTAAAAATGCAATATGGTAATGATGTATGTCATCT -TTTACTAATTCAGATATAAACGCTTCTAACGCTTGATTCTGCCGACCGCGCCTCATGCCATGTGCAACAA -TGATATTCCCATTCACATTTACCAACCCTTTCACACGTATTGTATACCAAATCATTTCGTTTTTGTGAAA -AGAATCACATTATAATGTAAAATCAGGGAATTCCCTGATGCCTGTAGTCATGCATATTCCTTATAAATTT -TCCCTTTTTGTTAAATCAAAAAAGCGACCATATATGAATCCCTACTCAACATTTATTTGAGCAAGCATCA -ATATATCGGTCGCTTGTAGTGTATATTATTATCTTAAAATGGTGGTTGGCCTAATATTGTTTCGTCAAAG -CGCTCGGGTATCAATACTTTGCGCATGATCACACCTAAATCGCCATCATCATTTTCATGTTCGCTGTATA -TTTCATAACCTCTTTTTTCATAAATTTTAAGTAACCACGGATGCAATCTTGCAGATGTACCTAAAGTTAC -AGCAGCTGCCTTTAATGTATCTCGTAAAAATGTTTCTTCAACATAAGTAAGTAATTGACTACCATAGCCT -TTCCCTTCATACTCAGGATTTGTCGCAAACCACCAGACAAAAGGATAGCCCGAAATGCTTTTCACACTTC -CCCAAGGATATCTAACCGTAATCGTAGATATAATTTCATCATCAATTGTCATGACAAATGTAGTATTTTT -ATCTATATTTTCTTTCACAGCATCTAAATTTGCATTTACCGAAGGCCAGTCTATGCCAAGTTCTCTCAAC -GGTGTAAACGCCTCATGCATTAATTGATGTAGTGCTACTGCATCATTTTCATTTGCGAGTCGAATCGTCG -TATTTGCCATTTGAATCCACACACTTTCTGTTTATTTTAAATGAATCATCTTTAATTTTAGCTATGCTTA -TCTTTTATAGCGTACCAACATTTAGCACATGTGTCAGATAACATGCCTCATTGATATAAGATAAGTATGT -GATCATCAATTATTTCATTATTGAAAGCAAAGTAAAAGTCTAGGACATGAATTAATGATATGCACGCTTC -AAAGCTTTCATTTTTCAATGTCTACTTTGAAGCGTGCAGTTCATAATGTCCTAGACTCTACAATGTTATA -TTGGCAGTAGCTGACTGCGTGGCCCCAACATAGAGAATTTCAAAAAGAAATTCTACAGACAATGCAAGTT -GGCGGGGGCCCCAACACAGAAGCTGACGGCAGGCCAGCTTACATTAATGTGCAAGTTGGGGAACGATGCC -CCCAAAAAGGATGATTCTAAATTCATTGTTGTCACAACATCTTCAATTATTACTTCATTACTGTTGCTCT -AAACGATTGCGTTTACCATTTAAAAATGCATAAACAAGTCCTACAAAAATACCGCCACCTACAAAGTTAC -CAAGGAATGCAAAAACGATATTTTTTAATACATGTAACCAAGATACAGCATCAAGGTTGAAGAACACCAT -ACCTGCATATAAACCAGCATTGAATACAACGTGCTCATATCCCATGTATACAAAGACTATAACACCACAA -GCAATGAAGAATGCTTTTGTCAATCCGCCTTTGAATTGCATAGAAATAAAAATACCGATATTAATAAAGA -AGTTACAGAAAATACCTTTTGTAAAAATATTCAACCAAGTCGAATCGACTGTCTTTTTCTGAACTAAGGC -AGTTAAGGCTTGTGTCATTTCTGGTGTCATAACATGTGCATATTTCATTAAGAAGAATAATACAAAACCA -CCTAAAATATTTCCAAGGAAACAATATAATAAAATCCACATCATCTTATTAAGAGAAACAACTTTATAAT -ACCAGCCAACTGTAAAATACATAAAATTACTTGTTAATAATTCAGAATTCGTTAGTACAACCAAGACCAA -TCCTAAGCTGAAAGCAATTGCTCCCATTAAATTAATGAGACCATCAACATGTGTACTTGCGAATTGTGTT -TTAATACCAAACATAAAAACAGTAACAATGGACAATAAGAAACCTGCCATCATAGATTTAAGCATGTATC -GTCCTGGTGTTTGCTGTACCATCACTTGTTTCATTTGAACAGATGATGATATTGAGTCTACGATTGCTTT -AGTTGAATACGTATCTTCAACTGTTTTATTATTTTTTATCACAGCACTTCCCCCATTTACTATTATCAAA -TAAATTTTACCTATTAATTATATTAGTATTTAGATGTAATTCATAGATTAAAATTCAGAAAATTCTTTTT -ACCAATTCAAAACTAATATTTACTCATAAAAATAGCGAGATAGATATCGCGACATAAAACAATTGGTATC -ATTTTAATTGCGCTCATCTCGCTTTATGTAAGTATTACTTATTCTTTTTTAAATTTGAAAAGTAATGTAA -ACCATATGCAAATATACCGTAGCCTACGACTGTACGCAAAATAAATCTAACAACTTTATTTGGTACACAT -TTCGAAGTAACAGTAATTGAAGATAAAAGCGTAGTAAAAATATATAATATTAATACTTTAATGTAACGTT -GTGCCATCGAATCACCCTTCATTCAATTAATAATATTACGTTATTATTATAAACTGAATGGCATATAAAA -TTTTTACATATTTTCAACAACTTTATTTCAATAAAGCATCAAGTTGATCCAATGTTTGATTCATCCCTTG -CTCAACACCCATGTTTATGACTTGTTGAGCGGCTTCTTTAGTTGGAAATACCGATGTTGATGTCACTGTC -GTTTTCGTTGTATTGAACTCGGAAAATGACAAAGTAATCTTCATGCTTGGCATTTTTGTATCTTTTGCAC -CTTGAGGTGTCGCAAACGAGTCAATATATTCAATTAAATATGGACGCTTAACCGTTTTATATTCTGCTAA -TGTATAGCTTGTCATTGTGGGTGTTTTAATCGCGTAAAATGCATCACCGCCTGAAACAGCATTAAAGCGA -AACACTTTGGTACTAGCGTCTTTTGGATGAAACCATTTTTCAAATAATGCCTTTGTCGTATAGGCATCAA -ACACCTTTTCAATCGGTGCTTCTATCGTTCTTGAAAAAATAATTTTATTATCTTCAACTTTAATCGTCAT -CTTCCCACTCCCTATCTTTTATATTTACTCATCTTAACATGCATTGAGTGACATATGTTACCAAATCATT -TGTTATAAACTATAGTAATATTAATCATTCCCTCTGTTGAAATTGATAACTACGAAATAAAAAACACACT -CTATTCAGCTATTAACAGTTGAGTAGAGTGTGCAAACCTGTTGAATTAATGCGCTAACATTTCTTCTTTG -ATTTGGTCTTTATTTAATTTTGAAGGATAATATGTTGGCCAGTTATCCATTTCTTTTAATAACGCGTCAT -TATCATTACCCATAAAGATATGGAAGTGTTCTGCCTTTTTAGGTGCAATGTTGTGATCGCTAAATTGGAT -GAATTTCGGTAAGTCTTTATCATTACCATCGACCAATTTAAACATAAATCTCACGCCACGGTTACCTTTA -GGATATTTCAATGTTTTCTTACCATTGTATTCATATTTACCAGTGTGTTTCGTACCATCTTTAGTAAATG -TAATTTCATTTCCTTTTATATCAATGTTAGTAATATCAGTTTTATATCCTTTGTCATAATAAGCTTTTAA -ATCTTTAGCAGATTTCTTCGGATCATTTTCAGCTTTATGTTCCATCACTTCATCAAGCGTACCGTCTTTT -AAGTAAGGGTAAACAGATTGCCATTCACCAGCATAATCGCTTAATTCACGGTCTTTAACTTGCTCATCTT -TAAAATACCCATCAGAAATTGCTTTGTCGTGTTTACTTTCAGCTTTGTCGTCTTTCACTTTAACACCACT -GTCTAAAGCTTTACCGATATTTTCAATATTCGATTTCATTAATGATTGATAGGTAATATTATCTTTTTTC -TGTTGTTCTTTATTTAAAGACTCCATGTTGTAGAATTTTAAAGGCTTCGCATCTGTTTCTTTACGAATTG -TTTCAGTCACTTTATTCGCAACATTATCTTCGTAAAGAATATATTTAGCATTGCTATCTCTAATTTCTTT -AACAATTTTAGTCAATTCTTTTTGTGATGGATCTTCAGCATTCATGTTTTGAATACCTTTTTGAACAAAA -CCATAACGATCAGCTAAGTATCCAATTGATTCATGTGAAATGAATACTGCATTACCTTGCTTATCTTTAG -TAACTTGCTTCATATCGTTATCAATTTTCTTAAGATCGTCGTTTAATTTTTTGTAGTTTTTCTCATAGTC -ATCTTTATGTTTTGGATCTTTCTTCACTAATTCATCTTTAATTTCTTTAGCGAAAGTTTGGTTAATTTTA -GGATCTAACCATACGTGTGGATCATATCCGCCATGATGATGATGTTCTTCTTTCCCATGATCATGTCCCT -CATGTTCATGCTCTTCACCATGTTCGTGTTGATCAGTTAAAAGCTTTGCTTTATCTAATTTATCTTCTAA -AGACAGTTTTTTATCTTTATCTTTAATAGTAGATGCAACTTTCTTAGCAACCGGATCTAAATTATCCCCT -GTATACATAAACAAGTCTGACTTGCTTGCACTTAATATATCTTTTTGTGTTGGTTCATAGCTATGTAAAT -CTGTCCCTGCTGGATAGATTGATGATACCTTCACGTGTTTTCCACCAATTTGCTCTGCAAATGATTGCAA -TGGATAAACTGTCGTTTTAATTGTTACCTTGCCATCTTTATCTTTTCCATCATCATTCCCACATGCGGCT -AATGATAAAGTTACGGCTGGTACAAGAAGTAACATACCTAATTTCTTTTTCATAGTCACCCTCCTAAATA -GTAATCTTTACGTTTTAAAATTATATACTCATGCTACTTAAAATACAAGCACTGTTTTTATAAATAATAT -AAAGTCGAATCATACTTTAGGTATTTACCACTTTTCGTTTTATCTAATACATGACTATTGTACAAATATG -ATACAGAAAACTTTATAGTATTTACGAACGTCGTAATATAAGAAAAAAGACAATCTCTATCATATTGCTA -ATAGAAATTGCCTTTCATATTGTCCTAAAATAACTTACCCTATTTTTATAGTGTGACTTTTAGATTTAAT -AATGGTATTTACATGATGCTATTTTTATATGATTGTCATCTACTGTATAAACCAATCTATGTTCGTGATT -GATACGTCTACTATAATACCCAGTCAGATTCGATTTTAACTTTTCAGGCTTACCTATACCTTTCAACGCA -CCATTTCTGTCAATACTTTTAATTAACTCATTAATCTTCTTCACCATTTTTTTATCGTTCTGCTGAAAAT -ACTTATAATCTTCAAAGGCTTGAGGCGAAAACGTAATATTTAACCTAACCATTATACATCTATATCTTTC -GTTACAGTTTTCCCACGTTCTAGATCTGCAATTGATTGAGCTAAGTGTTCAGCATTATTTGGATTCTGTT -GGAGGTAAAGTGTTTCCATCATGGAGTTATAATCTGATTCTGACATGATTACTACGTTTTTATCATCAGT -AGATGTTACAGTTACTATATCACTATCATCATTTACTTTTGTCATAAGTGCCTTTAAATTCTGTCGAGCG -TATGAATAATTTTTAATAATCATATTTATCGCCTCCTTTTAACACACCCCAATTGTACAAATATTTGTAC -AATAAAACAAGAGACACAGAAAAAACCACTAATCAAGATTTTGCACGGGGAAGAATCAATACCTATCCTG -TACTGATTCCCTACTAAACAATGTTTACATGATAATTTCCACCTATTTAGACTTCATACATTAAAAAGAC -AATCTCTATCATATTGCTAATAGAAATTGCCTTTCATATTGTCCTAATAAATTGGTATCACTTACTTATC -TCAACAATTAAGACTATTTGATTTTATCTTTTAATAATTTTTCATAACTTTCATAATCATATGGATCTTC -AACTTTCTCGCCATTAATAAATGCAGTTGGTGTCGTTTTTATATGATTATCTTTAGCTATTTTTTTATCT -TTCTCTGCAGCTTTCCAAGACTTGCTATCTTTTGTCTTGTAATCTTTTATAATTTTATTTTCCGTCTCTT -TATCTAAATGCAGTTGTTTAATATGTTTATCTAATAGTTCTTTTGTTAACCATTCTTTATTTTCATCTTG -CTGGGCAGCAAATAATTGCTTTTGAAAATCTAAAAATGATTTAGGTGCATACATCAATACTGCATGACTC -GCACGTGAACCAACAATTGAGTCTTTACCTAAGAAAGCTAAATTGACAAATTGGTATTCCACTTTGTGAT -TATCTATATAATTTTTACGAAACTTTGGCATGACTTTTTCATCTAATTCTTTACAATAAGGACATTTATA -GTCGCCATATATGACAACTAATGGTTTGCCGTTTTTCGAAGATGTCGTTGCTGATTCTTTTTTACCGCAA -GCTGTTAAAATTAACATGCTCACTATAAATAATGTTAGTAATTTTTTAGTCATAATAACTCCTGTTCATA -TCTAGTTCGTCATATTTTCTTCATGATAATCCGCATCATGTTGTTGATAATATCGTCTCGAATCAAAATC -TTGCTTATATGATACACGTTTATCACTAAAATCATATGCATAATAATGCACTTCATCATCATTACTCAAA -GGTTTATAAGCTAAAATGATAATTTTATCCTTATCATAGACATAAATATTAGCATCTTTGCGTTCAAAAT -GATCAACACGATCACCGTTGCCTTTTTTGGCAAGTTGTTCTTGTTTTTGATTTTGAATTTTAACTGCTTC -ATCTATTTCTTTCACATATTTATCATTACCACATCCTGATATAAAGACTAGTAATAATAATACCGTCGCC -ACAAATCGCTTCAATGCTCCCACTCCTACTATCAACTTCCAACTAACTTTCAATATAATTAATACTATAC -ACCGTCAAACATCAATGCGCTACAACTACTACCAATACATTTAATATAAATATCCAAAGAAATAACAGTT -ATGTATAGTCAAAGAAAAATATATTTCATTTTCTATGTGTATTTGCAATCAGTTTTTGATAAAATAAAAA -AATAGCATTATATATAAATTCAAAAATTACAGTTCAATTCAGAGAGGGATGGGATAAAATGAACTTTGTA -ACGTTGACTTCGGATGAGTTCAATGCGTTTACAACAAAGCATTTTTCACATTACACACAATCAGCTATTC -ATTACAATCATAGAGTTGATTTAAAAGGCGATGTGCATCTTGTAGGGGTTAAAGATGACAATGGTCAAGT -GATTGCAGGATGCTTATTGACAGAAGCACGCACACTTAAATTTTTCAAATATTTTTATACTCATCGCGGG -CCAGTGATGGATTATACAAATCAATCATTAGTAGCATTTTTCTTTAAAGCATTAACGTCATATTTAAAGA -AACAAAATTGTTTATATGTCCTTGTAGATCCATATTTAATTGAAAATTTACGCAATGCAGACGGTGAAAT -TGTTAAGTCTTATGACAACCGAGCATTTGTTAGAACAATGGACACATTAGGCTATAAGCATCAAGGCTTT -CCAGTCGGTTATGATTCAATGAGTCAAATCCGTTGGTTATCTGTATTAGATTTAAAGGATAAAACAGAAG -ACCAGTTATTAAAAGAAATGGATTATCAAACGAGACGTAATATTAAAAAAACATATGATATTGGTGTCAA -AACTAAAACGTTAACGATTGATGAAACGCAAACCTTTTTCGACTTATTCCATATGGCCGAAGAAAAGCAT -GGTTTCAAATTCCGTGAGTTACCATACTTTGAAGAAATGCAAAAGTTATACGATGACCACGCCATGTTAA -AGTTGGCGTATATTGATTTAAACGAGTATTTAAAAACGTTACAATTAAAGCAACAACAATTAACAGCTGA -ACTCTCAGGTGTTGAAGAGGCATTGGAAGAAAGTCCTAATTCAAAGAAAAATAAAACGAAACGCACACAG -CTAGAACAACAGCTGAATAGCAATAAGCGTAAAATCGATAATACAATAGAACAAATTGAACAAGATGGTG -CAGTGTTAAACTTAGCTTCTGCTTTGTTTATCTACAATGAACATGAAGTTTATTACTTATCTAGTGGTTC -AAATCCTAAATATAATGCTTATATGGGTGCCTACCATTTGCAGTGGGAAATGATTAAGTTTGCTAAAGCG -CATCATATTGATCGCTATAATTTTTATGGCATTACTGGTGATTTTTCAGAGTCAGCAGAAGACTATGGCG -TACAACAATTCAAAAAAGGATTTAACGCACACGTAGAAGAATATATTGGTGATTTTATTAAACCAATCAA -ACCTATACTTTACAAATTACAAACATACTTAAAACATAAACGCCGTTAACAGTTTATGCTGTAACATCTA -GAATATAACAAAGAACCACGCATCATGTATATGGCATCATCGCCATATACATGATACGTGGTTCTATTTG -TTTATTCTTCATTAATAACATTTAAAAAGCGTTTTAGTTCTTCAGTTTTTGGATTGTTAAAAATCTCTTC -AGGTGCCCCTTGTTCTCCAATTACACCTTCATGAATGAATACAATGTTATTAGATACTTCTCTAGCAAAA -CGCATTTCATGTGTCACAATGACCATTGTCATGCCCTCATTCGCTAAATCTTTAATCACCTTTAACACAT -CATTCACGAGTTCAGGATCAAGCGCTGATGTTGGTTCATCAAACAACATCACTTTAGGATTCATAGCTAA -TGCTCTCGCAATGGCAACACGTTGCTGTTGACCACCTGATAATGCATGAGGTCGTTGATCTTTGACATGT -GTCAAACCAACTTTCTCAAGTAATTCTAGAGATTTCTCACGAGCTTCAGCCTTTTTCAACTTTTTAACTG -TAATAAGACCTTCCATTACATTTTCTAATGCCGTCTTATGCGGAAAAAGATTATAGCTTTGAAATACCAT -ACCAGATTGTTTACGAACTTCTATTTGTGATTTTTTATCTTTAGATGTATATGTTTTGCCGTTAACAAAT -ACTGTACCTTCAGTTGGAATTTCTAACGCATTAATCATTCGTAACAACGTTGTTTTACCTGACCCAGATC -GGCCAATTAAGGTTACAACCTCACCTTTGCCAACAGATAAATCAATACCTTTGATGACTTCAACATCATT -AAATGATTTATGGATATTGTTCAATTGAATCATGAGCGATACCCTCTTTCAATATAAGATTCGTAGATAC -CTTGGATTATTGAAATAATAAAGCATACCACCCAGTACATTAGCGCAACTAACACATAAATTGTTAAATA -TTCATATGTTGTAGACGCAACTTCTTGAGCTTTTCTAAACATTTCTGCTACTAAAATAAATCCTAGTAAT -GATGTATCTTTGATTAAACTTAAAAATGTATTACCTAGTGCAGGTATAGATACTCGAATTGCCTGCGGTA -AGATGATGCGTTGTATCGTTTGACGATATGTCATACCAATAGAATATGCAGCTTCCGTTTGTCCTTTTGG -TATAGAAATAATACCGCCGCGAATAATTTCTGAAGCATACGCACCTACATTTAATGACAAGCCAATAATG -GCAGCGACCACAGGCGCCAATGTCCATTGATTATCTGCATCATTGGTTAATAATCTACCTAATTCTGGAA -TACCATAAAAGATGATAAATAATTGTACTATCATAGGTGTCCCACGAATAATAGATACATAGACACGTGC -AATACTTCTTAAAACTTTACTCGTTGAAATGCGCATCAATGCTGTAAATAATGCAATGATTAACCCTAAT -ACAAATGTTACGAGGGTAATCGGAATTGAATATTTCACCAAACCTTCGAGCATAGGCCCAAAAGCTTGTT -TTGCAGCATCAAGTGCATGTAGTTGTTCACTATTTAGATTTAGAAACATCTTGACCAAACCATTTCTTAC -CTATTTTAGCTAATTCACCGTTTTCCTCGATTTTTTTCAAGCCATCATTGAATTTTTGAACTGTTTCGTC -ATCCACTTTTTTAGAAAATGCAAATGCAGATTTACTTTGTTCAGCGTTACCTTTGATTGCCTTGATCTTA -GCATTAGGTTTTTGTTTTTTATAATCTAAGTATGACAGACTGTCATTAAATGTACCATCAACACGCTTAG -ACAATAATAAATCCATTGATTGGTTAAAGCCATCAACTTTTGTAATATCAGCACCTTTATCCTTAGCTAA -TTTACCATAATTAGATGTGAATGTTTGTGCTAACTTCTTACCTTTAACATCATTAAAATCTTTAATATCT -TTTTCATTTTCACGAATAACTAAAACAGCACTTGAGAATGTGTAAGGCTTAGAAAATTTATATTTCTTTT -CTCTATCAGGATTAATACCCACTTGGTTCGCGATTACATCAAAACGCCCTGCGTCTAAACCTGCAAACAT -AGAGTCCCAAGAAGTTTCGTTAAATTTAAGCTTTAATCCTTCTGCTTTAGCCACTGCTTTAATAACATCG -ATATCATAACCAGTTAATTTGCCATCTTTATCATGGAAACTAAATGGTGCATAAGTACCCTCAGTACCAA -CATTAATTGTCTTACTATCTTTACTAGCTTCCTTGTCTTTAGACGAATTGTTCCCACATGCAGCTAATAT -GAAAACGAAAGCTATCACCACAAATAAAAGTCTTTTCATAGAATATATCTCCTTATTCTTATTATTCTAA -TCGGAATAAAAATATTTTAATCTGAATCGCCAGATAAGTCAATATGTTGAACTTTTGCTAAAAAGCGTTA -TATAGCTAGCAACTTATATTTATTGATGTGAATCAACTTCTTTTTTCTTTCCTTGTAACATAAATGAACA -AAAGAAACTAATCACTGTAATCAATAGCGCAAATAAAAATCCAGCGTGATAACCATGTAACATCGTATCA -ATTTTAATTTGATTCATCATCTCAATTTTGTTCATGCCATTATAGTCTGACATAGTTGGAGAAAAGTTTT -TACTTGCATGAGATAAAATAGTAATTAATGCAGCTGTTCCGATAGAACCAGCAATTTGTTGTACTGTGTT -TGTCATAGATGAACCGTGTGCATTCATTTCTGGCTTTAATTGATTCATCGTATGTGTCATTACTGGAATT -AATCCTAACGCGATACCAACCATTCGAATCGCATAAACTGTTGCCAACATGATTGTTGATGTTTGTTCAT -CCATTACAACAAAATAAGCCGTAGTAATAACAACAATCGCCATACCTACTAAAGCAAGCTTTCTAGGACC -AAACTTTTCATATAAAGCACCCGAAGTCATCGACATAAATGCCATAACAATTGCTCCTGGTAATAAAGTT -AACCCAGAATCTAAAGCTGAACGATGCAATAAATTTTGCACAAAGATAGGTAAAATCGTTTCCGAACCAA -TCATCGATACCATTGTGACACCCATAATAATGATACCAACTGTAAATTGTTTATTTTTAAATACTGCAAA -ATTTAATAAAGGTGTTGATAGCCGATATTGACGTAATACAAATAATGCGACTAAAACAATACCACCAATC -ATAGATACTAATACGATAGGATTATCAAATCCTTTTTCTGAAATTGAACTCGTTCCATACAATAACCCGC -CGAAACCTAGTACAGAAAAAATGACAGAAATAAAATCAATAGGTACTTTAATTGTAGTTCCAACATTTTT -TATCGTTTTAAATCCAATTAAAAATGTCACAGCTGCAATTGGAGCGACAACATGGAAAAGCGATCTCCAG -TTAAAATATTCAACAAGATAACCTGAAAGTGTAGGTCCAATAGCTGGTGCTAAACCAATTACCAAACCAA -ATATCCCCATATATTTACCGCGTTCATGCGGTTGGAAAACATCCAAAATCGTTGTCATCATCAATGGCAT -CATAATACCTGCACCTAACGCCTGAATAATTCTAGCAACTAATAATGTTGCAAAGTGCGGACTCAAACCG -CCGAGTAATGTACCTAAGAAAAAGATAGAAATACCCACTAAAAACACTTGTCTTGTTGTATAACGTTGTA -TAACAAGTGCGGACAAAGGAATAACAATCCCATTAGTCAATAAAAAAGCCGTTGTCAGCCATTGAACTTG -TGTATATGAAATTTCAAAATCTTTCATAATACTTGGTAAAGCCGTCACTAATAGTGTTTCATTTAATAAT -CCAAAAAATCCACCCATCAGCATAGTAATAATCATCGTTAATTTTTGTTTCTTCGACATTTAAAGCTTCC -CCCTCACCATCTAAAAAACGACACACATTTTTAGATATCCGGTAATTATACCCATTTTCAAAAAAAATAG -CACGACTTTATTACAATTTCTTTAAAACGTAATCATTACTATTTACATATGAGTAGTTATCGGTCATAAT -ATATTTACAAGGAGGGATAGAGATGAAATTAGATTTACAGACTGCTCGTCGTAATTTAAATAGCCCTAAC -ATTAAAACAAGAAAGCGTGCTTTAAAGATTATTAAGCAACACAAAAGAGCGAAATAATTGTTTTAATTTG -ACTATATTGTATGTCTAACTATATTTTCGAGTATCCCTAGCTCGTTAATATAAACTCTATACTTAACTAT -TTCCTTACATTACTTCACATATTTAAGAGCTGCATATACACTCACTCCTTGTGTACATGCAGCTCTTTTT -TATAAGTAGTATTTATCTATAACTTCTAAATCATCCGTTAATTCATAAACAAGCGGTGCACCTGTTTTAA -TTTCATAATTAATGATATCTTCATCTGACACATCTTCAAGATATTTAATCAATGCGCGAATTGAATTTCC -GTGTGCAGAAACTAATACCGTTTGACCATCTAGCAAATATTGTGAAATATGATCTGTCCAAAATGGTATC -ACTCGAACTAAAGTATCTTTCAGACTTTCGGAATAAGGCATCATACGTTTATCTAAATGATTATATCGAC -GATCAGCTAAGTAAGCTTCACGTTGTTCTTCGGTTTCAGCAGGTGGTTTCACATCATAAGAACGACGCCA -AATATGTACTTGTTCCTCTCCAAATTCTTTTCTAGCATCATCTTTATTTAAGCCTTGCAATCCACCATAG -TGACGCTCATTTAAACGCCAGCTTTTATATACAGGAATCCATTGTTGTTTAGATTCAGTTAAAATATAAT -GCGTTGTATCTAAAGCACGTGTTAATAACGATGTAAAAGCTACATCGATGTCAATGTTATTTTCTCTTAC -TTTTTCACCTGCTCTAGTCGCTTCATTAATACCTTGTTCAGATAAATTAACATCTTCCCATCCAGTAAAT -AAGTTTTTAGCATTCCACTCGCTTTGTCCATGACGACATAAAATTAATTTTGGCATAACTTATAACCTCT -TTCCTTTAATCTTTAGGACGTTATTTCAGGGATATTTTAAGATGATTTAATCTTAGCAATTTTCTTTTCA -ATATGTTTTAAAATTCAATGATTAAATCAATTATCACTAGACATTAAATACATAAATCCTATTCCCCATT -TTCATTTTTTAATTCATAAATGAATCAATAACCACCTAATAACAAATCATATTATACACCTTTGTCCGTC -ATTTTTCTAAGGTTTAAAAAATATTTTTAGGTGCGCCTAAAAATAAATGTAATAAAAACGCCTCCTCAGA -TATTTATATATCTATGAAGACGTTTAAATACATTATAGATGGTCTGGTTCTGGGTGAACGTATACTGAGG -AAATACCTTTTTTGTGCAAATGATGTTCGACATTATCACAAATTTGATGCGCTTCTACTAAGGAAAGGTT -AGCATCTACAACAATTGTGACATCAATAAACACACTACTTCCATGGTAACGCCCTTTAATACTTTTAACT -TCTTGTACTTCATCAACTTCTAAAATATCATTGCGATACGCTTCTAATTCAGTTTCATTGAAACCATCAC -TCAACATAAAAATTGCTTCTTTAAAAATACCAAAACCAGTATAAACGATTAGTAAGCCTAGCAATGTTGC -TAAAATAATATCGACAATTGGGAAACCGATTTGCGTAAAAATTAATCCTATCGCCGTTCCAATGCTGACT -AAACTATCTGATAAATTATCTTTGGCAGCAGAATTTAAAGAACTACTTTTCGTTCTTTTCGCTAGTCTTT -GATTGACTGCAAATACAATCAACATTACAAGACCACTGATTAAGCTGACGATAATTGTTATTGCGTTAGG -TACAACGTCATCTTCTTTGAACAAACGAGGTGCATTTTGAATAACTACTTGGATACCTACAAACATAATG -ACAAATGACACCAATAATGAAGAAATATTTTCAGACTTCAAATGGCCGTAAGGATGATTTCGATCGGCAG -GTTTAATTGAAATTTTCAATCCAATAATAACAGCTAAAGAAACGATAATATCTGTCATATTGTTTAATGC -GTCAGCTCTTACAGCTGCAGAGTTAAAGACAAAACCCGTGACATACTTAACAATAGATAAGATTATATAT -ACAATCAAACTCAAATAAGCACCGCGTTGCGCCAATTTAAGATTTTCATTATGAGACATGCGTTGAACCA -CCTTGAATTAGTATAGTAACAATATTATGAATGATTTATTTTAAATTTACAACGTTTTTAATTTTTATTA -AATTTTTATAAAATTAAACTAATTTATTCATTCGCAACCCCTAAAAATATTTTTTAGCCTTTCTGCGAAT -TTTATGAGCTAGAAAGGCTTATGCATTAGTAGCGAAGCTATCTAATGCGTTCCTTTATTTTCTGCGGATT -TTATGAGCTAGAAAGGCTTATGCAGTTGACTTTTTACGTCCAACTGCGTTCCTCCGTCTTCTTCAAATTT -ATTTGTTAGAAAGGCGCCCAACTCTCCCTGTTTGTTAACTTTCGTCTCGAAAGTTTCTATGTTGGGACCC -TATGCATGAGTTGCGAAGCTATCTAATGTCTTGACCTAATTATATAGAAGAAAAAGTGCATCAGTGACAA -ATCAAATGAGATTTCTACTCTACCAAACTCTCTTCGAAAGACAATTTTCTCCTCTATTTATTAGCAAACT -ATTGCATTTCTCCATATAGTACTTTCTTACTTAAAATACGCTGAATGTTCTGAATTAAACGCTTTTTTAC -ATAGTTAACACTAGTTAATCTATTAGTTAACATTAGTTAATAATTAGTTAATTTCCATTTGTATTCTCAT -GTGATAAATTCTAAAAGCATACAATAAATTTAATATGTAAAAAGAAAGGGAATACACATGAAAAATAAAT -ATATCTCGAAGTTGCTAGTTGGGGCAGCAACAATTACTTTAGCTACAATGATTTCAAATGGGGAAGCAAA -AGCGAGTGAAAACACGCAACAAACTTCAACTAAGCACCAAACAACTCAAAACAACTACGTAACAGATCAA -CAAAAAGCTTTTTATCAAGTATTACATCTAAAAGGTATCACAGAAGAACAACGTAACCAATACATCAAAA -CATTACGCGAACACCCAGAACGTGCACAAGAAGTATTCTCTGAATCACTTAAAGACAGCAAGAACCCAGA -CCGACGTGTTGCACAACAAAACGCTTTTTACAATGTTCTTAAAAATGATAACTTAACTGAACAAGAAAAA -AATAATTACATTGCACAAATTAAAGAAAACCCTGATAGAAGCCAACAAGTTTGGGTAGAATCAGTACAAT -CTTCTAAAGCTAAAGAACGTCAAAATATTGAAAATGCGGATAAAGCAATTAAAGATTTCCAAGATAACAA -AGCACCACACGATAAATCAGCAGCATATGAAGCTAACTCAAAATTACCTAAAGATTTACGTGATAAAAAT -AACCGCTTTGTAGAAAAAGTTTCAATTGAAAAAGCAATCGTTCGTCATGATGAGCGTGTGAAATCAGCAA -ATGATGCAATCTCAAAATTAAATGAAAAAGATTCAATTGAAAACAGACGTTTAGCACAACGTGAAGTTAA -TAAAGCACCTATGGATGTACAAAAGCATTTACAGAAACAATTAGACGCATTAGTAGCTCAAAAAGATGCT -GAAAAGAAAGTGGCGCCAAAAGTTGAGGCTCCTCAAATTCAATCACCACAAATTGAAAAACCTAAAGCAG -AATCACCAAAAGTTGAAGTCCCTCAAATTCAATCACCAAAAGTTGAGGTTCCTCAATCTAAATTATTAGG -TTACTACCAATCATTAAAAGATTCATTTAACTATGGTTACAAGTATTTAACAGATACTTATAAAAGCTAT -AAAGAAAAATATGATACAGCAAAGTACTACTATAATAAATATTACCAATATAAAGGTTTGATTGATAAAA -CAGTTTTAACAACTATCGGTAGTGGCTATGGTTCATACATTAAACCTCTTGAAGTAAGCAAAGAAAGCGG -GAACTTAGCTAAATCATATGCACAAGTAAGAAACTATGTAACTGAGTCAATCAACACTGGTAAAGTGTTA -TACGCATTCTACCAAAAACCAGAATTAGTAAAAACAGCTATTAAAGCTCAAGAAACAGCAACAACTTTCA -AAAACGCTTTAACAGGCATATTCAAATCATTCTGGAAATAATCAATCAAAAATATCTTCTCTAGTTTTAC -ATCATTATTTAAATAATTTTCGTAAAAAACCGTGATTAAAAAGAACCGTTGATTCTCAATCGAATCTGCG -GTTCTTTTTTCATTTTCCATCAATTAAATGTTTCTTCGCTATTTGTCAGCTCACTTTTTTACCTGCAACT -TGTTAAATAATCCTTACATCGTTAACGAATAGTTCATCATTTAGTTGAATCAGCTCAACTTTATTAACTT -CAAATTTTCACAAACTATTGCACAATCCATTCCTCTACCACTTCAAGCACCTTAATTAAACATTAATTCA -ATAGAATAAGACTTGCAAAACATAGTTATGTAGCTATATAAACGCCTGCGACCAATAAATCTTTTAAACA -TAACATAATGCTAAAACATCATTTAACAATGCTAAAAATGTCTCTTCAATACATGTTGATAGTAATTAAC -TTTTAACGAATAGTTAATTCGAAAACGCTTACAAATAGATTATTATATATATGAACTTAAAATTAAATAG -AAAGAAAGTGATTTCTATGATTAAAAATAAAATATTAACAGCAACTTTAGCAGTTGGTTTAATCGCCCCT -TTAGCCAATCCATTTATAGAAATTTCTAAAGCAGAAAATAAGATAGAAGATATCGGCCAAGGTGCAGAAA -TCATCAAAAGAACACAAGACATTACTAGCAAACGATTAGCTATAACTCAAAACATTCAATTTGATTTTGT -AAAAGATAAAAAATATAACAAAGATGCCCTAGTTGTTAAGATGCAAGGCTTCATCAGCTCTAGAACAACA -TATTCAGACTTAAAAAAATATCCATATATTAAAAGAATGATATGGCCATTTCAATATAATATCAGTTTGA -AAACGAAAGACTCTAATGTTGATTTAATCAATTATCTTCCTAAAAATAAAATTGATTCAGCAGATGTTAG -TCAGAAATTAGGCTATAATATCGGCGGAAACTTCCAATCAGCGCCATCAATCGGAGGCAGTGGCTCATTC -AACTACTCTAAAACAATTAGTTATAATCAAAAAAACTATGTTACTGAAGTAGAAAGTCAGAACTCTAAAG -GTGTTAAATGGGGAGTGAAAGCAAATTCATTCGTTACACCGAATGGTCAAGTATCTGCATATGATCAATA -CTTATTTGCACAAGACCCAACTGGTCCAGCAGCAAGAGACTATTTCGTCCCAGATAATCAACTACCTCCT -TTAATTCAAAGTGGCTTTAATCCATCATTTATTACAACATTGTCACACGAAAAAGGTAAAGGTGATAAAA -GCGAGTTTGAAATCACTTACGGCAGAAACATGGATACTACATATGCATACGTGACAAGACATCGTTTAGC -CGTTGATAGAAAACATGATGCTTTTAAAAACCGAAACGTTACAGTTAAATATGAAGTGAACTGGAAAACA -CATGAAGTAAAAATTAAAAGCATCACACCTAAGTAAACAGTTCAATCATTTTATAAAATCCTGGGACACT -TCATACTTGTCTCAGGATTTTTTAACATATTGAATCAGCCTCATAACATTAAATTATTTTATCGTACAAC -TGATTTTTATAAGAGCAAAGTATCGCATCATAGTAGATACACAAATAATAAAAATGAAACAATTTAACTT -GAAAGCTTAAATAAATATTCTCAAGTTAATAAATAATTAACTTTTAGATGGATTCATCAAAAATCGCAAA -AAAGAACAATTTGTATTTTACAAACATTAATTAAAAATAAAAGCAAGACATTCGTGCAATCGGTTGCCTT -AAAATGTTTACAACTGTCAACAATACCAAGGTTTTATTAACTATATTTCTCACAAAATTAGCTTTTAGCA -TTCCAAACAAAAAAGGTTAAATTGAACGGAATTATGGCATTTTTAACTTAATTGTAAAAAAAGTTGATAA -TGGTCAATTGTTAATGAACAGTTAATTATAATAACGTCCAAAATATATTATTATTTAATTAAGTTAAATA -AAATTATAGAAAGAAAGTGAAAATTATGCTTAAAAATAAAATATTAGCTACAACTTTATCTGTAAGCTTA -CTTGCCCCTCTTGCCAATCCGTTATTAGAAAATGCTAAAGCTGCCAATGATACTGAAGACATCGGTAAAG -GAAACGATGTAGAAATTATCAAAAGGACAGAAGATAAAACAAGTAATAAATGGGGCGTGACTCAAAATAT -CCAATTCGACTTTGTGAAGGATAAAAAATATAACAAAGATGCTTTGATCTTAAAGATGCAAGGATTCATT -AGCTCTCGAACAACATATTATAACTATAAAAATACAAATCATATTAAATCTATGCGTTGGCCATTCCAAT -ATAATATTGGTTTGAAAACAAATGATAAATATGTTTCTTTAATCAATTATTTACCGAAAAATAAAATTGA -ATCTACAAACGTAAGTCAGACATTAGGATACAATATTGGTGGTAATTTCCAATCAGCCCCATCACTTGGT -GGTAATGGATCATTTAACTATTCTAAATCGATTAGCTATACACAACAAAATTATGTAAGTGAAGTAGAAC -AACAAAACTCAAAAAGTGTTTTATGGGGCGTCAAAGCGAATTCATTCGCCACTGAATCAGGTCAAAAATC -AGCATTTGATAGCGATTTATTTGTAGGCTACAAACCTCATAGTAAAGATCCTAGAGATTATTTCGTTCCA -GACAGCGAGTTACCACCTCTTGTACAAAGTGGATTTAACCCTTCATTTATCGCAACAGTATCTCACGAAA -AAGGTTCAAGCGACACGAGCGAATTTGAAATCACTTATGGAAGAAATATGGATGTCACTCATGCCATTAA -AAGATCAACACATTATGGCAACAGTTATTTAGATGGTCACAGAGTCCATAATGCATTTAAAAATAGAAAC -TACACTGTGAAATATGAAGTCAATTGGAAGACTCACGAAATCAAAGTGAAAGGACAGAATTGATATGAAC -ATGAATAAATTAGTCAAATCATCCGTTGCTACGTCTATGGCATTATTATTACTTTCTAATACTGCAAATG -CTGAAGGCAAAATCACACCAGTTAGCGTCAAAAAAGTAGATGATAAAGTTACTTTATACAAAACTACAGC -TACAGCAGATTCAGATAAATTCAAAATTTCACAGATTTTAACATTCAATTTCATCAAAGATAAAAGTTAT -GATAAAGATACTTTAGTGCTTAAAGCTGCAGGTAATATTAACTCAGGTTATGAAAGACCAAATCCTAAAG -ACTACGACTTTTCAAAAATATATTGGGGTGCAAAATACAATGTGTCTATCAGTTCACAATCTAATGATTC -GGTTAATGTAGTAGACTATGCACCTAAAAATCAAAATGAAGAATTTCAAGTTCAAAACACTTTAGGCTAT -ACATTTGGTGGTGACATCAGTATCTCTAATGGTTTATCTGGCGGACTTAACGGAAACACTGCTTTTTCTG -AAACAATTAATTATAAACAAGAAAGTTACAGAACAACATTAAGTCGCAACACAAATTATAAAAATGTCGG -TTGGGGTGTAGAAGCACATAAAATTATGAATAATGGTTGGGGACCTTATGGACGAGATAGCTTCCACCCA -ACATATGGTAATGAACTCTTCTTAGCTGGCAGACAAAGCAGTGCATACGCTGGCCAAAACTTCATAGCGC -AACACCAAATGCCATTATTATCTAGAAGTAACTTCAATCCAGAATTTTTAAGCGTACTATCACACAGACA -AGATGGCGCTAAAAAATCTAAAATTACAGTAACTTATCAACGTGAAATGGATTTATACCAAATTCGTTGG -AATGGCTTCTACTGGGCAGGCGCGAATTATAAAAACTTTAAAACTAGAACATTTAAATCAACATATGAAA -TTGATTGGGAAAATCACAAAGTGAAATTGTTAGATACAAAAGAAACTGAAAACAATAAATAACTAGTAAA -ACACGGTCGCCAACAGTAATTGTGACGACCGTGTTTTGATTTATTATCTTAGTAAGACTGCCATTCTTTT -TCTTAATATGAGATATAAAGGAATAGCTACAATTAAAGTGAATATTACGCCTGGAATCGCGTTTAATAAC -ACGACCCACACAGGTAAATTTAAAATGACCGATAGTATCAATCTTGATACCAAACTGCCTAATACACTTG -CTAAAACTAATGATAGTACATTTATTTTCAATAAATAAACAACTGCAATAGCTATAACTCTAAATATAAT -AGAAATAATCACATTAATCGGATTAAATACGCCAAATACTAGTAATAATAGGCTAGATAATAATCCACCT -AAAAAGTACTTTTTAATTCCAAAGAAAGCTAATATCAATAATGCTGCTGGTGCAGATAATTGAAAATCTA -ATCCTGGTATAATGGATGGTATTTTCAAAACTGCCAAAATGGTTAAAATCGCAGCAATGACACTAATTTG -AGTAATATCTTTTGATGTCATACTAAAACCCCTATACCGTTTCATAAACAACTTGCTTCGGTGTGCTTTC -TAAAAATAATATGTAATGATTTAAATCAATACGATCGTCCACAAATATTATTCTGCCTCCATATCTCGTA -TTAACTGGTTTAATATCAAATAATCGATGGTAACCAATTTTAGCAGAGGCAAAATAACCTGTCGTATACG -TTAAGTCATCGGACACGCAAAGTTCTCCTTTGACATACGGATGCGCATTGATACAACTAGCAATTGCTAA -GGCATCAGTCACTCTTTCATTAAGATCACCTTTATTATTTATATCTTCAAACGAAAAATGTGTTGCCCTA -ATCCCCCTATGTCCAAATGAATCTAAACGTTTACCAGATATAGCAGATAGAATAATAGCTCCTGTATAAA -CCGTTTCATTTTTAATATATGTCATCCCTTGATTTAGCGCTTGTTCAGTGACACCACATTTTTGTGTTAA -ATGTTGGAGATTCGCTTTATCATCCTCAATAATTTGTAATGCTTTTATTTGTTTAATCGGTTCCATAATT -TTTTGTATTTTTATATTGAGAAAATCCGGTTGCCCATTTTCATGAAAAAAACCTTTATTATAAAACCTTT -GTACCGTCTGTTCTATTTTGTCAAACTCACAAATCGTTTCAGCACCACTAATATGAATATCTTGATTGCT -AGAACGCATTTTTATACTATACATGACGATCACCTCAATCTTCTTGATGCAAAATTTCAAACAACCTATC -TATATCTTGTTCAGTATGAAAATACGATAATGATATTCTTAACATTGGCTTAGTCACAGTTGGATACCTT -AAATAACTTGTAAACACATGATGCTTTAATAATGTTTGATGAATGTTCTCAGCCGCTTCTATGTCATCAA -ACTCAATAAACTTAATCGGCGAGTTTGAACTATTATAATTAACATTGAGTGCTTTTAACTTTTGGTTAAA -ATATTTACTCAAGCTATTTAATTTAGTGCGTCTATCATCAGCATTTATTAACTTTTCAATATTTCTTTTT -ATAAAATACAAATTATAAATTGGCAAACTACTTGAGTAGATGAGTGGTCTACCGTGATTAATTAACATAT -CCTTCACATCATTTGAACTTAAAATCACACCCCCGTATGCACCACATGCTTTAGATAAACTAGAAGTGAG -TATATCTATGCCTTGATAATTCGAGTAATTCTCTATTCCAAAACTATGTGAAACATCGAGTATCAGTGTT -GCGTTATATTTATGCTTTAATGAGACTAATTGACCAATATCCACAACGTCGCCATTCGTTGAAAATACAC -TATCAGATATGATTATTTTTTGTATATTTTGATTAGGGTATTCCGCTAACCTTTTTTCTAAATCAGCAAT -ATCTAAATGCTTATATATCACTTTTTCTAAACCACTTAGCTTAATACCGTCAATAATACTCGCATGATTT -TCTTGATCTGAAAATACGACACAATTTGTATTTTTGAAAATATTAAATAACGCCAAATTAGCATCATAAC -CACTATTTAAGATAGTACATGCACTATATCCGAGCCAGCCTGCTAACATTGATTCAATCTCTTCATAAAC -TGTCGAACTTCCACTAATCAATCTTGAACTTGATAAGTGATAACTATACTTCCGCATAAAACTTTCGAAA -TCATCCTTATCAAACGCTATTTGACCTAATCCTAAATAATCATTAGATGTATAGTTCGTACATCGCTTAT -TTTCTACTTCAATATACTGTCTATCTATATACCCTACCGATTTAAGCGACCGATATAACCCTTTCTGTTG -TAATAAATCAATTTGCTCTTGAAACATCATTCTTGTTTTCCTTATTTTCACAAGTGTCATAATCAATTTC -AAAGCCCAAATCATTAATCATATCGTAGTCTAATTGGTTCGGTTGCCCACCAGTAATTAGATAATCACCG -ACAAATATTGAATTCGCCGCTTTTAATGCTAATGGCTGTAACGAACGTAAGTTGACCTCTCTTCCTCCAG -CAATACGAATTTCTTTCGTAGGATTGATTAATCGGAATAATGCTACGATTCTTAAACATTTCATTGGTGT -TAAATCATCCATGCTTCCAAACTTTGTACCTTTGATTGGATGCAAAAAATTAATCGGAATACTGTCGGCA -TCCATTTCTTTCAAAGCAAATGCCATATCAACAATATCTTGATTAGATTCTCCCATACCACAAATCACGC -CAGAACATGGTGATATATTATTCGCTTTCATTAGTTCTATCGTATCTGTTCTATCTTTATAACTATGCGT -TGTCACGACGTTATCATGGTAATTTTCACTTGTATTAATATTATGGTTATATCTGTCTACACCAGCTGAC -TTAAGTTTCTTAGCTTGTTCGTCATTCGTTAATCCTAAACATGCACATATTTTCAGTTGCGGGTGTTGAG -ATTTAATCGTTCTTACAGTGTTACTAATATGATCAACTTCTTTATCGCTCGGTCCTCTACCACTCATAAC -AATACAATATGTTCCAATATGATTATCATGTGCCACCTTTGCTCCATCAATAATTTGTTCCTCTGGAATT -AGAGCATATCGCTGTTTTTGTTTAATTTCTCGTGATTGTCCACAATACCCACAATTCTCAGGACATATAC -CACTTTTAGCATTTAAAATCATGTTTAATTTTACTTTTTTACCGAAATAATGTTTTCTTAAAATATACGC -CTCATTTAATAAATCTAAGGTATCAATATTAGTATCCTCATAAATTTTCAATACAGTCTCTTTTGTTAAT -TGTTCCCCTTGTAATATGCGTTTAGCCAAATTCATATTAACACTTCCTATCTAAAATGTTATGTACTGCC -TTTTTAAAAATACGTACCATCGTTTTTACTTCTTTATTTGACATACTTAACACTGGCACAAACGTAATGA -CATTTTCTAAATTTCTAATCATTAGCCCGTTTTCTTTACAATTACGTACAATACGTTCTACTTTTTCAAT -TTCTAACGGCGTTTTACTATCTTTATCTGTAACTAATTCAACTCCAAACATTAAGCCTCGTCCTCTTACA -TCACCAACATTTCGATGACGCTTCAGCGCATGTAACTGTTTCTCAAGTGTTGATGATGTCGTTTCAATTT -GTGACAATAACTTACATTTTTCATAAAGTCTTATATTTTCTAATGCAACCGTACAAACGATTTGATTTCC -GGTGTATGTATGACCATGGAAAAAGGTATTCACACCATGCGAATCACTTAAAAATGCATTGTATATTTTT -TGAGATGTCAATGTAGCTGCAAGTGGTAAGTAGCCACCTGTAATCGCCTTACCTAAACACATAATATCCG -GTTGAACATCTTCATGATTGCATGCAAACATCTTTCCAGTTCTCCCAAAACCAACTGCTACCTCATCACA -AATTAATAAGACATCGTATTTTTTGCACAATTTCTCGACTTCTTTCAAAAAGCCTTTAGGATGAACAAAC -AAGCCTGTCGCACCTTGAATCAACGGTTCCAATATAAACCCTGCGATTTCATCATTTCTTTCAATTAGAA -TTTGCTCTATATTCGTTAAAATAGCTGTCATCATTTCATTTTCAGTATCGTAATTACTGCGATAGAAAGA -TGGGCTTTCTACTTGAATATTTTCAAATATTAAGTCTTTAAATATTTTATGAAAGGTCTTGATACCACCA -ACACTTACCGCACCAATCGTATCCCCATGATAACCGTGATTTAGCGTTATAAACTTGTTTTTCTTGGCAT -ATTTTTCTCTATCAATATTTTTCCAATACTGATATGCCATCTTTATTGCGATTTCAACAGACGCACTGCC -TGTATCAGAATAAAATACTTTTCTTAGATTACTTGGCGTGATTTCGATTAATTTTTCCGCAAGTTCTATT -GACGGAATATTTGATGATCCTAGCAGCGTAGAATGGGCAATTTTATTGAGTTGCTTTTTAATTACCTTAT -TCAAGTATTTGTTATTATGACCATGCACATTGACCCACAACGATGCATAACCATCTAAATATTTATTGCC -ATTCGTATCGTAAAGGTAACTACCCTTTCCTTTTTCAATGATGATTGCTTCTTCTTTGCTATATACACCC -ATTTGTGTAAATGGATGCCAAACATATTCTGAGTCTTTTTGTTTAAGTTGTTGTGTGTAATTCATTTTTA -ACTCCTATTAATTGTTTTAAAAATGCTTCTGAGAAATTTTCATACGTGGCATGTTCTTCAAATGTATAGA -CTGTTTTATTTGTTAATTTTCCAATCGTAATTTGATTGTCTTTTTCAATATAGCTGCCTGTATAGCGATT -CATTATTAAAAAATTACTCGCCGATACATTCTGATTAACATAATCTTGGTGAACAATGGCATCGCTAATA -GCACCTAATTTTGATGGCAACACACTGATGACACAATCTGCACAATCATTGATTAGATCTTTAGTCATGT -AGAAATCATCTGTACCTTCATATATTGGTACGGCAATTCCCCCAGCACCCTCAATTAAGATAAAATCAAA -TTCCTTATCTAAAACTTTTACCTTATCTAATACACACTGCTTATTTAGAAAAATTTGATTTGCCATTTTA -AATGCAAGGTGTGGTGATACAGGTTGCTTAAAAGTATAAAGTGACGTTATGTCATAGCTTAAATCACATT -CATTTTTAAATACTTCTAAATCTGGAAATGTCCCGTCTTGGCGTTCCTCAGTTTGAAATGGTTTAAAAAT -ACAAACTCGATGACCACGTGTTTTCAAAGCATGGTATAAATGCTTTGTAACATAGGTTTTGCCTACATCA -GTATTCGTACTTGTAATAAAAATCCTCATAAAAAATAAGCACCTCAATCCGAATGTAAACTTTTATAATT -AATAAGTTTACATTTAAGGCGCGTGTTTTTCAAGAAAACATGAATTTAAACTTCTCAGTATAACTATAAA -TTTTAGCAAAATTTTGACCTTGCTATTGAAATGACTAAGGCTTCATACGGAATTCGGGCAGATATAAACA -GCGATTCGATAAAATATGTCAGTTAAAATTAATAATTGCATTATTTCTTAATAAAAAGACATCCTAGCTT -TACCATGTTGTGAAACAATCCATTAATTGTAATATTACGTTGAGCGCCTTGTTCATCAATGCTATAATTA -GTTACATAATAAATTGAACATCTAAATACACCAAATCCCCTCACTATTGCCCTAGTGAGGGGATTTATTT -TGCTGTTGATTATCTATCACCCTTTTTATTTCCAAATTCTGATTCCATATTAAACTATTATTTATAATTT -CCAGCCTGCTGATTTACTTTTTATTCTTATAAAGTCTTGATACATTCCTGGTTTTCGAATTAATTCATCA -TGACTACCTTTTTGAATTATTTCACCTTCATTGAGCACTATAATCTGATCTGCATTTTTAATAGTTTCAA -GTTTATGTGCAATTGTAATTACTGTTTTGCCTTTACTTAATTCATTAATTGCCGTTTGAATCAGCTGTTC -ATTTTCAGGGTCAATACTTGCAGTTGCTTCATCTAAAATAATTATTGGTGCATCTTTTAATATCGCCCTA -GCAATAGAAATCCTTTGCTTTTCTCCGCCAGATAAATTACTACCTTTTTCATTTAGCATTGTTTGATATC -CCTCAGGTAATGACATGATGAAGTCGTGGCAACATGCTTGCTTCGCTGCACGAATAATTTCTTCTTTCGT -TGCACCTGGATCGCCAAACAATATGTTATTTTCAATCGTATCATTAAATAAATACACCTTTTGAAATACT -GCACTAATTTTCGACATTAACGTACTTAATGTCATATCTTTAATATCAACACCATCGATGCGAATATTTC -CATCATCGATATCATAAAAGCGCAAGAGTAAGTGACATAATGTAGATTTCCCACTTCCTGAAGGTCCAAT -TATTGCTGTTGATGTTTGTGTAGGTATCTCAAAATTCACATTCTTTATCACTTGTTTATCATCATATGAA -AAATTCACGTTTTGAAAAGCGATATTTTCATTTTTAATCGTCAAATTTTTTCCATTCTCATCCAGTTCTG -GAGCATTTTTTATCTTTTCAATATCATCTATCGTCATATCTATCATTTCAAGTACGTGTGCAGCACTATT -AATATTTTCAACACTATCAAATATCACAAATGAAAAAATTGAAATCATAATAAGGGTAGGTAAATCAATA -CTATGATTCATATATAATAAGCATGCAACTAATACAATCATTATTGAAACAACTTTTAAACTAAGTAAAT -GCAATAAATTGAATGGGATAAATTGCATTTCTATTTTTGTATTTATACGTTTACTTCCATTGACTGCTTG -GTTAAAACTTTTAAGACTCGTATTTTCTTTCGCGAATGATTTTATTACTTGAATACCACGAATAACCTCC -AATACCTTTTCCACTAATTGGTTTTGTACATTATGATACGCTGGCGCATTTTGTCGACTCTTTCTTTCTA -ATAATTGAATCGCAAAAAATGATAGTAATACGCCAATGCATGCTAATAATGATACTTGCCACGAAACTAC -AAGTAGAGACAATATGAGTACTGTAATTAATATGTATCCATTAACAACAACGTCCACCATTTTCATAGCA -AAGTTTTCTAAAAAGGTTAAATCTGTTGTTACTATTGTTGTTAACTCATTTGAATGATGCGAATTAAAAT -AACCTAACCTTACATTTTTCAATTTATCCCCTATATCTAAACGTTCTTTCGCACTCATTTCATAAGCGAT -GCTCTCATGGCTTTTGCTTTTGAAATATGCTGTAATAAATCGTCCAATCACTAATAAAACCATGATAATT -ACAACATTCAATATATCTTTCATATAAATAGGTTTATGAGATAGCACATTATTAAATATTTTTGCAACTA -AAAAGATAGGTAACGCAATAAAAATAGCATTTAAAAATGACATGCTAAATCCTAAAATCATTCTTGCTTT -ATATGGTCTTATCCAGTTTAAAATTTTAAATGTAATTTGAAACATATTTGACCTCCTTTTCTCATTAGTT -TAATTATGTCCAGTATTGATTCCCCAATCTTTTGTATGCATGTGCGTATCCCACATTTTCTTATAATTAC -CGTTTAATTTTAGCAATAAGTGATGTGACCCTTTTTCTAAAATTTGTTGTTTACCTAAAACAATAATTTG -ATCTGCATGTTGAATCGTAGATAACCGATGTGCAATAACAATCAATGTTTTATCCTGCGTCAACACATTT -AATGCTTCTTGAATTTTTTGTTCGTTGTCTGGATCAACGTAAGCAGTCGCTTCATCTAATACAATGATAG -GCGCATCTTTTAATATCATTCTTGCAATAGTGACTCGTTGTTTTTCACCACCAGACAATTTATCTCCCAC -TGTACCAACATTCGTATCATATCCATCTGGCAACTTTTCAATAAATTCATGACATTGTGCTAACTTGGCA -GCTTTTTCAACTGCCTCATCCGTAGCTTCTGGATTGCCAAGTTTAATATTTTCTTTAAAAGTAAGATTTA -ATAAAAAGTTATCTTGTCCAACAAAACCAACTAAATCGTTAAGTTGTTTCGATTCAATATCTTTTATATC -TATACCGCCAATCGTAATTTCACCTGAAGTCACATCCCAGTATCGTGATATAAGCTTGGCAATGGTTGAC -TTACCGCTACCAGATGCCCCGACGATAGCTATGAAATTATTTTCTGGTACTGTAAATGATAAATGCTTAA -AGACCAGATCGTCCTTATCTTTGTTATATGAAAATCCAACATTATTAAAAGCAATTTCATAATGTTGAGG -CTTCTTAAATTTTGTTGACAATACTAACTCTTCTAGACTTAATATTTGATTCACTTCAGTTAATGCGTAT -TGTATAGACTTTAAATGATTTACATAATTAGTAAAATTCTTAATCGGTGCTACTACACCTAAAGATAATA -CGATGCATAGGAAAAATTCCGCATAGTTTAATTGGTTAATAGATATCAAATACATGCCGACCGGTAAAAT -CCCTAAAAATGTTGAAGGTAATACACTAGCTCCTAAATTCATATACCCCCATGTATTTTTAAACCAATTC -AAAGTGTGAATCTTATAATTATCTACTGCATCTTTATATTTTTTATATGAACTTTGAGATTGATTAAATG -TTTTAATCACTTCAATGCCTTCGATAAACTCTACAATCGCGCTATTCATATAATTATTCGATTTCATTTG -TTCAGCATATGTCTCATTAAATCCAGACATAACTTTTTTAAAAGCGAAAATTGAAATTGGTATCGTTACT -AATAAGGCACTAGCCATACGCCAATCAATGAGCATTATGTATAAAAAGATAGCAGCTGACAAAAGTAAGT -TTCCTATAACTTCAGGAATCATATGTGCTAAAGGTAATTCTATTGTTTCAACCTTATCGACAAATATATT -TTTTAATTCACCTATTTTCTTAGATTCCACTACGCCTAAAGGGAGACGCATTAATTTTTGAGCTAATTTT -TTACGAATTTCAGATAAAATTTCATATGCCGTAATATGTGATAGCATCGTTGACGCTCCAAAACAACACA -CTTGTGAAATATAAGCGATTAAAACAATAAAGATATAAACCATAATCGAATTAATCGTATATGCATTGTT -AATCATCATTAAAATAATTTTAAAGACTGCCCAATATGGAACTAATCCAGAAAAGACACTGATGATAGAC -AACAAAATTGATAACATAATTTTCCATTTACTATCAGAAGCAAATCCGCTGAGTATCTTTATCCAATTTG -TCTGATTGTTCATCGTATATGTAACTCCTTTCAATTAATAATCTAAATTAAGCCGCTTATATTATTTATT -TCACTGGATGATATACATAATATAAATTTGTTATTTGTTAAAAATTAATACTTATTACAAGTACATCATA -TATTAGTTGATAACGATTATCAATGTCGCGTGGATTTGTGACACATTTCTTTTAAAAATTCACAAGGTTA -TGGGGCAGAAATGATAAAGAGCCACTAATGATTTATTATGTAATGATTCTTTATCCTTAGCCACAGCTAA -TATGTACTTAAAAATAGGAATACATGAGTAAAACTCTGTGTTGGGGCCCCGCCAACTTGCATTGTCTGTA -GAAACTGTGGATCCAATTTCTCTATGTTGGGTCCCTGAGTATAGCCTTGTAGAGTCTAGTACATTGATTT -GTATCCCAATGTCCCTATAATTGATTATTCGCTTTATCTAATGATCCTATGACTCAACTATTAAATCATT -TTTCGAAATACTTAATTCTAATGTAATTAAATCCATTTATTGTAATATTGCAAAAATACATTGCACACCT -TGTTCATCAATGCTATAATTAGTTACATAATAAATTGAACATCTAAATACACCAAATCCCCTCACTACTG -CCATAGTGAGGGGATTTATTTAGGTGTTGGTTATTTGTCACCTTTTTTATTGTTGCGCGTTCGTAACCAA -TGTGCAAAAAACGCAACAAGACAGCCGCTTAAAGCTGAAGTCATGATGTCAATTAATAAATTGAACATCC -GTCATACACCTCCTCTCTGCGTTAAAGTAACGCCCGAGATGTTAGGCGACCATTATATTATATCATTTAT -TTATTATATTTCACGCAATATTAAGACCCTTCCAAAGTATTTTTTAGTGGTTTACGCTACTTTAATTACT -ATCTTTTAAAATCCATTTAGATAATATAAATGTGATGGGTATCGTAATAATTAAACCAGCAAATGGTGCA -ATTTCTGCTGGCAAATTTAGCCAGGATACAAATACATATAATAAAACTGTTTGTAAGCTTATGTTGACAA -TCTGCGTAATTGGAAAACTAATGAATTTTCTCCAAGTAGGTTTTACCCTGTAAACAAAATAACAATTCAA -ATAATACGAAATCACAAAAGCGACTATAAATCCGGTAATATGACTAATCATATATTCAATGTGTAATAAT -TTTAACAGCAATAAATAGACAACATAATAGTTTAACGTATTAATGCCGCCAACAATGATAAATTTTAAAA -TTTCAGCATGCGTTTGTGTTAGTTTCATATGTGTAACTCCTCAACATCAAAATATATGTATAACTGCGTT -CTCCAACATACTCGAATATGCGAGCCAATCCGCTTCTCTTCAAATATACTTATTTCAGTTTTTATACCCT -TTCACAGCAAATTTAGTCTCTTTCCCCTCATCCTTATACGCCATTATAATGTAACTGATTTATCGCGCGA -CTCATTAGCACTATAGAGATTACTTTAGTTCACTAGTAATTTTATATACAATAAGAGCGACAACAGTAAT -GAGAGGATGTCTACTATGCAATTACAAAAAATTGTCATCGCTCCTGACTCATTTAAGGAAAGTATGACCG -CACAGCAAGTTGGCAATATTATAAAACAGGCATTTACTAATGTTTATGGGAAAACCCTTCATTATGATAT -CATTCCGATGGCTGATGGTGGTGAAGGCACCACAGATGCTTTAATGCATGCAACAGGTGCTACTAAGTAT -ACAGTCATCGTTAATGACCCTTTAATGCGACCTATTGAAGCATGTTATGCACGCGCAGACGAACAACAAA -TTGCAATTATTGAAATGGCAGCAGCGTCAGGTTTGGATTTATTAGAAAAAGAGGAACGTAATCCTTTATA -CACATCATCATATGGTACCGGTGAACTAATTAAAGATGCATTAAATCATGGTGCTAAGACCATTATTTTA -GGGATTGGTGGCAGTGCAACAAATGATGGTGGTACAGGTATGCTAAGTGCACTAGGCGTAAAGTTTACTG -ATGTAAACGGGGACTTATTACAAATGAATGGTGATAATCTTGCTCACATTGCACAAATCGATATAACCAA -TCTAGATTCGCGATTAAAAGAAGTGACCTTTAAAGTGGCCTGCGATGTTTCAAATCCTTTATTGGGTGAA -AATGGTGCTACCTATATTTATGGTCCTCAAAAAGGCGCTGATGCAAAGATGATACCAAAGTTGGATTTCG -CAATGTCGCATTATCATGATAAGATAAAAATGTGCACAGGAAAGTCAGTTAATCAAATACCAGGTTCTGG -TGCAGCTGGCGGTATGGGCGCAGCATTATTAGCGTTTTGTGAGACAACTTTAACAAAAGGTATTGATGTC -GTCTTTGACATTACAGATTTTCATCAAAGAATTAAAGATGCAGACCTCGTTATTACTGGAGAAGGACGCA -TGGATTATCAGACCATCTTTGGTAAAACACCCGTAGGCGTTGCGTTAGCTGCAAAACAATATCATATTCC -TGTCATCGCGATTTGTGGCAGTCTAGGCGAAAATTATCAACATGTTTACGATTTCGGTATTGATAGTGCC -TATTCTATAATCTCTTCACCTAGCACTTTAGAAGATGTCCTACAAAATAGCGAACAAAATTTATTAAACA -CTGCAACTGACATTGCTCGTATTCTGAAATTACAATAATGTCAAAGTAAATCATCAGCTTTATTATTTGC -AGTTAAAACTTGAATGAGGTGAAACCCATGAAAAGAACTGATAAATACCGTGATTCATATCAATACGACA -ATCAAAATCAAAATCATCGTCGTCAATCTGAAGACGCATCGTATAGACAACAATATGCTAAAGGTGATCC -TGAAGAACACCCAGAACGATACTATAACGGTAGAGATTATCGAAGAGAACAAATTCTTGAAGAAGAAAAC -GAGAAATCCCGCCGTTCAAAAAAATGGTTATATATCATTATTGCCATTCTCTTAATTATTGTCGCTATTT -TTGTCACACGCGCCTTACTTAACAATGATAGCGATAAAGTTAGTAATGACCCTAAAGTCTCTCAAAATTA -TAAAAAACAAGTTGAAAATCAAGACGGCCAAATTAACCAGCAAGTCGATAATGCTAAAGAAAATATTAAA -AACAACCAAAAAACTGATGACATTATTAAAAATTTACAAAATCAAATCGATAACTTGAAGCAGCAAGAAC -AAAACAAAGCTGATTCTAAGCTAACTCAATTTTATCAAGACCAAATCAACAAATTGACAGAGGCAAATAA -TGCACTTAAAAACAATGCAAGCCAAGGTAAAATTGAAAGCATGTTAAATGATATTAATACAAAATTCGAC -AGTATTAAATCTAAATTAGAAAGCTTATTTAAAGATGACAATGGTGGCGCTAATTAATTATTAAACCTGC -TTTTGATGATAAACATTAATTCCCTATACTTTATCTGTATCACTACGTTATTCGTGATGATGCATTAAGA -GTATAGGGATTTTTTATATAAACTTGTATTCTAACTACATACAAATACACACAAAACGTATATAATTTAT -ATAATTATATAAATTAAGGAGTCTGTTTATGCAATCTTCGAAAACCAAAACGAAGCATTTTTCATTTTTA -TTGCTAATCACGTTAGGTGTCATGACCGCTTTTGGCCCTCTAACTATAGATATGTACGTACCATCATTAC -CTAAAGTGCAAGGTGATTTTGGTTCTACTACATCAGAAATTCAATTAACATTATCATTCACAATGATTGG -TCTTGCACTAGGCCAATTTATCTTTGGACCTTTATCCGATGCTTTTGGTCGCAAACGTATTGCTGTATCC -ATTTTAATCATTTTCATTTTGGCATCAGGTTTGTCTATGTTTGTTGATCAATTGCCATTATTCTTAACTT -TACGATTTATTCAAGGTTTGACAGGTGGTGGCGTCATCGTTATTGCCAAAGCCTCTGCTGGTGATAAATT -TAGTGGCAACGCACTCGCTAAATTTTTAGCATCTTTAATGGTAGTTAATGGCATCATCACTATTCTTGCA -CCATTAGCCGGTGGATTAGCTTTATCCGTAGCAACATGGCGTTCTATTTTTACAATTTTAACAATTGTGG -CACTCATCATTTTAATTGGCGTCGCTTCTCAATTACCTAAAACACCTAAAGAAGAATTAAAGCAGGTGAA -TTTTAGTAGCGTCATTAAAGACTTTGGAAGTCTTTTGAAAAAACCAGCATTTATTATTCCAATGCTATTA -CAAGGTTTAACTTATGTAATGCTATTTAGTTATTCATCTGCATCGCCATTTATTACTCAAAAATTGTATA -ATATGACACCCCAACAATTTAGTATCATGTTTGCTGTTAACGGTGTAGGTTTAATCATTGTCAGTCAAGT -CGTTGCTTTATTAGTAGAAAAATTACATCGTCACATATTATTAATCATTTTAACTATTATACAAGTGGTA -GGTGTTGCTTTAATTATCCTGACACTTACATTCCATTTACCACTTTGGGTCTTACTCATCGCATTCTTCT -TAAATGTGTGTCCTGTGACGTCAATTGGACCGCTTGGTTTCACAATGGCTATGGAAGAACGAACAGGTGG -CAGTGGTAACGCATCAAGTTTACTTGGCTTATTCCAATTTATCTTAGGTGGCGCTGTTGCACCATTAGTT -GGCTTAAAAGGCGAATTTAATACATCACCATATATGATTATTATCTTCATTACAGCCATTCTATTAGTCA -GTCTACAAATCATTTACTTTAAAATGATTAAAAAGCAACATGTCGCATAACACTTCAACATAATTAGAAC -CCTAGCAAAGATATCTATCTTTGTCAGGGTTCTTCTTTATGAATTATGAGATTGAATCTTCAACTAAAAT -TACGCCTTCATATCAAGTACATTTCTATTCAATCACCCTTTAACAGGCATCCAAATTTCTGTAATATATT -TTTCACTTGTAGTATCACCATCCTGATACAACTCAAAAAATGGTGCTGATTTTACCGTATCTGCTTGATA -TTGATGTATGTAGTGATGAACCTCTTCCATTTTTTGTTGAACTGCTTTAGGTACTGCTCCCTGTGCTTCA -AATACCATATACTTTGAACTTGCTAATGTTATGACATCATATTTTTCAATATCAGCACTATTATCTCCGG -TAACTGCAATCGTATATGACATCTTACCATCTAATTCAGGTATACATAAGCCAAGTATCCCGGCTAAATC -ACCATTATTTTTTAACTGTAAATCTGCAATTACTCCCTCTTGATAACATCTTTGCCAAAACCCTGCTATA -TGTTGCTGAGCCTGTCGTCCATTTTCATACGTTTCTTTAATACCTACTAACGTTAACGACGCAAGTTGTT -GTAATTGATATTCCATTTTATCACTCCATTAATTTTATTCACTCATGTAAAACATATGTTTAGGACATTT -TGCATTGACGCTATATAATTATATTAAATATTTATTGAATCAATGCGAGGACTATATTATGAACCGAAAA -ATATTACCAGTTAAACCTATCAGTCAGCTATTTCCTATTCCTATGGTCATGGGGTGTGAAGGTGTTTCCG -CAGCCATGATGTTGCAATACAATAACCAACATATCCCTGCTACAGAAATTATGAGACATTGGCCGACACA -TCCGAACAATCCACATAAAGGTTATGTTGGACATCACTTATTCATTAAGCTTGGCAATTATCATCAAACA -ATATTTCCAGATGCATATGTACCATTTTTACAAAAATACAATCCTAATATCGTAGACGGCACTGGTAAAT -CCTTAGAAGATCTTAAAGGTATTATCGATCAAGGTCAACCTGTGTTAATATACCATACTAATCTTGGTTC -TAAACCATTACTACGTGTTTTCCGCTTTGATAACAAGCCAGCGAAACAAGTTTCAAATATTCACGTAACG -TTACTCATTGGGTACGATGATTACTATTACTATTATATCGATCCACTTTGGAGTCATATTCGTCGTGGCC -TAGTTTTACCTGCCATCATTCCAAATCGCAAACAAATTATTAAAATTCGTAAAGAGAAAATGGAATACAG -CTTTAATTCACCAGGAAGAAAGTGCATTTATGTGCAACCACATTCATATACAATTGAAAATCAGAAACAA -AATAAACACACGTAAGTAAACACATTACTCGCGTGTGTAAAACATAAAATGCGCAAACTGGGTCAGGTTT -GCGCATTTTAAATTTCTATTATTTGTATCGTCTCATTTATTTCCTGGTAAATATCTTCTGAACGCCATTG -TCTTGGATAGCCTAGACACGGACAGAGATAACATCTGCCATCATCCATCACACTTTTCCGAAAATGAACA -TGGCCCATAATACTATATGGTATATCGAACATCGCATACAAAGGATTGAAATCACTTGTCCCAATAAATG -CATTATAAAAATCGAATATACGATGCGGCATAGGAACAATGAAATCAGGGTGCGTCACAACATGTGTGAC -TAAAATCACTCTTCTATTTCCTACTTCTAATAGATCTTTCTTCACTTGTTCAGCCGCTATTTTAGATAAA -TTTTGATCTGATGTGCCCCAAGATATTCGTTCTTTATCTTGCCAAGTCGCACCATAATGTTTTCCTCTTT -GTAACTCATCTAATGAAAATCGTTGTGCTGCAAAGCTATAATCATACCAACCTGTATGTCCTATGATTGC -CCATTCTTCATTTACTATAAATGGTTTTCCTACCAAGCACTGTGACATACTCTTATAATTATTCCAAATG -TCTTGCGTAGTCATACTTTCAACTTCCCATAAATCATGGTTTCCAGGAACAAATTTCACAGGTATATCTA -ATTGTTTTGTCAATTGCGTTATAAATTGGTGCGTCAATTGATAATGATTTGAGATATCCCCCGCAATCAA -CAATATATCCAAATTTTTATACTTAACTATTTCAACCAATGCCTCTAAGTAATCTTCGGATGTTTTTTTA -TTATGACGATCAATATGTAAATCGGCGATTGTCCCTATCTTCATACCCATACCTTCTTTACTCAAATTAA -AATGTTATTTATTATGCCATAGCTTATCTAATATATATAGTTAACTGCTTCATTTAGATGATTATTTTAT -ATTTTTGCATAAAAACTTATATCTTTTCAAAAAATCGATAAGTTTTAGTTATCATACCCTTAACTATCAA -ATGTTTTTTTTATATTTAAAAAAATAATTGCTTTATTAAATGGATTTCTTTAGTATTTATAATTAAGAAA -ACGCTTACACACAACTTTTTTATTTGCTTTATCCTGAGGAGGAAAATTATGGCAAGAAAATTGCATAGAG -AGTTGAATAACAGACACATCCAATTGATAGCAATTGGGGGCGCAATTGGAACTGGGTTATTCCTAGGATC -AGGTCAAACAATATCCTTAACTGGTCCATCACTGTTATTCACATACATGATTATTGGGGTTGTACTATTC -GCTTTTATGCGCGCATTAGGCGAATTGTTGTTGAGCAATACAAGATTTAATTCATTTGTTGATATTGCAA -ATGAATATTTAGGCCCTTTTGGTGGCTTTGTCATTGGCTGGACTTACTGGCTATGTTGGATTGTATCAAG -TATGTCAGACCTAACTGCGATGGGACAATACTTTGCATTTTGGTATCCACAAGTCCCAAATTGGATTACC -GTGCTATTTATTGTTTTAATCTTGATTAGCTTCAACTTATTAGGTGCCAGATTATTTGGTGAACTGGAGT -TTTGGTTCTCTATTATTAAAGTTGTTACAATTATTGCGATGGTTATCGTTGGTCTTGTATTAATCTTTTT -CTCATTTAAAACACATTATGGACATGCATCATTCACAAACTTAATCAGTCACGGCGGCATGTTCCCTGGA -GGGACATTTGGTTTCTTAATGTCATTCCAAATTGCTGTATATTCATTCATTGGTATTGAACTTATAGGTG -TAACTGCTGGCGAAACGAAAGATCCTGAAAAGACTTTACCGAAAGCAATTAATAATGTACCTATCCGTAT -TTTATTATTCTATATCGGTGGTCTATTAGTAATTATGTCAGTCATACCTTGGAATGATATCGATCCAAAT -AGTAGCCCTTTCGTTAAACTCTTTACATTAATCGGCGTGCCATTTGCAGCAGGTGTCGTTAACTTTGTCG -TGCTAACTGCCGCGGCCTCTGCTACAAATAGTGGAATCTATTCGAATAGTCGTATCTTATTCGGACTGTC -ACAACAAGGGTTAGGTCCTAAAGTTTTAAATAAAACGAATAGTCATGGCGTGCCTTATTTATCAATGTTA -GTTTCATCAATTGCATTACTTATAGCAGCCTTGTTAAACTACATTTTTCCTAATGCAATTCAACTATTCA -TATACGTTACAACGTTATCAACTGTGTTGTTTTTAGTTGTTTGGGCAATGATTATTGTCGCTTATCTAAT -GTATTTGAAAAAGCATCCTGAGGCACATAAAAACAGTAAATTTAAGTTGATTGGTGGTAAGCCTATTGCT -TACATTATTTTAGCTTTCTTCTTCTTTGTATTCATTTTATTATTCTTTAGTGACGAAACAAGAGCAGCTA -TTTATATTTCGCCATTCTGGTTTATATTTTTATTTTTCTTTTATAAAAAATACAAAACGAATGCTGAAAA -GCTCGCATATGAACAACGACAAAATGACAGCGGTCATTTCAGATATGACAATCAATAATTTAAACATCTC -GCTCTAGTATCAGTTCAACCGATACTAGAGTTTTTTTGAAAATAACTTCATTTTATCAATATATCTATGT -CATTATGCCTTAAAAGTGATAAAATATTAACTATTAAAATTTTGAGGAGTATTGTATGGCACTATTAGAA -GCATTTTTAATTTTTATTTTTGCTGTGATTATTAGTTCGGTTATCAATAATCGATTTCCACAAATTCCTA -CTGCCTTTATTCAAATTGCATTAGGTGTCGTTATTTTCATTATTCCAATACAAGTTGATTTCCAATTCAA -TTCTGAAGTATTTATGTTTGCCGTTATCGCGCCACTACTTTTTGTGGAAGGTACCCACGTCTCTCGAACA -AAATTATTAGAATATCGCAAACCTATACTATTAATGTCAATGGCACTAGTGTTTGCAACTGTAGTCGGTG -TTGGCTATTTTATACATTGGATTTGGCCTGCCTTACCAATGCCAGCCGCTTTTGCAATAGCAGCAATTTT -ATGTCCTACTGATGCAGTAGCAGTATCTGCTATTACACGCGGAAAATTATTACCTAAAGGTTCTATGACG -ATTTTAGAAGGTGAATCTTTACTCAATGATGCTGCAGGTATCATTTCTTTCAAAATCGCTGTTACAGCAT -TAGTAACTGGTACCTTTTCATTATTCCAAGCTATTGAACAATTTATCATTTCAACAATACTAGGTGTACT -TATTGGTGCAATTATTGGATTCGTTGTCGTTAGAATACGTATAGACTTAACCGCTAATAAAGGTTTAAAA -GATAACAATACCTTAACTTTTATTCAATTATTAACTCCTTTTGTCGTATACTTTTTAGCAGAAGAAGTTC -ATGCTTCAGGTATCATTGCAGTTGTAATCGCAGGTCTAATCCATGGTTTAGAACGCGACCGTTTAATTAG -AGCACAAACGGAACTACAAATGAATTACCATCAAATTTGGAACACATTTAGTTATGCCTTAAATGGTTTT -GTATTTGTTGTATTAGGTTTTATGATTCCTACTGTAGTCATAGATATTTTCCAAACAGAGCCTGACAACT -TTTCATTTTTAATAGTGATCACTATATTAATCGCTATTGCAATTTATGCATGTCGATTTGTTTGGGTTTA -TTTCTGGTACAAAGATTTTTATTTCCCGAAAAATATACAATCTTATCTAGACGAGGAACATGATTCACAT -GAAACACCACCTTCTCGTGTGCGTTACGCATTTATTATGACGATGTGTGGTATTCACGGTACCATTTCAC -TTTCAATGGCACTTACATTGCCGTTTATTATTACACAAGGGCAAGCTTTTGAATACCGTAATGATCTATT -GTTTATTGCATCTTTCATGGTATTAATTAGTTTAATTTTAGCGCAAATTGTTTTACCTTTAATTACACCA -TCTGCCGAAGATACTACTTTTAAAGGTATGACTTATCAATCTGCCAAAATTTTCATTGTTCAAAAAGTGA -TCCAGCATTTTAAAAACGAAAGTAAAAAAGACAAAAACGATACAAATTATCGCCCAGTATTAAACCAATA -CTATGGAGAATTGTTATTTTTATTAAATTCAGAACCTGATAATCAAAATACAAAAGAACTCAAACGTTTA -GAAGATATTGCAAAAGTAATCGAAACATCTACACTTGAGCGTTTAATCGATAAAGGTAAGGCAACATACC -AGGATATTAATAATTACCGCAATATTGTCGAATTAACAGAGACACACCGTACTGCATCATTTGTTGAAAA -ATTTGCAAACTTCTTCAAGATGTTATGGCTTAGACTTAAAGCGATGAAGCACTACAAAGCCTTAAACAAA -GAATCTAAGAAGCAAGAATTTGAAAATTCATTCAAAGATGTTCAAAAAATTATGCGTATTGTGAATCACA -ATATTATTTTACGCTTAAAAGAAGAACAAAATAGTACAAATGTACTTGAGGTTAGCTTAGTCATTAATCA -TTACTATGATATGAGTCGCTCATTAAAGTGGCGTGCACAACGTCGAAAAGAACGTCAAGAAAACAGCAAT -CAAATCATACCGCAAGCTATGTTCCATAACCACAAATTGGAAGCATTGTACTTACAACGTCATCTTTTAG -ATGAATTAATTCGCAAAAATAAAATCAACAATATCGTTGCAGCTCAAATTCGAGAAAATATCAATTACAA -CGAAATTGTCTTGTCTTTACAGTCCAAAGATTAAGCAAGACATAACAACACCCCCGTACATATGAGACAA -AGTCATTATCATCTCATATGTACGGGGTTTTTATAGTCAACATCAAAAAATCGGATTGATGAAAAGTAAA -TAACCTTTCATCAATCCGATTTGATTATAGAATCTATTTTTTAAGTTTAAATGGAATTGTACATACGTTA -ACATTCTTTTGATAAATTAAATACAATTTCATACGCAAACTAGTTTGATTGTGTAATAAATTATGCCAAC -GTTTCTTAGTAATAAATTCTGGTATCACTACTGTAATCATATAGTTTTGATCGTTGGCTTTACGATTAAT -CTTATCGATAAAACGTGAAATTGGTCGTATAATACTGCGATATTCCGAGTGTAAAATAACTAATCTTACA -TCTGGGAAATGACGTTTCCATTTCTCTTGGAATGCTTTTTCATCTTCATCTCCAAATGATACATGTACTG -CAATAACATCATTATTCGCAAGCATTTGTGCGTAATAAATAGACTTATCAACTGCAGTTGTAATGCTTGT -TATCGGAACAATTGCTAAATTACGATCTACTACTTCTACATTATGAACATCAATATCAGAACGTAATTGT -TCTGCGATATCTCGATAATGTTTGTTAATTTTCAAGAAGAAAATCACCACGAACGGCAAGAAAATAAGTA -TCGGCCAAACTTGGCTAAATTTAGTTATGAGTAAAATCATAAAAACAATAAATGTCACGATACCACCAAG -TAAGTTCACAGACAACTTACTTAACCAATTCTTAGGACGTTCATGAATCCATTTAATAACCATACCGAAT -TGTGCTAGTGTAAATGGAATGAATACACCAACCGCATACAATGGAATTAAATCTTCAGTCATACCATCAA -ATACAATAATTAAAATAATGGCTAATACACCTAAAATAATAATCGAGTTAGAGTAGCCTAAGCGATCACC -TCTAACAGTAAACATTCTAGGCATATATTTATCTTTAGACATTGAAGCCGCTAACATCGGAAAAGCTGTA -AATCCAGTGTTGGCTGCTAATACCAAAATCATCACGGTCGTTGCCTGTACAAAATAGAAGGCAGCATTAT -CATCAAATATTTGCATAGCTAATTGTGATAAAACTGTCGTTTCCGTTTGTGGCATAATTCCATAAACGTA -TGCTAAACCAACGATACCAACTAATAAAAACGCTAAAATTGAACCCATAGCAATTAACGTTTTTACAGCA -TTATTAGCACTTGGTTCTCTAAAATTGGTTACCGCATTTGAAATAGCTTCAACACCTGTTAATGATGAAG -CCCCTGATGAAAATGCTTTTAATAGCAAGAATAATGTTACTCCAGGAACCGCAGTTCCTACTGATGCATG -CATATGTGGTTGAATATCACCTGTCGCCACACGGAAAGTACCTATAAATATTAATATCACTAACCCTATA -ATGAAAAGATATACTGGATAGGATAATACGGTGGCAGATTCAGTTAAACCACGTAAATTTAATATTAAAA -TAAAAAGTACAAGTAAACATGCAATCAGTACTTTATGCCCATATAAACTTGGGAATGCAGCAACAAATGC -ATCAGCACCAGATGATATACTAACAGCGACAGTCAGTATGTAATCGACTAATAATGAGCCTCCTGCAAGC -AATCCCCATTTTTCTCCTAAATTGGTCTTGGACACCATATACGCGCCGCCACCTTTAGGATATGCATAAA -TAATTTGCCTATAAGACATAATTAAAGCAGCTAATAAGATCAGAACAGCACCTGCAATCGGTAAAGTATA -CCAAGTTGCAACTGCACCCACTACTGATAATGTAATCAGTATTTGTTCGGGACCGTAAGCCACTGAAGAT -AATGCATCCGACGAAAGAATCGCTAACCCTTTAAACTTCGATATCTTTTCGTCTTTTAGTTCTCTGTTTT -TTTTAGGTTGCCCTATAATAAGTCTTTTAAATTGATTGAACATAATCTCCTATTCCTTTTTATACTTTTT -GATGGATATCACTATACGCCTATCCTTCCAAAAAGTATAGAGAGTTAATTAATATTTTTTATGTAATTAT -ACACCTATTAACATATAAGGTGTCAAAAATAATGGTAAATATACCTCTTTAATTAATTTATTCAATAGAA -CTGGTATAATAAAATAAATCTCATTAGGCACTTAAGTAAATTTAACATATAAAAAGGAATGTTTATGACT -ACTAAAAAACTGTATTTTCTATCCATTTCTATTATCATTTTAGTCGCCATTTCAATTGCTATATATATAA -CATTAAATAGCAATACGAAGACACGGTTAACCAATGATTCGCAACAACAAATAGATACAATTATCGAACA -TGATTTACAAAAGGGACATATTCCTGGAGCATCAATTTTAATAGTAAAAAATGGCAAAGTTTTTTTAAAT -AAAGGTTATGGTTATCAAGATGTTGATAAAAAAGTCAAAGCTTCTCCCACAACAAAGTATGAAATTGCTT -CTAATACGAAAGCTTTCACAGGTCTTGCAATTTTAAAATTAGCTCAAGAAGGTCGATTAAACTTAAATGA -TGACGTATCCAAACATGTGCCTCATTTTAAAATGAACTATAATGGTCAAAATGAAACTATTACGATTAAG -CAACTTTTGGCTCAAACAAGTGGTATACCTAGTGATATTACAAGCGAAGACTCCGTAACAAATAAAAATA -ATCGTTTAAATGATGTAACCCGTGCAATTATGGGTGATGAATTACATCATAAGCCCGGAGAAGAATTTGA -ATACTCAAATATGAACTATGATTTATTAGGTTTAATTATCCAAAACGTTACGAAGCAATCCTATACAAAA -TATATTACAAATTCATGGCTCAAGCCTTTGCATATGACACATACATCATTCAAACAAAACAATAACAAAT -CAAAACATGATGCTATTGGCTACGAATTACAAGGTTCGACACCTGTCGTCTCTAAACCTGAATTTAACCT -TTGGGATACACCATCAGCATATATGATGACATCAACTGAAGATTTGGAACATTGGATAAAATTCCAACTT -AATCCACCTGATAAATACAAATCATTAGTTCAACAATCACATAAAAATTTATCATCAACAATTGGTGAAC -CTAATGCCAATGCATATGCTTCCGGCTGGTTTACTAATAATGATGAACATTTAGTGTTTCATTCAGGAAC -GCTCGATAACTTTTCATCATTTATTTTACTAAATCCAAAACAAAATTATGGAATTGTTGTGCTTGCAAAT -CTAAATTCGGAATATGTACCCAAATTAGTTGAGCATCTTAACACACAAATTGTAAATCACAAGCGATATT -CGACAGTTGCGTCTATGCTCAATCAATATAAAGATCAATTTAATATTGTTACCGTTTTGATGACAACACT -TATTTTATTAGCATTTATATTCTCAGCTTATCGTGCTTGGCAAATGCGTCACGGGAAAATCATCCTGCGC -AAATCAAAACTTACCACATTTTTAAGTTGGCTAACTTTATGTTTATGTATCGCTATAGCACTCATATTAT -ATGCATTACCATATCTCATTCTCGGTAGCAATAACTGGTCTTTTGTACTGACTTGGCTGCCAATAGAAAT -TAAATTAACGTTAACTACAGCATTTATTGCATTATTCAGTATGTTAATTACACTTCTGTTAATATTACAT -ACAACGACAATTAAGAAACCATAAAAAAGACTTGTTCAATCGCACATCAATCCGAAACATACATATTTAT -GTATGAGGATTAGCGATTTGAACAAGTCTTCATTATTAACATGCTATATGCAGAAACCGATTATTTAATT -GGATTCATGCCATCTTTCCAAGTTTTATAAATCAGAGTACCACCTTGCGCTTTAAACTTCTCATTGCTTA -CGCCACGTTCAAATGGTTGCGCAGGTTGAATATCAATATTTGGTTCAACACCAAGTTGTTCTTTATACCA -TTCTGCAAATTCAGAACCTTTAACAGGTGCATCATCTGCTACATTATAGATACCATTTTCAAAATGAATA -GCTTGAATAGATGTTTCAACTGCATCATCAAGATGCACAAATGATGTTACGCCATCTGAAAGTGTCACTT -GACCATCCATAAATTGATTATAAATCATGCCATCTTTTCCGTACCAAGTACCTGGACCATATAACCAGCC -AAAACGTAAAACAACGTATTCATCCATACGGGCCGTTTCTTCTTCTAGACCAACCACACCATCAACCGTT -ACTTTTCTATCTCCAGTTGAGTTAAAATCAAGTGAAGTTTCCTCATTTGCTAATCCTTCGCCCGGTTCAT -ACATAAAGGCAATACTTTGGGCAATTACTTTCTTAACATCATGCTTTTTCGCCGCATCAATTAAGTTTTT -AGAACCTTCAATACGTACTTTCGTATTTGCTGCCATATCAACATTTTTTAAATCCGTAATTTGGTTGATA -ATGATTTCTGGTTTAAAATCTGCTAACGCTTGATCAATGGTATCAGCTTTTAATATATCACCAATATATG -CTTTTACATTAACAGCAGCTAGCTTTTGTTGACCATTCTCAGATGTAGTAAAACCAGCAACCTCATGCCC -CTCTTCTTTTAGTCTTTGAACTAATTTAATGCCAATAAGGCCCGTTGCACCAGTTACAAAAATTTTACTC -ATTATAAACACCTTTTCTCTATTTGTCTTTTAATATAATTACTTGCTTGATGAGTGTACAAAATTCACGT -AAGACTTCCAAATGATTTGCCTCAATTTTTTTCAAAGTGTCGTCGTAAAAACTGTCTAGCAAATGCTAGT -AGTATGTCGTAGACCTATGACAAATCTGAATTATGACGAAGACCAATCAAGAAAAACAGCACCAAGATCA -TTTCAATTTGAAAGTACTTTACTGCTGTTCTTTATTTATTACATTTCAATTTTAATAATGACCGTAATAT -CACGTGATTGTCATTTCCTTGCAATCACACCTAAAAACACTAATTAATCCTGTGCATGTCGCTGACTTTC -TTTAGTATGAATTAAATCAGTAATAAAGCGATTGACTGGTGCTTCAATATGACGTTGTTTACCTAATGTT -GCAACTGCGCCATTAATATAATCAATTTCAGTCTTTCTATTATTAACAATTAAATCTTGATACATGGATG -GATAATGCGCACCAACTTTTTCATTTAAATCAACTAAATATTCAAATACTTCATCAACATTTAAATGAAC -ATTATCAATCGTCGCTACATGCACTATTTCTTGCGTTAATTTATAAATCAAACACTTCGCATAACTACTT -TCATTCAGTGATGCCATATTACACTCCAACACTGTGCTTAATGCATTTGCCGTACCATTAACACAAATCT -TTTTCCAAATCGATTGGTATAAATCTTTACTAATGACACCATTCAATTCCGCTTCGTTAAGTAAATCAGC -AACTTTTATAACATTTTCTTTACCTTCATCAACTAGTTCACCTATTTCAACTGGTCCACTACCAAGTAAA -TGACTGTGTCCAGGGCTTTCAAGACCTGCCGTCCAAGTCGTAACACCTCTGACAATTTGTGATTGAGCAA -CATACTGCGCAATGATTTCTTCATGCTTCAAACCATTCATCGTACATACGACAATCGTTTCATTATCAAT -ATGTGGCTTCATAGCTTCCATCACTTCTTTTAATTGCATAGACTTTGGAAATAGAAAGACAACATCGTAA -ATGCTTTCGTCCGGTTGATCATTAAAATGATACATTGGAATGTTTAACTCGAATGCCTCTCCATTAATCG -TTATATTTAATCCATGTTGCTTAACCGCTTCAACATGAGATGTATATCCGTCAATAAGTGTGACATCATA -TCCTGCTTGAAATAGTTTGGCACCAAAGCCACTACCTAATGCACCCGATCCAGCAATTGCAATTTTCATC -CTATAAACCCCTCTTCATCGTTGTTGTTCATTTTTAAAATACTACTTTCGCATATTAGCGTCAATTTGAA -AATCATTCGCTTAATATACACACAGCTTTTATCGTCTATAAAAGAACACACCTAACATTAAACGTCAATA -CGCAACATTAAGTGTGTATGATAAACTTACTTTCACAAAATTTCCTTTAAAATCCCTACATAATAACTTG -CTTTCATTTCAGTTTTACAAATTCGTTTGATTTTTAGGAACTAATAGTAAAATGACTAAAAATGCAACAA -TTGCTAGCAAGGCATTAAACATCATACCTGTGAAACCACCTAAGTTCAAATTTAAATTAGCTGCTAACAC -AGTATAAACCGTACCAGATACTGCTACTCCAAATGCATTTCCTAATGATGACGCCATTTTATATACGCCT -GAAGCAACACCCGACTTATCATCTGGCGCACTAGCAACTGCTGTATCAGTTGATGGTGTAGCATATAATC -CTAAACCAGTACCAAACAATAAATATCCAACTATACTAGATACGATATACCACATTTCTGGTAAAAATGT -TAACGACAATAAGATTAACCCAATCACTGTAAAGCCACTTCCTAGTAATAGTGGGCGTTTCGGACCATGT -TGAGATAAAATCTTTTCACCTACACGAATCATAGACAACACTGCTATTAAATACGTTAATGAAATATAAC -CCGTTTGCGAAGAATTAAATCCTAATTGTTGTTGATAATACGTGTTAATGACGATAAGTGCACCACCTGC -TACACCATTTAATAAGAAGTTTGAAATAGTTGCACCACTGTATCCTCTATTTTTAAAAATTGAAAAATCA -ACGAGTGGGTGCTTTATTTTATTTTCGTAATATACAAAACCAACTAATGAACAGATAAACACTACAATTA -AACCTAGAATTAACGGTGAAACTAAACCAAAATGGGACGTCTGTGTAATGATTACATTTAAACTTAACAT -TGTCACTACTAAAATGACTAACCCGATAACGTCAAACTTTTTAGCTTCTGCTTTCATACCTTTGATTGGT -TCTGCTTTAGTCTCAGGTGCATGTTTGATTAAGTACATTGCTAATAATGTTAATAGAATTGAAACAACAA -ATATTGAACGCCAACCTATATATGTAGCCACTAAGCCACCAAACAACGTACAAATACCACTACCACCCCA -AGAACCAATAGACCAATAGCTTAAGGCACGTTGTCTTCTTGTACCAATATAATATTCGTTAATAATAGCA -AGTGTGGATGGCATAATACATGCTGCAGACAAACCTTGAATTATTCTACCTATAATTAAAAATGCTGGCA -AAGGTGTAATAATGATGAGTAATGAACCTACAACATTTAATATCAATCCTACATAAGTAATTTTGACGCG -ACCAAATTTATCAGCAACATCACCAGCACCTACGATAAACAAACCAGCAAATAAGGCAGATAAGCTAACA -GCGATATTTATCGTTCCAACGTCACTACTATATGTTGATTGTAATGGGACAACAAGATTAACAAGTGACT -GCGCGAATAGCCAGAAGGTAATAACCCCTAAAACGATACCTAAAAGCAATCGGTTGTCACCTCTAAATTG -TTTTGATGTGTCCATGAATTAGATAAGCCTCCTATGTTTAAGAAAAACAAATTTTTAATATGATATATTA -AGAAACAATATCATAAATTTGCAGAAAATTATAAATAAAACATCTCATTTTTTAGTATTTTTACAATAAT -CAACGCTTTTTATCCAAAAACTTTCATGATAATAATTTCTATTTTAGTGTAAACGCATACAAACACAACC -TATAAAAAGGCTACTCAAAGATTATTTGATCTCCTTGAGTAGCCTCATTTTTTATAAATCATGAAACGGA -ATCGCTAAATTATAAACATCTTCTACTATTACATATTAATACTTTGCGGCCGATGATTAGATTGATTTTT -ACGATGTCGTGTCGTTGGGTCTAATCGTTTTTCTAAAAATCTTAATAGTACATCAATGACGATTGCAATG -ATAGCAATCGGAATCGCACCTGCTAAAATAAACGTTGTGCCATCCGTCGCATTTGTACCACGAATCACAA -TGTCACCAAGCGTAGGTGCTCCTATAAATGATCCAACGGCAACAACACCTATCGCAACAACCAAGGCAAT -ACGAATGCCACCGATAATAACCGAAACAGATAACGGTAATTCAATCATTCGTAGCACTTGATTGCGTGTC -ATTCCCATACCTTTGCCAGCATCCTTAATATTCGCATCAACACTAGCTATACCAGTATAAGTGTTTTTTA -TAATTGGAAGTAACGCATATAAAAACACTGTTAAAACTACTGTTTCTGAGCCTAAGCCCATGACTAACAT -TAAAATAGCTAACATTGCAATGACTGGAACTGTTTGAATTATATTTGCAATTGTAATTACAAATCCAGAA -AGTTTTGTGTATCTTGCAAGCAAGATTCCCAATGGAATACCAATTAAAGCTGCAAACAGCACACCATAGA -CAGACATTAATAAGTGTTTGAAAAATAAGTCCCATAGATAGCCAAAGTTCGTAACATAATAATTGAATAA -TTGCTGTAATAAATTACCTTCCATTACTTATGACCACCTTTCTGTTTATCAAAATAGTGGTGTTTTTTCA -AAAATTCTTCTGCGACGACAGCAGGTTCTTTACCTTTACCATCCGCTTCATAATTCAAGCGCTGCATCTC -TGAAGTTGAAATCTTTCCTGTCAACTTATTAATCGTCGTTTTAAGTTCTGGGTGTTGGCGTAATAATTCA -TTTGTTGCAACAGCACTCGCAGCATAAGGTGGGAAAAATTGTTTATCATCTTTAAGTACTTTCAAATCAT -ACGCGGCAATTCGACCATCTGTAGAATAACCTAATGCAACGTCTAACTTCTCTGAGTTTAATGCGTCGTA -GACTAGACCTATTTGCATTGGTCTCACTGTACCAAAGTCAAAACCATACTCTTTTTTAAATCCTTCATAG -CCATCGCCTTTACGATTCATCCATGAACTATCCATACCTAAACGTAAATCTTTACTATGCTTTGCTAAAT -CTGAAACTGTCTCTAAATGATATTTTTTAGCAGTTTCCTTCGTTACCATGAATGCATACGTATTCGCAAA -ACCATACGAATTGAAAAATGTTTGATCAAATTTCTTTTTAAATCCTTGTTGTGTGGCTATCATTGCTTTC -TTAGGATCTTTAATTGGTGCTTCCTTCAAAACTCCCGTTAAATCTGTGCCATTATATCTAACACCTGATA -TATTAGCATCCCCATTAATTAAGGCATTATGTTGAATCGTACTTGACCCTAAATTATTTACTAATGTTGG -CTTTATCTTGCCATGTGTATCATGCTCTATTAACAACCGTAACATATGTGAAATAATTTGCGATTCGCTT -GTTGATAATGCTGTAATTTTGACATCATTTTTCGTGCTCTTACTACCTAGTCCGGGCAAACTACATCCAG -ATAATACGGTAAGCGATAAGACAAGCACGACAAGTATATATTTAATTTTCTTCATTATCTTAGCCTCCTA -ATTATCCAGATACTTTTAAGCCTTTGGGAACTACCCATTTTTCAACTAAAGCTAATAAGGCATCAACACC -TAATGCTAGTGCAGTAACGAGTACCGTTGCAGTTACAATCATCAGTGGATCATATAAATTTAAACCATTG -AAAATGAAATCACCTAATCCACCCGCACCTACATAACTTGCAAGTGTAGCCCAACTAATTACATACACAG -ACGACAAGCGAATACCGCCTAGTATAAGCGGTAAGGCTAACGGCAATTCAACATCCTTCATCAATTGAAA -TTGTGTCATTCCCATACTTTTTCCAGCTTCTTTAATGTTACTATCAATATTTTGAACGCCGAGTACCGTG -TTATTTAAAATAGGTAATAATACATAAATAAATAGCGCTACAATTGCAGGCGTTTTACCAACACCAAAAA -TCGGTATCATAATAGCAAGTACAGCTAGTGTTGGAATAGTTTGTAAGACACCTGCCACAGTTAATATAAT -ATTGGCAGTTCGCTTTGTTTTTGATAATAAAATGCCTATAGGTACTGCAACAATGATGGCAAGTAATAAT -GCCACTATAGAAATATAGAAATGTTCCAGTGTTTTCGACATCAACTGTCCACCATGTTCATGTAGGAACT -CGATCATGATTTATCATCTCCTATGTCACGTACTTTGACATTAGTAGTGTGTTGCTCATGCACTTTTGAG -GACGCAGTGTCTTCCCCCACATATTCTGCTTGCACTGTATCCTCACTATCGCCCCAAATCGTGTCATATA -CAATATCAACAACATTGGCACGCGTAATCAGTCCTACTAAACGCTGTTGATCATCTACGACAGGTACATT -CCTAACGTTTCTTTTTAAAATCGTACGTACAGAATCTTGTAACTTAGAATCAATTTGAACGGTATAAATA -TGTTGTTGCATGGTTTCTCGTAAACTTTTGTGTCCACGTATACCCTGATTTATATCTTCAATATCTAAGA -ATCCTAGTAAATGGTTATCCCTATCTACTACAAAAATAGTATCAACACGTTTTTGTCTCATAATATGAAC -GGCGTCATTCAGTGTTGCTTCTGCTTGTATCGTGATTGGTTTAATCATTACACCTTCTACAGTCTTGTCA -TTGGGACGGTCTTGAATCAGTCTATTTTGTCCTATAAAATCACGTACAAAATCATTTGCGGGATGTCTTA -AAATATTGTCCGGTGTATCAAATTGCACCACCTTACCTTCTGACATAATACAAATTTTGTCTGCTAATTT -AATCGCTTCATCCATATCATGTGTTACAAAGATAAACGTCTTGCCTAATTTTCGTTGTAACGTTTTAACT -AAATCTTGTAACGTATCTCTCGTAATAGGATCCAATGCTCCAAAAGGTTCATCCATTAAAATAATATCTT -GTTCGGCCGCAAGTGCTCTTACGACACCGATACGTTGTTGTTGCCCACCTGATAGTTCTGCTGGATAACG -CTCTAAAAATGACTCCGGTAAATCCACAAGTTTAATTAATTCCTTTGCACGTTTATCCTTTTCTTCTTTA -GTCCATTTCAACAATTTGGGTACCAACACAATATTCTCTTTAATCGTCATATGAGTCATTAAGCCAATTT -GTTGAATAACATAGCCAATATTTCTACGTAATTCGACAGGATTCATACTCCGAACGTCTTTACCATCAAT -TTCAATTTGTCCTTCTGTCGCTTCAATCATACGGTTTATCATTCTTAAAGCAGTCGTTTTGCCACTTCCA -CTGGTTCCAATAAATGCGATAAATTCCCCAGACTGAATATCTAAAGAGATGTCATCTACTGCCTTTTTAT -TACCAGAATAGATTTTCGTTAAATGCTTAATACTTAACATAATCATTTCTCCTTCCTCATAAAAAATATG -ACGAATGATACGCATAAAATAAAAAGACCATCATCGCAATTGTTAAACAAATAGAGTCATAAGTTAAACA -AGTACACATCATGGTCTTGATTATGTAGAATTTTATATTTTTCATCTGTAATGTGAATACTTAACAGTAA -ACGGCGCTATGTATGTTGAATTTCTACCGATTACTTTGTTTGCACATTCGTATATTCGACATTTAAAACT -AACATACTCTATATGATGTTATTAAACATTATCATTTTATCTTTTGCAACTAAATAGATAACTCATATTT -TTCAAAAGCGAATTTATTATCGCTCAATTGGTTGTTTTATAGCAAAAAAGTGTCAAAAATGTGAAATATT -ATTGCAAAAGTCGAATTTTTGTAATAATGCACACGCATCCATTGTTACAGGCGGACAAACGCCCACCCGC -CACTCACAAAGTCCTCCTTATATTTCAATATCTTCATCATTCATTGTAGACACCCTTGCCTTATGCTAAC -AGTTCCTACTCCCAAGCCTGTAACGGAATTCCACCGTCAAAGTGTTGCCCATGATAGGCACACCTAAAAA -ACAACCAACAGCATGAGCCATTGGTTGTTTCGTGTCATCTTGTATGTTGTTGTATAACCGGTATGCTTTT -ACTCATTAATTACTTATCATGCATCCCTTTACCTTCTAGTATTTGGTTAATATACTTTTCAACACGCTTT -TGTCTTGTTTCACTGCGTTTAGCTTGTCCAATGTGATAAATGTATTGATGCTGTCTGCCTGGTGTCAATT -TATAAAATGACGACTCTAGCTGTGGCATTTCTTCGAACTTAGCTTCTAACTCTTTAGGAATAACATATTC -CTCTGTTTTCTTCATTTCAACTTTTTTACCAGCTTTTTCAGCTTTAATTGCTTCAGCAATATAGTATTTA -ATTTCTTCTCGACGTGCTTGAATCTCTTCTAGATTTTCAAATCGTAACTGACGAGCTGCTTGCACCTTTT -CAGTCTGTTGAATGAGTGTATGATATTTATCCTCCAAAATGGCACCTTTATGAAATAATAGTGCAACATA -ATTTTTGAAGCCATGGATAAGTACTACATTTTTATTATTCAACGTGTAACAAGGATGCATCCATTTATAC -GCTTCCTCTAATTCTGTTTCATTAAAGATTAACGCTCTCAAATATTTATATTCTTCTTGCCATTGACTCT -CTTTATTTAAAAATGCCTCAACTTGTTCATTCGATTGTTTCTCACTCATAGTCATCACTTCCATTTTATT -TTTCAATACACATTGTATTATATATCCTAATTTTATAAAAAACTAATTTTACAAATGCTTTTGCATTCTT -ACAAAAAATGCATTTGACTATTATTATAATAAGCGTATAATTTTTCGCATACTATTTTTTGAATTTTCGG -CAATAACGAAGGAGTATTTATGATTAAAGACAAGCAATTGCACAACGAAAAAATCAATCTATCCCAATTA -GTCTTATTAGGGTTAGGCTCTTTAATAGGATCTGGTTGGCTATTTGGTGCGTGGGAAGCATCATCAATAG -CTGGACCAGCAGCAATCATATCATGGGTTCTTGGATTCCTAGTCATTGGAACCATTGCCTATAACTACAT -TGAAATCGGCACAATGTTTCCTCAATCAGGTGGCATGAGTAACTATGCCCAGTATACACATGGCTCATTA -TTAGGCTTTATTGCTGCTTGGGCGAATTGGGTGTCTTTGGTGACAATAATACCTATCGAAGCTGTGTCAG -CTGTTCAATATATGAGTTCTTGGCCGTGGCATTGGGCGAAACCAATGAAACATTTAATGGAAAATGGCTC -TATTAGCACATACGGATTGCTAGCTGTATATCTCATCATTGTTATTTTTTCTTTATTAAACTATTGGTCC -GTAAAACTTTTAACATCATTTACGAGTTTAATTTCTGTATTTAAATTAGGCGTACCCATGTTAACCATCA -TCATGTTAATGTTATCAGGATTCGACACTTCAAATTACGGACATTCAGCAAGCACATTTATGCCTTACGG -AAGTGCACCGATTTTTGCTGCAACAACAGCATCAGGGATTATTTTTTCATTCAATTCATTCCAGACAATT -ATTAATATGGGTTCAGAAATTAAAAATCCTGAAAAAAATATCGCAAGAGGCATCGCTATTTCACTGTCAA -TCAGTGCAGTGTTGTACATCATTTTACAAAGTACGTTTATCACTTCTATGCCTCAATCAATGTTACAACA -TAGTGGATGGAATGGCATCAACTTCAATTCACCATTTGCTGATTTAGCTATCTTATTAGGAATTAATTGG -CTCGCAATTTTACTATATATTGAAGCTTTTGTATCACCATTCGGTACTGGCGTCTCATTTGTCGCCGTTA -CAGGTCGAGTTTTACGAGCAATGGAGAAAAATGGACATATCCCTAAATTTCTTGGGAAGATGAACGAAAA -ATATCATATTCCACGTGTAGCAATCATCTTTAATGCCATCATTAGTATGATTATGGTTACGTTATTTAGA -GATTGGGGTACGCTAGCAGCAGTTATTTCTACTGCAACTTTAGTAGCCTATTTAACTGGCCCAACGACAG -TGATTGCATTAAGAAAAATGGGACCAACAATGACTCGTCCATTTAGAGCAAAAATTTTAAAAGTAATGGC -ACCATTATCATTTGTATTAGCTTCATTAGCTATATATTGGGCAATGTGGCCAACAACGGCTGAAGTAATT -TTAATCATTATACTTGGCTTACCAATCTACTTCTTCTATGAATATCGTATGAATTGGCGTAATACAAAGA -AACAAATTGGTGGTAGCTTATGGATTATTGTATATTTAATCGTGCTATCAATACTGTCATTTATAGGAAG -CAAAGAATTTAAAGGCTTAAATATGATTCACTATCCATTTGACTTTATCGTTATTATTATTGTGGCGCTT -ATCTTCTATTACATCGGTACAACGAGTTCATTTGAAAGCGTCTATTTCCGTCGCGCAACACGAATCAATA -CAAAGATGCGCGAGTCACTAAATAATGAATCAAAGTCATCTTATTAAATATTTTAAAATGCAGTGCCATA -TATGATTTCAACACACACATTAACCAACCATTGATTTCAACATCTTGGTTGGTTTTTTATTTTGAAAATG -GGTTATAAATAACTAACATAACAAGATAGCGAGAGTGATATTGTAATGAAATGTCACTGTAGAAGAACAT -CATATAATGCTGAAAATGGTTTGAGTTAAAACAGATATCAAGCTCGTCTGATTCAGCCACAAAATTGTCT -TGTTATACTTGTCACCTATCATCCATAGACCGTGGTATGATTAAATTGGGGATGATAAAGGAGGTTAATA -AATATGAAGATTAATACTACAGGTGGTCAAATTCATGGTATTACACAAGATGGTTTAGATATCTTCTTAG -GCATTCCTTATGCAGAACCACCAGTTCATGACAATCGCTTTAAACATTCTACGTTAAAAACACAATGGTC -AGAGCCAATTGATGCAACTGAAATACAACCCATCCCACCGCAACCAGACAACAAATTAGAAGATTTTTTC -TCCTCACAATCTGCAACTTTTACTGAACATGAAGACTGTTTATATTTAAATATTTGGAAACAACATAATG -ATCAGTCGAAGAAACCTGTCATCATTTATTTTTATGGTGGTAGTTTTGAAAATGGTCATGGTACAGCCGA -ACTCTATCAACCGGCACATTTAGTACAAAATAACGACATTATCGTTATTACATGCAATTATCGTTTAGGC -GCATTAGGATATTTAGACTGGTCATATTTTAATAAAGGTTTTCATTCCAATAATGGACTTTCAGATCAAA -TCAATGTCATAAAATGGGTGCATCAATTTATTGAATCCTTCGGTGGCGACGCTAATAACATTACTTTAAT -GGGTCAGTCTGCAGGCAGTATGAGCATTTGGACTTTACTTAAAATACCTGACATTGAGCCATACTTCCAT -AAAGTCGTTTTGCTAAGTGGCGCACTACGATTAGACACCCTTGAGAGTGCACGCAATAAAGCACAACATT -TCCAAAAATTGATGCTCGATTATTTAGATACAGATGATGTTACGTCATTATCGACAGATGATATTCTTAT -GCTGATGGCGAAGCTAAAACAATCTCGAGGACCTTCTAAAGGGCTTGATTTAATATATGCGCCTATTAAA -ACAGATTATATACAAAATAATTATCCAACAACGAAACCAATTTTTGCATGTTATACAAAAGATGAAGGCG -ATATTTATATTACTAGTGAACAAAAAAAATTATCGCCGCAACGCTTTATCGACATTATGGAATTAAATGA -TATTCCTTTAAAATACGAAGATGTTCAGACGGCGAAGCAACAATCTTTAGCGATTACACATTGTTATTTC -AAACAGCCGATGAAGCAATTTTTACAACAACTCAATATACAAGATTCAAACGCACAACTATGGCTTGCTG -AATTTGCATGGCATGATACTTCTAGTGCACACTATCGCAGTGCTTACCATATTCTAGATATGGTATTTTG -GTTCGGAAACTTACAAATATTAGCAGCACATCAATATCCAACAACTGCTCACCTTAAATTTTTAAGTCGA -CAAATGCAAAATGATTTAGCTAATTTTGCTAAAAGCGGTAAAATGCCTTGGCCGATGTATCATAATGAAC -GTCGCTATTATCGCACATATCAATAACGTTATCGCATCTAAAAAAGCACACCTGAATTTGATAGCAGGCG -TGCTTTTCATATGAGAATTATGATGATTTAAATGTTTTAGCATAATGATTATTTTTCAATGTGAAAACAA -CGATTAATCCTAATGAGCCAATGATGGCACTCGTATACGTGATAGCTTGAACAGAAACATGTGTCATGAC -CAAGCCTCCAATAATGCCTCCAACACCAATACCAGCGTTTAAACTAGACATGTTCCAACTCATTACTTGG -CTTGTGTCGCCTTCAACATGTTGAATCACACCGCTTTGCACTGCTGGATTAGTACTCCATTGCATGATAT -TCCAAATAAATAGTCCTGCTAACAATAGACCTGAACCAGGTAAGATCAAATTCATAAGTAACATCATCAC -GATAAAAATAGAAACAGAAATCATTAACCAACGCTTACTTGTAATTTTATCAGAGAATATACCACCTAAT -GATGTTCCAATAACGCCAGCGATTCCATTTACTAGAAGTGCTAATGAAACGAATGACATATCATGACCAT -TAGATAAAATAAGTGGATTTATAAAGACGAATGTCACTGAGTTTGCAATCAATACTAAAAACGTAATAAT -TAAATATTTTGCTACTTCAGCAGGTCTTAATATTTTCGAAGTAACATGATTTTCATGAGATGGTGCCTCA -TGATTCACAGGGCCTCGTTGTATTTCCTGATCCTTCGGTAAATAGATCATCATTAAGAAGCCAACAATAA -TACTCACAATAATTAAGAATAGAAATGTATAGCGCCAACCTACTAAATCGCCGATAACCGTTCCAATTGG -TACACCAAAAACATTGGCACCACTAAACCCTGTATAGACAAGTCCAATCATTTTGCCACGATTTTTAGGT -GCTGATAACATCGCTGTAATAGCTAATACTTTTACGATAATTAGTGCTGCTGCTGCAGATGAGATAATTC -TACCAACTACTAATATTGAAAAATTTGGCGCTACAGCAATAATGCCATTACCAATGATAAATATAAGTAA -TGTCCATAATAATACAGGCCTTGATGAAAAACGGTTCGTTAATTTAACAAGAATAGGTCCACATATCGCA -AATGTTAAAGCGTACATTGTCACTAATTGACCAACGACAGCTTCTGATACATGTAAGTCCTGACTCATCA -AGTTCATAATTCCTGCAACCATCATTTCAACCATTCCTACGATAAAAATACTTAAAATGAATGTAAATAG -TCGCATGATTGACATTTTAAAACTCCTTTCAACAAAATTTCCGATATTCATTTCCCTTAGAATAACGATT -TATTAAAAAATGTGTGCAACACAATTTTATATATAACCGTTCTATTATATAATATTTTGCTTTAATTTTC -TGTGCTTAATTGGAAAATTATTGAAATTGTTTTTCAGTATTTGAAAAATTAACACAAGTATGTCATTTAA -TAATTATGTATAATTACTTCAGTTTCAACAATGACTCCAAAAAAGCACGCACGCTTTATATGTCAGAACA -TATAACTGACTACAAAGTATGCGTGCCTTTATGAATATTTTCGCTGCGCTAAATAATAACATTACTATAT -GTGCGCGTCACTTCATTACAACTATAGCGAAGCTCTAAATCACATCCAGCAATTGCTATCATGACTCACT -CTTAACATCCGTATTTCGTGCTACTAATTGATGTCTTGCATTGAAAAATTGACCATAGCTTAAATATGTC -GCAATCAAAGCAGACATAATGGTCGCAGTTGTATGAATAAACACGACTAACAATTGAAATTTAATCGCTT -GTAAAGGTGGTACGCCACCAATAATTAAGCCTGTCATCATACCAGGAATCGACACAAGCCCATATGTTTT -AACCGAATCAATTGTTGGCACTATAGCTAAACGAATACTTTCACGTATTGCACCTTTAGAAGCCAATTTA -GTTGTAGCTGCAAGTGATAATTTAGATTCAATATTAGTACCATCTTGTACGAATGCACGATCTAAATTTT -GGTAAGCTAAATTAATTGCAATCAAGCCATTATTTGCAAGCATGCCGCCGATAGGTATAACTTCATTGGC -TGTAAATTGAATGGCCCCTGTCGCAATAGTACCTACAAGCGGTAATGCCGTTCCAACAAAGATAGCCACA -AAGGAAATCAAAAAGACATGGTGCATGACAGGTGATGATCGACTAATCGTATTCCATGATGCGTTGACAA -TAATGACAAATACACATAATACTAATAGCCATTTGTCATTAATTTTAAAAATATAGTGCAGTAAGAATCC -TAAAATGATTAATTGTACGACCGCACGTAGTGTCGCCACAATCAAATCTTTAATAATATGTAGACCTTCT -TTATAAGAAATAATAATTGGAATAACTAATAGCAATGCCGTCAGTCCTAATGCTGTATTACTCATGTTGG -TTCAACTCCTCTGTATTAGAAATTTGACCATCAACAATGGTTATACGCTTTTGAAAGTGTCGCATACTTT -GGTCATCGCTGTGGGTAATCCACATAATTGCCACGCCTTGATCTGCTAATTTAAAAATGATATTTTCTAT -TTTTTCTTTATTATTAATATCTAACGCACTTGTTGATTCATCTAATAGAAGGATGTCTGGGGTATACATT -AATTGGCGTGCAATCGCGATCCTTTGACGCTCGCCACCTGACATATGTTCTATTTTAGAACTTAATTGAT -AGTGTCCTAACCCTACATCTTTAATTAATTGCTTAGCACGTTTTTTATCAAATTTATCATTACGCGCAAG -AGACGGAAAAATCATATTGTCTTCAATCGTTTCACCAAACAAATCGCTTTGTTGCATTAAATAGCTAATG -TGTCGGCGTAATATTTCTGGTTCGTAATCATCATATGGTTTACCTTTAAAGTAAAGCGTTCCACTGGTTG -GGCTAATTAAATTACATATTAATTTTTGAAATGTACTTTTACCACTACCTGAAGGACCAATAATTGCAAT -GGTTTCACCTTTATCTACTTTTAAATTAATATGATTTAGTATGACTCTATCACTTGCCTCATACACTAAA -TCTTTTATCTCTAACAACATATTTACCCCTCCTCGTATCATGAGTTATTTCGATATAATAGGGTAATCCT -TTTCTTGAATAGCGTGCTTACCTATAAGTCGGCCTAGTCAATGCTTATTACCCATTAAAATCGCTCTAAT -AAAACATATCAAATATAGTATTCCCATTTTTGAAAAATTTAGTGCCATTTCATTCTGGAAAATTTTTTTA -ATATTTATGTGAAAATTGAAGTACACTGCAGTGACTTAGTCTCATCTTTATAAAAATAAAAAGCCTTTAA -CATGACATCTCATGCTAACTAAGCATCTAACTTAGTTCTTGCATGACATCATATTAAAGACTTTCTTTAT -TATTTATGGATTTGACTACCACATGATATTTTTATAAGTTTCATCATTCAATGAACGGACAATTTCAGTA -ACAAGACGGACAGAATTTTCATAATCATCTACATTGAGTACCGATACATTAGAGTGCATGTATCGTAACG -TGACACCTATTGTCATCGTTGGAATACCTTCATTTGCGACATGAATACTTCCCGCATCTGTACCTCCACC -TGGTGTCGTATCCCATTGTACTTCGATGTTATGTTTCTTAGCTACATCTTTAATATGCTTTCGCAAACCT -TGGTGCGCAATACTTGTAGCATCCATCATAATAACAACTGGACCACCGCCTAGTTTACTATCACTCGTTT -GACCTGACATACCTGGTGTATCATAAGCAATACCCACATCGACGGCTATCGCCAAATCTGGTTTAATTGT -ATTCGCTGCCACTTTCGCACCACGTAACCCAACTTCTTCTTGCACTGTGGCACCACTGTATAAGTTAATG -CCAATATTTTCATCTTTTAAACGTTTTAATACCTCAACAGCTAATGCACAGCCATAGCGATTATCAAATG -CTTTCGCAGTTAAATATTTATCATTTGTAAGCACTTCAAATTCACTATATGGCGTAACCATATTGCCTAC -TTCAACGCCAGCTTCTTCAGCTTCTTCCTTGCTACTAACACCAATATCTATAAACATATTTTTGATTTCC -ATTGGCTTTTTACGTTCTTCAGGCGTTAAGACATGCGGCGGTTTAGAACCGATGATACCTCTAATTTCTT -TGCCTGAATCTGTTGTAATCGTTACTTTTTGAGATAACATGACTTGATTCCACCATCCACCAACTGGCGT -AAATGAAATAAAACCATGTTTATCAATCTTTGTTACCATAAAACCAACTTCATCCATATGGCCAGAAATC -ATAATTGAGTATTGACCATTCTCAGCATTTTTCTTTCCAAAAATGCCACCCAAATTATCTTCAATAATTT -GATCACTGACAGGCTCTATATAGTTACGCATTGCTTCTTTAACTTGCATTTCATAACCAGCAATGCCGTT -TACATCTGTTAAATGTTTAAGTAATTTGACTGACTGATTCATGTTATTCATCCTCCTGTATTTCAACTTA -AAACTATTGTATCACTAACTTTCAGAAAAACGTTCCCTACCGCTTTATCGTTTTCAGGCTTAATAATTTT -AAAAACTTTGTGAGAAATCCGCTTCAAAAACCTCATATTTACAAAAAAATTATCAAAATTTAAATTTTTG -AATAACATCATTTTTTAGTAAATGTTATAATTTCTTTATAATACAAATATCGAAAGAAGGCGACTGACTT -TGAAAAAATTATGTTCATTAATTGTAGTAGCATTAGTTTGTGTCATTGCATTATCAGCTTGTGGTAAAGA -ACAAACCAAAACATATGAAGGTGATGTTAGTGGTAAACATGTACTAACTTCTATCACATATAAAGATGAT -AAAGTTTTAAAACAGTCTACAATCAACACAATTAAATATGACGATCTAGGTATGGATAAAGACGAAGCCA -AAAAGTTATTCGCCAAATCTGAAAGTATTTTCAAAGACCTTAAAGGCGTAAAATACAAAGTAGACTATAA -AGATAAAAAAGCAATTGAACACTTAGACATAGATTACACAGAAGTTGACATGAAAAAATTAAATAAACGT -CTTGGTGTTTCAACTAAAGAAAATAAAGATATTAGTTTTGAAAAACTTGAAAAGCAATTAAAGCACAGAG -GCTTAAAAGAAAAAGATAAAATGGACGACAAATAGTTTATAACATAAAAATGCCCTCAGATAAGACTAAG -GTTACAAACCTTAATTCATATTCTGAGGGCTTTAATATTTGAAATTCTTGTGTGACCAACATCCACTACT -AATATAAAATTATTTGCAGTAACGCTAAAATCCGCTGCTTTCATTTTCCCGAAATAAATAAGTTAACTAA -TGAGTTTTAATTTATAATCATGTATCGTTTGCAATTCACCATCGACTTTTCGATATACAATATGATCAGC -AGTAATTTCTGTAGGGCTTGATACGCCAACAGCTGCTGCAATATTGAATAAGCCTTCATGCAAACTTGTT -ACATAGTTTGTGACACGATATTGCTTTTCTCCAACAATCAATGCTTTTTCTTTTTTCGCATCTGTCGTTG -CAACACCTACAGGACATGTATTCATATGACATTGTTGACTCATAATACAACCGACACTAATCATCATGCC -ACGTGCAATATTAACAAAATCTGCACCTAAACCTAGTGCAATCGCAATTTTATCTGGTGTCACTAACTTA -CCAGATGCCGCTAATTTCACTTTATCTCGAATACCATATTTTTCTAACATGCCAGACACAATAGGTAGAG -CTGTAAATAGCGGTAAGCCAACACCATCTTGTAATTCTTGGAATGTTGCACCAGTACCACCTTCACCACC -GTCAATCGTAATAAAGCTTGGATACTTATCTAATTCCACCATCGTACGTACAAGTGTTTCAATTTCTGAA -ACTTTGCTTACTACAATTTTGAATCCTACTGGTTTTTGACCTAATTGCTGCAACTGATCGACGAAACGAA -TCAAATCTTCAGCATTATGAATAAATTCGTAACGGTTAGGTGAATTGATTGTTTTATAAGGTTCAACATT -TCGGATTTTAGCAATTTCTTCGTTTACCTTTTCAGCTTCCATATGACCACCACGAGTCTTAGCACCTTGT -GCCAACTTCAGCTCAAATGCGCGAACGTTAGTTAACTGTGCGACCTCTTTAAATAAACCTTCACTAAAAT -TACCTTCCTTATCACGAACACCAAATAAACCGGGACCAATTTGGAAAATTATATCCCCATTACCTTTTAA -ATGATATTCTGATAAGCCACCTTCACCTGTATTCATCCAAGTGCCCGCTTTAGCTAGACCTTTAGATAAA -GCTGTAATGGCATTTTTTCCTAAGGCTCCATAACTCATACCCGATTGTCCTACGATACGTTTTAAAATAA -ACGGATGTTTTAAATGTTCACCTAATTTTATTGCATGATCATCACTTAAGTAATACGGATCAATCTTTGT -CGGTACACGATATTCTTCACGACTAAATAAACGCTCATTCGCGATTTTATAAATGAATGTTGATAACAAT -GTTGTATTATCTACTGAAATCTCATTACGTTGCATCGGAAACATTGTGTTCTGTATGTAAAAGCCGTCTT -GATAATCTTTAGTAGTACCGAAGCTGGTCATACGAGAGTTATATTTTCCAGCCAAAACGATATTTTTATA -ATCATTACGTGAAAAAGGTTTCCCTTCATTATCCCCAGAAAATAAATACTGACGTAATTCCGGTCCCATT -TTTTCTGAAATATATCTAATACGTGCTAGTAAAGGATAATTCCTTAATACACTATGTTGTGATTGTCTTT -TATCTTTAATTAACCAAATAAGCCCGATAACCATGACCGTAAGCAGGAAGCCTATAATGATAATATTAAC -TATAAATTGCATGACTGTAAGAAACGTCATTACAATCCCTCCCCCAAAAAATTTCAATTCAATATTTATG -ATACACCTTACAAAATAAAACACAATGGAAGCGCTTCATTTTATAAAACAATTTTATGATATGTTTTTCA -TTTTAAATTTTAATGTATAAAACATACAATACAAAGTAATATGTGCTAAAGTATCTATATAATACAACTA -TTTAAGAGGTATACTATGTCAAATACAAATAAACATTACATAGAAGAAGAATACGCTACCGAACAATCGC -GTTTTTTCAAACGTGATATTGGATTTATCTTCCTTTATATATTTTTGGTTAACATCTTGCCAATCATTAT -CGTTTTTTTAACTTTTGGGTTAGTAGCTGTATTCACTCAACAAGCCCCATGGGGTTTCTCTTTTCCTATT -TCAATGAACATTAGCTATTTACTCGCAGTTATTATTTCACTAGCTATTTTTCGTCGGATGCATGAAGATG -CATTTGTTCCAATGATACGTATGCAAATCGTTGCCAGTGCTAAATATAAATGGCATATTCTTATATCATT -TACATTAAGTATCGTACTCTTTTTACTTTTAAATCATTTCGCTATTTTCGCACTAAATGTAGATTCCTTT -ACTGTCTTTGACATTTACCCGCTCATTAGAGAATATGGTTCCATCAGTTTAATAGCTATATTTTCGTTAA -CCATTATATTAAATACTTTGATTTGTCAACTTATTTTCCGTCATATTTTAATTCAAGAATTAAGCAGATT -AATACCTTTAAAGATTACAATAGTATTATCCGTTATCCTTGAAACACTGTACTATTATCCATACATTAAT -ACATGGTGGGAATTCATTCCAGCATTGATACTAGCTAGTAGTGCGACTTACTTATATTTAAAATCAAACC -GTAATTTTATGGTGAGCTATTTCTATCAATTAGCAGTTATACTCGTTTTGCATATTTTCATGTAAATTTT -TTCAGAGTATTATCCATTATCCATACACATCAAAAAGCACACTTAAAAGTCAGTATCACAACTCACTTTT -AAGCGTGCTTTATTTAGATATACTGTCGTTCTAAAAACGAGCCATATAGAATGTTTCATGTCCTAGCATG -AAGCACATGAATCGCCATGCTCAATATACCTTTTAAAATTTAAATATTCATTAACTTAATATGCTTTAAT -TCACTTCATTAAAGACTATTTGCTGGGCGTGGTGTTGGTTTTTTCAATAAACTCATAATCATTATTACAA -TGACTAACATACCACAAATTAGATACATCCATTTAAATCCTACTAAATCGGAAATAGGTCCCATCAATGC -GCCACCTAACGATATACCTAAGTCTGCACAGGCAATAAATAAACCTAACAACATATTACGACCTACTTTT -GGTAAGACGAAACTTAAGTATGATGTTAATGTTGGGTACACCATTGCTTGTGTCATTCCTATTAATATTG -CACTGCCATAGAAAATAATTGCACCTACTTGCGGACCAAATGCTACTACAAATGACGCGATTACTAATAA -TGATAGTACAGATACCATATATTTAGGATGCCACATACCATCTGACGGAATGTATTTCCTTAAGTAAAAT -CTTGCCACAACAACTGCGATGGCCTGTATTGTCAAAAAGATTCCCGCATTCGCGAATCCTAAACTCACTG -TGTATAACGGTACAAATGTACTAACTGCACCAAATACAATCGATGCAACAATCATGATAATACCACTGTT -CAACAACTCTTTATTTTTGAAAAATTGCGCAAAAACAGTTACAGCGTTAAACGGCATTTTTTCAATCTTA -TCTGACGTATCGGGTTCCTGTTCAGCAAAGGTCACGCGATAGCCAAAGAATGTTGTTGTTAATGCGATAA -AGATAATGACAATTGCAAATAGTGAAATATTATTTGCATTCCAAATACCTACGGCAACTAATGGTCCGAT -TAAGTTTGGAATCGTTGAAAATAGCGAGTACAATGATACACCTTCAGAACGATGTTCCTCCGGTAATGCA -TCAATAATACCTAGCTGTAAAGACATAGAAAAGAATGCCGTACACACACCTTGCATAACACGTGCTACGA -AATAACCTTCTAAGCCAGTAAAACCATAAATAATTAAAGCTATGGCATTGATAATCAAAATAATTCTTAA -TACTTTAATGGGACCGACACGAGCAATAATTTGTCCTGCCCATGGTCGAAATACCATTGCTGTTAACATG -TATGCCCCCATAACGATACCGATAACCGTATTCGTTGCGCCTAAATCATGCCCTCGTAAAGGTATAAACA -CGTTTAAGATTGCATTGGCACTAAAGAACATCAATGTTAATATATATAATCTCAAAAAGGGCCAAGCCAT -TGCACCTTTCATTATCTCACTCCTTAGAATGATAGTTGTTTTTCTATTAATTCTCTTGTATAAGCATTGT -CACTTTTATGCAATGCGCTTGTCGGAATTTGTTCTTCTATTTTTCCGTTTTTAAAAATAATTAATTGATC -ACATAAATACGTGGCAGCTTGAATATCATGTGTGATAAAAATATAACTCAACTGACGCGTTTCACGTAAA -TGAATCAATAAATCTAATATTTGTGTTTGAATTGACATGTCGAGTGAACTAATGGCTTCATCAAACAAAA -TATATTTAGGGTTAATACATATTGCGCGCGCAATCGCAACACGCTGTGCCTCTCCACCTGATAACATATT -AGGATATTTATCCATGTATGCCTTAGATAGACCAACTTCTTCCAACAATGTAATTGCTTGGACTTCCATA -ACATCTTTAGGTTGTCCATCACATTGACACATCACTTCAAATAAGATTTCTCTAACAGTCTGAAATGGGT -GTAATGATGACGTATAATCTTGAAATACAGCACCAATTTGATGACGTCTCACTTTCTTCTTATGCATCGG -TTGATCATTTAAGGTTACACAACCTTTATCTGGTTTCTCAATACCTAATATCATACGACTCAACGTCGAT -TTACCGCTACCACTTTCTCCGATAATCGCAATCGTCGCACCGATTGGACACTCAAATGACACACCTTTCA -CGATAGGTGTTCGACGACGCTTAAAAACATGTGCGCTTTGATATGACTTTTCAACATCTTTAATTTTAAT -CATGTACATCACCCCTCATCACATGTTTAAAATGATCATTAATCTTTTTCTTAGTGGATAATAAATACTT -CGTATAAACATGTTCTGGATGATGCAAGACTGATTCACGCGTACCATGCTCAATCAGTTGACCATTTTTC -ATCACAACAACACGGTCTGCAATCTTGTTAATAACCGTTAAATCATGTGAAATGAAAATCATCGCACAGT -CAAAGTGTTTTTTTATATCTATAAATGCTTCCAGTACATCATATTGTGTAATTGTATCTAAAGCCGTTGT -CGGCTCATCAGCAATGATTAACTTTGGTTTCAAAGCTAACGCTAAAGCAATCATCAATCGCTGTAACATT -CCTCCTGATAACATGTAAGGGTATGATTTTAATATACGTTTAGGATCTTTCAAACTTAAATAATCCATAT -ATTCAATCAATGTCTTTTCAATTTCTTGTGTAGACATTGACGTATGTACTTTCATAGTCTCAAACATTTG -TTTACCGACAGTAGTTGATGGATCAAAGGCACGACTACCTTGTTGCATGACCATCGCAATATCTTTACCA -CGGTATTTTTTCAATTGTGTTTCCGATAACGACAACATTGACTTACCATCAAAGGTTATATCACCTGTTA -CGCGTAATCGTTCTGGATTTAAACCTACAATCGATTTGCATGTAATTGATTTACCGCTACCACTTTCTCC -AATAACGCCTAAAGTTTCACCCTTAGTTAATGTAAAATTCACATCACTCACGAGTGGTTGATCTGTCCAG -GTATCTGTAATCGTCAAATGCTTAACTGTTAACAATGTCATGATTGCACCACTCCTTTTTTCACAGAACG -AAGTTTATCTTTAGAAGAGATGCGGGGATCAATGGCAATTTGTAAAGCATCGGATAAGAAGTTAAATGCC -ATGACTATAATCACTATGGCAATACCTGGCGCAAACATCATTTCAGGATGTGTAAACATCACTTTTCTAG -CTTCGTTAAGCATCATGCCCCACTCTGCAGTAGGCGCTTTGACACCTAATCCTAAAAATGAAAAGCCAGA -TATTTGCAAGATCATTGAACACATCGAACTACTAGAGATGATAGCAATATCTGCTAATGTTAACGGCATA -ATATGTTTGTGAATAATTTTCATATCATTCATACCGATTGTTTTAGCAAATCTTACATGGTCAGAAGCAG -TGTACTGCATAACACTTGTACGTATAACGCGACAGAACCATGCCCAACGCGTCAAAATAAATGCCATGAT -AATATTTTCGGCACCCATACCAAACAATGCAATTAATGCTAACGTTACAACATAACTTGGGAATGCCAAC -ATAACATCACACGCACGCATGATTAAGGCGTCAACAAACCCTTGGAAATATCCTGATAAGAATCCTAAAA -TAGATCCAATAAGTACAGAAACAAATAGTGCAACAAAGACATATAACAAACTTGGTCTAATCGCATAAAT -TAACCTAGTTAAAATATCTCTACCTAAATGGTCAGTACCTAGTAGATGTTGAAAACTCATGCCAGCAAAT -TTGTTTGCTGTATCGATATGGTTAGGATCATAAAATGTCACAAGTGGTGCTGCTAATCCTAAAAAGACAT -ATAATACAATAATGCCTAAAGCAATCACTGCACCTTTATCTTGTAATAATCGTTTTAAAATTATCATCGT -GCGCCCTCCCTTAATCTTGGATTTAATAGCGCATTAATGATATCTGCTAATGTATTAAATACAATAAATA -ATACCGCTACAATTAATACATATGCTTGAATGACTGGAAAATCATGTTCAAGTATTGCTTTTAAACTTAA -TTGACCTAATCCAGGCCATGCAAAGATATACTCGATAACAACTAGTCCACCCATTATCATTGGTATAGAC -ATACAAAAGATTGATACCGCAACTTGTAAAGCATTACGCAACACATGCAACATTAATGTGATAGATTTCA -CACCGCTTGCTCTTAAATAAAGTACATAATCTTCATTTAATTGTTCCACCATCGAGCGTCTAACATTTCT -AAAGTAAATACCAGCATAGGCAATCGTAATAACGATCACTGGCAATATGTAACTTTCTGGACCTGTTAAT -CCAGAAGTCGGCAATATGTTTAACTTCACTGAAACGTAAATAATAAGTATTGAAGCTATCCAATATGATG -GTAATGCAGTTAGAAAGAAAGCCACTGAACGTATCGCACGATCAGTGAACTTTCCTCTTTTTAATGCACT -AACTACACCTAAAATAATTGATGTAATCATCACCATAACACTTGAAATCATTGTTAATTTCAATGTATTC -ATAAATGCTGGACCAATGCGTTCAGCAACAGGATCACCTGTAATGTAGCTTGTACCAAAATTAAATTGCA -TCGCTTCAAGTAACCAATTTTTATATTGAATTAATAATGGATCATTGAAACCGTACTTCTCATTCGTTTC -TGCAATCAACTCTGGTGTTACATTTGGCGTTCCTTGTGCATGTAAAATTGTCACAGCTGGATTTTCATTT -GTAATATACGTCAATAGAAATGTCATAAAACTTACTACAATCATCAATGGAAACATGAGCGCAATACGTT -TTAAGATAAATTTGAACATCTAAACGCTCCTTTATTTATACTGCATTTCATTGAATGGTAATTCATACTG -TGATTGTGTGAATGCTACTTTTTCTAAATCTTTCGGCGCAACAACTGTCATACTACCGTGTGAAATAGGG -ATAAAAATACCTTCATCATCAATTTGTTTCAAAATGTTTTTATAAGCGTCTGAACGCTCTTTACCGTTTT -GGATTTTAAATGCGTCATCAATGCTGTTGTATATTTTATCTTTGTTCTCAATGCCTGATGTTGCACTTTC -ATAACCATTTTTCGCTTTAAATGCTGCAATAGTACTTTGTGGATCGTACAATAATCCCCAAGTTTGGTTG -AACATTAAGTCATAATCACCAGAAGTACGACGTTCAGCAATTTTATCTGATGTTTCGCCATTGATGTTTA -ACTTAATACCCATTTTCTTAAATTCTGCTTGTAAGTATTCTGCTTGTTCTTTTTGACTTGAAGAACCTTT -GTCATAGTACATTGCCATTTCAAGGTTTTTACCATCTTTTTGACGAACATCGCTGTCTTTACCTTTCTTC -CAACCAGCTTCATCTAATAATGATTCTGCTTTTTTAAGGTCATACTTACGTGTTGGCATATCGAAATTAA -TGTCTGTTACATTTTTCGCAAATAATTGAGTTGCTGGTTTTTCTTGACCATCTAAAATTTCTTTGGCAAT -TTTATCTCTGTTTACCATATGACCAATCGCTTGTCTGACTGTTTTGTCACTGACAGCGTTATCTTTTTTA -CCAGAATTGACCACTAACATTTTCGTATTCATAGGTTGACTACGCTTAACTTGATAGTCACCTGTATCTT -TCAATTGTTTTAAAGAGTCTTTGTCTAAGCTATCTGTACCTCTATCGTCTGTGAAGGCAAAGTTTGTTTC -ACCTTTTTTCATTGATAGGAATGCTGTTTCACCAGCAGGCATTACTTTTGCTTGTACTTTGTTAAGTTTA -GACTTTTCGCCCCAGTATTGATCATTTTTATTAAAGTCTGCAGACTCATCTTTTTTGTGTTCACCTAATT -TAAATGGACCAGTACCATCGAACTTTTTAACGCCATCTTTTGTTGTGCCGTTTTTAAAGTCTTTTGGAGA -TACAAATACATATGGACGAGGCATCGCTAATTCAGCCAATGCAGGTTGATATGCTTCTTTCAAATTTAAT -TCAACCGTGTACTTATCTTTAACTTTAACATTGTCAATTAATGTTGAAATCTTTAACCAAGAATGCAATT -TTTTGTTTTCTTGAACTGCGTCAATATTTTTCTTAACTGCGTCAGCATCAAATGGCGTACCATCATGGAA -TTTAACGTCATCTCTCAAATGGAACGTGTATGTCTTCCCATCTTCTGACACATCCCATTTTTTAGCTAGT -AAAGGCTTAATCCCATCTTTCGTGTTACGTACAAGCGGCTCGTATATCATACTTTCAGCAGACATCGATC -CACCGTAAACATGCGGATTCATATCCCCGATATCTTTAACCGTCGTATACGTTAATTGCTTGTTTTCTTT -TTTCTCCTCTAAACCTTTATTACCGCCACAACCAGTTAAAATTAGCCCTGATGCAAGTAACATTGCACTC -ATTTTAGTTAGTTTTCTCATTTGCTTTTCCTCTTTCTAAATTGATAAGTTGCATTACTTAATCAAATCGT -AATGATTATTTTTCTCAATTATTTGCTTATTTTTATGTAAATGTCAAACATAATTCAATAATTTTTTTCT -ATTATAAAACTTCAAACCCTTATTATGAAAGCGTTCTATTGATTTCCAAAAATTTTGTGACGAGTGCCTT -ATCTCCTTCAAATAGATTTGTATTAAATTGAGAAGATAGTTGTTGATCTTGATGCATATCCTTGTACGTC -TTACAACTTGCTTCATAGCGAGTTAGGAACTGATTAATCATTGGCGTTTTGATACCTAGCATTTCCCCAA -TATGCTGAATCATCGCTGTTCTGTAATAATCCTCACTTGGCATTCTTGGAATTTGAACAACATCCTGTTC -ATTTTTATAGACTTGCTTAAATGGTACAGCTGAAAAATCAAAGTAATGTCCGTTTTCGTCTGGCTGTGAA -AATGGATCAATAAGGATTGCGGTATATCTTACATAAAGCAGATATTCTTGTAAGATATCTGGCAAGATTT -CGAAATGCTCAATATCACCTTCATCCAAAGTTTCAGGACGTACTGGATAATTTTCCTTCACCATAAATTG -AAGCAGGTTGACTGACGGTACTCTAAATGCTTGTAAAATAGCCATCATTTCCTTCCACATTAAACGCATT -TCACGGATTAGTGTCATCGTTATCGGTCCTTCAGGAAATAACTTATACACATAAACCGGTACATCCGTTC -CTTCGAAAATGGCTTTCAATGAAAAGTCATTCATAAATAGTGGTGGGTGCACATAAAGCGAGCTGTTTCG -CGTTTCAGCATGCAGTGGCGATTCAACGACTTCTAATTGAATCTTCAACTGCTCAGCTAAAGCAGAGATT -CGTTGACACATTGTTGAGTTTGAATGTGTCGATCCCATGTACAATTTCTTTTTTACACCTGTTGTCAACA -CATGATTAGGTGCTTCTTTATCAACAATACGTGTATCGCCAAGATAAGTTGAAAATGAAATCACTTCGAT -ATCCTGACTGAACTTAGACATAAATTGTTCCACAATCATTTGCGATCCAAATGTCGGTGAAATTAAAATG -ACATGTTTGACACTTTGCAAAGTTTCTAACGACAATTGCTGTAGTGTGTCATAATAAGCATCTGCTGTGC -ATGCCATGACAACCGTTTCGTATTCACCCTTAACGTTTTTAACATCTTTATACAAACGATTAATTTCAAA -CTTACCTTCCAGATGTTGATGCGCCTCGTTTTGTATTTTGACTTCAAATTGTTTCTCTTTTTTATACGCT -TGATATAAGCGTTTTGATTTTTCTGATGTTGAGGCACGTCCAACCATATCAATCTCATAATCTGATTTTA -AATAGCAAATATTCGCTAATTGGATTGCGACCGGACCAGTGCCTATCATTAATAATTTAGACATCCGTAA -TACCTACCTTTATAGCTGCTTTTTTATAAAGTGCTATATCAAAAATTTGCTGTGGTCTCATATGTTTATT -CACACATTGCCACTTATCTTCCGCTGTTTCTTGTGACGGATAATTAAATATTGCTTTGATGCCATCACCA -AAGCGCATTGCAACTACGACATTTTCATTTGTTAAATCATATAATTCTTCTAAAATGCTGTACTTTAAAG -GAATTGTCGAGCTGAATATGATATGCGTCACATCTTTGATATCTTTAAGTTCAGATACCTTTTGATCCGT -AATTGTTATATCTTCATTTGGTGCTAAGACGTTAACGATTCTGCGTCCTAGGTCAACGGCTTGTGGATCA -ATATCAATACCGATAACTGAAGCACCTGTTTCTTTTGCTACTTGAATTAACGTCATTGGATATGCACCTG -AACCAACTAACAATAATTTGTCATTGCTAGCTATACTACATTGTCCAAACTCTTCATCAATACAATGTTC -TATATTGTCAAAGTAACCTGTGGTAGACGCCTGTCCGTCTAATAGACGTCTAGCTCTAATGACTTCCACT -TGTTTAACACACTGCGCTGTAATATATTGCAGTGATTTTATTAATTGTGCTTTTTCTTCAACGTCACGCC -AAGCATTAAATTGTTGTTCATAAATAGGATTTAAAATAAATTCACTATAGTCATCCATCAATGTTTCTAA -TACTTCGATATATTGATCGTCTTGTAATACACGCTCGTAATGCGCTTCAAACTTTTCTAAATATTGTTGT -AATATCAATTTGATTTCATTATTAAAGTTATTCATTGTAGGCTCCTTATTCTATATATGCTTTTCCTGTA -GCTACAGTTGTAACCTGTCCTTTAATTGAAGTTTGATATCCCAATTGATGACATCGCTTTGATGTCACTA -AAATACTGCCCCCTGGCTGATGTACTGTAAAATCTTTGCATGCGTCATTACGTTGATAATTATTAAAAAC -CCCAATTGATGCTGTACCAGAACCACAGCTATTTTCCCAAATTAAACTTTGGATTTCTGGTATATAGATT -AATGGCTGTAAAAATTGACGTTGTTCATCAAAAAGCATCATACCTACTGTTTTATATTTGTGATTCCATT -GTTGCTCACGCACATATGTTTCAACCAAATGTTGAATTTCTGTTGTTACTTGACTAACTGGAATCACATA -ATGTACATATGTTTCATAAATAATTTCTATTGCTTTCCATGAATGATTACCCATATTAATTGTTGTTGGC -ACAACACGATGGGCTTGTGGCATTTGAACTTCATAGTATTGGCAGTCATGAATTGCGCATTGCACTAAAT -CCGAACAGCCAGATACCTTCACCTTAAACTGTTGGTCTTTAAGCAAATGACTTTCCTGCAAATGATGTAT -ATATGACATCGTCGCATTACCGCAAAATTCATTACCGCTCATAACTAAGTGAAAATCATTGCCATCATCA -TTTTGTGTTGATTCTATAAAGCCTACCTGTTCACAACATACATGTGTTGCGGCCATCAACTGATTGGCGA -TAGATGCATATTCACTAGCATCATGTTTTGAATGAACAAGTATCGTCATATTCCCCGAAGGATTATACTT -AGAAAATTCTATAACCTGCCGATTCATACGACACTCCTTTAGATGTATTTTTAGAGCCTCTGTAATTTTA -ATTACTAGAGGCTCTTATGCAGTTGTTGCGAAGCAAGCAACTGTATTCCTCTAGCTCTTTTACCTTAAGT -GATTTTTCAGAAGATGAACCTAATAGTTTCCCATCTATTAGGTAAGTCATGCTAATCCGCAAAAGCGAAA -AGCATGGCTTTATATGCAGTTGTTGCGAAGCAAACAACTGTATTCCTCTATACCTGTAATTTTTTAGAAG -ATGAACCTAATAGTTTCCCATCTATTAGGTAAGTCATGCTAATCCGCAAAGTGGAAAGCATGACTTAGTA -ATCGGTTGTTGCATCAACATGCAACCGTAAACCTTATTTAAAGTTGCTTCTTGTGGCTCTACAAGCGAAT -GCAGTTGTCCGTTAACTACATTCACTTAGATGCTTTTACTGTTTTCACCTCAACTAAAACTTCAAAAAAG -TTGCAGAAAACAAATCGTAACTATTACGATTTGATTATATACTATATTAGTTGAGAATCATTGTCAATAA -AGGTTGTAAATGAAAGCACATTTATATTTTATGAATCCCTCCATAAACATCGCATTCTCAGCACATTCAA -GTCTTTTTGAAAATTTTTATCAAACAAAAAAGCCAGCTTCAACGTAAAATACGTTAAAACTAGCTTTAAG -CAATACATTTCATCAAATAAACAAATATTTATTTTTCAAAGGTTAATAATTCCCCGTCATTTGGTACAAC -AACTCTATTACCTAAGTCGTTAGAATTTATAAATTCATTCAGCTCTTCACGAGATAAATGCCAATGATTG -ACCGCTTCCATATTCACAACAACTATTTGAGCAAGCGACAATGTATGAGCGACTTTCAATACATCATGTT -CATCCATCACTAACGGCCCGCCTTCAAAGAATTGATTTGCACCACCATTAAGTACTATGATATCTGGATG -ATGCGCTTTTAAAGTCTTCTCAACACCGTCGAACCAAACCGTATCAGCAGCTAAATATAACGTTGGCTCT -TCAGAATGTTTCAGCACTAAACCGTGAACATGTCCTGTCATTTTCAAGATTTCACCATGCCCATGTTGAG -CATCTGTTTTAATCAACTCAATTTCTCCAATGTGTGTCACATCATTAAATACCGAAACGTTTGTAAAGTC -ATAACCCTCCACTTCACTAGCGTCTGCTTCGTTTTGTGTATAAATTTTAATATCTTTTGGCAATACTTCA -ATCGCTTTCGGATCAAAATGATCAATATGCAAATGTGTTAAAATTACTAAATCGATGTTGTTAATGATAT -CTTCAATTGCTAATGGTAGTTCTACAAGTGGATTGTTTTCATCTTGTCTCGGTGAATTTGGAAATGGTTC -AAATGCGCCTTTGTCACTTAGCATTGGATCAATCAAAACGCGTTTACCTCCATACTCAATCACGGCCGTG -GCATTTCTTATATGTCTAATATTCATGTTAAATCCCCCTATTTCATATGTCTGTCATTGCGACAATATGC -ATACATTGCCTACTTCATGCCAAATTATTTTCCACTGGATATCGATTTTAAAACAATTATTCCAATGTCC -GCTTCCACGAATCATCACTCAACATCTCACCAGGCCATGTGTAAGCCATAACACCACCGTCAATGCGAAT -TGTTTCACCAGTAATAAATGAACTCTCATCAGATGCTAAAAAGACAACGAGCTTGCCTACTTCTTCTGGT -TTGCCTAAACGTCCCAGCGGTGTCATCCATTTCTGATTTTCTCTAAACGCTTTGCCTTCCTTATCTTCGC -TAGTACCTGTCAGTTTATCTACTAACGGGGTTTCAATTGTACCTGGTGCAATTGCATTAGCTCGAATGCC -ATCTCTACCATATTCGATTGCAATGGATTTAGTAAAATTAATCACTGCCCCTTTCGCAGCATTATATCCT -GAGCGATACAAATCTGCTGCCTGTCCTGAAAATGAAGATGTGTTAACAATAGAGCCACCTTTAGTCATCA -TTAAAGGTAACATCATTTTCGTCATCAAAAATGTTCCACGCATATCTACATTCATAATCTTGTCATATAC -ATCTGTTGGATACTCATGAATTCTACCAGCCGCATTATCCACACCGGCATTATTAAATAACACATCAACA -TGCCCAATCTGTTCTCTAATTTCTGATGCAAAATTGTCAATTTGTTGTTCGCTTGCAATATCCACAATAT -AAGCCTTTGCTTTGTCACCATTACTTTTAATTTTATCGACAGTCTCCGATACCGCTTCAGCTATGTCTAC -CGCCAATACATACGCACCTTCTTGAGCTAAAGCGATTGCAGAAGCTTGTCCGATACCTGTACTTGCTCCT -GTTACGACTGCAACTTTATTTTCCAAACGTTTCATTCAGTCACTCCTATACAACATATCTTAAACTTACA -GTCCTTATTTTCCACTGTTCAATGCTTCATAAACCTAATAGCTAAGTCTCCAGGCAGTCTTAGCTACTCT -CTGCTATACAATTTCTATTGAATAACTCAAAATATTTAACAATATTAGATTTTTCATTTTCTGAAAATTG -TTACTTTTGAGAGTATTTTTTGTTACACTTTAAATATTTAACAAAGGGGGGAATCATTGATGACATCAAA -ACATCAACAAAAGGGGTCTATCGTCAATCGTTTCTTGAATAGTGTTGAAAAAATTGGAAATAAATTGCCA -GATCCTAGCGTTTTATTCTTTTTAATGTGTGTGGGCTTAGCCATTATGACGTGGGTTATCTCATTATTTA -ATGTATCTGTTAAGCATCCAGGTACGCATCAAACCATTTATATTAAAAATATAATTAGCCATGATGGATT -TACAATGATAATGAATGATACGATTAAAAATTTCTCAGAGTTCCCAGCATTAGGCTTAGTACTAGCAATG -ATGATTGGTATAGGTGTTGCAGAGAAAACAGGATACTTCGACAAGTTAATGATTTCTGTTGTGAATCGCG -CACCACGTTTCTTAATTTTACCGACTATTATATTAATTGGGATTTTAGGTAGTACAGCCGGCGATGCTGC -TACAATTATCTTGCCGCCGCTCGCAGCGATGCTTTTTATTAAAATTGGCTATCACCCTATCGCTGGACTA -ACGATGGCATATGCTTCCGCTGTAGGTGGCTTTGCCGCAAATATAGTTGTTGGTATGCAAGATGCTTTAG -TCTATTCATTTACAGAACCAGCAACACGTATCGTTTCAGATTCTATTAAAACAAATGTTGCTATGAACTG -GTACTTTATCGCAGTGAGTGTCGTTGTATTACTTCCTACGATATTGCTAGTTACAACTAAACTGATTATT -CCTAGGTTAGGTCAATATGATGATCGTTTAATGCATGATGATCATGAAGAAACGTCTTCACATATTACTG -ACAAAGAAGCACATGCTTTAAAATGGGCAAATATCAGTTTCATAGTCACAATTATTTTATTAATTATTAC -AGCCATTCCTGAACATAGCTTTTTAAGAAATGCTAAAACAGGCAGCTTACTAGACGATGCGCCATTAATT -AACGGTGTCGGATTAATTATTCTTGTTGTATTTTTAGTACCTGGATTAGTTTATGGGATTTTAAGCAAAG -AAATTAAAAATACAAAAGACTTAGGTAAAATGTTTGGCGATGCTGTAGGATCAATGGGAACATTTATCGT -TATTGTGTTTTTTGCAGCACAGCTACTTGCGTATTTAAAGTGGAGTAATTTAGGAATTATCGCTGCTGTT -AAAGGTGCCAAATTATTAGAACATCAAAACGGTATTGTATTGATACTAGGTATTATTGTACTGAGTGCAA -TGGTCAACATGTTAATCGGAAGCGCATCGGCTAAATGGGGTATTTTAGGACCGATATTCGTACCAATGTT -AATCCTTATCGGCTTTCACCCCGCATTTACACAAGTCATTTACCGTGTAGGAGATTCAATTACCAATCCA -ATTACACCGATGATGCCGTACTTACCTTTACTATTAACTTATGCACAAAAATACGATAAACGCATGAAAC -TCGGAGCCTTACTTTCTAGTTTAATGCCGTATTCAATCGCGCTAAGTATTGCGTGGACAGTATTTGTCAT -TATTTGGTTCTTATTAGGTATCCCTGTTGGACCAGGTGGACCGATATTCGTTAAATAACAGCACTCAAGG -GGATAATTTAAAATGCCACTATACAAGATTTGACCTGTATAGTGGCATGATTTGTTATGATATAGCGTTC -GAGATGAAACTCTGTATTTATATGAACAATTATAGTTTATCACTAATAATATTTAGTCTGTTCCAACCGT -TAATTTGGTTTACAACAAAGACAAGATCAATAATTTGTTCTTCATCATAAAATGATTTTAGCCGGTCAAT -AATTTCAAACTTCTTAAAGTCTTTGATTGAATTTAACATTTCTGCAAATTCAAGCGTCACTTTTTCTTGA -TCAGTAAATAAATCTAAATGTCTAAAACTCAAGACTTCATCAATTTTCATTTGTGTTACGCCCAATTCCT -TTAATTCTTTTTTATGGATATCAACACAATAATGACAACCGTTAATTTTTGAAATTAATAACTTAATCAA -TGCACTAAGTTCATCATTAACGGGTGATTGATGAATAAACTTTTCACCTTGGCTCATTACAGACATTAAC -TCTCCATTTTGTTTCTTGTAATTATACGGCATTTGCAATCTCTCCTTTACATTGTTTAATACCAATCCAG -TGATACTACACTTCGAACAATATTGGATAGAATTTGAAATTCTGTATAACATCTTGTCAATCTGTGCTTT -AGTTAAAACATTTAGCGCTTATATTTAAAAAATATATAAAATATGAAAACAGATTGAAAGGATATTATAC -CTTGCTCTACCCTTTTTTATAAAAAATCACACACATTTGAGAAAATTTGATAATGTCAATAAATCACGTC -ATCGCCATTGTTATTCGGTATATAATGTTTTTATAATGGCCAAACTATTATTTCATTTATATTAATAGGG -TTCACTTGTGTTAATGTACTGTAAAAAAACTGGCGAAGTATTGGTGATGATGAAGTGATTTATATTAATT -GCGAAACACCTTCGATAGCAATGAAATAGATTATTGGAAGATTAAATCAAAAATAAAGAAGACCCTAGCG -GCCTTCTTTTTTGTCTAATTCTTCTTTGATTTCGTCAGGTGATTTTGTTTTTATTTTAATTATTTCCGAT -AAATTTTTGCTTAGTATTATATCACCTACAAATTGAAAGTTATTTTCAGGCGATGCATAAGCAACAAAAT -CATCTTTTTTGTTTTCGTTTATGTATCCTTCAATCACTGCACTTCCCATAGGACTTGTTTCCAACTTTGT -GAAGTGTACAGATTTGATCGTATTCGGTTCTTTAGTGTTATGCTTGAGATAAAGTGTAATACGCGCTTGT -TGTTCTTTATAATAAATTGCTTTTTGCTTTTCTTTTTCATCATATTTCATTTTAAAATGTATGACCGTAG -CGACTATACATATACATAAAATAACACCAATAATTATAAAAACATGTTTTTTGGACATTTAACCACCTCC -AACTTTTAGTGACCCTTCTTTTTGTTTAGCTCTTTTTTTATATCATCAGGCGATTTTAATTTCTGTGCTG -GTTTTAGTAATTCACTTAATCTTTCACTTTCTATCATAGCGCCACCAAATTGATAATTATGTTCTGGTGT -AGCATAAGCAGTAAAATTATCTTTTTTGTTTTCATTTATGTAACCTTCAATCATAGCACTTCCCATAGGA -CTTGTTTCCAAGTTAGTGAAATGTACAGATTTGATCGTGTTCGGTTCTATAGTATTATGCTTGAGATAAA -GTGTAATGCGCTCTTGTTGTTCTTTATAATAAATTGATTTTTGTTTTTCTTTTTCGTCATATTTCATTTT -AAAATAGATACCTGCAACACTGATTAATATGATTAACATAATATTAGTTAATATTAAAATTTTCTTTTTC -GACATGTATCACCAGCTCCTAATGTAAGGTGGAAAATGAAAAATTTTTATAGTTCTGTAATAATTAATGT -TATAGTTTATAAATCATAGTACCACTATCGTCGTATCCAACAACGTGAATATTAGAATTAACTATTACTG -AGAATTGAACGATATGATATTCCGCTTCTATAAAATTCGACACCCTACTAACATAAATATCTTCGATAGC -AATCGATATTAAACATGTACAAATCAAGCTAAATATTACGTGAAAATCACTGTTTAGTGTTTTTCTTTTT -GTTTATTTCTTCTTTAATTTTTTCAGGAGATTTTAAATTTTCAGCGTTCTTCAATTTTCCTAAGACTTCA -TTACTTCCTGTCAATCCTCCAGTGAATTGATAGTTTTCTTCAGGTGACCCATATGCAACAAAATCAGCTT -TTTTGTGTTCATTGATGTATCCTTCAATTACTGCATCGCCCATAGGTCCTGTCTTTAAACTTGTGAAATG -CACAGATTTGATGGTATTGGGTTCTTTGGTATTATGCTTGAGATAAAGTGTAATGCGCTCTTGTTGTCCT -TTGTAGTAAAGTGCTTTTTGTTTTTCTTTTTCGTCATAATTTCATTTTTAAATAAATGACTGATGCAACT -ATACATATACATAAAATGACACCAATAATTATAAAAACATGTTTTTTGTTCATTAAAGTAACTCCTAACT -TTAGTGACTCTACTTTTTATTTAGTTCTTTTTTTATATCATCTGGTGATTTTAATTGATGCGCTGGTTTT -AGTAACTCACTTAATCTTTCACTTTTAATTAAATCACCTACAAATTGAAAGTTATTTTCAGGTGATGCAT -AGGCAACAAAATCATCTTCTTTATTTTCATTTATGTAACCTTCAATCACAGCACTTCCCATAGGACTTGT -TTCCAAGTTTGTGAAATGTACAGATTTGATTGTGTTCGGTTCTATAGTATTATGCTTAAGATAAAGTGTA -ATGCGCGCTTGTTGTTCTTTATAATAAATTGATTTTTGTTTTTCTTTTTCATCATATTTCATTTTAAAAT -AGATACTTGCAACACTAATTAATATGATTAATATAATACTAGTTAACATTAAAATTTTCTTTTTCAACAT -ATATCACCAGCTCCTAAAATGTGGTGGGATTTTATACAGTTTACATGTTTATGATACTACATAACACGCT -CTTACAAAGAAAAACTATAATTTTAATCTAGGTCAAGGAAAAGCAATTAAAAGTGTTGATATAAAGTTCA -TCTAAGATCATCGGAATATTGCGGTTATGAAGTGGTTAACAGATAAATTCAGTGGAAATTGTACTAAAAA -TTCAACTTTTCATTTTTATGTGTAAGTATGATTAACTTGAAAGCAAAATTAAAACGACTGCATAGTTTTA -GCGGTCGTTCTTTTTAGACTCTAATTCCTTTTTTATCTCATCAGGTGATTTGGTTTGATGTGCTGGTTTT -AATAACGTGCTTAAATTTTTACTTTTGATCAAACTTCCACCAAATTGATAATGATGTTCTGGAGACCCAT -ATGCAACAAAATCAGCTTTTTTGTTTTCATTGATGTAACCTTCAATTACGGCATCGCCCATAGGTCCTGT -CTTTAAACTTGTGAAATGTACAGATTTGATCGTGTTCGGTTCTTTAGTGTTATGCTTGAGATAGAGTGTA -ATACGCTCTTGTTGTTCTTTATAATAAATTGATTTTTGCTTTTCTTTTTCGTCATATTTCACTTTTAAAT -AAATGACTGTAGCAACTATACATATACATAAAATAACACCAATAATTATAAAAACATGTTTTTTGGTCAT -TAAAGCAACTCCTAAAATGTGGTGGAAAATGAAAAAGTTTTTATAGTTCTGTAATTATGAACATTATAGA -TTATAAATCATAGCACTAATATCGTCGCCTTCACTCACTCGATTGTTAAAATCACCAGTTACTGAGAATT -GTGCAAGGAATAATTTCCTATCATGCTTTTATATCATTATTGCCTTACTAATATTAACAAAACCGATAGC -TATTACATTAAATGCCTACCTCCCACACCTCAAACACCTTTTTATACAGGACGCACTGTAATTTCATTCA -CGTTAACGTGCTTTGGTTGTGTTAATGCATATAATACTGCTTCTGCAATATCTTGTGGCTCAAGTTTTTT -ACGATCTGTTGGATTGTATGTGGCAGTTATTGCTGTATCAACCATTCCTGGAGAAATGCTTGTTACTTTA -ACACCTGTCTTTGCCAACTCTTTTTCTAATCCTTGAGTAATAGTGTGAACTGCCGCTTTCGTCGCACTAT -AAATCGTACTGCTTTTCGTTACTTCAAAGCCAGAAATAGATGCAATGTTAATAAGATGGCCACTTGATTG -TTCTAACATAGTTGGTAATGCAGCCTTTGCCGTGTATAAAGTGCCTTTGATATTAACATCAATCATACTA -TCCCATTCATCTACTTGATAATCAGTAATCTTAGACGACAACATTTGCCCCGCACTATTGATGACAATAT -CCAAACCACCGAATGTTTGTTGTGCCATTTTTATCAATTCATCGACTTCTTCTTTTTTCGTTACATCAGT -TGGCACTACCTTCACACTATCTTGAGCTAATTGATTCGCCACATTTTGTAGTTTATCTTTATTTCTACCG -GCTAAGACAACTTTCGCCCCTTCTTCATGTAGTAATGTTGCAATTGCTTCTCCAATACCACTACCTGCAC -CTGTAACTACTGCTATTTTATCTGTTAATACTGTCATAATGATCGACTCCTTTGATTCTTTTTATTTTTT -TAGGGTACATCATAAGTACATATTACTATTTATACTTTTAAAAAGCGTATCACAATTCATATTCTGGTTA -TACTAACTCGATTTATTTACACTGATAAAGTACATTTTTAAGTTATTCAAAATATACAAATAATCGTTGT -TCATATTTTTTATTTTTAAAAATGTTGAAAAATTGTCAATTCTTTATTGTAAAAGTCGAAAGTTAGTACT -AAAGTTATAAGTATTAGTAAACAATGGCAAGGCTGTTAGAAATGGGGGAGTTATTGTGACATATCATGAG -CGTGTGTTAGCACTGAGAGCAGAAAGTAAAAGAACTGCATTTGATTTTAGATTCGAGGATTTATTTAGCA -AAGAAGAATGGCTAAGTATGTCGCTTGCAGAAAGACAAAAAGCCGAGAAAGCATTTCGACACGAAATCAA -AAAATTAGATGATGTAAGAATGCCCTTCTCAAGTGCACATGATGCCCAAGTGAAACTGTATAATGTTGTG -TATTCATACAATGGCATTAAACGTAATTTCAAACAAGTTGAAAATGAAGGATTCTAATATCATTTCGTTT -ATATATCGTGGACATGATACAGTTATATATAATCTTGTAGGTAATCATACTAAAATTCAATATAGACATG -ACTAAAGCCACATCCAATATAGGACGTGGCTTTTAGTATCGTTCCAGATTTGTGGGGAGTTAGGGTTTAC -TTAATTAAAGGGGTCTGCCCTCAATTGCTCACCAACGAGGGCAAGTTACATCAATCACACTTCAATTGCC -GCCGACTAGGGGTAGTAATCATTGGCAATAAGAACTAGTTAGTGACTAACGATTTACGTTCCATAGCAAA -GTGATACAAACGCTCAGCATCAATGTAAGGCATAGAATCAATAGTTAGGTAACCATCTTTGATGTCACCA -ATTAATCCTTGATTTACACCAGTGTTCACGTAAATATCATAGCTACTTACGTCTGAGAAAATAAGCGCTT -CAATCTCTTTTCTCATAATCATCACTCCAATGTTTATATATTATTTATATAAACTCTCTCGTCTCTCTCT -ATTTATTAACTTCTTACAAGTCTAATATTACATGAATTTCTAAATAAATAAAGGGGTTTGTGATGCATTT -CACAAATTTATCACTATTTTGGAAAATTAAGAAATAGTTAATTATATAAAAGTTTAATAAGTCAGAAAAT -ATGATAAAATGTAGATGTTCTTTAGACATTAAAAGCTTCTAACATGATACGGAATATGAGGTTCCTGTAT -CACATTAGAAGCTTTTTTGTTGTGGTGCTTATATTGATAATGGCATGAATGAACACACGCTGTCTTAGTT -TCAGGAATCGGCTAGAATATTAAACTTCCGTTCTTTGAATATTTTTTAATTTCTTACTAATATCATCCAG -TTCATTCTTCGCCTTTTTAACCCAATCTCCTTGAGCTACATTATCAAATTCACCTTTAAATTTTTTGAAA -TGACTACCTATATTTCACAGCTCACTTTAGATATCGAACTTGTTTCTTCAGAGTTACTTGTTATATTATC -AGGTTTTATTTGATATTCAGTTTGACTCATACCTTGTATCCTCACTTGGAGTATATTGTACAGAATCCGT -AAAATAGATGTTTTCTTCTTTATTTTCTACAAAGGTAAATTCTATATTTTTTGATCCTACTGATGATCCT -TTTAAATCACCATCACCTTTCAATAATAGTTTCGGCGCTTGTTTGGTTGGAATATCATATCTTTTTCTTA -ACTGTTGGACATTATAATCATCATTATTCAATTGATATTTTGCCGAATAACTTGGTACATTAGGATTATA -TGAAATATCACCATCTTTATAATCATTAATATCTTTAAAGTTGCCATATTGTACAAAGAACTTAAGGTTT -TCAATCTCTTTTTTTAACTTGTCATTCGGTAGTGGCTTCGTTGGTATGATTTTATTATGTTCCATTTTTA -CCGGATACCTTTTTTCATCATCCTTTGGTCTGCCGTTACTGTCATCTGTCATTTCACTTATAAAATAATA -CCCTTTTGTGGTTCTAGTATTGCGATTGATATAGAGCACCATTCCTCTCGTTTCCATATCCTTACCTTTT -GGCTCGATTACCATTTCAGAATTAACTATCCAAGTACCTTTATCACCCTTTTTAAATTCTTGATCTCGAA -AGCCTTCTTTATCGTAAAAACCATCGAGATTTTTGGTTGGATATAATTTTAATGTTTGATTAAATGTGTC -TTTAATTTGGGCGTTTCGACCATTTGTTTTTGTCATAATGACATAACCTACAATCAATATAATGAGTAAT -ACCAAGCATATACCGAGCGTTAATTTCTTTGATTGAATCATCATTTCTCCACCTTATATTTTTAATACTG -ACTCAATCTTTAATTTATACATCTAAAGAGAAAAATTTTTTAACACTTAATGGAATTTTCATTCCAAATT -TCTATTAACTCTATTCAGTAGGTTTGAAATTAATACTATCAGAAAAATAGATGTTTTCTTTTTTATTTTC -TACAAAAGTAAATTCTAACTCTTTAGACCCTACAGATGAGCCTTTTAAATCACCATCGCCTTTTAATAAC -ATTTTCGGTGCTTGTTTCGTTGGTATGTCATATCTTTTTCTTAACTGTTGCACATTATAATCATCATTCC -TCAATTGATATTTTTCGGAATAACTTGGCACATTAGGATTATATGAAATATCACCATTTTTATAATCATT -AATATCTTTAAAATTGCCATATTGTACAAAAAATTTAAAGTTTTCAATTTCTTTTTTCAACTTGTCATCT -TGTATTGGCTTCGTTGGGATAATTTGATTATGTTCCATTTTGACTGGATATTTTTTTCTTTTTCATACGT -TTTTCCTTTTGTTTCACTTACAAAAAAATAACCTGTTGTCCTTTTTGTATTTCTATTCATATATAGAATC -ATTCCTCTTGATTTTAAACTTTCTCCCTTTAATTGAATATTCATTTCAGAGCTGATTATCCATGTACCTT -TGTCAAATTCTTGATCTCGAAAGCCTTCTTTATCGTAAAAATCATCGAGATTTTTGGTTGGATATAATTT -TAATGTTTGATTAAATGTGTCTTTAATTTGGGCGCTTCGACTATTTATTTTTGTCATAATGACATAACCT -ACAATCAATATAATGAGTAATACCAAACATATACCGAGCGTTAATTTCTTTGAATGAATCATCATTTCTC -CACCTTATATTTTTAATACTGACTCAGTTTTTAATATTTACAACTAAAGAAAAATTATTTTGAACACTTT -ATGGAATTTTCATTCCAAACTTCTATTAACCCTATTCAGTAGGTTTGAAATTAATACTATCCGTAAAATA -GATGTTTTCTTCTTTGTTTTCTACAAAGGTAAACTCTAAATTTTTGTGTCCTATAGATGATCCTTTTAAA -TCACCATCACCTTTTATTAATAATTTAGGTGCTTTCTTAGTTGGTATATTATACCTCTTTCTAAGTTGCT -TCACATTGTAGTCATTGTTACTCAATTGATATTCTGCTGAATAACTAGGTACATTTGGATTATATGAAAT -GTCACCATCTTTATAATCATTAATATCTTTAAAGTCACCGTATTGTACAAAAAATTTAAAGTTTTCGATT -TCTTTTCTTAATTTATCATCAGCTATCTGTTTGGTTGGGATAATTCGATTATGTTCCATTTTCACTGGAT -ATTTTGTATCTTTACTTTGTGCATACCCTTTACTATCTTCCCACAATTCTCTAACAATAAAATTACCTTT -CGTTGTTCTAGTATTACGATTTATATAGAGCACCATACTTCTAGATTCCATTTTTTTATCCTTCAGCTCA -ACTACCATCTCAGAATCAACAATCCAAGTGCCTTTATCTCCTTTATCAAACTCTTCGTCACGAAATCCTT -CCTTATCATAAAAGTCTTCAAGATTTTTAGTTGGATACAGGCTCAACGTTTTGTTGAAGTTTTCTTTAAT -TTGTTTATCTTTACTACTTTCTTCTTTTTTCATTCCGCAAGCCCCTATAAAAACAGATAGTATTATCAAG -CATAGACACATTTTCAACCTTTTTGAATGAATCATCATTTCACATCCCCATTTTTATTTTTGATGCAAAG -TTAAGTTCAAATTCCAATATTAATAATACTAGAGGAAATTTTATGATTAAATCCTCGTGGCTTTTAATTG -TTAGTTGTATTTTTCACATATTAACATCACAAATTATTTAAAAAAGCGCAAATATCTTTATAATTTTTAT -TGGCCTAACCAACTAATTAATTAAGATAAATTGCGCTTATATTTAAAATAATAACACTGAAACTCAATGT -CTTTACTTGTTAAAATTGATGTTTAAATACATCTTTACTAACATTCATTTTTCGGTTTACATTAATTTGT -TATATAGCGATATATATCATCTCTGACAGCTTTATCGAGTGCTAAATCCATAGTTACTACGTTTGAACCA -TTCGGCATTTTATCTTGCTTCTCTGAACCTTCTATATATCCAGCAGTTCCTAAATAATAAAAATATATAC -CATCATCATCTTTTTTCTGTACAAAAATATACATTTTAATTCCTTTTGCTCTATGGGACAAAATTTTCTG -AACTTCTTTTGATTTTAGCGTTCTATTAGATTTAGTAAACCATTTTAATTCATCTTGACTTAAAAATTCA -TCTTCATATTTTGTGCTATCACTTATATCCTCATGCTTATCATAAGTGATAAATATTGGCATTTCTTGGC -TTCTTATCATGTATCCCATGATTACAGACGAACCATTTTTACTCCAATTAAATATTTTACTAAAATCTTC -TCTTGAATATTTATTATATAAAATCAGTCCATTTTTACCTTTTTGGTATTTTTCATTGTTATACTTTGAT -AATTCAATAAGATCTTCTAAAAATATTTTAAATGTTTGATTACTTAGAGCATTAGTAAATGCATCGCTTA -GTCTTATCATTCTTTCATTACATTCTATAATGGGACTTCCATAGATTTTTTCAATTCCTGCGTTGTAAAA -TGAAAAATCTAAAATTCTTAATGAAGTATCTATATCATCTTCTGTTATATCCTTAACTTCGTTCAACATT -TTATTTTTTAATTCATCATATGTTAATTCATTTTTTAAAAGTTCTTCTAAAACTATACTATCGATTCTTT -TCAATCCAGGTGCTATTTGTCTTGAAAAGAAAACCAGATTTTTAGATTCATTTTCCGTCAATAAAGCATC -TATTTTTTTATACCTTACTAAAAATTCGTAATAATTACTAAATTTAGAAAATATAACGCTTGGATCTATT -GAATGTTGTTGTATAAAATCCATTAGTAACGGCATGTGTCCCAATCTATTTTCAACTTCTTCATAAGCTT -TTAATATTAATTTATTTTGATTCAATGATACTGCATCCAATGAATTGTAAATCTGTTTTTTAGCAACTTC -TTCAAAATTAATTGTAGATACTCCATTAATCGAATCGTTATTCGTTAAAAACTTCTTATAATTATCTTTA -TTTTGCGATTGATCCCCAGAAAGCGCAATCGGAATTAAATAATTTGTCTTATAATTACCAATAAAATCAA -TTACTGTAACATACTCTTTATTTGAACTTTTTCTTAACCCTCTACCAAGTTGCTGAATGAATATAATACT -AGACTCAGTTGGTCTCAGCATTACAACTTGATTGACTTCTGGAATATCAATACCTTCGTTAAATAGATCT -ACAGTTATAATATAGTTAATCTTACCTTCTCTTAATTTTTCTATTACAATTTGGCGATAATTAACACTAT -CGTCTCCTGTTAAAGCAACACTTTTAATCCCTTTTGAACTTAGTTTATCCGCTAAATCATAAGCTTCTTT -TTTGCTACTTACAAAAATTAATCCTTGTAAAATTTCACCTGAATATCCATAGTAATCTGTCTTTTGAATA -ATATAATTAACTCTTTCATCAGAAGTTAAATATCTCAGTTTAGTTACATCATCTTCTTTAATACCTTGAT -GTACATAATCAGTCACACCAAAATAATGAAATGGACATAAAATATCACTTTCTAATGCTGCTTGTAACCT -TATTTCATAAGCAATATTATAATCAAACATTTCAAATATACTTAATTCATCTGATCTTTCTGGTGTTGCA -GTCATACCTAGCATAAACTTAGGTTTGAAGTAATTAAATACTCGTTGATAAGTAGATGCAGCAGAACGAT -GTGCTTCATCAAAAACAATATAATCAAATTCTTTTTCATCAAACTGCTTAAAATTATCATCTCTAGATAA -TGTTTGAATTGTTGCAAATAAATATTTGGCATCGACATCTCTATGTTTGCCTGTCAACAATCCAAAATCA -CTATCATTTTTTGTAGGTAATACTTTTTTAAATTCTTCCTTAGCTCTATTTAAAATTCCCTCATTATGAA -CAATAAATAAAAATTTATTAGGGTTTACTTCTCTAACATCTAATGCACATAAAATCGTTTTACCTGTACC -AGTTGCAGATATTATTAACGCCTTATCTTTGGCTTTATCCCTAATAGCTTTTAATGACCTTAATGCTTCT -GCTTGCATTAAATTCGGTACAATTTCCACTGATTTTTTCACCTTATCAGCTAGCAGCATTTGAGTTTGTT -CAACCTCCGCCAATTTTTCTAAGGAGCGGTACTCAAATGATTCTTTATATGAATTAATCCATTGCTGAGT -CAGTTGGGTACTGTTTTGCCATAACAAGTCAAATTCATTTTTTACACTATCAACCAAATCCCCATTTTTC -ATAGTAGACAGTAAAACATTATGCTCATAATTAACCTTTAACGCATTCGATGTTAAATTAGAGCTTCCTA -TTACCATAGAACTATAATCCTTATGTTCAAAAATATATCCTTTGGCATGGAATCCAGCAATATCGGTTAA -TCTTACCTCTACATTTTTTAATTTAAGTAATTCTCCATACATTTTAGGACTATTAAACCCTAAGTAATTA -GATGTTAATATTTTCCCTTTAACACCCTTATTGCTTAAATCTAATAGTTGAGCCTTTAAGCTGGCTAAAC -CGCTTTCTGTTATAAAAGCCACAGAAAAATAGAACGTTTCACATTTTTGAAGTTCATCTATAATTGTTGA -AAGAACTTTTTCATTTTTATTATTTACTAAAAGCTTCGGTGTATAATTCCCTTTATGAGAAATATGTTTG -TCTATAAACCCTTTATGTAAAGATTGATTGAAATCATTTAGTAATCTACTCATATTATCCCTCAGTCATA -ATTTTATTAACGGCTGGTATATCCGCTGGGGCCCAATTTAATTTATCAAGTTCGTTTATTGACAACCATT -CAATACTCTTATGTTCAGTTAGAGTTGGTAACTCTTTGTTTAAAGTACATTTGTATGTTGTTAACCTAAC -AATTCCAAAATCATATTCATGTTCTGTAGTTATAACTTTGTCTCCAACAATTAGATCACATTTCATTTCT -TCTCTAATTTCTCTAATCAAAGCGTCTTTTTCAGTTTCATTCTTTTCAACCTTACCGCCAGGAAATTCCC -ACATTAAAGGCAGACTCATTTTTTCACTTCTCTGTGCACAAAGAATTTTGTTATCAGAAAAAATAATAGC -TCCTACTACATTGATTACTTTTTTCATAAGACTCACCCTTCAATTTAAAATCATCTTAATTGTTATTCTA -TCAAAAATTACAAAACTATATATAAATCAATATTAAAAATTAATATTTTACATTCACATGAACGCTCTAC -TCCATGCATTTTCATACACATCTATTATATAATACTTGTGAAAAGTATTGTCTTGGGGCTGTGTTTTTTT -ACTTTTGGGGCGTATTTCTTTATAATTCATTACATAAATGTAAGGGCTTTAGTTTTCATGTTTTATTAAG -TCTAACTGAGATTTTGAAAGGATGTTTAGCAACAATGGATAAAGAGTTATGGATAAAAAGAGCTAATGAT -AGTTTAGTTAAACATTTTTATGAGCAACAATCTGACATTGAACAGCGAGAAGGTTTTGAAAGTAAATTAA -CGTTTGGTACTGCGGGTATACGCGGAAAATTCGGTCTTGGTGAAGGTCGACTTAATAAGTTTACTATTGA -AAAATTGGCATTAGGTTTAGCGCGTTATTTAAATGCCCAAACAAACAATCCAACAATAGTCATTCATTAT -GATATTAGACATCTTTCAACTGAATTCGCCCAAATCATTGCTAATGTATTAGCAAACCATCAAATAATAG -TTTATTTACCTGATACATATAAAACGACACCGGAATTATCGTTCGCGGTGCGCAATCTTAATACTACTGC -TGGCATTATGATTACAGCAAGTCATAATCCGAAAGACTATAACGGCATTAAAGTATATAGTTCTGATGGC -GCGCAACTATCGACCGATGCATCTGAGCTTGTAAGTCGTTATATCGAAGAAGTTGGCGATCCATTACAGA -TTGATATACCTATTTCAAAACAAAATACATCTTATATCAAGCCTTTCCCGAAATCTGTAACTGATGACTA -TATGAAACACATTCAAAATATGATTGGCTATATTCCTAAATCTGATTTACAAGTTGTGTTCACTAGTTTG -CATGGTACAAGTGTTCCGATTGTACCTGAGTTATTAAAATCTTTGAATTTCAATCAATTCAATCTTGTAG -AAGCACAATGTAAACCTGATCCGAATTTTAGCTCAGTTCAAAGTGCTAATCCTGAAGATCATCGCGCTTT -TGATCAAGCAGTCGAACTTGCAAATAAAAGTCATGCAGACTTATTAATATCAACTGACCCTGATGCGGAT -CGTCTTGGTATTGCTGAACGTGATGCACACGGTCATATCACATATTTTAATGGCAACCAAATTGGTGCGC -TGTTACTTAATTATCGTATTCAACAAACGTCTCAATTACGTCACCGCTTAATGATTCAATCTATTGTAAG -TAGTGAATTAACAAAGTCATTAGCACGCTATAATAATGTTGAATACAAAGAGGTGCTGACGGGCTTTAAA -TTTATTGCTCAGGAAATAAGACAACTGGACGATCATCAAAATATGATTTTCGCATTTGAAGAGAGTTACG -GTTTTCTATCAGAGCCTTTTGTACGTGATAAAGATGCCGTACAAATTGTGCCACTCATTATAAAATACGC -TTCTGAGTTAAAATTATATGGCAAAACATTGAAAGATGAATTAGAACAGATTTATCAAACTGTTGGTAGA -CATGAGGATACATTATTCTCGCATACGCTAGAAGGTTTAGAAGGTAAGAAAAAAATTGAATCAATTATGA -CACATTTCCGTTCAAATCCACCGCAAGAGATTCAAGGACTGAAAGTGAAAGCAATTGAAGATTATTTAAC -TAGCGAGGTTTATCAGTTGGATAAAGATACAACGTCGCAGATTGATTCTCCTAAGTCAAATGTTATTCGT -GTCTTATTTGACGAAGGATTTATCGCTTTACGTCCTTCTGGTACTGAACCTAAAATTAAATTATATGTGT -CGTTAAAATGTCCGGATTTTGATGATGTAGCTCAAAAAATTAATGCGATGATTTTTAGCTAATTAAAAAT -TTTAAACATCGAAATATTACATTTCATTTTATACTTATCAGCCCTTTTGAAACTAGAATCCTTATGTTTT -CGCGTTTTGAAGGGGCTAATTTGTAATAATTTTTCAAAAGTATATTAGAAAATTAATTTTCATGTATTTT -TCATATTAAGCGGTAATAATATAATAATTAATACCGCGACCTATTTAATTGTTTTCGCGATGAAAAAGGT -TTAGAATTACAAAAATAACTATTTTAAATTTAGTTACAAATATATTTTAGAAAGGATGTGAAATAATGAA -AGGCTCTAAACAAATACTTTTGATTATGGGCATTATATCTCTTATTGTTTTATTTATTTTTACACTATTC -ATCATGGCACAATATGCAAAACATTATGAACAAAAATCCGACAGTTCCAACGCACATACTTTAAATTCAT -CATCAGCCATAATTGAGCAACATACTATGTCGAATTTAGCGTCTCTAGATTTATACGCTCCTGTTCGTAA -CATTACTTCTAGTCGTGATATTCATCCCATTTATTTCATGACAAAAGATTAAAACTTCCTTTTTCATAAC -CCCATTCATTCAACTAATAAATTAAAAATTGATAAAAACGTACTGTTTTTTAGAAACATACATATATAAG -AAACGCATCAATCACTAAAAGACAGTACATTATATTCTATCGGGAAGGTGCAACAATGACCGTCAACATC -GTATTTTCTATCGTGTTCTGTATCAGTATGGTTATATTAGGCATTTATGTCGCAATAACTAAAGATTTCA -CACTAATCTCTTTTATAAATCAAACGACCATTGCAGATAAACACAAGACCCAAATTGCATATATATTTGC -GCTATGTATCAGTTTGAGTGCAGTATTTTTAATGTCTGCAATTCTATGCTTCGAATATGATTTTATTGCA -TTGTCATTCTTATTTTTAACGATAGCATTATTACTTATCGCATTATTCTACGTTTGCTTTTATAAAATTA -CAAAATATCCATAAATGTTTGTGATAGTGTGTTGGTTAGATTTAATGGTGCGCTTTCAGCAAGCAATTGT -TTGCGAAAAAAATACAACCTTGTACGAATACAAAGTTGCATTAATATAGAATCATTTATGCTTTTTAATG -TTATAAACCTAATTCTTTAATAAATCGTGTTAATTCTTCTCGCATACTGTCATCTTTCAATGCATATTCT -ATGGTAGTTTTAACGAAGCCTAATTTTTCTCCAACGTCATAACGTTCGCCTTCGAAGTCATATGCATACA -CTTGGTTATCATTATTCATACGCTCAATCGCATCTGTTAACTGAATTTCGTTACCTGCGCCTTCTTTTTG -CGTTTTTAAATAATCGAAAATTTCAGGCGTTAATACATATCGCCCCATAATAGCTAGGTTTGATGGTGCC -GTACCTTGTGCTGGCTTTTCAACAAACTTTTTCACTTCATACTGACGTCCATTTTTAGTTAATGGATCAA -TAATTCCATAACGATGAGTATCTGCTTCCGGAACTTCTTGAACACCTATAACTGAGTGCCCCGTTTCTTC -ATAAACGTCAATCAACTGTTTCACTGCTGGCACTTCAGATTCAACAATATCGTCACCTAATAATACCGCA -AATGGTTCATTGCCGATAAATTGACGCGCAGAACTAATCGCATGCCCTAAACCTTTTTGTTCTTTCTGCC -TTACATAAAAAATATTCGCAAGTTCCGTTGAATACTGAACTTTTTCTAGTAATTCAGATTTACCTTTTTC -TTTTAACACCATTTCTAATTCTTTTTGACTATCAAAATGATCTTCAATCGCGCGTTTGTGGCGACCTGTC -ACTATAATAATATCTTCAATTCCAGCTCTTGCAGCTTCTTCAATGATATATTGTATTGTCGGTTTATCTA -AGATAGGAAGCATTTCCTTTGGCATCGCTTTAGTTGCTGGTAAAAATCTAGTCCCTAAACCAGCAGCGGG -AATGATTGCCTTTTTTATTTTTTTCAAAGTTAATGTGCTCCTTTTCCTAAGTATTAAATCTATGTATCAA -CGTCATTTTAACACTAATTAGAACGCCTTCATAGTGTCATTGAGTATGTAATTATTTCTTGGGAAATTTG -ATTTAATTTTAAAAAACAGGCTTACTTCATATAATTTATGAAATAAACCTGTCAATTTTAGATTGATTAT -GCTTTGTGATTCTTTTTATTTCTGCGTAATAACGCTAAACCTAGAATGCTGAATAATCCGCCGAACAACA -TACCTTTGTTTGTTGATTCTTCTCCACCTGTTTCAGGTAGTTCAGATTTCTTAGCTTGTTTTTGTTTAGT -TGGTGCCACTGCTTTAACCTTTTCATTAATTTCAATAACAGGTGTTACTACTTTACCTTGTTCCACTGGT -TTAGAAGGCTTTTTAGGTTCTTCTTTAGCAGGTGGTACTGGTTTACCAGGTTCAGCTGGTACCTCTGGTG -TTGGTGGTGTTGGCTTACCTGGCTCACTTGGCACTTCTGGCGTTGGCGGTGTTGGTGTGCCTGGCTCACT -TGGTACCTCTGGTGTCGGTGGTGTTGGCGGCGTTGTATCTTCTTCAATCGTTTGTTGACCTTCGTTTTGA -CCGCTTACTTTTGGAAGTGTATCTTCTTCAAAATCAACACTGTTGTGTCCACCGAATTGATAATTAGGTT -TATCTTTGTTTGTATCTTCTTCAATAATTTCATTATGCTTATTGAATCCATGAATTTGTGGCACACTGTC -GAAGTCGATATCAATGATGTTACCACCTTGTTCATACTTAGGTTTGTCTTCTTCTGTGTCTTCCTCGAAT -GACTGATTACCGCTATTTTGGCCACCTTCGTAACCTAATTCACTCTTAATATCAACATGGCTATTTTCTT -CGATTTCTTCAATCACGCCATAATTACCGTGACCATTTTCAGTTCCTAAACCAGAATGAGAAATATGATG -ATTGTTTTCAGTGATTTCCTCGACTGGCCCTTGTGCTTGACCATGTTCTTCAGGTAGTTCATCTACTAGT -TCAATCAGATTACTTTCAGTTGTATATTCTTTCGTATCTTCAACTGTTGTATGGTCGCTCACTGCGCCAG -TTACAATACCTTTTGTAGACTCTTCGTCAAATTCAACTAAGTTAGATTCAGTAGTAACCTGACCGCCACC -TGGGTTTGTATCTTCTTCATATTCAACAACATCAGCGTGATGTTTTGAATTTTCATGTGTAGATTCTTCA -AAGTCAATTGGATTTGATTCCTCAGAGGACTCAGTGTATCCTCCAACGTGACCCGCTTCGCTATCCACAG -CAGTATGGTAATCGATATCAATAGCTGATGAATCCGTTTCTTCTATTGTTTCAATGTATCCATCAACATA -ACCACCTTCACCATCTATAGCTGTGTGGTAATCAATGTCAAGCGGTGTATTGTCTTGATTTTCTTCTGTT -TCAATAATTTGCTTCGCATCGTATTGTCCGCTGATTGAACCATTACCACTATCTTCAGAGAACTCAAAGT -TATTGGAGTCTACGATTGGACCATATTTTCCATCACCATTAGCTTTATTACTATATAAAACTAATCCATT -ATCCCATGTTAATGTATAGCCATTGTTATAATAATAATATGTTTTATAGCGATTTTCAGGGTATCCAGTT -AATTGAGTTCTAAAGTTCACTTCACTCGTACCATTTAAGTAATCTCCGGTGTAATGAATTACATATGTTT -TATCTAATTTGTCAAAATTTAATGAGTAGCTACCATTGTTTTGTACTTTCAATTTATCACCCATTTGATT -CGTTACATCTTTCAATTGTGTGCTGTCCACTGTATTTGCATAAACACTTTGTGGTAGCCCATTTTCAACT -CCAACATACTCATATATTTTAACATTTGGTTGTGTTCCATTCTCATTACTTCCTTGTGTCAACATACCCG -TTACAGTAACACTATCTGAATTGTTTCCATTTATAGGCTTAATATATGCTACGTGTGTAAATTTATTTTT -TTCTTTGTCAAACGTTTCAATCGAACCATTTACATTTGTATATTGATTTTTAACACCATCTTTATATGTT -ATTTGCATAGTTCCTGATGTTTCTTTGCCATTTAATTTTGAAGTTATTGTTTGTTGTCCATTGCTTTGTA -CAGTTTTAGGATCTATGAATAAGTTTATTTCTAAATTAGCTGTAACATTTACTTTATCTTTGATGTAATC -AGTAAATGTATATCTAATTCGGCCATTATCTAATACCTGACCTTTAGCCATAACTAATGATCCATTTTTA -ATATCTGGAACTTTTCTTGTAGTTGCTACACCATGTGTATTTACATTATTTGATAATGTAAAATCAAAAT -AATCGCCTGTTTTCAACCCATCTTGAAATTTCAGTTTATACTTTAATACTACACGTTGCCCTTCATGAGG -CTGAACATTATTTCCTTTTGGCGCTTCAATTTTACTTTCATCTTCCACTGTAACTTTACTTGTCACATCT -GTACCCGTTTCCACTTTCGCGTCACTAGCTTCCTTAGCTTCCGCTACATCTGTTGATCTTGTCACACGTG -GCTTACTTTCTAATGCCGTTCTTGGCTGTGCCACTTCAACTTGTGTTTCTGCTACTTGATTTTGTGTAGC -CTTTTTAGGTGTTAAATCTACTTGTCTTTGATCTCCGCTATTGTCTTGAGATTGTGTCGTTTCCTTAACT -TGAGGGTTCGCTTCTTCCTTAACTACCTCTTCTTTAACTGTTTCTACATTTGCTGGTTGTGCAGTTTGTG -GCGCTTGTACTGCTTTTGGTGCTTCTTCAGTTGTTACTTGTGTTGCGTTTGACGGTTGTTCTGTTGCTGT -TGCGCTGTATGATTGTGTTTCATCTATAGTATTAACGTTAGTTGTAGTTGTTTGTGTTTCGCTTACTTTA -TTATCAGTAGCTGAATTCCCATTTTCTTCTACTGTAGTTGTCTTTTGTTCTGATGCTGCAGCTTCTTTAT -CTTGTCCCATCCCAATAACGATCATTGTTCCTAAGAATACTGATGCTGCTCCCAATTTATGTTTTCTAAT -GCCGTACCTAAGATTGTTTTTCACTATAATATCTCCCTTTAAATGCAAAATTCATTAATTTTTTTAAACT -TAATAAATGCAAGTCTATATTGTTCGGTTTTTAAAAGCAATACAAAAAAGCGAGTTAATGAAAAGTTAAG -ATTGTCATTAATTTTATGTTAATTGATAATTTTATTATTTGAAATATACTTATAAATTGTATCCAAGTCG -TCAGAAACCCTTGTCACACAAGGCTTGTATTTTTTATACTTATTTTTTAAATTAAATTCATCATTATCTA -ATTTAAAACAACATACTAAACGTTTCATAATTATCGCCTGTACAATACGCACAAAAACATGTCTTGAAAC -GCCTTTCATTACACTAAAACAACCAATATATTTTTATATCGTTCGGATTCTGAGTATTTCAGACGATTTT -CTGCATAAAAATAAACGTGTTTCGAGGCAATATATTGTAATTACCTAAAAACACGTTTACTTAATATTTA -GTTAAACAAATAAGCTGATGAATAAAATGAAGATGATACCTGAAACGGAAATAATCGTTTCTAATAATGA -CCATGTTAGGAATGTTTCTTTTACAGTTAAACCAAAATATTCTTTAAACATCCAGAATCCTGCGTCATTA -ACATGAGACAAAATCACACTACCTGCACCAATCGCTAGTACAACTAATGCAACATTTACATCTGATGATT -GTAATAATGGTAAGACAATACCTGTAGTTGAAATCGCAGCTACTGTAGCCGAACCTAATGCGATACGTAG -CACAGCTGCAACAATCCAAGCTAGTAAAATCGGAGACATCTCTGTACCTTCAAACATTTTAGCAATTGTA -TTTCCGACACCACCGTCAATTAATACTTGTTTAAATGTACCGCCACCGCCAATAATCAATAACATCATTC -CGATTGGATAAATCGCATTCGTCACTGATTCCATAATATGATTCATCTTACGTTTTCTCATTAATCCCAT -CGTAACGATTGCAAATAATACTGCTATTAGCATGGCTGTCCCTGCTGTTCCGATCATATAAATGATAGAT -TCAAATAGATTTGTAGGTTTGTCGTGCCCGGTTACAAGTTGCGTTATCGTAGACACTAACATTAATATGA -CTGGTAATGTTGCTGTTAATAAACTCATACCAAATCCTGGCATCTCTTGATCCGTAAATTCTTTTTGTGC -ACCTAACGCTGAAATATCGCCTTCTCGTGTATACGCAGACGGAATCATTTTTTGTGCAACTTTGTTAAAT -ATAGGTCCTGCAATGAGTGTAACTGGAATGGCAATAATCATACCGTATAGTAATACATCTCCTACATTCG -CCTTTAATTCTTTTGCGATGACTACCGGTCCTGGATGTGGTGGTAAAAAGCCATGTGTCACTGATAAAGC -TGTTACCATAGGTAATCCTAGTTTTAACACTGAAACATTTGCGCGTTTTGCTACTGTAAATACTAATGGA -ATCAGTAAGACTAAACCTACTTCAAAGAACAATGCAATCCCGACGATAAATGCTGCAACAAGCATTGCCC -ATTGTACATGTTTTTGACCAAATTTTTGAATCAACGTGTCTGCAATTCGAGTTGCACCACCACCATCAGC -AAGTAATTTCCCAAGTATGGCACCTAAACCGAATATCAGTGCAATGTGGCCGAGCGTACTGCCCATCCCT -TTCTCAATCGTCTCCATAATTTTAGTCAATGGTATACCTAGCATTAACGCTGTAATCATCGATGTGATAA -TTAATGAAATAAATGTATTTAATTTAAACCCAATGATTAATACTAATAAAATAATTATACCTAAAACAAC -ACTGATTAACGGCCATATTTCGTTAAACATGACATTCCCCTCTTTCTCTTTTCAATAGAATGTAACACCG -TCGTCGCGCACGTATTCCACATAATATATAGTAGTCATGGCACAACAACTTTATCTAAGATGCTTGAGTG -ACGTATTTATTGTGTTTTATTTTCAGCCATATGTTTGCGTTGAAAATCTGCAATTTGTTCATAATTCTCT -GTTAAAGAACGACTTAAATTGATAAAAATGGATACGAGCTCTTGATAAACAGCGACATTTTCTTCAATCG -GCGTATGATTGTTTGTGGCACCGACCATCGATGAAACGATTGAAAAATCTTCAATGTCACCTACAGCTTT -AAGCCCGAGTACGCAGGCACCTAAGCATGAACTTTCATAACTTTCAGGAACCACTAACTCTGTGTCAAAT -ATATCTGACATCATTTGACGCCATACTTCACTTTTCGCAAAACCACCTGTTGCTTTTATCATCTTAGGTG -TTTCATTCATTACTTCAATAAGCGCAAGATAGACGGTATACAAATTGTAAAGAACACCTTCTAATGCAGC -GCGAATCATATGTTCTTTTTTATGAGATAAAGTTAAACCGAAGAATGAACCTCTTGCATTTGCGTTCCAA -AGCGGTGCACGTTCTCCAGCTAAATAGGGATGGAATATTAAACCATCTGCACCTGGTTTAACACGCTTTG -CAATTTGAGTTAAAACATCATAAGGATCAACACCGAGACGTTTCGCAGTTTCGACTTCGCTTGCTAACAA -CTCATCGCGCAACCATCTCAATACGACACCACCATTATTTACAGGGCCTCCAATGACGTAGTGGTCCTCT -GTTAAGACATAACAAAATATTCTACCTTTGTAATCAGTACGTGGTTTATCTATCACAGTACGAATCGCCC -CAGATGTACCGATTGTGACAGCAACTTCTCCTTTACCAACACTATTGACACCCAAATTAGAAAGGACCCC -ATCACTCGCACCAATAACAAACGGTGTATCTTCATTAAGCCCCATTAATGTTGCATAACGTTCTTTCATA -CCTTTCATCACATACGTTGTTGGCACTAATTCCGGCAACATTTCCTCGGAAATACCAAGCAATTCTAATG -CCCCAACATCCCAATCTAATGTTTCTAAATTAAACATCCCTGTTGCGGAAGCCATTGAATAATCAATGAT -ATATCTATCAAATAAATGATAGAAAATGTATGTTTTAATATCTGCAAACTTAGCAGTTCGTTGAAATACA -TCTTGCCATTCATGTTTCATCCAAAAAATCTTCGCTAATGGCGACATAGGATGAATAGGCGTACCTGTTC -GCTGATAAATCGCATTGCCATCATGCACTTCATTTATTACTGTTGCATATTTTGCAGCGCGGTTATCTGC -CCAAGTAATATTATTTGTTAATCTTTGATGTTGCTGATCCATCGCAATCAAGCTATGCATTTGCGCACTA -AATGACACAAATTTAATATCATCTTGATTAACTTTCGATTCCCTCATTATGTATTTAATTGTCATTAATA -CCGCATCAAATAATTCATCTGGGTTTTCTTCTGAGACATCAACGTTTGGTGTGTGTAAATCATAGCCGAT -TTGATGTTTCATGATGAAAGTTCCATTTTCATCATATAAGACTGACTTGGTACTCGTCGTTCCAATGTCG -ACACCAATCATATATTTCATGACAAATCCTTCTTTCTTTTCATTTTAATTCAACCAAAATCCTTCAATAT -CTTTACCAACATCGTCGAAATTTAAATGAAACGCTTCTTTCAAAATTTGACTGTCGTATTGTTCCACTGC -ATCAATAAACACTTGATGATTATGATGTATGCGTTCAAAATCTTGCGGGTTTTGTTGCATACGTTGTCGC -ATGGATGTTAAAACGAGCGCCATCATTACTGGTTTTAAATGACTCCAAAATGAGTTTAAATATTGATGAT -TAGATGCTTTGATTAATGTTTCATGAAATTCAAAGTCATGCTTCGTAAATGATTCTGCATCCTCAAATTT -TACTGCCACTTTCATCATTTCAAGTTGTTTCTTCATTTCTTTTACGATAGGTAGTCGCTCTTGATTTTTA -ACTCTTGAAAATGCAAATGACTCTAACATCAGTCGCAAATCGTACATTTCTTTCTTTTCTTGTTCCCCAA -ACGGCAACACATGTGCACCCATTCTTTCTAATTGGATGAGTTGATTTTGTTGCAATAATTTAAATGCATC -TCGAATTGGCGAACGACTCACATTAAATTGCTTTGCCATTTGATTTTCAGTGAGTAACGTACCTTCAGCT -ATGTGACCATTCACAATGCCTAAGCGTAATTCTGCTGCGATACCTTCTCCAGTTGTCATACCTTCCAACC -ATTTCTCTGGATATCCATACATCATCAAAGCCACTCCTTCATTACACGACATACTTGTATACAAGTATGT -TAATATAGTTCTTAAGTGTTTGCAAGCGCTTTCTTTACGCGTAATAAAATAGTGACCACCCCTCTTCAAT -GTAAATTTAAAGGGAATGGTCACTATCACACGAATGATTTAATTGTTATGTTGTATGTGGGATGTGTCTA -ATTATTCTGTACCCATATGTGTTTTAGGTACTTCAATGCAATAATGCGTTTCATGACAGTTTGGACATTC -GAATCGACGTGTTGTCGCAGTATGTTTCGCTTTGATAACTGCCCACAAAGACGGTGAGAATATATGCTGG -CAGTTAGGGCATAAATAGGCAACTTTGCGTTGATAGTAGATAGTAATACCAATGCCATAACCGATCATAA -ATGGTAAAGCAATTAAGAACGGCCATTTGTTTTTCATCAAGATTGAACTCAAAATGCTAGAATATTGAAT -TATTCCTATAATACCAGCACTAATCCAAATGTTACGACGAATACTTTTCATTTCAGCTGATTTACTCATG -ACATGCTCTATGTCTTTTAAATGTGTGATTGGAGACGTCGACGCTTCATTTACGTAATATTGAACATTTT -TAATTTTGTCTAATACCGCTTGTTGCTGTTTGACTTGTTGATTAATTTCTTGTTGTTTCATAGTTAGTAA -GGTATTGAGTGTCTTCAAAGTACCTTCACCTTTTAGCAACATATCTATATCGCTTAACGCACAACCTAAA -TCTTTAAGTAATAAGATTAACTCTAATGTTTGTCGCTGTTGTTCTGTATACACACGACGCTTTCCTTCTG -TAAATCCTTGTGGTTTCAAAATACCTTTGCGATCATAATATTGAATCGTTCGTGTTGTCACATTGCATAA -TTTTGCGAGTTCTCCAGTCGAATAGTTAGACATAGATTCCACCTCCTACAATCACCATAGTTGATGACCC -GACGTCACGAGCAAGTATAATTTCCACATTTTTAAGAAATTTATTATACTAGGCGTCTTATTTTTGTGAT -TTCATACCATGTTGATTTACAAAATCACTCAAATTAAGCAACACACCTACTAAACGTCTACTCTGTTATT -TCAGAATGAATTTGTTGTAATTTATTTTCAACTTCAGTAATCTCTGTCGCACATTCTTTCAATAAATCTC -GATACTTTTCCGTCTCTGCCTTGTTTTTATAACGTATTTTATGTTCTAAACTTGCCCACATATCCATACC -TATTGTTCTAATTTGAATTTCAACAGGCAATACCTCAACGCGTTCTGCTAAAAAGACTGGAATGGATACA -ACGATATGTAAACTGCGGTAACCATTTTCTTTAGGGTGCTGAATATAATCTTTACGTTTTATCAATTGTA -CGTCTTCTTGTTTAAGCAACATCTCTTCAATCAAATAAATATCATCTAAGTAATTACATACTACGCGAAT -TCCCGCAATATCCAGTATATGTTCTTTGGCAGTTTCTGCGCTAATCTGTAATCCTTTACGATTAAGCTTT -TCTATTAAACTACGCATTTCTTTCACACGTCGCTCCATATGATGTATAGGATTGTGTTTATAAATGTGAT -TGAAATTGTCATCTAAAATACTCAGTTTTGTGCTTATTTCCTTTAGTGCTGATGAATAAATATGATCTAA -CTCTACGAAACCTAATAACGTATCAAATGCTTCATCACCATTTTCAAATTTACTTAAACTATTTTTAAAA -TCATGTCGCAAATCCTCTAAATATAGTGATGGTTTTCGATCTACATACATTTTTATACTTACCTCCGATA -TATAATCATCTTTATTGTACCTAACATTTTATTAAGATAATACTAATACACTATCGAACTTTGGGCTGAT -ACTGAAACAGCACAAAGAAACTCAAACAATTCGAATTATGTATCAAAACCTTCAATTATAGGAAGTAATT -TTAAAATGATTTAACGCAAAAAAACACCTGTTACCGTTATATAGGTACAAGTGCTTAATTGATAGAGATG -TTATACGTCTTTAAATGATTCCACAACTTTTGGATGCGGACCATCCATAAGCGGTTCTCTTTGTCGAACG -CCACCACTTTGGTTGCCAATTGATTCGCTATCAAAGTACGATTTATCTTGATTTGATTGTTCTTGAATAT -GTTCTTCATTATCAGTTGTTGCATATTCACTATCCACCTCTGGTTTTTCCATTGTTGCTGTATGGAATTG -TACGAAGTTCTCTTCTTCTAATGCTTTGATTTCTTCTTTCGATAACGCTCGATACCAATCTTTCGCTTTT -TTCGCCGCAATAGGAACAACATCTTTTTCAAGATATCCTTCTTTTAACATTGCATTCGCAATTTCTATCG -CCTTTTGCCGTTTAATTACTTCAAATTCTTTCCATTTTTCGGGGTAACCTTTCATTGTAAAGGGCATTTC -CTTAACCTCCAATATGTTATAATTCATGTTAAATGCCACCATAATTATAAAATGAAACATATTAAACACA -ATTTTTTAGACTCCCGTCATAATAACTTCAGACAAACGTTAGTCTGACCTGATAAATAATTTATTTTAAA -CGTTCTTGTCTCTCTCACGAAAACCATTGTGTTGAATATTCATCATTGCTGATTGAATATAATTATACTG -TGGTAAATCTGGTAATATCTTTATTTCTAATTCTGTATTTAATTCTAAATGCTTAGCGATGTTTTCAAAT -GTTGCTAAATACTCGCCCATTAATTGTTCATTTATTATAAGTCTATCTTCATTAGCCATGGCTCTATTTA -ACATAAAGCTAATTTCTTCTAATGCGAATAAGCTAGGATAATAATTTTGAATCAATGTTTTATCACTAAA -TAATTCACCATTAGCTGCATTATAAACTTGCGTCATATTATTTAATTTCACAGATAGGTTCATAGCCGTG -TTTTTCTGATACACATCATCTTTATATTGGTTTTCAGAAAATAAATAATGGAAGAGCGTTGCTTCTTTAC -GAACAACTTCAGCCATTACATAAGGAAGCAATGCGGATGCGGTACGTTGCCCAAGGACAAATAAACCTAT -GATTGCAATCACAATACCCATTGCAACGTCAATAACTCTTGGAAACGCAATGTTAATTGTTAAGTTCTGT -GATGCTAATCCGTTCATTAAAATAACTTGTATTGTAATAAAAACTACTGCAATTGTATAATTTGCTCCCA -CCAACGCTTCAGTAAATAATGCTGCAATGCCCATTAAAATGACTGCAACAGGTGTTGGTATTGAAAACAA -CAATATAACTGAAAGTACTAGCACACCTAAAATGGTGCCTAATCCACGTGCCATACCTCTCTCAATTGCA -TGTATAGTTGATGTTCCTAATAATACTGTATGTGCGGATAAAGGTATCCAATATGCTTTTTCAAAATCGA -ACATTAACGCGATAAATATCGCTATCATCATAATCGCTGCATACCTCAATGTATTTCTAAACACGATTGA -ATCTAATGTTAAATTTTGATAAATACGCTTACTATATAAAGGTTTTCGCATTTCAGCTTCATATGCGATA -CGTGCTTCATTTGCATGCACCATTTCGTCAATTTTCAAGATATGGTTGAATAAGTTTTGAAATTCCTCTG -TTACTGTTACTTCTTTGCGCCAATATCTCACATTTTTATTGCGATCATCTCGCTGTGTAATGATATGATC -CATCATTTCAATTAACTCATCTGGCAATGGTCTGATTTGTTTAGCATTCAGCTCTAATAATTCAGAATAT -ATCCCTTGTGCTGATGTGTGTAATAACAATAATTTTTGGAAACGTCCGCTTAATTTATCACTACTTGAAT -TAGAAGTGATGAGTAGTTTATCCGACGCTTTAAAACTATCCACCGCTGTTTTTGCTACTTGTGAAAATGC -AGATTTATCATTGTAAGCATGCAATAACTTAGATATGAGTTTAAAATCGTTTTGAATGGCTTGTTCTTCA -GCTTTGTTTTTAGACAATAAGATTGTGATGAGTACCATCATAGTGGCAAGTACACCACCTACTAAAATCG -CAAAGCCTCTATATAATGCTTCTTCAGGTGCTATAGGTAAGTTAATGGGTAAACTGAATGTCACAATGAA -GAATGTCGATGACGGTCCAGCAATTTTCAAGGCGGTAAATATATAAAATGGTATAACCGTAACAATTAAT -AATGTCATTCCAAAAACGAGCGGCGTTGTGGCTGTTAGCGTACCAAGTATCATGCATATTGCAAACGCTA -AATTACAAATTATTACAGTTCGCAGCTTAGATCGCGACGGACCTTTAAAAACGTAGATATGTGCTAGAGT -TCCGGTTGCAACTAATAATCCAAATTGGAAATTACCACATAAGTAACCGATGATTGCAGGAATAATCATT -AACAGTCCTTGTCTTATCCCTTTATAAAAGTCTAAGTTAAGTCGATTAATTTTTATAAGTGATGTCAAAA -AGATGTCATTTCGACTTCTCCCTTCCTCGTCAAAATATTTCCATAATCATTTTATTAGCATAGTTAATTT -GAGTATGTTGCTATAAATTTCAATTACGCAACATATGTCATTATAACACCTTATGCTCAATTATCTAAAT -TTAAAAACTTTTAAAGTCCAATTAAAATTATTTTCTAATGTTATTTAACATCGTTGAACCTTTGGTCGCC -CACCTTTGCGCTAGTTAAAATTTATTTGTACTTTTACAATAGTTACCTGACTAAGGTTTTAAAACTTTAT -TTCTTCTACATATATTATTTTAATAACTTCCCGTTCATCTTAAACCATATCTGTTTTAAAATTTTTCAAT -TTCAACGAAAAAAGCAATAAGCCCCAACTATGTGAAAGCTTATTGCATGATTAAATTATTTTTCTATTGC -TTTATCATCACTAACAATTAAAGGTTGATCTGGTTTCACATAGAACCACATAATCACAGCGATTACTGCT -GGAACGATTAACAATTGGAATGTCATTGTCCAACCTAAATGTTCTACGAATAGACCTGCTAATAGCGGAC -TGATTAATGCACCTATATTACCCCATAAGTTCATCCATCCTGATACTGTACCAGAGAAGTTACGTCCTAA -ATCAGTTGCTGCTGCCCAACTCATACCCATTGAAATACCGATACCACCAAGACCTAGTGATAACCAGAAA -ATACTTACATATAAATTTCCTGTACGTACAGCAAAGATAATTGAAACTGCAAATACAATAAATCCTGCGA -TTGCAATTACACCTCTAGCTACGAATTTTGAACGACCTAATCCTAATACACGGTCAGAAATTGCACCCGC -TGATAAGATTAAGAAGAACATTAATAACCAAGGTAATGAACTAATGCTCATTTCTTTAAAGTTAACGTGG -AATACTTCTGTTAAATACGTCGGTAACCAAATTAAGAATAATGTAATGATAAATTGTACAACAAAGTATT -GAATTGCAATTGCATAGAAGCTAAAACGTTTAAAGAAATCATTCCATGGTGGTGATGACTTTTCAGTAGC -TACGATATCACGGTTTTCCATAATGAAACGTTTCTCCGCTTCATTAACCATTCTATGTTGCTCAGGTAAG -TCTTTAGCAATAATCGCCCATAATACAGCCATTAAAATCCCTACTGCACCAAAAATATAAAATACTGCTT -GCCAGTTAAATGCGTTAACAATAGCAATTGTAACTATTGGTGCTAATACAGGTCCGAAATATGATCCTGC -TAATAATGCACTTGATGCTCTACCTTTTTCATTTTTAGAGAACCAAAATGAGTTAAACACAGCATTAGAA -GGGTACATTGGCGCCTCACCTACACCAAATAAGAATCTCACTAAATAAATTAAACCGTGGTTCTTAATCA -TACCCGTTAAGATTGTAAATGCACTCCACCAAACTAATGCAATTGTAATCATCTTACGTGGACCGAATTT -TTCAGCCAACATCCCCGATGGTACTTGCATTAATGCATAACCTAGAGAGAAGAATGATGCCAATAAACCA -AATTGTGGTTTTGTCATCCCTAAATCATCCATCATTTGCTTAGCGATATATGAAATGTTTGCTCTATCCA -TATACGCAATAACCCCAATAAAGAAGAACGCAAGCGCGAACATCCACCTTACGTTAGTTCGTTTTTCCTT -CATAACTATTCCTACTTCCCTAATTAATTAATTTTTTAAAACTTACCCTGAAACGTTAAAATTTTCGGAC -ATCTGGCATGTCCACCCCTACTTTGTCACAAAATTGTACCAAAGTTATTTTTTATAATATTATCAGACAT -GGAAAGCGTTTACAATAGAATCTATAAAAATTTTATTAAATTCCGCTTAACTTTTGCTATTAAAACGATA -TAAAGGAACTTTTAGTTACATAGTAGCCTATCATTTGTTAATTAAAAATACTGCAATACTAGTGTTTTAA -AACGTATATTGCAGGATTTCTTACATATTTGACATTCATTTTAAATTGCATAAAACTACATTACTCATTC -ATTGTGCAGCGCCTGTTATTTAGATGATCATTTGTTGACTTTTCGTACTTATAGCAAGCAATTTTTTGAT -TTATTGCTTATAATACATTTTAAGACAAATGCTTGTTTCAACATCGCATACGACATCATTCATTATTCAT -TTGAATTTATCCAGTTTCTATTTGTCTGCAATTGCTGAAAATTAAAGGAGCTTATTTTTAATAATGGAAC -AAATTATCACTGAATTTATTAGTCGTTTTGGGTATGCAGCCATTTTTATATTAATTTTATTAGAAAATGT -TTTACCTATCGTACCATCGGAAATTATTCTAACATTTGCTGGTCTTATGTCTGTTAAATCACATTTATCA -ATTTTAACCTTATTTATTATTGCAACCATCGCATCGTTTATAGGACTGTTAATTTTATATTATATCTGTC -GTTTGATTTCAGAAGAACGTCTATATCGCTTTATTGATCGACACGGTAAGTGGATTAAATTGAAAAGTAA -GGATTTAAAGCGAGCAAATGATTGGTTTAAAAAGTATGGCGTATGGGCTGTATTTATCTGTCGTTTTATA -CCTGTATTACGTGTATTGATTACCATTCCAGCCGGTGTAAACCGCATGAATGTTGTGACATTTACCGTTA -TTTCATTAATAGGTACAACAATTTGGAACTTCGGTTTAATTTTACTAGGACGCACGTTGAGCGATAGCTT -TGGTATGTTGATGACTGGTCTTCATACATATTCACGTATTATGTATGTTGTCATCATTATCGCAGTCATT -TACTTTGCTATACGTTACATTGGCAAACGTAAGAGAGTAAAATAATATTGTTGTTAGCATAAAGAAGAAC -CTCGAATTTATTCCTCCGAGGTTCTTCTTTATATTTTTATATAATTTCATAATAATGTTACATTTTTTCA -GTTAAGATTTCCAATCTTTTTTGTCAACTAATTCTAAGGAGCTCAACACCTCAAGATTAATTATAATATT -AAAATCTTTTCATTTTTAAATATCACTTACTGTTTTTCCAATTATAACTAATATGCACTTTTATATTATA -AAATTAACTTTAATATATTTTTTACAATAACAATACTAACAGCAATTATTATTATACTAGAGATTTTATT -TAAAAATAATATATATTTACCTGTTCTATCTATAGAACCTAAAACCTTACCTAATATTGCTAACAGAAAA -AACCATAGCCAAGAAACCATAATTGTGGCAATACAAAAAAGTATCTTTTCTAAACCAGAATAGACAGATG -CGCTTGATCCAATTACACCAACTGTATCCATAATTGCATGTGGATTTAACAACGAAACAGATATAGCAAA -ACCTATTTGCTTTTTTGTACTCATCGGTTCATAGTTCTCTAGAGTGTTAGGCTTTTCTTTCCATAAAGAC -CAAGCCATGTACAATAGAAAAAACAAACCAACTATATAAATAAATAATTGTAGAACTGGTAATGACATTA -ATATTAGTGAAACACCCAGTACAGCAATTATTATTAAAAAAGTGTCACATAATCCAGCCGTTATAACAAC -CGGCAATGCGTTTATCATTTTTTTTTGATTAGCACCTTGATTAAATACAAACACGTTTTGCGCTCCTAGG -GGCAAAATAAGCCCCAATGCTAATAAAATACCGTGTAAAACTGGTTGTATCAATTCGCATCCTCCCCCTT -CCCAACAATGTTCGGTGTACAAATATCTTTTACTACACTATAAAAACCCGGTAGTGTCGTCTTGAAGAAC -CCAGTACAATGGTGTGCTTCTCTATATTTTTGATCTTTCATTAATATAATATGTGCTTTTTTCAAATTAT -AATGTGGAATTGCTGGGAATAAATGGTGAACTAAGTGAAAATTATCATGGTGAGGATGAAATAAAAATAT -TGTCCAAGGCATACCAAAAGTATTCCGACTTGCTGTTAACTCACTATCATTATTCAATCCAGAGTGTTCA -GCCATTTCTGCCCAATAACGAATAATCTGAAAAGTTGTTAAAAGTGGTATAAACCAATAAAGAATAACAT -ATAACCAAAAATTAAACATAATTGATAACGTAATAATTGTTACCCAGAAAATATTTCTAGTCCATATTTC -TGATTTAGGTGTATCCCTACTGTATAAGTTAGCTGAAACTGTACCTAAAACATATTTAGGCACATGGAAT -AAAAATAGTACCTTTACAATGTGATTAATTATAAATTTTTTCACATCTTTTTGCGGCTTATCTAAACCTA -CAATGCGATATCGTTTAGTATCTGGGTCTTTTTCCTCATCCCATAAATTTCTATGATGTTTAAAATGAGA -ATTACAATATGTAGTAAAGCTTGTAAATATAGGGAATGCTACTAAAAGACAAGCAATCCATTTATTATAA -AACTTATTTGTAAATAATGAACGATGACATGCTTCGTGCATTAAGTTATCAAACGCCCTCATTCGACTTC -CAATTAAAATAATACTTATAATATAAATAATGAGATTACTCATATAGATACTTATACATGCACTCCCGAG -AATTACCAACCAGTCAAAAATCAAAGCGAAAATATTGTGGTAATTATCCTTTTTCATTAATAACTTCAAA -TCTTTTTTTATCTCCATTGAAAATACAGCTTTTTCTAATTTTAGTGTCAATTTAACCGCCTCCCTTATTT -AATATGTTATAATAATCTGAAAATTAAAAAACCTACCAGATTCTAATAAAAATTCCAACCAGATTGAGGA -TGACATTTATGACTAAATTTCAATATAAAAAAATTATTGATGATATTATTAATAAAATTAACAACGGTAT -TTTATCTCCTGGAGATAAATTGTACTCGCAAAGAAAATTAGCTAAGTACTATAATGTAAATAAATCCACA -GTTATACAAGCTTTAGATATTCTAAAAAGCTATGGCATCTTAGATACAATTGAAAAAAAAGGTATTTATG -TATCCCAGTATAAATGGAATTCTTATATTACCAATAATATTCATTGGCAAGATTATATAGGCAACAGCTT -TTCTAAAAATAACCAGTATTATATTCAAAAAATTAATGAAATAGAATTTAATACTGATATCGTCCGATTA -GGTACTGGAGAACTATCACCAAAACTAATTCCAAACCATATATTTAAAAAAATATTAACTAATGATATTG -AAGAATCTTTACAAACTAACTATGAAGAACCTAAAGGAAATCTAAAGTTAAGGATAGAAATAGTAAAGTA -TATGAAGCGAAGAGGAGTTGATTGTAATATCAATAATATATGTATTACATCCGGTGCTGTACAAGGTTTA -AAACTAATTGCAGACGGACTGTTAATTCCACAATCTAAAATTATAATTGAAACACCATCATACATTAATT -CCATACGTACTTGGCATAATATCAGAGCGAAAATTATTCCTTTGTCCATCAATTACATCAAACAGAATAT -TAACAATATCTTTAAATTAAATAGTGATTATAGGCACAGTATTTTTTACTGTATACCTACGCTGCATAAC -CCTACTCAAAATACTTATAGTAAAGAAGAGAAGCAAAAAATTATAGATCAATGTCATAAAGAAGGTATTC -CAATTGTGGAAGATAGTATATACTCTGATTTATGGTTCAGCCCTAACCAACAAATTTCTATGAAAGCTTT -AAAAAATAGTGATAATGTTTTATATTTAGGTAGTTTATCTAAAACTGTAAGTCCCGGTTTACGTATTGGT -TGGATTATAGCAGATGAAAAAGTAATTCATCATTTAGCCGATTTAAAAATGCAAAATGATTATGGTGCAA -GTTCTATATCACAGTATATTGCCACAACGTGGTTAAGTAATTATCATGAAGATCATTTATATAAATTAAA -AATCGAACTAAAATTACGAAAATCTATTTTTATAAAGTCATTAAAGAAACATCTATCTAAGTTTGGATAT -TGGAATGAACCCCAAGGCTCATTTTATATCTGGTTTAAGCTATCTGTTCCAGTAAATATAAAGCTCTTAT -TTAACGAAGCAATAAAAGAAAATATACTAATACACCCAGGAGAAATATATGACATTAACTCTAAAAGCTA -TATCCGCTTTTCATACTCATATATCGACAAGGAAGAAATTGACCAAAGCTTAAAAAAATTAAGTGAAATT -ATAAATAGAATACGAACTTAGTTAACATTTATCACCCTTTATATAATTCATTTTATACATGCGTGTTATA -ATATTAAGCACAATACGCATTACATTTCATAAAAAACCTAAAATGCATTTTGTTATAAGATATTGGGATA -TTATACACATTTACAAATATTGACAATATGATCTATATCATCAAATATTATTTCATTGTATGAATATAGA -AGTTTTATTAAAAGATAATAATGAGTACTATTAAAAAGGGAATTCCCCAAAAAATGTTTTGATTGGAAAT -TCCCTTTTTTAATTTTTATGTGGCGAATTGTTGCACTTAATTTGACAACCTAAAACTTAAGAAAATATTC -AGTCACACAACCTATCTTACTTATTACTTATTTAATTCCGTATACCCATCTCACAAATCCATCTATAATA -CAAACTATCATTTTATATAAGCAGAATTTACCCTGTCTTCCACACAAACTGTTTTCGTCACTTTAATATG -TCTTCTATTCAAAAAAGTCACTCATAACAAATTGCGCATTTTAATAAATTTAGCAATGCCATTTGCATGC -TGCAAAAATACTCATATTAATATTTATATTTTATATTATTTAAGTTTTTTAAATCCATATTTTTATAACA -CTTGCTATGTGATAAAATTAATTTTATATATATAATCTTAAGATTCAGATTATTTAATAGCAAAGGAGAT -AGTGATATGGATGTTTTAACAATAGAACATTTAACAAAGAAGATAGGTAATAAAACGATTCTCGACGATG -TATCATTTAAGCTGAAACGCGGACAAATAGTTGGTCTTGTTGGAGCGAATGGTGCAGGTAAAACAACTTT -AATGAAAGTTATATTAGGTTACTCTAGTTTCCAAAGCGGGAATTTTAATGTTATTAACAGCAAGGATAGC -AAAAGCAATATCGGTGCATTGATTGAAAATCCAGGAATATATCCTTTTATGTCTGGATATGAAAACTTGA -AGTTATTGAATGAATCAAAAAACACTCAAGATATCGATAAAATTGTCTCACAACTTCATATGGATGAATA -CATTCATAAAAAAGCTAAAACGTATTCTCTTGGTATGAAACAAAAATTAGGAATTGCTATAGCATTTTTA -AATGAACCTCAATTTATTATCTTAGATGAACCAATGAATGGCTTAGATCCAAAAGCTGTGCGAGATGTAC -GTGAATTGATTGTCCAAAAAGCGCAAGAAGGTGTCACTTTCTTAATTTCGAGTCATATTTTAAGTGAATT -AGTTAAAATCACAAACTCTATCCTTATTATTAACAAAGGTAAAATTGTTACAGAAACATCGGAAGAAGAA -CTTAAACAATTTAAAGATAATGATTTAGAAAATGTATTACTAGACATCATAGAAAGGGAGGATCAAGCAT -AAAATGGGAACTTTAATTAAACAAGAATGTTTCAAATTATTTAAAAAGAAATCAACTTTTATCGCACCTA -TTGTCTTTATTCTACTAATGGTTGCTCAAGGTTATATTGCTACAAAATACAATGAAATTTTTACACCACA -GGAATCTTTTACATCTGCTTATAATGGTTTTTCATGGTTTGCATTTTTATTAATTATTCAAGCAAGTACA -ATCATTTCAATGGAATTTCATTACGGTACGATTAAAAATTTACTCTATCGTGAATATTCAAGAACAACTA -TGATTGTTAGCAAAATCATCACATTATTTATTATTTCTTTAATTTATTTTGTTATTACAATTATTGCTTC -AATTGTTATTGGGTCTTTATTCTTTAATGATTTAAATATATTTGAAAGTAGCGGTAATCAATTATCTTTA -TTGAATCAATTATTATTAGTTAGTTTAGGTACATTTGTTGGTGTTTGGTTAGTTTTAAGCTTAACGTTGC -TATTATCATCTGCAACTAATTCAACGGGTGTAGCCATTGCTGTAGGTATTGTTTTTTATTTTGCAAGTTC -TATTTTAGCAGTTATTCAAACGGCACTTTTAGAAAAAATAGACTGGCTAAAGTGGAATCCTATTAATATG -ATGAATATTATGCTTCAAACAGTTGAAAAAGGCTTTAGTAAGTCGACGAAATTAGAACTTCATGAATTGT -TTATTGGTAATATTGCTTATATTTCTATTTTCTTAATACTTGTAGTATTTATTTTCAAGAAGAAAAATAT -TTAGTAACTTAAAGTATTAGATGAATAAATACACACATATTTCATCGTAATTCAAAATTATTTTCAAATC -CCTTCACCCAAATAATGGTGCAGGGATTTTTGATATGTCAGCATGCCACTCATTCTATCTTTAATATATT -TCAAAATCCCCCCACTTGTAATGTACAAAATATGCTCACTTAAACGATAATCGTATCTCTGCCAAGCTAT -TTCAACTCTGCTTTAATATAAAAATTATTCTCCCGGATGGGATGCTTATATCTCTATCATGATATTTCAA -CGCCGCTTCAACAACTTTATCACTTCATATTTATGCGGGTACACTTCAACGCTACTAATATGAATGATAC -AACCACAGATTCTCAACACTAAAATTCACAATATGTTTACTCTATTTTTATCAATTCAAGCATACTTATT -GAAAAATGTTAACGTTTTCTTGATAATCATTGTAAGCGTATTAATTTTACAAACCAATGATTGAAATATA -CTACAGGAGTGACACACAATGACTCAAATTACTGAAAGAGAATTAAAAAAGAAATATTTGGATTTATTAT -CTCAACATTTCGATACTCCAGAAAAGCTTGCGACTGAAATTATTAATTTAGAATCTATTTTAGAATTGCC -TAAAGGTACGGAGCATTTCGTCAGCGATTTACATGGTGAATATGAAGCTTTCCAACACGTATTACGCAAC -GGTTCTGGGAACGTGCGAGCGAAAATTAATGATATTTTCAAAGACAAGTTATCAACGAAAGAACTTAACG -ATTTGACTGCCCTTGTTTACTATCCAGAAGACAAATTGCAACTTATTAAATGTGATTTTCAAAATTATGG -ACAATTAAATGTTTGGTATATTACGACGATTGAACACCTCATTCAGCTAATTAAATATTGTTCTTCAAAA -TATACGCGTTCAAAACTTCGACGTGCCTTGCCGGAGCAATACGTTTTCATCGTAGAAGAGTTATTATATA -AGAACAACGAATTTAAAAATAAAAAATCTTACTACGAAACACTTGTAAACCAAGTGATTGAGCTTAAGCA -AGCGGATGATTTAATTATAGGGCTTGCGTATTCTGTACAACGCTTAGTCGTCGATCATTTACACGTTGTC -GGCGATATTTATGATCGTGGCCCGCAACCAGATAAAATCATGGACACGCTGATTAATTATCATTCTCTGG -ATATTCAATGGGGTAATCATGATGTGCTGTGGGTTGGTGCGTATGCAGGGTCTAAAGTATGTTTAGCTAA -TTTACTACGTATTTGTGCACGTTATGACAATCTAGATATCGTTGAAGATGCATACGGTATTAATTTAAGA -CCTTTGCTAACATTAGCCGAAAAATACTATGATGCAGATAATCCTGCTTTTAAACCTAAAAAAAGGCCTG -ACAAACATGAACGTTTAACTCAACGCGAAGAAAGTCAGATTACTAAAATTCATCAAGCAATTGCGATGAT -TCAATTCAAACTGGAAATACCGGTTATTAAGCGACGTCCAAACTTTGAAATGGACGAACGACTTGTACTT -GAAAAAGTTAATTATGATACTAATGAAATAACAGTATACGGAAAAACATATCCATTAAAAGATACATGCT -TCCAAACTGTTAACCGTGATAACCCAGCAAAGTTACTACCTGAAGAAGAAGAAGTCATGAACAAACTATT -ATTGTCATTCCAGCAATCTGAAAAATTACGTCGTCATATGTCTTTCTTGATGCGTAAAGGCTCACTTTAC -TTACCTTGTAATGGCAATTTACTCATTCATGGTTGTATTCCAGTTGATGAAAATGGTGAGATGGAATCAT -TCGAAATTGATGGTCAGACATACAGTGGCCAAGAGTTATTAGATGTGTTTGAATATCATGTCCGTAAATC -ATTTGATGAAAAAGAAAATACTGATGACTTATCCACTGATTTAGTTTGGTATTTATGGACTGGGAAATAC -TCTTCACTATTTGGTAAACGTGCGATGACTACGTTTGAACGATACTTTATTGCAGATAAAGCTTCTCATA -AAGAAGAAAAGAATCCGTACTATCATCTTCGTGAAGATGTGAATATGGTTCGTAAAATGCTCAGTGATTT -CGGATTAAATCCAGATGAAGGACGCATTATTAATGGTCACACACCAGTGAAAGAAATTAATGGCGAAGAT -CCTATCAAAGCTGATGGAAAGATGCTTGTCATTGATGGCGGCTTTTCAAAAGCTTATCAGTCAACAACTG -GCATTGCAGGCTATACATTGTTGTATAATTCATTCGGAATGCAACTCGTTGCACATCAACAATTTAACGC -AAAAGAAAAAATTCTTTCCGAAGGTATCGACGAACTGTCAATTAAACGGATTGTTGATAAAGAATTACAA -CGTAAAAAAATCCGCAATACAAATAAAGGTAAAGAGCTTCAGGCTCAAATAGATATTTTGAAAATGTTAA -TGCATGATCGTTACTTAGACTAAAGACGACTTTTGATGCACGTGTCGTACACTTATTTAGAGGTGCTGTG -TTTACGCATTGGCTACGCAAACGCGATGGTAAATAGGCGACCTAGCTACACCGAAAAAATCCCCTCACTA -TTACGAGTAGTGAGGGGATTGGTGTATCTATGCTAGTTCCTTGTTAACTGTATTATTACAACATTACAGT -AAAAAAATGCAAAATTAACTAATAAATTAATAAAATGATCGACGCCCTTGCTTCTACTCCAATTTAACAA -AATACTATATTAGTACTATATTTTTCATTCACATGTATGTTACATTTTCTATATTACTTAAAATTACGAA -GGGACATTTTTAAATCATGCGCATCTTAAAAGAGTCCATTATTGTGGCATTTGCCTTTGTTGGTGTTGTC -GTTGGTGCCGGCTTTGCTACTGGTCAAGAAATTTTCCAGTTTTTCACAAGTCATGGCGCGTATAGCATTT -CAGGCATTATTGTGACAGGACTATTGATTACTTTAGGTGGAATGATTGTCATGCATACAGGTCATCATCT -AAAGTCTAGAAATCATTCTGATTCAATTAACTATTTCTTATATCCCTCTATTGCAAGAGGTTTTGATATT -ATTTTGACAATGTTTATGTTGTCTTTAGCTATTATTATGACTGCAGGTGGCGCGTCAACCATTCATCAAA -GTTTCAACTTACCGTATTGGCTGAGCGCACTCATATTAGTCGTGTTTATTTTAGCAACACTGTTTCTAAA -ATTCGATCGTTTAATTGCTGTGCTTGGCGGTGTTACACCATTTTTAATTGCGATTGTCATTATGATTGCG -GTCTACTATTTCACAACGAGTCATTTTGATTTTACTGCCGCTAATAATGATGCTCAGATTCATAAGCAGA -AATCATTATCACCTGGATGGTGGTTTGATGCGATTAACTATGCAAGCTTGCAAATTGCTGCTGCCTTCAG -CTTCTTATCAGTGATGGGTAGTAAAGTTAAGTATCGTGACTCAACGTTATACGGGGGCTTGATTGGCGGT -TTAATTATTACATTTTTACTCATGATGATTAACCTAGGTTTAATTTCTCAATTCGATAAAATTAAACACG -TCGATTTACCTACATTAAAATTAGCGACACAAATGTCTCCGTCAATCGGTATTATTATGTCTGTCATTAT -GATACTTGTCATCTACAATACTGTTGTTGGATTAATGTATGCATTTGCGTCACGTTTCAGCGTTCCATTT -AGCAGACGTTACTTCATCATTATTATTACAATGGCTGTCATCACTTATATTAGTACATTTATCGGTTTCA -TTTCATTAATTGGAAAAGTATTCCCTATTATGGGATTGTTCGGTTTCATCTTACTCATACCTGTACTCTA -TAAAGGTTTAATTAAGCGTATTACCGGCAAATCTCATATCGATTAAAATATCTATACTATTGTAAAATTT -AGTACAACACTTCAAAATCAAAAAAGCGGACAGATGAAAAGTAAAAATCTTTTCCATCTGTCCGCTTCTT -AATAGAACTGTTATTTCTCAAGTATTTGTTGACCAGCCGTTAATCCAGTTTCTGTAATTTCATGACCATT -CACCCAAACTTCTTCGACTTGTGCCCCACGTGTCTTAAACAAGTTAATGACTTGTTCACTTGCAGCTAAT -GGCACTATTGGATCATGTTTCCCCATAGAAAGCAACACACTGACATCTGATAACTTCTTTGTTGACCTTA -CTTCAATTGGATATAACGGTGCATATAACAATGCTTTTTTAAATGGTGCTTCTGAACGCAACATTAAGTT -AATCGCTATATTTGATCCATTTGAAAATCCAACAAGTACAGCCTTTTCAATATCAAAATCATAACGTTCA -GCAGCTTCTTTAATAAACGTTAACAATTCTTGTCCCCGAAATGCCAAATCTTCTTCATCATAAACACCTT -CACCAAGACGTTTGAAATAACGGTTCATCCCATTTTCTGAAACTTGTCCTCTAATACTTAACAAGTGATA -ATTTTCATTCAATGCTTCGCCTAATGGTAATAAATCGAACTCATCACCACCTGTACCATGCAATAATATT -AGCGTCGGCGCACCATTTTGTCCTTCTCTAAAAATATGTTCCATCACAAATCCCTCTCATTCCAATTAAT -CATGTTGACGCTTCGTATTAAAAGGTCTAACTTCCGATTCTATATATTCTCTTTTATTTTCTAAAAATGG -TGGTAAGGATAACCCTTCTCCTAATGTTTCATAAGGTTCATCTTCCATAAACCCTGGTCCATCTGTTGAA -ATTTCTATTAAAATATGCCCCACACGTGCATATAATGCTTCAAAATAAAAACGATTAACGATGCCTGAGT -TGTTAATACCTACCTCTTTATATTTCGTTGCCCACGCTTCTATTGCATCATGATCTTTCACACGAAATGA -CACATGATGTACCTCACCATAACCTTGACGTGCTGCTGGCCCTTTATCATCTTTTATTAAGATTACCTGG -CCACCATTGCCTCCTTCGCCAACTTCAAGTAATGCGATATTATCTTCATGCGCAATAGTTGTCATACCGT -AAACAGTCTCTAAAATATTTTTAAAGTCGTCAAAATAACTTACTTTAATTTCAATGGGGCCTAATCCATA -AATCGCTTTGTCTACTGGAACCGGTCCATTCTTCCAAGGTACACCAGGTGCCACCCCTTCATTTAACTCA -TCTGAAATTAATTGATACACTTGGCCATCGACTTCTTCAAATGGCAACACTTTTTTACCAAATAATTCTT -GAATACCTTCATGTTTAACACCAAATTCATCAAAGCGCTGTTCATAATACATTAACGCGTCATCGTTAGG -CACTCTAAAAGACGGTCTTGTAATGGAATTTGTTCCTGCCTGCCCTTTTGTAATATTTGGAAAATCAAAG -AACGTCATGTCTGTACCTGCCGAACCAACGTCATCTGCAAAAAATGTATGATACGTATAAATATCATCTT -GATTGACTGTCTTTTTAACTAAACGCATTCCTAATACTTCTGTAAAAAATTTATAATTACGTTCTGCATC -ATCTGTCATTGCTGTGACATGGTGAATACCTAGTAATTCATGATTATTTGTCATTTTATATACCCTCTTT -ATATTTTTAGTGTATTTATCTCGAAACCGAGATATTTTAATGTAAAATTTTAGTGCACGCCTTACACTTC -TGTAGATTGTGCACTTAGTTTCTTAAACGCTTGTTGTAAGATTGTTAATTCATCCTTTGTTAACACATCA -AACGCTTTTGTTAATGTCTCAGCATGCTTAGGGAAAATATCTGCCATTTGGCTTTGACCTTTTTCAGTTA -AACAAGCCATATATACACGTTTATCATCTTTATCCTTTTCACGTGTAATCCAACCTTTGTCCTCTAATTG -ACTTACAACATATGAAATGCTGCTACTTGCGATTAATACGCGGTCTCTAATACGTTGAATTGGTTGCGGA -CCTTTATTATAAAGCAACTCGAGCACTGCAAATTCAGTAATATTTAAGCCGTATCGCTTTACGTCTTCTT -TTGTAATTTGCTCTAATGTGTCTAACGCCCTATTCATTCCGACAAAGACATTGAGCGATTGTTTCGTTCG -ATCCATATCATCACCAACTTTTTAATTTATTTCGATTTCGAGATAAATTATATAGCTGAATGAATTTAAT -GTCAAGATACGTGTTTTCATCTTTATTTCAAATTGCACTTAATAAAAACGACTACATAGATGTGGCAATG -TCGTCACATGACTGTCATGCACCTTTGACTTCGTTTAAGTTAAAATAGAATAGGGAAATACTATAATCAA -TCATGATAGGAGTTGATATGTATGAGTAACCTTGAAATTAAACAAGGCGAGAACAAATTCTATATTGGTG -ATGATGAAAATCATGCTTTAGCTGAAATCACATACCGTTTTGTGGATAATAATGAAATTAACATTGATCA -TACAGGCGTATCTGATGAACTCGGTGGTCAAGGTGTTGGCAAAAAACTAGTTAAAGCAGTTGTTGAACAT -GCTCGCGAAAATCATTTAAAAATCATTGCCTCATGTTCATTTGCCAAACATATGTTAGAAAAAGAAGATT -CATATCAAGATGTGTATCTTGGTTAAATAAACCTCGCGATGGTGCGCCAGTGCCATCGCTTTTTTATTTG -TTCGTATCAATATAAAATTGCGAAACATCATGTTATTTTGCATTTCAAACTTTTTGCTGTCAATTCATTT -TCTTTTCTGGTATACTTTTTATACTAACTTATAGAAAAATAGAAAACGAGGCGATTCATAATGGCATTTC -ACGATAAAACAGCAACACAAGTGACAAACATTGAACTGAACGTAAGAGACTTAGACTTAATGACAACATT -TTACAAAAACATTTTAGGACTATCCGTTAAAAGTTCTGACGATAACACAACCGTATTATCTGTTGGGACT -GGTGGCCATACTCTAACGTTACATTTATTAGAAGACGGCCGTCAGACTTCCCCACGAGAAGCAGGACTTT -TTCATATAGCATTTTTATTACCAACTACTGAGGATCTAGCTAACTTCTTATATTTCGTGGCACAAAAAAA -TATGGGCATCGGCGCTGGTGATCATTTAGTAAGTGAAGCTTTATATTTCAACGACCCCGAAGGTAATGGT -ATTGAAGTCTATCGCGATAGACCTTCATCTTCATGGGAATGGCAAAATGGCAAAGTTAAAATGGATACTT -TAGAAGTTGATAGCCAAACCTTATTAACACATCGTACTGATGAAGGTTGGCAAGTAATGCCAGCAAAAGG -CATGATTGGACACTTACATTTAAAAACACATGACTTAGACGCAGCATATCAATGTTACATTGAACAATTA -GGATTCCAACATGTGTCTGATTTTCCACGTGCGCTATTTATGTCAACGAATCATTATCACCATCATATTG -CTGCTAATACTTGGCAATCCAATCAAGCAAGACAAAACAATGCACAAAGTTATGGATTAACACATGTTGA -TATTTATCAACCCGACGCCTCAACACATACATTTACGGCACCAGAAGGGTTTGACATCACAGTTCATTCA -AATACTGACCTTGTTCCAGAAAAATAATCATCCATACTTTATTAATACAATTTTTTCACGCAAAAGCCTG -CGATTCATTTATGTAATCGCAGGCTTTTTTTATTGCTAACTTTTTAATTTTATATATTTAGACATACTGT -ATTCTATTTATTCTTTTGGTCCAACCCATTCAATAACATCTTCATATGCTTGGCGTGTTTTATTTTTCGG -TGGATCTTGTTGTCTGTAGCCAAATGCAACCATCACTGATAAACCAAATTGCTCAGTATCTAAGATACCT -TTATTTGCTAAAATGTCTGTCACTGTATCCAGACTAAAACCTTCCATCGGACATGAATCAATACCTAACA -ATGCGGCTGTCGTCATCATATTGCCTAATGCGATATACGTTTGTTTACTTGACCAGTCATACAAGGCTTG -ATCATTATCAGAAATATGGAAATCTGCTTGGAATGCATCGAATTTTTGTTCAACAGCTGGAATCGTTTGT -GCCTCATATTTTTTAATATCTCTTAACATATGTTGTACATACGGTGATCTTTACGTTACATTTTTACGCG -CAAAAATTAGCACAAAATGGCTCGCTGTATCTAATTGTTTCGCTGCGCCCCAACTGTGCGCTTTTAATTC -ATCACGTAACGCTTGATCTTGAATCACGACAAACTTCCAAGGTTCTAACCCAAGAGAACTTGGAGACAAT -CTACCTGACTCTAATATTGTTTCAAAATCTTCTTTCGAAACTTTCTTTTGTGGATCGAATTGCTTAGTAG -CATGTCTGAAATGAAATGCATCCATAATTGTTTGATTCATATTGCTCATTGAACATAGCCTCCAATTTTT -ATATTTATTGCTATACAAATTATACTTCATGTTTTAAAAAGACTAAAGTAATCCGTTTGCAATTCACTAT -AACTTGTGCACATGTTATAAGTTTTCTGCAATAAAACACACTTTTGAATTTTGGAAAATTTAGTGTTATA -ATATATTTGTGATATTTTTCACAATTAAATTGTGGCGTGATTTTAATGTGCATAATCTTTAATTTCACTC -ATTTACTTTTCAATCTTTTAAAAGCGAGGTTTTTAATAATGACAAAAATTATGTTCTTTGGTACGCGTGA -TTATGAGAAAGAGATGGCATTAAATTGGGGGAAAAAGAATAATGTCGAAGTAACTACTTCTAAAGAGCTA -TTATCAAGTGCTACAGTCGATCAATTAAAAGATTACGATGGCGTAACTACAATGCAATTTGGTAAGTTAG -AAAATGACGTTTATCCTAAATTAGAATCTTACGGTATTAAACAAATTGCACAACGTACTGCTGGATTTGA -TATGTATGATTTAGATTTAGCTAAAAAACACAACATTGTGATATCTAACGTTCCTAGTTATTCACCTGAA -ACAATTGCAGAGTATTCTGTTTCTATCGCCCTACAATTAGTGCGTCGCTTCCCAGATATTGAACGCCGTG -TACAAGCACATGATTTTACTTGGCAAGCAGAAATCATGTCTAAACCAGTTAAAAATATGACTGTTGCAAT -TATCGGTACGGGTCGTATCGGTGCTGCTACAGCTAAAATATATGCAGGATTTGGTGCTACAATTACAGCT -TATGACGCTTATCCTAATAAAGATTTAGACTTTTTAACTTATAAAGATAGTGTTAAAGAAGCTATTAAAG -ATGCCGATATTATTTCTTTACATGTTCCAGCGAACAAAGAAAGCTATCATTTATTCGATAAAACAATGTT -TGATCATGTGAAAAAAGGTGCAATCTTAGTTAACGCAGCACGTGGTGCAGTCATCAATACACCTGATTTA -ATCGATGCAGTGAACGATGGTACTTTGTTAGGTGCTGCGATTGATACTTATGAAAATGAAGCAGCATACT -TCACAAATGACTGGACTAACAAAGACATTGACGATAAAACATTATTAGAGTTAATCGAACATGAAAGAAT -TTTAGTAACACCACATATTGCTTTCTTCTCTGATGAAGCAGTACAAAACCTTGTTGAAGGTGGTTTAAAC -GCAGCATTATCTGTCATTAACACTGGTACATGTGAAACACGTTTAAATTAATATATATTTAAACAGGCTG -GGACATAAATCCCTAAAAAACAGCAGTAAGATAATTTTCAATTAGAAGATATCTTACTGCTGTTCTATAT -TTATACAATACTTCGTATTGAATGGCTTCGCTATGCCCATCTGGCACATTACTGTAAAATTCTATAAATA -GAATTTTTGATGATGGGTCCCTTCCTAGGGTGCCGTCTCAGCCTCGGTCTTCGACTGGCACTGCTCCCTC -AGGAGTCTCGCCATTAATACTACGTATTAACATGTAATTTTACTTTTAAATAATTTAAAAAATAAGACAC -TTTGCCAAACTTGCACATAAATGTATAATTCAATAATTTGAATTTTCTGTGTTGGGTCCCTTCGTATAAT -TTAATAAATACCACTAAACTAAATTAATGAAGTGCCTTATGTATAAAAATTATAACTTGATCCAACTTAC -ACTACCAATAGAAACTTCTGTTAGAATTCCTCAAATTGATATTTCGCGATATGTTAATGAAATTGTTGAA -ACGATACCTAATAGTGAATTCGATGAATTCAGACACCATCGTGGCGCAACATCTTATCATCCAAAAATAA -TGTAAAAATTATCTTATATGCATACACTCAATCTGTATTTTCTGGTCGTAGAATAGAGAAACTACTTCAT -GACAGTATTCGAATGATGTGGTTAGCTCAAAATCAAACACCTTCTTATAAAACTATTAATCGTTTTAGAG -TAAATCCTAATACTGATGCATTAATTGAATCTTTATTTATCCAGTTTCATAGTCAATGTTTAAAGCAAAA -CCTTATTGATGATAATTCGATTTTTATTGATGTACAAAAGTAGAAGCTAATGCCAATAGGTATACATTTG -CGTGGAAGAAAAGTATTCAAAATCATGAATTGTTTTATTTTGTATATCTGTATCAAAATCGATTTGATTA -AAATCCGCTTTATTTTATCATCTATTCAAATGATTTTAGTGCGCTTATTTTACTATGGCATTATTGCCTA -ACCTGTTTGAGATATATTAATATTTGATGATTCGTATTCAAAGTTTTCATTTAACATGTATTTAGTATCA -TGATAGCTGCTTCATTGATAATCTACTTCCTACTTTTTCAACACTTCTTGTTCGATAATCGTTAAAACAC -CCTGCTTATCATTACTTGGAGCGACAGCAGAGGCAATATTGAACAATTCTTCATCATGACTGTTTTCCAT -CACATAACTATGCTTAGCGAATGCTAGCATATCTTTATCATTATTCGCATCTCCGAAGGCCATGAGCTCT -GAAGAAGACATTCCCCATTTATCTAACAATCGTTTTAATGCCTGCCCCTTAGTCATGTTTGGCATAATAA -TATCAATGCTATCGTGCCCACTTGAGACAAGTTTAATATCATTGCTGAATTGCGTTGCTACTTCTTCGTC -AACATTCGGATGCGTCTCACGATTAATATTAAATGCTATTTTGACATAATCATCCTCAGGTAATTGTTGT -AGACTGTCAATTTCTTTTAACTGATGATAATAAAATCTCGTATCTTCTTTAAATGCTTCAGAAGTATGTT -TTAAAATATACGCGCTTTTCAAACCACAGATGACGAGTTGATCAATACTTTGGTTCATATTTAAGTAATC -GACAACCTGTTGAAACACCTGACGATTAAAGCTTTTATAATTATATAACTCATTGCCTTTATAAATAACT -GCACCATTTTCAGAAATAAAATACATATCTCTATCCCCGAAAATAGACTTCAACTTCGCATATTGATTAC -CACTCGCAGCAATAAATGTAATATCTCTATTTCTAAGTTCAGTAAAATTCGCTTCAAATCTAAGTTTATC -GTATGTCTTTTTTGAATCTAAAAACGTCCCGTCCATATCTACCGCAATAGCCTTAACCATGATTATCCTC -CTCATTGCTCTTTTAGTCGTCTTCATTATATCCATCTCATGACAAGCAATGAAGTTTGTCATACCACAAT -GAACCTATATTCACATTTTGAAATTGCTTTCATATATGCAAAACACATTACACTGGATATTAAATTACTT -TTTACCTCACACCAAACAAAAAAACAGTCTCTCAATCAAGACTGTTTTCTACTTAATATTCATCCATTAT -CACAATGGATTATTTGACTTCTGTAGCTACAAAGATTTTACGTTTTTCCCAAACGCCTGTCTTTTCATTG -TAATCATCACAAGTAATTAATGTTAATTGTTTATCTTTACCTTTTTGTTCATCTAGAACTTCTACATCTG -TAGGCTTAACATCTCTTATACTTGTCATTTTATACTTACGTGTTTCATTACCAACTTTAAAGTAAACCAT -ACTACCTTTTTTGGCTGCTTTAAGATTTGTAAATTGATAGTTCGGACGGTCAATGAAAGTGTGTCCTGCA -ATTGAAATATTTTGATCATCTAGTGATTCATTTTCTTCTGCAAAGCTTACACCTCTATTTAATTGTTCAG -GTGTTGCTGGTCCTGGATATACTGGTTCTTTAATATCAGCATCTGGAATTTCAATATAGCCTGCCACTTT -TGATTTATCTTTCGGAATCTGAGGTTTAGCTTGCTGCTTATTGTCTTTACTCGCCTGTTCTTTTACATTT -TTATCATATTGTTCAATCTTTTCATCTTTATCTTTATCGTGAAGATAATTATCGATATGTGGTTTAGCAA -ACAAATATGCTGCCACTAGGATAAGTACTACACCAGCGATTGTCATTAATCGATTTGTCCATTTTTTCAT -ACGTTAAGGCTCCTTTTATACATTTCACAATGCCTATTAACATTTCATATAGTATACCATTAATTATAAA -ATGACTCATAGCAATTCATTTTATAATATTAAATTTGCACATATATTGTCACGTTAGATTTCATTACACA -TATTTGCATTCAAATAACGAAACGCTTTTAATAATTACTAAGGGGGAATTGTTATGATTAGATGCGCTAA -AAAAGAGGATTTAAACGCTATATTAGCGATATACAATGATGCCATTATCAATACTACAGCTGTTTATACT -TATGAACCACAAACCATAGACGAACGTGTCGCATGGTTTGAAACGAAACAACGTAAGCATGAGCCTATCT -TTGTATTTGAGGAAAATGGAAGTGTCTTAGGGTTTGCGACGTTCGGTTCGTTTAGACCTTGGCCAGCATA -CCTATATACAATCGAACATTCTATTTATGTCGATGCTTCAGCTAGAGGAAAAGGTATTGCTAGTCAATTG -CTACACCATTTAATTGTGGAAGCAAAAGCTAAAGGTTATCGTGCACTAGTTGCAGGCATTGATGCTTCCA -ACAAAGCGAGTATTCAGTTGCATCAAAAGTTTGCTTTTAAGCATGCCGGCACACTGACCAATGTAGGTTT -TAAATTTAATCAATGGTTAGATTTAGCATTTTACGAATTAGATTTACAAGACTAGTAATATTTGAATCAC -ATAATATAAACAAGACAACCATGTTAATTCACTTAACATAACAAGCCAACATATAAAATTTTAAACTTCT -CAGGGAAGTGGGACAGAAATGATAAAGAGCCACTAATGATTTATTATGTAGTGGTTCTTACACATTAGCC -ACAGCTAATGTGTACTTAAAAATAGGAATACATGAGTAAAACTCATGCATAAGAAATACTTTTTCTATAG -AAAAAGTATTTCTTTATCGTCGTTCCACCCCAACTCGCATTGCCTGTAGAATTTCATTTCGAAATTCTCT -GTGCTGGGGCCCCTGACTAGAATCGAAAAAAGCTTGTTACAAGCGCATTTTCGTTCAGTCAACTACTGCC -AATATAACTTTGTAGAGCATATTACATTGATTTACATCGTCCCTTTTATTTATTCTTTTCAAATACTATC -CCCATAGCTTTGATTTAACGCTTTTTCTCAATAACAAAACGAATATAGTAGAACATGAAAACGATAATCA -TGCTGAGCGATAAAGATTTAAATAATAGATTGACCCACGTTCCCTCAGTCGTATATCCATATGTAATCGT -TGTGTTAATGATGAATGCTATAAAGATGATTGATAGTCTTAGCATATCATCACTCCTTTTAAGTTATTTT -AGATATACGGGGGCGCTTTTGCAATCACTATTTTGATTAGCATGCATTTCCCATAAATTTTTCAACTTTA -TGAAAGATAATTAAGAAGCATCTATCTGGTACTAATGATCCAGACAGATGCTTCTTTTTTATCAATATTT -TATTGTTATCTCATTAATTATTTTTAACCATATCTTCAGCTGTGCCAAAGATTTTACGTTTAATTGCTTC -GCCAGTTGGTGTGCCTGCTAGTCCACCCAATCCAGTTTCACGTAATGATGCAGGAAGGTTACGACCAACC -TTATCCATTGCTTCAATAACTTCATCAACAGGGATTCTACTTTCAATACCTGCTAATGCTAAATCTGCTG -AAATTAAAGCGTTACCCGAACCAATTGCATTTCTCATAACACAAGGAATTTCAACAAGTCCGGCTACTGG -GTCACAAACTAAACCTAATAAATTACTTATCGCTAATGCCATAGCGTGCCCGGATGCTTCTGGTGATCCT -CCGAATATAGCTACTGCTGCAGCTGCCGCCATTGCAGATGCTGAACCAACTTCAGCTTGGCAGCCACCTG -TTGCACCAGCTACACTTGCATTGTTTGCTACGACACGCCCAAACAATGCTGAAGTGAATAAGAAGTCAAT -CATTTGCTCTTCTGTTAAATCATGTGTTTTTTCTAATTTAAAAAGTGCACCGGGAATGGTACCCGAGGAA -CCAGCTGTTGGCGTTGCACAAATAATACCCATCGCAGCATTGACTTCATTTGTTGCAATGGCACCTTTGA -CTGCATCAATCATTTCATATCCAGACAAAGCATGATGTGTTTCATTATAATCACGTAGTTTAGCAGCGTC -ATGACCAGTGTAGCCCGTTACACTTTCAACGCCATCACCTGTCGTCCCTTTTATTACTGCGTCTCGCATG -ACATCTAAATTTTGTTTCATTTGCGCTCGCACTTCATCACGTGATTTACCGCTTAATTCCATTTCTTCTT -TAACCATGATATCCGCAAATGACATATTATTTTCTACGGCATAATCTATAGTCTCTCTAATTGAATCAAA -CATGTTTATTCCCCCTCTAATTTATATAGGAAACGTTTACGTCACTGTATTTCTCTTTAATTGTATTTAA -TGTCGATTCTGAGATTGCTTTATTTAATGGTATTACAACCAAGCATTTATCTTCATCTATCATAATAAAT -TCATCTTTACAGTCTAATTTCATATCGTTGATATCATTAATGAAATGATTTACTTGTGCTTTAGTCATAT -TTCCGTCAACAACTAAAATTGGTAATCCATGATTTAAATCTACTTCTAGTCCATTTATATGAATACCTTT -AATTTTAATTGTACCACCACCGATTGAAATACCGATAATTTCAATGTAGCGACCATCATTACGAAATGAT -TTAATATAAGCACAGTTTGGATGTTGACCAATACTATCGCCTTCTTCTTCGACGATATCTATTTTAATAC -CATCATCAGCTGCAATTTCTAATGAAGATTTAATTCGGTTATCAAATGTTGAATATCCCATTGCTCCACC -CACAATAGCGACATCTGTACCATGTCCTTGGTGTGTTTGAGCAAATGATTCATAATAATGTATTTCAATA -TTTTTAGGAATATCTCCCAATATTGCGCGTGCTGAATTCCCAATCTTTACTGCACCAGCCGTATGAGAAC -TTGAAGGTCCCATCATAACTGGTCCGATAATATCGAAAGCACTTTGATAATCATAGCTCTTTGCCATAAT -TAAACACTCTCCTTAATATGATTCTTTTTGCTCGGCATTTTAAAGTTGATATTCATTAAATTAAACTTAT -TAATTAGTGTTCCAATAATATAGGCTAAGACAATGCTGACAATAATCACTGTTGCGATTGTTACAATTGA -TGTCACTGCATTATTAAAGCCAAATAATACGATGGCACCTGCAATTGGTGTTGCCATACCTTTGACACCT -ATTACTAGTCCGCTAAATGTCACGATACATGCGTTGACGACCCCAATCAGTGCATTTGTACCATATAGTT -GTACTGGATATTGCGCTATTAAATCAATTTGCGTCAATGGCTCAATACAAACTGCAAATGCTTTTGACGG -TCCACCAATGTTTAATTTTCGGAATAAAATAAGGTTAACAAATGAGCTACCTGTACATGTTAGTGCTCCA -ATAGCCATAGGAACACCTGTCAGTCCTAATAAACTTGTTAATACCATTGAACTTAGCGGTGTCATACCTG -TAACAGGAATCACTAGTCCTAAAATGACCGCTAATGCATATGGATTGTTATCACCTACCGCAGTGACAGC -ACTACCTATTTGTTTTAATGTTGCTAGCACACCAGGTGTAATGATTGATGCAAGTCCGAAAGCAATTGCT -GGTGCAAATAAGATCACCACAATTAAGTCCAAGCCTTCCGGAACTTTCTTTTCAATCCATTTAATTAAAA -AAGCTACGCCATAAGCTGCGATGAATGCTGGTAATAATTTAAAGTCATGTAATACTAAACCAACAATGAC -CGCAAATACTGGTGCAACGCCTAAGTTTAAGCACGTTAGAATACCTACTGCGATACCGCTTAAACTTCCT -GCTAAATCCCCAATATCTTGTAGAAATTTAATATCAAATACGCCACCAATAGCGTAACTTAAGAATGCTT -GTGGTAGAAATGTCGCACAAGCTGCACCGGATAATGCTTGTAGTCCTTGTTTACCGTACGGTGCATACTT -TAAAAATAGCGTCATGATCACTAAAACCAAGACTAATGTGCCTACACCTAACAGAATATCCATTTCCCAA -AAACCTCTCTCTATGTTTATTTTATTTTCAGACCATAAACATCGTACACCCTTAAGAAAACGTTTTCAAC -TTTTATCTGTTATCAAATCAAATATTTAAGTGAAATATTTCATATTTGTGAAAGATTTTTAAAATGGATT -GTTTCAAAAACTGCTTATGTTGTCATTAATATTTACTAATTAACTTTTTACTCTATATTTCAAACAGTTG -TGTGACAGTTTTTTGATAACTTTTTTACATCTGAAAGTAAGTAATATTTCTAAAAACTTTTAATATTTAT -ACATTTTATCTTTCGAGCTATTTATTTCTTATTTTTGTGCTGTGTTTATAAAACCGCACACTATATTCAA -AAATAACTTATTACACATATATTTGCAATAAGATAATTAAAGTAGGATATTATTTTTAGTTTTCTGATAG -GAATGATGATAGTCTATAGGTTGAATCTTTACTTTTTTTAAAGCTAAATTTACATCAACTTAACAATGGT -TGGTTATACTGAAGATGAAAATATTTAGTATAACTTAGTGGAGGCGATAAAGGTGCAATTGAGTCATTCC -GTTAAAGTTGCAATTTCTATCTATTTAGCACTTATCTTTATAACGTTCACTTCTTATTTAGTCATTATTT -TATATACGAGTATGACTGGACATGATGTATCACATTTCGTTTTAGATAGTCAGCATTCTCATCATGGATC -TCTTACGCAAAAACATTTGAGTCTTCCTGAAATCTCATTTAAATAGTTTATCCTCTGTGTTTCAACATTC -ATTTCCCATATCGATTCATTTATCTATCATCCAGACCACTACATCTTAGATGATTTTTTTTATTTTCTCA -TTTCACTCTTTCTTAAAAGTCGATATAATGAATTAAATCATTATCATACACTGACATATTTTATGTTGTT -GGTGTTAAGTTTTAAAGGGGTGAGATACTTGGTGAATAATCATTCAGCTTTGCGTTTAAAAGGAATTATA -CTTGCCATTGTCGGTGCTTGTTTATGGGGATTAGGTGGTACTGTTTCTGATTTCTTGTTCAAATATAAGA -ATATTAATGTCGATTGGTACGTCACTGCTCGACTTGTAGTCAGTGGTGTTTTCTTACTTATTATGTACAA -AATGATGCAACCCAAACGTTCTATATTTAGCGTATTCCAAGATCGACGTATGTTAGGCAAATTACTTATC -TTCAGTATACTGGGCATGTTAGTTGTACAATATGCTTATATGGCATCTATTAATACAGGTAATGCTGCGA -TTGCAACATTACTACAATACATTGCGCCAGTCTATATTATTATTTGGTTTGTCATAAGAGGCGTTGCAAA -ACTAACATTATTTGATGTGCTTGCTATTATCATGACACTATTAGGAACATTTTTATTATTAACGAATGGT -TCATTTTCTAATTTAGTCGTCAATCCTGCAAGTTTATTCTGGGGTATTTTAGCTGGTGTAGCACTCGCTT -TTTACACAATTTATCCTTCAGACCTACTTAACCGCTTCGGTTCGATTCTAATTGTCGGGTGGGCAATGCT -TATTTCTGGTGTTGCGATGAATTTACGCCATCCAATTTGGCACATTGATATCACTAAATGGGACATATCA -ATTATATTATTTTTAATCTTTGGTATTATCGGTGGTACCGCACTCGCATTTTATTTCTTTATCGACAGTT -TACAATACATATCAGCGAAAGAAACAACATTATTCGGAACTGTTGAACCTGTCGTAGCCGTTATCGCAAG -CAGTCTATGGTTACATGTGGCATTCAAACCATTTCAAATCGTAGGCATCATTCTTATTATGATTTTAATT -TTATTACTATCCCTTAAAAGACAACCTGAAACATTAGATGAATAAGAAAACTCTGATAATCACTTTAGCA -AGTAACTATTTTTAACAACGTAGTTACCTTATAGGTGATATCAGAGTTTTTTATTTTAGTTAATAATATT -TTTCACTTGGTATAAAAAGCGTCGTCGCTCTGGTATCGGAAATACTGGATAAATATGGAATTGGTAATAT -CCAGGTATAAAGTCATGTTCGATACCTTTTGCACTCAACAATTGCGATAAGTTCAAAGCATCTGGGTACA -GTACTTCTTTTGTGCCAACAGTTAATGTAATACGACCTAAACCATCTAAGTCACCATTAATTGGCGATAC -TTTGTAGTTATCTAAAGGTGTGTCCCCTGCCCATTGTTCAGCTAAGAACACACTGCCATTCACACCTACC -ATTGGGTCTTTCTTTAAGTAGTCAGGAATTTCAGGATGCTGCATCGTTGCATCTAAAACTGGTGAAATTA -ATACAATATGTCCTGGTTGCACAATATGTTTTTCTTTTAACAATTGAGCAAATGATAGAGCAATTTGACC -GCCCGCAGAGTCACCCATTACAACGATTTGTTTAGAATCTGCTACTTGATTCAATAAATCATGGTACAAC -TTTTCAAAAAGCACATACGTCGCTTGATAATCTTGATGCGGAATCTTCGGATATACTGGCATGATGACTT -TAGCATTGAGTGTTTCTGCAAGTTCATCAATAAATTCGAAATGAATTTTGAGTGGGTCTTGGAACCATGC -GCCTCCATGTGCATATAATACAACGCGTTGATGCTTATCTTGTTTATCGTTAACGGTATAAACGGTTGAA -CCGTAGTGCTTATCCACTTTTACTGGCATCTTAAACTGATAATGGGTGCCCTCATATTCACCTGCTGTCT -GTGGCGCCATTTTTTCTAATGCTTTCATCGCTTCTTCTTTATACATAAAACGACGCTTAGCTCTAGATAA -TCGTATACCTTGTTCTAACATATAACTTTTCACACTGCGTTTTTCTTTAATTCTAATATGTGCGTATGCC -GCTACTAAAAATCCAAACGCAAGTGTAGACCATTTTTTACGCATTTGTCGTCACTCCTCTTTGATGATTT -CTACTATAGTATTAATGTACCATGCTGATTCTTATTACTACCAATATTTACTGGGAAATAAGTTATAATG -TCTACATAATCTTAGCAATACTAATCATTTGCGATATTCATGCTCATCGACATCGTTATTCACACTATCA -TTCATTTGCTTAAGATGATGTTCAAAACGTTGCATATCGATAAAACGCCCTTGACGATGCATTTCTTTTC -CATTCATAAAAATTAAATCCACAGGTACAGTGAAAATATTTAATTCTCCAGCAATAGCTTCCACCTGACT -TTGATTAATCACAGCTAATGGCACATTGGGGTATGATTGCATCAAGTCTTCAATTTGTGGTAAAACGGCA -TGACACACGCTACACTGATCGCGCATGACATGTACAACTGCTAACGGATATTGATGAATAAATTCACGGA -ATGCTTCGACACTATTTAATTGCTTAACCATTTCGAACACCTTCTTACTTTTTATATTTTAAAATGAAGT -CATTATTTTGTTGCTAAAATGTCTTGAAATACTTGTGGCACAGAGGTAATCTTCTTATCGCTCAATCTGT -AAAAACCGCCTGTCTGTGTACCAATACAATGCACGCCATGTGCGGACACAATTTCAAACTGAAACACCCA -TTTCATCTTGCTTGCTTTAACTAAGTAAATACGGCCTACTGGTTTGTCATGTATTGTGACAGGTACTTTA -TATTCTGCTTCCGTTTTCATAAGTATAGGTGAAATGCCTTGATTGATCATTGTTGAGTAATTCATGTGCT -GATTAATAAACGCTGTTCTCAAATCTTCGAACCATCTAATATAAACGATATTACTAACGACACCCATCGC -ATCAATGTCGTAACCATTCACTTCGATTTCTTTCTCTGCAACTAATAGACCTTCTGTTGTCATAATGACA -AATCTCCTTATCTTACAAATAGATTTAAAATCATGTTAATTTATTTTTATTACTTTCATGATAAAAATAC -AAGCAATTGAACTTTATTACGGAAAATCAAACTTTTCAATGACGCTATTAATTTGGCTAGTCGCGAAGAT -GCATTTTTCTAAAATGTGACAAAAACATAAGCAATGTTTTCTATACCTAACACTAATATTTAACTTATTC -TCATCAACACACCTGCTATACATCATTGCGCACTAAAAAGACAGTAGCTTCATTTTAAGCTACTGCCTTT -TGTAACGTATTCTCTTTCAACTCGCTACTTCGCATACGCACTATGAATGACTAAAAGTTCATTCATTTGA -TATGCTATTTCATTTTCAATCATTATTTGACTGTCATAATTAGCTTACCTGGATCAGCATCTTGGACATC -TTCAATGACAAGTTCTTTATTTTCAAGATTTGTAATAATCATTGGTGTAACGATGCTTGGTGCGTGCGCT -TTCAAGTATGCTAAATTCACTTTCATTAATGGTTGACCTTGTGTTACTTTTTCATCAACGTTAATCAGAC -TTTCGAATCCTTCACCATTCAGTTTCACTGTATCGATACCAATATGAATAAGTACTTCGACACCACTTTC -AGATTCTAATCCTATCGCATGTTTCGTAGGGAAGATTGTTTTCACTGTACCATCAAACGGTGCTACAATT -TCACCTTTTTCAGGGATAAAGCCAACACCATCACCCATCATTTTACCAGCGAATACTTGATCAGGTACTT -CTGATAATGGAATGATTTGACCGACACCTGGTGCATAGATGTCTGTTGTTCCAAGTGCTTCTACGTGAAC -TGGTTCATCTGACATTTCTTCAGTCACTGTCGTTTCACTTGGCTTTGTAATTTCACCACTCATAATCTTC -GCCATATCATGTTTAATTTGATCTGATTTTGGACCAAAGATAGCTTGCATATTGTTTCCAACTTCTAATA -CACCTGATGCGCCTAAAGCTTTAATACCTGCTACATCTACTTTTGATTTATCAACCACTTCTACGCGCAG -ACGTGTAATACATGCATCTAAATGTTTAATGTTTTCTTTTCCACCCATTGCATCTAAGACATCAAATGGT -AATTTTGCGACACTAGAGTTACGAATTTCAGTTTCTTCATCTTCACGACCTGGTGTTTTCAATTTAAACT -TACGAATTGCAAAGTCGAATAAGAAGTAATACACGATAGCATATACAATACCGACTGGAATAACTAATAA -TGCGTGTGAACGATCCCAGTTTAATAAACCATATAAAATATAATCTATGAAACCACCTGAGAATGTCATA -CCAATTTTAACGCCTAATAAATGCATTACTAAGAATGATGTACCAGCTAATAATACGTGAATTCCATAAA -GTACTGGTGCTACAAATAAGAATGAAAATTCTAATGGCTCAGTGATACCAGTTAAAAATGCAGTTAATCC -TGCTGATAACATTAAACCACCCACGATTTTTTTACGTTCTGGTCGTGCATTTTTATAAATAGCAAATGCC -GCCGCTGGTAAACCAAACATCATGAATGGATATTTACCAGTAGTAAATGCACCAGCAGTAAATGGTACGC -CATCTTTCAATTGTGCCATCCAAATACGTTGGTCACCACGAACTAATTCACCTGCGTGATTTGTATAACT -TCCGAATTCAAACCAGAACGGTGAATAGAAAATATGATGTAAACCAAATGGAATTAATGAGCGTTCAATA -ATACCGAATATAAAAGTTGTTAATGTTAAATTTTTATTTAATAAGAAATTCGATAAACTATTTAATCCAT -CTTGAATTGGTGGCCACGCAAAACTTAAAACCACACCTGTTGCAATTGCTACGACCGATGTCACAATCGG -TACAAATCGTTTACCTGCAAAGAATCCTAAAAATGGTGGTAGTGTAATATTATAAAATTTGTTGTAACAC -CATGCGGCTAAAGCACCCATGATAATACCACCAAACACACCCGTTTGTAATGTTGGAATACCTAATACTA -AGGCATGTGCTGGTTCTTTCGCTGCTTGACTTAATTCTTTTGCCCCTTTGGCATATGAGAAAATGTCATC -AATTGTAATATGCAACACTTTCCCCATTGTTGCATTCATAATTAAGTAACCTACTAGCGCTGCTAATGCT -GCAACACCGTCTCCTCCTGCTAATCCAAGTGCTGTACCAACTGCAAATAATAATGGCAAGTTATCAAATA -CAACTTGTCCTGCTGCTTCCATGACCGACGAAATCATTACAATGATATCGTTTTTTAACCATGGTGCAAT -TTCTACTAATTGTTCGTTGTGCATTGCGTTACCAAACGCTAATAAAATACCAGCTGCTGGTAAAATCGCA -ACAGGTAACATTAATGCTTTACCGATACGTTGCAATTGTCCAAACAATTTCTTAAACATATAAACATCCC -CTATCTCAATTTCCGCTTCCATGTACAAAAAAGCAGGCATGAACAAACAAGACTATTCTCATAGTACGGT -TGTTTGCTCATGCCTGCATTACCAGTAACACGCAAGTGATATGTAATTCATAGCTATTATACATATTTGT -AAAAGCGTTTTCAACAACTTTTTCACAATTTTATCATCAATTCAGTACAATCATTTGTGATAAATAAACA -AAACGGCAATTCCCATTTTGTTGAAATAGAAATTACCGTTTTTATAGTTCAATTCAATTGTGATAACCTT -TCAATCAGTTATAAGAAACGTTTTGCTGCAACTGAAATAGGTGGAATTTGATCTAAATCTAAATGTTTAT -CTTCAGTAATAGATCTAAATGCCCATTTACCATAACCAAGCGCTTCTTCATTTACAATTTTACCTGGTAA -TGGCGCAGCATTAGGATCAACATAAACATCTACAATTGTTGGTACATCTTGTGCTAGTGCCTCTTCTACA -ATAGCATCTACTTCGCTAGCACTTTTAATTGTATAACCTTTACCACCTGCTGCTTCAGCAAATTTGGCAT -GATCCATATCAGAGAAATCAACCGCATATTCTAATTCACCAGCAGCTTGTTGTTCATATTTAATAAACGC -TAATTGCTTATTATTTAGAACAAACACTGTTAAAGGTAGATCATATTGTACAGCTGTTGCAAAGTCCTGC -ATCACCATTTGGAATGCACCGTCACCAGCAATTGCGATGGCTTGTCTATTTGGATATGCAATTTTTGATG -CCATCGCACCTGGAAGACCGCAACCCATTGTACCTAACCAACTTGAAATGATGAACTTGTTATTTACACC -AAGGTTTAAGTATCGAGTTGACCAAACTGTTGCTGTACCTACATCTGCTGAAATCACTGCATCATCTTTA -ATAAATTTATTGATTGATGCCATTAATCGTTCTGGACGTAATGGTTTACTATTATTATTTTTATCTTGTT -CCATCCATTTATCCCAAACCGCTTTACGTTCTAACGTTTTGTTTAAGAATGGTCTTTCAGCAACATGTTT -AATATTTTCAGTTAACTGATGCAACGCAATTTTACTATCTCCAACAATTCCTACATTAATATTGAAACGA -TGTCCGATATTTTTAGGATTTGTGTCAATTTGAATGGCTTTAATATTTTTCTTAGGTAAGTAATCCACAT -ATGGATAGTTTGTACCAACCATAATTAATAAATCCGCTTCCTGCATTGTTTGATAAGATGTTTTAGTACC -GATTTTACCTAAGTTACCGATACTATATGGATGATCATCCGGCAAGATTGTTTTAGCTGGTAATGAATGA -ATGACAGGAATTTTAGCCATTTCAATAAATTCACGTAGCTCATCTTTCGCATGTTTCGCACCAACACCGA -TTAACATGACAGGCTTTTTACTTTTATTAATTAATTTAACCGCTTTTTTGATGTCTTTATATTTTGGTGA -TACTACTGTTGGTCTTGATGTATCTACTGGTTTATTCGTTGTATCTTTAATTTTTTCAGTTAATAAGTCA -TTAGGACAAATAACAACAGCTACACCTTTTTGTTCATATGCCGTACGAATTGCTTCGTTAACGATTTCAA -ACACATTGTCACCTTTTTCAATTTGGTGATTATAAACGGCTACATCTTCACATAATTTTTGTAAATTTGT -TTCTTGGAATGCTTTCGTTCCAAGTGCTGTACTATTCGTTTGTCCAGATAATATTAATTGCGGTACATTA -TCCATTTTGGCATCGTACATACCATTTAATAAATGAATTAAACCAGGGCCACCGATACTTAATGCCACAC -CGATTTTACCAGTTAATTTTGTATAACCAGCAGCTGCTAAACTTGCTACTTCTTCATGACGTACATGATA -AAATTTAAATTGATCTCTCACTGTACGTAAACTATCGACCACTGCGTCGATTGAATCACCTGGAATACCA -TATAAGTGATATATATCCCATGCTTGTAATGCTTTAACTAATGCTTCATTTGCTTTTATTTTTGCCATTA -TTACTAATAGCCTCCCTTTCTTAGTGTCTTTTTCTAATTAATAGAACAGTATGATTAGAACAGGTATTAA -CACCGAACTAATAACTGCAGTTAAAATCATCCCAATTGAACTAAATGCACCAGATTCAATATCCATCTCC -AGTGCTTTAGCTGTGCCAAATGCATGTGACGCATTCCCATACGTTAAACCTTTGGCGATAGAAGATTCAA -ATCTTCCAAATCGTAATAACATCGAACCTAAAATACTACCGATTAAACCCGTTGTGATAATAAAAAGTAC -GGTCATCGTATCTGTGCCACCAAGTTCATGTGACACTTCTATACCAACAGCGGCTGTTATAGATCGGGGC -AATAATGTTACAATGACGTCTTTAGAATAGCCAAATGCTTTAAGTGTTAAGAACACTAACATGAAATTTA -GCATGACGCCAGTTAATACACTTGCAAAAATGATAGAGACATTATCTTTAATTTTCTCTCTATTTTTATA -AAGTGGGTACGCTAAACATACGACCGTTGCGTTTAAAATATGGTTGATCCAACTGCCACCTTTCATATAC -CCGTTATAACTAATTCCAAAGATAAGTAAGACAAAAATAATTCCTAAAGATGCAATTAATGCTGGATTCA -AAAATGGATTTGGATATTTTTGTTGTAATCTTTTAGCGAAATAATATAAAACGACAGTCAATAAAATCAT -TAACAAGGCTTGCACGTAATCATTCATAAGCATCTATACCTTTACGTTGCTTATGTTTAACAGACATTTT -TTCAGCAATATAACCTGAAGATAATGCAACGATACATGTTCCTATGATAATGACTGCGAAAAAGAGTATA -TAATTTAGCGTAATTTCGGAAGCAACATCCATAATACCTACAACTGACGGTATGAAGAAAAAGACCATCG -TCTTTAATAAAAAGTTTGCACCGTCTTCTACCCAAGTTAGCGGTACAATCTTAAATTGTAATAGTAAATA -AAATAAAAATAGACCAACAATACTGCCGGCTAAGGGAAGATGAAAAATCTTTTGAATTTCTGTGCCAATA -TAAGTAATCACAATGATGATTCCTAGTTGTAGTAATAATTTGATTATTAATTGGACTTTGTGCATGGCGC -CATCCCTTTCTAAATACGTCTAAATTGTTACAATAACTATTATAAAGATGGCGTACACAATATAAAAATA -CTCTTTTTTTATGGTTTGTATTACTATTTTCTATGGAAACGCTCTCTAAATTTCACTTCATTTTCACAAA -AAAAACACTCATTATTTCAATGATCCAAGTAATGAGGAATCACAAATAATGAGTGCTTTATTAATATGTT -AGCCTAAACGATCTTTCAAAAATTCTATCCATTTCGTTGTGGCATGACTTAATTGTTTATCCTTCTTCCA -AACAACACCTAATTCCCAATGTACATGCGCATCTTCAATGCGTAGTAGCTTCACATCTCCATTTAGTTGC -TCTGAAATTGATGTTGGTAAAATACTAATACCTAATTCATTCGTAACTAAATCTTCTATAACATGCCATT -GTGAAATTTGCGCTACAGTATTCGGAACAAAGCCAACGTTTTTAGCATTTTCAATAATTTTATCATTCAA -GTAAAAGTCTTTATTAAATAAAATGAAGTCTTCACCTGCTAAATCTTCGAGTTTAACAGTTTCATATTTT -GCGAGTCGATGCTCTCTGCTCACGATAAGTCGCAAATCTTCCTTATCTAGGGTAGTATAATCGAAAATAT -GATGATCCACTGGCAAAGTGGTCACGCCTATATCTACTTCATCATTGATAATTTGCTGCTCAATCGTTTT -TCCGCCATTTTCTATTAAATTATATGTAACATTTGGATATTGTTGATGGAATGCACCAAGAATATTTATA -AGAATCTTCATATTCATGACTGCCGACATGCCCATGTTTATATGCCCTGTTTCCAGTCCATTCAAGCGTT -CCATTTCAGATGGTAAATAATCGTATAGTGCAACAATTTCTTTACTTTTCTCATAAAAAATTTGACCTGC -ATCGGTAAGTATTAAATGTCTTTTACTTCTATCAAATAAGGGCGTACCCATTTCATTTTCAATATCTTTA -ATTGCTTTACTAATTGTAGGTTGTGCAATATATAATGATTTGGAAGCATTAGTCATGCCTCCTTGCTTTA -CGACTTCAATAAAATATTTCATATGTTTGATATCCACTAACATCATCCTAACTATTTCAACACGTTTATT -TCATTATACACAACTTCTTAAACATTCAATAAATTTAGATTTATAAAATTGCTTTATAAAAAGTTTTATG -TAAAATACACATTCTTTTATGGTATTATATTAATGGCTCAAGTTTGTTATTCGAGGTGAGGTATTGAGCT -TTTACGAATTTATGCAAAGTTTTCTTGGTGATGACACACCATTAGGTGAATTGGTTGATTGGATTAATCA -AGATAGCAATTTCCCTAGAGAAGTGAAGAGCCATAGTGAAATATTGTCATATTTTCGAACAAATCCATGT -CCTGAAAGCATCTCAGTACCTGTAATTAAACGGGCACTATCAGTTTTCAACCAATTCACAAATGTACAAT -GATACATGAATACATGGAGTCACATCATCTCATGTTAGCGCTCTGATTGCAGGGCGCTGTTTTTAATGTT -ATCGCTTCATTTATATGTTGTGATTGCTATTTTCTTTCAGTTATAGAACCACGTACCTTTTCTTTTAAAT -CATTTTATATTTTCCCACTAATATCCGCTGTTAATCAATCCTGACATCCTTGTATCACTATGACACTTAA -TTGTTAGATACATAAATTTCTACATTTTATGAAAAAATCCATTTTTATTACAATTTAACACTTTATATGA -CAGCTTCATTACAGTTACTTTTATTGTTGATTGCTTGCATTGTTTTCTAAAAAAATTTTGCTATCATAAA -TAACGTTGAATAAAGAAAAAATTAACTTGGGAGATAAAAATGAAATATAAAAAGATACTTTTTCGTTTAC -TAATTGCTTTTGCAGTCCTTTTCTCAGCAGATTTCATTTATCAATCCGTCGAACAAACGCATCAATCGCA -TGCCGCAGTTAATTATTATAGTAAAAACCAATGTACATGGTGGGCATTTAAACGTCGCGCACAAGTCGGT -AAACCTGTTTCTAATAGATGGGGCAATGCCAAAAATTGGTATTACAATGCACGTAAATCAAAATATGCGA -CTGGTCGTACACCAAGAAAATTTGCTGTCATGCAATCAACTGCAGGATATTATGGACATGTCGCAGTTGT -TGAACAAGTATATAAAAACGGTAGTATTAAAGTTTCAGAATACAACTTTTATCGCCCATTAAAATACAAT -ACACGTGTACTAAGCAAAAAGGCAGCACGTAACTTTAACTATATTTACTAATCAAAAAACTTCTATCACG -AACGCTTCAAATTCCTGTATGCGTGTGATAGAAGTTTTTTATTTTTTGTTCATATTAATTTATTTAAGCG -CTACGATGGACTGACTTAAACTTTTCTTTAAAATCGCTATTCGCATTTGATTATTGTTGGCTTCTTAAAT -CTTGTAAAATGCGTTCAGCAACTTGTGTATTCGCACGAGGTTCTTGCTTCAATGCTTCAGCTACTTGCGC -AATTTCATCACCTTTTGCACCTACAACAATAGCTAAAGATTTATATTGCAAGCTCATATGGCCTTGCTGG -ATACCTTCAGAAACGAGCGCGCGACATGCTGCAAAGTTTTGTGCTAAACCAACGGCAGCAACTACATGAC -CTAATTCTTGCGCTGACTCTACATTTAGTAGCTCTAATGATGCTTTAGCTATTGGTAATACTTTTGTACC -ACCGCCAACGATTGCCAATGTCATAGGCACCTCTATGGTACCAATTAAACGTTGACGTTCTTGATCGTAT -CTCCATGTTGCAATACCACGATATTGACCATCTTTACTCGCGTATGCATGCGCACTTGCTTCTGCACCAC -GCGTATCATTTCCTGTTGCTAAAACAACGGCATGTATGCCATTCATAACACCTTTATTATGTGTTGCAGC -ACGATGAATATCAACTTGTGCCAATACAGAAGCACGTTCCATTCGTTTGGCAACCTCTTCTCCAGTTCTC -TCGCCCCTTGCTAAATCTTTAACATCAATTTCGCCTTGAACTTTAACAACGGACGCTGTTGCATGATTGG -ATAAAATACTCATTAAAATGTCGCTTTGCGGAAATTCATTTTTTAAAAATGCAGTTATAGCCTCTAAAAT -CGTATTAAGCATATTAGCGCCCATAGCATCTTTCGTATCAACAAATACTTTTAAAGATAGTAACTGTTGC -TCAGGAAATGTATCAATAGCTATACGTTGGTAACCACCACCACGCGCTTTAATAGAAGGATATGCCTCAT -CCGCAATTTGATGAATTTGCTTCTCTAAAGCTTTAATGTCTGCTGATAATTTTTCAGTATCGTCAACGCC -ATCAAAGACGATTTGACCTATCATAATACGTTCAGAAGATACCGTTTTAAATCCACCAGTCTGATTCACT -AGCTTTGCACCATAACTAGCTGCAGCGACAACTGAAGGCTCTTCCACCATCATAGGTACAACATATGCTT -TATCGTCCACAATGATATTCGGTAATAATCCAACGGGTAATGCACCTTGCGCGATGACATTTTCAATTAA -ACTATTTGCTACTTCCTCATCAATTAATGGATGATTCAATAAAATGTTGAATTGCTCTTCTGATAACCAT -TGCTTATCTACCAATTGTTGTAACTTTTGTTGACGAGATAAATGTCGGAAATTCTTATCTAAACTTTGCA -TGGACATACTCCTTTTACTTCACATAATTTTTTAACATTTCAATCACTACTATTTTTACCATAAAATAAC -GTTATTCGTCTTAAAATTCAATTGAATAATTGTCGTTTTGACTTTAAAATAAAGCAAGGTAAATTAAAAC -GCTTACAAGAAACGTCAAATCATTTTTAAATTTAGTGTATTTCTTTGTATAAGATTAGCATATTCTGATA -TGATACAAGTGTTGCTTTTATAAATTTGAAAGGATGTAAAACCTTATGACATTAGGTATCGACAAAATAA -ACTTTTACGTTCCAAAGTACTATGTAGACATGGCTAAATTAGCAGAAGCACGCCAAGTAGACCCAAACAA -ATTTTTAATTGGAATAGGTCAAACTGAAATGGCTGTTAGTCCTGTAAATCAAGACATCGTTTCAATGGGC -GCTAACGCTGCTAAGGACATTATAACAGACGAAGATAAAAAGAAAATTGGTATGGTAATTGTGGCAACTG -AATCAGCAGTTGATGCTGCTAAAGCAGCCGCTGTTCAAATTCACAACTTATTAGGTATTCAACCTTTTGC -ACGTTGCTTTGAAATGAAAGAAGCTTGTTATGCTGCAACACCAGCAATTCAATTAGCTAAAGATTATTTA -GCAACTAGACCGAATGAAAAAGTATTAGTTATTGCTACAGATACAGCACGTTATGGATTGAATTCAGGCG -GCGAGCCAACACAAGGTGCTGGCGCAGTTGCGATGGTTATTTCACATAATCCAAGCATTTTGGCATTAAA -TGAAGATGCTGTTGCTTACACTGAAGACGTTTATGATTTCTGGCGTCCAACTGGACATAAATATCCATTA -GTTGATGGTGCATTATCTAAAGATGCTTATATCCGCTCATTCCAACAAAGCTGGAATGAATACGCAAAAC -GTCAAGGTAAGTCACTAGCTGACTTCGCATCACTATGCTTCCATGTTCCATTTACAAAAATGGGTAAAAA -GGCATTAGAGTCAATCATTGATAACGCTGATGAAACAACTCAAGAGCGTTTACGTTCAGGATATGAAGAT -GCTGTAGATTATAACCGTTATGTCGGTAATATTTATACTGGATCATTATATTTAAGCCTAATATCATTAC -TTGAAAATCGTGATTTACAAGCTGGTGAAACAATTGGTTTATTCAGTTATGGCTCAGGTTCAGTTGGTGA -ATTTTATAGTGCGACATTAGTTGAAGGCTACAAAGATCATTTAGATCAGGCTGCGCACAAAGCATTATTA -AATAACCGTACTGAAGTATCTGTTGATGCATATGAAACATTCTTCAAACGTTTTGATGACGTAGACTTTG -ACGAACAACAAGATGCTGTTCATGAAGATCGTCATATTTTCTACTTATCAAATATTGAAAATAACGTTCG -CGAATATCACAGACCAGAGTAATCTGTGTATTTGAAAGACATTTAAATATAACCTAAAAACAGCAGTAAG -ACAGCTTCTCATTGAAATCGTCTTACTGCTGTTTTTTATTTATAATGCTTCGTCTTGAATGAATTCATAA -TGCCTATTTGACACATTATTAAAGTTTTCCTATTGCCTGAATCCTTTATACGTTACGGCTTCGTGCTATG -TTTTGGTACATAAAGCTTTGACATATCGATATTCTCCAACTCTAACAGCTTAATTTTATTATTAATCGTT -CCACCGAATCCTGTTAAGCTACCCGTTTTACCGACAACGCGATGACATGGCACGATAATAGATAATGGAT -TACTTCCGACTGCACCTCCAACCGCTTGGGCTGACATTTTTGGCTTATCAAGCAGCTTGCCTACTTTTTT -GGCAATAGCACCATACGTTGTTAACGTCCCATAAGGAATCTGTCTTAATTCATTCCAAACACACTGTTGA -AAATGACTACCTGTTGGCTTTAAAGGTATTGTGATTTCAGGATTGTCACCTTTAAAATACGCGTCTAACC -ACTGTGTCGCCTCTTTAAATATCGCTAAAGACGTATTTTCTTCCCTAGTACCATCATCTTGTTGATTTTC -AAACAAAACAGCGGTCAGACTTACCCCATCACTCACAAGTTCCAATCGTCCTACAGGAGAATCATAGTAA -CTCTTATATACCATAAACACACACTCCTTTTTCATCATCATACTATTCATTTAACTTTATGAAAATGATT -AACACTTTATGCTTTATCAAGATCAACTATTCACTTCCAAATCAAAATTCACATAGACTACCAACACAAT -ATACCATTTCTTAATTAACTATGTATCAACACATACGTTTCTTAACCATTGATTAATATTTACTTTTAAA -TTCTTACTTACTTCAAAAATTACACAAAAAGTTCATAAAGTGCCTACAATGCGCCGTTTTTAAAACTACA -ATGGTGGAAAAATAGAATTGCCATTGTTTATAGTTTGCATATAGTTTCAATATATTTTCTTTTACTTAAT -AGTTTAAAATTTTAGAGGTGATGTTTATGAATAACAATTTTTTCAATAGTGACTTCGATTCTATTTTACG -AAGAATGATGCAAGACATGCAAAACTCAAATCAGACTAGTAACAAGAAATACTATATTAATGGTAAAGAA -GTTTCACCGGAAGAATTAGCACAATTTACGCAACAAGGTGGTAATCATTCTGCCGAACAAAGTGCGCAAG -CTTTTCAACAAGCAGCACTAAGACAACAAGGTCAACAAAGTGGCAATGGCAATTATTTAGAACAAATTGG -TCGTAACTTAACGCAAGAGGCTCGTGACGGATTATTAGATCCAGTCATCGGTCGTGATAAAGAAATCCAA -GAAACTGCAGAAGTCTTAAGTAGACGCACTAAAAACAATCCTATCCTAGTCGGAGAAGCTGGAGTTGGTA -AAACTGCGATTGTCGAAGGTTTAGCGCAAGCAATCGTTGAAGGGAACGTACCTGCAGCAATCAAAGATAA -AGAAATTATATCTATAGATATTTCATCGCTTGAAGCTGGAACGCAATATCGTGGCGCCTTTGAAGAAAAC -ATCCAAAAGTTAGTTGAAGGCGTTAAGTCATCACAAAATGCTGTGCTCTTCTTTGACGAAATTCACCAAA -TCATCGGTTCCGGTGCCACAGGAAGTGATTCAGGTAGCAAAGGGTTATCTGATATTTTAAAACCAGCATT -AAGTCGTGGTGAAATTTCAATTATAGGTGCAACGACTCAAGATGAATATCGCAATAATATCATGAAAGAC -GCTGCATTAACACGTCGTTTTAACGAGGTACTGGTTAACGAACCAAGCGCAAAAGATACGGTTGAAATTT -TAAAAGGAATTCGCGAAAAATTTGAAACACACCATCAAGTCAAATTACCTGATGACGTATTAAAGGCATG -TGTAGACTTATCCATTCAATATATTCCACAACGCCTATTACCTGACAAAGCAATCGATGTATTAGATATT -ACAGCTGCACATTTATCTGCACAAAGTCCTGCTATTGATAAAGTCACGACTGAAAAACGTATTTCTGAAT -TGGAACATGATAAGCGTAAAGCTGTAAGTGCTGAAGAATATAAAAAAGCAGATGACATTCAAAAAGAAAT -TAAATCTCTACAAGATAAATTAGAAAACAGTAATGGTGAACATACTGCAGTAGCAACGGTGCATGATATT -TCTGATACCATTCAACGATTAACTGGTATTCCTGTATCTCAAATGGATGCCAATGACATTGAACGTTTAA -AAAATATTTCTAGTCGTTTAAGAAGTAAAATCATCGGTCAAGATAAAGCTGTAGAAATGGTTTCTCGTGC -CATTCGTCGTAATCGAGCTGGTTTTGATGATGGTAATCGTCCAATTGGTAGCTTCCTATTTGTCGGTCCT -ACTGGTGTGGGTAAAACAGAGCTTGCCAAACAGTTAGCCATTGATTTATTTGGTAATAAAGAGGCACTGA -TTCGACTTGATATGAGTGAATATAGTGATACTACTGCTGTTTCTAAAATGATTGGTACAACTGCTGGTTA -TGTCGGTTATGACGATAATTCAAATACATTAACTGAAAAAGTACGACGCAATCCATATTCAGTCATTCTA -TTTGATGAAATTGAAAAGGCTAATCCACAAATATTAACATTATTACTTCAAGTGATGGATGATGGTAATT -TGACTGATGGTCAAGGTAATGTCATCAACTTTAAAAATACAATTATTATTTGTACATCAAATGCTGGCTT -TGGCAATGGCAATGACACTGAAGAAAAAGATATTATGCATGAAATGAAAAAATTCTTCCGCCCTGAATTC -CTTAACCGCTTCAACGGCATCGTTGAATTCTTACATTTAGATAAAGATGCATTACAAGATATCGTCAACT -TGTTATTAGACGATGTACAAGTTACATTAGATAAAAAAGGTATTACGATGGACGTTTCACAAGATGCGAA -AGATTGGTTAATTGAAGAAGGTTATGATGAAGAATTAGGCGCACGCCCATTAAGACGTATTGTTGAACAA -CAAGTGCGTGACAAAATAACAGATTATTATTTAGATCATACAGACGTTAAACATGTGGATATAGATGTTG -AGGATAACGAATTAGTCGTAAAAGGTAAATAACGACAATTTAACATATAGCGTATCAAAAAATGAGCATC -AGGACGCCCTCGCCTGTGCTCATTTTTTAAATTATTTCCCAGGAAAATGATTCGCTGTGTGTTGTTCTGT -TCCACAACAATCACGATCAATGTCACATGTACCACATTTTCCTTGTTTCGAACGTTTGAAAAATTTCACT -AGTGTATACAAGGCATATCCGAAAATTGCTAAAAAAATTAAAATGTTAATAATGACTGACACTTTAACCA -CTCCTTAAACAAATAAATGTCCGACTTGATAAAAAATGAATGTTAAGACATATGCAGTGACTAGAGGATA -GGCAACTGCAAGTGCCGTCCATTTCCATGAATAAGTCTCTTTACGGATTGCTGCCACTGTAGAAACACAA -GGAATATACAATAGTATAAATATCATAAATGCATACGCAGATAGCGGTGTGAATTGATTTTGAATCACAT -TAACAAGGCCTGCATCACCTGATGAATAGATAATCGCCATCGAACTTACGATAACTTCTTTTGCTAAAAA -TCCTGGCACTAACGTAGCACCTGCTTGCCATGTTCCAAATCCGAGCGGTTGCACTAACATACCAAAGAAG -CTACCAACCATATGCAAAAAACTTTGATTGATATTCACATTGATACCATGTGGTCCTACATAACTTAATA -GCCAAATGACTACTGAGCCGCCAAAAATAAATGTACCTGCTTTACGAACAAAGCCCTTAGCCTTTTCCCA -AGTACTACGCCACAACGTTTTAATGGAAGGGACACGGTATGTTGGCAACTCCACAATAAAGATTGCATTA -TCATTTTTTAAAACTGTCTTAGTAAGTACTGTACTGACTAAAAATGCCATAATAATACCTAAAACATACA -AGCTTAATACTACTAAAGATTGATTTTCTTTGAAAAAGATACCTACGAACAATGCATACACTGGCAGTCT -AGCAGAGCATGACATGAATGGTGCAATTAATATCGTTGTTAAACGCTCTTTTTCATTTTCAATACTGCGC -GCAGCCATAATACTCGGTACGTTACAACCAAATCCGATAATCATCGGTATAAAAGACTTCCCGCTTAAAC -CGAACGATTCCATAATACGATCCATTAAAACCGCAATACGTGCCATATAACCTGAATCTTCTAATAAAGA -TATAAAGAAAAAGAGCACAACAATTTGTGGTACAAAGACTAATACTGATCCTACACCAGCAATAATGCCA -TCTGTAATTAAATCTTGTAAAAATGGTATAACGCCAAGATAATTCATAATCGTCTTCACACTATCCGTAA -ATGTACCACCTATAAATGCATCGAGTTGATCCGACAAAGGTGTGCCAATCCATGTAAATGTAGTTTGAAA -GATCAACCACATAATCGCTAGAAAAATAGGCATCCCTATATATTTATGTGTTAATATCTTGTCTATTCTA -GAGCTGAAATATTGCTTATCTTCATCTGGATACGTTACCACGTCTTGCAATAACGTCTCAATATAATGAT -TGCGTATACGTTCCATCTCTCGACGAACAGATACAGCCTCTACTTGTTCAGCAACTTGATCACGTAAACT -CGACAATTTATTTACAACCTCTGAATTAAGTTCATTTGCAATTTGCATGTTATTTAGTAAGAATTGAATC -GCAATAAATCTAGCTTGATATTTATCATGAGATGTCTCTGTCATTATTATTTGACACATATTTTTAATTG -TCTCTTCAATCTTCTCACCATAATTGATTTTAAAATGCGGTTGATACCCTTCCCCTAGATGCTTTATTTC -GCCAAGTAAATGTTTAGTTCCTTTGCCTGTACGTGCCACAACTGGAAAAATAGGTGTTTTTAACTTTTTC -ATCAATTTATGATAATCGATTTTTATCCCGCGCTTTGTAGCTACATCAATCATATTTAATCCGATGTATA -TTGGTTGATTAAGTTCTAACAATTGTACTGTTAATTGCATATTTCTTTTTAGTTGACTCGCATCAACAAT -GTTAATGATTCCTGAAAAAGAATCGTTTAATAAATAGTCTGTCACTACAGTTTCATCTTTAGAAATCGGC -GATAAATCATATGTACCTGGTAAATCAATTAATTGTCCTACATTTTCTTTAAGCTTCCCTACTTTTTTCT -CTACCGTTACGCCACTCCAGTTGCCTATATATTCATACGAACCAGTTAAAGCGTTAAACAAAGATGTTTT -ACCAACATTAGGATTTCCTAAAATACAATAATTTTCCATTCGTCCGGCTCCTATTCTTCTAATGCAATAG -AACAAGCATCGCAATGTCTAATACTTAACTGTTGTCCGTTTACTTCAATAATACATGGCCCTTTAAATAA -ACATTTTTGTTTAATCGTTATGATAGCGTCATCTGTTAACCCAAAGGCACTTAGACGATACAACATATTC -TCATTAGCAATATCCATTCGCTTTATTTTATAAGCCTTATTCATTTCACCATTTTTAATGTTTAACATAC -TATTTCGCTCTCCTATTAGAAATAATAATCATTATCACTTAAAAATCATAACCCTTAAAATTGTAGCTCG -CAATACTTTATTTAAATAATTTTCATTTTTCATGTAAAATTTGTGACATTGCAAAAATGTTTTGTATAAT -CGCTTCCATGCAAAAACCCCCACTTCAAATGTCATTGATAGACATTTAAAGCGGAGGCATGTACATGTTA -TTTTATGATTTATTTCTTAAGTTTTTTTCTAACAATTGATTGAGCTTTTCAATATTTTTATTCAACTGTT -CTATATTCGTGGCTTGTTGTTTTGAATTTAGTTGATGCTTGTTTTGATAATCCATTAAAGCATCATATAA -GAACAATGAACTTGCTGATTGCTGTTTCACTTCTTGGTACAATGCCATCGTTTTATCATCTAGTACTATT -GAACGTGCATCATCTTGTCCATGTACATCTTGATGTTTCGATACATTTGTTGCACCTTGTGGATATACTT -TAAAGGTTGTGTCGTATGTTTCCTTACTATCTTTAGCTTCAGATTCCTGTGATTCAACCGTTTTATATTT -TTCAAGTGCATGTCCTTCAATATCAACTCGTGGAATAATACGATTCAACCATGCTGGTAAATACCACGAA -CCTTTTCCAAACAATTTAGTTAATGCAGGAATTAACATCATTCTGACTACGAAGGCATCAAAGAGTACAC -CAAACGCTAATGCCATACCCATTGATTTAATCATGACATCTTCTTGGAATACAAACGCAAAGAAGACACT -AAACATGATTAATGCAGCTGCTACAATAACAGGACCACTTTCTTTCAATCCTACTTTGATAGAATAATCA -TTATCCCCTGTTTTACTATATTCTTCATGAATTCGCGACATAAGGAAGACTTCGTAATCCATTGCTAAGC -CGAATAGTATACCAATTGTAATAACCGGCAAGAAGGCTAGCATTGGTCCTGTCGTTTCTATACCGAATAA -TCCTTTCATAAAGCCATCTTGCATCACAAAGGTTGTAAAACCTAGTGTTGCCATTAATGACAAGACAAAT -CCTAAAACTGCTTTTAACGGTATTAAGATTGAACGGAAGACAATCATTAATAAGAAAAATGCCAATACAA -CAATTACTGTTGCAAATAAAGGTATCGCCTCATTTAACTTTTTAGACATATCAATATTAATGACACTTTG -TCCTGAAATTTCCGTTTTAAATCCATATTTATCTTGCGCATCTTTATTATAATCTCGTAAATCATGCACT -AAGTCATTTGTACTTTCTGCATTAGGCCCTTGCTTAGGTATCACGACCATCAAAGCGTAATCATTATCTT -TACTCATTTGTGGCGGCGTAACAATATCCACATTTTTCTTATCTTTAATATCTTTATACACAGATTGTAA -ATCTTGTTGTAATCCTTGTGGATCATCTTTTTTATCTTTAACGTTAATCAGCATCGGTATTTGGCCATTA -AATCCTTCGCCAAACTTATCTGAAATAATATCGTATGCCTTTTTCTGAGTAGAATCTGCTGGCTTTACGC -CATCATCCGGAATGCCAAGACGCATATGACTAACTGGAATAGCCGCTGCAACTAATATAATTAAACCTAA -TAATACTGCTGCAAGTGCATTACCAGTAATAAATTTAGACCACGGCGTATCAATATCTTTTTTAAAATTA -GACTGCAATTTGTTCACTTTAATGTGTTTATGGAAAATACTAATTAACGCAGGTAATAAAGTCAGTGCAC -TGAATACAGCAAATATAACACTAATTGCCGAAGCAAACCCCATCACTGCTAAGAAATCTATACCAACTAG -CGATAAACCGCATACGGCAATCACAACTGTCACACCAGCGAAGATGACTGCGCTACCTGCTGTTCCCACT -GCAAGACCAATGCCTTTAATGTAATCTGTTTCAGTTTTCATAACTTGTCGATATCTGAATAAAATAAATA -ATGCATAATCGATACCAACTGCTAGTCCAATCATTACGGCTAATGTCAGTGTGACATTTGGTATATCGAA -TGCATAAGTTAACAAACTGATAATACCTACACCAGAAGCTAAACCAATTAATGCACTTATAATTGGTAAT -CCTGCAGCAATAACTGAACCGAATGTGATTAACAGTACAACAAATGCAACAATAATACCAACTAGTTCAG -AATTACCGCCTACTTCTGTAGATGTCATTCCTGTACCAGTTAACTCTGTTTGTACATTATGATTGTCACG -TAAGTCTTTCAAATGACTTTTAACATTATCTCTAGAGCCATCTTTTAAAGATGTTTGACTAACGTCATAT -GTGATATCTGCAAATGCAGTTGTTTTATCTTTATTAATTTGCTTATTTTCATAAGGATCTGATATTTTAT -CAATGTGCTTGTCATCTTTTTTAATATCATCTAACGTTTTCTTAATATCTTTAGTAATACTCGGTTGCAC -AATACCATCATCTTTAGTCGTCTTAAAGACAACACGTATTTGTGCCTTTTCACTATCTTGATTAAAATGT -TTTTCAATCTTTTTATTCGTATCTAACGACTCTAGTCCTGTCATTTTAATATCATTGTCAAATTTCGGTG -CATTTGTAGCAAGTGGTATCAATATTGCAGCTACAATCACTATCCATGCAATGACCGCGGACCATTTATA -TTTTGCGATGAATGTCCCCATCTTATATAAAAATTTTGCCAAAGTATATTGCCTCCTTTTAAAATCAACG -TTGTAGTTTAACTATACAGTGTAGATTATTGTTTGATTATAGTATCTATCACCGACCTCTTAAAGAATCA -ATTGGAAAATTTTGTATATTAAACTACACACAAAGGAGAAATGTAGATGAAAGAGACTGATTTACGAGTT -ATAAAGACAAAAAAAGCATTGTCGAGTAGCTTGCTACAATTGTTAGAACAGCAATTATTCCAAACGATTA -CTGTCAATCAAATTTGCGACAACGCACTCGTACACCGCACAACATTTTATAAACACTTTTATGATAAATA -TGATCTTCTAGAGTATTTGTTCAATCAATTGACTAAAGACTACTTTGCTAGAGATATCAGTGACCGTCTT -AATCATCCATTCCAAACGATGAGTGATACGATTAATAATAAAGAGGATTTGAGAGAAATCGCAGAATTCC -AAGAAGAAGACGCTGAATTTAATAAAGTATTAAAAAATGTCTGCATTAAAATTATGCATAACGATATCAA -AAATAATAGAGACCGTATCGATATTGACAGCGACATCCCAGATAATCTCATATTTTATATTTATGACTCG -TTGATTGAAGGTTTTATACATTGGATAAAAGATGAAAAAATTGACTGGCCTGGCGAAGATATTGATAACA -TTTTCCATAAGGTCATTAATATTAAGATTAAATAGTAAATTAGAGGCTCATAAGCGTTACCAACATTCAT -AATAAAAACGATAGTGTACACGTTAATGAATTCGTGTACTACTATCGTTTTTTATTTTTATCGTGCTTAT -CGCTATTAAAATAACTGATATACAACACATAAACTATGAAGAAAAACATAAATCCGCTATCTAAATGACT -TTGACTCAGTTGTTTAAATGACCAAATTGCTAATACAATTCCCATTATTATTGAAATAACGTATCTCACA -TTCTTATACCTAGAATCCTTTTCTAAAAATATGGTTGCTATTACTTAATTTTTAAAGTTATAAATAAAAA -GAGCCAACCGCAATGGATGGCCCTTGTTCATTATGAAGCATTAGAACATTTCTGAAACAACCTTTTGTTC -TAAGAAGTGTAATAAGTAGTCTGGGCTACCTGTTTTAGCGTCCGTACCTGACATTTTGAAACCACCAAAT -GGATGGTATCCAACAACTGCTGAAGTACAGCCTCTGTTAAGGTATAAATTACCTACATCAAATTCGTTTA -CCGCTTTAATCCAATGCTCGCGATTATTTGTAATCACTGCACCAGTTAAACCGTAATCTGTATCATTTGC -AACCTCAATTGCTTCATCAAAATCGTTAACTTTCACAAAGCCAACAACTGGACCAAAAATTTCTTCTTGC -ATGATTCTATCTTTAGATTTAAGTCCTGAAATGATTGTTGGTTCTACAAAGTAACCTTTTGAATCATCAG -TGCCGCCACCTTGTTCTAATTTACCTTCTTCTTTACCAATTTCAATATAATTTTTAATCTTATCAAATTG -TTTTTTATTAATAACTGGGCCCATATACGTATTGTCTACAGTATTACCCAACGTTAATTCTTTTGTTAGT -TTAATTGATTTTTCTAATACTTCGTCATAAACGTCTTTATGCACAATTGCACGTGAACATGCTGAACATT -TTTGACCAGAGAAACCAAACGCTGACGTTACAATAGCTTCTGCTGCCATATCTGTATCAATATTTTCATC -AACTACAATGGCATCTTTACCGCCCATTTCAGCGATAACACGTTTCAAGAAGTTTTGACCTTCTTGAACA -ACGGCACTACGTTCATAAATTCTAGTACCTGTCGCACGTGATCCTGTAAATGTAACAAAATGCGTATCTT -TATGATCAACTAAGTAATCACCAATTTCTTTCGGATCACCAGGAACAAAGTTAACTACGCCTTTTGGTAA -TCCTGCTTCTTCTAAAATTTCCATTAATTTATAAGCGATATAAGGTGTATCCTCAGCAGGTTTCAATAAC -ACTGTATTACCTGCCACAACTGGTGCTAAAGTTGTACCAGCCATAATCGCAAACGGGAAGTTCCACGGTG -GAATTGTAACACCTGTACCAATTGATTTATAGAAATATTTATTGTGTTCACCTTCACGATCAAGTACTGG -CTTGCCTTGAGCCAAGTCCATCATTGAACGTGCATAGTATTCAATAAAATCAATACCTTCAGCTGCATCA -CCAACTGCTTCATCCCATGGCTTACCTGCTTCATAAACCATAATTGCTGCAATTTCCGCTTTTCGACGAC -GAATAATTGCCGAAACACGTAACATAAGCTCTGCACGATCATTTGCTGACCATGTTTTCCAAGATTTATA -AGCTTCGTTCGCTGCTTTAAATGCATCTTCAACATCTTGTTTTGTTGCCTTTGATGCATTTGCAATCACT -TGTGATGTGTCTGCAGGATTGATTGATTTAATTTTGTCATCTTTGAAAATCTTCTCTCCATTAATCACTA -ATGGTATGTCTTGACCTAATTCTTTTTCCACGTCTTTCAATGCTTTCTTAAACATATCCACATTTTCTTG -GACTGAAAAATCGTAACCAGGTTCATTTTTAAATTCTACTACCATGTACACTTACCCCCTATAAATTTTG -AAAGTGGTTTAACCCTTTGATTTAATGATATAACATCATTTAAACTCATTTTACTATGAGTAAGGTTGGT -TTTGCAATCGCTTTCATTTTTATGCTTTATCCCTTATTCTCAAGTATTTTGAAATTGATTGGTTACTTTT -TAAAATTTAGAAGTGTCATGACAACTAATTTAGTGTTTCATCGTTCAATGCTTCTGATGGTACCTCATTA -TCAATTTTACGAACGACTTTACAAGGGTTTCCAACCGCTAAACTGTGTGGCGGAATATCTTTGGTGACAA -CACTACCAGCACCAATCACACTGCCTTCTCCAATCGTCACTCCCGGAAGCACGGCTACATGTCCGCCAAA -CCAAGTATTACTGCCAATATTAATTGGTCCTGCTTTTTCAAATCCTTCATTTCTATGATGAAAATTAAGT -GGATGTGTTGCTGTGTAGAATCCACAATTAGGTCCTATAAAAACATTATCGCCAATTGTAATCTGTCCAC -CATCCATAAAATAACAATTGGTGTTTACATAGACATTTTTTCCTAGTTTAACGTTCCAACCATAATCTGT -ATCAAAAGGAATCGAAATACTTACATTGTCTGTTGTTGTTTGAAATAATTCATCGATTAATTCCTTTCTT -TTATTTTTGTCACTCGGCTTTGTATGATTTAATTCAAAGCAAATATCTTTCGCTCGTGCACGTTCATTGA -TTAAGTCTTGATCAAAGTTTGCATCGTACCATTTTTCTGCTAACATTTTTTCTTTTTCAGTCATTACACC -TTTCAACTCCTAATAACTTATTTACTTGTTTAATAGTTAATCAAATAAACATTCGCCTATGCAACTAATA -AGCTATAACATTATGAAATCATAACCTTATCACTCTTATCTATACCATTCTCGCATCAAATACTGCTAAA -GTAGTAGATAAATTCAATACTACAGACGCATTCATTTTTTAATCTATTAACGTAAAATGTGAGTAAGAGA -AATATAAAGGAGTATGATAGCGATGAGAATATTAATTACAGGCACAGTTGCTATCTTAATCATTCTAGGT -TTAGTTAAAACGATACAAGATTACGAAATGACAAACGACACAAGTCGTCAGTTGTCAGACAACAAAGATG -ACGATAAAGTCATCCATCTTAATAATTTCAAAAATTTACATGCGAAAGAATTTAACCCATCTGATTTCTT -TTAAGTCACCTAAGAATTACAAATCCAGAAGTCATTTAAGTTTTACCTTTCATTCATACATCCTTTAATA -TTAATTACGACTTCTTTTATATAGATGCTAAATAGAGAGATTGTTGTGCAATGTTTGCACGGCAATCTCT -CTTTTTCTTTTTAAAATTGGTAAAAGTAAAACGCAACGATTGACTTATATACCTATAGGGGGTACATTAG -ACGTGTAACAATGAATCACAGGGAGGCAATAATGTGGCTAATACGAAAAAAACAACATTAGATATCACTG -GTATGACTTGTGCCGCATGTTCAAATCGTATCGAAAAGAAACTGAATAAACTTGATGACGTTAATGCCCA -AGTGAATTTAACTACAGAGAAAGCAACTGTTGAGTATAACCCTGATCGACATGATGTCCAAGAATTTATT -AATACGATTCAACATTTAGGTTACGGTGTCGCTGTAGAAACTGTCGAATTAGACATTACAGGCATGACTT -GTGCTGCATGCTCAAGCCGTATTGAAAAAGTGTTAAATAAAATGGACGGCGTTCAAAATGCAACGGTCAA -TTTAACAACGGAGCAAGCTAAAGTTGACTATTATCCTGAAGAAACAGATGCTGATAAACTTGTCACTCGC -ATTCAAAAATTAGGTTATGACGCATCTATTAAAGATAATAATAGAGATCAAACGTCACGCAAAGCTGAAG -CGCTACAACATAAATTGATTAAGCTTATCATATCAGCAGTATTATCTTTACCGCTATTAATGTTAATGTT -TGTACATCTTTTCAATATGCATATACCAGCACTATTTACGAATCCATGGTTCCAATTTATTTTAGCTACA -CCTGTACAATTTATTATTGGATGGCAATTTTATGTAGGTGCTTATAAAAATTTAAGAAATGGTGGCGCCA -ATATGGATGTACTTGTTGCTGTTGGTACAAGTGCAGCATATTTTTACAGTATTTATGAAATGGTTCGTTG -GCTAAATGGCTCAACAACACAACCGCATTTATACTTTGAAACAAGCGCCGTACTAATTACCTTAATCTTA -TTCGGTAAGTATTTAGAAGCTAGAGCGAAGTCTCAAACAACCAATGCGCTTGGCGAATTATTAAGTTTAC -AAGCTAAAGAAGCACGCATTTTAAAAGACGGTAATGAAGTGATGATTCCTCTAAATGAGGTACATGTTGG -AGATACACTTATCGTTAAACCAGGTGAAAAGATACCTGTTGATGGCAAAATTATTAAAGGTATGACTGCC -ATCGACGAATCTATGTTAACAGGTGAATCTATCCCTGTTGAGAAGAATGTTGATGATACTGTAATTGGTT -CAACGATGAACAAAAACGGTACTATTACTATGACAGCAACAAAAGTTGGCGGGGACACTGCATTGGCAAA -TATTATTAAAGTTGTCGAAGAAGCTCAAAGTTCTAAAGCGCCGATTCAGCGATTGGCAGATATTATTTCT -GGTTATTTCGTTCCTATCGTTGTTGGTATCGCACTATTAACATTTATCGTGTGGATTACTTTAGTTACAC -CAGGTACATTTGAACCTGCACTTGTTGCGAGTATTTCCGTTCTCGTCATTGCTTGTCCATGCGCATTAGG -ACTTGCTACACCAACTTCTATTATGGTAGGTACTGGTCGCGCTGCTGAAAATGGTATTTTATTTAAAGGT -GGCGAGTTTGTTGAACGCACACATCAAATTGATACCATCGTTTTAGATAAGACGGGTACCATTACAAATG -GTTGTCCAGTCGTGACAGATTATCATGGTGACGATCAAACGCTACAACTACTTGCTACTGCTGAAAAAGA -TTCTGAACACCCATTGGCAGAAGCCATTGTCAATTATGCAAAAGAAAAGCAATTAACATTAACTGAGACA -ACAACATTTAAAGCAGTACCTGGCCATGGTATTGAAGCAACGATTGATCATCACCATATATTGGTTGGTA -ACCGTAAATTAATGGCTGACAATGATATTAGCTTGCCTAAGCATATTTCTGATGATTTAACACATTATGA -ACGAGATGGTAAAACTGCTATGCTCATTGCTGTTAATTATTCATTAACTGGTATCATCGCAGTGGCAGAT -ACTGTAAAAGATCATGCCAAAGATGCTATAAAACAATTGCATGATATGGGCATTGAAGTTGCCATGTTAA -CTGGCGATAATAAAAACACTGCTCAAGCCATTGCAAAGCAAGTAGGCATAGATACTGTTATTGCAGATAT -TTTACCAGAAGAAAAAGCTGCACAAATAACGAAACTACAGCAACAAGGTAAGAAGGTTGCGATGGTTGGT -GACGGTGTAAATGATGCACCTGCATTAGTTAAAGCTGATATCGGTATCGCCATTGGTACAGGTACAGAAG -TTGCTATTGAAGCGGCTGATATTACTATTCTTGGTGGCGACTTGATGCTTATTCCTAAAGCCATTTATGC -AAGTAAAGCAACCATTCGTAATATTCGTCAAAATCTATTTTGGGCATTCGGCTATAATATTGCCGGTATC -CCTATAGCTGCATTAGGCTTACTTGCGCCATGGGTTGCTGGTGCTGCAATGGCACTAAGTTCAGTAAGTG -TTGTCACAAACGCACTTAGATTGAAAAAGATGCGATTAGAACCACGCCGTAAAGATGCCTAGATTCCTTA -ATAATGAAGGATTCGTTGGTGATTCTGAGATAGGCTAGTGATTGGCTCTATAATGTCGCGGTTTACAGTT -GGATCTTCGCTCCAACTGCATATATAGTTACACTTTTCGCTTGGCGAATTAGTGTATCTTGGGAGTGGGA -CAGAAATGATATTTTCGTAAAATTTATTTCGTCGTCCCACCCCAACTTGCATTGTCTGTAGAAATTGGGA -ATCCAATTTCTCTATGTTGGGGCCCCGCCGGCAAGGTTGACTAGAGTTGAAAAAAGCTTGTTACAAGCGT -ATTTTCGTTCAGTCAACTACTGCCAATATAACTTTGTAGAGCATTGAACATTGATTTATGTCTCAGACTC -TACAATATTATTACAAATAATAAGTACACTATGGTTTACAGTTGGATCTTCGCTCCAACTGCATAAGAGC -CACTAATTATTATAAATAATAAGTACACTATGGTTTACAGTTGGATCTTCGCTCCAACTGCATAAGAGCC -ACTAATTATTATAAATAATAAGTACACTATGGTTTACAGTTGGATCTTCGCTCCAACTGCATAAGAGCCA -CTAATTATTATAAATAATAAGTACACTATGGTTTACAGTTGGATCTTCGCTCCAACTGCATAAGAGCCAC -TAATTATTATAAATAATAAGTACACTATGGTTTACAGTTGGATCTTCGCTCCAACTGCATAAGAGCCACT -AATTATTATAAATAATAAGTACACTATGGTTTACAGTTGGATCTTCGCTCCAACTGCATAAGAGCCACTA -ATTATTATAAATAATAAGTGGCTCTAAAAGGAGGTGAATGCTATGTCACAAGAAATTTTAAATGTTGAAG -GTATGAGCTGTGGTCACTGCAAAAGTGCTGTTGAATCTGCATTAAATAATATTGACGGTGTCACTTCAGC -TGAAGTTAACCTTGAAAATGGTCAAGTAAGTGTTCAATATGATGACAGTAAAGTTGCTGTATCTCAAATG -AAAGACGCAATTGAAGATCAAGGTTACGATGTCGTTTAATTAGGCAATATTCAACGTCATCAACACCAAA -TTAAAAAATCGAACTGATGAGAATCCCAACAATCCAAATTATCTCATCAGTTCGATTTTTAATTTACTCG -TAACCTAGTATCTCCAGTCTGCAATACATCTAATGTTGCATCTAATGCATCAACAATTAGATTTTCAACT -GCAGCTTCAGTATAAAACGCAATATGTGGTGTTAATATGACATCTTCCCTGTCAATCAACGATTCTAACA -ATGGATCGTTCAGTGTTTTGCCCCTTTGATCACTTGGGAAAAGTTTGCGTTCAAATTCATACGTATCAAG -TGCTGCACCTTTAATCACACCATTGTCTAATGCGTCTAATAAAGCCTTAGTATCTACTAAAGAACCTCTC -GCACAATTGACAAATACTGCGTCCTTTTTAAAATGTTTAAATAATTCAGCATTAAATAGATAATGATTAT -ATTTCGTTGCAGGTACATGTAATGTCACGATATCAGCACCTTCAACCGCTTCCTCAATCGTATCTTTGTA -ATCGACATACGTTGCAATTTTAGCATTAGGAAACGGGTCGTATGCGACCACATCACTTTGATAACCATTG -GCAAATATATCGGCTACTACACGGCCAATTCGACCTGTACCAATAACAGCTACTTTTAAATCTTTAATGG -ATTTCGATAAAATAGTAGGTTCCCATCTAAAATCATGCTCTCGCACTTTCGTTTGAATTTGATTAAAATG -ACGAACCACATTAATAGCCTGGTTCACAGCAAACTCCGCAATTGAATTCGGAGAGTATGACGGCACATTT -GACACAATCAAGTTATACTTGTTTGCTAACTCCAAATCATATGTGTCAAATCCAGCACTACGTTGTGCGA -TTTGTTTAATACCTAGTTCATTTAATCGTTTATAAACATGCTCTGATAATGGTATTTGTTGTGATAGCGA -TAAGCCATCATAACCAGCGACACCTTCAACATTGTCATCAGTTAATGCTTCTTTAGTAATATCTACCTCA -ACATGATGTTTCTCTGCCCACGCCTTGATATAAGGCATATCTTCATCACGTACACTCATGATTTTAATTT -TTGTCATTTTAACATCACCCTTAACTTTATTATTCATATAAATATGCTAGTTCTGTTAATCTTATTGCAG -CTTCGTCTAATTGCTGGTCATCTAACGCCAATGAGATTCTCACATAACGATTACCATTCTCTCCAAATGG -TTTCCCTGGAGCAACAAGTATTGACTTCTCTTTCACTAAAAATTGCTCAAATTGCTCGCTGTCATAACCA -GGCGGTGTTTCCAACCATACATATATGCCACCTTTAGCATGAAAAAATGGCAAATCAGCTTTTGTAAGCA -TGGCTTCGAATCGGTCACGACGTGCTTTAAATACATTGCTTTGTTCTTCTAAAAAATCATCATAATGATT -CAAAGCATATATTGCGGCATCTTGTAATGCACCAAACATCCCAGCATTTGTGTGCGTTTGGTACTTTTTC -AAAGCTTGAATCATATCTTTATTACCAACTGCAAAACCGACTCTAAAACCTGACATGTTATAACCTTTAG -ACAAGGAATAAATTTCAATCGCAACATCTTTCCCATTTTCCGAAGCAAGTATACTAGGATTTTTAGCGTC -GAAACCGAAGGCACCATAAGCAAAATCATGCACGATTTTAGTGTCTGTATCTTTAAATTTAGCTATCGCT -TCATCAAAAACTTCTTTCGTAGCTGTCGATCCAGTTGGATTATTTGGATACGTTAAATAAATGAGTTTTG -TTTTATCTATTATTTTTGAATCAACTTTGGACCAATCTGGCAAATAATGCGGCGGTTCTAAATTAAGCGG -AACAGGCTTGCCATCAGCTAAAAGTACACCTGCTAAATAATCAGTGTAGCCTGGGTCAGGTAGTAATACA -TAGTCTCCTGGATTGATAACACATGTTGGTACTGCCACTAATCCATTTTTTGTACCATATAAAATACATA -CTTCATCTTCTTTATCTAACGTCACATTATATTGTCTTTGATAAAAATCTACAATAGCTTGCTTGAACGC -TTCTTTACCATGAAAAGCACCATATTTTTGATTTTCAGGAATAGTTAGTGCTTTTTGAAAATGATCAATA -ATACCTTGTGGCGTGGGCCCATCAGGGATTCCAACTGCCATATTAATTAATGGCAATGGTCCATGTTCGA -TTTTACGTCCCATCGTTTTCCCAAAATAACTATCAGGGATATTTGCTAATTTGTTAGAGATCATCAAATT -CCTCCTCTATCATTAAACATAGCCTGGGCGACTATCATAATCCTAACAACTTGTATCACTCTCATTTAGA -TGGTTACAATGACATCGCCATTCACCGTTATCTTCAACAGATCTTATGACACACGTTGTATTGAATGAAT -TTATTTTCATTTTAGGTAGGTACAATATTATTGTCAATATTAGGAATTTTCAGATTAATATACGCTCAAT -CGTTAGGATTTAACTGCCATGCATATCCGCATGCGCAACCAGTTAGATATGCTTATATAAAGTATAACGC -CCATCAAGGTACGTATTCAAACGTGAACCTTAACAGGCGTCATTCATTGTTAAATAAAACTTCTTAAGCA -CATACTTATTTCACTATGCCTTTTACGTTCCCCTTATACTTTTCTCACATCTTTCTCTTAGACTACTCCC -TTACACGCCTTGCTCAATATCTTTAATCATTTCATCTACAGTTATTTTCGCACTCGTTAAGACAATAGGA -ACGCCTGCACCTGGATGCGTACTTGCACCTGCAAAATATAAATCTTTATAATCTCGCGATACATTTTGTG -GACGATAATAATTACTTTGCGCTAAAGTTGGCATTAAACCGAATGCCGAACCAAATTTCGCATGATACGT -TTGCTCAAAATCATTTGGCGTAAAGATTGTTTCTGAAACAATATGCGATTTTATATCTTCAAATACTTCA -ATAGTTGCTAATTTACGATAAATAACATCTTTTATTTGGTCTGTTAATGCTTCATCTGACCAATCGATTC -CGCTACCTGTTTTAAGTTCTGGTGTTGGCATTAAAACATAAATACCTGTTTGTCCTTGTGGTGCAAGAGA -TTTGTCAGCAACCGCAGGAACATACACATAAATAGAAGGATCATGCGATAATCGCCCTTCAAATATTTCT -TCAATGTTTCCTCTAAAATCATCTGCAAAAATAACATTATGAAGTCTCACTTGATCTGTCACATCAATAT -CTATACCGATATACATTAAAAATGCTGAACAAGAGTAATCTAAGTCTGCAATTTTATGTGGTGGATACTT -TTTAATAGGTGCAAAATCTGGCATTAATGATTCCGCAACACTAGGGAAATCAGCCGTACATAAAATTTTA -TCAAATTTTCTTATGTCACCATTCACTTTTATCGCATCGGCTCGTTTGAATTTAGGATCAATAATAATTT -GCTCAATTTCAGCATTAAGTTCAATATTAACGCCTAAATCTTTATTTAATTGCGCTAGCCCTTGAGCCAT -GCCATACATACCGCCTTTAATAAAATGCACACCAAACATCATTTCAATCATAGGAATAATTGAATATAGT -GACGGGCCTCGTTTTGGATCAATTCCTATGTATAACGTTTGAAACGCTAAAAGCTTTTGTATCTTTTCGT -TATCAATATAATGTTCAATTAGCTGATCTGCATGATTTAACGTTTTTAACTTAGCACCTTGCACAAGTGA -CGTCATATTATAAAAGTCACTTGGTTTGCGATACGTTCTTTCTAAGAAATAGCGACGTGCAATTTCATAT -TTTTTATAAACATCCGTTAAAAAGGACATAAAACCATGCGTTGAACCAGGTTCTATACTTTCTAGCATGT -GCTGTAATTCAGCTAAATCTGTAGGCACCGTTATACAATCATCGCGGTCAAAATACACATCGTAAATATA -ACGTAATTGTCTCAATTCAATATAATCTTCATAATTTTTACCACACATTGTAAATACATCTTTATAAACA -TCTGGCATCATGACAATTGCGGGGCCCATATCAAATGTAAAGCCATCTTTCTTTAATTGATTCATACGCC -CGCCTACATTATTATTTTTTTCAAATATCGTCACTTCATGACCTTGAGAAGCAATACGGGCTGCCGCTGC -TAATCCTGTGACACCTGCACCAATCACTGCAATCTTCATTATTCAACCACCTATATTCTATGATATTTAC -TATTTATTTCATGAAACAACTTTGCTTTTTTCCTCTTCTCCACAAAAACACGTTCATGTAATGTATAGTT -AGCCTGTCTCACTTCGTCCAGTATTTCAATATATATACGTGCTGCTAATTCTATGATTGGTTGTGCTTCA -ATACTAAATACTTTGATTTGATCCATAACATCTCGAAAATCTTTTTCTGCGATAGCTGCATAATATTCCC -ATAAGTCAATATAATGATTATTAACACCATTTTGGTACACTTCAGCAATATCAACTTCATATTGCTTTAA -TCGTTGCTTACTAAAATATATCCGTTCATTTTCAAAATCTTCACCGACATCTCTTAATATATTAATCAAT -TGCAACGATTCACCAAGCCTTCTTGCGACATCGTAAGTCTGATGCGTTTCATGATCACTTAAAATCGGCG -TCAATACTTCACCTACTGTACCAGCAACACCATAACAATATCCGAATAATTCAGCGTCCGTTTCAAACAT -TGTAAAATGTTGATCTTTATATACAGTATCAATGAGATTATAGAAAGATTGAAAGGCGATATTTTTATGT -TATGCAACATGCTGAAGGGCCATCATGATTCTACGATCACTTTGAAAGTGATGATATTCATATGGGTATT -TTTCAATAGATTGTATATCTTCTTTTATTTGATTTAAAAATTGAATATCGCCATAAACATCTATACTGTC -ATCAATTTTACGACACACAGCATAAATTGCCCAAACCGCTTTTCTTTGATCTTCTGGTAACAAGTCAAAA -GCGTAAGAAAAGCTTTTTGAATGTTTCTTCATGATTTTATGACAATATTTAAAATTCATATCCATCATTG -TCATACTAGTCCTCCTATATTGAAATGCCATTACCTTGATTTATTGTTCTTTAGATATAGAATATTGACG -ACCTTTCCATTCAACTACACCATAACGATGCGTTTGTTTCCAAGATTGGATGAAAATTTTAGTAAAAAAC -ATAAATAACAATGGATGACATACCATTAATAAATTAGAAAATTGGCCGACCCTTCGATGCAGATAAATAA -ATTGTGTAGTATAGCTCAAGTAAACTGTTAACATTTTTCCTACAGACATTTGGCGATATTTTAAACTAAG -ACATAGCCCTAAAATACTCGCAATAGAACCGAACAACCACAACACAATTGCTGCCATGATCTTAGGCTTT -GTGCCACCTGCCCCAGTCGACAAATGCTTTGTCCATCCTTCTTGTAATGACTGAAATCCTTCTTGATACA -TGCGAAATGCAACAAATGGAAATCCTTCATAAACTGTTACGGGCAATGATTGTGAAGTATATGCACTTCC -TAAAGCAAATCCTTCAATAATATGACGGTTCGCACTTTTATGACCTCCAGTTGCATAATAATCTTCTTTA -TTTGTTAATGTCACCGGTCCAAATGCATGCTGGTTAGTCCGACCGTCGTCTAAGGTAGAAAATACATTCA -TACCAACGACTGTCATTAAATTAAATATTGCTGAAAACCCTTCGTAGAAACGCTTTGTTATATGATAAGG -CTGTACGCTTAACAATCCTTTTTCACCTTGTAATTGATACTGATTAATCAACGCTTCAACAGCATCTTTC -CTTAAGAAAGTTACATCAGCATCTACAAAAGCAATACGATTCGTACATGCATGCGTCACACCTTGATAAC -AAGCATGTGATTTCCCATACCATTTGCCGTCAGCATCATCAACAACATCTACTACAGTCGCACCATATGA -ACGCGCTACACATGCTGTTTCATCTGTCGATCCGTCATTCATAACAATGACATCTACTGGAACTTGCTGT -TGTATTATCGAATGTAGTAAATGACCTATTCTTTTTTCTTCGTTTCTAGCCGGAATAATAATTGTTAATG -CTTTATGATTGAAGTTCAGCGTTTTCGCCTTTAGCTGATGTCTACGATTAAATATCAATGCACCACACGC -CATAGACATGGTCACTATTACTGTTAATATTCGTGATAACCATTTCATAGATATCACTTCCTATTCTTCG -CTTCTCGCGCGTTTATTTTGTCTGCGACTTGTTGCCCACTTAATGTAACCATTGGCATGCCACCACCAGG -ATTTACTGATCCCCCTACAAAGTACAAGTTTTCAAAATACTGACTTTCTTTAGGAAATTTAAATCCTTTG -TTTTTCTTTTTATCTGCTACAACACCATATATTGCACCACGATTAGAACGATAATTTTTTTCAATATCCT -CCGGTGTCCAAACATCTTCATAAATAATGTGTTTTCTTAAATCAGTGAGTCCCATTTTTTCTAATTTATC -CAAAATTTTATCCCTAAACTTCGCATAATCTTCAGTTGTAAAAGGCTGGTCTTGAATATATGGAATATGT -GGTAAGACTTTGATATTTTCATAACCTACTGGCGCTTGTGTGTGATCAGTTTTATTCGTATTTACTAAAT -AAATGGTCGGATCATCTGGCAATACCTTTTCATGAAAAACTTGTTGATAATTGAGATAAGCATTTTCCGT -AAAAAAGAAATTATGATGTGCTAATTGCGGGTATTGGCAAGCAACACCTAAATGCATCACATATCCTGAG -CTTGCTGGCTCAAATTCCCGCTCTAATTTGTTTAATCGTTGAGTATCAAGGTGAAGTAAATATTTATAAG -TAGGTATGACTTCCATATTTGAAATAATATAATCTGCCTTTACAAACTCACCTGTATCTAATCTGACACC -CGTCACACATCTTTCATATGTTTTAATATTGTCCACACGTGTACCTGTATGAATTGTGACACCTTCTTCA -CGCGCTAGCTTTTCCAAGGCATTGGCTAAATGATGGATTCCACCTTCTACATACCAAAGGCCTTGCTCTT -GTTGCATATGGAATAACATAGATAATACAGCTGGCGCATCGTACGATGAAGAACCTACATATTTGATAAA -ATAGCCTAACATTTGTCGCAAGTATGGATTCGAGATACGCTTGTCTATGGCCTGTTGCATAGTATGTACA -TAATCATAATTAATAAGTGCATTTAATGGCCCATGAAATTTAATAATTTGAGATAGTGTATCTAAACCAT -AGTTAAAATACCCTTTTTCAGTAATACGATCGATTCGTCTTGTATAATTCAAATAATTTTGCAGTTCCTC -TATATCCTGTTTCGACAATATCGCATTATGCTGACCTGTTTCTTTAATACCTTCATACAAATCGATAGTC -GTTCCATCTGGAAAAAAGCTACGCCATTGATGTGGCAATCGCTTGATTGTAACGTAGTCTGACATTTGCT -TCTTGCTATATTCGAATAATTTTTCAAAAATATAAGGCATCGTTAAAATAGATGGACCTAAATCAAAGCC -AAAGTCATCTGACTCATGACGATTCACTTTGCCTCCTATATGATTATTTTGTTCATATAATGAGACCGAA -TAGCCACTTTGTGCCATTCGAATTGCTGCAGAAATCCCACCTAAGCCACCACCAATAACGATGATATGTT -TAGTCATGACGTTCACCTCTTCGTTTTAATATGCGTAGTAACTGCGTTAATCTCGGTCGATTATAGCGTT -GCACAATAATGATTGGAACATTAGCTATCATTGCATAGAAAATATTTATATACTTTACTACACGAGGGCC -TTTATTGAATATAATGACTGGAAGTATCGATATCCAATGAATCAACTCTGCCCTCTTTGTCTCTATAATC -ATTTTTTCGATTTCATCAATATTGATTGTCATTAAATGACGCTGATCATATATATTTCGATTAAGCTTAT -GACCATCTAAAATCTTATGCTTCCATTTTCTTACGTAAAACCATTTGTTCCAAAATTTTCCATGCTTCTC -AAAGTTAAATGATTTAAATATTATATGCTTCTGACGAAAATACTTGTCAGGAATTCTTGTACCTAAATTT -GCTATATTTAGTTGAACAATTAACCAATACATACTACAGAAAAATGCTGTTTTGATATATTTTTTCATGA -TTTTCATCTAAATTGAATCACTCTCAATCATACTGACATAGTATAAATTATCATTTTATTACTTAGTTCC -CTAAAGATCAGTGAATAAACCGCTCTCATTTATATTTATATTTATATAAAACAAAAACGCCAATACTCTC -ATGTTAGAGAATATTGACGTCATTTGATTTACATTTGATTAATGAATGAAATTATATGAACCTGCTTGGT -TTGCTGAAATTGTACGAGATGTAACCACACCAGCACCATGTCCATAGTTCATTTCTGAAACACGAACAGA -ACCGTTGCTGTTAACGCCTTCAACGTAAGCAACATGACCGTAATAGCCTTGTGTTGTTTGCATGATAGCA -CCAGCTTTTGGTGTATTGTTCACTGTATAGCCAGATGATGCAGCTGCGCTAGCCCAATTACTAGCATTGC -CCCATGTTGAACCAATTTTCCCACCAACACGATCAAATACATAATAAGTACATTGTCCTGAAGTATATAA -GTTACTTCCTGATGCATAACCATTAGAAATTGAACGACCATTTGAAGATGGCGCTGCAGTTGTAGTCACA -TGAACATTATTGCTTGTTGTGCTATAACTTGCACCTGAACCACCAGTGTAATAGTTATTTGTTGCTGTTT -GGCTATTGTTTGTATAGTTATTGTATTGATATGAATGATTATAGTAGTTATTGTAAGATGCATTGTTATA -ACTATAAGTATTGTAGTTATTGTAATAGTATGTGTTGTTTTGCGTTAATTGACTTGGATTCCAATTTCCT -GTCCAAGTGTAATGATAATTACCTTGTGCATCAATTGTATACGTATAGCTGTATGATTGAGCGTCATTAG -AATTATATCCATTGTTATTTTGTTCTGCGGCTTGTGCATCATGTCCTGCAAATGCGATAGTGGCAAGTCC -TGCTGTAGCGATTGTAGCTGTAACGATTTTTTTCATAATTAAATATCCTCCCAATAATCAAAACACTCTA -TACATATAGTCATTAGCGACTCAATTATTTTAAATTTTGTATTTTTTATTTTTTTAGTATGCAAATAATT -ATAACTTTTATAGTTTTGCGACAAAACAAACTATAACAGAGATTAGGTACCTTGTGGTCTTTGTTATCAT -AATGTAATCTGTTCCTAACAAAGCATCATTGAATGTAATATACCAATTAGAATGTTTACAACACTTTTTC -TGCACCGTTAACATGGGATTTGAAAATAAAAAAGCACTAAACTTTTAATGAAATACATCCTTTTTGATAA -TAAATATCAGAAGTAATGTAATATTTCAAAAGTTTAGTGCATCAAATTATTTCTTATTTGTAGCATGTGT -TTCCATCGTTTTTACAATCAAATCAGTCAGCGCTTTACTACCTGCATATTCTAAGTGAATACCGTCATAT -GCAAAGTACTCCGGATGACCTGCAGAAGCTTTATACCAATCGACTAGATGTACATTAGAGCGCTTTTCAG -CTGCCTCATAAATTAATTTATTTATTCTACCTTCATAATCTCTAGGTACTCTAATAGAAACTAAATATAT -GTCTGCTTTTCCAAAACTATCCAATAGTTCATTTAATTGATCTTTCGTAAATGCCCCATTTGTACCAAGC -TCTACTACAACTTTTTGACCTTTTTTAGCATAGTCTTTATATTGCGATTTCACAATTGGTGTAGCATCAA -CGAGTTGCCGTCCAACTTTACCATCAATTTGTGCATTTGGTATTTTCTTAGTAAAGACATTACCAATATC -CACCATAACCGAGTCACCAATTAATAGTGGTGATGACTTTTTAATATCCTCTTTACTATTCGCCGTCTGC -TTATCCTCTTGCTTATCTTTTTTAACGACCTTTTTCTTCGTTGTTTTAAATTCCGTCTTCTTCTCTTTCT -TCTCAGCTTCATGTTGTTTACCAAGCGCATCAAATTGCCCACTGAGAACGATGATAGATGGAATCAATAA -TAAGATAACTAACACAGTTCTAGCAAATTGACTCTTCTTTTTAGGTAAAAATGCAAAAGCTTTAAATCCT -TTTTTACGTATAGGTGTTTCAATAAAGCGATACGAAATTTCAGCCATTAACGCTGTTAACAAAATTTCTA -TAATATAAACGTATACCGGTATTTGTCCTTGTACGTAATAACTGTTCACAAAAACAATGATAGGATAATG -CCATAAATATAAGCTATATGATCGTTTACCTATAATTAGTAAAGGTTTCATACTTAAAAATTTAGCAAAT -AAACTAGAAGGATGTACCGCAATCGCAATAATGAATAAAGTTGCAAATGATATAATGTAAAATCCTCCAT -TATAGATCCATTGATCTTGGTCTCCAACTATAAAGAACAAAGTCATTAGAACCGCAAAACCAGATATCCC -TATAATATCTAATGATACGACAATCTTTTTAGAAATATCTTTTTTCAAAGCAAACGGAGGCCAAATAAAT -GCTAATATACAACCAAGCAATAAAGTTTGCAGTCGTGTATCTGTCCCAAAATACACACGTGAATTATCTC -CAGTGATGAAATGAATCACTATCATAAGTCCTAAAGAAATCAACGATACAATAAATAGCGTTTGAATAAT -ATTTCTCGGTTTAAATCTATGTAATAAGAACGTGATAACCAATGGGAAAAGCAAGTAAAATTGTTCTTCA -ATGGCTAAAGACCATAAATGTTTGAGTGGTTCAATAGCAAATTGGTTAAAATAATCTACATTCTGTGAAA -TGTACCACCAGTTTGAAACATAGAATATAGCTGCAATAGCATCTCGTTTCATTTGTATAATCAATTCCGG -TTTAAATATCAAGGTGAACGTAAGCACGACACAGATTAAAAATAACACTGCCGGAATGAGTCGTTTCAAT -CGTCGCTTCCAAAACTCTAGCAAATCGATTTTTTGCGTCCGATAATACTCACTTATCAACAAACTTGTTA -TTAAATAACCTGAAATAACGAAGAATGTATCTACTCCTAAAAAGCCCCCACTTAACCATTGTGCATTCAA -GTGATAAATAATGATTCCTATAACTGCGAATGCCCTCAATCCATCTAATCCGGGTAAGTATCGCGGGGAA -TACATTTTTTCTAAACGTTTAAAGTCTTTTGTATCCATGTTAATAAACGCCCCATTTATTTTTCTCTATT -TTGTAGCATATCACAATATTTTTGAAAATAAAATATTGCACTGATTTTCATTAATTGATTTAACCCTTAA -TTAAGATAGTTTTAAATTTTTTATTAAGTAGAAAACAATTATTACAGTTAATTTCATTACTGCAAACCAC -ATATAAATTTGTCGATTTTACTACATAACATAGATTATCATAGATTCTTGAATTTTTAGCAAAATAACTG -TTATTTTCATTATATTTTTACAAAAAAAGGTTCGTTTTATATTTTATGCATCTTACTGTAACAGAATCAT -TAAGATATGCTATTCGGAATTTACTTTTTCAAAATTTCTATAATGAATAAATTACCGCGCACTGTTATTA -AAATATATACACGGTGATATCTTTCCACCTCTCTTTCAAATTTAACCATATGAAATGACAAATACTCACT -CCATATTGAAGTATTTGTGTAAAAAGAATCATGGTATATTGTATATTTCGCCTTATTCTAATTTAATAGT -AACATTAATTCTTCTATCATGACATTAAAATCGTCAGGAATAATAAAATAACATCCTAACCTATGAATCA -GACTTTAATTTCTAATAAAAAAACTCTCCCCAATTTCTATGGGAAGAGCTATATATTTAATGTTTAAACA -TTACTTTTATTTATTATGAAGGAATTAGAATCCCCAAGCACCTAAACCTTGTGCTTTGTATGCTTTAACA -GCTGCGTTGATTTGTTGGTCAACAGTGTTTGTTGGGCCCCAACCTGGCATAGTTTGGAATAAACCTGAAG -CACCTGATGGGTTGTAAGCATTTACTTGACCATTTGATTCACGAGCGATGATTGCAGCCCATGTAGAAGC -TGGAACACCAGTACGTTGAGCCATGATTTGAGCTGCTGATGAACCAGTAGCACCTGCAGTATTACCATTG -CTTAATCTCACTGAACTTGAAGTAGTTGAAGTGCTGTAGTTATGGTAAGTTGGAGCTGAAACAGCTTCAA -CGTTTGAGTTACTTGATTGTGCATTGTAGCTTACTGATTGTACATTTGAACCTTGGTTGTATGAAGTAGT -GTAGTCTGCACCTGCAACGTTTGAGAAACCAGCAGTTTGACCATTAGCTGCTTCATAGCTCCATGACCAT -GTAGTACCATTTGAAGTAAAGTTATATTGGAAACCATCTTTTACAAAGTGGATGTCATATGCACCATCTT -TGATTGGAGCTGCATTTAATTGATCTTGATGATTATGCGCTAAGTCAACTAAGTGTGCTTGATCAACGTT -TACTTCAGCAGCGTGTGCTTGATGTCCTGTACCTGCTGCGTAACCTGTTACACCTAATGCCACTGCTAAT -GATGATGCCATAATTGTCTTTTTCATAGTAAAAAATCCTCCAGTAATAATTGTAAGTTTATGTTTTTAGT -AATTATATTTTGAATTTGAATGTCGTAGTGCAAGTTTAAATTGTCTTTTATTTCTTTCAACGGTACTCAC -TATATCATAAAAAAGTAGCAAGTAAATTACACTTTCTTTACAAAACATTACAATATCAGGTGTTATTTGT -AATGTTGAAATATGGTTGTTTTATACTGTAATGTGAAATATGTTTCTTTTAGAATCTAATCAATCCTTGA -AATAAGCATAAATGCATAAGTTTTTTACTATATTTAGCTCAACTATTACAGCTTTCGTAATATTACAGAT -TGTATTTTTGTTACACGCCTGTAACATTACCGTCATCAAATATAACTTAAATTGATTAATTAAACACAAT -TAAAAAGCAATCAATACATAGATTCCCTCACATGTATTGATTGCTATTATTGTTATATATTCAAAGTTTT -AAAACACATATCTTTTGTGTATTGACTTATCTTTTATAAGCACAAATAAACTGCAGCTCAATTATATTGC -TAAACTTTATTCTCGCAATTCACAATAACATTAAATAATTTTTGGTCTAATATTTTCAAAAAACATATTG -TCCTTATCCCATGAATTTAAAAATATCATTAGTATATAAACGAAACACTTTACGATAAATGATATCTGCA -AGCCAAGCTGTTACAAATGGTACAACAAAGAACGCTACTACAATTAGTAAGACACTCAACCAAGCAGAAT -CAACCTCCATAAATTTAAATGCATTAATCGGTCCTACCATTCCTATAAAACCAAATCCAGCTGACTCTTT -CGTTCCATGAATACCTACTAATGCTGATACCAATCCTGATACAATGGCTGTCGTCAATATTGGTAACATA -AGAATTGGATATTTCACCATATTAGGTATCATCATTTTAACGCCTCCAAAGAAGACGGATAACGGCACCC -CTAAACGATTTACTTTACTTGTACCAATTATCAATACTGCTTCAGTCGCGGAAATACCAATTGACGCTGA -TCCAGCTGCTAAACCTGTAATACCTATCGCAAAGGCAATGGCCACAGTTGATAGTGGCGAAATAATAATA -AGACTAAATACCATTGAAATCAAAATACTCATGACAATTGGTTGTAATTCTGTAAAACCATTAACCATAT -TACCGATGGCTGTTGTAATCATTTTCGTATACGGCAATATTAAAATACCAATTGCACCTGAAATACCGCC -AACAACTGTTGGGAATACAATCAAAGCCATACTACCTACACGATGTTGAATAAGTAAAATGAACAACACT -GCAATCGCTGCTGTAATCATTGTATTAATTAAATCACCAATACCCGTAATCATCCAAGCACCATTTTTAA -ACTGCGCTGCACCGCTTCCTACATATGCTGCACTTGCCACAACAGCAATTGCTAATGGCGATAGGTCAAA -TTTCATGGCAACCAATGCACCAATCAAAGCAGGTACTGTAAATTGAATTGCAACGACAACGCCTAATAAC -GTTTTAAAAATCGGATGATAATCCATAAAGTATTTAAAAATTTCTCCAAGTATCGCATTAGGAACTAAAC -CCGCAACAATACCTATGGCGACACCTGATAAAACTCTAAATATAAAATCTTTGGGTGTAATTGTTTTAAT -TGATGTCATAATATCATCCTTCCATTTATGTATATACATCTTTATGCAAATAATAAAGAGCCTTAAGTTA -TAAGCTGCCACTAGCTTAAATTCTAAGATGTGCATGCCGATGTTGTTATATTTAGGCTAGCAGTATCATC -TATAACTCAAGACTATGAAAAATAGTATATCACAAAATTCTGAATTTTTAGATAAAGAAATTGGCAATTT -TTCAATCATATTGTTACAATACACTTTTTATTTTATCTTCATTTTTAAAATCCATTAATATAATAGAAGA -AAGACATTCAAATGCTTACCAAAAAGATACATTATTTGTTAGGAGCGTATCAGCACTTACATATCATCAA -CACAATTGACAACATAATAGAAGATACTGATAATAAGTGTTAAAACAACAGATGTTAGGTAGTGAACAAA -TGACGGAAAGTAAATCCATAGATCCAAGAATCGTTAGAACCAAACAATTGCTTGTCGATGCTTTTCTTAA -AATTTCTAGAGAAAAGAAATTGTCTCAAATTACAGTTAAAGATATCACTGATATTGCTACGTTAAATCGT -GCAACATTTTACGCTCATTTCACTGATAAAGAAGACCTCCTAGACTACACATTGTCTGTAACCATTTTAA -AAGACTTGAATGATAACTTGAGCATTTCTAATGTCATTAATGAAAAGGTACTGCGTAATATTTTCATTTC -AATTGCGAGTTATATCAAAGATGCTGCAAAGTCTTGCGAATTAAATAGTGAAGCATTTTGCAACAAAGCA -CATCAACGTATTAATAATGAATTAGAAGATATTTTTGCGATTATGTTAGAAAACAGCTACCCAGAGCATC -AACGAGATATCATTGTAAATAGTGGGAGTTTTTTAGCAGCTGGTATATCAGGCTTAGCATTACATTGGTT -TAACACGAGTCAAGAAACAGCCGATGTGTTTATCGATCGCAACCTTCCATTTTTAATTCATCATATAGCA -CATTTTTAATAAAACTTGGTATTTAGTCATGCATCTTGAAATCACTATGTGACTTAGGTTCATACTTGTA -CACACAATAAAATTTAACGTATTACGATTGATTAGCCGTGTCTAGGACATAAATCAACGTCCTATACTCT -ACAAAGCCATATTGGCAGTCGTTAACTGAATGAAAATAAGCTTGTCATTAAAACATATAGATTTTAGTGA -CAAGCATTTTTGTTTTTGCGTACTTAAACAACACTTCAGGCAATATGTTGTTTAGGCAACAAATGATATG -TCCGTGTTTATTGGCAAACGTACGACATAGTAGTATAGTATGTCTAAACAACACATGTCGCATAGTTGAT -ACGCGTTGTTTAAATACTAAGATAGGAGGGATTGGCGTGAGCGAGACAGATGAACCTCAAGGGTTTGAAC -ACACGCATAACAGATTAAATATTAATCAGAATAGTCAGAGTCTAATGACATTCATTACAAGTAAATTGAA -GTCGAAGTTGAAGCAGCACATAATAATTGCTCGTGGTAATAAGCGAATCGACTATCGACTGTCGTATAAC -TTTTACACTACGTATTATGATAATGTAGAAATCAAGAAAATCGACTGTGAATATACCTATGCGATGGCCA -TTGCAATTTTAATAAGACACACGATGTCATTCGACAATGCTCATTTCTTTGCTCAGTTACGTCATCCTGT -CTTATAAAACAACATTGCAGACATGTATATCAAACGGCACTTCAATAACATCACTTTGCCGTCGTACTAC -TATTAAAATCGTGTCTCAAACCCCTTATTTTAATTCCAAAAATCTGCTGGTCAAAAGACCCAGAAACTAA -AAACATTACTGAATGTGTTGATAAATTACCTGATAGAAATAATCTCAAAATATATCAACACTTGATTCTA -AGGAGGATATGACAATATGAAAATTTTAGATAGAATTAATGAACTTGCAAATAAAGAAAAAGTACAACCA -CTTACTGTAGCTGAAAAACAAGAACAACATGCATTGCGCCAAGACTACTTAAGCATGATCCGGGGACAAG -TATTAACAACATTTTCCACAATAAAAGTGGTTGATCCAATCGGTCAGGATGTCACACCAGATAAAGTTTA -TGATCTTCGCCAACAATACGGTTATATTCAAAATTAATATTTGCTCACGAGGTATTGCACTTAAGGTGCC -AACTGACCTCATAAACAAAGCCCATACTGATTGAAGACACTAATGTGTCGCACCATGTCTCTTACGACAT -GCGCACATTACGCTTCATCTCTGTATGGGCTTTTTATTTATTCTTTTGAGAATTTCATTTTAGCAGACTA -AAAAATTAAAATGGTGTCCATCAAGATCTTTGAACATTGCACCATAAAACCCTTGGCTTACTGTTGGTTC -TTGAACGACTGTGCCACCCGCTTCTTTCACTTTATTCACCAACTGGTCAACTTCTTCATTTGTATTCACA -CCTAAAGAAATCATCACTTCATTTGGTTCAGTGTTAAGGCTTTGCTGACTTACATTTTGAAAATGCTTGT -TTTCTATTAAAATTACGGTTGTTTGACCTATTTGAATGCCTACCATTTTATCTAACATTTGTGGGTTTCT -ATTTATTTTAAATCCTAACGCTTTATAAAACTGTGCGCTCTTTTCTAAATCTTGCACATGCAAATTAAAC -CACATTGATTGAATCATGATTGCACCCCATTCATTACTTATTATAGTCTTGGACTTTAAGCCAATCACTT -AATGATAATCTTGTTGGATTTATTTCAGCCATTAATTCAAAGTCTACTTCATAACCTTTTTCTTCCAACC -ATTGCTTTTCTGCAACACCACTAACAAATTCTCCTTCTATAACAGTCGATTTACCTGTCACTTCACTAAA -AATTGTTGCTGCTTCACTTAATGTAACTTCATCGGAACCAATCTCTATTGATTGATGCGTAAAGCTTTGT -GGATGTTCAAAAACATACGATGCAATTTTAGCTATATCAATAGAAGAAATCATTGTGAATTTTATATTCG -GATTAATAAATTCTGGTAATGTAATACGTTCATCTTCGACTTTAGCAATACGTAAAAAATTATCCATAAA -GAATGATGGTTTGATAACTGTTGCATTTATATTAGATTCCATTAATCTATTTTCTATTTTTGCTAGTACT -TCAAAGTGTGGGCCTGTTCGATTTCGATTAACCCCTCCCGCAGTGCTATACACAATATGTTGAATATTTT -CTTGCTCAGCTATTTCAATTATCTTCATACCTTGTCTTAATTCTTCGCTAACATCATCTTTAACGATTGG -CTGAATACTGTATAAACCATACTTCCCTTTCATCGCTGATTGCAAACTAACACTATCACTCAGATCACCT -TCAACGATTGATAAATGCGGATGTCCTATGTCTGAAAGTTTACGATTATTCTTATTTCTAGTTAATGCAC -TTACATACCATCCATCCTCTAACAACTGTTTTACAACTGCATTACCTTGCTTCCCTGTTGCGCCTATTAC -TAAAATATCTTTCATTTTAGATCCACTCCCCTTTTATCTTAAAAACCAATAGTCCTCTTTTTCACCTTTT -AAATACGTATATGGTTCTGGTGTTTGTCCATTTTCCTTAATATTGTCATTTATTACATCTCTGACATCCC -ATACTAAATGAATAAATCGTTGTAATTGATGACTAAAAATGCCTAGTGGCGCTTTCATAGCTAATGCTTT -TTCCACATCTTCTGTAGTAACATTCAGTTTTCCTGCAATCATTTGAACCGATAAGGTAGATTCTTCAAAA -TGTGCTTGCAATTCTTCAGCTGTAATACGTCTTTGCTCTTTATTTAAAGACATACGCAACACTCTTTTCT -TTTATGATATTTAATAGTTATTGCAAATTCATTGCTAACTTTCTTAACACGTTTTATAATAAACGGAGAG -TTATCCGTTTGTCAATTTTAGAGAACTATAAGTAGGTGGAATCATGCGAAAAGATGCAAAAGAGAATAGG -CAACGAATTGAAGAAATAGCGCACAAACTTTTTGATGAAGAAGGCGTTGAAAACATTAGTATGAATCGTA -TTGCTAAAGAACTAGGTATCGGTATGGGGACATTGTATCGACATTTTAAAGATAAAAGCGATTTATGCTA -CTACGTCATACAAAGAGACCTTGATATTTTTATCACTCATTTTAAGCAAATTAAAGATGACTATCATTCT -AATTATGAGGTTATGCAAGTGTCGTTAGATTATCTTTTACAATTTAAAATCGACCATAAGGCACTACTGC -AATGTATTGAAGCAGGCAACAATAAATTACGTTTTTACCAAAGCGCATTTTATCAAGAATTATTTTATTT -TTATTATGACTTGTTTAAAAGCGATGACGACATTTACACGAAGTTCAAAACAGATATGCTGTTGCAAGCA -TTATCAACACGTGTATTTGATTTCCAAATAGAACATCGCAATATTTCAATTGAAGCGTATAGAAATTATT -TATTAAACATTTATTTAGATGAGGTGGAACGTAATGACTAAAATTGTGTTAATCACAGGTGGTAATAAAG -GATTAGGCTATGCAAGTGCGGAGGCACTTAAAGCATTGGGCTACAAAGTGTATATAGGTTCTCGTAATGA -CGTAAGAGGACAACAAGCATCTCAAAAATTAGGTGTTCATTATGTACAGTTAGATGTTACAAGTGACTAC -TCTGTCAAAAATGCTTATAACATGATTGCTGAAAAAGAAGGTCGTCTTGATATCCTCATTAACAATGCAG -GTATATCTGGTCAATTTTCAACACCTTCTAAATTGACACCTCGTGACGTTGAAGAAGTATATCAAACGAA -TGTATTTGGTATCGTTCGAATGATGAACACATTCGTCCCTCTCTTAGAAAAATCTGAACAACCTGTTGTC -GTCAACGTATCAAGTGGTTTAGGTTCATTTGGAATGGTTACAAACCCCGAAACAGCTGAATCTAAAGTGA -ATTCATTAGCTTATTGTTCGTCTAAATCGGCAGTAACAATGCTAACATTACAATACGCTAAAGGATTACC -AAATATGCAAATCAATGCTGCTGATCCAGGTGCTACAAACACTGATTTAGTTGGTGATTTTAGTAATAAT -TCAAAACATGTTTCTGAAGGGATCAAGCCAATCATTCAATTAGCAACCATTGATGCAGATGGCCCGACAG -GTACATTTATTAATGGGAATGGTGAAATGCCTTGGTAATCCAAATTTATGTTACAAATATTGAATTTAGA -GGTAAATAAAAAATGCTTCTGCAATAGATGCAATATACATGCAAAACAATATGGAGGCGAATCAAATGAA -AAGTATTACGTTTGAAGAACATTATGTCATTGAAGATATTCAAAAAGAAACGATGAATGCGATATCGGCA -GATCCTAAAGGTGTGCCGATGAAAGTAATGTTAGAAGGCCTTGAAAAAAAGACAGGTTTTACAAATGCCG -ACGAATTATCACATCATGATGAACGTATCCAATTTATGAATAATCAAGACGTTCAAATTCAAGTCTTATC -TTATGGAAATGGGTCTCCTTCAAATTTAGTTGGTCAGAAAGCCATTGAATTATGTCAAAAAGCAAATGAT -CAATTGGCAAACTATATTGCACAATATCCCAATCGCTTTGTAGGCTTTGCAACTTTACCTATCAATGAGC -CTGAAGCCGCAGCGCGAGAATTCGAACGTTGCATCAATGATTTAGGATTCAAAGGTGCGCTCATTATGGG -ACGTGCACAAGATGGTTTTCTTGATCAAGACAAATATGACATTATTTTCAAAACAGCTGAAAATTTAGGC -GTACCGATTTATCTACATCCCGCGCCAGTTAACAGTGACATTTATCAATCATACTATAAAGGAAATTATC -CTGAAGTAACCGCGGCAACATTTGCTTGTTTTGGTTATGGTTGGCACATTGATGTTGGTATTCATGCAAT -ACATCTAGTATTATCCGGCATTTTTGATCGTTATCCAAAGTTAAATATGATTATTGGACATTGGGGTGAG -TTTATCCCATTCTTCTTAGAACGTATGGATGAAGCTTTATTCGCTGAACATTTGAACCACCCTGTAAGCT -ATTACTTTAAAAATAATTTTTATATCACACCGAGTGGTATGTTAACGAAGCCACAGTTTGATTTAGTCAA -GAAAGAAGCAGGTATTGATAGAATTCTTTATGCTGCTGATTATCCATATATTGAGCCTGAAAAATTAGGT -GTATTTTTAGATGAACTGGGTTTAACAGATGAAGAAAAAGAGAAAATAAGTTATACAAATGGTGCTAAAT -TATTAGGTTTATCATCTAACAATTAACAAATGGAGGTCATTGAATATGGAAACTTTAGAATTACAAGGCG -CTAAATTACGCTACCACCAAGTCGGACAAGGACCCGTGCTCATCTTTATTCCTGGTGCAAACGGTACCGG -AGACATTTTTCTACCTCTTGCAGAACAGTTAAAAGACCATTTTACTGTTGTAGCCGTTGATCGTCGTGAT -TATGGAGAAAGCGAGTTAGCTGAACCACTCCCTGATTCCGCTTCTAACCCTGACAGTGATTATCGTGTCA -AACGCGACGCACAGGACATTGCCGAACTTGCAAAGTCATTAAGTGATGAACCTGTCTATATATTAGGTTC -AAGTTCAGGTTCAATCGTTGCGATGCATGTGTTAAAAGATTACCCTGAAGTCGTTAAAAAGATTGCATTT -CATGAACCACCAATTAATACATTTTTACCAGACAGTACTTATTGGAAAGATAAAAATGATGACATTGTGC -ATCAAATTTTAACAGAAGGCTTAGAAAAAGGTATGAAAACATTTGGTGAAACATTAAATATCGCACCAAT -TGATGCAAAAATGATGTCTCAACCTGCTGATACTGAAGAAGGACGTATAGAACAGTACAAACGTACGATG -TTCTGGTCAAAATTTGAAATTAGACAATATACGCATTCAGATATTACTTTGGATGATTTCACAAAATACA -GCGATAAAATCACCTTACTAAATGGGACAGATTCTAGAGGCTCCTTCCCACAAGATGTTAACTTTTATAT -AAATAAAGAAACTGGCATACCTATTGTAGATATTCCAGGCGGTCACTTAGGTTATATTCAAAAACCTGAA -GGCTTTGCTGATGTATTATTAAATATGTGGGGTTAATTGATCGTTCTCTAATAAAACAGCTTGGACAGTT -TTCAAATTATATTTGATGGCTGACCAAGCTTATTTTTATTTACGCTTAAACGTTCAAATCAACTCGTTAT -TATACATGAAGGCATGTTAACCATTCTCTTCCACTGAAAACACTACTGTTCCAAACATTGATAGTCTTCT -TTTGAAATACCCTTTCCGATAAGCACCAAATATTCTGGCACTTTTTTTGAAAATGCTACAGGTGTTAATT -CATATTGTCCTTGTGTAAATTGAATGAGATACGTATGTGCGGTGTCTTCAAATGTCATAAACCCTTTCAA -CCTATAAATATGAGTCGGAAGGCATGCTAAACGTTTTATAAACTGTGCTTTAGTACATTTGGCTGGTGAT -TGCACAAATTGATGATTTATTGTTTTGTGTAATGATTCATGTTTATTGTCAGAAGTTGCTGTCATTTGGC -TAACTGATATTGGCAAAGTGACGCTGCCATGCATACCAACTTGTATATCGGCCTCTGGGTTAATAACTTC -TAAATCTTTCAATAGTTTGCTCGTCGTTTCAACATCTGCTGAATCTATTTTATTAACAAATAAGACAGAA -CAATATGCTAATTGCTCATAAAATAAGCCTTGGATGTCTTTTGGAAATGATTTTATGTGTTTATACATGC -TTGCATCTACAACACCAATCATATGTGTAATTGTTGTAAACGGAGCTAAAATGGGCGTTAAACAAGCATC -TAAGACAGAGACTGGTTCTGCAATCCCACTACATTCAATAAATACAATGTCTGGTTGCTCTTTTAAATAT -AATTGATGTAACTGTTCTGATACATCTGCTTTCATTGCACAACAGATACACCCCTCTGTCAGTTCACTTA -AAGGTATGTCTTCAGATACTAAGGCACCATCAACACTCATTTTGCCAAATTCATTCATGATAACTGCCGG -TTTCAGCGACTCCTTTAATGATTCAGCGAGCAAATGATTTAAGACAGTCGTTTTACCGCCACCTAAAAAC -CCACCTATAATAACTATTTTCATCTGCGACTCTCCTCTTATACTTCATATGAATAGCATATTCCAAGATA -GCTTTCCTATTGACTGACATGACTCTATATTCAGTTATAGTTCATTTCTTTTTTAAATAATCAGCATTAC -TATTTTAACAATGATGCCTACACCAATAACTAAAGACAATGATGTCACCATTTGCTTTCCAATTAATTTT -AGTGCTGACTGACCACCTAAATGTTTCAAAAGCATCGTCATTGTGACCGAGCACGCTGTAAATGTTGAAC -TAAAAAACACAAGTAGTAGTAACTGTGTTGCTGTCATTCCTTGTAATAAGGCGCCTTGATGCAAATTAAA -CAAGAGCATGCCGTCTTTTCGAATCATTGAAAATAAAATCCCTGGTGACAATTCTGACGAGATGCCTAAT -AACGATAATATAGGTGTAAATATTTGTGATAAAACATTCAAAATTGGCGTTAGTGATAAAATACTAACAA -TAAGACAGATTGTGATAAAAATAGGTAGCGCTTGAACGATAAACATTTGTATATTTTGCCACATTTGTAG -CAACATTTGACGTATATTTGGCATATGTAATTGCCTATCATAAGGTAGCGGAACGCTAAGTTGTTGATCA -TTCTTTTTCAACCATATCCTATTATGTAAGATGCCACCTAAAAGTACTAATATTAAGTACGGCATAAATA -GCCATGACTTTCCAGCTACACTAAAAATAGATAATGTCGCACCTATTTGATAACTACAAGAACTACCAAA -GCTTATTAAACTCATACACTGTGTCTTCGTGCAGGTATGGCATTGGTGTGCTGCTTGTGAAATAGCTGCT -GCATTACATCCAAATCCTTCTAATAGTGGCACGATATCATTACCTTGTAATCCTATCCGTAACATTGAAG -GTTCAATTGCCCATATCATCCATGATTTAAATCCTGTTTGATCAATTACAGCAGTTGATAAGCTAATCAA -TATTACGACCGGCAATGCCCATACGAGCGAATATGTTCCAAGTGATAGCACACCATAATCACCAAATAAT -ATATGCTGTAATATATCGTGATTGAGCAATGTTGTTTGAGTTAAATATTCTATCCATGCTGATACATACT -GATTTTGAAACCAATCTGAAAATTGATAAGCGATACCGATTGGCAATGCAAACATTAAAAATATCAACAA -CCAGGCTAAAAATGTCGCACTTATTTTAGGTCTTAAATGTCGTCGTTCATGTTGAAATAGTGTCAATTGT -TCTATCACATGTTCGCTCGCTATAGGCGAAGAAACTACACTTTCTGCCAATGAAATATCTAATTTCTGTT -TTATGATTAATAATCTTAATTTCGCTTTTTCTGTTGCGGTAAGTTTATCCGCATGGCTAATAACCAAATA -ATGAGGTTCATTAGGTATGGGCGTATAATGCCCCGTTCTCATATCATATTTCACTTCTAACATGTGCATG -ACACTTCACAACATGAATAATCATCTAAATACATTTGATTTTTTTGGTAATTTTCAATGACTTCTTGTTT -AGCTGGTAAGCCTTCCCGCTGTGTTAAAAGATGTGCAAGTACTGCAAATCGCGCTCTGAATTTATAGATA -TAGCATAATTTGGCATTATCATTTTCAACTGTTGCACCAATCATAAAAATATTCGGATAACGTGTCGATT -CATCATGTGTTGTTAATTTAATATCTTGATTTGTTGTCGCAAATAATTGTTGAACGATTGGATTTTTTGT -TGCATCAAAGCCAGTTGCTACTATTGGTTCATGAGGCGTAAGCACACTTTGTCCGCTATCAAAACTGATA -TGATACTGTCCATCGTTAAAATCAATATCTTTAACTGTATAATGCACATTCATTTCAATGCGAGCTCCTT -GCTTAATGACATTACCTAGTCGCTGACGTGTATAAGGTGACAATCTAACACTAGGATCAGCATCCGGATC -ATTTAAACCGGTTGTGCTAGTATAAAGTGCGATGTCAGAGCCATTTTTTGCAAGTTGATATGCAGCATCA -AAGCCACTTTCATTACCTCCGATAACCACATATTGCCCCTTATTAAAGTTATCAAAGTCTTCAATTTCAC -TATAATGAATACCATATTTAAATGGCTTTTTAGGGAAATTATAATCACCTGTTGCGACAAAGATATAATC -CGCGTGATATGTCTCTGTTGTCGTTGCAATCGTATAATATGCATCATCTACAGATATATTTGTGACAACT -GTATTTTCAAAGATATTCAGCTCGTAATGGTTGGCAACCACTTGTAAATATTCAGCATATGTTTCTCCGG -AAATATGTTCTTCATTAAAAGTAAATGCTGGTGAAGTATCCATGGAAATTGCATTCATATCAGGCATGCC -AAATCCATTAGACGTAAATGATGGCGTAATCGTACGGGTCGATTTCGGCCAATGTTTAAATGAATGTCCT -ACTGTTCCTTTTTCTAAAATAATGACATCTGTTATACCGAAATCTTTTAAGGTAATGGCCATACCTATAC -CTGCAGCACCGGCACCGATAATAGCCACTTTATGATGTTGCATATTAACACTCCCTCAATGATCTATTTC -AAGTTATTGTTTTTGATTATAAATCGTAATAATTACGATTTATAAAGTATAGACCTATCCTTGAGAAATT -TCAATATTAAAAGAAAAACTTCCGCTATTGTAGAGAATTCATCTACATTTCGGAAGTTGGTATGTGTCTT -TTTTATTAAATTTAAGGATGCAACGGTTAGTTCAAATGATTATGAATGACATTTCATGGTATCATCCAGC -CTCAGTACTTGGAGATAACATTTTGGCGGTGAGACAGAAATGATATTTTTACAAAATTTATTTCGGCGTC -CCTCCAATAAATATAAAGTATTTCTTTATTGTGGCGTAACTTCTCCACGTTGTATTTCACTATCCAAATT -TTGTTTCATATTATCAAACAACTCTTGAAATCTAACCTCATCTTGATCAGAATAACCTTTAAAAATAACT -GAATCTATATTTTCTTCGTTAAAATAATAAATTTCATCTTCCACAACACCAATCGGATATTTACATGCAG -AATAGTCAAACATATACTTTTGATTTTCAATTTCTACAATTGGTCCTCTATTAATAATCATTAACTTTTG -CGAACCTTCTTTTAAATAAATAATGCTTCCTATTGTTTCCATTTATTTTCCTCCTTTGTCACCATCTCGA -TTTCGATATTTCTTCGCATTTCCAAGTCAATCATCTCTTCTTCCGCTTTACGAATGTCATGTTGAATTTG -CTGTTGCTGCTCGTATAACGCTTCCGTTGAACGTCGTTTCGCAAAATGAAATTCATCGCGGAACTGTTCC -ATACGACTAGCCATATTGCTACTATAATAACGCTCACCTAAATGTTGATATAATTGTTCTATCGAATGAT -TAAGCGCATCGCTTTCATCTATCAATGCTTTAACCTCTTGCTTTTCATCATATAAGTCATCCATTTGCTT -ATGTTTCGCTGTGATCATCTTATTGATTCCATCAAGTTTATTCGACATCATTTCACCACGTTTTAATTTT -TACCAATTTCATTACCAATCATTACGTCAGTTTGGTCAAAAGCCTCACCAACTTTTTGTATATTATCGCT -CGCAGTTCGTATTGCTTCAGCAACAGATTGATTCTTACTAATCAAATCATCTATCACACTATGAGCATTA -TTATTTCCACTTACTGTTGTACTTTCATCTTTATCCGGTTTCGACACATTATTACATGTTTCAACAGCGC -TTTTAATAGATGATGATGCACTATTAGTCTTAAAAATATCACTTTGAACTGTACTCATCATTTACACCTC -TTCCCATTTAAATTATTTTAAAATTATTAGAAACTGTATCAATATATGATATTCAAACATTCAATTATAC -TTAAATATTGTTTTGTGATTATATTCAAAATTATTGTATCAATAAATATGTATCATTCCTAGAATTTTAT -TGAACAAAAAGTTAGAAAATCACTTTTATTGCAACTCAATCTTGTTTTGTATTATAGAAATTAACAATAG -AGATTAAAATTTTATTTTCCAACAATAAAAAAGCACAAATATTTTTATTGAGGCAGCTGAAGGCCTTCTC -ATTATAAAATTATCTGTGCATATTATTATCTTAATCTAACGTAATAACTAATCTGTTGTATCTTGTAAAA -TCTTATCCATAGAATGCGTAACACTATCACGGTACATCTCCCCAAATTTCAATAAATGTACCATCAATAA -ATATAAACGATAAAATTCAAGTCTATAGGATGCACCTTTTGCGAGTGGATAATGTTTATTATACGCATCA -TAAAATTCGCTCGTAAAACCACCAAATACCGTTGTAATACCGATATCAAATTCTCTGTCACCATATAATG -GTGCTGGATCAAATAACGCCGGACGACCATCTTGTAAGAACATATAATTGCCACCCCATAGGTCACCATG -TAATAAAGATGGTTTACTTTGATGCTTTTCTAATTCCGCCACAATTTGACGTCGCACTTTGTCATATACT -TTGATATCGTTGGCATCCCATAGCCCTCTATTTAGCAACTCATCTTTCAAATGATCCATGCGCTTGTCGA -CAAAAATGGTACACCAATCGTCTTGCCAATGATTATCAAAAGAAATATCGCCACCTTCATAAGGTAATGA -GAAGCCAAATTTGCCTTCTTCTTGTTGCTGACTGTGTAATTGAGCTACGAGTTGCCCTAATTGGCGTTGA -CTCCCTGAAGCCCCTTCTTCTAAATACGTCATCACTAAATACGCATCACCGTTAACCTCGCCACTTGCAA -TTACTCTAGGTGCCGTGATACCTGCACGTTCAAATTCATTTAAACCTGCAATTTCTGCAGCATAAAATGA -TTCTTTACGTCCACGTTGGACAAGTAAGAAAAATGTATCCGTATCCGTTTCGACTCGATATGCTTCGTTT -ACATCGCCACCACTCACTGGTGAAATCTCTTTAATATCTTTTAAAGGTAAATGCTCTAACCATTGTTCAT -TCATACAAACACCTTCCATTACGCTTACTTTATACTATTATATTGCCTAATTAGGATGATTTAATCTCAA -TTTTATTTGTGGTACTTGCGTCAATTTTCAAAACTTTTTAGTTTTAACTAGGAAATTATGTAGGGAAATG -CTAGTCTATTAAAAGAATATATTTCACATATATTAAGTTGAGGATAGTAAGCCTCAAATATAATGAAATA -GGAGCATACTCATGTACAAATTAATTAAACCTTTCTTATTCAAAATCGAACCCGAAAAAGCACACGGACT -AACTATCGATGCATTAAAAACGTTACAAAAATTTCCAGTTTTATTCCCAGTCGTCGATAAACTATTTACT -TATAAGAATCCAACGTTATCACAAACGATACAAGGTAATACGTACGACAATCCAATTGGCTTAGCAGCTG -GTTTCGACAAATCTTGCGAAGTACCAAAAGCATTGGAACACCTTGGATTCGGTGCTTTAGAATTAGGTGG -TATCACACCTAAACCTCAACCGGGTAACCCTCAACCACGCATGTTCAGATTATTAGAAGATGATGCCTTG -ATAAATCGTATGGGCTTCAATAATATTGGTATGAACAAAGCACTCAGTCATTTGCGTAAAAATGCTTATC -AAGTACCTGTTGGTATCAATGTTGGTGTGAATAAAATGACACCTTATGAAGCGCGTTATCAAGATTATAT -AAAAGTCATTGATACGTTTAAACACGACGTTTCATTTTTCACAGTCAATATCAGTTCTCCAAATACTGAA -AACCTTCAAAATTTCCATGATAAAGATGAATTTTCAATGTTATGTCAAGCTTTGACAACATTTAAAAAAC -AGCACGATGTAACAGTGCCAATTTACTTAAAACTAACGTCTGATATGGATTTCGATGGCTTAAAAGCACT -ATTACCAGCGATTACTGAGACATTTGACGGTATCATCTTAGCAAACACAACGCGACAACGAGATGGTTTA -ACTTCTGCTAATAAAGTCGAAGAAGGCGGTTTGAGTGGTCGTCCATTATTTGAACGTAATTTAAAATTGA -TTAAGTATGCTTATCAGCAAACAAATGGTGAATTTTTAATTATAGGTACAGGCGGCGTATTCAGTACTGA -AGATGCAATCAAAATGATGCGTCACGGTGCGTCACTTATTCAAATTTATTCATCACTTGTTATTGAAGGC -CCAGGTTTAACTAAGAAAATGAACAAAGGCATCACACGTTACTTAAAAGATCATCATTTTGACAATGTCA -GTGATATTATAGGACTAGATGCCTAATCCAACGTAGTCAAATAACACTTTAAAACTTGCTGAATCGTCTT -ATTAAAATTATGATATAACTCAAGAAGATATATTTATCACCATTTTTCAAAATAATGGCTTAAATATCAC -ATATCATTAAATATAGCGTTTTATAACGGAGGCGTTTGTTATGACTAAAGAAACAGATAATAAAAAAACA -GTAGCGACTTCTGACAACAAAGACACACAGCAACAAAATCAACCTGAAGAAGATGAACGTCAAGGTTTGA -ATGGTTATCGTAAAACAGATCTTGATTTAGAAATCGAGCAAGAGCTACGTGAAATGATGAAAACAGGAGA -AAATGAAACGAAAAATGACTACAAAAAGTTTAAAGTGTTTTCACTTATTTCAACACTTATCATTGTCATT -TTAGCAATTATAAGATTTGTTCATAAAATGATGTAATTAGAGTGAGACATTGTTTTATGTCTCAGAATCC -AGTTATTCATGATAGCTACAATATTTACGATGATATAAATAACCCGAGATTTTAGTATGATTCATTTCAC -TAAAGTCTCGGGTTTCTATTTGATAATTTTTAATAGGGCATGGCTTGTATATGCGCCTGCCTTTTATCTT -ATTTCCAATGATTAATCTGGATATTGTTCTAAAAATGCTTTCGCTTCTTTATTAACTGTTTTAAAATCAA -TACCTTGTTGCATCGCTGCAAAGACACATCCACAATAACACTGCCTAAAGATATTATAGTCATTACACAT -TTCTATGGAACGCTCATAACCTTTACTTTTCTTAAAATCACTTGGCAAATAGTTCACATCGTATATTTTT -TGGACATCCATACCAAGTTCATTGATTAATTGTGCGTTCTTTTTAGGTGATAACGTGATTGCACTGCCAA -AATAATCATAGCCATGTTCTACAGCTGCTTTCGCTACAATATCCAAACGCATTTCAAAACAAGCGGTACA -ACGTAAGCCGCCTTCTTTTTCATCAGCTAATTCTTTATCCTTCACCATTTTCACAAACTTATGCGGTTCA -TAAGGTGCTTCAATATACTTCACATTCGCACCAGTCTTGCGATTAAAATCTTCCACAAATTGTTCTTGCA -CTTTAGCACGTCGTAAATATTCATTTTTCGGATGAATATTTGAATTCGCGAAATAAATTGCAATGTCTGC -ATATTGTGTTAAAAACTCTAATGTATATGTACTACAAGGTGCACAACAACTATGCAATAAGATTTTAGGT -CTGATTGCTTCTCTTTCCCACTGCCCGATTAATTTCTTCAACACCTTGTCATAATTAATTTTTTGATTTT -TCATTTTACTGATAATAGGTTCAGCATTAATCATGATTTAACCTCCCACATTTAATCATTAACTTCTATT -ATATATGATTCATATTAAATGTCAGTCAAAAAAGTTAGAAATTCATTTTAATGCATTTATATTTTGAAAA -TCCCTTATGTATCTAAAAGCATTTTTTAAACTTGAATTTTAAAACACTAAACAACACATACGTCTCTGTG -TCATTTTCATTTTTTGTATGTCATATATATATGTTTACTTCATTTAAATCAATTTCATCTTACAATTTAT -CGTGTATTTTACAAAAGATTGACTTCAATTCATCGTAAAAGTTATACTTTTGCCATTTTTTAATGTAATA -TAGTGTTAGTAATAAAAATAATACATTGAGGTGTTTTACATGACAGCATTATTCCCTTATATCGCTTTTG -AAAATTCAAAAGAAGCCCTTGCATATTACGAAGAAGTATTTGGTGCAACTGACGTTAAACGTTTAGAAGT -TGGCGAAGAACAAGCGTCACATTTTGGTATGACTAAGGAAGATGCACAAGAAGCAACTATGCATGCTGAG -TTTGAAGTGCTTGGTGTAAAAGTGCTATGTTCTGATTCTTTTGGTCGCGCTGACAAAATTAATAATGGCA -TATCATTATTAATTGATTATGATGTTAACAATAAGGAAGATGCTGATAAAGTTGAAGCATTCTATGAGCA -AATTAAAGATCATTCTTCAATTGAAATAGAATTACCGTTTGCTGACCAATTCTGGGGTGGCAAAATGGGC -ATCTTTACCGATAAATACGGTGTTCGTTGGATGTTACATGGTCAAGACTATACTGCAATCCAACAATAAC -GTTATTGATAAAGATATCATTTAATAAGCTTATGTTATTTAGCAAGGCAAGCCACTCTTAATTCATGGCT -TGCCTTTTTTTATTGTATATTTTTAATTATCGTTGCTGGCCCTTGATTGACAATCGTATTAAAATGCCTT -ATTAAGTCAACTTTGTCTATACGGTTTGGATCTTCTACCCAATGTCTTATCAAAGACAATCCCGCACCTG -AAACATAACTCATGAAATAGGAAAATGGTATACCATTAATTTGATCATTTTCATTTTTATAACGTTGCAA -ATGACACATAATTAAATCATAAAGTTTTTCGTGGATATTTGAATCTTTACCCATACGAAACATCAATTGA -TAAAATGCGATGTCTTTTTCTATCATTTCTATTAAAACGGTCATAATTTGATGTATGTTATCCGTGGATA -ACTTAACTGCTCCATTTAACTTCTCATCATGAATGAAGTCTCTTATTTCCTCCAACTGCTGGTCCTCTAA -TTTTTCAAGCAAATCATACTTATCATAATAATGCGTATAAAATGTACTACGGTTAACATCAGCTAAATCT -GCAATTTGTTGCACAGTAATCTCTTCTAATTGGTGTTGATGTAAAAGTTCAATAAATGCATTTCTCATTG -CAACTTGTGATTTTCTAATACGTCGATCTATAGTCATTTGTATCAAGTCCTCCCCAATGATTATAAACAA -TTATAAATGTTATGTTCATTATCCTACAAATCTCCAACATTGATGATTGGCACACAATGTTTACCTGTTT -AATATAGGTGATACAAACAAACAGAAAAAGGTGATAACAATGAACCAACATTTACTAGGAAATCCAAAAT -TAACTGTAACTCATGTCAATGAAGTGAAAGCCGGTATTAACCACATCGTTGTCGACAGTGTTCAATATGG -AAATCAAGAAATGATTATGGAAAAAGATGTCACTGTGGAAATGCGCGATGGCGAAAAATTATATATTAAT -ATTTTCAGACCAAATAAAGATGGCAAATTCCCTGTAGTTATGTCTGCAGATACTTACGGTAAAGATAATA -AGCCTAAAATCACAAATATGGGTGCCCTTTGGCCAACATTAGGCGCCATTCCGACATCTAGTTTTACACC -TGAAGAATCACCAGACCCAGGATTTTGGGTGCCAAATGATTATGTTGTAGTTAAAGTTGCATTACGCGGT -AGTGACAAATCAAAAGGCGTCTTATCTCCATGGTCAAAAAGAGAAGCGGAAGATTATTACGAAGTGATTG -AGTGGGCAGCAAATCAGTCATGGAGTAATGGAAACATCGGGACAAATGGCGTTTCTTATCTTGCGGTGAC -TCAATGGTGGGTCGCATCATTAAATCCACCACATTTAAAAGCAATGATTCCTTGGGAAGGCTTAAATGAT -ATGTATAGAGAAGTAGCCTTTCACGGAGGTATAACGGATACTGGCTTTTATCGTTTCTGGACTCAAGGTA -TTTTTGCGAGATGGACAGATAATCCAAATATCGAAGATTTGATTCAAGCACAACAAGAACACCCTTTGTT -CGATGATTTTTGGAAACAGCGTCAAGTGCCATTATCACAAATTAAAACACCTCTACTAACATGTGCTAGT -TGGTCTACACAAGGTTTGCACAACCGTGGCTCTTTTGAAGGATTTAAACAAGCAGCATCAGAAGAAAAAT -GGCTATATGTGCATGGACGTAAAGAGTGGGAAAGTTACTATGCTAGAGAAAATCTCGAACGCCAAAAATC -ATTCTTTGATTTTTACCTTAAAGAAGAAAATAACGATTGGAAAGATACGCCTCATGTCATTTATGAAGTT -AGAGATCAATTTTATAAAGGCGAATTCAAATCAGCGTCAGCGTTCCCTTTACCTAACACAGAATATACAC -CATTGTATTTGAATGCTGAAAATCACACATTGAATCATGCAAAGATCAGTAGCGCGCATGTCGCACAATA -TGACTCTGAAGATAAACGACAAGATGTAAGTTTTAAATATACGTTTGACAAAGATACTGAGTTAGTTGGA -AACATGAACTTAAAACTATGGGTAAGCACTACAGACTCAGACGATATGGATTTATTTGCAGGTATTAAAA -AGTTAGATCGTCGTGGTAATGAAGTTAACTTCCCTGATTTTAATCATATTGAAAATGGTCAAGTAGCTAC -TGGTTGGTTACGCGTATCACATCGTGAATTAGATCAAGAAAAATCCACAATCGCGCAACCTTGGCATAAA -CATGAAACAGAATTAAAGTTGTCACAAGATGAGATTGTACCTGTTGAAATCGAATTGTTACCTTCAGGCA -CGCTATTTAAACAAGGCGAAACATTGGAAGTTGTTGTAAAAGGTAGTGAAATTGTAATTGGTAATAGTAC -CCCTGGCATGAAAACACGTTATGAACATGAAGAAACCGTAAATAAAGGCATGCACATGATTTATACTGGT -AGTAAATATGATTCACAATTAATCATTCCTATCGTTAATTGATATGCAACAATTACGGTCGATTTTGATT -AAAAGTGACATAGTGATAGGACTGTATAACAAGAGAAAGCCACACGCTTGGAATCTTAAACCAAGGTGTG -GCCCTTTTTATTATTGATGGCTATTTAATTTTATAACACTATCGTATTTTCTTTTTCATGAATCATTTCA -ATAATGACATTGTCTTCATTCATTACTGCTACTTTAGGTGCATGGTTTTTAATTTCTTCTTCATTCAACT -GTGCATAAGTCATGATTATGACTACATCGCCTACTTCAACAAGTCTTGACGCTGCACCGTTTAAACAAAT -TTTACCACTACCTCTTTCACCAGCTATTACGTATGTTTCAAAACGTGCACCATTATTATTATTCACGATG -GCTACTTTTTCATTTGGCAAGATGTCTACCGCTTCCAATATATCTGAATCAATCGTAATGCTACCTACAT -AATTTAAATTTGACTCAGTCACTCTTGCTCTATGAATTTTAGCATTCATCATTGTTCTTATCACTTTATT -CAGCTCCAATTATTATATTATCTATTAAACGCGCTTTTGAAAATTTGACAGCTAACGAGATAAATATGCG -TCCAGTTATTTCGTGTTGTTCTACTAATTGAGGATAACTATAAACAGCAACTTCTTCAATGCGTCCACTT -ATATGTGATTCAAGATATTGAGTAACCTTGTCTATAATTACTTTACTTTGACGTTCACCGTCTTGATACA -ACGCTTGTGCTAATAGCAAACTTTTACTTAAATGTACCGCTTCTTGTCGTTCTTGCTCCGTTAAATAAAC -ATTTCTTGAACTTTTCGCCAAACCATCTGCTTCTCGAACGATATCAATACCAATAATTTCAACGGCATGA -TTGAAGTCTTTTACCATTTGCTCGACAATAGCCAATTGCTGGGCATCTTTTTTACCAAAATAAGCATAAT -CCGGCATAACAATATTAAATAGCTTATTAACTACTGTTACCACCCCATCAAAATGCCCTGGACGCTTCGC -TCCTTCTAACACATCAGCTAATGGACCTACTTTGACATCAATACCTAATTCACCTGGATACATATCTTCT -ACTGCAGGATGAAAAACAATGTCCGCCCCTACTTCTGATACTAATTCTAAATCTTTATCAATTTGTCTCG -GATAAGCATCGAAATCTTCGTTTGGACCAAATTGTAATGGATTAACAAATACACTCACAACTGTAATATC -ATTTGTACTAACTGATTCGCGTACCATCGTTAAATGTCCATCATGTAAGGCACCCATTGTTGGGATAAAA -CCAATCGTTGTGCCTGAGCGTTTGGCTGCTTTAACAATGTGTTGCATCTCTTTTACCGTAGTAATCAGCT -TAGTCATTGTTATTCACCTCATTCATAATTTTCTTTTTATACGTATATTCTTCTGATGGAAATGCACCAG -ATTTAACTTCTTGATCGTATTGCTTTAAACCATCCACACCAACACTAAAATCAGCAAATTGCTTCACAAA -TTTCGCTTTATGTTCAATACCATAATTTAACATATCGTGATAAACCAATACTTGACCATCTGTACCTTTT -CCTGCACCAATACCAATGACTGGAATTGTTAAGTGCTTGCTAATTTCCTCTGCTAAATCATTTGGAATTG -CTTCAAGTACTAACGCAACTGCACCAGCTTTTTCTACATTTTTCGCATCTAAAATAAGTTGCTCCGCTGC -TTCTTTCGTTGCACCTTGTAATTTATACCCCATAACGCCAACACTTTGAGGTGTTAATCCTAAATGTGCA -ACAACAGGAATACCAATTGCCGTTGCTTTTTCAATAAATGGTGTAATATGCGCTCCTTCTGCTTTAATTG -CATTTGCATTCGTCTCCTGATAAAGCTTTAGAGCATGATTTAAGTCTTGTGTCATAGAGATGCCTACTGC -ACCAATCGGCATATCAACAACTACAAATGTATTTGGTGCGCCTCTTCTTACTGCACGACCGTGATGAATC -ATATCTGCTAACGTCACTTGTACGGTACTTTCATAACCTAATACAGTCATACCAAGTGAATCCCCAACAA -GAATCATATCAATACCCGCTGCTTCCACTTGTTTAGCACTTGGAAAATCATAAGCTGTTACCATAGAAAT -TTTAGTTTGCTTTTGTTTCATATCTATTAATTGACTTACTGTTTTCAATGTTATTCAACCTCTTTTTGCA -GTATTATTAGAAATAGTATAATGAATCTTTTATAGAAAGGAAAGAAGAAGATGTTATCAGTTGCGATTAT -CGGCCCAGGCGCTGTCGGTACAACTATTGTCTATGAATTACAACAATCATTGCCTCATACAACGCTTATC -GGGAGACACGCCAAAACAATAACATATTATACTGTACCACATGCACCTGCACAAGATATTGTTGTAAAAG -GTTATGAAGATGTCACAAACACATTTGATGTTATTATTATTGCAGTCAAAACACATCAACTTGATGCAGT -TATTCCTCATTTAACTCATCTTGCACATGAGGACACGCTCATCATTTTAGCCCAAAATGGTTATGGTCAA -CTCGAACATATTCCATTTAAAAACGTATGCCAAGCAGTTGTCTATATAAGTGGTCAAAAGAAAGGCGATG -TTGTTACGCACTTCAGAGATTATCAATTACGTATACAAGATAATGCATTAACTCGACAATTTAGAGATTT -GGTCCAAGACAGTCAAATCGACATTGTACTAGAAGCAAATATTCAACAAGCTATTTGGTATAAATTGTTA -GTTAACTTGGGCATTAATTCTATCACAGCACTCGGTAGACAGACAGTTGCAATCATGCATAATCCTGAAA -TACGTACACTGTGTAGACAGCTATTACTAGATGGTTGTCGTGTTGCACAGGCAGAGGGGTTAAACTTTTC -AGAACAAACTGTCGATACTATTATGACTATATATCAAGGTTATCCCGATGAAATGGGAACGAGCATGTAT -TACGACATTGTGCATCAGCAACCTCTTGAAGTCGAAGCGATTCAAGGCTTTATTTATCGACGTGCACGTG -AACACAATCTTGACACCCCATATCTTGATACTATTTATAGCTTTTTACGCGCGTATCAACAAAATATGTA -AGCACATATATAATATAAAAAGACCTTAACGATGCATTTAGAACCACCTGTTCCTAATATCGCTAAGGTC -TTTTAATTATATTAGACTATTCAGCTTCTCTAATTTCTTCTGCCACATCTTTATAGTCTATTTTCGCTTT -AACAAACGTCTCGTTATTTACCGGGAAATGTTGCTGGAATGTTTCAAAGTTTTGTATCTCAACGACAACG -TCATCCACTTCAAAGTCAAGAACATGTCCACCATAAGCTCTTTCATCATCCGCAAAATGTATATGAAAAC -CAGCAGACCCTACGCCATGAAATAATTCTGGTGTAAAAAATCCAACAATGGCACCACGAATATCTTGTCT -TTTTTCCTCAGGTTGTCTGCGTGCTGAATCAATCAAACGTGTATATGGCGGTTGCTGAGCAGGCATCATT -CGTACATGCATATGTTTAAATGTGCCATAAATTTTAACAGCCGAAAATAAATTCTCACTTAACATTTCAT -TTTTAATTTGTGCGAATACATCATCTTGTGATAATTGTTGCAATGGAAATGTCTTACTCGCTTTAAAATT -AGTAATCGATGCATACGGTACTTTCTCATCGCCTTTTAATTCTATAAATTCTTTATGCTCGTTAGCATGA -TATGCCTTCCCATCTAAAAATATTACTTCGCCATCAGACCCTGTTAACGTTGCAATCCCTAAATTTCCAT -GTTCTAACAATTCATTAATTGTAGCTGTTCCTTCTAGTAAGCCAGCCATTAACGTACCTAATGTACCATG -TTGATACAAGACATTCGTCATTCCAAAACCATCTCCCTATAGTTATTCCTCGTTGTCATGCTCTACTTCG -TGATTAATGCAGAACTACTTTCCTTTATACTCAATGACGCCTCGACATTTCTATTCATGTCACTAAATTT -TCACGAGTCATAATACTTTATTCAATTATTATTTTACGCAAAAGTATTCCCTCTATCAATGCTTGCTAAA -AAAATAGATCTATCAGTGCCACATGTTACCGCAACACTAATAGATCCTCTTACCATTAATATATTTCTAA -TTAATACTTAAAATAGGCTTAGTCTTCTAATAAATATTTAATTGAATCGAAAGTATCTTCTAATGTTTTA -ACTGATTTGTCGAATAATGCTTGTTCTTCTGCACTTAATGGCATTTCATAAATTTTAACTGCGCCATGTT -GGTTAACCAATGTCGGTACACCTAAGTAAACGCCTTTGTGACCGCCATATTGACCATCTAATTGTATAGA -AACATTTAAGACATTATTTTCATTATTTAAAATGGCTTTTGAAATGCGCATCAATGCTAATGCAATACCA -TAGTATGTTGACCCTTTAGCTTGGATAATTTCATAAGCAGCGTCACGTGTATTTACATAAATTTCTTCCG -CTTTAGCTTCGCTACCAGTTTGTTCTTTTAATGTGTCATATACTGAAATACCTGCTACATTTGCTTGTGA -CCAAACTGCAAGTTCAGTATCACCATGCTCACCAATAATACTAGCGTCAACACTTGAAGGTGCAACACCA -AGTTCTTGGCTAATTAAATATTGTAAACGTGCACTGTCCAATACAGTACCTGAACCGATAACACGCTCTG -CTGGCAATCCAGTATATTCTTTTACAAATCTTGTTAAAATGTCTACAGGGTTTGCCGCGATTAAGAAATA -TCCATCAAAGCCGCTATCCATTACACTCTTAACAATGCTCTTCATAATCTTAGTATTTTTTTCAACTAAT -TGTAAACGAGTTTCACCTGGCTTTTGAGGTGCACCAGCTGTAATAACAACTAAATCTGCATCTTTACAGT -CTTCGTATTCACCTGCTTTCACATCAACTGGTGAAGGACTGTGGACTGTACCATGGTTTAAATCTTGAAC -ATCTGCTTTTACTTTGTCTTTTGCAATGTCAATAATTACAAATTCATCAGCAACACCTTGCGTAACCATT -GCAAAGGCATAGCTTGATCCTACAGATCCATCTCCGATTAATACAACCTTTTTACCAAATGTTTTCATAA -TTATGTCTCCTAACCTAATTGAATTTATTTTACACGTGACTACACGTAAAAATATCTATACTGAAATTAA -AGATTAACAATTTTATTTTATTATAATATTATGCTACCAAATTACAAACATAAAACTGAGATGTAAGCGG -AGTCAAATTACACTCTAACGCCAATAAATATTGATATCTCAAGCTTTAGCACGTAATTTGAAATTTGTGA -CAATTTTTAGCATTCTAAAATTGCGTAATGACGCTATTTAAAGGCTTTAACAAACTATTGAGCTTTCTAT -TTTTTTCATTTTAAAAAGGATGGCTATTCGACTTAAATGACTTACTATATAACCTCCTATTTTTCGCCTT -ACTCTCATCATATTTGATGCACCTTTTTATAGTCAAAGAATTACATTTCATACAAACTAGGCAATCAGAC -ATAAACATGAAATTGATTTTAAAAATATAATGCGCAAAATTGTTAGAAAATTAGCAAAAATAGTACTTAT -TCATTTAATATCTGTTATAATCAGTTTTATCATTTAAAAAATCTATGGATGTTATCAAGACAAGTCATTA -ATAAGTAACATAAAGTTGTGATTTTTCAGAATTTTTAGACAAAATATTGATTATTTGTGCTATGATATAA -CATATTAAAAAACACCGTATAGAATTGTTTATGAAGGTTTGGGAGGAAAGTTTATGGGAAGTTTTTTCAA -TAAAATAGCACGAAAAGAGGATCCGGCTATCTATCAAAATAAAGATGGTCATTTAAAGCGTACACTTCGG -GTGCGTGATTTCTTAGCTTTAGGTGTAGGAACAATTGTATCGACATCTATCTTTACGCTACCTGGCATTG -TTGCTGCAGAACATGCAGGACCGGCCGTTGCGTTATCATTCTTACTCGCTGCTATTGTTGCTGGTTTAGT -TGCATTTACTTATGCAGAAATGGCTGCCGCTATGCCATTTGCAGGTTCAGCCTATTCTTGGGTCAATGTA -TTATTTGGTGAATTCTTTGGATGGGTTGCCGGTTGGGCTTTATTAGCTGAATATTTTATCGCCGTAGCCT -TTGTTGCATCAGGATTCTCAGCGAATTTACGCGGACTTGTGAAACCAATTGGCATCGAATTACCTGCAGC -ATTATCAAATCCATTTGGTACAAATGGCGGTTTTATCGATATTATTGCTGCTATCGTTATTTTATTAACT -GCATTATTACTATCACGTGGTATGTCGGAAGCAGCACGTATGGAAAACATTTTAGTTATTTTAAAAGTAT -TAGCTATTATTTTATTTGTAATCGTAGGTTTAACAGCAATAAATGTTAGTAACTATGTGCCATTTATTCC -AGAACACAAAGTAACTGCTACAGGTGACTTTGGTGGATGGCAAGGCATATATGCTGGTGTTTCAATGATT -TTCTTAGCGTATATCGGTTTCGATTCTATCGCAGCAAACTCAGCAGAAGCACTTGACCCTCAAAAGACAA -TGCCTAGAGGTATTCTTGGTTCTTTAAGTATTGCTATCGTATTATTTATTGCTGTAGCACTTGTGTTAGT -TGGTATGTTCCATTACTCACAATACGCAAACAATGCTGAACCTGTTGGTTGGGCTTTACGTCAAAGTGGT -CATGGTGTTGTAGCAGCTATTGTTCAAGCTATCTCTGTTATCGGTATGTTTACAGCATTAATTGGTATGA -TGTTAGCAGGCTCACGTTTACTTTATTCATTTGGACGTGACGGCTTATTACCTTCATGGTTAAGCCACTT -AAACGACAAACATTTACCTAATCGTGCACTAGTTATACTTACTATTATTGGTGTTTTAATTGGTTCTATG -TTCCCATTCGCATTTTTAGCACAATTAATTTCAGCCGGTACACTTGTTGCATTTATGTTCGTTTCATTAG -CAATGTATCGTTTGAGAAAGCGTGAAGGTAAAGATTTACCAATTCCTGCGTTTAAATTACCTTTATATCC -TGTGTTACCAGCAGTTACATTTGTTTTAGTATTGCTAGTATTCTGGGGATTAGGATTCGAAGCGAAATTA -TACACTTTAATTTGGTTTATTGTTGGTATCATTCTATATTTAAGTTATGGACTTAGACATTCTAAGAAAA -ATGACGTAGCTGAATACCACCCACCAAAATAAAAATTAAAAAAATCATTTCCCATCTGATTAACATCCAG -ATGTGGAAATGATTTTTTATTTTATATTAAGATAATCGCTATTACCAACCTTGTCCAGATATGTCATATT -GATCTAAGTTTCCTGCTTCCAAAGCAGTCAGTGCATCTTCTATAGTGTTTAACGCCGTGTCTAATTGCTC -ATATGTTATTACCAATGGCGGTTGGAATCGCAACACATTTCCTGCTACAGCTATAATAACTACGCCATGC -TCAAAGCAGTAATTACAAATTTTAAGTGCCGCACTGGCATCACGTGTTTTGAGGTTTTTGTCGGAAACAA -TATCAATACCAATGCTCAGGCCTTTACCTCTAACATCGCCTACACTATTGTATTTAGATACCCATTGATC -CATTCGTTTCCTAACATATTCCCCTTTTTCCGCACTAGCCTGAAGAAGCGACTGATCTTCAATCATTTGA -ATTGTGGCTAATGCAGCTTCACAACTAACTGGATTAGCACCTGTTGTAAATAAATGTGCTGGTGCTTCTA -AACAATTCATAATCTCTTTGCGTCCAACAATTGCTGACATAGGCATACCACCTGCTAAAGATTTTCCGAA -AGTGATTAAATCAGGCGTAAAATTAAAATGCGAGACTGAACTCCATGTACCTGTTCTCCCAAAACCTTGT -TGAATATCATCGACAGCGATTAAAATACCATTTTCACGACAAATATTTTCTAACGCTTCAAAATACCCTG -GAACTGGTTCTAAAAGTCCACCATCGCCTTGTATCGTTTCAATAACAATACATGCTACTTCGTCAGCAGG -TACATATTTCGCAAACATTTCTTTTAAGGGTGCTAAATATTCTTCTACTGAATTAGCTTGTGGCTGCTCG -TACATACCACGATATTTATCTGGAAACGGAATATGATAAAAGCCATTCAATAACGGACCATAATGTTTGC -GCATATTTAAACTAATAGCTGACATAGACAACGAGCCAAAAGTTGAACCATGATATGCATTAGTGAAACT -AATGATATAAGGACGCCCTGTATATGCTCTGGCAAATTTAATGATGCCATCATTTGCGTCTGATCCAGTT -AATCCGAAGGTCACTCTTTTTTCAAAATCTCCAGGTGCAATCTCACAAAGCTTCTTAGCTAAACGTACCA -ACGGTTCATGATACATATATGCTGGTGTATAATGAATAAATTTATCAACTTGTGCCTTTATCGCTTCTGT -TACTTCTCTAGGTGCATGACCTACGTTTTGAGAACTCGCACTCGATAACAAATCGATATATGTCTTTCCC -TCAATATCAACCAATGTTGCTCCATATCCATGATCAATAACTAACGGATAATATTTAATACGTCCTGATT -TCGCAAAATAATGTTCATCCTCTTGAATTAATTGATGTGCTTTACTCATATACATTCCCCTCCCATTGAC -AGACCTTATTCACATAATTACCTTCCCTACATCGATAACCACATTCGATTTGATATCACGTGAAAATACT -GTCATGTCATTATGAATACTATCCAATATACTAATAAAATTCAGATTTGTAAATATATTCTGATAATTAA -GAATTTTATATCAATCTACTTTATTTATGCGCATAATTTTGTTCGATTAGGGAATTGTTTACTATATTCC -ATTTGACTCTGAGGTGATATGAATGCGTTTAAAGGTATTGTTCCATTTCATTGCTGCTATTTTCATATCA -TTCATGTTGCTATGGATGACCATGTTGTTTGACATAATAAGCAATCAATCACATTTAAAAGCTTTGTTAT -TGAATTTAGATTTTCTAATTCCTTCTGACAATACACCATATACTCTAGAAATAATATGTCACTTACTAAT -TGGTAGCGTCATTTATTTTGTATTTGTGTTGCTGTTTCATACTTCTAAAAGGCTTTACTATCTATGTTAT -ATCCCTTTAGTTTTCTTATTTATAGCATTGTATCCCTTTTTAGTATTTATTGCGCAACGTCCAATTTTTC -AATTTAGTGTGACAGAATTAATCGGTTGGATTATTACACATATTTTCTTCATGTCATTAATGGCGTTAGT -CATACCTAGAATAAAATAATATTTTTAATTAAACTGACAATTATTTTTCACATTTTATACACTTTTCAAG -GTTTATGACTTGAGAAATGTTCTCATTTTTATCATACTGGAGGTGTATTGAAAAGTTAAGGAGTGGAAAG -TATGAATAAAGAGCAATTAGAAAAAATGAAAAATGGAAAAGGCTTTATTGCCGCATTAGACCAAAGTGGT -GGTAGTACACCAAAAGCACTTAAAGAATATGGTGTAAACGAAGATCAATATAGCAATGAAGACGAAATGT -TCCAACTTGTTCACGATATGCGTACACGTGTGGTAACTTCACCTTCATTCTCACCAGATAAAATTTTAGG -TGCTATTCTTTTCGAACAAACAATGGATCGCGAAGTAGAAGGCAAATACACTGCAGATTACTTAGCTGAC -AAAGGTGTTGTTCCGTTCTTAAAAGTAGACAAAGGTCTTGCTGAAGAGCAAAATGGTGTTCAATTAATGA -AACCAATCGACAACTTAGATAGCTTATTAGATCGTGCAAACGAGCGTCACATTTTTGGTACAAAAATGCG -TTCTAATATTTTAGAATTAAATGAACAAGGTATCAAAGACGTTGTTGAACAACAATTTGAAGTCGCTAAA -CAAATTATTGCTAAAGGGTTAGTGCCAATTATCGAACCAGAAGTTAATATTAACGCAAAAGATAAAGCTG -AAATTGAAAAAGTATTAAAAGCTGAGCTTAAAAAAGGTTTAGACAGCTTAAATGCTGATCAATTAGTTAT -GTTAAAATTAACAATTCCTACTGAAGCTAACTTATACAAAGACTTAGCTGAGCATCCAAACGTTGTTCGT -ATCGTTGTATTATCAGGTGGTTACAGCAGAGAAAAAGCTAATGAATTACTTAAAGATAACGCTGAACTTA -TCGCAAGCTTCTCACGCGCATTAGCTAGTGATTTAAGAGCTGGACAATCTAAAGAAGAATTCGATAAAGC -ATTAGGTGACGCTGTAGAATCAATCTACGACGCATCTGTAAACAAAAACTAATTTATACATTAAACGTAT -TTTTTGATATAAACTACTAAAAAGGACTCATACATGTGCTTTAAAGGCATTGTGTATGAGTCTTTTTGAT -TAAAGTTGATTTTGCCGTATGTATTAGATTACGTAAAAAAATCGGACAGCTGAAAAATCTTTAAGATTTC -TCAGTTGTCCGATTTTAAATATAACTATTAGAATTTAGTTTTCGTAGTAACCTAATTCTAAGTCTTTTGA -AGTTTGTTTACGGATTTTTCTCATTAATTTTTCGTCTTCAATTAATGATTCACCGTATGATGGAATCATT -TTCTTGATTTTAGGTGCCCATTCAGTTTTGTATTCAGGGAAGTTACGTTCTAATACTTCTAACGCAACTG -AAACTGAAGTTGAAGCCCCTGGTGATTCACCTAATAATGCGATTACAGTGTGGTCTTGTGAGTTAACCAC -TTCTGTACCGAATTGGATGAATCCTTTACCGTGTTCAGGTGTATCTTTGATAACTTGTACACGTTTACCA -GCAGTGTATAATTGCCAATCTTCATTACGTGCTTCTGGATAGAAAGTACGTAAGTGGTTCATACAACCTT -CTTTTGTCATAATCACTTGATCAAATGAGTATTTAATTAAAGGTAAGTTTTTAACAGCTGCTGCTAATAA -AGTTGTAATGTTGTATGTTTTAACTGATTTGAATAAATCTAAGTTAGAACCATTTTTCAAGAATTTAGGT -CCAACATTAGCAAATGGTCCAAATAATAATGTTCTTTGACCATCAATGTAACGCGTATCTAAATGAGGTA -CAGTCATTGGTGGTGTACCAGGTGGCTCTTTACCATAAACTTTGGCATCGTGTTGTTCAATAACTTGTGG -GTTTGTACAAGCTAAGAATTGACCACTGATAGGGAATCCACCTAAATGTTTACTTTCAGGGATACCTGTT -TTTTGTAATAATGGAATTGCTCCACCGCCAGCACCGATGAATACATAGTCAGTTACTTGTTTGAATTTCT -CACCAGTTAGGCGATTTTTAACAGTAACTTCCCATTGACCATTTGATAATTGTTCAAAATCAACAACCTC -ATGGTTAAATTGCACAGTAGCATTTGGATGTGCTTCAATGCTTTTAGCCATTTTACGTGTTAATTCACCG -AAGTTTACATCTGTACCTTCGTCAATTTTACTTGCCGCCATGATACCAGGGTTATCTTCACGGCCTTTCA -TCATCAATGGAATCCATTTTTTCATTACTTCGATGTCTTCAGTATATTCGATATTATCGAACATAGGGAA -AGCTTTCATCGCTTCGTAACGATCTTTTAAGAATTTAACATTGTTTTTACCTCTAACATAACTGATGTGT -GGTAATGGATTGATAAATTCTCTTGGGTTCTCGATGCTACCGCTTTTCACTAAGTGACCCCAGAATTGTT -TTGAAATCTCAAACTCTTCGTTAATCACTTTCGCTTTTTCGATGTCGATAGAACCATCAGGTTGTAAAAC -TGTGTAGTTCAACTCACATAATGCTGCATGACCCGTACCAGCATTATTTCTTTCGTTTGAACTTTCGATT -GCAGGACGATCCAAGCGTTCGTAAACGTGGATATTCCAGTCTGGCTCAATTTCTTTTAACATTGAACCAA -ATGTTGTGCTAAGTACACCGGCTCCAATTAAAACGATGTCTTTACTATTAGACTTAGCCATTGGTTTCAC -CTCTCCAAAAATTGTAAATGTGTATCATCAATATGAAAGTTACATAAAACTGACATATTTCTTTAAAATA -TCAACGCCATAGATAACTTCCTGTTTTAATTGATACGCTGTAACAAAATACTATAGTTAGTGCTTACATG -TATATGTTAAAGCAAGCAGTGGTAAATGTAAATTATAATTATTCATTAACTTTGCAATATATTAAATCTT -TTATTCATAGAAGATAAATATCAAATCAATCATAATTATTTGACAACAAATAGCTAACGATTGTTTTAAT -CTACATTTGGCTTATAGCATTTTAAACCTATACTCTATTTTGATACAATATAAGTGTAAAATCAATCATA -AAAAGGAGATTCAATGCCTATGCATCCAAGAAAATCACTTCAATTACCTTTAATATTGTAAATTATTTTG -AATCTTGCACTTATAGGCATTGTGATTATCGTTTTAACACATACTGAGTTTCAACTTAATGCCGGTGATA -GTAATGTTTTTTTATTAAACTGGGATATTCGAGGTTTAACATCTTATATTTTCTCATTCTTAATACTGGT -TGCGCTTGTTTCTAAACTAATTTTAATATTTATAACTAGACGACAAAGAACATCATAAATAAACAAGCAG -TCCAGTGCGTATCATCATACCTTACGCATTGGACTGCTTTGCTATGTTTATTGATTGCTATCTTTTTGTT -GTTGCCATTTTTCTATTTCAGCATCTCGTAGTTCAACACGACGAATTTTACCTGAGTTTGTTTTTGGTAA -GTCGTCAACGAATTCAATCTCTCTTGGATATTTATATGGTGCAACTTCATTTTTAACAAATTGTTGTAGT -TCTTTAACTAGCGTATCATCACCCGCAGTATGGTCCTGTAAAATAACGAATGCTTTAACAATATTTCCTC -GTATATCATGAGGTTTTGCTACTACAGCACATTCTTTAACGGCTGGATGATTCGTTAACGCATCTTCAAC -TTCAAAAGGCCCAATCGTATAGCCTGAACTAATAATAATGTCATCTCGACGTCCTTCAAACCAGAAATAA -CCATCATCATCTACATGAGCTAAGTCACCAGTGATGTAGTATTTACCTGTTTGCGCTTTCGCCGTACGTT -CTGGCTCTTTATAATATCCTTTGAAAAGTGCTGGCAAATCAAGTGGTACTGCAATATTCCCTTTCGTATT -AGCAGGTACGCTATTCCCCTCATCATCTACTACAGTGACCGAACTATCCGGAATGCCTTTACCCATTGAT -CCAATCCTTTGTGGTGTATCTTTTAAAAAGCCTATAAGCAAGGTACTTTCAGTCTGGCCATATCCATCTC -TTACAGTTAAATTAAAGTATTTCTTGAATTGTTCAACTACTTCTCGATTTAGTGGCTCACCTGCAGAAAC -GGCACTATGTAAATGCGTTAAGTCATAATCATTTAAGTTCTGTAATTTAGCCATCATACGATATTCTGTC -GGTGTACAACATAAAACATTAATTTGATATTTTTGAAGCAATTCTAAGTATGTCTCAGGGCTGAATCTTC -CATTAAATACAAAAGCAGTTGCACCTGAACCTAATACAGATAAGAAAGGACTCCATACCCATTTTTGCCA -ACCTGGTGCTGCTGTTGCCCAAACTAAGTCATCTTCATTAATACATAACCAATGTTTTGGTGCCATTTGT -AAATGTGCAAATCCCCATCCATGACAATGTGTAACGGCTTTAGGATTGCCAGTTGTACCAGATGTATATG -ACAGAATCGCCATATCATCACGCGTCGTATCTGCCATTTCTAGTTTGTTACTTGCGTTTTCTTTTTCAGC -TTCAAGTGAAATCCATCCATCTTTTTGACCGGCAATAACAAATTTAGTTAACGCATCATATTCTTTAATT -TTTTCAAATTCAACTGTGAATGGCTCTAGTGCAATAACAGCATTTATTTCACCGTGTGTGATACGGTATT -GTAAATCTTTAGTTCTTAGCATTTCAGAACATGGAATGATTGCAACACCTAATTTTAAAGCAGCAATATA -TAATTCATATGTCGCAATAGATCGTGGCATCATAATGAGTACTTTATCGCCTTTAGATAAACCATGCGAT -GCTAAAACATTACCTACTTTATTAGACTGTTCAATGAGCTGTTGGTAAGTGACTGATATATCTTCGCCTT -CAGTATTATGATATAAAATTGCCTTTTTATCTGGTATGTGGCTATATTTTTCGATTTCCGAAATAATGTT -ATATTTTTCAGGCGCGAATAGAGCTGACTTTTGCATAACTAACTTCCTTTCATACATCCACTTTTCCTGT -GATGAACATTGTAATTTTATAAATGAATTATATATATCATACGCCTATCTTTACAGAATTTTCAATTAAA -TAGGGTTAAATACCAAAGTCCTCGACACTACGCTTTGACATGACATAGCATTCAAGGACTTTCAAATGAT -TGAGGGTTGATATCTCGGGCTAGAGCATATCAGCTAATTCAATACGAATATTGTATGATAATTCACGATT -AATTATTTTTACATCTGCACCTTTCGAAGTGCCACGATGCTTGTGTGTATGCTTGTACTCAGCTGAATTT -TGCCAATGATAAAATGCTTGCCTATTTTCCCACAGCGTAATAATGATATAGTGTCTACCAGCTGTTCTAG -GTCTTAAAAACCTTAATGCTTTAAACCCATCAACGTTTTGCAAATGCTTATTACGTTGCAAAAATTTTTG -CTCGAATGTTTCTTCTTGTCCTTCGTTAATATATAAATGATTTAACACACATAATGTATCATTTGATAAA -TCATTTATCGCTTCTAGCACATCGTAATATGCAGTGTCATTATTTTTTTGTATTGTGAGACAATCATCCA -GTTCTTCTATTACATAACTTCTATATTCATCATAAATGTTCATAATAAATGCCTTCATTTCATTTATATT -TTTGGTCATATTACTTTATATCTATTACTAATTCATTCCCGTATTTATTAATTACAATCATAGTTTGACT -TCTTTTTAAAAGATAAGGCTTTGTAAAAAGTATTAATATTCCATACAAATGGGGACAGGCGTCGCCCATT -ATTTTTGTGTCTTCAATTCCATGATCATTATTTAACATTAGTCATGAAAATAGCCGACAACTTCATCTAT -GAAATTACCGGCCTTGTATTTTAGCTAACTTTATCTCTAATTTTACGATTTTAATTGATCATACAGAGAA -AGTGATCTTTTTACAATTTCTAAAAACTCATGATCTATATTGGACATTTGATGAAAATAAGACAAAATGT -TTTCTGTTAGCTTCTCTTGTTTTGGGAATGAATCATCTTCTTTAATCCAAATCGCTAATTCGCCTAATGG -TGTTTTATCATCTTTAAATGTTTGTATATATTCGTAAAAGCTCATAGTATTCCTTCTCTCAATTTACTTA -TATAAATCCTACCACGAAAGCTTTCAAGAAAACACAATTAAATGTCTATTTAGTGAACTTTTTAAGGTTG -TACACTCTTTTAATGTCTGTCAATTAGGTCAATTAATCATCACAATGTACAATTAACTCTATTTTCAGTT -CATATTCTCACACACCGTTTTTGAACAACACATTAACTTCTCATTTAGATAAAACGCAAAAAAGCCTGGC -ACCAATACAATAGATGCCAGACTAAAAGTCTACTATATCAATTTATTTAGCGTATGGTTTTACTTCGATT -GCACCTTCATTTTCATCATGAACACCATGCTTATAATAATCAATATATTGTGGCTCTAAAGGCTTTCTGC -CACGTATAATGTCTGCTGCTTTTTCAGCTAACATTAAAACAGGTGCGTGTATATTGCCATTTGTCGTACG -TGGCATAGCTGATGCATCAACTACACGTAAATTTTCCATACCATGAACTTTCATTGTTAACGGGTCAACT -ACTGCCATTGGATCTGAAGCAGGACCCATTTTAGCACTACAAGATGGGTGTAATGCTGTTTCACCATCTC -TACGAACCCAATCAAGAATTTCTTCGTCTGTTTGCACTTCTGGTCCTGGTGAAATTTCTCCACCATTGAA -TGGATCCATTGCTTTTTGAGATAAGATATTTCTTGCTACACGAATTGCTTCTACCCATTCTTTTTTATCT -TCTTCTGTTGATAAATAATTAAAGCGGATACTTGGTTTTTCGAATGGATCTTTAGATTTGATTTTCAAGC -TGCCACGAGAGTTTGAATACATTGGTCCTACGTGAACTTGATAGCCATGTGCGACCGCTGCCTTTTGACC -ATCATATCTTACAGCTATTGGTAAGAAATGGAACATTAAGTTAGGATAATCAACTTCGTTATTTGAACGT -ACAAATCCGCCACCTTCAAAATGGTTAGATGCTGCTGCACCAGTACGTGTGAAAATCCATTGTAAACCAA -TAAATGGCATGCGCTTGATATCTAAGCTTGGCTGTAATGATACAGGTTCCTTACACTTATGTTGAATGTA -TACCTCTAAGTGATCTTCAAAGTTTTCACCCACACCAGGCAAATGAACACGTGGCTCAATGCCTTTTGAT -TTTAGGAATTCTGAATCGCCGATACCAGACAGTTGTAGTAATTGTGGCGTATTGAATGCCCCACCTGACA -AGATGACTTCATTAGCATCGATGGTATGTAGTTTGCCATTTTTCTTATACGTAACACCAGTTGCTCTTCT -ACCTTCATAATGAATTTCAGTAACAAAGGCACGTGTTTCAACGGTTAAGTTTTTACGCTTCATAGCTGGA -TGTAAATATGCTCTTGAAGCTGACATTCGGCGACCACGATGTACTTGACTATCGAACGGTCCAAAACCTT -CTTGTCTAAATCCATTCACATCAGGTGTTTTATGATAGCCTGCTTCAACACCTGCATCAAAGAATGACTG -GAATAAAGGATTCGTTGCTGGCCCTCGTTTTAACTTAATTGGTCCATCATGGCCTCTAAATTTATCATAA -GGCGCTGCACCGTATGTTTTTTCTAATTTTTTAAAATACGGTAAACAGTGCGCAAAATCCCAAGTTTCCA -TACCTTCTGGTTCTGCCCAGCCTTCATAGTCCATTGGATTACCGCGTTGATAAATCATGCCATTAATCGA -ACTTGATCCACCTAAAACTTTACCTCGGGCATGTGCTACTTTACGACCGCCCATATGTGGTTCTTCATCT -GTTGAATAAATCCAATCGTAAAATTTATTGCCTGAAGGGAACATTAACGCAGCAGGCATTTGGATAAATA -AATCCCAAAAATAATCACTGCGACCCGCTTCTAATACTAAGACTTCTTTATCTTTATCTTCACTCAGACG -ATTACCTAGTACAGAACCTGCACTGCCTCCTCCAATGATGACATAATCATATGATTTATTTTTGTTACTC -ATCGTTATGACCTCCAAAGTTTGTTGTATTTCAAAGTGAGTATTGCATGAAATATTTGTTAGTGGCTGAT -TGGTTATCGTTGAATTGCTAAACTTAGCTAACCAAAACACTCGATTTTCCTTTTATGATTGTTACTAACA -GTCATGAAATAATCTATGATTCATTTTGCGTTTAGTCCAAATTATCAATCAACATTTCGCCACTTATACA -AAACAAAGTGAGTGTCTTGTGTTCTTACAATGGCACTCACCTTATCTAATTTTTATTTGCTAAACCAATT -CACTAATTGTGGATTTGTATTTGTTAAAATGTGTTTTGAAACAAGGTACTCTTCTAAGCCTTCTTTGCCT -AATTCTCTACCGATACCTGATTGTTTGTATCCACCCCATGGCGCTTGTGCAAAATATGGGTGGAAATCAT -TAATCCACACCGTTCCAAGTTTCAACTTGTTAGCAACGCGTTGTGCTTTTCCAATATCTTTAGAAAATAC -AGCACCTGCTAAACCATATATAGAATCATTCGCTAATTGAATCGCTTCTTGTTCAGTTTCAAAGCCTTCT -ACAGTAACGACAGGTCCGAAAACCTCTTCTTGTACAATACGCATTGACGTATCACAATTTGTAATGACTG -TTGGCTCGAAGAATAGACCATCTTTTAAATCGTCTCTATCTGGGCGTTTACCACCAACAGCAATTGTTGC -GCCTTCTGCTTTAGCTACATCCATATAAGATTCGATTTTATTACGATGTTCTGTTGAAATCACTGGTCCC -ATTTCAGTATCAGCATCAAAACCATTACCTAATTTGATTTTTTTCACGCGATCAATAAGTGCTTGCTCAA -ATTTGTCTTTAATACTGTTTTGTACTAATATTCTTGATCCTGCTGAACAAACTTGACCTGCATGGAAATA -TCCACCATTTAACGCTTGGTCTACCGCCAATTCAAAATCAGCATCATCAAAGATAATGTTTGGATTTTTA -CCGCCAAGTTCCAAGGCAATATTCGTAACATTATTAGCAGCATTTTTCATAATATGCTTACCAGTCTCAA -TGCCACCTGTAAATGATACTAGGTCAATCTCTTTATGACCTGACATTACGTCACCAACTTCAGAACCTGC -ACCAAGAATAAGATTAATTGTTCCTTTAGGGAAACCAACTTCTTCCATTAATTCAAAAACACGTATTGTT -GTTAATGGTGTAATTTCACTTGGTTTCATAACTAGTGAACAACCCGTAGCAAGCGCTGGCGCAATTTTCC -ATGATGCTTGTAATAACGGATAATTCCAAGGTGTAATTTGTGTAACTACACCTACTGGTTCTTTAACAAT -TTTGCTTTCTGTATCTGGTATTGGTGAATCAATCATTTCGCCACCATCTTTATCTGCTAATCCAGCAAAA -TACATAAACACATTATGAATATCATCCATATCTGCATATGATTCTTCTAACGTTTTTCCAGTATCTAATG -TTTCTAATCGTGCTAACGCTTCGCGATGTTCTTTGATCTTGTCCGCGATGGCACGTACTTTTTTACCTCT -TGTTTCAGCAGTTTCTTGCGACCATTCACCAGACTCAAACGCACGTCTTGCAGCTAAGATTGCACGTTCT -GCATCCTCTTTTGTCCCTTCAGAAACCGTAAATATCACTTCTTGATTGTAAGGATTGATAATATCTCTTG -TATTTTTATTCGCGCTTTCAACCCACTCACCATCAATATATTGACGCTGAGATAAATGTTTTAAAAGTTC -CATTCAACAACCTCCGTTAAGTTTGTTAAATTTTTATTTAACGAATTTTACAAACTTATGTTAGCATAGA -AATGAAAAATGTGTCAATTTACAAAACAACTCAAGAATTAAGTTTTGTAAGTTCGTTAGATTTTTATTTA -ACGAAACATTTAACTTTAATGCTTTAAATATTTTTAATGTCTTTTTTTAGAAAAGGTTTTATAATGTATT -AGTATTTATTTTAACGTGACCAAAATGATGTACGGAGGTGCAATGATGACTCGTTCTCAGAACAAACAGC -AACAATTAGAACAAGCAAAAGATATTGTAATTAATTCAATTGGACAGACAATGGATTTGTATGGCACTAA -TAGAAGTGTAGGAAACTTATATGGCACTATGGTGTTTGAAGGCAGTATGACGCTTGATGAAATGCGTCAT -CAATTGCAAATGAGCAAACCAAGTATGAGTGCTGGCGTTAAGAAATTGCAGGAATTTGATATTGTTAAAC -AACAATTTACGAGAGGAAGCCGCAAACAACATTTTATCGCCGAGAAAGACTTTTTCATCTTTTTCCGAAA -CTTTTTCACTAAAAAATTTCAGCGTGAAATTGATATCAATGTCGAAGCAGTAAAAGATGCTCAAGCTATT -ATCAATCCATTACTTGAAAGCAGTGATTTAACTGAAGCTGAAACACAAGAGGCACACAAAATTAAAGCTC -AGCTTGATCATACACATGTTTATTACGAATGGTTAGAACAGTTAACCGAAGCGATTGAAAGCGGTGAAAT -TTTTAAATATTTCCCAATTCCAGAACAGTCTTCTGATTCTAAAAATTAAAATTGACTCAAACAACGACAA -TGATGATTATGCATGATGAAAACAATGCAATAGGTCCACGAAATAAACGGTAATTTCTATCTCAATAAAT -AGAAATTACCGTTTTTGCTTAATATCACGATTAATCATATACTTATAAAATTCAAAATCTTATGCATCAT -TAATTGAATTATAAATTATCGTCTTGTTCTTCTTCTGATACTTGAACGATTCGCAATGAGCGACGTTCAA -CTTCTTTTAATTTTTCAGCCCGCGTTTCAAGTTTAATTCTATCGCGTCCTAAAATGATTAAAAATGATAT -CATCATGAAAATAAAAATAACAATTAATGGCACACTTGCCAGTATTGATGCAGTTTTCAATACTTCTAAT -GCACGTTCACCACCAACTAGCATCAATGAAAATGGCAATAAGCACAATGCAAACGCCCAGAATAAACGAT -TGGCACGTAATGGTTCGCCTACCACTTTTTTCTGAGATGCTGCCGCTAAAATATATGAACCCGAATCAAA -TGTTGTTGCTAAGAATAAGAAAGCAGATACTAAGAATAGTACAATCATCAATGATGGGAATGGTAAATGA -TGCACCACTTCAATAATGGTTGCCTCTGTACCATGTGTATTTAAATATTGTGTTACATTAAACTGTCCAG -AAATTTGTAAATACACAGCATAGTTACCAAAAATACCAAAGAATAATACGCATCCAAGCGTTCCATAAAT -AATTGTTCCTAGCACGACTTCTTTAAGGCGTCGACCTTTTGAAATTCTAGCGATAAATAAACCGATAAAT -GGCGCATATACTAACCACCATGACCAGTAGAATATTGTCCAGTCTTGTGGGAAATTCGTTTCTTTTCGAC -CTTTAATACCACCGAATGGTTCTAACCATGTTGCCATATGGAAGAAATCTCTCAACATATTTCCGAACCC -TGTCACTGTCGTTTCCATAATAAAAACAGTCGGTCCAATAATAAATATAAAGGCTAAAAGTACAAATGAT -AGCCAAACGTTGATATCACTTAACTTTTGAATACCTTTTTTCAATCCTGTATATGAACTAATGGCAAATA -TAACCGTGATTGTTAATAAAATGGCCGAACGTAAAATCATATTTTTACCATCTAAACCAGTTAATCTTTC -TATGCCTGCAGAAATTAATGGCACACCTAACGCTAGTGATGTTGCCGCACCACCTAGCAATCCAAAGATA -AATAAGATATCTACAACTTTACCTACAAATTTATCTGTTTGACCTTTTAAAATCGGGCGACAAGCTTGAC -TAATTTTATACACCGGTTGTTTTTTAACAAACACTAAATAACCAATTGGTAATGCTGGTAAAACGTAAAT -AGCCCAAGCAATTGGTCCCCAGTGGAACATACCATATTGCGTCGCATATTGGAGTGCTTCATCACTCATA -CTTTTCGCGCCATTTGGTGGAACTTGATAGTAAAAAGCCCATTCAATAACGCCCCAGTATAAAATATCAG -AGCCTATGCCTGCACAAAACAGCATTGCCGCCCATGTAAATGTATTAAATTCTGGTTTATCACTTGCTTT -ACCAAGTGTGACATTACCATATTTACCAAATGCGATATACATTACAAAGCAAAAAATCGCCAGCCCCATA -AATAAATATATCGAACCAATTGAATCAGAAATGGCACTATTAATACCAGTGATGATATCTTCACTTGCTT -TTGGAAAAGCCATCATAGGTATAACTGCAAAAAGAAGTACAGCTACTGTCCCTATAAAGGTCGTCCAGTC -CATAACTTTCTCTTTTTTCAATTGTGCTCCCCCTAATTATTAATTTTATGAATCCTGTTTCGATTTATCT -CAAAATGTAATAATTATATTGATTCACAAAATTGACAATAACTAATATTTAATAATAATGCAAATTTCAT -ACAATTTGAAAGTTGGCAATTATTGAATATTTATATAATTTTTCTCGTAATAAACAAAACTTTAATAGCG -CTAAAACAACTGTGTTAAGTTATGATTTAACGAATTTAACAAATTTTACTAGGATGGCATTTAAGAATAT -TTATACGTTATTAACGAATATTTATTTATTGTAAAACGCTACCAAAAAGTTAGACTTCCTTCCCACTAAA -GTACCACTTTTCTCTTTCAACTTTTTTTAAAATGTATATGCAACTTTTAGTATTAGTATCAAAATGATTG -TTAGGTCATATTCTATCAATATGTTTTTCTAAAGAATTGCTTTTATCAACTTTCAATTATGTGCCTAACC -TAAAAAGAAGCCAAGGCAACGGATGTTACCTTGACTTCTAATACATATTCAACTAACAATATATTCAATC -ATACGCGCATGCGAGAGTGATTGTTGTACATCTATAATGCGTTGATTTAAAGAACCTTTATATGGTAAAT -CAGGTTTGAATAAGTGTTGTATAAATAGCCCATCTACTAAAACGTCAATGTATGATAATAACTCTCGACG -TTCTGTACAATCATTTGCTAAATATTCATATAAAAATCCAGTCCATACCCAAATTGTCTTTGTATTTCCA -AAACGTGCTCGAAATGCTTTGACAAGATTTAATGTAATATCCAAATTACAAAATGGTTCGCCACCTAATA -GACTTAGCCCAGATATATAATCATGATCGCAATCATCTAATATTTCTGCTAATATTTTATCAGTGTATTT -CTCGCCATATCTGAACTTTTGTGAGGCTTTGTTGTAACATCCAACACAATTAAATGGACATCCTGATACA -TAAACACTGCATCTTACTCCTTCACCGTCAACAAAGCTATTTGATTCTATTTTAGCAATATAACCTTGCC -CTTGTTTAATGTCTAAAAGTGTCATTCTTTAGGCGCTTTCATATGTTTTACTCGTGCGCAAATTTCTTTA -TGACGGCCTTTAATTACTGGACGTTGAACTGGATTGCCTAAGTAACCACATGTTCGTTTAACGACATCAA -CTGTTTTAGGATTATCATTGCCACAGTTCGGGCATTTAAATCCTTTTTCAGTAGCTTCAAAATCTCCATC -GTAATCACATTCATAACAATGATCAATCGGAATATTTGTACCTAAGTAACCAACTTTGTCATAAGAGTAG -TCCCATACTGCTTCTAGTGCTTTCAAATTGTGTTGCAGTTTCGGATACTCACAATAGTGAATGAAACCAC -CACTCGTATAATAAGGATAATCTTTTTCAAAATCTAACTTTTCAAAAGGTGTAACATCTTTACGTACATC -ATAATGGAAAGAGTTTTGGTAATATCCTTTATCTGTAATGTCTTTAATATCTCCAAATCTCTCTTGGTCT -AAACGACAAAAACGATCCGTTAGCGATTCACTCGGCGTACTGTAAATACTGAACCAAATGTCATATAATT -CTGTCCATTTCGTTTGATAACGTTTCATTTCTTTAAGAATTTCAAGCGTAAATGCTTTTGCTTCTTGAGA -TGTTTCCCAGTTTGGACCATAGAAAACAGTAGCTGTTTCATACAACCCTATATAGCCCATTGAAATCGTT -GCACGTTTATTTTTAAATAACTCAGCAACATCATCTGTTTCTTTTAATTTATAGTTAAAAGCGCCACTTT -TATATAAAATTGGTGCGTTATTCGGTACAGCATCTTTCAAACGATTTATACGATAAAGTAATGCATCATG -TAACACATCGATACGTTCATAAAAGATTTCCCAGAATTTCGTCATATTACCGGCAGATTCTAATGCCATT -CTAGGTAAATTAAGTGTAACAACACCAAGATTACAACGACCATTATTTTCAAAATGACCTTCCGCATCTT -TCCAACTTGGTAAAAATGAACGACAACCCATTGGCGCTTTGAAATCACCTAATATTTCTACGAGTTTGTC -ATAATTTAAAATATCTGGATACATACGTTTCGTTGAACACTTTAATGCTAATTGTTTAATGTCATAGTTC -GGATCTTGCGGACTAAAGTTGGTTCCTTTTTTAATTGAAAATACAAGTTTCGGGAAAATCGCTGTCGTGC -GGTCTTTTCCTAAGCCTTTGATACGAGTATTTAAGATAGCTTGTTGAATTTTGCGACTTAAATGATCTGT -ACCTAAGCCGAATCCTAATGTTACAAAAGGTGTCTGTCCATTAGATGTATATAAGGTATTAATTTCATAT -TCTAAACTTTCAATCGCATCATTGATGTCTTTAGTGACTTGTTGATCAACATAACGATCAATTTCAGATT -CTTTGACAAATTGCTTTGCGATATTCCTATGTTGTTCTTCATTATGTCGTGCATATGTACTAAGTAATTC -GTCAACGCGGTCAACCGTACAGCCACCATATTGACTGCTAGAAACATTGGCTATAATTTGTACAAGCTGC -GCTGATGCAGTTTGTATTGATTTTGGTGAAGTTACATTCGCGTTGCCTATTTCAAATCCATTATGTAGCA -TATTTTTAGCATCTATTAAACAACAGTTTGTTAATGGTTGGAATGGATGATAATCTAAGTCGTGAAAATG -TATGTCCCCTCTTTGATGTGCATCTGCAACATGCTTTGGTAATAAATGATTTAATGCGTAAGATTTAGAA -ACGATACCTGCTGTTAAATCTCTCATTGTTGAAAATGTATCACTATCTTTGTTGGCATTTTCGTTAACAA -TAGCAGGATCTTTAGAAATCAAACCCGTTAATGCTTCTTCGATTTGATTCATTTTACCCCTTCTTCCTAT -ATATTGTGTCTACTCATTACGTTATACCACTATATATAGTATTTTCAAATTTTTATTAGTCTGTTAACTA -AAACGTCACAAAGTTATTAACATTTAGTGAAATTCATATTTCTACACAATTATTTCATTAATTTTTAAAA -TTGTTCTCGAATCGTTCCGTCATTTCGACATCTTTATGCAACTATTATTTCATTTTGTAACGGGAGCATA -GTTTCTATTTTTTCATACTTAAATCGTCACAATTCCCATCAACATTGCAATTACTAACATAACGATGGCG -AATCCCCAAATCCAAAAGAATGCATACTTAATATACGTGCCCATGTTTGCCTCTGCTAAACCAATTGCCA -ACCATAAGGCTGGTGAAAACGGACTGACAAATGTACCTATAATATTCCCTATGACCATTGAATAAGCAGT -TGATACAGATGGTACACCAAATTGCCCTGCTGTTTGTTCGACGATCGGTAACACAGCAAAATAATAAGCG -TCTGTGCTAGTTAATAAATCTAATGGTACGCCAAGTAAACCTACAATAATATGCAAGTATGGTCCTACTT -CTGCAGGAATCACTTTGATTAAATTCGTCGCAATCGCTTTAAGCATACCGGTTTCATTTAGTACACCTAA -AAACATACCTGCTGCAATAATCACTGCAGCCATCATTAATGCATTCGGCGCATGCGCTCTTAATCGCTCC -ATTTGTTCATCCACTGATTTAAAATTAATAACAAGCGCCAATGAGACACCTATCATGAATGCAAATTCAG -GTGGCGCAATATTTATTAACATCGCTAGAATAACAGCTAAAGTTAAAGCTGTATTCACCCATTTTATCCA -TGGTTTTGTTCGTGCACGTCCTTTTACAGGAAACCTTACATCTTGATCTCGTTCATATACTTCAACTAAT -TTATGTACATCTATATCTTGTGTTTGCGGTAATTCATTTCTCTCTATTGCTTTTTTAATACGCTTTTGTT -CTTTAAATCCAAGATAAACCGCAAATAACATAACAAGAATGAAACCTATTATTTGAATAGGTATTAATCC -AAACCATAATTCATTGACACTTTTAGCTTTTAAAACAGCAGCTACCCGCGCCATCGGACCTCCCCAAGGT -ACCATGTTCATAATCGCCGCGCTTAATGCTAATAGTAGAATCAATAAATATTTATTCATATTTAACGCTT -TATATAAAGGTAATAAGGCAGGAATAGAAAGCAAAAATGTTACCGCACCGGCACCATCTAATTGGGCTAT -TGTGCCAATTAAAGCTGTCATTGCACAGACAATAATGACATTGCCTCGTGTCATTAATATTAAGCGTTTG -ACAAGCGGCTTGAATAAACCACTATCGTTCATGATGCCAAAGAAAATAATGGCAAAGATAAACATAATAA -CAACGTTGATGACTTGATCTAACCCTTTAGCAAAAAATCCAACCAAATCTGTCACACTATATCCTAAAAT -CATTGCCCCTAAGCAAGGTATGATTGTCATACCTACAACTGGATTTATCTTTTTGGCAATGAGTAAACCT -ACAATTGAAATAATAATAATGAGCCCCATTACTGTTAACCACATATTATCACTATTCATATTATTTTCTC -CCTCCACTTTTAATACAATTTACATAATCCCCCTCTTTAACTTAAATATAATAATTAATATAATTTTTTA -TATTTAAGTTAACTCATTTTATCAAAAATTTCTTTTTTGTGTAACTATCAATAGTGAAGTTTGATTTTCC -TACTTGATAACATGGCATGACTAATCCTTGTATATCCTGTCCTGTATTTCATTTTGATTTATCATTTTTA -TTATTGCTTTCTATTGCACAAAAAATCTGGCTAAAGGTCGCTATGATAGTCACGACTTCAACCAGATTTC -AATTTATCCATCTATTTTATTAAGTTTGTTCTACGTATTTTTTCTCTATTGTAATATTCATATTTAAAAC -GCATATCATTATCGCTTAAATCCTTCATTATTAGACTATTCACAAAGCCACCCATGTCTTAATTTCAATG -ATTAAGCGTTAAAGTTAAAATAAGAAGACTTACCTTAGACGGTTAGACGGCCCGCTATTATTGTCTTACA -TCCAACCACGCTAAAAATTGAGCTTGTTTGTCATGATTTAAATATTCTTGTGACACAATTTGTGACAGTA -ACTGTTGCTTTTCGTTATATGTTATATCTAGTAACTTTATTTTCTGTCGGCAAGTATATAAAAAGTCGAT -ATACGAACTATATGATGGTGGATATAACGCCTCAAGCTCTGCCATAATCGATTTTGTCAACTTAGGACTT -GCGCCATCTGTAGATACACTAATAGTTAGCTTGTCTCGGTGTAGTGCACTTGGAAATACAACATTGCCAT -TTGATGCATCTCCAACATTATTAAAAAGGGCATGCTCAGGTAAGGCTTGTTTTACCGCTTCATTGACACG -TGGCTCATTGGTTGCTGCAATAACTAGATACGCGTCTACAATATCGCTTGGTTCAAACTCTTTTCCCTTC -CATATGACGACACCTTTATCTACCATATTTTGAAGTTTTTCAGTGATTGTCGGACTGATGACCGTCATAT -GTTCAACGTATTGACTTAATGTTTGTGCCCGACGACTTGCAACTGTACCCCCACCTACTATAACCACGTT -CTTATTTGTTAAATCTATCATCAATGGCATACTCATATTGCGCTACATCCTTTATATCTTTTTACGTCAT -TTCACCTTAAAACATTTAACACATTGAAGCATTAATAAACATCGCGTTGATAACGTTGTCGCTGTTTCAT -TTGACGCAATATCGTCTCAGCTTCTTCTTGAGAAATATGACGTTCTTTTACCAATACATATTTAATGGCT -TGATGGACATCTTTCGCCATACATTTTTCATCGCCACAAATATAGATTGCTGCGCCCTGCTCAATCCATT -CATTGAAACGTTCACTTTCTTCCATTATACGATGCTGTACATATTCTTTGTGTTCTTGGTCTCTTGAAAA -TGCTAAATCTACGCGTGTTAAGTTTCCATTTTCAAGCCATTCTTCTATTTCTTCTTCATATAAAAAGTCA -GAACTACGGTGTTGATCACCAAAGAACAACCATGTTTTTCCAGTCATACCAAGTTCTTCACGTTCTTGTA -AATATGCTCTAAAAGGAGCAATACCAGTACCTGGACCAATCATAATTACCGGTATATCTTGCTTCATCGG -AAATTTGAAGTTCGGATTTTTCTTCAAATAAATTGGTACTATATCGCCTGGTTTAATACGCTCAGCAAAA -TGAACCGAGCATACACCTTTTCTCTCACGTCCATGTGCTTGATAACGAACCGTACCAACGGTAATATGCA -CTTCATCTGGCGTTGCCATAAAACTACTAGAAATCGAATACTCTCTTGGTGGTAATTTTCTAAGGATTTG -ATACATATTCTCAGGTTGTAATTCTATAGTTGGAAAATCTGTTATTAAATCTATAAAGTCCCGATTTATA -ACATATTCATGCGCCCATGACTCATCTTGAATACGTTCAGATAATTCTTCATTGTCAAAATAGATATCTG -CATTTTTCAATAATGGCAATGTTAATTTAGTAAATTCAAAATGTGATGTTAGTGCTTCAGCAATAGGAAC -TGTATCACCATGATCATTAATTGGCACCGGAGATTGCGGATCCCAACCTAACATGGATATTAGTTTTTCA -ACCAATTCAGGGTCGTTTTGCGGTAATGCTACTATACAATCTCCTGGTTCATATGATTCACTAAAATCAT -CAAGTAAAAATTCTATATGTCGTGTTTCTTTATTTGAATCGGTACCATTTAAATTGATATTCGCTAATAC -TTCTGCTTGGTATGGATTTGATTTAGAATATTTCTTTTCTTTGGCAGACTTAATTGATTCACTTATCACC -GATTCACTTTGAATACCTTCTGATGTGGTATCAATAATATTAATGATGTCTGCCATCCACTTTTCTGCGT -CTTCTTCATAATCAATATCACAATCTACACGCTTACATATACGCTCAGCGCCTAGATTTTCTAGTAAAGC -ATCTACATCTTTACCGGCTTGACAGAAAAATTCATATGTTTGATCACCTAAAGCTAGTACTGAATATCTC -ACATGATTTAAATTAGGTGCGTTATCGTCTTCTAAAAATTCAAAGAAATCCCATGCATTATCAGGCGGTT -CTCCTTCACCATGAGTAGACGTAATAATAAATAAATCTTCTAACTGTGCGATGTTTGTCGTATCATATTC -ATCCATTGACATCAAAACAACTTGATGTCCAATATCACTTAATCGTTCTGAAAAAATTTCAGCTAAACGC -ATGGCATTACCTGATTCAGAACCATATAGCACTGTGACATGCCGCTGATTAGCTTCGATATGTGGCTCTT -TATTTTGTAACATATACGTTGTTGAAGTTTCTTGTTCTTCTGATATTTGTGATTGTTGCCACACTTCTGT -CTCTAATTGTTGTTGATTACTATCACTTGTCGTATCGTTACTATTAGCTAGTAAAAAACCACTAAGCCAC -TGTTGTTGGCTCTCTGTTAATGTTTGCAGCAGATTGTTAATCTCTGTGACTTGTTTTTCTGTAAATGGAC -TATTAGATGTATTTAATTTCAAATATTTTCACCTCAATAAACTTGAAATAGATGATTGACTCATTTTTCA -TCGATAGTTCAGTCAATTTTTTAATATGTATGGTATAAATTAAAACAAACTTGAGTTGTGTCTGATAGTT -ATACTTACAAATATTTACAACCTTCATGTGGTTTGAATGACACAGTAATTCAGACAAAACTTTGATTATG -TCGTGTCAGTTATTAATGCATACAGTCATGCATCGTTGTTATTTTTTATTTATTTACTATTTATTATGTA -CCAAATCAGCCTTTCAGTAAAATAGGTCAAATTACTGATTTTCTAAATATAAAATGCCTCCTAATGACAT -ACTATTAGTACATCATTAAGAGGCTCTTGTGTTATTTGCATACTAAGCGCTCAATTTTAAATTTAAGATG -AAGATTCTTGCAATAATATTTCTATATTTGCCGATATATCCAATGGATCTTCCATTGGCAAGAATCGATT -TACAACATTGCCTTGTCGATCGATTATAAATTTTGTGAAATTCCATTTTATTGGGGACCCAAAGATTCCT -GGTTGTTCATTCTTTAAATGCGTAAATAACGGATGTTCATCGTTCCCGTTCACAGATATTTTAGCTAGCA -CTGGAAATGTAACACCAAATTTCTCACGACTAATTTTCAAGATTTCTTCATTAGAACCTGGTTGTCGATT -GTCAAAATTATTATTCGGAAAACTCAACACTACAAACCCACGATCCTTATATTTTTGAAACAAAGTCTCT -AGTTTTTTCAATTGTTCGCTATATATACATTCTGTTGCAGTATTAACAACTAAAATCACTTTACCTCTAA -ATGCTTCTAATTTATAAGTTAAGCCTTTATAATCACTTACTTCGATATCATACACATTTCTATTATTCAT -AAGACACCCCTACACAGCCTTTTTTATATTGAATATGTTCTTTTTAGAATGTTCTGATAAAATAAGTGCA -CGTTTACACCGCGAATACACATTATATAGCGTGATACATTTTTCAAACACACGATAAATAATGTTCGAGT -TTATGTTGTTGCTCAACCTATCCGATTTACCGTCTTTTTTCACCTGTCTTACTTTATTAAAATAATCACA -TTGTATAGCTGTATTAGTCCAGCTACAATATCTTTCGTTATAACCCCTCATTATAATCATCCTTATTTTC -TATTTTTAAAAAGACAATTAGACCGCTCTTTAAACTATAGATTAATACTTAAGTTAAACTCATACATACT -GATACCATACGTTAAATCTAACAATTTAAAATTCGTTATAACTATGGATTAAAGAGCTGCCCAACTCATT -TAATCCTTAAAAACTTCACATGTGATTGTTTATTAATCCCTCCTTTATCTTATTAAATATCCTTATAACC -CTTTTAAAATTAAACTGACACACTCATACATTGTTACACGCGACGATAAACGTCATATTATTGCATATCA -TTAAAACAAGTCACTTTGTATCGTGTGCGACCGAATACATATTAAATCATCAATAATGATTATTCAATTA -TTAAAAATAAAAACGAACATTCTATATAGAGTTTCCACTTATTGTTTTTTCAGCATTGTCTTCATTACTT -AACATTCGTATTTGCAAGTAATATTGACCACCAATATTTAGACACTTTATAAGTATGCCATTCATTATTT -TTAATCATATTATTTTTCATATTGATATTTCTATACATATATTTCTGATTGTATATTTAGATATAATCAT -TTGTTATTGGAAAATATATGAAATAAATTTGACTCATCTTTTTCAATATCCAAATGACACGATGTATGAT -TTTTGAATTTTGTAATTAATTTAATTTTAATTTCCTTTAAAATTAGACTGAATTGTGACAATTTTCAAAC -ATTTTAATGTGTAAATCATTGGAAAATATATACGAATTGCATTTAAATCGTCAATTTACATATATTTTTG -CGTAGTAATCAATCGTTATCATTGTTATTTATCGTTACATTACTTCGAGTATCAGTATGTATTTCGGGCT -TCGTTTGATAACGACATTTCTTTGTGACATCGCTTCATCAGTGTAACTACAAATACAATGATTTCGTGAT -GTTAGTTACCCATTTTATGTGTTGCATAAAATATGTTGTTATAAAACATTTTGAATCATTTTATATAAAC -AAGCTATATATTTTTGATATTTCAAAAATATAACTTGTCATACAAGTAAAAAACCGATAAGACATTTTAT -CTTATCGGTTGAAAATTGTTATTGTTATTTGTAGTATTTTTAGGTTTTCTTTTTCATATAATATATTTCA -GTGAAAACACATGATTGATTGTGATTTCACTGAAACATGGTTAATTGCGTTGTTGATGAATAACTTTAGC -ATAAATGTAGGAAGTTATTTTGTACATCGCCATATATAGAAACGAAATTATAATGACAGCTAGTACGTAA -CATGTTAAAAATATATGATGGTTATTAATCCCTAGCATATTTAGTAACGTATAAACAATGTTGCTAGAAA -TTAATGTATGAATCAGTGCTACTGTTATTGGTATTGCGAACAAGAAAGTCATTTGATTTCGTGTTATCTT -TGATATTCTCCCATTATCTAAACCAAGTTTTTTCATAATGTCATAATTGTGCTGATTTGCATAGGCTTCT -GAAACTTGCTTATAGTACATCATTAGAAATATTCCAATGACAAGTACAATTGATACCACGCCACCTACAA -ATATTAGTCCACCTGTCAGACGATCCCAAACCATTAGCATTTCTGATTTAGAATTTATTGATGCATCGTA -CTTTTTCGAAAGCTTTTGAATTTGTGATGTTGTTAATTTCGTCTTTCCAGATACATTAAAGTTTATCGAT -ATTGTCGACTTCTTTTGTTCATGTGCATAAAATCCTTTTACTTTTTGTAATTGATTGTTATCTTTAACAA -TTAAAACCATACTATCTTGAATCATCATCAAATTTAACGCATGTGCATCAAGTTGTTTCACTTTAAAGAC -TTCATTATTAAGACCGACCTTAGACTGCTTTTTAAAAATAGGTACATTCGTAATCATACCTATACTTTGA -TTGTCTAAGTGTAATTTGTTTTGGTGATATCGATTATAATCTTGCACAGTAAGTGCTGTGATCATTACTG -ATTGCTTAGAAAATATCGAGCCTTCATTACCAATGAAGTCTATTGGAATATCATCACTAGCCTGTTTTAA -CTTGTAATAAGCACGATTCTTTTCTAAAGAAGCTCTAAATAATGTCGTTTCATATACTTTGAAGTCTTTT -GCATTAACCGAACCCTGTATATCACGTTTAATATGCTCAATCGTTTGTTGACGTTCTATTTGTGACTTAG -AATTGTCGTTAAATGACAAATCATAATCATTGGTAATCAACTTCATAATGGTATGATTCATATCGCGATA -GGTTGTTAGTGTCATTGTGAGCGTTACAATCAAAAATGTACACAGCAAAGTGATTGTTGCAAGACTGACT -GCATTCATTTTAAGACGTACACGCATCCCAACTACCACAAAAAAATACCGTGGATGATAGTAAACTTTTG -ATACCTGCTGCAATATACTAATAATTATTTCACTTATACCTACAAAAAATGCATAAGTACCGATAATAAC -TAATCCTATGACAATCCATATTTTAAAAAAAGCACCAAACGTCGTATCTTGTTGTAATGCAATAAAATAG -CCTAAATATAGTGCTGCGCTTCCTATAACAATTAAAACGTAACGCAACCATCGTGATATGACACTGGAAT -CGGAACGATGTTGATAAGTTATCGGTCGTTGAAAATTAATACTGAACAAGTTGAATATAAGTAGCATGCC -CATTAATACAGCAATGATAATCAAAGTAATAAACATCGCTACAGTATCAAATGGATAATACCTTAACGTA -GCAACTTCACTGCCCATTATTTTCTGTATAAACAAGAAAAATATCGCACCAAGTAAGTATCCGCCGGCAA -TACTAATGACTGAAATTATCATAAATTGTAAGATAGTTTCCATCACTACAATTAAACGCATACTTTTCTT -GGTCATGCCCAATGTCATAAAAATGCTAAACTCTTTTCGTCTTTGTGACATCATAAAGTGATTTGCATAG -AAAATAAAAATAAAAGTTAAAAGCGCCATAAAAAAATTAGCTATGATAATAAATGGTACTAGGAAGTCAT -TCTTCTGTTTTATGTAGCTATTTAACCCAATTGATACAAGCGTATATTCAATCATGAATAGTACACTTAC -CGCTAAAATGAATGGAATGATTACAAGTCGCTGCGTAATAAATTGACGTCGTACTATGTGCCATAACAAT -CTTAACTTCATATATTGACACTTCCTCCATTCACAAGTGCTAAGCTATCTGTTATTCGCTGTTGAAAAAC -TAATTGACTTTCTTCACCACGATATATTTCATGATATAGACGCCCATCTTTAATAAAAATGACTCGCTCT -GCATAAGACGCATCGATATTTGAATGAGTTACCATTAAAATTGTCTGTTCCAATTGATGAATCTCTTGAA -ATAACTTCATCAATGCTTTTGATGTTTTTGAATCCAGTGCACCTGTAGGTTCATCGGCTAGTAAAATCGT -CGGTTTAGTAACTAATGCACGTGCAATGGCAATACGTTGCTTCTGACCCCCTGAGATTTCAGAAGGATAT -TTGTTTAAGAATCCCTCTAAATGTAATTGTACTGTCAACTGATGTACCCTTTGTTCTATATCTTTTCGTT -TAGCACCAGCTAAAATTAATGGCATCATTATATTTTCTTTATTCGTCATTGTTGGTAAAAGATTAAAATC -TTGAAAAACAAAACCTACCATTTGTTGACGATACAATGCTTTACTTTTATTTTTCATATTATTTAAATGT -GCGCCATCCACAATAATGTCACCTTCAGTTAATCCATCAAAAGAAGCAATTAAATTTAGTAGTGTAGACT -TCCCTGACCCAGACTCACCCATAATTGCAACAAATTCACCAGCTCCAACTGATAAATTCATTTGATTAAG -TGCTGTCGTAGCATTCAAACCTTTACCATAAACCTTTTTTACATGTTTCACTTCTAGCAACATGGCATGC -ACCTCATTTCTTTGTTAGTTCTATATTAAAACAAAAAAATACTAATAACATTTAAATTAGTGAAAAAATG -TTACTAGTATGCTTACAATATTGAAAGTTTTTATTCATCTGGAAATTGAATCGTAAATGTTGTACCCTCA -TTTTGTTTAGATACGACTGAAACAGGATGGTTTGTGTGAGTTGAAATTTGTTTTACGATAAATAAACCAA -TCCCACTTGAGTTACTTTGCCGCTGGCCATTATAACCTGAATAGCCCTTATCAAATATTTTAGGCAAGTC -CGCTTCACTAATACCGATACCATTATCTTTTACGTATAATTGATTGAATTGCTCATCAAATTCAATCCAT -ATATCTTTACCTCTCGCATACTTAAGTGCATTATTTATTAATTGTTCTATCATTAAAGAGGTCCATCTAA -CGTCAGTTAATACTTCGTGATGACAAGGTTCATAATGGATTTTTGTTTTTTGATCAATAAACTGTATTGA -ATATTTCATAATAATTGGGCGAATGATATTGTTAATCGAAATTTTAGTGACAGAAATATCAGAAGTTTCA -TTTAATAACTTTAAATAACTAAGTGCTAAACTTGTATAGTTATCAATTTGAATAACCTCTTGACGAACAC -GATTCACAACATTAGGCTCATCTCTTTCAAGTAACAGTTGTGCTGCAGTAATGGGTGTTTTCATTTGATG -TACCCATGTTAAAAAGTAGCTCTCTACATCATTTTTATATTCAATTTGTTCATTTTTAAGCTGATACAAC -GCATTTTCTAAATTTTCAATTTGTTGTTGTTGGCTTATAGTTTTTACAAAACTTAAATATTTAATACCTA -TGAATATGAGTAATAATAATAAAATAACGCCAAGTGCTAGTAAATATGCTTCTAATGGCAAATGATACAG -GTAAAACATTAAGCCAAATAAAGCAAAAATAACTATGACTATTGCTATTTCCTGAGTAATACTTTTAAGA -AAGGTCATTGCATTCACCCTATACTTTATATCCGACATTTTTCTTTGTAATGATAAAATCATTAACGCCA -ATAGTATTTAATTTTTTACGCAGGCGCGTCATGTTAACAGCTAATGTGTTATCATCTATGAAGTTTTCTG -ATTCCCAACATTTTTCAATTAAAGCAGTTCTACTTACATATTTATCTTCATTTTGAAATAATAACTTTAA -TATTTGTAATTCAGTCAAAGATAGCTGTATGCTTTGTTCTTGATACACGACTTTTGCTTCATCTAATATT -AATGTACAACCTTTAACCGTCAATGAATCATTAGCTACTGACAAGTCATAAGTTCGTCTCAATAATGCTT -GAATTTTGGCAATCGTTAATGACAAGTTAAATGGCTTTTCGATAAAATCATCTCCCCCCATTTGTATTGC -CATAATTTGGTCCATATTATCAATACGGGAACTAATAAATATAATTGGCACATTAGATGTTTTTCGGATT -TCTTGACACCAATGAAAACCATTTAACGTTGGCAAATTAATATCTAGCAATACAAGCTGAGGTTGATGTT -GGTTAAAGATAGACAGTATATCATCAAATTGTTCAACGACAATAACACCGTAATTCCATTTTTTAAGTTC -AGATGCTAAACTTTCTGCTATAACAAAATCATCTTCAACAATTAATATTTTCATCTATAATCTTCTTCCT -TCAATTGAATTATCCTTTGTTATCTTTTTGTTCTTTAGCCTGCTGCAATGACGGCTCTTGATTTGAACTT -TCCGTGTCATTTGTATTTTGATTTAGTGTATTTGCTTTTTCTTTCTCGAGTTGCTTTTTCTTCGTACGTT -TACGCTCTTCTAAAATAGACAACACTATAAAGAATATGATTAATAATGGAGATAACATTACTAGTATCAT -TTTTCCACCTCAAATTATATTTAATTCTATATTTTCACACGCTTCTATTCTAACGCTTTCTATAACAAAT -TGTCATATATATTCATTTTTTGTTATTCTAAATCACTCTGTTTACATATTTTTAACTAAAACTACATAAT -TGCTCAAAATTCCTCTTTTACACTGAAGACATAGTCATATACTCAGGAGGATGTCTTATGTTATCAGTTG -ACGGATTGTAATATTAAGTGCAACACCTATAAAAATTCATAAAAAATGCCCATAATTGGCACTTTGTTGT -AAGATGTTAATAACCACAAAAACACATACAAGGAGTGCCAACATGAGCTATAACCATCTTACACTAACTG -AACGCGCACGTATAGAGGTTTTACGTCAAGAAAATTATTCTTTAAGATCTATTGCACGTAAATTAAAACG -ATCTGTATCTACTATCTCACGTGAAATTAGTAGGAATAATTTAAATCAGTCATATCAAGCTGAAACAGCT -CAAAAAAATTATGAAACCAAAAGAAAACTTTGTGGTCGTCCTACTCGATTTACTCCAGAACTTGGTAATA -TCATTAAATATTATTTAAAATGCCACTGGTCTCCTGAACAAATCGTAGGTCGTCTATTACAAAACCAAAT -CTGTTTTAAAACCATCTATCGATGGATTAACTCTAATATGATTAATTTCGAACTTATTTCATGCCTTCGT -CAAAAAGGAAAAAGACAGAAACCTAAAGAAACTAGAGGTAAGTTTAATATTGGCCGTCCTATTTCACAAC -GTCCTAAGGAAATAAAGAAACGTAATACATTCGGTCATTGGGAAGCTGACACAATTGTATCCAGCAGAGG -CAAAAGTAAAGGGTGCATTGCTACTTTCGCAGAAAGAAAATCACGTTATTATTATTGTGTACTTATGCCT -GATCGTTCCTCTAATTCTATGGAGACGGCAATTAATAACCTTATCAAACATCTACCTAAAGGTGCCGTTA -AAACTATTACTGTCGATAGAGGGAAAGAGTTCTCTTGTTATCAAAATATTGAAAACCAATTTAATATTAA -TGTCTACTTCGCTGATCCATATTCCGCATGGCAAAGAGGTACAAATGAAAATACCAATGGTTTACTAAGA -GAATTTTTCCCTAAGAAAACAGACTTAGCTAAAGTAAATCAAGAGCAACTTAACTATGCATTAGACTCAA -TTAATTATCGACCAAGAAAGTGTTTAAATTGGAAGTTTCCTTATGAAGTTTTATGTGATGAACTGTTGCA -CTTAAATTGACAAATCAACAGTTAAAAAAGCCACAAAATTTGCAGTTGCTAACCTTATTATCGTGTCAAC -AGTTTTTAGCTCTGTCACACCTGCAATTGCGCAATCCGATAAAAGTTCTAAAGATGAAAGTTTCGCGGTT -GGTAATACTAAAAATCCAAAAAATGTTATCTTTTTAGTTGGCGATGGCATGGGTCCATCATTTAACACAG -CTTATCGTTATTATAAAAATGATCCTCATGCTAAAGAAATGACTCCTACTGCTTTTGATTCATATTTAAA -AGGCACAAATCGTACATATTCAAATGACCCAAAACAGAATATTACTGATTCTGCAGCTGGCGGAACAGCC -TTTAGTTCTGGTCATAAGACATATAATGGTGCCATCGGTGTTGACAGTAACAAGCAGAAAGTAAAGACGG -TGCTTGAACGTGCAAAAGAAAAAGGTAAGTCGACTGGTCTTGTTTCAACAGCTGAATTAACAGATGCAAC -ACCAGCAGCATATGCTGCACACGTGACTTCTAGAGATGATAAAAACGAAATCGCTAAACAATTTTATAAA -GATAAAATCAACGGAAAGCATAAAGTTGATGTTTTATTAGGCGGTGGCGCTAAATATTTCGGTAAAAGTA -ATGGCAATTTAGATAAAAAATTCAAAAAAGATGGTTACGACCTTGCCACGAACAGTAAGGAGTTATCAAA -ATCTGATAAAGATAAAGTGCTTGGTTTGTTTGCAGATAAAAATATGCCACTTGCAATAGATGCTTCTAAA -GACGAACCATCATTAGCTGATATGCAACAAAGTGCACTTAGTAAGCTTGAGCGTAATAAAAAAGGTTTCT -TTTTAATGGTCGAAGGTGCTTCTATAGATAAATCAGCGCATTCTAACGATATTACAGGAGTCATGTCTGA -AATGGAAGGTTTTGAAAAAGCATTCGATGACGCCATTCAATATGCTAAGAAACATAAAGATACACTTGTC -GTTGCAACAGCAGATCACTCTACTGGTGGTCTAACAATTGGTAAAGATAAAGGATACGAATGGAATCCTC -AACCGATTAAATCGATGAAACACTCTGGATCATATATGACAGAAAAAATGGCTAAAGGTGAAGACCCTGA -AAAAGTTATTAATGAAGGTTATGGCTTTGAATTTTCACAAGATGATATGAAAAAAGTTAAAAAAGAGAAT -AAAAAGCTAAAAAGACTACTTAAAAAAGAAAAAGATGAAAAATCTGCAGATGTAGAAAAACAAACAAAAG -CCTTACAACACGCAATTCAGAAGCCAGTAAATGATAAATCTTATACAGGATGGACTTCCGATGGACATAC -AGGCGAAGATGTTAATACTTACGCTTATGGACCTAGATCAGAATCATTTAGTGGTAATATCGAAAATACA -GAAAGCGCAAAAATAATATTTGATATATTCAAGTAAAGCATAAAAAAATTCCCGAGCACTATAACAAGAT -GTTCGGGAATTTTTTATGGTTTAATTTAGTACTCAATGTTAGGTGCTTGGTTAACACGTTCTTGGTATTT -TTTAAATGCGAAGTATAAACCGCCAACTAATGTTAAAATAACTGCTAATTTTTTCATCATTCAAACTCCT -TTCTAAGATGTGTTGAAACTGAGTTCAATTAAATTATATGTTTTTATTATACACTTTTTGACATATTTTT -TAAATTTAAGAATGCGAAGATTTTCAACATTTCTGATGCTAGCTTTCTTTTTCATCTTTCAAATGCTTAA -TAAAATCAAAGCCAGGTCGCCCTTTAGCCAATGCTTCCATCACATCATACCAATCCGAACCGACTTGTTG -ATATATATTTTGCAATAATTCATCTTGCGCCTTGTTCAATTCAGCAATGAGTTGATCGCCTTTATCCGTC -GAATATAATTTTTTGACACGTCGATCAGTCTCTAAAACTTTTTCAATAATGAGACCTTGCTCTTTTAATT -TTTGAAGTGTTGCATGTGATCCTTGTTTAGAAATTTCTAATATTTCTAGTAATGATTTAATAGTAATACC -AGGTAATTTATTGATAAAAAACAAAAAACGATGATGCTGACGGCTCATACCATACTTCTCTATAATTTCA -TCAGCGGTAGTAATAAACGTTTTATATGCAAAATAAAACAACATATGCTCATAATCGTTTTTATTGGTCG -ACATGATGATGACTCCTTTCAAAGCGTTAACCTCATTATAATAAAATTTATAATGTAAGTCATACAAATG -ATGATAAAACTATAAGCTAAATCTAAGTTTCACGAGAAACATTTTTGTGTATCAGCAAATTGCACCAATC -ATATTAATACAAAATTAATTTAAACACTCAGAAATGTTAGTCGTGCGTAAATAGTTTGTATCACTCACTC -TGTGTATTTAATGTAGGCACATATTTTCCAGGAAATAATTAATCATTCACCATCCATGTTATAGCACGCT -TAATCGCTTGGTCCCAATATGCATAATCATGATCTCCTGGTCCATCTTCAAATTGATAAGGAACATTTTT -GCGTGATAAATAATCGATAAAATCTAAATTGTCTTGATATAAAAAGTCTTGTTTACCACACATAATGAGC -AATTTTGGAATTTGTTTATCTTCAGCTACAGCTTTGTCTAGCAAGTAATACGGATCATGTTCAGTTCCTT -TAACACTTGAAAGATTGCCAATTATGGCCTCTTTTGAAAAATCATTCCACTCTAGATCCATTAAATTTTG -CGCTTCAAACACAGCAGATAATGGTACAGCTTTGGCAAATTTATCCCCTTGTGTTAATGCAAATTTAATT -GTGCCATATCCTCCCATAGAGTGACCTGCTATAAAATTGTCATCACGTTTTTTGGAAAGTGGAAATATTT -GATGAACATAATCATATACTTCCAAAATATAATCATAATAGCTATGACCATATGCCATGTTAGCATATGC -GCTATGATCCACATTGGGCATAATCACAGCTAATTTGTGTTCATTCGCATACCTTTCTATGCTTGTATAT -CTCATATATGTCGTTTCATCACTTGATAATCCATGTAACAACATTAAAGTTTTTAATGGTTTAGCAGTTG -TATCGTTATTAAAGAAGCTTTGATCTTCCGGTAAAATGACTGTCAAATTTTGATGCATACCAATTGTTGG -TGAATGATAGTTTAATGAAATATAAGCCATACGTCATGACCCCTTTCTAATTCTACTTTATCAACATTTT -ACGCTTAAACAATTCACTTTAAAATCATTTTCAACAAAAAAACCGAATACAAATGTATTCGGCCTAAAAA -AGTATTTACGCTTTTTCTTTATGATCTTGCTTGCGTTTTCTAAACAATAGTAATGATCCTAATAATGCCA -CCATTGCATCAAATAAAGTTGCATTTGTGTTTTCGCTCTTATCTCCTGTTTCTGGTAAAGCATCAGTTTG -GTGTTGTTTTGATGCCTTATTAGAATGGTTTACTTCACCTTTAGGATTTGATGGTGCTTTTTGTTCATTA -TTTGGTGGTGTAACTCTTGAATCGGAGTCGCTATCTGAGTCCGAATCGCTGTCTGAATCTGACTCACTGT -CTGAATCTGACTCACTGTCTGAGTCTGAATCGCTGTCTGAGTCTGAATCGCTGTCTGAATCTGACTCACT -GTCTGGGTCTGAGTCACTGTCTGATTCTGAATCGCTATCTGAATCTGACTCACTGTCTGATTCTGAATCG -CTATCTGAATCGGAGTCACTGTCTGAGTCCGAATCGCTGTCTGAATCCGAGTCGCTATCTGAATCCGAGT -CACTGTCTGAATCCGAATCGCTGTCTGATTCTGAATCGCTGTCTGAATCTGAATCGCTATCTGAATCCGA -ATCGCTGTCTGAATCTGAGTCACTATCTGAGTTTGAGTCACTATCTGAGTCCGAGTCACTATCTGAGTCC -GAGTCACTGTCTGAGTCCGAATCGCTATCTGAATCTGACTCACTGTCTGAGTCCGAATCGCTGTCTGAAT -CTGAATCGCTATCTGAATCTGAGTCACTATCTGAGTCCGAGTCACTGTCTGAATCTGACTCACTGTCTGA -GTTTGAGTCACTATCTGAGTCTGAGTCACTATCTGAATCCGAATCGCTATCTGAACCTGAGTCGCTGTCT -GAGCCTGAGTCACTATCTGAATCCGAATCCGGATCTGGTTCTGGACTTGGCTCTGGATCTGGCGTTGGTT -CCGGTTCTGGCTCTGGACTTGGCTCTGGATCCGGCGTTGGCTCCGGTTCTGGCTCTGGGTCAACTGGTGG -TCCCGGTGTTGGATCAACTGGATTTACTGCTGAATCACCATCAGCACTTCCGCCTCCATAACGTACAACA -TTCTCATTATTCCAACCGAAAATACTGTAGTCTTTACCTGTCGCTGGGTCAATATTTTCTTGAATAACCT -GTGTTTTCAAGTTTTTACCAGTATTATCATAGTGACCTTCCACTAATACAACATACGTTTTATTTATATC -ACCAAAATTAATACTTGCTACGTTATCGTATTTGTATGAAATTTTATCTTTAAACTCACCAGTCACTTCT -TTAAGGTTAGAGTCATTTGGGTCTGCATAGTAGCTATCTGATAATTTAGATGTATCATTCACTTCAAAAA -TTCTCAGTTTTGTATCTGTAGCACTTACTTTACCGCTACTTTCTTCGATTTTATCTTGGTAACCTTTAAT -ATACACCCACGTATTACCTAAAACTCGTTGCTTAGGGTTAACAAATACCGTTTGCTTGTATGTGTTTTGA -CCTGAAGCTGTATCTACACCAATAATTTGAGAAGAAATGTTCGCGCCATTTGGCTTATCAATTCCTGCAA -TTGGCGAACTATAGTTATAAGTAATTTTATTATCAAACATTTCATCCGCAATATTAATATTTGCATCATA -TGTTCCTGATTTAGGTGCCTTTGCTCGGTCTGTAAATAAAGGTAATGAAAATTGTCCGTTAATATTTTCT -TTATCATTTACATAATCTGTAAAGACAAATGTATACGTCTTAGTCAAGATATCATATGTTGCTTTAGCTA -CAACATCGCCATTCGTACTTTTAATGTCTGCAATTGGCATCGTATTATTTGAATTAGAGTAATCCACGTC -TCCATTACCAGTTACACTATCTGGTAACTTCGCTGTAAAATAATCCCCTGATTTCACTTGTCCAGTCACT -TTAAAATTTGCCGCCATAAATGTGTTACCACTTTGGTTAGGGTCAAATGCAGTCTTTTCTAACTTGAAAT -CACTTGCCGTAACTTTATCATTTACATTTGTACCTTTAGCATCAGCAGCATTTACTACAGGTTCAGCAAC -TGCAAGACTACGTACAGCTCTCGTTCTAACACTTGGTTTACTAGTTCCTTGCGCATTGGAAATCGTTTGT -GGTGATGATTGTGGTAAATCTAATGTTTGAGGATTTTTAAGCTCACTGTTTGTTGCTATGTTATTAGCAT -CATTCGTTGTTTTATTATCTACTTGAGAATTTGCTTCTTGAGGAACAGTTTGATCTTGCATTTTTGCAGC -AGTTGCTTGATCTTTAATTGCCGTCGGTTGAGGTGTTTCATTTGTTGAAGCTGGCTCTGTTGTAGTGGTA -TTGCTCGTTTGTGTAGACATTGTTTTTGCTGTGCTATCTACATTCGCACTGTTTGTGTTTGCACTAATAT -CAGATGTATCATTAGCCGTTGTATTTAATTGAGGTGTTTCTATCGTATTGTTTTTTTCGGAATCTGCACT -TGCATTATTTTTCGAAGATTGCGTTGTATCGTTCGATTGTTCTGAAGCTTGTGCTTGATGATTGCCTATC -CCAAATAGTATAGTTGCCCCTACTATTACTGATGTGGTACCTACTGTAAAACGTCTAATCGAATACTTAT -TCTGCTTATTCGACAAATAATCAATTCTTTTTTTCAAAAATATTACTCCATTTCAATTTCTAGATTAGTC -TAAATTGTATAATGAAATAAGAATTATATCAATTGCTTTTCGAAAAAAATTACGTAAAATTTGTTTTCTT -CCTATTTATATAACTTAAAATTTTCTGTTAACTAGCAAAAATCAATATACTATTTTTACACTATTACAAA -TGTTTTACTTTTCAAAAACTTAGAAGTTCTAAATTTTTCATCACCTTAAATTTTACTGTAATTTCAACAA -TCAAATTTAACTAACATATTAAATTAATCATCATGCTAACAAAAAAGGCCTAACGTATAAATGTACGTTA -GACCTCATGTTCAACTTATTCATTTTACATTGTATATTAAACACATACATCATTGAATAAATGTTTGCTT -ACTAACCAATTTTTATGATCTTTAACAACAAGTTTTTCATCTTTAAGTTCATGAATAATATGACCAGCTG -TTTCCCGGGAAATCCCAGCCATATCACTCATGAGTTGAATAGTTAAAAACTGTTTGATTTCATAAAATTC -ATCTTGATCGTATCCTACTGTCTGACATAGATGGCATAACAATTTGATAATTCGATCTTTAGCAAATTTA -CTTGTTAATGCCATGTTATAGTTCATGTGTTGCTGCTCATTATCATTTATTAATGCAAAAAGTGTCAAAA -ATATATCATCATTAGCTTTGCACAAAAAGGCCATCAATTCTCTAGGCAATCCAAGAACTGTACAATCGGT -TAATGCTGTGCACAATTCGTTAACCTCTTTCGGATGAAATAAGTTACTGATTGGAAATAATACTTGCTCT -TTATTAAAATAACGATATACATCTCCATTTTGATTGTAATGTTCTCTAATAATGTTACCTTCAATTAAAA -AGTAAATATTGCTACTTTCTTGTGGCGAAAAATAAATAACTTGGCCTTTCGTATAATGTCTGACAAAACA -TTCACTTTGATATGGTTGTAATATACTATATGGGATATTAATGTAATCTGCTAATGCCTTTAGTTCATGT -TCTAATTTATTATTTCTACCCAAAATAAAGTTTTCTGTCATAAGTTAAACTCCTTCAAACCTTGCAAAGT -GTCAGCAGACAACTTTTTCATTTGAATCAACGGAGAAACATATTTAATGTTTTGTCGCGTGATAAAGTGC -TACATGTGAATGTGTGTACCTTTATTACCAATCAAAGCTTCGTATGCCTGCTCTAAATTGGTAATGATAA -CTTTTTTGTTTTCCCCACTTTCAACAAATCGTATCGCAGCTTCTATTTTTGGCAACATCGATCCTTCCGC -AAACTTACCTTGTGCCGCGTATTTTTTCAGTGTTGCTACATCAATATCATCGATTTGTTGTTGATTAGGT -TCATTAAAGTTAATAAATACATTTTCTACATTCGTAAGAATCATTAAGGTATCTGCTTCAATCAGCGTTG -CTAATTTCTCACTAGCAAAATCTTTATCTATAACCGCTTCAACACCTTCATAGGTATTTTCTTTTTTTAT -AACTGGAATACCGCCACCACCGCATGCAATGACAATATTTTTACCGTCTGCTAAAGTTCGAATTAACTGG -TGTTCTAGTATAGATTGAGGTAGTGGTGACGCAACTACTTTTCTATAACCACGTCCTGCATCTTCTTTAA -AGACTGAGCCTGGCTGTTCTTTTTGTAATTCTTCAACTTCTTCTTTCGTATAAAAAGGACCAATTGGTTT -AGTTGGGTTATCAAATCGTGGATCATCTTTATCTACTTCCACACGTGTTACGATTGTGCCTACAGTTCTA -TCACTATTCATTTCAGTTAAAATGCGATTGATTTCAGTTTCCAACCAATAGCCTATCATACCTTGTGACA -TTGCACCACAAGTATCCAATGGCATTGCCGGCGTTGTGTCACTGTTCGATTTAGCTTGTTGGATTAATAA -ACCTCCAATTTGTGGACCATTACCATGTGAAATGACAATACGCGCTGGTGAATCAAATAAAGGTTTAAGG -TTTTGCATCGCACGTCTAATAGCTGTTTGTTGTGCTTCAGCTGTTGCTTCTTTTGTCTGTATCGCATTAC -CGCCTAATGCAATGACAATTTTCTCTTTCATATTTTTGTCGCTCCTTTTAAAAAACATTTATCGTTCCCA -TCAATAACTTAATTAACCCGATAACTGCAAGTACGATAATAATCATAAAAAGAATATAGTCTGATTTAAT -CAAACGTGTCTGATTATTCTTTTGAACGATTGAATAAACAAGAAGAGCTGGAATATAAAGTAACATCGTC -AGTAATAAGTAATTGATACCTGCTGCATATATAAGCCATATAGCATAAATTGAGGCTATGATACCAATCG -TCCATTGTTTAGTAGTTGCTTGCTGTCGATGCTCTAAAGTGTATTTAACTTGGTAAAATGCACTGAACAT -GTAAGGGTATAAAATAGCACTTGATGCTAGTGAAAATGCAAATTGATACGCACTCTGTGTAAATAGCATA -CTTATTAAAAATAATTGTACTAATATATTGGTAATAAGCAGTGCATTTACAGGTGCTCCATTTTTATTTT -CTTTAGCAAACCATTTTGGAAATAATCCATCTTTTGCAACAATGAAAGGTAATTCACCAGCAAGCAATGT -CCATCCTAACCATGCACCTAGTACCGAAATAATTAAACCAATATTTACAAGTGTAGATCCCCAACCACCT -ACAATAGATGCAAGCACCTGTGCCATACTTGGCGAATCTAATTGAGAAATATGATTTTGCAAAATCACGC -CTTGAGCTAATACAGTTAATAAGAAATAGATAATTAAAACTGATATAAGTCCTATAACCGTGGCACTACC -TACATCTTTTTTATTTTTAGCTCTGCTAGAAAAAATTACTGCACCTTCGATACCGATAAACACCCAAACT -GTCACTAGCATCGTACTTTTAACTTGGCTCATTGTGCTCGCCCAACTAAATGGCAATACACCCTCTGACG -TCATACCGAAAAAGCCTGTTTTAAAAGTGTCAAAATTGAATGCAATTATCATGCATATGATTACAAGTAA -AATCGGTATTAACTTTGCAACAGTAACAATACTATTGATAAAGGCTGCTGTTTCAACACCTTTTAAAATT -AGGAAATGCACACCCCAGAGTAGTAACGAGGCGACAATAATACTTGGTAATGTGTTGCCTCCTTTAAAAA -TCGGGAAAAAGTTACCAACTGCTGACATCAATAGTGTTGCATAGGCAACATTGCCTAAAAATGCTGAGAA -CCAATATCCCCAAGCACTGATAAAGCCTACAAAATCGCCAAATCCTGCTTGAGCATAACTATAAATACCA -CCGTCTAGCTCCGGCCGTTCATTGGTTAAATTTTGAAATACGAACGCTAATGAAATCATTCCTATAGCTG -TAATAATCCAACCAATAATAATGGCTAATCCACCGGCTTTACCACCCATATCAGACATTATATTGAACGC -ACCGCCACCAATCATGGATCCTATAACTAGTCCAATTAAAGAAGATTTACTGAGTTTGTTATCTCCTGAT -TCGTTCATATTCATTTCTCCTTTAATACCAATATGAGGTGTCTGTACTTGATACTTATATCATCAGACAC -ATCATATTCATATCGTTCCATTTAGTGATTAACTCCCCAATGTTGCTGCCATTACTGCCTTAATTGTATG -CATTCTATTTTCAGCTTGATCAAACACTTTTGAATGTTCACTTCTAAAGATTTGGTCTGTAACTTCCATT -TCAGCTAATCCATATTTTTCATAAATTTCTTGTCCATAAAGTGTATTTGTATCATGGAATGCTGGTAAAC -AATGTAAGAATATCGTTGAATCTTTACCTGTTAAATCAAACAACTGTTGATTCACTTGATAGTCTTTTAA -TAAATTAATACGTTGTTCAAATTCACTTTCTTCACCCATCGATACCCAAACATCTGTATATATAGCATCT -GTATTTTCAACTGCTTCTGCAATATTATCCGTAATCATGACTGAACCACCATATTGACTCGCTTTTTCTT -TTGCAATATCAACATATGCATCTTTTGGATTTAATGATTTAGGTGTACAAATTCTTACATTAACACCTAA -CATAGCACCTGCTACCATTAATGAATGCGCAATATTATTACGTCCATCTCCAACGTAAGTTAAGTTTATT -CCTTCCAGATATCCAAAATTCTCTTTTATTGTCATAAAATCAGCTAACATTTGTGTAGGATGCCAATCGT -CTGTTAATCCATTCCACACCGGTACACCAGAGAACTTCGCTAAATCTTCAACAGCTTGTTGTGAAAAACC -ACGGAATTCAATACCATCGAACATTCTACCTAATACTTTCGCAGTATCCTCTACAGATTCTTTTTTGCCT -AATTGAATATCATTTTTCCCTAAAAATTCTGGATGCGCACCTAAATCAATAGACGCAACTGTAAACGCTG -CACGCGTTCTCGTCGAATTCTTTTCGAATAGTAGTGCAATATTTTTTCCAGATAAGTAGTGATGCTTGAT -ACCATTTTTCTTATACTCTTTTAATGTAATTGCAAAATCAATAAGTCCTTCGAATTCTGCTTTGGTAAAA -TCACTTTCTTTTAATAATGATCTGCCTTTTAAATCATACGGTTTTTGAATTTCTGTCATTATTTTCACCC -TCGCTTCTATAATTTATTACGTTAAATGTCTTCTCTGAATAGTGGTTGACTCATACATCTAGGACCCCCA -CGTCCACGTACCAACTCGCTACCAGATATTTCAATGACTTTTATACCTTTTTGTCTCAATAAATCATTCG -ATACATAGTTTCTATCGTAAGTCACTACAACACCTGGTCTTATACATAATGTATTTGAGCCATCATTCCA -TTGCTCTCTAGCACCATCAATGACATCACCATTTCCTGTTGGAATGAATTGGATATCATCTATACCTAGA -ACGTCTTCTAAAGTATCTTTTAAATGACTAGATTGTTTGATGGAAATATCTTTATTTACGTCATCATATT -CAATAATAAATATATTCATATTGCCTTCTGCCTTTAAAATGGCTGAATGTATTGTAAATTTGTCATAATC -TATCATTGTAAATACTGTATCTAAGTGCATAAATGTTCTACTAGTTGGAATTTCAATTGCTACTACTTTT -TTAAACGTCGCCTGCGGATTTTCAAAAATACGTCGCGCTAACTTTTCAATAGCTTGTGCAGATGTACGTT -CTGAAACGCCTATAGCCAAGACTTCTTTAGATAAAACAAGTTCATCGCCGCCTTCAATATTGAATGGGCA -ATCTCGATCTAACCAGATTGGAATATTCGCATCTTTAAATCTAGGATGATGCTTTACAATATATTGAATA -AATATTGATTCTCGTCGTCGTGCTCTCCAGAACATCCGATTGATTGTTATACCGTGTCCTATTGAGGCTT -GTGGATCTCTAGTAAAATAAAGGTTTGGCATTGGATCTAAATAGAATGGATACTTATCATCCATATACTC -TACTAGATGTGTACATTTCGGATTAATTTCTTCCTTACGTACTCCTGACATTATTTTATCTACAAGTTCT -TGATTAGAAAGTGTCGCAAATAATGCCTTAATTTCTTCTTCATGACCTAATATTGTTTTTTTAGACTCTG -CTAATACATCATCAATAAATTCACTTCTTACTTGAGGATTTTCAATACTTTCAGCTGCTAACTTCTCAAG -GTAAAGTACTTCAACACCCTCTTCTCTTAGCACCTGTGCAAAATGGTCATGCTCTTTTTGAGCTACTTCT -AAATATGGAATATCATCAAATAGTAATCCATCTAAATAATCAGGCACTAAATTTTCTAATTCTTTTCCAG -GACGCTTAAGTAACACAGTTTTTAAAGCTCCAATTTCGCTATTTACTTTAATTGGACCATCTGTCATGTC -TATTTCCTCCTTTTATCTTTGAATTCATTTAGAGTATAGACAATCTTCAAACGCTTACATGTGATTATAT -TCACATAAAGAAAGTCGAAAATTTCATATCTTTTTGTTATACAATACATAATAATGGATTTTTATACATA -AATAAAGGTATTTTGGGTTAAAATATACATTTTTTATTCAAAAACACCCACAAAAACATGTTGTATAAAG -TTTTTTATACAGTCAAATGAATGACTATGAATTCTTTCTTTCCATAAAAAAACGCGTACACAAGTTAATA -TGTAGTAACTAACTTGTGTACACGTGATACAAAACAAATTTTTATTATTCATTTGATACATGTCTATTTA -AATAATTTTGCATATACGTATTCTGCCATATCATTTGATGCAGTTAAGATTAATGTAGTGTCATTTCCAC -TCACCGTACCTAATATTTCTTCAATATTTAATTGATCGATAAAGTAGTTAATGCCTTGAGCGAAACCTGG -TGAGGTTTTGACTATAATATATGCGCCATTGATAATCGAGCTAAGTACTTCATGTTCACAATAATGTTTA -AACTTTTCTCTCATCTCTTGTTCTGTTTGATTATTAATAGCTTTATAAATCCATGTCTCACAATCGATAG -GGACACGATATATATTAAGTTCTTTCAAGTCTTTAGCAATTGTTGTTGCACTATATCTTACACCAAAATA -TTCTTCAATATATGAAATGATTTGTTCTTTTTTATAAATCTTATGCTTTTTAACTATTGTAGAAACAATT -TCTAATCGTTTACTTTTCTTCATATTGTAAACTCCTTTGGTAGTTACGTTTCTTGTATTAAAAAATAAAT -TCATGCATGTTTCATTTATAATTTAACACTTTGTTTTGCAAAAGATAATAAAAATACATGTAAATTTTTT -GTGACAACTTTTAAAATGAATTTTGTATTCTAAGTCAGCATTTAATTATCACATATTTACTACTAGTAAT -GATTTTAGACTGCCGAGTAGTCTTTCGGCAGACAACCCTCATACTCCTCTCATCTAATTACAAAAAGAGG -GTACACCTACAAAGTCAATTATCAATGTAGGTATAACCCTTATATAAGCTGTATTTAAAATTTAATTATT -TATAAGTGTTTAACATTACTTCTTCTTGTTTATATATTTTTACTCGACGCCAACTTCGTTCCATGCTTCA -TATACTTGTTCAGCTGTTTGCTCGTCATATAAATCTTTAGCCGCTTGGTATAATGCATCTTTACAATCTT -TGAAGTTTGAATTACTTGTTAAGTATTCCGTTAATGCTCGGTAGTAAATTTGTTCTGATTTAGATTTCCC -TATTGCTTGAATTACGTTATAAGCTGCTTTATTTGGAATGCCAGAATTCGTATGCACACCACCGTTATCT -TTTTCAGTGTATACATAGTCTTTCATATGAGATGGTTGACCAAATTGTTCTGGGTTTGACATGCTTCGTA -AAGCATCTCCCTCTTTTCCTGGTGTGTAAACATCTTCACCCATCAAGAAATCCTCATCATCTACAAAGTA -TCCAAAAACATCTGAAAAGCTTTCATTTAACGCACCAGATTGATCTTTATACTCTAAATTCGCCGTTTCT -TGTGTCACGCCATGTGTTAACTCATGTGCTACTACGTCATTTGCACCTGATAAATTTGTAAACGTGCGGC -CATCGCCATCACCATAAATCATTTTGTCTCCAATCCATGCAGCGTTATTTCTGTTATCTTGTCCACCATA -ATGATTTACATGTGTTAATGAGACTATTGGACTACCATGGTTATCGTAAGACTCACGACCAAATGTATTT -TTGTAGTAATCATATGTTTGTTTAGCATAATAATTCGCATCTACACCAGCACGTTGATCATCTTTGACGA -AGTTTTCATCTTCATTAGTAATTAATGTCGCTTGACCTGTTTGATCGTTAAAATTGTATGCTGATAATTT -ACCTTGATGCGTCAAATCCTCTAAACTAAATCCACCATCAATACTATTGATATTGATATCTTTTGTATCT -CCAAGCACACCTTTACCTGTGCCAGTTGCTGCTGCTTCTTTAACTAAGTTCGTTTTTTCAACAACTGCTC -CTGTGTCTGCATCAATTTTAACTTTCCAATGTGAAATTTCTGGTGTTACTGTAATTAATTCAATATTGTA -AATGTATTTATTACTGTCACCATCGATTTCGACTTTATTTTCTTTGATAACGTCATCTTGGAGGTTTTTA -GCTTTATTTTTATCAATCTTAACTGCGTTAAATGCTTTGTCAGCCGCTTCATCCTTGCTTAATGTCACTT -TATTTGTCGGCTTTACTTTCTTCGCATCAGTATCACCGTTGATTAAAACGACTTTACCCGATTTGTCCGC -ATGCACTTTCACTTCTTTGTCAGGCGCATGCACACCATCCACACTCGGTTGTAACGTGTAATGCGTGAAT -CCTTTCTTATCTGTTTTTACATCTGTAACAGAGTAATCTTGATAATGATTTTTCACATTTTCAGATTTAG -GTAACTCTTTTAATGCTTTAACTGCATCACTCTTTTGCGTGATTTCAAAATTAATATCTGAAGTTGCTGG -TTTGTGATTCGTATCACTCGCTAGTGCTGCAGGTGTCAAAGAGCTCAGCAACGTTACTGTTGCCATACTT -GTAAATGCATATCTTGAAAATTTCCTCACATTTCATTCCTCCTGAAATTTTAAAAACAGCTTATAAATAA -AATATTAATTTAATTTTTCAGAAAAGTAAACGATTATTTCTATTTATTTCTATACTTTTTGTTCGTTGAT -TTTATTTATTGATTCTTTTCTTTTTTAAAAATGTTATCTGTGACTAAATAAAATTTTGAAAATTGCACTT -AATTATCTTTTAAAATTTATCAAGGCTTTATTTTTGTGAAATTATTAACAATCAAAAAATTAGTACAACA -CATACTTAATCAACATGTGAAATATATATGCTGACTACTTAACTGCGCATGATTAAATCTATATATTTCA -ATATCATGGAGACACGAAAACTACCATCATATAATCAAAAAAGACTAGTATGTGACATCATTCCTCACAT -ACTAGCCCCTATATTTACTTTATTATTTACTCGTTTTGTATGGCGTATGTCCCACTGTAACTTCAACCAC -TCTATTATGATCAACAACAAACCAAATGCCTAATGACTTTTTAGAATGTTGATAATAAAAAATACCGCTA -TCAGATTCTTTCGTTTTATTATTCTCTTTTTTCAAATCTTTACCATAAGCTTTTTGAATATCTTTTAGTG -ATATATTATTTTTAACGATAAATTGTAATTGATTCGCTTCATTTCCTTTTGCAGTTACACCTTTAAAAGT -TTGATCGTATTTCTCTACTTTTTTTGTCGCATTTGTCTTCGCTAATTTAATACCATTAAATGTCACGTTG -TCATATTTAATAGCGTTAATAAAATGCTTATCCATTATAAAATTAGCGTTATGACCGATATATCCATGAT -AAGTATAGTAAGGTGTTGTTGCCGCCTGTGCTTCTTGATGTATTGGTGATGCAGTCCCTACAACTGTTGC -GCCAATTAAAGTACCTAATGCTAATGTCGTTGCTGCACAAAGTTTAGTTGTTTGATTCATATTTATCTCT -CTTTTCCATACAAATTTTTCAATCTTATTACTATTATTATAACTTGCTTGTACAATAAAATACTATTGAT -TATATTTATAAATATATAACAGTTTTGTTATACTTATTTGAAGTACATAAAAAACTGACACAAATATTAA -TATCGTCCGCATTTCAAGTTTTATAGTTAACATCATTTTATCGACATTGAAAGCATGATGCCATGCAATG -TATGACTATTTTTATTATAAACGGAGGCGTTACATTTGAAAAAATTTCTTATTACTGTTGTTATCATCTT -GTTAATTGGTGCACTTGGATTCGCTATTTATGCTGCAATAAATCATTCTACATCATCAAATCATAATAAT -GAGCAAGATAATAAAGCTACCCATCAAAAGAAAGATACTGAAGTAAATCATCAAAAAGACGAGAATACAA -ACAACACAAATGAAAATCAAAACAGCAACAACGGTGTTACTAATGGCAATCAATCATCTACGCCATCAAC -TGTCCAAAATAACGGTTCAACAGCACCAGCGAATACACAACCATCTAATCCGAATCAATCAAATTCAAAT -CAATCAAATTCAAATCAGGGCGGTAGCAGTCAACCTTCAACGAATAACCAAAATCATAAACAACAGAATA -CACCGGCCCCAAACAAATCTAATAATGCTAATACAAACGAGTCTTCTAAGCAGGCATCACCATCACAACC -GCAATCATCTAAAAATTAATCATTTACCTGATACGTCCACAAGTATCAGGTACATAAATTCAGAAAAACA -GCAATGAGATATTTTTCTATTTGAAATATCTTACTGCTGTTCTTTATTTGCATAATTCTCACTTTGTTAA -ATTCATATAAAAGTTCGCTTTAATGTCATTGACGTATGTATAAGCTCTCATGTTTAATAATATTAATACA -CATTTAAAAACGCTTACACGAAAAATTTAGAAAGGAGGTACATGTTAAATGCTTGATAGACACTTAAAAC -TACTCCAGTTTTTTATTAAAAACCCATCAAAGCACATTAGTTCTAATGAAATTGCTGAACATGTCAATGT -TTCAAACCGCACAGTTCGCAATGATATCCATGTTATCAATAGCAATTTTATGGATGATATCATCGTAAGT -ATTAAATCTAAAGGATATCAATTAAATACATCGCAGTATACCTTAGAAACGATAACTGAACGTTACACGC -ATATTCAATCATATAAAGAAAAACTATTATTATCTATGGCGTATCAACTGCTAATGCACAATAAATCACA -GACATTGCAACAACTAGAGCAAGATTATCTATTATCTAAAACTGTGCTCAACGACTATTTCGTTCGAATT -CAACAATGGTGTCAAAAATTTAATATCGCTTTAACAATTAAGAAAAAACAAGGTATTGTGGTCGATGGAA -CAGATAATGATATCACTAATGCCATCATCCATTTAAATCAATTATCATCAGGGCATGTACATGTTGAAGA -CCTAATTTTAAATGAATTACCTGATTCACACCAAAGGATGATTTCGCATATTATACAAGAGACACTTCAA -CAACATAGTATTGAAACAACTGATATTCAAATACAACAGCTTTTAATTCATCTCATTTTAATCATTAAAC -GTAAGCAATCTTTAAGTGAGCTAGACACGTTAAACCACGATGCAAAATTGATATCTCAATCTTGCATTAA -GCAAATCAACGAAAGATTAGGTTATGACTTGAATGAAAAAGTAATCAATATGTTTTCATTCTTTATTGCT -TATCATTTTAATAAACTCGATATTGGCATAGAACGTATATTTATACAAAGTTATATTGATCGCTTAATCG -AATTGATGCAGCAACGTATTCATGTACCTTTCAATGAAGATTCGATTTTACAACAAAATTTATATAATCA -TTTTAGTAAAGCATATTTACGTATCACTCAAAACATTTATTTAAACAATCCTTTAGTTATAGAGATTAAA -AAACTTTATCCCTTTGTGTTCAACACACTTTTTGAAGCGATTGATAAATTAGCAATTGATACTGATATAG -AGATGAGCGAAGATGAAATTGCCTTTTTAACAATTCATTTTCAAGCTGCCATCGAGCGTCGTACCAAAAC -ACAATTAAATGTAGTCATTGCTTGTTATTATGGTCTAGGTGTGTCGAATTTTTTAGAAACTAAAATAAAT -AACTTATCCGAAGAGTTGTCAGTGATAAATACGATTAAACTAGAAAATATAACACACTATCACTTTGACA -ATGTTGATTTACTAATTACAACTCACGATATCCCAAAGCAAACTTTACAAATGCTCCCTAAGCACCTTTC -AACTATCAAGGTTGCACCATTATTTTCTGAGGATGACCGTCACAAAATCATACACGTTGTGAAGCAAAAG -CAAAATCCGGTTCAAGCACATCATCATATGGACACTGTTAATTTCCTTGTCGTAAATACTGAACAAAAAC -CACGACATACTGTGCAAATTTTTGAAGAAGCTCAAAAAATATTACAAGCACATCATGCGATTGTAGAAGG -ATATATCGAATCAGCTTTAGAGCGTGAGAAATCATCTTCTACATACATAGGTAATTTTATGGCGATTCCT -CATGGAGATCCTGAAAAAGTTTTACAATCACATGTGCTTATTTTTCGCACAAAAGATGTTTTTCCATGGC -GACAACACGATGTCAAACTCGTCTTTTTCTTAGCAATTTCACAAAAAGACACAGCTTTTACAAAACAAAT -GATGCAATTAATTGCTAACTTGGATGATGATTCAGTGAACCATTTATGTAGTTTAGATAATCATAGTTTA -AAGCAACAGTTATTTGAATACTTACAAGAATAATTGCCACTAGTAACGGTAATTATTCTTTTTTTTAGCA -TCAAGAATACGCTTACAATATGGAAAAGGAGATGATTTTATGAAAATTGTAGCTATTACCTCATGCCCAA -ATGGCATTGCACATACATATATGGCTCAAGAAAAACTTGAGCAGGTAGCAAAAGAAATGGGTGTGGATAT -TAAAGTAGAGACACAGGGCGGTGTTGGTGCTGAAAATGTTTTAACTACGCAAGACATCGAAGAAGCTGAC -GGTGTCATAATTGCAGCTGATAAACAAGTTGATCTGTCCCGATTTGTTGGTAAACGGTTGATTAATGAAA -ATGTTCGCGAAGGGATTCATAATCCGAGAGGTCTAATTCAACGTATCATTAATCAAGATGCGCCTATTTA -TCAATCTGAAACAAATTATCATTCGAAAGATCGCGGTAAGTCTAAAAGTGGTATTCAAATGGTGTATCAA -CATTTAATGAACGGTGTATCGTTTATGGTTCCTTTTATCGTAGTTGGTGGACTCCTTATCGCCATCGCGC -TGACTCTAGGCGGTGAAACGACATCAAAAGGATTAGTCATACCGGATGATTCATTTTGGAAATCCATTGA -AAACATTGGTAGTTTAGCCTTTAAATTTATGGTCCCAATACTAGCTGGATATATCGCTGTTAGTATCGCT -GACAAGCCCGGTCTTGTTCCTGGTATGATTGGCGGCGCTATCGCTGCTGACGGTAGTTTTTATGGCAGTG -ATGCAGGCGCAGGATTTTTAGGTGGTATTGTTGCTGGTTTCTTAGCAGGTTATATCGCAAAGTGGATTAA -AGATATTAAAGTTCCAAAAGCGATGGCACCAATTATGCCTATCATTATTATTCCCATTATTTCATCGGTC -GTTGTAGGATTGATATTTATATTTTTAATCGGTGCACCAATTTCTAATATTTTTGAGGCATTAACAACCT -GGTTAAAAAGTATGCAAGGTGCTAATATTATTATACTTGCGATGATAATAGGTGCGATGATCGCCTTCGA -TATGGGCGGTCCAGTAAACAAAGTAGCATTTTTATTTGGCTCAGCACTTATTGCTGAAGGTAATTACGCC -GTTATGGGTATGGTCGCAGTTGCTGTATGTACACCACCAATCGGTCTTGGTTTAGCAACGTTTGTTCAAA -AGTATAAATTCAATCATTCCGAAAGAGAAATGGGTAAGGCTTCCTTCACTATGGGACTATTTGGTATTAC -TGAAGGTGCTATTCCTTTCGCAGCTCAAGACCCACTACGCATTATACCTGCTAACATGATTGGAGCGATG -ATTGCATCAGTCATTGCAGCCATCGGTGGTGTTGGAGATAGAGTGGCACATGGAGGTCCAATAGTGGCTG -TATTAGGTGGTATTGATCATATATTATGGTTTATCTTTGCAGTGATAGTAGGTAGTCTTGTCACAATGAT -TACTGTACTATTATTAAAACGTCGCACACCAGTTATAGCAGTAGATGCACCAGCGCAACATACGCAACTT -CATGATACAGATATAACACAACATGATACAGAGGTTGACAATGTAGATAACACCGCGAAACATTCACATC -TCAATAAACCTTCTCATGTGTTTGATCAACAAACTATCATTATTGCTGATCATAACATGTCTCGAAACGA -AGCAATCGATACGTTGATTCATCAACTTAAAGTGTGCCGTTATGTAGAGCACACATCGCATTTAAAAAAT -GCAATCCTAGAACGTGAAATGGAGTCTACGACAGCTATTGGCATGAACGTGGCCATTCCACATGCAAAGT -CTGATGTTGTAAAACAACCGATTGTAGCTGTTATGAAAAATAATCATGGTGTTAAATGGGAAAGTCTAGA -TGGTAGTCTACCTCAATTGATTTTCTTAATTGCCGTACCAAACAACAGTCAGGATACACATTTAAAAATA -CTTCAGCGCTTATCTAAAGCGTTAATGAATGATGAGACGCGCCAATCACTAATTAATGCAAACAGTACTA -CAGAAATTTATAACTTATTAATGAAAATATAGAGGAGTTTTAACTATGGCATTATTTTTACAACCCGTTT -TTAAAGACAGAATTTGGGGCGGTCATGCATTAAAAGCATTTAACTATGATATCCCTAATGAAACAACTGG -TGAATGCTGGGCAATTTCTGCACATCCAAATGGTCCTAATACAATTATCAATGGTCCATACAAGGATATG -ACCCTAGATCAACTTTGGTCACAACATCGTGAATTATTCGATAATGATTCACGAGATAGTTTCCCTCTGC -TAACTAAAGTATTAGATGCCAATGATAAATTATCTGTTCAAGTTCATCCGGATGATGATTACGCTTTAAA -ACACGAAGGCGAACTAGGTAAAACAGAATGTTGGTATATTTTAGATGCAGCCCCAGGTGCTGAAATTATA -TATGGCGTACATGCACATAATAAACAAACGTTAACCGACATGATTGATAATCATGAATTTGACAGTCTTT -TCAAACGTATACCTGTTAAGTCCGGTGACTTTTATTATGTTCCTGCTGGCACTGTCCATGCCATTGGTTC -GGGTATTTTAATTTTAGAGACACAACAATCATCCGATACGACATACCGTATTTATGACTATGATAGACGA -GATCAAAATGGTCAATTGCGTGATTTGCACTTAGAGCAAAGTAAAGATGTGATTGAATTAGGCAATCATG -AACCAAATACTACTCCTATAACAACTCACATCGACACACACACTGTAACTCAATTTGTAGATAATCAATA -TTTTGCAGTATATAAATGGGATATTCATGGAGATTTAAAATTCAATAAACCACATGCTTATTGCTTAGTT -ACAATTATCGATGGTACTGGCACTTTAGCAGTAAACGATAAGCACTATGACATCCAAAAAGGTTCTAGCT -TTATTTTAACTACGGAAGATGAGGATATTCACTTTGTCGGTAATATTAGTGCTATAGTAAGTCATCCTGG -ATAATAGCAATGATAACACCCGTCCCATAAAAGACAGAAATTACTATCTCTTCTGTCTAAAAACATAAAA -ATCCACACATTAAGGAGCTATAACCCTAATGTGTGGATTTAATTTTTATTCTGTAACGTTACTTTGGTCA -ACTTTTTCAGATACGCGCTTCATCAATGGATCTGTTACAGGTTTTAAAATTAAACCTACAACGAAGAATC -CTATGCCAAATAACGTTAATATAATTAATTTTGTAATTAAGATTTCCGGAACAATACCGCCTACTGTTTC -ACGTAATGAATCAATTGCATACGTAAATGGTAAGTATGGCGAAATGTTTTGGAAAAATTGTGGTGTCGTT -TGAATTGGGAATGTACCTCCACCACCTGCAATTTGTAATACAAGCAATACGATTGCAATGGCTTTACCTG -GGTTACCAAGTAATGATACGCACGTATATACGATTGAGTTGAAAATAATCGAACAGAAAATCGTTATAAG -TACGAATAATACAGGTGACTCAACTCCTGCTTTTAGGATTAACAAATCTCCAACCGATACAATGAGTGCT -TGCAACATACCAAGCATTATAAAGAATCCTGCTTTACCTAAGAATACTTGTCGTGTCGTTAACACTGGCT -CTAAGCTCTTATGTTTATTATCAACAGTTAATAGGCTTACCATTAAGAGTGCGCCTACCCATACCGATAA -TGCAGTATAGAATGGTGTCATCCCTGATCCATAATCCTTAACTGGGAAAACATCAACAGTCTTCTTATTA -ATAGGATTTGCAATAATACCCGCTTGCTTTTTCAAATCATTCTTAAGTGTGTCGATTAATTTATCGACTG -CATCGTCTTTGTCTAACTTCTTGAAAATCTTATTCGCTTTTTTCAGATCTTTTTCAACATCTGGCAATTT -ATTTTGTGCAAAATCAGCTAAATCTGATAAAGCCTTTTTCGCTTGTGGCTGATTTTTATTTAGTAATCCT -ACCGCTTGATCATAACCATTTAATAACGTTGGTAAATTTTTATTCACACTTGCAGTCGCATTGGTTAAAC -GTTGCTCCAACTGTGGTAAATCGTTACGTACAAAGTTAGCTGCTTTCGCTACATCACTTTTCACTTTCGG -GAAGTTTGCTTGAGCATTTTTAATAGCACTAATGTATTGTTGTTCAATACTTGGTAATACTGTTTGTAAA -CGATCGATACGTGTTTTACCATTTTTTAAAATAGATTGACCACTGTTGATGACTTGATCAATTGTATTTA -GCTTAGACTGAACATTAGACAATGCCGTTTGCCCTTTGTTCAATTCATCCATAATACGTTGTGATATTGA -TACTAAAGAGCTGTTAAGATCTTTTTTAACATAATCTCTAAATGATGATAATGATGAATCTAGTTTTGAC -AGTTGATCTAGTAATTTAGTAGCTTCAGCAGTTCCTGAACTACCATTCTTTAATGCATTACTTAATTGAT -TAACTAACCTTAATGATTCATTAATTCGATTATTAGCTGTCTTTACCTTATCAATTTCTTTTGATAAATC -AACATTTTCATTCTTCTCAATCTCTTTTAATGTATCGATAAATTGTTGATTATATTGAGTTGTGTATTCT -AAACCGGACTTAACATTATCTAAAGACTCTCTAAAATCAGATGGCTTGTCCGATGCTAAAATGCCATACG -AAATATTACGTAATGCCTGACTATCTTTTTGTGCGGCTTTCGCTTGGGTATCTAAATTATTTGATAATGA -TAATAAAGAGCCCGTTAATGCCGCTTCCATTGATTTAACATCTTTATCTGTAATATTTTGTGTGTTCTCG -TTAGCTGTGCTGACTTGTGTTGTTGTTATATCTGCAAAACTTTGACCATCTTTTTTCCCGCTTGTACTTT -GTGGTGTAGTCGATACAGGTGCATTATTACTATTTGGTGCGGTATTTTGCGTAACATTATTATTTGGTGT -AGTATTGCCATTTGGTGCACTTGGTGGCGTTGATGTTACACCATTACCAGCTGCAGGTGCACTATTTGAT -GTTTCGTTGTTCGCCGCGCTATTTTGAGGAATCTGTTGCTGGTTTCTTCGATTCAAATCTTGCGCGCGTC -GAATTGCTTCTTGATAATCACCGACTCTACTTCTAACTTGTGTGACGAAGCCTTTGGCATCATTTAACTG -TCCATTAGCTTGATCAATACCTTGACTCGCAATGTTAAGTCCTTGATTAATTTTAGGGAACTGCGCTGGC -ACGTCATCAGCTGCAAAATTTAACGCTTTTTCAATTTTCGGCATATAATTATTTAAAGCTAATATCAACT -TAGCCTTTTCATTAAGTTGCGGAATAGCACCATTGACTTCGTTTAATTTTTTCTGAGCATCTAAAATATC -ACCTTTATAATTTCCTAGTTTTCTAAAATCATTCGCATATTTATCTAAATCCGCTTGGTGGTTATTCAAA -TATACAATTTTATTCGCAAAGTCATTAATCTTAGGTAAAGCTTTATCTGCCGAATATACCGCATTTTTTA -TCTTATTAATTGTCGGCACATTTTCTTCAATAGTTAAACCTGCTTTGTTAGCTTCTTCTAATAATGCTCG -AGTTACTGTTTTATTAAATTGTTCATTCGCTTTTTCAACGACAACTGACGAACCAGTATCTGTTAGCTTA -GACGCAACAGCGTTAATCTTCTGATTCACCTTAAATTCTACATCTGCTTTTTGAGGCTGCTTACGTAGTG -TCCCGGTAATTTCATGTGTAAACTTAGATGGGATGTAAATACCTGCAAAATATTTACCCATTTTTATCTC -ATGATCAGCTTTCTCTCTACTTACAAACTGCCAATCAAAACTTTTATTTTTCTTGAGTGTGTTAACCATC -GTATTACCGACATTAACTTTTTTCCCTCTGATTGTGTCGCCTTTATCTTCATTAACGACTGCGACCTTGA -TGTGTCCCGTGTTGCCATATGGATCCCACATTGCCCATAAGTTAAACCAAGCGTAGAACGATGGCAAAAT -AGCTAAGCCTGCTAAGATAATCCACACAGCTGGCGTCTTAGCTACTTTCTTCAGATCCATTTTAAATAAT -TTAAATGCGTTCTTCATTGTCACACTCCTATGTAGGAATTATTCATATTTTTTATATATTTTTTGTAAAT -TAATTTATTTTTGCGTTGTGAATTAGTATAATCAATTTACTGGAAGATATTTAGTCGATTGATACCTATC -AACTATTTTCAGCATACGATAAATTATAACAAATCATAGTTTATTATCACACTTAATTATTATATTTTTC -AAGGGAGAATACGAAATATGCCTAAAAATAAAATTTTAATTTATTTGCTATCAACTACGCTCGTATTACC -TACTTTAGTTTCACCTACCGCTTATGCTGACACACCTCAAAAAGATACTACAGCTAAGACAACATCTCAT -GATTCCAAAAAATCTACTGATGATGAAACTTCTAAGGATACTACAAGTAAAGATATTGATAAAGCAGACA -ACAATAATACTAGTAACCAAGACAATAACGACAAAAAAGTTAAAACTATAGACGACAGCACTTCAGACTC -TAACAATATCATTGATTTTATTTATAAGAATTTACCACAAACCAATATAAACCAATTGCTAACCAAAAAT -AAATACGATGATAATTACTCATTAACAACTTTAATCCAAAACTTATTCAATTTAAATTCGGATATTTCTG -ATTACGAACAACCTCGTAATGGTGAAAAGTCAACAAATGATTCGAATAAAAACAGTGATAATAGCATCAA -AAATGATACGGATACGCAATCATCTAAACAAGATAAAGCAGACAATCAAAAAGCACCTAAATCAAACAAT -ACAAAACCAAGTACATCTAATAAGCAACCAAATTCGCCAAAGCCAACACAACCAAATCAATCAAATAGTC -AACCAGCAAGTGACGATAAAGTAAATCAAAAATCTTCATCGAAAGATAATCAATCAATGTCAGATTCGGC -TTTAGATTCTATTTTGGATCAATACAGTGAAGATGCAAAGAAAACACAAAAAGATTACGCATCTCAATCT -AAAAAAGACAAAAATGAAAAATCTAATACAAAGAATCCACAGTTACCAACACAAGATGAATTGAAACATA -AATCTAAACCTGCTCAATCATTCAATAACGATGTTAATCAAAAGGATACACGTGCAACATCACTATTCGA -AACAGATCCTAGTATATCTAACAATGATGATAGTGGACAATTTAACGTTGTTGACTCAAAAGATACACGT -CAATTTGTCAAATCAATTGCTAAAGATGCACACCGCATTGGTCAAGATAACGATATTTATGCGTCTGTCA -TGATTGCCCAAGCAATCTTAGAATCTGACTCAGGTCGTAGTGCTTTAGCTAAGTCACCAAACCATAATTT -ATTCGGTATCAAAGGTGCTTTTGAAGGGAATTCTGTTCCTTTTAACACATTAGAAGCTGATGGTAATCAA -TTGTATAGTATTAATGCTGGATTCCGAAAATATCCAAGCACGAAAGAATCACTAAAAGATTACTCTGACC -TTATTAAAAATGGTATTGATGGCAATCGAACAATTTATAAACCAACATGGAAATCGGAAGCCGATTCTTA -TAAAGATGCAACATCACACTTATCTAAAACATATGCTACAGATCCAAACTATGCTAAGAAATTAAACAGT -ATTATTAAACACTATCAATTAACTCAGTTTGACGATGAACGTATGCCAGATTTAGATAAATATGAACGTT -CTATCAAGGATTATGATGATTCATCAGATGAATTCAAACCTTTCCGCGAGGTATCTGATAATATGCCATA -TCCACATGGCCAATGTACTTGGTACGTATATAACCGTATGAAACAATTTGGTACATCTATCTCAGGTGAT -TTAGGTGATGCACATAATTGGAATAATCGAGCTCAATACCGTGATTATCAAGTAAGTCATACACCAAAAC -GTCATGCTGCTGTTGTATTTGAGGCTGGACAATTTGGTGCAGATCAACATTACGGTCATGTAGCATTTGT -TGAAAAAGTTAACAGTGATGGTTCTATCGTTATTTCAGAATCCAATGTTAAAGGATTAGGTATCATTTCT -CATAGAACTATCAATGCAGCTGCCGCTGAAGAATTATCATATATTACAGGTAAATAAATATTATTAAACC -CGTAAAATTTATAAGTATAAACAAGGAGTTCGGACTTAAACATATTTCTGTTCATAAGTCCGATTTCTTA -TTCAATTAAACCCGAGGCATTCAGTTCGAACGCCTCGGGTCATTTTATATAAATATATTATTTTATGTTC -TAATGTTCCTCAACATATCCGTTTCAATTGCCATCTCACACATTTTATAAATATGAGCAAATGTACTTAT -TCTCAAACATTACTGCCGAGCTTTAATTGACGTTATATTTACTATAAACTACTTTTCCATGACTCTACGG -ATTCAATGTCACATGAGCGTGATAAAATTTGTTCAATAATAAAGTCATGTTTATCATCTGATCTATCACC -AACAGCATCTTCTAAAACAGTAATATAATAGTCTTTATCTACACTTTCTAATGCCGTGCTCAATACAGCT -CCACTTGTAGAGACACCCGTTAATACTAAATGATTAATATCATTTGCACGTAAATAAACTTCCAAGTAAC -TACCTGTAAATGCGCTAAAGCGTCGCTTAGAAATAATCGGCTCATCTTCTAGTGGTGCTAAGTCTTCAAG -TATTCGTGTAGATGCATCTGCTTCAGTAATCGCATATCCTTGAGCTTTAATTGTTGAAAACACTTTATTA -CTCGAGGAGACATCATTAAAATGCTTATCTAACACTAAACGTATGAAAATGACTGGTATTCGATGTTGTC -TTGCTGCTTCAATTGCTCTCTGATTCGCTTTAATAATATTCTTTATTCTAGGTACACTACTCGCTATACC -TTCTTGCATATCCAAAACTAATAGCGCCGTTTTTCGAGACATCTTCATTCTCCTTTACTTGTGTAGTTCT -AAGTCGTTAAATTCATTATAACGTTAAAATGATGGACAATCTATTCATTGCATTTTGCATATACTTCACA -ATAATTTAAGGGGGAAATAAGACGTCTTATATACTTAAAAAATATATAGATGCACTTCCCCCAATATAAT -TATGCTTTATTTTTCAACTTATTGCGTCGTGATAACCAAATCATTAGTACACCCATTGCACCAACAATTA -CAGATATCGGCAACCAATGTTCTTTTATCGTTTCCCCCGCTTTAGGCAAAGATACATTACCATCAGCATT -TAATAATCCACTTAACAATCCATTCCCTTTACCAAGTGTTAACGTCTTTTCTGGCTTTGGTGTGGGTATA -TCTGGAATACTGTCTAATAAATTTGATCCTTGATTCATTAAATTTGCTAACTTATTTAAATCTGTCGTTT -TCCCATTTTTATTCAATCGATCTAGTAAACTTGGACGATTTACTATTGGTGATAAAACATAGTCTATATC -TTTTTTCGTTTGATTGAGTCTCTTTTGTAAATTCAATAAATCATCCGCTTTACCATTCAATGCCGATTTA -ACTAAATTAAAAATTTTATTTTGATCTGTTTCTATTTTAGTAATTAAATCTGCCAGTAATTTTGCCTTTT -GTCTTTCTATACGTGTTGCTAAAATCGTTTCAATTGCTTGTTTTTTATCTTTGGCATTATTCAAAATTGC -TTTTAATATATCATCTGAAGACGTGTCGCCAGTTGATGCAAAATGTTTCTTCAATTGGTCAACGATTTGG -CGATTTGATAATCCTTTATTCGTCCAATCTTTAGCCAATTTATCTGCTTCAGCTTTTCCTAATTTCGTTT -GTAAAATTTGAGAAATCAATAGCGACTTATCTTGTGATTGATCAATCAATGACGTTAATAAATCATCACT -CGTTGTCAGAGATAGTTGATCAATATGACGAGTAATTTGATCTGCAATTTGTTGATCTGTTTTACCATCA -ACACGTATATCTTTTAGAATTTTATCTGCCTCGTCTTTATTAAATATACTTTCTAAAATGCGTTGTGTAG -CATGCTTTTTATCATCAGTACGTGCAAGTTCTTCCAAAATAATATTTCGTTGACTTTTTATACGCTCTTT -CGTCTTATTTACTTCGCTCATTAAGTCTGATTTTTGATTTTTAGGAAGTTGCGTATTTGCAATACGTTGA -TCTAAAGATTGTAATGTATTCAGTTTATGATATGTGTAATGTTGCGTTGAGGCATTACTTTTGGCCAATT -TTTCAATCATAGCATGATTAATTTTATCGCTTCCTTGTAATTTATCAGTGAGTCGATTACTATGGCTTTG -ATTCTCTTCATTTGAAAGAAATTTATTTAACACAACATGTCCAGAACCATCATTATTTGGCGTTTTAGCT -ACTTCATGATTATTATCTGTTGTAGACACTGCTGAATCTTCCGATTTGTGTATTTGCTGACTCAAATGGT -CTAAGTCTTCTAACGCCTTATTTACCATTGCTTCATCATTTTTATCATCTTTTTCTCCATGTTTTGTTGT -AGCCGTTTGTGACATATCATTTTTCATTGCATTAAGATCGTCCTCGTCACTTTGTTGACCCCTATCAACC -TTTGAAGAAACCTCATTTAAATCTTTAAGCAATTGATCTAATTTACTGTCTATATCACTTCGACCGTTCA -TTTCAATTTGAGAACCTTTATTGTCTTTGCTATCCAACTCATTAGCTCGTTTTATGATTTCATCTATTTG -CGATGCTGTTTTCGCTTCATTTAGTTGTGCTTTATAATGTGCTTTAGATGAAGCCGATAACTGTTTTAAT -TGCTCAATTTGACGATTTGCTTTGTCAACTTTGTCTAATAAATCTTGCTTAGATAATAGCTCTTTTGAAA -TTTCAGTATCCTTTTCAGATACAGCTTGGGCATCGTACGGCAAGATATTCGTTAAAATGATACTAGTCGC -CATCATTGTCGAACACGATAACTTTACATATAATTGAAACGGTTTCCCTCGATATTTAGCCATCAACATA -CTCCTTTCTCACTTACTTCCTTAAAAGAATTACATACTATTATATACCTGTTTACAAGAAATTTACACTT -ATCTATCTAGTTATTGTTGTTAGTAATTATCTACTTATTACTTAGCTTATATTTAAGTAAACAAAACAAG -CATGACGTAATATCATATTGTCCATGTCGCTAACATCATATTACGTCAAATCTTTTATATTAAATGATGT -TTTATTTTAGACTGCTTTTTCTTTTTAGCTTTCGAACGCCTGTTTAAAAACTTGCTCGAATTGTTCACGC -GAGATTTCGTGTGCATGTGCTTTTTGTGCTAATAAAGCATCTCGAAACTGTTGTTGATCTTTCAAACTTT -CTAACATTTGTATTAATTGGTCTTTACTTTCCATTGTTATCTCATCATTATGCTCAAATAAGTGCTCTGA -TAGTGTTACTTTAGCATGGTGTGCTGTTTGACGATAACCTAAAATCAACAACTCATAGTCAAACGCTTGT -TCCACCGCATTTAAAATTTCATTACCCTCATTAATATCAAGATAAATATCACATAACTGGTATAGTTCAT -TTACCCTGTCTATATTAATAGATGGGTATAAGTGCACATTAGCATATTGATCAAGTTGCATTAGCTTATC -AGACATCTCTGTAATAGCAGCGATGTGAAACTTAAAATCTGGTAAAGTTTCAACCAATACCTTGATGTTA -CGAAGTTGATCCGAGTTAGTTAATATTACAATTTCTTTAGTATATCTATTACGACTACGATAATTATATA -GATATCCGCCTTGTAAAATACGAGATTTAACCTTTGCGTCTGCTATATTGAGCATCGTTTCATATTCGTT -TTTATCTGGAATAATAATATTACAATGTCGTTTCATATCACCTTTACACATCAATTGCATATTTCCCGGG -ACATTACCATCGCACTGTTCTTGCCATACCAAAACATCACTACCATTTGATGGCAAATTATATAACACTG -AAAATGGTAGGGCTAGTGAGTTAATAACGAAATGATGTTCCGTAATTTCAAGTTGCTTGATAAAAAATAA -TACGAATGCGAGCTTTGAAGGGAAAAAGTAAGACTTTCCTTGCCAATCCAATATGACATCAGATGTTACA -AAATTTTCATAAATCACTTCTTTACCTTCTGCTGTCATATATTTCTTCAAGATCGCTTTACGATTTAAAT -CGTAAACAGTTTGTGCAAATTTAATACCATTCTTAGAATAATAATCGACAAATCGGACACGTTGTTGGTC -ATCAAACCATTCGACACGACTAACAATTCTAGGGCGCTCTCCACTTTGATAAAATATTTTGCCTCGTAGA -CGTCCCATATCATTAATTGTAGCCGAATTGTTGTTACCTTTAATTTCCCAAAAAGCTGGTACAGTAACCT -GATTAAAAAATCGTGGTTTCATATTTTCTGTATTATGATTATCTGCAAAAAATTGATACGGTGATATAAC -ATCGTCCGGTAAAAAACCATTGTCATTGAGTACAATTGTTAAATCTTCCTCCAACTTACTGGCTTTAAAA -GACTCATATAACTTTCGTGAATGACCGTTAAAGTAATCAAATAATTTAATCATGCAGCACCTCTTGAACT -AATGTTTCCCATTTTAAAATAATATCTTGAGTCATAAATTGCTGTGCCACTTCATAAGAGATGTAATGTG -GTGTCTGGGGTCCATTGTTAAAATACATTACAATGGCATGAGCTAGTTTTGCGACAACATCATCCACACT -ATCTTCATCGGTATCAAAAGGTACCAAGTAGCCATTTTCCCCATCTCGAATAAAGGTTGGGTTACCATAA -TTCACATTTAATCCAATCATACCTAGTCCTGAGCCTACCGCTTCCATTAGTGTTAATCCAAAACCTTCGC -TAGTTGATGCAGAAAGAAATAACTCATAATCAGTATAAATTTCATCAAGTTTAACATGACCTAGTAAACG -AATATAATCTTGCGCGCGGTGTGTATCAATAATTTTACGCAGTCGCGTCTTCTCACTACCTTCTCCATAA -ATATCAAATGTTAATTCTGGCACTTGTCGTTTAGCCACGATAACTGCTTTGACAAGCCAATCAATATGTT -TCTCATTTGCTAAACGAGATGCACTAATCATCGCGTATGGCTTTCTTGATAATGTTGGATATGATAATGC -ATCAATGCTTCCCACCGGAATAGTATAAACACGTGGGCGATAACCTTGATATTGCTCAAATTGTCGACAA -ACCATATGATTTTGAATATCTGTCGCTGTAATAAAGAAATCAATGTATTTAGCTTTTGAAAATTGATATT -CATAATAATTGTTCCATAGTATATGCTGCTCGCTCATCATATTATTACTATAATGATCAGCATGAATCAC -AACACCAACTTTACTATCACCTTTATGCTGCAAAACAGCCTGACCAATATCAGAAGCGCGGTCTAATATG -ACAATATCGTCTCGGGTTAAATTCAATCGTTGTAAAAAGTATGCAATAAATTCCGTTTTGTTATACAACA -CCGCATCTTCAAACACATATATAGAGCTGTCTCCATCAATATATTCGTTATAAGTGATGGAGCCATTTTC -ATTATAGAATTGTCGCATATATAATTTCGCTTTATTATCAGCTGGTGCATAATACTCAGAAAATATGCGT -GTATAACTATAAAAATCTTTACGTACTAACATACTATTAATTACAAATTCTGCACGATCCACAATGTCTT -TTTGTTCATTTTGCAGATAACATGTTACAAATGATGATTTCCCATTAAAATATAGGCGGACTATCTTACC -ATTTCTTTCTCTAAAACTAATATCATGACCAAGCTCACGTTCAATGTCATCTAACGTGTACGTTGTTGGT -GCTATAGAAATATCACTAAAATACTGATACAACCAAATAACTTCTTGATCTTCAAACCCAATGTTTTGCG -TTAATGTCTGTATGTTCTCTGACTGTATAAAATCTAAAAACACAAATTTAGTGTCTTGATTTGTGCGTCT -CAATAATTTAGCACGGTAAGCTTGTGCATATTCAACACCGCTACTCGCCCAGCCTATACCAAAGTTTATA -TTATATATTGTCATGCGCTACCCCTTTTCGTTTATGGAAAATGTATAACTGGCATACCTTCTTTATCAAA -TGTAATCATGCTTTGACAAATATTTTTCACCATTCTTTTTTTGATATTTCGTGTCATAACTTCAAATGAA -TCTAATGCAACTCTATGGTATTCAAAAATAGCGTTACGTTGCCCATTTTGTCGTTGATTAACGTTTGCTT -TTAATTGTTGTAAATAGTCGACTTGTTCTAACCAACATGAATCAATTGCTTTTAAAAAGACTTTTTGAAC -GAAAATATTATAATAATATGCACTTTGCATGTTTTTACGATTCAAAGCTATTTGCTTTTCAAATTGCTCT -AATAAAAATGTTACTACAGCTTGCTTATCTTTAAAATTAACACAAGCCACATCTTTATTAAATTGGAAAC -TTAAATTTTGATAAATATACTCGACAACACGCGATTTTGTTAGCACCTTTTCCTCATTTACAAACATTTC -AAACACATCTTTAGCTAACACTTTAAAATCTCGATTCTCAGCATCATCTATTTCTAAAACTCGATTGCGT -TCCTCGTATACAAGATCTCGCTGTATACTAATGCTTTTTTCAAATTCATTAGCCATTTCACGAGCTTTAA -CCCCTTGTTCTTCCGAGATACGCTGCGCTTTAACTACAATTTGCTTAACTTTGCGATTAAACAAACTACT -TTGCGATAATCGTTGTGCATCTAATGAATATAATTGATTATTTTCCGCTAAATTACTATCGCTCCATCGC -TTAACTAAATAATCATCTAGTGAAATATATATACAAGATGATCCTGGATCCCCTTGTCTACCAGAACGAC -CACGTAATTGCCTGTCTACACGGCTATTTTCCATATGTTCATGAATAATAACAGCTAATCCACCTAATGC -TTCGACACCTTCACCAAGTTTAATATCTGTGCCTCGACCTGCCATACTAGTCGCAACAGTCATGGAACCA -ATTTGCCCTGCTTCAGCTATCATCTGCGCTTCTTTTGCAACATTTTGCGCAATGAGTAAATTATTAGGAA -TATCCATTTGGAAAAATACTTTTGAAAAGTATTCAGCCGCTTCAGCAGTTCTCGTTATGAGTAAAACCGG -TCGCCCCGTTTCATGAAGTTCAACTATATCATGAATCATTGCGATGTTTTTCTCATCAACTGAACGAAAC -ACTTTATCTGGTTCATCGATACGTTGAATCGCTTTATCAGTTGGTACTTGTACGACTATTTTTGAATACA -AATCAAAGAACTCTGATTCGCCTAATTTTCCTGTAGCTGTCATACCTGAAAATGATTCAAAAAGTTTAAA -TAAATTCTGAAAGGTAATTGTTGCCATAACACTTTTATCTGTTGAAACCTCCATACCTTCTTTCGCTTCA -ATAGCTTGGTGGAGTCCAGCTTGCAACTTAGTTCCCGGTAACATACGACCTGTAATACGGTCAATTAAAA -CAATATCACCATTATATACGAAATAATCGACATTAGATTCAAACAAATATTGCGCGCGCAGTGCTAGATT -AATATTACGCACTAAGACCATCGCTTGTTCGCTATATAAATCTTCAACATTAAAGTATGATTGTGCCGCT -TCAATACCTTGATTTAACAGCCATATTTCTTTTTTGGTCTTCTTCATTTTAAAATGCACGTCTTCAATCA -ATGTATCTACAAACTCTTTCACAATATGAAATAGATTTGATTGTAATCTTGGTGCGCCCGAAATAACTAA -TGGTGTTTGCGCAGCATCTAAAATGATTGAATCCACTTCATCAATAATACCGTAATTTAATTGTGGTAAA -AATTTCCCTTCCGCACTATCTGCCAAATTATCAATTAAATAATCAAAACCGAGACGTCCATTAGTTGTAT -ATATAATATCATGTTCATATATATTACGTTTTTCCCCTTTTTGATACTCATAATCCACAATATCAACAAA -ACCTAATGAAGCAGTTAAACCTAACCATTCATATAATGGTTGCATCTCTTCAAAATCACGCTTCGCTAAA -TAATCATTCGTTGTAATTAAATATGTTCCTTTTCCCGAAAGTGCATTTAAATATAAAGGCATCGTTGCTG -TTAATGTTTTACCTTCGCCTGTTTGCATCTCCGCAATGTTACCTTCATGCAATACAATCGCTCCGATTAA -CTGAACTTCTTTAGGATACATACCTAATACTCTCCAGCTCGCTTCACGTGCCACTGCATAAGCTTCAGGT -AACAATGTGTCTAGTGTATCAACTCCTGATGCTATACGTTCTTTAAATTCTAGTGTCTTTTGTTTTAACA -CATCATCAGAATATGATTTAACTTCATCGCTCCATGTATTGATGCGTTTCACTATTTTTCTAATCGACTT -TAGTCTTAATTCGTTTATCGTAACATCTAGTTTATGTTTCATTTACTTCCCCACCATTCAGTTTCGATAC -ATCTAAGTAATCTAAAAATCGTACTGGATTCATTAAACGTGACATATAATTTAGATGGTTGTCTTGCTCT -TCTTTAAAATAAACCTCGACATTTGTATCTTTTAGTTCATGATTTCCTGGGACATGTTCTGTAAACCATT -CTTTTAAATCATCATCTTCATGGCTTGTACGATACACTTTGCAATCCAAATGCTGAGCGACATAAGTTGC -AAAAACATTTGACTTTGACCCATAACTAATCAAATTAATTGCCTTTAGGGTATCTTGACTTTGCAAATCA -TTCTTTAGTTGCTTAATATTTCCCTCGATATTGTCGTCCATCCAACGTTCAACGAGCCAAACATGACCAA -ACGATTTCAAAAAATCATTCGAAATAGTTGGATAGGCGTCAGATGGTTCTGCAATAATGACATTGATCCT -ATCATTTCCATATTGGTCATCGCCTATCTTCGTCACCCGCATGCTTTTATATTCTAAATTATCTTGATGC -GTCATCTCTGTAATTGTTAAACATCTAAATATAAGACTCGTCGATGCTGCATTCATCATTTTTATTTTAT -AAGCATAGGCTTCATCAGGATATTGAATCGTAATACTATTTGACTTTACAATCTCAGTACTTAGTTTTGT -GCCATTTTTATTATAAAAAATGATGATAAAATACACTGAACCAGCAGGCGTTGCATCAAAATCAAAATGC -AATTTATAATGCTGTCCTCTACGCAAAATTGGTAAACTTGGTGCACTTTTATATTTTGAAAATTGTTTTA -ACATCAACCACTCATGAATCGGTAATCCAGAGGGCATCAAAGGATTTATAAAAGTTACTTCACCATTTGA -AAATGATACTTTTGAGCCATACATAAATGTAGTTTGTGAAATATAATTCCAAGTAACTTTAAATGTTTTG -TTTTTCAGCATGTTGAACTCTCCCAAACTTGTCTTCCAAAATAATGTTGTAAAAATTAACAAACCAACTT -GCAATGGTAGGTGAATCATCATTATGTCGCCCAGGAATACTGCGATTCATCACTCTTGCTTGGTGTGCTG -TCAATACAGGTAGTAGCTCTTGAAATGCATGTGGATCATAATCATCATGTTGCATATATGCTATGGCAAA -AACAGTTTGTGACAATGATTTCTTTTGAAATGTTTGCCAAAATTTTTGATTTAATGCCTGTATCGACGCT -TGAGATGTATCACCTTCATTAGACACCAGGACGTCTAATGCTGTACCGAACTCTTCTGGTCTAAGTAATC -GCATATGTTCAGCAATCGTTCCAATATTAACAAGTGGTTTACCAACAATAATTGCCTGAGGATTTAACTG -AGCACCATAATACAAGGCACCAAATGACCCCATAGATAAACCAGATAATATTAATTCATGTGATTTAAAA -TTCAGCTTTTCTAATGTCTCTTCAATAACATTGATAATACCTTGTTCATATTCAGATGAACCGATATAAA -AGCTACCACCTTCAACACGAGGATCGCCGATTAGTAAAAAGGGTGCATTCATACGTTTCATCATATAATA -TCCTTCGAAACCTTCCGCTGTTCGATAACCACTAAAATATACGTTTAGTGGTGGTTTCATATCACCAGGG -TGGAAATAATAAATAAATTCCTGTCGTTGACTATCTACAAAACGACTACCACCGAGTAAAAATTGACCCA -TGTCTAATCTAGACCATCGTTTGTGTATAGGTCCTAAATGTACCGTCCCGTTCCCTCGCGCCTTAACAGT -TACACTTATATAAGCATCAAATGGTTTCGTAGGTATCTCTAAAGGACTGTCTAACATATCATCAGTCAAT -ATGATTTGTTCAATTAATGCACCATCAGCGCCAGTTTGAATCAATCTAAATGTATATTGCAACTCGACCG -CACCATCAATATCAAATTCTGGCCATATTTGAATGACTTTATCTTTATCGTAAACGAGATTATTTTGCCA -AGATGCGATAGGTTTAAATTCTTTTCCAAATTCTCCACTCAACGTGAGCTCTGAATTACCTTGGTAAACG -ACATCTCCTTTAAAATTCGGATGAACAAGTGCTAACTTAGGAGAAACCTTATCTCCATACTGTCCTGAGA -AGCTAACTGCCTCTAATTTATTATTACGTTCTTCAATGTTCCGGTAATGTAATGGTTGAACAACGTATTT -TTGGACATTTTCGTCTTGTTCATATTCAACAGACCAAAATGATTCATCAACATACGTATTGTATGGTTCG -CTTATCATTTGTAATAAATTCGTTAATGTCTCCGAGTATGGTGCTTGAATATAGATAAAATCAAAGCGTC -CTTCTGCTTCAACAATCGCTTCAATAGCCTCTACATAACCACTATCAAATTCAAACAATCCAATATCGAA -GTAATCCCAACTCACACCTTTTTTGTGTTGGAAAATAGGTTCTAAATCGTCTCCTCCAATTTGCAAAACT -CTAAATTTACGTGGCATCATTTTCACCTTCTATTAACTCATCGAGCTGATTAATAATATTCTTAGAAGCA -TATGCATCTATTAATTTTAAAGAATAGGCGTACGCATAATTCCAATTTTTCAAATAAAATAAATAATAAT -TTAACGCATCATCTAATTCATCAACTGTATTTATAATACGGCCATTGTCATAATCAGAGACTTAATCTGT -TTGTTGACCATTAATTTGTGGAATCCCAGCGCTAATTGCACTAATTTGTAAATACAAATCAGGTTCTTTT -GACATATCTATCACAAGTCGCAACGTCCGCAATGCTTCTACAACATCATGTTCAGCATGTATCGTCTTAA -CAGCAATGATGTCATCTTGATCTTCAGGTGTCATTAATGCTGAAACATTAACATCGGCATTCTGTTTAGC -TTGGTATTCCTCATTTACCGACGTAATACATTCACGAAGCCACATCGGTATATCATTTTGATGGCGCGTT -AATAAAATTAAACGGTAATTATCTTCTTGTGCGATATAATCCACAAGTCGTTGCATCATTTGTTGCAAAT -CAACGTCACTCATACCGTCTATCCATACACCTATAAATGTTTCCATCAATTGACTACTTATATTAGGTGA -TTGTCTCGTTTCAAATGGCGTGATTCGAATCATTGTATTCTCTCGCTGATACTTCTCTTGATGACTAATT -AAATCACGTTCTAGTTGCACACTATCAACAATTAAATGGGCATTCTTTACGATAGATTGATATTCCTCAT -CCGACACAGTTTCATTTCTATTTTTAAAAAATGAATAACTTAATGATTTCGCCGGAATATGATTGGCTAT -TTGTCGATTGTGCCTAGCATCTGAAGCCACAATCACATGATCATCTTCATGTATTTGATGTGCAATCATT -GCTTGAAATTTTTCTTCAATTAGTTGAGCCATATTGTTATATTCTGTTTGTTGATAGTGATGTTGATATC -TTTTTGAAACAGTGACTCTGCCATTTTTCAAATCTTCATGAAGTACACAATCTCCATTAATCGTTAAATA -TTCTTGGTAAGAAGCCTCTCCCTGATCATCAAAATAACGTATAGCTGATAAATAACCTCTGTCATCAAAA -ATATAACGCCGTTGTAACTGATCTCTTTCAAATTCTTCAAACCAAATTGAATACCCTTCTTGACTAAAAT -AAATATTTGTATAGGTCTGTTCACTCGTCACACATTTTAATAAATACGGCGTGTACACAAACTCAACATC -ATCCGGCCATTTTAAGTGATGATAATTAATCGCTTGTGGCGCATGGTGACTGAATCCTTGAATTTCATCA -AACACAGACCAATACTTTGTCTCATATAAGTCATATCGATGTAAAAATGTTCTTAAATTTGGTGCATGAT -TGAGAACAATCAGACGATAATCTAAGTCATTTTCAAGGTGCATCCCCATCAAACTAATCATATCGTCAAA -TTCCGTCTTATTTTGTAGTTGATAATACGGCACAGTCGTGTCTTGCCACCATCGTTGGTCATCGTACCAA -GCTGGAATAAAGTATTTCATAATTACCTCCTTACCAATACTGGTTTAAAAATGGCTTATATTTATCAAAA -TATAAATATGTACGAATTGTTTCTGCAATATTAATACTGATGTAAACTAATACAATCAGTTGTACTGAGA -AATAAATTTCAGTAGATAAATGCGGTACAAACAATGTGAAATAAAGTGGTATACCAATAATGACTGTAAC -TAATGCCGATCCAAACCAACATACGCGTCGTGCTTGATAATTTAAATAACGTTCTGTATCCTTACCAGGT -TTAACTCCTGAAAAATAATTGCCACTCTTTAAGAAATCTTTGGATTTTTGTTTAGTATTGATTAAAAATC -TCGATAAAAAATAACCCAATAACATTTGAATCACTAAATACACCGAAATACCAATTGGACTATCAAATGT -CATCATTGGCATATCATCTGAAACGTCTTTATTAAACATAGATAAAATAAAATGAATACCACTTTTCAAG -AAAACAAATGCTGAAATACTCATCATTAAAGTAATACTGCCTGCAGGGTTAACTTTCCAAGATAAATAAG -ATCTCATATTTGTTGCGGAAACGTTCATTAAATCGATATATGGTATTCTCACTTCTACTAATTCAATGAA -TAATAAGATAAACAATGTGATTATCACAAGAGTGATTAACAACGCAATCACAATATGACTTGCATCTATA -TATTCCATTTTTTGATGCATCATTGATTTAATAATGCTAACCATTACAATCGGCATTGGTCCTGCGATGC -CGTAACGACTATTTTTGTCAGCTAACCAAACTAATAACATCGTTCCAGTAACCAAAATCAAGATTGTTAA -GTAAATATTGTCTTGATGAACACGTTCTTTCGAAACATATTCATGAATCACAAAATAACTTTGAATAACA -CTTAAAATTAATGTTAAGATGCGCTCTTTATAATGCTTCTCAAGACTTGTTTGTTTCATGTATTTATCCA -TATTCCGATAAGAAATCAGCATCAAGATAATCATTGATGTTAACCACGGACCTAATCCTAAAGTGAAAAT -GTTTAAAGTATTAACGTCTCCACCCATATTAGAAATAGCTATTTTAAAAAATGACTCATGTTTTACTTGC -ATATCGTTATAGGAAACGATGGAAATGTTTGTACCTAATATATAAATAAACAAGATAAAACATGTGTAAA -GTATACGTTTATATATAATTTTATATTCGTATTGTTGTAAAAGTTTTAACATGTTGCACCTCTTTTATAT -CAAAAACATTAAAAAGACTAAGGTTATTTCACTAATTATTAAAATCTGATATAGATTTTTTAGTGAACAA -CGCCCCAGTCTTTTTAATTTTAGCCAACTATAAATTCAATTTATGCTTGAGAATCATCTTGATCATTTTC -ATCTTTCTTTTTCTTTCTCTTCATTAAACCTAAACCAACTAATAATGTCATAACGCCACCTAGTAATCCA -TTTTGTTTTATTGAGTCACCTGTATCTGGCAATCTTTTTTCACTTTGTGCTGGCGTGCCATTATGTTTAG -TCACTTCAGATGTTGCACTTAATGTAGACTGAGATTCACTCGTGCTCGTTGTTGCTTCACTTGATGAGCG -AGATGTGCTCGTGCTGTGTGTATGATGCATACTCATTGAGTCTGACGGATGCATTGAGTTAGATTCAGAT -GTACTTGTTGAGCCGGACATACTTGTTGATGTTGAGTTGCTCATTGAAGTCGAGTTAGACATACTTGTTG -ATGTTGAGTCAGAAATGCTTTGTGAACCAGACATAGATGTACTCAGCGATTCGGATGTGCTTGTCGAATC -GGATGTGCTCAATGACATTGATGTGCTTGTTGACACTGATTCTGAGTCGCTAATTGATGTTGAATCGGAT -TTGTCTTGTGACATTGAAACACTTGTTGAATCGGATTCACTCATTGATGTTGAGTCAGATACGCTCGTTG -AATCTGAACCAGACATACTTAGCGATTCAGATGTGCTTGTTGATGTTGAACCACTTGTTGAGCCAGATGT -ACTTGTTGAGACACTTTGTGATATTGATTCACTCGATGCAGTTGATGCTGATTTGCTATCACTTGTTGAA -TCACTAAACGACGTTGATATGCTTGTTGAATCGAATTGACTTGCACTCATTGAACCAGACGTACTTTGTG -ATTCCGACGTACGTACTGAACTACTTGTTGATGTTGATGTGCTTGTTGAACCTGATTGACTTGTACTCAA -TGATAATGACTTACTGTCAGAATCCGATGTACTTATCGAATCACTTAATGATTCTGATGTACTACCTGAC -TGAGACGTGCTCATCGAACTACTTACGGACATTGATTTACTGTCTGATGCAGCTAATGATCCACTTGTAC -TCATAGAATCGCTTATCATTTCAGACGTGCTCATTGAGTCTGATGAGCTTGTTGAGACACTTTGTGATGT -TGCTATGCTTAGTGATCCAGATACTGAATCACTTGTGCTCGTTGAATCGCTCAATGATTCTGATGTACTC -ATCGATTTTGAATCACTTGTACTTAATGATATTGATGTACTTTGTGAATCTGATTTGCTTGTTGACGCAC -TTTGAGAGTTGGCTATACTATTTGAAATACTGATAGAGTCCGAGGTGCTAGCTGACTCGCTCAATGATTC -TGATGTACTAATTGAATTTGATGTACTATCACTTACCGATTGTGATGTACTAGCCGAATCAGATGTACTT -GTTGATAAGCTTTGTGACTTAGACAAGCTTCCTGATGTACTCATGCTTACTGAATCACTTAACGATGTTG -ATGTGCGCAATGAATCAGATGTGCTTGTTGATAGACTTTCGGATTTTTCAGTACTGCTAGAGTTCGAAAT -AGAATCGCTTAATGATGTTGATTTACTAACTGAACCTGACATGCTTGATGATACACTTTGTGAATTCACT -AAACTTGTGCTTGTTGAGCTTGATACACTATTACTTTCAGATGTGCTTAATGACTTAGATGCACTCACAG -AATCAGATAGGCTTACACTTGTCGATTTCGAGGTACTAGCTGAAGTAGATACCACAATCGATCCTGATGT -GCTCGTTGATGCACTTTGTGAGTCAGCTTTACTTGTTGACACACTTTGGGATTGTTGTGTACTTCCTGAT -GTTGATACGGAATCACTCATGCTATTTCTTGTTACTTCATATTTAAAAGTTGTCGTCGTTTTGTTACCGC -TCGCATCTGTAGAAACGATTGTTATAGTACTTGTACCAATGTTTGTTGGTGTACCACTAATAGTATTATT -TGTGCTATCGAATGTTAATCCAGACGGCAATCCTGTGACTGTATTTGTTACTGCATTCCCACTATTATCT -TGCGTAGCAATTTTAATCGGGGATATTGGTGAATACACTTCTGATGATTGATCTCCTATTGGTGTCACTG -TTGGTGCTGTCGTATCCACAACATTTATTGTAAAAGTTGTCGTCGATTTGTTATTTGCTTGGTCAGTAGA -TACTACTGTCACTGTTGATTGACCAATTTTTGTTGGTGTTCCAATGATTGAATTCGTTGCACTATCATAA -CTTAATCCGCTTGGTAATCCTGTAACTGTATTTGTCACAGTCCCAGTACCATTATCCGTTGTAGTCAACA -CAATAGGATTCATTGTTTTACCCACTTCAATGGTTTGATTGCCTACAGTTACAGTTGGTGCTTTTACATC -AGTAAAATAATATGTCACTGATTGTCCAGCATTCGTCATTTTTACAGTTTTATTTGTATCATTATAAGTT -GACGCATATGAACTATCGACAGATGTGTAGTTATATCCTTTAGCAGTCAATGCAGATTGCTGATTATCGA -TTGTCACGACTTGATCAACATTTCCTGAATATGTTTTTGGGGGAATAATATCTTTACCTGTTGTTACATC -AACGTATCTCACTTGTGTAACAGCAGATTCTGTATATTCGAATGTTCCAAATTGTACTTGTTGTAAATTT -GTCGCGCCACCTGTTGAGGCTGTCATTGATAACGAAAAGTTGGTCGTACCACTTTTTGCAATCCAATCTG -AAATATTACGTGTCCATGTTTGACCTGCATACGTTACAGTCATAACTTTTGTATCACCATTATAATTAAT -ATCAAAATCTTGGAACGTGTTATTCGTAGGTTGAACTTTTAACTTTGCAGCATTATCAGCTGCTGAACTT -GATGTGTACGTTGTCGCAACGCCATAACTATCTGTTGTAACAAAGGCACCAAACGCACCACCACCAGCTA -CATTAGATGGGTCTGCATTCGCTTTTGCTGCTGCATTCGGTTTAGATGTATTGTGGTACGTATCCAATTT -GAAGCCAAACGCATTACTCAAACCACCGATACCTACTGCCGCACCATTTAATCCTGTTTCTCCCAATACA -CCAGGTGAAAAGGCAAAGCCGATACCATCTCCACCATTTCCATTACCTTCGTATTTATTACCTAAATTTA -CTTTTCCAGAAAAATGAAAACTTTTATTAGAGTCAATACGTGTTCCTAATGTAATAGCACCTTTTTGGCT -GTATGCATCCTGCGTTAACGTCACAATACCGGTACTTTGATCATAAGTAGCATTACCTGACGTTGTCATA -TATTGTTTGAGGTTATCTTTATTAACCGTAATCGTATTAGCGGTTACTGCACTTGTCGTTGCAGCTGATG -CAAAAGTTGACATAGCTAATCGACTGAAAGTTCGAAGTTTGATAGGTGCTGTGCTGGTTGACGTTGTACT -AGTTTTGTTTAAATTGGCTGAAGCTGGCGTTGTGCTTTGTGAAGTAGTATTTGATGCAGTACTTTGATTT -GTTGATGTATTAGTTTGTTGGTCTGTACTTGAAATTGATGTTACAGATTTAGTATCAGAACTTGATGTAG -TATTCTTTGGGGATGTTGATTCAGATGTAGATGTCAATTTTTCTTGTTGATTGCTTGTACTATTAGTTGT -CGAAGTGACATTTTCAGACTTTTCACTTGAGACTGTGTCACTATTTGATGTTTGTTCCGAACTGCTATTT -TTCGTTACGCTAGTAGAATCGGTTGTTGATGTTGATGCTTCGATTGTCGTTGAGTTTTGATTGCCTACGG -TTTCACTTTGCGTGTTTAATTCAGATGTTAAAGGTGCATCAGAAGCCGCAAAAGCTTGCTGGTCATGCAA -CATGTTTACTGTGAATGCACCACCAATAACCGCTGTAGTTTTCAGTCCGTATCCCGTTATTTTTTTACTA -ATGCTTTGATTATCTTGACTCACTAAACTATGACTAATAAATGGTAGTCCCATAATTTTGAACATTTCAA -TTTCTTTAATTCCGGATTTTACCCAATTTTTTCCAGATTTATAAAGTCTTACTCTTGTCTTTTCATTTGC -TAAGCTGTCATGAAATTCTTTCTGTCTTTTACTCATGTAATAACTCCTTGTATTATCTTTACATTCATTA -GATTATAATATATGCCACTATTCAATTTAATACAACTCTTTTTTCAAATAAAAAATACTTAATTTGTCAA -AATCCATTTTTTCTCAAAAGTATATTCTTTGATGAAATCGCTTTCTTTATTGTGTGGGATTTAGTATAAT -ATTTTAACTATATTCTGAATAACATGCCTTATTATGTTTATATAATTTTGAAATCAATGTTTATCAATTT -AGATAACTTTTACTTATTTAGTAAAAATGTCTTTTTATTAAAATGTATTTATCATCCACCTTTTATTCAT -TAATAGTCAATTTACAACTAAAAGATAAATATTATATTTATATTACATCTTTAATATTAAAGTAATATCA -ATATATTTTCAATAAACCTAGTGTTATATATCTGAATTTCTAAAAAATTCTTCTTTGAAATTATAAATAT -AGCGACATATCGCTTCCCGGTTTTGAAATATAAAAATACATCGAAACTAATTTCAATGTGTAGTTTCGAT -GTATTGAAAATGATTGAATTCACTATTCCTTGTTATCTGATTGATTATCAAAATTTCTTCCTTCTAAACC -TGCAAGCTCTTCTTTAGAAGCTGATGGTGCTTTCATTTCAAATATTTCATTCACAACCGTGTAATCATAA -TATCCTAACCTAGCAATAGGTTTAATCGACTTAATGTCTAATTTACCATTATCAAGAATGAACTTATCGT -CAATATGAACCTGAGCAACTCTTCCTATAACAATATCAACGGTTGATACAGTGTCTCCTGTCGGAATACG -AATCGTTTGAACGTACTCACATTCAAAATGTACTGGCGATTCTTTGACTCGATAACCTGGTGCTTCTATA -CATGCTTCTTTCGTCACACCTGCATATTCAAATTCATCCTCTTCAGGTGGTAGTGCCTTCGACGATAAAT -TAACAGCTTCTCTTAAATCATACGTGGCCATGTTCCATACAAACCACCCTGTCTCTTCTGCATTTTTTAC -TGTATCTTTACGCTCATGATCACCAAGAACAGATTGATTTGCTGCGAACATAACCATAGGCGGATCCCAT -GTTAAGTTTTGATACTGACTATAAGGTGCTAAATTATCTTTCCCATCTTTCGATACAGTAGAGATCCACC -CTATTGGACGTGGTACTGTACTACTTTTAAATGGATCGTGTGGTAAGCCATGACTCCTTACACCTTGCTT -CGGCGAATAATTCATTCTATCCTCACCCCTTATTAGTAATTACATTTAAGGTTACGCTCTCATGACATAA -GCGTCTAATATAAATAATCAATTTATTTATAAGAAGAAACTATATATGACGTGGTTGCTTATAATTTGTG -TTCTTGATTCGAAAATTTTAGATAAGGATTTATGCAATTAATATTTAATGATGTTTTTTGTTAATTTAAT -TAATATTAGTTAATATAATCAAGATTAGCTTATAATAATATTGAATAACATTATTTTAGTTTTTGTATAA -TTTGCCTATCAACTGAAAAACAGCTAATACAAAGGAGCTAATGAAGATATGAGAAAAATTATGCGAATCT -TATTATGCACATCAATCATAATAAGCGGTTGCTCTTTCATATCAAAGAACCAAACAAAAGATATTCCAAA -GACGGTTAGCGTCAAAAATTATGATGGTAAATATATTGGTGAACATAAAAAAAGAAATGAAGTATTTCTG -AAAAAACATAAAGGTGAAGCGATAAAAAAATATAAAGACTATGTGAAAGATACATTTGGTTATGATTGTA -AAATTAATTTAGTTGAGGCCTATACTAATAAATCTGGATTTAGCGAAAAAGTAAGGTAGATGGTTTAGTA -GTCGTCGGTACTGTCAATTATGACGTTCCCTTTCAATTTAGACTGATATTTGTTGAGTCTGGAAATGGCA -TAGCTATCACAACATTTACACCTGGTCATATAAATGAAACATCAGCGGCAGTTGCAGCCATGATGTATAA -GCGTTATGAACCTGAAATTGAACAAGCTCGATTAAAATTCAAATCAGAAGTTGAGAAAAACGGTTATTAT -GCCATGAATGAAAAACTTCAAAAGAAACAAGAATTCAATGGTGTTACTAAACAATTTTTGAATTTCAACA -CAGACAGTATCGATGATTTGGATAAGTTCAAAAAAGAATTCAAACCTGTTATGCACTTAAAAGGAGATGC -ATTAAATCAACAATTACAATCTTTGATTAATAAATATCCTCAAATACAAAAAAATATGAAGTCCGAGTTT -ATTGCCTATTACGATAAAGGTGAGAACAGAGAGACTGTTGCTAACTATGTTTGGAACCTACAAAAATCTA -TAAATGACGTTATGCAATCATATCCTAGCACAAAATTTGTACAGTTTTATAAAGATGATGTTTCCCCGTC -AATGGTAGATGGAAATGGCCGTTTAAAATCGGATACTAATGTAATTTCCATCGAGGGAGGAAAGTATAAT -GAGAACAAATAATCATATAACCCATTTAGATGCTATTGAGTTAAGTAGCGGTTGGAATTACAATTCGAAA -TTGGTAGCTGGCAAAAATGCACTACTATCAGATAGCCTTTTAAGAGATATTAAAGTATTAAGTTCTAATG -CTAAAGGTGACGCCGACATGTTAGAAACGGAACTTCATGCTGTTATAAACGCAATGTCTCAAAACGAAGG -TAAATCTGTTGATGCACTTAAAAATAGTACCGCTTCTCTAAAAAACAATCTAACCAAATTAAAAGAGCAA -CTCGATAAAACTACACATTAATTTCATACATTTTGAGTGAACAGAATTATATTTCCATAGCAAACATTCC -TGAACTACACATGTTACATAAGAGATTCATTTTTGAAGAAACGGGTAAAATGATAAAACAACCGTTTTTC -AAAAAATCAAATATTGGGAGGAATAAAAATATGATTTTACGTTACGTGACCAATTTAAAACTTGCGAAAG -AGCTATACCAAGCCAGTAAACCTAAATTGCAAGAAGATAAGGGTATGATTGAACTGTTTGAACATACTTT -TGGTTTGCAAAAAGAACTTGTAAAATACGTCGGCATTGCAGAAGCAACTACTGCTGCTTTATACTCAGCT -AGCTTTATCAATAAAAACATTTCTCGCCTTGCTTCGCTATCAACAATAGGTATTTTAAGTGCAGCTGCTT -ACAAACATTTCGAAGCTGGCCAAGGTAAAAAAGGTGCACAACATGCATTAGATTTATTAGGTCTTGCTAC -TTTAAGTTTACTAGATACATTTTCTTGTAATAAAAAATAGTCTTCATTTTAGAAGCACATACTTTAGCAC -CTGTGTACTTTTGATACAATCCATAAACGGTACACCGCTATAGCATGTGTTTTGTTATTTTTCAGGTCTA -TCTATTGTAAATATTCCCCCTAATTTAGCATAATCATTTCCGGCTAAACGAGAAACAGCCTGTAATGCGT -GTGGATTGATTTTAAAATTACCCTCATAAATACTGTCATCAATATGATAAGTTACAATTTCGCCTATTAT -TAAGTCAGCCCCATCTAATACATCTCCAAGCAATATCATTTGCGATAGTTTACATTCGAATCTCATTTTC -GCGTCTTTAATTCCTGGCGTCTTAATCGTTGTAGATGTTAAAAGTGATAATTCTGTACGACTCAACTCAC -TGTCACCATATGCTAACGGCGCTGCAGTCTCATTAATATCTTGAACATTATCTTCGTCTGTAATATGCAC -AACAAAGTCTCCAGTCCGTTCTATATTCAATGCAGTATCTTTTCTCTTACCTCCTGCACGTTGAACTGCA -ATAGCAATCATTGGCGGATGATTATTAACTATATTAAAAAAACTAAATGGTGCTGCATTTACTGATGCAT -CTTGATTTAATGTTGTAACAAAAGCTATAGGTCGTGGAATAATTGAACCAATTAATAATTTATAGTTTTC -TCTAGCAGTTAATGATTGTGCATCAAACGTATGCATAATACCTACCTCTTTTCTTAGTATATCTAGGTAT -TTCTCCGATTTCGGTTAATTTAAACATCTATTCTCCTCTGAAAATCACTTGTATTTATTTAGCAAATCTA -TTGAAATATGACACATATGCATATCTTCTGGATATTTTTCTAAATGTTGCTGATGTTCTTCAGCACTTTT -AATGTAGTTAGACAGCGGTAAGACTTCCACTGCAATTTTATCTCTGTCTTTACGTCGTTCAATGAACTGA -CGCGCTTCAATTAAGTGGTCATCTACACAACTATATAAACCCGTTCGATACTTTTCTCCAATATCATTTC -CTTGTCGATTCACACTGTATGGATCAATAATTTCAAATAAATAATTCATGATGTCTGTAATTGTTAACAT -ACGATCATCAAAATGAAGTTTGACACATTCAGCATAACCATCATACGGACTGTCTAATTTAGAGCTTCTT -CCATTTGCTCTTCCTGCTTCTGTATGTATAATTCCAGGTATTGTTGTGAAAAATGCTTCAACACCCCATA -AACACCCTCCTGCTACATAAACAACTGCCATATTTACACCTCATCATCCTTTTTTATATTTTTAACAAGG -TTATACCATTTAATACCGCCATGACATGATTCTGATACACCTTCATTACGATAACCATATTTTTCATAAA -AAGAAATTAATGATTCTCGACATGTTAACGTTACACCATGTCGATGTTGATTCTTAGCAAGATTTTCAAA -ATAGTTTAGTAAGCGACCTGCAATACCCTGACCTTGATAATTTGGTGCTACAACAAGACCTAACACACTA -ATATAACCACCTTCACTATTATTTGCGGGGACATTTTTAAATAAATCATCGCTAATGTAACGCTCTTTTA -TGACAGGACCGTTGATATATCCAATCACTTCATCATTCTTTTCAGCTACAATAAAAGTTTCTTGAATTTG -TACAATTCTCAATTTCAATGCCTCTGGTGTTGCAGCTTCTTCCGGTGAAAAACCAATATTTTCAAGTGCA -ATAATTTGATCTAAGTCCTGCATGATTACTTTTCTTAATACCATAAAAACACTTCCTTAGCCTTATATAT -CAAATATAATACCTTCATCATTATATTCATTATTTTCAAACTACCTTCACTATAAAAAACGAGTCTTTTT -ATTAAAAGCCATTCACCTTAATCAATTAGACAAGTTGTATTATACGAATTAGCAAATAATCATAATTATA -ATTCATTTTAAGCATACTCAAAAAGACTGGTACATGTATACCAGTCTAATTCGAAAAAATATATTTAGTT -AAAACCATTTCAAAAACGACTTCACTTTTCCTGGCTTAGTCGGTCTGTCTAGATAAACAAAATTATCATT -GATTACTGAACTGGCATTTCGAAGTAATGCTTCAATGTCATTCGAATATTTCTTCAATTTATGATTGTGA -AATAATTCTTGCATCAAAAATGGTCTTTGGTCACATGAATGTGCATCTGAAGCTACAAAATGAGCCAAAT -TACATTCTATAAATTGTAATGATAACTTTTGAATGTTTTTTCCAAATCCACCAACTAAAGAACTCGATGT -TAATTGACTCAATGCCCCATTTGCAACAAGTTCATATAATATTTCTGGATTTTTGGCGATACTTCTATTT -CTTTCAGGATGTGCAATGATTGGTATGTAGCCTCTCGATTGTATTTCAAAAAACAATTGTTTTGTATAAT -GTGGTACTTCGCCCGTTGGAAATTCAATTAGTAAATATTTCGAACGATTAATACCTTGAATACTACCATT -ATCTAAGCCTTGCAGAATCGAATCTGTAATTCTAATTTCTTGCCCGGGAAATAATTTAATATCCAATGCT -TGAACTTCTGGATGCGTTCTTAACTCCGCCAATTTCACAAGCACTTGTTGAAATGTATTATCATATCTCG -GATGCAAATGATGAGGTGTCGCTACAATACTTGTTACACCTTCATCCTTAGCTTGCTTTAATAGTGCAAT -ACTCTTTTCAATTGTCTTAGGACCATCATCTATATCAACTAATATATGGTTATGAATATCAATCATGATT -CATCAGTCCCATAATATGCATAGTAACTAGCACTTTTATCTTTATGCATTCTATTTAAGACTACACCTAA -TAATTTAGCACCTGTTGCTTCAATAAGTTCTTTTCCTTTTTTAACTTCATCTTTATTATTATTTTCCGAA -TTAACTACGTAGACAACATTGCCGGTAAACTTTGAAAATAATTGCGCATCTGTAACTGTGTTCACTGGTG -GCGTATCGATAATTACAAAGTTATAATTCATCAATAATGTGTCATACAAATTCGCAAATGCTCTTGATGT -GATTAACTCTGATGGATTTGGCGGAATCGGTCCAGACGTCAGGACGTCTAAATCTTCAATTTCAGTTGAG -ATAATACTGTCTTGATAAGTTGACCAATTTAGCAATAAACTTGATAGGCCTTCATTATTTGGCAAATTAA -AAATATAGTGCTGCGTAGGTTTACGCATATCCCCGTCTACGATTAATGTTTTATATCCTGCTTGTGCATA -TGCAACTGCTAAATTTGCTGCAATTGTAGACTTACCTGCGCCTGGTGCCTCTGAAGTGATTACAATGCTT -TGAACTGCACTGTCAGGATTTGCAAACATAATATTTGATCTTATGCCTCGAAATTTCTCGCTAATAGGTG -ACTTTGGTTGTTCATGGACAATTAAACTTGATGTACTTCTTCGTGTATTCGTCATGGTAATTCCTCGTAA -ATTAAAATTTTTGTATTGAACCTAAAATAGGTAATCCTAGTTGCGATTCAACATCTTCTTCCGTCTTAAT -ACGCTTATCTAATAATTCTTTTAAGAAAATAATCAATATTGCTAAAACAATACCAACAATGATACTGATT -ACTAAGTTAACAGATACTATTGGAGATACTTTTACAGCATTATCATGTGCTGAGGAAAGTATTGTAACAT -TATCAACACTCATAATTTTAGGCATGTCATGTGCAAAAACTTTAGATATTCTATTAACAATTTTGTCAGA -TTCAGATTTATTCCCAGTTGTAACTGATACAGTAATAATTTGAGAGTTTGTTTGATTGGTTACTTTTAAA -AACGAATTCAACTCAGCTGTTGAATACTGACCATCAAACTCTCTAGATACTTTATCTAGAATTCTTGGAC -TTTTGATAATTTCCGTATATGTATTAACAGACTGCAAACTACTTTGAACATTTTGGAAAGCTAAATCACT -TGAGGACTTTTTCATGTTTACTAATATTTGAGTAGAAGCAGTATATTTGTCAGGCATAACAAAAAAGGTT -AATGCCGCACTTACTACAAGACATATTGCCGGTAAAATAAGCAATAATTTAATATTCTTCTTTAGAATAT -TTAATAGTTTTACTAAATCAAACTTTTCTTTCATGGTTTCCTCCACATAATCAATCATTGTATTCATTAT -GTATGTTTTATAAATCGGACAATTATATCTAGTTTAACGACCACAAAAATACACAACTACATTTTCTCTA -ATTTTTTATATAAATATTTTATCGTTTAAAATTATATCATGATTCTTGGTCGTTATGTATAATTTATTTA -TATTTTCGTTTGAGATATAATATTGCCCAACTTCAAATATCCAAACCTATCAGTAATAAACCTAGATACC -ATCGTCTCTATTATGGCTTTCTTATAATCGAGTAGAAGCAGCATCATTACTTGATTATTTGCTCTTTACA -ACACCGAGCGTGCCCGTACTCGGTAATTCAATACTTTGCGTAACCCGTCACTGTGAGTTGGGTTAATGAT -GATAAAGCCCACATCTTTTAAAAAGATGTGGGTAATTTATATAATTTTTATTTACATTTTAAACTTATAA -AAAAAGCGCCTATGTCATGATTTACCATCACATAGGCGCTTATCAATAAATTATTAATTATTACTTTCCA -TTTCATCTAATTTATGCGGATTTCCTGTAATTAGATGACAACTTATTCTTTTCAGGGGAACATTACACTT -TTATAATATGTTCAAAGACAAACTTAACCATTCACAAATATAAAGAATAATATTATCAAATCATTGAACA -AATCGTATTTTGCAACAATTGATATTTATATTAATGTATTGTATTTAATTTATAAAATTCATATACATCT -TAATATTCTCAATTTCGAGTTGTATTGTCAACTTTATATAGATTTAAAAAAATAATCTCATGTCTTTTTT -TACAAAAGTAAGTTAATTATTACAAACTAGTAACAAAAATTATTTCTTCAAAAATATATTTAGTAGCGAA -TACACTTCATCTTTGAATTGACTTTTACTTTCTTCCACTGCTCCAAATTTTTGCGAAAAGGATGCTTTCA -AATACCAACTTTCAAGAAACAGCAATATTAAATTCTGAAAGTCTTCTTTTGTCATCTTTATTTTTGATTC -ATCATAGAATTTTGCTATCTCTTTACTTAATGATTGATTTAAATCTTGTATTTGTCCGTAAATATTTCCA -GAAAATTCCTCAGGCGTATTAGATAATTGAACATACATTCTAATATACCTTTCTTCGATGTCGAAAATAA -ACTCAAATAAGAATTGATATAAAGCATCAATTGAATAGTTCGATTTATTTTGATTCATCATAATAATATT -ATTAAGGTAATCAAAACAACATTTAACACTTTGTTCGTAAATACTTTTTTTCGAGTCAAAATGGTAATAT -AAACTCGCTTTTTTTATATTTACACTTTTAGCTATATCATCAAGTGTTGTACCGTCATACCCCTTCTCTG -AAAATAAGGTTATTGCGTTATCAATAATCTTATCCTTCAATTTTTAAAACCCCCTACTGAAAATTAATCA -CACTATGTTACAGGAAAATTAAGTTGCAATTACAAATATTTCCGTTTAATTATAACAACAATCTATTGCA -AATTAAAATACTATCAATTACCATATGGCTTACAACCTAACTAACGAAAGGTAGGTAAAGAAATTGCAAT -TTTTTAACTTTTTGCTTTTTTATCCTGTATTTATGTCTATTTACTGGATTGTCGGTTCAATTTATTTCTA -TTTTACTAGAGAAATTAGATATTCATTGAACAAGAAGCCTGACATAAATGTGGATGAATTAGAAGGCATT -ACATTTTTACTTGCCTGTTATAACGAAAGTGAAACGATTGAAGATACGTTGTCTAATGTTCTTGCACTCA -AATACGAGAAAAAAGAAATTATTATCATTAATGATGGAAGTTCAGATAATACAGCAGAACTCATCTATAA -AATTAAAGAAAATAATGACTTTATTTTCGTCGATTTACAAGAAAACAGAGGTAAAGCCAATGCACTCAAT -CAAGGCATTAAACAGGCTTCATATGATTATGTAATGTGCTTGGATGCAGATACTATCGTTGATCAAGATG -CACCATATTATATGATTGAAAATTTCAAACATGATCCAAAACTTGGTGCAGTTACAGGTAATCCTAGAAT -TCGAAATAAGAGTTCTATTTTAGGTAAAATTCAAACGATAGAATATGCAAGTTTAATTGGCTGTATTAAG -CGAAGTCAGACACTTGCTGGCGCAGTCAATACTATTTCGGGTGTCTTCACTCTATTTAAAAAAAGTGCAG -TTGTCGACGTTGGCTACTGGGATACTGATATGATTACCGAAGATATTGCAGTTTCTTGGAAATTGCATTT -ACGTGGATATCGTATTAAGTATGAACCGCTTGCCATGTGTTGGATGTTGGTTCCAGAAACATTGGGAGGT -CTTTGGAAGCAACGCGTGAGATGGGCTCAAGGGGGACACGAAGTATTACTACGAGACTTTTTTAGCACAA -TGAAAACGAAAAGGTTTCCTTTATATATTTTGATGTTTGAGCAAATCATCTCAATTTTATGGGTATATAT -AGTGCTTCTATATTTAGGCTATTTGTTCATAACAGCAAACTTCTTAGACTATACATTTATGACATATAGT -TTTTCAATATTTCTACTATCATCATTTACTATGACTTTTATAAACGTTATTCAATTTACAGTCGCACTCT -TTATTGATAGTCGCTACGAGAAAAAGAATATGGCTGGACTCATATTTGTAAGTTGGTATCCGACAGTATA -CTGGATTATTAACGCAGCAGTAGTTCTTGTCGCATTTCCAAAAGCATTAAAACGTAAGAAAGGTGGTTAC -GCAACATGGTCAAGCCCAGACAGAGGGAATACCCAACGCTAAAATCATCGCTAAACATTATAAGAGAAAC -AGCACTTATCGCTATATCGTGTGTCTTTTGGATATATTGTTTAGTTGTTCTACTCGTTTATATTGGTACT -ATATTTGAAATTCATGACGAAAGTATCAATACAATACGTGTTGCTTTAAACATTGAAAATACTGAAATTT -TAGATATATTTGAAACTATGGGCATTTTCGCGATTATCATTTTTGTTTTTTTTACAATTAGCATATTGAT -TCAAAAATGGCAGAAAGGAAGAGAATCGTGAAGTATAGAAAATTAATAATTTTAGTGTTGAGTATCTTGA -TCATATTGCCTGTAAGCACACTGGATGGTCATCATATTGCAAATGCAGATGACGATCCACCTAAAAAACT -GAAATATAAAGAAAATAGTGCTCTGGCATTAAATTATCACCGTGTAAGAAAAGCGAATTTTCTGAATAAT -TTCATTTACTTCTTTTCTAGTAGTAAAGAAATTAAAAATTATAGTGTTAGCCAATCACAATTTGAATCTC -AAATAAAATGGCTAAAATCACATGATGCTAAATTTTTAACTTTGAAAGAATTTTTATATTACAAGAAAAA -AGGTAAGTTTCCAAAACGAAGTGTATGGATTAACTTTGATGATATGGATGAAACTATTTATGAAAATGCT -TATCCAATCTTAAAAAAATATAAAATACCGGCAACTGGGTTTATTATCACAGGTCATGTTGGGGAAGAAA -ACTTTCACAACCTCGATATGATTAGTAAAAAAGAACTAAAAGAAATGTATAAAACTGGGTTATGGGAATT -TGAAACACATACCCACGATATGCATAACTTATCTAAAAATAATAAGTCAAAATTAATGAAAGCTTCTGAA -GCTACAATCATAAAAGATTTAAACAAAAGTGAAAAATATCTAACTAAAAACTTTAAAAAGTCGCAGAAAA -CTATAGCCTATCCTTATGGCTTGATGAATGACGATAAATTACCGGTAATCAAAAAAGCTGGGTTAAAATA -CGGTTTTTCATTAGAGGAAAAAGCAGTCACTCCGAACTCCAATGATTATTACATCCCTAGAATATTAATT -AGTGATGATGCTTTTGAGCATTTAATTAAGAGATGGGACGGATTCCATGAAAAAGATTAGACTTGAGCTC -GTATATTTACGTGCCATTATATGTGCAATTATTATTGTTACACATTTATTAACACAAATTACTTTAAAAC -ATGAGAATATGGAAGGAGGATCTTTAGTACTACAGTTCTATATTCGTAATATTGTCATTTTTGGTACACC -TTGCTTTATTATCTTGTCACAGTTACTGACAACCTTGAATTACCAAAAAGTCACCTATAGATACTTAACT -ACACGCGTAAAATATATATTGATTCCTTACATATTAATGGGTTTGTTTTACAGTTATAGTGAATCATTAT -TAACTGACACAAGTTTTCAAAAACAATTTATTGAAAATGTCCTATTAGGTCAATGGTATGGCTATTTTAT -CGTTGTTATCATGCAATTCTTTATTTTGAGTTATATCATTTTTAAAATTAACTATAACCTATTCAACAGT -AAAATATTATTATTGTTATCTTTTATTTTACAGCAATCATTTTTATATTACTTTACGAACAACACAGCGT -TTCACGATACCGTGCTACACTATTATCCATTAAGTGAAAACACTATAATATTCGGATGGATTTTTTATTT -CTTTTTAGGTGCATATATGGGTTATAACTACGAACGTGTTTTAAATTTCTTAGAACGTTATTTAGTTATT -ATGATTGTATTAGCTGTAGCTACTTATTTTGTGTTTATTGCGTTAGCAAATGGAGACTATTGGAACGTTA -CCAGCTTTTCATATTCATTAACACCATATAATAGTATTATGTTTATTGTTATCTTGGGTATTTGCACGCA -TTTTAAAACAATGTTATTTAATACGATTCAAATGATTAGTGCTTTCTCATTCTTTATTTATTTATTACAT -CCAATCATTCTAGACTCATTGTTTGCATATACAAATATATTTGAGGATAATACAATGGTCTTTCTAGCGA -TATCACTACTATTCATTTTAGGATTATGTATAGGTGTCGGTATGATATTGCGTGAATTCTATATCTTTAG -GTTTATTATTGGAAAACAACCATATAAATTGAACATTAATGCTTATTAATTATTAAGCTATGTTAAAAAC -ACGCGGTGGGCGAAATCAGTTTGAATTGACTGACTTCGTTTTACCGCGTGTTTAATATTGTTATACATAT -ATTCTAATTGCACATTTAAACTACGTAAATGCCAATGGGAGTGGGACAGAAATGATATTTTCGCAAAATT -TATTTCGTCGTCCCACCCCAACTTGCATTGTCTGTAGAAATTGGGAATCCAATTTCTCTTTGTTGGGGCC -CCGCCAACTTGCATTGCCTGTAGAATTTGGGAATCCAATTTCTCTTTGTTGGGGTCCCGCCAAGGTATTA -CTTGAATAACTCTTTTAGAATTCTAAATAATGATCCGATTAATTGAAAGAAGTCTGCAGTCATTATTAAT -TCCTCCCTTTACTTTATAAATTATGCTTGCTTAGTATCAGTCACCTTTTCAGTTTTCACTAAATCGTCTG -CTAAATGATGCCAAAAATCTTGTAATTCTTCTCTTGTGCGCACTGTATCAGAACTATCTTGTCCGACAAA -ATCAACATGATCCCAATCATGTTTTGTAGGCGTTACTTGCCAAATGCCTTTTTGAATTTTATCCGTCGCA -TTTGTATAAGCTTGATTAAATGGATGTTGAGAAGAAATAACGGATACTAAACCATCGTTTTCTCGCCATT -CTTTTTCAGTAGCTTTACCGATTAAGTTACCAGTAATCACAAATGGGAAAAACATATTTAAGTCTGCTTT -TTGTCTATCGCTATTTAATGCTTTGTGCGTTGCTTCACCAGTGTATGTTTTATACACAATGTTAGGGTTC -AACGACGTTTTACGATTTAAATCTGTTGCACCCTCACGCGTCAGATCGTAAAATCCATTATCTTTTGATT -TCCATAAATTAGATTGTTTAACGCGTTTGACATAATCAATATATGATTCATTTGGCTTCTGTTTTAGACC -CCATTGAGCCAACCCGAAGTCTACTCTTGAATTTTTATTACCAAACATTTTACCGATATCAAATACAATT -TGTCTCACTAAAGCTTCATTACCAGCTAAATCTGAAGCATGCGTTCCATTATGTGGCGTTCCTAAAGTAG -TAATTGATGAAATCATATTGTCATTATTACCTTTGAATAGTGGAGAAATTTCGCCACTATGTTTCTTTTG -ATACTCTATTTCTTCACGACTACCATTACGCAGTAATTCTTCTAGTTGACGTATCGTTTGACCACCCATA -CTATGTCCAACAAGGTGTACCTTCTGTCCTGGTTTCCAGTCTTTGTAAATTCCTTCGTATGTTTTTCCAT -AACGTTCATGTCCATATTTTGCTGCATGTGCTGCACCATAATCTACACGACCGCCTTTGATATAATAATA -AAGTTCAACTGCGCGGTCATAGTTACTTCCAAAAGCACTTATACTTGCTTCATAAGCTTTGTAACCATTT -TCTTCTAAATCTTGGCGAATGTTCATTTTATTACCGCCCCAATAATGAGCTAACACTGAAGGATTAATAT -CATCTGTAAACCCATTGAAACCATGCACTAAAACTATAGGATCTTGATTTTTATACTGCCCTTGTTTGGC -AACTTTATTCGTTTGATCACCTTTCGCTTTTGCAGTAAGTTCCTTTGTCCCTTTGTTTGGTAACGTTGCT -ACTGCACTACTTTTTAATAAATTTAATCCATTTTTCTTGTCATTGTCCTTTGTTGGTTCAACTGGTGATT -TTTGATTGTTTTTTAAATCTGAAACTGATAGTGTTTTTTCGTCTTTTTGAGGTTTCACTTCTTGTTCATT -GTTAAAATTGTGGTCAGTAATTTTATCATTCGCTTGATTCTTTTGTTGCGGTTGTACTTTCTCTATTTCT -GTCTCATTAACAATTTCTCGTTGACTTGTTTGATCTGACTTATTTAATGATGGTGATACCTTTGTTCGAC -TTTGTGAAGGTAGATTGTTATTAGCGTTTAAGTCTTGACTATTATCTGCCTCTTTTGACTGTTGCTGTGA -CGCCACTTTACTTTGTTTGCCATCATTAATAGCCTGTTCTAACCCTTGATTTACATCCCTAGGATTAGCA -TTGTTATTTTTTGTTGTATCACGTTGAATATTTTTATTATTAAGCGATGATTTTTTATCATCCTTTAGTT -GATCTTTATTCAAATCATCTGTTTTACGATGATTTTCTTCTGATATTGTTTTATCATTATGCAAGTTCTT -AGTTAAATTTTCAGTATGTTGCTGTTCGTCAACACCGTTTTCACGTTGATAATTAGCATTTTCCCTAGTT -TGTTGATCCCCAATAGATTGTGCTGTAACTGTATCCTCCTGTGAATTTCCCATATTCACTTGCTTCTCAG -CTGCTTGTGCTTGTCCACCACTTAAAAATAGTAATGTAGCTATTAAAATGGAAGATGCACCTACACTAAA -TTTACGAATACTATACTTATTTTGACTTTTCATCATTGTCAGCACCTCTATTTTTTTATTTTAGATAAAC -AAATTGATAATTATTCGAGGAATAAACTCAAATAATTTACTTAACCAAGCACTCATAATGACCATCCTTT -CTATTGTTTAATTTGATGAGAAAGCGTTTACATTTTTATTTAAAAAATATATTCTCCAAAGAGAATTTAA -AGTGTATACGCTAACCATTTCAAATTATTAATTAATATTATATTTGGCAAAATTTAATTAGTCAATAATT -AGACACAATTTAATTATGCAAATTGTAACTTTTTTACATATATCTTTTGTGATTTTTAATATTTACATGC -TTGGGTCTTGATTCCAATGATGTATTATTTTTTTAGATTAGCTGTATGGGGAGATTTATGAGCTATCACA -GTTATAATGTTTGCTGGTGTTGTATTTTAAACCTAAAAATATCATTTCTTCTACAATGATTGTATTAGGA -TAAGCCATTACGCTTGTTCCTACATTAAATATATACAGTTAATTTTCTTCCCTCAAAGTAAGTATCCTAC -TATTTTTAATTTATTGTTTAATTACTATTGAACTACCTTTAACTTAATCTCGAATTTATGATGATTAGCA -TAAAAATACACCCCATAAAGTTAGTTTTTTAGTCCAACTTTCGGGATGCACATCTTAGTTCTAATGGAGA -TTGTCTTTTAAATAGGCTATGACATTTCTATTTCAGGCTAGATATATTTTTATTCACAGTATAAATACAA -AGAATATAAAGACAACTATGATATTAATAGGTAGTAACGACAAACATAACTTTTTAGCTTTTTCGCCATT -TTTCCCTTCATAACTTCATTATATCGATTCATATACTTTTCAACATCTTTAACAGTGACATCTATTCCTG -AGTTGCTCAATTCACTTTTCAAATTATCTTTGGTTTCGTATCGTGATTATCCACTAGTTATCTATAACGA -GTTCGCAACTTTAGTACCATCACAGCATTCATAGTTAAAATATGTTGGTGTCGTATTTTAAACTTGAAAA -TGTCACGTTTCCCACAATATTTGTAAGTGTATAAGCCATGATCCTTTTCTCTATATCTCAGTCCATACTT -GCTTTACCACTGTTCGATATTTTGTCGTTCGCCTTTAAAGTTATTGCGCTTATGATGTCTACGCGCTAAT -TCTGCCTCAATTTCTGAAAAATCAACGCCTAGCGCATGCATCAAGACAAATAAATGATAAAGTTCATCTG -CTACTTCACTTACAAATGCTTTTTTGTCACCTTTAATTGCTTCGATTACGACTTCAAAAGCTTCTTCACC -GTATTTTTTTGTAATCTTTTCTATACCTTCTGTTAATAAATATTTCGTATATGACTTTTCATTATTGGAT -TGGGCACTATCTTGAACTGTCTGCGCTAATGTTTGTACTGAAAATGGAACTTCTGTGTTGAAACAACTTT -GACTGCCTGTATGACATGTTGGTCCATTTGGTATGACATCAATTAAAATAGTGTCATTATCGCAATCTAC -ATGAATATCTTTAACACGTTGCGTATGACCAGATGTTTCACCTTTTGTCCATAGGCGTTGTTTCGACCGC -GAATAGAAACATACCACACCATCTTCTATCGTTTTATCAAAAGCTTCTTGATTCATATAACCTAACATCA -ATACTTGTTTTGTTTGATTATCTTGTAAAATTGCTGGCACTAAACCTTTGCTAAAATCAATTTTGTAATT -GGTCATCTTACTGCTATACCCCCTTGCCGTATCGCTTCTTTAATAGATTGAACCGTCGTTTCTCGGTCAT -GTAATATACTTGCAGCTAAACCTGCAGAAACATCCGTCTGATCAAATAATTCTACAAAGTGTTGTGCATT -GCCACCACCACCAGAAGCAATGATTGGAATATTTACAAGGGATTTTATTTTTGCAAGATGCTCAATATCA -AAGCCTTGTTTCATACCATCATGCCCCATACTTGTAACGAGGAGCTCACCTGCACCTAACTGTTCTACTT -GCTGTACCCAGTCATATACTTTAATATTTGTCAATTTTTTACCGCCATGCGTACAACAATAATGTGCTTT -TCTTTCAGGATCATAATAGCTATCAATTGCTATGCAGATGCATTGTCTACCGAATTTATCACTCGCTTGT -TTAATTAGCTGTGGATTTTTTAAAGCACTTGAATTTAATGATACTTTATCTGCACCATGATTTAACAATT -GGGTAATATCATCAAGGCTTTGAATCCCACCCCCTACAGTAAGAGGGATAAACAAGCGTGACGCTGTCTG -TTCAATCACTTCTAGCATTAAGCTATGACCCTCTTCCGTCTTAGAGATGTCTAAAAATACTAACTCATCA -GCACCCGCTTCATTGTAATACATTGCTAAATCAACAGGATTCCCAATATCCCTTAATCCTTTAAATTGAA -TCCCTTTAACGACACGACCATCTTTGACATCTAAACATGGAATGATACGTTTTTTAATCATTTTAGCCCC -TCCCAAAATGATGCTTGATGTGCAGCCTTTCCTATAATAGCAGCGTGAACATTTAGCGACGCTAATCGTT -GAATATCTTGCTGATGTCTAATACCACCAGACGCGATGACAGGAATCGTCGTTGCCTTTACTAATTGACC -AGTTAATTCAAAGTTAGGTCCGGACATTTTGCCATCTTTAGCGATATCAGTATAAATAATGCCTCCAATA -GGTATATCCGATAACTGTTTCACAAAACTAAATAAATTCAACTCTGTGTCCTCTTCCCATCCGTTCACTT -TAATATCTTCTCCATAAGCATCAACAGATAAATAAATGCGACCTGGAAATGTATGTGCCATCTCTTTAAG -CCATTCTGTATCTTGAATACCTTTCGTTCCAACTATGCAATAATTAATTCCTGCGGCAAAGTAGTCCATG -ATTTGTGACTTCGTGCGAATGCCACCACCTACTTCAATATCTTTGGTTGTTAATCTCCTCAATGACTTAA -TATAATCAAACTCTCGGGCATGCTGTGCCTTAGCACCTATCAAGTCGACGATATGAATACGATTCACACA -TTCAAATTGACTATAGTAAGCAATACTTTCTTCAGCCGAACGCGACATTTTTTCTTCACTATCATATTTA -CCCTCTGTTAACCTCACACTTGTTGACCCAATCAAATCAATCGCTGGCCATAATTCAATCATTTATAAAT -CCCCCTTGTATTGCCTGACGCAAAATTTGTAACCCATATGTACCGCTTTTTTCAGGATGGAATTGAATAC -CAATATAATTGTTAAATTGAACAATTGCTGGAATATCAGTCCCATACTGCGCATATGCAATGACATTTTC -TGACATCGGCGCTTGGTAAGAATGTACGAAGTAAACATCTTGATTTAACATAGGATGCTTACTCACTAAA -TTATTCCAACCTAAGTGCGGCACTGGGTATTCTGTTTGGATACGCGAAATATTTCCTGGGATAAACCCTA -ATCCAGATGCATCGCCTTCATCACTATGCTCATACATTAATTGCATGCCTAAACAAATACCGATCATTTT -CTTATCAGTATTCTTAGCCAATATTGCATCGAGATTTAATCGCTTTATCTCTGACATCGCATCTTTAAAA -TGACCGACACCCGGTAATATGATTGTTTCTGCTTGATCGATTATATTTTGCTTATTTGAGACAACCACCT -CATACCCCAAATGTTCAATAGCACGTTTTACATTACTAATATTCCCTAATCCATAATCAACGATGACAAT -CATTCAATCACACCTTTCGATGACGGCACACGCTGATCATCAGTTGCAGTTAGCGCTATGCCTAATGCAC -GGGAAAATGCTTTGAATATAGCTTCAATTTCATGGTGTGTATTACCTCCACGAATTAAATCAATATGCGT -TGTTAATCTTGCATTGATTACGACTGCTCTAAAAAATTCTTCTACTAACTCCGTATCAAACGTACCAACT -TTTTCTTTACTTAACGTTGCATTGAAAGATAAGTATGGGCGCCCACTTATATCCACAACGACACGTGCTA -ATGTTTCATCCATTGAAATGTACATCGTTCCATAACGAACGAAATGCTTTTTATCTTTAATCATTTCAAG -TAACAATTGGCCAATAACAATGCCGATATCTTCAGTTACATGGTGATCATCTACATCGATATCACCTTGT -GCCTCGATGTTTAACGATAGTCCACTATGAAACGTAAACAAGGTTAACATATGATTTAAAAAGCCCACAC -CTGTATTAATATGCGATGGTGACTGGTCATCTGATATTGAAATATTTAGTTGTGTTTCAGCTGTGTTTCG -TTGTTTTTGATAAATCATATTTTGCACTCCATTCTTTAACAATTTCTTCTAATTGCTTTAACTGTGATGC -TGTTGCAATTGAATATCTTACATAGCCCTTCATCACCGGCTCATCATAAAAACGAGGTTTAAATCCTTGT -TGATATACGTATTGTCCTAATTGTTGCGCCGCTGAACCTTTAGTAAGTACAAAATTAGCATTTGATGGGA -ATACTGACATTTTATCTGCAACATGTGTATCAAATATTTGTTTTAACTGCTCAGCTAACTGTCGTTGCAT -TGTTAAAAATCGACTTGTCTCTTCTCTATGTCTAAAAATATAAGTCGCAATATTTAGCGTAAATACATTT -AATGGATATGGATGTTCTATTGTTTGAATACGCTGTATCGTTTCAACAGTACTCATTAATACACCCAACC -TTAAGCCGGCAATTCCAAACGCCTTTGATAATGTGCGCATTCTTAAAATGTGTGGTGCCATTTCAACATC -ATATGCCTTGCCATAATCTAAATATGCTTCATCAATGACAAAGTATCCATTTATTGCTTTCATCTTATCT -GCAATAGCTGTTAAAAATGCCGTATCAAATTGCTTGCCTGAAGGGTTATGTGGATTACTCATAATAAAAA -ATGATGGTTGTACTTCATCGATTTTCGTTAAAATGGTTTCCAAATCAAACGTTAAATCTGATCTTGCATC -TACAAATGCAATTTCACGATTTACTTGTGCCGCATATGCTTGATACATAAAAAAATCTGGATTTAGCGTT -AATACCGGACCTTCTGGCATGATCAGCATTAACTTTTGAATCAATTCATCAGAGCCATTTCCTGCAATAA -TTTGTTCAGGCGATAATCCGTAAAACTTAGCATAAGCTTCCTTGAATTGTTCATATGCTGCATCAGGATA -TAAATTATATGGCGTTGCACTAATAATAGACGTCATTGTTTTTTGATCCAACGGCGTAACTGGACTTTCA -TTTTTATCAATATAAATCATTTCATTTACACTCCCCTAAGACTGACGTATTAAAATAGACTGTTGGTGAT -TGTATAATGCTTCAACATGAGCAATATGTTGTGCTGAATCAGCAATTTGATCAAATGTATCTTTTGATAA -ATGAATGACCGTGTTCCGTGTTAAGAAATCATTGACCGATAACCCATTGGTAAATCTAGCTGTTCTATTT -GTAGGTAATACATGACTAGGTCCAGCGACATAATCACCTATGACCTCTGGCGAATAATGTCCAATAAACA -ATGCGCCCACATATTTCACTTTTTCAATATATGGTTGAGGATTTACTGTTTGAATCGACGCATGTTCAGG -CGCGATTGTATTCATAACGTGGCATGCTTCATCAAAATTACTAGCATGGATAAGGTAGTGTTGATTAGCG -ATACTTTTAGAAACAATGTCGTATCTGTCCACATTAGGCAATGCTTTAGCAATACGTGATTCTAAATCTT -TAAGGACTTGCGCATCTTCACTAATGACATATGTACGTGCTAATTCATCATGTTCTGCTTGCGCAAATAC -ATCATATACGATGGCATCTAAATCTGCGGTGTCATCAATAATCAGTGCTATTTCTGTTGGTCCTGCAATT -TGATCAATACCTACCTGTCCAAATAAATATTTTTTGGCATATGCAACAAATTGGTTACCTGGACCTACAA -TCTTATCAACTTTAGGTATCGTTTCTGTTCCATAAGTCAATGCAGCAATACTTTGAGCACCACCAACTTG -AAACACTTGATTAACTTGCGTAATATAACATGCAGCTAATACCTCTTGGGATACTCCGTTAGGTTGAGGT -GGTGTCACAACAACAATATTTTCTACACCCGCTACTTGTGCTAAAGTCGCTGTCATTAGAACCGTTGATG -GATAACTTGCTTTGCCACCAGGCACATAAATACCCACACTTTCTAGTGGATGGTATATTTCATAGCACTC -CACTGATTCTTCTAACTGTTGATTCATCTGCTTAATACTTTCTTGATATGCTTTAATTCTTTCATAACTT -TGTTGTAATGCTTGTTTTGTTTTTTCATCTAATGTGTCAAATGCTGCTTTAATTTGTTCATGACTAATTT -CTAAATGATCTGTTTTCGTATGATCGAATGTTAGATTATACATTTTCAAAGCCTTATCTCCATGAACTTT -AACTTCCTGACAAATATCGCGAATAATTGGATACAATGACTCATCTAATGGTGCTTCTAATGAAAATTGA -TTTAAAAATTGTTGTGCATTAAGCATTGGCAATAGACACCTCCAAAGAGCGAATAAATTGCTCTATTAAT -TGTGATTTTTTAAAATAAGCTGCTTTATTAGTTATTAACCTTGCATTGATATCACTAATATGTTGCTTTT -CAACCAGTCCGTTCGCTTTTAGCGTAGTACCTGTTTGAACGATGTCGACAATTCCGTCTACCATATCGAC -GACACAAGCTAATTCAACAGAACCATTCAATTTAATCAATTCGACATCAATGCCTTTTGATTTAAAATAT -GTTTCAGCAGTATGAACATAACTCGTTGCGATTTTACGATAATTGGTCGTTTCAGGTTTCGCTGCAACCG -CAAAATGACATGCTCCAAAAGGCATATTCAACAAATTATTAACATTGTAATGACGCTCATCTAAAATGTC -GCTACCAACGATACCAATATCTGCAATTCCTTGTTCCACATAGATTGGCACGTCACTCCCTTTTACTAAA -ATGCATTCTATATTATCTACACTTAATAATAATTGGCGTTCTCTATTTTTTAATGTTTCTGATAATGTCG -TAAATTCAATTGCATCTAAATAGTTAATTAAACTATCCATTAGACGCCCTTTTGCTATGGCGATTCTTAA -CATTGTGCATACTCCCTTACTTAAAGTGTTAATCCTAATCCAAACCCTTCGATGCTTCCTTTGTAATAAC -CACCTGTTAAAACTCGAGATTCATTTTCAGCAAAATGACATTGAATAAATAAACCTGTGTAATAGGATCT -AGGTGGCTGCGCAGTAATATCTAAATGGATGTCTTTGTAACCTTGTGTATGTAACCAACGTTCCCATATT -TTTAATTCAACGAGTGCTGGATGGTCATTTGGAATATAGTGTTCCAATACATTTAATTGTTGTTGCGTAT -TCTCTTTCAAGATTTGCACGATTGGATGTTCAGTCGACAAATATGTAACCAATCCCGATAAATTACGTTC -CTCAATCATTGATAGTATGTCTGGTGTTTGTAACGATTTATCGAGTAACGCATCAAGCAATTGATAATGT -CCCAATACAACAAAATGCACGTTGTCTCTCAACTGCTGTTGAATAAACTGAATAAATAGCTTTAAGCTCT -GTTGTACATTCGCTAATGATGGTGCATAGTTTTCCAAACCAACTTGTACAGCCGCTTCATTATTCCGAAT -GATTAAACCTGTGTATGCCACTTTTGTTGCTGCAGTTGGATACATTGAGTAATAACGCAATAATTGATCT -GTAAAATCATTTCGAAGTGCATAAATTTGATGCTCATGTTGCCAAAAATTTCGCTCACCCATCTGCTGCA -AATCCTCATGGTTCAATTGTTTCCAGTCCAACTTTTCAACCAAACTAAAATCAACTAACTCATAATCTGC -TTTATTAAAATATTTTAAAAATGCTGTTTCCGATTCTTTTAACGCAATTAATTGTTCTGAATTATTCACT -CGACCACCCTTTACTTTCAATACTGTATTTAAAATCACCTGGTATTTTTGTTGTTCACTTTACTCCTCTA -CCATACTAAAGTGTAATATGCTTAATAACTTATCATTTTTAGCAATACATTACAACGTTTTTCAGAAAAT -TCGGTGTATTGGTTTTAAATTTTTTCAAAAGAAAAAGGCAAGACATTTGTGCCTATAAAAATGCTTAACC -AAGATTTTTATATTGAAGTTGTACTTCTTGCACATATTGTCCTTGCCTTATTATGTAAAGTTATTTTCTT -TCTATCTTTTTATTAAATTTAACTATTCTTCATAATCCCGATTACCTTTAAAGAATTGTCTATCTTGTTT -ACTATATACATTTTCAGGATTAAAAAACGGTTTGAGTTTATATTTAAATTCAAATAAGTTTAGACCATCA -ATCGCAACCCTATCTTGGTAAACGTTCGTTGCTGATATATCTGTAAAATTGTTTGGACCGACACCTGCAA -TAAATTTAAAGCCTGCTTTATCGACCAAATAATCATACGCTTGTGTATGTCTATCCTGTGCGCCATGTGG -AAATACAAACATATCTGTTTTACCTACAATTGGTTCAACTTCATCTTTCCATCTTTTAGTATCACGTTTA -ATACCATCTAAAGATGTTTTTTCAAAATTAATGTGACCATATGAATGACTCGCAAATGACCATCCATCCC -GTTTCATTGCGCGAACAACTTCCTCAGCTGCCTTTTTATTCTTTGTATAATCTTTACTCGTTAATTCATT -CGTGCGATATCCTAATACACCCTCATAACCGGTTAAAGCAACAACACCTTTTTCACCATTTAAAGAAAAA -TCTGGATGCTCTTTTACAAATTTATTTAAAATTGGCACGATATCATTGTCATCAGAATAAGTAGCATGGC -CTTTTGAGTCTGTCGTTTCAGATACAACATGCTTATTTTTATCAAGTACTAAGCGGTCAGCATAACCATG -GTGTCTCATGTAACTATAGTAATTCATATCATCAATTGAGATGATTAGCGGCTTTTTACCTTTCGGCAAT -TTTACTTTTTTGGCTTTTACATGATGAGATGATAAGTCGTATACATCATGTGGATTAACGATGATGTAAT -TATTTTTATATAATTCGTTCAATGATTTTTTAAATTCACTTACAGTAATCATCCAATCATTGTTGCCCTT -AGCTTGGTGTGTATCTCCTGTAAACGCAACTTTTGGGTCTGTAATTAATGGATGATAAAACACATGATAA -ACTTGGCCGTGATATGTTTCCCAATGTTCATCCATTTTCGATTTATGCATTGCATACTCATTTGGATTAA -CAGATTTATTTTGAGCTTTCTCATTTTGCTTGGAACAGCTATATAACAATGCAACTGATAATAACAGAAA -AAATAGCAATAAATATTTTTTATGCATTAAACATTCTCCCTATGTTTTATTATGCACAATTATAACATTT -TTATTATGTGGCTCATAACTTTTTAAGAAACTGTTGGGATTTTAATTTTATTTTTTAGATAATGTCATAG -TATTTTATTTATAAAACACAATATCTCCTTGATTGATAATGTCGTCCATTGTATCGTCTCGCTTGAAATT -AAGTCTTTCTGCTAAATTTATTGAACGTTGGTTACACTTATTTGTCCTGATAACTTTTACTGTTTCTTGA -TCGATATAATTCACAAAATTTGTGATTGCTGTAATAGCCTCACATGCGTACCCTTGTCCTTCAAAACTTG -GATGTAATTTATAAAATAAATTTAATACTGTTTCTTGCTTTAATTGTCGATATTCATATCCACAAATACC -AATAACACTACAATCTATTTTTTTCACCAATACAAAGTAACCAAATTGATATTGTTGCCAATGGTTTTGC -CATTTTTCAATCCACCGTTGTGTGTCTAATTTGGAATTATGTAAACCTTTGGGAGTGTATATATTTGCTT -GTGGATGACTACAAATATTATAAAGATCAATTAAATGCGAGGAACTTGGAATCATTAAATTTAATCTTTC -AGTATTTATCATTAAATGTCTCCCTCCTATTTCTATTTAAAGACTATTTATATGAATACTAATGCCACGG -GTTGAAATATCGACTATTATTTAAAAAGAATAATGTAACTACTAACATCAGAAGTATTAACGTCAAACAC -AAAACAACATAATCATCTTTTTTTAATTGTTTTTTGACGTACCAGGTTCTCCTTTTATACTGTCCGAATT -GTCTTAACTCCATAGCAGTACTAATAGTGTCAATTCTTTCGATACTAGAAAATATTAAAGGTAACACAAT -GCGTTTGATACCTTTAACACGGCTAGTAAATTTCGCCTTTTTCGAATTATCATATCCTCTTGCTTGTTGC -GCTTGTGAAATATTAAAATATGTTTCTTGAATATCTGGAATATACCTTAATGCTAGTGATACTGCATAAC -TGATTTTATAATTCACACCTAGCTGATTTAAACTTGCAGCAAAATGACTCGGATTCGTTGTGAATAAAAA -TATTAACGCTAAAGGAACTGTACTAATATATTTTAATATTAGATTAAACAGATAGAATAATTCCTGTGAT -GTTAGCGTAAATCGACCAATACCATTGATTAACTCTGTACGCTGATTATAAATCTTCACACCATATTCAG -GATCAAATATATATACGGCAATAATATTTAATATTGTGAAAAACAGAATAAATTTAACAACAAAACGAAC -TTGTTTCCATTCAATATGAGCATATTTGAACAATAAAATAGATGAAACACTAATTAAAATTAAATATCTT -GTGTCATAAGTCACCATTGCAGAAATAGAAACAACTAATAAGAATAAAAGTTTAACAGTCGCATTTAATT -GATGAATACGACTATTTCCCGGGTGAAAACCTATAGTATTATATTGATTCATTGGCGTCTCACCTTCCTA -TCATGGTTAATAAATAATTGTATTAATTTCTGTGGCTCGCTAATCCCTATATATTCGGCCATTTCAAATA -GCGATGTTTGTCTCAATGATGCAATCTCACAGATTTTTTTATCATTTAAAACCAATACTGGCGTGGTATC -AGCAACGACTTGACCTTTTGATAATACAACTGTTCTTGAACTATACTCAGACAATAAATGCATATCATGC -GTAATCATAATAATCGTCTTCCCCTGTCTGTTTAGCTCAATTAAAAATGACATTATCTCATTATAATGAT -AGAAATCTTGACCAGCAGTCGGTTCATCCAATATGATTATTTCCGGATTTAAGACTAAAACAGATGCTAT -AGTGACCCTCTTTTTTTGACCATAGCTTAAAGCTGCAATTGGCCAATTCCGAAATGCATAAAGTCCGCAT -ATTTTGAGCACATTCTCTACTCGTATCTTTATATCTGATTCTTTCATACCTCGTGCTCTTAACCCTAATG -CTACTTCATCGTAAATCATTTTTTCGGAAATCATATGATTTGGATTTTGCATCACATAACCTATGAATTC -AGATCGTTCGCTAATTGACAATTGATTAAATCCCTTATTACAAAATTGGATATTACCTGTTATATCTAAA -AATCCACAAATTGCTTTAGCAAGTGTTGATTTGCCGGCACCATTGTGACCAACTATACTAAGCATTTCTC -TTCTATAAACATTTAATTGAACATTATTAAGTACACTATTACTATAGTCACTATATTGAACACACACCTC -ATTTAATTCTAATAGCGGTTCAGATTTGTACTTATTATCATCATTTGAAGATGTTTTATCTATCCATTTT -TTCACTTTAAATTTAACATGTTCACTCATACAAACTTCACGTAAATTCGCTAAGTTATCAATGGATTCAA -CATCTACTTCTGCATATTTAAGCGCTGTACAGTATAATGGTTCACGTATTCCTGCTTCTTTAAGCTTAGA -TGATTTTAGCAAATCACTAGGCGTTGTATTAGCGATGATTTTTCCATCTTTAAAAAGAAGAACTCTATCA -AACGTATCATCTAATGATTCTTCTAATCGATGTTCGACAATAATCATCGTTGACTTTGTTTCTTCATGAA -TATTATTTAACAATCTCAGCGTTTCATGTCCTGTCGCAGGATCTAAATTGGCCAGTGGCTCATCCAATAT -TAAAATAGGGGTACGATGGATTAATATACCACCTAATGAAACGCGTTGTTTTTGACCCCCAGATAAATCT -TGCGGTCGGTGATTTAAATGTTCTATCATATCAACTTTTTCAGCCCAATAACTCACGTTTTTCTTCATAT -CATCTTGTTCAACACAATTATTTTCTAATAAAAAGGCCATATCTTCAGCTGCTGTTAAGCCTATGAACTG -TCCATCTGTATCTTGTAAAACTGTACCAACAACATTAGATCTTTTATGTAAACAACTAACAGTTGCATCT -TGATTATTTATATGTAGTTCCCCAGTTACGTTACCTTTAGTTTTAAATGGAATTAATCCATTTATGCAAT -TTGCAAAAGTCGATTTACCACTACCCGAAGCACCAACTACTAATACTTTTTCTCCCGGATAAATATCAAC -ATTTATATTCTGTAATGTAGGTGTTGCTTGACTATGATATTGAAAACTAAAGTCTTTGAACGAGATAATT -GGTTCAGTCATGATATATCATTACCTTTCTACATTCATTTACATATCTGATTCAACAAAATAATTATTCT -TTACGTAAACTACCTTTTTTTATTTGAGATGAAGCATATGCTTTTAATAATATTGTCCCAATAATGCCAA -CTGAAATAATATTTAATACTGCAGAGATAACACCTTGTGTATAAACCTTGTTAGCTGGTTCGTTATAAAT -CAAAATATCTAATGTTGGTGCAATAAGTGCCCAGCAAATAATATTCGCAATAATTTGACCGGTATTAAAA -TAAATCATCGACTTCCTAGAAAATCGTCCTGAAGAAAGATTTAATTTTAGGCCAATCCATCCATATAAAC -AGCCTATAATTCCCGAGCAAATAACCCAACTCCACCAGGCACTACCGTATGTAGTGAAATCTTTAATAGC -GTGACCAATTAATCCAGTCATTAAACCAGCAAAAGGTCCAAATATTGCAGATATTAATGCTAAAAATGCA -TAAGATGTTTCTATATTCGTATTAGGAAACCCTGTTGGTATTACAACAAAACGCCCTAAAATTACAAAGA -CCGCTGCTCCTATACCAATTGCAACAACAGTTTTAACTGAAATATCTTGTTTTTTCATCTTCATTACTCC -TCACATAAAAAATTCATTAAATCGATGGTGCTTTAGATAAATGAATCGTCCAATCATTTCCAGTACCAAT -ATGATATAAATCTGAAAATGAGTCTTGATTGACCGCTACACCAATATTTACTAGCGAGTTAACATACACA -AGAGGTTCACCCACATTAACATCTGCAAACGATCGCGCAAATTTAATAATATTTTGATAGACTTTCTTAT -CTTGATGATAAATTGTTACCACCAAATTATTGCCATGAACAATTTCCAAGGATTTTAAGAATGCCAATGG -AATATTTGTCCATAATGACCCAAATCTGATATCTAAAATATCAATACTTCCTGTAACAGAATCCTCATTT -TTTGTCGCTTCACTTATTTCTAATGCCTCAATACTATCAACATTAATTGCCTGACCGAGACGTTCAAACG -CTATCTTATTTGCAGCTAATCTCGCTCCATTGTATGCATAAACATCTCTACCATGAAAAGTATGACTTTC -TTCCGAATGAGGCAATCGGCTTTTCACTTCATCAATTTCGATAACTTTTTTAATACCTTCATAATGTTTG -ATATGACTTAAAGAGCCATTATCAGGTGTAATAATGTAATGACCTGAATATGTTAAGCAAGCAATGCTCC -GCCTATCACTACCTACACCCGGGTCTACCACTGATACAAAAACTGTGCCTTTAGGCCAGTATTTTACAGT -TTGATATAAACGATATGACGCTACCCAAATGTCATACGGTGGTATATCATGCGTTAAGTTTTCGACACGT -ATATCATCACTTACAGTATATGCAACTCCATACATTGCACTTACAGCGCCATCACTAAGTCCAAAATCTG -ATTGCAATACCAAATAATTTCCCATAAAATGCCTCCTTTTTTTAAAACTTCAAAAAATATTATCTACATA -TTTAAGGTTATATATTTTGAATTTTCAGAATTATATTAAAATAGTACGAGTCACTTGTTACAAAGTCAAT -AGTAGCGACTATAAAAATGATAATAATAGTCAGATTTATCTCATTAACTAAATTTATTGAACGTTGGTTA -CACTTATTTATGTTTGAATTAATTGACTAGGGTATAACAATAGTGTGGTGTTTTATAGATATGTCTTTTA -TATGCATCATAAAAAAATATTCGAATTCGAAATAAAATGCTTGCATCTTTGTTTTTCAAGTGGTATCGTA -TGTATATCAAGTATAAAAAATATATCTAAGAGATAAAAATATGGAGGTTTTATATTATGACAAACTTTAC -TTTTGATGGTGCACACAGTAGTTTAGAGTTCCAAATTAAACATTTAATGGTTTCTAAAGTGAAAGGTTCA -TTCGATCAATTTGATGTCGCTGTTGAAGGAGATATTAATGACTTCAGCACTTTAAAAGCTACTGCAACAA -TTATTCCAAGCTCAATTAACACTAAAAACGAAGCACGTGATAACCACTTAAAATCTGGTGATTTCTTTGG -TACTGATGAATTTGATAAAATCACTTTTGTGACAAAATCAATTACAGAAAGCAAAGTTGTAGGTGATTTA -ACAATTAAAGGTATCACTAACGAAGAAACATTCGACGTTGAGTTTAACGGCGTAAGTAAAAATCCTATGG -ATGGTTCTCAAGTAACAGGTATTATTGTTACTGGTATAATCAACAGAGAAAAATATGGCATTAACTTTAA -CCAAACACTTGAAACTGGTGGAGTAATGCTAGGTAAAGATGTTAAATTCGAAGCATCAGCTGAATTCTCA -ATCTCAGAATAACCTCATCTCATAATCCTCATTGATTTTAATATATACGAAATGCCAACTATATCATCCC -TAGGTATAGTTGGCATTTTTCTTTAATTTATGATTCACTATTTTAACATTTAAACTTATATTAAGACGCC -CTTCATTCAGGCAGATCTTATTGAAACTGATAACTTTTATGCCCTTTTGCAAAGCCATTAACCGTATAAA -GCATAGATCCTCCGTCCATTTCTATATCATTGGAACAAATGATGAGTTGATTTGTGCCAGGTATAAATTG -CGGATGCGTAGAACGTAACATATGCCCTTCATCTCGGCTTGGTATCAATATTTGTCCTATTGGATAACCC -CTTTTATTAAAAACTAACACTCGACCTTGACCATACATTGCTACGTATAAATTATCGTCACTATCGATAC -AACATGAGTCTGGTCCTTCATGACCTGTAAAATAGTACGGTATGGTAGCTCCAAATGGTTGTATCGTCAC -ACCATCATCTTCAAGTGCAATGCGATGTAATCGATTGGCTGTAGTTTCTGTTACCCATAGTACTTTTTCA -TCTGTACTTAAAGCAATACCATTTGCTACGCTAATATTTTGAATAATCGGCGTCACTGTTTTAAAGTCTG -GCGTAACATAATAAACGCCTCCTAGTGGGTTGGTAGAGTATCCTCTAAAATCTGTAAAATAAAACCCACC -TTTAGAATCAAATACCATGTCATCAATACAATATTCTGTTGATAGATCTTCAATGATATCTTGTATGTTG -TCACCATTTTCTGTCGCTGCAAAAATGCCTCCTGTAGATTTAAAATCTCCTAAATAACAAATAAATAATC -GGCCATCTTTATGTATTTTGATTGCTGCAGGATTTGCTTTATGGCTTACAAAAGGCCGCTTAATTTCTTT -AGTTTCTGGATTTACTTTAAAAATATTTCCTTCGAATACATCCAATAAAAAGAGTTGTCCCTGCCGATCA -AAGTTCAATCCTTCTAGTTGCAATCCTTTCTTGGAAATTTCAAGCCATGGTTCAGCTGTAATTGTTTGTA -ATTCACTTTCAGATATAATTGGAACAGCACTATTAGACTTCCCGCTATAAAATAATGTAGGTAAATCTTG -TTGTGACATCATGATCATTCCTTTCATTTCATTCGTTTTAACTATCATTTTCATTTTAAACAAGGTAACT -ATCAAATCAAATGATAACGTTTTCATTTATCTATTTTATCGGTCTAGTGGCTGATTTCAAGCTAGAAATA -TTGAATGACAATACAACTCTGTTAAAATGATGGACGTAGACAAATATGCGTATTGACGCTTTATTTTAAA -AATTAACATGCTTATAACATGTTTTTAGAAGGAGATTAACCTATGAACTATCAAGTTCTTTTATATTATA -AATATACGACGATTGATGACCCTGAACAGTTTGCTCAGGATCACTTAGCCTTTTGTAAAGCACACCATTT -AAAAGGTAGAATTCTTGTTTCTACAGAAGGTATTAACGGCACATTATCTGGTACAAAAGAAGAAACCGAA -CAATATATGGCACATATGCATGCCGATGAACGATTCAAAGATATGGTGTTTAAAATTGATGAAGCTGAAG -GACATGCTTTTAAGAAAATGCATGTACGTCCTCGAAAAGAGATTGTTGCTTTAGATTTAGAAGAAGACGT -CGATCCAAGACACACAACTGGCCAATATTTATCACCTGTAGAATTTAGAAAAGCTCTTGAAGATGATGAC -ACAGTCATTATTGATGCACGTAATGATTATGAATTTGATTTAGGTCATTTCCGAGGTGCAATTCGTCCAA -ATATCACGCGCTTTAGAGATTTGCCTGACTGGATTAAAGAGAATAAAGCGTTATTTGCAGATAAAAAAGT -GGTTACGTACTGTACTGGTGGCATTCGATGTGAAAAATTTTCTGGCTGGTTATTAAAAGAAGGTTTCGAA -GATGTAGCGCAGCTTCACGGCGGTATAGCTACATATGGTAAAGACCCTGAAACAAAAGGTCAATATTGGG -ACGGTAAAATGTATGTATTTGATGATCGTATCAGTGTTGATATCAACCAAGTTGAAAAAACGATTATTGG -TAAGGATTGGTTTGATGGCAAACCATGTGAACGTTATATTAATTGCGCTAACCCAGAATGTAATAAACAA -ATATTAGTTTCTGAAGAAAACGAAGCTAAATATTTAGGTGCATGCTCTTATGATTGTGCTAAACATGAGC -GTAATCGTTATGTTCAAGCAAATAATATTAGTGGTAATGAGTGGCAACAACGTTTAACAAACTTTGATGA -TTTACATCAACATGCTTAGTATTAATTAAATACCTTTCAAAACACGCTTTGAAAATCCGATTTATAAAGG -TTTTTCAAGGCTGTTTTTTTATGCGCATGCATAACCTGATATGTTTTTAATTATGCGCATGTTATACTAA -ATTAAATTTTAATACTGCGGGGTGTCTTAAAATGCACATTTTAGTAACAGGGTTCGCGCCTTTTGACAAT -CAAGATATTAATCCTTCTTGGGAAGCTGTGACTCAACTAGAAAATATTATTGGCACACATACAATCGATA -AATTAAAACTACCAACCTCTTTTAAGAAAGTAGATACTATTATAAATAAAACGTTGGCATCTAATCATTA -TGATGTTGTACTAGCTATAGGACAAGCTGGTGGTAGAAATGCCATTACCCCAGAACGTGTCGCCATTAAT -ATTGATGATGCACGTATTCCAGATAATGATGATTTTCAACCTATTGATCAAGCCATTCATTTAGACGGTG -CGCCAGCTTATTTTTCAAATTTACCAGTTAAAGCAATGACTCAAAGTATTATTAACCAAGGACTTCCTGG -AGCACTTTCAAATAGTGCAGGTACGTTCGTATGTAATCACGTACTTTATCACTTAGGTTATTTACAAGAT -AAGCATTACCCTCACCTTCGATTCGGTTTTATTCATGTGCCATATATACCAGAGCAAGTCGTTGGTAAAC -CCGATACACCATCTATGCCATTAGAAAAGATAGTTGCAGGTTTGACTGCAGCTATTGAAGCTATTTCTAA -TGATGAGGATTTACACCTAGCCCTAGGCACAACGCAATAGTTATAAATGCACAAACAAAATACATTCCTT -AAATGACTAACAAATTTGTTAATAGGGTAATACTTACGGAAGTATGTTTTATTTATGGGGGCGGAATTAA -TAATGACTACAAAAACAGTATTTGATGTCATTGATATGGGTTTAGGATATTTAGTAAATGTGTATGATAC -TTGGAAAGTTGAAAAGGTACTTGATGATTATCATAAGCCTTTTTCTAATACCATTCATTGGCAATTTGGG -CATGTATTAACAATTTTTGAATCAGCCTTAGCTGTTGCTGGTAAAGAGAATATTGATTTAAATATATATA -GACCTTTATTCGGAAATGGTTCGTCTCCAGATGAATGGAAGGATGAAGTACCGAGTATTGAAACGATTTT -AGAAAGTCTCCAAACATTACCTGAACGTGCACGAAATCTAACTGAAGATGATTTAGCAATTGAATTGAAA -CAACCAATTGTCGGTTGTAATAACTTAGAAGAGTTATTAGTATTAAATGCCATTCACATCCCACTTCATG -CTGGTAAAATTGAAGAGATGTCTCGTATATTAAAAAATTTTAAATAAATATGTGCTTATTAACCGTTAAC -AACACGTTAACGGATTTTTTTATTTTTTAAAAGGCCACTCTTAGTCTGCTTACATACAGATTAAAAGTGA -CCTATTAATATCATGTATTATACATAGAACTAAGAATAGCCTTATCTATAAAAATAATTATAATGGTTTA -TGAGTTAAATCTTTTTCTTAAAATTAAATACAATCCCAATATACCTATAAATACCCATGTAATCCATGAA -GTTATAATCTTCATACCAGTTTTTGGTAATTCTTTTAGAGGATTTTCAGGTTTGGTTTTATTATCTTTAG -GTTGATCATCCTTATCCACTTTTGATGGCTTATCTGGGGGAGTTGGTTTAACTTTATTAGAATGATCAGG -TTTAGTTGGTGGTGTTTTGTCTTTTGGTTTTTCAGGATAGATTGGTTTATTCGGTTTTTCTGGCGTATAT -TTATTCGTCACAATCAAGTTGCCCATATCATTGTTATCCACATGCGTTGTATAGCCATTAACTTTTGTTA -ATTCCTCGACTGTGTATTTTACTTGTTGACCTTTTGCTTTTTCATCTAATCCTGTCCACGTATGTGTCCA -GTTATTAGATTCATTTAATGTTGCTGTTTTTCCTGTTGCTTTTCCATCTTGATATAACTCAACTTTGATT -TCAGTTGGTCGTTTTCCGTCTTGGTTATTATTGTCATCCCAATTTTTTGTTACTGTTGCCGATGTCTCTC -CTGGTGTATACTTGTTCGTTATTGTCGTACCGTTGATGTCTGTTGTGTAGTCTTTTACGTGATCTTCGGT -CACTGTATATTCTATTTTCTTTCCTTCATCATACTTCGGTAAGTTTTTAAATTCGTACTTCCAGTTTGTT -TCAGATGTCACGTCTAACGTTTTTACTTTCTCTCCGTTAGCCAATAAATTCACACTGACTTTTTCTGGTC -TCTTACCATCTTGATTGTCTTTGTCGTCCCATACTTTTTCACCACTAATTGATGTTGTTTCTGGCGTATA -TTTATTCGTCACAATCAAGTTGCCCATATCATTGTTATCCACATGTGTTGTATAGCCTTTAACTTTTGTT -AATTCCTCGACTGTGTATTTTACTTGTTGACCTTTTGCTTTTTCATCTAATCCTGTCCACGTATGGGTCC -AGTTATTAGATTCATTTAATGTTGCCGTTTTTACTGTTGCTTTTCCATCTTGATATAACTCAACTTTGAT -TTCAGTTGGTCGTTTTCCGTCTTGGTTATTATTGTCATCCCAATTTTTTGTTACTGTTGCCGATGTCTCT -CCTGGTGTATACTTGTTCGTTATTGTCGTACCGTTGATGTCTGTTGTGTAGTCTTTTACGTGATCTTCGG -TCACTGTATATTCTATTTTCTTTCCTTCATCATACTTCGGTAAGTCTTTAAATTCGTACTTCCAGTTTGT -TTCAGATGTCACGTCTAACGTTTTTACTTTCTCTCCGTTAGCCAATAAATTCACACTGACTTTTTCTGGT -CTCTTACCATCTTGATTGTCTTTGTCGTCCCATACTTTTTCACCGCTAATTGATGTTGTTTCTGGCGTAT -ATTTATTCGTCACAATCAAGTTACCCATATCATTGTTATCCACATGTGTTGTATAACCTTTGACCTTTGT -TAATTCCTCGACTGTGTATTTTACTTGTTGACCTTTTGCTTTTTCATCTAATCCTGTCCACGTATGTGTC -CAGTTATTAGATTCATTTAATGTTGCCGTTTTTCCTGTTGCTTTTCCATCTTGATATAACTCAACTTTGA -TTTCAGTTGGTCGTTTTCCGTCTTGGTTATTATTGTCATCCCAATTTTTCGTTACTGTTGCCGATGTCTC -TCCTGGTGTATACTTGTTCGTTATTGTCGTACCGTTGATGTCTGTTGTGTAGTCTTTTACGTGATCTTCG -GTCACTGTATATTCTATTTTCTTTCCTTCATCATACTTCGGTAAGTCTTTAAATTTGTACTTCCAGTTTG -TTTCAGATGTTACATCTACCGTTTCTACTTTCTCTCCATTAGCCAATAAATTTACACTGACTTTTTCTGG -TCTCTTACCATCTTGATTGTCTTTGTCGTCCCATACTTTTTCACCACTAATTGATGTTGTTTCGATTGGT -TTTTCAGTATTAGTAACCACTAAACCATCTTCTTTTTTAGTATATCCTTCTGGTGTTGTATCTTTACCTT -GAGCATTTACTTCTTTAACTAAATATTTAATAGTCTTGCCATTTTTGTCATTTTCCGGAAGATTAGACCA -TGTCACTTTTGTCGTTCCATCTTCTAATTTTTTAATTTCTGCTTTGTCTACTGGTGTTGTGTTTTGATTG -TCATCTTGTTTGTACAACTTGAAATAAATCGTTGGTTTCACTTTTTGAGTGCCTTCCCAAACCTTTTGAG -CAGAAACATCTTTTGTTTTTTCTATCTCTTTTGCATTTTCAATAGTCGTAAAATATCCCTGATTATCTGT -ATCTTTCATAGTAAACGGATATTCTTTATCCTTATCAAATGTATACGGTGCTGGCGCCTCTATTTCTTTT -AAAATATAGTCTCCGCTAGGCAACGCTTTAATATTAGCAATACCGTTTGCATCTGTTTTAATCTCAATTT -CTTTTTGATTGTCCTTTACAACTGATCCATCTTTTTTAGAAAGTTTAAATTTTACATTAGCTATAGGAGC -CTTGGTATCTTTATCCTGTTTTAAAACTTTTAATTCACCTTTTACAGTACCTTCAATACCGGCATTAGCA -TTAATATTATGCACAGTATGATTAAATGCTTTCCCGTTCACTTCTTCCTTACCATGCTCTTGATACCAAG -CTTGTGAATTATTAACAAACTCTTTTTGCTGTTCATTCGTAATTTTGGTTTTGTAGTTAATTGAAAAACT -ATTAAGTGACCCATAGCCTTGTGGAATTGTTACATCAATTGTGTTCTTCGTATTATCAACAGTTATTTTA -GAACCTGGAAAGGCTTTTTCAAAATCAGTAATTGCATTTGGTCCACTATAATAATTGCTATGTGTACCTG -TCACATTAATGTTTAATGTGCTTAAATCTAACTGCTGTCCACCTTGAATCTGATCCTTTATAGTAATATC -TTTCGATACATATCTTTTTTCATTATTAATATTTAAAAACCATCGTACATGTGTCGTATCTTCTGGCAGC -ATATCTCCCGTTTTATAATAGAAAACACTACTTGTTCCCGCTTCACTTTTATGAACCGTAACATTCGTTG -ATTTATTCCCAGATGTTATCGTAGCTACTTTGTCATCTGAAGTATTTGTTTGCGTTAAATTTCTTCCTTG -TACTTCAAATTCTGCAAATCCCGAAACATCACTTAATTTTTCTACTTTATCATTGAATGTAATTGTTGCT -CCGTCTGGCGTAATAACTGCTTGACCCACCTGTTCACCTTTAACAGTTAATGATACTGTTTTGCTATAAC -CCTCTATCTTTACTGTACCACTTGTCGGCCATGCCACTTTAATCGTGTCACCATTTTGTATTTTTCCATT -TTTATCGTCGAACGTCATTTTTACTGTCGTTTTACCACCATCTTCTATCTTAGACGGTGATACAGTTAAA -TCTGTAACATTCGTTGATGAAATATCTCGTGCTGCAAATGCTTCATTTTTATTAAATAAAGGTGTGATGA -TATTTAATAACATTATAAAGACCATAAACTTCAACACATTTTTGTTCATAAAAACCCCTCCTTATACTCT -ATGTCATATCCACAGGATACTAATAATAAATTATAAACTAATTTAGTTCTTATTCAATGAAATTTATCAA -AAATTCATATTATTATTTTATTATGCAAAATATATACAGTATAACGAATACAAGTGCATGAAGTTAACTT -GTATCAATTAATTTCTTAGTATATTAGTTCATTTTCAAAATCTTTTAAATTTAATAAACACCAACTATAC -CAGTTCTTCACTGCTTCTCGAAAAATAATTATATTAATGATTTCGTTAATTTAATTTTATATTTAATTAT -TACTGTACATCTTTTGTAGTTAGCTTTATTCTTAAATTGAAATATGTATAAAACATAGAAAGAAGGACGT -TTTAACATGGAAAACACGGTTAAATATCGTAAGTTTATACTCCCTATCGTTGTAGGTCTCCTAATTTGGG -CACTTACACCTTTTAAACCGGATACTGTGGATCCAACAGCATGGTATATGTTCGCAATATTCGTCGCGAC -AATCATTGCTTGTATTACACAACCGATGCCAATTGGGGCTGTCTCTATAATTGGATTTACAATCATGGTA -CTCGTTGGCATTGTTGACATGAAAACGGCTGTCGCTGGTTTTGGTAATAATAGCATTTGGTTAATTGCTA -TGGCCTTTTTCATTTCAAGAGGATTTGTGAAAACAGGTCTTGGTAGACGTATCGCACTTCATTTCGTCAA -ATTATTTGGTAAAAAAACATTAGGCTTAGCATATTCTATCGTCGGTGTAGATTTAATTCTAGCGCCTGCT -ACACCAAGTAATACCGCGCGTGCAGGTGGAATCATGTTCCCAATTATCAAATCACTTTCTGAATCATTTG -GTTCGAAACCGAAAGACGAATCATCACGTAAAATGGGTGCATTTCTAGTTTTCACAGAATTCCAAGGTAA -CTTAATTACTGCGGCTATGTTTTTAACTGCAATGGCCGGTAATCCCCTTGCACAAAATTTAGCATCTAGC -ACATCTAATGTTCACATTACATGGATGAATTGGTTCTTAGCTGCTTTAGTTCCTGGACTTGTTTCCTTAA -TTGTTGTACCTTTTATCATTTATAAAATTTATCCACCAACTGTTAAAGAAACACCAAATGCTAAAAGTTG -GGCTGAAAATGAATTAGCGACTATGGGTAAAATCGCTTTAGCTGAAAAATTTATGATTGGTATTTTTGTC -ATTGCTCTAACACTATGGATTGTCGGAAGTTTCATTCATATTGATGCAACTTTAACGGCCTTTATTGCGC -TAGCATTGTTATTATTGACAGGCGTCTTAACATGGCAAGACATTTTAAACGAAACAGGTGCTTGGAACAC -ATTAGTATGGTTCTCAGTGTTAGTGTTAATGGCCGACCAATTGAACAAGCTTGGATTTATTCCTTGGTTA -AGTAAATCCATTGCTACAAGTCTTGGTGGATTAAGCTGGCCTATAGTACTGGTCATTTTAATATTGTTCT -ACTTCTATTCACATTACTTATTTGCAAGTTCTACAGCACATATCAGTGCTATGTATGCAGCATTACTAGG -CGTTGCCATCGCAGCCGGTGCACCACCATTATTCAGTGCATTAATGTTAGGTTTCTTTGGTAACCTATTA -GCTTCAACAACACACTATAGTAGTGGTCCAGCGCCGATTCTCTTCTCTTCAGGTTACGTGACTCAAAAAC -GTTGGTGGACAATGAACTTAATATTAGGTTTCGTCTACTTTATTATCTGGATTGGTTTAGGATCACTTTG -GATGAAAGTAATTGGTATATTTTAAAATGTTTAAATTAGGGAGTGGGACAGAAATGATATTTTCGCAAAA -TTTATTTCGTCGTCCCACCCCGGCAAGGTTGACTAGAATTGAAAAAAGCTTGTTACAAGCGCATTTTCGT -TCAGTCAACTACTGCCAATATAACATCGTAGAGCATAGAACATTGATTTATGTCCCAGCCTGTTTTTAAT -TTGTATTTAAAATCAATCTTTGCTAAATCAAGACTCCCCTTTTTAAAATACGTTTATCCTTTAAATCATT -GCGTACTTCACTGAAAATTTGTATAAAGATTTAAGTCATTACGTAACATCACATAAAATACATTTCTATA -TTAATCCGCTTCATTGATTAACATTACTTATGTATCATAAATCATCAAACAAAAAACACTTTCGCTTAAA -TTCATTTAATTATGAATTCAACGAAAGTGCTTTATTTTATATTTAATGTTTCAAATTTATACGGCTGTCA -CTATTACTGCACACATACCTCAGTCTCACCTTAACATAGCACAAAGGAAGTTGAAAACATGTATAATTAT -CTCTCCTCGCATTTTATAGGGTTTTTGCGACCGGATGTTTCTTCAATTTAATGTATTGAGAAAGACTATA -TAACACAATACCTGTCCAAATAAATATAAACGTAATTAATTGATCTATACTAAAAGGCTCTTTGAAAACA -AATATGCCGAGTACAAACATTATTGTTGGTCCAACGTATTGAATAAATCCTATTAGCGAAAGTGGAATAC -GTTTTGCCCCGGCTGAGAATAGGATTAGTGGTATTGCCGTAATAGCACCAGAAAATAATAACCAAAATGA -TGACATGTTCAATCCAAATGACATCTGATGTTGCTGCCATAAATAAATAACGTATATGAGTCCAGCAGGT -GCGGTAACAATACATTCAATCGTAATACTGCTGATGGCATCAATATGTACTACTTTTTTTAATAATCCGT -ATGTACCAAAGGATAACGCTAATATAATAGAGACGATTGGGAATTCTCCAATCTTGAGCGTCATATATAA -TACACCGATGAATGCGAATAAAATGGCTAGCCATTCAAATTTATTGAATCTTTCTTTTAAAAAGATAAGT -GCGAGCAAAATGCTAACAAGTGGATTTATATAATAACCTAAACTTGTTTGTAGTACGTGACCGTTCGTTA -CAGCCCAAATAAATGTACCCCAATTTAATGTGATAACATAACCCGCTACGACAATTGCTAGTAATTGAAT -GGGCTTGGCTAACAATTGATTCATATCTCGTTGAAATGCATTGCGTTGTTTTTGTCCAACCGCGAGTATG -AAAATCATGAATATTACTGAAAATATAATACGAAAGGCTAAAATTTCAAATGCGCCTATTGCATCAACGA -ACTGCCAATATATAGGTAGTATTCCCCACAGAATGTAAGCACTAAGTGCTAAAAATATACCTTTTTTATA -TTCTGTATTCACTTACATACCTCCTTACTCTCCCAAATTTTTAACATGTTACGCTCACTTAGTTAAGCTA -ATATAACGATTTTACTAATAATATTTCGATAAAGATATCATTTTGTTTATATTTTCCACATTTATTCGCC -AACCACTAAACAATATTAATTTTATAAATAATTCTGTACAAATCAGGGTATATTGCCAGAAAGACTACCA -AACAACATAAAGGATGGATACAAATGACTTTACCTAAAATTGGAAAGCCTGCAACACGTGCATTAAATTC -ACAAGGTATATACACATTAGAAGATGTATCACAATATACAAAGTCATCTCTAATGGAGATGCATGGCGTT -GGTCCTAAAGCTATATCAATATTGGAACAAGCTTTATTTCAGCACCAACTACATTTTAAAACGGAAGTTC -ATTCATCATTACCTTTTTTATTAACAGGAGACGTGCCATGCAATCATGCCCCTAAACGTCAACAAATGAT -AGATTTTATAGTTGCTACAGCAGCATTAGATATTGAATTATTACGTTCACTGGTTACAACAGAATTTATT -TGGTCTGTGCCTGGACACTTTGACATTTATGGACCTCAAATATTAATTCAAGAACTATCTAATCATTATA -AAGAGATTGCTTCGCTCAATATTCAATCCATCATCACACATGGCTATTTCGGTTCCATGCACGGTAGTCA -AATATTAAAAACTGGTAAAGAGATTCATTTTGCTCATTTTTTTGAATTTGAAAATCATAAAAAGGATGCC -AAGTTAAGCAAAGTGACATCTTACATTGTTGTTGGTTAATGACTCAAATTATATATCGCAAAAAATTCTT -TTGCTTTTACATGTATATTTTTATATAACAAATAATTTTGCATAACATTTTTGTTATATGAACACTTATT -ACTAGAGTGCACATTGAACATACAGTATGATTAAATATCATGTTATGAAAGAAGGATATATTTTGACTGT -TTTTAAAAATGAGCGCTTAAGCTGGTTACCATACATAGCTATTGTCATTTTGTTACACGTTATTGGGTTT -AGTTTTTTATGGATTGCTGGAAAAGACCATCATATCTTATTTGGTATGGGGATTCTTGCATATACATTAG -GTTTACGTCATGCATTTGATGCTGATCATATCGCCGCGATAGATAATACGGTTCGCAAATTATTACAGCA -ACGCAAAGATCCATCTGGTGTTGGTTTCTACTTTTCAATTGGACATTCATCTGTTGTATTTTTAATGGCT -GTTTTTTTAGGGGTATCTGTAAAATGGGCTAAAGATGAATTACCACATTTCCAAGATATTGGTGGAACGA -TTGGTACACTAGTATCAGGTTTCTTTTTAGTGCTTATCGGTGTGTTGAATCTAATTATTTTAATCTCTTT -AATTAACTTGTTCGCTAAATTACGTCGTGAACACATTGAAGAAGCTGAAGTCGATGCATTACTTGAATCT -AGAGGATTTGTTTCTCGATTTGTAGGACCTTATTTCAAATTAATCACGCGTAGTTGGCACGTATTGCCAC -TTGGCTTTTTATTTGGACTTGGTTTTGATACAGCTAGTGAAATTGCGTTACTCGCTCTTTCTTCAGGCGC -GTCACAACAGGCCATTTCATTTATCGGAATCTTATCTTTACCAATTTTATTCGCATCAGGTATGAGTTTG -TTGGATACTTTAGATGGTGTTGTAATGAAATATGCCTATAATTGGGCATTCTTCAATCCTATTCGCAAAA -TCTATTACAATATAACGATTACTGCGATATCCGTCATAGCTGCATTAGTGATTGGGATGATTGAATTGCT -GCAAATTCTTGCTGATAAGCTAGACTTACACGGTGCATTTTGGGCATTTATTAGTTCAATCGAATTTGAT -TATTTAGGCTATATTCTAGTCGCTTTATTTTTAATTACTTGGCTTATTTCGAGTTTAATTTGGAAGTTTG -GTCGCATAGAACACAAATGGTCTAAATAAAGTAACTTGTCTTGCAATCATCTTTTTATTATTGCGTTTTT -AGACACCCTGCATACTGACTCCTTTAGAATACGCTCTCAGTAGTCATCTTTAAATCGTTTCTTTTAGAGA -TGACCTCATTTTGAGAGCGTATTTTTCTATCTAAAATAGATCTTGTAAAATCCAGTGCTTTATTATTTAA -AATTTTAGCATTTCTGTTTACAATTCTCTTATAGTCTTTAATACAGGAGGCGATATACTAATGAATATTG -CAAAGTTAGAAGATTATCTACAAATTGAACCAACTCGTTATAATCAACCGAGTATTGAAGCATTAAATTA -TTATGCGACTCGCTTTATGTTAACGGTGCCTTTCGAAAATATTGATGTTCAAAATGGTAAACCAATATCT -GTAGATATCGATGCACTTTTCAATAAAATTGTTCATGATAAACGCGGTGGTTTTTGTTATGAGTTAAACA -CATTTTTCAAAGCATATTTACAACAAAAAGGATTTAACCCAGAATTAATGTCGGCTACCATTCATACACC -CGGTGGCGGTCGTAGTCAAAACGGTTCACATGCATCACTTGTTGTTTCTATTAATAATGTCTTTTATGTA -ACCGATGTCGGCTTTGGAGACTTACCTCTAAATGCCATACCGATTACTTTACCAGATGATACACAGCAGA -TCACTGATATCAGTGGGACATTCCGCGCTATTTTCAACAGTGAGGATAAGGACATTTTCTATGTTCAAAA -ATATGAAAATAATCATTGGCATACAAAATACGAAGCTGAATTCAAGGCTAGAGAAATAGAAGAATTCGAT -CAAAACATTGAATATAATCAAACACATCCTGATTCAGTATTTGTAAAACATTTATTAATTACAATGCCAC -AATCATTTGGACGTGCTACAATGTTTGAAAACCATTTAACTTTAACAAAAGATGGAACGCCAGAAAAGTT -AGCTATCACAAAAGATAACTATAAACAATTTTTAACAAAATATTTTGGATTAAATGTAACAATTAGTCGA -CTTGAAAACAGCGACAATTAATCATAAAAATACGGACGTAACTTACTTTAATGTAGGTAACGTCCTTTTT -TAATACACATGTTCGTTAGGATGTGGGAAAAAATGATACAGCGCCACTAACAATTAATGATTTAGTGGTT -CTCACACATTAGCCAGAGCTCGTGTGTACTTATAAATAGACATTCATGCGTAAAACGCATGCATAAAAAA -TACTAATTTCTAAAGAAAAAGTATTTCTTTATTGACACTCTGTGCAAACACAACAAAAAGGATATGGCAC -AAACTTCATGCCACACCCTTCTTTTGAACCGCTTCATTTTACTTAAGCAAGTGCATCTACAACATAAATG -ACACCTACGAATACAAATGCAATAGCAATCATCGTCGAAATAAAGACGATACCCATTAATGGATTAAATA -ATAAAATGACACCGAAAACAATACCTAATAAATTAAAAATCACTGAAATTAGTTTTAAGCTACCACTACC -TGAAAACGTAAATAATCCAGCAATAGAACTAAAAATAAACCAAAATGCAAACATGTAGATAAAAAATGCC -GAGCTAGCACCAACATTAAAAATGACAATAAGACCAAATAGAATATCTACAATCCCCATAAACAGAATCC -AATTTTGGTTACCACCAACTAAAGCTTTGGCTTTTCTACGATAAACAATTTGAATCACACCATTAATCAA -TACAAATAATCCAATTAACCTTGTGATTGCATAAAAGTTTTCAATTGGGAATGTAAAAATAACAACTGCT -AACATTAATAACAACACACCCATAATCAAACTAGACCATTTAATTCCTTGATTTCCTTTTTCCATAACAA -TCATTTCCTTTCAAACAACGCCTTCTTTATATTTTAATTAGTGTCACTATTATTCATTGTTTAAATTCCC -TCATCTTAACTTATAGAAACATTTCCTCAGTGCAAATACTGTGATGCTCAAATTAGTTGAACTGCTTTCC -AATAATCCAAATTCACCCGAGAAAATCACGATATATTAATATCTTTCAACTATGTAAGATTCAAACATTG -AATTGTAAGTTTAGATAAAGGCTACTGTTCTACTTATTATTTAAAATGAATTTAAATACAAAAGGAGTGA -TACTATGACGATATTATCAGTGCAACATGTTTCAAAAACATACGGTAAAAAGCACACATTTCAAGCACTT -AAAGATATTAACTTTGACATACAAAAAGGCGAATTCGTTGCGATTATGGGGCCTTCTGGATCAGGTAAGA -CAACCTTATTAAATGTACTAAGTTCAATTGACCAAATTTCTAGCGGTAGCGTGATTGCTAACGGACAAGA -GCTTAATAAACTTAATCAAAAAGCACTTGCCAAATTCCGTAAAGAATCATTAGGTTTCATCTTCCAAGAT -TACAGTATTCTGCCGACATTAACTGTTAAAGAAAACATTATGTTACCTTTATCTGTTCAAAAAATGTCGA -AAGCAACAATGGAAGAAAATTATAAAGCAATCACAACAGCATTAGGTATTTATGACCTAGGAAATAAATA -CCCTAGCGAATTATCTGGTGGTCAACAACAAAGAACTGCAGCAGCGAGAGCATTTGTTCACAAACCACAA -ATCATATTTGCAGATGAGCCAACAGGCGCACTCGACTCGAAAAGTGCAAATGATTTATTACAACGTTTGG -AAGAAATGAATAAATCGTTTGATACCACAATTGTCATGGTTACACATGATCCGGTTGCAGCAAGTTTTGC -AGAACGTGTCATCATGCTAAAAGATGGCCAAATTCATACACAACTTTATCAGGAAGGACGTTCTAAACAG -GCCTTTTATAAAGACATTGTACATCTTCAATCAGTATTAGGTGGTGTCTCAAATGACATTTAACCATATC -GTTTTAAAAAACTTACGTCAAAACTTAAAACATTATGCAATGTATTTATTTTCATTATTTTTTAGCATCG -TCTTATATTTCAGTTTTACAACCTTACAGTTTACTAAAGGTGTAAATAATGACGACTCGATGGCTATCAT -TAAGAAAGGTGCTTTAGTCGGATCAATATTTTTATTTATCATTATTGTCATCTTTTTAATGTATGCCAAT -CATTTATTCGTGAAACGTCGTACACGTGAATTTGCGCTATTTCAGTTGATTGGTTTAACACGACAAAACA -TTTTGAAAATGTTAGCACTTGAACAAATGATTGTATTTATAATCACAGGTGTTGTCGGTGTATTATGTGG -CATTGCAGGTGCACAATTATTGCTTTCCATTGTATCTAAATTGATGTCATTATCGATTAACTTATCGATA -CATTTCGAACCTATGGCCCTTGTTTTAACTATTTTAATGCTAATTATTGCGTATATACTGATTTTATTTC -AAAGCAGTTTATTTTTAAAAAGACGCAGTATCTTATCAATGATGAAAGACTCAGTTAAGACTGATGTTAC -AACTGCGAAAGTTACAGTTATAGAAGTCATTTCAGGCGTATTAGGTATTGCTATGATTGCACTAGGATAT -TATATGGCGACAGAAATGTTTGGTACGTTCAAAGCACTAACTATGGCTATGACATCACCGTTTATCATTT -TATTTTTAACGGTTGTAGGTGCCTATTTATTCTTCAGAAGTTCCGTGTCACTAATTTTTAAAACTTTGAA -AAAATCTAAAAATGGACGCGTATCTATTACAGATGTTGTATTTACATCTTCTATTATGTACAGAATGAAG -AAAAATGCCATGTCTTTAACTATCATTGCAATTATTTCTGCAGTTACAGTAACTGTATTGTGTTTCGCAG -CATTATCTAAATCAAATACCGATCAAACCCTTACATCTATGGCACCCAATGATTTTAACGTGGTCGCCTC -TCAAGATGCGCAACAATTTGAATCTAAACTAAGCCAACAACATATTACATTTTCTAAAAATTATTATGAA -ACTATTACTGTAGATAATGTTAAAGATCAGGTTATTACTTTGGAAAATGGTAGTGATTCAGGTCGCACGA -ATTCTATTTTAAGTGCAAATACAAAGTTAACTGGTAACAATGCCATCATTACAAATACAAAATCACTTCC -TAACGTGATTAATATTCATTTAAACAATGATTTAGTAGTAAAAGGTACAAAGAACGAGACTTTTCGTGTT -ACACAAGAAGACAAAGACAAGGTTTATCCTTTAAATCTAATCTTTAATTCACCTGTCATTGAAGTAAGTC -CAGAAAAGTATCAGCAATTGAAAACACAAAATAACGTTCATACTTTTTATGGATATGATATTAAACAAAC -ATCACAAAAGAAAAAAGCTCAAGCAATTGCAAAACAGTTTGGAGACAAAATCATCACTTATGATGACATG -AAAAAAGAGGTCGATGCTACTAACGGTATTCTAATATTCGTTACTTCATTTTTAGGATTAGCATTTTTAG -TAGCAGCTGGATGTATTATTTATATTAAACAAATGGATGAAACTGAGGATGAACTAAGTAACTTCAGAAT -ATTAAAACGCATAGGCTTTACGCACACAGATATGCTTAAAGGATTATTACTAAAAATTACTTTCAACTTC -GGTTTACCATTATTGATTGCTATATTACATGCAGTATTCGCCGCAATAGCATTTATGAAATTGATGGGTA -ATATATCCTTCATGCCGGTTATTATAGTAATCATTGTATACACACTCATTTACATTGTTTTTGCTTTAAT -CGCTTTTGTACATTCAAATAAATTGATTAAGAAAACCATTTAACACTTGTGATTAAAAGATGATTCATTG -AGATTTTGATTTTAAGCAATGCAGTATAACTATTAACTGATTTATAAAAAGGAGAGATTGAATCATGAAA -TTTAGAGAATTAGTAAAACAATCATACGAGGATTTAAAAAACTTGACTGTAACTTGGTATAACGTTATTG -CTTTAGCAATTATTGTTATTGTCTTAAGCACCGTTACAACACCAATTATAGGTATTCCAGCTGGTTTATT -AGGTGGCGCTTATTATTTAAAACGCCGCGAAGAAAAAGGTAAATAAGCCTTCTGTGCTAAACTCAATATG -TATTTCCTACCAAAGAAAACATAAGGAGTTAGTACAGAATGGCCTATACACACCTTAACACGGATGAACT -TACGTTCATAGACTCATATTATCACTAGAATCTTTCAGTTAAAGAGATTTCGAGTAGATTGAAACGTTCT -AGACAGACAATTTATAACGTAATCAATGCTTTTAAGTCGGGTATGTCTGCCCTTGAATATTATCAAGAAT -ACAAACAAAGAAAGTCTAATTGTGGGAGACATAGAATAGTGCTTCCAGAAGAACAGTCAGATTATATCCG -AGAGAACGTAGCTGATGGATAGACACCTGATACTATTATTGGCAGAGGTGAACACACGATCAATTGTTCT -GTTAAAACACTTTACAGAATGTTTAAAGAGAACATTTTTGCTGTACATGATTTACCTATGAAATGTAAAA -GAAAGCCAAATGGCCATTCTGAAAAAAGAGGTGGATAGACTTTTAAAAGACATATTTCTGAAAGAATAGA -AGAGTTCCCTTTATTCAATAAGGAGTTTGGACATCTCGAAGGAGATACTATTGTTGGTCGTCATGGTAGT -GCAATCATTACTTTGGTAGAAAGAGTATCCAAGATGATTATCACCTTACGATCCTTAGGTCGTAAGGCAA -CTGATATAGAAAATGCTCTGAACTCAATGTTTTCTGCTTTACCTTCTCATATATTTAAATCAATTACTTT -TGATTGTGGTAAGGAGTTCTCAAACTGGAAAACAATATGTAACTGTCACGATATATCTATATTTTTTGCT -GATCCAAGCATGCCAGCACAGCGAGGTTTAAATGAACATTCTAACGGAATACTTAGACGCAGTGGATTAG -ATAAGGAACTGGATTTCAATTTAGTAACGGATGATCATATCATCAGTGTTGCTCAAAAAATCAATCATCG -TCCTAGAAAATCTTTAGGTTATAGAACACCATTGGAAGTATTTATGAGTTTCATCAAAGATGATAAACTG -TCCAGCTTAATTTGACAATCTAAAGATTTATAAAAAAGCCGTTGGTCTCTTCGAAACTACGGCTTTTCTC -TGTGCTATAAAATCAGTATGGCGAAGCACAGTGATCATTGAATTCTGACTTTATATAACCAAGAGTATCT -TTGGATACACTGATGATATCTATAACAGCATTGCTAATGTAGAATATATTTTCTTGATTATAGAATACAA -TAAATGGCTCCACTAAACCTTTTTTAATATATAAAGAATAATCAATTAAGTCTTTGTTTTTTATATTTTT -AATAGTTGCAATAACATACTTCTCATCGGCAGAATGGATTTCTTCGTACCAGTTAGTAATATTAAAAAAA -CGACCAATTCTTGTTTTTTCTCTAAATTTAACAGGATATAAGTATTCAGACAAAAATGTACATTTCGTCT -TTGATTGGTTATTAAATATAACATTAATAATATTAGAAATTTGCTTTTTATTGAGAACATCAATATCTAA -GCGTATCCTATTTTTCTCAGGTGATTGAAAATAGGGAATTTCATGTTCTAAATCAAAATGTATTTGTTGT -GTTTCAAGGTTAATAATCATTTTAATCTCCAATTCTTTTTAGGTTAGCATCGTATGTACCACTTCTTGTT -TTCTTGCTACCTAAATTCTTAATACTGCTTGCACCTTTCCATGCTCCTCCTCGGTGTCCATCTTTATCGA -CAGATATATATTGAGGACGCCCTTTACTATTTTTCTTGAACACTTTTTTGCCATGGGATACATGCTTTGT -AGCAGAATAACCCAATTTTTTAGCTGCCTGCGCGGCAACTTGAGGGCTTGTACGAATCATTGATGTTACA -ACTGTCTTACCATATTTTTGAATAGCTTTCTTAAGTCCTTGTTTGGCGATGAATCCTACTAATACAGCCA -CTACAGGTGCAATTGAAGCTTTAACCTCATTCGTATCATATATTATTTTTTCTCCCGTATCTTGGTCGGT -AAATTCTGCCTTAAAGTCATTTTCATTAACAATCCTTAAAAATTTAACATCATAAGTTTTATCAAGTTTA -TTATTATAATTATCTTTTAATGAAGCATCTACAGTAATTTTATCTGTATTTAGGTCGTGTTCTAAACTGC -TTTCAATGTTTAAATCTTTAGATTTAAAGTTATTGTCAATGTAATTACGATTATTTTTACTGTAAATATT -CTCGTTAATTTTATTTGTGTTTATTTTACTATTCGAATTGTTAATATTAGCTTCTTTTATAACCACAGAA -GCTTCTGCAAAGTTTCCGTAAGTAAAAGTTATAATAATTGCTAGAAATAGGATAATTATCTTGTTTTTCA -TGTTTTCTCCTTTGATGCGTTATTTTATTGGATATTCTTTTAAAATATGTGGTAAGTCATTTCGGAATTC -AAGATTATTTGTCAGATAAGCAGTGAAATAGGCGGCTGCAAAAGATGTTCCATTTACAGTAAGTAACTCA -TCTTTTGATCCTTTTGTATATACGTCTACGCCAGGAGCTTTAAAATCGATTTTTTTAGTAGGTGCATATA -TAAATGGCTTATTGTTTTTGTCTATTGCTGTGATAGAATATACTTCGTTAAAACGTGCTGGATAGTCACT -ATAATCATCCATGTTATTCCCTGCTGCGGCTACTAAGATAATACCTTTATTTTTAGCGTTCTTTATAGCA -TCATGTAATTCTTTATTGTAACGCTGAAAGCCAAAACTCATATGAATAATATTTACGTCATTTTTGATAC -TCCAAGTTATGCCTTTTATTATGTTGTCTATATCGCCTTTAAGGTTATCATCTAATACTTTAACGTCATA -AATACTTACTGATTTACTGATACCAATCAACTTTTCTTTATGTTCTCCATATGTGATAATACTTGCTACT -TGAGTGGCGTGATTACTATCTGTAGTTATTTGATTATGATTGTTTATAGCATTGTATCTTTTTGTAACAA -AATTATTGTTTATTCTTGTATTATTAATACCCGTATCTAAAATAGCAACTTTTACATTGGATGGCTTTGA -ATCATTTATACATATATTTAGACTGCTCCATGCCCAATTATTTGGTTGATTTAATAAATAAAACGAGAAA -GAAATTATAAATATAGCGACCCCTATGGATAAATGTATTAAATTACGACTCATATGACACCTATAATTTT -TAGTTAACTCTTTCTGCAATAAGACTGTTTAGAAAGATAAAAACTCATTAACTTGAATTTATACATATAT -ATGTATATTATTTATATTTTCTTATATTCACCAATTTGTCAATATTTTTTTGATAAATTAACAGATATAT -ATTTTGGAGAGCTCTATAAGATATACAACGTCAATCATTTTACAAAAGATAAAAATGGTATCAGTATTTA -GACCGATATATCAATATAATTGATAAATTTTCAAATGCTTATAAACCCCTTTAAATCAACGTTTCTAAGG -TTTTTAAAATCTTTTTAAATTTATTTTCAAAAAACACTGTACATTATGCCAATATGAGCGTATAGTTGGA -CTTACGTAATAAAAGCTCGTGAATTAAATTGTAGTGTATTTGTTTAGAATATCCTCTTTTTTAGTTATGA -ATTTGTTACAAATATTAAGTGCAAAAGCACACGGAGGTTTTCTATATGAATAACGGTACAGTAAAATGGT -TTAACGCAGAAAAAGGTTTTGGTTTCATCGAACAAGAAAATGGCGGAGACGTATTCGTACATTTCTCAGG -TATCGCTAGCGATGGCTACAAAACTTTAGAAGAAGGTCAAAAAGTTACTTTCGAAATCACTGAAGGTCAA -CGTGGAGACCAAGCAGTTAACGTACAAACTGTTTAATCTTACAAAATAAAACGACTCATTATAAATGAAT -CGCTTTGATTACCAACAAGGTTCTAAATCTTGTTGGTATTTTTTTATGCTATTTTAGATAATATAAATAA -TATGAGGCCATACCACGATGATTTATAAAAACTTATTTGCCAGATGCATACTAATCAAAGCTATAAGAAT -GATTGCACCAACAAATGCTATGAAAGAAAGTACACCTGTTTTTATATTTCTAGCTTTAGTCGTTTGTACT -TCACTAGGATCTTTTCCATTCATAAAAGCAACAATTCGATCGTAGTTATCCATTTTATGCACTTTTTTAA -AGTCTTCTATTTTCATAGATGCATAATAACCTATTCCATAAATGACTATCACCGTTATACCCCAAGCCCA -ATTCCAATAAACAACTAAAGGTCCTGTTAAAATTGCAGCTAGTGTCATGAAAATAAGCATCACATATGTC -CATAAGTTAAGACTTCGTTGCGCTTTAATATCAGGTGCAAATGGAATGGTCCCTTTTACTAAATCATCTA -AAGTTACATTGAACAAATCACACATCATTAATAAGTTATGTATGTCTGGTAAGCTTTTGTCATTTTCCCA -ATTAGAAATACTCTGCCTAGATACATATAACTTTTCAGCAAGATATTCTTGTGAATAACCATCTCGTTCC -CGATACTTTTTAATTTGTTTACTCAGATTCAATTACATACGCCTCCATTCAATTAGTACAATCATTACAA -TCAGACTATCAGATAAAGTTAAATCAAGTCACCTATATGATTGACTAAATGTTTTGACATACTACAACAT -CAGGGTTCGAAGACTCCCTTAAGACAGACCTGTATGATTACGCGCTTGTAATTTTCTCAATGCCAACTTA -TTTATTAATGATGCAACTTTTCCATGCTATTCAATGCTTGCGAAGTTAGTCCTATTTAAGAGATTACGTT -CACACTATTTACTATTCGATTTTCCAGCTTTCCAACTATGCTTTTCTAATCTTTTTTGTGCTATAAATTC -TACCGCTTCAAAAATACATACTGCACTGATGAACCAGCTTAGGAAACCAACAATAATGCTAATCAACCAC -ATGTGCGTCATATGTAACATCATCCATGTAACTAAAATACAAACTAATACCCCTGTCATACCAAACACTG -CGCCACGACTTACATGCACAGCGACTTTATCACCATATTGCATACCTGTAATAAACATAGACACTAAAAA -TACTGCCGGAAACGTTGCAAATATACCGCCAAATTCTTTCCAAGGTAGTGTTACAGATACAATATAACTT -AATAATACTGCAAATCCCCCCACAAAAAATTTCATTAATGTTAATTTCATGATGTTCTGCCTCCAATAAT -TTATTACTTAATAACTGAATACAACTAATTATCACGCATTTTCCAAACTATAAATGTCTAATACTGAATA -TTGCGAGGGAAATAACAAACCAACAAACAACTGTGAATATTGCGCCTTTCCGATAACCTTTATGCTTAAT -ATAGAGAGATGTCAAAAATACAGTTAATATACAAGACAGAATACCGACAATTGCTCCAGTACTAAGATTC -ATCGACATCTCCACTAATTGCGTACCACGATGATCCAAAGCTAATGCGATAATAGCCGCAAGAAAGACTG -CCGGCATAGTAGCTATAATACCTCCTAACTTACCACCTACCTTATCAGCAATAATTGAAGCTAATGCAAC -AGCGATACCACCAATGACAAAATGAAGAATTGCACTTCCAATTGAAAACATCTTCAACGTACCTTTCTAT -AATTAATTCAATACAAAACGTATCATTCACACAAAGTGTAAAACTTAAATTTTCTACTGTAAAGGCAACT -CAAGCGATGTTCATAAAGCTTTCATGATACTTTCATAAACTAGCAATAAAGGGTTCAAATAAAGGTATAT -CCAGCTCAAATTAGGGAGTGGGACAGAAATGATATTTTCGCAAAATTTATTTCGTCGTCCCACCCCAACT -CGCATTGCCTGTAGAATTTCTTTTCGAAATTCTCTGTGTTGGGGCCCCTGACTTTAATTGAAAAAAGCTT -GTTACAAGCGCATTTTCGTTCAGTCAACTACCGCCAATATAACTTCGTAGAGCATAGAACATTGATTTAT -GTCCCAGCCTGATCAACATATAAATATAAATTTTTATGTTTCACGTAAAACAAAAAAAGACAAAGCTGTA -ATGATCTTAGCTTTGTCTTTTATGTGTTAGTCATCATGTATACGACATCCTACTACTAACGTTTATATAT -TCGAATTTTTATTTCATAATAATCTTCATGATCTTTGTCTTTATGCTCAACATGTAATCCTGTTTGTTGA -ATCGCTTGGATACTTTTGCCTACCTCATCTCGTGCTTGCGTGACATCTTGTTCAAAGCGAAGGTTTTGTG -CTTTGACTTTTTCGGGCCCAGTTTTTTGGCGTACTCTATCTTCAGTCTGTTTCACATTTAGTTTTTGTGC -AATGACTTGCTCAATCAACGCTTCTTGTTCGCTATCAGACAATGATAATACCGCTCTCGCATGGCGTTCA -GTAATTTTACCTTCTCTTAAGCGAAGTAGTACTTTCGGCGCCAACTTCAATAAACGCAACTTATTTGCAA -TAAAGCTTTGACTTTTACCTAAACTTTTTGCCAATTCACTTTGCGTTGTATCACCAATTTCCAATAATTT -CTTATAGGCTTCCGCTTCTTCAACAACAGACAAATTTTCTCTTTGAATATTCTCAATTAATGCCACAACA -GCCGTCTCTTCATCATCCATATCACGAATAATAACGTCTGCTTGAGGTAAATTTAGTGATTGTATTGCTC -TAAATCGGCGCTCTCCAGCAATAATTTCAAACATATCTTCTTCAATCGGTCTTACAACAATAGGCTGTAA -TAAACCATGTTCATGTATTGATTCAGCAAGTTCTTTAATTTTATTTGGTTCAAATACCTGTCTTGGTTGA -TAACGGTTGGGAACGATACGTTCAATTTGAATGGATTCAACATTACTATTGCGATTTTCTTCAATATGTC -CAATGATGTCATCTTTGTTTTTCAAACCAAATAATTTTGAAAAAGGTTTTTTCATTATCCATTCGCTCCT -TTTATGTTAGTTGTAAAGGATTATGCATTATTTTTCAAGTAAAGGAGTCTTATTAGGCGTCCCTGGTTTT -CTTGGATACTTTTTCGGCGTCTGTCTTTTTTTATCAATAATGAACATCTGGCGCTCTCCAGCATCTTCTG -GCAATTCAAAGGTATGTGTTTCTGTAACGTTACCACCTAACACACTAATTGCAAATTTTGCTTCTTCTAA -TTCTTCTTCACCTTTTGAAGATTTTAATGCAACAAACTGTCCACCTTTTTTAACTAGCGGTAAACACAAT -TCACTCAACACGGATAATCTAGCTACTGCTCTTGCAGTAACAACATCATAAGACTCCCTGTAGACACCCT -TACCAAATGTTTCTGCTCTATCGTGTATAAAGCTGACATCCTGTAATTGTAATTCTGACGCTAAATAGTT -TAAAAATTGAATACGCTTATTTAATGAATCAACAATCGTCACTTTTAACTGCGGAAACATTATTTTTAAC -GGAATACTTGGAAAACCAGCTCCAGCGCCTACATCACATATACTTATAGGCTGATTAAAATCAAAATAAA -AACTAGGTGCAATGGAATCATAAAAATGTTTCAAATATACATCGTGTTCATCTGTAATACTTGTCAAATT -CATCTTTTCATTCCATTCAACAAGTAAACGATAATATGTTTGAAACTGTTGTTTTTGAGTCTCAGTTAAT -TCAATATTATGTTCTTTTAATTGTTCTGCTAACCATTCTACAGTCATTAGTCACTCACCCTTTGGAGTTT -ACCTTGTTCTAAGTAAATCAATAATATAGATATGTCTGCTGGATTTACCCCTGATATTCTAGAAGCTTGT -GCAATATTTAAAGGTTTTACTTCTGATAATTTTTCTCGCGCTTCAGTCGCCAAACTATCAATCTTACTAT -AATCTAAGTCTTCTGGAATTTTCTTCTCTTCCATACGTTTAACTTTCTCAACTTGTTGTAGTGATTTATT -GATATAACCTTCATATTTTGTTTGTATTTCTACTTGTTCTTCAACATCTGCATTCAATTGATGTTCTTCT -TCTAAAATTTCTAAAATTATATCGTAAGTCATTTCAGGTCTGCGTAATAAATCGATAGCTAAAATACCAT -CTTTTAAGCGAGAACCACCATGTTGTTCAATAATCGCTTGCGTATGTTCGTTTGGTTTAATACGAATATC -TGATAAACGCTTAATTTCCGCATCAATTTGCTGACGTTTTTCATTAAAACGTGCATATCGTTCTTCAGAA -ATCATACCAAGTTCATATCCCATATCCGTCAATCTCAAATCAGCATTATCATGACGTAGTAACAAACGAT -ATTCTGCACGTGATGTTAGTAAACGATAAGGTTCATTAGTACCTTTAGTTACAAGATCATCGATTAATAC -ACCTATATATGCATCTGAACGACTTAATATCTTTTCGCCTGTGTTTAACACTTTACCTGCAGCGTTAATA -CCTGCCATCAATCCTTGTCCTGCTGCTTCTTCATAACCAGATGTACCATTAATTTGACCTGCAGTGTATA -GGTTTTTAATCATTTTCGTTTCAAGTGTAGGCCATAACTGCGTTGGCACAATCGCATCATATTCAATTGC -GTAGCCGGCACGCATCATATCTGCTTTTTCAAGACCTGGTATCGTCTCTAACATTTGACGTTGCACATGT -TCAGGAAGACTTGTAGACAATCCTTGCACATATACTTCATTTGTATTACGACCTTCAGGCTCTAAGAAAA -GTTGATGTCGCGGCTTATCATTAAATCGAACAAATTTATCTTCAATTGAAGGGCAATAACGTGGCCCGGT -TCCTTTAATCATCCCTGAATACATTGCAGATAGATGTAAATTATCATCGATAACTTTGTGTGTTTCAGCA -TTAGTATACGTTAGCCAACATGGCAATTGATCTAATATATATTCTGTTGTTTCAAAGCTGAATGCACGAC -CCACATCGTCACCTGGTTGTATTTCAGTCTTCGAATAGTCAATTGTTTTTGAATTTACACGCGGTGGTGT -ACCTGTTTTAAAACGAACAATATCAAAACCAAGTTCTCTTAAATTGTCTGATAATGTGATTGATGGTAAT -TGGTGATTTGGTCCACTTGAATACTTCATATTACCTAAAATGATTTCACCACGTAAAAATGTTCCCGTTG -TAATAATTACTGCTTTAGATAAATACTCTGTACCAATATTTGTACGTACACCTTTAACTTCATTATCTTC -TATAATAAGTTCGTCTACCATACCTTGCATTATATGCAAATTTTCTTCATCTTCAATCACGCGTTTCATT -TCTTGTTGATAAAGTACTTTATCTGCTTGCGCTCTTAGTGCTCTTACAGCAGGTCCTTTACCAGTATTTA -ACATTCTCATTTGAATGTGTGTTTTATCGATTGTTTTTGCCATTTGTCCACCTAAAGCATCAATTTCACG -AACAACGATACCTTTAGCTGGTCCACCTACAGATGGGTTACATGGCATAAATGCAATATTATCTAAATTT -ATTGTTAGCATTAATGTTTTAGCACCACGTCTTGCAGATGCTAAACCTGCTTCTACACCTGCATGTCCCG -CACCTATAACGATTACATCATATTCTTGAACCACAATATAAACCTCCTTATTTGATATCTTACTAGCCTT -CTTAAGACGGTATTCCGTCTATTTCAATTACTATTTACCTAAGCAGAATTGACTGAATAACTGATCGATG -AGTTCATCACTTGCAGTCTCACCAATAATTTCTCCTAATATTTCCCAAGTTCTAGTTAAATCGATTTGTA -CCATATCCATAGGCACACCAGATTCTGCTGCATCAATCGCATCTTGTATCGTTTGTCTTGCTTGTTTTAA -TAATGAAATATGTCTTGAATTAGAAACATAAGTCATATCTTGATTTTGTACTTCTCCACCAAAGAACAAA -TCTCGAATTTGTATTTCTAATTCATCAATACCTTCTTGTTTTAACATTGAAGTTTGAATTAATGGCGTAT -CGCCTATCATATCTTTAACTTCATTAATATCTATATTTTGCTCTAAATCCATTTTATTAACAATTACGAT -TACATCTTCATTTTTAACCACTTCATATAATGTGTAATCTTCTTGAGTCAATGCTTCGTTATTGTTTAAT -ACAAATAAAATTAAGTCCGCTTGGCTAAGAGCCTTTCTAGAGCGTTCAACACCAATCTTCTCTACTATAT -CTTCTGTCTCACGTATACCAGCAGTATCAACTAATCTTAATGGCACGCCACGAACATTGACGTACTCTTC -TAAGACATCTCTAGTCGTACCTGCTACCTCAGTTACAATCGCTTTATTATCTTGTATTAAATTATTTAAC -ATCGATGATTTACCTACATTTGGTTTACCAACAATAACTGTAGATAAACCTTCACGCATAATTTTACCCT -GCGCACCGGTATCTAATAAACGATTAATTTCCTGTTTGATTTCTTTAGACTGCTCTAAAAGAAATTCAGT -AGTCGCATCTTCAACATCATCGTATTCAGGATAATCAATATTCACTTCCACTTGAGCGAGTATCTCTAAT -ATAGATTGACGTTGTTTTTTGATTAAGTCACTTAGACGACCTTCAATTTGATTCATCGCAACTTTAGAAG -CTCTATCTGTTTTCGAGCGAATAAAGTCCATAACTGCCTCAGCTTGAGATAAATCAATACGACCATTTAA -AAAGGCACGTTTTGTAAATTCACCTGGTTCAGCCATTCTAGCGCCATATGTCATAGTAAGTTCCAGCACT -CTATTAATCGTTAAAATACCACCATGACAATTAATTTCTATAATATCTTCGCGTGTAAATGTTTTTGGTG -CTCTTAACACAGACACCATAACTTCTTCAACCACTTCTTTAGACTCTGGATCAATAATATGACCGTAATT -AATCGTATGTGATGGAACATCATTTAAAAGATGTTTTCCTTTATATAATTTGTCAGCAATTTCAACGGCT -TGCGGTCCAGACAATCGAACAATTCCAATTGCCCCTTCACCCATTGGTGTTGAAATACTCGTAATTGTAT -CTAAATCCATATTGCTACTCGCCTCCTTCAACGATGTGAATACATTTTAAAGTAAATTATTATAACTCTA -AGGTAAGTCTTGCGTTTGTCTGAGGTAAGACTCCGGGGTGTGTTGAGTGGTTAATGTTTTCCTCTCTTTC -CCCTACCCTATCCTTACTTAATCTTTTTATTAAAAACTTTGGCAATTTTAAGTACGTGCTCAAGACTATT -CTGTATTTGTAAAGTGGTCATATCTTTAGCTGGCTGTCTTGCTATTACAATAATATCTTTGGCCAATATA -TGCGACTTATGTACTTTGAAATTTTCACGTATTGCTCTTTTAATCTTGTTTCTTAACACTGCATTACCTA -GTTTTTTAGAAACACTAATACCTAAGCGAAAATGGTCTATTTCTTTATTATTACAAGTGTATACAACAAA -TTGTCTGTTGGCTACAGAATGACCTTTTTTATATATTCTCTGAAAATCTGCATTCTTTTTAATTCGGTAA -GCTTTTTCCAATAACATCACTCGCTTATTTATCGTTTTTATTTGAAGCTATATTTAAACTTCTATTGAGC -TTATAACATAAATTTCTATTTATTCTTAATTTAAACGAAAAAAAAGATCACTGATGAGTCAGTGATCTTA -TGCAGATAAAACTTTACGGCCTTTACGACGACGGCGCGCTAAAACTTTACGGCCATTTTTTGTACTCATG -CGTTTTCTGAAACCATGAACTTTACTATGTTTACGTTTATTTGGTTGATAAGTACGTTTTACCATGCAAA -ACACCTCCATCTTTATACAGTTATCTAATATACCAGATTATGCAGACTCTGATCACTTCAATAGATAAGA -TTTTGCGTTTCTTAGATTAAAATTCTCGTATTAGCTCATTGATTATCTAGTCATAATTCAAGCAACTACT -ACAATATAACAAAATCCTTTTTATAACGCAAGTTCATTTTATACTACTGCTCAATTTTTTTACTTTTAT diff --git a/janis_core/tests/data/galaxy/abricate/test-data/output_db-card.txt b/janis_core/tests/data/galaxy/abricate/test-data/output_db-card.txt deleted file mode 100644 index 7821f9557..000000000 --- a/janis_core/tests/data/galaxy/abricate/test-data/output_db-card.txt +++ /dev/null @@ -1,17 +0,0 @@ -#FILE SEQUENCE START END STRAND GENE COVERAGE COVERAGE_MAP GAPS %COVERAGE %IDENTITY DATABASE ACCESSION PRODUCT RESISTANCE -MRSA0252.fna gi|49482253|ref|NC_002952.2| 40786 41547 - ANT(4')-Ib 1-762/762 =============== 0/0 100.00 100.00 card GQ900432.1:27499-26737 Kanamycin nucleotidyltransferase sequence from Staphylococcus aureus plasmid. Confers resistance to kanamycin neomycin and other aminoglycosides aminoglycoside -MRSA0252.fna gi|49482253|ref|NC_002952.2| 44919 46925 - mecA 1-2007/2007 =============== 0/0 100.00 99.90 card KC243783:0-2007 A foreign PBP2a acquired by lateral gene transfer that able to perform peptidoglycan synthesis in the presence of beta-lactams. penam -MRSA0252.fna gi|49482253|ref|NC_002952.2| 47025 48782 + mecR1 1-1758/1758 =============== 0/0 100.00 99.94 card CP000703.1:40848-42606 mecR1 is a transmembrane spanning and signal transducing protein which in response to interaction with beta-lactam antibiotics results in upregulation of the mecA/mecR1/mecI operon. penam -MRSA0252.fna gi|49482253|ref|NC_002952.2| 48782 49153 + mecI 1-372/372 =============== 0/0 100.00 99.73 card BA000018.3:48893-49265 mecI acts as a repressor of transcription of the mecA/mecR1/mecI operon. penam -MRSA0252.fna gi|49482253|ref|NC_002952.2| 55890 56621 + ErmA 1-732/732 =============== 0/0 100.00 100.00 card X03216.1:5282-4550 ErmA confers the MLSb phenotype. Similar to ErmC Expression of ErmA is inducible by erythromycin. The leader peptide causes attenuation of the mRNA and stabilizes the structure preventing further translation. When erythromycin is present it binds the leader peptide causing a change in conformation allowing for the expression of ErmA. lincosamide;macrolide;streptogramin -MRSA0252.fna gi|49482253|ref|NC_002952.2| 152865 154217 + tet(38) 1-1353/1353 =============== 0/0 100.00 98.52 card AY825285:0-1353 Tet38 is a tetracycline efflux pump found in the Gram-positive Staphylococcus aureus. It is regulated by mgrA which also regulates NorB. tetracycline -MRSA0252.fna gi|49482253|ref|NC_002952.2| 376045 376464 + mepR 1-420/420 =============== 0/0 100.00 99.05 card BA000017.4:379931-380351 MepR is an upstream repressor of MepA in Staphylococcus aureus. It is part of the mepRAB operon. glycylcycline;tetracycline -MRSA0252.fna gi|49482253|ref|NC_002952.2| 376571 377926 + mepA 1-1356/1356 =============== 0/0 100.00 98.53 card AY661734.1:839-2195 MepA is an efflux protein regulated by MepR and part of the MepRAB cluster. Its presence in Staphylococcus aureus led to multidrug resistance while it has also been shown to decrease tigecycline susceptibility. glycylcycline;tetracycline -MRSA0252.fna gi|49482253|ref|NC_002952.2| 774312 774755 - mgrA 1-444/444 =============== 0/0 100.00 99.78 card BA000018.3:735860-735416 MgrA also known as NorR is a regulator for norA norB and tet38. It is a positive regulator for norA expression but is a direct repressor for norB and an indirect repressor of tet38. acridine_dye;cephalosporin;fluoroquinolone;penam;peptide;tetracycline -MRSA0252.fna gi|49482253|ref|NC_002952.2| 782414 783579 + Staphylococcus_aureus_norA 1-1166/1167 =============== 0/0 99.91 91.51 card D90119.1:477-1644 NorA gene cloned from Staphylococcus aureus conferred relatively high resistance to hydrophilic quinolones such as norfloxacin enoxacin ofloxacin and ciprofloxacin in S. aureus and Escherichia coli. Had low or no resistance at all to hydrophobic ones such as nalidixic acid oxolinic acid and sparfloxacin in S. aureus and Escherichia coli. fluoroquinolone -MRSA0252.fna gi|49482253|ref|NC_002952.2| 1486310 1487665 - arlS 1-1356/1356 =============== 0/0 100.00 98.38 card CP000253.1:1361636-1360280 ArlS is a protein histidine kinase that phosphorylates ArlR a promoter for norA expression. acridine_dye;fluoroquinolone -MRSA0252.fna gi|49482253|ref|NC_002952.2| 1487662 1488321 - arlR 1-660/660 =============== 0/0 100.00 99.09 card CP023390.1:1462248-1461588 ArlR is a response regulator that binds to the norA promoter to activate expression. ArlR must first be phosphorylated by ArlS. acridine_dye;fluoroquinolone -MRSA0252.fna gi|49482253|ref|NC_002952.2| 1796513 1797244 + ErmA 1-732/732 =============== 0/0 100.00 100.00 card X03216.1:5282-4550 ErmA confers the MLSb phenotype. Similar to ErmC Expression of ErmA is inducible by erythromycin. The leader peptide causes attenuation of the mRNA and stabilizes the structure preventing further translation. When erythromycin is present it binds the leader peptide causing a change in conformation allowing for the expression of ErmA. lincosamide;macrolide;streptogramin -MRSA0252.fna gi|49482253|ref|NC_002952.2| 1913827 1914672 + PC1_beta-lactamase_(blaZ) 1-846/846 =============== 0/0 100.00 97.16 card CP000732.1:10528-9682 The blaZ beta-lactamase is found in Bacillus subtilis and Staphylococcus aureus. penam -MRSA0252.fna gi|49482253|ref|NC_002952.2| 2338959 2340402 - Staphylococcys_aureus_LmrS 1-1443/1443 ========/====== 1/1 100.00 91.41 card CP000046.1:2236817-2235374 MFS transporters are secondary active transporters with single-polypeptide chains containing 400-600 amino acids that transport small solutes across the membrane by using electrochemical gradients. LmrS has 14 transmembrane helices and when expressed in E. coli is capable of extruding a variety of antibiotics inclinding linezolid trimethoprim florfenicol chlorampheniocol erythromycin streptomycin kanamycin and fusidic acid aminoglycoside;diaminopyrimidine;macrolide;oxazolidinone;phenicol -MRSA0252.fna gi|49482253|ref|NC_002952.2| 2488459 2488878 + Staphylococcus_aureus_FosB 1-420/420 =============== 0/0 100.00 98.81 card AHLO01000073.1:63138-63558 The Bacillus subtilis fosB gene encodes a fosfomycin resistance protein fosfomycin diff --git a/janis_core/tests/data/galaxy/abricate/test-data/output_db-megares.txt b/janis_core/tests/data/galaxy/abricate/test-data/output_db-megares.txt deleted file mode 100644 index a792beefb..000000000 --- a/janis_core/tests/data/galaxy/abricate/test-data/output_db-megares.txt +++ /dev/null @@ -1,28 +0,0 @@ -#FILE SEQUENCE START END STRAND GENE COVERAGE COVERAGE_MAP GAPS %COVERAGE %IDENTITY DATABASE ACCESSION PRODUCT RESISTANCE -MRSA0252.fna gi|49482253|ref|NC_002952.2| 33660 34139 + RLMH 1-480/480 =============== 0/0 100.00 99.17 megares MEG_6058 Drugs:MLS:23S_rRNA_methyltransferases:RLMH -MRSA0252.fna gi|49482253|ref|NC_002952.2| 40165 40569 - BLE 1-405/405 =============== 0/0 100.00 100.00 megares MEG_1460 Drugs:Glycopeptides:Bleomycin_resistance_protein:BLE -MRSA0252.fna gi|49482253|ref|NC_002952.2| 40786 41556 - ANT4-PRIME 1-771/771 =============== 0/0 100.00 99.87 megares MEG_978 Drugs:Aminoglycosides:Aminoglycoside_O-nucleotidyltransferases:ANT4-PRIME -MRSA0252.fna gi|49482253|ref|NC_002952.2| 44919 46928 - MECA 1-2010/2010 =============== 0/0 100.00 100.00 megares MEG_3785 Drugs:betalactams:Penicillin_binding_protein:MECA -MRSA0252.fna gi|49482253|ref|NC_002952.2| 47025 48782 + MECA 1-1758/1758 =============== 0/0 100.00 100.00 megares MEG_3786 Drugs:betalactams:Penicillin_binding_protein:MECA -MRSA0252.fna gi|49482253|ref|NC_002952.2| 48782 49153 + MECI 1-372/372 =============== 0/0 100.00 99.73 megares MEG_3804 Drugs:betalactams:Penicillin_binding_protein_regulator:MECI -MRSA0252.fna gi|49482253|ref|NC_002952.2| 55890 56621 + ERMA 1-732/732 =============== 0/0 100.00 100.00 megares MEG_2785 Drugs:MLS:23S_rRNA_methyltransferases:ERMA -MRSA0252.fna gi|49482253|ref|NC_002952.2| 56747 57529 - ANT3-DPRIME 1-783/783 =============== 0/0 100.00 100.00 megares MEG_925 Drugs:Aminoglycosides:Aminoglycoside_O-nucleotidyltransferases:ANT3-DPRIME -MRSA0252.fna gi|49482253|ref|NC_002952.2| 152865 154217 + TET38 1-1353/1353 =============== 0/0 100.00 100.00 megares MEG_6981 Drugs:Tetracyclines:Tetracycline_resistance_MFS_efflux_pumps:TET38 -MRSA0252.fna gi|49482253|ref|NC_002952.2| 376045 376464 + MEPR 1-420/420 =============== 0/0 100.00 99.05 megares MEG_3836 Multi-compound:Drug_and_biocide_resistance:Drug_and_biocide_MATE_efflux_regulator:MEPR -MRSA0252.fna gi|49482253|ref|NC_002952.2| 376556 377926 + MEPA 1-1371/1371 =============== 0/0 100.00 98.54 megares MEG_3834 Multi-compound:Drug_and_biocide_resistance:Drug_and_biocide_MATE_efflux_pumps:MEPA -MRSA0252.fna gi|49482253|ref|NC_002952.2| 378032 378472 + MEPB 1-441/441 =============== 0/0 100.00 88.89 megares MEG_3835 Drugs:Multi-drug_resistance:Multi-drug_MATE_efflux_pump:MEPB -MRSA0252.fna gi|49482253|ref|NC_002952.2| 765853 766296 + AAC3 1-444/444 =============== 0/0 100.00 100.00 megares MEG_47 Drugs:Aminoglycosides:Aminoglycoside_N-acetyltransferases:AAC3 -MRSA0252.fna gi|49482253|ref|NC_002952.2| 774312 774755 - MGRA 1-444/444 =============== 0/0 100.00 99.78 megares MEG_3943 Drugs:Multi-drug_resistance:MDR_regulator:MGRA -MRSA0252.fna gi|49482253|ref|NC_002952.2| 782414 783580 + NORA 1-1167/1167 =============== 0/0 100.00 91.69 megares MEG_4209 Multi-compound:Drug_and_biocide_resistance:Drug_and_biocide_MFS_efflux_pumps:NORA -MRSA0252.fna gi|49482253|ref|NC_002952.2| 1486310 1487665 - ARLS 1-1356/1356 =============== 0/0 100.00 98.38 megares MEG_1118 Drugs:Multi-drug_resistance:MDR_regulator:ARLS -MRSA0252.fna gi|49482253|ref|NC_002952.2| 1487662 1488321 - ARLR 1-660/660 =============== 0/0 100.00 100.00 megares MEG_1114 Drugs:Multi-drug_resistance:MDR_regulator:ARLR -MRSA0252.fna gi|49482253|ref|NC_002952.2| 1535528 1536919 - NORB 1-1392/1392 =============== 0/0 100.00 98.20 megares MEG_4210 Multi-compound:Drug_and_biocide_resistance:Drug_and_biocide_MFS_efflux_pumps:NORB -MRSA0252.fna gi|49482253|ref|NC_002952.2| 1796513 1797244 + ERMA 1-732/732 =============== 0/0 100.00 100.00 megares MEG_2785 Drugs:MLS:23S_rRNA_methyltransferases:ERMA -MRSA0252.fna gi|49482253|ref|NC_002952.2| 1797370 1798152 - ANT3-DPRIME 1-783/783 =============== 0/0 100.00 100.00 megares MEG_925 Drugs:Aminoglycosides:Aminoglycoside_O-nucleotidyltransferases:ANT3-DPRIME -MRSA0252.fna gi|49482253|ref|NC_002952.2| 1911593 1911973 - BLAI 1-381/381 =============== 0/0 100.00 100.00 megares MEG_1287 Drugs:betalactams:Penicillin_binding_protein_regulator:BLAI -MRSA0252.fna gi|49482253|ref|NC_002952.2| 1911963 1913720 - BLAR 1-1758/1758 =============== 0/0 100.00 99.83 megares MEG_1302 Drugs:betalactams:Penicillin_binding_protein_regulator:BLAR -MRSA0252.fna gi|49482253|ref|NC_002952.2| 1913785 1914672 + BLAZ 1-888/888 =============== 0/0 100.00 99.66 megares MEG_1408 Drugs:betalactams:Class_A_betalactamases:BLAZ -MRSA0252.fna gi|49482253|ref|NC_002952.2| 1915805 1916605 - APH3-PRIME 1-801/801 =============== 0/0 100.00 99.00 megares MEG_1060 Drugs:Aminoglycosides:Aminoglycoside_O-phosphotransferases:APH3-PRIME -MRSA0252.fna gi|49482253|ref|NC_002952.2| 2338959 2340402 - LMRS 1-1443/1443 ========/====== 1/1 100.00 91.41 megares MEG_3599 Multi-compound:Drug_and_biocide_resistance:Drug_and_biocide_MFS_efflux_pumps:LMRS -MRSA0252.fna gi|49482253|ref|NC_002952.2| 2488459 2488878 + FOSB 1-420/420 =============== 0/0 100.00 98.81 megares MEG_3009 Drugs:Fosfomycin:Fosfomycin_thiol_transferases:FOSB -MRSA0252.fna gi|49482253|ref|NC_002952.2| 2622988 2624175 - DHAP 1-1188/1188 =============== 0/0 100.00 99.16 megares MEG_2614 Drugs:Phenicol:Phenicol_resistance_MFS_efflux_pumps:DHAP diff --git a/janis_core/tests/data/galaxy/abricate/test-data/output_gbk.txt b/janis_core/tests/data/galaxy/abricate/test-data/output_gbk.txt deleted file mode 100644 index 9423b576e..000000000 --- a/janis_core/tests/data/galaxy/abricate/test-data/output_gbk.txt +++ /dev/null @@ -1 +0,0 @@ -#FILE SEQUENCE START END STRAND GENE COVERAGE COVERAGE_MAP GAPS %COVERAGE %IDENTITY DATABASE ACCESSION PRODUCT RESISTANCE diff --git a/janis_core/tests/data/galaxy/abricate/test-data/output_list.txt b/janis_core/tests/data/galaxy/abricate/test-data/output_list.txt deleted file mode 100644 index 54ee572e8..000000000 --- a/janis_core/tests/data/galaxy/abricate/test-data/output_list.txt +++ /dev/null @@ -1,10 +0,0 @@ -DATABASE SEQUENCES DBTYPE DATE -ecoh 597 nucl -vfdb 2597 nucl -resfinder 3077 nucl -argannot 2223 nucl -card 2631 nucl -ncbi 5386 nucl -plasmidfinder 460 nucl -megares 6635 nucl -ecoli_vf 2701 nucl diff --git a/janis_core/tests/data/galaxy/abricate/test-data/output_mincov100.txt b/janis_core/tests/data/galaxy/abricate/test-data/output_mincov100.txt deleted file mode 100644 index 948d5dc96..000000000 --- a/janis_core/tests/data/galaxy/abricate/test-data/output_mincov100.txt +++ /dev/null @@ -1,8 +0,0 @@ -#FILE SEQUENCE START END STRAND GENE COVERAGE COVERAGE_MAP GAPS %COVERAGE %IDENTITY DATABASE ACCESSION PRODUCT RESISTANCE -MRSA0252.fna gi|49482253|ref|NC_002952.2| 40786 41556 - aadD_1 1-771/771 =============== 0/0 100.00 99.74 resfinder AF181950 aadD Amikacin;Tobramycin -MRSA0252.fna gi|49482253|ref|NC_002952.2| 44919 46925 - mecA_6 1-2007/2007 =============== 0/0 100.00 100.00 resfinder BX571856 mecA Amoxicillin;Amoxicillin+Clavulanic_acid;Ampicillin;Ampicillin+Clavulanic_acid;Cefepime;Cefixime;Cefotaxime;Cefoxitin;Ceftazidime;Ertapenem;Imipenem;Meropenem;Piperacillin;Piperacillin+Tazobactam -MRSA0252.fna gi|49482253|ref|NC_002952.2| 55890 56621 + erm(A)_1 1-732/732 =============== 0/0 100.00 100.00 resfinder X03216 erm(A) Erythromycin;Lincomycin;Clindamycin;Quinupristin;Pristinamycin_IA;Virginiamycin_S -MRSA0252.fna gi|49482253|ref|NC_002952.2| 56747 57529 - ant(9)-Ia_1 1-783/783 =============== 0/0 100.00 100.00 resfinder X02588 ant(9)-Ia -MRSA0252.fna gi|49482253|ref|NC_002952.2| 1796513 1797244 + erm(A)_1 1-732/732 =============== 0/0 100.00 100.00 resfinder X03216 erm(A) Erythromycin;Lincomycin;Clindamycin;Quinupristin;Pristinamycin_IA;Virginiamycin_S -MRSA0252.fna gi|49482253|ref|NC_002952.2| 1797370 1798152 - ant(9)-Ia_1 1-783/783 =============== 0/0 100.00 100.00 resfinder X02588 ant(9)-Ia -MRSA0252.fna gi|49482253|ref|NC_002952.2| 1913785 1914672 + blaZ_78 1-888/888 =============== 0/0 100.00 99.66 resfinder KU607301 blaZ Amoxicillin;Ampicillin;Penicillin;Piperacillin diff --git a/janis_core/tests/data/galaxy/abricate/test-data/output_minid100.txt b/janis_core/tests/data/galaxy/abricate/test-data/output_minid100.txt deleted file mode 100644 index 21e927fc5..000000000 --- a/janis_core/tests/data/galaxy/abricate/test-data/output_minid100.txt +++ /dev/null @@ -1,6 +0,0 @@ -#FILE SEQUENCE START END STRAND GENE COVERAGE COVERAGE_MAP GAPS %COVERAGE %IDENTITY DATABASE ACCESSION PRODUCT RESISTANCE -MRSA0252.fna gi|49482253|ref|NC_002952.2| 44919 46925 - mecA_6 1-2007/2007 =============== 0/0 100.00 100.00 resfinder BX571856 mecA Amoxicillin;Amoxicillin+Clavulanic_acid;Ampicillin;Ampicillin+Clavulanic_acid;Cefepime;Cefixime;Cefotaxime;Cefoxitin;Ceftazidime;Ertapenem;Imipenem;Meropenem;Piperacillin;Piperacillin+Tazobactam -MRSA0252.fna gi|49482253|ref|NC_002952.2| 55890 56621 + erm(A)_1 1-732/732 =============== 0/0 100.00 100.00 resfinder X03216 erm(A) Erythromycin;Lincomycin;Clindamycin;Quinupristin;Pristinamycin_IA;Virginiamycin_S -MRSA0252.fna gi|49482253|ref|NC_002952.2| 56747 57529 - ant(9)-Ia_1 1-783/783 =============== 0/0 100.00 100.00 resfinder X02588 ant(9)-Ia -MRSA0252.fna gi|49482253|ref|NC_002952.2| 1796513 1797244 + erm(A)_1 1-732/732 =============== 0/0 100.00 100.00 resfinder X03216 erm(A) Erythromycin;Lincomycin;Clindamycin;Quinupristin;Pristinamycin_IA;Virginiamycin_S -MRSA0252.fna gi|49482253|ref|NC_002952.2| 1797370 1798152 - ant(9)-Ia_1 1-783/783 =============== 0/0 100.00 100.00 resfinder X02588 ant(9)-Ia diff --git a/janis_core/tests/data/galaxy/abricate/test-data/output_mrsa.txt b/janis_core/tests/data/galaxy/abricate/test-data/output_mrsa.txt deleted file mode 100644 index 948d5dc96..000000000 --- a/janis_core/tests/data/galaxy/abricate/test-data/output_mrsa.txt +++ /dev/null @@ -1,8 +0,0 @@ -#FILE SEQUENCE START END STRAND GENE COVERAGE COVERAGE_MAP GAPS %COVERAGE %IDENTITY DATABASE ACCESSION PRODUCT RESISTANCE -MRSA0252.fna gi|49482253|ref|NC_002952.2| 40786 41556 - aadD_1 1-771/771 =============== 0/0 100.00 99.74 resfinder AF181950 aadD Amikacin;Tobramycin -MRSA0252.fna gi|49482253|ref|NC_002952.2| 44919 46925 - mecA_6 1-2007/2007 =============== 0/0 100.00 100.00 resfinder BX571856 mecA Amoxicillin;Amoxicillin+Clavulanic_acid;Ampicillin;Ampicillin+Clavulanic_acid;Cefepime;Cefixime;Cefotaxime;Cefoxitin;Ceftazidime;Ertapenem;Imipenem;Meropenem;Piperacillin;Piperacillin+Tazobactam -MRSA0252.fna gi|49482253|ref|NC_002952.2| 55890 56621 + erm(A)_1 1-732/732 =============== 0/0 100.00 100.00 resfinder X03216 erm(A) Erythromycin;Lincomycin;Clindamycin;Quinupristin;Pristinamycin_IA;Virginiamycin_S -MRSA0252.fna gi|49482253|ref|NC_002952.2| 56747 57529 - ant(9)-Ia_1 1-783/783 =============== 0/0 100.00 100.00 resfinder X02588 ant(9)-Ia -MRSA0252.fna gi|49482253|ref|NC_002952.2| 1796513 1797244 + erm(A)_1 1-732/732 =============== 0/0 100.00 100.00 resfinder X03216 erm(A) Erythromycin;Lincomycin;Clindamycin;Quinupristin;Pristinamycin_IA;Virginiamycin_S -MRSA0252.fna gi|49482253|ref|NC_002952.2| 1797370 1798152 - ant(9)-Ia_1 1-783/783 =============== 0/0 100.00 100.00 resfinder X02588 ant(9)-Ia -MRSA0252.fna gi|49482253|ref|NC_002952.2| 1913785 1914672 + blaZ_78 1-888/888 =============== 0/0 100.00 99.66 resfinder KU607301 blaZ Amoxicillin;Ampicillin;Penicillin;Piperacillin diff --git a/janis_core/tests/data/galaxy/abricate/test-data/output_noheader.txt b/janis_core/tests/data/galaxy/abricate/test-data/output_noheader.txt deleted file mode 100644 index 128645eb7..000000000 --- a/janis_core/tests/data/galaxy/abricate/test-data/output_noheader.txt +++ /dev/null @@ -1,7 +0,0 @@ -MRSA0252.fna gi|49482253|ref|NC_002952.2| 40786 41556 - aadD_1 1-771/771 =============== 0/0 100.00 99.74 resfinder AF181950 aadD Amikacin;Tobramycin -MRSA0252.fna gi|49482253|ref|NC_002952.2| 44919 46925 - mecA_6 1-2007/2007 =============== 0/0 100.00 100.00 resfinder BX571856 mecA Amoxicillin;Amoxicillin+Clavulanic_acid;Ampicillin;Ampicillin+Clavulanic_acid;Cefepime;Cefixime;Cefotaxime;Cefoxitin;Ceftazidime;Ertapenem;Imipenem;Meropenem;Piperacillin;Piperacillin+Tazobactam -MRSA0252.fna gi|49482253|ref|NC_002952.2| 55890 56621 + erm(A)_1 1-732/732 =============== 0/0 100.00 100.00 resfinder X03216 erm(A) Erythromycin;Lincomycin;Clindamycin;Quinupristin;Pristinamycin_IA;Virginiamycin_S -MRSA0252.fna gi|49482253|ref|NC_002952.2| 56747 57529 - ant(9)-Ia_1 1-783/783 =============== 0/0 100.00 100.00 resfinder X02588 ant(9)-Ia -MRSA0252.fna gi|49482253|ref|NC_002952.2| 1796513 1797244 + erm(A)_1 1-732/732 =============== 0/0 100.00 100.00 resfinder X03216 erm(A) Erythromycin;Lincomycin;Clindamycin;Quinupristin;Pristinamycin_IA;Virginiamycin_S -MRSA0252.fna gi|49482253|ref|NC_002952.2| 1797370 1798152 - ant(9)-Ia_1 1-783/783 =============== 0/0 100.00 100.00 resfinder X02588 ant(9)-Ia -MRSA0252.fna gi|49482253|ref|NC_002952.2| 1913785 1914672 + blaZ_78 1-888/888 =============== 0/0 100.00 99.66 resfinder KU607301 blaZ Amoxicillin;Ampicillin;Penicillin;Piperacillin diff --git a/janis_core/tests/data/galaxy/abricate/test-data/output_noresults.txt b/janis_core/tests/data/galaxy/abricate/test-data/output_noresults.txt deleted file mode 100644 index 9423b576e..000000000 --- a/janis_core/tests/data/galaxy/abricate/test-data/output_noresults.txt +++ /dev/null @@ -1 +0,0 @@ -#FILE SEQUENCE START END STRAND GENE COVERAGE COVERAGE_MAP GAPS %COVERAGE %IDENTITY DATABASE ACCESSION PRODUCT RESISTANCE diff --git a/janis_core/tests/data/galaxy/abricate/test-data/output_summary.txt b/janis_core/tests/data/galaxy/abricate/test-data/output_summary.txt deleted file mode 100644 index 31e4aca4c..000000000 --- a/janis_core/tests/data/galaxy/abricate/test-data/output_summary.txt +++ /dev/null @@ -1,3 +0,0 @@ -#FILE NUM_FOUND AAC3 ANT(4')-Ib ANT3-DPRIME ANT4-PRIME APH3-PRIME ARLR ARLS BLAI BLAR BLAZ BLE DHAP ERMA ErmA FOSB LMRS MECA MECI MEPA MEPB MEPR MGRA NORA NORB PC1_beta-lactamase_(blaZ) RLMH Staphylococcus_aureus_FosB Staphylococcus_aureus_norA Staphylococcys_aureus_LmrS TET38 arlR arlS mecA mecI mecR1 mepA mepR mgrA tet(38) -output_db-card.txt 15 . 100.00 . . . . . . . . . . . 100.00;100.00 . . . . . . . . . . 100.00 . 100.00 99.91 100.00 . 100.00 100.00 100.00 100.00 100.00 100.00 100.00 100.00 100.00 -output_db-megares.txt 24 100.00 . 100.00;100.00 100.00 100.00 100.00 100.00 100.00 100.00 100.00 100.00 100.00 100.00;100.00 . 100.00 100.00 100.00;100.00 100.00 100.00 100.00 100.00 100.00 100.00 100.00 . 100.00 . . . 100.00 . . . . . . . . . diff --git a/janis_core/tests/data/galaxy/abricate/test-data/test.gbk b/janis_core/tests/data/galaxy/abricate/test-data/test.gbk deleted file mode 100644 index d3d1a2e85..000000000 --- a/janis_core/tests/data/galaxy/abricate/test-data/test.gbk +++ /dev/null @@ -1,72 +0,0 @@ -LOCUS STANORAX 1601 bp DNA linear BCT 27-MAY-1993 -DEFINITION Staphylococcus aureus fluoroquinolone resistance protein (norA) - gene, complete cds. -ACCESSION M97169 -VERSION M97169.1 -KEYWORDS fluoroquinolone resistance protein; norA gene. -SOURCE Staphylococcus aureus - ORGANISM Staphylococcus aureus - Bacteria; Firmicutes; Bacilli; Bacillales; Staphylococcaceae; - Staphylococcus. -REFERENCE 1 (bases 1 to 1601) - AUTHORS Kaatz,G.W., Seo,S.M. and Ruble,C.A. - TITLE Efflux-mediated fluoroquinolone resistance in Staphylococcus aureus - JOURNAL Antimicrob. Agents Chemother. 37 (5), 1086-1094 (1993) - PUBMED 8517696 -FEATURES Location/Qualifiers - source 1..1601 - /organism="Staphylococcus aureus" - /mol_type="genomic DNA" - /db_xref="taxon:1280" - gene 117..1412 - /gene="norA" - regulatory 117..122 - /regulatory_class="minus_35_signal" - /gene="norA" - /note="putative" - regulatory 141..146 - /regulatory_class="minus_10_signal" - /gene="norA" - CDS 246..1412 - /gene="norA" - /function="fluoroquinolone efflux" - /standard_name="NORA1199 wild-type gene" - /codon_start=1 - /transl_table=11 - /protein_id="AAA26658.1" - /translation="MNKQILVLYFNIFLIFLGIGLVIPVLPVYLKDLGLTGSDLGLLV - AAFALSQMIISPFGGTLADKLGKKLIICIGLILFSVSEFMFAIGQNFLILMLSRVIGG - MSAGMVMPGVTGLIADISPSHQKAKNFGYMSAIINSGFILGPGIGGFMAEVSHRMPFY - FAGALGILAFIMSIVLIHDPKKVSTNGFQKLEPQLLTKINWKVFITPVILTLVLSFGL - SAFETLYSLYTADKVNYSPKDISIAITGGGIFGALFQIYFFDKFMKYFSELTFIAWSL - IYSVIVLVLLVIADGYWTIMVISFVVFIGFDMIRPAITNYFSNIAGDRQGFAGGLNST - FTSMGNFIGPLIAGALFDVHIEAPIYMAIGVSLAGVVIVLIEKQHRAKLKQQDL" -ORIGIN - 1 ctagtagtat agtatgatta cttttttgca atttcatatg atcaatcccc tttattttaa - 61 tatgtcatta attatacaat taaatggaaa atagtgataa ttacaaagaa aaaatattgt - 121 caaatgtagc aatattgtaa tacaatatag aaacttttta cgaatattta gcatgaattg - 181 caatctgtcg tggaaaagaa aaataacagc ttgaagagtg acaagtagaa aaaagaggtg - 241 agcaaatgaa taaacagatt ttggtattat attttaatat tttcttaatt tttttaggta - 301 tcggtctagt gataccagtc ttacctgttt atttaaaaga tttggggtta actggtagtg - 361 atttaggatt attagttgct gctttcgcct tatctcaaat gattatatcg ccattcggtg - 421 gtacgttagc tgataaatta ggaaagaaat taattatatg tataggatta attttgtttt - 481 cagtgtcaga atttatgttt gctatcggtc agaatttttt aattttgatg ttatcaaggg - 541 ttatcggtgg tatgagtgct ggtatggtta tgcctggggt gacaggttta atagctgata - 601 tttcaccaag ccatcaaaaa gcaaaaaact ttggctacat gtcagcgatt atcaattcag - 661 gattcatttt aggaccaggg attggtggat ttatggcaga agtttcacat cgtatgccat - 721 tttattttgc aggtgcatta ggtattctag catttataat gtcaattgta ttgattcacg - 781 accctaaaaa agtttcgaca aatggattcc aaaagttgga gccacaattg ctaacgaaaa - 841 ttaactggaa agtgtttatt acaccagtta ttctaacact tgtattatcg tttggtttat - 901 ctgcatttga aacattgtat tcactataca cagctgacaa ggtaaattat tcacctaaag - 961 atatttcgat tgcaattaca ggtggcggta tctttggtgc acttttccaa atttatttct - 1021 ttgataaatt tatgaaatac ttctctgagt taacatttat tgcatggtca ttaatatatt - 1081 cagttattgt attagtgcta ttagttattg ccgatggtta ctggacaatt atggtaataa - 1141 gctttgttgt ctttatcggg ttcgatatga taagacctgc tattacaaat tatttttcaa - 1201 atattgctgg tgatagacag ggatttgcag gtgggttaaa ctcaacattc actagcatgg - 1261 ggaattttat aggtccttta atcgcaggtg cgttatttga tgtgcacatt gaagccccaa - 1321 tttatatggc tataggtgtg tcattagctg gtgttgtcat tgttttaatt gaaaagcaac - 1381 atagagctaa gttaaaacaa caagatttgt aatatcgcac atggttgtca ttcgattaat - 1441 gtttttcgac aactaaagca tttcaaaata agcatcgatt ttcttacaat tatagtgaag - 1501 aaaagtcgat gctttaaatt tataaagatt aaaaactttt aaatgtttta gtctttatat - 1561 ttaaatgtta tatgtaacaa aaaatgattt tgagtaataa a -// diff --git a/janis_core/tests/data/galaxy/fastqc-5ec9f6bceaee/.hg_archival.txt b/janis_core/tests/data/galaxy/fastqc-5ec9f6bceaee/.hg_archival.txt deleted file mode 100644 index d60ed2efa..000000000 --- a/janis_core/tests/data/galaxy/fastqc-5ec9f6bceaee/.hg_archival.txt +++ /dev/null @@ -1,6 +0,0 @@ -repo: e28c965eeed4adeb19cb086d1e0f5b3ca6dc8a5d -node: 5ec9f6bceaee7c629268142c0b7bb8f7ab05b51b -branch: default -latesttag: null -latesttagdistance: 24 -changessincelatesttag: 24 diff --git a/janis_core/tests/data/galaxy/hisat2-6c19daec423d/.hg_archival.txt b/janis_core/tests/data/galaxy/hisat2-6c19daec423d/.hg_archival.txt deleted file mode 100644 index f2df11d25..000000000 --- a/janis_core/tests/data/galaxy/hisat2-6c19daec423d/.hg_archival.txt +++ /dev/null @@ -1,6 +0,0 @@ -repo: 5bafe7d7a55ef7263f54dd6832b1cff45c315196 -node: 6c19daec423dbc036eff74cc4283c6afc358cc40 -branch: default -latesttag: null -latesttagdistance: 31 -changessincelatesttag: 31 diff --git a/janis_core/tests/data/galaxy/nanoplot-edbb6c5028f5/.hg_archival.txt b/janis_core/tests/data/galaxy/nanoplot-edbb6c5028f5/.hg_archival.txt deleted file mode 100644 index 0cd893e7b..000000000 --- a/janis_core/tests/data/galaxy/nanoplot-edbb6c5028f5/.hg_archival.txt +++ /dev/null @@ -1,6 +0,0 @@ -repo: db1eeffba23e9bfe3b088f1df2ee415a62d2bb19 -node: edbb6c5028f595f8cd108c84aea624da9fc6005f -branch: default -latesttag: null -latesttagdistance: 5 -changessincelatesttag: 5 diff --git a/janis_core/tests/data/galaxy/text_processing-d698c222f354/.hg_archival.txt b/janis_core/tests/data/galaxy/text_processing-d698c222f354/.hg_archival.txt deleted file mode 100644 index 12fe1c0d7..000000000 --- a/janis_core/tests/data/galaxy/text_processing-d698c222f354/.hg_archival.txt +++ /dev/null @@ -1,6 +0,0 @@ -repo: 5314e5d6f040286c47aee7cdf652579290c3e501 -node: d698c222f3545f99433a17f75d5375ba29a70594 -branch: default -latesttag: null -latesttagdistance: 19 -changessincelatesttag: 19 diff --git a/janis_core/tests/data/galaxy/annotate-my-ids-wf.ga b/janis_core/tests/data/galaxy/workflows/annotate-my-ids-wf.ga similarity index 100% rename from janis_core/tests/data/galaxy/annotate-my-ids-wf.ga rename to janis_core/tests/data/galaxy/workflows/annotate-my-ids-wf.ga diff --git a/janis_core/tests/data/galaxy/cutadapt_wf.ga b/janis_core/tests/data/galaxy/workflows/cutadapt_wf.ga similarity index 100% rename from janis_core/tests/data/galaxy/cutadapt_wf.ga rename to janis_core/tests/data/galaxy/workflows/cutadapt_wf.ga diff --git a/janis_core/tests/data/galaxy/fastqc_wf.ga b/janis_core/tests/data/galaxy/workflows/fastqc_wf.ga similarity index 100% rename from janis_core/tests/data/galaxy/fastqc_wf.ga rename to janis_core/tests/data/galaxy/workflows/fastqc_wf.ga diff --git a/janis_core/tests/data/galaxy/goseq_wf.ga b/janis_core/tests/data/galaxy/workflows/goseq_wf.ga similarity index 100% rename from janis_core/tests/data/galaxy/goseq_wf.ga rename to janis_core/tests/data/galaxy/workflows/goseq_wf.ga diff --git a/janis_core/tests/data/galaxy/hisat2_wf.ga b/janis_core/tests/data/galaxy/workflows/hisat2_wf.ga similarity index 100% rename from janis_core/tests/data/galaxy/hisat2_wf.ga rename to janis_core/tests/data/galaxy/workflows/hisat2_wf.ga diff --git a/janis_core/tests/data/galaxy/limma_voom_wf.ga b/janis_core/tests/data/galaxy/workflows/limma_voom_wf.ga similarity index 100% rename from janis_core/tests/data/galaxy/limma_voom_wf.ga rename to janis_core/tests/data/galaxy/workflows/limma_voom_wf.ga diff --git a/janis_core/tests/data/galaxy/nanoplot_wf.ga b/janis_core/tests/data/galaxy/workflows/nanoplot_wf.ga similarity index 100% rename from janis_core/tests/data/galaxy/nanoplot_wf.ga rename to janis_core/tests/data/galaxy/workflows/nanoplot_wf.ga diff --git a/janis_core/tests/data/galaxy/rna_seq_counts_to_genes.ga b/janis_core/tests/data/galaxy/workflows/rna_seq_counts_to_genes.ga similarity index 100% rename from janis_core/tests/data/galaxy/rna_seq_counts_to_genes.ga rename to janis_core/tests/data/galaxy/workflows/rna_seq_counts_to_genes.ga diff --git a/janis_core/tests/data/galaxy/rna_seq_genes_to_pathways.ga b/janis_core/tests/data/galaxy/workflows/rna_seq_genes_to_pathways.ga similarity index 100% rename from janis_core/tests/data/galaxy/rna_seq_genes_to_pathways.ga rename to janis_core/tests/data/galaxy/workflows/rna_seq_genes_to_pathways.ga diff --git a/janis_core/tests/data/galaxy/rna_seq_reads_to_counts.ga b/janis_core/tests/data/galaxy/workflows/rna_seq_reads_to_counts.ga similarity index 100% rename from janis_core/tests/data/galaxy/rna_seq_reads_to_counts.ga rename to janis_core/tests/data/galaxy/workflows/rna_seq_reads_to_counts.ga diff --git a/janis_core/tests/data/galaxy/unicycler_assembly.ga b/janis_core/tests/data/galaxy/workflows/unicycler_assembly.ga similarity index 100% rename from janis_core/tests/data/galaxy/unicycler_assembly.ga rename to janis_core/tests/data/galaxy/workflows/unicycler_assembly.ga diff --git a/janis_core/tests/data/galaxy/wf_abricate.ga b/janis_core/tests/data/galaxy/workflows/wf_abricate.ga similarity index 100% rename from janis_core/tests/data/galaxy/wf_abricate.ga rename to janis_core/tests/data/galaxy/workflows/wf_abricate.ga diff --git a/janis_core/tests/data/galaxy/wf_featurecounts.ga b/janis_core/tests/data/galaxy/workflows/wf_featurecounts.ga similarity index 100% rename from janis_core/tests/data/galaxy/wf_featurecounts.ga rename to janis_core/tests/data/galaxy/workflows/wf_featurecounts.ga diff --git a/janis_core/tests/data/galaxy/wf_mark_duplicates.ga b/janis_core/tests/data/galaxy/workflows/wf_mark_duplicates.ga similarity index 100% rename from janis_core/tests/data/galaxy/wf_mark_duplicates.ga rename to janis_core/tests/data/galaxy/workflows/wf_mark_duplicates.ga diff --git a/janis_core/tests/data/galaxy/wf_samtools_idxstats.ga b/janis_core/tests/data/galaxy/workflows/wf_samtools_idxstats.ga similarity index 100% rename from janis_core/tests/data/galaxy/wf_samtools_idxstats.ga rename to janis_core/tests/data/galaxy/workflows/wf_samtools_idxstats.ga diff --git a/janis_core/tests/data/galaxy/abricate/abricate.xml b/janis_core/tests/data/galaxy/wrappers/abricate-c2ef298da409/abricate.xml similarity index 99% rename from janis_core/tests/data/galaxy/abricate/abricate.xml rename to janis_core/tests/data/galaxy/wrappers/abricate-c2ef298da409/abricate.xml index 9ff84351f..e7d0dbdf3 100644 --- a/janis_core/tests/data/galaxy/abricate/abricate.xml +++ b/janis_core/tests/data/galaxy/wrappers/abricate-c2ef298da409/abricate.xml @@ -24,7 +24,6 @@ #if $adv.min_cov --mincov=$adv.min_cov #end if - 2>&1 --db=$adv.db > '$report' ]]> diff --git a/janis_core/tests/data/galaxy/abricate/abricate_list.xml b/janis_core/tests/data/galaxy/wrappers/abricate-c2ef298da409/abricate_list.xml similarity index 100% rename from janis_core/tests/data/galaxy/abricate/abricate_list.xml rename to janis_core/tests/data/galaxy/wrappers/abricate-c2ef298da409/abricate_list.xml diff --git a/janis_core/tests/data/galaxy/abricate/abricate_summary.xml b/janis_core/tests/data/galaxy/wrappers/abricate-c2ef298da409/abricate_summary.xml similarity index 100% rename from janis_core/tests/data/galaxy/abricate/abricate_summary.xml rename to janis_core/tests/data/galaxy/wrappers/abricate-c2ef298da409/abricate_summary.xml diff --git a/janis_core/tests/data/galaxy/abricate/macros.xml b/janis_core/tests/data/galaxy/wrappers/abricate-c2ef298da409/macros.xml similarity index 100% rename from janis_core/tests/data/galaxy/abricate/macros.xml rename to janis_core/tests/data/galaxy/wrappers/abricate-c2ef298da409/macros.xml diff --git a/janis_core/tests/data/galaxy/wrappers/annotatemyids-133f36c29579/annotateMyIDs.xml b/janis_core/tests/data/galaxy/wrappers/annotatemyids-133f36c29579/annotateMyIDs.xml new file mode 100755 index 000000000..e396c091d --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/annotatemyids-133f36c29579/annotateMyIDs.xml @@ -0,0 +1,299 @@ + + annotate a generic set of identifiers + + annotatemyids + + + 3.16.0 + 1 + + + bioconductor-org.hs.eg.db + bioconductor-org.mm.eg.db + bioconductor-org.dm.eg.db + bioconductor-org.dr.eg.db + bioconductor-org.rn.eg.db + bioconductor-org.at.tair.db + bioconductor-org.gg.eg.db + + /dev/null | grep -v -i "WARNING: ")", org.Dr.eg.db version" $(R --vanilla --slave -e "library(org.Dr.eg.db); cat(sessionInfo()\$otherPkgs\$org.Dr.eg.db\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", org.Dm.eg.db version" $(R --vanilla --slave -e "library(org.Dm.eg.db); cat(sessionInfo()\$otherPkgs\$org.Dm.eg.db\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", org.Mm.eg.db version" $(R --vanilla --slave -e "library(org.Mm.eg.db); cat(sessionInfo()\$otherPkgs\$org.Mm.eg.db\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", org.Rn.eg.db version" $(R --vanilla --slave -e "library(org.Rn.eg.db); cat(sessionInfo()\$otherPkgs\$org.Rn.eg.db\$Version)" 2> /dev/null | grep -v -i "WARNING: ") + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + rscriptOpt is True + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @unpublished{None, + author = {Mark Dunning}, + title = {annotateMyIDs}, + year = {2017}, + eprint = {None}, + url = {} + } + + diff --git a/janis_core/tests/data/galaxy/wrappers/annotatemyids-1a125daea0d8/annotateMyIDs.xml b/janis_core/tests/data/galaxy/wrappers/annotatemyids-1a125daea0d8/annotateMyIDs.xml new file mode 100755 index 000000000..37ef5e981 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/annotatemyids-1a125daea0d8/annotateMyIDs.xml @@ -0,0 +1,238 @@ + + annotate a generic set of identifiers + + bioconductor-org.hs.eg.db + bioconductor-org.mm.eg.db + bioconductor-org.dm.eg.db + bioconductor-org.dr.eg.db + + /dev/null | grep -v -i "WARNING: ")", org.Dr.eg.db version" $(R --vanilla --slave -e "library(org.Dr.eg.db); cat(sessionInfo()\$otherPkgs\$org.Dr.eg.db\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", org.Dm.eg.db version" $(R --vanilla --slave -e "library(org.Dm.eg.db); cat(sessionInfo()\$otherPkgs\$org.Dm.eg.db\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", org.Mm.eg.db version" $(R --vanilla --slave -e "library(org.Mm.eg.db); cat(sessionInfo()\$otherPkgs\$org.Mm.eg.db\$Version)" 2> /dev/null | grep -v -i "WARNING: ") + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + rscriptOpt is True + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @unpublished{None, + author = {Mark Dunning}, + title = {annotateMyIDs}, + year = {2017}, + eprint = {None}, + url = {} + } + + diff --git a/janis_core/tests/data/galaxy/wrappers/busco-41030a6c03b7/busco.xml b/janis_core/tests/data/galaxy/wrappers/busco-41030a6c03b7/busco.xml new file mode 100644 index 000000000..9a94b831c --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/busco-41030a6c03b7/busco.xml @@ -0,0 +1,305 @@ + + assess genome assembly and annotation completeness + + busco + + + macros.xml + + + busco + tar + fonts-conda-ecosystem + + busco --version + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+ + + outputs and 'short_summary' in outputs + + + + outputs and 'missing' in outputs + + + outputs and 'image' in outputs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + `_ +. + +.. _BUSCO: http://busco.ezlab.org/ + + ]]> + +
diff --git a/janis_core/tests/data/galaxy/wrappers/busco-41030a6c03b7/macros.xml b/janis_core/tests/data/galaxy/wrappers/busco-41030a6c03b7/macros.xml new file mode 100644 index 000000000..e7d4ec9c8 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/busco-41030a6c03b7/macros.xml @@ -0,0 +1,271 @@ + + + 5.3.2 + 0 + + + + 10.1093/bioinformatics/btv351 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/cache.json b/janis_core/tests/data/galaxy/wrappers/cache.json new file mode 100644 index 000000000..822f4897e --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/cache.json @@ -0,0 +1 @@ +{"fastqc": [{"owner": "devteam", "repo": "fastqc", "revision": "9da02be9c6cc", "tool_id": "fastqc", "tool_version": "0.72", "tool_build": "0.72", "date_created": "2014-01-27 14:29:14", "requirements": [{"_name": "fastqc", "_version": "0.11.7", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/devteam/fastqc/archive/9da02be9c6cc.tar.gz"}, {"owner": "devteam", "repo": "fastqc", "revision": "3d0c7bdf12f5", "tool_id": "fastqc", "tool_version": "0.73", "tool_build": "0.73+galaxy0", "date_created": "2014-01-27 14:29:14", "requirements": [{"_name": "fastqc", "_version": "0.11.9", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/devteam/fastqc/archive/3d0c7bdf12f5.tar.gz"}, {"owner": "devteam", "repo": "fastqc", "revision": "5ec9f6bceaee", "tool_id": "fastqc", "tool_version": "0.74", "tool_build": "0.74+galaxy0", "date_created": "2014-01-27 14:29:14", "requirements": [{"_name": "fastqc", "_version": "0.12.1", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/devteam/fastqc/archive/5ec9f6bceaee.tar.gz"}], "cutadapt": [{"owner": "lparsons", "repo": "cutadapt", "revision": "660cffd8d92a", "tool_id": "cutadapt", "tool_version": "1.16.3", "tool_build": "1.16.3", "date_created": "2011-07-22 15:19:31", "requirements": [{"_name": "cutadapt", "_version": "1.16", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/archive/660cffd8d92a.tar.gz"}, {"owner": "lparsons", "repo": "cutadapt", "revision": "135b80fb1ac2", "tool_id": "cutadapt", "tool_version": "4.0", "tool_build": "4.0+galaxy1", "date_created": "2011-07-22 15:19:31", "requirements": [{"_name": "cutadapt", "_version": "4.0", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/archive/135b80fb1ac2.tar.gz"}], "hisat2": [{"owner": "iuc", "repo": "hisat2", "revision": "6c19daec423d", "tool_id": "hisat2", "tool_version": "2.2.1", "tool_build": "2.2.1+galaxy0", "date_created": "2015-10-10 18:54:36", "requirements": [{"_name": "hisat2", "_version": "2.2.1", "subtype": "conda"}, {"_name": "samtools", "_version": "1.12", "subtype": "conda"}, {"_name": "seqtk", "_version": "1.3", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/iuc/hisat2/archive/6c19daec423d.tar.gz"}, {"owner": "iuc", "repo": "hisat2", "revision": "f4af63aaf57a", "tool_id": "hisat2", "tool_version": "2.2.1", "tool_build": "2.2.1+galaxy1", "date_created": "2015-10-10 18:54:36", "requirements": [{"_name": "hisat2", "_version": "2.2.1", "subtype": "conda"}, {"_name": "samtools", "_version": "1.12", "subtype": "conda"}, {"_name": "seqtk", "_version": "1.3", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/iuc/hisat2/archive/f4af63aaf57a.tar.gz"}], "featurecounts": [{"owner": "iuc", "repo": "featurecounts", "revision": "38b6d12edc68", "tool_id": "featurecounts", "tool_version": "2.0.1", "tool_build": "2.0.1+galaxy2", "date_created": "2016-09-21 11:24:26", "requirements": [{"_name": "subread", "_version": "2.0.1", "subtype": "conda"}, {"_name": "samtools", "_version": "1.11", "subtype": "conda"}, {"_name": "coreutils", "_version": "8.31", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/iuc/featurecounts/archive/38b6d12edc68.tar.gz"}, {"owner": "iuc", "repo": "featurecounts", "revision": "6f66ae7c5f7a", "tool_id": "featurecounts", "tool_version": "2.0.3", "tool_build": "2.0.3+galaxy1", "date_created": "2016-09-21 11:24:26", "requirements": [{"_name": "subread", "_version": "2.0.3", "subtype": "conda"}, {"_name": "samtools", "_version": "1.16.1", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/iuc/featurecounts/archive/6f66ae7c5f7a.tar.gz"}], "picard_MarkDuplicates": [{"owner": "devteam", "repo": "picard", "revision": "b9fbec5ac6b2", "tool_id": "picard_MarkDuplicates", "tool_version": "2.18.2.1", "tool_build": "2.18.2.1", "date_created": "2012-10-23 14:43:59", "requirements": [{"_name": "picard", "_version": "2.18.2", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/devteam/picard/archive/b9fbec5ac6b2.tar.gz"}, {"owner": "devteam", "repo": "picard", "revision": "585027e65f3b", "tool_id": "picard_MarkDuplicates", "tool_version": "2.18.2.4", "tool_build": "2.18.2.4", "date_created": "2012-10-23 14:43:59", "requirements": [{"_name": "picard", "_version": "2.18.2", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/devteam/picard/archive/585027e65f3b.tar.gz"}], "samtools_idxstats": [{"owner": "devteam", "repo": "samtools_idxstats", "revision": "811fc2d75ad4", "tool_id": "samtools_idxstats", "tool_version": "2.0.2", "tool_build": "2.0.2", "date_created": "2015-04-21 20:00:16", "requirements": [{"_name": "samtools", "_version": "1.9", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/devteam/samtools_idxstats/archive/811fc2d75ad4.tar.gz"}, {"owner": "devteam", "repo": "samtools_idxstats", "revision": "7def34e6cf4d", "tool_id": "samtools_idxstats", "tool_version": "2.0.4", "tool_build": "2.0.4", "date_created": "2015-04-21 20:00:16", "requirements": [{"_name": "samtools", "_version": "1.13", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/devteam/samtools_idxstats/archive/7def34e6cf4d.tar.gz"}], "rseqc_geneBody_coverage": [{"owner": "nilesh", "repo": "rseqc", "revision": "dbedfc5f5a3c", "tool_id": "rseqc_geneBody_coverage", "tool_version": "2.6.4.3", "tool_build": "2.6.4.3", "date_created": "2013-06-14 17:19:04", "requirements": [{"_name": "rseqc", "_version": "2.6.4", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/nilesh/rseqc/archive/dbedfc5f5a3c.tar.gz"}], "rseqc_infer_experiment": [{"owner": "nilesh", "repo": "rseqc", "revision": "dbedfc5f5a3c", "tool_id": "rseqc_infer_experiment", "tool_version": "2.6.4.1", "tool_build": "2.6.4.1", "date_created": "2013-06-14 17:19:04", "requirements": [{"_name": "rseqc", "_version": "2.6.4", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/nilesh/rseqc/archive/dbedfc5f5a3c.tar.gz"}], "abricate": [{"owner": "iuc", "repo": "abricate", "revision": "c2ef298da409", "tool_id": "abricate", "tool_version": "1.0.1", "tool_build": "1.0.1", "date_created": "2016-10-03 07:44:45", "requirements": [{"_name": "abricate", "_version": "1.0.1", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/iuc/abricate/archive/c2ef298da409.tar.gz"}], "rseqc_read_distribution": [{"owner": "nilesh", "repo": "rseqc", "revision": "dbedfc5f5a3c", "tool_id": "rseqc_read_distribution", "tool_version": "2.6.4.1", "tool_build": "2.6.4.1", "date_created": "2013-06-14 17:19:04", "requirements": [{"_name": "rseqc", "_version": "2.6.4", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/nilesh/rseqc/archive/dbedfc5f5a3c.tar.gz"}], "collection_column_join": [{"owner": "iuc", "repo": "collection_column_join", "revision": "3ddd99c7efee", "tool_id": "collection_column_join", "tool_version": "0.0.3", "tool_build": "0.0.3", "date_created": "2016-05-27 15:41:15", "requirements": [{"_name": "coreutils", "_version": "8.25", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/iuc/collection_column_join/archive/3ddd99c7efee.tar.gz"}], "multiqc": [{"owner": "iuc", "repo": "multiqc", "revision": "1c2db0054039", "tool_id": "multiqc", "tool_version": "1.6", "tool_build": "1.6", "date_created": "2017-10-24 10:29:58", "requirements": [{"_name": "multiqc", "_version": "1.6", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/iuc/multiqc/archive/1c2db0054039.tar.gz"}], "annotatemyids": [{"owner": "iuc", "repo": "annotatemyids", "revision": "133f36c29579", "tool_id": "annotatemyids", "tool_version": "3.16.0", "tool_build": "3.16.0+galaxy1", "date_created": "2018-01-03 20:25:25", "requirements": [{"_name": "bioconductor-org.hs.eg.db", "_version": "3.16.0", "subtype": "conda"}, {"_name": "bioconductor-org.mm.eg.db", "_version": "3.16.0", "subtype": "conda"}, {"_name": "bioconductor-org.dm.eg.db", "_version": "3.16.0", "subtype": "conda"}, {"_name": "bioconductor-org.dr.eg.db", "_version": "3.16.0", "subtype": "conda"}, {"_name": "bioconductor-org.rn.eg.db", "_version": "3.16.0", "subtype": "conda"}, {"_name": "bioconductor-org.at.tair.db", "_version": "3.16.0", "subtype": "conda"}, {"_name": "bioconductor-org.gg.eg.db", "_version": "3.16.0", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/iuc/annotatemyids/archive/133f36c29579.tar.gz"}, {"owner": "iuc", "repo": "annotatemyids", "revision": "1a125daea0d8", "tool_id": "annotatemyids", "tool_version": "3.5.0.1", "tool_build": "3.5.0.1", "date_created": "2018-01-03 20:25:25", "requirements": [{"_name": "bioconductor-org.hs.eg.db", "_version": "3.5.0", "subtype": "conda"}, {"_name": "bioconductor-org.mm.eg.db", "_version": "3.5.0", "subtype": "conda"}, {"_name": "bioconductor-org.dm.eg.db", "_version": "3.5.0", "subtype": "conda"}, {"_name": "bioconductor-org.dr.eg.db", "_version": "3.5.0", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/iuc/annotatemyids/archive/1a125daea0d8.tar.gz"}], "limma_voom": [{"owner": "iuc", "repo": "limma_voom", "revision": "d6f5fa4ee473", "tool_id": "limma_voom", "tool_version": "3.50.1", "tool_build": "3.50.1+galaxy0", "date_created": "2017-06-12 11:41:01", "requirements": [{"_name": "bioconductor-limma", "_version": "3.50.1", "subtype": "conda"}, {"_name": "bioconductor-edger", "_version": "3.36.0", "subtype": "conda"}, {"_name": "r-statmod", "_version": "1.4.36", "subtype": "conda"}, {"_name": "r-scales", "_version": "1.1.1", "subtype": "conda"}, {"_name": "r-rjson", "_version": "0.2.21", "subtype": "conda"}, {"_name": "r-getopt", "_version": "1.20.3", "subtype": "conda"}, {"_name": "r-gplots", "_version": "3.1.1", "subtype": "conda"}, {"_name": "bioconductor-glimma", "_version": "2.4.0", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/iuc/limma_voom/archive/d6f5fa4ee473.tar.gz"}, {"owner": "iuc", "repo": "limma_voom", "revision": "d5a940112511", "tool_id": "limma_voom", "tool_version": "3.34.9.9", "tool_build": "3.34.9.9", "date_created": "2017-06-12 11:41:01", "requirements": [{"_name": "bioconductor-limma", "_version": "3.34.9", "subtype": "conda"}, {"_name": "bioconductor-edger", "_version": "3.20.7", "subtype": "conda"}, {"_name": "r-statmod", "_version": "1.4.30", "subtype": "conda"}, {"_name": "r-scales", "_version": "0.5.0", "subtype": "conda"}, {"_name": "r-rjson", "_version": "0.2.15", "subtype": "conda"}, {"_name": "r-getopt", "_version": "1.20.0", "subtype": "conda"}, {"_name": "r-gplots", "_version": "3.0.1", "subtype": "conda"}, {"_name": "bioconductor-glimma", "_version": "1.6.0", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/iuc/limma_voom/archive/d5a940112511.tar.gz"}], "goseq": [{"owner": "iuc", "repo": "goseq", "revision": "602de62d995b", "tool_id": "goseq", "tool_version": "1.50.0", "tool_build": "1.50.0+galaxy0", "date_created": "2016-11-17 21:40:18", "requirements": [{"_name": "bioconductor-goseq", "_version": "1.50.0", "subtype": "conda"}, {"_name": "bioconductor-org.hs.eg.db", "_version": "3.16.0", "subtype": "conda"}, {"_name": "bioconductor-org.dm.eg.db", "_version": "3.16.0", "subtype": "conda"}, {"_name": "bioconductor-org.dr.eg.db", "_version": "3.16.0", "subtype": "conda"}, {"_name": "bioconductor-org.mm.eg.db", "_version": "3.16.0", "subtype": "conda"}, {"_name": "bioconductor-org.rn.eg.db", "_version": "3.16.0", "subtype": "conda"}, {"_name": "r-dplyr", "_version": "1.0.10", "subtype": "conda"}, {"_name": "r-ggplot2", "_version": "3.4.0", "subtype": "conda"}, {"_name": "r-optparse", "_version": "1.7.3", "subtype": "conda"}, {"_name": "openssl", "_version": "1.1.1s", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/iuc/goseq/archive/602de62d995b.tar.gz"}, {"owner": "iuc", "repo": "goseq", "revision": "ef2ad746b589", "tool_id": "goseq", "tool_version": "1.44.0", "tool_build": "1.44.0+galaxy0", "date_created": "2016-11-17 21:40:18", "requirements": [{"_name": "bioconductor-goseq", "_version": "1.44.0", "subtype": "conda"}, {"_name": "bioconductor-org.hs.eg.db", "_version": "3.13.0", "subtype": "conda"}, {"_name": "bioconductor-org.dm.eg.db", "_version": "3.13.0", "subtype": "conda"}, {"_name": "bioconductor-org.dr.eg.db", "_version": "3.13.0", "subtype": "conda"}, {"_name": "bioconductor-org.mm.eg.db", "_version": "3.13.0", "subtype": "conda"}, {"_name": "r-dplyr", "_version": "1.0.6", "subtype": "conda"}, {"_name": "r-ggplot2", "_version": "3.3.3", "subtype": "conda"}, {"_name": "r-optparse", "_version": "1.6.6", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/iuc/goseq/archive/ef2ad746b589.tar.gz"}], "unicycler": [{"owner": "iuc", "repo": "unicycler", "revision": "9e3e80cc4ad4", "tool_id": "unicycler", "tool_version": "0.4.8.0", "tool_build": "0.4.8.0", "date_created": "2017-07-06 21:07:42", "requirements": [{"_name": "unicycler", "_version": "0.4.8", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/iuc/unicycler/archive/9e3e80cc4ad4.tar.gz"}], "nanoplot": [{"owner": "iuc", "repo": "nanoplot", "revision": "edbb6c5028f5", "tool_id": "nanoplot", "tool_version": "1.28.2", "tool_build": "1.28.2+galaxy1", "date_created": "2018-09-28 23:30:25", "requirements": [{"_name": "nanoplot", "_version": "1.28.2", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/iuc/nanoplot/archive/edbb6c5028f5.tar.gz"}, {"owner": "iuc", "repo": "nanoplot", "revision": "0f1c34698076", "tool_id": "nanoplot", "tool_version": "1.41.0", "tool_build": "1.41.0+galaxy0", "date_created": "2018-09-28 23:30:25", "requirements": [{"_name": "nanoplot", "_version": "1.41.0", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/iuc/nanoplot/archive/0f1c34698076.tar.gz"}], "quast": [{"owner": "iuc", "repo": "quast", "revision": "675488238c96", "tool_id": "quast", "tool_version": "5.0.2", "tool_build": "5.0.2+galaxy5", "date_created": "2016-09-13 18:43:53", "requirements": [{"_name": "quast", "_version": "5.0.2", "subtype": "conda"}, {"_name": "circos", "_version": "0.69.8", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/iuc/quast/archive/675488238c96.tar.gz"}], "busco": [{"owner": "iuc", "repo": "busco", "revision": "41030a6c03b7", "tool_id": "busco", "tool_version": "5.3.2", "tool_build": "5.3.2+galaxy0", "date_created": "2017-01-12 20:12:46", "requirements": [{"_name": "busco", "_version": "5.3.2", "subtype": "conda"}, {"_name": "tar", "_version": "1.34", "subtype": "conda"}, {"_name": "fonts-conda-ecosystem", "_version": "1", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/iuc/busco/archive/41030a6c03b7.tar.gz"}], "samtools_flagstat": [{"owner": "devteam", "repo": "samtools_flagstat", "revision": "fe34990e5ce7", "tool_id": "samtools_flagstat", "tool_version": "2.0.4", "tool_build": "2.0.4", "date_created": "2013-08-26 18:22:38", "requirements": [{"_name": "samtools", "_version": "1.13", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/devteam/samtools_flagstat/archive/fe34990e5ce7.tar.gz"}], "tp_cut_tool": [{"owner": "bgruening", "repo": "text_processing", "revision": "d698c222f354", "tool_id": "tp_cut_tool", "tool_version": "1.1.0", "tool_build": "1.1.0", "date_created": "2015-01-29 12:53:16", "requirements": [{"_name": "coreutils", "_version": "8.25", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/archive/d698c222f354.tar.gz"}], "mergeCols1": [{"owner": "devteam", "repo": "merge_cols", "revision": "f2aac0c5c60d", "tool_id": "mergeCols1", "tool_version": "1.0.1", "tool_build": "1.0.1", "date_created": "2012-12-04 16:00:32", "requirements": [], "url": "https://toolshed.g2.bx.psu.edu/repos/devteam/merge_cols/archive/f2aac0c5c60d.tar.gz"}], "tp_replace_in_line": [{"owner": "bgruening", "repo": "text_processing", "revision": "74a8bef53a00", "tool_id": "tp_replace_in_line", "tool_version": "1.1.1", "tool_build": "1.1.1", "date_created": "2015-01-29 12:53:16", "requirements": [{"_name": "sed", "_version": "4.4", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/archive/74a8bef53a00.tar.gz"}], "Add_a_column1": [{"owner": "devteam", "repo": "column_maker", "revision": "02026300aa45", "tool_id": "Add_a_column1", "tool_version": "1.6", "tool_build": "1.6", "date_created": "2014-07-28 15:56:15", "requirements": [{"_name": "python", "_version": "3.8", "subtype": "conda"}, {"_name": "numpy", "_version": "1.19.1", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/devteam/column_maker/archive/02026300aa45.tar.gz"}], "tp_sort_header_tool": [{"owner": "bgruening", "repo": "text_processing", "revision": "d698c222f354", "tool_id": "tp_sort_header_tool", "tool_version": "1.1.1", "tool_build": "1.1.1", "date_created": "2015-01-29 12:53:16", "requirements": [{"_name": "coreutils", "_version": "8.25", "subtype": "conda"}, {"_name": "sed", "_version": "4.4", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/archive/d698c222f354.tar.gz"}], "egsea": [{"owner": "iuc", "repo": "egsea", "revision": "fba1660fb717", "tool_id": "egsea", "tool_version": "1.20.0", "tool_build": "1.20.0", "date_created": "2018-01-25 07:23:22", "requirements": [{"_name": "bioconductor-egsea", "_version": "1.20.0", "subtype": "conda"}, {"_name": "r-optparse", "_version": "1.6.6", "subtype": "conda"}, {"_name": "r-rjson", "_version": "0.2.20", "subtype": "conda"}, {"_name": "r-statmod", "_version": "1.4.36", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/iuc/egsea/archive/fba1660fb717.tar.gz"}], "fgsea": [{"owner": "iuc", "repo": "fgsea", "revision": "17eb1e0d711f", "tool_id": "fgsea", "tool_version": "1.8.0", "tool_build": "1.8.0+galaxy1", "date_created": "2018-10-20 09:47:07", "requirements": [{"_name": "bioconductor-fgsea", "_version": "1.8.0", "subtype": "conda"}, {"_name": "r-optparse", "_version": "1.6.0", "subtype": "conda"}], "url": "https://toolshed.g2.bx.psu.edu/repos/iuc/fgsea/archive/17eb1e0d711f.tar.gz"}]} \ No newline at end of file diff --git a/janis_core/tests/data/galaxy/wrappers/collection_column_join-3ddd99c7efee/collection_column_join.xml b/janis_core/tests/data/galaxy/wrappers/collection_column_join-3ddd99c7efee/collection_column_join.xml new file mode 100644 index 000000000..f5138a6f7 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/collection_column_join-3ddd99c7efee/collection_column_join.xml @@ -0,0 +1,163 @@ + + on multiple datasets + + coreutils + + + + + 1) {printf("${delimiter}")}; printf( "${tabular_item.element_identifier}_%s", arr[i] ); ctr++ } }; printf( "\n" ); }' > input_header.tmp && + tail -n +${tail_offset} "${tabular_item}" | LC_ALL=C sort -t "${delimiter}" -k $identifier_column > input_file.tmp && + #else: + awk '{ n = split(\$0,arr,"${delimiter}"); ctr=1; for(i=1;i<=n;i++){ if( i != $identifier_column ){ if( ctr > 1) {printf("${delimiter}")}; printf( "${tabular_item.element_identifier}_%s", i ); ctr++ } }; exit }' "${tabular_item}" > input_header.tmp && + LC_ALL=C sort -t "${delimiter}" -k $identifier_column "${tabular_item}" > input_file.tmp && + #end if + #else: + #if $has_header: + head -n ${has_header} "${tabular_item}" | awk '{ n = split(\$0,arr,"${delimiter}"); ctr=1; for(i=1;i<=n;i++){ if( i != $identifier_column ){ if( ctr > 1) {printf("${delimiter}")}; printf( "${tabular_item.element_identifier}" ); ctr++ } }; printf( "\n" ); }' > input_header.tmp && + tail -n +${tail_offset} "${tabular_item}" | LC_ALL=C sort -t "${delimiter}" -k $identifier_column > input_file.tmp && + #else: + awk '{ n = split(\$0,arr,"${delimiter}"); ctr=1; for(i=1;i<=n;i++){ if( i != $identifier_column ){ if( ctr > 1) {printf("${delimiter}")}; printf( "${tabular_item.element_identifier}"); ctr++ } }; exit }' "${tabular_item}" > input_header.tmp && + LC_ALL=C sort -t "${delimiter}" -k $identifier_column "${tabular_item}" > input_file.tmp && + #end if + #end if + #if $i == 0: + mv input_file.tmp output${ ( $i + 1 ) % 2 }.tmp && + #if $has_header: + awk '{ printf \$${identifier_column}; exit }' "${tabular_item}" > header${ $i % 2 }.tmp && + #else: + echo "#KEY" > header${ $i % 2 }.tmp && + #end if + #else: + LC_ALL=C join -o auto -a 1 -a 2 -1 ${left_identifier_column} -2 ${identifier_column} -t "${delimiter}" -e "${fill_char}" output${ $i % 2 }.tmp input_file.tmp > output${ ( $i + 1 ) % 2 }.tmp && + #set $left_identifier_column = 1 + #end if + paste -d "${delimiter}" header${ $i % 2 }.tmp input_header.tmp > header${ ( $i + 1 ) % 2 }.tmp && +#end for +cat header${ ( $i + 1 ) % 2 }.tmp output${ ( $i + 1 ) % 2 }.tmp > "${tabular_output}" + ]]> + + + + + + + + + + + + + + + + + include_outputs and "output_shell_script" in include_outputs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/column_maker-02026300aa45/column_maker.py b/janis_core/tests/data/galaxy/wrappers/column_maker-02026300aa45/column_maker.py new file mode 100644 index 000000000..5b90b920b --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/column_maker-02026300aa45/column_maker.py @@ -0,0 +1,162 @@ +#!/usr/bin/env python +""" +This tool takes a tab-delimited textfile as input and creates another column in +the file which is the result of a computation performed on every row in the +original file. The tool will skip over invalid lines within the file, +informing the user about the number of lines skipped. +""" + +import argparse +import json +import re +import sys +# Functions that may be used in the compute expression +from math import ( # noqa: F401 + ceil, + exp, + floor, + log, + log10, + sqrt, +) + +from numpy import format_float_positional # noqa: F401 + +parser = argparse.ArgumentParser() +parser.add_argument('input', type=argparse.FileType('r'), help="input file") +parser.add_argument('output', type=argparse.FileType('wt'), help="output file") +parser.add_argument('cond', nargs='?', type=str, help="expression") +parser.add_argument('columns', nargs='?', type=int, help="number of columns") +parser.add_argument('column_types', nargs='?', type=str, help="comma separated list of column types") +parser.add_argument('--round', action="store_true", + help="round result") +parser.add_argument('--avoid_scientific_notation', action="store_true", + help="avoid scientific notation") +parser.add_argument('--header_new_column_name', default=None, type=str, + help="First line of input is a header line with column " + "names and this should become the name of the new " + "column") +parser.add_argument('--load_json', default=None, type=argparse.FileType('r'), + help="overwrite parsed arguments from json file") +args = parser.parse_args() + +argparse_dict = vars(args) +if args.load_json: + json_dict = json.load(args.load_json) + argparse_dict.update(json_dict) + +fh = argparse_dict['input'] +out = argparse_dict['output'] +expr = argparse_dict['cond'] +round_result = argparse_dict['round'] +avoid_scientific_notation = argparse_dict['avoid_scientific_notation'] + +if argparse_dict['header_new_column_name'] is not None: + header_line = fh.readline().strip('\n') + out.write( + '{0}\t{1}\n'.format( + header_line, argparse_dict['header_new_column_name'] + ) + ) +try: + in_columns = int(argparse_dict['columns']) + if in_columns < 1: + # To be considered tabular, data must have at least one column. + raise ValueError +except Exception: + if not fh.readline(): + # empty file content is ok and should produce empty output + out.close() + sys.exit() + sys.exit("Missing or invalid 'columns' metadata value, click the pencil icon in the history item and select the Auto-detect option to correct it. This tool can only be used with tab-delimited data.") +try: + in_column_types = argparse_dict['column_types'].split(',') +except Exception: + sys.exit("Missing or invalid 'column_types' metadata value, click the pencil icon in the history item and select the Auto-detect option to correct it. This tool can only be used with tab-delimited data.") +if len(in_column_types) != in_columns: + sys.exit("The 'columns' metadata setting does not conform to the 'column_types' metadata setting, click the pencil icon in the history item and select the Auto-detect option to correct it. This tool can only be used with tab-delimited data.") + +operators = 'is|not|or|and' +builtin_and_math_functions = 'abs|all|any|bin|chr|cmp|complex|divmod|float|bool|hex|int|len|long|max|min|oct|ord|pow|range|reversed|round|sorted|str|sum|type|unichr|unicode|log|log10|exp|sqrt|ceil|floor' +string_and_list_methods = [name for name in dir('') + dir([]) if not name.startswith('_')] +whitelist = r"^([c0-9\+\-\*\/\(\)\.\'\"><=,:! ]|%s|%s|%s)*$" % (operators, builtin_and_math_functions, '|'.join(string_and_list_methods)) +if not re.compile(whitelist).match(expr): + sys.exit("Invalid expression") +if avoid_scientific_notation: + expr = "format_float_positional(%s)" % expr + +# Prepare the column variable names and wrappers for column data types +cols, type_casts = [], [] +for col in range(1, in_columns + 1): + col_name = "c%d" % col + cols.append(col_name) + col_type = in_column_types[col - 1].strip() + if not round_result and col_type == 'int': + col_type = 'float' + type_cast = "%s(%s)" % (col_type, col_name) + type_casts.append(type_cast) + +col_str = ', '.join(cols) # 'c1, c2, c3, c4' +type_cast_str = ', '.join(type_casts) # 'str(c1), int(c2), int(c3), str(c4)' +assign = "%s = line.split('\\t')" % col_str +if len(cols) == 1: + # Single column, unpacking by assignment won't work + assign += '[0]' +wrap = "%s = %s" % (col_str, type_cast_str) +skipped_lines = 0 +first_invalid_line = 0 +invalid_line = None +lines_kept = 0 +total_lines = 0 + +# Read input file, skipping invalid lines, and perform computation that will result in a new column +code = ''' +for i, line in enumerate(fh): + total_lines += 1 + line = line.rstrip('\\r\\n') + if not line or line.startswith('#'): + skipped_lines += 1 + if not invalid_line: + first_invalid_line = i + 1 + invalid_line = line + continue + try: + %s + %s + new_val = %s + if round_result: + new_val = int(round(new_val)) + new_line = line + '\\t' + str(new_val) + "\\n" + out.write(new_line) + lines_kept += 1 + except Exception: + skipped_lines += 1 + if not invalid_line: + first_invalid_line = i + 1 + invalid_line = line +fh.close() +''' % (assign, wrap, expr) + +valid_expr = True +try: + exec(code) +except Exception as e: + if str(e).startswith('invalid syntax'): + valid_expr = False + sys.exit('Expression "%s" likely invalid. See tool tips, syntax and examples.' % expr) + else: + sys.exit(str(e)) +finally: + out.close() + +if valid_expr: + valid_lines = total_lines - skipped_lines + print('Creating column %d with expression %s' % (in_columns + 1, expr)) + if valid_lines > 0: + print('kept %4.2f%% of %d lines.' % (100.0 * lines_kept / valid_lines, + total_lines)) + else: + print('Possible invalid expression "%s" or non-existent column referenced. See tool tips, syntax and examples.' % expr) + if skipped_lines > 0: + print('Skipped %d invalid lines starting at line #%d: "%s"' % + (skipped_lines, first_invalid_line, invalid_line)) diff --git a/janis_core/tests/data/galaxy/wrappers/column_maker-02026300aa45/column_maker.xml b/janis_core/tests/data/galaxy/wrappers/column_maker-02026300aa45/column_maker.xml new file mode 100644 index 000000000..eccdfbc16 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/column_maker-02026300aa45/column_maker.xml @@ -0,0 +1,177 @@ + + an expression on every row + + python + numpy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Convert* + +----- + +**What it does** + +This tool computes an expression for every row of a dataset and appends the result as a new column (field). + +- Columns are referenced with **c** and a **number**. For example, **c1** refers to the first column of a tab-delimited file + +- **c3-c2** will add a length column to the dataset if **c2** and **c3** are start and end position + +----- + +**Example** + +If this is your input:: + + chr1 151077881 151077918 2 200 - + chr1 151081985 151082078 3 500 + + +computing "c4*c5" will produce:: + + chr1 151077881 151077918 2 200 - 400.0 + chr1 151081985 151082078 3 500 + 1500.0 + +if, at the same time, "Round result?" is set to **YES** results will look like this:: + + chr1 151077881 151077918 2 200 - 400 + chr1 151081985 151082078 3 500 + 1500 + +You can also use this tool to evaluate expressions. For example, computing "c3>=c2" for Input will result in the following:: + + chr1 151077881 151077918 2 200 - True + chr1 151081985 151082078 3 500 + True + +or computing "type(c2)==type('') for Input will return:: + + chr1 151077881 151077918 2 200 - False + chr1 151081985 151082078 3 500 + False + + +The following built-in functions are available:: + + abs | all | any | bin | bool | chr | ceil | cmp | complex + + divmod | exp | float | log | log10 | floor | hex | int | len | long + + max | min | oct | ord | pow | range | reversed + + round | sorted | sqrt | str | sum | type | unichr | unicode | + + ]]> + + diff --git a/janis_core/tests/data/galaxy/wrappers/cutadapt-135b80fb1ac2/cutadapt.xml b/janis_core/tests/data/galaxy/wrappers/cutadapt-135b80fb1ac2/cutadapt.xml new file mode 100644 index 000000000..8b5910562 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/cutadapt-135b80fb1ac2/cutadapt.xml @@ -0,0 +1,1378 @@ + + Remove adapter sequences from FASTQ/FASTA + + macros.xml + + + + + cutadapt --version + + report.txt +#end if + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + + + [0-9,]+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [A-Za-z0-9 =-_/+]+ + + + + + + + + + + + + [A-Za-z0-9 {}=_]+ + + +
+ + + + + + + + + + + + + +
+ + + + library['type'] != 'paired_collection' and 'multiple_output' not in output_selector + + + + + library['type'] == 'paired' and 'multiple_output' not in output_selector + + + + + library['type'] == 'paired_collection' and 'multiple_output' not in output_selector + + + + + + output_selector and 'report' in output_selector + + + output_selector and 'info_file' in output_selector + + + + output_selector and 'rest_file' in output_selector + + + + + output_selector and 'wildcard_file' in output_selector + + + + output_selector and 'untrimmed_file' in output_selector + + + + library['type'] == 'paired' or library['type'] == 'paired_collection' + output_selector and 'untrimmed_file' in output_selector + + + + + output_selector and 'too_short_file' in output_selector + + + + library['type'] == 'paired' or library['type'] == 'paired_collection' + output_selector and 'too_short_file' in output_selector + + + + output_selector and 'too_long_file' in output_selector + + + + library['type'] == 'paired' or library['type'] == 'paired_collection' + output_selector and 'too_long_file' in output_selector + + + + output_selector and 'json_stats' in output_selector + + + + output_selector and 'multiple_output' in output_selector + + + + + + + + +
+ + + + + + +
+ +
+ + + + +
+ + + + + + +
+ +
+ + + + + +
+ + + + + + +
+
+ + + + + + +
+ + + + + + + + + + +
+ + + + + + + + + +
+ + + + + + +
+
+ + + + + + +
+ + + + + + + + + + + + +
+ + + + +
+ + + + + + +
+ +
+ + + +
+ + + + + + +
+
+ +
+ + + + +
+ + + +
+ + + + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + +
+ + + + +
+ + + + + + +
+ + + + + + + + +
+ + + + + + +
+ + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+ + + + + +
+ + + + + + +
+
+ + + + + + + + + +
+ + + + + +
+ + + + + + +
+ + + +
+ + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+
+ + + + + + +
+
+ + + + + +
+ + + + + + +
+ + + + +
+ + + + + + + +
+ +
+ + + + +
+ + + + + + + +
+
+ +
+ + + + + +
+ + + + +
+ + + + + + +
+
+ +
+ +
+ + + +
+ + + + + + +
+
+ +
+ +
+ + + +
+ + + + + + +
+
+ +
+ +
+ + + +
+ + + + + + +
+
+ +
+ +
+ + + + +
+ + + + + + +
+
+ +
+ +
+ + + + + +
+ + + + + + +
+
+ + + + + + +
+
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + + +
+
+ + + + + + +
+
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + + +
+
+ + + + + + +
+
+ + + + + + + +
+ + + + + + + +
+ + + + +
+ + + + + + +
+
+ + + + + + +
+
+ + + + + + + +
+ + + + + + + +
+ + + + +
+ + + + + + +
+
+ + + + + +
+ +
+ + + +
+ + + + + + +
+
+ + + + + +
+ +
+ + + + +
+ + + + + + +
+
+ +
+ +
+ + + + +
+ + + + + + +
+
+ +
+ + + + +
+ + + + +
+ + + + + + +
+
+ + + + + + +
+
+ +
+ + + + + +
+ + + +
+ + + + + + +
+
+ +
+ + + + +
+ + + + + + + + + +
+ + + + + + + +
+
+ + + + + + + +
+ + + + +
+ + + + + + + + + + +
+ + + + + + +
+
+ + + + + + + +
+ + + + +
+
+ + + + ]]> + +
diff --git a/janis_core/tests/data/galaxy/wrappers/cutadapt-135b80fb1ac2/macros.xml b/janis_core/tests/data/galaxy/wrappers/cutadapt-135b80fb1ac2/macros.xml new file mode 100644 index 000000000..8296cd47f --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/cutadapt-135b80fb1ac2/macros.xml @@ -0,0 +1,393 @@ + + 4.0 + 1 + fastq.gz,fastq,fasta + + + topic_0632 + + + operation_0231 + + + + + cutadapt + + + + + 10.14806/ej.17.1.200 + + + + + cutadapt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [0-9,]+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/janis_core/tests/data/galaxy/wrappers/cutadapt-135b80fb1ac2/static/images/adapters.svg b/janis_core/tests/data/galaxy/wrappers/cutadapt-135b80fb1ac2/static/images/adapters.svg new file mode 100644 index 000000000..99cf4bdd9 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/cutadapt-135b80fb1ac2/static/images/adapters.svg @@ -0,0 +1,259 @@ + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + Removed sequence + Adapter + Read + + + + + + + + + + + + + + + 5' Adapter + 3' Adapter + Anchored 5' adapter + or + or + + diff --git a/janis_core/tests/data/galaxy/wrappers/cutadapt-135b80fb1ac2/tool-data/adapters.loc.sample b/janis_core/tests/data/galaxy/wrappers/cutadapt-135b80fb1ac2/tool-data/adapters.loc.sample new file mode 100644 index 000000000..2932fa527 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/cutadapt-135b80fb1ac2/tool-data/adapters.loc.sample @@ -0,0 +1,14 @@ +# +# Adapter/Linker sequences for FASTX-Clipper tool. +# Also used by cutadapt tool +# +# Format: +# Adapter Sequence Descriptive name +# +# Example: +# AAATTTGATAAGATA Our-Adapter +# +# Some adapters can be found here: +# http://seqanswers.com/forums/showthread.php?t=198 + +TGTAGGCC Dummy-Adapter (do not use me) diff --git a/janis_core/tests/data/galaxy/wrappers/cutadapt-135b80fb1ac2/tool_data_table_conf.xml.sample b/janis_core/tests/data/galaxy/wrappers/cutadapt-135b80fb1ac2/tool_data_table_conf.xml.sample new file mode 100644 index 000000000..7a1496480 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/cutadapt-135b80fb1ac2/tool_data_table_conf.xml.sample @@ -0,0 +1,7 @@ + + + + value, name + +
+
diff --git a/janis_core/tests/data/galaxy/wrappers/cutadapt-135b80fb1ac2/tool_data_table_conf.xml.test b/janis_core/tests/data/galaxy/wrappers/cutadapt-135b80fb1ac2/tool_data_table_conf.xml.test new file mode 100644 index 000000000..58f4da9e4 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/cutadapt-135b80fb1ac2/tool_data_table_conf.xml.test @@ -0,0 +1,6 @@ + + + value, name + +
+
diff --git a/janis_core/tests/data/galaxy/wrappers/cutadapt-660cffd8d92a/cutadapt.xml b/janis_core/tests/data/galaxy/wrappers/cutadapt-660cffd8d92a/cutadapt.xml new file mode 100644 index 000000000..8488cf129 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/cutadapt-660cffd8d92a/cutadapt.xml @@ -0,0 +1,579 @@ + + Remove adapter sequences from Fastq/Fasta + + macros.xml + + + cutadapt + + + cutadapt --version + + report.txt +#end if + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+ + +
+ + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + +
+ + +
+ + + + + + + +
+ +
+ + + + + + + (library['type'] == 'paired' or library['type'] == 'paired_collection') + + + + + (output_options['report'] is True) + + + + (output_options['info_file'] is True) + + + + (output_options['rest_file'] is True) + + + + + (output_options['wildcard_file'] is True) + + + + (output_options['untrimmed_file'] is True) + + + + (library['type'] == 'paired' or library['type'] == 'paired_collection') + (output_options['untrimmed_file'] is True) + + + + + (output_options['too_short_file'] is True) + + + + (library['type'] == 'paired' or library['type'] == 'paired_collection') + (output_options['too_short_file'] is True) + + + + + (output_options['too_long_file'] is True) + + + + (library['type'] == 'paired' or library['type'] == 'paired_collection') + (output_options['too_long_file'] is True) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + +@article{marcel_cutadapt_2011, + title = {Cutadapt removes adapter sequences from high-throughput sequencing reads}, + volume = {17}, + copyright = {Authors who publish with this journal agree to the following terms: Authors retain copyright and grant the journal right of first publication with the work simultaneously licensed under a Creative Commons Attribution License that allows others to share the work with an acknowledgement of the work's authorship and initial publication in this journal. Authors are able to enter into separate, additional contractual arrangements for the non-exclusive distribution of the journal's published version of the work (e.g., post it to an institutional repository or publish it in a book), with an acknowledgement of its initial publication in this journal. Authors are permitted and encouraged to post their work online (e.g., in institutional repositories or on their website) prior to and during the submission process, as it can lead to productive exchanges, as well as earlier and greater citation of published work (See The Effect of Open Access ).}, + url = {http://journal.embnet.org/index.php/embnetjournal/article/view/200}, + abstract = {When small RNA is sequenced on current sequencing machines, the resulting reads are usually longer than the RNA and therefore contain parts of the 3' adapter. That adapter must be found and removed error-tolerantly from each read before read mapping. Previous solutions are either hard to use or do not offer required features, in particular support for color space data. As an easy to use alternative, we developed the command-line tool cutadapt, which supports 454, Illumina and SOLiD (color space) data, offers two adapter trimming algorithms, and has other useful features. + +Cutadapt, including its MIT-licensed source code, is available for download at http://code.google.com/p/cutadapt/}, + number = {1}, + urldate = {2011-08-02}, + journal = {EMBnet.journal}, + author = {Marcel, Martin}, + year = {2011}, + note = {When small RNA is sequenced on current sequencing machines, the resulting reads are usually longer than the RNA and therefore contain parts of the 3' adapter. That adapter must be found and removed error-tolerantly from each read before read mapping. Previous solutions are either hard to use or do not offer required features, in particular support for color space data. As an easy to use alternative, we developed the command-line tool cutadapt, which supports 454, Illumina and SOLiD (color space) data, offers two adapter trimming algorithms, and has other useful features. Cutadapt, including its MIT-licensed source code, is available for download at http://code.google.com/p/cutadapt/}, + keywords = {Adapter removal;, fastq, MicroRNA, Sequencing, Small RNA, software}, + file = {Cutadapt removes adapter sequences from high-throughput sequencing reads | Martin | EMBnet.journal:/Users/lparsons/Library/Application Support/Firefox/Profiles/thd2t4je.default/zotero/storage/ZXZT4PSE/200.html:text/html} +} + + + +
diff --git a/janis_core/tests/data/galaxy/wrappers/cutadapt-660cffd8d92a/macros.xml b/janis_core/tests/data/galaxy/wrappers/cutadapt-660cffd8d92a/macros.xml new file mode 100644 index 000000000..d711797d2 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/cutadapt-660cffd8d92a/macros.xml @@ -0,0 +1,303 @@ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\ No newline at end of file diff --git a/janis_core/tests/data/galaxy/wrappers/cutadapt-660cffd8d92a/static/images/adapters.svg b/janis_core/tests/data/galaxy/wrappers/cutadapt-660cffd8d92a/static/images/adapters.svg new file mode 100644 index 000000000..99cf4bdd9 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/cutadapt-660cffd8d92a/static/images/adapters.svg @@ -0,0 +1,259 @@ + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + Removed sequence + Adapter + Read + + + + + + + + + + + + + + + 5' Adapter + 3' Adapter + Anchored 5' adapter + or + or + + diff --git a/janis_core/tests/data/galaxy/wrappers/cutadapt-660cffd8d92a/tool-data/adapters.loc.sample b/janis_core/tests/data/galaxy/wrappers/cutadapt-660cffd8d92a/tool-data/adapters.loc.sample new file mode 100644 index 000000000..2932fa527 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/cutadapt-660cffd8d92a/tool-data/adapters.loc.sample @@ -0,0 +1,14 @@ +# +# Adapter/Linker sequences for FASTX-Clipper tool. +# Also used by cutadapt tool +# +# Format: +# Adapter Sequence Descriptive name +# +# Example: +# AAATTTGATAAGATA Our-Adapter +# +# Some adapters can be found here: +# http://seqanswers.com/forums/showthread.php?t=198 + +TGTAGGCC Dummy-Adapter (do not use me) diff --git a/janis_core/tests/data/galaxy/wrappers/cutadapt-660cffd8d92a/tool_data_table_conf.xml.sample b/janis_core/tests/data/galaxy/wrappers/cutadapt-660cffd8d92a/tool_data_table_conf.xml.sample new file mode 100644 index 000000000..7a1496480 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/cutadapt-660cffd8d92a/tool_data_table_conf.xml.sample @@ -0,0 +1,7 @@ + + + + value, name + +
+
diff --git a/janis_core/tests/data/galaxy/wrappers/cutadapt-660cffd8d92a/tool_data_table_conf.xml.test b/janis_core/tests/data/galaxy/wrappers/cutadapt-660cffd8d92a/tool_data_table_conf.xml.test new file mode 100644 index 000000000..58f4da9e4 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/cutadapt-660cffd8d92a/tool_data_table_conf.xml.test @@ -0,0 +1,6 @@ + + + value, name + +
+
diff --git a/janis_core/tests/data/galaxy/wrappers/egsea-fba1660fb717/egsea.R b/janis_core/tests/data/galaxy/wrappers/egsea-fba1660fb717/egsea.R new file mode 100644 index 000000000..353d39a65 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/egsea-fba1660fb717/egsea.R @@ -0,0 +1,215 @@ +# Code based on (and inspired by) the Galaxy limma-voom/edgeR/DESeq2 wrappers + +options(show.error.messages = F, error = function() { + cat(geterrmessage(), file = stderr()); q("no", 1, F) +}) + +# we need that to not crash galaxy with an UTF8 error on German LC settings. +loc <- Sys.setlocale("LC_MESSAGES", "en_US.UTF-8") + +suppressPackageStartupMessages({ + library(EGSEA) + library(limma) + library(edgeR) + library(optparse) +}) + + +## Function Declaration + +sanitise_equation <- function(equation) { + equation <- gsub(" *[+] *", "+", equation) + equation <- gsub(" *[-] *", "-", equation) + equation <- gsub(" *[/] *", "/", equation) + equation <- gsub(" *[*] *", "*", equation) + equation <- gsub("^\\s+|\\s+$", "", equation) + return(equation) +} + +# Function to sanitise group information +sanitise_groups <- function(string) { + string <- gsub(" *[,] *", ",", string) + string <- gsub("^\\s+|\\s+$", "", string) + return(string) +} + +# Generating design information +paste_listname <- function(string) { + return(paste0("factors$", string)) +} + +## Input Processing + +option_list <- list( + make_option("--threads", default = 2, type = "integer", help = "Number of threads for egsea"), + make_option("--filesPath", type = "character", help = "JSON list object if multiple files input"), + make_option("--matrixPath", type = "character", help = "Path to count matrix"), + make_option("--factFile", type = "character", help = "Path to factor information file"), + make_option("--factInput", type = "character", help = "String containing factors if manually input"), + make_option("--contrastData", type = "character", help = "Contrasts of Interest (Groups to compare)"), + make_option("--genes", type = "character", help = "Path to genes file"), + make_option("--species", type = "character"), + make_option("--base_methods", type = "character", help = "Gene set testing methods"), + make_option("--msigdb", type = "character", help = "MSigDB Gene Set Collections"), + make_option("--keggdb", type = "character", help = "KEGG Pathways"), + make_option("--keggupdated", type = "logical", help = "Use updated KEGG"), + make_option("--gsdb", type = "character", help = "GeneSetDB Gene Sets"), + make_option("--display_top", type = "integer", help = "Number of top Gene Sets to display"), + make_option("--min_size", type = "integer", help = "Minimum Size of Gene Set"), + make_option("--fdr_cutoff", type = "double", help = "FDR cutoff"), + make_option("--combine_method", type = "character", help = "Method to use to combine the p-values"), + make_option("--sort_method", type = "character", help = "Method to sort the results"), + make_option("--rdaOpt", type = "character", help = "Output RData file") + ) + +parser <- OptionParser(usage = "%prog [options] file", option_list = option_list) +args <- parse_args(parser) + + +## Read in Files + +if (!is.null(args$filesPath)) { + # Process the separate count files (adapted from DESeq2 wrapper) + library("rjson") + parser <- newJSONParser() + parser$addData(args$filesPath) + factor_list <- parser$getObject() + factors <- sapply(factor_list, function(x) x[[1]]) + filenames_in <- unname(unlist(factor_list[[1]][[2]])) + sampletable <- data.frame(sample = basename(filenames_in), + filename = filenames_in, + row.names = filenames_in, + stringsAsFactors = FALSE) + for (factor in factor_list) { + factorname <- factor[[1]] + sampletable[[factorname]] <- character(nrow(sampletable)) + lvls <- sapply(factor[[2]], function(x) names(x)) + for (i in seq_along(factor[[2]])) { + files <- factor[[2]][[i]][[1]] + sampletable[files, factorname] <- lvls[i] + } + sampletable[[factorname]] <- factor(sampletable[[factorname]], levels = lvls) + } + rownames(sampletable) <- sampletable$sample + rem <- c("sample", "filename") + factors <- sampletable[, !(names(sampletable) %in% rem), drop = FALSE] + + #read in count files and create single table + countfiles <- lapply(sampletable$filename, function(x) { + read.delim(x, row.names = 1) + }) + counts <- do.call("cbind", countfiles) + +} else { + # Process the single count matrix + counts <- read.table(args$matrixPath, header = TRUE, sep = "\t", stringsAsFactors = FALSE, check.names = FALSE) + row.names(counts) <- counts[, 1] + counts <- counts[, -1] + countsrows <- nrow(counts) + + # Process factors + if (is.null(args$factInput)) { + factordata <- read.table(args$factFile, header = TRUE, sep = "\t", strip.white = TRUE, stringsAsFactors = TRUE) + # check samples names match + if (!any(factordata[, 1] %in% colnames(counts))) + stop("Sample IDs in factors file and count matrix don't match") + # order samples as in counts matrix + factordata <- factordata[match(colnames(counts), factordata[, 1]), ] + factors <- factordata[, -1, drop = FALSE] + } else { + factors <- unlist(strsplit(args$factInput, "|", fixed = TRUE)) + factordata <- list() + for (fact in factors) { + newfact <- unlist(strsplit(fact, split = "::")) + factordata <- rbind(factordata, newfact) + } # Factors have the form: FACT_NAME::LEVEL,LEVEL,LEVEL,LEVEL,... The first factor is the Primary Factor. + + # Set the row names to be the name of the factor and delete first row + row.names(factordata) <- factordata[, 1] + factordata <- factordata[, -1] + factordata <- sapply(factordata, sanitise_groups) + factordata <- sapply(factordata, strsplit, split = ",") + factordata <- sapply(factordata, make.names) + # Transform factor data into data frame of R factor objects + factors <- data.frame(factordata, stringsAsFactors = TRUE) + } +} + +# Create a DGEList object +counts <- DGEList(counts) + +# Set group to be the Primary Factor input +group <- factors[, 1, drop = FALSE] + +# Split up contrasts separated by comma into a vector then sanitise +contrast_data <- unlist(strsplit(args$contrastData, split = ",")) +contrast_data <- sanitise_equation(contrast_data) +contrast_data <- gsub(" ", ".", contrast_data, fixed = TRUE) + +# Creating design +row.names(factors) <- colnames(counts) +factor_list <- sapply(names(factors), paste_listname) + +formula <- "~0" +for (i in seq_along(factor_list)) { + formula <- paste(formula, factor_list[i], sep = "+") +} +formula <- formula(formula) + +design <- model.matrix(formula) + +for (i in seq_along(factor_list)) { + colnames(design) <- gsub(factor_list[i], "", colnames(design), fixed = TRUE) +} + +## Generate Contrasts information +contrasts <- makeContrasts(contrasts = contrast_data, levels = design) + + +## Add Gene Symbol information + +genes <- read.table(args$genes, sep = "\t", header = TRUE) + + +## Set Gene Set Testing Methods + +base_methods <- unlist(strsplit(args$base_methods, ",")) + + +## Set Gene Sets + +if (args$msigdb != "None") { + msigdb <- unlist(strsplit(args$msigdb, ",")) +} else { + msigdb <- "none" +} + +if (args$keggdb != "None") { + keggdb <- unlist(strsplit(args$keggdb, ",")) + kegg_all <- c("Metabolism" = "keggmet", "Signaling" = "keggsig", "Disease" = "keggdis") + kegg_exclude <- names(kegg_all[!(kegg_all %in% keggdb)]) +} else { + kegg_exclude <- "all" +} + +if (args$gsdb != "None") { + gsdb <- unlist(strsplit(args$gsdb, ",")) +} else { + gsdb <- "none" +} + +## Index gene sets + +gs_annots <- buildIdx(entrezIDs = rownames(counts), species = args$species, msigdb.gsets = msigdb, gsdb.gsets = gsdb, kegg.exclude = kegg_exclude, kegg.updated = args$keggupdated) + + +## Run egsea.cnt + +gsa <- egsea.cnt(counts = counts, group = group, design = design, contrasts = contrasts, gs.annots = gs_annots, symbolsMap = genes, baseGSEAs = base_methods, minSize = args$min_size, display.top = args$display_top, combineMethod = args$combine_method, sort.by = args$sort_method, report.dir = "./report_dir", fdr.cutoff = args$fdr_cutoff, num.threads = args$threads, report = TRUE) + + +## Output RData file + +if (!is.null(args$rdaOpt)) { + save.image(file = "EGSEA_analysis.RData") +} diff --git a/janis_core/tests/data/galaxy/wrappers/egsea-fba1660fb717/egsea.xml b/janis_core/tests/data/galaxy/wrappers/egsea-fba1660fb717/egsea.xml new file mode 100644 index 000000000..94f111644 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/egsea-fba1660fb717/egsea.xml @@ -0,0 +1,694 @@ + + easy and efficient ensemble gene set testing + + bioconductor-egsea + r-optparse + r-rjson + + r-statmod + + /dev/null | grep -v -i "WARNING: ")", optparse version" $(R --vanilla --slave -e "library(optparse); cat(sessionInfo()\$otherPkgs\$optparse\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", rjson version" $(R --vanilla --slave -e "library(rjson); cat(sessionInfo()\$otherPkgs\$rjson\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", statmod version" $(R --vanilla --slave -e "library(statmod); cat(sessionInfo()\$otherPkgs\$statmod\$Version)" 2> /dev/null | grep -v -i "WARNING: ") + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ^[\w]+$ + + + + ^[\w,]+$ + + + + + + + + + + + + ^[\w-]+$ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + +
+ +
+ + + + + + +
+ +
+ + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + value == True + +
+ + + + + + + + advanced['rscriptOpt'] is True + + + advanced['rdaOpt'] is True + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 10.1093/bioinformatics/btw623 + +
diff --git a/janis_core/tests/data/galaxy/wrappers/fastqc-3d0c7bdf12f5/rgFastQC.xml b/janis_core/tests/data/galaxy/wrappers/fastqc-3d0c7bdf12f5/rgFastQC.xml new file mode 100644 index 000000000..9734a4baf --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/fastqc-3d0c7bdf12f5/rgFastQC.xml @@ -0,0 +1,220 @@ + + Read Quality reports + + fastqc + + + fastqc + + + + + + + '' + --contaminants '${contaminants}' + #end if + + #if $adapters.dataset and str($adapters) > '' + --adapters '${adapters}' + #end if + + #if $limits.dataset and str($limits) > '' + --limits '${limits}' + #end if + --threads \${GALAXY_SLOTS:-2} + --quiet + --extract + #if $min_length: + --min_length $min_length + #end if + $nogroup + --kmers $kmers + -f '${format}' + '${input_file_sl}' + + && cp '${html_file.files_path}'/*/fastqc_data.txt output.txt + && cp '${html_file.files_path}'/*\.html output.html + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @unpublished{andrews_s, + author = {Andrews, S.}, + keywords = {bioinformatics, ngs, qc}, + priority = {2}, + title = {{FastQC A Quality Control tool for High Throughput Sequence Data}}, + url = {http://www.bioinformatics.babraham.ac.uk/projects/fastqc/} + } + + + diff --git a/janis_core/tests/data/galaxy/fastqc-5ec9f6bceaee/rgFastQC.xml b/janis_core/tests/data/galaxy/wrappers/fastqc-5ec9f6bceaee/rgFastQC.xml similarity index 100% rename from janis_core/tests/data/galaxy/fastqc-5ec9f6bceaee/rgFastQC.xml rename to janis_core/tests/data/galaxy/wrappers/fastqc-5ec9f6bceaee/rgFastQC.xml diff --git a/janis_core/tests/data/galaxy/wrappers/fastqc-9da02be9c6cc/rgFastQC.xml b/janis_core/tests/data/galaxy/wrappers/fastqc-9da02be9c6cc/rgFastQC.xml new file mode 100644 index 000000000..3e9e1da33 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/fastqc-9da02be9c6cc/rgFastQC.xml @@ -0,0 +1,168 @@ + + Read Quality reports + + fastqc + + '' + --contaminants '${contaminants}' + #end if + + #if $limits.dataset and str($limits) > '' + --limits '${limits}' + #end if + + --quiet + --extract + -f '${format}' + '${input_file_sl}' + + && cp '${html_file.files_path}'/*/fastqc_data.txt output.txt + && cp '${html_file.files_path}'/*\.html output.html + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +FastQC aims to provide a simple way to do some quality control checks on raw +sequence data coming from high throughput sequencing pipelines. +It provides a modular set of analyses which you can use to give a quick +impression of whether your data has any problems of +which you should be aware before doing any further analysis. + +The main functions of FastQC are: + +- Import of data from BAM, SAM or FastQ/FastQ.gz files (any variant), +- Providing a quick overview to tell you in which areas there may be problems +- Summary graphs and tables to quickly assess your data +- Export of results to an HTML based permanent report +- Offline operation to allow automated generation of reports without running the interactive application + +----- + +.. class:: infomark + +**FastQC** + +This is a Galaxy wrapper. It merely exposes the external package FastQC_ which is documented at FastQC_ +Kindly acknowledge it as well as this tool if you use it. +FastQC incorporates the Picard-tools_ libraries for SAM/BAM processing. + +The contaminants file parameter was borrowed from the independently developed +fastqcwrapper contributed to the Galaxy Community Tool Shed by J. Johnson. +Adaption to version 0.11.2 by T. McGowan. + +----- + +.. class:: infomark + +**Inputs and outputs** + +FastQC_ is the best place to look for documentation - it's very good. +A summary follows below for those in a tearing hurry. + +This wrapper will accept a Galaxy fastq, fastq.gz, sam or bam as the input read file to check. +It will also take an optional file containing a list of contaminants information, in the form of +a tab-delimited file with 2 columns, name and sequence. As another option the tool takes a custom +limits.txt file that allows setting the warning thresholds for the different modules and also specifies +which modules to include in the output. + +The tool produces a basic text and a HTML output file that contain all of the results, including the following: + +- Basic Statistics +- Per base sequence quality +- Per sequence quality scores +- Per base sequence content +- Per base GC content +- Per sequence GC content +- Per base N content +- Sequence Length Distribution +- Sequence Duplication Levels +- Overrepresented sequences +- Kmer Content + +All except Basic Statistics and Overrepresented sequences are plots. + .. _FastQC: http://www.bioinformatics.babraham.ac.uk/projects/fastqc/ + .. _Picard-tools: https://broadinstitute.github.io/picard/ + + + + @unpublished{andrews_s, + author = {Andrews, S.}, + keywords = {bioinformatics, ngs, qc}, + priority = {2}, + title = {{FastQC A Quality Control tool for High Throughput Sequence Data}}, + url = {http://www.bioinformatics.babraham.ac.uk/projects/fastqc/} + } + + + diff --git a/janis_core/tests/data/galaxy/wrappers/featurecounts-38b6d12edc68/README.rst b/janis_core/tests/data/galaxy/wrappers/featurecounts-38b6d12edc68/README.rst new file mode 100644 index 000000000..0c79b0582 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/featurecounts-38b6d12edc68/README.rst @@ -0,0 +1,25 @@ +FeatureCounts wrapper for Galaxy +================================ + +* http://bioinf.wehi.edu.au/featureCounts/ +* http://subread.sourceforge.net/ + +FeatureCounts as part of the SUBREAD package is "a highly efficient and +accurate read summarization program". + +Installation +------------ + +This wrapper requires Galaxy 16.04 to be fully functional because +of the following commits: + +* https://github.com/galaxyproject/galaxy/pull/961 +* https://github.com/galaxyproject/galaxy/pull/1714 + +License +------- + +**featureCounts**: + +GPL (>=3) + diff --git a/janis_core/tests/data/galaxy/wrappers/featurecounts-38b6d12edc68/featurecounts.xml b/janis_core/tests/data/galaxy/wrappers/featurecounts-38b6d12edc68/featurecounts.xml new file mode 100644 index 000000000..d84d19e90 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/featurecounts-38b6d12edc68/featurecounts.xml @@ -0,0 +1,629 @@ + + Measure gene expression in RNA-Seq experiments from SAM or BAM files + + 2.0.1 + 2 + + + subread + + + subread + samtools + coreutils + + + featureCounts -v 2>&1 | grep . + + + $extended_parameters.exon_exon_junction_read_counting_enabled.count_exon_exon_junction_reads + #if str($extended_parameters.exon_exon_junction_read_counting_enabled.count_exon_exon_junction_reads) == "-J": + #if $extended_parameters.exon_exon_junction_read_counting_enabled.genome: + -G '$extended_parameters.exon_exon_junction_read_counting_enabled.genome' + #end if + #end if + + $extended_parameters.long_reads + + $extended_parameters.by_read_group + + $extended_parameters.largest_overlap + --minOverlap $extended_parameters.min_overlap + --fracOverlap $extended_parameters.frac_overlap + --fracOverlapFeature $extended_parameters.frac_overlap_feature + $extended_parameters.read_reduction + #if $extended_parameters.R: + $extended_parameters.R + #end if + #if str($extended_parameters.read_extension_5p) != "0": + --readExtension5 $extended_parameters.read_extension_5p + #end if + + #if str($extended_parameters.read_extension_3p) != "0": + --readExtension3 $extended_parameters.read_extension_3p + #end if + + $pe_parameters.fragment_counting_enabled.fragment_counting + #if str($pe_parameters.fragment_counting_enabled.fragment_counting) == " -p": + $pe_parameters.fragment_counting_enabled.check_distance_enabled.check_distance + #if str($pe_parameters.fragment_counting_enabled.check_distance_enabled.check_distance) == " -P": + -d $pe_parameters.fragment_counting_enabled.check_distance_enabled.minimum_fragment_length + -D $pe_parameters.fragment_counting_enabled.check_distance_enabled.maximum_fragment_length + #end if + #end if + + $pe_parameters.only_both_ends + $pe_parameters.exclude_chimerics + + '${alignment}' + + ## Remove comment and add sample name to header + && grep -v "^#" "output" + | sed -e 's|${alignment}|${alignment.element_identifier}|g' + > body.txt + ## Set the right columns for the tabular formats + #if $format.value == "tabdel_medium": + && cut -f 1,7 body.txt > expression_matrix.txt + + ## Paste doesn't allow a non ordered list of columns: -f 1,7,8,6 will only return columns 1,7 and 8 + ## Thus the gene length column (last column) has to be added separately + && cut -f 6 body.txt > gene_lengths.txt + && paste expression_matrix.txt gene_lengths.txt > expression_matrix.txt.bak + && mv -f expression_matrix.txt.bak '${output_medium}' + #elif $format.value == "tabdel_short": + && cut -f 1,7 body.txt > '${output_short}' + #else: + && cp body.txt '${output_full}' + #end if + + #if str($include_feature_length_file) == "true": + && cut -f 1,6 body.txt > '${output_feature_lengths}' + #end if + + #if str($extended_parameters.exon_exon_junction_read_counting_enabled.count_exon_exon_junction_reads) == "-J": + && sed -e 's|${alignment}|${alignment.element_identifier}|g' 'output.jcounts' > '${output_jcounts}' + #end if + + #if $extended_parameters.R: + && samtools sort --no-PG -o '$output_bam' -@ \${GALAXY_SLOTS:-2} -T "\${TMPDIR:-.}" *.featureCounts.bam + #end if + && sed -e 's|${alignment}|${alignment.element_identifier}|g' 'output.summary' > '${output_summary}' + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + format == "tabdel_medium" + + + + + + + extended_parameters['R'] + + + + format == "tabdel_short" + + + + + + + format == "tabdel_full" + + + + + + + + + + + + + include_feature_length_file + + + + + + + extended_parameters['exon_exon_junction_read_counting_enabled']['count_exon_exon_junction_reads'] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + Requirements`. To create the files, the annotations were downloaded from NCBI RefSeq database and then adapted by merging overlapping exons from the same gene to form a set of disjoint exons for each gene. Genes with the same Entrez gene identifiers were also merged into one gene. See the `Subread User's Guide`_ for more information. Gene names can be obtained for these Entrez identifiers with the Galaxy **annotateMyIDs** tool. + +Output format +------------- +FeatureCounts produces a table containing counted reads, per gene, per row. Optionally the last column can be set to be the effective gene-length. These tables are compatible with the DESeq2, edgeR and limma-voom Galaxy wrappers by IUC. + +.. _Subread: http://subread.sourceforge.net/ +.. _`Subread User's Guide`: https://bioconductor.org/packages/release/bioc/vignettes/Rsubread/inst/doc/SubreadUsersGuide.pdf +.. _`Subread package`: https://sourceforge.net/projects/subread/files/ + ]]> + + 10.1093/bioinformatics/btt656 + +
diff --git a/janis_core/tests/data/galaxy/wrappers/featurecounts-38b6d12edc68/tool-data/featurecounts_anno.loc.sample b/janis_core/tests/data/galaxy/wrappers/featurecounts-38b6d12edc68/tool-data/featurecounts_anno.loc.sample new file mode 100644 index 000000000..5e0380d46 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/featurecounts-38b6d12edc68/tool-data/featurecounts_anno.loc.sample @@ -0,0 +1,11 @@ +# This is a file distributed with featureCounts that enables use of featureCounts built-in RefSeq annotation. +# +# This .loc file syntax is 2 tab-separated columns: +# +# +# + +hg38 hg38 +hg19 hg19 +mm10 mm10 +mm9 mm9 diff --git a/janis_core/tests/data/galaxy/wrappers/featurecounts-38b6d12edc68/tool-data/gene_sets.loc.sample b/janis_core/tests/data/galaxy/wrappers/featurecounts-38b6d12edc68/tool-data/gene_sets.loc.sample new file mode 100644 index 000000000..323f7cfe3 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/featurecounts-38b6d12edc68/tool-data/gene_sets.loc.sample @@ -0,0 +1,14 @@ +# This is a sample file distributed with featureCounts that enables it and other# tools to use gene/exon annotations in the GFF/GTF format. +# +# The gene_sets.loc file syntax is: +# +# +# Please ensure that the above fields are tab separated. +# +# In case you have TWO or MORE providers PER dbkey, the one mentioned +# first in the file, should have the "default" priority. +# +#Example: +# +#Homo_sapiens.GRCh37.74 hg19 GRCh37 (hg19) annotation from Ensembl, release 74 /depot/data2/galaxy/hg19/gene_sets/Homo_sapiens.GRCh37.74.gtf +#Homo_sapiens.NCBI36.54 hg18 hg18 annotation from Ensembl, release 54 /depot/data2/galaxy/hg18/gene_sets/Homo_sapiens.NCBI36.54.gtf diff --git a/janis_core/tests/data/galaxy/wrappers/featurecounts-38b6d12edc68/tool_data_table_conf.xml.sample b/janis_core/tests/data/galaxy/wrappers/featurecounts-38b6d12edc68/tool_data_table_conf.xml.sample new file mode 100644 index 000000000..c599ae9d2 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/featurecounts-38b6d12edc68/tool_data_table_conf.xml.sample @@ -0,0 +1,12 @@ + + + + value, dbkey, name, path + +
+ + + value, dbkey + +
+
diff --git a/janis_core/tests/data/galaxy/wrappers/featurecounts-38b6d12edc68/tool_data_table_conf.xml.test b/janis_core/tests/data/galaxy/wrappers/featurecounts-38b6d12edc68/tool_data_table_conf.xml.test new file mode 100644 index 000000000..1bb75fbaa --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/featurecounts-38b6d12edc68/tool_data_table_conf.xml.test @@ -0,0 +1,10 @@ + + + value, dbkey, name, path + +
+ + value, dbkey + +
+
diff --git a/janis_core/tests/data/galaxy/wrappers/featurecounts-6f66ae7c5f7a/README.rst b/janis_core/tests/data/galaxy/wrappers/featurecounts-6f66ae7c5f7a/README.rst new file mode 100644 index 000000000..0c79b0582 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/featurecounts-6f66ae7c5f7a/README.rst @@ -0,0 +1,25 @@ +FeatureCounts wrapper for Galaxy +================================ + +* http://bioinf.wehi.edu.au/featureCounts/ +* http://subread.sourceforge.net/ + +FeatureCounts as part of the SUBREAD package is "a highly efficient and +accurate read summarization program". + +Installation +------------ + +This wrapper requires Galaxy 16.04 to be fully functional because +of the following commits: + +* https://github.com/galaxyproject/galaxy/pull/961 +* https://github.com/galaxyproject/galaxy/pull/1714 + +License +------- + +**featureCounts**: + +GPL (>=3) + diff --git a/janis_core/tests/data/galaxy/wrappers/featurecounts-6f66ae7c5f7a/featurecounts.xml b/janis_core/tests/data/galaxy/wrappers/featurecounts-6f66ae7c5f7a/featurecounts.xml new file mode 100644 index 000000000..647fb093c --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/featurecounts-6f66ae7c5f7a/featurecounts.xml @@ -0,0 +1,640 @@ + + Measure gene expression in RNA-Seq experiments from SAM or BAM files + + 2.0.3 + 1 + + + + + + + + + featurecounts + + + subread + samtools + + + featureCounts -v 2>&1 | grep . + body.txt + ## Set the right columns for the tabular formats + #if $format.value == "tabdel_medium": + && cut -f 1,7 body.txt > expression_matrix.txt + + ## Paste doesn't allow a non ordered list of columns: -f 1,7,8,6 will only return columns 1,7 and 8 + ## Thus the gene length column (last column) has to be added separately + && cut -f 6 body.txt > gene_lengths.txt + && paste expression_matrix.txt gene_lengths.txt > expression_matrix.txt.bak + && mv -f expression_matrix.txt.bak '${output_medium}' + #elif $format.value == "tabdel_short": + && cut -f 1,7 body.txt > '${output_short}' + #else: + && cp body.txt '${output_full}' + #end if + + #if str($include_feature_length_file) == "true": + && cut -f 1,6 body.txt > '${output_feature_lengths}' + #end if + + #if str($extended_parameters.exon_exon_junction_read_counting_enabled.count_exon_exon_junction_reads) == "-J": + && sed -e 's|${alignment}|${alignment.element_identifier}|g' 'output.jcounts' > '${output_jcounts}' + #end if + + #if $extended_parameters.R: + && samtools sort --no-PG -o '$output_bam' -@ \${GALAXY_SLOTS:-2} -T "\${TMPDIR:-.}" *.featureCounts.bam + #end if + && sed -e 's|${alignment}|${alignment.element_identifier}|g' 'output.summary' > '${output_summary}' + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + format == "tabdel_medium" + + + + + + + extended_parameters['R'] + + + + format == "tabdel_short" + + + + + + + format == "tabdel_full" + + + + + + + + + + + + + include_feature_length_file + + + + + + + extended_parameters['exon_exon_junction_read_counting_enabled']['count_exon_exon_junction_reads'] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + +
+ + + + + + + + +
+ +
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + Requirements`. To create the files, the annotations were downloaded from NCBI RefSeq database and then adapted by merging overlapping exons from the same gene to form a set of disjoint exons for each gene. Genes with the same Entrez gene identifiers were also merged into one gene. See the `Subread User's Guide`_ for more information. Gene names can be obtained for these Entrez identifiers with the Galaxy **annotateMyIDs** tool. + +Output format +------------- +FeatureCounts produces a table containing counted reads, per gene, per row. Optionally the last column can be set to be the effective gene-length. These tables are compatible with the DESeq2, edgeR and limma-voom Galaxy wrappers by IUC. + +.. _Subread: http://subread.sourceforge.net/ +.. _`Subread User's Guide`: https://bioconductor.org/packages/release/bioc/vignettes/Rsubread/inst/doc/SubreadUsersGuide.pdf +.. _`Subread package`: https://sourceforge.net/projects/subread/files/ + ]]> + + 10.1093/bioinformatics/btt656 + +
+ diff --git a/janis_core/tests/data/galaxy/wrappers/featurecounts-6f66ae7c5f7a/tool-data/featurecounts_anno.loc.sample b/janis_core/tests/data/galaxy/wrappers/featurecounts-6f66ae7c5f7a/tool-data/featurecounts_anno.loc.sample new file mode 100644 index 000000000..5e0380d46 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/featurecounts-6f66ae7c5f7a/tool-data/featurecounts_anno.loc.sample @@ -0,0 +1,11 @@ +# This is a file distributed with featureCounts that enables use of featureCounts built-in RefSeq annotation. +# +# This .loc file syntax is 2 tab-separated columns: +# +# +# + +hg38 hg38 +hg19 hg19 +mm10 mm10 +mm9 mm9 diff --git a/janis_core/tests/data/galaxy/wrappers/featurecounts-6f66ae7c5f7a/tool-data/gene_sets.loc.sample b/janis_core/tests/data/galaxy/wrappers/featurecounts-6f66ae7c5f7a/tool-data/gene_sets.loc.sample new file mode 100644 index 000000000..323f7cfe3 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/featurecounts-6f66ae7c5f7a/tool-data/gene_sets.loc.sample @@ -0,0 +1,14 @@ +# This is a sample file distributed with featureCounts that enables it and other# tools to use gene/exon annotations in the GFF/GTF format. +# +# The gene_sets.loc file syntax is: +# +# +# Please ensure that the above fields are tab separated. +# +# In case you have TWO or MORE providers PER dbkey, the one mentioned +# first in the file, should have the "default" priority. +# +#Example: +# +#Homo_sapiens.GRCh37.74 hg19 GRCh37 (hg19) annotation from Ensembl, release 74 /depot/data2/galaxy/hg19/gene_sets/Homo_sapiens.GRCh37.74.gtf +#Homo_sapiens.NCBI36.54 hg18 hg18 annotation from Ensembl, release 54 /depot/data2/galaxy/hg18/gene_sets/Homo_sapiens.NCBI36.54.gtf diff --git a/janis_core/tests/data/galaxy/wrappers/featurecounts-6f66ae7c5f7a/tool_data_table_conf.xml.sample b/janis_core/tests/data/galaxy/wrappers/featurecounts-6f66ae7c5f7a/tool_data_table_conf.xml.sample new file mode 100644 index 000000000..c599ae9d2 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/featurecounts-6f66ae7c5f7a/tool_data_table_conf.xml.sample @@ -0,0 +1,12 @@ + + + + value, dbkey, name, path + +
+ + + value, dbkey + +
+
diff --git a/janis_core/tests/data/galaxy/wrappers/featurecounts-6f66ae7c5f7a/tool_data_table_conf.xml.test b/janis_core/tests/data/galaxy/wrappers/featurecounts-6f66ae7c5f7a/tool_data_table_conf.xml.test new file mode 100644 index 000000000..1bb75fbaa --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/featurecounts-6f66ae7c5f7a/tool_data_table_conf.xml.test @@ -0,0 +1,10 @@ + + + value, dbkey, name, path + +
+ + value, dbkey + +
+
diff --git a/janis_core/tests/data/galaxy/wrappers/fgsea-17eb1e0d711f/fgsea.R b/janis_core/tests/data/galaxy/wrappers/fgsea-17eb1e0d711f/fgsea.R new file mode 100644 index 000000000..cf5bc3ac3 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/fgsea-17eb1e0d711f/fgsea.R @@ -0,0 +1,90 @@ +options( show.error.messages=F, error = function () { cat( geterrmessage(), file=stderr() ); q( "no", 1, F ) } ) + +# we need that to not crash galaxy with an UTF8 error on German LC settings. +loc <- Sys.setlocale("LC_MESSAGES", "en_US.UTF-8") + +suppressPackageStartupMessages({ + library(fgsea) + library(ggplot2) + library(optparse) +}) + +option_list <- list( + make_option(c("-rnk_file", "--rnk_file"), type="character", help="Path to ranked genes file"), + make_option(c("-header", "--header"), type="logical", help = "Does ranked genes file have a header"), + make_option(c("-sets_file", "--sets_file"), type="character", help = "Path to gene sets file"), + make_option(c("-gmt", "--gmt"), type="logical", help = "Is the sets file in GMT format"), + make_option(c("-out_tab","--out_tab"), type="character", help="Path to output file"), + make_option(c("-min_size", "--min_size"), type="integer", help="Minimal size of a gene set to test. All pathways below the threshold are excluded."), + make_option(c("-max_size", "--max_size"), type="integer", help="Maximal size of a gene set to test. All pathways above the threshold are excluded."), + make_option(c("-n_perm", "--n_perm"), type="integer", help="Number of permutations to do. Minimial possible nominal p-value is about 1/nperm"), + make_option(c("-rda_opt", "--rda_opt"), type="logical", help="Output RData file"), + make_option(c("-plot_opt", "--plot_opt"), type="logical", help="Output plot"), + make_option(c("-top_num", "--top_num"), type="integer", help="Top number of pathways to plot") +) + +parser <- OptionParser(usage = "%prog [options] file", option_list=option_list) +args = parse_args(parser) + +# Vars: +rnk_file = args$rnk_file +if (args$header) { + header = TRUE +} else { + header = FALSE +} +sets_file = args$sets_file +gmt = args$gmt +out_tab = args$out_tab +min_size = args$min_size +max_size = args$max_size +n_perm = args$n_perm +rda_opt = args$rda_opt +plot_opt = args$plot_opt +top_num = args$top_num + +## Basically using the steps from the fgsea vignette +rankTab <- read.table(rnk_file, header=header, colClasses = c("character", "numeric")) + +ranks <-rankTab[,2] +names(ranks) <- rankTab[,1] + +if (gmt) { + pathways <- gmtPathways(sets_file) +} else { + pathways <- load(sets_file) + pathways <- get(pathways) +} + +# need to set seed for reproducibility https://github.com/ctlab/fgsea/issues/12 +set.seed(42) +fgseaRes <- fgsea(pathways, ranks, minSize=min_size, maxSize=max_size, nperm=n_perm) +fgseaRes <- fgseaRes[order(pval), ] +# Convert leadingEdge column from list to character to output +fgseaRes$leadingEdge <- sapply(fgseaRes$leadingEdge, toString) + +write.table(fgseaRes, out_tab, sep="\t", row.names=FALSE, quote=FALSE) + +if (plot_opt) { + pdf("fgsea_plots.pdf", width=8) + + topPathways <- head(fgseaRes, n=top_num) + topPathways <- topPathways$pathway + + ## Make summary table plot for top pathways + plotGseaTable(pathways[topPathways], ranks, fgseaRes, gseaParam = 0.5, + colwidths = c(5.3,3,0.7, 0.9, 0.9)) + + # Make enrichment plots for top pathways + for (i in topPathways) { + p <- plotEnrichment(pathways[[i]], ranks) + labs(title=i) + print(p) + } + + dev.off() +} + +## Output RData file +if (rda_opt) { + save.image(file = "fgsea_analysis.RData") +} \ No newline at end of file diff --git a/janis_core/tests/data/galaxy/wrappers/fgsea-17eb1e0d711f/fgsea.xml b/janis_core/tests/data/galaxy/wrappers/fgsea-17eb1e0d711f/fgsea.xml new file mode 100755 index 000000000..53ebf2d4d --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/fgsea-17eb1e0d711f/fgsea.xml @@ -0,0 +1,138 @@ + + - fast preranked gene set enrichment analysis + + bioconductor-fgsea + r-optparse + + /dev/null | grep -v -i "WARNING: ")", optparse version" $(R --vanilla --slave -e "library(optparse); cat(sessionInfo()\$otherPkgs\$optparse\$Version)" 2> /dev/null | grep -v -i "WARNING: ") + ]]> + + + + + + + + + + + + + + + + + plot_opt is True + + + rda_opt is True + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 10.1101/060012 + + \ No newline at end of file diff --git a/janis_core/tests/data/galaxy/wrappers/goseq-602de62d995b/goseq.r b/janis_core/tests/data/galaxy/wrappers/goseq-602de62d995b/goseq.r new file mode 100644 index 000000000..1f32ea0a2 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/goseq-602de62d995b/goseq.r @@ -0,0 +1,211 @@ +options(show.error.messages = FALSE, error = function() { + cat(geterrmessage(), file = stderr()) + q("no", 1, FALSE) +}) + +# we need that to not crash galaxy with an UTF8 error on German LC settings. +loc <- Sys.setlocale("LC_MESSAGES", "en_US.UTF-8") + +suppressPackageStartupMessages({ + library("goseq") + library("optparse") + library("dplyr") + library("ggplot2") +}) + +sessionInfo() + +option_list <- list( + make_option("--dge_file", type = "character", help = "Path to file with differential gene expression result"), + make_option("--length_file", type = "character", default = NULL, help = "Path to tabular file mapping gene id to length"), + make_option("--genome", type = "character", default = NULL, help = "Genome [used for looking up correct gene length]"), + make_option("--gene_id", type = "character", default = NULL, help = "Gene ID format of genes in DGE file"), + make_option("--fetch_cats", type = "character", default = NULL, help = "Categories to get can include one or more of GO:CC, GO:BP, GO:MF, KEGG"), + make_option("--category_file", type = "character", default = NULL, help = "Path to tabular file with gene_id <-> category mapping"), + make_option("--wallenius_tab", type = "character", default = NULL, help = "Path to output file with P-values estimated using wallenius distribution"), + make_option("--nobias_tab", type = "character", default = NULL, help = "Path to output file with P-values estimated using hypergeometric distribution and no correction for gene length bias"), + make_option("--repcnt", type = "integer", default = 0, help = "Number of repeats for sampling"), + make_option("--sampling_tab", type = "character", default = NULL, help = "Path to output file with P-values estimated using sampling distribution"), + make_option("--p_adj_method", type = "character", default = "BH", help = "Multiple hypothesis testing correction method to use"), + make_option("--use_genes_without_cat", type = "logical", default = FALSE, help = "A large number of gene may have no GO term annotated. If this option is set to FALSE, genes without category will be ignored in the calculation of p-values(default behaviour). If TRUE these genes will count towards the total number of genes outside the tested category (default behaviour prior to version 1.15.2)."), + make_option("--top_plot", type = "character", default = NULL, help = "Path to output PDF with top10 over-rep GO terms"), + make_option("--make_plots", default = FALSE, type = "logical", help = "Produce diagnostic plots?"), + make_option("--length_bias_plot", type = "character", default = NULL, help = "Path to length-bias plot"), + make_option("--sample_vs_wallenius_plot", type = "character", default = NULL, help = "Path to plot comparing sampling with wallenius p-values"), + make_option("--rdata", type = "character", default = NULL, help = "Path to RData output file"), + make_option("--categories_genes_out_fp", type = "character", default = NULL, help = "Path to file with categories (GO/KEGG terms) and associated DE genes") +) + +parser <- OptionParser(usage = "%prog [options] file", option_list = option_list) +args <- parse_args(parser) + +if (!is.null(args$fetch_cats)) { + fetch_cats <- unlist(strsplit(args$fetch_cats, ",")) +} else { + fetch_cats <- "Custom" +} + +# format DE genes into named vector suitable for goseq +# check if header is present +first_line <- read.delim(args$dge_file, header = FALSE, nrow = 1) +second_col <- toupper(first_line[, ncol(first_line)]) +if (second_col == TRUE || second_col == FALSE) { + dge_table <- read.delim(args$dge_file, header = FALSE, sep = "\t") +} else { + dge_table <- read.delim(args$dge_file, header = TRUE, sep = "\t") +} +genes <- as.numeric(as.logical(dge_table[, ncol(dge_table)])) # Last column contains TRUE/FALSE +names(genes) <- dge_table[, 1] # Assuming first column contains gene names + +# gene lengths, assuming last column +first_line <- read.delim(args$length_file, header = FALSE, nrow = 1) +if (is.numeric(first_line[, ncol(first_line)])) { + length_table <- read.delim(args$length_file, header = FALSE, sep = "\t", check.names = FALSE) +} else { + length_table <- read.delim(args$length_file, header = TRUE, sep = "\t", check.names = FALSE) +} +row.names(length_table) <- length_table[, 1] +# get vector of gene length in same order as the genes +gene_lengths <- length_table[names(genes), ][, ncol(length_table)] + +# Estimate PWF +if (args$make_plots) { + pdf(args$length_bias_plot) +} +pwf <- nullp(genes, genome = args$genome, id = args$gene_id, bias.data = gene_lengths, plot.fit = args$make_plots) +if (args$make_plots) { + dev.off() +} + +# Fetch GO annotations if category_file hasn't been supplied: +if (is.null(args$category_file)) { + go_map <- getgo(genes = names(genes), genome = args$genome, id = args$gene_id, fetch.cats = fetch_cats) +} else { + # check for header: first entry in first column must be present in genes, else it's a header + first_line <- read.delim(args$category_file, header = FALSE, nrow = 1) + if (first_line[, 1] %in% names(genes)) { + go_map <- read.delim(args$category_file, header = FALSE) + } else { + go_map <- read.delim(args$category_file, header = TRUE) + } +} + +results <- list() + +run_goseq <- function(pwf, genome, gene_id, goseq_method, use_genes_without_cat, repcnt, gene2cat, p_adj_method, out_fp) { + out <- goseq(pwf, genome = genome, id = gene_id, method = goseq_method, use_genes_without_cat = use_genes_without_cat, gene2cat = go_map) + out$p_adjust_over_represented <- p.adjust(out$over_represented_pvalue, method = p_adj_method) + out$p_adjust_under_represented <- p.adjust(out$under_represented_pvalue, method = p_adj_method) + write.table(out, out_fp, sep = "\t", row.names = FALSE, quote = FALSE) + return(out) +} + +# wallenius approximation of p-values +if (!is.null(args$wallenius_tab)) { + results[["Wallenius"]] <- run_goseq( + pwf, + genome = args$genome, + gene_id = args$gene_id, + goseq_method = "Wallenius", + use_genes_without_cat = args$use_genes_without_cat, + repcnt = args$repcnt, + gene2cat = go_map, + p_adj_method = args$p_adj_method, + out_fp = args$wallenius_tab + ) +} + + +# hypergeometric (no length bias correction) +if (!is.null(args$nobias_tab)) { + results[["Hypergeometric"]] <- run_goseq( + pwf, + genome = args$genome, + gene_id = args$gene_id, + goseq_method = "Hypergeometric", + use_genes_without_cat = args$use_genes_without_cat, + repcnt = args$repcnt, + gene2cat = go_map, + p_adj_method = args$p_adj_method, + out_fp = args$nobias_tab + ) +} + +# Sampling distribution +if (args$repcnt > 0) { + results[["Sampling"]] <- run_goseq( + pwf, + genome = args$genome, + gene_id = args$gene_id, + goseq_method = "Sampling", + use_genes_without_cat = args$use_genes_without_cat, + repcnt = args$repcnt, + gene2cat = go_map, + p_adj_method = args$p_adj_method, + out_fp = args$sampling_tab + ) + + # Compare sampling with wallenius + if (args$make_plots && !is.null(args$wallenius_tab)) { + pdf(args$sample_vs_wallenius_plot) + plot(log10(results[["Wallenius"]][, 2]), + log10(results[["Sampling"]][match(results[["Sampling"]][, 1], results[["Wallenius"]][, 1]), 2]), + xlab = "log10(Wallenius p-values)", + ylab = "log10(Sampling p-values)", + xlim = c(-3, 0) + ) + abline(0, 1, col = 3, lty = 2) + dev.off() + } +} + +# Plot the top 10 +if (!is.null(args$top_plot)) { + cats_title <- gsub("GO:", "", args$fetch_cats) + # modified from https://bioinformatics-core-shared-training.github.io/cruk-summer-school-2018/RNASeq2018/html/06_Gene_set_testing.nb.html + pdf(args$top_plot) + for (m in names(results)) { + p <- results[[m]] %>% + top_n(10, wt = -over_represented_pvalue) %>% + mutate(hitsPerc = numDEInCat * 100 / numInCat) %>% + ggplot(aes( + x = hitsPerc, + y = reorder(substr(term, 1, 40), -over_represented_pvalue), # only use 1st 40 chars of terms otherwise squashes plot + colour = p_adjust_over_represented, + size = numDEInCat + )) + + geom_point() + + expand_limits(x = 0) + + labs(x = "% DE in category", y = "Category", colour = "Adj P value", size = "Count", title = paste("Top over-represented categories in", cats_title), subtitle = paste(m, " method")) + + theme(plot.title = element_text(hjust = 0.5), plot.subtitle = element_text(hjust = 0.5)) + print(p) + } + dev.off() +} + +# Extract the genes to the categories (GO/KEGG terms) +if (!is.null(args$categories_genes_out_fp)) { + cat2gene <- split(rep(names(go_map), sapply(go_map, length)), unlist(go_map, use.names = FALSE)) + # extract categories (GO/KEGG terms) for all results + categories <- c() + for (m in names(results)) { + categories <- c(categories, results[[m]]$category) + } + categories <- unique(categories) + # extract the DE genes for each catge term + categories_genes <- data.frame(category = categories, de_genes = rep("", length(categories))) + categories_genes$de_genes <- as.character(categories_genes$de_genes) + rownames(categories_genes) <- categories + for (cat in categories) { + tmp <- pwf[cat2gene[[cat]], ] + tmp <- rownames(tmp[tmp$DEgenes > 0, ]) + categories_genes[cat, "de_genes"] <- paste(tmp, collapse = ",") + } + # output + write.table(categories_genes, args$categories_genes_out_fp, sep = "\t", row.names = FALSE, quote = FALSE) +} + +# Output RData file +if (!is.null(args$rdata)) { + save.image(file = args$rdata) +} diff --git a/janis_core/tests/data/galaxy/wrappers/goseq-602de62d995b/goseq.xml b/janis_core/tests/data/galaxy/wrappers/goseq-602de62d995b/goseq.xml new file mode 100644 index 000000000..997c9beae --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/goseq-602de62d995b/goseq.xml @@ -0,0 +1,529 @@ + + tests for overrepresented gene categories + + 1.50.0 + 0 + + + topic_3308 + + + operation_2436 + + + goseq + + + bioconductor-goseq + bioconductor-org.hs.eg.db + bioconductor-org.dm.eg.db + bioconductor-org.dr.eg.db + bioconductor-org.mm.eg.db + bioconductor-org.rn.eg.db + r-dplyr + r-ggplot2 + r-optparse + openssl + + + + + + + /dev/null | grep -v -i "WARNING: ")", optparse version" $(R --vanilla --slave -e "library(optparse); cat(sessionInfo()\$otherPkgs\$optparse\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", org.Hs.eg.db version" $(R --vanilla --slave -e "library(org.Hs.eg.db); cat(sessionInfo()\$otherPkgs\$org.Hs.eg.db\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", org.Dr.eg.db version" $(R --vanilla --slave -e "library(org.Dr.eg.db); cat(sessionInfo()\$otherPkgs\$org.Dr.eg.db\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", org.Dm.eg.db version" $(R --vanilla --slave -e "library(org.Dm.eg.db); cat(sessionInfo()\$otherPkgs\$org.Dm.eg.db\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", org.Mm.eg.db version" $(R --vanilla --slave -e "library(org.Mm.eg.db); cat(sessionInfo()\$otherPkgs\$org.Mm.eg.db\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", dplyr version" $(R --vanilla --slave -e "library(dplyr); cat(sessionInfo()\$otherPkgs\$dplyr\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", ggplot2 version" $(R --vanilla --slave -e "library(ggplot2); cat(sessionInfo()\$otherPkgs\$ggplot2\$Version)" 2> /dev/null | grep -v -i "WARNING: ") + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ +
+ + + + + + + + + +
+ +
+ + + + +
+
+ + + methods['wallenius'] + + + methods['repcnt'] != 0 + + + methods['hypergeometric'] + + + out['make_plots'] + + + methods['repcnt'] != 0 + methods['wallenius'] + out['make_plots'] + + + methods['wallenius'] + out['topgo_plot'] + + + out['cat_genes'] + + + out['rdata_out'] + + + + + + + + + + + +
+ + + +
+
+ + +
+
+ + + + +
+ + + + + + + +
+ + + + + + + + + + +
+ + + +
+
+ + +
+
+ + + + +
+ + + + + + + + + + + + +
+ + + + + + + + + + +
+ + + +
+
+ + +
+
+ + + + +
+ + + + + + +
+ + + + + + + + +
+ + + +
+
+ + +
+
+ + + + +
+ + +
+ + + + + + + + +
+ + + +
+
+ + +
+
+ + + + +
+ +
+ + + + + + + + +
+ + + +
+
+ + +
+
+ + + + +
+ + + +
+ + + + + + + + +
+ + + +
+
+ + +
+
+ + + + +
+ +
+
+ + + 10.1186/gb-2010-11-2-r14 + +
diff --git a/janis_core/tests/data/galaxy/wrappers/goseq-ef2ad746b589/goseq.r b/janis_core/tests/data/galaxy/wrappers/goseq-ef2ad746b589/goseq.r new file mode 100644 index 000000000..8222b0591 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/goseq-ef2ad746b589/goseq.r @@ -0,0 +1,211 @@ +options(show.error.messages = F, error = function() { + cat(geterrmessage(), file = stderr()) + q("no", 1, F) +}) + +# we need that to not crash galaxy with an UTF8 error on German LC settings. +loc <- Sys.setlocale("LC_MESSAGES", "en_US.UTF-8") + +suppressPackageStartupMessages({ + library("goseq") + library("optparse") + library("dplyr") + library("ggplot2") +}) + +sessionInfo() + +option_list <- list( + make_option("--dge_file", type = "character", help = "Path to file with differential gene expression result"), + make_option("--length_file", type = "character", default = NULL, help = "Path to tabular file mapping gene id to length"), + make_option("--genome", type = "character", default = NULL, help = "Genome [used for looking up correct gene length]"), + make_option("--gene_id", type = "character", default = NULL, help = "Gene ID format of genes in DGE file"), + make_option("--fetch_cats", type = "character", default = NULL, help = "Categories to get can include one or more of GO:CC, GO:BP, GO:MF, KEGG"), + make_option("--category_file", type = "character", default = NULL, help = "Path to tabular file with gene_id <-> category mapping"), + make_option("--wallenius_tab", type = "character", default = NULL, help = "Path to output file with P-values estimated using wallenius distribution"), + make_option("--nobias_tab", type = "character", default = NULL, help = "Path to output file with P-values estimated using hypergeometric distribution and no correction for gene length bias"), + make_option("--repcnt", type = "integer", default = 0, help = "Number of repeats for sampling"), + make_option("--sampling_tab", type = "character", default = NULL, help = "Path to output file with P-values estimated using sampling distribution"), + make_option("--p_adj_method", type = "character", default = "BH", help = "Multiple hypothesis testing correction method to use"), + make_option("--use_genes_without_cat", type = "logical", default = FALSE, help = "A large number of gene may have no GO term annotated. If this option is set to FALSE, genes without category will be ignored in the calculation of p-values(default behaviour). If TRUE these genes will count towards the total number of genes outside the tested category (default behaviour prior to version 1.15.2)."), + make_option("--top_plot", type = "character", default = NULL, help = "Path to output PDF with top10 over-rep GO terms"), + make_option("--make_plots", default = FALSE, type = "logical", help = "Produce diagnostic plots?"), + make_option("--length_bias_plot", type = "character", default = NULL, help = "Path to length-bias plot"), + make_option("--sample_vs_wallenius_plot", type = "character", default = NULL, help = "Path to plot comparing sampling with wallenius p-values"), + make_option("--rdata", type = "character", default = NULL, help = "Path to RData output file"), + make_option("--categories_genes_out_fp", type = "character", default = NULL, help = "Path to file with categories (GO/KEGG terms) and associated DE genes") +) + +parser <- OptionParser(usage = "%prog [options] file", option_list = option_list) +args <- parse_args(parser) + +if (!is.null(args$fetch_cats)) { + fetch_cats <- unlist(strsplit(args$fetch_cats, ",")) +} else { + fetch_cats <- "Custom" +} + +# format DE genes into named vector suitable for goseq +# check if header is present +first_line <- read.delim(args$dge_file, header = FALSE, nrow = 1) +second_col <- toupper(first_line[, ncol(first_line)]) +if (second_col == TRUE || second_col == FALSE) { + dge_table <- read.delim(args$dge_file, header = FALSE, sep = "\t") +} else { + dge_table <- read.delim(args$dge_file, header = TRUE, sep = "\t") +} +genes <- as.numeric(as.logical(dge_table[, ncol(dge_table)])) # Last column contains TRUE/FALSE +names(genes) <- dge_table[, 1] # Assuming first column contains gene names + +# gene lengths, assuming last column +first_line <- read.delim(args$length_file, header = FALSE, nrow = 1) +if (is.numeric(first_line[, ncol(first_line)])) { + length_table <- read.delim(args$length_file, header = FALSE, sep = "\t", check.names = FALSE) +} else { + length_table <- read.delim(args$length_file, header = TRUE, sep = "\t", check.names = FALSE) +} +row.names(length_table) <- length_table[, 1] +# get vector of gene length in same order as the genes +gene_lengths <- length_table[names(genes), ][, ncol(length_table)] + +# Estimate PWF +if (args$make_plots) { + pdf(args$length_bias_plot) +} +pwf <- nullp(genes, genome = args$genome, id = args$gene_id, bias.data = gene_lengths, plot.fit = args$make_plots) +if (args$make_plots) { + dev.off() +} + +# Fetch GO annotations if category_file hasn't been supplied: +if (is.null(args$category_file)) { + go_map <- getgo(genes = names(genes), genome = args$genome, id = args$gene_id, fetch.cats = fetch_cats) +} else { + # check for header: first entry in first column must be present in genes, else it's a header + first_line <- read.delim(args$category_file, header = FALSE, nrow = 1) + if (first_line[, 1] %in% names(genes)) { + go_map <- read.delim(args$category_file, header = FALSE) + } else { + go_map <- read.delim(args$category_file, header = TRUE) + } +} + +results <- list() + +run_goseq <- function(pwf, genome, gene_id, goseq_method, use_genes_without_cat, repcnt, gene2cat, p_adj_method, out_fp) { + out <- goseq(pwf, genome = genome, id = gene_id, method = goseq_method, use_genes_without_cat = use_genes_without_cat, gene2cat = go_map) + out$p_adjust_over_represented <- p.adjust(out$over_represented_pvalue, method = p_adj_method) + out$p_adjust_under_represented <- p.adjust(out$under_represented_pvalue, method = p_adj_method) + write.table(out, out_fp, sep = "\t", row.names = FALSE, quote = FALSE) + return(out) +} + +# wallenius approximation of p-values +if (!is.null(args$wallenius_tab)) { + results[["Wallenius"]] <- run_goseq( + pwf, + genome = args$genome, + gene_id = args$gene_id, + goseq_method = "Wallenius", + use_genes_without_cat = args$use_genes_without_cat, + repcnt = args$repcnt, + gene2cat = go_map, + p_adj_method = args$p_adj_method, + out_fp = args$wallenius_tab + ) +} + + +# hypergeometric (no length bias correction) +if (!is.null(args$nobias_tab)) { + results[["Hypergeometric"]] <- run_goseq( + pwf, + genome = args$genome, + gene_id = args$gene_id, + goseq_method = "Hypergeometric", + use_genes_without_cat = args$use_genes_without_cat, + repcnt = args$repcnt, + gene2cat = go_map, + p_adj_method = args$p_adj_method, + out_fp = args$nobias_tab + ) +} + +# Sampling distribution +if (args$repcnt > 0) { + results[["Sampling"]] <- run_goseq( + pwf, + genome = args$genome, + gene_id = args$gene_id, + goseq_method = "Sampling", + use_genes_without_cat = args$use_genes_without_cat, + repcnt = args$repcnt, + gene2cat = go_map, + p_adj_method = args$p_adj_method, + out_fp = args$sampling_tab + ) + + # Compare sampling with wallenius + if (args$make_plots & !is.null(args$wallenius_tab)) { + pdf(args$sample_vs_wallenius_plot) + plot(log10(results[["Wallenius"]][, 2]), + log10(results[["Sampling"]][match(results[["Sampling"]][, 1], results[["Wallenius"]][, 1]), 2]), + xlab = "log10(Wallenius p-values)", + ylab = "log10(Sampling p-values)", + xlim = c(-3, 0) + ) + abline(0, 1, col = 3, lty = 2) + dev.off() + } +} + +# Plot the top 10 +if (!is.null(args$top_plot)) { + cats_title <- gsub("GO:", "", args$fetch_cats) + # modified from https://bioinformatics-core-shared-training.github.io/cruk-summer-school-2018/RNASeq2018/html/06_Gene_set_testing.nb.html + pdf(args$top_plot) + for (m in names(results)) { + p <- results[[m]] %>% + top_n(10, wt = -over_represented_pvalue) %>% + mutate(hitsPerc = numDEInCat * 100 / numInCat) %>% + ggplot(aes( + x = hitsPerc, + y = reorder(substr(term, 1, 40), -over_represented_pvalue), # only use 1st 40 chars of terms otherwise squashes plot + colour = p_adjust_over_represented, + size = numDEInCat + )) + + geom_point() + + expand_limits(x = 0) + + labs(x = "% DE in category", y = "Category", colour = "Adj P value", size = "Count", title = paste("Top over-represented categories in", cats_title), subtitle = paste(m, " method")) + + theme(plot.title = element_text(hjust = 0.5), plot.subtitle = element_text(hjust = 0.5)) + print(p) + } + dev.off() +} + +# Extract the genes to the categories (GO/KEGG terms) +if (!is.null(args$categories_genes_out_fp)) { + cat2gene <- split(rep(names(go_map), sapply(go_map, length)), unlist(go_map, use.names = FALSE)) + # extract categories (GO/KEGG terms) for all results + categories <- c() + for (m in names(results)) { + categories <- c(categories, results[[m]]$category) + } + categories <- unique(categories) + # extract the DE genes for each catge term + categories_genes <- data.frame(category = categories, de_genes = rep("", length(categories))) + categories_genes$de_genes <- as.character(categories_genes$de_genes) + rownames(categories_genes) <- categories + for (cat in categories) { + tmp <- pwf[cat2gene[[cat]], ] + tmp <- rownames(tmp[tmp$DEgenes > 0, ]) + categories_genes[cat, "de_genes"] <- paste(tmp, collapse = ",") + } + # output + write.table(categories_genes, args$categories_genes_out_fp, sep = "\t", row.names = FALSE, quote = FALSE) +} + +# Output RData file +if (!is.null(args$rdata)) { + save.image(file = args$rdata) +} diff --git a/janis_core/tests/data/galaxy/wrappers/goseq-ef2ad746b589/goseq.xml b/janis_core/tests/data/galaxy/wrappers/goseq-ef2ad746b589/goseq.xml new file mode 100644 index 000000000..adee2a953 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/goseq-ef2ad746b589/goseq.xml @@ -0,0 +1,526 @@ + + tests for overrepresented gene categories + + goseq + + + topic_3308 + + + operation_2436 + + + 1.44.0 + galaxy0 + + + bioconductor-goseq + bioconductor-org.hs.eg.db + bioconductor-org.dm.eg.db + bioconductor-org.dr.eg.db + bioconductor-org.mm.eg.db + r-dplyr + r-ggplot2 + r-optparse + + + + + + + /dev/null | grep -v -i "WARNING: ")", optparse version" $(R --vanilla --slave -e "library(optparse); cat(sessionInfo()\$otherPkgs\$optparse\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", org.Hs.eg.db version" $(R --vanilla --slave -e "library(org.Hs.eg.db); cat(sessionInfo()\$otherPkgs\$org.Hs.eg.db\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", org.Dr.eg.db version" $(R --vanilla --slave -e "library(org.Dr.eg.db); cat(sessionInfo()\$otherPkgs\$org.Dr.eg.db\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", org.Dm.eg.db version" $(R --vanilla --slave -e "library(org.Dm.eg.db); cat(sessionInfo()\$otherPkgs\$org.Dm.eg.db\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", org.Mm.eg.db version" $(R --vanilla --slave -e "library(org.Mm.eg.db); cat(sessionInfo()\$otherPkgs\$org.Mm.eg.db\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", dplyr version" $(R --vanilla --slave -e "library(dplyr); cat(sessionInfo()\$otherPkgs\$dplyr\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", ggplot2 version" $(R --vanilla --slave -e "library(ggplot2); cat(sessionInfo()\$otherPkgs\$ggplot2\$Version)" 2> /dev/null | grep -v -i "WARNING: ") + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ +
+ + + + + + + + + +
+ +
+ + + + +
+
+ + + methods['wallenius'] + + + methods['repcnt'] != 0 + + + methods['hypergeometric'] + + + out['make_plots'] + + + methods['repcnt'] != 0 + methods['wallenius'] + out['make_plots'] + + + methods['wallenius'] + out['topgo_plot'] + + + out['cat_genes'] + + + out['rdata_out'] + + + + + + + + + + + +
+ + + +
+
+ + +
+
+ + + + +
+ + + + + + + +
+ + + + + + + + + + +
+ + + +
+
+ + +
+
+ + + + +
+ + + + + + + + + + + + +
+ + + + + + + + + + +
+ + + +
+
+ + +
+
+ + + + +
+ + + + + + +
+ + + + + + + + +
+ + + +
+
+ + +
+
+ + + + +
+ + +
+ + + + + + + + +
+ + + +
+
+ + +
+
+ + + + +
+ +
+ + + + + + + + +
+ + + +
+
+ + +
+
+ + + + +
+ + + +
+ + + + + + + + +
+ + + +
+
+ + +
+
+ + + + +
+ +
+
+ + + 10.1186/gb-2010-11-2-r14 + +
\ No newline at end of file diff --git a/janis_core/tests/data/galaxy/hisat2-6c19daec423d/hisat2.xml b/janis_core/tests/data/galaxy/wrappers/hisat2-6c19daec423d/hisat2.xml similarity index 100% rename from janis_core/tests/data/galaxy/hisat2-6c19daec423d/hisat2.xml rename to janis_core/tests/data/galaxy/wrappers/hisat2-6c19daec423d/hisat2.xml diff --git a/janis_core/tests/data/galaxy/hisat2-6c19daec423d/hisat2_macros.xml b/janis_core/tests/data/galaxy/wrappers/hisat2-6c19daec423d/hisat2_macros.xml similarity index 100% rename from janis_core/tests/data/galaxy/hisat2-6c19daec423d/hisat2_macros.xml rename to janis_core/tests/data/galaxy/wrappers/hisat2-6c19daec423d/hisat2_macros.xml diff --git a/janis_core/tests/data/galaxy/hisat2-6c19daec423d/tool-data/hisat2_indexes.loc.sample b/janis_core/tests/data/galaxy/wrappers/hisat2-6c19daec423d/tool-data/hisat2_indexes.loc.sample similarity index 100% rename from janis_core/tests/data/galaxy/hisat2-6c19daec423d/tool-data/hisat2_indexes.loc.sample rename to janis_core/tests/data/galaxy/wrappers/hisat2-6c19daec423d/tool-data/hisat2_indexes.loc.sample diff --git a/janis_core/tests/data/galaxy/hisat2-6c19daec423d/tool_data_table_conf.xml.sample b/janis_core/tests/data/galaxy/wrappers/hisat2-6c19daec423d/tool_data_table_conf.xml.sample similarity index 100% rename from janis_core/tests/data/galaxy/hisat2-6c19daec423d/tool_data_table_conf.xml.sample rename to janis_core/tests/data/galaxy/wrappers/hisat2-6c19daec423d/tool_data_table_conf.xml.sample diff --git a/janis_core/tests/data/galaxy/hisat2-6c19daec423d/tool_data_table_conf.xml.test b/janis_core/tests/data/galaxy/wrappers/hisat2-6c19daec423d/tool_data_table_conf.xml.test similarity index 100% rename from janis_core/tests/data/galaxy/hisat2-6c19daec423d/tool_data_table_conf.xml.test rename to janis_core/tests/data/galaxy/wrappers/hisat2-6c19daec423d/tool_data_table_conf.xml.test diff --git a/janis_core/tests/data/galaxy/wrappers/hisat2-f4af63aaf57a/hisat2.xml b/janis_core/tests/data/galaxy/wrappers/hisat2-f4af63aaf57a/hisat2.xml new file mode 100644 index 000000000..9da73cef3 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/hisat2-f4af63aaf57a/hisat2.xml @@ -0,0 +1,1367 @@ + + A fast and sensitive alignment program + + hisat2_macros.xml + + + hisat2 + + + hisat2 + samtools + seqtk + + + + + + + hisat2 --version + splice_sites.txt && +#end if + + +## Link in the input files, so HISAT2 can tell their type + +#set compressed="False" +#set reads_are_fastq = True + +#if str($library.type) == 'paired': + #if $library.input_1.is_of_type("fastq.gz", "fastqsanger.gz"): + #set read1 = "input_f.fastq.gz" + #set compressed = "GZ" + #elif $library.input_1.is_of_type("fastq.bz2", "fastqsanger.bz2"): + #set read1 = "input_f.fastq.bz2" + #set compressed = "BZ2" + #elif $library.input_1.is_of_type('fasta'): + #set reads_are_fastq = False + #set read1 = "input_f.fasta" + #else: + #set read1 = "input_f.fastq" + #end if + ln -f -s '${library.input_1}' ${read1} && + + #if $library.input_2.is_of_type("fastq.gz", "fastqsanger.gz"): + #set read2 = "input_r.fastq.gz" + #set compressed = "GZ" + #elif $library.input_2.is_of_type("fastq.bz2", "fastqsanger.bz2"): + #set read2 = "input_r.fastq.bz2" + #set compressed = "BZ2" + #elif $library.input_2.is_of_type('fasta'): + #set read2 = "input_r.fasta" + #else: + #set read2 = "input_r.fastq" + #end if + ln -f -s '${library.input_2}' ${read2} && + +#elif str($library.type) == 'paired_collection': + #if $library.input_1.forward.is_of_type("fastq.gz", "fastqsanger.gz"): + #set read1 = "input_f.fastq.gz" + #set compressed = "GZ" + #elif $library.input_1.forward.is_of_type("fastq.bz2", "fastqsanger.bz2"): + #set read1 = "input_f.fastq.bz2" + #set compressed = "BZ2" + #elif $library.input_1.forward.is_of_type('fasta'): + #set reads_are_fastq = False + #set read1 = "input_f.fasta" + #else: + #set read1 = "input_f.fastq" + #end if + ln -s '${library.input_1.forward}' ${read1} && + + #if $library.input_1.reverse.is_of_type("fastq.gz", "fastqsanger.gz"): + #set read2 = "input_r.fastq.gz" + #set compressed = "GZ" + #elif $library.input_1.reverse.is_of_type("fastq.bz2", "fastqsanger.bz2"): + #set read2 = "input_r.fastq.bz2" + #set compressed = "BZ2" + #elif $library.input_1.reverse.is_of_type("fasta"): + #set read2 = "input_r.fasta" + #else: + #set read2 = "input_r.fastq" + #end if + ln -s '${library.input_1.reverse}' ${read2} && +#elif str( $library.type ) == "paired_interleaved": + #if $library.input_1.is_of_type("fastq.gz", "fastqsanger.gz"): + #set compressed = "GZ" + #elif $library.input_1.is_of_type("fastq.bz2", "fastqsanger.bz2"): + #set compressed = "BZ2" + #elif $library.input_1.is_of_type('fasta'): + #set reads_are_fastq = False + #end if + #set read1 = "input_f.fastq" if reads_are_fastq else "input_f.fasta" + #set read2 = "input_r.fastq" if reads_are_fastq else "input_r.fasta" + #if $library.input_1.is_of_type("fastq.bz2", "fastqsanger.bz2"): + bzcat '${library.input_1}' | seqtk seq -1 /dev/stdin > $read1 && + bzcat '${library.input_1}' | seqtk seq -2 /dev/stdin > $read2 && + #else + seqtk seq -1 '${library.input_1}' > $read1 && + seqtk seq -2 '${library.input_1}' > $read2 && + #end if +#else: + #if $library.input_1.is_of_type("fastq.gz", "fastqsanger.gz"): + #set read1 = "input_f.fastq.gz" + #set compressed = "GZ" + #elif $library.input_1.is_of_type("fastq.bz2", "fastqsanger.bz2"): + #set read1 = "input_f.fastq.bz2" + #set compressed = "BZ2" + #elif $library.input_1.is_of_type('fasta'): + #set reads_are_fastq = False + #set read1 = "input_f.fasta" + #else: + #set read1 = "input_f.fastq" + #end if + ln -f -s '${library.input_1}' ${read1} && +#end if + + +## Run HISAT2 + +hisat2 + +## number threads +-p \${GALAXY_SLOTS:-1} + +## ref genome index path +-x '${index_path}' + +## input reads are fasta? +#if not $reads_are_fastq: + -f +#end if + +## Input reads + +#if str( $library.type ) == "single": + + -U '${read1}' + + #if str($adv.output_options.output_options_selector) == "advanced": + #if str( $adv.output_options.unaligned_file ) == "true": + #if $compressed == "GZ": + --un-gz '$output_unaligned_reads_l' + #elif $compressed == "BZ2": + --un-bz2 '$output_unaligned_reads_l' + #else: + --un '$output_unaligned_reads_l' + #end if + #end if + + #if str( $adv.output_options.aligned_file ) == "true": + #if $compressed == "GZ": + --al-gz '$output_aligned_reads_l' + #elif $compressed == "BZ2": + --al-bz2 '$output_aligned_reads_l' + #else: + --al '$output_aligned_reads_l' + #end if + #end if + #end if + +#else: + ##quotes are embedded in r1 and r2 variables, needed to allow use of <() + #if str( $library.type ) == "paired_interleaved": + -1 ${read1} + -2 ${read2} + #else: + -1 '${read1}' + -2 '${read2}' + #end if + #if str($adv.output_options.output_options_selector) == "advanced": + #if str( $adv.output_options.unaligned_file ) == "true": + #if $compressed == "GZ": + --un-conc-gz '${output_unaligned_reads_l}' + #elif $compressed == "BZ2": + --un-conc-bz2 '${output_unaligned_reads_l}' + #else: + --un-conc '${output_unaligned_reads_l}' + #end if + #end if + + #if str( $adv.output_options.aligned_file ) == "true": + #if $compressed == "GZ": + --al-conc-gz '${output_aligned_reads_l}' + #elif $compressed == "BZ2": + --al-conc-bz2 '${output_aligned_reads_l}' + #else: + --al-conc '${output_aligned_reads_l}' + #end if + #end if + #end if + + #if str($library.paired_options.paired_options_selector) == "advanced": + ${library.paired_options.fr_rf_ff} + ${library.paired_options.no_mixed} + ${library.paired_options.no_discordant} + #end if + +#end if + + +## Specify strandedness of reads + +#if str($library.rna_strandness): + --rna-strandness ${library.rna_strandness} +#end if + + +## Input options + +#if str($adv.input_options.input_options_selector) == "advanced": + #if int( $adv.input_options.skip ) > 0: + --skip ${adv.input_options.skip} + #end if + #if int( $adv.input_options.qupto ) > 0: + --qupto ${adv.input_options.qupto} + #end if + --trim5 '${adv.input_options.trim5}' + --trim3 '${adv.input_options.trim3}' + ${adv.input_options.qv_encoding} + ${adv.input_options.solexa_quals} + ${adv.input_options.int_quals} +#end if + + +## Alignment options + +#if str($adv.alignment_options.alignment_options_selector) == "advanced": + --n-ceil ${adv.alignment_options.function_type},${adv.alignment_options.constant_term},${adv.alignment_options.coefficient} + ${adv.alignment_options.ignore_quals} + ${adv.alignment_options.skip_forward} + ${adv.alignment_options.skip_reverse} +#end if + + + ## Scoring options + +#if str($adv.scoring_options.scoring_options_selector) == "advanced": + --mp ${adv.scoring_options.max_mismatch},${adv.scoring_options.min_mismatch} + ${adv.scoring_options.no_softclip} + --np ${adv.scoring_options.ambiguous_penalty} + --rdg ${adv.scoring_options.read_open_penalty},${adv.scoring_options.read_extend_penalty} + --rfg ${adv.scoring_options.ref_open_penalty},${adv.scoring_options.ref_extend_penalty} + --sp ${adv.scoring_options.soft_clip_penalty_max},${adv.scoring_options.soft_clip_penalty_min} + --score-min ${adv.scoring_options.function_type},${adv.scoring_options.constant_term},${adv.scoring_options.coefficient} +#end if + + +## Spliced alignment options + +#if str($adv.spliced_options.spliced_options_selector) == "advanced": + --pen-cansplice ${adv.spliced_options.canonical_penalty} + --pen-noncansplice ${adv.spliced_options.noncanonical_penalty} + --pen-canintronlen ${adv.spliced_options.function_type},${adv.spliced_options.constant_term},${adv.spliced_options.coefficient} + --pen-noncanintronlen ${adv.spliced_options.nc_function_type},${adv.spliced_options.nc_constant_term},${adv.spliced_options.nc_coefficient} + #if str($adv.spliced_options.known_splice_gtf) != 'None': + --known-splicesite-infile splice_sites.txt + #end if + ${adv.spliced_options.no_spliced_alignment_options.no_spliced_alignment} + #if $adv.spliced_options.no_spliced_alignment_options.no_spliced_alignment == '--no-spliced-alignment' + -I ${adv.spliced_options.no_spliced_alignment_options.minins} + -X ${adv.spliced_options.no_spliced_alignment_options.maxins} + #end if + --min-intronlen ${adv.spliced_options.min_intron} + --max-intronlen ${adv.spliced_options.max_intron} + ${adv.spliced_options.tma} + + #if str($adv.spliced_options.novel_splicesite_outfile) == "true": + --novel-splicesite-outfile '$novel_splicesite_output' + #end if + + #if str($adv.spliced_options.notmplen): + ${adv.spliced_options.notmplen} + #end if +#end if + + +## Reporting options + +#if str($adv.reporting_options.reporting_options_selector) == "advanced": + #if str($adv.reporting_options.max_primary) != '': + -k ${adv.reporting_options.max_primary} + #end if +#end if + + +## SAM options + +#if str($adv.sam_options.sam_options_selector) == "advanced": + #if $adv.sam_options.no_unal: + --no-unal + #end if + #if str($adv.sam_options.read_groups.rg_labels) == "Yes": + --rg-id '$adv.sam_options.read_groups.rg_id' + #if len('$adv.sam_options.read_groups.read_groups'): + #for $i, $id in enumerate($adv.sam_options.read_groups.read_groups): + --rg '$id.rg' + #end for + #end if + #end if + $adv.sam_options.chr_text + #if $adv.sam_options.omit_sec_seq: + --omit-sec-seq + #end if +#end if + +## Other options + +#if str( $adv.other_options.other_options_selector ) == "advanced": + ${adv.other_options.non_deterministic} + --seed '${adv.other_options.seed}' +#end if + + +## Output Summary + +#if str($sum.new_summary) == "true": + --new-summary +#end if + +#if str($sum.summary_file) == "true": + --summary-file summary.txt +#end if + +## Convert SAM output to sorted BAM +## using the two pipe stages has the following effect +## - hisat2 and sort run in parallel, during this time sort produces +## presorted temporary files but does not produce output (hence +## view does not run) +## - once hisat is finished sort will start to merge the temporary +## files (which should be fast also on a single thread) gives the +## sorted output to view which only compresses the files (now +## using full parallelism again) + +| samtools sort --no-PG -l 0 -T "\${TMPDIR:-.}" -O bam | samtools view --no-PG -O bam -@ \${GALAXY_SLOTS:-1} -o '${output_alignments}' + +## Rename any output fastq files + +#if $output_unaligned_reads_l and $output_unaligned_reads_r: + #from os.path import splitext + #set _unaligned_root, _unaligned_ext = splitext( str( $output_unaligned_reads_l ) ) + && mv '${ _unaligned_root }.1${_unaligned_ext}' '$output_unaligned_reads_l' + && mv '${ _unaligned_root }.2${_unaligned_ext}' '$output_unaligned_reads_r' +#end if +#if $output_aligned_reads_l and $output_aligned_reads_r: + #from os.path import splitext + #set _aligned_root, _aligned_ext = splitext( str( $output_aligned_reads_l ) ) + && mv '${ _aligned_root }.1${_aligned_ext}' '$output_aligned_reads_l' + && mv '${ _aligned_root }.2${_aligned_ext}' '$output_aligned_reads_r' +#end if + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + adv['output_options']['output_options_selector'] == "advanced" and adv['output_options']['unaligned_file'] is True + + + + + + + + + + + + + + + + + + + + + + + + + + adv['output_options']['output_options_selector'] == "advanced" and adv['output_options']['aligned_file'] is True + + + + + + + + + + + + + + + + + + + + + + + + + + (library['type'] == 'paired' or library['type'] == 'paired_collection') and (adv['output_options']['output_options_selector'] == "advanced" and adv['output_options']['unaligned_file'] is True) + + + + + + + + + + + + + + + + + + + + + + + + + + (library['type'] == 'paired' or library['type'] == 'paired_collection') and (adv['output_options']['output_options_selector'] == "advanced" and adv['output_options']['aligned_file'] is True) + + + + + + + + + + + + + + + + + + + + + + + + + + sum['summary_file'] is True + + + + + + + + adv['spliced_options']['spliced_options_selector'] == 'advanced' and adv['spliced_options']['novel_splicesite_outfile'] is True + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + `__ is a fast and sensitive +spliced alignment program. As part of HISAT, we have developed a new +indexing scheme based on the Burrows-Wheeler transform +(`BWT `__) and +the `FM index `__, called +hierarchical indexing, that employs two types of indexes: (1) one global +FM index representing the whole genome, and (2) many separate local FM +indexes for small regions collectively covering the genome. Our +hierarchical index for the human genome (about 3 billion bp) includes +~48,000 local FM indexes, each representing a genomic region of +~64,000bp. As the basis for non-gapped alignment, the FM index is +extremely fast with a low memory footprint, as demonstrated by +`Bowtie `__. In addition, HISAT provides +several alignment strategies specifically designed for mapping different +types of RNA-seq reads. All these together, HISAT enables extremely fast +and sensitive alignment of reads, in particular those spanning two exons +or more. As a result, HISAT is much faster >50 times than +`TopHat2 `__ with better alignment +quality. Although it uses a large number of indexes, the memory +requirement of HISAT is still modest, approximately 4.3 GB for human. +HISAT uses the `Bowtie2 `__ +implementation to handle most of the operations on the FM index. In +addition to spliced alignment, HISAT handles reads involving indels and +supports a paired-end alignment mode. Multiple processors can be used +simultaneously to achieve greater alignment speed. HISAT outputs +alignments in `SAM `__ format, +enabling interoperation with a large number of other tools that use SAM. +HISAT is distributed under the `GPLv3 +license `__, and it runs on +the command line under Linux, Mac OS X and Windows. + +Running HISAT +============= + +Reporting +--------- + +The reporting mode governs how many alignments HISAT looks for, and how +to report them. + +In general, when we say that a read has an alignment, we mean that it +has a `valid +alignment <#valid-alignments-meet-or-exceed-the-minimum-score-threshold>`__. +When we say that a read has multiple alignments, we mean that it has +multiple alignments that are valid and distinct from one another. + +Distinct alignments map a read to different places +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Two alignments for the same individual read are "distinct" if they map +the same read to different places. Specifically, we say that two +alignments are distinct if there are no alignment positions where a +particular read offset is aligned opposite a particular reference offset +in both alignments with the same orientation. E.g. if the first +alignment is in the forward orientation and aligns the read character at +read offset 10 to the reference character at chromosome 3, offset +3,445,245, and the second alignment is also in the forward orientation +and also aligns the read character at read offset 10 to the reference +character at chromosome 3, offset 3,445,245, they are not distinct +alignments. + +Two alignments for the same pair are distinct if either the mate 1s in +the two paired-end alignments are distinct or the mate 2s in the two +alignments are distinct or both. + +Default mode: search for one or more alignments, report each +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +HISAT searches for up to N distinct, primary alignments for each read, +where N equals the integer specified with the ``-k`` parameter. Primary +alignments mean alignments whose alignment score is equal or higher than +any other alignments. It is possible that multiple distinct alignments +whave the same score. That is, if ``-k 2`` is specified, HISAT will +search for at most 2 distinct alignments. The alignment score for a +paired-end alignment equals the sum of the alignment scores of the +individual mates. Each reported read or pair alignment beyond the first +has the SAM 'secondary' bit (which equals 256) set in its FLAGS field. +See the `SAM specification `__ +for details. + +HISAT does not "find" alignments in any specific order, so for reads +that have more than N distinct, valid alignments, HISAT does not +gaurantee that the N alignments reported are the best possible in terms +of alignment score. Still, this mode can be effective and fast in +situations where the user cares more about whether a read aligns (or +aligns a certain number of times) than where exactly it originated. + +Alignment summmary +------------------ + +When HISAT finishes running, it prints messages summarizing what happened. These messages are printed to the "standard error" ("stderr") filehandle and can be optionally printed to a file. Choose `--new-summary` under **Summary Options** for compatibility with `MultiQC `_. +For datasets consisting of unpaired reads, the summary might look like this: + +:: + + 20000 reads; of these: + 20000 (100.00%) were unpaired; of these: + 1247 (6.24%) aligned 0 times + 18739 (93.69%) aligned exactly 1 time + 14 (0.07%) aligned >1 times + 93.77% overall alignment rate + +For datasets consisting of pairs, the summary might look like this: + +:: + + 10000 reads; of these: + 10000 (100.00%) were paired; of these: + 650 (6.50%) aligned concordantly 0 times + 8823 (88.23%) aligned concordantly exactly 1 time + 527 (5.27%) aligned concordantly >1 times + ---- + 650 pairs aligned concordantly 0 times; of these: + 34 (5.23%) aligned discordantly 1 time + ---- + 616 pairs aligned 0 times concordantly or discordantly; of these: + 1232 mates make up the pairs; of these: + 660 (53.57%) aligned 0 times + 571 (46.35%) aligned exactly 1 time + 1 (0.08%) aligned >1 times + 96.70% overall alignment rate + +The indentation indicates how subtotals relate to totals. + + +.. class:: infomark + +**HISAT2 options** + +Galaxy wrapper for HISAT2 implements most, but not all, options available through the command line. Supported options are described below. + +----- + +**Inputs** + +HISAT2 accepts files in FASTQ or FASTA format (single-end or paired-end). + +Note that if your reads are from a stranded library, you need to choose the appropriate setting under **Specify strand information** above. For single-end reads, use F or R. 'F' means a read corresponds to a transcript. 'R' means a read corresponds to the reverse complemented counterpart of a transcript. For paired-end reads, use either FR or RF. With this option being used, every read alignment will have an XS attribute tag: '+' means a read belongs to a transcript on '+' strand of genome. '-' means a read belongs to a transcript on '-' strand of genome. (TopHat has a similar option, --library-type option, where fr-firststrand corresponds to R and RF; fr-secondstrand corresponds to F and FR.) + +------ + +**Input options**:: + + -s/--skip + Skip (i.e. do not align) the first `` reads or pairs in the input. + + -u/--qupto + Align the first `` reads or read pairs from the input (after the + `-s`/`--skip` reads or pairs have been skipped), then stop. Default: no limit. + + -5/--trim5 + Trim `` bases from 5' (left) end of each read before alignment (default: 0). + + -3/--trim3 + Trim `` bases from 3' (right) end of each read before alignment (default: 0). + + --phred33 + Input qualities are ASCII chars equal to the Phred quality plus 33. This is + also called the "Phred+33" encoding, which is used by the very latest Illumina + pipelines. + + --phred64 + Input qualities are ASCII chars equal to the Phred quality plus 64. This is + also called the "Phred+64" encoding. + + --solexa-quals + Convert input qualities from Solexa Phred quality (which can be negative) to + Phred Phred quality (which can't). This scheme was used in older Illumina GA + Pipeline versions (prior to 1.3). Default: off. + + --int-quals + Quality values are represented in the read input file as space-separated ASCII integers, e.g., `40 40 30 40`..., rather than ASCII characters, e.g., `II?I`.... + Integers are treated as being on the Phred quality scale unless + `--solexa-quals` is also specified. Default: off. + +------ + +**Alignment options**:: + + --n-ceil + Sets a function governing the maximum number of ambiguous characters (usually + `N`s and/or `.`s) allowed in a read as a function of read length. For instance, + specifying `-L,0,0.15` sets the N-ceiling function `f` to `f(x) = 0 + 0.15 * x`, + where x is the read length. Reads exceeding this ceiling are filtered out. + Default: `L,0,0.15`. + + --ignore-quals + When calculating a mismatch penalty, always consider the quality value at the + mismatched position to be the highest possible, regardless of the actual value. + I.e. input is treated as though all quality values are high. This is also the + default behavior when the input doesn't specify quality values (e.g. in `-f`, + `-r`, or `-c` modes). + + --nofw/--norc + If `--nofw` is specified, `hisat2` will not attempt to align unpaired reads to + the forward (Watson) reference strand. If `--norc` is specified, `hisat2` will not attempt to align unpaired reads against the reverse-complement (Crick) + reference strand. In paired-end mode, `--nofw` and `--norc` pertain to the + fragments; i.e. specifying `--nofw` causes `hisat2` to explore only those + paired-end configurations corresponding to fragments from the reverse-complement + (Crick) strand. Default: both strands enabled. + +----- + +**Scoring options**:: + + --mp MX,MN + Sets the maximum (`MX`) and minimum (`MN`) mismatch penalties, both integers. A number less than or equal to `MX` and greater than or equal to `MN` is + subtracted from the alignment score for each position where a read character + aligns to a reference character, the characters do not match, and neither is an + `N`. If `--ignore-quals` is specified, the number subtracted quals `MX`. + Otherwise, the number subtracted is `MN + floor( (MX-MN)(MIN(Q, 40.0)/40.0) )` + where Q is the Phred quality value. Default: `MX` = 6, `MN` = 2. + + --sp MX,MN + Sets the maximum (`MX`) and minimum (`MN`) penalties for soft-clipping per base, both integers. A number less than or equal to `MX` and greater than or equal to `MN` is subtracted from the alignment score for each position. The number subtracted is `MN + floor( (MX-MN)(MIN(Q, 40.0)/40.0) )` where Q is the Phred quality value. Default: `MX` = 2, `MN` = 1. + + --no-softclip + Disallow soft-clipping. + + --np + Sets penalty for positions where the read, reference, or both, contain an + ambiguous character such as `N`. Default: 1. + + --rdg , + Sets the read gap open (``) and extend (``) penalties. A read gap of + length N gets a penalty of `` + N * ``. Default: 5, 3. + + --rfg , + Sets the reference gap open (``) and extend (``) penalties. A + reference gap of length N gets a penalty of `` + N * ``. Default: + 5, 3. + + --score-min + Sets a function governing the minimum alignment score needed for an alignment to + be considered "valid" (i.e. good enough to report). This is a function of read + length. For instance, specifying `L,0,-0.6` sets the minimum-score function `f` + to `f(x) = 0 + -0.6 * x`, where `x` is the read length. The default is `L,0,-0.2`. + +----- + +**Spliced alignment options**:: + + --pen-cansplice + Sets the penalty for each pair of canonical splice sites (e.g. GT/AG). Default: 0. + + --pen-noncansplice + Sets the penalty for each pair of non-canonical splice sites (e.g. non-GT/AG). Default: 12. + + --pen-canintronlen + Sets the penalty for long introns with canonical splice sites so that alignments with shorter introns are preferred to those with longer ones. Default: G,-8,1 + + --pen-noncanintronlen + Sets the penalty for long introns with noncanonical splice sites so that alignments with shorter introns are preferred to those with longer ones. Default: G,-8,1 + + --min-intronlen + Sets minimum intron length. Default: 20 + + --max-intronlen + Sets maximum intron length. Default: 500000 + + --no-spliced-alignment + Disable spliced alignment. + + -I/--minins + The minimum fragment length for valid paired-end alignments.This option is valid only with `--no-spliced-alignment`. E.g. if `-I 60` is specified and a paired-end alignment consists of two 20-bp alignments in the appropriate orientation with a 20-bp gap between them, that alignment is considered valid (as long as `-X` is also satisfied). A 19-bp gap would not be valid in that case. If trimming options `-3` or `-5` are also used, the `-I` constraint is applied with respect to the untrimmed mates. + + The larger the difference between `-I` and `-X`, the slower HISAT2 will run. This is because larger differences between `-I` and `-X` require that HISAT2 scan a larger window to determine if a concordant alignment exists. For typical fragment length ranges (200 to 400 nucleotides), HISAT2 is very efficient. + + Default: 0 (essentially imposing no minimum) + + -X/--maxins + The maximum fragment length for valid paired-end alignments. This option is valid only with `--no-spliced-alignment`. E.g. if `-X 100` is specified and a paired-end alignment consists of two 20-bp alignments in the proper orientation with a 60-bp gap between them, that alignment is considered valid (as long as `-I` is also satisfied). A 61-bp gap would not be valid in that case. If trimming options `-3` or `-5` are also used, the -X constraint is applied with respect to the untrimmed mates, not the trimmed mates. + + The larger the difference between `-I` and `-X`, the slower HISAT2 will run. This is because larger differences between `-I` and `-X` require that HISAT2 scan a larger window to determine if a concordant alignment exists. For typical fragment length ranges (200 to 400 nucleotides), HISAT2 is very efficient. + + Default: 500. + + --known-splicesite-infile + With this mode, you can provide a list of known splice sites, which HISAT2 makes use of to align reads with small anchors. You can create such a list using python hisat2_extract_splice_sites.py genes.gtf > splicesites.txt, where hisat2_extract_splice_sites.py is included in the HISAT2 package, genes.gtf is a gene annotation file, and splicesites.txt is a list of splice sites with which you provide HISAT2 in this mode. Note that it is better to use indexes built using annotated transcripts (such as genome_tran or genome_snp_tran), which works better than using this option. It has no effect to provide splice sites that are already included in the indexes. + + --tmo/--transcriptome-mapping-only + Report only those alignments within known transcripts. + + --dta/--downstream-transcriptome-assembly + Report alignments tailored for transcript assemblers including StringTie. With this option, HISAT2 requires longer anchor lengths for de novo discovery of splice sites. This leads to fewer alignments with short-anchors, which helps transcript assemblers improve significantly in computation and memory usage. + + --dta-cufflinks + Report alignments tailored specifically for Cufflinks. In addition to what HISAT2 does with the above option (--dta), With this option, HISAT2 looks for novel splice sites with three signals (GT/AG, GC/AG, AT/AC), but all user-provided splice sites are used irrespective of their signals. HISAT2 produces an optional field, XS:A:[+-], for every spliced alignment. + + --no-templatelen-adjustment + Disables template length adjustment for RNA-seq reads. + + --novel-splicesite-outfile + In this mode, HISAT2 reports a list of splice sites in the file : + chromosome name genomic position of the flanking base on the left side of an intron genomic position of the flanking base on the right strand (+, -, and .) '.' indicates an unknown strand for non-canonical splice sites. + +----- + +**Reporting options**:: + + -k + It searches for at most `` distinct, primary alignments for each read. Primary alignments mean alignments whose alignment score is equal or higher than any other alignments. The search terminates when it can't find more distinct valid alignments, or when it finds ``, whichever happens first. The alignment score for a paired-end alignment equals the sum of the alignment scores of the individual mates. Each reported read or pair alignment beyond the first has the SAM 'secondary' bit (which equals 256) set in its FLAGS field. For reads that have more than `` distinct, valid alignments, hisat2 does not guarantee that the `` alignments reported are the best possible in terms of alignment score. Default: 5 (HFM) or 10 (HGFM) + + Note: HISAT2 is not designed with large values for `-k` in mind, and when aligning reads to long, repetitive genomes large `-k` can be very, very slow. + +----- + +**Paired-end options**:: + + --fr/--rf/--ff + The upstream/downstream mate orientations for a valid paired-end alignment + against the forward reference strand. E.g., if `--fr` is specified and there is + a candidate paired-end alignment where mate 1 appears upstream of the reverse + complement of mate 2 and the fragment length constraints (`-I` and `-X`) are + met, that alignment is valid. Also, if mate 2 appears upstream of the reverse + complement of mate 1 and all other constraints are met, that too is valid. + `--rf` likewise requires that an upstream mate1 be reverse-complemented and a + downstream mate2 be forward-oriented. ` --ff` requires both an upstream mate 1 + and a downstream mate 2 to be forward-oriented. Default: `--fr` (appropriate + for Illumina's Paired-end Sequencing Assay). + + --no-mixed + By default, when `hisat2` cannot find a concordant or discordant alignment for + a pair, it then tries to find alignments for the individual mates. This option + disables that behavior. + + --no-discordant + By default, `hisat2` looks for discordant alignments if it cannot find any + concordant alignments. A discordant alignment is an alignment where both mates + align uniquely, but that does not satisfy the paired-end constraints + (`--fr`/`--rf`/`--ff`, `-I`, `-X`). This option disables that behavior. + +----- + +** SAM options + + --no-unal + Suppress SAM records for reads that failed to align. + --rg-id + + Set the read group ID to . This causes the SAM @RG header line to be printed, with as the value associated with the ID: tag. It also causes the RG:Z: extra field to be attached to each SAM output record, with value set to . + --rg + Add (usually of the form TAG:VAL, e.g. SM:Pool1) as a field on the @RG header line. Note: in order for the @RG line to appear, --rg-id must also be specified. This is because the ID tag is required by the SAM Spec. Specify --rg multiple times to set multiple fields. See the SAM Spec for details about what fields are legal. + + --remove-chrname + Remove ‘chr’ from reference names in alignment (e.g., chr18 to 18) + + --add-chrname + Add ‘chr’ to reference names in alignment (e.g., 18 to chr18) + + --omit-sec-seq + When printing secondary alignments, HISAT2 by default will write out the SEQ and QUAL strings. Specifying this option causes HISAT2 to print an asterisk in those fields instead. + +----- + +**Output options**:: + + --un/--un-gz/--un-bz2 + Write unpaired reads that fail to align to file at ``. These reads correspond to the SAM records with the FLAGS `0x4` bit set and neither the `0x40` nor `0x80` bits set. If `--un-gz` is specified, output will be gzip compressed. If `--un-bz2` is specified, output will be bzip2 compressed. Reads written in this way will appear exactly as they did in the input file, without any modification (same sequence, same name, same quality string, same quality encoding). Reads will not necessarily appear in the same order as they did in the input. + + --al/--al-gz/--al-bz2 + Write unpaired reads that align at least once to file at ``. These reads correspond to the SAM records with the FLAGS `0x4`, `0x40`, and `0x80` bits unset. If `--al-gz` is specified, output will be gzip compressed. If `--al-bz2` is specified, output will be bzip2 compressed. Reads written in this way will appear exactly as they did in the input file, without any modification (same sequence, same name, same quality string, same quality encoding). Reads will not necessarily appear in the same order as they did in the input. + + --un-conc/--un-conc-gz/--un-conc-bz2 + Write paired-end reads that fail to align concordantly to file(s) at ``. These reads correspond to the SAM records with the FLAGS `0x4` bit set and either the `0x40` or `0x80` bit set (depending on whether it's mate #1 or #2). .1 and .2 strings are added to the filename to distinguish which file contains mate #1 and mate #2. If a percent symbol, %, is used in , the percent symbol is replaced with 1 or 2 to make the per-mate filenames. Otherwise, .1 or .2 are added before the final dot in to make the per-mate filenames. Reads written in this way will appear exactly as they did in the input files, without any modification (same sequence, same name, same quality string, same quality encoding). Reads will not necessarily appear in the same order as they did in the inputs. + + --al-conc/--al-conc-gz/--al-conc-bz2 + Write paired-end reads that align concordantly at least once to file(s) at ``. These reads correspond to the SAM records with the FLAGS `0x4` bit unset and either the `0x40` or `0x80` bit set (depending on whether it's mate #1 or #2). .1 and .2 strings are added to the filename to distinguish which file contains mate #1 and mate #2. If a percent symbol, %, is used in , the percent symbol is replaced with 1 or 2 to make the per-mate filenames. Otherwise, .1 or .2 are added before the final dot in `` to make the per-mate filenames. Reads written in this way will appear exactly as they did in the input files, without any modification (same sequence, same name, same quality string, same quality encoding). Reads will not necessarily appear in the same order as they did in the inputs. + + +**Other options**:: + + --seed + Use `` as the seed for pseudo-random number generator. Default: 0. + + --non-deterministic + Normally, HISAT2 re-initializes its pseudo-random generator for each read. It seeds the generator with a number derived from (a) the read name, (b) the nucleotide sequence, (c) the quality sequence, (d) the value of the `--seed` option. This means that if two reads are identical (same name, same nucleotides, same qualities) HISAT2 will find and report the same alignment(s) for both, even if there was ambiguity. When `--non-deterministic` is specified, HISAT2 re-initializes its pseudo-random generator for each read using the current time. This means that HISAT2 will not necessarily report the same alignment for two identical reads. This is counter-intuitive for some users, but might be more appropriate in situations where the input consists of many identical reads. + ]]> + + 10.1038/nmeth.3317 + +
diff --git a/janis_core/tests/data/galaxy/wrappers/hisat2-f4af63aaf57a/hisat2_macros.xml b/janis_core/tests/data/galaxy/wrappers/hisat2-f4af63aaf57a/hisat2_macros.xml new file mode 100644 index 000000000..634ff14c0 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/hisat2-f4af63aaf57a/hisat2_macros.xml @@ -0,0 +1,60 @@ + + 2.2.1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/hisat2-f4af63aaf57a/tool-data/hisat2_indexes.loc.sample b/janis_core/tests/data/galaxy/wrappers/hisat2-f4af63aaf57a/tool-data/hisat2_indexes.loc.sample new file mode 100644 index 000000000..d27dbc7e8 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/hisat2-f4af63aaf57a/tool-data/hisat2_indexes.loc.sample @@ -0,0 +1,39 @@ +# hisat2_indexes.loc.sample +# This is a *.loc.sample file distributed with Galaxy that enables tools +# to use a directory of indexed data files. This one is for HISAT2. +# See the wiki: http://wiki.galaxyproject.org/Admin/NGS%20Local%20Setup +# First create these data files and save them in your own data directory structure. +# Then, create a hisat2_indexes.loc file to use those indexes with tools. +# Copy this file, save it with the same name (minus the .sample), +# follow the format examples, and store the result in this directory. +# The file should include an one line entry for each index set. +# The path points to the "basename" for the set, not a specific file. +# It has four text columns seperated by TABS. +# +# +# +# So, for example, if you had sacCer3 indexes stored in: +# +# /depot/data2/galaxy/sacCer3/hisat2_indexes/ +# +# containing sacCer3 genome and sacCer3.*.ht2 files, such as: +# +# -rw-rw-r-- 1 dave dave 12M Sep 23 13:57 sacCer3.1.ht2 +# -rw-rw-r-- 1 dave dave 2.9M Sep 23 13:57 sacCer3.2.ht2 +# -rw-rw-r-- 1 dave dave 161 Sep 23 13:57 sacCer3.3.ht2 +# -rw-rw-r-- 1 dave dave 2.9M Sep 23 13:57 sacCer3.4.ht2 +# -rw-rw-r-- 1 dave dave 7.3M Sep 23 13:57 sacCer3.5.ht2 +# -rw-rw-r-- 1 dave dave 3.0M Sep 23 13:57 sacCer3.6.ht2 +# -rw-rw-r-- 1 dave dave 128K Sep 23 13:57 sacCer3.7.ht2 +# -rw-rw-r-- 1 dave dave 32K Sep 23 13:57 sacCer3.8.ht2 +# +# then the hisat2_indexes.loc entry could look like this: +# +#sacCer3 sacCer3 S. cerevisiae Apr. 2011 (SacCer_Apr2011/sacCer3) (sacCer3) /depot/data2/galaxy/hisat2_indexes/sacCer3 +# +#More examples: +# +#mm10 mm10 Mouse (mm10) /depot/data2/galaxy/hisat2_indexes/mm10 +#dm3 dm3 D. melanogaster (dm3) /depot/data2/galaxy/hisat2_indexes/dm3 +# +# diff --git a/janis_core/tests/data/galaxy/wrappers/hisat2-f4af63aaf57a/tool_data_table_conf.xml.sample b/janis_core/tests/data/galaxy/wrappers/hisat2-f4af63aaf57a/tool_data_table_conf.xml.sample new file mode 100644 index 000000000..7fe187de5 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/hisat2-f4af63aaf57a/tool_data_table_conf.xml.sample @@ -0,0 +1,7 @@ + + + + value, dbkey, name, path + +
+
diff --git a/janis_core/tests/data/galaxy/wrappers/hisat2-f4af63aaf57a/tool_data_table_conf.xml.test b/janis_core/tests/data/galaxy/wrappers/hisat2-f4af63aaf57a/tool_data_table_conf.xml.test new file mode 100755 index 000000000..74993c90a --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/hisat2-f4af63aaf57a/tool_data_table_conf.xml.test @@ -0,0 +1,7 @@ + + + + value, dbkey, name, path + +
+
diff --git a/janis_core/tests/data/galaxy/wrappers/limma_voom-d5a940112511/limma_voom.R b/janis_core/tests/data/galaxy/wrappers/limma_voom-d5a940112511/limma_voom.R new file mode 100644 index 000000000..7f0017e83 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/limma_voom-d5a940112511/limma_voom.R @@ -0,0 +1,1272 @@ +# This tool takes in a matrix of feature counts as well as gene annotations and +# outputs a table of top expressions as well as various plots for differential +# expression analysis +# +# ARGS: htmlPath", "R", 1, "character" -Path to html file linking to other outputs +# outPath", "o", 1, "character" -Path to folder to write all output to +# filesPath", "j", 2, "character" -JSON list object if multiple files input +# matrixPath", "m", 2, "character" -Path to count matrix +# factFile", "f", 2, "character" -Path to factor information file +# factInput", "i", 2, "character" -String containing factors if manually input +# annoPath", "a", 2, "character" -Path to input containing gene annotations +# contrastData", "C", 1, "character" -String containing contrasts of interest +# cpmReq", "c", 2, "double" -Float specifying cpm requirement +# cntReq", "z", 2, "integer" -Integer specifying minimum total count requirement +# sampleReq", "s", 2, "integer" -Integer specifying cpm requirement +# normCounts", "x", 0, "logical" -String specifying if normalised counts should be output +# rdaOpt", "r", 0, "logical" -String specifying if RData should be output +# lfcReq", "l", 1, "double" -Float specifying the log-fold-change requirement +# pValReq", "p", 1, "double" -Float specifying the p-value requirement +# pAdjOpt", "d", 1, "character" -String specifying the p-value adjustment method +# normOpt", "n", 1, "character" -String specifying type of normalisation used +# robOpt", "b", 0, "logical" -String specifying if robust options should be used +# trend", "t", 1, "double" -Float for prior.count if limma-trend is used instead of voom +# weightOpt", "w", 0, "logical" -String specifying if voomWithQualityWeights should be used +# topgenes", "G", 1, "integer" -Integer specifying no. of genes to highlight in volcano and heatmap +# treatOpt", "T", 0, "logical" -String specifying if TREAT function should be used +# plots, "P", 1, "character" -String specifying additional plots to be created +# +# OUT: +# Density Plots (if filtering) +# Box Plots (if normalising) +# MDS Plot +# Voom/SA plot +# MD Plot +# Volcano Plot +# Heatmap +# Expression Table +# HTML file linking to the ouputs +# Optional: +# Normalised counts Table +# RData file +# +# +# Author: Shian Su - registertonysu@gmail.com - Jan 2014 +# Modified by: Maria Doyle - Jun 2017, Jan 2018, May 2018 + +# Record starting time +timeStart <- as.character(Sys.time()) + +# Load all required libraries +library(methods, quietly=TRUE, warn.conflicts=FALSE) +library(statmod, quietly=TRUE, warn.conflicts=FALSE) +library(splines, quietly=TRUE, warn.conflicts=FALSE) +library(edgeR, quietly=TRUE, warn.conflicts=FALSE) +library(limma, quietly=TRUE, warn.conflicts=FALSE) +library(scales, quietly=TRUE, warn.conflicts=FALSE) +library(getopt, quietly=TRUE, warn.conflicts=FALSE) +library(gplots, quietly=TRUE, warn.conflicts=FALSE) + +################################################################################ +### Function Declaration +################################################################################ +# Function to sanitise contrast equations so there are no whitespaces +# surrounding the arithmetic operators, leading or trailing whitespace +sanitiseEquation <- function(equation) { + equation <- gsub(" *[+] *", "+", equation) + equation <- gsub(" *[-] *", "-", equation) + equation <- gsub(" *[/] *", "/", equation) + equation <- gsub(" *[*] *", "*", equation) + equation <- gsub("^\\s+|\\s+$", "", equation) + return(equation) +} + +# Function to sanitise group information +sanitiseGroups <- function(string) { + string <- gsub(" *[,] *", ",", string) + string <- gsub("^\\s+|\\s+$", "", string) + return(string) +} + +# Function to change periods to whitespace in a string +unmake.names <- function(string) { + string <- gsub(".", " ", string, fixed=TRUE) + return(string) +} + +# Generate output folder and paths +makeOut <- function(filename) { + return(paste0(opt$outPath, "/", filename)) +} + +# Generating design information +pasteListName <- function(string) { + return(paste0("factors$", string)) +} + +# Create cata function: default path set, default seperator empty and appending +# true by default (Ripped straight from the cat function with altered argument +# defaults) +cata <- function(..., file = opt$htmlPath, sep = "", fill = FALSE, labels = NULL, + append = TRUE) { + if (is.character(file)) + if (file == "") + file <- stdout() + else if (substring(file, 1L, 1L) == "|") { + file <- pipe(substring(file, 2L), "w") + on.exit(close(file)) + } + else { + file <- file(file, ifelse(append, "a", "w")) + on.exit(close(file)) + } + .Internal(cat(list(...), file, sep, fill, labels, append)) +} + +# Function to write code for html head and title +HtmlHead <- function(title) { + cata("\n") + cata("", title, "\n") + cata("\n") +} + +# Function to write code for html links +HtmlLink <- function(address, label=address) { + cata("", label, "
\n") +} + +# Function to write code for html images +HtmlImage <- function(source, label=source, height=500, width=500) { + cata("\"",\n") +} + +# Function to write code for html list items +ListItem <- function(...) { + cata("
  • ", ..., "
  • \n") +} + +TableItem <- function(...) { + cata("", ..., "\n") +} + +TableHeadItem <- function(...) { + cata("", ..., "\n") +} + +################################################################################ +### Input Processing +################################################################################ + +# Collect arguments from command line +args <- commandArgs(trailingOnly=TRUE) + +# Get options, using the spec as defined by the enclosed list. +# Read the options from the default: commandArgs(TRUE). +spec <- matrix(c( + "htmlPath", "R", 1, "character", + "outPath", "o", 1, "character", + "filesPath", "j", 2, "character", + "matrixPath", "m", 2, "character", + "factFile", "f", 2, "character", + "factInput", "i", 2, "character", + "annoPath", "a", 2, "character", + "contrastData", "C", 1, "character", + "cpmReq", "c", 1, "double", + "totReq", "y", 0, "logical", + "cntReq", "z", 1, "integer", + "sampleReq", "s", 1, "integer", + "filtCounts", "F", 0, "logical", + "normCounts", "x", 0, "logical", + "rdaOpt", "r", 0, "logical", + "lfcReq", "l", 1, "double", + "pValReq", "p", 1, "double", + "pAdjOpt", "d", 1, "character", + "normOpt", "n", 1, "character", + "robOpt", "b", 0, "logical", + "trend", "t", 1, "double", + "weightOpt", "w", 0, "logical", + "topgenes", "G", 1, "integer", + "treatOpt", "T", 0, "logical", + "plots", "P", 1, "character", + "libinfoOpt", "L", 0, "logical"), + byrow=TRUE, ncol=4) +opt <- getopt(spec) + + +if (is.null(opt$matrixPath) & is.null(opt$filesPath)) { + cat("A counts matrix (or a set of counts files) is required.\n") + q(status=1) +} + +if (is.null(opt$cpmReq)) { + filtCPM <- FALSE +} else { + filtCPM <- TRUE +} + +if (is.null(opt$cntReq) || is.null(opt$sampleReq)) { + filtSmpCount <- FALSE +} else { + filtSmpCount <- TRUE +} + +if (is.null(opt$totReq)) { + filtTotCount <- FALSE +} else { + filtTotCount <- TRUE +} + +if (is.null(opt$rdaOpt)) { + wantRda <- FALSE +} else { + wantRda <- TRUE +} + +if (is.null(opt$annoPath)) { + haveAnno <- FALSE +} else { + haveAnno <- TRUE +} + +if (is.null(opt$filtCounts)) { + wantFilt <- FALSE +} else { + wantFilt <- TRUE +} + +if (is.null(opt$normCounts)) { + wantNorm <- FALSE +} else { + wantNorm <- TRUE +} + +if (is.null(opt$robOpt)) { + wantRobust <- FALSE +} else { + wantRobust <- TRUE +} + +if (is.null(opt$weightOpt)) { + wantWeight <- FALSE +} else { + wantWeight <- TRUE +} + +if (is.null(opt$trend)) { + wantTrend <- FALSE + deMethod <- "limma-voom" +} else { + wantTrend <- TRUE + deMethod <- "limma-trend" + priorCount <- opt$trend +} + +if (is.null(opt$treatOpt)) { + wantTreat <- FALSE +} else { + wantTreat <- TRUE +} + +if (is.null(opt$libinfoOpt)) { + wantLibinfo <- FALSE +} else { + wantLibinfo <- TRUE +} + + +if (!is.null(opt$filesPath)) { + # Process the separate count files (adapted from DESeq2 wrapper) + library("rjson") + parser <- newJSONParser() + parser$addData(opt$filesPath) + factorList <- parser$getObject() + factors <- sapply(factorList, function(x) x[[1]]) + filenamesIn <- unname(unlist(factorList[[1]][[2]])) + sampleTable <- data.frame(sample=basename(filenamesIn), + filename=filenamesIn, + row.names=filenamesIn, + stringsAsFactors=FALSE) + for (factor in factorList) { + factorName <- factor[[1]] + sampleTable[[factorName]] <- character(nrow(sampleTable)) + lvls <- sapply(factor[[2]], function(x) names(x)) + for (i in seq_along(factor[[2]])) { + files <- factor[[2]][[i]][[1]] + sampleTable[files,factorName] <- lvls[i] + } + sampleTable[[factorName]] <- factor(sampleTable[[factorName]], levels=lvls) + } + rownames(sampleTable) <- sampleTable$sample + rem <- c("sample","filename") + factors <- sampleTable[, !(names(sampleTable) %in% rem), drop=FALSE] + + #read in count files and create single table + countfiles <- lapply(sampleTable$filename, function(x){read.delim(x, row.names=1)}) + counts <- do.call("cbind", countfiles) + +} else { + # Process the single count matrix + counts <- read.table(opt$matrixPath, header=TRUE, sep="\t", strip.white=TRUE, stringsAsFactors=FALSE) + row.names(counts) <- counts[, 1] + counts <- counts[ , -1] + countsRows <- nrow(counts) + + # Process factors + if (is.null(opt$factInput)) { + factorData <- read.table(opt$factFile, header=TRUE, sep="\t", strip.white=TRUE) + factors <- factorData[, -1, drop=FALSE] + } else { + factors <- unlist(strsplit(opt$factInput, "|", fixed=TRUE)) + factorData <- list() + for (fact in factors) { + newFact <- unlist(strsplit(fact, split="::")) + factorData <- rbind(factorData, newFact) + } # Factors have the form: FACT_NAME::LEVEL,LEVEL,LEVEL,LEVEL,... The first factor is the Primary Factor. + + # Set the row names to be the name of the factor and delete first row + row.names(factorData) <- factorData[, 1] + factorData <- factorData[, -1] + factorData <- sapply(factorData, sanitiseGroups) + factorData <- sapply(factorData, strsplit, split=",") + factorData <- sapply(factorData, make.names) + # Transform factor data into data frame of R factor objects + factors <- data.frame(factorData) + } +} + + # if annotation file provided +if (haveAnno) { + geneanno <- read.table(opt$annoPath, header=TRUE, sep="\t", quote= "", strip.white=TRUE, stringsAsFactors=FALSE) +} + +#Create output directory +dir.create(opt$outPath, showWarnings=FALSE) + +# Split up contrasts seperated by comma into a vector then sanitise +contrastData <- unlist(strsplit(opt$contrastData, split=",")) +contrastData <- sanitiseEquation(contrastData) +contrastData <- gsub(" ", ".", contrastData, fixed=TRUE) + +plots <- character() +if (!is.null(opt$plots)) { + plots <- unlist(strsplit(opt$plots, split=",")) +} + +denOutPng <- makeOut("densityplots.png") +denOutPdf <- makeOut("densityplots.pdf") +cpmOutPdf <- makeOut("cpmplots.pdf") +boxOutPng <- makeOut("boxplots.png") +boxOutPdf <- makeOut("boxplots.pdf") +mdsscreeOutPng <- makeOut("mdsscree.png") +mdsscreeOutPdf <- makeOut("mdsscree.pdf") +mdsxOutPdf <- makeOut("mdsplot_extra.pdf") +mdsxOutPng <- makeOut("mdsplot_extra.png") +mdsamOutPdf <- makeOut("mdplots_samples.pdf") +mdOutPdf <- character() # Initialise character vector +volOutPdf <- character() +heatOutPdf <- character() +stripOutPdf <- character() +mdvolOutPng <- character() +topOut <- character() +glimmaOut <- character() +for (i in 1:length(contrastData)) { + con <- contrastData[i] + con <- gsub("\\(|\\)", "", con) + mdOutPdf[i] <- makeOut(paste0("mdplot_", con, ".pdf")) + volOutPdf[i] <- makeOut(paste0("volplot_", con, ".pdf")) + heatOutPdf[i] <- makeOut(paste0("heatmap_", con, ".pdf")) + stripOutPdf[i] <- makeOut(paste0("stripcharts_", con, ".pdf")) + mdvolOutPng[i] <- makeOut(paste0("mdvolplot_", con, ".png")) + topOut[i] <- makeOut(paste0(deMethod, "_", con, ".tsv")) + glimmaOut[i] <- makeOut(paste0("glimma_", con, "/MD-Plot.html")) +} +filtOut <- makeOut(paste0(deMethod, "_", "filtcounts")) +normOut <- makeOut(paste0(deMethod, "_", "normcounts")) +rdaOut <- makeOut(paste0(deMethod, "_analysis.RData")) +sessionOut <- makeOut("session_info.txt") + +# Initialise data for html links and images, data frame with columns Label and +# Link +linkData <- data.frame(Label=character(), Link=character(), + stringsAsFactors=FALSE) +imageData <- data.frame(Label=character(), Link=character(), + stringsAsFactors=FALSE) + +# Initialise vectors for storage of up/down/neutral regulated counts +upCount <- numeric() +downCount <- numeric() +flatCount <- numeric() + +################################################################################ +### Data Processing +################################################################################ + +# Extract counts and annotation data +print("Extracting counts") +data <- list() +data$counts <- counts +if (haveAnno) { + # order annotation by genes in counts (assumes gene ids are in 1st column of geneanno) + annoord <- geneanno[match(row.names(counts), geneanno[,1]), ] + data$genes <- annoord +} else { + data$genes <- data.frame(GeneID=row.names(counts)) +} + +# Creating naming data +samplenames <- colnames(data$counts) +sampleanno <- data.frame("sampleID"=samplenames, factors) + +# Creating colours for the groups +cols <- as.numeric(factors[, 1]) +col.group <- palette()[cols] + +# If filter crieteria set, filter out genes that do not have a required cpm/counts in a required number of +# samples. Default is no filtering +preFilterCount <- nrow(data$counts) +nsamples <- ncol(data$counts) + +if (filtCPM || filtSmpCount || filtTotCount) { + + if (filtTotCount) { + keep <- rowSums(data$counts) >= opt$cntReq + } else if (filtSmpCount) { + keep <- rowSums(data$counts >= opt$cntReq) >= opt$sampleReq + } else if (filtCPM) { + myCPM <- cpm(data$counts) + thresh <- myCPM >= opt$cpmReq + keep <- rowSums(thresh) >= opt$sampleReq + + if ("c" %in% plots) { + # Plot CPM vs raw counts (to check threshold) + pdf(cpmOutPdf, width=6.5, height=10) + par(mfrow=c(3, 2)) + for (i in 1:nsamples) { + plot(data$counts[, i], myCPM[, i], xlim=c(0,50), ylim=c(0,3), main=samplenames[i], xlab="Raw counts", ylab="CPM") + abline(v=10, col="red", lty=2, lwd=2) + abline(h=opt$cpmReq, col=4) + } + linkName <- "CpmPlots.pdf" + linkAddr <- "cpmplots.pdf" + linkData <- rbind(linkData, data.frame(Label=linkName, Link=linkAddr, stringsAsFactors=FALSE)) + invisible(dev.off()) + } + } + + data$counts <- data$counts[keep, ] + data$genes <- data$genes[keep, , drop=FALSE] + + if (wantFilt) { + print("Outputting filtered counts") + filt_counts <- data.frame(data$genes, data$counts) + write.table(filt_counts, file=filtOut, row.names=FALSE, sep="\t", quote=FALSE) + linkData <- rbind(linkData, data.frame(Label=paste0(deMethod, "_", "filtcounts.tsv"), Link=paste0(deMethod, "_", "filtcounts"), stringsAsFactors=FALSE)) + } + + # Plot Density + if ("d" %in% plots) { + # PNG + png(denOutPng, width=1000, height=500) + par(mfrow=c(1,2), cex.axis=0.8) + + # before filtering + lcpm1 <- cpm(counts, log=TRUE) + plot(density(lcpm1[, 1]), col=col.group[1], lwd=2, las=2, main="", xlab="") + title(main="Density Plot: Raw counts", xlab="Log-cpm") + for (i in 2:nsamples){ + den <- density(lcpm1[, i]) + lines(den$x, den$y, col=col.group[i], lwd=2) + } + + # after filtering + lcpm2 <- cpm(data$counts, log=TRUE) + plot(density(lcpm2[,1]), col=col.group[1], lwd=2, las=2, main="", xlab="") + title(main="Density Plot: Filtered counts", xlab="Log-cpm") + for (i in 2:nsamples){ + den <- density(lcpm2[, i]) + lines(den$x, den$y, col=col.group[i], lwd=2) + } + legend("topright", samplenames, text.col=col.group, bty="n") + imgName <- "Densityplots.png" + imgAddr <- "densityplots.png" + imageData <- rbind(imageData, data.frame(Label=imgName, Link=imgAddr, stringsAsFactors=FALSE)) + invisible(dev.off()) + + # PDF + pdf(denOutPdf, width=14) + par(mfrow=c(1,2), cex.axis=0.8) + plot(density(lcpm1[, 1]), col=col.group[1], lwd=2, las=2, main="", xlab="") + title(main="Density Plot: Raw counts", xlab="Log-cpm") + for (i in 2:nsamples){ + den <- density(lcpm1[, i]) + lines(den$x, den$y, col=col.group[i], lwd=2) + } + plot(density(lcpm2[, 1]), col=col.group[1], lwd=2, las=2, main="", xlab="") + title(main="Density Plot: Filtered counts", xlab="Log-cpm") + for (i in 2:nsamples){ + den <- density(lcpm2[, i]) + lines(den$x, den$y, col=col.group[i], lwd=2) + } + legend("topright", samplenames, text.col=col.group, bty="n") + linkName <- "DensityPlots.pdf" + linkAddr <- "densityplots.pdf" + linkData <- rbind(linkData, data.frame(Label=linkName, Link=linkAddr, stringsAsFactors=FALSE)) + invisible(dev.off()) + } +} + +postFilterCount <- nrow(data$counts) +filteredCount <- preFilterCount-postFilterCount + +# Generating the DGEList object "y" +print("Generating DGEList object") +data$samples <- sampleanno +data$samples$lib.size <- colSums(data$counts) +data$samples$norm.factors <- 1 +row.names(data$samples) <- colnames(data$counts) +y <- new("DGEList", data) + +print("Generating Design") +# Name rows of factors according to their sample +row.names(factors) <- names(data$counts) +factorList <- sapply(names(factors), pasteListName) +formula <- "~0" +for (i in 1:length(factorList)) { + formula <- paste(formula,factorList[i], sep="+") +} +formula <- formula(formula) +design <- model.matrix(formula) +for (i in 1:length(factorList)) { + colnames(design) <- gsub(factorList[i], "", colnames(design), fixed=TRUE) +} + +# Calculating normalising factors +print("Calculating Normalisation Factors") +logcounts <- y #store for plots +y <- calcNormFactors(y, method=opt$normOpt) + +# Generate contrasts information +print("Generating Contrasts") +contrasts <- makeContrasts(contrasts=contrastData, levels=design) + +################################################################################ +### Data Output +################################################################################ + +# Plot Box plots (before and after normalisation) +if (opt$normOpt != "none" & "b" %in% plots) { + png(boxOutPng, width=1000, height=500) + par(mfrow=c(1,2), mar=c(6,4,2,2)+0.1) + labels <- colnames(counts) + + lcpm1 <- cpm(y$counts, log=TRUE) + boxplot(lcpm1, las=2, col=col.group, xaxt="n", xlab="") + axis(1, at=seq_along(labels), labels = FALSE) + abline(h=median(lcpm1), col=4) + text(x=seq_along(labels), y=par("usr")[3]-1, srt=45, adj=1, labels=labels, xpd=TRUE) + title(main="Box Plot: Unnormalised counts", ylab="Log-cpm") + + lcpm2 <- cpm(y, log=TRUE) + boxplot(lcpm2, las=2, col=col.group, xaxt="n", xlab="") + axis(1, at=seq_along(labels), labels = FALSE) + text(x=seq_along(labels), y=par("usr")[3]-1, srt=45, adj=1, labels=labels, xpd=TRUE) + abline(h=median(lcpm2), col=4) + title(main="Box Plot: Normalised counts", ylab="Log-cpm") + + imgName <- "Boxplots.png" + imgAddr <- "boxplots.png" + imageData <- rbind(imageData, data.frame(Label=imgName, Link=imgAddr, stringsAsFactors=FALSE)) + invisible(dev.off()) + + pdf(boxOutPdf, width=14) + par(mfrow=c(1,2), mar=c(6,4,2,2)+0.1) + boxplot(lcpm1, las=2, col=col.group, xaxt="n", xlab="") + axis(1, at=seq_along(labels), labels = FALSE) + abline(h=median(lcpm1), col=4) + text(x=seq_along(labels), y=par("usr")[3]-1, srt=45, adj=1, labels=labels, xpd=TRUE) + title(main="Box Plot: Unnormalised counts", ylab="Log-cpm") + boxplot(lcpm2, las=2, col=col.group, xaxt="n", xlab="") + axis(1, at=seq_along(labels), labels = FALSE) + text(x=seq_along(labels), y=par("usr")[3]-1, srt=45, adj=1, labels=labels, xpd=TRUE) + abline(h=median(lcpm2), col=4) + title(main="Box Plot: Normalised counts", ylab="Log-cpm") + linkName <- "BoxPlots.pdf" + linkAddr <- "boxplots.pdf" + linkData <- rbind(linkData, data.frame(Label=linkName, Link=linkAddr, stringsAsFactors=FALSE)) + invisible(dev.off()) +} + +# Plot MDS +print("Generating MDS plot") +labels <- names(counts) + +# Scree plot (Variance Explained) code copied from Glimma + +# get column of matrix +getCols <- function(x, inds) { + x[, inds, drop=FALSE] +} + +x <- cpm(y, log=TRUE) +ndim <- nsamples - 1 +nprobes <- nrow(x) +top <- 500 +top <- min(top, nprobes) +cn <- colnames(x) +bad <- rowSums(is.finite(x)) < nsamples + +if (any(bad)) { + warning("Rows containing infinite values have been removed") + x <- x[!bad, , drop=FALSE] +} + +dd <- matrix(0, nrow=nsamples, ncol=nsamples, dimnames=list(cn, cn)) +topindex <- nprobes - top + 1L +for (i in 2L:(nsamples)) { + for (j in 1L:(i - 1L)) { + dists <- (getCols(x, i) - getCols(x, j))^2 + dists <- sort.int(dists, partial = topindex ) + topdist <- dists[topindex:nprobes] + dd[i, j] <- sqrt(mean(topdist)) + } +} + +a1 <- suppressWarnings(cmdscale(as.dist(dd), k=min(ndim, 8), eig=TRUE)) +eigen <- data.frame(name = 1:min(ndim, 8), eigen = round(a1$eig[1:min(ndim, 8)]/sum(a1$eig), 2)) + +png(mdsscreeOutPng, width=1000, height=500) +par(mfrow=c(1, 2)) +plotMDS(y, labels=samplenames, col=as.numeric(factors[, 1]), main="MDS Plot: Dims 1 and 2") +barplot(eigen$eigen, names.arg=eigen$name, main = "Scree Plot: Variance Explained", xlab = "Dimension", ylab = "Proportion", las=1) +imgName <- paste0("MDSPlot_", names(factors)[1], ".png") +imgAddr <- "mdsscree.png" +imageData <- rbind(imageData, data.frame(Label=imgName, Link=imgAddr, stringsAsFactors=FALSE)) +invisible(dev.off()) + +pdf(mdsscreeOutPdf, width=14) +par(mfrow=c(1, 2)) +plotMDS(y, labels=samplenames, col=as.numeric(factors[, 1]), main="MDS Plot: Dims 1 and 2") +barplot(eigen$eigen, names.arg=eigen$name, main = "Scree Plot: Variance Explained", xlab = "Dimension", ylab = "Proportion", las=1) +linkName <- paste0("MDSPlot_", names(factors)[1], ".pdf") +linkAddr <- "mdsscree.pdf" +linkData <- rbind(linkData, data.frame(Label=linkName, Link=linkAddr, stringsAsFactors=FALSE)) +invisible(dev.off()) + +if ("x" %in% plots) { + png(mdsxOutPng, width=1000, height=500) + par(mfrow=c(1, 2)) + for (i in 2:3) { + dim1 <- i + dim2 <- i + 1 + plotMDS(y, dim=c(dim1, dim2), labels=samplenames, col=as.numeric(factors[, 1]), main=paste("MDS Plot: Dims", dim1, "and", dim2)) + } + imgName <- paste0("MDSPlot_extra.png") + imgAddr <- paste0("mdsplot_extra.png") + imageData <- rbind(imageData, data.frame(Label=imgName, Link=imgAddr, stringsAsFactors=FALSE)) + invisible(dev.off()) + + pdf(mdsxOutPdf, width=14) + par(mfrow=c(1, 2)) + for (i in 2:3) { + dim1 <- i + dim2 <- i + 1 + plotMDS(y, dim=c(dim1, dim2), labels=samplenames, col=as.numeric(factors[, 1]), main=paste("MDS Plot: Dims", dim1, "and", dim2)) + } + linkName <- "MDSPlot_extra.pdf" + linkAddr <- "mdsplot_extra.pdf" + linkData <- rbind(linkData, data.frame(Label=linkName, Link=linkAddr, stringsAsFactors=FALSE)) + invisible(dev.off()) +} + +if ("m" %in% plots) { + # Plot MD plots for individual samples + print("Generating MD plots for samples") + pdf(mdsamOutPdf, width=6.5, height=10) + par(mfrow=c(3, 2)) + for (i in 1:nsamples) { + if (opt$normOpt != "none") { + plotMD(logcounts, column=i, main=paste(colnames(logcounts)[i], "(before)")) + abline(h=0, col="red", lty=2, lwd=2) + } + plotMD(y, column=i) + abline(h=0, col="red", lty=2, lwd=2) + } + linkName <- "MDPlots_Samples.pdf" + linkAddr <- "mdplots_samples.pdf" + linkData <- rbind(linkData, c(linkName, linkAddr)) + invisible(dev.off()) +} + + +if (wantTrend) { + # limma-trend approach + logCPM <- cpm(y, log=TRUE, prior.count=opt$trend) + fit <- lmFit(logCPM, design) + fit$genes <- y$genes + fit <- contrasts.fit(fit, contrasts) + if (wantRobust) { + fit <- eBayes(fit, trend=TRUE, robust=TRUE) + } else { + fit <- eBayes(fit, trend=TRUE, robust=FALSE) + } + # plot fit with plotSA + saOutPng <- makeOut("saplot.png") + saOutPdf <- makeOut("saplot.pdf") + + png(saOutPng, width=500, height=500) + plotSA(fit, main="SA Plot") + imgName <- "SAPlot.png" + imgAddr <- "saplot.png" + imageData <- rbind(imageData, c(imgName, imgAddr)) + invisible(dev.off()) + + pdf(saOutPdf, width=14) + plotSA(fit, main="SA Plot") + linkName <- "SAPlot.pdf" + linkAddr <- "saplot.pdf" + linkData <- rbind(linkData, c(linkName, linkAddr)) + invisible(dev.off()) + + plotData <- logCPM + + # Save normalised counts (log2cpm) + if (wantNorm) { + write.table(logCPM, file=normOut, row.names=TRUE, sep="\t", quote=FALSE) + linkData <- rbind(linkData, c((paste0(deMethod, "_", "normcounts.tsv")), (paste0(deMethod, "_", "normcounts")))) + } +} else { + # limma-voom approach + voomOutPdf <- makeOut("voomplot.pdf") + voomOutPng <- makeOut("voomplot.png") + + if (wantWeight) { + # Creating voom data object and plot + png(voomOutPng, width=1000, height=500) + vData <- voomWithQualityWeights(y, design=design, plot=TRUE) + imgName <- "VoomPlot.png" + imgAddr <- "voomplot.png" + imageData <- rbind(imageData, c(imgName, imgAddr)) + invisible(dev.off()) + + pdf(voomOutPdf, width=14) + vData <- voomWithQualityWeights(y, design=design, plot=TRUE) + linkName <- "VoomPlot.pdf" + linkAddr <- "voomplot.pdf" + linkData <- rbind(linkData, c(linkName, linkAddr)) + invisible(dev.off()) + + # Generating fit data and top table with weights + wts <- vData$weights + voomFit <- lmFit(vData, design, weights=wts) + + } else { + # Creating voom data object and plot + png(voomOutPng, width=500, height=500) + vData <- voom(y, design=design, plot=TRUE) + imgName <- "VoomPlot" + imgAddr <- "voomplot.png" + imageData <- rbind(imageData, c(imgName, imgAddr)) + invisible(dev.off()) + + pdf(voomOutPdf) + vData <- voom(y, design=design, plot=TRUE) + linkName <- "VoomPlot.pdf" + linkAddr <- "voomplot.pdf" + linkData <- rbind(linkData, c(linkName, linkAddr)) + invisible(dev.off()) + + # Generate voom fit + voomFit <- lmFit(vData, design) + } + + # Save normalised counts (log2cpm) + if (wantNorm) { + norm_counts <- data.frame(vData$genes, vData$E) + write.table(norm_counts, file=normOut, row.names=FALSE, sep="\t", quote=FALSE) + linkData <- rbind(linkData, c((paste0(deMethod, "_", "normcounts.tsv")), (paste0(deMethod, "_", "normcounts")))) + } + + # Fit linear model and estimate dispersion with eBayes + voomFit <- contrasts.fit(voomFit, contrasts) + if (wantRobust) { + fit <- eBayes(voomFit, robust=TRUE) + } else { + fit <- eBayes(voomFit, robust=FALSE) + } + plotData <- vData +} + + # Save library size info +if (wantLibinfo) { + efflibsize <- round(y$samples$lib.size * y$samples$norm.factors) + libsizeinfo <- cbind(y$samples, EffectiveLibrarySize=efflibsize) + libsizeinfo$lib.size <- round(libsizeinfo$lib.size) + names(libsizeinfo)[names(libsizeinfo)=="sampleID"] <- "SampleID" + names(libsizeinfo)[names(libsizeinfo)=="lib.size"] <- "LibrarySize" + names(libsizeinfo)[names(libsizeinfo)=="norm.factors"] <- "NormalisationFactor" + write.table(libsizeinfo, file="libsizeinfo", row.names=FALSE, sep="\t", quote=FALSE) +} + +print("Generating DE results") + +if (wantTreat) { + print("Applying TREAT method") + if (wantRobust) { + fit <- treat(fit, lfc=opt$lfcReq, robust=TRUE) + } else { + fit <- treat(fit, lfc=opt$lfcReq, robust=FALSE) + } +} + +status = decideTests(fit, adjust.method=opt$pAdjOpt, p.value=opt$pValReq, + lfc=opt$lfcReq) +sumStatus <- summary(status) + +for (i in 1:length(contrastData)) { + con <- contrastData[i] + con <- gsub("\\(|\\)", "", con) + # Collect counts for differential expression + upCount[i] <- sumStatus["Up", i] + downCount[i] <- sumStatus["Down", i] + flatCount[i] <- sumStatus["NotSig", i] + + # Write top expressions table + if (wantTreat) { + top <- topTreat(fit, coef=i, number=Inf, sort.by="P") + } else{ + top <- topTable(fit, coef=i, number=Inf, sort.by="P") + } + write.table(top, file=topOut[i], row.names=FALSE, sep="\t", quote=FALSE) + linkName <- paste0(deMethod, "_", con, ".tsv") + linkAddr <- paste0(deMethod, "_", con, ".tsv") + linkData <- rbind(linkData, c(linkName, linkAddr)) + + # Plot MD (log ratios vs mean average) using limma package on weighted + pdf(mdOutPdf[i]) + limma::plotMD(fit, status=status[, i], coef=i, + main=paste("MD Plot:", unmake.names(con)), + hl.col=alpha(c("firebrick", "blue"), 0.4), values=c(1, -1), + xlab="Average Expression", ylab="logFC") + abline(h=0, col="grey", lty=2) + linkName <- paste0("MDPlot_", con, ".pdf") + linkAddr <- paste0("mdplot_", con, ".pdf") + linkData <- rbind(linkData, c(linkName, linkAddr)) + invisible(dev.off()) + + # Generate Glimma interactive MD plot and table, requires annotation file (assumes gene labels/symbols in 2nd column) + if (haveAnno) { + # make gene labels unique to handle NAs + geneanno <- y$genes + geneanno[, 2] <- make.unique(geneanno[, 2]) + Glimma::glMDPlot(fit, coef=i, counts=y$counts, anno=geneanno, groups=factors[, 1], + status=status[, i], sample.cols=col.group, + main=paste("MD Plot:", unmake.names(con)), side.main=colnames(y$genes)[2], + folder=paste0("glimma_", unmake.names(con)), launch=FALSE) + linkName <- paste0("Glimma_MDPlot_", con, ".html") + linkAddr <- paste0("glimma_", con, "/MD-Plot.html") + linkData <- rbind(linkData, c(linkName, linkAddr)) + } + + # Plot Volcano + pdf(volOutPdf[i]) + if (haveAnno) { + # labels must be in second column currently + labels <- fit$genes[, 2] + } else { + labels <- fit$genes$GeneID + } + limma::volcanoplot(fit, coef=i, + main=paste("Volcano Plot:", unmake.names(con)), + highlight=opt$topgenes, + names=labels) + linkName <- paste0("VolcanoPlot_", con, ".pdf") + linkAddr <- paste0("volplot_", con, ".pdf") + linkData <- rbind(linkData, c(linkName, linkAddr)) + invisible(dev.off()) + + # PNG of MD and Volcano + png(mdvolOutPng[i], width=1000, height=500) + par(mfrow=c(1, 2), mar=c(5,4,2,2)+0.1, oma=c(0,0,3,0)) + + # MD plot + limma::plotMD(fit, status=status[, i], coef=i, main="MD Plot", + hl.col=alpha(c("firebrick", "blue"), 0.4), values=c(1, -1), + xlab="Average Expression", ylab="logFC") + abline(h=0, col="grey", lty=2) + + # Volcano + if (haveAnno) { + # labels must be in second column currently + limma::volcanoplot(fit, coef=i, main="Volcano Plot", + highlight=opt$topgenes, + names=fit$genes[, 2]) + } else { + limma::volcanoplot(fit, coef=i, main="Volcano Plot", + highlight=opt$topgenes, + names=fit$genes$GeneID) + } + + imgName <- paste0("MDVolPlot_", con) + imgAddr <- paste0("mdvolplot_", con, ".png") + imageData <- rbind(imageData, c(imgName, imgAddr)) + title(paste0("Contrast: ", unmake.names(con)), outer=TRUE, cex.main=1.5) + invisible(dev.off()) + + if ("h" %in% plots) { + # Plot Heatmap + topgenes <- rownames(top[1:opt$topgenes, ]) + if (wantTrend) { + topexp <- plotData[topgenes, ] + } else { + topexp <- plotData$E[topgenes, ] + } + pdf(heatOutPdf[i]) + mycol <- colorpanel(1000,"blue","white","red") + if (haveAnno) { + # labels must be in second column currently + labels <- top[topgenes, 2] + } else { + labels <- rownames(topexp) + } + heatmap.2(topexp, scale="row", Colv=FALSE, Rowv=FALSE, dendrogram="none", + main=paste("Contrast:", unmake.names(con), "\nTop", opt$topgenes, "genes by adj.P.Val"), + trace="none", density.info="none", lhei=c(2,10), margin=c(8, 6), labRow=labels, cexRow=0.7, srtCol=45, + col=mycol, ColSideColors=col.group) + linkName <- paste0("Heatmap_", con, ".pdf") + linkAddr <- paste0("heatmap_", con, ".pdf") + linkData <- rbind(linkData, c(linkName, linkAddr)) + invisible(dev.off()) + } + + if ("s" %in% plots) { + # Plot Stripcharts of top genes + pdf(stripOutPdf[i], title=paste("Contrast:", unmake.names(con))) + par(mfrow = c(3,2), cex.main=0.8, cex.axis=0.8) + cols <- unique(col.group) + + for (j in 1:length(topgenes)) { + lfc <- round(top[topgenes[j], "logFC"], 2) + pval <- round(top[topgenes[j], "adj.P.Val"], 5) + if (wantTrend) { + stripchart(plotData[topgenes[j], ] ~ factors[, 1], vertical=TRUE, las=2, pch=16, cex=0.8, cex.lab=0.8, col=cols, + method="jitter", ylab="Normalised log2 expression", main=paste0(labels[j], "\nlogFC=", lfc, ", adj.P.Val=", pval)) + } else { + stripchart(plotData$E[topgenes[j], ] ~ factors[, 1], vertical=TRUE, las=2, pch=16, cex=0.8, cex.lab=0.8, col=cols, + method="jitter", ylab="Normalised log2 expression", main=paste0(labels[j], "\nlogFC=", lfc, ", adj.P.Val=", pval)) + } + } + linkName <- paste0("Stripcharts_", con, ".pdf") + linkAddr <- paste0("stripcharts_", con, ".pdf") + linkData <- rbind(linkData, c(linkName, linkAddr)) + invisible(dev.off()) + } +} +sigDiff <- data.frame(Up=upCount, Flat=flatCount, Down=downCount) +row.names(sigDiff) <- contrastData + +# Save relevant items as rda object +if (wantRda) { + print("Saving RData") + if (wantWeight) { + save(counts, data, y, status, plotData, labels, factors, wts, fit, top, contrastData, contrasts, design, + file=rdaOut, ascii=TRUE) + } else { + save(counts, data, y, status, plotData, labels, factors, fit, top, contrastData, contrasts, design, + file=rdaOut, ascii=TRUE) + } + linkData <- rbind(linkData, c((paste0(deMethod, "_analysis.RData")), (paste0(deMethod, "_analysis.RData")))) +} + +# Record session info +writeLines(capture.output(sessionInfo()), sessionOut) +linkData <- rbind(linkData, c("Session Info", "session_info.txt")) + +# Record ending time and calculate total run time +timeEnd <- as.character(Sys.time()) +timeTaken <- capture.output(round(difftime(timeEnd,timeStart), digits=3)) +timeTaken <- gsub("Time difference of ", "", timeTaken, fixed=TRUE) +################################################################################ +### HTML Generation +################################################################################ + +# Clear file +cat("", file=opt$htmlPath) + +cata("\n") + +cata("\n") +cata("

    Limma Analysis Output:

    \n") +cata("Links to PDF copies of plots are in 'Plots' section below
    \n") + +for (i in 1:nrow(imageData)) { + if (grepl("density|box|mds|mdvol", imageData$Link[i])) { + HtmlImage(imageData$Link[i], imageData$Label[i], width=1000) + } else if (wantWeight) { + HtmlImage(imageData$Link[i], imageData$Label[i], width=1000) + } else { + HtmlImage(imageData$Link[i], imageData$Label[i]) + } +} + +cata("

    Differential Expression Counts:

    \n") + +cata("\n") +cata("\n") +TableItem() +for (i in colnames(sigDiff)) { + TableHeadItem(i) +} +cata("\n") +for (i in 1:nrow(sigDiff)) { + cata("\n") + TableHeadItem(unmake.names(row.names(sigDiff)[i])) + for (j in 1:ncol(sigDiff)) { + TableItem(as.character(sigDiff[i, j])) + } + cata("\n") +} +cata("
    ") + +cata("

    Plots:

    \n") +#PDFs +for (i in 1:nrow(linkData)) { + if (grepl("density|cpm|boxplot|mds|mdplots|voomplot|saplot", linkData$Link[i])) { + HtmlLink(linkData$Link[i], linkData$Label[i]) + } +} + +for (i in 1:nrow(linkData)) { + if (grepl("mdplot_", linkData$Link[i])) { + HtmlLink(linkData$Link[i], linkData$Label[i]) + } +} + +for (i in 1:nrow(linkData)) { + if (grepl("volplot", linkData$Link[i])) { + HtmlLink(linkData$Link[i], linkData$Label[i]) + } +} + +for (i in 1:nrow(linkData)) { + if (grepl("heatmap", linkData$Link[i])) { + HtmlLink(linkData$Link[i], linkData$Label[i]) + } +} + +for (i in 1:nrow(linkData)) { + if (grepl("stripcharts", linkData$Link[i])) { + HtmlLink(linkData$Link[i], linkData$Label[i]) + } +} + +cata("

    Tables:

    \n") +for (i in 1:nrow(linkData)) { + if (grepl("counts$", linkData$Link[i])) { + HtmlLink(linkData$Link[i], linkData$Label[i]) + } else if (grepl(".tsv", linkData$Link[i])) { + HtmlLink(linkData$Link[i], linkData$Label[i]) + } +} + +if (wantRda) { + cata("

    R Data Object:

    \n") + for (i in 1:nrow(linkData)) { + if (grepl(".RData", linkData$Link[i])) { + HtmlLink(linkData$Link[i], linkData$Label[i]) + } + } +} + +cata("

    Glimma Interactive Results:

    \n") + for (i in 1:nrow(linkData)) { + if (grepl("glimma", linkData$Link[i])) { + HtmlLink(linkData$Link[i], linkData$Label[i]) + } + } + +cata("

    Alt-click links to download file.

    \n") +cata("

    Click floppy disc icon associated history item to download ") +cata("all files.

    \n") +cata("

    .tsv files can be viewed in Excel or any spreadsheet program.

    \n") + +cata("

    Additional Information

    \n") +cata("
      \n") + +if (filtCPM || filtSmpCount || filtTotCount) { + if (filtCPM) { + tempStr <- paste("Genes without more than", opt$cpmReq, + "CPM in at least", opt$sampleReq, "samples are insignificant", + "and filtered out.") + } else if (filtSmpCount) { + tempStr <- paste("Genes without more than", opt$cntReq, + "counts in at least", opt$sampleReq, "samples are insignificant", + "and filtered out.") + } else if (filtTotCount) { + tempStr <- paste("Genes without more than", opt$cntReq, + "counts, after summing counts for all samples, are insignificant", + "and filtered out.") + } + + ListItem(tempStr) + filterProp <- round(filteredCount/preFilterCount*100, digits=2) + tempStr <- paste0(filteredCount, " of ", preFilterCount," (", filterProp, + "%) genes were filtered out for low expression.") + ListItem(tempStr) +} +ListItem(opt$normOpt, " was the method used to normalise library sizes.") +if (wantTrend) { + ListItem("The limma-trend method was used.") +} else { + ListItem("The limma-voom method was used.") +} +if (wantWeight) { + ListItem("Weights were applied to samples.") +} else { + ListItem("Weights were not applied to samples.") +} +if (wantTreat) { + ListItem(paste("Testing significance relative to a fold-change threshold (TREAT) was performed using a threshold of log2 =", opt$lfcReq, "at FDR of", opt$pValReq, ".")) +} +if (wantRobust) { + if (wantTreat) { + ListItem("TREAT was used with robust settings (robust=TRUE).") + } else { + ListItem("eBayes was used with robust settings (robust=TRUE).") + } +} +if (opt$pAdjOpt!="none") { + if (opt$pAdjOpt=="BH" || opt$pAdjOpt=="BY") { + tempStr <- paste0("MD Plot highlighted genes are significant at FDR ", + "of ", opt$pValReq," and exhibit log2-fold-change of at ", + "least ", opt$lfcReq, ".") + ListItem(tempStr) + } else if (opt$pAdjOpt=="holm") { + tempStr <- paste0("MD Plot highlighted genes are significant at adjusted ", + "p-value of ", opt$pValReq," by the Holm(1979) ", + "method, and exhibit log2-fold-change of at least ", + opt$lfcReq, ".") + ListItem(tempStr) + } + } else { + tempStr <- paste0("MD Plot highlighted genes are significant at p-value ", + "of ", opt$pValReq," and exhibit log2-fold-change of at ", + "least ", opt$lfcReq, ".") + ListItem(tempStr) +} +cata("
    \n") + +cata("

    Summary of experimental data:

    \n") + +cata("

    *CHECK THAT SAMPLES ARE ASSOCIATED WITH CORRECT GROUP(S)*

    \n") + +cata("\n") +cata("\n") +TableHeadItem("SampleID") +TableHeadItem(names(factors)[1]," (Primary Factor)") + +if (ncol(factors) > 1) { + for (i in names(factors)[2:length(names(factors))]) { + TableHeadItem(i) + } + cata("\n") +} + +for (i in 1:nrow(factors)) { + cata("\n") + TableHeadItem(row.names(factors)[i]) + for (j in 1:ncol(factors)) { + TableItem(as.character(unmake.names(factors[i, j]))) + } + cata("\n") +} +cata("
    ") + +cit <- character() +link <- character() +link[1] <- paste0("", "limma User's Guide", ".") + +link[2] <- paste0("", "edgeR User's Guide", "") + +cit[1] <- paste("Please cite the following paper for this tool:") + +cit[2] <- paste("Liu R, Holik AZ, Su S, Jansz N, Chen K, Leong HS, Blewitt ME,", + "Asselin-Labat ML, Smyth GK, Ritchie ME (2015). Why weight? ", + "Modelling sample and observational level variability improves power ", + "in RNA-seq analyses. Nucleic Acids Research, 43(15), e97.") + +cit[3] <- paste("Please cite the paper below for the limma software itself.", + "Please also try to cite the appropriate methodology articles", + "that describe the statistical methods implemented in limma,", + "depending on which limma functions you are using. The", + "methodology articles are listed in Section 2.1 of the", + link[1], + "Cite no. 3 only if sample weights were used.") +cit[4] <- paste("Smyth GK (2005). Limma: linear models for microarray data.", + "In: 'Bioinformatics and Computational Biology Solutions using", + "R and Bioconductor'. R. Gentleman, V. Carey, S. doit,.", + "Irizarry, W. Huber (eds), Springer, New York, pages 397-420.") +cit[5] <- paste("Please cite the first paper for the software itself and the", + "other papers for the various original statistical methods", + "implemented in edgeR. See Section 1.2 in the", link[2], + "for more detail.") +cit[6] <- paste("Robinson MD, McCarthy DJ and Smyth GK (2010). edgeR: a", + "Bioconductor package for differential expression analysis", + "of digital gene expression data. Bioinformatics 26, 139-140") +cit[7] <- paste("Robinson MD and Smyth GK (2007). Moderated statistical tests", + "for assessing differences in tag abundance. Bioinformatics", + "23, 2881-2887") +cit[8] <- paste("Robinson MD and Smyth GK (2008). Small-sample estimation of", + "negative binomial dispersion, with applications to SAGE data.", + "Biostatistics, 9, 321-332") +cit[9] <- paste("McCarthy DJ, Chen Y and Smyth GK (2012). Differential", + "expression analysis of multifactor RNA-Seq experiments with", + "respect to biological variation. Nucleic Acids Research 40,", + "4288-4297") +cit[10] <- paste("Law CW, Chen Y, Shi W, and Smyth GK (2014). Voom:", + "precision weights unlock linear model analysis tools for", + "RNA-seq read counts. Genome Biology 15, R29.") +cit[11] <- paste("Ritchie ME, Diyagama D, Neilson J, van Laar R,", + "Dobrovic A, Holloway A and Smyth GK (2006).", + "Empirical array quality weights for microarray data.", + "BMC Bioinformatics 7, Article 261.") +cata("

    Citations

    \n") +cata(cit[1], "\n") +cata("
    \n") +cata(cit[2], "\n") + +cata("

    limma

    \n") +cata(cit[3], "\n") +cata("
      \n") +ListItem(cit[4]) +ListItem(cit[10]) +ListItem(cit[11]) +cata("
    \n") + +cata("

    edgeR

    \n") +cata(cit[5], "\n") +cata("
      \n") +ListItem(cit[6]) +ListItem(cit[7]) +ListItem(cit[8]) +ListItem(cit[9]) +cata("
    \n") + +cata("

    Please report problems or suggestions to: su.s@wehi.edu.au

    \n") + +for (i in 1:nrow(linkData)) { + if (grepl("session_info", linkData$Link[i])) { + HtmlLink(linkData$Link[i], linkData$Label[i]) + } +} + +cata("\n") +cata("\n") +TableItem("Task started at:"); TableItem(timeStart) +cata("\n") +cata("\n") +TableItem("Task ended at:"); TableItem(timeEnd) +cata("\n") +cata("\n") +TableItem("Task run time:"); TableItem(timeTaken) +cata("\n") +cata("
    \n") + +cata("\n") +cata("") diff --git a/janis_core/tests/data/galaxy/wrappers/limma_voom-d5a940112511/limma_voom.xml b/janis_core/tests/data/galaxy/wrappers/limma_voom-d5a940112511/limma_voom.xml new file mode 100644 index 000000000..584afc2a7 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/limma_voom-d5a940112511/limma_voom.xml @@ -0,0 +1,914 @@ + + + Perform differential expression with limma-voom or limma-trend + + + + bioconductor-limma + bioconductor-edger + r-statmod + r-scales + r-rjson + r-getopt + r-gplots + bioconductor-glimma + + + /dev/null | grep -v -i "WARNING: ")", edgeR version" $(R --vanilla --slave -e "library(edgeR); cat(sessionInfo()\$otherPkgs\$edgeR\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", statmod version" $(R --vanilla --slave -e "library(statmod); cat(sessionInfo()\$otherPkgs\$statmod\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", scales version" $(R --vanilla --slave -e "library(scales); cat(sessionInfo()\$otherPkgs\$scales\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", rjson version" $(R --vanilla --slave -e "library(rjson); cat(sessionInfo()\$otherPkgs\$rjson\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", getopt version" $(R --vanilla --slave -e "library(getopt); cat(sessionInfo()\$otherPkgs\$getopt\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", gplots version" $(R --vanilla --slave -e "library(gplots); cat(sessionInfo()\$otherPkgs\$gplots\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", Glimma version" $(R --vanilla --slave -e "library(Glimma); cat(sessionInfo()\$otherPkgs\$Glimma\$Version)" 2> /dev/null | grep -v -i "WARNING: ") + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ^[\w]+$ + + + + ^[\w,]+$ + + + + + + + + + + + + + + + + + + + + + + + + ^[\(\w\)-]+$ + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + + + + + + + + + + + + + + + + + +
    + + +
    + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + out['filtCounts'] + + + out['normCounts'] + + + out['rscript'] + + + out['libinfo'] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 10.1186/gb-2014-15-2-r29 + 10.1093/nar/gkv412 + +
    \ No newline at end of file diff --git a/janis_core/tests/data/galaxy/wrappers/limma_voom-d6f5fa4ee473/limma_voom.R b/janis_core/tests/data/galaxy/wrappers/limma_voom-d6f5fa4ee473/limma_voom.R new file mode 100644 index 000000000..a40d18795 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/limma_voom-d6f5fa4ee473/limma_voom.R @@ -0,0 +1,1352 @@ +# This tool takes in a matrix of feature counts as well as gene annotations and +# outputs a table of top expressions as well as various plots for differential +# expression analysis +# +# ARGS: htmlPath", "R", 1, "character" -Path to html file linking to other outputs +# outPath", "o", 1, "character" -Path to folder to write all output to +# filesPath", "j", 2, "character" -JSON list object if multiple files input +# matrixPath", "m", 2, "character" -Path to count matrix +# factFile", "f", 2, "character" -Path to factor information file +# factInput", "i", 2, "character" -String containing factors if manually input +# annoPath", "a", 2, "character" -Path to input containing gene annotations +# contrastFile", "C", 1, "character" -Path to contrasts information file +# contrastInput", "D", 1, "character" -String containing contrasts of interest +# cpmReq", "c", 2, "double" -Float specifying cpm requirement +# cntReq", "z", 2, "integer" -Integer specifying minimum total count requirement +# sampleReq", "s", 2, "integer" -Integer specifying cpm requirement +# normCounts", "x", 0, "logical" -String specifying if normalised counts should be output +# rdaOpt", "r", 0, "logical" -String specifying if RData should be output +# lfcReq", "l", 1, "double" -Float specifying the log-fold-change requirement +# pValReq", "p", 1, "double" -Float specifying the p-value requirement +# pAdjOpt", "d", 1, "character" -String specifying the p-value adjustment method +# normOpt", "n", 1, "character" -String specifying type of normalisation used +# robOpt", "b", 0, "logical" -String specifying if robust options should be used +# trend", "t", 1, "double" -Float for prior.count if limma-trend is used instead of voom +# weightOpt", "w", 0, "logical" -String specifying if voomWithQualityWeights should be used +# topgenes", "G", 1, "integer" -Integer specifying no. of genes to highlight in volcano and heatmap +# treatOpt", "T", 0, "logical" -String specifying if TREAT function should be used +# plots, "P", 1, "character" -String specifying additional plots to be created +# +# OUT: +# Density Plots (if filtering) +# Box Plots (if normalising) +# MDS Plot +# Voom/SA plot +# MD Plot +# Volcano Plot +# Heatmap +# Expression Table +# HTML file linking to the ouputs +# Optional: +# Normalised counts Table +# RData file +# +# +# Author: Shian Su - registertonysu@gmail.com - Jan 2014 +# Modified by: Maria Doyle - Jun 2017, Jan 2018, May 2018 + +# Record starting time +time_start <- as.character(Sys.time()) + +# Load all required libraries +library(methods, quietly = TRUE, warn.conflicts = FALSE) +library(statmod, quietly = TRUE, warn.conflicts = FALSE) +library(splines, quietly = TRUE, warn.conflicts = FALSE) +library(edgeR, quietly = TRUE, warn.conflicts = FALSE) +library(limma, quietly = TRUE, warn.conflicts = FALSE) +library(scales, quietly = TRUE, warn.conflicts = FALSE) +library(getopt, quietly = TRUE, warn.conflicts = FALSE) +library(gplots, quietly = TRUE, warn.conflicts = FALSE) + +################################################################################ +### Function Declaration +################################################################################ +# Function to sanitise contrast equations so there are no whitespaces +# surrounding the arithmetic operators, leading or trailing whitespace +sanitise_equation <- function(equation) { + equation <- gsub(" *[+] *", "+", equation) + equation <- gsub(" *[-] *", "-", equation) + equation <- gsub(" *[/] *", "/", equation) + equation <- gsub(" *[*] *", "*", equation) + equation <- gsub("^\\s+|\\s+$", "", equation) + return(equation) +} + +# Function to sanitise group information +sanitise_groups <- function(string) { + string <- gsub(" *[,] *", ",", string) + string <- gsub("^\\s+|\\s+$", "", string) + return(string) +} + +# Function to make contrast contain valid R names +sanitise_contrast <- function(string) { + string <- strsplit(string, split = "-") + string <- lapply(string, make.names) + string <- lapply(string, paste, collapse = "-") + return(string) +} + +# Function to change periods to whitespace in a string +unmake_names <- function(string) { + string <- gsub(".", " ", string, fixed = TRUE) + return(string) +} + +# Generate output folder and paths +make_out <- function(filename) { + return(paste0(opt$outPath, "/", filename)) +} + +# Generating design information +paste_listname <- function(string) { + return(paste0("factors$", string)) +} + +# Create cata function: default path set, default seperator empty and appending +# true by default (Ripped straight from the cat function with altered argument +# defaults) +cata <- function(..., file = opt$htmlPath, sep = "", fill = FALSE, labels = NULL, + append = TRUE) { + if (is.character(file)) + if (file == "") + file <- stdout() + else if (substring(file, 1L, 1L) == "|") { + file <- pipe(substring(file, 2L), "w") + on.exit(close(file)) + } + else { + file <- file(file, ifelse(append, "a", "w")) + on.exit(close(file)) + } + .Internal(cat(list(...), file, sep, fill, labels, append)) +} + +# Function to write code for html head and title +html_head <- function(title) { + cata("\n") + cata("", title, "\n") + cata("\n") +} + +# Function to write code for html links +html_link <- function(address, label = address) { + cata("", label, "
    \n") +} + +# Function to write code for html images +html_image <- function(source, label = source, height = 500, width = 500) { + cata("\"",\n") +} + +# Function to write code for html list items +list_item <- function(...) { + cata("
  • ", ..., "
  • \n") +} + +table_item <- function(...) { + cata("", ..., "\n") +} + +table_head_item <- function(...) { + cata("", ..., "\n") +} + +################################################################################ +### Input Processing +################################################################################ + +# Collect arguments from command line +args <- commandArgs(trailingOnly = TRUE) + +# Get options, using the spec as defined by the enclosed list. +# Read the options from the default: commandArgs(TRUE). +spec <- matrix(c( + "htmlPath", "R", 1, "character", + "outPath", "o", 1, "character", + "filesPath", "j", 2, "character", + "matrixPath", "m", 2, "character", + "factFile", "f", 2, "character", + "factInput", "i", 2, "character", + "annoPath", "a", 2, "character", + "contrastFile", "C", 1, "character", + "contrastInput", "D", 1, "character", + "cpmReq", "c", 1, "double", + "totReq", "y", 0, "logical", + "cntReq", "z", 1, "integer", + "sampleReq", "s", 1, "integer", + "filtCounts", "F", 0, "logical", + "normCounts", "x", 0, "logical", + "rdaOpt", "r", 0, "logical", + "lfcReq", "l", 1, "double", + "pValReq", "p", 1, "double", + "pAdjOpt", "d", 1, "character", + "normOpt", "n", 1, "character", + "robOpt", "b", 0, "logical", + "trend", "t", 1, "double", + "weightOpt", "w", 0, "logical", + "topgenes", "G", 1, "integer", + "treatOpt", "T", 0, "logical", + "plots", "P", 1, "character", + "libinfoOpt", "L", 0, "logical"), + byrow = TRUE, ncol = 4) +opt <- getopt(spec) + + +if (is.null(opt$matrixPath) & is.null(opt$filesPath)) { + cat("A counts matrix (or a set of counts files) is required.\n") + q(status = 1) +} + +if (is.null(opt$cpmReq)) { + filt_cpm <- FALSE +} else { + filt_cpm <- TRUE +} + +if (is.null(opt$cntReq) || is.null(opt$sampleReq)) { + filt_smpcount <- FALSE +} else { + filt_smpcount <- TRUE +} + +if (is.null(opt$totReq)) { + filt_totcount <- FALSE +} else { + filt_totcount <- TRUE +} + +if (is.null(opt$rdaOpt)) { + want_rda <- FALSE +} else { + want_rda <- TRUE +} + +if (is.null(opt$annoPath)) { + have_anno <- FALSE +} else { + have_anno <- TRUE +} + +if (is.null(opt$filtCounts)) { + want_filt <- FALSE +} else { + want_filt <- TRUE +} + +if (is.null(opt$normCounts)) { + want_norm <- FALSE +} else { + want_norm <- TRUE +} + +if (is.null(opt$robOpt)) { + want_robust <- FALSE +} else { + want_robust <- TRUE +} + +if (is.null(opt$weightOpt)) { + want_weight <- FALSE +} else { + want_weight <- TRUE +} + +if (is.null(opt$trend)) { + want_trend <- FALSE + de_method <- "limma-voom" +} else { + want_trend <- TRUE + de_method <- "limma-trend" + prior_count <- opt$trend +} + +if (is.null(opt$treatOpt)) { + want_treat <- FALSE +} else { + want_treat <- TRUE +} + +if (is.null(opt$libinfoOpt)) { + want_libinfo <- FALSE +} else { + want_libinfo <- TRUE +} + + +if (!is.null(opt$filesPath)) { + # Process the separate count files (adapted from DESeq2 wrapper) + library("rjson") + parser <- newJSONParser() + parser$addData(opt$filesPath) + factor_list <- parser$getObject() + factors <- sapply(factor_list, function(x) x[[1]]) + filenames_in <- unname(unlist(factor_list[[1]][[2]])) + sampletable <- data.frame(sample = basename(filenames_in), + filename = filenames_in, + row.names = filenames_in, + stringsAsFactors = FALSE) + for (factor in factor_list) { + factorname <- factor[[1]] + sampletable[[factorname]] <- character(nrow(sampletable)) + lvls <- sapply(factor[[2]], function(x) names(x)) + for (i in seq_along(factor[[2]])) { + files <- factor[[2]][[i]][[1]] + sampletable[files, factorname] <- lvls[i] + } + sampletable[[factorname]] <- factor(sampletable[[factorname]], levels = lvls) + } + rownames(sampletable) <- sampletable$sample + rem <- c("sample", "filename") + factors <- sampletable[, !(names(sampletable) %in% rem), drop = FALSE] + + #read in count files and create single table + countfiles <- lapply(sampletable$filename, function(x) { + read.delim(x, row.names = 1) + }) + counts <- do.call("cbind", countfiles) + +} else { + # Process the single count matrix + counts <- read.table(opt$matrixPath, header = TRUE, sep = "\t", strip.white = TRUE, stringsAsFactors = FALSE, check.names = FALSE) + row.names(counts) <- counts[, 1] + counts <- counts[, -1] + countsrows <- nrow(counts) + + # Process factors + if (is.null(opt$factInput)) { + factordata <- read.table(opt$factFile, header = TRUE, sep = "\t", strip.white = TRUE, stringsAsFactors = TRUE) + if (!setequal(factordata[, 1], colnames(counts))) + stop("Sample IDs in counts and factors files don't match") + # order samples as in counts matrix + factordata <- factordata[match(colnames(counts), factordata[, 1]), ] + factors <- factordata[, -1, drop = FALSE] + } else { + factors <- unlist(strsplit(opt$factInput, "|", fixed = TRUE)) + factordata <- list() + for (fact in factors) { + newfact <- unlist(strsplit(fact, split = "::")) + factordata <- rbind(factordata, newfact) + } # Factors have the form: FACT_NAME::LEVEL,LEVEL,LEVEL,LEVEL,... The first factor is the Primary Factor. + + # Set the row names to be the name of the factor and delete first row + row.names(factordata) <- factordata[, 1] + factordata <- factordata[, -1] + factordata <- sapply(factordata, sanitise_groups) + factordata <- sapply(factordata, strsplit, split = ",") + # Transform factor data into data frame of R factor objects + factors <- data.frame(factordata) + } +} +# check there are the same number of samples in counts and factors +if (nrow(factors) != ncol(counts)) { + stop("There are a different number of samples in the counts files and factors") +} +# make groups valid R names, required for makeContrasts +factors <- sapply(factors, make.names) +factors <- data.frame(factors, stringsAsFactors = TRUE) + + # if annotation file provided +if (have_anno) { + geneanno <- read.table(opt$annoPath, header = TRUE, sep = "\t", quote = "", strip.white = TRUE, stringsAsFactors = FALSE) +} + +#Create output directory +dir.create(opt$outPath, showWarnings = FALSE) + +# Process contrasts +if (is.null(opt$contrastInput)) { + contrast_data <- read.table(opt$contrastFile, header = TRUE, sep = "\t", quote = "", strip.white = TRUE, stringsAsFactors = FALSE) + contrast_data <- contrast_data[, 1, drop = TRUE] +} else { + # Split up contrasts seperated by comma into a vector then sanitise + contrast_data <- unlist(strsplit(opt$contrastInput, split = ",")) +} +contrast_data <- sanitise_equation(contrast_data) +contrast_data <- gsub(" ", ".", contrast_data, fixed = TRUE) + +# in case input groups start with numbers make the names valid R names, required for makeContrasts +cons <- NULL +cons_d <- NULL +for (i in contrast_data) { + + # if the contrast is a difference of differences e.g. (A-B)-(X-Y) + if (grepl("\\)-\\(", i)) { + i <- unlist(strsplit(i, split = "\\)-\\(")) + i <- gsub("\\(|\\)", "", i) + for (j in i) { + j <- sanitise_contrast(j) + j <- paste0("(", j, ")") + cons_d <- append(cons_d, unlist(j)) + } + cons_d <- paste(cons_d, collapse = "-") + cons <- append(cons, unlist(cons_d)) + } else { + i <- sanitise_contrast(i) + cons <- append(cons, unlist(i)) + } +} + +plots <- character() +if (!is.null(opt$plots)) { + plots <- unlist(strsplit(opt$plots, split = ",")) +} + +den_png <- make_out("densityplots.png") +den_pdf <- make_out("densityplots.pdf") +cpm_pdf <- make_out("cpmplots.pdf") +box_png <- make_out("boxplots.png") +box_pdf <- make_out("boxplots.pdf") +mdsscree_png <- make_out("mdsscree.png") +mdsscree_pdf <- make_out("mdsscree.pdf") +mdsx_pdf <- make_out("mdsplot_extra.pdf") +mdsx_png <- make_out("mdsplot_extra.png") +mdsam_pdf <- make_out("mdplots_samples.pdf") +md_pdf <- character() # Initialise character vector +vol_pdf <- character() +heat_pdf <- character() +strip_pdf <- character() +mdvol_png <- character() +top_out <- character() +glimma_out <- character() +for (i in seq_along(cons)) { + con <- cons[i] + con <- gsub("\\(|\\)", "", con) + md_pdf[i] <- make_out(paste0("mdplot_", con, ".pdf")) + vol_pdf[i] <- make_out(paste0("volplot_", con, ".pdf")) + heat_pdf[i] <- make_out(paste0("heatmap_", con, ".pdf")) + strip_pdf[i] <- make_out(paste0("stripcharts_", con, ".pdf")) + mdvol_png[i] <- make_out(paste0("mdvolplot_", con, ".png")) + top_out[i] <- make_out(paste0(de_method, "_", con, ".tsv")) + glimma_out[i] <- make_out(paste0("glimma_", con, "/MD-Plot.html")) +} +filt_out <- make_out(paste0(de_method, "_", "filtcounts")) +norm_out <- make_out(paste0(de_method, "_", "normcounts")) +rda_out <- make_out(paste0(de_method, "_analysis.RData")) +session_out <- make_out("session_info.txt") + +# Initialise data for html links and images, data frame with columns Label and +# Link +link_data <- data.frame(Label = character(), Link = character(), + stringsAsFactors = FALSE) +image_data <- data.frame(Label = character(), Link = character(), + stringsAsFactors = FALSE) + +# Initialise vectors for storage of up/down/neutral regulated counts +up_count <- numeric() +down_count <- numeric() +flat_count <- numeric() + +################################################################################ +### Data Processing +################################################################################ + +# Extract counts and annotation data +print("Extracting counts") +data <- list() +data$counts <- counts +if (have_anno) { + # order annotation by genes in counts (assumes gene ids are in 1st column of geneanno) + annoord <- geneanno[match(row.names(counts), geneanno[, 1]), ] + data$genes <- annoord +} else { + data$genes <- data.frame(GeneID = row.names(counts)) +} + +# Creating naming data +samplenames <- colnames(data$counts) +sampleanno <- data.frame("sampleID" = samplenames, factors) +row.names(factors) <- samplenames # for "Summary of experimental data" table + +# Creating colours for the groups +cols <- as.numeric(factors[, 1]) +col.group <- palette()[cols] + +# If filter crieteria set, filter out genes that do not have a required cpm/counts in a required number of +# samples. Default is no filtering +prefilter_count <- nrow(data$counts) +nsamples <- ncol(data$counts) + +if (filt_cpm || filt_smpcount || filt_totcount) { + + if (filt_totcount) { + keep <- rowSums(data$counts) >= opt$cntReq + } else if (filt_smpcount) { + keep <- rowSums(data$counts >= opt$cntReq) >= opt$sampleReq + } else if (filt_cpm) { + cpms <- cpm(data$counts) + thresh <- cpms >= opt$cpmReq + keep <- rowSums(thresh) >= opt$sampleReq + + if ("c" %in% plots) { + # Plot CPM vs raw counts (to check threshold) + pdf(cpm_pdf, width = 6.5, height = 10) + par(mfrow = c(3, 2)) + for (i in seq_len(nsamples)) { + plot(data$counts[, i], cpms[, i], xlim = c(0, 50), ylim = c(0, 3), main = samplenames[i], xlab = "Raw counts", ylab = "CPM") + abline(v = 10, col = "red", lty = 2, lwd = 2) + abline(h = opt$cpmReq, col = 4) + } + link_name <- "CpmPlots.pdf" + link_addr <- "cpmplots.pdf" + link_data <- rbind(link_data, data.frame(Label = link_name, Link = link_addr, stringsAsFactors = FALSE)) + invisible(dev.off()) + } + } + + data$counts <- data$counts[keep, ] + data$genes <- data$genes[keep, , drop = FALSE] + + if (want_filt) { + print("Outputting filtered counts") + filt_counts <- data.frame(data$genes, data$counts, check.names = FALSE) + write.table(filt_counts, file = filt_out, row.names = FALSE, sep = "\t", quote = FALSE) + link_data <- rbind(link_data, data.frame(Label = paste0(de_method, "_", "filtcounts.tsv"), Link = paste0(de_method, "_", "filtcounts"), stringsAsFactors = FALSE)) + } + + # Plot Density + if ("d" %in% plots) { + # PNG + png(den_png, width = 1000, height = 500) + par(mfrow = c(1, 2), cex.axis = 0.8) + + # before filtering + lcpm1 <- cpm(counts, log = TRUE) + plot(density(lcpm1[, 1]), col = col.group[1], lwd = 2, las = 2, main = "", xlab = "") + title(main = "Density Plot: Raw counts", xlab = "Log-cpm") + for (i in 2:nsamples) { + den <- density(lcpm1[, i]) + lines(den$x, den$y, col = col.group[i], lwd = 2) + } + + # after filtering + lcpm2 <- cpm(data$counts, log = TRUE) + plot(density(lcpm2[, 1]), col = col.group[1], lwd = 2, las = 2, main = "", xlab = "") + title(main = "Density Plot: Filtered counts", xlab = "Log-cpm") + for (i in 2:nsamples) { + den <- density(lcpm2[, i]) + lines(den$x, den$y, col = col.group[i], lwd = 2) + } + legend("topright", samplenames, text.col = col.group, bty = "n") + img_name <- "Densityplots.png" + img_addr <- "densityplots.png" + image_data <- rbind(image_data, data.frame(Label = img_name, Link = img_addr, stringsAsFactors = FALSE)) + invisible(dev.off()) + + # PDF + pdf(den_pdf, width = 14) + par(mfrow = c(1, 2), cex.axis = 0.8) + plot(density(lcpm1[, 1]), col = col.group[1], lwd = 2, las = 2, main = "", xlab = "") + title(main = "Density Plot: Raw counts", xlab = "Log-cpm") + for (i in 2:nsamples) { + den <- density(lcpm1[, i]) + lines(den$x, den$y, col = col.group[i], lwd = 2) + } + plot(density(lcpm2[, 1]), col = col.group[1], lwd = 2, las = 2, main = "", xlab = "") + title(main = "Density Plot: Filtered counts", xlab = "Log-cpm") + for (i in 2:nsamples) { + den <- density(lcpm2[, i]) + lines(den$x, den$y, col = col.group[i], lwd = 2) + } + legend("topright", samplenames, text.col = col.group, bty = "n") + link_name <- "DensityPlots.pdf" + link_addr <- "densityplots.pdf" + link_data <- rbind(link_data, data.frame(Label = link_name, Link = link_addr, stringsAsFactors = FALSE)) + invisible(dev.off()) + } +} + +postfilter_count <- nrow(data$counts) +filtered_count <- prefilter_count - postfilter_count + +# Generating the DGEList object "y" +print("Generating DGEList object") +data$samples <- sampleanno +data$samples$lib.size <- colSums(data$counts) # nolint +data$samples$norm.factors <- 1 +row.names(data$samples) <- colnames(data$counts) +y <- new("DGEList", data) + +print("Generating Design") +factor_list <- sapply(names(factors), paste_listname) +formula <- "~0" +for (i in seq_along(factor_list)) { + formula <- paste(formula, factor_list[i], sep = "+") +} +formula <- formula(formula) +design <- model.matrix(formula) +for (i in seq_along(factor_list)) { + colnames(design) <- gsub(factor_list[i], "", colnames(design), fixed = TRUE) +} + +# Calculating normalising factors +print("Calculating Normalisation Factors") +logcounts <- y #store for plots +y <- calcNormFactors(y, method = opt$normOpt) + +# Generate contrasts information +print("Generating Contrasts") +contrasts <- makeContrasts(contrasts = cons, levels = design) + +################################################################################ +### Data Output +################################################################################ + +# Plot Box plots (before and after normalisation) +if (opt$normOpt != "none" & "b" %in% plots) { + png(box_png, width = 1000, height = 500) + par(mfrow = c(1, 2), mar = c(6, 4, 2, 2) + 0.1) + labels <- colnames(counts) + + lcpm1 <- cpm(y$counts, log = TRUE) + boxplot(lcpm1, las = 2, col = col.group, xaxt = "n", xlab = "") + axis(1, at = seq_along(labels), labels = FALSE) + abline(h = median(lcpm1), col = 4) + text(x = seq_along(labels), y = par("usr")[3] - 1, srt = 45, adj = 1, labels = labels, xpd = TRUE) + title(main = "Box Plot: Unnormalised counts", ylab = "Log-cpm") + + lcpm2 <- cpm(y, log = TRUE) + boxplot(lcpm2, las = 2, col = col.group, xaxt = "n", xlab = "") + axis(1, at = seq_along(labels), labels = FALSE) + text(x = seq_along(labels), y = par("usr")[3] - 1, srt = 45, adj = 1, labels = labels, xpd = TRUE) + abline(h = median(lcpm2), col = 4) + title(main = "Box Plot: Normalised counts", ylab = "Log-cpm") + + img_name <- "Boxplots.png" + img_addr <- "boxplots.png" + image_data <- rbind(image_data, data.frame(Label = img_name, Link = img_addr, stringsAsFactors = FALSE)) + invisible(dev.off()) + + pdf(box_pdf, width = 14) + par(mfrow = c(1, 2), mar = c(6, 4, 2, 2) + 0.1) + boxplot(lcpm1, las = 2, col = col.group, xaxt = "n", xlab = "") + axis(1, at = seq_along(labels), labels = FALSE) + abline(h = median(lcpm1), col = 4) + text(x = seq_along(labels), y = par("usr")[3] - 1, srt = 45, adj = 1, labels = labels, xpd = TRUE) + title(main = "Box Plot: Unnormalised counts", ylab = "Log-cpm") + boxplot(lcpm2, las = 2, col = col.group, xaxt = "n", xlab = "") + axis(1, at = seq_along(labels), labels = FALSE) + text(x = seq_along(labels), y = par("usr")[3] - 1, srt = 45, adj = 1, labels = labels, xpd = TRUE) + abline(h = median(lcpm2), col = 4) + title(main = "Box Plot: Normalised counts", ylab = "Log-cpm") + link_name <- "BoxPlots.pdf" + link_addr <- "boxplots.pdf" + link_data <- rbind(link_data, data.frame(Label = link_name, Link = link_addr, stringsAsFactors = FALSE)) + invisible(dev.off()) +} + +# Plot MDS +print("Generating MDS plot") +labels <- names(counts) + +# Scree plot (Variance Explained) code copied from Glimma + +# get column of matrix +get_cols <- function(x, inds) { + x[, inds, drop = FALSE] +} + +x <- cpm(y, log = TRUE) +ndim <- nsamples - 1 +nprobes <- nrow(x) +top <- 500 +top <- min(top, nprobes) +cn <- colnames(x) +bad <- rowSums(is.finite(x)) < nsamples + +if (any(bad)) { + warning("Rows containing infinite values have been removed") + x <- x[!bad, , drop = FALSE] +} + +dd <- matrix(0, nrow = nsamples, ncol = nsamples, dimnames = list(cn, cn)) +topindex <- nprobes - top + 1L +for (i in 2L:(nsamples)) { + for (j in 1L:(i - 1L)) { + dists <- (get_cols(x, i) - get_cols(x, j))^2 + dists <- sort.int(dists, partial = topindex) + topdist <- dists[topindex:nprobes] + dd[i, j] <- sqrt(mean(topdist)) + } +} + +a1 <- suppressWarnings(cmdscale(as.dist(dd), k = min(ndim, 8), eig = TRUE)) +eigen <- data.frame(name = 1:min(ndim, 8), eigen = round(a1$eig[1:min(ndim, 8)] / sum(a1$eig), 2)) +png(mdsscree_png, width = 1000, height = 500) +par(mfrow = c(1, 2)) +plotMDS(y, labels = samplenames, col = as.numeric(factors[, 1]), main = "MDS Plot: Dims 1 and 2") +barplot(eigen$eigen, names.arg = eigen$name, main = "Scree Plot: Variance Explained", xlab = "Dimension", ylab = "Proportion", las = 1) +img_name <- paste0("MDSPlot_", names(factors)[1], ".png") +img_addr <- "mdsscree.png" +image_data <- rbind(image_data, data.frame(Label = img_name, Link = img_addr, stringsAsFactors = FALSE)) +invisible(dev.off()) + +pdf(mdsscree_pdf, width = 14) +par(mfrow = c(1, 2)) +plotMDS(y, labels = samplenames, col = as.numeric(factors[, 1]), main = "MDS Plot: Dims 1 and 2") +barplot(eigen$eigen, names.arg = eigen$name, main = "Scree Plot: Variance Explained", xlab = "Dimension", ylab = "Proportion", las = 1) +link_name <- paste0("MDSPlot_", names(factors)[1], ".pdf") +link_addr <- "mdsscree.pdf" +link_data <- rbind(link_data, data.frame(Label = link_name, Link = link_addr, stringsAsFactors = FALSE)) +invisible(dev.off()) + +# generate Glimma interactive MDS Plot +if ("i" %in% plots) { + Glimma::glMDSPlot(y, labels = samplenames, groups = factors[, 1], + folder = "glimma_MDS", launch = FALSE) + link_name <- "Glimma_MDSPlot.html" + link_addr <- "glimma_MDS/MDS-Plot.html" + link_data <- rbind(link_data, c(link_name, link_addr)) +} + +if ("x" %in% plots) { + png(mdsx_png, width = 1000, height = 500) + par(mfrow = c(1, 2)) + for (i in 2:3) { + dim1 <- i + dim2 <- i + 1 + plotMDS(y, dim = c(dim1, dim2), labels = samplenames, col = as.numeric(factors[, 1]), main = paste("MDS Plot: Dims", dim1, "and", dim2)) + } + img_name <- paste0("MDSPlot_extra.png") + img_addr <- paste0("mdsplot_extra.png") + image_data <- rbind(image_data, data.frame(Label = img_name, Link = img_addr, stringsAsFactors = FALSE)) + invisible(dev.off()) + + pdf(mdsx_pdf, width = 14) + par(mfrow = c(1, 2)) + for (i in 2:3) { + dim1 <- i + dim2 <- i + 1 + plotMDS(y, dim = c(dim1, dim2), labels = samplenames, col = as.numeric(factors[, 1]), main = paste("MDS Plot: Dims", dim1, "and", dim2)) + } + link_name <- "MDSPlot_extra.pdf" + link_addr <- "mdsplot_extra.pdf" + link_data <- rbind(link_data, data.frame(Label = link_name, Link = link_addr, stringsAsFactors = FALSE)) + invisible(dev.off()) +} + +if ("m" %in% plots) { + # Plot MD plots for individual samples + print("Generating MD plots for samples") + pdf(mdsam_pdf, width = 6.5, height = 10) + par(mfrow = c(3, 2)) + for (i in 1:nsamples) { + if (opt$normOpt != "none") { + plotMD(logcounts, column = i, main = paste(colnames(logcounts)[i], "(before)")) + abline(h = 0, col = "red", lty = 2, lwd = 2) + } + plotMD(y, column = i) + abline(h = 0, col = "red", lty = 2, lwd = 2) + } + link_name <- "MDPlots_Samples.pdf" + link_addr <- "mdplots_samples.pdf" + link_data <- rbind(link_data, c(link_name, link_addr)) + invisible(dev.off()) +} + + +if (want_trend) { + # limma-trend approach + logcpm <- cpm(y, log = TRUE, prior.count = opt$trend) + fit <- lmFit(logcpm, design) + fit$genes <- y$genes + fit <- contrasts.fit(fit, contrasts) + if (want_robust) { + fit <- eBayes(fit, trend = TRUE, robust = TRUE) + } else { + fit <- eBayes(fit, trend = TRUE, robust = FALSE) + } + + plot_data <- logcpm + + # Save normalised counts (log2cpm) + if (want_norm) { + write.table(logcpm, file = norm_out, row.names = TRUE, sep = "\t", quote = FALSE) + link_data <- rbind(link_data, c((paste0(de_method, "_", "normcounts.tsv")), (paste0(de_method, "_", "normcounts")))) + } +} else { + # limma-voom approach + + if (want_weight) { + voomwts_pdf <- make_out("voomwtsplot.pdf") + voomwts_png <- make_out("voomwtsplot.png") + # Creating voom data object and plot + png(voomwts_png, width = 1000, height = 500) + vdata <- voomWithQualityWeights(y, design = design, plot = TRUE) + img_name <- "VoomWithQualityWeightsPlot.png" + img_addr <- "voomwtsplot.png" + image_data <- rbind(image_data, c(img_name, img_addr)) + invisible(dev.off()) + + pdf(voomwts_pdf, width = 14) + vdata <- voomWithQualityWeights(y, design = design, plot = TRUE) + link_name <- "VoomWithQualityWeightsPlot.pdf" + link_addr <- "voomwtsplot.pdf" + link_data <- rbind(link_data, c(link_name, link_addr)) + invisible(dev.off()) + + # Generating fit data and top table with weights + wts <- vdata$weights + voomfit <- lmFit(vdata, design, weights = wts) + + } else { + voom_pdf <- make_out("voomplot.pdf") + voom_png <- make_out("voomplot.png") + # Creating voom data object and plot + png(voom_png, width = 500, height = 500) + vdata <- voom(y, design = design, plot = TRUE) + img_name <- "VoomPlot" + img_addr <- "voomplot.png" + image_data <- rbind(image_data, c(img_name, img_addr)) + invisible(dev.off()) + + pdf(voom_pdf) + vdata <- voom(y, design = design, plot = TRUE) + link_name <- "VoomPlot.pdf" + link_addr <- "voomplot.pdf" + link_data <- rbind(link_data, c(link_name, link_addr)) + invisible(dev.off()) + + # Generate voom fit + voomfit <- lmFit(vdata, design) + } + + # Save normalised counts (log2cpm) + if (want_norm) { + norm_counts <- data.frame(vdata$genes, vdata$E, check.names = FALSE) + write.table(norm_counts, file = norm_out, row.names = FALSE, sep = "\t", quote = FALSE) + link_data <- rbind(link_data, c((paste0(de_method, "_", "normcounts.tsv")), (paste0(de_method, "_", "normcounts")))) + } + + # Fit linear model and estimate dispersion with eBayes + voomfit <- contrasts.fit(voomfit, contrasts) + if (want_robust) { + fit <- eBayes(voomfit, robust = TRUE) + } else { + fit <- eBayes(voomfit, robust = FALSE) + } + plot_data <- vdata +} + +# plot final model mean-variance trend with plotSA +sa_png <- make_out("saplot.png") +sa_pdf <- make_out("saplot.pdf") + +png(sa_png, width = 500, height = 500) +plotSA(fit, main = "Final model: Mean-variance trend (SA Plot)") +img_name <- "SAPlot.png" +img_addr <- "saplot.png" +image_data <- rbind(image_data, c(img_name, img_addr)) +invisible(dev.off()) + +pdf(sa_pdf) +plotSA(fit, main = "Final model: Mean-variance trend (SA Plot)") +link_name <- "SAPlot.pdf" +link_addr <- "saplot.pdf" +link_data <- rbind(link_data, c(link_name, link_addr)) +invisible(dev.off()) + + # Save library size info +if (want_libinfo) { + efflibsize <- round(y$samples$lib.size * y$samples$norm.factors) + libsizeinfo <- cbind(y$samples, EffectiveLibrarySize = efflibsize) + libsizeinfo$lib.size <- round(libsizeinfo$lib.size) # nolint + names(libsizeinfo)[names(libsizeinfo) == "sampleID"] <- "SampleID" + names(libsizeinfo)[names(libsizeinfo) == "lib.size"] <- "LibrarySize" + names(libsizeinfo)[names(libsizeinfo) == "norm.factors"] <- "NormalisationFactor" + write.table(libsizeinfo, file = "libsizeinfo", row.names = FALSE, sep = "\t", quote = FALSE) +} + +print("Generating DE results") + +if (want_treat) { + print("Applying TREAT method") + if (want_robust) { + fit <- treat(fit, lfc = opt$lfcReq, robust = TRUE) + } else { + fit <- treat(fit, lfc = opt$lfcReq, robust = FALSE) + } +} + +status <- decideTests(fit, adjust.method = opt$pAdjOpt, p.value = opt$pValReq, + lfc = opt$lfcReq) +sum_status <- summary(status) + +for (i in seq_along(cons)) { + con_name <- cons[i] + con <- cons[i] + con <- gsub("\\(|\\)", "", con) + # Collect counts for differential expression + up_count[i] <- sum_status["Up", i] + down_count[i] <- sum_status["Down", i] + flat_count[i] <- sum_status["NotSig", i] + + # Write top expressions table + if (want_treat) { + top <- topTreat(fit, coef = i, adjust.method = opt$pAdjOpt, number = Inf, sort.by = "P") + } else{ + top <- topTable(fit, coef = i, adjust.method = opt$pAdjOpt, number = Inf, sort.by = "P") + } + write.table(top, file = top_out[i], row.names = FALSE, sep = "\t", quote = FALSE) + link_name <- paste0(de_method, "_", con, ".tsv") + link_addr <- paste0(de_method, "_", con, ".tsv") + link_data <- rbind(link_data, c(link_name, link_addr)) + + # Plot MD (log ratios vs mean average) using limma package on weighted + pdf(md_pdf[i]) + limma::plotMD(fit, status = status[, i], coef = i, + main = paste("MD Plot:", unmake_names(con)), + hl.col = alpha(c("firebrick", "blue"), 0.4), values = c(1, -1), + xlab = "Average Expression", ylab = "logFC") + abline(h = 0, col = "grey", lty = 2) + link_name <- paste0("MDPlot_", con, ".pdf") + link_addr <- paste0("mdplot_", con, ".pdf") + link_data <- rbind(link_data, c(link_name, link_addr)) + invisible(dev.off()) + + # Generate Glimma interactive Volcano, MD plot and tables, requires annotation file (assumes gene labels/symbols in 2nd column) + if ("i" %in% plots & have_anno) { + # make gene labels unique to handle NAs + geneanno <- y$genes + geneanno[, 2] <- make.unique(geneanno[, 2]) + + # use the logcpms for the counts + if (want_trend) { + cnts <- logcpm + } else{ + cnts <- vdata$E + } + + # MD plot + Glimma::glMDPlot(fit, coef = i, counts = cnts, anno = geneanno, groups = factors[, 1], + status = status[, i], sample.cols = col.group, + main = paste("MD Plot:", unmake_names(con)), side.main = colnames(y$genes)[2], + folder = paste0("glimma_", unmake_names(con)), launch = FALSE) + link_name <- paste0("Glimma_MDPlot_", con, ".html") + link_addr <- paste0("glimma_", con, "/MD-Plot.html") + link_data <- rbind(link_data, c(link_name, link_addr)) + + # Volcano plot + Glimma::glXYPlot(x = fit$coefficients[, i], y = -log10(fit$p.value[, i]), counts = cnts, anno = geneanno, groups = factors[, 1], + status = status[, i], sample.cols = col.group, + main = paste("Volcano Plot:", unmake_names(con)), side.main = colnames(y$genes)[2], + xlab = "logFC", ylab = "-log10(P-value)", + folder = paste0("glimma_volcano_", unmake_names(con)), launch = FALSE) + link_name <- paste0("Glimma_VolcanoPlot_", con, ".html") + link_addr <- paste0("glimma_volcano_", con, "/XY-Plot.html") + link_data <- rbind(link_data, c(link_name, link_addr)) + } + + # Plot Volcano + pdf(vol_pdf[i]) + if (have_anno) { + # labels must be in second column currently + labels <- fit$genes[, 2] + } else { + labels <- fit$genes$GeneID + } + limma::volcanoplot(fit, coef = i, + main = paste("Volcano Plot:", unmake_names(con)), + highlight = opt$topgenes, + names = labels) + link_name <- paste0("VolcanoPlot_", con, ".pdf") + link_addr <- paste0("volplot_", con, ".pdf") + link_data <- rbind(link_data, c(link_name, link_addr)) + invisible(dev.off()) + + # PNG of MD and Volcano + png(mdvol_png[i], width = 1000, height = 500) + par(mfrow = c(1, 2), mar = c(5, 4, 2, 2) + 0.1, oma = c(0, 0, 3, 0)) + + # MD plot + limma::plotMD(fit, status = status[, i], coef = i, main = "MD Plot", + hl.col = alpha(c("firebrick", "blue"), 0.4), values = c(1, -1), + xlab = "Average Expression", ylab = "logFC") + abline(h = 0, col = "grey", lty = 2) + + # Volcano + if (have_anno) { + # labels must be in second column currently + limma::volcanoplot(fit, coef = i, main = "Volcano Plot", + highlight = opt$topgenes, + names = fit$genes[, 2]) + } else { + limma::volcanoplot(fit, coef = i, main = "Volcano Plot", + highlight = opt$topgenes, + names = fit$genes$GeneID) + } + + img_name <- paste0("MDVolPlot_", con) + img_addr <- paste0("mdvolplot_", con, ".png") + image_data <- rbind(image_data, c(img_name, img_addr)) + title(paste0("Contrast: ", con_name), outer = TRUE, cex.main = 1.5) + invisible(dev.off()) + + if ("h" %in% plots) { + # Plot Heatmap + topgenes <- rownames(top[1:opt$topgenes, ]) + if (want_trend) { + topexp <- plot_data[topgenes, ] + } else { + topexp <- plot_data$E[topgenes, ] + } + pdf(heat_pdf[i]) + mycol <- colorpanel(1000, "blue", "white", "red") + if (have_anno) { + # labels must be in second column currently + labels <- top[topgenes, 2] + } else { + labels <- rownames(topexp) + } + heatmap.2(topexp, scale = "row", Colv = FALSE, Rowv = FALSE, dendrogram = "none", + main = paste("Contrast:", unmake_names(con), "\nTop", opt$topgenes, "genes by adj.P.Val"), + trace = "none", density.info = "none", lhei = c(2, 10), margin = c(8, 6), labRow = labels, cexRow = 0.7, srtCol = 45, + col = mycol, ColSideColors = col.group) + link_name <- paste0("Heatmap_", con, ".pdf") + link_addr <- paste0("heatmap_", con, ".pdf") + link_data <- rbind(link_data, c(link_name, link_addr)) + invisible(dev.off()) + } + + if ("s" %in% plots) { + # Plot Stripcharts of top genes + pdf(strip_pdf[i], title = paste("Contrast:", unmake_names(con))) + par(mfrow = c(3, 2), cex.main = 0.8, cex.axis = 0.8) + cols <- unique(col.group) + + for (j in seq_along(topgenes)) { + lfc <- round(top[topgenes[j], "logFC"], 2) + pval <- round(top[topgenes[j], "adj.P.Val"], 5) + if (want_trend) { + stripchart(plot_data[topgenes[j], ] ~ factors[, 1], vertical = TRUE, las = 2, pch = 16, cex = 0.8, cex.lab = 0.8, col = cols, + method = "jitter", ylab = "Normalised log2 expression", main = paste0(labels[j], "\nlogFC=", lfc, ", adj.P.Val=", pval)) + } else { + stripchart(plot_data$E[topgenes[j], ] ~ factors[, 1], vertical = TRUE, las = 2, pch = 16, cex = 0.8, cex.lab = 0.8, col = cols, + method = "jitter", ylab = "Normalised log2 expression", main = paste0(labels[j], "\nlogFC=", lfc, ", adj.P.Val=", pval)) + } + } + link_name <- paste0("Stripcharts_", con, ".pdf") + link_addr <- paste0("stripcharts_", con, ".pdf") + link_data <- rbind(link_data, c(link_name, link_addr)) + invisible(dev.off()) + } +} +sig_diff <- data.frame(Up = up_count, Flat = flat_count, Down = down_count) +row.names(sig_diff) <- cons + +# Save relevant items as rda object +if (want_rda) { + print("Saving RData") + if (want_weight) { + save(counts, data, y, status, plot_data, labels, factors, wts, fit, top, contrast_data, contrasts, design, + file = rda_out, ascii = TRUE) + } else { + save(counts, data, y, status, plot_data, labels, factors, fit, top, contrast_data, contrasts, design, + file = rda_out, ascii = TRUE) + } + link_data <- rbind(link_data, c((paste0(de_method, "_analysis.RData")), (paste0(de_method, "_analysis.RData")))) +} + +# Record session info +writeLines(capture.output(sessionInfo()), session_out) +link_data <- rbind(link_data, c("Session Info", "session_info.txt")) + +# Record ending time and calculate total run time +time_end <- as.character(Sys.time()) +time_taken <- capture.output(round(difftime(time_end, time_start), digits = 3)) +time_taken <- gsub("Time difference of ", "", time_taken, fixed = TRUE) +################################################################################ +### HTML Generation +################################################################################ + +# Clear file +cat("", file = opt$htmlPath) + +cata("\n") + +cata("\n") +cata("

    Limma Analysis Output:

    \n") +cata("Links to PDF copies of plots are in 'Plots' section below
    \n") + +for (i in seq_len(nrow(image_data))) { + if (grepl("density|box|mds|mdvol|wts", image_data$Link[i])) { + html_image(image_data$Link[i], image_data$Label[i], width = 1000) + } else { + html_image(image_data$Link[i], image_data$Label[i]) + } +} + +cata("

    Differential Expression Counts:

    \n") + +cata("\n") +cata("\n") +table_item() +for (i in colnames(sig_diff)) { + table_head_item(i) +} +cata("\n") +for (i in seq_len(nrow(sig_diff))) { + cata("\n") + table_head_item(unmake_names(row.names(sig_diff)[i])) + for (j in seq_len(ncol(sig_diff))) { + table_item(as.character(sig_diff[i, j])) + } + cata("\n") +} +cata("
    ") + +cata("

    Plots:

    \n") +#PDFs +for (i in seq_len(nrow(link_data))) { + if (grepl(".pdf", link_data$Link[i]) & grepl("density|cpm|boxplot|mds|mdplots|voom|saplot", link_data$Link[i])) { + html_link(link_data$Link[i], link_data$Label[i]) + } +} + +for (i in seq_len(nrow(link_data))) { + if (grepl("mdplot_", link_data$Link[i])) { + html_link(link_data$Link[i], link_data$Label[i]) + } +} + +for (i in seq_len(nrow(link_data))) { + if (grepl("volplot", link_data$Link[i])) { + html_link(link_data$Link[i], link_data$Label[i]) + } +} + +for (i in seq_len(nrow(link_data))) { + if (grepl("heatmap", link_data$Link[i])) { + html_link(link_data$Link[i], link_data$Label[i]) + } +} + +for (i in seq_len(nrow(link_data))) { + if (grepl("stripcharts", link_data$Link[i])) { + html_link(link_data$Link[i], link_data$Label[i]) + } +} + +cata("

    Tables:

    \n") +for (i in seq_len(nrow(link_data))) { + if (grepl("counts$", link_data$Link[i])) { + html_link(link_data$Link[i], link_data$Label[i]) + } else if (grepl(".tsv", link_data$Link[i])) { + html_link(link_data$Link[i], link_data$Label[i]) + } +} + +if (want_rda) { + cata("

    R Data Object:

    \n") + for (i in seq_len(nrow(link_data))) { + if (grepl(".RData", link_data$Link[i])) { + html_link(link_data$Link[i], link_data$Label[i]) + } + } +} + +if ("i" %in% plots) { + cata("

    Glimma Interactive Results:

    \n") + for (i in seq_len(nrow(link_data))) { + if (grepl("glimma", link_data$Link[i])) { + html_link(link_data$Link[i], link_data$Label[i]) + } + } +} + +cata("

    Alt-click links to download file.

    \n") +cata("

    Click floppy disc icon associated history item to download ") +cata("all files.

    \n") +cata("

    .tsv files can be viewed in Excel or any spreadsheet program.

    \n") + +cata("

    Additional Information

    \n") +cata("
      \n") + +if (filt_cpm || filt_smpcount || filt_totcount) { + if (filt_cpm) { + temp_str <- paste("Genes without more than", opt$cpmReq, + "CPM in at least", opt$sampleReq, "samples are insignificant", + "and filtered out.") + } else if (filt_smpcount) { + temp_str <- paste("Genes without more than", opt$cntReq, + "counts in at least", opt$sampleReq, "samples are insignificant", + "and filtered out.") + } else if (filt_totcount) { + temp_str <- paste("Genes without more than", opt$cntReq, + "counts, after summing counts for all samples, are insignificant", + "and filtered out.") + } + + list_item(temp_str) + filter_prop <- round(filtered_count / prefilter_count * 100, digits = 2) + temp_str <- paste0(filtered_count, " of ", prefilter_count, " (", filter_prop, + "%) genes were filtered out for low expression.") + list_item(temp_str) +} +list_item(opt$normOpt, " was the method used to normalise library sizes.") +if (want_trend) { + list_item("The limma-trend method was used.") +} else { + list_item("The limma-voom method was used.") +} +if (want_weight) { + list_item("Weights were applied to samples.") +} else { + list_item("Weights were not applied to samples.") +} +if (want_treat) { + list_item(paste("Testing significance relative to a fold-change threshold (TREAT) was performed using a threshold of log2 =", opt$lfcReq, "at FDR of", opt$pValReq, ".")) +} +if (want_robust) { + if (want_treat) { + list_item("TREAT was used with robust settings (robust = TRUE).") + } else { + list_item("eBayes was used with robust settings (robust = TRUE).") + } +} +if (opt$pAdjOpt != "none") { + if (opt$pAdjOpt == "BH" || opt$pAdjOpt == "BY") { + temp_str <- paste0("MD Plot highlighted genes are significant at FDR ", + "of ", opt$pValReq, " and exhibit log2-fold-change of at ", + "least ", opt$lfcReq, ".") + list_item(temp_str) + } else if (opt$pAdjOpt == "holm") { + temp_str <- paste0("MD Plot highlighted genes are significant at adjusted ", + "p-value of ", opt$pValReq, " by the Holm(1979) ", + "method, and exhibit log2-fold-change of at least ", + opt$lfcReq, ".") + list_item(temp_str) + } + } else { + temp_str <- paste0("MD Plot highlighted genes are significant at p-value ", + "of ", opt$pValReq, " and exhibit log2-fold-change of at ", + "least ", opt$lfcReq, ".") + list_item(temp_str) +} +cata("
    \n") + +cata("

    Summary of experimental data:

    \n") + +cata("

    *CHECK THAT SAMPLES ARE ASSOCIATED WITH CORRECT GROUP(S)*

    \n") + +cata("\n") +cata("\n") +table_head_item("SampleID") +table_head_item(names(factors)[1], " (Primary Factor)") + +if (ncol(factors) > 1) { + for (i in names(factors)[2:length(names(factors))]) { + table_head_item(i) + } + cata("\n") +} + +for (i in seq_len(nrow(factors))) { + cata("\n") + table_head_item(row.names(factors)[i]) + for (j in seq_len(ncol(factors))) { + table_item(as.character(unmake_names(factors[i, j]))) + } + cata("\n") +} +cata("
    ") + +cit <- character() +link <- character() +link[1] <- paste0("", "limma User's Guide", ".") + +link[2] <- paste0("", "edgeR User's Guide", "") + +cit[1] <- paste("Please cite the following paper for this tool:") + +cit[2] <- paste("Liu R, Holik AZ, Su S, Jansz N, Chen K, Leong HS, Blewitt ME,", + "Asselin-Labat ML, Smyth GK, Ritchie ME (2015). Why weight? ", + "Modelling sample and observational level variability improves power ", + "in RNA-seq analyses. Nucleic Acids Research, 43(15), e97.") + +cit[3] <- paste("Please cite the paper below for the limma software itself.", + "Please also try to cite the appropriate methodology articles", + "that describe the statistical methods implemented in limma,", + "depending on which limma functions you are using. The", + "methodology articles are listed in Section 2.1 of the", + link[1], + "Cite no. 3 only if sample weights were used.") +cit[4] <- paste("Smyth GK (2005). Limma: linear models for microarray data.", + "In: 'Bioinformatics and Computational Biology Solutions using", + "R and Bioconductor'. R. Gentleman, V. Carey, S. doit,.", + "Irizarry, W. Huber (eds), Springer, New York, pages 397-420.") +cit[5] <- paste("Please cite the first paper for the software itself and the", + "other papers for the various original statistical methods", + "implemented in edgeR. See Section 1.2 in the", link[2], + "for more detail.") +cit[6] <- paste("Robinson MD, McCarthy DJ and Smyth GK (2010). edgeR: a", + "Bioconductor package for differential expression analysis", + "of digital gene expression data. Bioinformatics 26, 139-140") +cit[7] <- paste("Robinson MD and Smyth GK (2007). Moderated statistical tests", + "for assessing differences in tag abundance. Bioinformatics", + "23, 2881-2887") +cit[8] <- paste("Robinson MD and Smyth GK (2008). Small-sample estimation of", + "negative binomial dispersion, with applications to SAGE data.", + "Biostatistics, 9, 321-332") +cit[9] <- paste("McCarthy DJ, Chen Y and Smyth GK (2012). Differential", + "expression analysis of multifactor RNA-Seq experiments with", + "respect to biological variation. Nucleic Acids Research 40,", + "4288-4297") +cit[10] <- paste("Law CW, Chen Y, Shi W, and Smyth GK (2014). Voom:", + "precision weights unlock linear model analysis tools for", + "RNA-seq read counts. Genome Biology 15, R29.") +cit[11] <- paste("Ritchie ME, Diyagama D, Neilson J, van Laar R,", + "Dobrovic A, Holloway A and Smyth GK (2006).", + "Empirical array quality weights for microarray data.", + "BMC Bioinformatics 7, Article 261.") +cata("

    Citations

    \n") +cata(cit[1], "\n") +cata("
    \n") +cata(cit[2], "\n") + +cata("

    limma

    \n") +cata(cit[3], "\n") +cata("
      \n") +list_item(cit[4]) +list_item(cit[10]) +list_item(cit[11]) +cata("
    \n") + +cata("

    edgeR

    \n") +cata(cit[5], "\n") +cata("
      \n") +list_item(cit[6]) +list_item(cit[7]) +list_item(cit[8]) +list_item(cit[9]) +cata("
    \n") + +cata("

    Please report problems or suggestions to: su.s@wehi.edu.au

    \n") + +for (i in seq_len(nrow(link_data))) { + if (grepl("session_info", link_data$Link[i])) { + html_link(link_data$Link[i], link_data$Label[i]) + } +} + +cata("\n") +cata("\n") +table_item("Task started at:"); table_item(time_start) +cata("\n") +cata("\n") +table_item("Task ended at:"); table_item(time_end) +cata("\n") +cata("\n") +table_item("Task run time:"); table_item(time_taken) +cata("\n") +cata("
    \n") + +cata("\n") +cata("") diff --git a/janis_core/tests/data/galaxy/wrappers/limma_voom-d6f5fa4ee473/limma_voom.xml b/janis_core/tests/data/galaxy/wrappers/limma_voom-d6f5fa4ee473/limma_voom.xml new file mode 100644 index 000000000..4399213bc --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/limma_voom-d6f5fa4ee473/limma_voom.xml @@ -0,0 +1,1028 @@ + + + Perform differential expression with limma-voom or limma-trend + + + 3.50.1 + + + limma + + + topic_3308 + + + operation_3563 + operation_3223 + + + + bioconductor-limma + bioconductor-edger + r-statmod + r-scales + r-rjson + r-getopt + r-gplots + bioconductor-glimma + + + /dev/null | grep -v -i "WARNING: ")", edgeR version" $(R --vanilla --slave -e "library(edgeR); cat(sessionInfo()\$otherPkgs\$edgeR\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", statmod version" $(R --vanilla --slave -e "library(statmod); cat(sessionInfo()\$otherPkgs\$statmod\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", scales version" $(R --vanilla --slave -e "library(scales); cat(sessionInfo()\$otherPkgs\$scales\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", rjson version" $(R --vanilla --slave -e "library(rjson); cat(sessionInfo()\$otherPkgs\$rjson\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", getopt version" $(R --vanilla --slave -e "library(getopt); cat(sessionInfo()\$otherPkgs\$getopt\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", gplots version" $(R --vanilla --slave -e "library(gplots); cat(sessionInfo()\$otherPkgs\$gplots\$Version)" 2> /dev/null | grep -v -i "WARNING: ")", Glimma version" $(R --vanilla --slave -e "library(Glimma); cat(sessionInfo()\$otherPkgs\$Glimma\$Version)" 2> /dev/null | grep -v -i "WARNING: ") + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ^[\w]+$ + + + + ^[\w,]+$ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ^[\(\w\)-]+$ + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + + + + + + + + + + + + + + + + + + +
    + + +
    + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + out['filtCounts'] + + + out['normCounts'] + + + out['rscript'] + + + out['libinfo'] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 10.1186/gb-2014-15-2-r29 + 10.1093/nar/gkv412 + +
    diff --git a/janis_core/tests/data/galaxy/wrappers/multiqc-1c2db0054039/generate_test_data.sh b/janis_core/tests/data/galaxy/wrappers/multiqc-1c2db0054039/generate_test_data.sh new file mode 100644 index 000000000..caacd7bbc --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/multiqc-1c2db0054039/generate_test_data.sh @@ -0,0 +1,201 @@ +#!/usr/bin/env bash + +# 1st test +mkdir -p 'multiqc_WDir/cutadapt' +cp 'test-data/cutadapt.txt' 'multiqc_WDir/cutadapt/cutadapt.txt' +sed -i.old 's/You are running/This is/' 'multiqc_WDir/cutadapt/cutadapt.txt' + +mkdir -p 'multiqc_WDir/fastqc/data_0/file_0' +cp 'test-data/fastqc_1.txt' 'multiqc_WDir/fastqc/data_0/file_0/fastqc_data.txt' +mkdir -p 'multiqc_WDir/fastqc/data_0/file_1' +cp 'test-data/fastqc_2.txt' 'multiqc_WDir/fastqc/data_0/file_1/fastqc_data.txt' + +mkdir -p 'multiqc_WDir/flexbar' +cp 'test-data/flexbar.txt' 'multiqc_WDir/flexbar/flexbar.txt' + +mkdir -p 'multiqc_WDir/sortmerna' +cp 'test-data/sortmerna.txt' 'multiqc_WDir/sortmerna/sortmerna.txt' + +mkdir -p 'multiqc_WDir/trimmomatic' +cp 'test-data/trimmomatic.txt' 'multiqc_WDir/trimmomatic/trimmomatic.txt' + +multiqc multiqc_WDir + +mv 'multiqc_report.html' 'test-data/pre_alignment_soft_report.html' +mv 'multiqc_data/multiqc.log' 'test-data/pre_alignment_soft_log.txt' +mv 'multiqc_data/multiqc_cutadapt.txt' 'test-data/cutadapt_stats.tabular' +mv 'multiqc_data/multiqc_fastqc.txt' 'test-data/fastqc_stats.tabular' +mv 'multiqc_data/multiqc_flexbar.txt' 'test-data/flexbar_stats.tabular' +mv 'multiqc_data/multiqc_general_stats.txt' 'test-data/pre_alignment_soft_stats.tabular' +mv 'multiqc_data/multiqc_sortmerna.txt' 'test-data/sortmerna_stats.tabular' +mv 'multiqc_data/multiqc_trimmomatic.txt' 'test-data/trimmomatic_stats.tabular' + +rm -rf 'multiqc_WDir' +rm -rf 'multiqc_data/' + +# 2nd test +mkdir -p 'multiqc_WDir/bismark' +cp 'test-data/bismark.txt' 'multiqc_WDir/bismark/bismark_SE_report.txt' + +mkdir -p 'multiqc_WDir/bowtie2' +cp 'test-data/bowtie2_1.txt' 'multiqc_WDir/bowtie2/bowtie2_1.txt' +cp 'test-data/bowtie2_2.txt' 'multiqc_WDir/bowtie2/bowtie2_2.txt' + +mkdir -p 'multiqc_WDir/hisat2' +cp 'test-data/hisat2_1.txt' 'multiqc_WDir/hisat2/hisat2_1.txt' +cp 'test-data/hisat2_2.txt' 'multiqc_WDir/hisat2/hisat2_2.txt' + +mkdir -p 'multiqc_WDir/hicexplorer' +cp 'test-data/hicexplorer1.log' 'multiqc_WDir/hicexplorer/hicexplorer1' +cp 'test-data/hicexplorer1.log' 'multiqc_WDir/hicexplorer/hicexplorer1_1' +cp 'test-data/hicexplorer2.log' 'multiqc_WDir/hicexplorer/hicexplorer2' + +mkdir -p 'multiqc_WDir/kallisto' +cp 'test-data/kallisto_1.txt' 'multiqc_WDir/kallisto/kallisto_1.txt' +cp 'test-data/kallisto_2.txt' 'multiqc_WDir/kallisto/kallisto_2.txt' + +#mkdir -p 'multiqc_WDir/salmon/fld_0/file_0' +#cp 'test-data/salmon_flenDist.txt' 'multiqc_WDir/salmon/fld_0/file_0/flenDist.txt' +#mkdir -p 'multiqc_WDir/salmon/fld_1/file_0' +#cp 'test-data/salmon_meta_info.json' 'multiqc_WDir/salmon/fld_1/file_0/meta_info.json' + +mkdir -p 'multiqc_WDir/star/log_0' +cp 'test-data/star_log.txt' 'multiqc_WDir/star/log_0/star_log_Log.final.out' +mkdir -p 'multiqc_WDir/star/genecounts_1' +cp 'test-data/star_counts.txt' 'multiqc_WDir/star/genecounts_1/star_counts_ReadsPerGene.out.tab' + +mkdir -p 'multiqc_WDir/tophat' +cp 'test-data/tophat.txt' 'multiqc_WDir/tophat/tophat_align_summary.txt' + +multiqc multiqc_WDir + +mv 'multiqc_report.html' 'test-data/aligner_soft_report.html' +mv 'multiqc_data/multiqc_bismark_alignment.txt' 'test-data/bismark_stats.tabular' +mv 'multiqc_data/multiqc_bowtie2.txt' 'test-data/bowtie2_stats.tabular' +mv 'multiqc_data/multiqc_general_stats.txt' 'test-data/aligner_soft_stats.tabular' +mv 'multiqc_data/multiqc_hisat2.txt' 'test-data/hisat2_stats.tabular' +mv 'multiqc_data/multiqc_kallisto.txt' 'test-data/kallisto_stats.tabular' +mv 'multiqc_data/multiqc_star.txt' 'test-data/star_stats.tabular' +mv 'multiqc_data/multiqc_tophat.txt.txt' 'test-data/tophat_stats.tabular' + +rm -rf 'multiqc_WDir' +rm -rf 'multiqc_data/' + +# 3rd test +mkdir -p 'multiqc_WDir/bamtools' +cp 'test-data/bamtools.txt' 'multiqc_WDir/bamtools/bamtools.txt' + +mkdir -p 'multiqc_WDir/bcftools' +cp 'test-data/bcftools.txt' 'multiqc_WDir/bcftools/bcftools.txt' + +mkdir -p 'multiqc_WDir/busco' +cp 'test-data/busco.txt' 'multiqc_WDir/busco/short_summary_busco.txt' + +mkdir -p 'multiqc_WDir/deeptools' +cp 'test-data/deeptools_bamPEFragmentSize.txt' 'multiqc_WDir/deeptools/' +cp 'test-data/deeptools_estimateReadFiltering.txt' 'multiqc_WDir/deeptools/' +cp 'test-data/deeptools_plotCoverageOutRawCounts.txt' 'multiqc_WDir/deeptools/' +cp 'test-data/deeptools_plotCoverageStdout.txt' 'multiqc_WDir/deeptools/' +cp 'test-data/deeptools_plotEnrichment.txt' 'multiqc_WDir/deeptools/' +cp 'test-data/deeptools_plotFingerprintOutRawCounts.txt' 'multiqc_WDir/deeptools/' + +mkdir -p 'multiqc_WDir/featureCounts' +cp 'test-data/featureCounts.txt' 'multiqc_WDir/featureCounts/featureCounts.summary' + +mkdir -p 'multiqc_WDir/gatk' +cp 'test-data/gatk_BaseRecalibrator.txt' 'multiqc_WDir/gatk/gatk_BaseRecalibrator.txt' +cp 'test-data/gatk_varianteval.txt' 'multiqc_WDir/gatk/gatk_varianteval.txt' + +mkdir -p 'multiqc_WDir/htseq' +cp 'test-data/htseq.txt' 'multiqc_WDir/htseq/htseq.txt' + +mkdir -p 'multiqc_WDir/picard' +cp 'test-data/picard_collectGcBias.txt' 'multiqc_WDir/picard/picard_collectGcBias.txt' +cp 'test-data/picard_CollectInsertSizeMetrics.txt' 'multiqc_WDir/picard/picard_CollectInsertSizeMetrics.txt' +cp 'test-data/picard_MarkDuplicates.txt' 'multiqc_WDir/picard/picard_MarkDuplicates.txt' +cp 'test-data/picard_CollectBaseDistributionByCycle.txt' 'multiqc_WDir/picard/picard_CollectBaseDistributionByCycle.txt' +cp 'test-data/picard_CollectRnaSeqMetrics.txt' 'multiqc_WDir/picard/picard_CollectRnaSeqMetrics.txt' +cp 'test-data/picard_CollectAlignmentSummaryMetrics.txt' 'multiqc_WDir/picard/picard_CollectAlignmentSummaryMetrics.txt' + +mkdir -p 'multiqc_WDir/prokka' +cp 'test-data/prokka_1.txt' 'multiqc_WDir/prokka/prokka_1.txt' +cp 'test-data/prokka_2.txt' 'multiqc_WDir/prokka/prokka_2.txt' + +mkdir -p 'multiqc_WDir/quast/file_0' +cp 'test-data/quast.tsv' 'multiqc_WDir/quast/file_0/report.tsv' + +#mkdir -p 'multiqc_WDir/rsem' +#cp 'test-data/rsem.txt' 'multiqc_WDir/rsem/rsem.cnt' + +mkdir -p 'multiqc_WDir/rseqc/read_gc_0' +cp 'test-data/rseqc.txt' 'multiqc_WDir/rseqc/read_gc_0/rseq.GC.xls' + +mkdir -p 'multiqc_WDir/samblaster' +cp 'test-data/samblaster.txt' 'multiqc_WDir/samblaster/samblaster.txt' + +mkdir -p 'multiqc_WDir/samtools/stats_0' +cp 'test-data/samtools_stats.txt' 'multiqc_WDir/samtools/stats_0/samtools_stats.txt' +mkdir -p 'multiqc_WDir/samtools/flagstat_1' +cp 'test-data/samtools_flagstat.txt' 'multiqc_WDir/samtools/flagstat_1/samtools_flagstat.txt' +mkdir -p 'multiqc_WDir/samtools/idxstats_2' +cp 'test-data/samtools_flagstat.txt' 'multiqc_WDir/samtools/idxstats_2/samtools_idxstats_idxstat' + +mkdir -p 'multiqc_WDir/snpeff' +cp 'test-data/snpeff.csv' 'multiqc_WDir/snpeff/snpeff.txt' + +mkdir -p 'multiqc_WDir/vcftools/tstv_by_qual_0' +cp 'test-data/vcftools.txt' 'multiqc_WDir/vcftools/tstv_by_qual_0/vcftools.TsTv.qual' + +multiqc multiqc_WDir + +mv 'multiqc_report.html' 'test-data/post_aligner_soft_report.html' +mv 'multiqc_data/multiqc_bamtools_stats.txt' 'test-data/bamtools_stats.tabular' +mv 'multiqc_data/multiqc_bcftools_stats.txt' 'test-data/bcftools_stats.tabular' +mv 'multiqc_data/multiqc_busco.txt' 'test-data/busco_stats.tabular' +mv 'multiqc_data/multiqc_featureCounts.txt' 'test-data/featureCounts_stats.tabular' +mv 'multiqc_data/multiqc_gatk_varianteval.txt' 'test-data/gatk_varianteval_stats.tabular' +mv 'multiqc_data/multiqc_general_stats.txt' 'test-data/post_aligner_soft_stats.tabular' +mv 'multiqc_data/multiqc_htseq.txt' 'test-data/htseq_stats.tabular' +mv 'multiqc_data/multiqc_picard_AlignmentSummaryMetrics.txt' 'test-data/picard_AlignmentSummaryMetrics_stats.tabular' +mv 'multiqc_data/multiqc_picard_RnaSeqMetrics.txt' 'test-data/picard_RnaSeqMetrics_stats.tabular' +mv 'multiqc_data/multiqc_picard_baseContent.txt' 'test-data/picard_baseContent_stats.tabular' +mv 'multiqc_data/multiqc_picard_dups.txt' 'test-data/picard_dups_stats.tabular' +mv 'multiqc_data/multiqc_picard_insertSize.txt' 'test-data/picard_insertSize_stats.tabular' +mv 'multiqc_data/multiqc_prokka.txt' 'test-data/prokka_stats.tabular' +mv 'multiqc_data/multiqc_quast.txt' 'test-data/quast_stats.tabular' +#mv 'multiqc_data/multiqc_rsem.txt' 'test-data/rsem_stats.tabular' +mv 'multiqc_data/multiqc_samblaster.txt' 'test-data/samblaster_stats.tabular' +mv 'multiqc_data/multiqc_samtools_flagstat.txt' 'test-data/samtools_flagstat_stats.tabular' +mv 'multiqc_data/multiqc_samtools_stats.txt' 'test-data/samtools_stats_stats.tabular' +mv 'multiqc_data/multiqc_snpeff.txt' 'test-data/snpeff_stats.tabular' + +rm -rf 'multiqc_WDir' +rm -rf 'multiqc_data/' + +# 4th test +mkdir -p 'multiqc_WDir/custom_content_0' +cp 'test-data/cc_ko15.bpc.tab' 'multiqc_WDir/custom_content_0/file_0_0.tsv' +cp 'test-data/cc_wt15.bpc.tab' 'multiqc_WDir/custom_content_0/file_0_1.tsv' + +echo "custom_data:" > 'config_file' +echo " section_0:" >> 'config_file' +echo " file_format: 'tsv'" >> 'config_file' +echo " section_name: 'BPC'" >> 'config_file' +echo " title: 'Base peak chromatogram'" >> 'config_file' +echo " description: 'Sum of intensity (Y) of the most intense peaks at each retention time(X)'" >> 'config_file' +echo " plot_type: 'linegraph'" >> 'config_file' +echo " pconfig:" >> 'config_file' +echo " id: 'section_0_linegraph'" >> 'config_file' +echo " ylab: 'Base Peak Intensity'" >> 'config_file' +echo " xlab: 'Retention Time'" >> 'config_file' +echo "sp:" >> 'config_file' +echo " section_0:" >> 'config_file' +echo " fn: 'file_0_*'" >> 'config_file' + +multiqc multiqc_WDir -c 'config_file' + +mv 'multiqc_report.html' 'test-data/report_manual_custom_content.html' + +rm 'config_file' +rm -rf 'multiqc_WDir' +rm -rf 'multiqc_data/' diff --git a/janis_core/tests/data/galaxy/wrappers/multiqc-1c2db0054039/multiqc.xml b/janis_core/tests/data/galaxy/wrappers/multiqc-1c2db0054039/multiqc.xml new file mode 100644 index 000000000..677444968 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/multiqc-1c2db0054039/multiqc.xml @@ -0,0 +1,1227 @@ + + aggregate results from bioinformatics analyses into a single report + + 1.6 + + + + + + + + + + + + + + + + + multiqc + + multiqc --version + +&2 ; exit 1; } && + +mkdir multiqc_WDir && + +#set $configfile="F" + +#for $i, $repeat in enumerate( $results ) + #set software_dir = os.path.join('multiqc_WDir', str($repeat.software_cond.software) + '_' + str($i)) + mkdir $software_dir && + + #if str($repeat.software_cond.software) == "bamtools" + #set $pattern = "Stats for BAM file(s)" + @LN_FILES@ + #elif str($repeat.software_cond.software) == "bcftools" + #set $pattern = "This file was produced by bcftools stats" + @LN_FILES@ + #elif str($repeat.software_cond.software) == "bismark" + #for $j, $repeat2 in enumerate( $repeat.software_cond.output ) + @CREATE_REPEAT_DIR_1@ + #if str($repeat2.type) == "align" + #for $file in $repeat2.input + @ESCAPE_IDENTIFIER@ + #set file_path = os.path.join($repeat_dir, str($identifier) + '_SE_report.txt') + ln -s '$file' '$file_path' && + #end for + #elif str($repeat2.type) == "dedup" + #for $file in $repeat2.input + @ESCAPE_IDENTIFIER@ + #set file_path = os.path.join($repeat_dir, str($identifier) + '_deduplication_report.txt') + ln -s '$file' '$file_path' && + #end for + #elif str($repeat2.type) == "meth_extract" + #for $file in $repeat2.input + @ESCAPE_IDENTIFIER@ + #set file_path = os.path.join($repeat_dir, str($identifier) + '_splitting_report.txt') + ln -s '$file' '$file_path' && + #end for + #elif str($repeat2.type) == "m_bias" + #for $file in $repeat2.input + @ESCAPE_IDENTIFIER@ + #set file_path = os.path.join($repeat_dir, str($identifier) + '_M-bias.txt') + ln -s '$file' '$file_path' && + #end for + #elif str($repeat2.type) == "bam2nuc" + #for $file in $repeat2.input + @ESCAPE_IDENTIFIER@ + #set file_path = os.path.join($repeat_dir, str($identifier) + '.nucleotide_stats.txt') + ln -s '$file' '$file_path' && + #end for + #end if + #end for + #elif str($repeat.software_cond.software) == "bowtie2" + #set $pattern = "reads; of these:" + @LN_FILES@ + #elif str($repeat.software_cond.software) == "busco" + ## Searches for files "short_summary_[samplename].txt" + #for $file in $repeat.software_cond.input + @ESCAPE_IDENTIFIER@ + #set file_path = os.path.join($software_dir, 'short_summary_' + str($identifier)) + ln -s '$file' '$file_path' && + #end for + #elif str($repeat.software_cond.software) == "cutadapt" + #set $pattern = "This is cutadapt" + #for $file in $repeat.software_cond.input + @ESCAPE_IDENTIFIER@ + #set file_path = os.path.join($software_dir, str($identifier) + '.txt') + ln -s '$file' '$file_path' && + ## replace header for old cutadapt release + sed -i.old 's/You are running/This is/' '$file_path' && + grep -q "$pattern" '$file_path' || die "'$pattern' or 'You are running cutadapt' not found in the file" && + #end for + #elif str($repeat.software_cond.software) == "deeptools" + #for $j, $repeat2 in enumerate( $repeat.software_cond.output ) + #if str($repeat2.type) == "bamPEFragmentSize" + #set $pattern = "Frag." + @LN_2_FILES@ + #elif str($repeat2.type) == "estimateReadFiltering" + #set $pattern = "Internally-determined Duplicate" + @LN_2_FILES@ + #elif str($repeat2.type) == "plotCoverageStdout" + #set $pattern = "sample" + @LN_2_FILES@ + #elif str($repeat2.type) == "plotCoverageOutRawCounts" + #set $pattern = "#plotCoverage --outRawCounts" + @LN_2_FILES@ + #elif str($repeat2.type) == "plotEnrichment" + #set $pattern = "featureReadCount" + @LN_2_FILES@ + #elif str($repeat2.type) == "plotFingerprintOutRawCounts" + #set $pattern = "#plotFingerprint --outRawCounts" + @LN_2_FILES@ + #end if + #end for + #elif str($repeat.software_cond.software) == "fastp" + #set $pattern = "report_title" + #for $file in $repeat.software_cond.input + @ESCAPE_IDENTIFIER@ + #set file_path = os.path.join($software_dir, str($identifier) + 'fastp.json') + ln -s '$file' '$file_path' && + grep -q "$pattern" '$file_path' || die "'$pattern' or 'report_title' not found in the file" && + #end for + #elif str($repeat.software_cond.software) == "fastqc" + #for $j, $repeat2 in enumerate( $repeat.software_cond.output ) + @CREATE_REPEAT_DIR_1@ + #if str($repeat2.type) == "data" + #for $k, $file in enumerate($repeat2.input) + #set file_dir = os.path.join($repeat_dir, 'file_' + str($k)) + #set file_path = os.path.join($file_dir, 'fastqc_data.txt') + mkdir '$file_dir' && + ln -s '$file' '$file_path' && + #end for + #elif str($repeat2.type) == "theoretical_gc" + #for $file in $repeat2.input + @ESCAPE_IDENTIFIER@ + #set file_path = os.path.join($repeat_dir, str($identifier) + '_fastqc_theoretical_gc') + ln -s '$file' '$file_path' && + #end for + #end if + #end for + #elif str($repeat.software_cond.software) == "featureCounts" + #for $file in $repeat.software_cond.input + @ESCAPE_IDENTIFIER@ + #set file_prefix = os.path.join($software_dir, str($identifier)) + if grep -qw Status '$file'; then + ln -s '$file' '${file_prefix}.summary'; + else + echo -e 'Status\t${identifier}' > '${file_prefix}.summary'; + cat '$file' >> '${file_prefix}.summary'; + fi && + #end for + #elif str($repeat.software_cond.software) == "flexbar" + #set $pattern = "flexible barcode and adapter removal" + @LN_FILES@ + #elif str($repeat.software_cond.software) == "gatk" + #for $j, $repeat2 in enumerate( $repeat.software_cond.output ) + #if str($repeat2.type) == "varianteval" + #set $pattern = "#:GATKTable:TiTvVariantEvaluator" + @LN_2_FILES@ + #elif str($repeat2.type) == "base_recalibrator" + #set $pattern = "#:GATKTable:Arguments:Recalibration" + @LN_2_FILES@ + #end if + #end for + #elif str($repeat.software_cond.software) == "hicup" + #for $file in $repeat.software_cond.input + @ESCAPE_IDENTIFIER@ + #set file_path = os.path.join($software_dir, 'HiCUP_summary_report_' + str($identifier)) + ln -s '${file}' '$file_path' && + #end for + #elif str($repeat.software_cond.software) == "hisat2" + #set $pattern = "HISAT2 summary stats:" + @LN_FILES@ + #elif str($repeat.software_cond.software) == "hicexplorer" + #set $pattern = "Min rest. site distance" + @LN_FILES@ + #elif str($repeat.software_cond.software) == "htseq" + #set $pattern = "__too_low_aQual" + @LN_FILES@ + #elif str($repeat.software_cond.software) == "kallisto" + #set $pattern = "finding pseudoalignments for the reads" + @LN_FILES@ + #elif str($repeat.software_cond.software) == "macs2" + #set $pattern = "# This file is generated by MACS" + #for $file in $repeat.software_cond.input + @ESCAPE_IDENTIFIER@ + #set file_path = os.path.join($software_dir, str($identifier) + '_peaks.xls') + grep -q "$pattern" $file || die "'$pattern' not found in the file" && + ln -s '$file' '$file_path' && + #end for + #elif str($repeat.software_cond.software) == "picard" + #for $j, $repeat2 in enumerate( $repeat.software_cond.output ) + #if str($repeat2.type) == "alignment_metrics" + #set $pattern = "picard.analysis.AlignmentSummaryMetrics" + @LN_2_FILES@ + #elif str($repeat2.type) == "basedistributionbycycle" + #set $pattern = "picard.analysis.BaseDistributionByCycleMetrics" + @LN_2_FILES@ + #elif str($repeat2.type) == "gcbias" + #set $pattern = "picard.analysis.GcBias" + @LN_2_FILES@ + #elif str($repeat2.type) == "hsmetrics" + #set $pattern = "picard.analysis.directed.HsMetrics" + @LN_2_FILES@ + #elif str($repeat2.type) == "insertsize" + #set $pattern = "picard.analysis.InsertSizeMetrics" + @LN_2_FILES@ + #elif str($repeat2.type) == "markdups" + #set $pattern = "picard.sam.DuplicationMetrics" + @LN_2_FILES@ + #elif str($repeat2.type) == "oxogmetrics" + #set $pattern = "picard.analysis.CollectOxoGMetrics" + @LN_2_FILES@ + #elif str($repeat2.type) == "pcr_metrics" + #set $pattern = "picard.analysis.directed.TargetedPcrMetrics" + @LN_2_FILES@ + #elif str($repeat2.type) == "rnaseqmetrics" + #set $pattern = "Collect" + @LN_2_FILES@ + #elif str($repeat2.type) == "rrbs_metrics" + #set $pattern = "picard.analysis.RrbsSummaryMetrics" + @LN_2_FILES@ + #elif str($repeat2.type) == "wgs_metrics" + #set $pattern = "picard.analysis.CollectWgsMetrics$WgsMetrics" + @LN_2_FILES@ + #end if + #end for + #elif str($repeat.software_cond.software) == "prokka" + #set $pattern = "contigs:" + @LN_FILES@ + #elif str($repeat.software_cond.software) == "quast" + #for $k, $file in enumerate($repeat.software_cond.input) + #set file_dir = os.path.join($software_dir, 'file_' + str($k)) + #set file_path = os.path.join($file_dir, 'report.tsv') + mkdir '$file_dir' && + ln -s '$file' '$file_path' && + #end for + #elif str($repeat.software_cond.software) == "rsem" + #for $file in $repeat.software_cond.input + @ESCAPE_IDENTIFIER@ + #set file_path = os.path.join($software_dir, str($identifier) + '.cnt') + ln -s '$file' '$file_path' && + #end for + #elif str($repeat.software_cond.software) == "rseqc" + #for $j, $repeat2 in enumerate( $repeat.software_cond.output ) + @CREATE_REPEAT_DIR_2@ + #if str($repeat2.type.type) == "bam_stat" + #set $pattern = "Proper-paired reads map to different chrom:" + @LN_3_FILES@ + #elif str($repeat2.type.type) == "gene_body_coverage" + #for $k, $file in enumerate($repeat2.type.input) + #set file_path = os.path.join($repeat_dir, 'file_' + str($k) + '.geneBodyCoverage.txt') + ln -s '$file' '$file_path' && + #end for + #elif str($repeat2.type.type) == "inner_distance" + #for $k, $file in enumerate($repeat2.type.input) + #set file_path = os.path.join($repeat_dir, 'file_' + str($k) + '.inner_distance_freq.txt') + ln -s '${file}' '$file_path' && + #end for + #elif str($repeat2.type.type) == "junction_annotation" + #set $pattern = "Partial Novel Splicing Junctions:" + @LN_3_FILES@ + #elif str($repeat2.type.type) == "read_gc" + #for $k, $file in enumerate($repeat2.type.input) + #set file_path = os.path.join($repeat_dir, 'file_' + str($k) + '.GC.xls') + ln -s '$file' '$file_path' && + #end for + #elif str($repeat2.type.type) == "junction_annotation" + #set $pattern = "Group Total_bases Tag_count Tags/Kb" + @LN_3_FILES@ + #elif str($repeat2.type.type) == "read_distribution" + #set $pattern = "Group Total_bases Tag_count Tags/Kb" + @LN_3_FILES@ + #elif str($repeat2.type.type) == "read_duplication_pos" + #for $k, $file in enumerate($repeat2.type.input) + #set file_path = os.path.join($repeat_dir, 'file_' + str($k) + '.pos.DupRate.xls') + ln -s '$file' '$file_path' && + #end for + #elif str($repeat2.type.type) == "infer_experiment" + #set $pattern = "Fraction of reads explained by" + #for $file in $repeat2.type.input + @ESCAPE_IDENTIFIER@ + #set file_path = os.path.join($repeat_dir, str($identifier)) + grep -q "$pattern" $file || die "'$pattern' not found in the file" && + ln -s '$file' '$file_path' && + #end for + #end if + #end for + #elif str($repeat.software_cond.software) == "salmon" + #for $j, $repeat2 in enumerate( $repeat.software_cond.output ) + @CREATE_REPEAT_DIR_2@ + #if str($repeat2.type.type) == "meta" + #for $k, $file in enumerate($repeat2.type.input) + #set file_dir = os.path.join($repeat_dir, 'file_' + str($k)) + #set file_path = os.path.join($file_dir, 'meta_info.json') + mkdir '$file_dir' && + ln -s '$file' '$file_path' && + #end for + #elif str($repeat2.type.type) == "fld" + #for $k, $file in enumerate($repeat2.type.input) + #set file_dir = os.path.join($repeat_dir, 'file_' + str($k)) + #set file_path = os.path.join($file_dir,'flenDist.txt') + mkdir '$file_dir' && + ln -s '$file' '$file_path' && + #end for + #end if + #end for + #elif str($repeat.software_cond.software) == "samblaster" + #set $pattern = "samblaster: Version" + @LN_FILES@ + #elif str($repeat.software_cond.software) == "samtools" + #for $j, $repeat2 in enumerate( $repeat.software_cond.output ) + @CREATE_REPEAT_DIR_2@ + #if str($repeat2.type.type) == "stats" + #set $pattern = "This file was produced by samtools stats" + @LN_3_FILES@ + #elif str($repeat2.type.type) == "flagstat" + #set $pattern = "in total (QC-passed reads + QC-failed reads)" + @LN_3_FILES@ + #elif str($repeat2.type.type) == "idxstats" + #for $file in $repeat2.type.input + @ESCAPE_IDENTIFIER@ + #set file_path = os.path.join($repeat_dir, str($identifier) + '_idxstat') + ln -s '$file' '$file_path' && + #end for + #elif str($repeat2.type.type) == "rmdup" + #set $pattern = "[bam_rmdup" + @LN_3_FILES@ + #end if + #end for + #elif str($repeat.software_cond.software) == "snpeff" + #set $pattern = "SnpEff_version" + @LN_FILES@ + #elif str($repeat.software_cond.software) == "sortmerna" + #set $pattern = "Minimal SW score based on E-value" + @LN_FILES@ + #else if str($repeat.software_cond.software) == "star": + #for $j, $repeat2 in enumerate( $repeat.software_cond.output ) + @CREATE_REPEAT_DIR_2@ + #if str($repeat2.type.type) == "log" + #for $file in $repeat2.type.input + @ESCAPE_IDENTIFIER@ + #set file_path = os.path.join($repeat_dir, str($identifier) + '_Log.final.out') + ln -s '$file' '$file_path' && + #end for + #elif str($repeat2.type.type) == "genecounts" + #for $file in $repeat2.type.input + @ESCAPE_IDENTIFIER@ + #set file_path = os.path.join($repeat_dir, str($identifier) + '_ReadsPerGene.out.tab') + ln -s '$file' '$file_path' && + #end for + #end if + #end for + #elif str($repeat.software_cond.software) == "tophat" + #for $file in $repeat.software_cond.input + @ESCAPE_IDENTIFIER@ + #set file_path = os.path.join($software_dir, str($identifier) + 'align_summary.txt') + ln -s '$file' '$file_path' && + #end for + #elif str($repeat.software_cond.software) == "trimmomatic" + #set $pattern = "Trimmomatic" + @LN_FILES@ + #elif str($repeat.software_cond.software) == "vcftools" + #for $j, $repeat2 in enumerate( $repeat.software_cond.output ) + @CREATE_REPEAT_DIR_2@ + #if str($repeat2.type.type) == "relatedness2" + #for $file in $repeat2.type.input + @ESCAPE_IDENTIFIER@ + #set file_path = os.path.join($repeat_dir, str($identifier) + '.relatedness2') + ln -s '$file' '$file_path' && + #end for + #elif str($repeat2.type) == "tstv_by_count" + #for $file in $repeat2.type.input + @ESCAPE_IDENTIFIER@ + #set file_path = os.path.join($repeat_dir, str($identifier) + '.TsTv.count') + ln -s '$file' '$file_path' && + #end for + #elif str($repeat2.type) == "tstv_by_qual" + #for $file in $repeat2.type.input + @ESCAPE_IDENTIFIER@ + #set file_path = os.path.join($repeat_dir, str($identifier) + '.TsTv.qual') + ln -s '$file' '$file_path' && + #end for + #elif str($repeat2.type) == "tstv_summary" + #for $file in $repeat2.type.input + @ESCAPE_IDENTIFIER@ + #set file_path = os.path.join($repeat_dir, str($identifier) + '.TsTv.summary') + ln -s '$file' '$file_path' && + #end for + #end if + #end for + #else if str($repeat.software_cond.software) == "custom_content": + #set $configfile = "T" + #for $j, $file in enumerate( $repeat.software_cond.input ) + #set file_path = os.path.join($software_dir, 'file_' + str($i) + '_' + str($j)) + ln -s '$file' '$file_path' && + more $file && + #end for + #end if +#end for + +multiqc multiqc_WDir +--filename "report" + +#if str($title) + --title "$title" +#end if +#if str($comment) + --comment "$comment" +#end if + +#if $configfile == "T" + --config '$multiqc_config' +#end if + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + value is not None and value.extension != "html" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + saveLog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + `_ aggregates results from bioinformatics analyses across many samples into a single report. It takes results of multiple analyses and creates a report that can be viewed as a single beautiful web-page. It's a general use tool, perfect for summarizing the output from numerous bioinformatics tools. + +**Inputs** + +MultiQC takes software output summaries/logs and creates a single report from them. You need to tell the tool which software was used to generate the report. This is done using the **Software name** dropdown. At present only the Galaxy tools found in the ToolShed produce logs that can used with MultiQC + +---- + +The first integration of this tool was made by Cyril Monjeaud and Yvan Le Bras (`Enancio `_ and Rennes GenOuest Bio-informatics Core Facility). It is now maintained by the `Intergalactic Utilities Commission `_. + ]]> + + 10.1093/bioinformatics/btw354 + + diff --git a/janis_core/tests/data/galaxy/wrappers/multiqc-1c2db0054039/readme.rst b/janis_core/tests/data/galaxy/wrappers/multiqc-1c2db0054039/readme.rst new file mode 100644 index 000000000..425a426e2 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/multiqc-1c2db0054039/readme.rst @@ -0,0 +1,21 @@ +Galaxy MultiQC wrapper +======================== + +Aggregate results from bioinformatics analyses across many samples into a single report + +MultiQC searches a given directory for analysis logs and compiles a HTML report. It's a general use tool, perfect for summarising the output from numerous bioinformatics tools. + + +Prevent displaying MultiQC webpage as gibberish +----------------------------------------------- + +For Galaxy to display MultiQC's HTML output properly, you need to either: + +1. Deactivate the sanitize_all_html option in galaxy.ini (sanitize_all_html = False), or +2. Whitelist the tool in "Manage Display Whitelist" after installing + +Support new modules +------------------- + +Currently, the wrapper supports the modules for tools found on the MTS. +To add new ones, you can look at the patterns at https://github.com/ewels/MultiQC/blob/master/multiqc/utils/search_patterns.yaml diff --git a/janis_core/tests/data/galaxy/wrappers/nanoplot-0f1c34698076/nanoplot.xml b/janis_core/tests/data/galaxy/wrappers/nanoplot-0f1c34698076/nanoplot.xml new file mode 100644 index 000000000..52df6787b --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/nanoplot-0f1c34698076/nanoplot.xml @@ -0,0 +1,533 @@ + + Plotting suite for Oxford Nanopore sequencing data and alignments + + 1.41.0 + + + nanoplot + + + + + NanoPlot --version + &2 cat *log + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + +
    + +
    +
    + +
    + + + + + + + + + + + + + + + +
    + + + + + + + + +
    + + +
    +
    + +
    + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + +
    + + + + + + @misc{githubnanoplot, author = {De Coster, Wouter}, year = {2018}, title = + {NanoPlot}, publisher = {GitHub}, journal = {GitHub repository}, url = + {https://github.com/wdecoster/NanoPlot}, } + 10.1093/bioinformatics/bty149 + +
    diff --git a/janis_core/tests/data/galaxy/nanoplot-edbb6c5028f5/nanoplot.xml b/janis_core/tests/data/galaxy/wrappers/nanoplot-edbb6c5028f5/nanoplot.xml similarity index 100% rename from janis_core/tests/data/galaxy/nanoplot-edbb6c5028f5/nanoplot.xml rename to janis_core/tests/data/galaxy/wrappers/nanoplot-edbb6c5028f5/nanoplot.xml diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_AddCommentsToBam.xml b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_AddCommentsToBam.xml new file mode 100644 index 000000000..1eb6f0a98 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_AddCommentsToBam.xml @@ -0,0 +1,65 @@ + + add comments to BAM dataset + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Adds one or more comments (@CO) to the header of a specified BAM dataset. + +@dataset_collections@ + +@description@ + + COMMENT=String + C=String Comments to add to the BAM file This option may be specified 0 or more times. + +@more_info@ + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_AddOrReplaceReadGroups.xml b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_AddOrReplaceReadGroups.xml new file mode 100644 index 000000000..d09a814ae --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_AddOrReplaceReadGroups.xml @@ -0,0 +1,112 @@ + + add or replaces read group information + + picard_macros.xml + read_group_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Add or Replace Read Groups in an input BAM or SAM file. + +@dataset_collections@ + +@RG@ + +@description@ + + INPUT=File + I=File Input file (bam or sam). Required. + + OUTPUT=File + O=File Output file (bam or sam). Required. + + SORT_ORDER=SortOrder + SO=SortOrder Optional sort order to output in. If not supplied OUTPUT is in the same order as INPUT. + Default value: null. Possible values: {unsorted, queryname, coordinate} + + RGID=String + ID=String Read Group ID Default value: 1. This option can be set to 'null' to clear the default + value. + + RGLB=String + LB=String Read Group Library Required. + + RGPL=String + PL=String Read Group platform (e.g. illumina, solid) Required. + + RGPU=String + PU=String Read Group platform unit (eg. run barcode) Required. + + RGSM=String + SM=String Read Group sample name Required. + + RGCN=String + CN=String Read Group sequencing center name Default value: null. + + RGDS=String + DS=String Read Group description Default value: null. + + RGDT=Iso8601Date + DT=Iso8601Date Read Group run date Default value: null. + + RGPI=Integer + PI=Integer Read Group predicted insert size Default value: null. + +@more_info@ + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_BedToIntervalList.xml b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_BedToIntervalList.xml new file mode 100644 index 000000000..507d1c50c --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_BedToIntervalList.xml @@ -0,0 +1,103 @@ + + convert coordinate data into picard interval list format + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Convert coordinate data (such as BED or Galaxy Interval) into Picard Interval Format. + +@dataset_collections@ + +@description@ + + SEQUENCE_DICTIONARY=File + SD=File The sequence dictionary. You can either use dictionary pre-cached + on this instance of Galaxy, or create one on teh fly from a FASTA + file uploaded to history (right pane of the interface). + + +@more_info@ + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CleanSam.xml b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CleanSam.xml new file mode 100644 index 000000000..ae5dfe8dc --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CleanSam.xml @@ -0,0 +1,58 @@ + + perform SAM/BAM grooming + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Read SAM/BAM and perform various fix-ups. Currently, the only fix-ups are: + + 1. to soft-clip an alignment that hangs off the end of its reference sequence. + 2. to set MAPQ to 0 if a read is unmapped. + +@dataset_collections@ + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CollectAlignmentSummaryMetrics.xml b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CollectAlignmentSummaryMetrics.xml new file mode 100644 index 000000000..674ed61a9 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CollectAlignmentSummaryMetrics.xml @@ -0,0 +1,126 @@ + + writes a file containing summary alignment metrics + + picard_macros.xml + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Reads a SAM or BAM file and writes a file containing summary alignment metrics. + +@dataset_collections@ + +@description@ + + MAX_INSERT_SIZE=Integer Paired end reads above this insert size will be considered chimeric along with + inter-chromosomal pairs. Default value: 100000. + + ADAPTER_SEQUENCE=String List of adapter sequences to use when processing the alignment metrics This option may + be specified 0 or more times. + + METRIC_ACCUMULATION_LEVEL=MetricAccumulationLevel + LEVEL=MetricAccumulationLevel The level(s) at which to accumulate metrics. Possible values: {ALL_READS, SAMPLE, + LIBRARY, READ_GROUP} This option may be specified 0 or more times. + + IS_BISULFITE_SEQUENCED=Boolean + BS=Boolean Whether the SAM or BAM file consists of bisulfite sequenced reads. + + + REFERENCE_SEQUENCE=File + R=File Reference sequence fasta Default value: null. + + ASSUME_SORTED=Boolean + AS=Boolean If true (default), then the sort order in the header file will be ignored. + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CollectBaseDistributionByCycle.xml b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CollectBaseDistributionByCycle.xml new file mode 100644 index 000000000..a4d562ef8 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CollectBaseDistributionByCycle.xml @@ -0,0 +1,109 @@ + + charts the nucleotide distribution per cycle in a SAM or BAM dataset + + picard_macros.xml + 2 + + + r-base + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Program to chart the nucleotide distribution per cycle in a SAM or BAM file. + +@dataset_collections@ + +@description@ + + ALIGNED_READS_ONLY=Boolean If set to true, calculate the base distribution over aligned reads only. Default value: + false. This option can be set to 'null' to clear the default value. Possible values: + {true, false} + + PF_READS_ONLY=Boolean If set to true calculate the base distribution over PF reads only. Default value: false. + This option can be set to 'null' to clear the default value. Possible values: {true, + false} + + REFERENCE_SEQUENCE=File + R=File Reference sequence fasta Default value: null. + + ASSUME_SORTED=Boolean + AS=Boolean If true (default), then the sort order in the header file will be ignored. Default + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CollectGcBiasMetrics.xml b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CollectGcBiasMetrics.xml new file mode 100644 index 000000000..eace045c2 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CollectGcBiasMetrics.xml @@ -0,0 +1,110 @@ + + charts the GC bias metrics + + picard_macros.xml + 1 + + + r-base + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Program to chart the nucleotide distribution per cycle in a SAM or BAM file. + +@dataset_collections@ + +@description@ + + ALIGNED_READS_ONLY=Boolean If set to true, calculate the base distribution over aligned reads only. Default value: + false. Possible values: {true, false} + + PF_READS_ONLY=Boolean If set to true calculate the base distribution over PF reads only. Default value: false. + This option can be set to 'null' to clear the default value. Possible values: {true, + false} + + ASSUME_SORTED=Boolean + AS=Boolean If true (default), then the sort order in the header file will be ignored. Default: True + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CollectHsMetrics.xml b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CollectHsMetrics.xml new file mode 100644 index 000000000..749b1fd63 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CollectHsMetrics.xml @@ -0,0 +1,92 @@ + + + compute metrics about datasets generated through hybrid-selection (e.g. exome) + + picard_macros.xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CollectInsertSizeMetrics.xml b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CollectInsertSizeMetrics.xml new file mode 100644 index 000000000..b25504d4a --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CollectInsertSizeMetrics.xml @@ -0,0 +1,134 @@ + + plots distribution of insert sizes + + picard_macros.xml + 2 + + + r-base + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Reads a SAM or BAM dataset and writes a file containing metrics about the statistical distribution of insert size (excluding duplicates) and generates a Histogram plot. + +@dataset_collections@ + +@description@ + + + DEVIATIONS=Double Generate mean, sd and plots by trimming the data down to MEDIAN + + DEVIATIONS*MEDIAN_ABSOLUTE_DEVIATION. This is done because insert size data typically + includes enough anomalous values from chimeras and other artifacts to make the mean and + sd grossly misleading regarding the real distribution. Default value: 10.0. + + HISTOGRAM_WIDTH=Integer + W=Integer Explicitly sets the Histogram width, overriding automatic truncation of Histogram tail. + Also, when calculating mean and standard deviation, only bins <= Histogram_WIDTH will be + included. Default value: not set. + + MINIMUM_PCT=Float + M=Float When generating the Histogram, discard any data categories (out of FR, TANDEM, RF) that + have fewer than this percentage of overall reads. (Range: 0 to 1). Default value: 0.05. + + METRIC_ACCUMULATION_LEVEL=MetricAccumulationLevel + LEVEL=MetricAccumulationLevel The level(s) at which to accumulate metrics. Possible values: {ALL_READS, SAMPLE, + LIBRARY, READ_GROUP} This option may be specified 0 or more times. + + ASSUME_SORTED=Boolean + AS=Boolean If true (default), then the sort order in the header file will be ignored. Default + value: true. This option can be set to 'null' to clear the default value. Possible + values: {true, false} + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CollectRnaSeqMetrics.xml b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CollectRnaSeqMetrics.xml new file mode 100644 index 000000000..a30d3a1cd --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CollectRnaSeqMetrics.xml @@ -0,0 +1,270 @@ + + collect metrics about the alignment of RNA to various functional classes of loci in the genome + + picard_macros.xml + 2 + + + r-base + ucsc-gff3togenepred + ucsc-gtftogenepred + + refFlat.tab && + #else + grep -v '^#' ${refFlat} | awk '{if ($3 == "+" || $3 == "-") print $11"\t"$1"\t"$2"\t"$3"\t"$4"\t"$5"\t"$6"\t"$7"\t"$8"\t"$9"\t"$10; else print}' > refFlat.tab && + #end if + + ## Start picard command + + @java_options@ + picard + CollectRnaSeqMetrics + REF_FLAT=refFlat.tab + + #if str( $ribosomal_intervals ) != "None": + RIBOSOMAL_INTERVALS="${ribosomal_intervals}" + #end if + + STRAND_SPECIFICITY="${strand_specificity}" + MINIMUM_LENGTH="${minimum_length}" + CHART_OUTPUT="${pdfFile}" + + #for $sequence_to_ignore in $ignore_list: + IGNORE_SEQUENCE="${sequence_to_ignore.sequence}" + #end for + + RRNA_FRAGMENT_PERCENTAGE="${rrna_fragment_percentage}" + METRIC_ACCUMULATION_LEVEL="${metric_accumulation_level}" + INPUT='$escaped_element_identifier' + OUTPUT="${outFile}" + REFERENCE_SEQUENCE="${reference_fasta_filename}" + ASSUME_SORTED="${assume_sorted}" + @TMPDIR_OPTION@ + VALIDATION_STRINGENCY=${validation_stringency} + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Collects metrics about the alignment of RNA to various functional classes of loci in the genome: coding, intronic, UTR, intergenic, ribosomal. + +@dataset_collections@ + +----- + +.. class:: warningmark + +**Obtaining gene annotations in refFlat format** + +This tool requires gene annotations in refFlat_ format. These data can be obtained from UCSC table browser directly through Galaxy by following these steps: + + 1. Click on **Get Data** in the upper part of left pane of Galaxy interface + 2. Click on **UCSC Main** link + 3. Set your genome and dataset of interest. It **must** be the same genome build against which you have mapped the reads contained in the BAM file you are analyzing + 4. In the **output format** field choose **selected fields from primary and related tables** + 5. Click **get output** button + 6. In the first table presented at the top of the page select (using checkboxes) first 11 fields: + name + chrom + strand + txStart + txEnd + cdsStart + cdsEnd + exonCount + exonStarts + exonEnds + proteinId + 7. Click **done with selection** + 8. Click **Send query to Galaxy** + 9. A new dataset will appear in the current Galaxy history + 10. Use this dataset as the input for **Gene annotations in refFlat form** dropdown of this tool + +.. _refFlat: https://genome.ucsc.edu/FAQ/FAQformat.html#format9 + +@description@ + + REF_FLAT=File Gene annotations in refFlat form. Format described here: + https://genome.ucsc.edu/FAQ/FAQformat.html#format9 Required. + + RIBOSOMAL_INTERVALS=File Location of rRNA sequences in genome, in interval_list format. If not specified no bases + will be identified as being ribosomal. Format described here: + https://samtools.github.io/htsjdk/javadoc/htsjdk/htsjdk/samtools/util/IntervalList.html and can be + generated from BED datasetes using Galaxy's wrapper for picard_BedToIntervalList tool + + STRAND_SPECIFICITY=StrandSpecificity + STRAND=StrandSpecificity For strand-specific library prep. For unpaired reads, use FIRST_READ_TRANSCRIPTION_STRAND + if the reads are expected to be on the transcription strand. Required. Possible values: + {NONE, FIRST_READ_TRANSCRIPTION_STRAND, SECOND_READ_TRANSCRIPTION_STRAND} + + MINIMUM_LENGTH=Integer When calculating coverage based values (e.g. CV of coverage) only use transcripts of this + length or greater. Default value: 500. + + IGNORE_SEQUENCE=String If a read maps to a sequence specified with this option, all the bases in the read are + counted as ignored bases. + + RRNA_FRAGMENT_PERCENTAGE=Double + This percentage of the length of a fragment must overlap one of the ribosomal intervals + for a read or read pair by this must in order to be considered rRNA. Default value: 0.8. + + METRIC_ACCUMULATION_LEVEL=MetricAccumulationLevel + LEVEL=MetricAccumulationLevel The level(s) at which to accumulate metrics. Possible values: {ALL_READS, SAMPLE, + LIBRARY, READ_GROUP} This option may be specified 0 or more times. + + ASSUME_SORTED=Boolean + AS=Boolean If true (default), then the sort order in the header file will be ignored. Default + value: true. Possible values: {true, false} + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CollectSequencingArtifactsMetrics.xml b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CollectSequencingArtifactsMetrics.xml new file mode 100644 index 000000000..ed5373abf --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CollectSequencingArtifactsMetrics.xml @@ -0,0 +1,149 @@ + + Collect metrics to quantify single-base sequencing artifacts + + picard_macros.xml + 2 + + + r-base + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Program to chart the distribution of potential sequencing "single nucleotide mutation" artifacts in a SAM or BAM file. + +@dataset_collections@ + +@description@ + + ASSUME_SORTED=Boolean If true (default), then the sort order in the header file will be ignored. + Default: True + + CONTEXT_SIZE=integer The number of context bases to include on each side of the assayed base. + + CONTEXT_SIZE_TO_PRINT=String If specified, only print results for these contexts in the detail metrics output. + However, the summary metrics output will still take all contexts into consideration. + + DB_SNP=text file VCF format dbSNP file, used to exclude regions around known polymorphisms from analysis. + + INCLUDE_DUPLICATES=Boolean Include duplicate reads. If set to true then all reads flagged as duplicates will be included as well. + + INCLUDE_UNPAIRED=Boolean Include unpaired reads. If set to true then all paired reads will be included as well - + MINIMUM_INSERT_SIZE and MAXIMUM_INSERT_SIZE will be ignored. + + MAXIMUM_INSERT_SIZE=Integer The maximum insert size for a read to be included in analysis. Set to 0 to have no maximum. + Default = 600 + + MINIMUM_INSERT_SIZE=Integer The minimum insert size for a read to be included in analysis. Default = 60 + + MINIMUM_MAPPING_QUALITY The minimum mapping quality score for a base to be included in analysis. Default = 30 + + MINIMUM_QUALITY_SCORE The minimum base quality score for a base to be included in analysis. Default = 20 + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CollectWgsMetrics.xml b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CollectWgsMetrics.xml new file mode 100644 index 000000000..33967b760 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_CollectWgsMetrics.xml @@ -0,0 +1,102 @@ + + compute metrics for evaluating of whole genome sequencing experiments + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Computes a number of metrics that are useful for evaluating coverage and performance of whole genome sequencing experiments. + +@dataset_collections@ + +@description@ + + MINIMUM_MAPPING_QUALITY=Integer + MQ=Integer Minimum mapping quality for a read to contribute coverage. Default value: 20. + + MINIMUM_BASE_QUALITY=Integer + Q=Integer Minimum base quality for a base to contribute coverage. Default value: 20. + + COVERAGE_CAP=Integer + CAP=Integer Treat bases with coverage exceeding this value as if they had coverage at this value. + Default value: 250. + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_DownsampleSam.xml b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_DownsampleSam.xml new file mode 100644 index 000000000..86f0a9511 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_DownsampleSam.xml @@ -0,0 +1,75 @@ + + Downsample a file to retain a subset of the reads + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Randomly down-sample a SAM or BAM file to retain a random subset of the reads. Mate-pairs are either both kept or both discarded. Reads marked as not primary alignments are all discarded. Each read is given a probability P of being retained - results with the exact same input in the same order and with the same value for RANDOM_SEED will produce the same results. + +@dataset_collections@ + +@description@ + + INPUT=File + I=File The input SAM or BAM file to downsample. Required. + + OUTPUT=File + O=File The output, downsampled, SAM or BAM file to write. Required. + + RANDOM_SEED=Long + R=Long Random seed to use if reproducibilty is desired. Setting to null will cause multiple + invocations to produce different results. + + PROBABILITY=Double + P=Double The probability of keeping any individual read, between 0 and 1. + + + +@more_info@ + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_EstimateLibraryComplexity.xml b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_EstimateLibraryComplexity.xml new file mode 100644 index 000000000..f1aac1aec --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_EstimateLibraryComplexity.xml @@ -0,0 +1,126 @@ + + assess sequence library complexity from read sequences + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +**Purpose** + +Attempts to estimate library complexity from sequence of read pairs alone. Does so by sorting all reads by the first N bases (5 by default) +of each read and then comparing reads with the first N bases identical to each other for duplicates. Reads are considered to be duplicates +if they match each other with no gaps and an overall mismatch rate less than or equal to MAX_DIFF_RATE (0.03 by default). + +Reads of poor quality are filtered out so as to provide a more accurate estimate. The filtering removes reads with any no-calls in the first +N bases or with a mean base quality lower than MIN_MEAN_QUALITY across either the first or second read. + +Unpaired reads are ignored in this computation. +The algorithm attempts to detect optical duplicates separately from PCR duplicates and excludes these in the calculation of library size. + +Also, since there is no alignment to screen out technical reads one further filter is applied on the data. After examining all reads a Histogram +is built of [#reads in duplicate set -> #of duplicate sets]; all bins that contain exactly one duplicate set are then removed from the Histogram +as outliers before library size is estimated. + +@dataset_collections@ + +@description@ + + MIN_IDENTICAL_BASES=Integer The minimum number of bases at the starts of reads that must be identical for reads to be + grouped together for duplicate detection. In effect total_reads / 4^max_id_bases reads + will be compared at a time, so lower numbers will produce more accurate results but + consume exponentially more memory and CPU. Default value: 5. + + MAX_DIFF_RATE=Double The maximum rate of differences between two reads to call them identical. Default value: + 0.03. + + MIN_MEAN_QUALITY=Integer The minimum mean quality of the bases in a read pair for the read to be analyzed. Reads + with lower average quality are filtered out and not considered in any calculations. + Default value: 20. + + MAX_GROUP_RATIO=Integer Do not process self-similar groups that are this many times over the mean expected group + size. I.e. if the input contains 10m read pairs and MIN_IDENTICAL_BASES is set to 5, then + the mean expected group size would be approximately 10 reads. Default value: 500. + + READ_NAME_REGEX=String Regular expression that can be used to parse read names in the incoming SAM file. Read + names are parsed to extract three variables: tile/region, x coordinate and y coordinate. + These values are used to estimate the rate of optical duplication in order to give a more + accurate estimated library size. Set this option to null to disable optical duplicate + detection. The regular expression should contain three capture groups for the three + variables, in order. It must match the entire read name. Note that if the default regex + is specified, a regex match is not actually done, but instead the read name is split on + colon character. For 5 element names, the 3rd, 4th and 5th elements are assumed to be + tile, x and y values. For 7 element names (CASAVA 1.8), the 5th, 6th, and 7th elements + are assumed to be tile, x and y values. Default value: + [a-zA-Z0-9]+:[0-9]:([0-9]+):([0-9]+):([0-9]+).*. + + OPTICAL_DUPLICATE_PIXEL_DISTANCE=Integer + The maximum offset between two duplicte clusters in order to consider them optical + duplicates. This should usually be set to some fairly small number (e.g. 5-10 pixels) + unless using later versions of the Illumina pipeline that multiply pixel values by 10, in + which case 50-100 is more normal. Default value: 100. + + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_FastqToSam.xml b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_FastqToSam.xml new file mode 100644 index 000000000..14a8cfd73 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_FastqToSam.xml @@ -0,0 +1,242 @@ + + convert Fastq data into unaligned BAM + + picard_macros.xml + 2 + + + picard_fastqtosam + + + fwd.fastq && + #else + ln -s '$fwd' fwd.fastq && + #end if + #if rev + #if rev.ext.endswith(".gz") + gunzip -c '$rev' > rev.fastq && + #else + ln -s '$rev' rev.fastq && + #end if + #end if + + picard + FastqToSam + + FASTQ=fwd.fastq + #if rev + FASTQ2=rev.fastq + #end if + + #if $fwd.ext.startswith("fastqillumina") + QUALITY_FORMAT="Illumina" + #else if $fwd.ext.startswith("fastqsolexa") + QUALITY_FORMAT="Solexa" + #else + QUALITY_FORMAT="Standard" + #end if + OUTPUT="${outFile}" + READ_GROUP_NAME="${read_group_name}" + SAMPLE_NAME="${sample_name}" + + #if str( $library_name ): + LIBRARY_NAME="${library_name}" + #end if + + #if str( $platform_unit ): + PLATFORM_UNIT="${platform_unit}" + #end if + + #if str( $platform ): + PLATFORM="${platform}" + #end if + + #if str( $sequencing_center ): + SEQUENCING_CENTER="${sequencing_center}" + #end if + + #if str( $predicted_insert_size ): + PREDICTED_INSERT_SIZE="${predicted_insert_size}" + #end if + + #if str( $comment ): + COMMENT="${comment}" + #end if + + #if str( $description ): + DESCRIPTION="${description}" + #end if + + #if str( $run_date ): + RUN_DATE="${run_date}" + #end if + + MIN_Q="${min_q}" + MAX_Q="${max_q}" + STRIP_UNPAIRED_MATE_NUMBER="${strip_unpairied_mate_number}" + ALLOW_AND_IGNORE_EMPTY_LINES="${allow_and_ignore_empty_lines}" + + SORT_ORDER=coordinate + VALIDATION_STRINGENCY="${validation_stringency}" + QUIET=true + VERBOSITY=ERROR + @TMPDIR_OPTION@ + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Computes a number of metrics that are useful for evaluating coverage and performance of whole genome sequencing experiments. + +@dataset_collections@ + +@RG@ + +@description@ + + FASTQ=File + F1=File Input fastq file for single end data, or first read in paired end + data. Required. + + FASTQ2=File + F2=File Input fastq file for the second read of paired end data (if used). + + QUALITY_FORMAT=FastqQualityFormat + V=FastqQualityFormat A value describing how the quality values are encoded in the fastq. Either Solexa for + pre-pipeline 1.3 style scores (solexa scaling + 66), Illumina for pipeline 1.3 and above + (phred scaling + 64) or Standard for phred scaled scores with a character shift of 33. + If this value is not specified, the quality format will be detected automatically. + Default value: null. Possible values: {Solexa, Illumina, Standard} + + READ_GROUP_NAME=String + RG=String Read group name Default value: A. + + SAMPLE_NAME=String + SM=String Sample name to insert into the read group header Required. + + LIBRARY_NAME=String + LB=String The library name to place into the LB attribute in the read group header. + + PLATFORM_UNIT=String + PU=String The platform unit (often run_barcode.lane) to insert into the read group header. + + PLATFORM=String + PL=String The platform type (e.g. illumina, solid) to insert into the read group header. + + SEQUENCING_CENTER=String + CN=String The sequencing center from which the data originated. + + PREDICTED_INSERT_SIZE=Integer + PI=Integer Predicted median insert size, to insert into the read group header. + + COMMENT=String + CO=String Comment to include in the merged output file's header. + + DESCRIPTION=String + DS=String Inserted into the read group header. + + RUN_DATE=Iso8601Date + DT=Iso8601Date Date the run was produced, to insert into the read group header. + + MIN_Q=Integer Minimum quality allowed in the input fastq. An exception will be thrown if a quality is + less than this value. Default value: 0. + + MAX_Q=Integer Maximum quality allowed in the input fastq. An exception will be thrown if a quality is + greater than this value. Default value: 93. + + STRIP_UNPAIRED_MATE_NUMBER=Boolean + If true and this is an unpaired fastq any occurance of '/1' will be removed from the end + of a read name. Default value: false. Possible values: {true, false} + + ALLOW_AND_IGNORE_EMPTY_LINES=Boolean + Allow (and ignore) empty lines Default value: false. Possible values: {true, false} + + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_FilterSamReads.xml b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_FilterSamReads.xml new file mode 100644 index 000000000..686bc5e15 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_FilterSamReads.xml @@ -0,0 +1,129 @@ + + include or exclude aligned and unaligned reads and read lists + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +**Purpose** + +Computes a number of metrics that are useful for evaluating coverage and performance of whole genome sequencing experiments. + +------ + +.. class:: warningmark + +**Warning on using this tool on BWA-MEM output** + +This tool will likely fail on BAM datasets generated by BWA MEM as it generates partial read alignemnts. + +@dataset_collections@ + +@description@ + + FILTER=Filter Filter. Required. Possible values: + includeAligned [OUTPUT SAM/BAM will contain aligned + reads only. (Note that *both* first and + second of paired reads must be aligned to be included + in the OUTPUT SAM or BAM)], + + excludeAligned [OUTPUT SAM/BAM will contain un-mapped reads only. + (Note that *both* first and second of pair must be aligned to be + excluded from the OUTPUT SAM or BAM)] + + includeReadList [OUTPUT SAM/BAM will contain reads + that are supplied in the READ_LIST_FILE file] + + excludeReadList [OUTPUT bam will contain + reads that are *not* supplied in the READ_LIST_FILE file]} + + READ_LIST_FILE=File + RLF=File Read List File containing reads that will be included or excluded from the OUTPUT SAM or + BAM file. Default value: null. + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_FixMateInformation.xml b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_FixMateInformation.xml new file mode 100644 index 000000000..baa99c862 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_FixMateInformation.xml @@ -0,0 +1,78 @@ + + ensure that all mate-pair information is in sync between each read and it's mate pair + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +**Purpose** + +Ensure that all mate-pair information is in sync between each read and it's mate pair. Reads marked with the secondary alignment flag are written to the output file unchanged. + +------ + +.. class:: warningmark + +**Warning on using ASSUME_SORTED option** + +Datasets imported into Galaxy are automatically coordinate sorted. So use this option (set it to True) only if you are sure that this is necessary. If you are not sure - a good rule of thumb +is to assume that the BAM you are working with is coordinate sorted. + +@dataset_collections@ + +@description@ + + ASSUME_SORTED=Boolean + AS=Boolean If true, assume that the input file is queryname sorted, even if the header says + otherwise. Default value: false. + + ADD_MATE_CIGAR=Boolean + MC=Boolean Adds the mate CIGAR tag (MC) if true, does not if false. Default value: true. + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_MarkDuplicates.xml b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_MarkDuplicates.xml new file mode 100644 index 000000000..ddbbe35d6 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_MarkDuplicates.xml @@ -0,0 +1,158 @@ + + examine aligned records in BAM datasets to locate duplicate molecules + + picard_macros.xml + 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +**Purpose** + +Examines aligned records in the supplied SAM or BAM dataset to locate duplicate molecules. All records are then written to the output file with the duplicate records flagged. + +@dataset_collections@ + +@description@ + + COMMENT=String + CO=String Comment(s) to include in the output file's header. This option may be specified 0 or + more times. + + REMOVE_DUPLICATES=Boolean If true do not write duplicates to the output file instead of writing them with + appropriate flags set. Default value: false. + + READ_NAME_REGEX=String This option is only needed if your read names do not follow a standard illumina convention + of colon separation but do contain tile, x, and y coordinates (unusual). + A regular expression that can be used to parse read names in the incoming SAM file. Read + names are parsed to extract three variables: tile/region, x coordinate and y coordinate. + These values are used to estimate the rate of optical duplication in order to give a more + accurate estimated library size. Set this option to null to disable optical duplicate + detection. The regular expression should contain three capture groups for the three + variables, in order. It must match the entire read name. Note that if the default regex + is specified, a regex match is not actually done, but instead the read name is split on + colon character. For 5 element names, the 3rd, 4th and 5th elements are assumed to be + tile, x and y values. For 7 element names (CASAVA 1.8), the 5th, 6th, and 7th elements + are assumed to be tile, x and y values. Default value: '' + + + DUPLICATE_SCORING_STRATEGY=ScoringStrategy + DS=ScoringStrategy The scoring strategy for choosing the non-duplicate among candidates. Default value: + SUM_OF_BASE_QUALITIES. Possible values: {SUM_OF_BASE_QUALITIES, TOTAL_MAPPED_REFERENCE_LENGTH} + + OPTICAL_DUPLICATE_PIXEL_DISTANCE=Integer + The maximum offset between two duplicate clusters in order to consider them optical + duplicates. This should be set to 100 for (circa 2011+) read names and typical flowcells. + Structured flow cells (NovaSeq, HiSeq 4000, X) should use ~2500. + For older conventions, distances could be to some fairly small number (e.g. 5-10 pixels) + Default value: 100. + + BARCODE_TAG=String Barcode SAM tag (ex. BC for 10X Genomics) Default value: null. + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_MarkDuplicatesWithMateCigar.xml b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_MarkDuplicatesWithMateCigar.xml new file mode 100644 index 000000000..d9cdb9ca2 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_MarkDuplicatesWithMateCigar.xml @@ -0,0 +1,154 @@ + + examine aligned records in BAM datasets to locate duplicate molecules + + picard_macros.xml + 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +**Purpose** + +Examines aligned records in the supplied SAM or BAM dataset to locate duplicate molecules. All records are then written to the output file with the duplicate records flagged. + +------ + +.. class:: warningmark + +On the difference between **MarkDuplicates** and **picard_MarkDuplicatesWithMateCigar** + +From Samtools Announce MailingList_: + +This tool can replace MarkDuplicates if the input SAM/BAM has Mate CIGAR (MC) optional tags pre-computed +(see the tools RevertOriginalBaseQualitiesAndAddMateCigar and FixMateInformation). This allows the new tool +to perform a streaming duplicate marking routine (i.e. a single-pass). This tool cannot be used with +alignments that have large gaps or reference skips, which happens frequently in RNA-seq data. + +.. _MailingList: http://sourceforge.net/p/samtools/mailman/message/32910359/ + +@dataset_collections@ + +@description@ + + MINIMUM_DISTANCE=Integer The minimum distance to buffer records to account for clipping on the 5' end of the + records.Set this number to -1 to use twice the first read's read length (or 100, + whichever is smaller). Default value: -1. This option can be set to 'null' to clear the + default value. + + SKIP_PAIRS_WITH_NO_MATE_CIGAR=Boolean + Skip record pairs with no mate cigar and include them in the output. Default value: + true. This option can be set to 'null' to clear the default value. Possible values: + {true, false} + + COMMENT=String + CO=String Comment(s) to include in the output file's header. This option may be specified 0 or + more times. + + REMOVE_DUPLICATES=Boolean If true do not write duplicates to the output file instead of writing them with + appropriate flags set. Default value: false. + + READ_NAME_REGEX=String Regular expression that can be used to parse read names in the incoming SAM file. Read + names are parsed to extract three variables: tile/region, x coordinate and y coordinate. + These values are used to estimate the rate of optical duplication in order to give a more + accurate estimated library size. Set this option to null to disable optical duplicate + detection. The regular expression should contain three capture groups for the three + variables, in order. It must match the entire read name. Note that if the default regex + is specified, a regex match is not actually done, but instead the read name is split on + colon character. For 5 element names, the 3rd, 4th and 5th elements are assumed to be + tile, x and y values. For 7 element names (CASAVA 1.8), the 5th, 6th, and 7th elements + are assumed to be tile, x and y values. Default value: + [a-zA-Z0-9]+:[0-9]:([0-9]+):([0-9]+):([0-9]+).*. + + DUPLICATE_SCORING_STRATEGY=ScoringStrategy + DS=ScoringStrategy The scoring strategy for choosing the non-duplicate among candidates. Default value: + TOTAL_MAPPED_REFERENCE_LENGTH. Possible values: {SUM_OF_BASE_QUALITIES, TOTAL_MAPPED_REFERENCE_LENGTH} + + OPTICAL_DUPLICATE_PIXEL_DISTANCE=Integer + The maximum offset between two duplicte clusters in order to consider them optical + duplicates. This should usually be set to some fairly small number (e.g. 5-10 pixels) + unless using later versions of the Illumina pipeline that multiply pixel values by 10, in + which case 50-100 is more normal. Default value: 100. + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_MeanQualityByCycle.xml b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_MeanQualityByCycle.xml new file mode 100644 index 000000000..37e114767 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_MeanQualityByCycle.xml @@ -0,0 +1,105 @@ + + chart distribution of base qualities + + picard_macros.xml + 1 + + + r-base + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Program to chart the distribution of base qualities by cycle within reads supplied in a SAM or BAM dataset. + +@dataset_collections@ + +@description@ + + ALIGNED_READS_ONLY=Boolean If set to true, calculate the base distribution over aligned reads only. Default value: + false. Possible values: {true, false} + + PF_READS_ONLY=Boolean If set to true calculate the base distribution over PF reads only. Default value: false. + This option can be set to 'null' to clear the default value. Possible values: {true, + false} + + ASSUME_SORTED=Boolean + AS=Boolean If true (default), then the sort order in the header file will be ignored. Default: True + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_MergeBamAlignment.xml b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_MergeBamAlignment.xml new file mode 100644 index 000000000..c085e15f7 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_MergeBamAlignment.xml @@ -0,0 +1,315 @@ + + merge alignment data with additional info stored in an unmapped BAM dataset + + picard_macros.xml + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Merges alignment data from a SAM or BAM dataset with additional data stored in an unmapped BAM dataset and produces a third SAM or BAM dataset of aligned and unaligned reads. + +@dataset_collections@ + +@description@ + + UNMAPPED_BAM=File + UNMAPPED=File Original SAM or BAM file of unmapped reads, which must be in queryname order. Required. + + ALIGNED_BAM=File + ALIGNED=File SAM or BAM file(s) with alignment data. This option may be specified 0 or more times. + Cannot be used in conjuction with option(s) READ1_ALIGNED_BAM (R1_ALIGNED) + READ2_ALIGNED_BAM (R2_ALIGNED) + + READ1_ALIGNED_BAM=File + R1_ALIGNED=File SAM or BAM file(s) with alignment data from the first read of a pair. This option may be + specified 0 or more times. Cannot be used in conjuction with option(s) ALIGNED_BAM + (ALIGNED) + + READ2_ALIGNED_BAM=File + R2_ALIGNED=File SAM or BAM file(s) with alignment data from the second read of a pair. This option may + be specified 0 or more times. Cannot be used in conjuction with option(s) ALIGNED_BAM + (ALIGNED) + + PAIRED_RUN=Boolean + PE=Boolean This argument is ignored and will be removed. Required. Possible values: {true, false} + + JUMP_SIZE=Integer + JUMP=Integer The expected jump size (required if this is a jumping library). Deprecated. Use + EXPECTED_ORIENTATIONS instead Default value: null. Cannot be used in conjuction with + option(s) EXPECTED_ORIENTATIONS (ORIENTATIONS) + + CLIP_ADAPTERS=Boolean Whether to clip adapters where identified. Default value: true. Possible values: {true, false} + + IS_BISULFITE_SEQUENCE=Boolean Whether the lane is bisulfite sequence (used when caculating the NM tag). Default value: + false. Possible values: {true, false} + + ALIGNED_READS_ONLY=Boolean Whether to output only aligned reads. Default value: false. Possible values: {true, false} + + MAX_INSERTIONS_OR_DELETIONS=Integer + MAX_GAPS=Integer The maximum number of insertions or deletions permitted for an alignment to be included. + Alignments with more than this many insertions or deletions will be ignored. Set to -1 to + allow any number of insertions or deletions. Default value: 1. + + ATTRIBUTES_TO_RETAIN=String Reserved alignment attributes (tags starting with X, Y, or Z) that should be brought over + from the alignment data when merging. This option may be specified 0 or more times. + + ATTRIBUTES_TO_REMOVE=String Attributes from the alignment record that should be removed when merging. This overrides + ATTRIBUTES_TO_RETAIN if they share common tags. This option may be specified 0 or more + times. + + READ1_TRIM=Integer + R1_TRIM=Integer The number of bases trimmed from the beginning of read 1 prior to alignment Default + value: 0. + + READ2_TRIM=Integer + R2_TRIM=Integer The number of bases trimmed from the beginning of read 2 prior to alignment Default + value: 0. + + EXPECTED_ORIENTATIONS=PairOrientation + ORIENTATIONS=PairOrientation The expected orientation of proper read pairs. Replaces JUMP_SIZE Possible values: {FR, + RF, TANDEM} This option may be specified 0 or more times. Cannot be used in conjuction + with option(s) JUMP_SIZE (JUMP) + + ALIGNER_PROPER_PAIR_FLAGS=Boolean + Use the aligner's idea of what a proper pair is rather than computing in this program. + Default value: false. Possible values: {true, false} + + SORT_ORDER=SortOrder + SO=SortOrder The order in which the merged reads should be output. Default value: coordinate. + Possible values: {unsorted, queryname, coordinate} + + PRIMARY_ALIGNMENT_STRATEGY=PrimaryAlignmentStrategy + Strategy for selecting primary alignment when the aligner has provided more than one + alignment for a pair or fragment, and none are marked as primary, more than one is marked + as primary, or the primary alignment is filtered out for some reason. BestMapq expects + that multiple alignments will be correlated with HI tag, and prefers the pair of + alignments with the largest MAPQ, in the absence of a primary selected by the aligner. + EarliestFragment prefers the alignment which maps the earliest base in the read. Note + that EarliestFragment may not be used for paired reads. BestEndMapq is appropriate for + cases in which the aligner is not pair-aware, and does not output the HI tag. It simply + picks the alignment for each end with the highest MAPQ, and makes those alignments + primary, regardless of whether the two alignments make sense together.MostDistant is also + for a non-pair-aware aligner, and picks the alignment pair with the largest insert size. + If all alignments would be chimeric, it picks the alignments for each end with the best + MAPQ. For all algorithms, ties are resolved arbitrarily. Default value: BestMapq. + Possible values: {BestMapq, EarliestFragment, BestEndMapq, MostDistant} + + CLIP_OVERLAPPING_READS=BooleanFor paired reads, soft clip the 3' end of each read if necessary so that it does not + extend past the 5' end of its mate. Default value: true. Possible values: {true, false} + + INCLUDE_SECONDARY_ALIGNMENTS=Boolean + If false, do not write secondary alignments to output. Default value: true. + Possible values: {true, false} + + ADD_MATE_CIGAR=Boolean + MC=Boolean Adds the mate CIGAR tag (MC) if true, does not if false. Possible values: {true, false} + + + + +@more_info@ + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_MergeSamFiles.xml b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_MergeSamFiles.xml new file mode 100644 index 000000000..81b9b71c2 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_MergeSamFiles.xml @@ -0,0 +1,89 @@ + + merges multiple SAM/BAM datasets into one + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +**Purpose** + +Merges multiple SAM/BAM datasets into one. + +@dataset_collections@ + +@description@ + + ASSUME_SORTED=Boolean + AS=Boolean If true, assume that the input files are in the same sort order as the requested output + sort order, even if their headers say otherwise. Default value: false. This option can + be set to 'null' to clear the default value. Possible values: {true, false} + + MERGE_SEQUENCE_DICTIONARIES=Boolean + MSD=Boolean Merge the sequence dictionaries Default value: false. This option can be set to 'null' + to clear the default value. Possible values: {true, false} + + COMMENT=String + CO=String Comment(s) to include in the merged output file's header. This option may be specified 0 + or more times. + + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_NormalizeFasta.xml b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_NormalizeFasta.xml new file mode 100644 index 000000000..da9477297 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_NormalizeFasta.xml @@ -0,0 +1,67 @@ + + normalize fasta datasets + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + +**Purpose** + +Takes any dataset that conforms to the fasta format and normalizes it so that all lines of sequence except the last line per named sequence are of the same length. + +@dataset_collections@ + +@description@ + + LINE_LENGTH=Integer The line length to be used for the output fasta file. Default value: 100. + + TRUNCATE_SEQUENCE_NAMES_AT_WHITESPACE=Boolean + Truncate sequence names at first whitespace. Default value: false. Possible values: {true, false} + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_QualityScoreDistribution.xml b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_QualityScoreDistribution.xml new file mode 100644 index 000000000..52f407d4d --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_QualityScoreDistribution.xml @@ -0,0 +1,110 @@ + + chart quality score distribution + + picard_macros.xml + 1 + + + r-base + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Program to chart quality score distributions in a SAM or BAM dataset. + +@dataset_collections@ + +@description@ + + ALIGNED_READS_ONLY=Boolean If set to true, calculate the base distribution over aligned reads only. Default value: + false. Possible values: {true, false} + + PF_READS_ONLY=Boolean If set to true calculate the base distribution over PF reads only. Default value: false. + Possible values: {true, false} + + INCLUDE_NO_CALLS=Boolean If set to true, include quality for no-call bases in the distribution. Default value: + false. Possible values: {true, false} + + ASSUME_SORTED=Boolean + AS=Boolean If true (default), then the sort order in the header file will be ignored. Default: True + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_ReorderSam.xml b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_ReorderSam.xml new file mode 100644 index 000000000..7736bbc24 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_ReorderSam.xml @@ -0,0 +1,122 @@ + + reorder reads to match ordering in reference sequences + + picard_macros.xml + 1 + + + picard_reordersam + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +ReorderSam reorders reads in a SAM/BAM file to match the contig ordering in a provided reference file, as determined by exact name matching of contigs. Reads mapped to contigs absent in the new reference are dropped. + +@dataset_collections@ + +---- + +.. class:: warningmark + +Not to be confused with **SortSam**. + +@description@ + + ALLOW_INCOMPLETE_DICT_CONCORDANCE=Boolean + S=Boolean If true, then allows only a partial overlap of the BAM contigs with the new reference + sequence contigs. By default, this tool requires a corresponding contig in the new + reference for each read contig Default value: false. Possible values: {true, false} + + ALLOW_CONTIG_LENGTH_DISCORDANCE=Boolean + U=Boolean If true, then permits mapping from a read contig to a new reference contig with the same + name but a different length. Highly dangerous, only use if you know what you are doing. + Default value: false. Possible values: {true, false} + +@more_info@ + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_ReplaceSamHeader.xml b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_ReplaceSamHeader.xml new file mode 100644 index 000000000..005b8c871 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_ReplaceSamHeader.xml @@ -0,0 +1,64 @@ + + replace header in a SAM/BAM dataset + + picard_macros.xml + 1 + + + picard_replacesamheader + + + + + + + + + + + + + + + + + + + + + + + +**Purpose** + +Replace the SAMFileHeader in a SAM/BAM dataset with the given header. Validation is minimal. It is up to the user to ensure that all the elements referred to in the SAMRecords are present in the new header. Sort order of the two input datasets must be the same. +@dataset_collections@ + +@description@ + + HEADER=File SAM file from which SAMFileHeader will be read. Required. + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_RevertOriginalBaseQualitiesAndAddMateCigar.xml b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_RevertOriginalBaseQualitiesAndAddMateCigar.xml new file mode 100644 index 000000000..39f7c0c3b --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_RevertOriginalBaseQualitiesAndAddMateCigar.xml @@ -0,0 +1,72 @@ + + revert the original base qualities and add the mate cigar tag + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +**Purpose** + +Reverts the original base qualities and adds the mate cigar tag to SAM or BAMs. + +@dataset_collections@ + +@description@ + + RESTORE_ORIGINAL_QUALITIES=Boolean + OQ=Boolean True to restore original qualities from the OQ field to the QUAL field if available. + Default value: true. Possible values: {true, false} + + MAX_RECORDS_TO_EXAMINE=IntegerThe maximum number of records to examine to determine if we can exit early and not + output, given that there are a no original base qualities (if we are to restore) and mate + cigars exist. Set to 0 to never skip the file. Default value: 10000. + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_RevertSam.xml b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_RevertSam.xml new file mode 100644 index 000000000..5a22b4d8f --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_RevertSam.xml @@ -0,0 +1,133 @@ + + revert SAM/BAM datasets to a previous state + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +**Purpose** + +Reverts SAM or BAM files to a previous state by removing certain types of information and/or substituting in the original quality scores when available. + +@dataset_collections@ + +@description@ + + SORT_ORDER=SortOrder + SO=SortOrder The sort order to create the reverted output file with. Default value: queryname. + Possible values: {unsorted, queryname, coordinate} + + RESTORE_ORIGINAL_QUALITIES=Boolean + OQ=Boolean True to restore original qualities from the OQ field to the QUAL field if available. + Default value: true. Possible values: {true, false} + + REMOVE_DUPLICATE_INFORMATION=Boolean + Remove duplicate read flags from all reads. Note that if this is true and + REMOVE_ALIGNMENT_INFORMATION==false, the output may have the unusual but sometimes + desirable trait of having unmapped reads that are marked as duplicates. Default value: + true. Possible values: {true, false} + + REMOVE_ALIGNMENT_INFORMATION=Boolean + Remove all alignment information from the file. Default value: true. TPossible values: {true, false} + + ATTRIBUTE_TO_CLEAR=String When removing alignment information, the set of optional tags to remove. This option may + be specified 0 or more times. + + SANITIZE=Boolean WARNING: This option is potentially destructive. If enabled will discard reads in order + to produce a consistent output BAM. Reads discarded include (but are not limited to) + paired reads with missing mates, duplicated records, records with mismatches in length of + bases and qualities. This option can only be enabled if the output sort order is + queryname and will always cause sorting to occur. Possible values: {true, false} + + MAX_DISCARD_FRACTION=Double If SANITIZE=true and higher than MAX_DISCARD_FRACTION reads are discarded due to + sanitization thenthe program will exit with an Exception instead of exiting cleanly. + Output BAM will still be valid. Default value: 0.01. + + SAMPLE_ALIAS=String + ALIAS=String The sample alias to use in the reverted output file. This will override the existing + sample alias in the file and is used only if all the read groups in the input file have + the same sample alias Default value: null. + + LIBRARY_NAME=String + LIB=String The library name to use in the reverted output file. This will override the existing + sample alias in the file and is used only if all the read groups in the input file have + the same sample alias Default value: null. + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_SamToFastq.xml b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_SamToFastq.xml new file mode 100644 index 000000000..6484ffb83 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_SamToFastq.xml @@ -0,0 +1,229 @@ + + extract reads and qualities from SAM/BAM dataset and convert to fastq + + picard_macros.xml + 3 + + + picard_samtofastq + + + 0: + CLIPPING_ATTRIBUTE="${clipping_attribute}" + #end if + #if len(str($clipping_action)) > 0: + CLIPPING_ACTION="${clipping_action}" + #end if + READ1_TRIM="${read1_trim}" + + #if int($read1_max_bases_to_write) > -1: + READ1_MAX_BASES_TO_WRITE="${read1_max_bases_to_write}" + #end if + + READ2_TRIM="${read2_trim}" + + #if int($read2_max_bases_to_write) > -1: + READ2_MAX_BASES_TO_WRITE="${read2_max_bases_to_write}" + #end if + + INCLUDE_NON_PRIMARY_ALIGNMENTS="${include_non_primary_alignments}" + + VALIDATION_STRINGENCY="${validation_stringency}" + QUIET=true + VERBOSITY=ERROR + @TMPDIR_OPTION@ + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + output_type['single_or_paired'] == 'se' + + + + output_type['single_or_paired'] == 'pe_interleaved' + + + + output_type['single_or_paired'] == 'pe_sep' + + + + output_type['single_or_paired'] == 'pe_sep' + + + + output_type['single_or_paired'] == 'pe_sep' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +**Purpose** + +Extracts read sequences and qualities from the input SAM/BAM dataset and outputs them in Sanger fastq format. In the RE_REVERSE=True mode (default behavior), if the read is aligned and the alignment is to the reverse strand on the genome, the read's sequence from input SAM.BAM dataset will be reverse-complemented prior to writing it to fastq in order restore correctly the original read sequence as it was generated by the sequencer. + +----- + +.. class:: warningmark + +@dataset_collections@ + +@description@ + + FASTQ=File + F=File Output fastq file (single-end fastq or, if paired, first end of the pair fastq). + Required. + + SECOND_END_FASTQ=File + F2=File Output fastq file (if paired, second end of the pair fastq). Default value: null. + + + UNPAIRED_FASTQ=File + FU=File Output fastq file for unpaired reads; may only be provided in paired-fastq mode Default + value: null. + + RE_REVERSE=Boolean + RC=Boolean Re-reverse bases and qualities of reads with negative strand flag set before writing them + to fastq Default value: true. Possible values: {true, false} + + INTERLEAVE=Boolean + INTER=Boolean Will generate an interleaved fastq if paired, each line will have /1 or /2 to describe + which end it came from Default value: false. Possible values: {true, false} + + INCLUDE_NON_PF_READS=Boolean + NON_PF=Boolean Include non-PF reads from the SAM file into the output FASTQ files. PF means 'passes + filtering'. Reads whose 'not passing quality controls' flag is set are non-PF reads. + Default value: false. Possible values: {true, false} + + CLIPPING_ATTRIBUTE=String + CLIP_ATTR=String The attribute that stores the position at which the SAM record should be clipped Default + value: null. + + CLIPPING_ACTION=String + CLIP_ACT=String The action that should be taken with clipped reads: 'X' means the reads and qualities + should be trimmed at the clipped position; 'N' means the bases should be changed to Ns in + the clipped region; and any integer means that the base qualities should be set to that + value in the clipped region. Default value: null. + + READ1_TRIM=Integer + R1_TRIM=Integer The number of bases to trim from the beginning of read 1. Default value: 0. + + READ1_MAX_BASES_TO_WRITE=Integer + R1_MAX_BASES=Integer The maximum number of bases to write from read 1 after trimming. If there are fewer than + this many bases left after trimming, all will be written. If this value is null then all + bases left after trimming will be written. Default value: null. + + READ2_TRIM=Integer + R2_TRIM=Integer The number of bases to trim from the beginning of read 2. Default value: 0. + + READ2_MAX_BASES_TO_WRITE=Integer + R2_MAX_BASES=Integer The maximum number of bases to write from read 2 after trimming. If there are fewer than + this many bases left after trimming, all will be written. If this value is null then all + bases left after trimming will be written. Default value: null. + + INCLUDE_NON_PRIMARY_ALIGNMENTS=Boolean + If true, include non-primary alignments in the output. Support of non-primary alignments + in SamToFastq is not comprehensive, so there may be exceptions if this is set to true and + there are paired reads with non-primary alignments. Default value: false. + Possible values: {true, false} + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_SortSam.xml b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_SortSam.xml new file mode 100644 index 000000000..d329c6005 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_SortSam.xml @@ -0,0 +1,87 @@ + + sort SAM/BAM dataset + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Sorts the input SAM or BAM. + +@dataset_collections@ + +@description@ + + SORT_ORDER=SortOrder + SO=SortOrder Sort order of output file. You can either sort by queryname or by coordinate. + + @more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_ValidateSamFile.xml b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_ValidateSamFile.xml new file mode 100644 index 000000000..221d4401c --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_ValidateSamFile.xml @@ -0,0 +1,227 @@ + + assess validity of SAM/BAM dataset + + picard_macros.xml + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +**Purpose** + +Reads a SAM/BAM dataset and report on its validity. + +@dataset_collections@ + +@description@ + + MODE=Mode + M=Mode Mode of output Default value: VERBOSE. This option can be set to 'null' to clear the + default value. Possible values: {VERBOSE, SUMMARY} + + IGNORE=Type List of validation error types to ignore. Possible values: {INVALID_QUALITY_FORMAT, + INVALID_FLAG_PROPER_PAIR, INVALID_FLAG_MATE_UNMAPPED, MISMATCH_FLAG_MATE_UNMAPPED, + INVALID_FLAG_MATE_NEG_STRAND, MISMATCH_FLAG_MATE_NEG_STRAND, INVALID_FLAG_FIRST_OF_PAIR, + INVALID_FLAG_SECOND_OF_PAIR, PAIRED_READ_NOT_MARKED_AS_FIRST_OR_SECOND, + INVALID_FLAG_NOT_PRIM_ALIGNMENT, INVALID_FLAG_SUPPLEMENTARY_ALIGNMENT, + INVALID_FLAG_READ_UNMAPPED, INVALID_INSERT_SIZE, INVALID_MAPPING_QUALITY, INVALID_CIGAR, + ADJACENT_INDEL_IN_CIGAR, INVALID_MATE_REF_INDEX, MISMATCH_MATE_REF_INDEX, + INVALID_REFERENCE_INDEX, INVALID_ALIGNMENT_START, MISMATCH_MATE_ALIGNMENT_START, + MATE_FIELD_MISMATCH, INVALID_TAG_NM, MISSING_TAG_NM, MISSING_HEADER, + MISSING_SEQUENCE_DICTIONARY, MISSING_READ_GROUP, RECORD_OUT_OF_ORDER, + READ_GROUP_NOT_FOUND, RECORD_MISSING_READ_GROUP, INVALID_INDEXING_BIN, + MISSING_VERSION_NUMBER, INVALID_VERSION_NUMBER, TRUNCATED_FILE, + MISMATCH_READ_LENGTH_AND_QUALS_LENGTH, EMPTY_READ, CIGAR_MAPS_OFF_REFERENCE, + MISMATCH_READ_LENGTH_AND_E2_LENGTH, MISMATCH_READ_LENGTH_AND_U2_LENGTH, + E2_BASE_EQUALS_PRIMARY_BASE, BAM_FILE_MISSING_TERMINATOR_BLOCK, UNRECOGNIZED_HEADER_TYPE, + POORLY_FORMATTED_HEADER_TAG, HEADER_TAG_MULTIPLY_DEFINED, + HEADER_RECORD_MISSING_REQUIRED_TAG, INVALID_DATE_STRING, TAG_VALUE_TOO_LARGE, + INVALID_INDEX_FILE_POINTER, INVALID_PREDICTED_MEDIAN_INSERT_SIZE, + DUPLICATE_READ_GROUP_ID, MISSING_PLATFORM_VALUE, INVALID_PLATFORM_VALUE, + DUPLICATE_PROGRAM_GROUP_ID, MATE_NOT_FOUND, MATES_ARE_SAME_END, + MISMATCH_MATE_CIGAR_STRING, MATE_CIGAR_STRING_INVALID_PRESENCE} This option may be + specified 0 or more times. + + MAX_OUTPUT=Integer + MO=Integer The maximum number of lines output in verbose mode Default value: 100. This option can + be set to 'null' to clear the default value. + + REFERENCE_SEQUENCE=File + R=File Reference sequence file, the NM tag check will be skipped if this is missing Default + value: null. + + IGNORE_WARNINGS=Boolean If true, only report errors and ignore warnings. Default value: false. This option can + be set to 'null' to clear the default value. Possible values: {true, false} + + VALIDATE_INDEX=Boolean If true and input is a BAM file with an index file, also validates the index. Default + value: true. This option can be set to 'null' to clear the default value. Possible + values: {true, false} + + IS_BISULFITE_SEQUENCED=Boolean + BISULFITE=Boolean Whether the SAM or BAM file consists of bisulfite sequenced reads. If so, C->T is not + counted as an error in computing the value of the NM tag. Default value: false. This + option can be set to 'null' to clear the default value. Possible values: {true, false} + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_macros.xml b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_macros.xml new file mode 100644 index 000000000..ed63ed971 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/picard_macros.xml @@ -0,0 +1,134 @@ + + + `if [ -n "\$TMPDIR" ] ; then echo 'TMP_DIR=\$TMPDIR' ; else if [ -n "\$TEMP" ] ; then echo 'TMP_DIR=\$TEMP' ; fi ; fi` + + + + + + + + + + + + + + + + + + + + 2.18.2 + + + + picard + + + + + + + + + + + +------ + +**Additional information** + +Additional information about Picard tools is available from Picard web site at http://broadinstitute.github.io/picard/ . + + + + +------ + +**Inputs, outputs, and parameters** + +Either a SAM file or a BAM file must be supplied. Galaxy automatically coordinate-sorts all uploaded BAM files. + +From Picard documentation( http://broadinstitute.github.io/picard/):: + + + +------- + +**Read Groups are Important!** + +Setting read groups correctly from the start will simplify your life greatly because you can merge multiple BAM files into one significantly reducing the number of analysis steps. Below we provide an explanation of read groups fields taken from GATK FAQ webpage: + +.. csv-table:: + :header-rows: 1 + + Tag,Importance,Definition,Meaning + "ID","Required","Read group identifier. Each @RG line must have a unique ID. The value of ID is used in the RG tags of alignment records. Must be unique among all read groups in header section. Read group IDs may be modified when merging SAM files in order to handle collisions.","Ideally, this should be a globally unique identify across all sequencing data in the world, such as the Illumina flowcell + lane name and number. Will be referenced by each read with the RG:Z field, allowing tools to determine the read group information associated with each read, including the sample from which the read came. Also, a read group is effectively treated as a separate run of the NGS instrument in tools like base quality score recalibration (a GATK component) -- all reads within a read group are assumed to come from the same instrument run and to therefore share the same error model." + "SM","Sample. Use pool name where a pool is being sequenced.","Required. As important as ID.","The name of the sample sequenced in this read group. GATK tools treat all read groups with the same SM value as containing sequencing data for the same sample. Therefore it's critical that the SM field be correctly specified, especially when using multi-sample tools like the Unified Genotyper (a GATK component)." + "PL","Platform/technology used to produce the read. Valid values: ILLUMINA, SOLID, LS454, HELICOS and PACBIO.","Important. Not currently used in the GATK, but was in the past, and may return. The only way to known the sequencing technology used to generate the sequencing data","It's a good idea to use this field." + "LB","DNA preparation library identify","Essential for MarkDuplicates","MarkDuplicates uses the LB field to determine which read groups might contain molecular duplicates, in case the same DNA library was sequenced on multiple lanes." + +**Example of Read Group usage** + +Support we have a trio of samples: MOM, DAD, and KID. Each has two DNA libraries prepared, one with 400 bp inserts and another with 200 bp inserts. Each of these libraries is run on two lanes of an illumina hiseq, requiring 3 x 2 x 2 = 12 lanes of data. When the data come off the sequencer, we would create 12 BAM files, with the following @RG fields in the header:: + + Dad's data: + @RG ID:FLOWCELL1.LANE1 PL:illumina LB:LIB-DAD-1 SM:DAD PI:200 + @RG ID:FLOWCELL1.LANE2 PL:illumina LB:LIB-DAD-1 SM:DAD PI:200 + @RG ID:FLOWCELL1.LANE3 PL:illumina LB:LIB-DAD-2 SM:DAD PI:400 + @RG ID:FLOWCELL1.LANE4 PL:illumina LB:LIB-DAD-2 SM:DAD PI:400 + + Mom's data: + @RG ID:FLOWCELL1.LANE5 PL:illumina LB:LIB-MOM-1 SM:MOM PI:200 + @RG ID:FLOWCELL1.LANE6 PL:illumina LB:LIB-MOM-1 SM:MOM PI:200 + @RG ID:FLOWCELL1.LANE7 PL:illumina LB:LIB-MOM-2 SM:MOM PI:400 + @RG ID:FLOWCELL1.LANE8 PL:illumina LB:LIB-MOM-2 SM:MOM PI:400 + + Kid's data: + @RG ID:FLOWCELL2.LANE1 PL:illumina LB:LIB-KID-1 SM:KID PI:200 + @RG ID:FLOWCELL2.LANE2 PL:illumina LB:LIB-KID-1 SM:KID PI:200 + @RG ID:FLOWCELL2.LANE3 PL:illumina LB:LIB-KID-2 SM:KID PI:400 + @RG ID:FLOWCELL2.LANE4 PL:illumina LB:LIB-KID-2 SM:KID PI:400 + +Note the hierarchical relationship between read groups (unique for each lane) to libraries (sequenced on two lanes) and samples (across four lanes, two lanes for each library). + + +------ + +**Dataset collections - processing large numbers of datasets at once** + +This will be added shortly + + + + + + + @misc{Picard, + author = {Broad Institute}, + title = {Picard}, + publisher = {GitHub}, + journal = { Broad Institute, GitHub repository}, + url = {http://broadinstitute.github.io/picard/} + } + + + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/read_group_macros.xml b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/read_group_macros.xml new file mode 100644 index 000000000..2a0a7c97b --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/read_group_macros.xml @@ -0,0 +1,294 @@ + + + +#def identifier_or_name($input1) + #if hasattr($input1, 'element_identifier') + #return $input1.element_identifier + #else + #return $input1.name.rstrip('.gz').rstrip('.fastq').rstrip('.fq') + #end if +#end def + +#def clean(name) + #import re + #set $name_clean = re.sub('[^\w\-_\.]', '_', $name) + #return $name_clean +#end def + +#def read_group_name_default($input1, $input2=None) + #if $input2 is None + #return $clean($identifier_or_name($input1)) + #else + #import itertools + #set $input_name1 = $clean($identifier_or_name($input1)) + #set $input_name2 = $clean($identifier_or_name($input2)) + #set $common_prefix = ''.join([c[0] for c in itertools.takewhile(lambda x: all(x[0] == y for y in x), zip(*[$input_name1, $input_name2]))]) + #if len($common_prefix) > 3 + #return $common_prefix + #else + #return $input_name1 + #end if + #end if +#end def + +#def format_read_group(prefix, value, quote='', arg='') + #if $value + #return $arg + $quote + $prefix + $value + $quote + #else + #return '' + #end if +#end def + +#def rg_param(name) + #if $varExists("rg") + #return $rg.get($name, None) + #else + #return $getVar($name, None) + #end if +#end def + +#set $use_rg = True + + + +#if $use_rg + #if $rg_param('read_group_id_conditional') is None + #set $rg_id = $rg_auto_name + #elif $rg_param('read_group_id_conditional').do_auto_name + #set $rg_id = $rg_auto_name + #else + #set $rg_id = str($rg_param('read_group_id_conditional').ID) + #end if + + #if $rg_param('read_group_sm_conditional') is None + #set $rg_sm = '' + #elif $rg_param('read_group_sm_conditional').do_auto_name + #set $rg_sm = $rg_auto_name + #else + #set $rg_sm = str($rg_param('read_group_sm_conditional').SM) + #end if + + #if $rg_param('PL') + #set $rg_pl = str($rg_param('PL')) + #else + #set $rg_pl = '' + #end if + + #if $rg_param('read_group_lb_conditional') is None + #set $rg_lb = '' + #elif $rg_param('read_group_lb_conditional').do_auto_name + #set $rg_lb = $rg_auto_name + #else + #set $rg_lb = str($rg_param('read_group_lb_conditional').LB) + #end if + + #if $rg_param('CN') + #set $rg_cn = str($rg_param('CN')) + #else + #set $rg_cn = '' + #end if + + #if $rg_param("DS") + #set $rg_ds = str($rg_param("DS")) + #else + #set $rg_ds = '' + #end if + + #if $rg_param("DT") + #set $rg_dt = str($rg_param("DT")) + #else + #set $rg_dt = '' + #end if + + #if $rg_param("FO") + #set $rg_fo = str($rg_param("FO")) + #else + #set $rg_fo = '' + #end if + + #if $rg_param("KS") + #set $rg_ks = str($rg_param("KS")) + #else + #set $rg_ks = '' + #end if + + #if $rg_param("PG") + #set $rg_pg = str($rg_param("PG")) + #else + #set $rg_pg = '' + #end if + + #if $rg_param("PI") != None + #set $rg_pi = str($rg_param("PI")) + #else + #set $rg_pi = '' + #end if + + #if $rg_param("PU") + #set $rg_pu = str($rg_param("PU")) + #else + #set $rg_pu = '' + #end if +#end if + + +#set $use_rg = str($rg.rg_selector) != "do_not_set" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \*|[ACMGRSVTWYHKDBN]+$ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/tool-data/picard_index.loc.sample b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/tool-data/picard_index.loc.sample new file mode 100644 index 000000000..cc326418a --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/tool-data/picard_index.loc.sample @@ -0,0 +1,26 @@ +#This is a sample file distributed with Galaxy that enables tools +#to use a directory of Picard dict and associated files. You will need +#to create these data files and then create a picard_index.loc file +#similar to this one (store it in this directory) that points to +#the directories in which those files are stored. The picard_index.loc +#file has this format (longer white space is the TAB character): +# +# +# +#So, for example, if you had hg18 indexed and stored in +#/depot/data2/galaxy/srma/hg18/, +#then the srma_index.loc entry would look like this: +# +#hg18 hg18 hg18 Pretty /depot/data2/galaxy/picard/hg18/hg18.fa +# +#and your /depot/data2/galaxy/srma/hg18/ directory +#would contain the following three files: +#hg18.fa +#hg18.dict +#hg18.fa.fai +# +#The dictionary file for each reference (ex. hg18.dict) must be +#created via Picard (http://picard.sourceforge.net). Note that +#the dict file does not have the .fa extension although the +#path list in the loc file does include it. +# diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/tool_data_table_conf.xml.sample b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/tool_data_table_conf.xml.sample new file mode 100644 index 000000000..03d151fd9 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/tool_data_table_conf.xml.sample @@ -0,0 +1,8 @@ + + + + + value, dbkey, name, path + +
    +
    \ No newline at end of file diff --git a/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/tool_data_table_conf.xml.test b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/tool_data_table_conf.xml.test new file mode 100644 index 000000000..5c3394be6 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-585027e65f3b/tool_data_table_conf.xml.test @@ -0,0 +1,7 @@ + + + + value, dbkey, name, path + +
    +
    diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_AddCommentsToBam.xml b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_AddCommentsToBam.xml new file mode 100644 index 000000000..1eb6f0a98 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_AddCommentsToBam.xml @@ -0,0 +1,65 @@ + + add comments to BAM dataset + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Adds one or more comments (@CO) to the header of a specified BAM dataset. + +@dataset_collections@ + +@description@ + + COMMENT=String + C=String Comments to add to the BAM file This option may be specified 0 or more times. + +@more_info@ + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_AddOrReplaceReadGroups.xml b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_AddOrReplaceReadGroups.xml new file mode 100644 index 000000000..d09a814ae --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_AddOrReplaceReadGroups.xml @@ -0,0 +1,112 @@ + + add or replaces read group information + + picard_macros.xml + read_group_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Add or Replace Read Groups in an input BAM or SAM file. + +@dataset_collections@ + +@RG@ + +@description@ + + INPUT=File + I=File Input file (bam or sam). Required. + + OUTPUT=File + O=File Output file (bam or sam). Required. + + SORT_ORDER=SortOrder + SO=SortOrder Optional sort order to output in. If not supplied OUTPUT is in the same order as INPUT. + Default value: null. Possible values: {unsorted, queryname, coordinate} + + RGID=String + ID=String Read Group ID Default value: 1. This option can be set to 'null' to clear the default + value. + + RGLB=String + LB=String Read Group Library Required. + + RGPL=String + PL=String Read Group platform (e.g. illumina, solid) Required. + + RGPU=String + PU=String Read Group platform unit (eg. run barcode) Required. + + RGSM=String + SM=String Read Group sample name Required. + + RGCN=String + CN=String Read Group sequencing center name Default value: null. + + RGDS=String + DS=String Read Group description Default value: null. + + RGDT=Iso8601Date + DT=Iso8601Date Read Group run date Default value: null. + + RGPI=Integer + PI=Integer Read Group predicted insert size Default value: null. + +@more_info@ + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_BedToIntervalList.xml b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_BedToIntervalList.xml new file mode 100644 index 000000000..507d1c50c --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_BedToIntervalList.xml @@ -0,0 +1,103 @@ + + convert coordinate data into picard interval list format + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Convert coordinate data (such as BED or Galaxy Interval) into Picard Interval Format. + +@dataset_collections@ + +@description@ + + SEQUENCE_DICTIONARY=File + SD=File The sequence dictionary. You can either use dictionary pre-cached + on this instance of Galaxy, or create one on teh fly from a FASTA + file uploaded to history (right pane of the interface). + + +@more_info@ + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CleanSam.xml b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CleanSam.xml new file mode 100644 index 000000000..ae5dfe8dc --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CleanSam.xml @@ -0,0 +1,58 @@ + + perform SAM/BAM grooming + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Read SAM/BAM and perform various fix-ups. Currently, the only fix-ups are: + + 1. to soft-clip an alignment that hangs off the end of its reference sequence. + 2. to set MAPQ to 0 if a read is unmapped. + +@dataset_collections@ + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CollectAlignmentSummaryMetrics.xml b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CollectAlignmentSummaryMetrics.xml new file mode 100644 index 000000000..9a3a92892 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CollectAlignmentSummaryMetrics.xml @@ -0,0 +1,124 @@ + + writes a file containing summary alignment metrics + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Reads a SAM or BAM file and writes a file containing summary alignment metrics. + +@dataset_collections@ + +@description@ + + MAX_INSERT_SIZE=Integer Paired end reads above this insert size will be considered chimeric along with + inter-chromosomal pairs. Default value: 100000. + + ADAPTER_SEQUENCE=String List of adapter sequences to use when processing the alignment metrics This option may + be specified 0 or more times. + + METRIC_ACCUMULATION_LEVEL=MetricAccumulationLevel + LEVEL=MetricAccumulationLevel The level(s) at which to accumulate metrics. Possible values: {ALL_READS, SAMPLE, + LIBRARY, READ_GROUP} This option may be specified 0 or more times. + + IS_BISULFITE_SEQUENCED=Boolean + BS=Boolean Whether the SAM or BAM file consists of bisulfite sequenced reads. + + + REFERENCE_SEQUENCE=File + R=File Reference sequence fasta Default value: null. + + ASSUME_SORTED=Boolean + AS=Boolean If true (default), then the sort order in the header file will be ignored. + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CollectBaseDistributionByCycle.xml b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CollectBaseDistributionByCycle.xml new file mode 100644 index 000000000..5770b0fa1 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CollectBaseDistributionByCycle.xml @@ -0,0 +1,109 @@ + + charts the nucleotide distribution per cycle in a SAM or BAM dataset + + picard_macros.xml + 1 + + + r-base + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Program to chart the nucleotide distribution per cycle in a SAM or BAM file. + +@dataset_collections@ + +@description@ + + ALIGNED_READS_ONLY=Boolean If set to true, calculate the base distribution over aligned reads only. Default value: + false. This option can be set to 'null' to clear the default value. Possible values: + {true, false} + + PF_READS_ONLY=Boolean If set to true calculate the base distribution over PF reads only. Default value: false. + This option can be set to 'null' to clear the default value. Possible values: {true, + false} + + REFERENCE_SEQUENCE=File + R=File Reference sequence fasta Default value: null. + + ASSUME_SORTED=Boolean + AS=Boolean If true (default), then the sort order in the header file will be ignored. Default + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CollectGcBiasMetrics.xml b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CollectGcBiasMetrics.xml new file mode 100644 index 000000000..eace045c2 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CollectGcBiasMetrics.xml @@ -0,0 +1,110 @@ + + charts the GC bias metrics + + picard_macros.xml + 1 + + + r-base + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Program to chart the nucleotide distribution per cycle in a SAM or BAM file. + +@dataset_collections@ + +@description@ + + ALIGNED_READS_ONLY=Boolean If set to true, calculate the base distribution over aligned reads only. Default value: + false. Possible values: {true, false} + + PF_READS_ONLY=Boolean If set to true calculate the base distribution over PF reads only. Default value: false. + This option can be set to 'null' to clear the default value. Possible values: {true, + false} + + ASSUME_SORTED=Boolean + AS=Boolean If true (default), then the sort order in the header file will be ignored. Default: True + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CollectHsMetrics.xml b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CollectHsMetrics.xml new file mode 100644 index 000000000..749b1fd63 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CollectHsMetrics.xml @@ -0,0 +1,92 @@ + + + compute metrics about datasets generated through hybrid-selection (e.g. exome) + + picard_macros.xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CollectInsertSizeMetrics.xml b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CollectInsertSizeMetrics.xml new file mode 100644 index 000000000..fd4ff8eb8 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CollectInsertSizeMetrics.xml @@ -0,0 +1,134 @@ + + plots distribution of insert sizes + + picard_macros.xml + 1 + + + r-base + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Reads a SAM or BAM dataset and writes a file containing metrics about the statistical distribution of insert size (excluding duplicates) and generates a Histogram plot. + +@dataset_collections@ + +@description@ + + + DEVIATIONS=Double Generate mean, sd and plots by trimming the data down to MEDIAN + + DEVIATIONS*MEDIAN_ABSOLUTE_DEVIATION. This is done because insert size data typically + includes enough anomalous values from chimeras and other artifacts to make the mean and + sd grossly misleading regarding the real distribution. Default value: 10.0. + + HISTOGRAM_WIDTH=Integer + W=Integer Explicitly sets the Histogram width, overriding automatic truncation of Histogram tail. + Also, when calculating mean and standard deviation, only bins <= Histogram_WIDTH will be + included. Default value: not set. + + MINIMUM_PCT=Float + M=Float When generating the Histogram, discard any data categories (out of FR, TANDEM, RF) that + have fewer than this percentage of overall reads. (Range: 0 to 1). Default value: 0.05. + + METRIC_ACCUMULATION_LEVEL=MetricAccumulationLevel + LEVEL=MetricAccumulationLevel The level(s) at which to accumulate metrics. Possible values: {ALL_READS, SAMPLE, + LIBRARY, READ_GROUP} This option may be specified 0 or more times. + + ASSUME_SORTED=Boolean + AS=Boolean If true (default), then the sort order in the header file will be ignored. Default + value: true. This option can be set to 'null' to clear the default value. Possible + values: {true, false} + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CollectRnaSeqMetrics.xml b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CollectRnaSeqMetrics.xml new file mode 100644 index 000000000..419645625 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CollectRnaSeqMetrics.xml @@ -0,0 +1,258 @@ + + collect metrics about the alignment of RNA to various functional classes of loci in the genome + + picard_macros.xml + 1 + + + r-base + ucsc-gff3togenepred + ucsc-gtftogenepred + + refFlat.tab && + #else + grep -v '^#' ${refFlat} | awk '{print $11"\t"$1"\t"$2"\t"$3"\t"$4"\t"$5"\t"$6"\t"$7"\t"$8"\t"$9"\t"$10}' > refFlat.tab && + #end if + + + ## Start picard command + + @java_options@ + picard + CollectRnaSeqMetrics + REF_FLAT=refFlat.tab + + #if str( $ribosomal_intervals ) != "None": + RIBOSOMAL_INTERVALS="${ribosomal_intervals}" + #end if + + STRAND_SPECIFICITY="${strand_specificity}" + MINIMUM_LENGTH="${minimum_length}" + CHART_OUTPUT="${pdfFile}" + + #for $sequence_to_ignore in $ignore_list: + IGNORE_SEQUENCE="${sequence_to_ignore.sequence}" + #end for + + RRNA_FRAGMENT_PERCENTAGE="${rrna_fragment_percentage}" + METRIC_ACCUMULATION_LEVEL="${metric_accumulation_level}" + INPUT='$escaped_element_identifier' + OUTPUT="${outFile}" + REFERENCE_SEQUENCE="${reference_fasta_filename}" + ASSUME_SORTED="${assume_sorted}" + @TMPDIR_OPTION@ + VALIDATION_STRINGENCY=${validation_stringency} + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Collects metrics about the alignment of RNA to various functional classes of loci in the genome: coding, intronic, UTR, intergenic, ribosomal. + +@dataset_collections@ + +----- + +.. class:: warningmark + +**Obtaining gene annotations in refFlat format** + +This tool requires gene annotations in refFlat_ format. These data can be obtained from UCSC table browser directly through Galaxy by following these steps: + + 1. Click on **Get Data** in the upper part of left pane of Galaxy interface + 2. Click on **UCSC Main** link + 3. Set your genome and dataset of interest. It **must** be the same genome build against which you have mapped the reads contained in the BAM file you are analyzing + 4. In the **output format** field choose **selected fields from primary and related tables** + 5. Click **get output** button + 6. In the first table presented at the top of the page select (using checkboxes) first 11 fields: + name + chrom + strand + txStart + txEnd + cdsStart + cdsEnd + exonCount + exonStarts + exonEnds + proteinId + 7. Click **done with selection** + 8. Click **Send query to Galaxy** + 9. A new dataset will appear in the current Galaxy history + 10. Use this dataset as the input for **Gene annotations in refFlat form** dropdown of this tool + +.. _refFlat: https://genome.ucsc.edu/FAQ/FAQformat.html#format9 + +@description@ + + REF_FLAT=File Gene annotations in refFlat form. Format described here: + https://genome.ucsc.edu/FAQ/FAQformat.html#format9 Required. + + RIBOSOMAL_INTERVALS=File Location of rRNA sequences in genome, in interval_list format. If not specified no bases + will be identified as being ribosomal. Format described here: + https://samtools.github.io/htsjdk/javadoc/htsjdk/htsjdk/samtools/util/IntervalList.html and can be + generated from BED datasetes using Galaxy's wrapper for picard_BedToIntervalList tool + + STRAND_SPECIFICITY=StrandSpecificity + STRAND=StrandSpecificity For strand-specific library prep. For unpaired reads, use FIRST_READ_TRANSCRIPTION_STRAND + if the reads are expected to be on the transcription strand. Required. Possible values: + {NONE, FIRST_READ_TRANSCRIPTION_STRAND, SECOND_READ_TRANSCRIPTION_STRAND} + + MINIMUM_LENGTH=Integer When calculating coverage based values (e.g. CV of coverage) only use transcripts of this + length or greater. Default value: 500. + + IGNORE_SEQUENCE=String If a read maps to a sequence specified with this option, all the bases in the read are + counted as ignored bases. + + RRNA_FRAGMENT_PERCENTAGE=Double + This percentage of the length of a fragment must overlap one of the ribosomal intervals + for a read or read pair by this must in order to be considered rRNA. Default value: 0.8. + + METRIC_ACCUMULATION_LEVEL=MetricAccumulationLevel + LEVEL=MetricAccumulationLevel The level(s) at which to accumulate metrics. Possible values: {ALL_READS, SAMPLE, + LIBRARY, READ_GROUP} This option may be specified 0 or more times. + + ASSUME_SORTED=Boolean + AS=Boolean If true (default), then the sort order in the header file will be ignored. Default + value: true. Possible values: {true, false} + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CollectSequencingArtifactsMetrics.xml b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CollectSequencingArtifactsMetrics.xml new file mode 100644 index 000000000..baeb6dad4 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CollectSequencingArtifactsMetrics.xml @@ -0,0 +1,148 @@ + + Collect metrics to quantify single-base sequencing artifacts + + picard_macros.xml + 1 + + + r-base + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Program to chart the distribution of potential sequencing "single nucleotide mutation" artifacts in a SAM or BAM file. + +@dataset_collections@ + +@description@ + + ASSUME_SORTED=Boolean If true (default), then the sort order in the header file will be ignored. + Default: True + + CONTEXT_SIZE=integer The number of context bases to include on each side of the assayed base. + + CONTEXT_SIZE_TO_PRINT=String If specified, only print results for these contexts in the detail metrics output. + However, the summary metrics output will still take all contexts into consideration. + + DB_SNP=text file VCF format dbSNP file, used to exclude regions around known polymorphisms from analysis. + + INCLUDE_DUPLICATES=Boolean Include duplicate reads. If set to true then all reads flagged as duplicates will be included as well. + + INCLUDE_UNPAIRED=Boolean Include unpaired reads. If set to true then all paired reads will be included as well - + MINIMUM_INSERT_SIZE and MAXIMUM_INSERT_SIZE will be ignored. + + MAXIMUM_INSERT_SIZE=Integer The maximum insert size for a read to be included in analysis. Set to 0 to have no maximum. + Default = 600 + + MINIMUM_INSERT_SIZE=Integer The minimum insert size for a read to be included in analysis. Default = 60 + + MINIMUM_MAPPING_QUALITY The minimum mapping quality score for a base to be included in analysis. Default = 30 + + MINIMUM_QUALITY_SCORE The minimum base quality score for a base to be included in analysis. Default = 20 + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CollectWgsMetrics.xml b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CollectWgsMetrics.xml new file mode 100644 index 000000000..33967b760 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_CollectWgsMetrics.xml @@ -0,0 +1,102 @@ + + compute metrics for evaluating of whole genome sequencing experiments + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Computes a number of metrics that are useful for evaluating coverage and performance of whole genome sequencing experiments. + +@dataset_collections@ + +@description@ + + MINIMUM_MAPPING_QUALITY=Integer + MQ=Integer Minimum mapping quality for a read to contribute coverage. Default value: 20. + + MINIMUM_BASE_QUALITY=Integer + Q=Integer Minimum base quality for a base to contribute coverage. Default value: 20. + + COVERAGE_CAP=Integer + CAP=Integer Treat bases with coverage exceeding this value as if they had coverage at this value. + Default value: 250. + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_DownsampleSam.xml b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_DownsampleSam.xml new file mode 100644 index 000000000..86f0a9511 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_DownsampleSam.xml @@ -0,0 +1,75 @@ + + Downsample a file to retain a subset of the reads + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Randomly down-sample a SAM or BAM file to retain a random subset of the reads. Mate-pairs are either both kept or both discarded. Reads marked as not primary alignments are all discarded. Each read is given a probability P of being retained - results with the exact same input in the same order and with the same value for RANDOM_SEED will produce the same results. + +@dataset_collections@ + +@description@ + + INPUT=File + I=File The input SAM or BAM file to downsample. Required. + + OUTPUT=File + O=File The output, downsampled, SAM or BAM file to write. Required. + + RANDOM_SEED=Long + R=Long Random seed to use if reproducibilty is desired. Setting to null will cause multiple + invocations to produce different results. + + PROBABILITY=Double + P=Double The probability of keeping any individual read, between 0 and 1. + + + +@more_info@ + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_EstimateLibraryComplexity.xml b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_EstimateLibraryComplexity.xml new file mode 100644 index 000000000..f1aac1aec --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_EstimateLibraryComplexity.xml @@ -0,0 +1,126 @@ + + assess sequence library complexity from read sequences + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +**Purpose** + +Attempts to estimate library complexity from sequence of read pairs alone. Does so by sorting all reads by the first N bases (5 by default) +of each read and then comparing reads with the first N bases identical to each other for duplicates. Reads are considered to be duplicates +if they match each other with no gaps and an overall mismatch rate less than or equal to MAX_DIFF_RATE (0.03 by default). + +Reads of poor quality are filtered out so as to provide a more accurate estimate. The filtering removes reads with any no-calls in the first +N bases or with a mean base quality lower than MIN_MEAN_QUALITY across either the first or second read. + +Unpaired reads are ignored in this computation. +The algorithm attempts to detect optical duplicates separately from PCR duplicates and excludes these in the calculation of library size. + +Also, since there is no alignment to screen out technical reads one further filter is applied on the data. After examining all reads a Histogram +is built of [#reads in duplicate set -> #of duplicate sets]; all bins that contain exactly one duplicate set are then removed from the Histogram +as outliers before library size is estimated. + +@dataset_collections@ + +@description@ + + MIN_IDENTICAL_BASES=Integer The minimum number of bases at the starts of reads that must be identical for reads to be + grouped together for duplicate detection. In effect total_reads / 4^max_id_bases reads + will be compared at a time, so lower numbers will produce more accurate results but + consume exponentially more memory and CPU. Default value: 5. + + MAX_DIFF_RATE=Double The maximum rate of differences between two reads to call them identical. Default value: + 0.03. + + MIN_MEAN_QUALITY=Integer The minimum mean quality of the bases in a read pair for the read to be analyzed. Reads + with lower average quality are filtered out and not considered in any calculations. + Default value: 20. + + MAX_GROUP_RATIO=Integer Do not process self-similar groups that are this many times over the mean expected group + size. I.e. if the input contains 10m read pairs and MIN_IDENTICAL_BASES is set to 5, then + the mean expected group size would be approximately 10 reads. Default value: 500. + + READ_NAME_REGEX=String Regular expression that can be used to parse read names in the incoming SAM file. Read + names are parsed to extract three variables: tile/region, x coordinate and y coordinate. + These values are used to estimate the rate of optical duplication in order to give a more + accurate estimated library size. Set this option to null to disable optical duplicate + detection. The regular expression should contain three capture groups for the three + variables, in order. It must match the entire read name. Note that if the default regex + is specified, a regex match is not actually done, but instead the read name is split on + colon character. For 5 element names, the 3rd, 4th and 5th elements are assumed to be + tile, x and y values. For 7 element names (CASAVA 1.8), the 5th, 6th, and 7th elements + are assumed to be tile, x and y values. Default value: + [a-zA-Z0-9]+:[0-9]:([0-9]+):([0-9]+):([0-9]+).*. + + OPTICAL_DUPLICATE_PIXEL_DISTANCE=Integer + The maximum offset between two duplicte clusters in order to consider them optical + duplicates. This should usually be set to some fairly small number (e.g. 5-10 pixels) + unless using later versions of the Illumina pipeline that multiply pixel values by 10, in + which case 50-100 is more normal. Default value: 100. + + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_FastqToSam.xml b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_FastqToSam.xml new file mode 100644 index 000000000..023b50316 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_FastqToSam.xml @@ -0,0 +1,221 @@ + + convert Fastq data into unaligned BAM + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Computes a number of metrics that are useful for evaluating coverage and performance of whole genome sequencing experiments. + +@dataset_collections@ + +@RG@ + +@description@ + + FASTQ=File + F1=File Input fastq file for single end data, or first read in paired end + data. Required. + + FASTQ2=File + F2=File Input fastq file for the second read of paired end data (if used). + + QUALITY_FORMAT=FastqQualityFormat + V=FastqQualityFormat A value describing how the quality values are encoded in the fastq. Either Solexa for + pre-pipeline 1.3 style scores (solexa scaling + 66), Illumina for pipeline 1.3 and above + (phred scaling + 64) or Standard for phred scaled scores with a character shift of 33. + If this value is not specified, the quality format will be detected automatically. + Default value: null. Possible values: {Solexa, Illumina, Standard} + + READ_GROUP_NAME=String + RG=String Read group name Default value: A. + + SAMPLE_NAME=String + SM=String Sample name to insert into the read group header Required. + + LIBRARY_NAME=String + LB=String The library name to place into the LB attribute in the read group header. + + PLATFORM_UNIT=String + PU=String The platform unit (often run_barcode.lane) to insert into the read group header. + + PLATFORM=String + PL=String The platform type (e.g. illumina, solid) to insert into the read group header. + + SEQUENCING_CENTER=String + CN=String The sequencing center from which the data originated. + + PREDICTED_INSERT_SIZE=Integer + PI=Integer Predicted median insert size, to insert into the read group header. + + COMMENT=String + CO=String Comment to include in the merged output file's header. + + DESCRIPTION=String + DS=String Inserted into the read group header. + + RUN_DATE=Iso8601Date + DT=Iso8601Date Date the run was produced, to insert into the read group header. + + MIN_Q=Integer Minimum quality allowed in the input fastq. An exception will be thrown if a quality is + less than this value. Default value: 0. + + MAX_Q=Integer Maximum quality allowed in the input fastq. An exception will be thrown if a quality is + greater than this value. Default value: 93. + + STRIP_UNPAIRED_MATE_NUMBER=Boolean + If true and this is an unpaired fastq any occurance of '/1' will be removed from the end + of a read name. Default value: false. Possible values: {true, false} + + ALLOW_AND_IGNORE_EMPTY_LINES=Boolean + Allow (and ignore) empty lines Default value: false. Possible values: {true, false} + + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_FilterSamReads.xml b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_FilterSamReads.xml new file mode 100644 index 000000000..686bc5e15 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_FilterSamReads.xml @@ -0,0 +1,129 @@ + + include or exclude aligned and unaligned reads and read lists + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +**Purpose** + +Computes a number of metrics that are useful for evaluating coverage and performance of whole genome sequencing experiments. + +------ + +.. class:: warningmark + +**Warning on using this tool on BWA-MEM output** + +This tool will likely fail on BAM datasets generated by BWA MEM as it generates partial read alignemnts. + +@dataset_collections@ + +@description@ + + FILTER=Filter Filter. Required. Possible values: + includeAligned [OUTPUT SAM/BAM will contain aligned + reads only. (Note that *both* first and + second of paired reads must be aligned to be included + in the OUTPUT SAM or BAM)], + + excludeAligned [OUTPUT SAM/BAM will contain un-mapped reads only. + (Note that *both* first and second of pair must be aligned to be + excluded from the OUTPUT SAM or BAM)] + + includeReadList [OUTPUT SAM/BAM will contain reads + that are supplied in the READ_LIST_FILE file] + + excludeReadList [OUTPUT bam will contain + reads that are *not* supplied in the READ_LIST_FILE file]} + + READ_LIST_FILE=File + RLF=File Read List File containing reads that will be included or excluded from the OUTPUT SAM or + BAM file. Default value: null. + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_FixMateInformation.xml b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_FixMateInformation.xml new file mode 100644 index 000000000..baa99c862 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_FixMateInformation.xml @@ -0,0 +1,78 @@ + + ensure that all mate-pair information is in sync between each read and it's mate pair + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +**Purpose** + +Ensure that all mate-pair information is in sync between each read and it's mate pair. Reads marked with the secondary alignment flag are written to the output file unchanged. + +------ + +.. class:: warningmark + +**Warning on using ASSUME_SORTED option** + +Datasets imported into Galaxy are automatically coordinate sorted. So use this option (set it to True) only if you are sure that this is necessary. If you are not sure - a good rule of thumb +is to assume that the BAM you are working with is coordinate sorted. + +@dataset_collections@ + +@description@ + + ASSUME_SORTED=Boolean + AS=Boolean If true, assume that the input file is queryname sorted, even if the header says + otherwise. Default value: false. + + ADD_MATE_CIGAR=Boolean + MC=Boolean Adds the mate CIGAR tag (MC) if true, does not if false. Default value: true. + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_MarkDuplicates.xml b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_MarkDuplicates.xml new file mode 100644 index 000000000..d134deb55 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_MarkDuplicates.xml @@ -0,0 +1,146 @@ + + examine aligned records in BAM datasets to locate duplicate molecules + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +**Purpose** + +Examines aligned records in the supplied SAM or BAM dataset to locate duplicate molecules. All records are then written to the output file with the duplicate records flagged. + +@dataset_collections@ + +@description@ + + COMMENT=String + CO=String Comment(s) to include in the output file's header. This option may be specified 0 or + more times. + + REMOVE_DUPLICATES=Boolean If true do not write duplicates to the output file instead of writing them with + appropriate flags set. Default value: false. + + READ_NAME_REGEX=String This option is only needed if your read names do not follow a standard illumina convention + of colon separation but do contain tile, x, and y coordinates (unusual). + A regular expression that can be used to parse read names in the incoming SAM file. Read + names are parsed to extract three variables: tile/region, x coordinate and y coordinate. + These values are used to estimate the rate of optical duplication in order to give a more + accurate estimated library size. Set this option to null to disable optical duplicate + detection. The regular expression should contain three capture groups for the three + variables, in order. It must match the entire read name. Note that if the default regex + is specified, a regex match is not actually done, but instead the read name is split on + colon character. For 5 element names, the 3rd, 4th and 5th elements are assumed to be + tile, x and y values. For 7 element names (CASAVA 1.8), the 5th, 6th, and 7th elements + are assumed to be tile, x and y values. Default value: '' + + + DUPLICATE_SCORING_STRATEGY=ScoringStrategy + DS=ScoringStrategy The scoring strategy for choosing the non-duplicate among candidates. Default value: + SUM_OF_BASE_QUALITIES. Possible values: {SUM_OF_BASE_QUALITIES, TOTAL_MAPPED_REFERENCE_LENGTH} + + OPTICAL_DUPLICATE_PIXEL_DISTANCE=Integer + The maximum offset between two duplicate clusters in order to consider them optical + duplicates. This should be set to 100 for (circa 2011+) read names and typical flowcells. + Structured flow cells (NovaSeq, HiSeq 4000, X) should use ~2500. + For older conventions, distances could be to some fairly small number (e.g. 5-10 pixels) + Default value: 100. + + BARCODE_TAG=String Barcode SAM tag (ex. BC for 10X Genomics) Default value: null. + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_MarkDuplicatesWithMateCigar.xml b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_MarkDuplicatesWithMateCigar.xml new file mode 100644 index 000000000..522a466ce --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_MarkDuplicatesWithMateCigar.xml @@ -0,0 +1,154 @@ + + examine aligned records in BAM datasets to locate duplicate molecules + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +**Purpose** + +Examines aligned records in the supplied SAM or BAM dataset to locate duplicate molecules. All records are then written to the output file with the duplicate records flagged. + +------ + +.. class:: warningmark + +On the difference between **MarkDuplicates** and **picard_MarkDuplicatesWithMateCigar** + +From Samtools Announce MailingList_: + +This tool can replace MarkDuplicates if the input SAM/BAM has Mate CIGAR (MC) optional tags pre-computed +(see the tools RevertOriginalBaseQualitiesAndAddMateCigar and FixMateInformation). This allows the new tool +to perform a streaming duplicate marking routine (i.e. a single-pass). This tool cannot be used with +alignments that have large gaps or reference skips, which happens frequently in RNA-seq data. + +.. _MailingList: http://sourceforge.net/p/samtools/mailman/message/32910359/ + +@dataset_collections@ + +@description@ + + MINIMUM_DISTANCE=Integer The minimum distance to buffer records to account for clipping on the 5' end of the + records.Set this number to -1 to use twice the first read's read length (or 100, + whichever is smaller). Default value: -1. This option can be set to 'null' to clear the + default value. + + SKIP_PAIRS_WITH_NO_MATE_CIGAR=Boolean + Skip record pairs with no mate cigar and include them in the output. Default value: + true. This option can be set to 'null' to clear the default value. Possible values: + {true, false} + + COMMENT=String + CO=String Comment(s) to include in the output file's header. This option may be specified 0 or + more times. + + REMOVE_DUPLICATES=Boolean If true do not write duplicates to the output file instead of writing them with + appropriate flags set. Default value: false. + + READ_NAME_REGEX=String Regular expression that can be used to parse read names in the incoming SAM file. Read + names are parsed to extract three variables: tile/region, x coordinate and y coordinate. + These values are used to estimate the rate of optical duplication in order to give a more + accurate estimated library size. Set this option to null to disable optical duplicate + detection. The regular expression should contain three capture groups for the three + variables, in order. It must match the entire read name. Note that if the default regex + is specified, a regex match is not actually done, but instead the read name is split on + colon character. For 5 element names, the 3rd, 4th and 5th elements are assumed to be + tile, x and y values. For 7 element names (CASAVA 1.8), the 5th, 6th, and 7th elements + are assumed to be tile, x and y values. Default value: + [a-zA-Z0-9]+:[0-9]:([0-9]+):([0-9]+):([0-9]+).*. + + DUPLICATE_SCORING_STRATEGY=ScoringStrategy + DS=ScoringStrategy The scoring strategy for choosing the non-duplicate among candidates. Default value: + TOTAL_MAPPED_REFERENCE_LENGTH. Possible values: {SUM_OF_BASE_QUALITIES, TOTAL_MAPPED_REFERENCE_LENGTH} + + OPTICAL_DUPLICATE_PIXEL_DISTANCE=Integer + The maximum offset between two duplicte clusters in order to consider them optical + duplicates. This should usually be set to some fairly small number (e.g. 5-10 pixels) + unless using later versions of the Illumina pipeline that multiply pixel values by 10, in + which case 50-100 is more normal. Default value: 100. + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_MeanQualityByCycle.xml b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_MeanQualityByCycle.xml new file mode 100644 index 000000000..37e114767 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_MeanQualityByCycle.xml @@ -0,0 +1,105 @@ + + chart distribution of base qualities + + picard_macros.xml + 1 + + + r-base + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Program to chart the distribution of base qualities by cycle within reads supplied in a SAM or BAM dataset. + +@dataset_collections@ + +@description@ + + ALIGNED_READS_ONLY=Boolean If set to true, calculate the base distribution over aligned reads only. Default value: + false. Possible values: {true, false} + + PF_READS_ONLY=Boolean If set to true calculate the base distribution over PF reads only. Default value: false. + This option can be set to 'null' to clear the default value. Possible values: {true, + false} + + ASSUME_SORTED=Boolean + AS=Boolean If true (default), then the sort order in the header file will be ignored. Default: True + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_MergeBamAlignment.xml b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_MergeBamAlignment.xml new file mode 100644 index 000000000..69a8f1938 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_MergeBamAlignment.xml @@ -0,0 +1,315 @@ + + merge alignment data with additional info stored in an unmapped BAM dataset + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Merges alignment data from a SAM or BAM dataset with additional data stored in an unmapped BAM dataset and produces a third SAM or BAM dataset of aligned and unaligned reads. + +@dataset_collections@ + +@description@ + + UNMAPPED_BAM=File + UNMAPPED=File Original SAM or BAM file of unmapped reads, which must be in queryname order. Required. + + ALIGNED_BAM=File + ALIGNED=File SAM or BAM file(s) with alignment data. This option may be specified 0 or more times. + Cannot be used in conjuction with option(s) READ1_ALIGNED_BAM (R1_ALIGNED) + READ2_ALIGNED_BAM (R2_ALIGNED) + + READ1_ALIGNED_BAM=File + R1_ALIGNED=File SAM or BAM file(s) with alignment data from the first read of a pair. This option may be + specified 0 or more times. Cannot be used in conjuction with option(s) ALIGNED_BAM + (ALIGNED) + + READ2_ALIGNED_BAM=File + R2_ALIGNED=File SAM or BAM file(s) with alignment data from the second read of a pair. This option may + be specified 0 or more times. Cannot be used in conjuction with option(s) ALIGNED_BAM + (ALIGNED) + + PAIRED_RUN=Boolean + PE=Boolean This argument is ignored and will be removed. Required. Possible values: {true, false} + + JUMP_SIZE=Integer + JUMP=Integer The expected jump size (required if this is a jumping library). Deprecated. Use + EXPECTED_ORIENTATIONS instead Default value: null. Cannot be used in conjuction with + option(s) EXPECTED_ORIENTATIONS (ORIENTATIONS) + + CLIP_ADAPTERS=Boolean Whether to clip adapters where identified. Default value: true. Possible values: {true, false} + + IS_BISULFITE_SEQUENCE=Boolean Whether the lane is bisulfite sequence (used when caculating the NM tag). Default value: + false. Possible values: {true, false} + + ALIGNED_READS_ONLY=Boolean Whether to output only aligned reads. Default value: false. Possible values: {true, false} + + MAX_INSERTIONS_OR_DELETIONS=Integer + MAX_GAPS=Integer The maximum number of insertions or deletions permitted for an alignment to be included. + Alignments with more than this many insertions or deletions will be ignored. Set to -1 to + allow any number of insertions or deletions. Default value: 1. + + ATTRIBUTES_TO_RETAIN=String Reserved alignment attributes (tags starting with X, Y, or Z) that should be brought over + from the alignment data when merging. This option may be specified 0 or more times. + + ATTRIBUTES_TO_REMOVE=String Attributes from the alignment record that should be removed when merging. This overrides + ATTRIBUTES_TO_RETAIN if they share common tags. This option may be specified 0 or more + times. + + READ1_TRIM=Integer + R1_TRIM=Integer The number of bases trimmed from the beginning of read 1 prior to alignment Default + value: 0. + + READ2_TRIM=Integer + R2_TRIM=Integer The number of bases trimmed from the beginning of read 2 prior to alignment Default + value: 0. + + EXPECTED_ORIENTATIONS=PairOrientation + ORIENTATIONS=PairOrientation The expected orientation of proper read pairs. Replaces JUMP_SIZE Possible values: {FR, + RF, TANDEM} This option may be specified 0 or more times. Cannot be used in conjuction + with option(s) JUMP_SIZE (JUMP) + + ALIGNER_PROPER_PAIR_FLAGS=Boolean + Use the aligner's idea of what a proper pair is rather than computing in this program. + Default value: false. Possible values: {true, false} + + SORT_ORDER=SortOrder + SO=SortOrder The order in which the merged reads should be output. Default value: coordinate. + Possible values: {unsorted, queryname, coordinate} + + PRIMARY_ALIGNMENT_STRATEGY=PrimaryAlignmentStrategy + Strategy for selecting primary alignment when the aligner has provided more than one + alignment for a pair or fragment, and none are marked as primary, more than one is marked + as primary, or the primary alignment is filtered out for some reason. BestMapq expects + that multiple alignments will be correlated with HI tag, and prefers the pair of + alignments with the largest MAPQ, in the absence of a primary selected by the aligner. + EarliestFragment prefers the alignment which maps the earliest base in the read. Note + that EarliestFragment may not be used for paired reads. BestEndMapq is appropriate for + cases in which the aligner is not pair-aware, and does not output the HI tag. It simply + picks the alignment for each end with the highest MAPQ, and makes those alignments + primary, regardless of whether the two alignments make sense together.MostDistant is also + for a non-pair-aware aligner, and picks the alignment pair with the largest insert size. + If all alignments would be chimeric, it picks the alignments for each end with the best + MAPQ. For all algorithms, ties are resolved arbitrarily. Default value: BestMapq. + Possible values: {BestMapq, EarliestFragment, BestEndMapq, MostDistant} + + CLIP_OVERLAPPING_READS=BooleanFor paired reads, soft clip the 3' end of each read if necessary so that it does not + extend past the 5' end of its mate. Default value: true. Possible values: {true, false} + + INCLUDE_SECONDARY_ALIGNMENTS=Boolean + If false, do not write secondary alignments to output. Default value: true. + Possible values: {true, false} + + ADD_MATE_CIGAR=Boolean + MC=Boolean Adds the mate CIGAR tag (MC) if true, does not if false. Possible values: {true, false} + + + + +@more_info@ + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_MergeSamFiles.xml b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_MergeSamFiles.xml new file mode 100644 index 000000000..81b9b71c2 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_MergeSamFiles.xml @@ -0,0 +1,89 @@ + + merges multiple SAM/BAM datasets into one + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +**Purpose** + +Merges multiple SAM/BAM datasets into one. + +@dataset_collections@ + +@description@ + + ASSUME_SORTED=Boolean + AS=Boolean If true, assume that the input files are in the same sort order as the requested output + sort order, even if their headers say otherwise. Default value: false. This option can + be set to 'null' to clear the default value. Possible values: {true, false} + + MERGE_SEQUENCE_DICTIONARIES=Boolean + MSD=Boolean Merge the sequence dictionaries Default value: false. This option can be set to 'null' + to clear the default value. Possible values: {true, false} + + COMMENT=String + CO=String Comment(s) to include in the merged output file's header. This option may be specified 0 + or more times. + + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_NormalizeFasta.xml b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_NormalizeFasta.xml new file mode 100644 index 000000000..da9477297 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_NormalizeFasta.xml @@ -0,0 +1,67 @@ + + normalize fasta datasets + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + +**Purpose** + +Takes any dataset that conforms to the fasta format and normalizes it so that all lines of sequence except the last line per named sequence are of the same length. + +@dataset_collections@ + +@description@ + + LINE_LENGTH=Integer The line length to be used for the output fasta file. Default value: 100. + + TRUNCATE_SEQUENCE_NAMES_AT_WHITESPACE=Boolean + Truncate sequence names at first whitespace. Default value: false. Possible values: {true, false} + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_QualityScoreDistribution.xml b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_QualityScoreDistribution.xml new file mode 100644 index 000000000..52f407d4d --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_QualityScoreDistribution.xml @@ -0,0 +1,110 @@ + + chart quality score distribution + + picard_macros.xml + 1 + + + r-base + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Program to chart quality score distributions in a SAM or BAM dataset. + +@dataset_collections@ + +@description@ + + ALIGNED_READS_ONLY=Boolean If set to true, calculate the base distribution over aligned reads only. Default value: + false. Possible values: {true, false} + + PF_READS_ONLY=Boolean If set to true calculate the base distribution over PF reads only. Default value: false. + Possible values: {true, false} + + INCLUDE_NO_CALLS=Boolean If set to true, include quality for no-call bases in the distribution. Default value: + false. Possible values: {true, false} + + ASSUME_SORTED=Boolean + AS=Boolean If true (default), then the sort order in the header file will be ignored. Default: True + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_ReorderSam.xml b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_ReorderSam.xml new file mode 100644 index 000000000..de87f4dae --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_ReorderSam.xml @@ -0,0 +1,119 @@ + + reorder reads to match ordering in reference sequences + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +ReorderSam reorders reads in a SAM/BAM file to match the contig ordering in a provided reference file, as determined by exact name matching of contigs. Reads mapped to contigs absent in the new reference are dropped. + +@dataset_collections@ + +---- + +.. class:: warningmark + +Not to be confused with **SortSam**. + +@description@ + + ALLOW_INCOMPLETE_DICT_CONCORDANCE=Boolean + S=Boolean If true, then allows only a partial overlap of the BAM contigs with the new reference + sequence contigs. By default, this tool requires a corresponding contig in the new + reference for each read contig Default value: false. Possible values: {true, false} + + ALLOW_CONTIG_LENGTH_DISCORDANCE=Boolean + U=Boolean If true, then permits mapping from a read contig to a new reference contig with the same + name but a different length. Highly dangerous, only use if you know what you are doing. + Default value: false. Possible values: {true, false} + +@more_info@ + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_ReplaceSamHeader.xml b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_ReplaceSamHeader.xml new file mode 100644 index 000000000..162ab615a --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_ReplaceSamHeader.xml @@ -0,0 +1,61 @@ + + replace header in a SAM/BAM dataset + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + +**Purpose** + +Replace the SAMFileHeader in a SAM/BAM dataset with the given header. Validation is minimal. It is up to the user to ensure that all the elements referred to in the SAMRecords are present in the new header. Sort order of the two input datasets must be the same. +@dataset_collections@ + +@description@ + + HEADER=File SAM file from which SAMFileHeader will be read. Required. + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_RevertOriginalBaseQualitiesAndAddMateCigar.xml b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_RevertOriginalBaseQualitiesAndAddMateCigar.xml new file mode 100644 index 000000000..39f7c0c3b --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_RevertOriginalBaseQualitiesAndAddMateCigar.xml @@ -0,0 +1,72 @@ + + revert the original base qualities and add the mate cigar tag + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +**Purpose** + +Reverts the original base qualities and adds the mate cigar tag to SAM or BAMs. + +@dataset_collections@ + +@description@ + + RESTORE_ORIGINAL_QUALITIES=Boolean + OQ=Boolean True to restore original qualities from the OQ field to the QUAL field if available. + Default value: true. Possible values: {true, false} + + MAX_RECORDS_TO_EXAMINE=IntegerThe maximum number of records to examine to determine if we can exit early and not + output, given that there are a no original base qualities (if we are to restore) and mate + cigars exist. Set to 0 to never skip the file. Default value: 10000. + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_RevertSam.xml b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_RevertSam.xml new file mode 100644 index 000000000..5a22b4d8f --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_RevertSam.xml @@ -0,0 +1,133 @@ + + revert SAM/BAM datasets to a previous state + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +**Purpose** + +Reverts SAM or BAM files to a previous state by removing certain types of information and/or substituting in the original quality scores when available. + +@dataset_collections@ + +@description@ + + SORT_ORDER=SortOrder + SO=SortOrder The sort order to create the reverted output file with. Default value: queryname. + Possible values: {unsorted, queryname, coordinate} + + RESTORE_ORIGINAL_QUALITIES=Boolean + OQ=Boolean True to restore original qualities from the OQ field to the QUAL field if available. + Default value: true. Possible values: {true, false} + + REMOVE_DUPLICATE_INFORMATION=Boolean + Remove duplicate read flags from all reads. Note that if this is true and + REMOVE_ALIGNMENT_INFORMATION==false, the output may have the unusual but sometimes + desirable trait of having unmapped reads that are marked as duplicates. Default value: + true. Possible values: {true, false} + + REMOVE_ALIGNMENT_INFORMATION=Boolean + Remove all alignment information from the file. Default value: true. TPossible values: {true, false} + + ATTRIBUTE_TO_CLEAR=String When removing alignment information, the set of optional tags to remove. This option may + be specified 0 or more times. + + SANITIZE=Boolean WARNING: This option is potentially destructive. If enabled will discard reads in order + to produce a consistent output BAM. Reads discarded include (but are not limited to) + paired reads with missing mates, duplicated records, records with mismatches in length of + bases and qualities. This option can only be enabled if the output sort order is + queryname and will always cause sorting to occur. Possible values: {true, false} + + MAX_DISCARD_FRACTION=Double If SANITIZE=true and higher than MAX_DISCARD_FRACTION reads are discarded due to + sanitization thenthe program will exit with an Exception instead of exiting cleanly. + Output BAM will still be valid. Default value: 0.01. + + SAMPLE_ALIAS=String + ALIAS=String The sample alias to use in the reverted output file. This will override the existing + sample alias in the file and is used only if all the read groups in the input file have + the same sample alias Default value: null. + + LIBRARY_NAME=String + LIB=String The library name to use in the reverted output file. This will override the existing + sample alias in the file and is used only if all the read groups in the input file have + the same sample alias Default value: null. + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_SamToFastq.xml b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_SamToFastq.xml new file mode 100644 index 000000000..326670482 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_SamToFastq.xml @@ -0,0 +1,195 @@ + + extract reads and qualities from SAM/BAM dataset and convert to fastq + + picard_macros.xml + 1 + + + $report && ## This is necessary for output dataset detection (see output tags below) + + @java_options@ + @symlink_element_identifier@ + + picard + SamToFastq + + INPUT='$escaped_element_identifier' + + #if str( $output_per_rg ) == "true": + OUTPUT_PER_RG=true + OUTPUT_DIR=. + #elif str( $output_per_rg ) == "false" and str( $interleave ) == "false": + FASTQ=READ1.fastq + SECOND_END_FASTQ=READ2.fastq + UNPAIRED_FASTQ=UNPAIRED_READS.fastq + #elif str( $output_per_rg ) == "false" and str( $interleave ) == "true": + FASTQ=INTERLEAVED.fastq + #end if + + RE_REVERSE="${re_reverse}" + INTERLEAVE="${interleave}" + INCLUDE_NON_PF_READS="${include_non_pf_reads}" + CLIPPING_ATTRIBUTE="${clipping_attribute}" + CLIPPING_ACTION="${clipping_action}" + READ1_TRIM="${read1_trim}" + + #if int($read1_max_bases_to_write) > -1: + READ1_MAX_BASES_TO_WRITE="${read1_max_bases_to_write}" + #end if + + READ2_TRIM="${read2_trim}" + + #if int($read2_max_bases_to_write) > -1: + READ2_MAX_BASES_TO_WRITE="${read2_max_bases_to_write}" + #end if + + INCLUDE_NON_PRIMARY_ALIGNMENTS="${include_non_primary_alignments}" + + + VALIDATION_STRINGENCY="${validation_stringency}" + QUIET=true + VERBOSITY=ERROR + @TMPDIR_OPTION@ + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +**Purpose** + +Extracts read sequences and qualities from the input SAM/BAM dataset and outputs them in Sanger fastq format. In the RE_REVERSE=True mode (default behavior), if the read is aligned and the alignment is to the reverse strand on the genome, the read's sequence from input SAM.BAM dataset will be reverse-complemented prior to writing it to fastq in order restore correctly the original read sequence as it was generated by the sequencer. + +----- + +.. class:: warningmark + +**DANGER: Multiple Outputs** + +Generating per readgroup fastq (setting **OUTPUT_PER_RG** to True) may produce very large numbers of outputs. Know what you are doing! + +@dataset_collections@ + +@description@ + + FASTQ=File + F=File Output fastq file (single-end fastq or, if paired, first end of the pair fastq). + Required. Cannot be used in conjuction with option(s) OUTPUT_PER_RG (OPRG) + + SECOND_END_FASTQ=File + F2=File Output fastq file (if paired, second end of the pair fastq). Default value: null. + Cannot be used in conjuction with option(s) OUTPUT_PER_RG (OPRG) + + UNPAIRED_FASTQ=File + FU=File Output fastq file for unpaired reads; may only be provided in paired-fastq mode Default + value: null. Cannot be used in conjuction with option(s) OUTPUT_PER_RG (OPRG) + + OUTPUT_PER_RG=Boolean + OPRG=Boolean Output a fastq file per read group (two fastq files per read group if the group is + paired). Default value: false. Possible values: {true, false} Cannot be used in + conjuction with option(s) SECOND_END_FASTQ (F2) UNPAIRED_FASTQ (FU) FASTQ (F) + + OUTPUT_DIR=File + ODIR=File Directory in which to output the fastq file(s). Used only when OUTPUT_PER_RG is true. + Default value: null. + + RE_REVERSE=Boolean + RC=Boolean Re-reverse bases and qualities of reads with negative strand flag set before writing them + to fastq Default value: true. Possible values: {true, false} + + INTERLEAVE=Boolean + INTER=Boolean Will generate an interleaved fastq if paired, each line will have /1 or /2 to describe + which end it came from Default value: false. Possible values: {true, false} + + INCLUDE_NON_PF_READS=Boolean + NON_PF=Boolean Include non-PF reads from the SAM file into the output FASTQ files. PF means 'passes + filtering'. Reads whose 'not passing quality controls' flag is set are non-PF reads. + Default value: false. Possible values: {true, false} + + CLIPPING_ATTRIBUTE=String + CLIP_ATTR=String The attribute that stores the position at which the SAM record should be clipped Default + value: null. + + CLIPPING_ACTION=String + CLIP_ACT=String The action that should be taken with clipped reads: 'X' means the reads and qualities + should be trimmed at the clipped position; 'N' means the bases should be changed to Ns in + the clipped region; and any integer means that the base qualities should be set to that + value in the clipped region. Default value: null. + + READ1_TRIM=Integer + R1_TRIM=Integer The number of bases to trim from the beginning of read 1. Default value: 0. + + READ1_MAX_BASES_TO_WRITE=Integer + R1_MAX_BASES=Integer The maximum number of bases to write from read 1 after trimming. If there are fewer than + this many bases left after trimming, all will be written. If this value is null then all + bases left after trimming will be written. Default value: null. + + READ2_TRIM=Integer + R2_TRIM=Integer The number of bases to trim from the beginning of read 2. Default value: 0. + + READ2_MAX_BASES_TO_WRITE=Integer + R2_MAX_BASES=Integer The maximum number of bases to write from read 2 after trimming. If there are fewer than + this many bases left after trimming, all will be written. If this value is null then all + bases left after trimming will be written. Default value: null. + + INCLUDE_NON_PRIMARY_ALIGNMENTS=Boolean + If true, include non-primary alignments in the output. Support of non-primary alignments + in SamToFastq is not comprehensive, so there may be exceptions if this is set to true and + there are paired reads with non-primary alignments. Default value: false. + Possible values: {true, false} + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_SortSam.xml b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_SortSam.xml new file mode 100644 index 000000000..d329c6005 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_SortSam.xml @@ -0,0 +1,87 @@ + + sort SAM/BAM dataset + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. class:: infomark + +**Purpose** + +Sorts the input SAM or BAM. + +@dataset_collections@ + +@description@ + + SORT_ORDER=SortOrder + SO=SortOrder Sort order of output file. You can either sort by queryname or by coordinate. + + @more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_ValidateSamFile.xml b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_ValidateSamFile.xml new file mode 100644 index 000000000..4ff0a0735 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_ValidateSamFile.xml @@ -0,0 +1,226 @@ + + assess validity of SAM/BAM dataset + + picard_macros.xml + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +**Purpose** + +Reads a SAM/BAM dataset and report on its validity. + +@dataset_collections@ + +@description@ + + MODE=Mode + M=Mode Mode of output Default value: VERBOSE. This option can be set to 'null' to clear the + default value. Possible values: {VERBOSE, SUMMARY} + + IGNORE=Type List of validation error types to ignore. Possible values: {INVALID_QUALITY_FORMAT, + INVALID_FLAG_PROPER_PAIR, INVALID_FLAG_MATE_UNMAPPED, MISMATCH_FLAG_MATE_UNMAPPED, + INVALID_FLAG_MATE_NEG_STRAND, MISMATCH_FLAG_MATE_NEG_STRAND, INVALID_FLAG_FIRST_OF_PAIR, + INVALID_FLAG_SECOND_OF_PAIR, PAIRED_READ_NOT_MARKED_AS_FIRST_OR_SECOND, + INVALID_FLAG_NOT_PRIM_ALIGNMENT, INVALID_FLAG_SUPPLEMENTARY_ALIGNMENT, + INVALID_FLAG_READ_UNMAPPED, INVALID_INSERT_SIZE, INVALID_MAPPING_QUALITY, INVALID_CIGAR, + ADJACENT_INDEL_IN_CIGAR, INVALID_MATE_REF_INDEX, MISMATCH_MATE_REF_INDEX, + INVALID_REFERENCE_INDEX, INVALID_ALIGNMENT_START, MISMATCH_MATE_ALIGNMENT_START, + MATE_FIELD_MISMATCH, INVALID_TAG_NM, MISSING_TAG_NM, MISSING_HEADER, + MISSING_SEQUENCE_DICTIONARY, MISSING_READ_GROUP, RECORD_OUT_OF_ORDER, + READ_GROUP_NOT_FOUND, RECORD_MISSING_READ_GROUP, INVALID_INDEXING_BIN, + MISSING_VERSION_NUMBER, INVALID_VERSION_NUMBER, TRUNCATED_FILE, + MISMATCH_READ_LENGTH_AND_QUALS_LENGTH, EMPTY_READ, CIGAR_MAPS_OFF_REFERENCE, + MISMATCH_READ_LENGTH_AND_E2_LENGTH, MISMATCH_READ_LENGTH_AND_U2_LENGTH, + E2_BASE_EQUALS_PRIMARY_BASE, BAM_FILE_MISSING_TERMINATOR_BLOCK, UNRECOGNIZED_HEADER_TYPE, + POORLY_FORMATTED_HEADER_TAG, HEADER_TAG_MULTIPLY_DEFINED, + HEADER_RECORD_MISSING_REQUIRED_TAG, INVALID_DATE_STRING, TAG_VALUE_TOO_LARGE, + INVALID_INDEX_FILE_POINTER, INVALID_PREDICTED_MEDIAN_INSERT_SIZE, + DUPLICATE_READ_GROUP_ID, MISSING_PLATFORM_VALUE, INVALID_PLATFORM_VALUE, + DUPLICATE_PROGRAM_GROUP_ID, MATE_NOT_FOUND, MATES_ARE_SAME_END, + MISMATCH_MATE_CIGAR_STRING, MATE_CIGAR_STRING_INVALID_PRESENCE} This option may be + specified 0 or more times. + + MAX_OUTPUT=Integer + MO=Integer The maximum number of lines output in verbose mode Default value: 100. This option can + be set to 'null' to clear the default value. + + REFERENCE_SEQUENCE=File + R=File Reference sequence file, the NM tag check will be skipped if this is missing Default + value: null. + + IGNORE_WARNINGS=Boolean If true, only report errors and ignore warnings. Default value: false. This option can + be set to 'null' to clear the default value. Possible values: {true, false} + + VALIDATE_INDEX=Boolean If true and input is a BAM file with an index file, also validates the index. Default + value: true. This option can be set to 'null' to clear the default value. Possible + values: {true, false} + + IS_BISULFITE_SEQUENCED=Boolean + BISULFITE=Boolean Whether the SAM or BAM file consists of bisulfite sequenced reads. If so, C->T is not + counted as an error in computing the value of the NM tag. Default value: false. This + option can be set to 'null' to clear the default value. Possible values: {true, false} + +@more_info@ + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_macros.xml b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_macros.xml new file mode 100644 index 000000000..ed63ed971 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/picard_macros.xml @@ -0,0 +1,134 @@ + + + `if [ -n "\$TMPDIR" ] ; then echo 'TMP_DIR=\$TMPDIR' ; else if [ -n "\$TEMP" ] ; then echo 'TMP_DIR=\$TEMP' ; fi ; fi` + + + + + + + + + + + + + + + + + + + + 2.18.2 + + + + picard + + + + + + + + + + + +------ + +**Additional information** + +Additional information about Picard tools is available from Picard web site at http://broadinstitute.github.io/picard/ . + + + + +------ + +**Inputs, outputs, and parameters** + +Either a SAM file or a BAM file must be supplied. Galaxy automatically coordinate-sorts all uploaded BAM files. + +From Picard documentation( http://broadinstitute.github.io/picard/):: + + + +------- + +**Read Groups are Important!** + +Setting read groups correctly from the start will simplify your life greatly because you can merge multiple BAM files into one significantly reducing the number of analysis steps. Below we provide an explanation of read groups fields taken from GATK FAQ webpage: + +.. csv-table:: + :header-rows: 1 + + Tag,Importance,Definition,Meaning + "ID","Required","Read group identifier. Each @RG line must have a unique ID. The value of ID is used in the RG tags of alignment records. Must be unique among all read groups in header section. Read group IDs may be modified when merging SAM files in order to handle collisions.","Ideally, this should be a globally unique identify across all sequencing data in the world, such as the Illumina flowcell + lane name and number. Will be referenced by each read with the RG:Z field, allowing tools to determine the read group information associated with each read, including the sample from which the read came. Also, a read group is effectively treated as a separate run of the NGS instrument in tools like base quality score recalibration (a GATK component) -- all reads within a read group are assumed to come from the same instrument run and to therefore share the same error model." + "SM","Sample. Use pool name where a pool is being sequenced.","Required. As important as ID.","The name of the sample sequenced in this read group. GATK tools treat all read groups with the same SM value as containing sequencing data for the same sample. Therefore it's critical that the SM field be correctly specified, especially when using multi-sample tools like the Unified Genotyper (a GATK component)." + "PL","Platform/technology used to produce the read. Valid values: ILLUMINA, SOLID, LS454, HELICOS and PACBIO.","Important. Not currently used in the GATK, but was in the past, and may return. The only way to known the sequencing technology used to generate the sequencing data","It's a good idea to use this field." + "LB","DNA preparation library identify","Essential for MarkDuplicates","MarkDuplicates uses the LB field to determine which read groups might contain molecular duplicates, in case the same DNA library was sequenced on multiple lanes." + +**Example of Read Group usage** + +Support we have a trio of samples: MOM, DAD, and KID. Each has two DNA libraries prepared, one with 400 bp inserts and another with 200 bp inserts. Each of these libraries is run on two lanes of an illumina hiseq, requiring 3 x 2 x 2 = 12 lanes of data. When the data come off the sequencer, we would create 12 BAM files, with the following @RG fields in the header:: + + Dad's data: + @RG ID:FLOWCELL1.LANE1 PL:illumina LB:LIB-DAD-1 SM:DAD PI:200 + @RG ID:FLOWCELL1.LANE2 PL:illumina LB:LIB-DAD-1 SM:DAD PI:200 + @RG ID:FLOWCELL1.LANE3 PL:illumina LB:LIB-DAD-2 SM:DAD PI:400 + @RG ID:FLOWCELL1.LANE4 PL:illumina LB:LIB-DAD-2 SM:DAD PI:400 + + Mom's data: + @RG ID:FLOWCELL1.LANE5 PL:illumina LB:LIB-MOM-1 SM:MOM PI:200 + @RG ID:FLOWCELL1.LANE6 PL:illumina LB:LIB-MOM-1 SM:MOM PI:200 + @RG ID:FLOWCELL1.LANE7 PL:illumina LB:LIB-MOM-2 SM:MOM PI:400 + @RG ID:FLOWCELL1.LANE8 PL:illumina LB:LIB-MOM-2 SM:MOM PI:400 + + Kid's data: + @RG ID:FLOWCELL2.LANE1 PL:illumina LB:LIB-KID-1 SM:KID PI:200 + @RG ID:FLOWCELL2.LANE2 PL:illumina LB:LIB-KID-1 SM:KID PI:200 + @RG ID:FLOWCELL2.LANE3 PL:illumina LB:LIB-KID-2 SM:KID PI:400 + @RG ID:FLOWCELL2.LANE4 PL:illumina LB:LIB-KID-2 SM:KID PI:400 + +Note the hierarchical relationship between read groups (unique for each lane) to libraries (sequenced on two lanes) and samples (across four lanes, two lanes for each library). + + +------ + +**Dataset collections - processing large numbers of datasets at once** + +This will be added shortly + + + + + + + @misc{Picard, + author = {Broad Institute}, + title = {Picard}, + publisher = {GitHub}, + journal = { Broad Institute, GitHub repository}, + url = {http://broadinstitute.github.io/picard/} + } + + + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/read_group_macros.xml b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/read_group_macros.xml new file mode 100644 index 000000000..893101170 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/read_group_macros.xml @@ -0,0 +1,294 @@ + + + +#def identifier_or_name($input1) + #if hasattr($input1, 'element_identifier') + #return $input1.element_identifier + #else + #return $input1.name.rstrip('.gz').rstrip('.fastq').rstrip('.fq') + #end if +#end def + +#def clean(name) + #import re + #set $name_clean = re.sub('[^\w\-_\.]', '_', $name) + #return $name_clean +#end def + +#def read_group_name_default($input1, $input2=None) + #if $input2 is None + #return $clean($identifier_or_name($input1)) + #else + #import itertools + #set $input_name1 = $clean($identifier_or_name($input1)) + #set $input_name2 = $clean($identifier_or_name($input2)) + #set $common_prefix = ''.join([c[0] for c in itertools.takewhile(lambda x: all(x[0] == y for y in x), itertools.izip(*[$input_name1, $input_name2]))]) + #if len($common_prefix) > 3 + #return $common_prefix + #else + #return $input_name1 + #end if + #end if +#end def + +#def format_read_group(prefix, value, quote='', arg='') + #if $value + #return $arg + $quote + $prefix + $value + $quote + #else + #return '' + #end if +#end def + +#def rg_param(name) + #if $varExists("rg") + #return $rg.get($name, None) + #else + #return $getVar($name, None) + #end if +#end def + +#set $use_rg = True + + + +#if $use_rg + #if $rg_param('read_group_id_conditional') is None + #set $rg_id = $rg_auto_name + #elif $rg_param('read_group_id_conditional').do_auto_name + #set $rg_id = $rg_auto_name + #else + #set $rg_id = str($rg_param('read_group_id_conditional').ID) + #end if + + #if $rg_param('read_group_sm_conditional') is None + #set $rg_sm = '' + #elif $rg_param('read_group_sm_conditional').do_auto_name + #set $rg_sm = $rg_auto_name + #else + #set $rg_sm = str($rg_param('read_group_sm_conditional').SM) + #end if + + #if $rg_param('PL') + #set $rg_pl = str($rg_param('PL')) + #else + #set $rg_pl = '' + #end if + + #if $rg_param('read_group_lb_conditional') is None + #set $rg_lb = '' + #elif $rg_param('read_group_lb_conditional').do_auto_name + #set $rg_lb = $rg_auto_name + #else + #set $rg_lb = str($rg_param('read_group_lb_conditional').LB) + #end if + + #if $rg_param('CN') + #set $rg_cn = str($rg_param('CN')) + #else + #set $rg_cn = '' + #end if + + #if $rg_param("DS") + #set $rg_ds = str($rg_param("DS")) + #else + #set $rg_ds = '' + #end if + + #if $rg_param("DT") + #set $rg_dt = str($rg_param("DT")) + #else + #set $rg_dt = '' + #end if + + #if $rg_param("FO") + #set $rg_fo = str($rg_param("FO")) + #else + #set $rg_fo = '' + #end if + + #if $rg_param("KS") + #set $rg_ks = str($rg_param("KS")) + #else + #set $rg_ks = '' + #end if + + #if $rg_param("PG") + #set $rg_pg = str($rg_param("PG")) + #else + #set $rg_pg = '' + #end if + + #if $rg_param("PI") != None + #set $rg_pi = str($rg_param("PI")) + #else + #set $rg_pi = '' + #end if + + #if $rg_param("PU") + #set $rg_pu = str($rg_param("PU")) + #else + #set $rg_pu = '' + #end if +#end if + + +#set $use_rg = str($rg.rg_selector) != "do_not_set" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \*|[ACMGRSVTWYHKDBN]+$ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/tool-data/picard_index.loc.sample b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/tool-data/picard_index.loc.sample new file mode 100644 index 000000000..cc326418a --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/tool-data/picard_index.loc.sample @@ -0,0 +1,26 @@ +#This is a sample file distributed with Galaxy that enables tools +#to use a directory of Picard dict and associated files. You will need +#to create these data files and then create a picard_index.loc file +#similar to this one (store it in this directory) that points to +#the directories in which those files are stored. The picard_index.loc +#file has this format (longer white space is the TAB character): +# +# +# +#So, for example, if you had hg18 indexed and stored in +#/depot/data2/galaxy/srma/hg18/, +#then the srma_index.loc entry would look like this: +# +#hg18 hg18 hg18 Pretty /depot/data2/galaxy/picard/hg18/hg18.fa +# +#and your /depot/data2/galaxy/srma/hg18/ directory +#would contain the following three files: +#hg18.fa +#hg18.dict +#hg18.fa.fai +# +#The dictionary file for each reference (ex. hg18.dict) must be +#created via Picard (http://picard.sourceforge.net). Note that +#the dict file does not have the .fa extension although the +#path list in the loc file does include it. +# diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/tool_data_table_conf.xml.sample b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/tool_data_table_conf.xml.sample new file mode 100644 index 000000000..03d151fd9 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/tool_data_table_conf.xml.sample @@ -0,0 +1,8 @@ + + + + + value, dbkey, name, path + +
    +
    \ No newline at end of file diff --git a/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/tool_data_table_conf.xml.test b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/tool_data_table_conf.xml.test new file mode 100644 index 000000000..5c3394be6 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/picard-b9fbec5ac6b2/tool_data_table_conf.xml.test @@ -0,0 +1,7 @@ + + + + value, dbkey, name, path + +
    +
    diff --git a/janis_core/tests/data/galaxy/quast-675488238c96/macros.xml b/janis_core/tests/data/galaxy/wrappers/quast-675488238c96/macros.xml similarity index 100% rename from janis_core/tests/data/galaxy/quast-675488238c96/macros.xml rename to janis_core/tests/data/galaxy/wrappers/quast-675488238c96/macros.xml diff --git a/janis_core/tests/data/galaxy/quast-675488238c96/quast.xml b/janis_core/tests/data/galaxy/wrappers/quast-675488238c96/quast.xml similarity index 100% rename from janis_core/tests/data/galaxy/quast-675488238c96/quast.xml rename to janis_core/tests/data/galaxy/wrappers/quast-675488238c96/quast.xml diff --git a/janis_core/tests/data/galaxy/wrappers/quast-675488238c96/static/images/Align_view.png b/janis_core/tests/data/galaxy/wrappers/quast-675488238c96/static/images/Align_view.png new file mode 100644 index 0000000000000000000000000000000000000000..8939b971645a854a47e396582d1b0f9d5b96e621 GIT binary patch literal 42122 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 V{I1jD-|I;g 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 J)siM5{|oNLt||Zk literal 0 HcmV?d00001 diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/FPKM_count.xml b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/FPKM_count.xml new file mode 100644 index 000000000..4fb6a5da0 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/FPKM_count.xml @@ -0,0 +1,132 @@ + + calculates raw read count, FPM, and FPKM for each gene + + + rseqc_macros.xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/README.txt b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/README.txt new file mode 100644 index 000000000..4a7feece8 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/README.txt @@ -0,0 +1,23 @@ +== RSeQC Galaxy Wrapper == + +This is a Galaxy wrapper for the RSeQC RNA-Seq QC package. + +** Installation ** + +Installation from a tool shed provides the necessary tool dependencies, R, numpy, and RSeQC. + +Otherwise, make sure that R and the RSeQC scripts are in the path and run under the Galaxy environment. +Move the xml files to a subdirectory of your tools directory and add lines in tool_conf.xml to point to them. +Restart the Galaxy server. + +Requires Python 2.7 + +** Attribution ** + +The RSeQC package and associated documentation can be found at: http://rseqc.sourceforge.net/ + +The galaxy wrapper code was written by + Nilesh Kavthekar, School of Engineering and Applied Sciences, University of Pennsylvania, Class of 2016 +Modified by + Lance Parsons, Lewis-Sigler Institute for Integrative Genomics, Princeton University, + Bjorn Gruning, University of Freiburg, bjoern.gruening@gmail.com diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/RNA_fragment_size.xml b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/RNA_fragment_size.xml new file mode 100644 index 000000000..3faac15f3 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/RNA_fragment_size.xml @@ -0,0 +1,87 @@ + + + calculates the fragment size for each gene/transcript + + + + rseqc_macros.xml + + + + + + + + + '${output}' + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/RPKM_saturation.xml b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/RPKM_saturation.xml new file mode 100644 index 000000000..8e92690f4 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/RPKM_saturation.xml @@ -0,0 +1,168 @@ + + calculates raw count and RPKM values for transcript at exon, intron, and mRNA level + + + rseqc_macros.xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/bam2wig.xml b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/bam2wig.xml new file mode 100644 index 000000000..57230bb89 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/bam2wig.xml @@ -0,0 +1,155 @@ + + + converts all types of RNA-seq data from .bam to .wig + + + + rseqc_macros.xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + strand_type['strand_specific'] == 'none' + + + strand_type['strand_specific'] != 'none' + + + strand_type['strand_specific'] != 'none' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/bam_stat.xml b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/bam_stat.xml new file mode 100644 index 000000000..526a0a702 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/bam_stat.xml @@ -0,0 +1,71 @@ + + + reads mapping statistics for a provided BAM or SAM file. + + + + rseqc_macros.xml + + + + + + + + + '${output}' + ]]> + + + + + + + + + + + + + + + + + + + `_, +which quality the probability that a read is misplaced (Do NOT confused with +sequence quality, sequence quality measures the probability that a base-calling +was wrong) . + +Inputs +++++++++++++++ + +Input BAM/SAM file + Alignment file in BAM/SAM format. + +Minimum mapping quality + Minimum mapping quality for an alignment to be called "uniquely mapped" (default=30) + +Output +++++++++++++++ + +- Total Reads (Total records) = {Multiple mapped reads} + {Uniquely mapped} +- Uniquely mapped Reads = {read-1} + {read-2} (if paired end) +- Uniquely mapped Reads = {Reads map to '+'} + {Reads map to '-'} +- Uniquely mapped Reads = {Splice reads} + {Non-splice reads} + +@ABOUT@ + +]]> + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/clipping_profile.xml b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/clipping_profile.xml new file mode 100644 index 000000000..f81d0bc77 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/clipping_profile.xml @@ -0,0 +1,85 @@ + + + estimates clipping profile of RNA-seq reads from BAM or SAM file + + + + rseqc_macros.xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/deletion_profile.xml b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/deletion_profile.xml new file mode 100644 index 000000000..38a270d46 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/deletion_profile.xml @@ -0,0 +1,87 @@ + + + calculates the distributions of deleted nucleotides across reads + + + + rseqc_macros.xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/geneBody_coverage.xml b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/geneBody_coverage.xml new file mode 100644 index 000000000..a9822efd7 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/geneBody_coverage.xml @@ -0,0 +1,144 @@ + + Read coverage over gene body + + + rseqc_macros.xml + + + + + > 'input_list.txt' && + #end for + geneBody_coverage.py -i 'input_list.txt' -r '${refgene}' --minimum_length ${minimum_length} -o output + #else + #set $safename = re.sub('[^\w\-_]', '_', $batch_mode.input.element_identifier) + ln -sf '${batch_mode.input}' '${safename}.bam' && + ln -sf '${batch_mode.input.metadata.bam_index}' '${safename}.bam.bai' && + geneBody_coverage.py -i '${safename}.bam' -r '${refgene}' --minimum_length ${minimum_length} -o output + #end if + ]]> + + + + + + + + + + + + + + + + + + + + + + + + batch_mode['batch_mode_selector'] == 'merge' and len(inputs) >= 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + `_ + +.. image:: $PATH_TO_IMAGES/geneBody_workflow.png + :width: 800 px + :scale: 80 % + + +## Inputs + +Input BAM/SAM file + Alignment file in BAM/SAM format. + +Reference gene model + Gene Model in BED format. + +Minimum mRNA length + Minimum mRNA length (bp). mRNA that are shorter than this value will be skipped (default is 100). + +## Outputs + +Text + Table that includes the data used to generate the plots + +R Script + R script file that reads the data and generates the plot + +PDF + The final plot, in PDF format + +Example plots: +.. image:: $PATH_TO_IMAGES/Aug_26.geneBodyCoverage.curves.png +:height: 600 px +:width: 600 px +:scale: 80 % + +.. image:: $PATH_TO_IMAGES/Aug_26.geneBodyCoverage.heatMap.png + :height: 600 px + :width: 600 px + :scale: 80 % + +@ABOUT@ + + ]]> + + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/geneBody_coverage2.xml b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/geneBody_coverage2.xml new file mode 100644 index 000000000..eeffdb796 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/geneBody_coverage2.xml @@ -0,0 +1,80 @@ + + + Read coverage over gene body + + + + rseqc_macros.xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/infer_experiment.xml b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/infer_experiment.xml new file mode 100644 index 000000000..3769822c6 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/infer_experiment.xml @@ -0,0 +1,141 @@ + + speculates how RNA-seq were configured + + + rseqc_macros.xml + + + + + + + + + '${output}' + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/inner_distance.xml b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/inner_distance.xml new file mode 100644 index 000000000..4c845b502 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/inner_distance.xml @@ -0,0 +1,113 @@ + + calculate the inner distance (or insert size) between two paired RNA reads + + + rseqc_macros.xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + > Read2_end due to spliced mapping of read1) + - third column indicates how paired reads were mapped: PE_within_same_exon, PE_within_diff_exon,PE_reads_overlap +2. output..inner_distance_freq.txt: + - inner distance starts + - inner distance ends + - number of read pairs + - note the first 2 columns are left side half open interval +3. output.inner_distance_plot.r: R script to generate histogram +4. output.inner_distance_plot.pdf: histogram plot + +.. image:: $PATH_TO_IMAGES/inner_distance.png + :height: 600 px + :width: 600 px + :scale: 80 % + +@ABOUT@ + +]]> + + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/insertion_profile.xml b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/insertion_profile.xml new file mode 100644 index 000000000..abb7dd724 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/insertion_profile.xml @@ -0,0 +1,88 @@ + + + calculates the distribution of inserted nucleotides across reads + + + + rseqc_macros.xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/junction_annotation.xml b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/junction_annotation.xml new file mode 100644 index 000000000..d55349795 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/junction_annotation.xml @@ -0,0 +1,113 @@ + + compares detected splice junctions to reference gene model + + + rseqc_macros.xml + + + + + r-base + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + = 100 splicing events. +* splice junction: multiple splicing events spanning the same intron can be consolidated into one splicing junction. + +All detected junctions can be grouped to 3 exclusive categories: + +1. Annotated: The junction is part of the gene model. Both splice sites, 5' splice site + (5'SS) and 3'splice site (3'SS) can be annotated by reference gene model. +2. complete_novel: Complete new junction. Neither of the two splice sites cannot be annotated by gene model +3. partial_novel: One of the splice site (5'SS or 3'SS) is new, while the other splice site is annotated (known) + +Inputs +++++++++++++++ + +Input BAM/SAM file + Alignment file in BAM/SAM format. + +Reference gene model + Gene model in BED format. + +Minimum intron length (default=50) + Minimum intron length (bp). + + +Output +++++++++++++++ + +1. output.junc.anno.junction.xls: + - chrom ID + - start position of junction (coordinate is 0 based) + - end position of junction (coordinate is 1 based) + - number of splice events supporting this junction + - 'annotated', 'complete_novel' or 'partial_novel'. +2. output.anno.junction_plot.r: R script to generate pie chart +3. output.splice_junction.pdf: plot of splice junctions +4. output.splice_events.pdf: plot of splice events + +.. image:: $PATH_TO_IMAGES/junction.png + :height: 400 px + :width: 850 px + :scale: 80 % + +@ABOUT@ + +]]> + + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/junction_saturation.xml b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/junction_saturation.xml new file mode 100644 index 000000000..8a45df7c0 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/junction_saturation.xml @@ -0,0 +1,129 @@ + + detects splice junctions from each subset and compares them to reference gene model + + + rseqc_macros.xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/mismatch_profile.xml b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/mismatch_profile.xml new file mode 100644 index 000000000..7b7267ff5 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/mismatch_profile.xml @@ -0,0 +1,89 @@ + + + calculates the distribution of mismatches across reads + + + + rseqc_macros.xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/read_GC.xml b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/read_GC.xml new file mode 100644 index 000000000..eaba5d11d --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/read_GC.xml @@ -0,0 +1,74 @@ + + determines GC% and read count + + + rseqc_macros.xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/read_NVC.xml b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/read_NVC.xml new file mode 100644 index 000000000..f7f5a07f4 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/read_NVC.xml @@ -0,0 +1,91 @@ + + to check the nucleotide composition bias + + + rseqc_macros.xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/read_distribution.xml b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/read_distribution.xml new file mode 100644 index 000000000..0f823d24c --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/read_distribution.xml @@ -0,0 +1,96 @@ + + calculates how mapped reads were distributed over genome feature + + + rseqc_macros.xml + + + + + + + + + '${output}' + ]]> + + + + + + + + + + + + + + + + + + + + UTR exons > Introns > Intergenic regions, for example, if a read was mapped to +both CDS exon and intron, it will be assigned to CDS exons. + +* "Total Reads": This does NOT include those QC fail,duplicate and non-primary hit reads +* "Total Tags": reads spliced once will be counted as 2 tags, reads spliced twice will be counted as 3 tags, etc. And because of this, "Total Tags" >= "Total Reads" +* "Total Assigned Tags": number of tags that can be unambiguously assigned the 10 groups (see below table). +* Tags assigned to "TSS_up_1kb" were also assigned to "TSS_up_5kb" and "TSS_up_10kb", tags assigned to "TSS_up_5kb" were also assigned to "TSS_up_10kb". Therefore, "Total Assigned Tags" = CDS_Exons + 5'UTR_Exons + 3'UTR_Exons + Introns + TSS_up_10kb + TES_down_10kb. +* When assign tags to genome features, each tag is represented by its middle point. + +RSeQC cannot assign those reads that: + +* hit to intergenic regions that beyond region starting from TSS upstream 10Kb to TES downstream 10Kb. +* hit to regions covered by both 5'UTR and 3' UTR. This is possible when two head-to-tail transcripts are overlapped in UTR regions. +* hit to regions covered by both TSS upstream 10Kb and TES downstream 10Kb. + + +Inputs +++++++++++++++ + +Input BAM/SAM file + Alignment file in BAM/SAM format. + +Reference gene model + Gene model in BED format. + +Sample Output +++++++++++++++ + +Output: + +=============== ============ =========== =========== +Group Total_bases Tag_count Tags/Kb +=============== ============ =========== =========== +CDS_Exons 33302033 20002271 600.63 +5'UTR_Exons 21717577 4408991 203.01 +3'UTR_Exons 15347845 3643326 237.38 +Introns 1132597354 6325392 5.58 +TSS_up_1kb 17957047 215331 11.99 +TSS_up_5kb 81621382 392296 4.81 +TSS_up_10kb 149730983 769231 5.14 +TES_down_1kb 18298543 266161 14.55 +TES_down_5kb 78900674 729997 9.25 +TES_down_10kb 140361190 896882 6.39 +=============== ============ =========== =========== + +@ABOUT@ + +]]> + + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/read_duplication.xml b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/read_duplication.xml new file mode 100644 index 000000000..e00ed18d2 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/read_duplication.xml @@ -0,0 +1,82 @@ + + determines reads duplication rate with sequence-based and mapping-based strategies + + + rseqc_macros.xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/read_hexamer.xml b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/read_hexamer.xml new file mode 100644 index 000000000..cfde2d69d --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/read_hexamer.xml @@ -0,0 +1,137 @@ + + + calculates hexamer (6mer) frequency for reads, genomes, and mRNA sequences + + + + rseqc_macros.xml + + + + + + + + + "${safename}" && + #else: + ln -sf '${input}' "${safename}" && + #end if + #end for + read_hexamer.py -i '${ ','.join( [ $name for $name in $input_list ] ) }' + #if $refgenome: + -r '${refgenome}' + #end if + #if $refgene: + -g '${refgene}' + #end if + > '${output}' + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/read_quality.xml b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/read_quality.xml new file mode 100644 index 000000000..89025df90 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/read_quality.xml @@ -0,0 +1,98 @@ + + determines Phred quality score + + + rseqc_macros.xml + + + + + r-base + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/rseqc_macros.xml b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/rseqc_macros.xml new file mode 100644 index 000000000..c37183c2d --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/rseqc_macros.xml @@ -0,0 +1,160 @@ + + + 2.6.4 + + + + rseqc + + + + + + rseqc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + rscript_output + + + + + + + + + + +----- + +About RSeQC ++++++++++++ + +The RSeQC_ package provides a number of useful modules that can comprehensively +evaluate high throughput sequence data especially RNA-seq data. "Basic modules" +quickly inspect sequence quality, nucleotide composition bias, PCR bias and GC +bias, while "RNA-seq specific modules" investigate sequencing saturation status +of both splicing junction detection and expression estimation, mapped reads +clipping profile, mapped reads distribution, coverage uniformity over gene +body, reproducibility, strand specificity and splice junction annotation. + +The RSeQC package is licensed under the GNU GPL v3 license. + +.. image:: $PATH_TO_IMAGES/logo.png + +.. _RSeQC: http://rseqc.sourceforge.net/ + + + + + + + 10.1093/bioinformatics/bts356 + + + diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/36mer.qual.heatmap.png b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/36mer.qual.heatmap.png new file mode 100644 index 0000000000000000000000000000000000000000..caf9f1a5261e70dfa452a6ebdda6e3ca98227b36 GIT binary patch literal 19158 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 Qt3oNtU6;+1G4lO?0I@R&FaQ7m literal 0 HcmV?d00001 diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/36mer.qual.plot.png b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/36mer.qual.plot.png new file mode 100644 index 0000000000000000000000000000000000000000..2d8a504ea94c551226a250f0d879023d6d9f9ff7 GIT binary patch literal 29673 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 T%xMA#LT=yGxRH0=)cgMf&GO|- literal 0 HcmV?d00001 diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/NVC_plot.png b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/NVC_plot.png new file mode 100644 index 0000000000000000000000000000000000000000..abe81323e1ae228d44d2d09153fe08a2d0d4b405 GIT binary patch literal 43556 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 literal 0 HcmV?d00001 diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/RelativeError.png b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/RelativeError.png new file mode 100644 index 0000000000000000000000000000000000000000..2b87188da0650b4524ab97b5b65d469ec541f7aa GIT binary patch literal 25301 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 literal 0 HcmV?d00001 diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/geneBody_coverage.png b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/geneBody_coverage.png new file mode 100644 index 0000000000000000000000000000000000000000..394d705d5ac240e0980e76c32472d3a67762984b GIT binary patch literal 19474 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 literal 0 HcmV?d00001 diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/geneBody_workflow.png b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/geneBody_workflow.png new file mode 100644 index 0000000000000000000000000000000000000000..5a591691b97ab3951cfb65251b58c032d6b02888 GIT binary patch literal 147686 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

    gRYe7_?U>^9jE{`6a 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

    }c>O_I2>-?Z$S0=NDBmj+2fSiiUJD^i&z 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

      vEjGp=*>FCMVo5OWhN?a8 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 z
      lfjmX&n?mNjv56rN^bMeWA?RWNUe8>TdFn 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 literal 0 HcmV?d00001 diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/inner_distance.png b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/inner_distance.png new file mode 100644 index 0000000000000000000000000000000000000000..d8cb45f1f47904333bccb03c7258e74826e35917 GIT binary patch literal 25119 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 XksEFUweTN5FkHE$eKAMF;>o`NQg%Sg literal 0 HcmV?d00001 diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/junction.png b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/junction.png new file mode 100644 index 0000000000000000000000000000000000000000..7ce2963634f8a4b7edab55d605b76a795e09154f GIT binary patch literal 331183 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 Wp&n=c%$?&RqN?Hzg#x*I&;K7Ie%`<U literal 0 HcmV?d00001 diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/junction_saturation.png b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/junction_saturation.png new file mode 100644 index 0000000000000000000000000000000000000000..47df59a1a1792b9a3accc9ffe097f6dff70437b4 GIT binary patch literal 32059 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 F{|ovatQ7zN literal 0 HcmV?d00001 diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/logo.png b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e098e458687a7cf534471938f0fc0d9ad085a660 GIT binary patch literal 7341 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 Ty6J@-00000NkvXXu0mjf@gjmA literal 0 HcmV?d00001 diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/mismatch_profile.png b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/mismatch_profile.png new file mode 100644 index 0000000000000000000000000000000000000000..e5692ae5ef9eccc77726b8de0715318ef82840a3 GIT binary patch literal 381543 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 Nh^MQc%Q~loCIHEWDFOfh literal 0 HcmV?d00001 diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/out.deletion_profile.png b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/out.deletion_profile.png new file mode 100644 index 0000000000000000000000000000000000000000..a5eda6448a01468632ecd8bb8a671c2f37b695e5 GIT binary patch literal 28190 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 JSkocmKLB`9?^gf- literal 0 HcmV?d00001 diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/out.insertion_profile.R1.png b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/out.insertion_profile.R1.png new file mode 100644 index 0000000000000000000000000000000000000000..a0458f65a43248f28517b462966e81261103e90e GIT binary patch literal 24574 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 literal 0 HcmV?d00001 diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/out.insertion_profile.R2.png b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/out.insertion_profile.R2.png new file mode 100644 index 0000000000000000000000000000000000000000..2e82e1ac11c7505325f713caeb02ac238f245fa6 GIT binary patch literal 24713 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 literal 0 HcmV?d00001 diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/read_gc.png b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/read_gc.png new file mode 100644 index 0000000000000000000000000000000000000000..b0bde8e2a3b09e1c1c6bdbd9198c4c1a3029986b GIT binary patch literal 14955 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 literal 0 HcmV?d00001 diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/saturation.png b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/saturation.png new file mode 100644 index 0000000000000000000000000000000000000000..6aadc89382480f47ebb8f39f374890766199ebb4 GIT binary patch literal 103585 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 II;Vst07q*pKL7v# literal 0 HcmV?d00001 diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/saturation_eg.png b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/static/images/saturation_eg.png new file mode 100644 index 0000000000000000000000000000000000000000..f9f7196637bfe64560f64a5f395d0bed76ef8285 GIT binary patch literal 20393 zcmeIaX*kyFA20ftLqet!DN}_qM21A>A<3L5V@i}MO6D>PMUhIGGnJu`WS%NY2o+^W zid2RaN$k(v|G!`C7w6jNyx1?!xz4)Qy4G4f{D%Af4xizBKhZ{pIxI}QOcV-*MNe1L zghHVjCjYFW$DaiD)Fx3VG}9+EG>r5#G&UJ|xgR@m(uqRZnh<CH-hIG~Q#IQCa5lGU zdTIO`u8YOyrq+)(@ZM{s*SnH4q0am0#T&8gXFhJcrmuHZygFr`_KVtm^#V=EeTI#f zebsqaH~+f-jjBw~RE?`wID3zG|6b=Szb+Jb6cw93KGIs5P#moI`K-!Rm)zbb2XBm~ z=&iRKoIN6!mT)O8C3&~SX2zFlTjuuW-tjlAI=q8=M{BrFUz6?ThCz9T{>hcoJ{I}8 zG{U#lPafP8xN+u0$kqJaMXZ|!wSP}<8&Z2Wqx^w?hiH_gy>IfUMAJ?_0agXmFIydw zFJ`|k7yBU6{CB7H?~|*4@LebuI<Wl<Z`E@@<1^oG*mql29WYvXDd)b+YQ}G7V)m2h zr4NrU_1c_$(!&;9<oZajSyHI>)53buV6K^(*25xkzLI-quix;`Zv6dBo_o@CYSUnJ zrOQHizEQ37i>soQr@YQ}s1!t`x>m`@><Q&zA1ZjIp72>{Z_=^TcWtBmC*w*x>!iMK zH~3@~#66iM@?FPc=v8Zbls{YWc>fpLmxnCx9J3i)4i}HNU2~ePZ~FtYk1ElcHR-K; zzrW6Ht=z6SJi6J-TIR^kcuw`@L`V7uQI8USxM|!AOWkneX8UQ?k1FM2883T^3X+{_ z_%#F8#f!+M+cmBJu4Gw4C6jkKa&;}ghp{OQjlor;9+Ru<qI2!nIDI=e7SiO|oWgSV z^>sPz6E8>DzlZVN^yUcv`sDMbZHXF3Q({9528G=dnuITQvwL~Gs^Gi$(&7EvxgRRB zo#LbXq0b-P*0$xGy6fNFSsXk!&+YmrA@ziKnlD3r)0(mrnwiDo9e+#2XG_(0RQo@e z{Ib?SIlnG{Apd6%)Az#s@~DKxJ>?N~=DLn<$1Zm%t7u=2<Z0hz)8rHo(CM*4bM8#+ zLlK7;O0PLiSZ*0-$cYqD7!c4)8oH{Q#5Kk|R_%4x`r5!5y#=!civ{Ba!v&j#^+!h% zJq|7CRSE_O9ge-#JNnu2$JbCl>t31tk8Mn)a$?J@{q)-OC3TB+Tb`!%Y-iDP?B3Y( zbx`@CZ?*4s`qcWG-rirO3dI+!XbkDNeAObiD?B*0tl`?dFGAOTpl8j4LvGT|sVQ8q zHeK{@VfWPKJ6@TTR>|NaRQb8W;MQ^qlXEOr@##$|O1lc5`)%$#w>QwQ|2WULyl<(V zac`?6r%bQD9+M3!$U9sz*AR4Q=YB<_bNBb{`Ld()%chd4O?8<9c@6X1OMmzY{}`fI znBy5dBro{Zn`YRRHT_SyZeQft4-e9)4lAU~zYCx4I3OHEHSO|eekS<H`s$l*ayMD0 zYribe+KrAL`;j(w?DXiqxjK4}XG=VXD4xE}TO0RMD4QsHnrddgsbAlp_1!-|$}l~j zbngAhXyLVjQHh!k9D>?875!P|zt>BPm2x=HMkf?lYIT`d32EmSaK(t_IQJH?Z>Ej@ z>a(+B>Qd1A+!J1My5Bz!e*Eiq`%llFEsCGN?K&{1ay%g3AW@i6Q&ThBm`jsklc1p3 zCChsJFLg;sbW{|r9Tf*VJ7YbysG#855IO@*O<@XiN>r3Cg<Fc9J%J)&CnzXL_5c6E z|D9Eu(_-k%-sAsklf3*v@702W-D{J?4{AR?^DXSFwWwaA@X?pN-0RmzPfvTS=2tTF z<|IGC&d&a(HgNZs*Tuy%f!A)bd$_snh*-V;g0y36RJ^*TrqzdzTf3jWe93d){oWpi z)TE^Ft5-R@q@$vu^uznOJ&qm~rlzLWd_uOB%gS?Ae@hG9%*+g3^0p-XkDopX%E+wU z<2P5Iyxp2MM+iT2&dRvny5eL*6uXd=bLXaBEt5a<Q%`>X_*{DQ+1jm~Obv{P3H@XX zz6-y8{c6qGcg<t|`w?1N+PxV@_5J<4qN1W6US1c<%ge{35JDpQ;@b5TyJN>9?pZ%{ zcwKa4dS*uL!Lb+Vxw%`ExY^l_^E+=)2j$q-1vz(R(zV8IU^sB#rTpR`%Z6QcPvZHt ziXNYx+UWASD6Z7;NwTJapkU_NOdq<{l=%2~1>fo64Z%a>U0Kq8bK`=qfB*R-v}4Ej zxQD+NW*nPaTN?)lH})2o`;Sg-!E41>q|)?R>^}3gK3nffN$^V0!oq^xiyLy8LU@Sv z8C*icSoDt{Kjs~=%{Ano8}HHxjShL0dth|*lB%}0HvLC0#S5XKBcr3C^Mn4Z-v%DO zcIL)q{mU{#va+&D{eHS&$I6~s$DcfTQug-5!px|G=LcH+7G>{_Yoo6YsJ4tWMIJ&{ z&2`{c4&Jj0Us?+I`1!Nz3wxVKhvUC~{Yu>~BO_yn?b?bRPZF^@y~g)hqKK}Zo|=`_ zjq$CNkd1r%?B3pYii(b=qA2@LQ}}nEX?`LQETOO-KTl^RO-)bX;NUnpRC~mGHP^v| z2gAa`(lsL2<Q**Dc>n%=HZCqY9v+^quBfQI)mZdC?d{eT%`a}sYaui;WprKFs3Fah zw*0?4o$pBwS63?^J%0RRyqcz_Stiz6V2@weW{rsY=4RU3+S*G0`68G1-`_u$_MNsn zKS8qOwgu;O441f_yZfbm*LF0tw==7#s8pW*96xS}2+q;A^`=l10v4o-4nLyCR?#tY z*Z1~v@hf@PzkP6AONS&47gqm_k53EI!EB0Q^}3K~jxCv{xrVyBx@;-2SaEOXmQ}uA z-;|CIJd|Ae`xm*pnzDEAUW$pS>B!X7C2TFH>+Z8tgIeC+-U*W%RRW@_tE&@ZP;BQ6 z@eZmB!!++6pJkn&8j>st`2OyZ^ZP0}yu`t~-<194R`KjOyw&T-;lq3e`}YqiiX)=+ zI%5zH;p*r8etzMy8oaZAL)nQ}cPs~-2P(GrSDdo`ShcX=+uYJpvriK_wKj{3j&I|} z_|#Os^2y1beABN@op|-Cz2Zy?N=m$i2a8)fGc+=cwldv&SX#<{IR<Yu=d49lY*o(m z`}c1YpC>ouTs5C;#!~oLd2U!skvMdpcH6dXy8HHV@Q354drq{hT1PQ3FenN9bLL-h zl2v!rCQW9H@&5zOB&3gvl;yP?93-0r#mrGe^>fyqKYu>Ys$6U}3yZyz6J5AE)!DOW zPrkjc<*iH>Jy%kRLNQ2HVE6R&Tv+}yWt^qWf&!bJojr^~n4)}625Bqh_D-Qonv~pF zi`WnZO3cs6*G)}LG$^!}pB<Hwmyf)5jmM(saP;3l^B3cF{~Pr0-@j+);xhkOg#ysf z+N#}zD@5sEL)Eq^v7=I192dH4SxPPE+81{H`ufBxS3G}w+K+DVVS1z~QwS|5Y3seM z!}Kh?!);083c<_DnORxvJUk2=Hf)I9AioCrfqS>~cl`P`(7Umy*6*hnA0MB-%r18J zF6&n$@*Eu<%T5jax>eEj;P?UW@y?8=K5A-e)irpGvWPxT54}9gQb93`yLo4h=<CNs zpz^SD?MJjJEAuHTD!ROWoo~v3w$w?mMP_#n!jqpruD9@@BQ9mMl{38WhnO?g+4X;^ zrH-VYkFw$EmF`utuA?MN9J+vBn4OaoO&X=ymof+1)f6lo`sw5GbqGG*3^^g(B6BwE z{|eXiaC;m(c1QFyxvIDevx1Zqo4vjLjpyWgZh717wrtt5H1kB@X?y#tqZ@H0FST!) zd|r?EBG>R=z|t02++*6aXAfmB{(pKRH_b(26SDJAc0~wU(JJ&h^>%Ud0<(hi*q%0; za=Nb{Kholo!otGCGow#DJUxy7+&zLd@Z0I~lIru=nEk@^NJ&KnfedyoE-`~O{zAKV zTVMH2eqFent~%(i-@6)r9(lKSd)3vcmlr1`brZux_9Z*Z2;jcgao^zIV>|{ocd__P z_R&##@{DO38X6P=7t2~3N!u}ZVXoA=$gObtlfikX;~lBz<Kp(`N8$m*CVOncdLO#m z_7omu%{`D7@$jMi4%^yT)CMnFlqoanp7;=Pi@Q;(%L_E2^epN@K`K?=6Bj057iR_i zUA*yJ2R|d4&riibPv6+r$G!7-N6&v2?7XQl0*<jhe=CB6*2ud4RDW5+CDmn1XT{u1 zVZ8cT7v_Z@FI7J)lASVXJpB)v=4~GizD-kPn!D!RyLZE%K1GCtQ1*X%#dNUPM$65u zi0rOe#I$Ev%QRY~T~h=LRw$&lw*L~T#&4M7LRPRgAIHWTo;_nk6O^33|L~#C;lrs> zsp>2nmDlaswX1sZCQ`;AgZkI(ta?CzGG+MPqtol;T&}vjCuqo}SL{X3D?y|<TE&`Q zU*8HTF<}9zuun95t*m$*92{hmv<la+UvEG2p=IIIO?Qvqvrb)}0M1WpDnjzpky(y| z)#ohBoY@^59kodD<Zq=8()jtMw+Y~jZQZ)4=g$rP{elkHp?Y98-{mF6#KgpOGqIVa z-=~#>m-(JOdv>EEH>v8(x0nc)4T8eLw28ve@fw<%N_kKHUEaNa&s_bmyxjcnBln@& zoSV8j1}Rchrgsb)KE1dp?e$UjKTpFcHXO++P<zJg$sfCwJGr@$moKx$uHQ+I>Y#aZ z*C|aMY(KwA-hM8o@F+f|XFWZf7rD1LetdRiWPCizs@x?y9+{+cfycf^==kyD2Dg;B zkm|bn`rU7WuAs6^_TBSRlx9NI*HiDHx@T3co@;nZ>UalVoO1Pt=ht_xlR3Hycj&zD zwD0br2X}hr^#B_SEw^}&e)wQ_>eRiiA9bY1JbfAx9Ua~J>-P@4X#`-Q!&qBV&SHJc z?z7+PpFCk;-Ke}5OP6r{dNitM)7!V}Z|y$2qx|n$cH?IzyQw?SqZ-4RM@B}dY;A2* z6+Ed4>b=M#sjsZ5ug{b$X&dkMzG}0W7}HSTJpaj4r;Ky-xnei&;XQHUgh=hnZZ=NN zFcR7fYxuU72lDMcvl@?}jT=%e{p~3L6dMK*&8awmOgZPm?2CX?I5#W&>-&3Viu3Ct zew4=&`=*GstnA#}5x8sS>CYVtAFmvcLZSuCzdsulA0J_o-;9=ivHTXcy*l9c{ig>l zEG+T`HYT@^tzuzmxn>&_?fSYXsZHgm%=+0MKbR%{%=?2N1i4(=mZo@`9&ke|Nz9x= zp{J)O&7(D*|6+Q2`dSvx;d-jW)xPXZ;nXj0@6kXg16xoiK;h~@AQ7wr%V`7Av9Zmy zfq!BSpZ(S^hn}D8{5|u{+qat)6xRLt{PIba&m_}3jU#IV0t379O}F^^`lcJ+Qqnze zK*!m6tEfSWQRbh`q)u0a6k6PiL2h$a*8QwMPgC;nq2vr3N=*y!dna(m(%h>9ba#B0 z{>~3|VL=>D9q&w6TPN#mlrRZcBzLC81GR(j4q7@od#tY1u3bAyPd%=z94;)bRsZwr zTUUk#1Hiq*aQ%5uiEX8UZ0yDprq=b#%gfH)*^Kf0yCYDY8Uf<Ey1EpCmVBclQ)HZ& zv}4zu2aj>=&eqf2zhCQpmCwk;MD&B>FFye7kp1l|JSa&JmTmA~pYu9O$zdQwANuZD z`~Ld6UP3~`DBmP!?Rym@xJo(QNmtj48|2;WK6l&#7*|7pcUAegj!#S^`L2?blzdm| zNh4`ntC^#pboth;IDz0Lc0E14H}{>GKYE>uo-*Yi0Px)G(SYA$*VgSiX&LP{(A=zf zyoha!U}j?v_cWl?<%ERu4WSH89UVnIp-+#>^y+pzeY)!X<Fk@K1Cw_J1_nx4m927Y zjXi(m3J2hvxDqPp3C8k+Y7bp{na+NHcmDC?-Pp5;8vl9qd@~mr>+5!IZt<O+MghOx z9<L1iQ!%apwlC7dT@o3|u*>aT)RRjBj?=>p3ttM0jQ~SBs^+*;Z{3ncbYdemZ{Dot z&4*B<UQy(7va#8CRbOOwb~e4Z_+{?q8WFtm-1qkzPzjY2_iAc>VP2RWYsa3lp=Yy$ z&30w!j3Tht?K~DM`Xgx@QYZ|M-PqWuse_u=fH!Wr$b)Fmcvl;^0b8sw|NXt<;&!T6 zclI}7ho*ZE+Wza`)cL1+JV#qk$ml$>x3f#HlBoi?1rRPD2kH^to5AjZkoH)dI}sKU zk$L7@f4EIrz-)9>s#8pOI2~>`{q}g;NO9frTK-5hnys?bgC+Jf1qX}QSX)~ItZ*Z5 z3Vhzaef#v;vo7cQ`@%v(WE;aCJyIk~;nc>7r5HgYicCsM8u!KesfBCTBeug664((b zk=Vq_N00Jtq@|@TtGx50QkACAF&4(NE}?kP9yoB|>%c?S!NI}tzIz*vy}bP*_zfF- z(oS6Cro6kwt(CZ_sI4U(Jv~<sPS=JbR+|O}Hju5nc#+wr+Lr+NhK`Okp$x38h=Unm z35V9$^_f{~*%Kl-d8sb(@8$+_TE)srxO&2sE1>}Mgx`yZ&;<nr33`1g13(l4+uyNc z2ZaJ4r>U*|;qg>04TYAT{sZ=>CFr{}JNrbfVDW{%*ROTJP7;PLU%#IJfK`W0WXqP^ zP9a7X7M6sYH<^d09u@OQ+QcHKGszZoXGce+ko9nxqKUtBNheJuaCl;Z5n#8nswz`E zj(44+S2nhu5w!Wq+{7!=y(q!9&-=<wm;xKB{ggwywFEBZ-fk6!NW2)M4``NI5pwXZ z<@wmy)k{Mwe+3XsrFIR}Dc7%WmXb2M^1Cez7q)M>KsP-%*L-!GX=m;Mfs_4Z<Q|gK zK5lMqh_}_pUfc+uoAXvX5gnz=(PP-`IW@S);JOSQfMV0)&&e+QPS4##9Ow#2&x@iv zlNoFLeyXE}P0vl3T3TCY=_iS41sy@d^1yFCPg4~D_{%dIQO%u%8pfaf>*3?jP#Uy) zI|m2q9Fyp<Fj~t)hc=6fYU2SpvB;>DdE18$wq6oo9iH;PA03r<63u9%qL(mguu-AK zcJHY{{v(gigq!4R4%G(AT`xYI`0VJaHES%6T<tA&)agn9TnWqHZU;V3(!<ZsZ+dpN z@pD@68fIqZxyjcDaHH*@{bAwZ_KjhT9^T$zj~_oK8DVyTiL2z&B~~DYo}eaR=hA@R zvnDKB!Kb~wn^P4}v+?o8B6=J8`YgNwv&1%sGx`3W9V@=Y-PPY;WkzGH7RM{sn64Ho z<=Q84_sHXl&cDsr<eN-f9>`4QKx6RDyZ7$>R<=_^5QO{Bf4A?-)LO;J$WHQ0Kcv4f z{l||Vr5+>dScLl5uX(l@rtSrSnf}niy#G_y3gfC(d%e75cAe@M{)e0>fUovV^r_0{ z*5X=plrq=XYw%aKoHiQ}G{lVIH>Hkfs@bG=&Bdc^T;F+I%IAw&@1DZ{w!Glq%t!xI z=YU9tK~4x8=-LfTX<lg2f*)s+*zGY)`TFhKzCE1zpTB+u%sFP)k*bIn&-r)R<Q^OI zF%WXm{Wr+%d>7}oVWZeUK1QEha+ML_BJuzdJVhl?$)ecig?LtUl=tO+>WcF6mbeY_ zC8s|dHa9n?V_gYDpPQSLy?&`@e5g(pF;ar1z-#Okz48w+xeu4`{ChJc#qQ(NgcQ|a zmHu+qNG2|^VHD3BZQ3iFH*KO!OiWnT1=Wmi#S2GZ-JwI>F}xLnCg(8P8h2Tkk>WAg zx1A_i6Wuwyta@7hK2CEGB|I0V?FqIUXW<mH3l0t@YYOedvNk}GG)Tl-2Ed4ihX=}a zSX63uM07MGAxn6J4_|r<$*LJkb15+dEH9nAYg@O`#>U3u^ywx@2-8SiC`|m&FgX(v zmO~N!z><;Yetfcr)`sZg<Ohmh*2rL=hIrPMu0})Ii)2IDW&vi39V;AD-m^#g*z<MI zQ>1C~^Yj00Q1Di>`b6Oj_3%2L$;rtqK*|8l+wtRXN`<T*y2UA;{<KL_@&IW-esL&H zq{0LQRJ&wG9-JB-9aXIA_R7+^6p^35t@iIP>n>xwwp>g#>zjs#jCy~hU~d|F%0;|$ zlAD;{7BrOB=4g%#z+5UC`Y3{xwQzf&N2B+CW}GxMp(ZSvQ>5DhrA4Hrk-9VT?b~+J zVgK&Spxz}X$CVJOpHf~fN2(P>6;hSUU3%C4d-0L-o%RWCr#(FzfGgMm;ZYI(?Sue` zq>GE#Reh)PPKOR1f_ABvADNjr`t4gB#Gg%|mFPVGR$~QwhEj6(uEg`(dp3}yv9L(~ zQVz)y=v_^y0iwX=D_61-0+W0M0_WJ#n@W9W9R9s`Fca4_wqx_Pc5u1#kcBmNTr0G} z>S$lvaRfluz+g2|j-hgmpyi?}3qyCbv$sFbE~L%L8~y6$O(h>Oh!~|OUWt+muF^Uj zCU@qmWh}28xD7jzXnEz`R#QO!bAD}Y93HkaE3{xitpz>>>)KIdTL&fc<nvTT4qyh9 zg5NK{X=-VWEdBlgB^TlUsJ7m~)>eR-XGb%#%lMv^+`{5w4ETdt5!X3^lG<7oXw|aZ zA9B-z8X*|lIXg!M{`qCUvi!H;cdUlGy40DkZyZkLy7U%2eeq(u*L&z~ZGXQS9Xoam z9d{d&me$|jzr#aYQ`jg0DluT!^p77+Kw!qhY#ylM1Og;EM<LZ5f!aXkIQz>^gf>O8 zI(}%5ri2i&q@^Xtav<NlFu8x=)EWVm*viVvwe5Ec36=o`z$=5K&_ntr!g10*Kz*d1 zuA!l}rY0@qEwlD}ckk*eHv_|Umb)G#4GFQ)h+rr^_v4sZo)HyPu>~}5{eZNwLs{B! zQUMDdBp2{Fq3RiI2%@}q#@6+vrKNasje&|&`}Q=erd4_W`E`n{b#ihtL;*EyC(zd} z(V85PmJuk+DcCsB0w{x_*Z^od>OO;MsKS@}k4^R#@>HA}h`{QkdyTc_Y}6FJG7`$F zQqLd|VD#lrW*v)w3Liufg4lwVW^@P&2DEHI9qP(67V4UTv>;o~;i-IXmKHoQqNZlg z;lqcGppxUQ7_MwN(05ctOlv6M2MYx9jN;-;0C?$uUxc%Os%b(X75f2k0Fs5($Bd`l z3JeAg*}1t*&`<$P3K-<y^!LvuTtUZA{||jAFfXL0eE3KHUYss<G61S0?5pU=V?uBN zGf`$fjvN;hWHItzrKGA#!YK?m7Uab9Lo*|^dm2fb>Q3@hVD|se2r4~+;Q&YqULRKh zIEX0mLJrBT2$4VeCIs)`Ff~|13BglC4LSdrp*;l^i;zJSH4TuYPtUK19(r)hbMXKa zh&vS_FH;pm^G$Oz0T1BM!=b&cynf4p+dY;F-K*v0<p~^~s#{TsSi>J9W?ryKLc+jX z0wVkVQ&dp?xuC0TEBOj~l&YA|mm=**Pw*Wc^&(U%vt#)+1#Lq^0{d^sHUMA|AmV%O z+-AtIKt`{Rs;sTAuiyJ~I0CCQ+rR>SdhaQ!f&TsvAiZxMo!){z(+M(ChPddt9i`dd z^6nkqzGR7pEolMNyLaz~dUF8XK2t{P+h%9IL=Ti91i0Pu((g*2N$v`__g3H2wwm20 zp++ht@axRSXB?!0wQ-_9pPjNHy5X5KXDAc_0fB%YFXRbjkmZhVcJ0YyCoBtHR&e|F z{V3O&G8(6-R;HU+iNpa9hlS#C_UscV?Ip)wZj1{T`bIKD)_sr<TzHI~4T>lr->uZt zX;?1YmS+Iu0rryowsxx^PA<2P;q`J!D|EWhf3bwz3Jrer&s3exk54aV@b6J{zJ-xU z0kqt*r(fSbkUr5ZOsUrq2ozReVNY-aNd%l&7`tZcv9#d1^lQK!<ZB(8O*j)*&zc+g zu{(F|(gvL+CKUd{3R)3dbn9pTqjcie09KCzFKbv>a0BnOJW6kWgzeufA+Z{=S3O!M z(Z9P7r83_bv;=Y@`VAfkmXslBUALMarBB?GJ=M>NBGUrg;p@K^V(IYV&bdC7rD+X( za`oXBcJ>-Nh=2effU!+ap6JN&c>DS)0LJD#3&<W@T3WI@c{28Z>fe9f;H}JGV$M5v z?(Cr3zoI94g^+cQEr!i#@tt5(hwFm)@7%cq!8DYx6{~%x{#Wg-TMfRJ<^7|KN<Lp` zuNy?59S#GWlg)}3P+g;;q0z-29aYxhdc1KFJL2nhDMkcQShu_=e)sO(&e}l#ukRo8 zY}~jJ${HJgT$HXjU@H6(QbeCWU+wdy=lso^8=%gyv9YD&>4kP2t_<0KbC*4WEoJBN zHMf<|UBCj30?Ts$=hyepz6a#>_4DJlvH{;lBd*fRFd{-I*(vRKzG$>t`=y1M&esS3 z2x*h1@q1vVJ7?d*&)2p@7=WCq@#?xR!_Tj8Ily*wV5X6^C3_7FR_7wf1Du=Jxp^GD zB@>YFO~onlfKqT{*dOUWNdXvx=}6pGQcK3#xCkxOxwMh%-}3>R;de$Ri|blns;<PM z>TH5sjkYa#KOtUPUj7NxSavS1aFFf~7bR==o;)d0aq_JoDosM)HZxMvo%`;tr_@8d z2jB6X8&7BrP58c3R#p>HM{t>tPCNl5+2#Q5Ci!8gbYE(6azyUmk8BFM`#)y^?#uGV zw5>UP`m}^?Egw{fW*~ba9(MC;4Mto|OuUetEi5b|vRP7+75J)P9s=Zz4qc@p#42b- zD_Ze6+3=|G;24Qvw85tC?zQMCM8dQxbI$NnJ^4n8MJM}y{i|0TqzOQuOGr!<R9eHH z;1TYov51%7q?g$5K3sNTu0rX|S0Wq;ZQZ&GDKNaJk?aUBm9>>sV_Td4w{{R>O+zsu zlv_G+ad8Rj3IpP3XY?3q>6uwwxNw1ugCq3RKm{T9!mF86WIH-L*?_uQGc+RMR*I0D zvPsyjZNxKzb}f8;@X`Y~k`yD^cshedh26W!tx>16A>0!9&YM$C2Lrriz`X7Jo&7f* z-jvv{TD@8m0{*{Gv&!lC)~|ndob?(9D6|eVI%&v|5P^wgn#~T+2HdzHTE(VD`_jfZ zJXr(o3~<21pP>I1jxGU>07V2D$*PMVQzw!RsY7a^^!7+IN(f?Z6bnp}ijzsJwBiBy z3{1bQr#`Uu!XG?19qn`{QRK=qDfdBTBE=F35v)%O3hO`12;xAc_rzKVY9Wxb3G(ji z>ywg}hRkDH`f#V;oHG>3s;52>yQ({N+MkVif%Y}Le94N!25=TmXkU)D_!>2u5O@!$ z<}u5E|DcR8V3&CKqiIV@OB*195+@%n!9h}^O|s<Zmh|g_{(8)f8#h0B0?7&WYVB~% z{2;;mg!{paAYo}HR`!8yu1--&>BDeCXr|-ky?9*Tr3L9@9jVbsjD|OFEJ<rwo8u#7 zmwAwW^*RdtW{Ja<)8z-oAs%T-*mb)=d{#pN?JGJW4$@~F?Lc+K;?=8HO;|P0iEa^8 zlz&gPwuxHwUaryB5<DpukVbW7=>ge7kqdMNN*O>gmesz}$vck33_Ntdh-aJYu&mGC zN#+DV=r$oJAartohK}DV3DL_%{~SRDYejWSxP5yE;;PHqk?Kmv#M=j3ZtObMmb-;L z!4Q972vt?1C5Ef?<XaiC$%9PHDc*?&q8c6^QpA$|7pu5gD{l4xrXJC9k+Z|_MhSAS zVds{bko|9Fk`anWr$3XPAhrvCt_)yGI64gc%Amhh<YihKsqe@DZ_=Iq^t=Ite0q9B zg9P_72XjhWEKxT==u>u`;{7l>N;2GUJGWHQHi9es=D)|G6mI@cpA{^(tT+2KH#H<c z2s;`d)E^<dq;UfNTy#I;46<+|c!8D<9%d~r4hVZ}1l0-<jSKc{9vd!vXmN4TveIMo z?LGbxT;dl0b{um)ZL(+t5Y#?EIBSHYNM6Xqp33z4mTT>$-V-K=YXjEX2L1lWo+-GW zA&Mv|i$FuoARy$q9jHuy+k=+ls!(ld7QR28!c{W8ki%p85J`zI<^Ya{&Xa(3F^iwL zxMpwm34n|@m7YSt`gBl|0?^q3xs4T@*`<>90q`$CLIyrs15u4|L$OHQ+zrK;@X$98 zj<eP-FS=qi^HTA!k1QT}Io-9X;U!N6-3L#V=>^Mg>^90Pya$h;U(5p*Cvq<f>mh>0 z7%<GV@JD5YJTSyd(h(td!UxHe!86aPwzjqsx`A;GDgR$5lcm^`#JHupRM)Lrw+R3h zGCT4Ulz<yxzHKW$se?3Z4~HnvwoV1;A~Gdq9dw<%)eck~`O*%}t5ySmlg2&PevLet zOayMiOZYl&Oh_g)zZe9$(<<haan;JlkBQIurp8~s@9v?dfvZt@nwZmyX~4J(NJJBA z5aFGmkGO~KlTv(yCQ1YXlKr5*M13P4MV<&Gj^bwchZseI9=DmFjV%PSJ}D?L5D6FY zzKYoh@JFemPuZ}sM8!cRGru>0yVJ97l#t>#wufTYh|D54g+@ZMQAt<)Hbb>T3)7o{ zfl;()P(6l#fB=s#J==PUj{J$M0N~?)R~KCO)CVFxrUxXWE3+NpLKA`SaFsVB2y%+z zX;HslUw?NDzz*C-{B07mU^-x}M;Wt4GH2DrnP7%CReFsvVa$eG!jb}w400mX@t3y) zv%V<@E^=btNZji^S_<SjleM0Dkr?nv2Qr?XpVu)n<0P;fA*6ob04w@I@aJ#46&3Aa z4Uj$w<cl|2B_x!!R@YF|>6Qg&NnxS*jw4lJ7Wb^ED5!2B2&QzHF3=ebN*})ZFX(>i z12;eF;zjX<>g?U|e2N#4PYxiN6be*kLLGr+MNBXfg@nMw5qOIuvV0XYvj#Fj|LB0G z*_jh9io--&g=dFO676yb1Oyq+0wL%8Gu_utM~|lC8R(L)-@GX#B9fyyp9Ru|x|a^B zyiVSY4<yhub6`v6eI2Y2A$kBLov20B?Jz7ZVmC7Z(Jmw=6uH7M`873k3EiPE`PAF{ zbR8WXIrr<(GaTElZbRki-;k!hIdfKvbd=yB$3w+7HR|mHV9fZ)S%oc$QO>1juaOZO zT<(~X5-IpHL~h=&>m)3)U9Nqr+pkIL*x7Bmtr8dmb1AvMHp*s;qT+gZb?C{WRuv~1 zv1MHe;{q_|4a{z+V9G@~V1W(LQ4JmdQ6bjx@+N;#!Dvef*dw2!7p?fgqK{k)*`8o{ z^&wO=Y#2&_Itbl;gp4jYcBz(x<R8wnxW`L?Uzz*RMkuDdZ*$|~SRmKMp+!OM7Tmeh zROpWgbqF5n!<7RnM5`frh<O-NJp!ulaNARHBnbk{;;qbz4zK4BH6UK0rcS0;rg}IN zq^YbgHTUjqudb<?0e)pN&{}Dx78P^i5;G%HJpe|lR8>{Wue7iw38Q{0`~SLIe;<Na z6RbTW!9{s)sf37XC1C}a3Wm0NIWQ+#p#>1h11}Uwrj;N-VLpqKKW<sawdjJV7%Of? z{MPjJP4B9Fm?8hYdZTzk%(m+66aj;@3=Bd*d>G7Fry5i}ZaK%wM}-+&IB2E7AY@}8 zC&E9?6f$1li%|XAU(TG6kU%WR^x~J&*LLBB8Pkonvhni9VC=&VB)an4k2?Sq+4h(S zJ5M~<ZKikZP;wN!$1kHyXRD!~TVcorYUn@tbZbrlWI)RY$5;e~ppCGf|8EJRLAOlW zsO%d8Lko~{J%&=b{+T~w=724h58e1N1SJjJ36Ij4lwT)hp#xSVP7q!7sJ|nVlgtpr zhyen#9_j)oe{s*c4I2pfyC!L?4T5y|$PsD#Mp{ct%cyurr}FYV2a67?85*wPm35{( zI=tLB(AM7Gg!-BQLk<m~si&um_DXGyK+pme+!t*J2SEZJFpSv<cI_>3tCd~q#4VIF zM~vW2|NKceJs(Dme3y{_th+(ZB}}qziA-*`BIZ0lK4nJ;%XN2mOTkhP`19>yRBWs! zU<9*r;N<?J$BsE*F&BWGXWpM3BFqR{<JOU8_wRrW<n3WJMj&$u5Ww=N+1T73cUFp{ zGqBo%4P^??te1hn0KtS=-%JVGoHPc4yeIou(CgKaTf%zO)AOoI1hC@u9DycDaRVM6 zZZ_itMfd*F!w7qW_(JDt7>1{&RxC~j!&X`k@CM>mf8VLy1ENX5?6WN}Mz@E5Y<UPZ zF<|-k=RBJlCCrmyJdM@V)D$uv<BOb0?4=L#HX5->glY;!FR=taU*_DU?s2~^Cnsm* zL(4?~oJDJQp)Fe&po41>`4=(+aiEEw{ovUC^TmaS9*C-}ES)Yp`F5@2llT@e5q5t5 zzwyB|VtQm<k=bTbK*#Y=PpW%U+Y^P!;7h^$xBhYs6lhQUd+oEuirCm#J6Bh0yX#q5 zLRf!V5wQ*A0b#aJxA54e1Fs<)lo2>|(19`Zvfo>F2~?3x96(4sPZS(D>PBKo?$x(o z{Bi{@&XHO`MM2R(hd+@J`PNBh{o>q2DCm77QWC~TC^X^Pm1Tbwdp+i-NAIggI;24v zv-qs@A9Kvw4xIL-{@<DFD>>i=mXEx0z68Q40fnc71$aK+TR^f=@Sa&+P$07M13;LR zoE%vrEuBV`OXJ69P7#lsBnib1-Z<Gfw2eV$Yc$1@`}f64p4Zn8mxsGJI))|)={Ph; zu~+)e2oj}|m^r}u7<-6#{P@q!l^pNqxT5E;uZJkXFK1zl>`-7Q9z1MJ;?#5kc84)? z0ChG!6w5_tvqPJ*tT?%T?&nWw!2TtKtTVjqZNieZkUi14H=tYlPSwnpxW3-Or{F<B zyHGzpp%fpY=X(9djZEyim2oX)x?Qr)4!&H$EFGcyHNEFb0D4BjJ1`L&=5h!^DRy-( zZAkpev(CGRb`n<&Fg_BVFi8cFKS2l?BrDOPQ8&`Lc%G4RMG7QlEIg4-4+lH`)6<Tl zO)~(iguvk?<B%8hhC1K{VnT*Y>Vi|NLq7mGaWB88cSTe!!zkUUJsJ6|b>_@2B1bTB zH7^%bl#~#zju>Qsrxq~N!ZY5TbFtIFiAtwlv&F1uqydsDkVExM#q;OSNh2bX8M-#6 z8==|OKO74BqdfotKnFT?S6y&08O|kDae9~va4LL!+?jw86g!VIXS5*)8<o45_Xfws z#SJOU-(+HBY`{BDBQAwdx1gK*&VFP>z5S&<@T{XF0@Hm&y<NkvL|OPFAieY0^ZM7e z!AI`a?Zbx3?A&R-^3u!8>+;Q;*5h^O&Yjb$71lEed{J2J|MNJMNEon!P)I2y$OY;@ z$ru>iwJSnBV=u~+y@SIAh;djUG8zj+jX(@H5N#p^(PN}helb9{p}wAiF&Q@gECcih zE>q0?l(@ZDT7srG-jmPab(&zLD8T%>-d`?#ccXiH%!uj)T?wXan1QJOWB_7>yfu)i zc{}-eP=1KWf)J7bMw;Y@0z#p$G`xFv*!-!Xp<zjRdHAhc{KTNkP89&<f($kavBhl9 z%n7J`#5qU9vl(Ywnj|(G&=+_&4O0K|)vL4sSVxZ@9Y*+t;SFIeqFO?{xPYfZ6)vzT zKE`vUeGEb(B0p4EPuIX8?Dp-AC>H2@a2i%!H=y6Mr$${8;}t}x2Olb!FSdz@h>(Ke ze57UBopg6UKP60Sfkwu|SH|r&ZQss<vW8I5fW0HJeLHgvqMH_h1S7bit&IuX>%-2# z_Ep?c#?t0@E!iR2Xu@D7VYD?#-}_rX7r=$@<S8*uCRx|MyR@d<*?@DraxUp$fZ=^D zEiEJHftWLC0CK~=&;g~4JiD?5?@=IAWRk=5{KX5XBUH@H7pa4H$;g;Ip8ELlD3DKW z{U|qL%ox;%%n0k}n3!v>1UO+O^u?s5*#QQk;^JCR1BsOPbj*u9FJ`;y{{GrPOdd=j z0=^TK9{LcbH8TrNj(I7@#>Fu!GmaCbbz$@pl8i<#k*FC!^S0xPFED%EJ2anG4A+Zf zCdMb4QGyaKUk(BAv4k#!69S(;eIiq<*RNmy^7Bg#rYk;rJ#y)Jp=0a91Fp0IHO{Ya zU|$(JH9y>`PK@iTPhuxAej16%o)3^=F;z`4E%rQ&h+SK@2yNS@Cr7>XdFxDX+K<`U zX^h*$gQv$1K7IbY83Rnjf5aFlc|VXhvUC~`irYx&V-&I6^>qYzAf|jud?qcj@7xgt zu%L8i>9DTmQ($A}mhjE0JBz888}jb)D1^P+RkvG})uXDEqT-&t(emX8_+10u3}Vg7 z@A5~F9sv)D;E`u$$M$7sXXn`v&h%FiY+bI+5HnK{oSFFOSI(YTc~H53|9&JQH9BnX zh^N>gU@b9CIAqW-LQ6}f0sHU$O1^>mbJWQxzvIgCAHFYW^IgTZs)Wws1xbH^muC!U zF5dw$UAedA7+#T>Ilu&eTL;den($)EXgJ6kgKuQ$1No}t=^6*KP3&M%EXEM)y5?~h zgaq@RJ^a`g%<idUCJuxwAvHA?`I#THTUy%Kd>FHEWbM><VgJ-KLZB~xS^8PHQY+@U zZ{NO@n>Qa++J<6~mW~ua@Em7Y0+>FSh9>_3TD{io2XZnpe&6iJ5#7UJ8RUcnEOL+8 zk9rt6t2N&N6?)=Tt|J<*`_I3{h)Luv%2!=|Z;QP9Ai-2aCkFb7Oo*&>m#c$RtOW3A z9-fNlEGv`kRh$RH?_C5cENFX=kn?H#koLL4_SUP4`}a+1B;6yQ;s{1|BBrazDGto? z?S&~wSqdzDgC1Lg2KKQ3&VvU#k$L8c(nHZOdC?Uj$uogeb-sT61i%F61X#&IikY%x z^^C2uT3>?`g!Ozp->I%_5D>V8dDp@Y*E*%E%U`4xRNH^2@ub!8np<01uBwwO6b4b( z9YZ~9Uimw;lHbNd!6?`amWRo}eD;pP^$XZZWcfxZ85wn0e}G<+N*33Jt~@i#8u~y^ zf~c!sC`hrb`94@vDE9r}>rLR~dD^|msCCi~v{(fF-|lAjp<ZMQUTX)uH?}*3xCQ+Z z+iE-k({>dTlgW`zt^Sc-I{TJKynlPop^R!mEoOY|`~3)cxR&?t`H8p!tyK#42?mH9 z;C)Tc%&_yvwOt14vx88Bg@6OE40daBx3F$yqIcvARGK7{w(cj?qM6jBivw#qpc^7u zh>b65n7UPoJBi);p&KbU#C5{vE}?>u=LQs`!URj#jBE@E9#B3UN;2_YEtXaL`_qPi zpS=eQG+N1V3#<;&*FoSJ4Ra4w1+T}!mx)-+OmN=#VwPdF2}*{MpeH$rmMu+&h$}ru z&8CXsNrSnhW2%|jG`c|p2OF}b;rMAIW2PGz1c=i8(0!;Cu+s=5pIu!<TQ;M|5fUL- zJFw~qjR0kcgbi^qUdt@%{CTQ18<nF#L`k|76&1P99ld)$EHXX1Ed*V97`2&9^Z&!V zHGW*E_niC}b?<>y)ej6jewQqXlXTtZ5Tc~$^cCB(3JD3p==!Hy5r@lJbB-5ffd3kL z45GBS{(i8nlfGtuB%ML_C`NioEhCObffI(rbo~6P>diFgY<=0e6XGA-zuyS_jbg9| zx+@z}8MA)7uum`{jPu*u+8V)lFW<O9C|)`MQKk^r&Azx0@W+Idl&wni35K3<=uj_> z0Z*a+(jy2%QO|G?CPz$MoEhAUoEWl4vqUYyOpt~5T?fqjTZknQogLhnd<3l@#~6rC z)t<aPbCi987U<i1qMHuQ97Eh<JP7)(d)D$2mL(Ku@J-kZ4-Bk8Nj&6T=Fk<R(Frk3 z6PTI6Y%-w^MGdYwc9UN8!0lL=Pt-ee^B$ZU*af-x;ZvWwmF3-h{QUcrlrTm<i^E@# zD+>lOJI0PFm1gLr@yKUJ0}Evc{79}AbP)UF$8)WYxw);u?Bd<SkJdtv+HOHL|83yl zx1)pL9iOze!Dozui2i-3?h?RQK{8<Vnj=-->?s8c(80?vV40bjiFw)a&dqP$yus-m zRNa!2lC87ou&qsA`1Pk~UGTm_NTjH!Y{WfUpu&*8($y8Cg>!LeEySJ-gU*-^ejv4T zrv^}q+hBDx@DQI$fTg!4baNSygC<PnNTayJtH=PWsKkK_6i!VYaqj>9F%5E_BZ1os z8w)8)^NFuGmZ5$q@)Gt|T!|hhIJKQy{*BhpLU;V%AMU)2V~WvhG8oCAJ;o3~QE0l1 z%eqk`vG-e*B0A7=!!j~5I-XYw-GGZ_AQ}oIYkaE`VdaRWRF#J*HocaBl7kEWQ&?T_ zKbY<r*^Ym6y-e%p{D{C!+%P6CU!!aVl#VEzma2dM{)ji{ErLGH3d|V)F8<`;*V>Y* z63A<8Y@8zRej7I!!N#U2cnY5R{%)I6+lCQ$Ye>8QyMw9j8iJI1C^Po%?vi+TKnr4> zOu25qgOelZ>);Gg@tGWC=;r!$MzpyuV{dY{0h&BPR$az}P-V$s*o_zdADxd)FvR#4 z@Oq}>)pgt+iWrm+g`%H<<Ob)GCTuasgpmS_stIpq_``<_V6h{_DowR`%!kur7!9XO z4v&avgqsMAO_cnr29FO{dQgF?M!<L_X97T?3i@V#h<zm%s<N*X&X8ULBN+j9Deyt( zyMRL+skd&CGdjYeqD%&27I-sK>%fw@EQ`J$*WVJ9re{`k@?E9zm$wgcv(3ara!j`Q zObs6Cuk_3k)=TWciI8o=!kTR_UtU8#2m^y}6B5$!aQHS2@RM&-<Chp79`5oM!yDP? z3;LMI>Bee{fC^85cv73jTuVw4>4k5r6uexG3(mceAJPT5OBRk!yQT!rm&h$?BY~Lv z3p#27(IXpktrO@3i8VDfK+ke|`DXgi+q-c!x?C<IHzz)P`0(h76Wg#l1<7@I37()d zPujyBKno7AUx4OAP{Sb^d47MVNT~;l9{&890oVhoW_?!|JM?3&RLkAuWEL)rwprk$ z6VKOxNl1vcYcNDXU?JKdM~X=`+`%k}vCf0lihxVfcJ&naFANk_Ngs&IRFM8CKuOy$ z%yRkKwMfieWf1jwdYU`{iEO+mlc9L)LEFG^lw*6?BXs}siAzJ;ual7-gaRc5T!YwP z7-G|cRCWKs17<#l@&^x^P^z`GdU;W?B7hbLgIE4iw>vsGFe%qJVk!+F@|Cypy;=B5 z1l&U#fbX0K>1BE8#{tSxb<ZLAJ!JY@C2)~Q`_Mu#%WRzSvK^=xM@yb|ba1Cw;K0nP zIh5{BFCSIYs@XrWbcYQA7gw*7qF_cv4TCel_eSG-ayaz_fOui8OJrrG0x9l*{*q<i zhtduKxPdVhJ@d8tjGcQ^?#e?BCx9g2t=KW0LRJ5A-!0TfwM5~bd)7Q)$_hSTI6)Vg z18s0s3dZ3#ixu=4&+p6;uX{PC#jxpxsaVoD2Akm65fg|K0;pzUV!{-F<77+)X8AZN z)JL=*sHQ{!A!lVERgyzl#l`L!FJseqF!n|Tf*df{r9%mUdQNP4{hY+KgY3Akbl{?Q zs*(>A3$JWFtVv@K_S8N8+yMB*b~3lUdE*8Xj<~60P7Cz>HJE6d+DUTw=FN*3qQI~s zE26{nmjC^dl90nYo<K%~a=VIxGaiKfYqoL`1PgDX3Cx3>5P(oBVN<;htO93=h2S*i zE%rk+FuP}EZf7-v)@JYGQsC!qXGd7nM>eN<3WfPF`Cb5=AO7(}OdTNse~OG;Q}T>5 zsDZA-AhDBBhG0`rJoec<r7CUPt>1y7i(*pUchPQiF}Bf-zMG9b*oNtT{r&rskbE$+ zH}6kXFm8MHEP<S8>diORF%e6;z~Oocq+K6GuwY(wX*%@d$jIiF)>eHenU{h5L`ZH@ zbHrT3qyP@H=~a1*T)@@JF!1*bGc1Y1K{j7NNNpB@T14~`vw>Uo;ac5@j~u*vKK$Hn zR4DS_C!Sv3+>N0Fq;mVqm&NtwoyC8ycZUxhml*bHefCU`+Gx1<(dpx;2NRH!6EW&+ z2GEv|Br!2FyZWZY>eCQiYFe5kX4(#8`7eV(W~1rGFz0Hm;ZxWIe^3v{nywD|Pwkli z14$H~`C;-IkjVsUga|7u>$9dNjYUjvm`!39Oyqh>iY|iD1g+A1#d1gS@{#)gKF<9W z_aQ^a%&JAH5Y;OaQt@XZ_?g%6i^e$bRm-DYeIxy37wa7dQ!btliNic`jy>y2S#s98 z-jmxUEvw&bqTxWjt1IukrmKl-sqyIAy`KAy8grjt&pj!%G{kyps!&~0_mt$+<c~kH zsfzQdD~juVy*_W$)GVuE$nCn5lS7AoYISW!wQ0h;(ODLMyBulD+brmO>J<On>E^$@ zsjnu&S{&AQ4!(ZPaIL-Nc%4{}ifPvGsr59ZQPC{PW2#AzMT&g4gKRwoU8|e&pHEiX z{U7?^&O-|@HO$no!(PBC6yjFw*s%s{{;H}>?Ff`%^aKXV$$<(MAO!cL??Cj`b6+($ zl-A>K)U7j*`7sk7C^WjlpBA*Z?Y3%gk<WU~m8i32J3@5#(b3UiOnMKc{@a;Rv;i_3 zaO399nU39A^RFEVUzzZB_kK=vCLF1tc))zbNCQzjaeyf}>&NPAPevP#rv*l!$hpd> zcB#glt=9~eTDKY>KY^G#J>XtPMImw_l9CKtLp;S|(@hVB$lQEEL==pnQYf&YaB`#p zk}BFs<Rz8GRXeURQ;0air{ui~Z$J*-f%~nFY&s7YN8(7;Tuu<4t_h=SmryZLV9xBl zr=_KZ5yhzPy2{FRS48)#WAp%QBX3SzQc?%wyLT<bk(i-ZuU@tP)`BB=>^QX@5kcP@ zxPYL&oR-E~*c$@?KutL_H5i9O=tOA4B`Fm427re(_>_@D)DE?WjU6;u;t=(}s^sb_ zUQk#FvcKBh-TlqUT>*c8zSbx*J!K>Kg0ah548p~(lW#WR*o(=bL)%0|L=wRkfbBWh z6Fz-9CVle-Dz6}<ro>yfwy%lAL^WhdC)}g^)hi)z?8~UG2s|~l^AJOxlB!ctVF4sB zfpUzg>YFb_(KcqsyM#Oy_#9-eA4OPncXn<9R4}oyxHGrUz~CyWKIhIoTKMy4pQ-5; zB9P0R>X&6_e_Q2Kh{mWfk#^&Tn4FxP7o>!l+1bSS_%)Ak&>vq*p^INLJ9w}i!>*ek zlhORjxOZ<qMOQ}$lRSXXx`z&3U$>h6gqxeidxprS&1m>uutV|-3KD@!aS}1i%-mdW z|Nc0L=Fi~6e}n>!XWk6-n}qVU@95F&rP+4Lf}g+~%#;%@E{V&_LD!`nBLD+*s;a88 z@7^_-^Q$Q<FVFwCp7*3fChjFACyPSoU5gnfxco9ObQI5gP4QLU$j-h^LgFfF^2FD# zS22i_Us!kr+%+odDfylUK;}fW=;$Y-37=o4U5t7P@R3tmYJ9E+w)r!B0Z777=qK10 zf`TUI<|6c=YN>{~QBh=hFou>nC%$8c#h2LV=!EWWlU_<uUY^k+&f@C(_>_||&cqux z3d(r6xbo>sS{&FB2GZ+RJ4mg&TGjijVZ=lC%$W+AKGaDZ_B!wzr$pKb&$_<*Y|+=j z8te6=IGo3Oe;JAr)h56)LBUzfiRs(grd7Uod*n41Q~l@rV-suZ!Yae^bJ1nH`~<w% z|1zV^mg2bb+^=8o3uzEs#CxEm*Vb+%T92k?^S;-zva)t?w2)S6&>Oy<*{$;XBL|c) zwc^)~a6l_PMyRQ2XhzOFCI{8V`f+ZR67uY*x~}f3=f`$Z>Ty&9NvU6l$$@RfXxHTQ z54hp-m=ez86jyJASN_gTo-jP9Mmc|5l;}^Bq0<+~QVc|q1sEG*dBjSwE4NCjfI&f~ zE@(cTbat*MCowT*QCGI3e9^YIyPJ$LW>r*hL-U{ZRUV(3I(X!>(T}w!qNxnRhG=HU z&?qJmktCP#<t+H#h37Zqn7O#P^y_diAEhu0CEdx%$>Y&s1;4qiWYhs?p5QmsyOe*x z)DA?OM(Ff5exDTHg&y(o@qy&WKp`eD5R>^g)i>ww;+mX1JmRYO8kHkHv3Yr0$JqJ` zN0)k4C?Ph*2m2vtdt!bZ0w0Cak*0bHvt?vNpNt)0qK85`a^wh}yWl70R9@wRzG>>| zF_L+Ttga|B9-(RWTCt}Z-!rpWB2yLX^7Y*#4ls*|R}<vqY(YVR2Vgj*etszU5*~bR zejZ2CH;_qjIA!2XcCx%^POh#RCMIh!^k-yid#SChO>OE^go%|E)58IjE4TDJcj%Gt z#e1}Ia+(ZT;MFo}Yi$(SepdDTvM;Fx>YzEigU8R`zZAmxxVI9~H-O63{QY-p(jpUs zC)j%J=KS`=Y6~gt-rd#Pn-i;wV<uOVlRsd0JRZL<nB;p_t+~QYFV)2ipig_T<pR`d z>@+7QryXi4F+<_T8AGY7vAKjVXCY258LKBJZt#<+C3dKJICr3hll7=@Gtliai;BLN zPddA}TzK!M1O1<gnc4oqTO0q?aR0v!)d}EqJn@!6(vpgkY$N+ss=vJa`(WT(R7^}G zm<my|Kw3vJY^Pyqxeh-zGUH3En$4eKhD7wbgtw11V$hqMKO!9hr+gV18Oc|Zd{NR- zlI*He+tRr6x2B8oMph*yC78Ra!!^Htok@A|=~}JT@()9WO`GgAe}I6EpjCh(hQB?z zQFc6H6ws+Mctr)l#XwOAT2df-7UttUHAnNmH5H~BZh=j|bJH}?71h#mDo*h|ew?(7 zuarO|UAOzp-PvW2KE=dy(aR?S=nZ6PYiw4oWsFWv?oQvI`zlT$!1m+l=#Pg*0)XFS zZXO`F@u*BjNeLTz!MYh=mp{{D7h7bU|L9Urx46<j4pNvrI^FHuyxT6*_!FiqVMFuF zzO#J|*bHt@mHR3heg<^w+Vf00X%C%l&8>t}L8r*3+SmxV@_zuktWdqUG;V0Lx$GRi Qf{&u7WvE%CZg=5-09e``GXMYp literal 0 HcmV?d00001 diff --git a/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/tin.xml b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/tin.xml new file mode 100644 index 000000000..d04a5917f --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/rseqc-dbedfc5f5a3c/tin.xml @@ -0,0 +1,149 @@ +<tool id="rseqc_tin" name="Transcript Integrity Number" version="@TOOL_VERSION@.1"> + <description> + evaluates RNA integrity at a transcript level + </description> + <expand macro="bio_tools"/> + <macros> + <import>rseqc_macros.xml</import> + </macros> + + <expand macro="requirements" /> + + <expand macro="stdio" /> + + <version_command><![CDATA[tin.py --version]]></version_command> + + <!-- Generate output files here because tin.py removes all instances of "bam" + in the filename --> + <command><![CDATA[ + #import re + ln -sf '${input}' 'input.bam' && + ln -sf '${input.metadata.bam_index}' 'input.bam.bai' && + tin.py -i 'input.bam' --refgene='${refgene}' --minCov=${minCov} + --sample-size=${samplesize} ${subtractbackground} + ]]> + </command> + + <inputs> + <expand macro="bam_param" /> + <expand macro="refgene_param" /> + <param name="minCov" type="integer" value="10" label="Minimum coverage (default=10)" + help="Minimum number of reads mapped to a transcript (--minCov)." /> + <param name="samplesize" type="integer" value="100" label="Sample size (default=100)" + help="Number of equal-spaced nucleotide positions picked from mRNA. + Note: if this number is larger than the length of mRNA (L), it will + be halved until is's smaller than L. (--sample-size)." /> + <param name="subtractbackground" type="boolean" value="false" falsevalue="" + truevalue="--subtract-background" label="Subtract background noise + (default=No)" help="Subtract background noise (estimated from + intronic reads). Only use this option if there are substantial + intronic reads (--subtract-background)." /> + </inputs> + + <outputs> + <data name="outputsummary" format="tabular" from_work_dir="input.summary.txt" label="TIN on ${on_string} (summary)" /> + <data name="outputxls" format="xls" from_work_dir="input.tin.xls" label="TIN on ${on_string} (tin)" /> + </outputs> + + <!-- PDF Files contain R version, must avoid checking for diff --> + <tests> + <test> + <param name="input" value="pairend_strandspecific_51mer_hg19_chr1_1-100000.bam"/> + <param name="refgene" value="hg19_RefSeq_chr1_1-100000.bed" ftype="bed12"/> + <output name="outputsummary"> + <assert_contents> + <has_line_matching expression="^Bam_file\tTIN\(mean\)\tTIN\(median\)\tTIN\(stdev\)$" /> + <has_line_matching expression="^input\.bam\t8\.8709677419\d+\t8\.8709677419\d+\t0\.0$" /> + </assert_contents> + </output> + <output name="outputxls" file="output.tin.xls"/> + </test> + </tests> + + <help><![CDATA[ +## tin.py + +This program is designed to evaluate RNA integrity at transcript level. TIN +(transcript integrity number) is named in analogous to RIN (RNA integrity +number). RIN (RNA integrity number) is the most widely used metric to +evaluate RNA integrity at sample (or transcriptome) level. It is a very +useful preventive measure to ensure good RNA quality and robust, +reproducible RNA sequencing. However, it has several weaknesses: + +* RIN score (1 <= RIN <= 10) is not a direct measurement of mRNA quality. + RIN score heavily relies on the amount of 18S and 28S ribosome RNAs, which + was demonstrated by the four features used by the RIN algorithm: the + “total RNA ratio” (i.e. the fraction of the area in the region of 18S and + 28S compared to the total area under the curve), 28S-region height, 28S + area ratio and the 18S:28S ratio24. To a large extent, RIN score was a + measure of ribosome RNA integrity. However, in most RNA-seq experiments, + ribosome RNAs were depleted from the library to enrich mRNA through either + ribo-minus or polyA selection procedure. + +* RIN only measures the overall RNA quality of an RNA sample. However, in real + situation, the degradation rate may differs significantly among + transcripts, depending on factors such as “AU-rich sequence”, “transcript + length”, “GC content”, “secondary structure” and the “RNA-protein + complex”. Therefore, RIN is practically not very useful in downstream + analysis such as adjusting the gene expression count. + +* RIN has very limited sensitivity to measure substantially degraded RNA + samples such as preserved clinical tissues. (ref: + https://www.scribd.com/document/352764986/DV200-Technote-Truseq-Rna-Access). + +To overcome these limitations, we developed TIN, an algorithm that is able +to measure RNA integrity at transcript level. TIN calculates a score (0 <= +TIN <= 100) for each expressed transcript, however, the medTIN (i.e. +meidan TIN score across all the transcripts) can also be used to measure +the RNA integrity at sample level. Below plots demonstrated TIN is a +useful metric to measure RNA integrity in both transcriptome-wise and +transcript-wise, as demonstrated by the high concordance with both RIN and +RNA fragment size (estimated from RNA-seq read pairs). + + +## Inputs + +Input BAM/SAM file + Alignment file in BAM/SAM format. + +Reference gene model + Gene Model in BED format. Must be standard 12-column BED file. + +Minimum coverage + Minimum number of reads mapped to a tracript (default is 10). + +Sample size + Number of equal-spaced nucleotide positions picked from mRNA. Note: if + this number is larger than the length of mRNA (L), it will be halved until + it’s smaller than L (default is 100). + +Subtract background + Subtract background noise (estimated from intronic reads). Only use this + option if there are substantial intronic reads. + + +## Outputs + +Text + Table that includes the gene identifier (geneID), chromosome (chrom), + transcript start (tx_start), transcript end (tx_end), and transcript + integrity number (TIN). + +Example output: + +------ ----- ---------- --------- ------------- +geneID chrom tx_start tx_end TIN +------ ----- ---------- --------- ------------- +ABCC2 chr10 101542354 101611949 67.6446525761 +IPMK chr10 59951277 60027694 86.383618429 +RUFY2 chr10 70100863 70167051 43.8967503948 +------ ----- ---------- --------- ------------- + +@ABOUT@ + +]]> + </help> + + <expand macro="citations" /> + +</tool> diff --git a/janis_core/tests/data/galaxy/wrappers/samtools_flagstat-fe34990e5ce7/macros.xml b/janis_core/tests/data/galaxy/wrappers/samtools_flagstat-fe34990e5ce7/macros.xml new file mode 100644 index 000000000..e9196296b --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/samtools_flagstat-fe34990e5ce7/macros.xml @@ -0,0 +1,223 @@ +<macros> + <xml name="requirements"> + <requirements> + <requirement type="package" version="@TOOL_VERSION@">samtools</requirement> + <yield/> + </requirements> + </xml> + <token name="@TOOL_VERSION@">1.13</token> + <token name="@PROFILE@">20.05</token> + <token name="@FLAGS@"><![CDATA[ + #set $flags = 0 + #if $filter + #set $flags = sum(map(int, str($filter).split(','))) + #end if + ]]></token> + <token name="@PREPARE_IDX@"><![CDATA[ + ##prepare input and indices + ln -s '$input' infile && + #if $input.is_of_type('bam'): + #if str( $input.metadata.bam_index ) != "None": + ln -s '${input.metadata.bam_index}' infile.bai && + #else: + samtools index infile infile.bai && + #end if + #elif $input.is_of_type('cram'): + #if str( $input.metadata.cram_index ) != "None": + ln -s '${input.metadata.cram_index}' infile.crai && + #else: + samtools index infile infile.crai && + #end if + #end if + ]]></token> + <token name="@PREPARE_IDX_MULTIPLE@"><![CDATA[ + ##prepare input and indices + #for $i, $bam in enumerate( $input_bams ): + ln -s '$bam' '${i}' && + #if $bam.is_of_type('bam'): + #if str( $bam.metadata.bam_index ) != "None": + ln -s '${bam.metadata.bam_index}' '${i}.bai' && + #else: + samtools index '${i}' '${i}.bai' && + #end if + #elif $bam.is_of_type('cram'): + #if str( $bam.metadata.cram_index ) != "None": + ln -s '${bam.metadata.cram_index}' '${i}.crai' && + #else: + samtools index '${i}' '${i}.crai' && + #end if + #end if + #end for + ]]></token> + <token name="@PREPARE_FASTA_IDX@"><![CDATA[ + ##checks for reference data ($addref_cond.addref_select=="history" or =="cached") + ##and sets the -t/-T parameters accordingly: + ##- in case of history a symbolic link is used because samtools (view) will generate + ## the index which might not be possible in the directory containing the fasta file + ##- in case of cached the absolute path is used which allows to read the cram file + ## without specifying the reference + #if $addref_cond.addref_select == "history": + ln -s '${addref_cond.ref}' reference.fa && + samtools faidx reference.fa && + #set reffa="reference.fa" + #set reffai="reference.fa.fai" + #elif $addref_cond.addref_select == "cached": + #set reffa=str($addref_cond.ref.fields.path) + #set reffai=str($addref_cond.ref.fields.path)+".fai" + #else + #set reffa=None + #set reffai=None + #end if + ]]></token> + + <xml name="optional_reference"> + <conditional name="addref_cond"> + <param name="addref_select" type="select" label="Use a reference sequence"> + <help>@HELP@</help> + <option value="no">No</option> + <option value="history">Use a genome/index from the history</option> + <option value="cached">Use a built-in genome</option> + </param> + <when value="no"/> + <when value="history"> + <param name="ref" argument="@ARGUMENT@" type="data" format="fasta,fasta.gz" label="Reference"/> + </when> + <when value="cached"> + <param name="ref" argument="@ARGUMENT@" type="select" label="Reference"> + <options from_data_table="fasta_indexes"> + <filter type="data_meta" ref="input" key="dbkey" column="dbkey"/> + </options> + <validator type="no_options" message="No reference genome is available for the build associated with the selected input dataset"/> + </param> + </when> + </conditional> + </xml> + <xml name="mandatory_reference" token_help="" token_argument=""> + <conditional name="addref_cond"> + <param name="addref_select" type="select" label="Use a reference sequence"> + <help>@HELP@</help> + <option value="history">Use a genome/index from the history</option> + <option value="cached">Use a built-in genome</option> + </param> + <when value="history"> + <param name="ref" argument="@ARGUMENT@" type="data" format="fasta,fasta.gz" label="Reference"/> + </when> + <when value="cached"> + <param name="ref" argument="@ARGUMENT@" type="select" label="Reference"> + <options from_data_table="fasta_indexes"> + <filter type="data_meta" ref="input" key="dbkey" column="dbkey"/> + <validator message="No reference genome is available for the build associated with the selected input dataset" type="no_options" /> + </options> + </param> + </when> + </conditional> + </xml> + + + <token name="@ADDTHREADS@"><![CDATA[ + ##compute the number of ADDITIONAL threads to be used by samtools (-@) + addthreads=\${GALAXY_SLOTS:-1} && (( addthreads-- )) && + ]]></token> + <token name="@ADDMEMORY@"><![CDATA[ + ##compute the number of memory available to samtools sort (-m) + ##use only 75% of available: https://github.com/samtools/samtools/issues/831 + addmemory=\${GALAXY_MEMORY_MB_PER_SLOT:-768} && + ((addmemory=addmemory*75/100)) && + ]]></token> + <xml name="seed_input"> + <param name="seed" type="integer" optional="True" label="Seed for random number generator" help="If empty a random seed is used." /> + </xml> + <xml name="flag_options" token_s1="false" token_s2="false" token_s4="false" token_s8="false" token_s16="false" token_s32="false" token_s64="false" token_s128="false" token_s256="false" token_s512="false" token_s1024="false" token_s2048="false"> + <option value="1" selected="@S1@">Read is paired</option> + <option value="2" selected="@S2@">Read is mapped in a proper pair</option> + <option value="4" selected="@S4@">Read is unmapped</option> + <option value="8" selected="@S8@">Mate is unmapped</option> + <option value="16" selected="@S16@">Read is mapped to the reverse strand of the reference</option> + <option value="32" selected="@S32@">Mate is mapped to the reverse strand of the reference</option> + <option value="64" selected="@S64@">Read is the first in a pair</option> + <option value="128" selected="@S128@">Read is the second in a pair</option> + <option value="256" selected="@S256@">Alignment of the read is not primary</option> + <option value="512" selected="@S512@">Read fails platform/vendor quality checks</option> + <option value="1024" selected="@S1024@">Read is a PCR or optical duplicate</option> + <option value="2048" selected="@S2048@">Alignment is supplementary</option> + </xml> + + <!-- region specification macros and tokens for tools that allow the specification + of region by bed file / space separated list of regions --> + <token name="@REGIONS_FILE@"><![CDATA[ + #if $cond_region.select_region == 'tab': + -t '$cond_region.targetregions' + #end if + ]]></token> + <token name="@REGIONS_MANUAL@"><![CDATA[ + #if $cond_region.select_region == 'text': + #for $i, $x in enumerate($cond_region.regions_repeat): + '${x.region}' + #end for + #end if + ]]></token> + <xml name="regions_macro"> + <conditional name="cond_region"> + <param name="select_region" type="select" label="Filter by regions" help="restricts output to only those alignments which overlap the specified region(s)"> + <option value="no" selected="True">No</option> + <option value="text">Manualy specify regions</option> + <option value="tab">Regions from tabular file</option> + </param> + <when value="no"/> + <when value="text"> + <repeat name="regions_repeat" min="1" default="1" title="Regions"> + <param name="region" type="text" label="region" help="format chr:from-to"> + <validator type="regex" message="Required format: CHR[:FROM[-TO]]; where CHR: string containing any character except quotes, whitespace and colon; FROM and TO: any integer">^[^\s'\":]+(:\d+(-\d+){0,1}){0,1}$</validator> + </param> + </repeat> + </when> + <when value="tab"> + <param name="targetregions" argument="-t/--target-regions" type="data" format="tabular" label="Target regions file" help="Do stats in these regions only. Tab-delimited file chr,from,to (1-based, inclusive)" /> + </when> + </conditional> + </xml> + + <xml name="citations"> + <citations> + <citation type="bibtex"> + @misc{SAM_def, + title={Definition of SAM/BAM format}, + url = {https://samtools.github.io/hts-specs/},} + </citation> + <citation type="doi">10.1093/bioinformatics/btp352</citation> + <citation type="doi">10.1093/bioinformatics/btr076</citation> + <citation type="doi">10.1093/bioinformatics/btr509</citation> + <citation type="bibtex"> + @misc{Danecek_et_al, + Author={Danecek, P., Schiffels, S., Durbin, R.}, + title={Multiallelic calling model in bcftools (-m)}, + url = {http://samtools.github.io/bcftools/call-m.pdf},} + </citation> + <citation type="bibtex"> + @misc{Durbin_VCQC, + Author={Durbin, R.}, + title={Segregation based metric for variant call QC}, + url = {http://samtools.github.io/bcftools/rd-SegBias.pdf},} + </citation> + <citation type="bibtex"> + @misc{Li_SamMath, + Author={Li, H.}, + title={Mathematical Notes on SAMtools Algorithms}, + url = {http://www.broadinstitute.org/gatk/media/docs/Samtools.pdf},} + </citation> + <citation type="bibtex"> + @misc{SamTools_github, + title={SAMTools GitHub page}, + url = {https://github.com/samtools/samtools},} + </citation> + </citations> + </xml> + <xml name="version_command"> + <version_command><![CDATA[samtools 2>&1 | grep Version]]></version_command> + </xml> + <xml name="stdio"> + <stdio> + <exit_code range="1:" level="fatal" description="Error" /> + </stdio> + </xml> +</macros> diff --git a/janis_core/tests/data/galaxy/wrappers/samtools_flagstat-fe34990e5ce7/samtools_flagstat.xml b/janis_core/tests/data/galaxy/wrappers/samtools_flagstat-fe34990e5ce7/samtools_flagstat.xml new file mode 100644 index 000000000..49b4236e5 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/samtools_flagstat-fe34990e5ce7/samtools_flagstat.xml @@ -0,0 +1,77 @@ +<tool id="samtools_flagstat" name="Samtools flagstat" version="2.0.4" profile="@PROFILE@"> + <description>tabulate descriptive stats for BAM datset</description> + + <macros> + <import>macros.xml</import> + </macros> + <expand macro="requirements"/> + <expand macro="stdio"/> + <expand macro="version_command"/> + + <command><![CDATA[ + @ADDTHREADS@ + samtools flagstat -@ \$addthreads + #if $output_fmt != 'txt' + --output-fmt $output_fmt + #end if + '$input1' + > '$output1' + ]]></command> + + <inputs> + <param name="input1" type="data" format="sam,bam,cram" label="BAM File to report statistics of" /> + <param argument="--output-fmt" type="select" label="Output format"> + <option value="txt">txt</option> + <option value="tsv">tsv</option> + <option value="json">json</option> + </param> + </inputs> + + <outputs> + <data name="output1" format="txt"> + <change_format> + <when input="output_fmt" value="tsv" format="tabular" /> + <when input="output_fmt" value="json" format="json" /> + </change_format> + </data> + </outputs> + + <tests> + <test> + <param name="input1" value="samtools_flagstat_input1.bam" ftype="bam" /> + <output name="output1" file="samtools_flagstat_out1.txt" ftype="txt"/> + </test> + <test> + <param name="input1" value="samtools_flagstat_input1.bam" ftype="bam" /> + <param name="output_fmt" value="tsv"/> + <output name="output1" file="samtools_flagstat_out1.tsv" ftype="tabular" /> + </test> + <test> + <param name="input1" value="samtools_flagstat_input1.bam" ftype="bam" /> + <param name="output_fmt" value="json"/> + <output name="output1" file="samtools_flagstat_out1.json" ftype="json" /> + </test> + </tests> + <help><![CDATA[ +**What it does** + +Uses ``samtools flagstat`` command to print descriptive information for a BAM dataset. Here is an example of such information:: + + 200 + 0 in total (QC-passed reads + QC-failed reads) + 0 + 0 secondary + 0 + 0 supplementary + 0 + 0 duplicates + 25 + 0 mapped (12.50%:nan%) + 200 + 0 paired in sequencing + 100 + 0 read1 + 100 + 0 read2 + 0 + 0 properly paired (0.00%:nan%) + 0 + 0 with itself and mate mapped + 25 + 0 singletons (12.50%:nan%) + 0 + 0 with mate mapped to a different chr + 0 + 0 with mate mapped to a different chr (mapQ>=5) + +The results of samtools flagstat can be visualized with MultiQC. + ]]></help> + <expand macro="citations"/> +</tool> diff --git a/janis_core/tests/data/galaxy/wrappers/samtools_idxstats-7def34e6cf4d/macros.xml b/janis_core/tests/data/galaxy/wrappers/samtools_idxstats-7def34e6cf4d/macros.xml new file mode 100644 index 000000000..e9196296b --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/samtools_idxstats-7def34e6cf4d/macros.xml @@ -0,0 +1,223 @@ +<macros> + <xml name="requirements"> + <requirements> + <requirement type="package" version="@TOOL_VERSION@">samtools</requirement> + <yield/> + </requirements> + </xml> + <token name="@TOOL_VERSION@">1.13</token> + <token name="@PROFILE@">20.05</token> + <token name="@FLAGS@"><![CDATA[ + #set $flags = 0 + #if $filter + #set $flags = sum(map(int, str($filter).split(','))) + #end if + ]]></token> + <token name="@PREPARE_IDX@"><![CDATA[ + ##prepare input and indices + ln -s '$input' infile && + #if $input.is_of_type('bam'): + #if str( $input.metadata.bam_index ) != "None": + ln -s '${input.metadata.bam_index}' infile.bai && + #else: + samtools index infile infile.bai && + #end if + #elif $input.is_of_type('cram'): + #if str( $input.metadata.cram_index ) != "None": + ln -s '${input.metadata.cram_index}' infile.crai && + #else: + samtools index infile infile.crai && + #end if + #end if + ]]></token> + <token name="@PREPARE_IDX_MULTIPLE@"><![CDATA[ + ##prepare input and indices + #for $i, $bam in enumerate( $input_bams ): + ln -s '$bam' '${i}' && + #if $bam.is_of_type('bam'): + #if str( $bam.metadata.bam_index ) != "None": + ln -s '${bam.metadata.bam_index}' '${i}.bai' && + #else: + samtools index '${i}' '${i}.bai' && + #end if + #elif $bam.is_of_type('cram'): + #if str( $bam.metadata.cram_index ) != "None": + ln -s '${bam.metadata.cram_index}' '${i}.crai' && + #else: + samtools index '${i}' '${i}.crai' && + #end if + #end if + #end for + ]]></token> + <token name="@PREPARE_FASTA_IDX@"><![CDATA[ + ##checks for reference data ($addref_cond.addref_select=="history" or =="cached") + ##and sets the -t/-T parameters accordingly: + ##- in case of history a symbolic link is used because samtools (view) will generate + ## the index which might not be possible in the directory containing the fasta file + ##- in case of cached the absolute path is used which allows to read the cram file + ## without specifying the reference + #if $addref_cond.addref_select == "history": + ln -s '${addref_cond.ref}' reference.fa && + samtools faidx reference.fa && + #set reffa="reference.fa" + #set reffai="reference.fa.fai" + #elif $addref_cond.addref_select == "cached": + #set reffa=str($addref_cond.ref.fields.path) + #set reffai=str($addref_cond.ref.fields.path)+".fai" + #else + #set reffa=None + #set reffai=None + #end if + ]]></token> + + <xml name="optional_reference"> + <conditional name="addref_cond"> + <param name="addref_select" type="select" label="Use a reference sequence"> + <help>@HELP@</help> + <option value="no">No</option> + <option value="history">Use a genome/index from the history</option> + <option value="cached">Use a built-in genome</option> + </param> + <when value="no"/> + <when value="history"> + <param name="ref" argument="@ARGUMENT@" type="data" format="fasta,fasta.gz" label="Reference"/> + </when> + <when value="cached"> + <param name="ref" argument="@ARGUMENT@" type="select" label="Reference"> + <options from_data_table="fasta_indexes"> + <filter type="data_meta" ref="input" key="dbkey" column="dbkey"/> + </options> + <validator type="no_options" message="No reference genome is available for the build associated with the selected input dataset"/> + </param> + </when> + </conditional> + </xml> + <xml name="mandatory_reference" token_help="" token_argument=""> + <conditional name="addref_cond"> + <param name="addref_select" type="select" label="Use a reference sequence"> + <help>@HELP@</help> + <option value="history">Use a genome/index from the history</option> + <option value="cached">Use a built-in genome</option> + </param> + <when value="history"> + <param name="ref" argument="@ARGUMENT@" type="data" format="fasta,fasta.gz" label="Reference"/> + </when> + <when value="cached"> + <param name="ref" argument="@ARGUMENT@" type="select" label="Reference"> + <options from_data_table="fasta_indexes"> + <filter type="data_meta" ref="input" key="dbkey" column="dbkey"/> + <validator message="No reference genome is available for the build associated with the selected input dataset" type="no_options" /> + </options> + </param> + </when> + </conditional> + </xml> + + + <token name="@ADDTHREADS@"><![CDATA[ + ##compute the number of ADDITIONAL threads to be used by samtools (-@) + addthreads=\${GALAXY_SLOTS:-1} && (( addthreads-- )) && + ]]></token> + <token name="@ADDMEMORY@"><![CDATA[ + ##compute the number of memory available to samtools sort (-m) + ##use only 75% of available: https://github.com/samtools/samtools/issues/831 + addmemory=\${GALAXY_MEMORY_MB_PER_SLOT:-768} && + ((addmemory=addmemory*75/100)) && + ]]></token> + <xml name="seed_input"> + <param name="seed" type="integer" optional="True" label="Seed for random number generator" help="If empty a random seed is used." /> + </xml> + <xml name="flag_options" token_s1="false" token_s2="false" token_s4="false" token_s8="false" token_s16="false" token_s32="false" token_s64="false" token_s128="false" token_s256="false" token_s512="false" token_s1024="false" token_s2048="false"> + <option value="1" selected="@S1@">Read is paired</option> + <option value="2" selected="@S2@">Read is mapped in a proper pair</option> + <option value="4" selected="@S4@">Read is unmapped</option> + <option value="8" selected="@S8@">Mate is unmapped</option> + <option value="16" selected="@S16@">Read is mapped to the reverse strand of the reference</option> + <option value="32" selected="@S32@">Mate is mapped to the reverse strand of the reference</option> + <option value="64" selected="@S64@">Read is the first in a pair</option> + <option value="128" selected="@S128@">Read is the second in a pair</option> + <option value="256" selected="@S256@">Alignment of the read is not primary</option> + <option value="512" selected="@S512@">Read fails platform/vendor quality checks</option> + <option value="1024" selected="@S1024@">Read is a PCR or optical duplicate</option> + <option value="2048" selected="@S2048@">Alignment is supplementary</option> + </xml> + + <!-- region specification macros and tokens for tools that allow the specification + of region by bed file / space separated list of regions --> + <token name="@REGIONS_FILE@"><![CDATA[ + #if $cond_region.select_region == 'tab': + -t '$cond_region.targetregions' + #end if + ]]></token> + <token name="@REGIONS_MANUAL@"><![CDATA[ + #if $cond_region.select_region == 'text': + #for $i, $x in enumerate($cond_region.regions_repeat): + '${x.region}' + #end for + #end if + ]]></token> + <xml name="regions_macro"> + <conditional name="cond_region"> + <param name="select_region" type="select" label="Filter by regions" help="restricts output to only those alignments which overlap the specified region(s)"> + <option value="no" selected="True">No</option> + <option value="text">Manualy specify regions</option> + <option value="tab">Regions from tabular file</option> + </param> + <when value="no"/> + <when value="text"> + <repeat name="regions_repeat" min="1" default="1" title="Regions"> + <param name="region" type="text" label="region" help="format chr:from-to"> + <validator type="regex" message="Required format: CHR[:FROM[-TO]]; where CHR: string containing any character except quotes, whitespace and colon; FROM and TO: any integer">^[^\s'\":]+(:\d+(-\d+){0,1}){0,1}$</validator> + </param> + </repeat> + </when> + <when value="tab"> + <param name="targetregions" argument="-t/--target-regions" type="data" format="tabular" label="Target regions file" help="Do stats in these regions only. Tab-delimited file chr,from,to (1-based, inclusive)" /> + </when> + </conditional> + </xml> + + <xml name="citations"> + <citations> + <citation type="bibtex"> + @misc{SAM_def, + title={Definition of SAM/BAM format}, + url = {https://samtools.github.io/hts-specs/},} + </citation> + <citation type="doi">10.1093/bioinformatics/btp352</citation> + <citation type="doi">10.1093/bioinformatics/btr076</citation> + <citation type="doi">10.1093/bioinformatics/btr509</citation> + <citation type="bibtex"> + @misc{Danecek_et_al, + Author={Danecek, P., Schiffels, S., Durbin, R.}, + title={Multiallelic calling model in bcftools (-m)}, + url = {http://samtools.github.io/bcftools/call-m.pdf},} + </citation> + <citation type="bibtex"> + @misc{Durbin_VCQC, + Author={Durbin, R.}, + title={Segregation based metric for variant call QC}, + url = {http://samtools.github.io/bcftools/rd-SegBias.pdf},} + </citation> + <citation type="bibtex"> + @misc{Li_SamMath, + Author={Li, H.}, + title={Mathematical Notes on SAMtools Algorithms}, + url = {http://www.broadinstitute.org/gatk/media/docs/Samtools.pdf},} + </citation> + <citation type="bibtex"> + @misc{SamTools_github, + title={SAMTools GitHub page}, + url = {https://github.com/samtools/samtools},} + </citation> + </citations> + </xml> + <xml name="version_command"> + <version_command><![CDATA[samtools 2>&1 | grep Version]]></version_command> + </xml> + <xml name="stdio"> + <stdio> + <exit_code range="1:" level="fatal" description="Error" /> + </stdio> + </xml> +</macros> diff --git a/janis_core/tests/data/galaxy/wrappers/samtools_idxstats-7def34e6cf4d/samtools_idxstats.xml b/janis_core/tests/data/galaxy/wrappers/samtools_idxstats-7def34e6cf4d/samtools_idxstats.xml new file mode 100644 index 000000000..58abc880b --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/samtools_idxstats-7def34e6cf4d/samtools_idxstats.xml @@ -0,0 +1,73 @@ +<tool id="samtools_idxstats" name="Samtools idxstats" version="2.0.4" profile="@PROFILE@"> + <description>reports stats of the BAM index file</description> + <macros> + <import>macros.xml</import> + </macros> + <expand macro="requirements"/> + <expand macro="stdio"/> + <expand macro="version_command"/> + <command><![CDATA[ +@ADDTHREADS@ +@PREPARE_IDX@ +samtools idxstats -@ \$addthreads infile > '${output}' + ]]></command> + <inputs> + <param name="input" type="data" format="bam,cram" label="BAM file" /> + </inputs> + <outputs> + <data format="tabular" name="output" label="${tool.name} on ${on_string}" /> + </outputs> + <tests> + <!-- test from https://github.com/samtools/samtools/blob/9ce8c64493f7ea3fa69bc5c1ac980b1a8e3dcf1f/test/test.pl#L2556 --> + <test> + <param name="input" value="test_input_1_a.bam" ftype="bam" /> + <output name="output" file="test_input_1_a.bam.expected" compare="diff" ftype="tabular" /> + </test> + <!-- test from original tool --> + <test> + <param name="input" value="phiX.bam" ftype="bam" /> + <output name="output" file="samtools_idxstats_out.tabular" compare="diff" ftype="tabular" /> + </test> + </tests> + <help><![CDATA[ +**What it does** + +Runs the ``samtools idxstats`` command. It retrieves and prints stats in the index file. + +Input is a sorted and indexed BAM file, the output is tabular with +four columns (one row per reference sequence plus a final line for +unmapped reads):: + + Column Description + ------ ----------------------------- + 1 Reference sequence identifier + 2 Reference sequence length + 3 Number of mapped reads + 4 Number of placed but unmapped reads + (typically unmapped partners of mapped reads) + +------ + +**Example** output from a *de novo* assembly:: + + contig_1 170035 98397 0 + contig_2 403835 199564 0 + contig_3 553102 288189 0 + ... ... ... ... + contig_603 653 50 0 + contig_604 214 6 0 + \* 0 0 50320 + +In this example there were 604 contigs, each with one line in the output table, +plus the final row (labelled with an asterisk) representing 50320 unmapped reads. +In this BAM file, the final column was otherwise zero. + + +The results of samtools ixdstats can be visualized with MultiQC. + +------ + +Peter J.A. Cock (2013), `Galaxy wrapper <https://github.com/peterjc/pico_galaxy/tree/master/tools/samtools_idxstats>`_ for the samtools idxstats command + ]]></help> + <expand macro="citations"/> +</tool> diff --git a/janis_core/tests/data/galaxy/wrappers/samtools_idxstats-811fc2d75ad4/macros.xml b/janis_core/tests/data/galaxy/wrappers/samtools_idxstats-811fc2d75ad4/macros.xml new file mode 100644 index 000000000..fa4e89be0 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/samtools_idxstats-811fc2d75ad4/macros.xml @@ -0,0 +1,172 @@ +<macros> + <xml name="requirements"> + <requirements> + <requirement type="package" version="@TOOL_VERSION@">samtools</requirement> + <yield/> + </requirements> + </xml> + <token name="@TOOL_VERSION@">1.9</token> + <token name="@FLAGS@">#set $flags = sum(map(int, str($filter).split(',')))</token> + <token name="@PREPARE_IDX@"><![CDATA[ + ##prepare input and indices + ln -s '$input' infile && + #if $input.is_of_type('bam'): + #if str( $input.metadata.bam_index ) != "None": + ln -s '${input.metadata.bam_index}' infile.bai && + #else: + samtools index infile infile.bai && + #end if + #elif $input.is_of_type('cram'): + #if str( $input.metadata.cram_index ) != "None": + ln -s '${input.metadata.cram_index}' infile.crai && + #else: + samtools index infile infile.crai && + #end if + #end if + ]]></token> + <token name="@PREPARE_IDX_MULTIPLE@"><![CDATA[ + ##prepare input and indices + #for $i, $bam in enumerate( $input_bams ): + ln -s '$bam' '${i}' && + #if $bam.is_of_type('bam'): + #if str( $bam.metadata.bam_index ) != "None": + ln -s '${bam.metadata.bam_index}' '${i}.bai' && + #else: + samtools index '${i}' '${i}.bai' && + #end if + #elif $bam.is_of_type('cram'): + #if str( $bam.metadata.cram_index ) != "None": + ln -s '${bam.metadata.cram_index}' '${i}.crai' && + #else: + samtools index '${i}' '${i}.crai' && + #end if + #end if + #end for + ]]></token> + <token name="@PREPARE_FASTA_IDX@"><![CDATA[ + ##checks for reference data ($addref_cond.addref_select=="history" or =="cached") + ##and sets the -t/-T parameters accordingly: + ##- in case of history a symbolic link is used because samtools (view) will generate + ## the index which might not be possible in the directory containing the fasta file + ##- in case of cached the absolute path is used which allows to read the cram file + ## without specifying the reference + #if $addref_cond.addref_select == "history": + ln -s '${addref_cond.ref}' reference.fa && + samtools faidx reference.fa && + #set reffa="reference.fa" + #set reffai="reference.fa.fai" + #elif $addref_cond.addref_select == "cached": + #set reffa=str($addref_cond.ref.fields.path) + #set reffai=str($addref_cond.ref.fields.path)+".fai" + #else + #set reffa=None + #set reffai=None + #end if + ]]></token> + <token name="@ADDTHREADS@"><![CDATA[ + ##compute the number of ADDITIONAL threads to be used by samtools (-@) + addthreads=\${GALAXY_SLOTS:-1} && (( addthreads-- )) && + ]]></token> + <token name="@ADDMEMORY@"><![CDATA[ + ##compute the number of memory available to samtools sort (-m) + ##use only 75% of available: https://github.com/samtools/samtools/issues/831 + addmemory=\${GALAXY_MEMORY_MB_PER_SLOT:-768} && + ((addmemory=addmemory*75/100)) && + ]]></token> + <xml name="seed_input"> + <param name="seed" type="integer" optional="True" label="Seed for random number generator" help="If empty a random seed is used." /> + </xml> + <xml name="flag_options"> + <option value="1">read is paired</option> + <option value="2">read is mapped in a proper pair</option> + <option value="4">read is unmapped</option> + <option value="8">mate is unmapped</option> + <option value="16">read reverse strand</option> + <option value="32">mate reverse strand</option> + <option value="64">read is the first in a pair</option> + <option value="128">read is the second in a pair</option> + <option value="256">alignment or read is not primary</option> + <option value="512">read fails platform/vendor quality checks</option> + <option value="1024">read is a PCR or optical duplicate</option> + <option value="2048">supplementary alignment</option> + </xml> + + <!-- region specification macros and tokens for tools that allow the specification + of region by bed file / space separated list of regions --> + <token name="@REGIONS_FILE@"><![CDATA[ + #if $cond_region.select_region == 'tab': + -t '$cond_region.targetregions' + #end if + ]]></token> + <token name="@REGIONS_MANUAL@"><![CDATA[ + #if $cond_region.select_region == 'text': + #for $i, $x in enumerate($cond_region.regions_repeat): + '${x.region}' + #end for + #end if + ]]></token> + <xml name="regions_macro"> + <conditional name="cond_region"> + <param name="select_region" type="select" label="Filter by regions" help="restricts output to only those alignments which overlap the specified region(s)"> + <option value="no" selected="True">No</option> + <option value="text">Manualy specify regions</option> + <option value="tab">Regions from tabular file</option> + </param> + <when value="no"/> + <when value="text"> + <repeat name="regions_repeat" min="1" default="1" title="Regions"> + <param name="region" type="text" label="region" help="format chr:from-to"> + <validator type="regex" message="Required format: CHR[:FROM[-TO]]; where CHR: string containing any character except quotes, whitespace and colon; FROM and TO: any integer">^[^\s'\":]+(:\d+(-\d+){0,1}){0,1}$</validator> + </param> + </repeat> + </when> + <when value="tab"> + <param name="targetregions" argument="-t/--target-regions" type="data" format="tabular" label="Target regions file" help="Do stats in these regions only. Tab-delimited file chr,from,to (1-based, inclusive)" /> + </when> + </conditional> + </xml> + + <xml name="citations"> + <citations> + <citation type="bibtex"> + @misc{SAM_def, + title={Definition of SAM/BAM format}, + url = {https://samtools.github.io/hts-specs/},} + </citation> + <citation type="doi">10.1093/bioinformatics/btp352</citation> + <citation type="doi">10.1093/bioinformatics/btr076</citation> + <citation type="doi">10.1093/bioinformatics/btr509</citation> + <citation type="bibtex"> + @misc{Danecek_et_al, + Author={Danecek, P., Schiffels, S., Durbin, R.}, + title={Multiallelic calling model in bcftools (-m)}, + url = {http://samtools.github.io/bcftools/call-m.pdf},} + </citation> + <citation type="bibtex"> + @misc{Durbin_VCQC, + Author={Durbin, R.}, + title={Segregation based metric for variant call QC}, + url = {http://samtools.github.io/bcftools/rd-SegBias.pdf},} + </citation> + <citation type="bibtex"> + @misc{Li_SamMath, + Author={Li, H.}, + title={Mathematical Notes on SAMtools Algorithms}, + url = {http://www.broadinstitute.org/gatk/media/docs/Samtools.pdf},} + </citation> + <citation type="bibtex"> + @misc{SamTools_github, + title={SAMTools GitHub page}, + url = {https://github.com/samtools/samtools},} + </citation> + </citations> + </xml> + <xml name="version_command"> + <version_command><![CDATA[samtools 2>&1 | grep Version]]></version_command> + </xml> + <xml name="stdio"> + <stdio> + <exit_code range="1:" level="fatal" description="Error" /> + </stdio> + </xml> +</macros> diff --git a/janis_core/tests/data/galaxy/wrappers/samtools_idxstats-811fc2d75ad4/samtools_idxstats.xml b/janis_core/tests/data/galaxy/wrappers/samtools_idxstats-811fc2d75ad4/samtools_idxstats.xml new file mode 100644 index 000000000..4f8e68b46 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/samtools_idxstats-811fc2d75ad4/samtools_idxstats.xml @@ -0,0 +1,70 @@ +<tool id="samtools_idxstats" name="Samtools idxstats" version="2.0.2"> + <description>reports stats of the BAM index file</description> + <macros> + <import>macros.xml</import> + </macros> + <expand macro="requirements"/> + <expand macro="stdio"/> + <expand macro="version_command"/> + <command><![CDATA[ +@ADDTHREADS@ +@PREPARE_IDX@ +samtools idxstats -@ \$addthreads infile > '${output}' + ]]></command> + <inputs> + <param name="input" type="data" format="bam,cram" label="BAM file" /> + </inputs> + <outputs> + <data format="tabular" name="output" label="${tool.name} on ${on_string}" /> + </outputs> + <tests> + <!-- test from https://github.com/samtools/samtools/blob/9ce8c64493f7ea3fa69bc5c1ac980b1a8e3dcf1f/test/test.pl#L2556 --> + <test> + <param name="input" value="test_input_1_a.bam" ftype="bam" /> + <output name="output" file="test_input_1_a.bam.expected" compare="diff" ftype="tabular" /> + </test> + <!-- test from original tool --> + <test> + <param name="input" value="phiX.bam" ftype="bam" /> + <output name="output" file="samtools_idxstats_out.tabular" compare="diff" ftype="tabular" /> + </test> + </tests> + <help><![CDATA[ +**What it does** + +Runs the ``samtools idxstats`` command. It retrieves and prints stats in the index file. + +Input is a sorted and indexed BAM file, the output is tabular with +four columns (one row per reference sequence plus a final line for +unmapped reads):: + + Column Description + ------ ----------------------------- + 1 Reference sequence identifier + 2 Reference sequence length + 3 Number of mapped reads + 4 Number of placed but unmapped reads + (typically unmapped partners of mapped reads) + +------ + +**Example** output from a *de novo* assembly:: + + contig_1 170035 98397 0 + contig_2 403835 199564 0 + contig_3 553102 288189 0 + ... ... ... ... + contig_603 653 50 0 + contig_604 214 6 0 + \* 0 0 50320 + +In this example there were 604 contigs, each with one line in the output table, +plus the final row (labelled with an asterisk) representing 50320 unmapped reads. +In this BAM file, the final column was otherwise zero. + +------ + +Peter J.A. Cock (2013), `Galaxy wrapper <https://github.com/peterjc/pico_galaxy/tree/master/tools/samtools_idxstats>`_ for the samtools idxstats command + ]]></help> + <expand macro="citations"/> +</tool> diff --git a/janis_core/tests/data/galaxy/text_processing-d698c222f354/ansi2html.sh b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/ansi2html.sh similarity index 100% rename from janis_core/tests/data/galaxy/text_processing-d698c222f354/ansi2html.sh rename to janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/ansi2html.sh diff --git a/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/awk.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/awk.xml new file mode 100644 index 000000000..7a65385e7 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/awk.xml @@ -0,0 +1,125 @@ +<tool id="tp_awk_tool" name="Text reformatting" version="@BASE_VERSION@.1"> + <description>with awk</description> + <macros> + <import>macros.xml</import> + </macros> + <requirements> + <requirement type="package" version="4.2.0">gawk</requirement> + </requirements> + <version_command>awk --version | head -n 1</version_command> + <command> +<![CDATA[ + awk + --sandbox + -v FS=' ' + -v OFS=' ' + --re-interval + -f "$awk_script" + "$infile" + > "$outfile" +]]> + </command> + <configfiles> + <configfile name="awk_script">$code</configfile> + </configfiles> + <inputs> + <param name="infile" format="txt" type="data" label="File to process" /> + <param name="code" type="text" area="true" size="5x35" label="AWK Program" help=""> + <sanitizer> + <valid initial="string.printable"> + <remove value="&apos;"/> + </valid> + </sanitizer> + </param> + </inputs> + <outputs> + <data name="outfile" format_source="infile" metadata_source="infile"/> + </outputs> + <tests> + <test> + <param name="infile" value="awk1.txt" /> + <!-- commas are not allowed in a value field. Values with comma will be splitted --> + <param name="code" value='$2>0.5 { print $2*9"\t"$1 }' /> + <output name="outfile" file="awk_results1.txt" /> + </test> + </tests> + <help> +<![CDATA[ +**What it does** + +This tool runs the unix **awk** command on the selected data file. + +.. class:: infomark + +**TIP:** + +This tool uses the **extended regular** expression syntax (not the perl syntax). +**\\d**, **\\w**, **\\s** etc. are **not** supported. + + +**Further reading** + +- Awk by Example (http://www.ibm.com/developerworks/linux/library/l-awk1/index.html) +- Long AWK tutorial (http://www.grymoire.com/Unix/Awk.html) + +----- + +**AWK programs** + +Most AWK programs consist of **patterns** (i.e. rules that match lines of text) and **actions** (i.e. commands to execute when a pattern matches a line). + +The basic form of AWK program is:: + + pattern { action 1; action 2; action 3; } + + +**Pattern Examples** + +- **$2 == "chr3"** will match lines whose second column is the string 'chr3' +- **$5-$4>23** will match lines that after subtracting the value of the fourth column from the value of the fifth column, gives value alrger than 23. +- **/AG..AG/** will match lines that contain the regular expression **AG..AG** (meaning the characeters AG followed by any two characeters followed by AG). (This is the way to specify regular expressions on the entire line, similar to GREP.) +- **$7 ~ /A{4}U/** will match lines whose seventh column contains 4 consecutive A's followed by a U. (This is the way to specify regular expressions on a specific field.) +- **10000 < $4 && $4 < 20000** will match lines whose fourth column value is larger than 10,000 but smaller than 20,000 +- **BEGIN** will be executed once only, before the first input record is read. +- If no pattern is specified, all lines match (meaning the **action** part will be executed on all lines). + + + +**Action Examples** + +- **{ print }** or **{ print $0 }** will print the entire input line (the line that matched in **pattern**). **$0** is a special marker meaning 'the entire line'. +- **{ print $1, $4, $5 }** will print only the first, fourth and fifth fields of the input line. +- **{ print $4, $5-$4 }** will print the fourth column and the difference between the fifth and fourth column. (If the fourth column was start-position in the input file, and the fifth column was end-position - the output file will contain the start-position, and the length). +- **{ FS = "," }** can be used to change the field separator (delimeter) for parsing the input file. +- If no action part is specified (not even the curly brackets) - the default action is to print the entire line. + + +**AWK's Regular Expression Syntax** + +The select tool searches the data for lines containing or not containing a match to the given pattern. A Regular Expression is a pattern descibing a certain amount of text. + +- **( ) { } [ ] . * ? + \ ^ $** are all special characters. **\\** can be used to "escape" a special character, allowing that special character to be searched for. +- **^** matches the beginning of a string(but not an internal line). +- **(** .. **)** groups a particular pattern. +- **{** n or n, or n,m **}** specifies an expected number of repetitions of the preceding pattern. + + - **{n}** The preceding item is matched exactly n times. + - **{n,}** The preceding item ismatched n or more times. + - **{n,m}** The preceding item is matched at least n times but not more than m times. + +- **[** ... **]** creates a character class. Within the brackets, single characters can be placed. A dash (-) may be used to indicate a range such as **a-z**. +- **.** Matches any single character except a newline. +- ***** The preceding item will be matched zero or more times. +- **?** The preceding item is optional and matched at most once. +- **+** The preceding item will be matched one or more times. +- **^** has two meaning: + - matches the beginning of a line or string. + - indicates negation in a character class. For example, [^...] matches every character except the ones inside brackets. +- **$** matches the end of a line or string. +- **\|** Separates alternate possibilities. + +@REFERENCES@ +]]> + </help> + <expand macro="citations" /> +</tool> diff --git a/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/cat.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/cat.xml new file mode 100644 index 000000000..420b10772 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/cat.xml @@ -0,0 +1,93 @@ +<tool id="tp_cat" name="Concatenate datasets" version="0.1.0"> + <description>tail-to-head (cat)</description> + <macros> + <import>macros.xml</import> + </macros> + <expand macro="requirements" /> + <version_command> + <![CDATA[ + cat --version | head -n 1 + ]]> + </version_command> + <command> + <![CDATA[ + cat + #echo ' '.join(['"%s"' % $file for $file in $inputs])# + #for $q in $queries: + #echo ' '.join(['"%s"' % $file for $file in $q.inputs2])# + #end for + > $out_file1 + ]]></command> + <inputs> + <param name="inputs" multiple="true" type="data" format="txt" label="Datasets to concatenate"/> + <repeat name="queries" title="Dataset"> + <param name="inputs2" type="data" format="txt" multiple="True" label="Select" /> + </repeat> + </inputs> + <outputs> + <data name="out_file1" format_source="inputs" metadata_source="inputs"/> + </outputs> + <tests> + <test> + <param name="inputs" value="sort_result1.bed,sort_result2.bed,sort_result3.bed"/> + <output name="out_file1" file="cat_result1.txt"/> + </test> + <test> + <param name="inputs" value="sort_result1.bed,sort_result3.bed"/> + <repeat name="queries"> + <param name="inputs2" value="sort_result3.bed,sort_result3.bed"/> + </repeat> + <repeat name="queries"> + <param name="inputs2" value="sort_result3.bed"/> + </repeat> + <output name="out_file1" file="cat_result2.txt"/> + </test> + </tests> + <help> +<![CDATA[ + +.. class:: warningmark + +**WARNING:** Be careful not to concatenate datasets of different kinds (e.g., sequences with intervals). This tool does not check if the datasets being concatenated are in the same format. + +----- + +**What it does** + +Concatenates datasets + +----- + +**Example** + +Concatenating Dataset:: + + chrX 151087187 151087355 A 0 - + chrX 151572400 151572481 B 0 + + +with Dataset1:: + + chr1 151242630 151242955 X 0 + + chr1 151271715 151271999 Y 0 + + chr1 151278832 151279227 Z 0 - + +and with Dataset2:: + + chr2 100000030 200000955 P 0 + + chr2 100000015 200000999 Q 0 + + +will result in the following:: + + chrX 151087187 151087355 A 0 - + chrX 151572400 151572481 B 0 + + chr1 151242630 151242955 X 0 + + chr1 151271715 151271999 Y 0 + + chr1 151278832 151279227 Z 0 - + chr2 100000030 200000955 P 0 + + chr2 100000015 200000999 Q 0 + + +@REFERENCES@ +]]> + </help> + <expand macro="citations" /> +</tool> diff --git a/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/cut.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/cut.xml new file mode 100644 index 000000000..170f7912b --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/cut.xml @@ -0,0 +1,260 @@ +<tool id="tp_cut_tool" name="Cut" version="@BASE_VERSION@.0"> + <description>columns from a table (cut)</description> + <macros> + <import>macros.xml</import> + </macros> + <expand macro="requirements" /> + <version_command>cut --version | head -n 1</version_command> + <command> +<![CDATA[ + cut + #if str($delimiter) != '': + -d"${delimiter}" + #end if + ${complement} + ${cut_type_options.cut_element} + '${cut_type_options.list}' + '${input}' + > '${output}' +]]> + </command> + <inputs> + <param name="input" format="txt" type="data" label="File to cut" /> + <param name="complement" type="select" label="Operation"> + <option value="">Keep</option> + <option value="--complement">Discard</option> + </param> + <param name="delimiter" type="select" label="Delimited by"> + <option value="">Tab</option> + <option value=" ">Whitespace</option> + <option value=".">Dot</option> + <option value=",">Comma</option> + <option value="-">Dash</option> + <option value="_">Underscore</option> + <option value="|">Pipe</option> + </param> + <conditional name="cut_type_options"> + <param name="cut_element" type="select" label="Cut by"> + <option value="-f">fields</option> + <option value="-c">characters</option> + <option value="-b">bytes</option> + </param> + <when value="-f"> + <param name="list" type="data_column" data_ref="input" multiple="true" label="List of Fields" help="(-f)" /> + </when> + <when value="-c"> + <param name="list" type="text" value="" label="List of characters" help="These will be kept/discarded (depending on 'operation'). &lt;BR /&gt; Examples: 1,3,4 or 2-5"> + <sanitizer> + <valid initial="string.printable"> + <remove value="&apos;"/> + </valid> + </sanitizer> + </param> + </when> + <when value="-b"> + <param name="list" type="text" value="" label="List of Bytes" help="These will be kept/discarded (depending on 'operation'). &lt;BR /&gt; Examples: 1,3,4 or 2-5"> + <sanitizer> + <valid initial="string.printable"> + <remove value="&apos;"/> + </valid> + </sanitizer> + </param> + </when> + </conditional> + </inputs> + <outputs> + <!--<data format="tabular" name="output" />--> + <!-- WIP, not sure that will work with the complement option --> + <data format="tabular" name="output"> + <actions> + <conditional name="cut_type_options.cut_element"> + <!-- fields --> + <when value="-f"> + <conditional name="delimiter"> + <when value="T"> + <conditional name="input"> + <when datatype_isinstance="interval"> + <action type="format" default="tabular"> + <option type="from_param" name="list" column="0" offset="0"> <!-- chromCol is 1--> + <filter type="insert_column" column="0" value="interval"/> + <filter type="insert_column" ref="list" /> <!-- startCol --> + <filter type="insert_column" ref="list" /> <!-- endCol --> + + <filter type="multiple_splitter" column="1" separator=","/> + <filter type="column_strip" column="1"/> <!-- get rid of all external whitespace --> + <filter type="string_function" column="1" name="lower" /> + <filter type="param_value" column="1" value="^c\d{1,}$" compare="re_search" keep="True"/> + <filter type="column_strip" column="1" strip="c"/> <!-- get rid of c's --> + <filter type="boolean" column="1" cast="int" /> + + <filter type="multiple_splitter" column="2" separator=","/> + <filter type="column_strip" column="2"/> <!-- get rid of all external whitespace --> + <filter type="string_function" column="2" name="lower" /> + <filter type="param_value" column="2" value="^c\d{1,}$" compare="re_search" keep="True"/> + <filter type="column_strip" column="2" strip="c"/> <!-- get rid of c's --> + <filter type="boolean" column="2" cast="int" /> + + <filter type="multiple_splitter" column="3" separator=","/> + <filter type="column_strip" column="3"/> <!-- get rid of all external whitespace --> + <filter type="string_function" column="3" name="lower" /> + <filter type="param_value" column="3" value="^c\d{1,}$" compare="re_search" keep="True"/> + <filter type="column_strip" column="3" strip="c"/> <!-- get rid of c's --> + <filter type="boolean" column="3" cast="int" /> + + <filter type="metadata_value" ref="input" name="chromCol" column="1" /> + <filter type="metadata_value" ref="input" name="startCol" column="2" /> + <filter type="metadata_value" ref="input" name="endCol" column="3" /> + </option> + </action> + </when> + </conditional> + </when> + </conditional> + <conditional name="output"> + <when datatype_isinstance="interval"> + <action type="metadata" name="chromCol"> + <option type="from_param" name="list" column="0" offset="0"> <!-- chromCol is 0--> + <filter type="multiple_splitter" column="0" separator=","/> + <filter type="column_strip" column="0"/> <!-- get rid of all external whitespace --> + <filter type="string_function" column="0" name="lower" /> + <filter type="param_value" column="0" value="^c\d{1,}$" compare="re_search" keep="True"/> + <filter type="column_strip" column="0" strip="c"/> <!-- get rid of c's --> + <filter type="insert_column" value="1" iterate="True" column="0"/> + <filter type="boolean" column="1" cast="int" /> + <filter type="metadata_value" ref="input" name="chromCol" column="1" /> + </option> + </action> + + <action type="metadata" name="startCol"> + <option type="from_param" name="list" column="0" offset="0"> <!-- startCol is 0--> + <filter type="multiple_splitter" column="0" separator=","/> + <filter type="column_strip" column="0"/> <!-- get rid of all external whitespace --> + <filter type="string_function" column="0" name="lower" /> + <filter type="param_value" column="0" value="^c\d{1,}$" compare="re_search" keep="True"/> + <filter type="column_strip" column="0" strip="c"/> <!-- get rid of c's --> + <filter type="insert_column" value="1" iterate="True" column="0"/> + <filter type="boolean" column="1" cast="int" /> + <filter type="metadata_value" ref="input" name="startCol" column="1" /> + </option> + </action> + + <action type="metadata" name="endCol"> + <option type="from_param" name="list" column="0" offset="0"> <!-- endCol is 0--> + <filter type="multiple_splitter" column="0" separator=","/> + <filter type="column_strip" column="0"/> <!-- get rid of all external whitespace --> + <filter type="string_function" column="0" name="lower" /> + <filter type="param_value" column="0" value="^c\d{1,}$" compare="re_search" keep="True"/> + <filter type="column_strip" column="0" strip="c"/> <!-- get rid of c's --> + <filter type="insert_column" value="1" iterate="True" column="0"/> + <filter type="boolean" column="1" cast="int" /> + <filter type="metadata_value" ref="input" name="endCol" column="1" /> + </option> + </action> + + <action type="metadata" name="nameCol" default="0"> + <option type="from_param" name="list" column="0" offset="0"> <!-- nameCol is 0--> + <filter type="multiple_splitter" column="0" separator=","/> + <filter type="column_strip" column="0"/> <!-- get rid of all external whitespace --> + <filter type="string_function" column="0" name="lower" /> + <filter type="param_value" column="0" value="^c\d{1,}$" compare="re_search" keep="True"/> + <filter type="column_strip" column="0" strip="c"/> <!-- get rid of c's --> + <filter type="insert_column" value="1" iterate="True" column="0"/> + <filter type="boolean" column="1" cast="int" /> + <filter type="metadata_value" ref="input" name="nameCol" column="1" /> + </option> + </action> + + <action type="metadata" name="strandCol" default="0"> + <option type="from_param" name="list" column="0" offset="0"> <!-- strandCol is 0--> + <filter type="multiple_splitter" column="0" separator=","/> + <filter type="column_strip" column="0"/> <!-- get rid of all external whitespace --> + <filter type="string_function" column="0" name="lower" /> + <filter type="param_value" column="0" value="^c\d{1,}$" compare="re_search" keep="True"/> + <filter type="column_strip" column="0" strip="c"/> <!-- get rid of c's --> + <filter type="insert_column" value="1" iterate="True" column="0"/> + <filter type="boolean" column="1" cast="int" /> + <filter type="metadata_value" ref="input" name="strandCol" column="1" /> + </option> + </action> + </when> + </conditional> + </when> + </conditional> + </actions> + </data> + </outputs> + <tests> + <test> + <param name="input" value="cut1.txt"/> + <param name="list" value="1,3,4"/> + <param name="delimiter" value=""/> + <output name="output" file="cut_results1.txt"/> + </test> + <test> + <param name="input" value="cut1.txt"/> + <param name="list" value="2" /> + <param name="delimiter" value="" /> + <param name="complement" value="--complement" /> + <output name="output" file="cut_results2.txt"/> + </test> + <test> + <param name="input" value="cut1.txt"/> + <param name="list" value="-3" /> + <param name="delimiter" value="" /> + <param name="cut_element" value="-c" /> + <output name="output" file="cut_results3.txt"/> + </test> + </tests> + <help> +<![CDATA[ +**What it does** + +This tool runs the **cut** unix command, which extract or delete columns from a file. + +----- + +Field List Example: + +**1,3,7** - Cut specific fields/characters. + +**3-** - Cut from the third field/character to the end of the line. + +**2-5** - Cut from the second to the fifth field/character. + +**-8** - Cut from the first to the eight field/characters. + + +Input Example:: + + fruit color price weight + apple red 1.4 0.5 + orange orange 1.5 0.3 + banana yellow 0.9 0.3 + + +Output Example ( **Keeping fields 1,3,4** ):: + + fruit price weight + apple 1.4 0.5 + orange 1.5 0.3 + banana 0.9 0.3 + +Output Example ( **Discarding field 2** ):: + + fruit price weight + apple 1.4 0.5 + orange 1.5 0.3 + banana 0.9 0.3 + +Output Example ( **Keeping 3 characters** ):: + + fru + app + ora + ban + +@REFERENCES@ +]]> + </help> + <expand macro="citations" /> +</tool> diff --git a/janis_core/tests/data/galaxy/text_processing-d698c222f354/easyjoin b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/easyjoin similarity index 100% rename from janis_core/tests/data/galaxy/text_processing-d698c222f354/easyjoin rename to janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/easyjoin diff --git a/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/easyjoin.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/easyjoin.xml new file mode 100644 index 000000000..3d90e5b19 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/easyjoin.xml @@ -0,0 +1,116 @@ +<tool id="tp_easyjoin_tool" name="Join" version="@BASE_VERSION@.1"> + <description>two files</description> + <macros> + <import>macros.xml</import> + </macros> + <expand macro="requirements"> + <requirement type="package" version="5.22.0.1">perl</requirement> + </expand> + <version_command>join --version | head -n 1</version_command> + <command> +<![CDATA[ + cp $__tool_directory__/sort-header ./ && + chmod +x sort-header && + perl $__tool_directory__/easyjoin + $jointype + -t ' ' + $header + -e '$empty_string_filler' + -o auto + $ignore_case + -1 '$column1' + -2 '$column2' + "$infile1" + "$infile2" + > '$output' +]]> + </command> + <inputs> + <param name="infile1" format="tabular" type="data" label="1st file" /> + <param name="column1" label="Column to use from 1st file" type="data_column" data_ref="infile1" accept_default="true" /> + + <param name="infile2" format="txt" type="data" label="2nd File" /> + <param name="column2" label="Column to use from 2nd file" type="data_column" data_ref="infile2" accept_default="true" /> + + <param name="jointype" type="select" label="Output lines appearing in"> + <option value=" " selected="True">Both 1st &amp; 2nd file.</option> + <option value="-v 1">1st but not in 2nd file. (-v 1)</option> + <option value="-v 2">2nd but not in 1st file. (-v 2)</option> + <option value="-a 1">Both 1st &amp; 2nd file, plus unpairable lines from 1st file. (-a 1)</option> + <option value="-a 2">Both 1st &amp; 2nd file, plus unpairable lines from 2st file. (-a 2)</option> + <option value="-a 1 -a 2">All lines [-a 1 -a 2]</option> + <option value="-v 1 -v 2">All unpairable lines [-v 1 -v 2]</option> + </param> + + <param name="header" type="boolean" checked="false" truevalue="--header" falsevalue="" + label="First line is a header line" help="Use if first line contains column headers. It will not be sorted." /> + <param name="ignore_case" type="boolean" checked="false" truevalue="-i" falsevalue="" + label="Ignore case" help="Sort and Join key column values regardless of upper/lower case letters." /> + <param name="empty_string_filler" type="text" value="0" label="Value to put in unpaired (empty) fields"> + <sanitizer> + <valid initial="string.printable"> + <remove value="&apos;"/> + </valid> + </sanitizer> + </param> + </inputs> + <outputs> + <data name="output" format_source="infile1" metadata_source="infile1"/> + </outputs> + <tests> + <test> + <param name="infile1" value="easyjoin1.tabular" /> + <param name="column1" value="1" /> + <param name="infile2" value="easyjoin2.tabular" /> + <param name="column2" value="1" /> + <param name="header" value="True" /> + <param name="jointype" value="-a 1 -a 2" /> + <output name="output" file="easyjoin_result1.tabular" /> + </test> + </tests> + <help> +<![CDATA[ +**What it does** + +This tool joins two tabular files based on a common key column. + +----- + +**Example** + +**First file**:: + + Fruit Color + Apple red + Banana yellow + Orange orange + Melon green + +**Second File**:: + + Fruit Price + Orange 7 + Avocado 8 + Apple 4 + Banana 3 + +**Joining** both files, using **key column 1** and a **header line**, will return:: + + Fruit Color Price + Apple red 4 + Avocado . 8 + Banana yellow 3 + Melon green . + Orange orange 7 + +.. class:: infomark + + * Input files need not be sorted. + * The header line (**Fruit Color Price**) was joined and kept as first line. + * Missing values ( Avocado's color, missing from the first file ) are replaced with a period character. + +@REFERENCES@ +]]> + </help> + <expand macro="citations" /> +</tool> diff --git a/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/find_and_replace b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/find_and_replace new file mode 100644 index 000000000..d0389d039 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/find_and_replace @@ -0,0 +1,202 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Getopt::Std; + +sub parse_command_line(); +sub build_regex_string(); +sub usage(); + +my $input_file ; +my $output_file; +my $find_pattern ; +my $replace_pattern ; +my $find_complete_words ; +my $find_pattern_is_regex ; +my $find_in_specific_column ; +my $find_case_insensitive ; +my $replace_global ; +my $skip_first_line ; + + +## +## Program Start +## +usage() if @ARGV<2; +parse_command_line(); +my $regex_string = build_regex_string() ; + +# Allow first line to pass without filtering? +if ( $skip_first_line ) { + my $line = <$input_file>; + print $output_file $line ; +} + + +## +## Main loop +## + +## I LOVE PERL (and hate it, at the same time...) +## +## So what's going on with the self-compiling perl code? +## +## 1. The program gets the find-pattern and the replace-pattern from the user (as strings). +## 2. If both the find-pattern and replace-pattern are simple strings (not regex), +## it would be possible to pre-compile a regex (with qr//) and use it in a 's///' +## 3. If the find-pattern is a regex but the replace-pattern is a simple text string (with out back-references) +## it is still possible to pre-compile the regex and use it in a 's///' +## However, +## 4. If the replace-pattern contains back-references, pre-compiling is not possible. +## (in perl, you can't precompile a substitute regex). +## See these examples: +## http://www.perlmonks.org/?node_id=84420 +## http://stackoverflow.com/questions/125171/passing-a-regex-substitution-as-a-variable-in-perl +## +## The solution: +## we build the regex string as valid perl code (in 'build_regex()', stored in $regex_string ), +## Then eval() a new perl code that contains the substitution regex as inlined code. +## Gotta love perl! + +my $perl_program ; +if ( $find_in_specific_column ) { + # Find & replace in specific column + + $perl_program = <<EOF; + while ( <STDIN> ) { + chomp ; + my \@columns = split ; + + #not enough columns in this line - skip it + next if ( \@columns < $find_in_specific_column ) ; + + \$columns [ $find_in_specific_column - 1 ] =~ $regex_string ; + + print STDOUT join("\t", \@columns), "\n" ; + } +EOF + +} else { + # Find & replace the entire line + $perl_program = <<EOF; + while ( <STDIN> ) { + $regex_string ; + print STDOUT; + } +EOF +} + + +# The dynamic perl code reads from STDIN and writes to STDOUT, +# so connect these handles (if the user didn't specifiy input / output +# file names, these might be already be STDIN/OUT, so the whole could be a no-op). +*STDIN = $input_file ; +*STDOUT = $output_file ; +eval $perl_program ; + + +## +## Program end +## + + +sub parse_command_line() +{ + my %opts ; + getopts('grsiwc:o:', \%opts) or die "$0: Invalid option specified\n"; + + die "$0: missing Find-Pattern argument\n" if (@ARGV==0); + $find_pattern = $ARGV[0]; + die "$0: missing Replace-Pattern argument\n" if (@ARGV==1); + $replace_pattern = $ARGV[1]; + + $find_complete_words = ( exists $opts{w} ) ; + $find_case_insensitive = ( exists $opts{i} ) ; + $skip_first_line = ( exists $opts{s} ) ; + $find_pattern_is_regex = ( exists $opts{r} ) ; + $replace_global = ( exists $opts{g} ) ; + + # Search in specific column ? + if ( defined $opts{c} ) { + $find_in_specific_column = $opts{c}; + + die "$0: invalid column number ($find_in_specific_column).\n" + unless $find_in_specific_column =~ /^\d+$/ ; + + die "$0: invalid column number ($find_in_specific_column).\n" + if $find_in_specific_column <= 0; + } + else { + $find_in_specific_column = 0 ; + } + + # Output File specified (instead of STDOUT) ? + if ( defined $opts{o} ) { + my $filename = $opts{o}; + open $output_file, ">$filename" or die "$0: Failed to create output file '$filename': $!\n" ; + } else { + $output_file = *STDOUT ; + } + + + # Input file Specified (instead of STDIN) ? + if ( @ARGV>2 ) { + my $filename = $ARGV[2]; + open $input_file, "<$filename" or die "$0: Failed to open input file '$filename': $!\n" ; + } else { + $input_file = *STDIN; + } +} + +sub build_regex_string() +{ + my $find_string ; + my $replace_string ; + + if ( $find_pattern_is_regex ) { + $find_string = $find_pattern ; + $replace_string = $replace_pattern ; + } else { + $find_string = quotemeta $find_pattern ; + $replace_string = quotemeta $replace_pattern; + } + + if ( $find_complete_words ) { + $find_string = "\\b($find_string)\\b"; + } + + my $regex_string = "s/$find_string/$replace_string/"; + + $regex_string .= "i" if ( $find_case_insensitive ); + $regex_string .= "g" if ( $replace_global ) ; + + + return $regex_string; +} + +sub usage() +{ +print <<EOF; + +Find and Replace +Copyright (C) 2009 - by A. Gordon ( gordon at cshl dot edu ) + +Usage: $0 [-o OUTPUT] [-g] [-r] [-w] [-i] [-c N] [-l] FIND-PATTERN REPLACE-PATTERN [INPUT-FILE] + + -g - Global replace - replace all occurences in line/column. + Default - replace just the first instance. + -w - search for complete words (not partial sub-strings). + -i - case insensitive search. + -c N - check only column N, instead of entire line (line split by whitespace). + -l - skip first line (don't replace anything in it) + -r - FIND-PATTERN and REPLACE-PATTERN are perl regular expression, + usable inside a 's///' statement. + By default, they are used as verbatim text strings. + -o OUT - specify output file (default = STDOUT). + INPUT-FILE - (optional) read from file (default = from STDIN). + + +EOF + + exit; +} diff --git a/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/find_and_replace.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/find_and_replace.xml new file mode 100644 index 000000000..b167f03e4 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/find_and_replace.xml @@ -0,0 +1,182 @@ +<tool id="tp_find_and_replace" name="Replace" version="@BASE_VERSION@.1"> + <description>parts of text</description> + <macros> + <import>macros.xml</import> + </macros> + <requirements> + <requirement type="package" version="5.22.0.1">perl</requirement> + </requirements> + <command> +<![CDATA[ + perl '$__tool_directory__/find_and_replace' + #if $searchwhere.searchwhere_select == "column": + -c $searchwhere.column + #end if + -o $outfile + $caseinsensitive + $wholewords + $skip_first_line + $is_regex + '$find_pattern' + '$replace_pattern' + '$infile' +]]> + </command> + <inputs> + <param name="infile" format="txt" type="data" label="File to process" /> + <param name="find_pattern" type="text" label="Find pattern" help="Use simple text, or a valid regular expression (without backslashes // ) " > + <sanitizer> + <valid initial="string.printable"> + <remove value="&apos;"/> + </valid> + </sanitizer> + </param> + <param name="replace_pattern" type="text" label="Replace with" + help="Use simple text, or $&amp; (dollar-ampersand) and $1 $2 $3 to refer to matched text. See examples below." > + <sanitizer> + <valid initial="string.printable"> + <remove value="&apos;"/> + </valid> + </sanitizer> + </param> + <param name="is_regex" type="boolean" checked="false" truevalue="-r" falsevalue="" + label="Find-Pattern is a regular expression" help="see help section for details." /> + + <param name="caseinsensitive" type="boolean" checked="false" truevalue="-i" falsevalue="" + label="Case-Insensitive search" help="" /> + + <param name="wholewords" type="boolean" checked="false" truevalue="-w" falsevalue="" + label="Find whole-words" help="ignore partial matches (e.g. 'apple' will not match 'snapple')" /> + + <param name="skip_first_line" type="boolean" checked="false" truevalue="-s" falsevalue="" + label="Ignore first line" help="Select this option if the first line contains column headers. Text in the line will not be replaced. " /> + + <conditional name="searchwhere"> + <param name="searchwhere_select" type="select" label="Find and Replace text in"> + <option value="line" selected="true">entire line</option> + <option value="column">specific column</option> + </param> + <when value="line" /> + <when value="column"> + <param name="column" label="in column" type="data_column" data_ref="infile" accept_default="true" /> + </when> + </conditional> + </inputs> + <outputs> + <data format_source="infile" name="outfile" metadata_source="infile" /> + </outputs> + <tests> + <test> + <param name="infile" value="find_and_replace1.txt" /> + <param name="find_pattern" value="day" /> + <param name="replace_pattern" value="great day" /> + <param name="is_regex" value="False" /> + <param name="caseinsensitive" value="False" /> + <param name="wholewords" value="True" /> + <output name="outfile" file="find_and_replace_results1.txt" /> + </test> + <test> + <param name="infile" value="find_and_replace2.txt" /> + <param name="find_pattern" value="^chr" /> + <param name="replace_pattern" value="" /> + <param name="is_regex" value="True" /> + <param name="caseinsensitive" value="False" /> + <param name="wholewords" value="False" /> + <param name="searchwhere_select" value="column" /> + <param name="column" value="3" /> + <output name="outfile" file="find_and_replace_results2.txt" /> + </test> + </tests> + <help> +<![CDATA[ +**What it does** + +This tool finds $ replaces text in an input dataset. + +.. class:: infomark + +The **pattern to find** can be a simple text string, or a perl **regular expression** string (depending on *pattern is a regex* check-box). + +.. class:: infomark + +When using regular expressions, the **replace pattern** can contain back-references ( e.g. \\1 ) + +.. class:: infomark + +This tool uses Perl regular expression syntax. + +----- + +**Examples of *regular-expression* Find Patterns** + +- **HELLO** The word 'HELLO' (case sensitive). +- **AG.T** The letters A,G followed by any single character, followed by the letter T. +- **A{4,}** Four or more consecutive A's. +- **chr2[012]\\t** The words 'chr20' or 'chr21' or 'chr22' followed by a tab character. +- **hsa-mir-([^ ]+)** The text 'hsa-mir-' followed by one-or-more non-space characters. When using parenthesis, the matched content of the parenthesis can be accessed with **\1** in the **replace** pattern. + + +**Examples of Replace Patterns** + +- **WORLD** The word 'WORLD' will be placed whereever the find pattern was found. +- **FOO-$&-BAR** Each time the find pattern is found, it will be surrounded with 'FOO-' at the begining and '-BAR' at the end. **$&** (dollar-ampersand) represents the matched find pattern. +- **$1** The text which matched the first parenthesis in the Find Pattern. + + +----- + +**Example 1** + +**Find Pattern:** HELLO +**Replace Pattern:** WORLD +**Regular Expression:** no +**Replace what:** entire line + +Every time the word HELLO is found, it will be replaced with the word WORLD. + +----- + +**Example 2** + +**Find Pattern:** ^chr +**Replace Pattern:** (empty) +**Regular Expression:** yes +**Replace what:** column 11 + +If column 11 (of every line) begins with ther letters 'chr', they will be removed. Effectively, it'll turn "chr4" into "4" and "chrXHet" into "XHet" + + +----- + +**Perl's Regular Expression Syntax** + +The Find & Replace tool searches the data for lines containing or not containing a match to the given pattern. A Regular Expression is a pattern descibing a certain amount of text. + +- **( ) { } [ ] . * ? + \\ ^ $** are all special characters. **\\** can be used to "escape" a special character, allowing that special character to be searched for. +- **^** matches the beginning of a string(but not an internal line). +- **(** .. **)** groups a particular pattern. +- **{** n or n, or n,m **}** specifies an expected number of repetitions of the preceding pattern. + + - **{n}** The preceding item is matched exactly n times. + - **{n,}** The preceding item ismatched n or more times. + - **{n,m}** The preceding item is matched at least n times but not more than m times. + +- **[** ... **]** creates a character class. Within the brackets, single characters can be placed. A dash (-) may be used to indicate a range such as **a-z**. +- **.** Matches any single character except a newline. +- ***** The preceding item will be matched zero or more times. +- **?** The preceding item is optional and matched at most once. +- **+** The preceding item will be matched one or more times. +- **^** has two meaning: + - matches the beginning of a line or string. + - indicates negation in a character class. For example, [^...] matches every character except the ones inside brackets. +- **$** matches the end of a line or string. +- **\\|** Separates alternate possibilities. +- **\\d** matches a single digit +- **\\w** matches a single letter or digit or an underscore. +- **\\s** matches a single white-space (space or tabs). + +@REFERENCES@ +]]> + </help> + <expand macro="citations" /> +</tool> diff --git a/janis_core/tests/data/galaxy/text_processing-d698c222f354/grep.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/grep.xml similarity index 100% rename from janis_core/tests/data/galaxy/text_processing-d698c222f354/grep.xml rename to janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/grep.xml diff --git a/janis_core/tests/data/galaxy/text_processing-d698c222f354/head.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/head.xml similarity index 100% rename from janis_core/tests/data/galaxy/text_processing-d698c222f354/head.xml rename to janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/head.xml diff --git a/janis_core/tests/data/galaxy/text_processing-d698c222f354/macros.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/macros.xml similarity index 100% rename from janis_core/tests/data/galaxy/text_processing-d698c222f354/macros.xml rename to janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/macros.xml diff --git a/janis_core/tests/data/galaxy/text_processing-d698c222f354/multijoin b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/multijoin similarity index 100% rename from janis_core/tests/data/galaxy/text_processing-d698c222f354/multijoin rename to janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/multijoin diff --git a/janis_core/tests/data/galaxy/text_processing-d698c222f354/multijoin.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/multijoin.xml similarity index 100% rename from janis_core/tests/data/galaxy/text_processing-d698c222f354/multijoin.xml rename to janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/multijoin.xml diff --git a/janis_core/tests/data/galaxy/text_processing-d698c222f354/readme.rst b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/readme.rst similarity index 100% rename from janis_core/tests/data/galaxy/text_processing-d698c222f354/readme.rst rename to janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/readme.rst diff --git a/janis_core/tests/data/galaxy/text_processing-d698c222f354/recurring_lines.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/recurring_lines.xml similarity index 100% rename from janis_core/tests/data/galaxy/text_processing-d698c222f354/recurring_lines.xml rename to janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/recurring_lines.xml diff --git a/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/replace_text_in_column.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/replace_text_in_column.xml new file mode 100644 index 000000000..6e30d36b5 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/replace_text_in_column.xml @@ -0,0 +1,137 @@ +<tool id="tp_replace_in_column" name="Replace Text" version="@BASE_VERSION@.2"> + <description>in a specific column</description> + <macros> + <import>macros.xml</import> + </macros> + <requirements> + <requirement type="package" version="4.2.0">gawk</requirement> + </requirements> + <version_command>awk --version | head -n 1</version_command> + <command> +<![CDATA[ + awk + -v OFS="\t" + -v FS="\t" + --re-interval + --sandbox '{ \$$column = gensub( /$find_pattern/, "$replace_pattern", "g", \$$column ) ; print \$0 ; }' + "$infile" + > "$outfile" +]]> + </command> + <inputs> + <param format="tabular" name="infile" type="data" label="File to process" /> + <param name="column" label="in column" type="data_column" data_ref="infile" accept_default="true" /> + + <param name="find_pattern" type="text" label="Find pattern" help="Use simple text, or a valid regular expression (without backslashes // ) " > + <sanitizer> + <valid initial="string.printable"> + <remove value="&apos;"/> + </valid> + </sanitizer> + </param> + <param name="replace_pattern" type="text" label="Replace with" help="Use simple text, or &amp; (ampersand) and \\1 \\2 \\3 to refer to matched text. See examples below." > + <sanitizer> + <valid initial="string.printable"> + <remove value="&apos;"/> + </valid> + </sanitizer> + </param> + </inputs> + <outputs> + <data name="outfile" format_source="infile" metadata_source="infile" /> + </outputs> + <tests> + <test> + <param name="infile" value="replace_text_in_column1.txt" ftype="tabular" /> + <param name="column" value="4" /> + <param name="find_pattern" value=".+_(R.)" /> + <param name="replace_pattern" value="\\1" /> + <output name="outfile" file="replace_text_in_column_results1.txt" /> + </test> + </tests> + <help> +<![CDATA[ +**What it does** + +This tool performs find & replace operation on a specified column in a given file. + +.. class:: infomark + +The **pattern to find** uses the **extended regular** expression syntax (same as running 'awk --re-interval'). + +.. class:: infomark + +**TIP:** If you need more complex patterns, use the *awk* tool. + +----- + + +**Examples of Find Patterns** + +- **HELLO** The word 'HELLO' (case sensitive). +- **AG.T** The letters A,G followed by any single character, followed by the letter T. +- **A{4,}** Four or more consecutive A's. +- **chr2[012]\\t** The words 'chr20' or 'chr21' or 'chr22' followed by a tab character. +- **hsa-mir-([^ ]+)** The text 'hsa-mir-' followed by one-or-more non-space characters. When using parenthesis, the matched content of the parenthesis can be accessed with **\1** in the **replace** pattern. + + +**Examples of Replace Patterns** + +- **WORLD** The word 'WORLD' will be placed whereever the find pattern was found. +- **FOO-&-BAR** Each time the find pattern is found, it will be surrounded with 'FOO-' at the begining and '-BAR' at the end. **&** (ampersand) represents the matched find pattern. +- **\\1** The text which matched the first parenthesis in the Find Pattern. + + +----- + +**Example 1** + +**Find Pattern:** HELLO +**Replace Pattern:** WORLD + +Every time the word HELLO is found, it will be replaced with the word WORLD. This operation affects only the selected column. + +----- + +**Example 2** + +**Find Pattern:** ^(.{4}) +**Replace Pattern:** &\\t + +Find the first four characters in each line, and replace them with the same text, followed by a tab character. In practice - this will split the first line into two columns. This operation affects only the selected column. + + +----- + +**Extened Regular Expression Syntax** + +The select tool searches the data for lines containing or not containing a match to the given pattern. A Regular Expression is a pattern descibing a certain amount of text. + +- **( ) { } [ ] . * ? + \ ^ $** are all special characters. **\\** can be used to "escape" a special character, allowing that special character to be searched for. +- **^** matches the beginning of a string(but not an internal line). +- **(** .. **)** groups a particular pattern. +- **{** n or n, or n,m **}** specifies an expected number of repetitions of the preceding pattern. + + - **{n}** The preceding item is matched exactly n times. + - **{n,}** The preceding item ismatched n or more times. + - **{n,m}** The preceding item is matched at least n times but not more than m times. + +- **[** ... **]** creates a character class. Within the brackets, single characters can be placed. A dash (-) may be used to indicate a range such as **a-z**. +- **.** Matches any single character except a newline. +- ***** The preceding item will be matched zero or more times. +- **?** The preceding item is optional and matched at most once. +- **+** The preceding item will be matched one or more times. +- **^** has two meaning: + - matches the beginning of a line or string. + - indicates negation in a character class. For example, [^...] matches every character except the ones inside brackets. +- **$** matches the end of a line or string. +- **\|** Separates alternate possibilities. + + +**Note**: AWK uses extended regular expression syntax, not Perl syntax. **\\d**, **\\w**, **\\s** etc. are **not** supported. + +@REFERENCES@ +]]> + </help> + <expand macro="citations" /> +</tool> diff --git a/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/replace_text_in_line.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/replace_text_in_line.xml new file mode 100644 index 000000000..95fd18e97 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/replace_text_in_line.xml @@ -0,0 +1,146 @@ +<tool id="tp_replace_in_line" name="Replace Text" version="@BASE_VERSION@.1"> + <description>in entire line</description> + <macros> + <import>macros.xml</import> + </macros> + <requirements> + <requirement type="package" version="4.4">sed</requirement> + </requirements> + <version_command>sed --version | head -n 1</version_command> + <command> +<![CDATA[ + sed + -r + --sandbox + 's/$find_pattern/$replace_pattern/g' + '$infile' + > '$outfile' +]]> + + </command> + <inputs> + <param format="txt" name="infile" type="data" label="File to process" /> + <param name="find_pattern" type="text" size="20" label="Find pattern" help="Use simple text, or a valid regular expression (without backslashes // ) " > + <sanitizer> + <valid initial="string.printable"> + <remove value="&#39;"/> + <remove value="/"/> + </valid> + <mapping initial="none"> + <add source="&#39;" target="&#39;&quot;&#39;&quot;&#39;" /> + <add source="/" target="\/"/> + </mapping> + </sanitizer> + </param> + <param name="replace_pattern" type="text" size="20" label="Replace with:" help="Use simple text, or &amp; (ampersand) and \\1 \\2 \\3 to refer to matched text. See examples below." > + <sanitizer> + <valid initial="string.printable"> + <remove value="&#39;"/> + <remove value="/"/> + </valid> + <mapping initial="none"> + <add source="&#39;" target="&#39;&quot;&#39;&quot;&#39;" /> + <add source="/" target="\/"/> + </mapping> + + </sanitizer> + + </param> + </inputs> + <outputs> + <data name="outfile" format_source="infile" metadata_source="infile"/> + </outputs> + <tests> + <test> + <param name="infile" value="replace_text_in_line1.txt" /> + <param name="find_pattern" value="CTC." /> + <param name="replace_pattern" value="FOOBAR" /> + <output name="outfile" file="replace_text_in_line_results1.txt" /> + </test> + </tests> + <help> +<![CDATA[ +**What it does** + +This tool performs find & replace operation on a specified file. + +.. class:: infomark + +The **pattern to find** uses the **extended regular** expression syntax (same as running 'sed -r'). + +.. class:: infomark + +**TIP:** If you need more complex patterns, use the *sed* tool. + +----- + +**Examples of Find Patterns** + +- **HELLO** The word 'HELLO' (case sensitive). +- **AG.T** The letters A,G followed by any single character, followed by the letter T. +- **A{4,}** Four or more consecutive A's. +- **chr2[012]\\t** The words 'chr20' or 'chr21' or 'chr22' followed by a tab character. +- **hsa-mir-([^ ]+)** The text 'hsa-mir-' followed by one-or-more non-space characters. When using parenthesis, the matched content of the parenthesis can be accessed with **\1** in the **replace** pattern. + + +**Examples of Replace Patterns** + +- **WORLD** The word 'WORLD' will be placed whereever the find pattern was found. +- **FOO-&-BAR** Each time the find pattern is found, it will be surrounded with 'FOO-' at the beginning and '-BAR' at the end. **&** (ampersand) represents the matched find pattern. +- **\\1** The text which matched the first parenthesis in the Find Pattern. + + +----- + +**Example 1** + +**Find Pattern:** HELLO +**Replace Pattern:** WORLD + +Every time the word HELLO is found, it will be replaced with the word WORLD. + + +----- + +**Example 2** + +**Find Pattern:** ^(.{4}) +**Replace Pattern:** &\\t + +Find the first four characters in each line, and replace them with the same text, followed by a tab character. In practice - this will split the first line into two columns. + + +----- + +**Extened Regular Expression Syntax** + +The select tool searches the data for lines containing or not containing a match to the given pattern. A Regular Expression is a pattern descibing a certain amount of text. + +- **( ) { } [ ] . * ? + \ ^ $** are all special characters. **\\** can be used to "escape" a special character, allowing that special character to be searched for. +- **^** matches the beginning of a string(but not an internal line). +- **(** .. **)** groups a particular pattern. +- **{** n or n, or n,m **}** specifies an expected number of repetitions of the preceding pattern. + + - **{n}** The preceding item is matched exactly n times. + - **{n,}** The preceding item ismatched n or more times. + - **{n,m}** The preceding item is matched at least n times but not more than m times. + +- **[** ... **]** creates a character class. Within the brackets, single characters can be placed. A dash (-) may be used to indicate a range such as **a-z**. +- **.** Matches any single character except a newline. +- ***** The preceding item will be matched zero or more times. +- **?** The preceding item is optional and matched at most once. +- **+** The preceding item will be matched one or more times. +- **^** has two meaning: + - matches the beginning of a line or string. + - indicates negation in a character class. For example, [^...] matches every character except the ones inside brackets. +- **$** matches the end of a line or string. +- **\|** Separates alternate possibilities. + + +**Note**: SED uses extended regular expression syntax, not Perl syntax. **\\d**, **\\w**, **\\s** etc. are **not** supported. + +@REFERENCES@ +]]> + </help> + <expand macro="citations" /> +</tool> diff --git a/janis_core/tests/data/galaxy/text_processing-d698c222f354/sed.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/sed.xml similarity index 100% rename from janis_core/tests/data/galaxy/text_processing-d698c222f354/sed.xml rename to janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/sed.xml diff --git a/janis_core/tests/data/galaxy/text_processing-d698c222f354/sort-header b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/sort-header similarity index 100% rename from janis_core/tests/data/galaxy/text_processing-d698c222f354/sort-header rename to janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/sort-header diff --git a/janis_core/tests/data/galaxy/text_processing-d698c222f354/sort.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/sort.xml similarity index 100% rename from janis_core/tests/data/galaxy/text_processing-d698c222f354/sort.xml rename to janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/sort.xml diff --git a/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/sort_rows.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/sort_rows.xml new file mode 100644 index 000000000..ce155da17 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/sort_rows.xml @@ -0,0 +1,38 @@ +<tool id="tp_sort_rows" name="Sort a row" version="@BASE_VERSION@.0"> + <description>according to their columns</description> + <macros> + <import>macros.xml</import> + </macros> + <command> +<![CDATA[ + python -c 'for line in ( "\t".join(sorted(line.strip().split("\t"))) for line in open("$infile") ): print line' > $outfile +]]> + </command> + <inputs> + <param format="tabular" name="infile" type="data" label="Tabular file that should be sorted"/> + </inputs> + <outputs> + <data name="outfile" format_source="infile" metadata_source="infile"/> + </outputs> + <options sanitize="False"/> + <tests> + <test> + <param name="infile" value="sort_rows1.tabular" ftype="tabular" /> + <output name="outfile" file="sort_rows_results1.bed"/> + </test> + </tests> + <help> +<![CDATA[ +.. class:: infomark + +**TIP:** If your data is not TAB delimited, use *Text Manipulation->Convert* + +**What it does** + +That tool sorts each row in a TAB separated file, according to their columns. In other words: It is a sorted reordering of all columns. + +@REFERENCES@ +]]> + </help> + <expand macro="citations" /> +</tool> diff --git a/janis_core/tests/data/galaxy/text_processing-d698c222f354/sorted_uniq.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/sorted_uniq.xml similarity index 100% rename from janis_core/tests/data/galaxy/text_processing-d698c222f354/sorted_uniq.xml rename to janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/sorted_uniq.xml diff --git a/janis_core/tests/data/galaxy/text_processing-d698c222f354/tac.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/tac.xml similarity index 100% rename from janis_core/tests/data/galaxy/text_processing-d698c222f354/tac.xml rename to janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/tac.xml diff --git a/janis_core/tests/data/galaxy/text_processing-d698c222f354/tail.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/tail.xml similarity index 100% rename from janis_core/tests/data/galaxy/text_processing-d698c222f354/tail.xml rename to janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/tail.xml diff --git a/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/unfold_column.py b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/unfold_column.py new file mode 100644 index 000000000..4bfbec29a --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/unfold_column.py @@ -0,0 +1,19 @@ +#!/usr/bin/env python + +import sys + +out = open(sys.argv[4], 'w+') + +sep = sys.argv[3] +# un-sanitize Galaxy inputs +if sep == 'X': + sep = ';' + +with open(sys.argv[1]) as handle: + for line in handle: + cols = line.split('\t') + unfolding_column = int(sys.argv[2]) - 1 + column_content = cols[ unfolding_column ] + for elem in column_content.split( sep ): + out.write( '\t'.join( cols[:unfolding_column] + [elem] + cols[unfolding_column+1:]) ) +out.close() diff --git a/janis_core/tests/data/galaxy/text_processing-d698c222f354/unfold_column.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/unfold_column.xml similarity index 100% rename from janis_core/tests/data/galaxy/text_processing-d698c222f354/unfold_column.xml rename to janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/unfold_column.xml diff --git a/janis_core/tests/data/galaxy/text_processing-d698c222f354/unsorted_uniq.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/unsorted_uniq.xml similarity index 100% rename from janis_core/tests/data/galaxy/text_processing-d698c222f354/unsorted_uniq.xml rename to janis_core/tests/data/galaxy/wrappers/text_processing-74a8bef53a00/unsorted_uniq.xml diff --git a/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/ansi2html.sh b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/ansi2html.sh new file mode 100755 index 000000000..0b02d5708 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/ansi2html.sh @@ -0,0 +1,331 @@ +#!/bin/sh + +# Convert ANSI (terminal) colours and attributes to HTML + +# Author: +# http://www.pixelbeat.org/docs/terminal_colours/ +# Examples: +# ls -l --color=always | ansi2html.sh > ls.html +# git show --color | ansi2html.sh > last_change.html +# Generally one can use the `script` util to capture full terminal output. +# Changes: +# V0.1, 24 Apr 2008, Initial release +# V0.2, 01 Jan 2009, Phil Harnish <philharnish@gmail.com> +# Support `git diff --color` output by +# matching ANSI codes that specify only +# bold or background colour. +# P@draigBrady.com +# Support `ls --color` output by stripping +# redundant leading 0s from ANSI codes. +# Support `grep --color=always` by stripping +# unhandled ANSI codes (specifically ^[[K). +# V0.3, 20 Mar 2009, http://eexpress.blog.ubuntu.org.cn/ +# Remove cat -v usage which mangled non ascii input. +# Cleanup regular expressions used. +# Support other attributes like reverse, ... +# P@draigBrady.com +# Correctly nest <span> tags (even across lines). +# Add a command line option to use a dark background. +# Strip more terminal control codes. +# V0.4, 17 Sep 2009, P@draigBrady.com +# Handle codes with combined attributes and color. +# Handle isolated <bold> attributes with css. +# Strip more terminal control codes. +# V0.12, 12 Jul 2011 +# http://github.com/pixelb/scripts/commits/master/scripts/ansi2html.sh + +if [ "$1" = "--version" ]; then + echo "0.12" && exit +fi + +if [ "$1" = "--help" ]; then + echo "This utility converts ANSI codes in data passed to stdin" >&2 + echo "It has 2 optional parameters:" >&2 + echo " --bg=dark --palette=linux|solarized|tango|xterm" >&2 + echo "E.g.: ls -l --color=always | ansi2html.sh --bg=dark > ls.html" >&2 + exit +fi + +[ "$1" = "--bg=dark" ] && { dark_bg=yes; shift; } + +if [ "$1" = "--palette=solarized" ]; then + # See http://ethanschoonover.com/solarized + P0=073642; P1=D30102; P2=859900; P3=B58900; + P4=268BD2; P5=D33682; P6=2AA198; P7=EEE8D5; + P8=002B36; P9=CB4B16; P10=586E75; P11=657B83; + P12=839496; P13=6C71C4; P14=93A1A1; P15=FDF6E3; + shift; +elif [ "$1" = "--palette=solarized-xterm" ]; then + # Above mapped onto the xterm 256 color palette + P0=262626; P1=AF0000; P2=5F8700; P3=AF8700; + P4=0087FF; P5=AF005F; P6=00AFAF; P7=E4E4E4; + P8=1C1C1C; P9=D75F00; P10=585858; P11=626262; + P12=808080; P13=5F5FAF; P14=8A8A8A; P15=FFFFD7; + shift; +elif [ "$1" = "--palette=tango" ]; then + # Gnome default + P0=000000; P1=CC0000; P2=4E9A06; P3=C4A000; + P4=3465A4; P5=75507B; P6=06989A; P7=D3D7CF; + P8=555753; P9=EF2929; P10=8AE234; P11=FCE94F; + P12=729FCF; P13=AD7FA8; P14=34E2E2; P15=EEEEEC; + shift; +elif [ "$1" = "--palette=xterm" ]; then + P0=000000; P1=CD0000; P2=00CD00; P3=CDCD00; + P4=0000EE; P5=CD00CD; P6=00CDCD; P7=E5E5E5; + P8=7F7F7F; P9=FF0000; P10=00FF00; P11=FFFF00; + P12=5C5CFF; P13=FF00FF; P14=00FFFF; P15=FFFFFF; + shift; +else # linux console + P0=000000; P1=AA0000; P2=00AA00; P3=AA5500; + P4=0000AA; P5=AA00AA; P6=00AAAA; P7=AAAAAA; + P8=555555; P9=FF5555; P10=55FF55; P11=FFFF55; + P12=5555FF; P13=FF55FF; P14=55FFFF; P15=FFFFFF; + [ "$1" = "--palette=linux" ] && shift +fi + +[ "$1" = "--bg=dark" ] && { dark_bg=yes; shift; } + +echo -n "<html> +<head> +<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/> +<style type=\"text/css\"> +.ef0,.f0 { color: #$P0; } .eb0,.b0 { background-color: #$P0; } +.ef1,.f1 { color: #$P1; } .eb1,.b1 { background-color: #$P1; } +.ef2,.f2 { color: #$P2; } .eb2,.b2 { background-color: #$P2; } +.ef3,.f3 { color: #$P3; } .eb3,.b3 { background-color: #$P3; } +.ef4,.f4 { color: #$P4; } .eb4,.b4 { background-color: #$P4; } +.ef5,.f5 { color: #$P5; } .eb5,.b5 { background-color: #$P5; } +.ef6,.f6 { color: #$P6; } .eb6,.b6 { background-color: #$P6; } +.ef7,.f7 { color: #$P7; } .eb7,.b7 { background-color: #$P7; } +.ef8, .f0 > .bold,.bold > .f0 { color: #$P8; font-weight: normal; } +.ef9, .f1 > .bold,.bold > .f1 { color: #$P9; font-weight: normal; } +.ef10,.f2 > .bold,.bold > .f2 { color: #$P10; font-weight: normal; } +.ef11,.f3 > .bold,.bold > .f3 { color: #$P11; font-weight: normal; } +.ef12,.f4 > .bold,.bold > .f4 { color: #$P12; font-weight: normal; } +.ef13,.f5 > .bold,.bold > .f5 { color: #$P13; font-weight: normal; } +.ef14,.f6 > .bold,.bold > .f6 { color: #$P14; font-weight: normal; } +.ef15,.f7 > .bold,.bold > .f7 { color: #$P15; font-weight: normal; } +.eb8 { background-color: #$P8; } +.eb9 { background-color: #$P9; } +.eb10 { background-color: #$P10; } +.eb11 { background-color: #$P11; } +.eb12 { background-color: #$P12; } +.eb13 { background-color: #$P13; } +.eb14 { background-color: #$P14; } +.eb15 { background-color: #$P15; } +" + +# The default xterm 256 colour palette +for red in $(seq 0 5); do + for green in $(seq 0 5); do + for blue in $(seq 0 5); do + c=$((16 + ($red * 36) + ($green * 6) + $blue)) + r=$((($red * 40 + 55) * ($red > 0))) + g=$((($green * 40 + 55) * ($green > 0))) + b=$((($blue * 40 + 55) * ($blue > 0))) + printf ".ef%d { color: #%2.2x%2.2x%2.2x; } " $c $r $g $b + printf ".eb%d { background-color: #%2.2x%2.2x%2.2x; }\n" $c $r $g $b + done + done +done +for gray in $(seq 0 23); do + c=$(($gray+232)) + l=$(($gray*10 + 8)) + printf ".ef%d { color: #%2.2x%2.2x%2.2x; } " $c $l $l $l + printf ".eb%d { background-color: #%2.2x%2.2x%2.2x; }\n" $c $l $l $l +done + +echo -n ' +.f9 { color: '`[ "$dark_bg" ] && echo "#$P7;" || echo "#$P0;"`' } +.b9 { background-color: #'`[ "$dark_bg" ] && echo $P0 || echo $P15`'; } +.f9 > .bold,.bold > .f9, body.f9 > pre > .bold { + /* Bold is heavy black on white, or bright white + depending on the default background */ + color: '`[ "$dark_bg" ] && echo "#$P15;" || echo "#$P0;"`' + font-weight: '`[ "$dark_bg" ] && echo 'normal;' || echo 'bold;'`' +} +.reverse { + /* CSS doesnt support swapping fg and bg colours unfortunately, + so just hardcode something that will look OK on all backgrounds. */ + '"color: #$P0; background-color: #$P7;"' +} +.underline { text-decoration: underline; } +.line-through { text-decoration: line-through; } +.blink { text-decoration: blink; } + +</style> +</head> + +<body class="f9 b9"> +<pre> +' + +p='\x1b\[' #shortcut to match escape codes +P="\(^[^°]*\)¡$p" #expression to match prepended codes below + +# Handle various xterm control sequences. +# See /usr/share/doc/xterm-*/ctlseqs.txt +sed " +s#\x1b[^\x1b]*\x1b\\\##g # strip anything between \e and ST +s#\x1b][0-9]*;[^\a]*\a##g # strip any OSC (xterm title etc.) + +#handle carriage returns +s#^.*\r\{1,\}\([^$]\)#\1# +s#\r\$## # strip trailing \r + +# strip other non SGR escape sequences +s#[\x07]##g +s#\x1b[]>=\][0-9;]*##g +s#\x1bP+.\{5\}##g +s#${p}[0-9;?]*[^0-9;?m]##g + +#remove backspace chars and what they're backspacing over +:rm_bs +s#[^\x08]\x08##g; t rm_bs +" | + +# Normalize the input before transformation +sed " +# escape HTML +s#\&#\&amp;#g; s#>#\&gt;#g; s#<#\&lt;#g; s#\"#\&quot;#g + +# normalize SGR codes a little + +# split 256 colors out and mark so that they're not +# recognised by the following 'split combined' line +:e +s#${p}\([0-9;]\{1,\}\);\([34]8;5;[0-9]\{1,3\}\)m#${p}\1m${p}¬\2m#g; t e +s#${p}\([34]8;5;[0-9]\{1,3\}\)m#${p}¬\1m#g; + +:c +s#${p}\([0-9]\{1,\}\);\([0-9;]\{1,\}\)m#${p}\1m${p}\2m#g; t c # split combined +s#${p}0\([0-7]\)#${p}\1#g #strip leading 0 +s#${p}1m\(\(${p}[4579]m\)*\)#\1${p}1m#g #bold last (with clr) +s#${p}m#${p}0m#g #add leading 0 to norm + +# undo any 256 color marking +s#${p}¬\([34]8;5;[0-9]\{1,3\}\)m#${p}\1m#g; + +# map 16 color codes to color + bold +s#${p}9\([0-7]\)m#${p}3\1m${p}1m#g; +s#${p}10\([0-7]\)m#${p}4\1m${p}1m#g; + +# change 'reset' code to a single char, and prepend a single char to +# other codes so that we can easily do negative matching, as sed +# does not support look behind expressions etc. +s#°#\&deg;#g; s#${p}0m#°#g +s#¡#\&iexcl;#g; s#${p}[0-9;]*m#¡&#g +" | + +# Convert SGR sequences to HTML +sed " +:ansi_to_span # replace ANSI codes with CSS classes +t ansi_to_span # hack so t commands below only apply to preceeding s cmd + +/^[^¡]*°/ { b span_end } # replace 'reset code' if no preceeding code + +# common combinations to minimise html (optional) +s#${P}3\([0-7]\)m¡${p}4\([0-7]\)m#\1<span class=\"f\2 b\3\">#;t span_count +s#${P}4\([0-7]\)m¡${p}3\([0-7]\)m#\1<span class=\"f\3 b\2\">#;t span_count + +s#${P}1m#\1<span class=\"bold\">#; t span_count +s#${P}4m#\1<span class=\"underline\">#; t span_count +s#${P}5m#\1<span class=\"blink\">#; t span_count +s#${P}7m#\1<span class=\"reverse\">#; t span_count +s#${P}9m#\1<span class=\"line-through\">#; t span_count +s#${P}3\([0-9]\)m#\1<span class=\"f\2\">#; t span_count +s#${P}4\([0-9]\)m#\1<span class=\"b\2\">#; t span_count + +s#${P}38;5;\([0-9]\{1,3\}\)m#\1<span class=\"ef\2\">#; t span_count +s#${P}48;5;\([0-9]\{1,3\}\)m#\1<span class=\"eb\2\">#; t span_count + +s#${P}[0-9;]*m#\1#g; t ansi_to_span # strip unhandled codes + +b # next line of input + +# add a corresponding span end flag +:span_count +x; s/^/s/; x +b ansi_to_span + +# replace 'reset code' with correct number of </span> tags +:span_end +x +/^s/ { + s/^.// + x + s#°#</span>°# + b span_end +} +x +s#°## +b ansi_to_span +" | + +# Convert alternative character set +# Note we convert here, as if we do at start we have to worry about avoiding +# conversion of SGR codes etc., whereas doing here we only have to +# avoid conversions of stuff between &...; or <...> +# +# Note we could use sed to do this based around: +# sed 'y/abcdefghijklmnopqrstuvwxyz{}`~/▒␉␌␍␊°±␤␋┘┐┌└┼⎺⎻─⎼⎽├┤┴┬│≤≥π£◆·/' +# However that would be very awkward as we need to only conv some input. +# The basic scheme that we do in the python script below is: +# 1. enable transliterate once ¡ char seen +# 2. disable once µ char seen (may be on diff line to ¡) +# 3. never transliterate between &; or <> chars +sed " +# change 'smacs' and 'rmacs' to a single char so that we can easily do +# negative matching, as sed does not support look behind expressions etc. +# Note we don't use ° like above as that's part of the alternate charset. +s#\x1b(0#¡#g; +s#µ#\&micro;#g; s#\x1b(B#µ#g +" | +( +python -c " +# vim:fileencoding=utf8 + +import sys +import locale +encoding=locale.getpreferredencoding() + +old='abcdefghijklmnopqrstuvwxyz{}\`~' +new='▒␉␌␍␊°±␤␋┘┐┌└┼⎺⎻─⎼⎽├┤┴┬│≤≥π£◆·' +new=unicode(new, 'utf-8') +table=range(128) +for o,n in zip(old, new): table[ord(o)]=n + +(STANDARD, ALTERNATIVE, HTML_TAG, HTML_ENTITY) = (0, 1, 2, 3) + +state = STANDARD +last_mode = STANDARD +for c in unicode(sys.stdin.read(), encoding): + if state == HTML_TAG: + if c == '>': + state = last_mode + elif state == HTML_ENTITY: + if c == ';': + state = last_mode + else: + if c == '<': + state = HTML_TAG + elif c == '&': + state = HTML_ENTITY + elif c == u'¡' and state == STANDARD: + state = ALTERNATIVE + last_mode = ALTERNATIVE + continue + elif c == u'µ' and state == ALTERNATIVE: + state = STANDARD + last_mode = STANDARD + continue + elif state == ALTERNATIVE: + c = c.translate(table) + sys.stdout.write(c.encode(encoding)) +" 2>/dev/null || +sed 's/[¡µ]//g' # just strip aternative flag chars +) + +echo "</pre> +</body> +</html>" diff --git a/janis_core/tests/data/galaxy/text_processing-d698c222f354/awk.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/awk.xml similarity index 100% rename from janis_core/tests/data/galaxy/text_processing-d698c222f354/awk.xml rename to janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/awk.xml diff --git a/janis_core/tests/data/galaxy/text_processing-d698c222f354/cat.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/cat.xml similarity index 100% rename from janis_core/tests/data/galaxy/text_processing-d698c222f354/cat.xml rename to janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/cat.xml diff --git a/janis_core/tests/data/galaxy/text_processing-d698c222f354/cut.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/cut.xml similarity index 100% rename from janis_core/tests/data/galaxy/text_processing-d698c222f354/cut.xml rename to janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/cut.xml diff --git a/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/easyjoin b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/easyjoin new file mode 100644 index 000000000..25f25bc95 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/easyjoin @@ -0,0 +1,308 @@ +#!/usr/bin/env perl +## EASY Join - +## Join with automatic pre-sorting of both files +## Copyright (C) 2010 A. Gordon (gordon@cshl.edu) +## license: AGPLv3+ +use strict; +use warnings; +use Data::Dumper; +use Getopt::Long qw(:config bundling no_ignore_case_always); +use File::Temp qw/tempfile/; +use POSIX qw(locale_h); + +sub show_help(); +sub show_version(); +sub show_examples(); +sub parse_commandline_options(); +sub sort_file($$$); +sub join_files($$); +sub cleanup_files(@); + + +my $PROGRAM="easyjoin"; +my $VERSION="0.6.1"; + +my $debug=undef; +my $HEADER=undef; +my $IGNORE_CASE=undef; +my $FIELD_SEP=undef; +my $FILE1_KEY_COLUMN=1; +my $FILE2_KEY_COLUMN=1; +my @OUTPUT_SPECIFIERS=(); +my $OUTPUT_FORMAT=undef; +my $EMPTY_FILLER=undef; +my $SORT_BUFFER_SIZE=undef; +my $SORT_TEMP_DIR=undef; +my $input_filename1; +my $input_filename2; + +## +## Program Start +## +$ENV{'LANG'}="C";## "C" locale is critical for sorting and joining correctly +parse_commandline_options(); +my (undef, $tmp_filename1) = tempfile(OPEN=>0); +my (undef, $tmp_filename2) = tempfile(OPEN=>0); +sort_file($input_filename1, $tmp_filename1, $FILE1_KEY_COLUMN); +sort_file($input_filename2, $tmp_filename2, $FILE2_KEY_COLUMN); +my $join_exit_code = join_files($tmp_filename1, $tmp_filename2); +cleanup_files($tmp_filename1, $tmp_filename2); +exit($join_exit_code); + +## +## Program end +## + + +sub show_help() +{ +print<<EOF; +${PROGRAM}: Wrapper for GNU join+sort, automaticalyl sorts files before joining them. + +Usage: $PROGRAM [OPTIONS] [JOIN-OPTIONS] [SORT-OPTIONS] FILE1 FILE2 + +OPTIONS: Options specific to this program: + + --header = Both input files have a header line as the first line. + The header line will be joined properly, without being sorted. + + --version = Print ${PROGRAM}'s version. + + --debug = Print debug messages (relating to ${PROGRAM}'s operation). + + --help = Show this help screen. + + --example = Show usage examples. + + --all = Short-cut for: + -a 1 -a 2 -o auto -e . -t <TAB> + This will show all values (paired and unpared) from both files, + Automatically formatting the columns, and using TAB as field separator. + You can override the empty filler (-e X) on the command line. + + --allh = Short-cut for: + -a 1 -a 2 -o auto -e . -t <TAB> --header + Same as above, but will also respect the header line from both input files. + +JOIN-OPTIONS: + All of GNU join options are supported. + Run: + join --help + To see all possible joining options. + +SORT-OPTIONS: + The following options are supported for the intermediate sorting step: + + -S SIZE + --buffer-size SIZE = GNU sort's --buffer-size option. + + -T DIR + --temporary-directory DIR = GNU sort's --temporary-directory option. + + Run: + sort --help + To learn about these options. They might improve sorting performances for big files. + +FILE1 FILE2: + The two input files to be sorted, joined. + Unlike GNU join, joining STDIN is not supported. Both files must be real files. + + +NOTE About "--header" and "--auto-format": + The "--header" feature requires GNU coreutils version 8.6 or later. + The "-o auto" feature requires GNU coreutils version 8.10 or later. + +EOF + exit(0); +} + +sub show_version() +{ +print<<EOF; +$PROGRAM $VERSION +Copyright (C) 2010 A. Gordon (gordon\@cshl.edu) +License AGPLv3+: Affero GPL version 3 or later (http://www.gnu.org/licenses/agpl.html) + +To see the GNU's join version, run: + join --version +EOF + exit(0); +} + +sub show_examples() +{ +print<<EOF; +Example of joining two unsorted files (each file having a header line): + +\$ cat input1.txt +Fruit Color +Apple red +Banana yellow +Orange orange +Melon green + +\$ cat input2.txt +Fruit Price +Orange 7 +Avocado 8 +Apple 4 +Banana 3 + +\$ easyjoin -j 1 -a 1 -a 2 --header -e . -o auto input1.txt input2.txt +Fruit Color Price +Apple red 4 +Avocado . 8 +Banana yellow 3 +Melon green . +Orange orange 7 + +## A short-cut for all the options above: +\$ easyjoin --allh input1.txt input2.txt +Fruit Color Price +Apple red 4 +Avocado . 8 +Banana yellow 3 +Melon green . +Orange orange 7 + +EOF + exit(0); +} + +sub parse_commandline_options() +{ + ## + ## Parse command line + ## + my $rc = GetOptions( + "a=i" => sub { push @OUTPUT_SPECIFIERS, '-a', $_[1] }, + "e=s" => \$EMPTY_FILLER, + "ignore-case|i" => \$IGNORE_CASE, + "j=i" => sub { $FILE1_KEY_COLUMN = $_[1] ; $FILE2_KEY_COLUMN = $_[1] ; }, + "o=s" => \$OUTPUT_FORMAT, + "t=s" => \$FIELD_SEP, + "v=i" => sub { push @OUTPUT_SPECIFIERS, '-v', $_[1] }, + "1=i" => \$FILE1_KEY_COLUMN, + "2=i" => \$FILE2_KEY_COLUMN, + "debug" => \$debug, + "header" => \$HEADER, + "help" => \&show_help, + "version" => \&show_version, + "examples" => \&show_examples, + "buffer-size|S=s" => \$SORT_BUFFER_SIZE, + "temporary-directory|T=s" => \$SORT_TEMP_DIR, + "all" => sub { + push @OUTPUT_SPECIFIERS, "-a", 1, "-a", 2; + $FIELD_SEP = "\t"; + $OUTPUT_FORMAT = "auto"; + $EMPTY_FILLER = "." unless defined $EMPTY_FILLER; + }, + "allh" => sub { + push @OUTPUT_SPECIFIERS, "-a", 1, "-a", 2; + $FIELD_SEP = "\t"; + $OUTPUT_FORMAT = "auto"; + $HEADER=1; + $EMPTY_FILLER = "." unless defined $EMPTY_FILLER; + }, + ); + die "$PROGRAM: invalid command-line arguments.\n" unless $rc; + + ## We need two file names to join + my @INPUT_FILES = @ARGV; + die "$PROGRAM: missing operand: two file names to join\n" if (scalar(@INPUT_FILES)<2); + die "$PROGRAM: error: too many files specified (can only join two files)\n" if (scalar(@INPUT_FILES)>2); + die "$PROGRAM: error: input file can't be STDIN, please use a real file name.\n" if $INPUT_FILES[0] eq "-" || $INPUT_FILES[1] eq "-"; + die "$PROGRAM: error: input file 1 '" . $INPUT_FILES[0] . "' not found!" unless -e $INPUT_FILES[0]; + die "$PROGRAM: error: input file 2 '" . $INPUT_FILES[1] . "' not found!" unless -e $INPUT_FILES[1]; + + $input_filename1 = $INPUT_FILES[0]; + $input_filename2 = $INPUT_FILES[1]; +} + +sub sort_file($$$) +{ + my ($input_filename, $output_filename, $key_column) = @_; + + my @SORT_COMMAND; + push @SORT_COMMAND, $HEADER ? "./sort-header" : "sort" ; + push @SORT_COMMAND, "-f" if $IGNORE_CASE; + push @SORT_COMMAND, "-k${key_column},${key_column}" ; + push @SORT_COMMAND, "--buffer-size", $SORT_BUFFER_SIZE if $SORT_BUFFER_SIZE; + push @SORT_COMMAND, "--temporary-directory", $SORT_TEMP_DIR if $SORT_TEMP_DIR; + push @SORT_COMMAND, "--output", $output_filename; + push @SORT_COMMAND, "--debugheader" if $debug && $HEADER; + push @SORT_COMMAND, "-t", $FIELD_SEP if $FIELD_SEP; + push @SORT_COMMAND, $input_filename; + + if ($debug) { + warn "$PROGRAM: Running sort on '$input_filename' => '$output_filename'\n"; + warn "$PROGRAM: Sort command line:\n"; + print STDERR Dumper(\@SORT_COMMAND), "\n"; + } + + my $sort_exit_code=1; + system(@SORT_COMMAND); + if ($? == -1) { + die "$PROGRAM: Error: failed to execute 'sort': $!\n"; + } + elsif ($? & 127) { + my $signal = ($? & 127); + kill 2, $$ if $signal == 2; ##if sort was interrupted (CTRL-C) - just pass it on and commit suicide + die "$PROGRAM: Error: 'sort' child-process died with signal $signal\n"; + } + else { + $sort_exit_code = ($? >> 8); + } + die "$PROGRAM: Error: 'sort' process failed, exit code $sort_exit_code\n" if $sort_exit_code!=0; +} + +sub join_files($$) +{ + my ($file1, $file2) = @_; + + my @join_command = qw/join/; + push @join_command, "--header" if $HEADER; + push @join_command, "--ignore-case" if $IGNORE_CASE; + push @join_command, "-t", $FIELD_SEP if $FIELD_SEP; + push @join_command, "-1", $FILE1_KEY_COLUMN if $FILE1_KEY_COLUMN; + push @join_command, "-2", $FILE2_KEY_COLUMN if $FILE2_KEY_COLUMN; + push @join_command, "-e", $EMPTY_FILLER if defined $EMPTY_FILLER; + push @join_command, "-o", $OUTPUT_FORMAT if $OUTPUT_FORMAT; + push @join_command, @OUTPUT_SPECIFIERS; + push @join_command, $file1, $file2; + + if ($debug) { + warn "$PROGRAM: Running join on '$file1' and '$file2'\n"; + warn "$PROGRAM: join command line:\n"; + print STDERR Dumper(\@join_command), "\n"; + } + + my $join_exit_code=1; + system(@join_command); + if ($? == -1) { + die "$PROGRAM: Error: failed to execute 'join': $!\n"; + } + elsif ($? & 127) { + my $signal = ($? & 127); + kill 2, $$ if $signal == 2; ##if join was interrupted (CTRL-C) - just pass it on and commit suicide + die "$PROGRAM: Error: 'join' child-process died with signal $signal\n"; + } + else { + $join_exit_code = ($? >> 8); + } + return $join_exit_code; +} + +sub cleanup_files(@) +{ + my (@files) = @_; + + foreach my $file (@files) { + if ($debug) { + warn "$PROGRAM: debug mode, not deleting temporary file '$file'\n"; + } else { + my $count = unlink $file; + warn "$PROGRAM: Error: failed to delete temporary file '$file': $!\n" if ($count != 1); + } + } +} diff --git a/janis_core/tests/data/galaxy/text_processing-d698c222f354/easyjoin.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/easyjoin.xml similarity index 100% rename from janis_core/tests/data/galaxy/text_processing-d698c222f354/easyjoin.xml rename to janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/easyjoin.xml diff --git a/janis_core/tests/data/galaxy/text_processing-d698c222f354/find_and_replace b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/find_and_replace similarity index 100% rename from janis_core/tests/data/galaxy/text_processing-d698c222f354/find_and_replace rename to janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/find_and_replace diff --git a/janis_core/tests/data/galaxy/text_processing-d698c222f354/find_and_replace.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/find_and_replace.xml similarity index 100% rename from janis_core/tests/data/galaxy/text_processing-d698c222f354/find_and_replace.xml rename to janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/find_and_replace.xml diff --git a/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/grep.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/grep.xml new file mode 100644 index 000000000..dde90341c --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/grep.xml @@ -0,0 +1,194 @@ +<tool id="tp_grep_tool" name="Search in textfiles" version="@BASE_VERSION@.1"> + <description>(grep)</description> + <macros> + <import>macros.xml</import> + </macros> + <requirements> + <requirement type="package" version="2.14">grep</requirement> + <requirement type="package" version="4.4">sed</requirement><!-- for ansi2html.sh --> + </requirements> + <version_command>grep --version | head -n 1</version_command> + <command> +<![CDATA[ + #if str($color) == "COLOR": + GREP_COLOR='1;34' + grep + --color=always + $regex_type + -A $lines_after + -B $lines_before + $invert + $case_sensitive + -- "${url_paste}" + '${infile}' | $__tool_directory__/ansi2html.sh > "${output}" + #else: + grep + $regex_type + -A $lines_after + -B $lines_before + $invert + $case_sensitive + -- "${url_paste}" + '${infile}' | grep -v "^--$" > "${output}" + #end if +]]> + </command> + <inputs> + <param name="infile" format="txt" type="data" label="Select lines from" /> + + <param name="invert" type="select" label="that"> + <option value="">Match</option> + <option value="-v">Don't Match</option> + </param> + + <param name="regex_type" type="select" label="Type of regex"> + <option value="-G">Basic</option> + <option value="-P" selected="true">Perl</option> + <option value="-E">Extended (egrep)</option> + </param> + + <param name="url_paste" type="text" label="Regular Expression" help="See below for more details"> + <sanitizer> + <valid initial="string.printable"> + <remove value="&apos;"/> + </valid> + </sanitizer> + </param> + + <param name="case_sensitive" type="select" label="Match type" help="(-i)"> + <option value="-i">case insensitive</option> + <option value="">case sensitive</option> + </param> + <param name="lines_before" type="integer" value="0" + label="Show lines preceding the matched line" help="leave it at zero unless you know what you're doing. (-B)" /> + <param name="lines_after" type="integer" value="0" + label="Show lines trailing the matched line" help="leave it at zero unless you know what you're doing. (-A)" /> + <param name="color" type="select" label="Output"> + <option value="NOCOLOR">text file (for further processing)</option> + <option value="COLOR">Highlighted HTML (for easier viewing)</option> + </param> + + </inputs> + <outputs> + <data name="output" format_source="infile" metadata_source="infile"> + <change_format> + <when input="color" value="COLOR" format="html"/> + </change_format> + </data> + </outputs> + <tests> + <test> + <!-- grep a FASTA file for sequences with specific motif --> + <param name="infile" value="grep1.txt" /> + <param name="case_sensitive" value="case sensitive" /> + <param name="regex_type" value="-P" /> + <param name="invert" value="" /> + <param name="url_paste" value="AA.{2}GT" /> + <param name="lines_before" value="1" /> + <param name="lines_after" value="0" /> + <param name="color" value="NOCOLOR" /> + <output name="output" file="grep_results1.txt" /> + </test> + <test> + <!-- grep a FASTA file for sequences with specific motif - + show highlighed output --> + <param name="infile" value="grep1.txt" /> + <param name="case_sensitive" value="case sensitive" /> + <param name="regex_type" value="-P" /> + <param name="invert" value="" /> + <param name="url_paste" value="AA.{2}GT" /> + <param name="lines_before" value="0" /> + <param name="lines_after" value="0" /> + <param name="color" value="COLOR" /> + <output name="output" file="grep_results2.html" /> + </test> + <test><!-- tests egrep --> + <param name="infile" value="egrep1.txt" /> + <param name="case_sensitive" value="case sensitive" /> + <param name="regex_type" value="-E" /> + <param name="invert" value="" /> + <param name="url_paste" value="[^ ]+" /> + <param name="lines_before" value="0" /> + <param name="lines_after" value="0" /> + <param name="color" value="NOCOLOR" /> + <output name="output" file="egrep_results1.txt" /> + </test> + <test><!-- same regex as egrep test, but different outcome with basic regex --> + <param name="infile" value="egrep1.txt" /> + <param name="case_sensitive" value="case sensitive" /> + <param name="regex_type" value="-G" /> + <param name="invert" value="" /> + <param name="url_paste" value="[^ ]+" /> + <param name="lines_before" value="0" /> + <param name="lines_after" value="0" /> + <param name="color" value="NOCOLOR" /> + <output name="output" file="egrep_results2.txt" /> + </test> + </tests> + <help> +<![CDATA[ +**What it does** + +This tool runs the unix **grep** command on the selected data file. + +.. class:: infomark + +**TIP:** This tool uses the **perl** regular expression syntax (same as running 'grep -P'). This is **NOT** the POSIX or POSIX-extended syntax (unlike the awk/sed tools). + + +**Further reading** + +- Wikipedia's Regular Expression page (http://en.wikipedia.org/wiki/Regular_expression) +- Regular Expressions cheat-sheet (PDF) (http://www.addedbytes.com/cheat-sheets/download/regular-expressions-cheat-sheet-v2.pdf) +- Grep Tutorial (http://www.panix.com/~elflord/unix/grep.html) + +----- + +**Grep Examples** + +- **AGC.AAT** would match lines with AGC followed by any character, followed by AAT (e.g. **AGCQAAT**, **AGCPAAT**, **AGCwAAT**) +- **C{2,5}AGC** would match lines with 2 to 5 consecutive Cs followed by AGC +- **TTT.{4,10}AAA** would match lines with 3 Ts, followed by 4 to 10 characters (any characeters), followed by 3 As. +- **^chr([0-9A-Za-z])+** would match lines that begin with chromsomes, such as lines in a BED format file. +- **(ACGT){1,5}** would match at least 1 "ACGT" and at most 5 "ACGT" consecutively. +- **hsa|mmu** would match lines containing "hsa" or "mmu" (or both). + +----- + +**Regular Expression Syntax** + +The select tool searches the data for lines containing or not containing a match to the given pattern. A Regular Expression is a pattern descibing a certain amount of text. + +- **( ) { } [ ] . * ? + \ ^ $** are all special characters. **\\** can be used to "escape" a special character, allowing that special character to be searched for. +- **^** matches the beginning of a string(but not an internal line). +- **\\d** matches a digit, same as [0-9]. +- **\\D** matches a non-digit. +- **\\s** matches a whitespace character. +- **\\S** matches anything BUT a whitespace. +- **\\t** matches a tab. +- **\\w** matches an alphanumeric character ( A to Z, 0 to 9 and underscore ) +- **\\W** matches anything but an alphanumeric character. +- **(** .. **)** groups a particular pattern. +- **\\Z** matches the end of a string(but not a internal line). +- **{** n or n, or n,m **}** specifies an expected number of repetitions of the preceding pattern. + + - **{n}** The preceding item is matched exactly n times. + - **{n,}** The preceding item ismatched n or more times. + - **{n,m}** The preceding item is matched at least n times but not more than m times. + +- **[** ... **]** creates a character class. Within the brackets, single characters can be placed. A dash (-) may be used to indicate a range such as **a-z**. +- **.** Matches any single character except a newline. +- ***** The preceding item will be matched zero or more times. +- **?** The preceding item is optional and matched at most once. +- **+** The preceding item will be matched one or more times. +- **^** has two meaning: + - matches the beginning of a line or string. + - indicates negation in a character class. For example, [^...] matches every character except the ones inside brackets. +- **$** matches the end of a line or string. +- **\|** Separates alternate possibilities. + +@REFERENCES@ +]]> + </help> + <expand macro="citations" /> +</tool> diff --git a/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/head.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/head.xml new file mode 100644 index 000000000..0497e18c5 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/head.xml @@ -0,0 +1,63 @@ +<tool id="tp_head_tool" name="Select first" version="@BASE_VERSION@.0"> + <description>lines from a dataset (head)</description> + <macros> + <import>macros.xml</import> + </macros> + <expand macro="requirements" /> + <version_command>head --version | head -n 1</version_command> + <command> +<![CDATA[ + head + --lines + $complement$count + '${infile}' + > '${outfile}' +]]> + </command> + <inputs> + <param name="infile" type="data" format="txt" label="File to select" /> + <param name="complement" type="select" label="Operation"> + <option value="">Keep first lines</option> + <option value="-">Remove last lines</option> + </param> + <param name="count" type="integer" value="10" + label="Number of lines" help="These will be kept/discarded depending on 'operation'. (--lines)" /> + </inputs> + <outputs> + <data name="outfile" format_source="infile" metadata_source="infile"/> + </outputs> + <tests> + <test> + <param name="count" value="10"/> + <param name="infile" value="1.bed"/> + <output name="outfile" file="head_results1.bed"/> + </test> + </tests> + <help> +<![CDATA[ +**What it does** + +This tool outputs specified number of lines from the **beginning** of a dataset + +----- + +**Example** + +Selecting 2 lines from this:: + + chr7 56632 56652 D17003_CTCF_R6 310 + + chr7 56736 56756 D17003_CTCF_R7 354 + + chr7 56761 56781 D17003_CTCF_R4 220 + + chr7 56772 56792 D17003_CTCF_R7 372 + + chr7 56775 56795 D17003_CTCF_R4 207 + + +will produce:: + + chr7 56632 56652 D17003_CTCF_R6 310 + + chr7 56736 56756 D17003_CTCF_R7 354 + + +@REFERENCES@ +]]> + </help> + <expand macro="citations" /> +</tool> diff --git a/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/macros.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/macros.xml new file mode 100644 index 000000000..ee4090d65 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/macros.xml @@ -0,0 +1,37 @@ +<macros> + <xml name="requirements"> + <requirements> + <requirement type="package" version="8.25">coreutils</requirement> + <yield/> + </requirements> + </xml> + <token name="@BASE_VERSION@">1.1</token> + <xml name="stdio"> + <stdio> + <!-- Anything other than zero is an error --> + <exit_code range="1:" /> + <exit_code range=":-1" /> + <!-- In case the return code has not been set propery check stderr too --> + <regex match="Error:" /> + <regex match="Exception:" /> + </stdio> + </xml> + <token name="@REFERENCES@"> +<![CDATA[ +------ + +**Citation** + +If you use this tool in Galaxy, please cite: + +Bjoern A. Gruening (2014), `Galaxy wrapper <https://github.com/bgruening/galaxytools>`_ + +Assaf Gordon (gordon <at> cshl dot edu) +]]> + </token> + <xml name="citations"> + <citations> + <yield /> + </citations> + </xml> +</macros> diff --git a/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/multijoin b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/multijoin new file mode 100644 index 000000000..152883fc9 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/multijoin @@ -0,0 +1,320 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Getopt::Long qw(:config no_ignore_case); +use Data::Dumper; +use Carp; +use File::Basename; + +my $version = "0.1.1"; +my $field_sep = "\t"; +my $key_column; +my @values_columns; +my $max_value_column; +my @input_files; +my $input_headers ; +my $output_headers; +my $filler = "0"; +my $filler_string ; +my $ignore_duplicates; +my $debug = 0 ; +my %input_headers; +my $have_file_labels; +my %file_labels; + +sub parse_command_line_parameters(); +sub show_help(); +sub read_input_file($); +sub print_combined_data(); +sub sanitize_filename($); +sub print_output_header(); +sub show_examples(); + +## +## Program Start +## + +parse_command_line_parameters(); + +my %data; +foreach my $file (@input_files) { + read_input_file($file); +} +#print STDERR Dumper(\%input_headers),"\n"; +#print STDERR Dumper(\%data) if $debug; +print_output_header() if $output_headers; +print_combined_data(); + + +## +## Program End +## +sub print_output_header() +{ + my @output = ("key"); + foreach my $file ( @input_files ) { + foreach my $column ( @values_columns ) { + my $column_name = ( exists $input_headers{$file}->{$column} ) ? + $input_headers{$file}->{$column} : + "V$column" ; + + push @output, $file_labels{$file} . "_" . $column_name; + } + } + print join($field_sep,@output),"\n" + or die "Output error: can't write output line: $!\n"; +} + +sub print_combined_data() +{ + my @keys = sort keys %data ; + + foreach my $key ( @keys ) { + my @outputs; + + foreach my $file (@input_files) { + push @outputs, + (exists $data{$key}->{$file}) ? $data{$key}->{$file} : $filler_string; + } + + print join($field_sep,$key,@outputs),"\n" + or die "Output error: can't write output line: $!\n"; + } +} + +sub sanitize_filename($) +{ + my ($filename) = shift or croak "missing file name"; + my $file_ID = basename($filename); + $file_ID =~ s/\.\w+$//; # remove extension + $file_ID =~ s/^[^\w\.\-]+//; + $file_ID =~ s/[^\w\.\-]+$//; + $file_ID =~ s/[^\w\.\-]+/_/g; # sanitize bad characters + return $file_ID; +} + +sub read_input_file($) +{ + my ($filename) = shift or croak "Missing input file name"; + + my @value_indexes = map { $_-1 } @values_columns; #zero-based indexes for value columns + + open FILE, "<", $filename + or die "Error: can't open file '$filename': $!\n"; + + ## Read file's header + if ($input_headers) { + my $line = <FILE>; + chomp $line; + my @fields = split $field_sep, $line; + + my $num_input_fields = scalar(@fields); + die "Input error: file '$filename' line $. doesn't have enough columns (value column = $max_value_column, line has only $num_input_fields columns)\n" if $num_input_fields < $max_value_column ; + + foreach my $col (@values_columns) { + $input_headers{$filename}->{$col} = $fields[$col-1] ; + } + } + + + ## Read file's data + while ( my $line = <FILE> ) { + chomp $line; + my @fields = split $field_sep, $line; + + my $num_input_fields = scalar(@fields); + die "Input error: file '$filename' line $. doesn't have enough columns (key column = $key_column, line has only $num_input_fields columns)\n" if $num_input_fields < $key_column ; + die "Input error: file '$filename' line $. doesn't have enough columns (value column = $max_value_column, line has only $num_input_fields columns)\n" if $num_input_fields < $max_value_column ; + + + my $key = $fields[$key_column-1]; + my $value = join($field_sep, @fields[@value_indexes]); + + die "Input error: file '$filename' line $. have duplicated key '$key'.\n" + if (exists $data{$key}->{$filename} && !$ignore_duplicates) ; + $data{$key}->{$filename} = $value; + } + close FILE + or die "Error: can't write and close file '$filename': $!\n"; +} + +sub parse_command_line_parameters() +{ + my $values_columns_string; + + my $rc = GetOptions("help" => \&show_help, + "key|k=i" => \$key_column, + "values|v=s" => \$values_columns_string, + "t=s" => \$field_sep, + "in-header" => \$input_headers, + "out-header|h" => \$output_headers, + "H" => sub { $input_headers = 1 ; $output_headers = 1 ; }, + "ignore-dups" => \$ignore_duplicates, + "filler|f=s" => \$filler, + "examples" => \&show_examples, + "labels" => \$have_file_labels, + ); + die "Error: inalid command-line parameters.\n" unless $rc; + + die "Error: missing key column. use --key N. see --help for more details.\n" unless defined $key_column; + die "Error: Invalid key column ($key_column). Must be bigger than zero. see --help for more details.\n" if $key_column <= 0 ; + + die "Error: missing values column. use --values V1,V2,Vn. See --help for more details.\n" unless defined $values_columns_string; + @values_columns = split(/\s*,\s*/, $values_columns_string); + + die "Error: missing values column. use --values N,N,N. see --help for more details.\n" unless scalar(@values_columns)>0; + foreach my $v (@values_columns) { + die "Error: invalid value column ($v), please use only numbers>=1. see --help for more details.\n" + unless $v =~ /^\d+$/ && $v>=1; + + $max_value_column = $v unless defined $max_value_column && $max_value_column>$v; + } + + $filler_string = join($field_sep, map { $filler } @values_columns); + + + if ($have_file_labels) { + ## have file labels - each pair of parameters is a file/label pair. + die "Error: missing input files and labels\n" if scalar(@ARGV)==0; + die "Error: when using --labels, a pair of file names + labels is required (got odd number of argiments)\n" unless scalar(@ARGV)%2==0; + + while (@ARGV) { + my $filename = shift @ARGV; + my $label = shift @ARGV; + $label =~ s/^[^\.\w\-]+//; + $label =~ s/[^\.\w\-]+$//g; + $label =~ s/[^\.\w\-]+/_/g; + + my $file_ID = sanitize_filename($filename); + $file_labels{$filename} = $label; + push @input_files, $filename; + } + } else { + ## no file labels - the rest of the arguments are just file names; + @input_files = @ARGV; + die "Error: missing input files\n" if scalar(@input_files)==0; + die "Error: need more than one input file to join.\n" if scalar(@input_files)==1; + + foreach my $file (@input_files) { + my $file_ID = sanitize_filename($file); + $file_labels{$file} = $file_ID; + } + } + +} + +sub show_help() +{ + print<<EOF; +Multi-File join, version $version +Copyright (C) 2012 - A. Gordon (gordon at cshl dot edu) +License AGPLv3+: Affero GPL version 3 or later (http://www.gnu.org/licenses/agpl.html) + +Usage: + multijoin [OPTIONS] -k N -v V1,V2,Vn,.. FILE1 FILE2 ... FILEn + +Options: + + --help This helpful help screen. + + -k N + --key N Use column N as key column. + + -v V1,V2,Vn + --values V1,V2,Vn + Use columns V1,V2,Vn as value columns - those will be joined + According to the Key column. + Multiple columns can be specified. + + -t SEP Use SEP as field separator character (default: tab). + + -h + --out-header Add a header line to the output file. + + --in-header The input files have a header line. + The first line will not be joined. + if '--out-header' is also used, the output column headers will + be constructed based on the input header column names. + + -H + --headers Same as '--in-header --out-header' combined. + + --ignore-dups Ignore duplicated keys (within a file). + By default, duplicated keys cause an error. + + -f X + --filler X Fill missing values with X. + (Default: '$filler'). + + --labels When printing output headers with '-h', instead of using the file name, + use specific labels. + Each file name must be followed by a name. + + example (without labels): + \$ multijoin -h -k 1 -v 2 A.TXT B.TXT C.TXT + + example (with labels): + \$ multijoin -h --labels -k 1 -v 2 A.TXT Sample1 B.TXT SampleB C.TXT SampleC + + --examples Show detailed examples. + +EOF + exit(0); +} + +sub show_examples() +{ + print<<EOF; + +To join three files, based on the 4th column, and keeping the 7th,8th,9th columns: + +\$ head *.txt +==> AAA.txt <== +chr4 888449 890171 FBtr0308778 0 + 266 1527 1722 +chr4 972167 979017 FBtr0310651 0 - 3944 6428 6850 +chr4 972186 979017 FBtr0089229 0 - 3944 6428 6831 +chr4 972186 979017 FBtr0089231 0 - 3944 6428 6831 +chr4 972186 979017 FBtr0089233 0 - 3944 6428 6831 +chr4 995793 996435 FBtr0111046 0 + 7 166 642 +chr4 995793 997931 FBtr0111044 0 + 28 683 2138 +chr4 995793 997931 FBtr0111045 0 + 28 683 2138 +chr4 1034029 1047719 FBtr0089223 0 - 5293 13394 13690 + +==> BBB.txt <== +chr4 90286 134453 FBtr0309803 0 + 657 29084 44167 +chr4 251355 266499 FBtr0089116 0 + 56 1296 15144 +chr4 252050 266506 FBtr0308086 0 + 56 1296 14456 +chr4 252050 266506 FBtr0308087 0 + 56 1296 14456 +chr4 252053 266528 FBtr0300796 0 + 56 1296 14475 +chr4 252053 266528 FBtr0300800 0 + 56 1296 14475 +chr4 252055 266528 FBtr0300798 0 + 56 1296 14473 +chr4 252055 266528 FBtr0300799 0 + 56 1296 14473 +chr4 252541 266528 FBtr0300797 0 + 56 1296 13987 + +==> CCC.txt <== +chr4 972167 979017 FBtr0310651 0 - 9927 6738 6850 +chr4 972186 979017 FBtr0089229 0 - 9927 6738 6831 +chr4 972186 979017 FBtr0089231 0 - 9927 6738 6831 +chr4 972186 979017 FBtr0089233 0 - 9927 6738 6831 +chr4 995793 996435 FBtr0111046 0 + 5 304 642 +chr4 995793 997931 FBtr0111044 0 + 17 714 2138 +chr4 995793 997931 FBtr0111045 0 + 17 714 2138 +chr4 1034029 1047719 FBtr0089223 0 - 17646 13536 13690 + +\$ multijoin -h --key 4 --values 7,8,9 *.txt | head -n 10 +key AAA__V7 AAA__V8 AAA__V9 BBB__V7 BBB__V8 BBB__V9 CCC__V7 CCC__V8 CCC__V9 +FBtr0089116 0 0 0 56 1296 15144 0 0 0 +FBtr0089223 5293 13394 13690 0 0 0 17646 13536 13690 +FBtr0089229 3944 6428 6831 0 0 0 9927 6738 6831 +FBtr0089231 3944 6428 6831 0 0 0 9927 6738 6831 +FBtr0089233 3944 6428 6831 0 0 0 9927 6738 6831 +FBtr0111044 28 683 2138 0 0 0 17 714 2138 +FBtr0111045 28 683 2138 0 0 0 17 714 2138 +FBtr0111046 7 166 642 0 0 0 5 304 642 +FBtr0300796 0 0 0 56 1296 14475 0 0 0 + + + +EOF + exit(0); +} diff --git a/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/multijoin.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/multijoin.xml new file mode 100644 index 000000000..9ad0a73ef --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/multijoin.xml @@ -0,0 +1,133 @@ +<tool id="tp_multijoin_tool" name="Multi-Join" version="@BASE_VERSION@.1"> + <description>(combine multiple files)</description> + <macros> + <import>macros.xml</import> + </macros> + <requirements> + <requirement type="package" version="5.22.0.1">perl</requirement> + </requirements> + <command> +<![CDATA[ + perl '$__tool_directory__/multijoin' + --key '$key_column' + --values '$value_columns' + --filler '$filler' + $ignore_dups + $output_header + $input_header + $first_file + #for $file in $files: + '$file' + #end for + > '$outfile' +]]> + </command> + <inputs> + <param name="first_file" type="data" format="txt" label="File to join"/> + <param name="files" multiple="True" type="data" format="txt" label="add additional file" /> + + <param name="key_column" label="Common key column" type="integer" + value="1" help="Usually gene-ID or other common value" /> + + <param name="value_columns" label="Column with values to preserve" + type="data_column" data_ref="first_file" accept_default="true" multiple="True" display="checkboxes"/> + + <param name="output_header" type="boolean" checked="false" truevalue="--out-header" falsevalue="" label="Add header line to the output file" help="" /> + <param name="input_header" type="boolean" checked="false" truevalue="--in-header" falsevalue="" label="Input files contain a header line (as first line)" help="" /> + <param name="ignore_dups" type="boolean" checked="false" truevalue="--ignore-dups" falsevalue="" label="Ignore duplicated keys" help="If not set, duplicated keys in the same file will cause an error." /> + <param name="filler" type="text" value="0" label="Value to put in unpaired (empty) fields"> + <sanitizer> + <valid initial="string.printable"> + <remove value="&apos;"/> + </valid> + </sanitizer> + </param> + </inputs> + <outputs> + <data name="outfile" format="tabular" /> + </outputs> + <tests> + <test> + <param name="first_file" value="multijoin1.txt" /> + <param name="files" value="multijoin2.txt,multijoin3.txt" /> + <param name="key_column" value="4" /> + <param name="value_columns" value="c7,c8,c9" /> + <param name="output_header" value="True" /> + <output name="outfile" file="multijoin_result1.txt" lines_diff="2" /> + </test> + </tests> + <help> +<![CDATA[ +**What it does** + +This tool joins multiple tabular files based on a common key column. + +----- + +**Example** + +To join three files, based on the 4th column, and keeping the 7th,8th,9th columns: + +**First file (AAA)**:: + + chr4 888449 890171 FBtr0308778 0 + 266 1527 1722 + chr4 972167 979017 FBtr0310651 0 - 3944 6428 6850 + chr4 972186 979017 FBtr0089229 0 - 3944 6428 6831 + chr4 972186 979017 FBtr0089231 0 - 3944 6428 6831 + chr4 972186 979017 FBtr0089233 0 - 3944 6428 6831 + chr4 995793 996435 FBtr0111046 0 + 7 166 642 + chr4 995793 997931 FBtr0111044 0 + 28 683 2138 + chr4 995793 997931 FBtr0111045 0 + 28 683 2138 + chr4 1034029 1047719 FBtr0089223 0 - 5293 13394 13690 + ... + + +**Second File (BBB)**:: + + chr4 90286 134453 FBtr0309803 0 + 657 29084 44167 + chr4 251355 266499 FBtr0089116 0 + 56 1296 15144 + chr4 252050 266506 FBtr0308086 0 + 56 1296 14456 + chr4 252050 266506 FBtr0308087 0 + 56 1296 14456 + chr4 252053 266528 FBtr0300796 0 + 56 1296 14475 + chr4 252053 266528 FBtr0300800 0 + 56 1296 14475 + chr4 252055 266528 FBtr0300798 0 + 56 1296 14473 + chr4 252055 266528 FBtr0300799 0 + 56 1296 14473 + chr4 252541 266528 FBtr0300797 0 + 56 1296 13987 + ... + +**Third file (CCC)**:: + + chr4 972167 979017 FBtr0310651 0 - 9927 6738 6850 + chr4 972186 979017 FBtr0089229 0 - 9927 6738 6831 + chr4 972186 979017 FBtr0089231 0 - 9927 6738 6831 + chr4 972186 979017 FBtr0089233 0 - 9927 6738 6831 + chr4 995793 996435 FBtr0111046 0 + 5 304 642 + chr4 995793 997931 FBtr0111044 0 + 17 714 2138 + chr4 995793 997931 FBtr0111045 0 + 17 714 2138 + chr4 1034029 1047719 FBtr0089223 0 - 17646 13536 13690 + ... + + +**Joining** the files, using **key column 4**, **value columns 7,8,9** and a **header line**, will return:: + + key AAA__V7 AAA__V8 AAA__V9 BBB__V7 BBB__V8 BBB__V9 CCC__V7 CCC__V8 CCC__V9 + FBtr0089116 0 0 0 56 1296 15144 0 0 0 + FBtr0089223 5293 13394 13690 0 0 0 17646 13536 13690 + FBtr0089229 3944 6428 6831 0 0 0 9927 6738 6831 + FBtr0089231 3944 6428 6831 0 0 0 9927 6738 6831 + FBtr0089233 3944 6428 6831 0 0 0 9927 6738 6831 + FBtr0111044 28 683 2138 0 0 0 17 714 2138 + FBtr0111045 28 683 2138 0 0 0 17 714 2138 + FBtr0111046 7 166 642 0 0 0 5 304 642 + FBtr0300796 0 0 0 56 1296 14475 0 0 0 + ... + +.. class:: infomark + +Input files need not be sorted. + +@REFERENCES@ +]]> + </help> + <expand macro="citations" /> +</tool> diff --git a/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/readme.rst b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/readme.rst new file mode 100644 index 000000000..51a28184f --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/readme.rst @@ -0,0 +1,123 @@ +Galaxy wrappers for common unix text-processing tools +===================================================== + +The initial work was done by Assaf Gordon and Greg Hannon's lab ( http://hannonlab.cshl.edu ) +in Cold Spring Harbor Laboratory ( http://www.cshl.edu ). In late 2013 maintainence and +further development was taken over by Bjoern Gruening. Feel free to contribute any general purpose +text manipulation tool to this repository. + + +Tools: +------ + + * awk - The AWK programmning language ( http://www.gnu.org/software/gawk/ ) + * sed - Stream Editor ( http://sed.sf.net ) + * grep - Search files ( http://www.gnu.org/software/grep/ ) + * sort_columns - Sorting every line according to there columns + * GNU Coreutils programs ( http://www.gnu.org/software/coreutils/ ): + + * sort - sort files + * join - join two files, based on common key field. + * cut - keep/discard fields from a file + * unsorted_uniq - keep unique/duplicated lines in a file + * sorted_uniq - keep unique/duplicated lines in a file + * head - keep the first X lines in a file. + * tail - keep the last X lines in a file. + * unfold_column - unfold a column with multiple entities into multiple lines + + +Few improvements over the standard tools: +----------------------------------------- + + * EasyJoin - A Join tool that does not require pre-sorted the files ( https://github.com/agordon/filo/blob/scripts/src/scripts/easyjoin ) + * Multi-Join - Join multiple (>2) files ( https://github.com/agordon/filo/blob/scripts/src/scripts/multijoin ) + * Find_and_Replace - Find/Replace text in a line or specific column. + * Grep with Perl syntax - uses grep with Perl-Compatible regular expressions. + * HTML'd Grep - grep text in a file, and produced high-lighted HTML output, for easier viewing ( uses https://github.com/agordon/filo/blob/scripts/src/scripts/sort-header ) + + +Requirements: +------------- + + * Coreutils vesion 8.22 or later. + * AWK version 4.0.1 or later. + * SED version 4.2 *with* a special patch + * Grep with PCRE support + +All dependencies will be installed automatically with the Galaxy `Tool Shed`_ and the following repository: https://toolshed.g2.bx.psu.edu/view/bgruening/text_processing + + +------------------- +NOTE About Security +------------------- + +The included tools are secure (barring unintentional bugs): +The main concern might be executing system commands with awk's "system" and sed's "e" commands, +or reading/writing arbitrary files with awk's redirection and sed's "r/w" commands. +These commands are DISABLED using the "--sandbox" parameter to awk and sed. + +User trying to run an awk program similar to:: + + BEGIN { system("ls") } + +Will get an error (in Galaxy) saying:: + + fatal: 'system' function not allowed in sandbox mode. + +User trying to run a SED program similar to:: + + 1els + +will get an error (in Galaxy) saying:: + + sed: -e expression #1, char 2: e/r/w commands disabled in sandbox mode + +That being said, if you do find some vulnerability in these tools, please let me know and I'll try fix them. + +------------ +Installation +------------ + +Should be done via the Galaxy `Tool Shed`_. +Install the following repository: https://toolshed.g2.bx.psu.edu/view/bgruening/text_processing + +.. _`Tool Shed`: http://wiki.galaxyproject.org/Tool%20Shed + + +---- +TODO +---- + + * add shuf, we can remove the random feature from sort and use shuf instead + * move some advanced settings under a conditional, for example the cut tools offers to cut bytes + * cut wrapper has some output conditional magic for interval files, that needs to be checked + * comm wrapper, see the Galaxy default one + * evaluate the join wrappers against the Galaxy ones, maybe we should drop them + + +------- +License +------- + + * Copyright (c) 2009-2013 A. Gordon (gordon <at> cshl dot edu) + * Copyright (c) 2013-2015 B. Gruening (bjoern dot gruening <at> gmail dot com) + + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/recurring_lines.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/recurring_lines.xml new file mode 100644 index 000000000..060de6c37 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/recurring_lines.xml @@ -0,0 +1,79 @@ +<tool id="tp_text_file_with_recurring_lines" name="Create text file" version="@BASE_VERSION@.0"> + <description>with recurring lines</description> + <macros> + <import>macros.xml</import> + </macros> + <expand macro="requirements" /> + <version_command>yes --version | head -n 1</version_command> + <command> +<![CDATA[ + #for $token in $token_set: + #if str($token.repeat_select.repeat_select_opts) == 'user': + times=#echo $token.repeat_select.times#; + #else: + times=`wc -l $token.repeat_select.infile | awk '{print $1}'`; + #end if + yes -- "${token.line}" 2>/dev/null | head -n \$times >> $outfile; + #end for +]]> + </command> + <inputs> + <repeat name="token_set" title=" selection" min="1"> + <param name="line" type="text" + label="Characters to insert" help="Specify the characters that will be inserted X times in every line"/> + <conditional name="repeat_select"> + <param name="repeat_select_opts" type="select" label="Specify the number of iterations by"> + <option value="file">File (for each line in file)</option> + <option value="user" selected="True">User defined number</option> + </param> + <when value="user"> + <param name="times" type="integer" value="10" min="1" label="How many times?"/> + </when> + <when value="file"> + <param name="infile" type="data" format="txt" label="Template file" + help="For every line, the specified characters will be written once. That means X is the line-number from the given file."/> + </when> + </conditional> + </repeat> + </inputs> + <outputs> + <data format="txt" name="outfile"/> + </outputs> + <tests> + <test> + <repeat name="token_set"> + <param name="line" value="freedom" /> + <param name="repeat_select_opts" value="file" /> + <param name="infile" value="multijoin2.txt" /> + </repeat> + <output name="outfile" file="recurring_result1.txt" /> + </test> + <test> + <repeat name="token_set"> + <param name="line" value="freedom" /> + <param name="repeat_select_opts" value="user" /> + <param name="times" value="10" /> + </repeat> + <repeat name="token_set"> + <param name="line" value="war is over" /> + <param name="repeat_select_opts" value="user" /> + <param name="times" value="10" /> + </repeat> + <output name="outfile" file="recurring_result2.txt" /> + </test> + </tests> + <help> +<![CDATA[ +.. class:: infomark + +**What it does** + +This tool creates a text file with recurring lines. You can specify a bunch of characters or entire sentences. +The entire string will be printed X times separated by a line break. X can be either given by the use as a number or calculated by a given file. +In case the user provides a file, the line number will be used as X. + +@REFERENCES@ +]]> + </help> + <expand macro="citations" /> +</tool> diff --git a/janis_core/tests/data/galaxy/text_processing-d698c222f354/replace_text_in_column.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/replace_text_in_column.xml similarity index 100% rename from janis_core/tests/data/galaxy/text_processing-d698c222f354/replace_text_in_column.xml rename to janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/replace_text_in_column.xml diff --git a/janis_core/tests/data/galaxy/text_processing-d698c222f354/replace_text_in_line.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/replace_text_in_line.xml similarity index 100% rename from janis_core/tests/data/galaxy/text_processing-d698c222f354/replace_text_in_line.xml rename to janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/replace_text_in_line.xml diff --git a/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/sed.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/sed.xml new file mode 100644 index 000000000..d8a542bf9 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/sed.xml @@ -0,0 +1,133 @@ +<tool id="tp_sed_tool" name="Text transformation" version="@BASE_VERSION@.1"> + <description>with sed</description> + <macros> + <import>macros.xml</import> + </macros> + <requirements> + <requirement type="package" version="4.4">sed</requirement> + </requirements> + <version_command>sed --version | head -n 1</version_command> + <command> +<![CDATA[ + sed + --sandbox + -r + #if $adv_opts.adv_opts_selector == 'advanced': + $adv_opts.silent + #end if + -f '$sed_script' + '$infile' + > '$output' +]]> + </command> + <configfiles> + <configfile name="sed_script"> + $code + </configfile> + </configfiles> + <inputs> + <param format="txt" name="infile" type="data" label="File to process" /> + <param name="code" type="text" area="true" size="5x35" label="SED Program" help=""> + <sanitizer> + <valid initial="string.printable"> + <remove value="&apos;"/> + </valid> + </sanitizer> + </param> + <conditional name="adv_opts"> + <param name="adv_opts_selector" type="select" label="Advanced Options"> + <option value="basic" selected="True">Hide Advanced Options</option> + <option value="advanced">Show Advanced Options</option> + </param> + <when value="basic" /> + <when value="advanced"> + <param name="silent" type="select" label="Operation mode" help="Same as 'sed -n', leave at 'normal' unless you know what you're doing." > + <option value="">normal</option> + <option value="-n">silent</option> + </param> + </when> + </conditional> + </inputs> + <outputs> + <data name="output" format_source="infile" metadata_source="infile" /> + </outputs> + <tests> + <test> + <param name="infile" value="sed1.txt" /> + <param name="code" value="1d ; s/foo/bar/" /> + <param name="silent" value="" /> + <output name="output" file="sed_results1.txt" /> + </test> + <test> + <param name="infile" value="sed1.txt" /> + <param name="code" value="/foo/ { s/foo/baz/g ; p }" /> + <param name="adv_opts_selector" value="advanced" /> + <param name="silent" value="-n" /> + <output name="output" file="sed_results2.txt" /> + </test> + </tests> + <help> +<![CDATA[ +**What it does** + +This tool runs the unix **sed** command on the selected data file. + +.. class:: infomark + +**TIP:** This tool uses the **extended regular** expression syntax (same as running 'sed -r'). + + + +**Further reading** + +- Short sed tutorial (http://www.linuxhowtos.org/System/sed_tutorial.htm) +- Long sed tutorial (http://www.grymoire.com/Unix/Sed.html) +- sed faq with good examples (http://sed.sourceforge.net/sedfaq.html) +- sed cheat-sheet (http://www.catonmat.net/download/sed.stream.editor.cheat.sheet.pdf) + +----- + +**Sed commands** + +The most useful sed command is **s** (substitute). + +**Examples** + +- **s/hsa//** will remove the first instance of 'hsa' in every line. +- **s/hsa//g** will remove all instances (beacuse of the **g**) of 'hsa' in every line. +- **s/A{4,}/--&--/g** will find sequences of 4 or more consecutive A's, and once found, will surround them with two dashes from each side. The **&** marker is a place holder for 'whatever matched the regular expression'. +- **s/hsa-mir-([^ ]+)/short name: \\1 full name: &/** will find strings such as 'hsa-mir-43a' (the regular expression is 'hsa-mir-' followed by non-space characters) and will replace it will string such as 'short name: 43a full name: hsa-mir-43a'. The **\\1** marker is a place holder for 'whatever matched the first parenthesis' (similar to perl's **$1**) . + + +**sed's Regular Expression Syntax** + +The select tool searches the data for lines containing or not containing a match to the given pattern. A Regular Expression is a pattern descibing a certain amount of text. + +- **( ) { } [ ] . * ? + \ ^ $** are all special characters. **\\** can be used to "escape" a special character, allowing that special character to be searched for. +- **^** matches the beginning of a string(but not an internal line). +- **(** .. **)** groups a particular pattern. +- **{** n or n, or n,m **}** specifies an expected number of repetitions of the preceding pattern. + + - **{n}** The preceding item is matched exactly n times. + - **{n,}** The preceding item ismatched n or more times. + - **{n,m}** The preceding item is matched at least n times but not more than m times. + +- **[** ... **]** creates a character class. Within the brackets, single characters can be placed. A dash (-) may be used to indicate a range such as **a-z**. +- **.** Matches any single character except a newline. +- ***** The preceding item will be matched zero or more times. +- **?** The preceding item is optional and matched at most once. +- **+** The preceding item will be matched one or more times. +- **^** has two meaning: + - matches the beginning of a line or string. + - indicates negation in a character class. For example, [^...] matches every character except the ones inside brackets. +- **$** matches the end of a line or string. +- **\|** Separates alternate possibilities. + + +**Note**: SED uses extended regular expression syntax, not Perl syntax. **\\d**, **\\w**, **\\s** etc. are **not** supported. + +@REFERENCES@ +]]> + </help> + <expand macro="citations" /> +</tool> diff --git a/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/sort-header b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/sort-header new file mode 100755 index 000000000..d8a75ad60 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/sort-header @@ -0,0 +1,281 @@ +#!/usr/bin/env perl +## +## Sort-header - wrapper for GNU sort with header-line support +## +## Copyright(C) A. Gordon +## license AGPLv3+ +## +use strict; +use warnings; +use Data::Dumper; +use IO::Handle; +use Getopt::Long qw(:config bundling no_ignore_case_always); + +## Forward declarations +sub add_standard_sort_param(@); +sub add_standard_sort_param_value(@); +sub forbidden_sort_param(@); +sub show_help(); +sub show_version(); +sub show_examples(); +sub parse_commandline_options(); +sub reassign_input_output(); +sub process_header_lines(); +sub run_sort(); +sub read_line_non_buffered(); + + +## +## Runtime options +## +my $PROGRAM="sort-header"; +my $VERSION=0.4; + +my $check_only=undef; +my $input_file=undef; +my $output_file=undef; +my $field_separator=undef; +my $header_lines =1 ; +my $debug=undef; +my $sort_exit_code=1; #by default, assume some error + +my @sort_options; + +## +## Program Start +## +parse_commandline_options(); +reassign_input_output(); +process_header_lines(); +run_sort(); +exit($sort_exit_code); +## +## Program End +## + +sub show_examples() +{ +print<<EOF; +Sorting a file with a header line: + +\$ cat input.txt +Fruit Color Price +Banana Yellow 4.1 +Avocado Green 8.0 +Apple Red 3.0 +Melon Green 6.1 + +# By default, 'sort-header' assumes 1 header line +# (no need to use --header in this case). + +\$ sort-header -k3,3nr input.txt +Fruit Color Price +Avocado Green 8.0 +Melon Green 6.1 +Banana Yellow 4.1 +Apple Red 3.0 + +EOF + exit(0); +} + +sub show_help() +{ +print<<EOF; +${PROGRAM}: Wrapper for GNU sort, allowing sorting files with header lines. + +Usage: $PROGRAM [HEADER-OPTIONS] [GNU sort Options] [INPUT-FILE] + +HEADER-OPTIONS: the following options are supported by '${PROGRAM}': + + --header N = Treat the first N lines as header lines. + These line will NOT be sorted. They will be passed + directly to the output file. (default: 1) + + --version = Print ${PROGRAM}'s version. + + --debugheader = Print debug messages (relating to ${PROGRAM}'s operation). + + --help = Show this help screen. + + --examples = Show usage examples. + +GNU sort options: + Most of the standard GNU sort options are supported and passed to GNU sort. + The following options can not be used with '${PROGRAM}': + + -m --merge => ${PROGRAM} can only sort one file, not merge multiple files. + -c -C --check => Currently not supported + --files0-from => Currently not supported + -z --zero-terminated => Currently not supported + +INPUT-FILE: + If INPUT-FILE is not specified, $PROGRAM will use STDIN (just like GNU sort). + +EOF + exit(0); +} + +sub show_version() +{ +print<<EOF; +$PROGRAM $VERSION +Copyright (C) 2010 A. Gordon (gordon\@cshl.edu) +License AGPLv3+: Affero GPL version 3 or later (http://www.gnu.org/licenses/agpl.html) + +To see the GNU's sort version, run: + sort --version +EOF + exit(0); +} + +sub parse_commandline_options() +{ + my $rc = GetOptions( + "ignore-leading-blanks|b" => \&add_standard_sort_param, + "dictionary-order|d" => \&add_standard_sort_param, + "ignore-case|f" => \&add_standard_sort_param, + "general-numeric-sort|g" => \&add_standard_sort_param, + "ignore-nonprinting|i" => \&add_standard_sort_param, + "month-sort|M" => \&add_standard_sort_param, + "human-numeric-sort|h" => \&add_standard_sort_param, + "numeric-sort|n" => \&add_standard_sort_param, + "random-source=s" => \&add_standard_sort_param_value, + "random-sort|R" => \&add_standard_sort_param, + "reverse|r" => \&add_standard_sort_param, + "sort=s" => \&add_standard_sort_param_value, + "version-sort|V" => \&add_standard_sort_param, + + "check|c" => \&forbidden_sort_param, + "C" => \&forbidden_sort_param, + "compress-program=s" => \&add_standard_sort_param_value, + "debug" => \&add_standard_sort_param, + + "files0-from=s" => \&forbidden_sort_param, + + "key|k=s" => \&add_standard_sort_param_value, + "merge|m" => \&forbidden_sort_param, + "batch-size=i" => \&forbidden_sort_param, + + "parallel=i" => \&add_standard_sort_param_value, + + "output|o=s" => \$output_file, + + "stable|s" => \&add_standard_sort_param, + "buffer-size|S=s" => \&add_standard_sort_param_value, + + "field-separator|t=s" => \&add_standard_sort_param_value, + "temporary-directory|T=s" => \&add_standard_sort_param_value, + "unique|u" => \&add_standard_sort_param, + + "zero-terminated|z" => \&forbidden_sort_param, + + "help" => \&show_help, + "version" => \&show_version, + "examples" => \&show_examples, + + "header=i" => \$header_lines, + "debugheader" => \$debug, + ); + + exit 1 unless $rc; + + my @INPUT_FILES = @ARGV; + + die "$PROGRAM: error: invalid number of header lines ($header_lines)\n" unless $header_lines>=0; + die "$PROGRAM: error: Multiple input files specified. This program can sort only a signle file.\n" if (scalar(@INPUT_FILES)>1); + $input_file = shift @INPUT_FILES if scalar(@INPUT_FILES)==1; + + if ($debug) { + warn "$PROGRAM: number of header lines = $header_lines\n"; + warn "$PROGRAM: PASS-to-Sort options:\n", Dumper(\@sort_options), "\n"; + } +} + +sub reassign_input_output() +{ + if ($output_file) { + warn "$PROGRAM: Re-assigning STDOUT to '$output_file'\n" if $debug; + open OUTPUT, '>', $output_file or die "$PROGRAM: Error: failed to create output file '$output_file': $!\n"; + STDOUT->fdopen(\*OUTPUT, 'w') or die "$PROGRAM: Error: failed to reassign STDOUT to '$output_file': $!\n"; + } + + + if ($input_file) { + warn "$PROGRAM: Re-assigning STDIN to '$input_file'\n" if $debug; + open INPUT, '<', $input_file or die "$PROGRAM: Error: failed to open input file '$input_file': $!\n"; + STDIN->fdopen(\*INPUT, 'r') or die "$PROGRAM: Error: failed to reassign STDIN to '$input_file': $!\n"; + } +} + +sub process_header_lines() +{ + warn "$PROGRAM: Reading $header_lines header lines...\n" if $debug; + for (my $i=0; $i<$header_lines; $i++) { + my $line = read_line_non_buffered(); + exit unless defined $line; + print $line; + } +} + +sub run_sort() +{ + warn "$PROGRAM: Running GNU sort...\n" if $debug; + system('sort', @sort_options); + if ($? == -1) { + die "$PROGRAM: Error: failed to execute 'sort': $!\n"; + } + elsif ($? & 127) { + my $signal = ($? & 127); + kill 2, $$ if $signal == 2; ##if sort was interrupted (CTRL-C) - just pass it on and commit suicide + die "$PROGRAM: Error: 'sort' child-process died with signal $signal\n"; + } + else { + $sort_exit_code = ($? >> 8); + } +} + + +sub add_standard_sort_param(@) +{ + my ($obj)= @_; + add_standard_sort_param_value($obj, undef); +} + +sub add_standard_sort_param_value(@) +{ + my ($obj,$value)= @_; + + my $option = "" . $obj ; #stringify the optino object, get the option name. + + if (length($option)==1) { + $option = "-" . $option ; + } else { + $option = "--" . $option ; + } + push @sort_options, $option ; + push @sort_options, $value if $value; +} + +sub forbidden_sort_param(@) +{ + my ($obj,$value)= @_; + my $option = "" . $obj ; #stringify the optino object, get the option name. + + die "$PROGRAM: Error: option '$option' can not be used with this program. If you must use it, run GNU sort directly. see --help for more details.\n"; +} + +sub read_line_non_buffered() +{ + my $line = ''; + while ( 1 ) { + my $c; + my $rc = sysread STDIN, $c, 1; + die "$PROGRAM: STDIN Read error: $!" unless defined $rc; + return $line if $rc==0 && $line; + return undef if $rc==0 && (!$line); + $line .= $c ; + return $line if ( $c eq "\n"); + } +} + diff --git a/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/sort.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/sort.xml new file mode 100644 index 000000000..176f6ae76 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/sort.xml @@ -0,0 +1,177 @@ +<tool id="tp_sort_header_tool" name="Sort" version="@BASE_VERSION@.1"> + <description>data in ascending or descending order</description> + <macros> + <import>macros.xml</import> + </macros> + <expand macro="requirements"> + <requirement type="package" version="4.4">sed</requirement> + </expand> + <version_command>sort --version | head -n 1</version_command> + <command> +<![CDATA[ + ( + LC_ALL=C + #if int($header) > 0: + sed -u '${header}'q && + #end if + + sort $unique $ignore_case --stable -t ' ' + + #for $key in $sortkeys: + -k '${key.column}${key.order}${key.style},${key.column}' + #end for + + ) < '${infile}' > '${outfile}' +]]> + </command> + <inputs> + <param format="tabular" name="infile" type="data" label="Sort Query" /> + <param name="header" type="integer" value="0" + label="Number of header lines" help="These will be ignored during sort."> + <validator type="in_range" message="Negative values are not allowed." min="0"/> + </param> + + <repeat name="sortkeys" title="Column selections" min="1"> + <param name="column" label="on column" type="data_column" data_ref="infile" accept_default="true" /> + <param name="order" type="select" display="radio" label="in"> + <option value="">Ascending order</option> + <option value="r">Descending order</option> + </param> + <param name="style" type="select" display="radio" label="Flavor"> + <option value="n">Fast numeric sort (-n)</option> + <option value="g">General numeric sort ( scientific notation -g)</option> + <option value="V">Natural/Version sort (-V) </option> + <option value="">Alphabetical sort</option> + <option value="h">Human-readable numbers (-h)</option> + <option value="R">Random order (-R)</option> + </param> + </repeat> + + <param name="unique" type="boolean" checked="false" truevalue="--unique" falsevalue="" + label="Output unique values" help="Print only unique values, based on sorted key columns. See help section for details. (--unique)" /> + <param name="ignore_case" type="boolean" checked="false" truevalue="-i" falsevalue="" + label="Ignore case" help="Sort and Join key column values regardless of upper/lower case letters. (-i)" /> + </inputs> + <outputs> + <data name="outfile" format_source="infile" metadata_source="infile"/> + </outputs> + <tests> + <test> + <param name="infile" value="sort1.bed"/> + <param name="header" value="3"/> + <repeat name="sortkeys"> + <param name="column" value="1"/> + <param name="style" value=""/> + <param name="order" value=""/> + </repeat> + <repeat name="sortkeys"> + <param name="column" value="3"/> + <param name="style" value="n"/> + <param name="order" value="r"/> + </repeat> + <output name="outfile" file="sort_result1.bed"/> + </test> + <test> + <param name="infile" value="sort1.bed"/> + <param name="header" value="3"/> + <repeat name="sortkeys"> + <param name="column" value="1"/> + <param name="style" value=""/> + <param name="order" value=""/> + </repeat> + <repeat name="sortkeys"> + <param name="column" value="3"/> + <param name="style" value="n"/> + <param name="order" value=""/> + </repeat> + <output name="outfile" file="sort_result2.bed"/> + </test> + <test> + <param name="infile" value="sort2.bed"/> + <repeat name="sortkeys"> + <param name="column" value="5"/> + <param name="style" value="g"/> + <param name="order" value=""/> + </repeat> + <output name="outfile" file="sort_result3.bed"/> + </test> + </tests> + <help> +<![CDATA[ +**What it does** + +This tool sorts an input file. + +----- + +**Sorting Styles** + +* **Fast Numeric**: sort by numeric values. Handles integer values (e.g. 43, 134) and decimal-point values (e.g. 3.14). *Does not* handle scientific notation (e.g. -2.32e2). +* **General Numeric**: sort by numeric values. Handles all numeric notations (including scientific notation). Slower than *fast numeric*, so use only when necessary. +* **Natural Sort**: Sort in 'natural' order (natural to humans, not to computers). See example below. +* **Alphabetical sort**: Sort in strict alphabetical order. See example below. +* **Human-readable numbers**: Sort human readble numbers (e.g. 1G > 2M > 3K > 400) +* **Random order**: return lines in random order. + +------ + +**Example - Header line** + +**Input file** (note first line is a header line, should not be sorted):: + + Fruit Color Price + Banana Yellow 4.1 + Avocado Green 8.0 + Apple Red 3.0 + Melon Green 6.1 + +**Sorting** by **numeric order** on column **3**, with **header**, will return:: + + Fruit Color Price + Apple Red 3.0 + Banana Yellow 4.1 + Melon Green 6.1 + Avocado Green 8.0 + + +----- + +**Example - Natural vs. Alphabetical sorting** + +Given the following list:: + + chr4 + chr13 + chr1 + chr10 + chr20 + chr2 + +**Alphabetical sort** would produce the following sorted list:: + + chr1 + chr10 + chr13 + chr2 + chr20 + chr4 + +**Natural Sort** would produce the following sorted list:: + + chr1 + chr2 + chr4 + chr10 + chr13 + chr20 + + +.. class:: infomark + +If you're planning to use the file with another tool that expected sorted files (such as *join*), you should use the **Alphabetical sort**, not the **Natural Sort**. Natural sort order is easier for humans, but is unnatural for computer programs. + +@REFERENCES@ +]]> + </help> + <expand macro="citations" /> +</tool> diff --git a/janis_core/tests/data/galaxy/text_processing-d698c222f354/sort_rows.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/sort_rows.xml similarity index 100% rename from janis_core/tests/data/galaxy/text_processing-d698c222f354/sort_rows.xml rename to janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/sort_rows.xml diff --git a/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/sorted_uniq.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/sorted_uniq.xml new file mode 100644 index 000000000..a89eb7c72 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/sorted_uniq.xml @@ -0,0 +1,106 @@ +<tool id="tp_uniq_tool" name="Unique lines" version="@BASE_VERSION@.1"> + <description>assuming sorted input file</description> + <macros> + <import>macros.xml</import> + </macros> + <expand macro="requirements"> + <requirement type="package" version="4.4">sed</requirement> + </expand> + <version_command>uniq --version | head -n 1</version_command> + <command> +<![CDATA[ + uniq + #if $skipfields: + -f $skipfields + #end if + $ignorecase + + #if $grouping.grouping_select == 'yes': + --group=$grouping.group + #else: + $grouping.count + $grouping.repeated + $grouping.uniqueonly + #end if + + "$infile" + + #if $grouping.grouping_select == 'no' and $grouping.count: + ## count will print the count with spaces in front of the line and + ## with a space (not a tab) after the number, we need to cahnge that + | sed -e 's/ *//' -e 's/ /\t/' + #end if + > "$outfile" +]]> + </command> + <inputs> + <param name="infile" format="tabular" type="data" + label="File to scan for unique values" help="Make sure you have sorted this file" /> + + <conditional name="grouping"> + <param name="grouping_select" type="select" label="Do you want to group each unique group?"> + <option value="no">No</option> + <option value="yes">Yes</option> + </param> + <when value="no"> + <param name="count" type="boolean" truevalue="-c" falsevalue="" + label="Counting number of occurrences" help="Prefix lines by the number of occurrences. (-c)" /> + <param name="repeated" type="boolean" truevalue="-d" falsevalue="" + label="Only print duplicate lines" help="(-d)"/> + <param name="uniqueonly" type="boolean" checked="True" truevalue="-u" falsevalue="" + label="Only print unique lines" help="(-u)" /> + </when> + <when value="yes"> + <param name="group" type="select" + label="Output all lines, and delimit each unique group" help="(--group)"> + <option value="">No grouping at all</option> + <option value="separate">Separate unique groups with a single delimiter</option> + <option value="prepend">Output a delimiter before each group of unique items</option> + <option value="append">Output a delimiter after each group of unique items</option> + <option value="both">Output a delimiter around each group of unique items</option> + </param> + </when> + </conditional> + + <param name="ignorecase" type="boolean" truevalue="-i" falsevalue="" + label="Ignore differences in case when comparing" help="(-i)"/> + <param name="skipfields" type="integer" value="0" + label="Avoid comparing the first N fields" help="Use zero to start from the first field. (-f)" /> + </inputs> + <outputs> + <data name="outfile" format_source="infile" metadata_source="infile"/> + </outputs> + <tests> + <test> + <param name="infile" value="sorted_uniq1.tabular" /> + <param name="grouping_select" value="no"/> + <param name="count" value="True"/> + <param name="ignorecase" value="True"/> + <param name="uniqueonly" value="True"/> + <output name="outfile" file="sorted_uniq_results1.tabular" /> + </test> + <test> + <param name="infile" value="sorted_uniq1.tabular" /> + <param name="ignorecase" value="True"/> + <param name="grouping_select" value="yes"/> + <param name="group" value="separate"/> + <output name="outfile" file="sorted_uniq_results2.tabular" /> + </test> + </tests> + <help> +<![CDATA[ +This tool takes a sorted file and look for lines that are unique. + +.. class:: warningmark + +Please make sure your file is sorted, or else this tool will give you an erroneous output. + +.. class:: infomark + +You can sort your file using either the "Sort" tool in "Filter and Sort", or the "Sort" tool in "Unix Tools". + +@REFERENCES@ +]]> + </help> + <expand macro="citations" /> +</tool> diff --git a/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/tac.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/tac.xml new file mode 100644 index 000000000..3cba88504 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/tac.xml @@ -0,0 +1,92 @@ +<tool id="tp_tac" name="tac" version="@BASE_VERSION@.0"> + <description>reverse a file (reverse cat)</description> + <macros> + <import>macros.xml</import> + </macros> + <expand macro="requirements" /> + <version_command>tac --version | head -n 1</version_command> + <command> +<![CDATA[ + tac + #if str($separator.separator_select) == "yes": + $separator.before + $separator.regex + #if $separator.separator_string: + "$separator.separator_string" + #end if + #end if + "$infile" + > "$outfile" +]]> + </command> + <inputs> + <param name="infile" type="data" format="txt" label="Input file"/> + <conditional name="separator"> + <param name="separator_select" type="select" label="Do you want to use a separator other than newline?"> + <option value="no">No</option> + <option value="yes">Yes</option> + </param> + <when value="no" /> + <when value="yes"> + <param name="before" type="boolean" truevalue="-b" falsevalue="" checked="True" + label="Attach the separator before instead of after" help="(--before)"/> + <param name="regex" type="boolean" truevalue="-r" falsevalue="" checked="True" + label="Interpret the separator as a regular expression" help="(--regex)"/> + <param name="separator_string" type="text" value="" + label="Separator to use" help="(--separator)" /> + </when> + </conditional> + </inputs> + <outputs> + <data name="outfile" format_source="infile" metadata_source="infile"/> + </outputs> + <tests> + <test> + <param name="infile" value="1.bed"/> + <output name="outfile" file="tac_result1.txt"/> + </test> + <test> + <param name="infile" value="1.bed"/> + <param name="separator_select" value="yes"/> + <param name="before" value="True"/> + <output name="outfile" file="tac_result2.txt"/> + </test> + </tests> + <help> +<![CDATA[ +**What it does** + +tac is a Linux command that allows you to see a file line-by-line backwards. It is named by analogy with cat. + +Mandatory arguments to long options are mandatory for short options too: + + -b, --before attach the separator before instead of after + -r, --regex interpret the separator as a regular expression + -s, --separator=STRING use STRING as the separator instead of newline + +----- + +**Example** + +Input file: + + 0 1 2 3 4 5 # 6 7 8 9 + + +default settings: + + 9 8 7 6 # 5 4 3 2 1 0 + +with option -s 5: + + # 6 7 8 9 0 1 2 3 4 5 + +with option -b and -s 5: + + 5 # 6 7 8 9 0 1 2 3 4 + +@REFERENCES@ +]]> + </help> + <expand macro="citations" /> +</tool> diff --git a/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/tail.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/tail.xml new file mode 100644 index 000000000..614a1153a --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/tail.xml @@ -0,0 +1,68 @@ +<tool id="tp_tail_tool" name="Select last" version="@BASE_VERSION@.0"> + <description>lines from a dataset (tail)</description> + <macros> + <import>macros.xml</import> + </macros> + <expand macro="requirements" /> + <version_command>tail --version | head -n 1</version_command> + <command> +<![CDATA[ + tail + --lines $complement$num_lines + '$infile' + > '$outfile' +]]> + </command> + <inputs> + <param name="infile" format="txt" type="data" label="Text file" /> + <param name="complement" type="select" label="Operation"> + <option value="">Keep last lines</option> + <option value="+">Keep everything from this line on</option> + </param> + <param name="num_lines" type="integer" value="10" + label="Number of lines" help="These will be kept (depending on 'operation'). (--lines)" /> + </inputs> + <outputs> + <data name="outfile" format_source="infile" metadata_source="infile" /> + </outputs> + <tests> + <test> + <param name="infile" value="1.bed"/> + <param name="num_lines" value="10"/> + <output name="outfile" file="tail_results1.bed"/> + </test> + <test> + <param name="infile" value="1.bed"/> + <param name="num_lines" value="10"/> + <param name="complement" value="+"/> + <output name="outfile" file="tail_results2.bed"/> + </test> + </tests> + <help> +<![CDATA[ +**What it does** + +This tool outputs specified number of lines from the **end** of a dataset + +----- + +**Example** + +- Input File:: + + chr7 57134 57154 D17003_CTCF_R7 356 - + chr7 57247 57267 D17003_CTCF_R4 207 + + chr7 57314 57334 D17003_CTCF_R5 269 + + chr7 57341 57361 D17003_CTCF_R7 375 + + chr7 57457 57477 D17003_CTCF_R3 188 + + +- Show last two lines of above file. The result is:: + + chr7 57341 57361 D17003_CTCF_R7 375 + + chr7 57457 57477 D17003_CTCF_R3 188 + + +@REFERENCES@ +]]> + </help> + <expand macro="citations" /> +</tool> diff --git a/janis_core/tests/data/galaxy/text_processing-d698c222f354/unfold_column.py b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/unfold_column.py similarity index 100% rename from janis_core/tests/data/galaxy/text_processing-d698c222f354/unfold_column.py rename to janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/unfold_column.py diff --git a/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/unfold_column.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/unfold_column.xml new file mode 100644 index 000000000..0f8f7e0c2 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/unfold_column.xml @@ -0,0 +1,67 @@ +<tool id="tp_unfold_column_tool" name="Unfold" version="@BASE_VERSION@.1"> + <description>columns from a table</description> + <macros> + <import>macros.xml</import> + </macros> + <requirements> + <requirement type="package" version="2.7.13">python</requirement> + </requirements> + <command> +<![CDATA[ + python '$__tool_directory__/unfold_column.py' + '${infile}' + $column + "${delimiter}" + '${outfile}' +]]> + </command> + <inputs> + <param name="infile" format="tabular" type="data" label="File to unfold" /> + <param name="column" type="data_column" data_ref="infile" accept_default="true" label="Column to use for unfolding" /> + <param name="delimiter" type="select" label="Values in column are delimited by"> + <option value=" ">Whitespace</option> + <option value=".">Dot</option> + <option value=",">Comma</option> + <option value="-">Dash</option> + <option value="_">Underscore</option> + <option value="|">Pipe</option> + <option value=";">Semicolon</option> + </param> + </inputs> + <outputs> + <data name="outfile" format_source="infile" metadata_source="infile" /> + </outputs> + <tests> + <test> + <param name="infile" value="unfold_column1.tabular" ftype="tabular"/> + <param name="delimiter" value=" "/> + <param name="column" value="3"/> + <output name="outfile" file="unfold_column_result1.tabular" ftype="tabular"/> + </test> + </tests> + <help> +<![CDATA[ +**What it does** + +This tool will unfold one column of your input dataset. + +----- + +Input Example:: + + a b 1,2,3,4,5 c + + +Output Example:: + + a b 1 c + a b 2 c + a b 3 c + a b 4 c + a b 5 c + +@REFERENCES@ +]]> + </help> + <expand macro="citations" /> +</tool> diff --git a/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/unsorted_uniq.xml b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/unsorted_uniq.xml new file mode 100644 index 000000000..4cd1936a4 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/text_processing-d698c222f354/unsorted_uniq.xml @@ -0,0 +1,94 @@ +<tool id="tp_sorted_uniq" name="Unique" version="@BASE_VERSION@.0"> + <description>occurrences of each record</description> + <macros> + <import>macros.xml</import> + </macros> + <expand macro="requirements" /> + <version_command>sort --version | head -n 1</version_command> + <command> +<![CDATA[ + sort -u + $ignore_case + $is_numeric + -t ' ' + #if $adv_opts.adv_opts_selector == "advanced": + -k$adv_opts.column_start,$adv_opts.column_end + #end if + -o "$outfile" + "$infile" +]]> + </command> + <inputs> + <param name="infile" type="data" format="tabular" label="File to scan for unique values" /> + <param name="ignore_case" type="boolean" truevalue="-f" falsevalue="" checked="False" + label="Ignore differences in case when comparing" help="(-f)"/> + <param name="is_numeric" type="boolean" truevalue="-n" falsevalue="" checked="False" + label="Column only contains numeric values" help="(-n)" /> + <conditional name="adv_opts"> + <param name="adv_opts_selector" type="select" label="Advanced Options"> + <option value="basic" selected="True">Hide Advanced Options</option> + <option value="advanced">Show Advanced Options</option> + </param> + <when value="basic" /> + <when value="advanced"> + <param name="column_start" type="data_column" data_ref="infile" label="Column start" help="Unique on specific column range"/> + <param name="column_end" type="data_column" data_ref="infile" label="Column end" help="Unique on specific column range"/> + </when> + </conditional> + </inputs> + <outputs> + <data name="outfile" format_source="infile" metadata_source="infile"/> + </outputs> + <tests> + <test> + <param name="infile" value="1.bed"/> + <param name="is_numeric" value="True"/> + <param name="ignore_case" value="True"/> + <param name="adv_opts_selector" value="advanced"/> + <param name="column_start" value="2"/> + <param name="column_end" value="3"/> + <output name="outfile" file="unique_results1.bed"/> + </test> + </tests> + <help> +<![CDATA[ + .. class:: infomark + +**Syntax** + +This tool returns all unique lines using the 'sort -u' command. It can be used with unsorted files. +If you need additional options, like grouping or counting your unique results, please use the 'Unique lines from sorted file' tool. + +----- + +.. class:: infomark + +The input file needs to be tab separated. Please convert your file if necessary. + +----- + +**Example** + +- Input file:: + + chr1 10 100 gene1 + chr1 105 200 gene2 + chr1 10 100 gene1 + chr2 10 100 gene4 + chr2 1000 1900 gene5 + chr3 15 1656 gene6 + chr2 10 100 gene4 + +- Unique lines will result in:: + + chr1 10 100 gene1 + chr1 105 200 gene2 + chr2 10 100 gene4 + chr2 1000 1900 gene5 + chr3 15 1656 gene6 + +@REFERENCES@ +]]> +</help> +<expand macro="citations" /> +</tool> diff --git a/janis_core/tests/data/galaxy/wrappers/unicycler-9e3e80cc4ad4/unicycler.xml b/janis_core/tests/data/galaxy/wrappers/unicycler-9e3e80cc4ad4/unicycler.xml new file mode 100644 index 000000000..0f3693537 --- /dev/null +++ b/janis_core/tests/data/galaxy/wrappers/unicycler-9e3e80cc4ad4/unicycler.xml @@ -0,0 +1,572 @@ +<tool id="unicycler" name="Create assemblies with Unicycler" version="@VERSION@.0" profile="20.09"> + <macros> + <token name="@VERSION@">0.4.8</token> + </macros> + <edam_topics> + <edam_topic>topic_0196</edam_topic> + </edam_topics> + <edam_operations> + <edam_operation>operation_0525</edam_operation> + </edam_operations> + <requirements> + <requirement type="package" version="@VERSION@">unicycler</requirement> + </requirements> + <command detect_errors="exit_code"><![CDATA[ +## Preparing files +#if str( $paired_unpaired.fastq_input_selector ) == "paired" + #if $paired_unpaired.fastq_input1.is_of_type('fastqsanger') + #set fq1 = "fq1.fastq" + #elif $paired_unpaired.fastq_input1.is_of_type('fastqsanger.gz') + #set fq1 = "fq1.fastq.gz" + #end if + #if $paired_unpaired.fastq_input2.is_of_type('fastqsanger') + #set fq2 = "fq2.fastq" + #elif $paired_unpaired.fastq_input2.is_of_type('fastqsanger.gz') + #set fq2 = "fq2.fastq.gz" + #end if + ln -s '${paired_unpaired.fastq_input1}' $fq1 && + ln -s '${paired_unpaired.fastq_input2}' $fq2 && +#elif str( $paired_unpaired.fastq_input_selector ) == "paired_collection" + #if $paired_unpaired.fastq_input1.forward.is_of_type('fastqsanger') + #set fq1 = "fq1.fastq" + #elif $paired_unpaired.fastq_input1.forward.is_of_type('fastqsanger.gz') + #set fq1 = "fq1.fastq.gz" + #end if + #if $paired_unpaired.fastq_input1.reverse.is_of_type('fastqsanger') + #set fq2 = "fq2.fastq" + #elif $paired_unpaired.fastq_input1.reverse.is_of_type('fastqsanger.gz') + #set fq2 = "fq2.fastq.gz" + #end if + ln -s '${paired_unpaired.fastq_input1.forward}' $fq1 && + ln -s '${paired_unpaired.fastq_input1.reverse}' $fq2 && +#elif str( $paired_unpaired.fastq_input_selector ) == "single" + #if $paired_unpaired.fastq_input1.is_of_type('fastqsanger') + #set fq = "fq.fastq" + #elif $paired_unpaired.fastq_input1.is_of_type('fastqsanger.gz') + #set fq = "fq.fastq.gz" + #end if + ln -s '${paired_unpaired.fastq_input1}' '$fq' && +#end if +#if $long + #if $long.is_of_type('fastqsanger') + #set lr = "lr.fastq" + #elif $long.is_of_type('fastqsanger.gz') + #set lr = "lr.fastq.gz" + #elif $long.is_of_type('fasta') + #set lr = "lr.fasta" + #end if + ln -s '${long}' '$lr' && +#end if +## Get location for pilon installation +pilon=`pilon --jar_dir` && +## Running Unicycler +unicycler -t "\${GALAXY_SLOTS:-4}" +-o ./ +--verbosity 3 +--pilon_path \$pilon +#if str( $paired_unpaired.fastq_input_selector ) == "paired" + -1 '$fq1' + -2 '$fq2' +#elif str( $paired_unpaired.fastq_input_selector ) == "paired_collection" + -1 '$fq1' + -2 '$fq2' +#elif str( $paired_unpaired.fastq_input_selector ) == "single" + -s '$fq' +#end if +#if $long + -l $lr +#end if +## General Unicycler Options section +## ---------------------------------------------------------- +--mode '$mode' +--min_fasta_length '$min_fasta_length' +--linear_seqs '$linear_seqs' +#if str($min_anchor_seg_len) != '' +--min_anchor_seg_len '$min_anchor_seg_len' +#end if +## Spades Options section +## ---------------------------------------------------------- +$spades.no_correct +--min_kmer_frac '$spades.min_kmer_frac' +--max_kmer_frac '$spades.max_kmer_frac' +#if str($spades.kmers) != '' +--kmers '$spades.kmers' +#end if +--kmer_count '$spades.kmer_count' +--depth_filter '$spades.depth_filter' +#if $spades.largest_component + --largest_component +#end if +## Rotation Options section +## ---------------------------------------------------------- +$rotation.no_rotate +#if $rotation.start_genes + --start_genes '$rotation.start_genes' +#end if +--start_gene_id '$rotation.start_gene_id' +--start_gene_cov '$rotation.start_gene_cov' +## Pilon Options section +## ---------------------------------------------------------- +$pilon.no_pilon +#if str($pilon.min_polish_size) != '' + --min_polish_size '$pilon.min_polish_size' +#end if +## Graph cleaning Options sdection +## ---------------------------------------------------------- +--min_component_size '$graph_clean.min_component_size' +--min_dead_end_size '$graph_clean.min_dead_end_size' +## Long Read Alignment Options +## ---------------------------------------------------------- +#if $lr_align.contamination + --contamination '$lr_align.contamination' +#end if +--scores '${lr_align.scores}' +#if str($lr_align.low_score) != '' + --low_score '$lr_align.low_score' +#end if + ]]></command> + <inputs> + <conditional name="paired_unpaired"> + <param name="fastq_input_selector" type="select" label="Paired or Single end data?" help="Select between paired and single end data"> + <option selected="True" value="paired">Paired</option> + <option value="paired_collection">Paired Collection</option> + <option value="single">Single</option> + <option value="none">None</option> + </param> + <when value="paired"> + <param name="fastq_input1" argument="-1" type="data" format="fastqsanger,fastqsanger.gz" + label="Select first set of reads" help="Specify dataset with forward reads"/> + <param name="fastq_input2" argument="-2" type="data" format="fastqsanger,fastqsanger.gz" + label="Select second set of reads" help="Specify dataset with reverse reads"/> + </when> + <when value="paired_collection"> + <param name="fastq_input1" format="fastqsanger,fastqsanger.gz" type="data_collection" collection_type="paired" label="Select a paired collection" /> + </when> + <when value="single"> + <param name="fastq_input1" argument="-s" type="data" format="fastqsanger,fastqsanger.gz" + label="Select unpaired reads" help="Specify dataset with unpaired reads"/> + </when> + <when value="none"> + </when> + </conditional> + <param argument="--long" optional="true" type="data" format="fastqsanger,fastqsanger.gz,fasta" label="Select long reads. If there are no long reads, leave this empty"/> + <param argument="--mode" type="select" label="Select Bridging mode"> + <option value="conservative">Conservative (smaller contigs, lower misassembly)</option> + <option value="normal" selected="True">Normal (moderate contig size and misassembly rate)</option> + <option value="bold">Bold (longest contigs, higher misassembly rate)</option> + </param> + <param argument="--min_fasta_length" type="integer" value="100" label="Exclude contigs from the FASTA file which are shorter than this length (bp)"/> + <param argument="--linear_seqs" type="integer" value="0" label="The expected number of linear (i.e. non-circular) sequences in the assembly"/> + <param argument="--min_anchor_seg_len" type="integer" min="0" optional="true" label="Unicycler will not use segments shorter than this as scaffolding anchors"/> + <section name="spades" expanded="False" title="SPAdes options" + help="Unicycler uses SPAdes to construct assembly graphs. You can modify some of the SPAdes settings here. Use this ONLY if you know what you are doing!"> + <param argument="--no_correct" type="boolean" checked="false" truevalue="--no_correct" falsevalue="" + label="Skip SPAdes error correction step" help="This option turns off SPAdes error correction. Generally it is highly recommended to use correction."/> + <param argument="--min_kmer_frac" type="float" min="0" max="1" value="0.2" + label="Lowest k-mer size for SPAdes assembly, expressed as a fraction of the read length"/> + <param argument="--max_kmer_frac" type="float" min="0" max="1" value="0.95" + label="Highest k-mer size for SPAdes assembly, expressed as a fraction of the read length"/> + <param argument="--kmers" type="text" value="" optional="true" label="Exact k-mers to use for SPAdes assembly, comma-separated"> + <validator type="regex" message="Kmers must be comma-separated odd integers (no repitition) without space in the range of 11 to 127 (inclusive)">^(\d*[13579],)*(\d*[13579])$</validator> + </param> + <param argument="--kmer_count" type="integer" min="0" value="10" label="Number of k-mer steps to use in SPAdes assembly"/> + <param argument="--depth_filter" type="float" min="0" max="1" value="0.25" + label="Filter out contigs lower than this fraction of the chromosomal depth" help="It is done if does not result in graph dead ends"/> + <param argument="--largest_component" type="boolean" checked="false" + label="Only keep the largest connected component of the assembly graph"/> + </section> + <section name="rotation" expanded="false" title="Rotation options" + help="These options control the rotation of completed circular sequence near the end of the Unicycler pipeline. Use this ONLY if you know what you are doing!"> + <param argument="--no_rotate" type="boolean" checked="false" truevalue="--no_rotate" falsevalue="" + label="Do not rotate completed replicons to start at a standard gene." help="Unicycler uses TBLASTN to search for dnaA or repA alleles in each completed replicon. If one is found, the sequence is rotated and/or flipped so that it begins with that gene encoded on the forward strand. This provides consistently oriented assemblies and reduces the risk that a gene will be split across the start and end of the sequence."/> + <param argument="--start_genes" optional="true" type="data" format="fasta" label="FASTA file of genes for start point of rotated replicons" /> + <param argument="--start_gene_id" type="float" min="0" max="100" value="90" label="The minimum required BLAST percent identity for a start gene search"/> + <param argument="--start_gene_cov" type="float" min="0" max="100" value="95" label="The minimum required BLAST percent coverage for a start gene search"/> + </section> + <section name="pilon" title="Pilon options" expanded="false"> + <param argument="--no_pilon" type="boolean" checked="false" truevalue="--no_pilon" falsevalue="" + label="Do not use Pilon to polish the final assembly." help="Unicycler uses Pilon tool for polishing final assembly."/> + <param argument="--min_polish_size" type="integer" min="0" value="1000" label="Contigs shorter than this value (bp) will not be polished using Pilon"/> + </section> + <section name="graph_clean" expanded="false" title="Graph cleaning options" + help="These options control the removal of small leftover sequences after bridging is complete."> + <param argument="--min_component_size" type="integer" min="0" value="1000" + label="Unbridged graph components smaller than this size will be removed from the final graph" /> + <param argument="--min_dead_end_size" type="integer" min="0" value="1000" + label="Graph dead ends smaller than this size will be removed from the final graph"/> + </section> + <section name="lr_align" expanded="false" title="Long read alignment parameters" help="These options control the alignment of long reads to the assembly graph."> + <param argument="--contamination" optional="true" type="data" format="fasta" + label="FASTA file of known contamination in long reads, e.g. lambda, phiXm or puc18 spike-ins." /> + <param argument="--scores" type="text" value="3,-6,-5,-2" label="Comma-delimited string of alignment scores: match, mismatch, gap open, gap extend"/> + <param argument="--low_score" optional="true" type="integer" value="" + label="Score threshold - alignments below this are considered poor" help="default = set automatically"/> + </section> + </inputs> + <outputs> + <data name="assembly_graph" format="gfa1" from_work_dir="assembly.gfa" label="${tool.name} on ${on_string}: Final Assembly Graph" /> + <data name="assembly" format="fasta" from_work_dir="assembly.fasta" label="${tool.name} on ${on_string}: Final Assembly"/> + </outputs> + <tests> + <test> + <conditional name="paired_unpaired"> + <param name="fastq_input_selector" value="paired" /> + <param name="fastq_input1" value="phix_f.fq.gz" ftype="fastqsanger" /> + <param name="fastq_input2" value="phix_r.fq.gz" ftype="fastqsanger" /> + </conditional> + <param name="mode" value="normal" /> + <param name="min_fasta_length" value="100"/> + <param name="linear_seqs" value="0"/> + <section name="spades"> + <param name="no_correct" value="true"/> + <param name="min_kmer_frac" value="0.2"/> + <param name="max_kmer_frac" value="0.95"/> + <param name="kmer_count" value="10"/> + <param name="depth_filter" value="0.25"/> + </section> + <section name="rotation"> + <param name="no_rotate" value=""/> + <param name="start_gene_id" value="90"/> + <param name="start_gene_cov" value="95"/> + </section> + <section name="pilon"> + <param name="no_pilon" value=""/> + <param name="min_polish_size" value="1000"/> + </section> + <section name="graph_clean"> + <param name="min_component_size" value="1000"/> + <param name="min_dead_end_size" value="1000"/> + </section> + <section name="lr_align"> + <param name="scores" value="3,-6,-5,-2"/> + </section> + <output name="assembly_graph" ftype="gfa1"> + <assert_contents> + <has_line_matching expression="S\t1\t[ATCG]{5386,5386}\tLN:i:5386\tdp:f:1.0"/> + </assert_contents> + </output> + <output name="assembly" ftype="fasta"> + <assert_contents> + <has_text text="length=5386" /> + </assert_contents> + </output> + </test> + <!-- + Following test corresponds to the command: + + unicycler -t "${GALAXY_SLOTS:-8}" -o ./ - -verbose 3 - -pilon_path `pilon - -jar_dir` \ + -1 test-data/phix_f.fq.gz -2 test-data/phix_r.fq.gz -l test-data/onp.fa \ + - -mode 'normal' - -no_correct + + This command causes a segfault with the current version of unicycler on bioconda for Linux + during the minimap step (which seems to be compiled C code). A gist of the log can be found + at: https://gist.github.com/jmchilton/b411b695170c1daea6589f5d76e326cb. + --> + <test> + <conditional name="paired_unpaired"> + <param name="fastq_input_selector" value="paired" /> + <param name="fastq_input1" value="phix_f.fq.gz" ftype="fastqsanger.gz" /> + <param name="fastq_input2" value="phix_r.fq.gz" ftype="fastqsanger.gz" /> + </conditional> + <param name="long" value="onp.fa" ftype="fasta" /> + <param name="mode" value="normal" /> + <param name="min_fasta_length" value="100"/> + <param name="linear_seqs" value="0"/> + <section name="spades"> + <param name="no_correct" value="true"/> + <param name="min_kmer_frac" value="0.2"/> + <param name="max_kmer_frac" value="0.95"/> + <param name="kmer_count" value="10"/> + <param name="depth_filter" value="0.25"/> + </section> + <section name="rotation"> + <param name="no_rotate" value=""/> + <param name="start_gene_id" value="90"/> + <param name="start_gene_cov" value="95"/> + </section> + <section name="pilon"> + <param name="no_pilon" value=""/> + <param name="min_polish_size" value="1000"/> + </section> + <section name="graph_clean"> + <param name="min_component_size" value="1000"/> + <param name="min_dead_end_size" value="1000"/> + </section> + <section name="lr_align"> + <param name="scores" value="3,-6,-5,-2"/> + </section> + <output name="assembly_graph" ftype="gfa1"> + <assert_contents> + <has_line_matching expression="S\t1\t[ATCG]{5386,5386}\tLN:i:5386\tdp:f:1.0"/> + </assert_contents> + </output> + <output name="assembly" ftype="fasta"> + <assert_contents> + <has_text text="length=5386" /> + </assert_contents> + </output> + </test> + <test> + <conditional name="paired_unpaired"> + <param name="fastq_input_selector" value="paired_collection"/> + <param name="fastq_input1"> + <collection type="paired"> + <element name="forward" value="phix_f.fq.gz" ftype="fastqsanger" /> + <element name="reverse" value="phix_r.fq.gz" ftype="fastqsanger" /> + </collection> + </param> + </conditional> + <param name="mode" value="normal" /> + <param name="min_fasta_length" value="100"/> + <param name="linear_seqs" value="0"/> + <section name="spades"> + <param name="no_correct" value="true"/> + <param name="min_kmer_frac" value="0.2"/> + <param name="max_kmer_frac" value="0.95"/> + <param name="kmer_count" value="10"/> + <param name="depth_filter" value="0.25"/> + </section> + <section name="rotation"> + <param name="no_rotate" value=""/> + <param name="start_gene_id" value="90"/> + <param name="start_gene_cov" value="95"/> + </section> + <section name="pilon"> + <param name="no_pilon" value="true"/> + <param name="min_polish_size" value="1000"/> + </section> + <section name="graph_clean"> + <param name="min_component_size" value="1000"/> + <param name="min_dead_end_size" value="1000"/> + </section> + <section name="lr_align"> + <param name="scores" value="3,-6,-5,-2"/> + </section> + <output name="assembly_graph" ftype="gfa1"> + <assert_contents> + <has_line_matching expression="S\t1\t[ATCG]{5386,5386}\tLN:i:5386\tdp:f:1.0"/> + </assert_contents> + </output> + <output name="assembly" ftype="fasta"> + <assert_contents> + <has_text text="length=5386" /> + </assert_contents> + </output> + </test> + <test> + <conditional name="paired_unpaired"> + <param name="fastq_input_selector" value="none"/> + </conditional> + <param name="min_anchor_seg_len" value="10"/> + <section name="spades"> + <param name="kmers" value="21,23"/> + </section> + <param name="long" value="only_long.fasta" ftype="fasta" /> + <output name="assembly_graph" ftype="gfa1"> + <assert_contents> + <has_text text="S" /> + </assert_contents> + </output> + <output name="assembly" ftype="fasta"> + <assert_contents> + <has_text text=">1" /> + </assert_contents> + </output> + </test> + </tests> + <help><![CDATA[ + +**Unicycler** + +Unicycler is a hybrid assembly pipeline for bacterial genomes. It uses both Illumina reads and long reads (PacBio or Nanopore) to produce complete and accurate assemblies. It is written by `Ryan Wick`_ at the University of Melbourne's Centre for Systems Genomics. Much of the description below is lifted from Unicycler's `github page`_. + +.. _`Ryan Wick`: https://github.com/rrwick +.. _`github page`: https://github.com/rrwick/Unicycler + +----- + +**Input data** + +Unicycler accepts inputs short (Illumina) reads in FASTQ format. Galaxy places additional requirement of having these in FASTQ format with `Sanger encoding`_ of quality scores. Long reads (from Oxford Nanopore or PacBio) can be either in FASTQ of FASTA form. + +.. _`Sanger encoding`: https://en.wikipedia.org/wiki/FASTQ_format#Quality + +The input options are:: + + -1 SHORT1, --short1 SHORT1 + FASTQ file of short reads (first reads in each pair) + -2 SHORT2, --short2 SHORT2 + FASTQ file of short reads (second reads in each pair) + -s SHORT_UNPAIRED, --short_unpaired SHORT_UNPAIRED + FASTQ file of unpaired short reads + -l LONG, --long LONG + FASTQ or FASTA file of long reads, if all reads are available at start. + +----- + +**Bridging mode** + +Unicycler can be run in three modes: conservative, normal (the default) and bold, set with the --mode option. Conservative mode is least likely to produce a complete assembly but has a very low risk of misassembly. Bold mode is most likely to produce a complete assembly but carries greater risk of misassembly. Normal mode is intermediate regarding both completeness and misassembly risk. See `description of modes`_ for more information. + +.. _`description of modes`: https://github.com/rrwick/Unicycler#conservative-normal-and-bold + +The available modes are:: + + --mode {conservative,normal,bold} + Bridging mode (default: normal) + conservative = smaller contigs, lowest misassembly rate + normal = moderate contig size and misassembly rate + bold = longest contigs, higher misassembly rate + +---- + +**Skip SPAdes error correction step** + +Sequencing data contains a substantial number of sequencing errors that manifest themselves as deviations (bulges and non-connected components) within the assembly graph. One of the ways to improve the graph even constructing it is to minimize the amount sequencing errors by performing error correction. SPAdes, which is used by Unicycler for error correction and assembly, uses `BayesHammer`_ to correct the reads. Here is a brief summary of what it does: + + 1. SPAdes (or rather BayesHammer) counts *k*-mers in reads and computed *k*-mer statistics that takes into account base quality values. + 2. `Hamming graph`_ is constructed for *k*-mers is which *k*-mers are nodes. In this graph edges connect nodes (*k*-mers) is they differ from each other by a number of nucleotides up to a certain threshold (the `Hamming distance`_). The graph is central to the error correction algorithm. + 3. At this step Bayesian subclustering of the graph produced in the previous step. For each *k*-mer we now know the center of its subcluster. + 4. Solid *k*-mers are derived from cluster centers and are assumed to be *error free*. + 5. Solid *k*-mers are mapped back to the reads and used to correct them. + +This step takes considerable time, so if one need to quickly evaluate assemblies this step can be skipped. However, this is not recommended if one if trying to produce a final high quality assembly. + +.. _`BayesHammer`: https://goo.gl/1iGkMe +.. _`Hamming graph`: https://en.wikipedia.org/wiki/Hamming_graph +.. _`Hamming distance`: https://en.wikipedia.org/wiki/Hamming_distance + +This following option turns error correction on and off:: + + --no_correct + Skip SPAdes error correction step + (default: conduct SPAdes error correction) + +----- + +**Do not rotate completed replicons to start at a standard gene** + +Unicycler uses TBLASTN to search for dnaA or repA alleles in each completed replicon. If one is found, the sequence is rotated and/or flipped so that it begins with that gene encoded on the forward strand. This provides consistently oriented assemblies and reduces the risk that a gene will be split across the start and end of the sequence. + +The following option turns rotation on and off:: + + --no_rotate + Do not rotate completed replicons + to start at a standard gene + (default: completed replicons are rotated) + +**Do not use Pilon to polish the final assembly** + +`Pilon`_ is a tool for improving overall quality of draft assemblies and finding variation among strains. Unicycler uses it for assembly *polishing*. + +The following option turns pilon part of Unicycler pipeline on and off:: + + --no_pilon + Do not use Pilon to polish the + final assembly (default: Pilon is used) + +.. _`Pilon`: https://github.com/broadinstitute/pilon/wiki + +------ + +**Expected number of linear sequences** + +If you expect your sample to contain linear (non circular) sequences, set this option:: + + --linear_seqs EXPECTED_LINEAR_SEQS + The expected number of linear (i.e. non-circular) + sequences in the underlying sequence + +---- + +**SPAdes options** + +This section provides control of SPAdes options:: + + --min_kmer_frac MIN_KMER_FRAC + Lowest k-mer size for SPAdes assembly, + expressed as a fraction of the read length + (default: 0.2) + --max_kmer_frac MAX_KMER_FRAC + Highest k-mer size for SPAdes assembly, + expressed as a fraction of the read length + (default: 0.95) + --kmer_count KMER_COUNT + Number of k-mer steps to use in + SPAdes assembly (default: 10) + --depth_filter DEPTH_FILTER + Filter out contigs lower than this fraction + of the chromosomal depth, if doing so does + not result in graph dead ends (default: 0.25) + +---- + +**Rotation options** + +Unicycler attempts to rotate circular assemblies to make sure that they begin at a consistent starting gene. The following parameters control assembly rotation:: + + --start_genes START_GENES + FASTA file of genes for start point + of rotated replicons + (default: start_genes.fasta) + --start_gene_id START_GENE_ID + The minimum required BLAST percent identity + for a start gene search + (default: 90.0) + --start_gene_cov START_GENE_COV + The minimum required BLAST percent coverage + for a start gene search + (default: 95.0) + +----- + +**Graph cleaning options** + +These options control the removal of small leftover sequences after bridging is complete:: + + --min_component_size MIN_COMPONENT_SIZE + Unbridged graph components smaller + than this size (bp) will be removed + from the final graph (default: 1000) + --min_dead_end_size MIN_DEAD_END_SIZE + Graph dead ends smaller than this size (bp) + will be removed from the final graph + (default: 1000) + +----- + +**Long read alignment options** + +These options control the alignment of long reads to the assembly graph:: + + --contamination CONTAMINATION + FASTA file of known contamination in long reads + --scores SCORES + Comma-delimited string of alignment scores: + match, mismatch, gap open, gap extend + (default: 3,-6,-5,-2) + --low_score LOW_SCORE + Score threshold - alignments below this + are considered poor + (default: set threshold automatically) + +----- + +**Outputs** + +Galaxy's wrapped for Unicycler produces two outputs: + + * final assembly in FASTA format + * final assembly grapth in graph format + + While most will likely be interested in the FASTA dataset, the graph dataset is also quite useful and can be visualized using tools such as `Bandage`_. + + +.. _`Bandage`: https://github.com/rrwick/Bandage + + + ]]></help> + <citations> + <citation type="doi">10.1101/096412</citation> + </citations> +</tool> diff --git a/janis_core/tests/mock/mock_entities.py b/janis_core/tests/mock/mock_entities.py index 72f4cd602..3becfc1f9 100644 --- a/janis_core/tests/mock/mock_entities.py +++ b/janis_core/tests/mock/mock_entities.py @@ -14,9 +14,9 @@ from .mock_tool import MOCK_TOOL_ABRICATE -GALAXY_TESTDATA_PATH = os.path.join(os.getcwd(), 'janis_core/tests/data/galaxy') +GALAXY_TESTWF_PATH = os.path.join(os.getcwd(), 'janis_core/tests/data/galaxy/workflows') -gx_workflow_path = f'{GALAXY_TESTDATA_PATH}/wf_abricate.ga' +gx_workflow_path = f'{GALAXY_TESTWF_PATH}/wf_abricate.ga' step1_wrapper_details = { "owner": "iuc", "repo": "abricate", diff --git a/janis_core/tests/mock/mock_tool.py b/janis_core/tests/mock/mock_tool.py index b1f5dad58..3a5b4d1c2 100644 --- a/janis_core/tests/mock/mock_tool.py +++ b/janis_core/tests/mock/mock_tool.py @@ -16,6 +16,7 @@ ) MOCK_TOOL_ABRICATE = ITool( + xmltool=None, metadata=MOCK_TOOL_METADATA, configfiles=[], scripts=[], diff --git a/janis_core/tests/test_ingestion_galaxy.py b/janis_core/tests/test_ingestion_galaxy.py index f9dba202d..839fcf03e 100644 --- a/janis_core/tests/test_ingestion_galaxy.py +++ b/janis_core/tests/test_ingestion_galaxy.py @@ -84,6 +84,8 @@ QUERY3_EXPECTED_RESULT = 'quay.io/biocontainers/cutadapt:3.5--py36h91eb985_1' GALAXY_TESTDATA_PATH = os.path.join(os.getcwd(), 'janis_core/tests/data/galaxy') +GALAXY_TESTTOOL_PATH = os.path.join(os.getcwd(), 'janis_core/tests/data/galaxy/wrappers') +GALAXY_TESTWF_PATH = os.path.join(os.getcwd(), 'janis_core/tests/data/galaxy/workflows') ### helper functions ### @@ -100,10 +102,6 @@ def _reset_global_settings() -> None: settings.graph.ALLOW_UNKNOWN_SCATTER_FIELDS = False datatypes.populate() -def _run(filepath: str, srcfmt: str, destfmt: str) -> Optional[str]: - wf = ingest(filepath, srcfmt) - return translate(wf, destfmt, allow_empty_container=True, export_path='./translated') - def _load_gxworkflow(filepath: str) -> dict[str, Any]: with open(filepath, 'r') as fp: return json.load(fp) @@ -111,53 +109,19 @@ def _load_gxworkflow(filepath: str) -> dict[str, Any]: def _load_tool_state(step: dict[str, Any], additional_filters: list[str]=[]) -> dict[str, Any]: metadata = parse_step_metadata(step) runtime.tool.update_via_wrapper(metadata.wrapper) - return load_tool_state(step, additional_filters=additional_filters) + xmltool = load_xmltool(runtime.tool.tool_path) + return load_tool_state(xmltool, step, additional_filters=additional_filters) def _configure_tool_settings(step: dict[str, Any]) -> None: metadata = parse_step_metadata(step) runtime.tool.update_via_wrapper(metadata.wrapper) -def _read_cmd(path: str) -> str: - tree = et.parse(path) - root = tree.getroot() - assert(root.text) - return root.text - def _load_xmltool_for_step(filepath: str, step: int) -> XMLTool: gx_workflow = _load_gxworkflow(filepath) gx_step = gx_workflow['steps'][str(step)] _configure_tool_settings(gx_step) return load_xmltool(runtime.tool.tool_path) -def _docker_not_running() -> bool: - import subprocess - try: - completed_process = subprocess.run(['docker', 'version'], shell=True, capture_output=True) - if completed_process.returncode == 0: - return True - else: - return False - except FileNotFoundError: - return False - - -# def _prepare_tool_state_for_cheetah(path: str, step: int) -> dict[str, Any]: -# with open(path, 'r') as fp: -# gxworkflow = json.load(fp) -# step = gxworkflow['steps'][str(step)] -# _configure_tool_settings(step) -# tool_state = load_tool_state(step) -# return tool_state - -# def _load_tool_command_and_state(step: dict[str, Any], flat: bool=False) -> Tuple[str, dict[str, Any]]: -# xmltool = load_xmltool(runtime.tool.tool_path) -# tool_state = load_tool_state(step, flat=flat) -# cmdstr = simplify_xmltool_command( -# xmltool=xmltool, -# inputs_dict=tool_state, -# # additional_filters=['remove_dataset_attributes', 'remove_dataset_methods'] -# ) -# return cmdstr, tool_state @@ -170,26 +134,24 @@ def setUp(self) -> None: _reset_global_settings() def test_fastqc(self) -> None: - filepath = f'{GALAXY_TESTDATA_PATH}/fastqc-5ec9f6bceaee/rgFastQC.xml' + filepath = f'{GALAXY_TESTTOOL_PATH}/fastqc-5ec9f6bceaee/rgFastQC.xml' runtime.tool.tool_path = filepath tool = load_xmltool(filepath) print() @unittest.skip('requires moving to new parser') def test_fastqc2(self) -> None: - filepath = f'{GALAXY_TESTDATA_PATH}/fastqc-5ec9f6bceaee/rgFastQC.xml' + filepath = f'{GALAXY_TESTTOOL_PATH}/fastqc-5ec9f6bceaee/rgFastQC.xml' tool = load_xmltool_new(filepath) print() @unittest.skip('requires moving to new parser') def test_hisat2(self) -> None: - filepath = f'{GALAXY_TESTDATA_PATH}/fastqc-5ec9f6bceaee/hisat2.xml' + filepath = f'{GALAXY_TESTTOOL_PATH}/fastqc-5ec9f6bceaee/hisat2.xml' tool = load_xmltool(filepath) print() - -@pytest.mark.basic class TestRegexToGlob(unittest.TestCase): def setUp(self) -> None: @@ -235,38 +197,32 @@ def test_convert_hard(self) -> None: class TestAccessoryFiles(unittest.TestCase): - def setUp(self) -> None: + LIMMA_VOOM_WF_FILEPATH = os.path.abspath(f'{GALAXY_TESTWF_PATH}/limma_voom_wf.ga') + ANNOTATE_MY_IDS_FILEPATH = os.path.abspath(f'{GALAXY_TESTWF_PATH}/annotate-my-ids-wf.ga') + srcfmt = 'galaxy' + + @classmethod + def setUpClass(cls) -> None: + # settings.translate.MODE = 'extended' _reset_global_settings() - self.srcfmt = 'galaxy' - + cls.limma_voom_wf = ingest(cls.LIMMA_VOOM_WF_FILEPATH, cls.srcfmt) + _reset_global_settings() + cls.annotate_myids_wf = ingest(cls.ANNOTATE_MY_IDS_FILEPATH, cls.srcfmt) + def test_scripts_files_to_create(self) -> None: - settings.translate.MODE = 'extended' - filepath = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/limma_voom_wf.ga') - wf = ingest(filepath, self.srcfmt) - assert(isinstance(wf, Workflow)) - tool = wf.step_nodes['limma_voom'].tool + # getting tool + assert(isinstance(self.limma_voom_wf, Workflow)) + tool = self.limma_voom_wf.step_nodes['limma_voom'].tool assert(isinstance(tool, CommandTool)) # checking files_to_create entry for script self.assertEqual(len(tool.files_to_create()), 1) self.assertIn('limma_voom.R', tool.files_to_create()) - def test_configfiles_files_to_create(self) -> None: - filepath = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/annotate-my-ids-wf.ga') - wf = ingest(filepath, self.srcfmt) - assert(isinstance(wf, Workflow)) - tool = wf.step_nodes['annotatemyids'].tool - assert(isinstance(tool, CommandTool)) - - # checking files_to_create entry for configfile - self.assertEqual(len(tool.files_to_create()), 1) - self.assertIn('annotatemyids_script', tool.files_to_create()) - def test_scripts_as_params(self) -> None: - filepath = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/limma_voom_wf.ga') - wf = ingest(filepath, self.srcfmt) - assert(isinstance(wf, Workflow)) - tool = wf.step_nodes['limma_voom'].tool + # getting tool + assert(isinstance(self.limma_voom_wf, Workflow)) + tool = self.limma_voom_wf.step_nodes['limma_voom'].tool assert(isinstance(tool, CommandTool)) # checking ToolInput for script @@ -275,12 +231,31 @@ def test_scripts_as_params(self) -> None: self.assertIsInstance(tinput.input_type, File) self.assertEqual(tinput.position, 1) self.assertIsNone(tinput.prefix) + + def test_scripts_workflow_components(self) -> None: + # checking Workflow InputNode for script + assert(isinstance(self.limma_voom_wf, Workflow)) + self.assertIn('limma_voom_script', self.limma_voom_wf.input_nodes) + + # checking Workflow InputNode source for script when calling tool + step = self.limma_voom_wf.step_nodes['limma_voom'] + self.assertIn('limma_voom_script', step.sources) + source = step.sources['limma_voom_script'].source_map[0].source + self.assertEqual(source.id(), 'limma_voom_script') + + def test_configfiles_files_to_create(self) -> None: + # getting tool + assert(isinstance(self.annotate_myids_wf, Workflow)) + tool = self.annotate_myids_wf.step_nodes['annotatemyids'].tool + assert(isinstance(tool, CommandTool)) + + # checking files_to_create entry for configfile + self.assertEqual(len(tool.files_to_create()), 1) + self.assertIn('annotatemyids_script', tool.files_to_create()) def test_configfiles_as_params(self) -> None: - filepath = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/annotate-my-ids-wf.ga') - wf = ingest(filepath, self.srcfmt) - assert(isinstance(wf, Workflow)) - tool = wf.step_nodes['annotatemyids'].tool + assert(isinstance(self.annotate_myids_wf, Workflow)) + tool = self.annotate_myids_wf.step_nodes['annotatemyids'].tool assert(isinstance(tool, CommandTool)) # checking ToolInput for configfile @@ -289,38 +264,19 @@ def test_configfiles_as_params(self) -> None: self.assertIsInstance(tinput.input_type, File) self.assertEqual(tinput.position, 1) self.assertIsNone(tinput.prefix) - - def test_scripts_workflow_components(self) -> None: - filepath = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/limma_voom_wf.ga') - wf = ingest(filepath, self.srcfmt) - assert(isinstance(wf, Workflow)) - - # checking Workflow InputNode for script - self.assertIn('limma_voom_script', wf.input_nodes) - - # checking Workflow InputNode source for script when calling tool - step = wf.step_nodes['limma_voom'] - self.assertIn('limma_voom_script', step.sources) - source = step.sources['limma_voom_script'].source_map[0].source - self.assertEqual(source.id(), 'limma_voom_script') def test_configfiles_workflow_components(self) -> None: - filepath = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/annotate-my-ids-wf.ga') - wf = ingest(filepath, self.srcfmt) - assert(isinstance(wf, Workflow)) - # checking Workflow InputNode for configfile - self.assertIn('annotatemyids_script', wf.input_nodes) + assert(isinstance(self.annotate_myids_wf, Workflow)) + self.assertIn('annotatemyids_script', self.annotate_myids_wf.input_nodes) # checking Workflow InputNode source for configfile when calling tool - step = wf.step_nodes['annotatemyids'] + step = self.annotate_myids_wf.step_nodes['annotatemyids'] self.assertIn('annotatemyids_script', step.sources) source = step.sources['annotatemyids_script'].source_map[0].source self.assertEqual(source.id(), 'annotatemyids_script') - - class TestResolveDependencies(unittest.TestCase): def setUp(self) -> None: @@ -330,21 +286,25 @@ def setUp(self) -> None: settings.testing.TESTING_USE_DEFAULT_CONTAINER = False def test_coreutils_requirement(self) -> None: - filepath = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/text_processing-d698c222f354/cut.xml') + # TODO use deterministic quay.io uri + raise NotImplementedError + filepath = os.path.abspath(f'{GALAXY_TESTTOOL_PATH}/text_processing-d698c222f354/cut.xml') jtool = ingest_galaxy(filepath) image_uri = jtool.container() self.assertEqual(image_uri, 'quay.io/biocontainers/coreutils:8.25--1') def test_single_requirement(self) -> None: - wf_path = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/wf_abricate.ga') + # TODO use deterministic quay.io uri + raise NotImplementedError + wf_path = os.path.abspath(f'{GALAXY_TESTWF_PATH}/wf_abricate.ga') xmltool = _load_xmltool_for_step(wf_path, 1) image_uri = resolve_dependencies_as_container(xmltool) self.assertEqual(image_uri, 'quay.io/biocontainers/abricate:1.0.1--ha8f3691_1') - #@unittest.skipUnless(_docker_not_running(), 'docker daemon must be running to test this') - @unittest.skip("requires docker to test") def test_multiple_requirements(self) -> None: - wf_path = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/hisat2_wf.ga') + # TODO use mulled-hash + raise NotImplementedError + wf_path = os.path.abspath(f'{GALAXY_TESTWF_PATH}/hisat2_wf.ga') xmltool = _load_xmltool_for_step(wf_path, 2) image_uri = resolve_dependencies_as_container(xmltool) self.assertEqual(image_uri, 'quay.io/ppp-janis-translate/hisat2:2.2.1') @@ -363,12 +323,12 @@ def get_marked_main_statement(self, filepath: str, step: int) -> str: return text def test_wf_featurecounts(self) -> None: - filepath = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/wf_featurecounts.ga') + filepath = os.path.abspath(f'{GALAXY_TESTWF_PATH}/wf_featurecounts.ga') text = self.get_marked_main_statement(filepath, 1) self.assertIn('\n__JANIS_MAIN__\n\nfeatureCounts', text) def test_wf_unicycler(self) -> None: - filepath = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/unicycler_assembly.ga') + filepath = os.path.abspath(f'{GALAXY_TESTWF_PATH}/unicycler_assembly.ga') # fastqc text = self.get_marked_main_statement(filepath, 3) @@ -391,7 +351,7 @@ def test_wf_unicycler(self) -> None: self.assertIn('\n__JANIS_MAIN__\n\n#end if\nbusco', text) def test_wf_rna_seq_reads_to_counts(self) -> None: - filepath = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/rna_seq_reads_to_counts.ga') + filepath = os.path.abspath(f'{GALAXY_TESTWF_PATH}/rna_seq_reads_to_counts.ga') # fastqc text = self.get_marked_main_statement(filepath, 2) @@ -434,16 +394,23 @@ def test_wf_rna_seq_reads_to_counts(self) -> None: self.assertIn('\n__JANIS_MAIN__\n\n#end for\n#end if\n#end for\nmultiqc', text) - class TestCommandAnnotation(unittest.TestCase): + CUTADAPT_WF_FILEPATH = os.path.abspath(f'{GALAXY_TESTWF_PATH}/cutadapt_wf.ga') + LIMMAVOOM_WF_FILEPATH = os.path.abspath(f'{GALAXY_TESTWF_PATH}/limma_voom_wf.ga') + + @classmethod + def setUpClass(cls) -> None: + _reset_global_settings() + cls.cutadapt_xmltool = _load_xmltool_for_step(cls.CUTADAPT_WF_FILEPATH, 2) + _reset_global_settings() + cls.limmavoom_xmltool = _load_xmltool_for_step(cls.LIMMAVOOM_WF_FILEPATH, 3) + def setUp(self) -> None: _reset_global_settings() def test_simple_inline_bool_annotator(self) -> None: - filepath = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/cutadapt_wf.ga') - xmltool = _load_xmltool_for_step(filepath, 2) - command = gen_command(xmltool, annotators=['SimpleInlineBoolAnnotator']) + command = gen_command(self.cutadapt_xmltool, annotators=['SimpleInlineBoolAnnotator']) expected_flags = set([ '--no-indels', '--revcomp', '--discard-trimmed', '--discard-untrimmed', '--discard-cassava', '--trim-n', '--zero-cap' @@ -454,26 +421,8 @@ def test_simple_inline_bool_annotator(self) -> None: self.assertEqual(len(command.positionals), 0) self.assertIsNone(command.redirect) - def test_simple_multiline_bool_annotator(self) -> None: - filepath = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/limma_voom_wf.ga') - xmltool = _load_xmltool_for_step(filepath, 3) - command = gen_command(xmltool, annotators=['SimpleMultilineBoolAnnotator']) - # expected_flags = set([ - # '-y', '-F', '-x', '-L', '-r', '-T', '-w', '-b' - # ]) - expected_flags = set([ - '-F', '-x', '-L', '-r', '-T', '-w', '-b' - ]) - actual_flags = set(list(command.flags.keys())) - self.assertSetEqual(actual_flags, expected_flags) - self.assertEqual(len(command.options), 0) - self.assertEqual(len(command.positionals), 0) - self.assertIsNone(command.redirect) - def test_simple_select_annotator(self) -> None: - filepath = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/cutadapt_wf.ga') - xmltool = _load_xmltool_for_step(filepath, 2) - command = gen_command(xmltool, annotators=['SimpleSelectAnnotator']) + command = gen_command(self.cutadapt_xmltool, annotators=['SimpleSelectAnnotator']) expected_flags = set([ '--match-read-wildcards', '--no-match-adapter-wildcards' ]) @@ -488,9 +437,7 @@ def test_simple_select_annotator(self) -> None: self.assertIsNone(command.redirect) def test_option_param_annotator(self) -> None: - filepath = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/cutadapt_wf.ga') - xmltool = _load_xmltool_for_step(filepath, 2) - command = gen_command(xmltool, annotators=['OptionParamAnnotator']) + command = gen_command(self.cutadapt_xmltool, annotators=['OptionParamAnnotator']) expected_options = set([ '--nextseq-trim', '-U', @@ -513,10 +460,79 @@ def test_option_param_annotator(self) -> None: self.assertEqual(len(command.positionals), 0) self.assertIsNone(command.redirect) + def test_all_cutadapt(self) -> None: + command = gen_command(self.cutadapt_xmltool) + expected_positionals = set([ + 'cutadapt', 'input_1', 'input_2' + ]) + expected_flags = set([ + '--no-indels', + '--revcomp', + '--discard-trimmed', + '--discard-untrimmed', + '--discard-cassava', + '--trim-n', + '--zero-cap', + '--match-read-wildcards', + '--no-match-adapter-wildcards' + ]) + expected_options = set([ + '--action', + '--pair-filter', + '-u', + '-U', + '-Q', + '--error-rate', + '--times', + '--overlap', + '--max-n', + '--max-expected-errors', + '--quality-cutoff', + '--nextseq-trim', + '--strip-suffix', + '--length', + '--length-tag', + '--rename', + '--minimum-length', + '--maximum-length', + '-j', + '--json', + '--info-file', + '--rest-file', + '--wildcard-file', + '--too-short-output', + '--too-long-output', + '--too-short-paired-output', + '--too-long-paired-output', + '--untrimmed-paired-output', + '--paired-output', + '--untrimmed-output', + '--output', + ]) + actual_flags = set(list(command.flags.keys())) + actual_options = set(list(command.options.keys())) + actual_positionals = set([x.name for x in command.positionals.values()]) + self.assertSetEqual(actual_positionals, expected_positionals) + self.assertSetEqual(actual_flags, expected_flags) + self.assertSetEqual(actual_options, expected_options) + self.assertIsNotNone(command.redirect) + + def test_simple_multiline_bool_annotator(self) -> None: + command = gen_command(self.limmavoom_xmltool, annotators=['SimpleMultilineBoolAnnotator']) + # expected_flags = set([ + # '-y', '-F', '-x', '-L', '-r', '-T', '-w', '-b' + # ]) + expected_flags = set([ + '-F', '-x', '-L', '-r', '-T', '-w', '-b' + ]) + actual_flags = set(list(command.flags.keys())) + self.assertSetEqual(actual_flags, expected_flags) + self.assertEqual(len(command.options), 0) + self.assertEqual(len(command.positionals), 0) + self.assertIsNone(command.redirect) + def test_local_cmdstr_annotator(self) -> None: - filepath = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/limma_voom_wf.ga') - xmltool = _load_xmltool_for_step(filepath, 3) - command = gen_command(xmltool, annotators=['LocalCmdstrAnnotator']) + command = gen_command(self.limmavoom_xmltool, annotators=['LocalCmdstrAnnotator']) expected_options = set([ '-C', '-t', @@ -540,9 +556,7 @@ def test_local_cmdstr_annotator(self) -> None: self.assertIsNone(command.redirect) def test_global_cmdstr_annotator(self) -> None: - filepath = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/limma_voom_wf.ga') - xmltool = _load_xmltool_for_step(filepath, 3) - command = gen_command(xmltool, annotators=['GlobalCmdstrAnnotator']) + command = gen_command(self.limmavoom_xmltool, annotators=['GlobalCmdstrAnnotator']) expected_positionals = set([ 'Rscript', 'limma_voom_script' ]) @@ -586,46 +600,8 @@ def test_global_cmdstr_annotator(self) -> None: self.assertSetEqual(actual_options, expected_options) self.assertIsNone(command.redirect) - def test_all_goseq(self) -> None: - filepath = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/goseq_wf.ga') - xmltool = _load_xmltool_for_step(filepath, 2) - command = gen_command(xmltool) - expected_positionals = set([ - 'Rscript', 'goseq_script' - ]) - expected_flags = set([]) - expected_options = set([ - '--genome', - '--sample_vs_wallenius_plot', - '--nobias_tab', - '--p_adj_method', - '--repcnt', - '--length_file', - '--gene_id', - '--use_genes_without_cat', - '--categories_genes_out_fp', - '--dge_file', - '--wallenius_tab', - '--length_bias_plot', - '--rdata', - '--fetch_cats', - '--make_plots', - '--top_plot', - '--category_file', - '--sampling_tab', - ]) - actual_flags = set(list(command.flags.keys())) - actual_options = set(list(command.options.keys())) - actual_positionals = set([x.name for x in command.positionals.values()]) - self.assertSetEqual(actual_positionals, expected_positionals) - self.assertSetEqual(actual_flags, expected_flags) - self.assertSetEqual(actual_options, expected_options) - self.assertIsNone(command.redirect) - def test_all_limma_voom(self) -> None: - filepath = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/limma_voom_wf.ga') - xmltool = _load_xmltool_for_step(filepath, 3) - command = gen_command(xmltool) + command = gen_command(self.limmavoom_xmltool) expected_positionals = set([ 'Rscript', 'limma_voom_script' ]) @@ -668,57 +644,34 @@ def test_all_limma_voom(self) -> None: self.assertSetEqual(actual_flags, expected_flags) self.assertSetEqual(actual_options, expected_options) self.assertIsNone(command.redirect) - - def test_all_cutadapt(self) -> None: - filepath = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/cutadapt_wf.ga') + + def test_all_goseq(self) -> None: + filepath = os.path.abspath(f'{GALAXY_TESTWF_PATH}/goseq_wf.ga') xmltool = _load_xmltool_for_step(filepath, 2) command = gen_command(xmltool) expected_positionals = set([ - 'cutadapt', 'input_1', 'input_2' - ]) - expected_flags = set([ - '--no-indels', - '--revcomp', - '--discard-trimmed', - '--discard-untrimmed', - '--discard-cassava', - '--trim-n', - '--zero-cap', - '--match-read-wildcards', - '--no-match-adapter-wildcards' + 'Rscript', 'goseq_script' ]) + expected_flags = set([]) expected_options = set([ - '--action', - '--pair-filter', - '-u', - '-U', - '-Q', - '--error-rate', - '--times', - '--overlap', - '--max-n', - '--max-expected-errors', - '--quality-cutoff', - '--nextseq-trim', - '--strip-suffix', - '--length', - '--length-tag', - '--rename', - '--minimum-length', - '--maximum-length', - '-j', - '--json', - '--info-file', - '--rest-file', - '--wildcard-file', - '--too-short-output', - '--too-long-output', - '--too-short-paired-output', - '--too-long-paired-output', - '--untrimmed-paired-output', - '--paired-output', - '--untrimmed-output', - '--output', + '--genome', + '--sample_vs_wallenius_plot', + '--nobias_tab', + '--p_adj_method', + '--repcnt', + '--length_file', + '--gene_id', + '--use_genes_without_cat', + '--categories_genes_out_fp', + '--dge_file', + '--wallenius_tab', + '--length_bias_plot', + '--rdata', + '--fetch_cats', + '--make_plots', + '--top_plot', + '--category_file', + '--sampling_tab', ]) actual_flags = set(list(command.flags.keys())) actual_options = set(list(command.options.keys())) @@ -726,10 +679,10 @@ def test_all_cutadapt(self) -> None: self.assertSetEqual(actual_positionals, expected_positionals) self.assertSetEqual(actual_flags, expected_flags) self.assertSetEqual(actual_options, expected_options) - self.assertIsNotNone(command.redirect) + self.assertIsNone(command.redirect) def test_all_hisat2(self) -> None: - filepath = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/hisat2_wf.ga') + filepath = os.path.abspath(f'{GALAXY_TESTWF_PATH}/hisat2_wf.ga') gx_workflow = _load_gxworkflow(filepath) gx_step = gx_workflow['steps']['2'] _configure_tool_settings(gx_step) @@ -811,7 +764,7 @@ def test_all_hisat2(self) -> None: self.assertIsNone(command.redirect) def test_all_picard_markduplicates(self) -> None: - filepath = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/wf_mark_duplicates.ga') + filepath = os.path.abspath(f'{GALAXY_TESTWF_PATH}/wf_mark_duplicates.ga') gx_workflow = _load_gxworkflow(filepath) gx_step = gx_workflow['steps']['1'] _configure_tool_settings(gx_step) @@ -850,7 +803,7 @@ def test_all_picard_markduplicates(self) -> None: self.assertIsNone(command.redirect) def test_all_samtools_idxstats(self) -> None: - filepath = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/wf_samtools_idxstats.ga') + filepath = os.path.abspath(f'{GALAXY_TESTWF_PATH}/wf_samtools_idxstats.ga') gx_workflow = _load_gxworkflow(filepath) gx_step = gx_workflow['steps']['1'] _configure_tool_settings(gx_step) @@ -877,7 +830,6 @@ def test_all_samtools_idxstats(self) -> None: self.assertIsNotNone(command.redirect) - class TestLoadToolState(unittest.TestCase): """ tests ability to map or generate janis datatypes / selectors etc @@ -885,10 +837,9 @@ class TestLoadToolState(unittest.TestCase): """ def setUp(self) -> None: _reset_global_settings() - def test_default_filters(self) -> None: - wf_path = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/cutadapt_wf.ga') + wf_path = os.path.abspath(f'{GALAXY_TESTWF_PATH}/cutadapt_wf.ga') gx_workflow = _load_gxworkflow(wf_path) gx_step = gx_workflow['steps']['2'] tool_state = _load_tool_state(gx_step) @@ -897,7 +848,7 @@ def test_default_filters(self) -> None: self.assertEqual(tool_state['library']['r1']['cut'], '0') def test_null_varname_filter(self) -> None: - wf_path = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/cutadapt_wf.ga') + wf_path = os.path.abspath(f'{GALAXY_TESTWF_PATH}/cutadapt_wf.ga') gx_workflow = _load_gxworkflow(wf_path) gx_step = gx_workflow['steps']['2'] tool_state = _load_tool_state(gx_step, additional_filters=['ReplaceNullWithVarname']) @@ -909,7 +860,7 @@ def test_null_varname_filter(self) -> None: self.assertEqual(tool_state['library']['r1']['cut'], '0') def test_flat_filter(self) -> None: - wf_path = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/cutadapt_wf.ga') + wf_path = os.path.abspath(f'{GALAXY_TESTWF_PATH}/cutadapt_wf.ga') gx_workflow = _load_gxworkflow(wf_path) gx_step = gx_workflow['steps']['2'] tool_state = _load_tool_state(gx_step, additional_filters=['Flatten']) @@ -919,8 +870,6 @@ def test_flat_filter(self) -> None: self.assertEqual(tool_state['library.r1.cut'], '0') - - class TestJanisGeneralMapping(unittest.TestCase): """ tests ability to map or generate janis datatypes / selectors etc @@ -966,7 +915,6 @@ def test_to_janis_selector(self) -> None: self.assertEquals(jsel3.input_to_select, 'file_input') - class TestJanisToolMapping(unittest.TestCase): """ tests ability to map or generate janis tool objects @@ -1136,7 +1084,6 @@ def test_janis_steps(self) -> None: self.assertEquals(jstep.scatter.method, ScatterMethod.dot) - class TestDatatypeInference(unittest.TestCase): """ tests the datatype which is assigned to an entity @@ -1168,7 +1115,7 @@ def setUp(self) -> None: _reset_global_settings() def test_ingest_abricate_tool(self) -> None: - filepath = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/abricate/abricate.xml') + filepath = os.path.abspath(f'{GALAXY_TESTTOOL_PATH}/abricate-c2ef298da409/abricate.xml') jtool = ingest_galaxy(filepath) assert(isinstance(jtool, CommandTool)) @@ -1177,7 +1124,7 @@ def test_ingest_abricate_tool(self) -> None: self.assertEquals(jtool.base_command(), ['abricate']) def test_ingest_cutadapt_wf(self) -> None: - filepath = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/cutadapt_wf.ga') + filepath = os.path.abspath(f'{GALAXY_TESTWF_PATH}/cutadapt_wf.ga') jworkflow = ingest_galaxy(filepath) assert(isinstance(jworkflow, WorkflowBuilder)) @@ -1192,7 +1139,7 @@ def test_ingest_cutadapt_wf(self) -> None: self.assertIn('cutadapt_out_report', jworkflow.output_nodes) def test_ingest_unicycler_assembly(self) -> None: - filepath = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/unicycler_assembly.ga') + filepath = os.path.abspath(f'{GALAXY_TESTWF_PATH}/unicycler_assembly.ga') jworkflow = ingest_galaxy(filepath) assert(isinstance(jworkflow, WorkflowBuilder)) @@ -1202,15 +1149,4 @@ def test_ingest_unicycler_assembly(self) -> None: self.assertIn('in_short_R2', jworkflow.input_nodes) self.assertIn('in_long', jworkflow.input_nodes) - def test_translate_cutadapt_wf_nextflow(self) -> None: - srcfmt = 'galaxy' - destfmt = 'nextflow' - filepath = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/cutadapt_wf.ga') - _run(filepath, srcfmt, destfmt) - - def test_translate_unicycler_wf_nextflow(self) -> None: - srcfmt = 'galaxy' - destfmt = 'nextflow' - filepath = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/unicycler_assembly.ga') - _run(filepath, srcfmt, destfmt) diff --git a/janis_core/tests/test_janis_translate.py b/janis_core/tests/test_janis_translate.py index 2dc18dd7b..d1a57d52c 100644 --- a/janis_core/tests/test_janis_translate.py +++ b/janis_core/tests/test_janis_translate.py @@ -1,6 +1,7 @@ import unittest +import pytest from typing import Any from janis_core import settings @@ -30,10 +31,12 @@ import yaml CWL_TESTDATA_PATH = os.path.join(os.getcwd(), 'janis_core/tests/data/cwl') -GALAXY_TESTDATA_PATH = os.path.join(os.getcwd(), 'janis_core/tests/data/galaxy') JANIS_TESTDATA_PATH = os.path.join(os.getcwd(), 'janis_core/tests/data/janis') WDL_TESTDATA_PATH = os.path.join(os.getcwd(), 'janis_core/tests/data/wdl') +GALAXY_TESTDATA_PATH = os.path.join(os.getcwd(), 'janis_core/tests/data/galaxy') +GALAXY_TESTTOOL_PATH = os.path.join(os.getcwd(), 'janis_core/tests/data/galaxy/wrappers') +GALAXY_TESTWF_PATH = os.path.join(os.getcwd(), 'janis_core/tests/data/galaxy/workflows') # ------- HELPER FUNCS ------- # @@ -181,7 +184,7 @@ def test_from_cwl_to_nextflow_workflow(self) -> None: # GALAXY INGEST -> TRANSLATE def test_from_galaxy_to_nextflow_tool(self) -> None: - filepath = f'{GALAXY_TESTDATA_PATH}/abricate/abricate.xml' + filepath = f'{GALAXY_TESTTOOL_PATH}/abricate-c2ef298da409/abricate.xml' _run(filepath, 'galaxy', 'nextflow') def test_from_galaxy_to_nextflow_tool_toolshed(self) -> None: @@ -189,7 +192,7 @@ def test_from_galaxy_to_nextflow_tool_toolshed(self) -> None: _run(filepath, 'galaxy', 'nextflow') def test_from_galaxy_to_nextflow_workflow(self) -> None: - filepath = f'{GALAXY_TESTDATA_PATH}/cutadapt_wf.ga' + filepath = f'{GALAXY_TESTWF_PATH}/cutadapt_wf.ga' _run(filepath, 'galaxy', 'nextflow') # WDL INGEST -> TRANSLATE @@ -229,7 +232,21 @@ def test_str_big_workflow(self): -### ----- JANIS -> NEXTFLOW ----- ### +### ----- FROM JANIS ----- ### + +class TestJanisToCWL(unittest.TestCase): + + def setUp(self) -> None: + self.src = 'wdl' + self.dest = 'cwl' + _reset_global_settings() + + @unittest.skip('add tests') + def test_tool_bwa(self): + filepath = f'{WDL_TESTDATA_PATH}/bwa.wdl' + mainstr = _run(filepath, self.src, self.dest) + print(mainstr) + class TestJanisToNextflow(unittest.TestCase): @@ -311,8 +328,6 @@ def test_wf_wgs_somatic_multi_callers_variants_only(self) -> None: maintask, config, subtasks = translate(wf, self.dest, export_path='./translated') -### ----- JANIS -> WDL ----- ### - class TestJanisToWDL(unittest.TestCase): def setUp(self) -> None: @@ -387,83 +402,6 @@ def test_wf_wgs_somatic_multi_callers_variants_only(self) -> None: maintask, config, subtasks = translate(wf, self.dest, export_path='./translated') -class TestGalaxyToNextflow(unittest.TestCase): - - def setUp(self) -> None: - self.src = 'galaxy' - self.dest = 'nextflow' - _reset_global_settings() - settings.translate.MODE = 'skeleton' - - # tools - def test_tool_fastqc(self): - filepath = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/fastqc-5ec9f6bceaee/rgFastQC.xml') - mainstr = _run(filepath, self.src, self.dest) - print(mainstr) - - def test_tool_nanoplot(self): - filepath = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/nanoplot-edbb6c5028f5/nanoplot.xml') - mainstr = _run(filepath, self.src, self.dest) - print(mainstr) - - def test_tool_hisat2(self): - filepath = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/hisat2-6c19daec423d/hisat2.xml') - mainstr = _run(filepath, self.src, self.dest) - print(mainstr) - - def test_tool_limma_voom_toolshed(self): - uri = 'toolshed.g2.bx.psu.edu/repos/iuc/limma_voom/limma_voom/3.50.1+galaxy0' - mainstr = _run(uri, self.src, self.dest) - print(mainstr) - - def test_tool_samtools_flagstat_toolshed(self): - settings.translate.MODE = 'extended' - uri = 'toolshed.g2.bx.psu.edu/repos/devteam/samtools_flagstat/samtools_flagstat/2.0.4' - mainstr = _run(uri, self.src, self.dest) - print(mainstr) - - # workflows - def test_wf_cutadapt(self): - settings.translate.MODE = 'skeleton' - filepath = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/cutadapt_wf.ga') - mainstr = _run(filepath, self.src, self.dest) - print(mainstr) - - def test_wf_nanoplot(self): - filepath = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/nanoplot_wf.ga') - mainstr = _run(filepath, self.src, self.dest) - print(mainstr) - - def test_wf_fastqc(self): - filepath = os.path.abspath(f'{GALAXY_TESTDATA_PATH}/fastqc_wf.ga') - mainstr = _run(filepath, self.src, self.dest) - print(mainstr) - - def test_wf_rna_seq_reads_to_counts(self): - settings.translate.MODE = 'skeleton' - # settings.translate.MODE = 'regular' - filepath = f'{GALAXY_TESTDATA_PATH}/rna_seq_reads_to_counts.ga' - mainstr = _run(filepath, self.src, self.dest) - print(mainstr) - - def test_wf_unicycler_assembly(self): - filepath = f'{GALAXY_TESTDATA_PATH}/unicycler_assembly.ga' - mainstr = _run(filepath, self.src, self.dest) - print(mainstr) - - # def test_rna_seq_counts_to_genes(self): - # filepath = f'{GALAXY_TESTDATA_PATH}/rna_seq_counts_to_genes.ga' - # mainstr = _run(filepath, self.src, self.dest) - # print(mainstr) - - # def test_rna_seq_genes_to_pathways(self): - # filepath = f'{GALAXY_TESTDATA_PATH}/rna_seq_genes_to_pathways.ga' - # mainstr = _run(filepath, self.src, self.dest) - # print(mainstr) - - - - # ---- PREPROCESSING: PRUNE ------------------------------ class TestPreprocessingPrune(unittest.TestCase): @@ -1218,73 +1156,125 @@ def test_wf_reads2map_snp_calling(self): # ---- FROM GALAXY ------------------------ -class TestGalaxyToWdl(unittest.TestCase): - +class TestFromGalaxy(unittest.TestCase): + def setUp(self) -> None: - self.src = 'galaxy' - self.dest = 'wdl' _reset_global_settings() settings.translate.MODE = 'regular' - - def test_wf_abricate(self): - filepath = f'{GALAXY_TESTDATA_PATH}/wf_abricate.ga' - mainstr = _run(filepath, self.src, self.dest) - print(mainstr) + self.src = 'galaxy' - def test_wf_unicycler_assembly(self): - filepath = f'{GALAXY_TESTDATA_PATH}/unicycler_assembly.ga' - mainstr = _run(filepath, self.src, self.dest) - print(mainstr) - - def test_wf_rna_seq_counts_to_genes(self): - filepath = f'{GALAXY_TESTDATA_PATH}/rna_seq_counts_to_genes.ga' - mainstr = _run(filepath, self.src, self.dest) - print(mainstr) - - def test_wf_rna_seq_genes_to_pathways(self): - filepath = f'{GALAXY_TESTDATA_PATH}/rna_seq_genes_to_pathways.ga' - mainstr = _run(filepath, self.src, self.dest) - print(mainstr) - - @unittest.skip('implement scatter on multiple inputs') - def test_wf_rna_seq_reads_to_counts(self): - filepath = f'{GALAXY_TESTDATA_PATH}/rna_seq_reads_to_counts.ga' - mainstr = _run(filepath, self.src, self.dest) - print(mainstr) + ############# + ### TOOLS ### + ############# + def test_tool_fastqc(self): + # ingest + filepath = os.path.abspath(f'{GALAXY_TESTTOOL_PATH}/fastqc-5ec9f6bceaee/rgFastQC.xml') + internal = ingest(filepath, self.src) + + # translate to CWL, WDL, NXF + translate(internal, 'cwl', export_path='./translated') + translate(internal, 'nextflow', export_path='./translated') + translate(internal, 'wdl', export_path='./translated') + @pytest.mark.release + def test_tool_nanoplot(self): + # ingest + filepath = os.path.abspath(f'{GALAXY_TESTTOOL_PATH}/nanoplot-edbb6c5028f5/nanoplot.xml') + internal = ingest(filepath, self.src) + + # translate to CWL, WDL, NXF + translate(internal, 'cwl', export_path='./translated') + translate(internal, 'nextflow', export_path='./translated') + translate(internal, 'wdl', export_path='./translated') + + @pytest.mark.release + def test_tool_hisat2(self): + # ingest + filepath = os.path.abspath(f'{GALAXY_TESTTOOL_PATH}/hisat2-6c19daec423d/hisat2.xml') + internal = ingest(filepath, self.src) + + # translate to CWL, WDL, NXF + translate(internal, 'cwl', export_path='./translated') + translate(internal, 'nextflow', export_path='./translated') + translate(internal, 'wdl', export_path='./translated') -class TestGalaxyToCwl(unittest.TestCase): + @pytest.mark.release + def test_tool_limma_voom_toolshed(self): + uri = 'toolshed.g2.bx.psu.edu/repos/iuc/limma_voom/limma_voom/3.50.1+galaxy0' + internal = ingest(uri, self.src) + + # translate to CWL, WDL, NXF + translate(internal, 'cwl', export_path='./translated') + translate(internal, 'nextflow', export_path='./translated') + translate(internal, 'wdl', export_path='./translated') - def setUp(self) -> None: - self.src = 'galaxy' - self.dest = 'cwl' - _reset_global_settings() - settings.translate.MODE = 'regular' + @pytest.mark.release + def test_tool_samtools_flagstat_toolshed(self): + settings.translate.MODE = 'extended' + uri = 'toolshed.g2.bx.psu.edu/repos/devteam/samtools_flagstat/samtools_flagstat/2.0.4' + internal = ingest(uri, self.src) + + # translate to CWL, WDL, NXF + translate(internal, 'cwl', export_path='./translated') + translate(internal, 'nextflow', export_path='./translated') + translate(internal, 'wdl', export_path='./translated') - def test_wf_abricate(self): - filepath = f'{GALAXY_TESTDATA_PATH}/wf_abricate.ga' - mainstr = _run(filepath, self.src, self.dest) - print(mainstr) + ################# + ### WORKFLOWS ### + ################# def test_wf_unicycler_assembly(self): - filepath = f'{GALAXY_TESTDATA_PATH}/unicycler_assembly.ga' - mainstr = _run(filepath, self.src, self.dest) - print(mainstr) + # ingest + filepath = f'{GALAXY_TESTWF_PATH}/unicycler_assembly.ga' + internal = ingest(filepath, self.src) + + # translate to CWL, WDL, NXF + translate(internal, 'cwl', export_path='./translated') + translate(internal, 'nextflow', export_path='./translated') + translate(internal, 'wdl', export_path='./translated') + + @pytest.mark.release + def test_wf_abricate(self): + # ingest + filepath = f'{GALAXY_TESTWF_PATH}/wf_abricate.ga' + internal = ingest(filepath, self.src) + + # translate to CWL, WDL, NXF + translate(internal, 'cwl', export_path='./translated') + translate(internal, 'nextflow', export_path='./translated') + translate(internal, 'wdl', export_path='./translated') + @pytest.mark.release def test_wf_rna_seq_counts_to_genes(self): - filepath = f'{GALAXY_TESTDATA_PATH}/rna_seq_counts_to_genes.ga' - mainstr = _run(filepath, self.src, self.dest) - print(mainstr) + # ingest + filepath = f'{GALAXY_TESTWF_PATH}/rna_seq_counts_to_genes.ga' + internal = ingest(filepath, self.src) + + # translate to CWL, WDL, NXF + translate(internal, 'cwl', export_path='./translated') + translate(internal, 'nextflow', export_path='./translated') + translate(internal, 'wdl', export_path='./translated') + @pytest.mark.release def test_wf_rna_seq_genes_to_pathways(self): - filepath = f'{GALAXY_TESTDATA_PATH}/rna_seq_genes_to_pathways.ga' - mainstr = _run(filepath, self.src, self.dest) - print(mainstr) + # ingest + filepath = f'{GALAXY_TESTWF_PATH}/rna_seq_genes_to_pathways.ga' + internal = ingest(filepath, self.src) + + # translate to CWL, WDL, NXF + translate(internal, 'cwl', export_path='./translated') + translate(internal, 'nextflow', export_path='./translated') + translate(internal, 'wdl', export_path='./translated') + @pytest.mark.release def test_wf_rna_seq_reads_to_counts(self): - filepath = f'{GALAXY_TESTDATA_PATH}/rna_seq_reads_to_counts.ga' - mainstr = _run(filepath, self.src, self.dest) - print(mainstr) - - + # ingest + filepath = f'{GALAXY_TESTWF_PATH}/rna_seq_reads_to_counts.ga' + internal = ingest(filepath, self.src) + + # translate to CWL, WDL, NXF + translate(internal, 'cwl', export_path='./translated') + translate(internal, 'nextflow', export_path='./translated') + # TODO implement multiple edge step input for wdl (below) + # translate(internal, 'wdl', export_path='./translated') diff --git a/janis_core/translations/common/preprocessing/prune/tools.py b/janis_core/translations/common/preprocessing/prune/tools.py index 3708787bf..3b33ddc1f 100644 --- a/janis_core/translations/common/preprocessing/prune/tools.py +++ b/janis_core/translations/common/preprocessing/prune/tools.py @@ -14,8 +14,6 @@ def prune_tools_and_sources(main_wf: WorkflowBuilder, tools: dict[str, CommandTo def prune(main_wf: WorkflowBuilder, tool: CommandToolBuilder) -> None: # for each tool input, get all sources from each wf step which feed this input - if tool.id() == 'cutadapt': - print() collector = TaskInputCollector(tool) collector.collect(main_wf) diff --git a/notes.txt b/notes.txt index fbe909894..688e180f1 100644 --- a/notes.txt +++ b/notes.txt @@ -1,5 +1,81 @@ +---------------------------------- +--- REDUCING TEST SUITE WEIGHT --- +---------------------------------- + +TIMES + +full suite: 64 sec (base), 109 sec (release) +test_commandtool: 2 sec +test_conditionals: 2 sec +test_generics_util: 2 sec +test_ingestion_cwl: 3 sec +test_ingestion_galaxy: 30 sec +test_ingestion_wdl: 2 sec +test_janis_translate: 81 sec + - TestCwlToNextflow: 9 sec + - TestCwlToWdl: 5 sec + - TestFromGalaxy: 26 sec (base), 81 sec (release) + - TestJanisToNextflow: 5 sec + - TestJanisToWdl: 4 sec + - TestPreprocessingModes: 3 sec + - TestPreprocessingPrune: 3 sec + - TestPreprocessingToBuilders: 3 sec + - TestTranslationEndpoints: 15 sec +test_logger: 3 sec +test_metadata: 2 sec +test_operators: 2 sec +test_python_tool: 2 sec +test_receivefrom: 2 sec +test_secondary: 2 sec +test_stringbuilder: 2 sec +test_test_runner: 2 sec +test_tools: 2 sec +test_translation_cwl: 3 sec +test_translation_modules: 2 sec +test_translation_nextflow: 3 sec +test_translation_wdl: 2 sec +test_types: 2 sec +test_validateinputvalues: 2 sec +test_validators: 2 sec +test_workflow: 2 sec + +LOCAL SUPPLY ALL TOOLSHED FILES FOR TEST +- + +QUAY API CALLS -> DETERMINISTIC URI +- swap quay.io API calls to deterministic uri + +MULLED BUILD -> MULLED HASH +- swap mulled build to mulled hash + + + +general +- it's all galaxy +- all tools needed for workflow tests could be stored locally as package data. +- need to reduce the amount of times tools are loaded. +- reinstate cache with pickle + +test_ingestion_galaxy.py (galaxy) +- most tests do full ingest(). +- could store these on the class, then tests just check attributes on the janis entities. + +test_janis_translate.py (galaxy) +- can have basic group, and extended group (CI) +- basic group just 2 tests: single tool, single workflow + +pytest +- `@pytest.mark.<markername>` to mark tests +- `pytest -m <markername> -v` to run tests in group (change pytest command in github actions) +- "publish" github action stays the same +- "unit_tests" github action changed to using test group +- tried locally, works + + + + ------------------------------------ --- GENERAL RUNTIME IMPROVEMENTS --- ------------------------------------ @@ -29,33 +105,6 @@ migrate galaxy tool xml parsing into janis - looks doable ----------------------------------- ---- REDUCING TEST SUITE WEIGHT --- ----------------------------------- - -REDUCING TEST SUITE WEIGHT - -general -- it's all galaxy -- all tools needed for workflow tests could be stored locally as package data. -- need to reduce the amount of times tools are loaded. -- reinstate cache with pickle - -test_ingestion_galaxy.py (galaxy) -- most tests do full ingest(). -- could store these on the class, then tests just check attributes on the janis entities. - -test_janis_translate.py (galaxy) -- can have basic group, and extended group (CI) -- basic group just 2 tests: single tool, single workflow - -pytest -- `@pytest.mark.<markername>` to mark tests -- `pytest -m <markername> -v` to run tests in group (change pytest command in github actions) -- "publish" github action stays the same -- "unit_tests" github action changed to using test group -- tried locally, works - From 454ed7aa616dfb01495303d5a0ece88f674203fa Mon Sep 17 00:00:00 2001 From: Grace Hall <graceavahall@gmail.com> Date: Sun, 10 Sep 2023 16:12:21 +1000 Subject: [PATCH 03/32] improved test-suite runtime - moved all wrappers to tests/data/galaxy/wrappers - avoids making any galaxy toolshed API requests during tests - added tests which do use galaxy toolshed API requests to check this functionality still works. locally: - base suite = 58 sec - release suite = 215 sec --- .../galaxy/gxwrappers/downloads/cache.py | 27 +++++++++------- .../galaxy/gxwrappers/downloads/wrappers.py | 7 +++++ janis_core/settings/ingest/galaxy.py | 4 ++- janis_core/settings/testing.py | 1 + janis_core/tests/test_ingestion_galaxy.py | 31 +++++++++++++++++-- janis_core/tests/test_janis_translate.py | 24 +++++++------- notes.txt | 3 +- 7 files changed, 71 insertions(+), 26 deletions(-) diff --git a/janis_core/ingestion/galaxy/gxwrappers/downloads/cache.py b/janis_core/ingestion/galaxy/gxwrappers/downloads/cache.py index 069d265ee..6b9dc767e 100644 --- a/janis_core/ingestion/galaxy/gxwrappers/downloads/cache.py +++ b/janis_core/ingestion/galaxy/gxwrappers/downloads/cache.py @@ -3,38 +3,43 @@ import os import tarfile from typing import Optional -from janis_core.settings.ingest.galaxy import DOWNLOADED_WRAPPERS_DIR + +from janis_core import settings from janis_core.ingestion.galaxy.fileio import safe_init_folder -class DownloadCache: +class DownloadCache: """ keeps track of the location of downloaded wrapper folders. DownloadCache.get() will return the local path to a tool xml if already downloaded DownloadCache.add() saves a tar as a download and notes its path. """ + @property + def path(self) -> str: + if settings.testing.TESTMODE: + return settings.ingest.galaxy.TESTING_WRAPPERS_DIR + else: + return settings.ingest.galaxy.DEFAULT_WRAPPERS_DIR + def get(self, query_repo: str, query_revision: str) -> Optional[str]: """returns the local file path for the tool xml if already downloaded or None""" - path = DOWNLOADED_WRAPPERS_DIR for folder in self._load(): repo, revision = folder.split('-', 1) if repo == query_repo and revision == query_revision: - return f'{path}{os.sep}{folder}' + return f'{self.path}{os.sep}{folder}' return None def add(self, tar: tarfile.TarFile) -> None: self._save(tar) def _save(self, tar: tarfile.TarFile) -> None: - path = DOWNLOADED_WRAPPERS_DIR - safe_init_folder(path) - tar.extractall(path=path) + safe_init_folder(self.path) + tar.extractall(path=self.path) def _load(self) -> set[str]: - path = DOWNLOADED_WRAPPERS_DIR - safe_init_folder(path) - folders = os.listdir(path) - folders = [f for f in folders if os.path.isdir(f'{path}{os.sep}{f}')] + safe_init_folder(self.path) + folders = os.listdir(self.path) + folders = [f for f in folders if os.path.isdir(f'{self.path}{os.sep}{f}')] return set(folders) diff --git a/janis_core/ingestion/galaxy/gxwrappers/downloads/wrappers.py b/janis_core/ingestion/galaxy/gxwrappers/downloads/wrappers.py index b945b1a41..8887ab898 100644 --- a/janis_core/ingestion/galaxy/gxwrappers/downloads/wrappers.py +++ b/janis_core/ingestion/galaxy/gxwrappers/downloads/wrappers.py @@ -4,6 +4,7 @@ import os from typing import Optional +from janis_core import settings from janis_core.ingestion.galaxy.utils import galaxy as utils from janis_core.ingestion.galaxy.gxwrappers.downloads.cache import DownloadCache @@ -18,6 +19,12 @@ def fetch_xml(owner: str, repo: str, revision: str, tool_id: str) -> str: path = _fetch_cache(repo, revision, tool_id) if not path: path = _fetch_builtin(tool_id) + + # if running the test suite, expect all tools to be builtins or in the wrapper cache + # if arrive here, this was not the case. + if not path and settings.testing.TESTMODE == True: + raise RuntimeError(f'could not find wrapper for {tool_id}:{revision}') + if not path: path = _fetch_toolshed(owner, repo, revision, tool_id) if not path: diff --git a/janis_core/settings/ingest/galaxy.py b/janis_core/settings/ingest/galaxy.py index 822cb9fcc..cc0c31dec 100644 --- a/janis_core/settings/ingest/galaxy.py +++ b/janis_core/settings/ingest/galaxy.py @@ -8,6 +8,7 @@ _JANIS_INSTALL_DIR = pathlib.Path(__file__).parent.parent.parent.resolve() _INGEST_DATA_DIR = os.path.join(_JANIS_INSTALL_DIR, 'ingestion', 'data') _GALAXY_DATA_DIR = os.path.join(_JANIS_INSTALL_DIR, 'ingestion', 'data', 'galaxy') +_TEST_DATA_DIR = os.path.join(_JANIS_INSTALL_DIR, 'tests', 'data') # public @@ -17,4 +18,5 @@ DATATYPES_YAML = f'{_INGEST_DATA_DIR}/janis_types.yaml' CONTAINER_CACHE = f'{_JANIS_DATA_DIR}/galaxy_containers/cache.json' WRAPPER_CACHE = f'{_JANIS_DATA_DIR}/galaxy_wrappers/cache.json' -DOWNLOADED_WRAPPERS_DIR = f'{_JANIS_DATA_DIR}/galaxy_wrappers' +DEFAULT_WRAPPERS_DIR = f'{_JANIS_DATA_DIR}/galaxy_wrappers' +TESTING_WRAPPERS_DIR = f'{_TEST_DATA_DIR}/galaxy/wrappers' diff --git a/janis_core/settings/testing.py b/janis_core/settings/testing.py index 1f56f396b..382fe2ab7 100644 --- a/janis_core/settings/testing.py +++ b/janis_core/settings/testing.py @@ -1,3 +1,4 @@ +TESTMODE: bool = False TESTING_USE_DEFAULT_CONTAINER: bool = False \ No newline at end of file diff --git a/janis_core/tests/test_ingestion_galaxy.py b/janis_core/tests/test_ingestion_galaxy.py index 839fcf03e..58e85b4de 100644 --- a/janis_core/tests/test_ingestion_galaxy.py +++ b/janis_core/tests/test_ingestion_galaxy.py @@ -83,7 +83,6 @@ QUERY3 = XMLCondaRequirement(_name='cutadapt', _version='3.5') QUERY3_EXPECTED_RESULT = 'quay.io/biocontainers/cutadapt:3.5--py36h91eb985_1' -GALAXY_TESTDATA_PATH = os.path.join(os.getcwd(), 'janis_core/tests/data/galaxy') GALAXY_TESTTOOL_PATH = os.path.join(os.getcwd(), 'janis_core/tests/data/galaxy/wrappers') GALAXY_TESTWF_PATH = os.path.join(os.getcwd(), 'janis_core/tests/data/galaxy/workflows') @@ -97,6 +96,7 @@ def _reset_global_settings() -> None: settings.ingest.cwl.INGEST_JAVASCRIPT_EXPRESSIONS = False settings.ingest.cwl.REQUIRE_CWL_VERSION = False settings.testing.TESTING_USE_DEFAULT_CONTAINER = True + settings.testing.TESTMODE = True settings.datatypes.ALLOW_UNPARSEABLE_DATATYPES = True settings.graph.ALLOW_UNKNOWN_SOURCE = False settings.graph.ALLOW_UNKNOWN_SCATTER_FIELDS = False @@ -152,6 +152,27 @@ def test_hisat2(self) -> None: print() +class TestGetWrapperToolshed(unittest.TestCase): + """ + Needed because all other test data has been moved to tests/data/galaxy. + Want to make sure the normal process of retrieving a toolshed tool works. + """ + + def setUp(self) -> None: + _reset_global_settings() + settings.testing.TESTMODE = False + self.src = 'galaxy' + + def test_fastqc(self) -> None: + filepath = f'{GALAXY_TESTTOOL_PATH}/fastqc-5ec9f6bceaee/rgFastQC.xml' + runtime.tool.tool_path = filepath + tool = load_xmltool(filepath) + + def test_minimap2_toolshed(self) -> None: + uri = 'toolshed.g2.bx.psu.edu/repos/iuc/minimap2/minimap2/2.26+galaxy0' + internal = ingest(uri, self.src) + + class TestRegexToGlob(unittest.TestCase): def setUp(self) -> None: @@ -285,14 +306,17 @@ def setUp(self) -> None: settings.ingest.galaxy.DISABLE_CONTAINER_CACHE = True settings.testing.TESTING_USE_DEFAULT_CONTAINER = False + @unittest.skip("swapping to deterministic quay.io uris") def test_coreutils_requirement(self) -> None: # TODO use deterministic quay.io uri raise NotImplementedError + filepath = os.path.abspath(f'{GALAXY_TESTTOOL_PATH}/text_processing-d698c222f354/cut.xml') jtool = ingest_galaxy(filepath) image_uri = jtool.container() self.assertEqual(image_uri, 'quay.io/biocontainers/coreutils:8.25--1') + @unittest.skip("swapping to deterministic quay.io uris") def test_single_requirement(self) -> None: # TODO use deterministic quay.io uri raise NotImplementedError @@ -301,6 +325,7 @@ def test_single_requirement(self) -> None: image_uri = resolve_dependencies_as_container(xmltool) self.assertEqual(image_uri, 'quay.io/biocontainers/abricate:1.0.1--ha8f3691_1') + @unittest.skip("swapping to deterministic quay.io uris") def test_multiple_requirements(self) -> None: # TODO use mulled-hash raise NotImplementedError @@ -326,7 +351,7 @@ def test_wf_featurecounts(self) -> None: filepath = os.path.abspath(f'{GALAXY_TESTWF_PATH}/wf_featurecounts.ga') text = self.get_marked_main_statement(filepath, 1) self.assertIn('\n__JANIS_MAIN__\n\nfeatureCounts', text) - + def test_wf_unicycler(self) -> None: filepath = os.path.abspath(f'{GALAXY_TESTWF_PATH}/unicycler_assembly.ga') @@ -350,6 +375,7 @@ def test_wf_unicycler(self) -> None: text = self.get_marked_main_statement(filepath, 8) self.assertIn('\n__JANIS_MAIN__\n\n#end if\nbusco', text) + @pytest.mark.release def test_wf_rna_seq_reads_to_counts(self) -> None: filepath = os.path.abspath(f'{GALAXY_TESTWF_PATH}/rna_seq_reads_to_counts.ga') @@ -1138,6 +1164,7 @@ def test_ingest_cutadapt_wf(self) -> None: self.assertIn('cutadapt_out22', jworkflow.output_nodes) self.assertIn('cutadapt_out_report', jworkflow.output_nodes) + @pytest.mark.release def test_ingest_unicycler_assembly(self) -> None: filepath = os.path.abspath(f'{GALAXY_TESTWF_PATH}/unicycler_assembly.ga') jworkflow = ingest_galaxy(filepath) diff --git a/janis_core/tests/test_janis_translate.py b/janis_core/tests/test_janis_translate.py index d1a57d52c..93ba72197 100644 --- a/janis_core/tests/test_janis_translate.py +++ b/janis_core/tests/test_janis_translate.py @@ -34,7 +34,6 @@ JANIS_TESTDATA_PATH = os.path.join(os.getcwd(), 'janis_core/tests/data/janis') WDL_TESTDATA_PATH = os.path.join(os.getcwd(), 'janis_core/tests/data/wdl') -GALAXY_TESTDATA_PATH = os.path.join(os.getcwd(), 'janis_core/tests/data/galaxy') GALAXY_TESTTOOL_PATH = os.path.join(os.getcwd(), 'janis_core/tests/data/galaxy/wrappers') GALAXY_TESTWF_PATH = os.path.join(os.getcwd(), 'janis_core/tests/data/galaxy/workflows') @@ -139,6 +138,7 @@ def _reset_global_settings() -> None: settings.graph.ALLOW_INCOMPATIBLE_TYPES = True settings.validation.STRICT_IDENTIFIERS = False settings.validation.VALIDATE_STRINGFORMATTERS = False + settings.testing.TESTMODE = True settings.translate.MODE = 'extended' settings.translate.ALLOW_EMPTY_CONTAINER = True settings.translate.nextflow.ENTITY = 'workflow' @@ -1234,6 +1234,18 @@ def test_wf_unicycler_assembly(self): translate(internal, 'nextflow', export_path='./translated') translate(internal, 'wdl', export_path='./translated') + @pytest.mark.release + def test_wf_rna_seq_reads_to_counts(self): + # ingest + filepath = f'{GALAXY_TESTWF_PATH}/rna_seq_reads_to_counts.ga' + internal = ingest(filepath, self.src) + + # translate to CWL, WDL, NXF + translate(internal, 'cwl', export_path='./translated') + translate(internal, 'nextflow', export_path='./translated') + # TODO implement multiple edge step input for wdl (below) + # translate(internal, 'wdl', export_path='./translated') + @pytest.mark.release def test_wf_abricate(self): # ingest @@ -1267,14 +1279,4 @@ def test_wf_rna_seq_genes_to_pathways(self): translate(internal, 'nextflow', export_path='./translated') translate(internal, 'wdl', export_path='./translated') - @pytest.mark.release - def test_wf_rna_seq_reads_to_counts(self): - # ingest - filepath = f'{GALAXY_TESTWF_PATH}/rna_seq_reads_to_counts.ga' - internal = ingest(filepath, self.src) - # translate to CWL, WDL, NXF - translate(internal, 'cwl', export_path='./translated') - translate(internal, 'nextflow', export_path='./translated') - # TODO implement multiple edge step input for wdl (below) - # translate(internal, 'wdl', export_path='./translated') diff --git a/notes.txt b/notes.txt index 688e180f1..8d5a5cc26 100644 --- a/notes.txt +++ b/notes.txt @@ -6,7 +6,8 @@ TIMES -full suite: 64 sec (base), 109 sec (release) +full suite: 58 sec (base), 215 sec (release) + test_commandtool: 2 sec test_conditionals: 2 sec test_generics_util: 2 sec From 2296501aa79c4090eb0f4c7fe73d8035e0a85aca Mon Sep 17 00:00:00 2001 From: Grace Hall <graceavahall@gmail.com> Date: Tue, 12 Sep 2023 17:39:49 +1000 Subject: [PATCH 04/32] Modified container fetching to deterministic uris --- .../ingestion/galaxy/containers/Container.py | 43 ------ .../ingestion/galaxy/containers/__init__.py | 5 - .../ingestion/galaxy/containers/cache.py | 65 --------- .../ingestion/galaxy/containers/fetch.py | 43 ------ .../fetching/ContainerReqFetcher.py | 19 --- .../galaxy/containers/fetching/Fetcher.py | 23 ---- .../containers/fetching/GA4GHFetcher.py | 69 ---------- .../containers/fetching/QuayIOFetcher.py | 46 ------- .../galaxy/containers/fetching/__init__.py | 0 .../galaxy/containers/fetching/presets.py | 26 ---- .../galaxy/containers/fetching/utils.py | 35 ----- .../ingestion/galaxy/containers/main.py | 60 -------- .../ingestion/galaxy/containers/mulled.py | 129 ------------------ .../containers/selection/VersionMatcher.py | 69 ---------- .../galaxy/containers/selection/__init__.py | 0 .../galaxy/containers/selection/selection.py | 54 -------- janis_core/ingestion/galaxy/ingest.py | 6 +- .../galaxy/internal_model/tool/containers.py | 29 ++++ .../galaxy/internal_model/tool/generate.py | 8 +- janis_core/tests/test_ingestion_galaxy.py | 56 ++++---- 20 files changed, 66 insertions(+), 719 deletions(-) delete mode 100644 janis_core/ingestion/galaxy/containers/Container.py delete mode 100644 janis_core/ingestion/galaxy/containers/__init__.py delete mode 100644 janis_core/ingestion/galaxy/containers/cache.py delete mode 100644 janis_core/ingestion/galaxy/containers/fetch.py delete mode 100644 janis_core/ingestion/galaxy/containers/fetching/ContainerReqFetcher.py delete mode 100644 janis_core/ingestion/galaxy/containers/fetching/Fetcher.py delete mode 100644 janis_core/ingestion/galaxy/containers/fetching/GA4GHFetcher.py delete mode 100644 janis_core/ingestion/galaxy/containers/fetching/QuayIOFetcher.py delete mode 100644 janis_core/ingestion/galaxy/containers/fetching/__init__.py delete mode 100644 janis_core/ingestion/galaxy/containers/fetching/presets.py delete mode 100644 janis_core/ingestion/galaxy/containers/fetching/utils.py delete mode 100644 janis_core/ingestion/galaxy/containers/main.py delete mode 100644 janis_core/ingestion/galaxy/containers/mulled.py delete mode 100644 janis_core/ingestion/galaxy/containers/selection/VersionMatcher.py delete mode 100644 janis_core/ingestion/galaxy/containers/selection/__init__.py delete mode 100644 janis_core/ingestion/galaxy/containers/selection/selection.py create mode 100644 janis_core/ingestion/galaxy/internal_model/tool/containers.py diff --git a/janis_core/ingestion/galaxy/containers/Container.py b/janis_core/ingestion/galaxy/containers/Container.py deleted file mode 100644 index d96aaf901..000000000 --- a/janis_core/ingestion/galaxy/containers/Container.py +++ /dev/null @@ -1,43 +0,0 @@ - - - - -from datetime import datetime - -from janis_core.ingestion.galaxy.runtime.dates import JANIS_DATE_FMT -from janis_core.ingestion.galaxy.runtime.dates import QUAY_DATE_FMT - - - -class Container: - def __init__(self, info: dict[str, str]): - self.image_type: str = info['image_type'] - self.repo: str = info['repo'] - self.tag: str = info['tag'] - self.uri: str = info['uri'] - self._timestamp: str = info['_timestamp'] - - @property - def registry_host(self) -> str: - return self.uri.split('/', 1)[0] - - @property - def tool_name(self) -> str: - return self.repo - - @property - def tool_version(self) -> str: - if self.registry_host == 'quay.io': - return self.tag.split('--', 1)[0] - raise NotImplementedError() - - @property - def timestamp(self) -> str: - """map the timestamp from different formats to unified output""" - if self.registry_host == 'quay.io': - date = datetime.strptime(self._timestamp, QUAY_DATE_FMT) - else: - raise NotImplementedError() - return date.strftime(JANIS_DATE_FMT) - - diff --git a/janis_core/ingestion/galaxy/containers/__init__.py b/janis_core/ingestion/galaxy/containers/__init__.py deleted file mode 100644 index 9e5acea6a..000000000 --- a/janis_core/ingestion/galaxy/containers/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ - - - -from .main import resolve_dependencies_as_container -from .Container import Container \ No newline at end of file diff --git a/janis_core/ingestion/galaxy/containers/cache.py b/janis_core/ingestion/galaxy/containers/cache.py deleted file mode 100644 index af4c21176..000000000 --- a/janis_core/ingestion/galaxy/containers/cache.py +++ /dev/null @@ -1,65 +0,0 @@ - - -from __future__ import annotations -import os -import json -import filelock -import tempfile -from typing import Any, Optional - -from janis_core import settings -from janis_core.ingestion.galaxy.fileio import safe_init_file - -from .Container import Container -from janis_core.ingestion.galaxy.fileio import safe_init_file - - -def init_cache() -> ContainerCache: - if settings.ingest.galaxy.DISABLE_CONTAINER_CACHE: - temp = tempfile.TemporaryFile() - cache_path = os.path.join(tempfile.gettempdir(), str(temp.name)) - if os.path.exists(cache_path): - os.remove(cache_path) - with open(cache_path, 'w') as fp: - fp.write('{}') - else: - cache_path = settings.ingest.galaxy.CONTAINER_CACHE - return ContainerCache(cache_path) - - -class ContainerCache: - def __init__(self, cache_path: str): - self.cache_path = cache_path - - def get(self, versioned_tool_id: str) -> Optional[Container]: - cache = self._load() - if versioned_tool_id in cache: - return Container(cache[versioned_tool_id]) - return None - - def add(self, versioned_tool_id:str, container: Container): - cache = self._load() - cache[versioned_tool_id] = container.__dict__ - self._write(cache) - - def _load(self) -> dict[str, dict[str, str]]: - if not os.path.exists(self.cache_path): - safe_init_file(self.cache_path, contents='{}') - try: - lockpath = f"{self.cache_path.rsplit('.', 1)[0]}.lock" - lock = filelock.FileLock(lockpath) - with lock.acquire(timeout=10): - with open(self.cache_path, 'r') as fp: - return json.load(fp) - except FileNotFoundError: - return {} - - def _write(self, cache: dict[str, Any]) -> None: - if not os.path.exists(self.cache_path): - safe_init_file(self.cache_path, contents='{}') - lockpath = f"{self.cache_path.rsplit('.', 1)[0]}.lock" - lock = filelock.FileLock(lockpath) - with lock.acquire(timeout=10): - with open(self.cache_path, 'w') as fp: - json.dump(cache, fp) - diff --git a/janis_core/ingestion/galaxy/containers/fetch.py b/janis_core/ingestion/galaxy/containers/fetch.py deleted file mode 100644 index 30780e9ff..000000000 --- a/janis_core/ingestion/galaxy/containers/fetch.py +++ /dev/null @@ -1,43 +0,0 @@ - - -from typing import Optional - -from janis_core.ingestion.galaxy.gxtool.model import XMLRequirement, XMLCondaRequirement, XMLContainerRequirement - -from .Container import Container - -from .fetching.Fetcher import Fetcher -from .fetching.ContainerReqFetcher import ContainerReqFetcher -from .fetching.QuayIOFetcher import QuayIOFetcher -from .selection.selection import select_best_container_match - -DEFAULT_CONTAINER = Container({ - 'image_type': 'docker', - 'repo': 'python', - 'tag': '3.7.16', - 'uri': 'quay.io/biocontainers/python:3.7.16', - '_timestamp': 'Tue, 1 Mar 2022 18:45:00 -0000', -}) - -# def _fetch_presets(requirement: XMLRequirement) -> list[Container]: -# return get_images_preset(requirement) - -def fetch_online(requirement: XMLRequirement) -> Optional[Container]: - strategy = _select_strategy(requirement) - containers = strategy.fetch(requirement) - if containers: - container = select_best_container_match(containers, requirement) - return container - -def _select_strategy(requirement: XMLRequirement) -> Fetcher: - match requirement: - case XMLCondaRequirement(): - return QuayIOFetcher() - #case XMLCondaRequirement(): - # return GA4GHFetcher() - case XMLContainerRequirement(): - return ContainerReqFetcher() - case _: - raise RuntimeError() - - diff --git a/janis_core/ingestion/galaxy/containers/fetching/ContainerReqFetcher.py b/janis_core/ingestion/galaxy/containers/fetching/ContainerReqFetcher.py deleted file mode 100644 index b335e94db..000000000 --- a/janis_core/ingestion/galaxy/containers/fetching/ContainerReqFetcher.py +++ /dev/null @@ -1,19 +0,0 @@ - - -from janis_core.ingestion.galaxy.gxtool.model import XMLContainerRequirement - -from ..Container import Container -from .Fetcher import Fetcher - - -class ContainerReqFetcher(Fetcher): - - def fetch(self, requirement: XMLContainerRequirement) -> list[Container]: - info: dict[str, str] = { - 'image_type': requirement.image_type, - 'repo': requirement.name, - 'tag': requirement.version, - 'uri': requirement.uri, - '_timestamp': 'Tue, 14 June 1994 23:56:01 -0000', # my bday lol - } - return [Container(info)] diff --git a/janis_core/ingestion/galaxy/containers/fetching/Fetcher.py b/janis_core/ingestion/galaxy/containers/fetching/Fetcher.py deleted file mode 100644 index a69920a89..000000000 --- a/janis_core/ingestion/galaxy/containers/fetching/Fetcher.py +++ /dev/null @@ -1,23 +0,0 @@ - - - -from abc import ABC, abstractmethod -from typing import Any - -from ..Container import Container - - - -class Fetcher(ABC): - """ - searched for the most recent container build which matches the name and version - can just format a container requirement, or use an API to search online - individual builds not supported, except in the case of of 'container' requirements as it just directly grabs the url from the requirement text - """ - - @abstractmethod - def fetch(self, requirement: Any) -> list[Container]: - """finds relevant biocontainers for a given tool requirement""" - ... - - diff --git a/janis_core/ingestion/galaxy/containers/fetching/GA4GHFetcher.py b/janis_core/ingestion/galaxy/containers/fetching/GA4GHFetcher.py deleted file mode 100644 index f47a854c1..000000000 --- a/janis_core/ingestion/galaxy/containers/fetching/GA4GHFetcher.py +++ /dev/null @@ -1,69 +0,0 @@ - - -from typing import Any, Optional - -from janis_core.ingestion.galaxy.gxtool.requirements.requirements import Requirement -from janis_core.ingestion.galaxy.utils.general import global_align - -from .Fetcher import Fetcher -from ..Container import Container -from . import utils - - -class GA4GHFetcher(Fetcher): - """uses the GA4GH trs api to get tool containers and versions""" - - def fetch(self, requirement: XMLRequirement) -> list[Container]: - interactor = GA4GHInteractor() - tools_list = interactor.request_tool_data(requirement.name) - # TODO finish refactoring. GA4GH was down. - if tools_list: - tool_data = self.select_tool(tools_list) - version_data = self.get_version_data(tool_data) - if version_data: - return self.response_to_containers() - return [] - - def select_tool(self, tool_data: list[dict[str, Any]]) -> dict[str, Any]: - raise NotImplementedError() - - def get_version_data(self, tool_data: dict[str, Any]) -> Optional[dict[str, Any]]: - tool_data = self.most_similar_tool(api_results) - version = self.most_similar_version(tool_data) - interactor = GA4GHInteractor() - return interactor.request_version_data(version['url']) - - def response_to_containers(self, data: dict[str, Any]) -> list[Container]: - raise NotImplementedError() - - - def most_similar_tool(containers: list[Container]) -> dict[str, Any]: - """returns data for the api tool result most similar to the query tool name""" - result_similarities: list[SimilarityScore] = [] - query_name = requirement.get_text() - for tool_data in api_results: - score = global_align(query_name, tool_data['name']) - result_similarities.append(SimilarityScore(score, tool_data)) - result_similarities.sort(key = lambda x: x.score, reverse=True) - return result_similarities[0].obj - -class GA4GHInteractor: - - def request_tool_data(self, query_tool: str) -> Optional[list[dict[str, Any]]]: - """ - make api request which returns dict of search results - select the correct tool from results & return - only makes requests which return lists of dicts - """ - api_uri = self.format_tool_request_url(query_tool) - return utils.make_api_request(api_uri) - - def request_version_data(self, query_url: str) -> list[dict[str, Any]]: - return utils.make_api_request(query_url) - - def format_tool_request_url(self, tool_query: str) -> str: - return f'https://api.biocontainers.pro/ga4gh/trs/v2/tools?name={tool_query}&limit=10&sort_field=id&sort_order=asc' - - - - diff --git a/janis_core/ingestion/galaxy/containers/fetching/QuayIOFetcher.py b/janis_core/ingestion/galaxy/containers/fetching/QuayIOFetcher.py deleted file mode 100644 index 0132ebd3f..000000000 --- a/janis_core/ingestion/galaxy/containers/fetching/QuayIOFetcher.py +++ /dev/null @@ -1,46 +0,0 @@ - - - -from typing import Any -from janis_core.ingestion.galaxy.gxtool.model import XMLRequirement - -from ..Container import Container -from ..fetching.Fetcher import Fetcher -from . import utils - - -class QuayIOFetcher(Fetcher): - - def fetch(self, requirement: XMLRequirement) -> list[Container]: - interactor = QuayInteractor() - tool_data = interactor.request_tool_data(requirement.name) - if tool_data: - return self.response_to_containers(tool_data, requirement) - else: - return [] - - def response_to_containers(self, repo: dict[str, Any], requirement: XMLRequirement) -> list[Container]: - out: list[Container] = [] - for details in repo['tags'].values(): - info: dict[str, str] = { - 'image_type': 'docker', - 'repo': repo['name'], - 'tag': details['name'], - 'uri': self.format_url(repo, details), - '_timestamp': details['last_modified'] - } - out.append(Container(info)) - return out - - def format_url(self, repo: dict[str, Any], tag: dict[str, str]) -> str: - return f"quay.io/biocontainers/{repo['name']}:{tag['name']}" - - -class QuayInteractor: - - def request_tool_data(self, name: str) -> dict[str, Any]: - endpoint = f'https://quay.io/api/v1/repository/biocontainers/{name}' - return utils.make_api_request(endpoint) - - - \ No newline at end of file diff --git a/janis_core/ingestion/galaxy/containers/fetching/__init__.py b/janis_core/ingestion/galaxy/containers/fetching/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/janis_core/ingestion/galaxy/containers/fetching/presets.py b/janis_core/ingestion/galaxy/containers/fetching/presets.py deleted file mode 100644 index a74c9efb9..000000000 --- a/janis_core/ingestion/galaxy/containers/fetching/presets.py +++ /dev/null @@ -1,26 +0,0 @@ - - - -from janis_core.ingestion.galaxy.gxtool.requirements.requirements import Requirement - -from ..Container import Container - - -image_presets = { - 'python': [ - { - 'image_type': 'docker', - 'repo': 'python', - 'tag': '3.10', - 'uri': 'quay.io/biocontainers/python:3.10', - '_timestamp': 'Tue, 1 Mar 2022 18:45:00 -0000', - } - ] -} - -def get_images_preset(requirement: XMLRequirement) -> list[Container]: - out: list[Container] = [] - if requirement.name in image_presets: - for details in image_presets[requirement.name]: - out.append(Container(details)) - return out diff --git a/janis_core/ingestion/galaxy/containers/fetching/utils.py b/janis_core/ingestion/galaxy/containers/fetching/utils.py deleted file mode 100644 index 4668b1a9d..000000000 --- a/janis_core/ingestion/galaxy/containers/fetching/utils.py +++ /dev/null @@ -1,35 +0,0 @@ - - - -import json -import requests -from typing import Any, Optional -from requests import Response - - - - -def make_api_request(request_url: str) -> Any: - response = make_request(request_url) - return handle_response(response) - -def make_request(request_url: str) -> Optional[Response]: - # make requests to get information about tools with similar name - iterations = 1 - response: Optional[Response] = None - while response is None: - if iterations > 5: - break - try: - response = requests.get(request_url, timeout=5) - except requests.exceptions.Timeout: - response = None - iterations += 1 - return response - -def handle_response(response: Optional[Response]) -> Any: - if response is None or response.status_code != 200: - # logging.no_ga4gh_data() - return None - else: - return json.loads(response.text) \ No newline at end of file diff --git a/janis_core/ingestion/galaxy/containers/main.py b/janis_core/ingestion/galaxy/containers/main.py deleted file mode 100644 index dc7bad8b9..000000000 --- a/janis_core/ingestion/galaxy/containers/main.py +++ /dev/null @@ -1,60 +0,0 @@ - -from janis_core import settings -from janis_core.ingestion.galaxy.gxtool.model import XMLTool - -from .mulled import gen_mulled_image -from .mulled import get_base_image_uri -from .fetch import fetch_online -from .fetch import DEFAULT_CONTAINER -from .cache import init_cache - -from .Container import Container - - -def resolve_dependencies_as_container(xmltool: XMLTool) -> str: - # for each of the galaxy requirements, find a useable container from quay.io. - # return the container url. - if settings.testing.TESTING_USE_DEFAULT_CONTAINER: - return DEFAULT_CONTAINER.uri - - if len(xmltool.metadata.requirements) == 0: - return DEFAULT_CONTAINER.uri - - versioned_id = xmltool.metadata.versioned_id - cache = init_cache() - container = cache.get(versioned_id) - - # already had a container for this tool version (early exit) - if container is not None: - return container.uri - - # get container online (1 requirement) - if len(xmltool.metadata.requirements) == 1: - container = fetch_online(xmltool.metadata.requirements[0]) - - # gen mulled image for all requirements (2+ requirements) - elif settings.ingest.galaxy.GEN_IMAGES: - container = gen_mulled_image(xmltool) - - # get container online for 1 requirement, prioritising what we think is the main requirement (2+ requirements) - else: - uri, _ = get_base_image_uri(xmltool) - container = Container({ - 'image_type': 'docker', - 'repo': uri.split('/')[-1].split(':')[0], - 'tag': uri.split('/')[-1].split(':')[1], - 'uri': uri, - '_timestamp': '', - }) - - if container: - cache.add(versioned_id, container) - - container = container if container else DEFAULT_CONTAINER - return container.uri - - - - - - diff --git a/janis_core/ingestion/galaxy/containers/mulled.py b/janis_core/ingestion/galaxy/containers/mulled.py deleted file mode 100644 index b4e957b96..000000000 --- a/janis_core/ingestion/galaxy/containers/mulled.py +++ /dev/null @@ -1,129 +0,0 @@ - -import os -import sys -import subprocess -from typing import Optional, Tuple - -from janis_core.ingestion.galaxy.gxtool.model import XMLRequirement -from janis_core.ingestion.galaxy.gxtool.model import XMLTool -from .Container import Container -from .fetch import fetch_online -from .fetch import DEFAULT_CONTAINER - - -def gen_mulled_image(xmltool: XMLTool) -> Optional[Container]: - _check_docker_available() - base_image_uri, other_reqs = get_base_image_uri(xmltool) - mulled_image = create_mulled_container(xmltool, base_image_uri, other_reqs) - return mulled_image - -def get_base_image_uri(xmltool: XMLTool) -> Tuple[str, list[XMLRequirement]]: - # start with main requirement as base container if we can find one - main_req = xmltool.metadata.main_requirement - assert(main_req) - ordered_reqs = [main_req] + [x for x in xmltool.metadata.requirements if x.name != main_req.name] - - for req in ordered_reqs: - container = fetch_online(req) - if container is not None: - other_reqs = [x for x in ordered_reqs if x.name != req.name] - return (container.uri, other_reqs) # type: ignore - - return (DEFAULT_CONTAINER, xmltool.metadata.requirements) # type: ignore - -def create_mulled_container(xmltool: XMLTool, base_container_uri: str, other_reqs: list[XMLRequirement]) -> Container: - # user messages - print(f'building container for {xmltool.metadata.id}_{xmltool.metadata.version}') - print('the following conda packages will be mulled together:') - for req in xmltool.metadata.requirements: - print(f' - {req.name}') - print('(this may take some time)') - - # doing mulled-build - manager = MulledContainerGenerator(xmltool, base_container_uri, other_reqs) - manager.do_build() - - # managing result - if manager.success: - uri = manager.mulled_uri - print(f'built container {manager.mulled_uri}') - else: - uri = base_container_uri - print('mulled container generation failed. falling back to base container.') - - # returning container - return Container({ - 'image_type': 'docker', - 'repo': uri.split('/')[-1].split(':')[0], - 'tag': uri.split('/')[-1].split(':')[1], - 'uri': uri, - '_timestamp': '', - }) - -def _check_docker_available() -> None: - try: - completed_process = subprocess.run(['docker', 'version'], shell=True, capture_output=True) - if completed_process.returncode == 0: - print('docker found. proceeding with mulled container generation.') - else: - raise FileNotFoundError - except FileNotFoundError: - print('you have supplied "--build-galaxy-tool-images", but docker was not found.') - print('please install docker / run the app if not on linux.') - print('alternatively, re-run janis translate without "--build-galaxy-tool-images"') - sys.exit(1) - -# quay.io/biocontainers/bioconductor-limma:3.34.9--r3.4.1_0 - -class MulledContainerGenerator: - def __init__(self, xmltool: XMLTool, base_container_uri: str, other_reqs: list[XMLRequirement]): - self.xmltool = xmltool - self.base_container_uri = base_container_uri - self.other_reqs = other_reqs - self.success: bool = False - - @property - def mulled_name(self) -> str: - version = self.xmltool.metadata.version - name = self.xmltool.metadata.id - name = name.lower() - name = name.replace('_', '-') - return f'{name}:{version}' - - @property - def mulled_uri(self) -> str: - return f'quay.io/ppp-janis-translate/{self.mulled_name}' - - def do_build(self) -> None: - # gen command - command: list[str] = [] - command.append(f"DEST_BASE_IMAGE='{self.base_container_uri}'") - command.append("mulled-build") - command.append("-c") - command.append("iuc,conda-forge,bioconda") - command.append("--namespace") - command.append("'ppp-janis-translate'") - command.append("--name-override") - command.append(f"'{self.mulled_name}'") - command.append("--verbose") - command.append("build") - extra_reqs = ','.join([req.name for req in self.other_reqs]) - command.append(f"'{extra_reqs}'") - cmdstr = ' '.join(command) - - # run subprocess - completed_process = subprocess.run(cmdstr, shell=True, capture_output=True) - if completed_process.returncode == 0: - self.success = True - else: - self.success = False - - # stderr = completed_process.stderr.decode('utf-8') - # stdout = completed_process.stdout.decode('utf-8') - # print('\n--- STDERR ---') - # print(stderr) - # print('\n--- STDOUT ---') - # print(stdout) - # print() - - diff --git a/janis_core/ingestion/galaxy/containers/selection/VersionMatcher.py b/janis_core/ingestion/galaxy/containers/selection/VersionMatcher.py deleted file mode 100644 index 0aae1c4db..000000000 --- a/janis_core/ingestion/galaxy/containers/selection/VersionMatcher.py +++ /dev/null @@ -1,69 +0,0 @@ - - - -from dataclasses import dataclass -from typing import Any, Optional - -from janis_core.ingestion.galaxy import expressions - - -@dataclass -class Version: - text: str - - def get_numeric(self) -> str: - matches = expressions.get_matches(self.text, expressions.patterns.VERSION) - if matches: - match = matches[0] - return match[0] # type: ignore - raise RuntimeError() - - def get_numeric_levels(self, fill_size: int=0) -> list[int]: - numeric_version = self.get_numeric() - split_version = numeric_version.split('.') - split_version = [int(x) for x in split_version] - while len(split_version) < fill_size: - split_version.append(0) - return split_version - - -class VersionMatcher: - - def get_version_exact(self, tool_data: dict[str, Any], target_version: str) -> Optional[dict[str, str]]: - for ver in tool_data['versions']: - if ver['meta_version'] == target_version: - return ver - return None - - def get_version_trimmed(self, tool_data: dict[str, Any], target_version: str) -> Optional[dict[str, str]]: - target = Version(target_version) - - for ver in tool_data['versions']: - query = Version(ver['meta_version']) - if query.get_numeric(): - if query.get_numeric() == target.get_numeric(): - return ver - return None - - def get_version_trimmed_inexact(self, tool_data: dict[str, Any], target_version: str) -> Optional[dict[str, str]]: - """ - selects the version by trimming to numeric, then matching most similar, allowing wobble - just does a version comparision sort for each digit, right to left. - sorts are stable, so ordering comes out correct - """ - target = Version(target_version) - queries = [Version(ver['meta_version']) for ver in tool_data['versions']] - array_size = max([len(ver.get_numeric_levels()) for ver in [target] + queries]) - - for i in range(array_size -1, -1, -1): - queries.sort(key=lambda x: abs(target.get_numeric_levels()[i] - x.get_numeric_levels(fill_size=array_size)[i])) - - selected = queries[0].text - #return the right version dict - for query in tool_data['versions']: - if query['meta_version'] == selected: - return query - - def get_most_recent(self, tool_data: dict[str, Any]) -> dict[str, str]: - return tool_data['versions'][-1] - \ No newline at end of file diff --git a/janis_core/ingestion/galaxy/containers/selection/__init__.py b/janis_core/ingestion/galaxy/containers/selection/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/janis_core/ingestion/galaxy/containers/selection/selection.py b/janis_core/ingestion/galaxy/containers/selection/selection.py deleted file mode 100644 index ce8539991..000000000 --- a/janis_core/ingestion/galaxy/containers/selection/selection.py +++ /dev/null @@ -1,54 +0,0 @@ - - -from janis_core.ingestion.galaxy.gxtool.model import XMLRequirement -from ..Container import Container - - -def select_best_container_match(containers: list[Container], requirement: XMLRequirement) -> Container: - containers = select_version_matches(containers, requirement) - containers = sort_by_create_date(containers) - return containers[0] - -def select_version_matches(containers: list[Container], requirement: XMLRequirement) -> list[Container]: - matches = [c for c in containers if c.tool_version == requirement.version] - if matches: - return matches - # TODO logging.version_mismatch - return containers - -def sort_by_create_date(containers: list[Container]) -> list[Container]: - return sorted(containers, key=lambda x: x.timestamp, reverse=True) - - -# @dataclass -# class SimilarityScore: -# score: float -# obj: Any - -# def most_similar_version(tool_data: dict[str, Any]) -> dict[str, Any]: -# vm = VersionMatcher() -# target_version = requirement.version -# selected: Optional[dict[str, str]] = None - -# selected = vm.get_version_exact(tool_data, target_version) -# if not selected: -# selected = vm.get_version_trimmed(tool_data, target_version) -# if not selected: -# selected = vm.get_most_recent(tool_data) -# return selected -# # if not selected: -# # selected = vm.get_version_trimmed_inexact(query_versions, target_version) - -# def select_from_available(images: list[dict[str, Any]]) -> Optional[dict[str, Any]]: -# for image in images: -# if image['registry_host'] == 'quay.io/': -# return image -# for image in images: -# if image['registry_host'] == 'depot.galaxyproject.org/singularity/': -# return image -# return None - - - - - diff --git a/janis_core/ingestion/galaxy/ingest.py b/janis_core/ingestion/galaxy/ingest.py index 2794b2dd3..65b440e5a 100644 --- a/janis_core/ingestion/galaxy/ingest.py +++ b/janis_core/ingestion/galaxy/ingest.py @@ -10,7 +10,6 @@ from janis_core.ingestion.galaxy.runtime.startup import tool_setup from janis_core.ingestion.galaxy.gxtool.parsing import load_xmltool from janis_core.ingestion.galaxy.gxtool.command import gen_command -from janis_core.ingestion.galaxy.containers import resolve_dependencies_as_container from janis_core.ingestion.galaxy.internal_model.tool.generate import gen_tool from janis_core.ingestion.galaxy.internal_model.tool import ITool as InternalTool @@ -84,13 +83,11 @@ def ingest_tool(path: str, gxstep: Optional[dict[str, Any]]=None) -> InternalToo 'galaxy' is the galaxy tool representation, and 'internal' is the internal tool representation we will build. """ - # setup_data_folder() datatypes.populate() runtime.tool.tool_path = path galaxy = load_xmltool(path) command = gen_command(galaxy, gxstep) - container = resolve_dependencies_as_container(galaxy) - internal = gen_tool(galaxy, command, container, gxstep) + internal = gen_tool(galaxy, command, gxstep) return internal def ingest_workflow(path: str) -> Workflow: @@ -105,7 +102,6 @@ def ingest_workflow(path: str) -> Workflow: Overall process for galaxy ingest is: galaxy -> *internal* -> janis_core model. """ - # setup_data_folder() datatypes.populate() galaxy = _load_galaxy_workflow(path) internal = Workflow() diff --git a/janis_core/ingestion/galaxy/internal_model/tool/containers.py b/janis_core/ingestion/galaxy/internal_model/tool/containers.py new file mode 100644 index 000000000..46657d010 --- /dev/null +++ b/janis_core/ingestion/galaxy/internal_model/tool/containers.py @@ -0,0 +1,29 @@ + + +from galaxy.tool_util.deps.mulled.util import v2_image_name +from galaxy.tool_util.deps.mulled.util import build_target + +from janis_core import settings +from janis_core.ingestion.galaxy.gxtool.model import XMLTool + + +DEFAULT_CONTAINER = 'quay.io/biocontainers/python:3.10.1' + + +def resolve_dependencies_as_container(xmltool: XMLTool) -> str: + # for each of the galaxy requirements, find a useable container from quay.io. + # return the container url. + if settings.testing.TESTING_USE_DEFAULT_CONTAINER: + return DEFAULT_CONTAINER + + elif len(xmltool.metadata.requirements) == 0: + return DEFAULT_CONTAINER + + elif len(xmltool.metadata.requirements) == 1: + req = xmltool.metadata.requirements[0] + return f'quay.io/biocontainers/{req.name}:{req.version}' + + else: + items = [build_target(req.name, version=req.version) for req in xmltool.metadata.requirements] + resource = v2_image_name(items) + return f'quay.io/biocontainers/{resource}' \ No newline at end of file diff --git a/janis_core/ingestion/galaxy/internal_model/tool/generate.py b/janis_core/ingestion/galaxy/internal_model/tool/generate.py index f5f3a08f2..09292c974 100644 --- a/janis_core/ingestion/galaxy/internal_model/tool/generate.py +++ b/janis_core/ingestion/galaxy/internal_model/tool/generate.py @@ -28,15 +28,15 @@ ) from .tool import ITool +from .containers import resolve_dependencies_as_container def gen_tool( xmltool: XMLTool, command: Command, - container: Optional[str], gxstep: Optional[dict[str, Any]]=None ) -> ITool: - tfactory = ToolFactory(xmltool, command, container, gxstep) + tfactory = ToolFactory(xmltool, command, gxstep) tool = tfactory.create() return tool @@ -46,20 +46,18 @@ def __init__( self, xmltool: XMLTool, command: Command, - container: Optional[str], gxstep: Optional[dict[str, Any]]=None ) -> None: self.xmltool = xmltool self.command = command - self.container = container self.gxstep = gxstep def create(self) -> ITool: tool = ITool( xmltool=self.xmltool, metadata=self.xmltool.metadata, - container=self.container, + container=resolve_dependencies_as_container(self.xmltool), base_command=self.get_base_command(), configfiles=self.xmltool.configfiles, scripts=self.xmltool.scripts, diff --git a/janis_core/tests/test_ingestion_galaxy.py b/janis_core/tests/test_ingestion_galaxy.py index 58e85b4de..2c87d9086 100644 --- a/janis_core/tests/test_ingestion_galaxy.py +++ b/janis_core/tests/test_ingestion_galaxy.py @@ -51,7 +51,7 @@ from janis_core import settings from janis_core.ingestion.galaxy import datatypes -from janis_core.ingestion.galaxy.containers import resolve_dependencies_as_container +from janis_core.ingestion.galaxy.internal_model.tool.containers import resolve_dependencies_as_container from janis_core.ingestion.galaxy.janis_mapping.workflow import to_janis_workflow from janis_core.ingestion.galaxy.janis_mapping.workflow import to_janis_inputs_dict @@ -306,33 +306,43 @@ def setUp(self) -> None: settings.ingest.galaxy.DISABLE_CONTAINER_CACHE = True settings.testing.TESTING_USE_DEFAULT_CONTAINER = False - @unittest.skip("swapping to deterministic quay.io uris") def test_coreutils_requirement(self) -> None: - # TODO use deterministic quay.io uri - raise NotImplementedError - filepath = os.path.abspath(f'{GALAXY_TESTTOOL_PATH}/text_processing-d698c222f354/cut.xml') - jtool = ingest_galaxy(filepath) - image_uri = jtool.container() - self.assertEqual(image_uri, 'quay.io/biocontainers/coreutils:8.25--1') + runtime.tool.tool_path = filepath + xmltool = load_xmltool(filepath) + actual = resolve_dependencies_as_container(xmltool) + expected = 'quay.io/biocontainers/coreutils:8.25' + self.assertEqual(actual, expected) - @unittest.skip("swapping to deterministic quay.io uris") def test_single_requirement(self) -> None: - # TODO use deterministic quay.io uri - raise NotImplementedError - wf_path = os.path.abspath(f'{GALAXY_TESTWF_PATH}/wf_abricate.ga') - xmltool = _load_xmltool_for_step(wf_path, 1) - image_uri = resolve_dependencies_as_container(xmltool) - self.assertEqual(image_uri, 'quay.io/biocontainers/abricate:1.0.1--ha8f3691_1') - - @unittest.skip("swapping to deterministic quay.io uris") + filepath = os.path.abspath(f'{GALAXY_TESTTOOL_PATH}/abricate-c2ef298da409/abricate.xml') + runtime.tool.tool_path = filepath + xmltool = load_xmltool(filepath) + actual = resolve_dependencies_as_container(xmltool) + expected = 'quay.io/biocontainers/abricate:1.0.1' + self.assertEqual(actual, expected) + + filepath = os.path.abspath(f'{GALAXY_TESTTOOL_PATH}/fastqc-3d0c7bdf12f5/rgFastQC.xml') + runtime.tool.tool_path = filepath + xmltool = load_xmltool(filepath) + actual = resolve_dependencies_as_container(xmltool) + expected = 'quay.io/biocontainers/fastqc:0.11.9' + self.assertEqual(actual, expected) + def test_multiple_requirements(self) -> None: - # TODO use mulled-hash - raise NotImplementedError - wf_path = os.path.abspath(f'{GALAXY_TESTWF_PATH}/hisat2_wf.ga') - xmltool = _load_xmltool_for_step(wf_path, 2) - image_uri = resolve_dependencies_as_container(xmltool) - self.assertEqual(image_uri, 'quay.io/ppp-janis-translate/hisat2:2.2.1') + filepath = os.path.abspath(f'{GALAXY_TESTTOOL_PATH}/hisat2-f4af63aaf57a/hisat2.xml') + runtime.tool.tool_path = filepath + xmltool = load_xmltool(filepath) + actual = resolve_dependencies_as_container(xmltool) + expected = 'quay.io/biocontainers/mulled-v2-b570fc8a7b25c6a733660cda7e105007b53ac501:f7f35d8f4102a5de392cc02fbba2d8fb67efcd8d' + self.assertEqual(actual, expected) + + filepath = os.path.abspath(f'{GALAXY_TESTTOOL_PATH}/limma_voom-d5a940112511/limma_voom.xml') + runtime.tool.tool_path = filepath + xmltool = load_xmltool(filepath) + actual = resolve_dependencies_as_container(xmltool) + expected = 'quay.io/biocontainers/mulled-v2-3d571fed05a48eb8af17dbc6c8ed632143702ac1:b8965977e5fd85f68a4dc25853b8e21f27890498' + self.assertEqual(actual, expected) class TestMarkMainStatement(unittest.TestCase): From 9ac54fbfa510ebf4b4a99d1b1420f8fb7655fbd6 Mon Sep 17 00:00:00 2001 From: Grace Hall <graceavahall@gmail.com> Date: Fri, 6 Oct 2023 15:58:20 +1100 Subject: [PATCH 05/32] setup fixed --- janis_core/cli.py | 73 +++++++++++++++++++++++++++++++++++++++++++++++ pyproject.toml | 4 ++- 2 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 janis_core/cli.py diff --git a/janis_core/cli.py b/janis_core/cli.py new file mode 100644 index 000000000..5f06ee62e --- /dev/null +++ b/janis_core/cli.py @@ -0,0 +1,73 @@ + + +import argparse +import sys + +from janis_core.ingestion import SupportedIngestion +from janis_core.translation_deps.supportedtranslations import SupportedTranslation +from janis_core.ingestion import ingest +from janis_core.translations import translate + + +def main() -> None: + sysargs = sys.argv[1:] + args_namespace = parse_args(sysargs) + args_dict = interpret_args(args_namespace) + do_translate(args_dict) + +def do_translate(args: dict[str, str]) -> None: + internal = ingest(args['infile'], args['from']) + return translate(internal, args['to'], export_path=args['outdir']) + +def interpret_args(args: argparse.Namespace) -> dict[str, str]: + out: dict[str, str] = {} + for key, val in args._get_kwargs(): # workaround for '--from' name: usually a python error. + if key == 'from': + out['from'] = val + elif key == 'to': + out['to'] = val + elif key == 'infile': + out['infile'] = val + elif key == 'output_dir': + out['outdir'] = val + return out + +def parse_args(sysargs: list[str]) -> argparse.Namespace: + parser = argparse.ArgumentParser(description='Translate a janis workflow to CWL, WDL or Nextflow') + + parser.add_argument( + "infile", + help="Path to input file", + ) + parser.add_argument( + "--from", + help="Language of infile. Will be autodetected if not supplied", + choices=SupportedIngestion.all(), + type=str + ) + parser.add_argument( + "--to", + help="Language to translate to.", + choices=SupportedTranslation.all(), + type=str + ) + parser.add_argument( + "-o", + "--output-dir", + help="Output directory to write output to (default: translated).", + type=str, + default="translated" + ) + parser.add_argument( + "--mode", + help="Translate mode (default: regular). Controls extent of tool translation\n\ + - skeleton: ignores inputs which aren't used in workflow. no CLI command generation.\n\ + - regular: ignores inputs which aren't used in workflow. \n\ + - extended: full translation of all inputs & CLI command", + type=str, + choices=["skeleton", "regular", "extended"], + default="regular" + ) + + return parser.parse_args(sysargs) + diff --git a/pyproject.toml b/pyproject.toml index dbd1a6fda..4aafa978b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -77,7 +77,6 @@ requires-python = ">=3.10.5" repository = "https://github.com/PMCC-BioinformaticsCore/janis-core" documentation = "https://janis.readthedocs.io/en/latest/" - [tool.setuptools] include-package-data = true @@ -95,3 +94,6 @@ janis_core = [ where = ["./"] include = ["janis_core*"] namespaces = false + +[project.scripts] +janis-translate = "janis_core.cli:main" \ No newline at end of file From 239978f79284007352268d5a48aaf9aa888aa810 Mon Sep 17 00:00:00 2001 From: Grace Hall <graceavahall@gmail.com> Date: Tue, 17 Oct 2023 19:09:46 +1100 Subject: [PATCH 06/32] broken trash --- janis_core/ingestion/wdl/__init__.py | 3 +- janis_core/ingestion/wdl/parsing/__init__.py | 3 + .../ingestion/wdl/parsing/command/__init__.py | 3 + .../wdl/parsing/command/basic_parser.py | 5 + .../ingestion/wdl/parsing/command/main.py | 189 ++++++++++++++++++ .../wdl/parsing/command/shell_parser.py | 5 + .../ingestion/wdl/parsing/expressions.py | 149 ++++++++++++++ .../ingestion/wdl/parsing/requirements.py | 102 ++++++++++ janis_core/ingestion/wdl/parsing/task.py | 65 ++++++ janis_core/ingestion/wdl/parsing/types.py | 30 +++ .../cutadapt-135b80fb1ac2/cutadapt.xml | 2 +- janis_core/tests/data/wdl/basic/io_tool.wdl | 45 +++++ janis_core/tests/data/wdl/basic/io_wf.json | 13 ++ janis_core/tests/data/wdl/basic/io_wf.wdl | 40 ++++ janis_core/tests/data/wdl/basic/meta_tool.wdl | 32 +++ .../tests/data/wdl/basic/rename_tool.wdl | 29 +++ janis_core/tests/data/wdl/bwa_mem.wdl | 63 ++++++ .../tests/data/wdl/datatypes/arrays_tools.wdl | 0 .../tests/data/wdl/datatypes/multi_tool.wdl | 0 .../data/wdl/datatypes/secondaries_tool.wdl | 2 + .../tests/data/wdl/datatypes/singles_tool.wdl | 40 ++++ .../tests/data/wdl/datatypes/singles_wf.json | 12 ++ .../tests/data/wdl/datatypes/singles_wf.wdl | 37 ++++ .../tests/data/wdl/datatypes/stdout_tool.wdl | 0 janis_core/tests/test_ingestion_wdl.py | 31 ++- notes.txt | 40 ++++ 26 files changed, 935 insertions(+), 5 deletions(-) create mode 100644 janis_core/ingestion/wdl/parsing/__init__.py create mode 100644 janis_core/ingestion/wdl/parsing/command/__init__.py create mode 100644 janis_core/ingestion/wdl/parsing/command/basic_parser.py create mode 100644 janis_core/ingestion/wdl/parsing/command/main.py create mode 100644 janis_core/ingestion/wdl/parsing/command/shell_parser.py create mode 100644 janis_core/ingestion/wdl/parsing/expressions.py create mode 100644 janis_core/ingestion/wdl/parsing/requirements.py create mode 100644 janis_core/ingestion/wdl/parsing/task.py create mode 100644 janis_core/ingestion/wdl/parsing/types.py create mode 100644 janis_core/tests/data/wdl/basic/io_tool.wdl create mode 100644 janis_core/tests/data/wdl/basic/io_wf.json create mode 100644 janis_core/tests/data/wdl/basic/io_wf.wdl create mode 100644 janis_core/tests/data/wdl/basic/meta_tool.wdl create mode 100644 janis_core/tests/data/wdl/basic/rename_tool.wdl create mode 100644 janis_core/tests/data/wdl/bwa_mem.wdl create mode 100644 janis_core/tests/data/wdl/datatypes/arrays_tools.wdl create mode 100644 janis_core/tests/data/wdl/datatypes/multi_tool.wdl create mode 100644 janis_core/tests/data/wdl/datatypes/secondaries_tool.wdl create mode 100644 janis_core/tests/data/wdl/datatypes/singles_tool.wdl create mode 100644 janis_core/tests/data/wdl/datatypes/singles_wf.json create mode 100644 janis_core/tests/data/wdl/datatypes/singles_wf.wdl create mode 100644 janis_core/tests/data/wdl/datatypes/stdout_tool.wdl diff --git a/janis_core/ingestion/wdl/__init__.py b/janis_core/ingestion/wdl/__init__.py index c2496e725..23d269102 100644 --- a/janis_core/ingestion/wdl/__init__.py +++ b/janis_core/ingestion/wdl/__init__.py @@ -1,3 +1,4 @@ -from .main import WdlParser \ No newline at end of file +from .main import WdlParser +from . import parsing \ No newline at end of file diff --git a/janis_core/ingestion/wdl/parsing/__init__.py b/janis_core/ingestion/wdl/parsing/__init__.py new file mode 100644 index 000000000..045273cad --- /dev/null +++ b/janis_core/ingestion/wdl/parsing/__init__.py @@ -0,0 +1,3 @@ + +from .command import main +from .task import parse_task \ No newline at end of file diff --git a/janis_core/ingestion/wdl/parsing/command/__init__.py b/janis_core/ingestion/wdl/parsing/command/__init__.py new file mode 100644 index 000000000..4cde826d0 --- /dev/null +++ b/janis_core/ingestion/wdl/parsing/command/__init__.py @@ -0,0 +1,3 @@ + + +from .main import parse_command \ No newline at end of file diff --git a/janis_core/ingestion/wdl/parsing/command/basic_parser.py b/janis_core/ingestion/wdl/parsing/command/basic_parser.py new file mode 100644 index 000000000..24de065a1 --- /dev/null +++ b/janis_core/ingestion/wdl/parsing/command/basic_parser.py @@ -0,0 +1,5 @@ + + + +class BasicCommandParser: + pass diff --git a/janis_core/ingestion/wdl/parsing/command/main.py b/janis_core/ingestion/wdl/parsing/command/main.py new file mode 100644 index 000000000..2c9e88dcc --- /dev/null +++ b/janis_core/ingestion/wdl/parsing/command/main.py @@ -0,0 +1,189 @@ + +from typing import Optional +from copy import deepcopy +import WDL +from janis_core import ToolInput +from janis_core import ToolOutput +from janis_core import ToolArgument +from janis_core import CommandToolBuilder +from dataclasses import dataclass, field + +from .basic_parser import BasicCommandParser +from .shell_parser import ShellCommandParser +import regex as re + + +def parse_command(internal: CommandToolBuilder, task: WDL.Tree.Task) -> CommandToolBuilder: + commands = get_text_commands(task) + parser_c = ShellCommandParser if requires_shell_script(commands) else BasicCommandParser + parser = parser_c(internal, task, commands) + parser.parse() + return parser.internal + +@dataclass +class Command: + elems: list[str | WDL.Expr.Placeholder] = field(default_factory=list) + + @property + def is_shell_var_cmd(self) -> bool: + if not isinstance(self.elems[0], str): + return False + if not re.match(r'^[ \t]*?(set|declare|env|export)', self.elems[0]): + return False + return True + + @property + def is_comment(self) -> bool: + if not isinstance(self.elems[0], str): + return False + if not re.match(r'^[ \t]*?#', self.elems[0]): + return False + return True + +def get_text_commands(task: WDL.Tree.Task) -> list[Command]: + cmds: list[Command] = [] + + if len(task.command.parts) == 0: + return cmds + + curr_cmd = Command() + for i, part in enumerate(task.command.parts): + + if isinstance(part, str): + lines = re.split(r'(?<!\\)\n', part) + lines = [ln.strip(' \t') for ln in lines] + if lines[0] != '' and isinstance(curr_cmd.elems[-1], WDL.Expr.Placeholder): + + + + + if lines[0] != '': + curr_cmd.elems.append(lines[0]) + + + for j, line in enumerate(lines): + # first line: append to previous command + if j == 0 and line != '' and isinstance(curr_cmd.elems[-1], WDL.Expr.Placeholder): + curr_cmd.elems.append(line) + cmds.append(curr_cmd) + curr_cmd = Command() + + + # middle lines + + # last line + + + + + + # ignore empty lines + elif line == '': + continue + # ignore comments + elif re.match(r'^[ \t]*?#', line): + continue + elif i != len(lines) - 1: + curr_cmd.elems.append(line) + cmds.append(curr_cmd) + curr_cmd = Command() + elif + + + + + + lines = [ln.strip() for ln in lines] + should_append = False if lines[-1] == '' else True + lines = [ln for ln in lines if ln != ''] + + print() + print() + + +def requires_shell_script(commands: list[str]) -> bool: + """Returns True if the task requires a shell script""" + return True + + + + +class WDLCommandParser: + def __init__(self, internal: CommandToolBuilder, task: WDL.Tree.Task): + self.internal = internal + self.task = task + # self.base_command: list[str] = [] + # self.inputs: list[ToolInput] = [] + # self.arguments: list[ToolArgument] = [] + # self.outputs: list[ToolOutput] = [] + + @property + def requires_shell_script(self) -> bool: + + return True + return False + + def parse(self) -> None: + self.update_base_command() + self.update_inputs() + self.update_arguments() + self.update_outputs() + + def update_base_command(self) -> None: + text = self.extract_base_command_text() + text = self.strip_newline_ignores(text) + base_command = self.split_base_command(text) + base_command = self.strip_set_e(base_command) + self.internal.base_command = base_command # type: ignore + + def extract_base_command_text(self) -> str: + text = '' + for part in self.task.command.parts: + if not isinstance(part, str): + break + text += part + return text + + def strip_newline_ignores(self, text: str) -> str: + text = text.replace('\\\n', '') + return text + + def split_base_command(self, text: str) -> list[str]: + base_command = text.split() + base_command = [x.strip() for x in base_command] + base_command = [x for x in base_command if x != ""] + return base_command + + def strip_set_e(self, base_command: list[str]) -> list[str]: + for ptr, token in enumerate(base_command): + if token.lower() == 'set': + start = deepcopy(ptr) + end = eat_set_command(ptr, base_command) + break + return base_command[:start] + base_command[end:] + + def update_inputs(self) -> None: + # position + # prefix + # delim + # item separator + # unwrapping expression to janis + # - wrapped in function(s)? + # - should these become janis arguments? + raise NotImplementedError + + def update_arguments(self) -> None: + raise NotImplementedError + + def update_outputs(self) -> None: + raise NotImplementedError + + +def eat_set_command(ptr: int, tokens: list[str]) -> int: + """returns the index of the next token after the set command""" + ptr += 1 + while ptr < len(tokens) and tokens[ptr].startswith('-'): + ptr += 1 + if ptr < len(tokens) -1 and tokens[ptr].lower() == 'pipefail': + ptr += 1 + return ptr \ No newline at end of file diff --git a/janis_core/ingestion/wdl/parsing/command/shell_parser.py b/janis_core/ingestion/wdl/parsing/command/shell_parser.py new file mode 100644 index 000000000..277f64859 --- /dev/null +++ b/janis_core/ingestion/wdl/parsing/command/shell_parser.py @@ -0,0 +1,5 @@ + + + +class ShellCommandParser: + pass \ No newline at end of file diff --git a/janis_core/ingestion/wdl/parsing/expressions.py b/janis_core/ingestion/wdl/parsing/expressions.py new file mode 100644 index 000000000..81bf4106f --- /dev/null +++ b/janis_core/ingestion/wdl/parsing/expressions.py @@ -0,0 +1,149 @@ + +import WDL +from typing import Optional, Any, Callable +from types import LambdaType +import janis_core as j + +def parse_expr( + expr: WDL.Expr.Base, + input_selector_getter: Optional[Callable[[str], Any]]=None + ) -> Any: + + if expr is None: + return None + + tp = lambda exp: parse_expr( + exp, input_selector_getter=input_selector_getter + ) + + if isinstance(expr, WDL.Expr.Array): + # a literal array + return [parse_expr(e) for e in expr.items] + if isinstance(expr, WDL.Expr.String): + return parse_string(expr) + elif isinstance(expr, (WDL.Expr.Int, WDL.Expr.Boolean, WDL.Expr.Float)): + return expr.literal.value + if isinstance(expr, WDL.Expr.Placeholder): + return parse_expr(expr.expr) + if isinstance(expr, WDL.Expr.IfThenElse): + return j.If(tp(expr.condition), tp(expr.consequent), tp(expr.alternative)) + elif isinstance(expr, WDL.Expr.Get): + n = str(expr.expr) + if input_selector_getter: + return input_selector_getter(n) + return j.InputSelector(n) + elif isinstance(expr, WDL.Expr.Apply): + return parse_apply( + expr, input_selector_getter=input_selector_getter + ) + + raise Exception(f"Unsupported WDL expression type: {expr} ({type(expr)})") + +def parse_string(s: WDL.Expr.String): + if s.literal is not None: + return str(s.literal).lstrip('"').rstrip('"') + + elements = {} + counter = 1 + _format = str(s).lstrip('"').rstrip('"') + + for placeholder in s.children: + if isinstance(placeholder, (str, bool, int, float)): + continue + + token = f"JANIS_WDL_TOKEN_{counter}" + if str(placeholder) not in _format: + # if the placeholder came up again + continue + + _format = _format.replace(str(placeholder), f"{{{token}}}") + elements[token] = parse_expr(placeholder) + counter += 1 + + if len(elements) == 0: + return str(s) + + _format.replace("\\n", "\n") + + return j.StringFormatter(_format, **elements) + + +def file_size_operator(src, *args): + multiplier = None + if len(args) > 1: + f = args[1].lower() + multiplier_heirarchy = [ + ("ki" in f, 1024), + ("k" in f, 1000), + ("mi" in f, 1.024), + ("gi" in f, 0.001024), + ("g" in f, 0.001), + ] + if not any(m[0] for m in multiplier_heirarchy): + j.Logger.warn( + f"Couldn't determine prefix {f} for FileSizeOperator, defaulting to MB" + ) + else: + multiplier = [m[1] for m in multiplier_heirarchy if m[0] is True][0] + + if isinstance(src, list): + return multiplier * sum(j.FileSizeOperator(s) for s in src) + + base = j.FileSizeOperator(src, *args) + if multiplier is not None and multiplier != 1: + return multiplier * base + return base + +def basename_operator(src, *args): + retval = j.BasenameOperator(src) + if len(args) > 0: + retval = retval.replace(args[0], "") + return retval + +def parse_apply(expr: WDL.Expr.Apply, **expr_kwargs) -> j.Selector | list[j.Selector]: + + # special case for select_first of array with one element + if expr.function_name == "select_first" and len(expr.arguments) > 0: + inner = expr.arguments[0] + if isinstance(inner, WDL.Expr.Array) and len(inner.items) == 1: + return parse_expr(inner.items[0]).assert_not_null() + + args = [parse_expr(e, **expr_kwargs) for e in expr.arguments] + + fn_map = { + "_land": j.AndOperator, + "defined": j.IsDefined, + "select_first": j.FilterNullOperator, + "basename": basename_operator, + "length": j.LengthOperator, + "_gt": j.GtOperator, + "_gte": j.GteOperator, + "_lt": j.LtOperator, + "_lte": j.LteOperator, + "sep": j.JoinOperator, + "_add": j.AddOperator, + "_interpolation_add": j.AddOperator, + "stdout": j.Stdout, + "_mul": j.MultiplyOperator, + "_div": j.DivideOperator, + "glob": j.WildcardSelector, + "range": j.RangeOperator, + "_at": j.IndexOperator, + "_negate": j.NotOperator, + "_sub": j.SubtractOperator, + "size": file_size_operator, + "ceil": j.CeilOperator, + "select_all": j.FilterNullOperator, + "sub": j.ReplaceOperator, + "round": j.RoundOperator, + "write_lines": lambda exp: f"JANIS: write_lines({exp})", + "read_tsv": lambda exp: f"JANIS: j.read_tsv({exp})", + "read_boolean": lambda exp: f"JANIS: j.read_boolean({exp})", + "read_lines": lambda exp: f"JANIS: j.read_lines({exp})", + } + fn = fn_map.get(expr.function_name) + if fn is None: + raise Exception(f"Unhandled WDL apply function_name: {expr.function_name}") + if isinstance(fn, LambdaType): + return fn(args) + return fn(*args) \ No newline at end of file diff --git a/janis_core/ingestion/wdl/parsing/requirements.py b/janis_core/ingestion/wdl/parsing/requirements.py new file mode 100644 index 000000000..f82a1bc6e --- /dev/null +++ b/janis_core/ingestion/wdl/parsing/requirements.py @@ -0,0 +1,102 @@ + +import WDL +import janis_core as j +from typing import Optional, Any +import regex as re + +from .expressions import parse_expr + +DEFAULT_CONTAINER = "ubuntu:latest" + + +def parse_container_requirement(task: WDL.Tree.Task) -> str: + container = task.runtime.get("container", task.runtime.get("docker")) + if isinstance(container, WDL.Expr.Get): + # relevant input + inp = [i.expr for i in task.inputs if i.name == str(container.expr)] + if len(inp) > 0: + container = inp[0] + else: + j.Logger.warn( + f"Expression for determining containers was '{container}' " + f"but couldn't find input called {str(container.expr)}" + ) + if isinstance(container, WDL.Expr.String): + container = container.literal + if isinstance(container, WDL.Value.String): + container = container.value + if container is None: + container = DEFAULT_CONTAINER + if not isinstance(container, str): + j.Logger.warn( + f"Expression for determining containers ({container}) are not supported in Janis, using ubuntu:latest" + ) + container = DEFAULT_CONTAINER + return container + +def parse_cpus_requirement(task: WDL.Tree.Task) -> int: + value = task.runtime.get("cpu") + cpus = parse_expr(value) + # if cpus is not None and not isinstance(cpus, j.Selector) and not isinstance(cpus, (int, float)): + if isinstance(cpus, str): + cpus = int(cpus) + +def parse_memory_requirement(task: WDL.Tree.Task) -> int: + value = task.runtime.get("memory") + s = parse_expr(value) + if s is None: + return 1.074 + elif isinstance(s, str): + if s.lower().endswith("g"): + return float(s[:-1].strip()) + if s.lower().endswith("gb"): + return float(s[:-2].strip()) + elif s.lower().endswith("gib"): + return float(s[:-3].strip()) * 1.074 + elif s.lower().endswith("mb"): + return float(s[:-2].strip()) / 1000 + elif s.lower().endswith("mib"): + return float(s[:-3].strip()) / 1024 + raise Exception(f"Memory type {s}") + elif isinstance(s, (float, int)): + # in bytes? + return s / (1024 ** 3) + elif isinstance(s, j.Selector): + return s + raise Exception(f"Couldn't recognise memory requirement '{value}'") + +def parse_disk_requirement(task: WDL.Tree.Task) -> int: + value = task.runtime.get("disks") + s = parse_expr(value) + if s is None: + return None + if isinstance(s, str): + try: + return int(s) + except ValueError: + pass + pattern_matcher = re.match(r"local-disk (\d+) .*", s) + if not pattern_matcher: + raise Exception(f"Couldn't recognise disk type '{value}'") + s = pattern_matcher.groups()[0] + try: + return int(s) + except ValueError: + pass + if s.lower().endswith("gb"): + return float(s[:-2].strip()) + elif s.lower().endswith("gib"): + return float(s[:-3].strip()) * 1.074 + elif s.lower().endswith("mb"): + return float(s[:-2].strip()) / 1000 + elif s.lower().endswith("mib"): + return float(s[:-3].strip()) / 1024 + raise Exception(f"Disk type type {s}") + elif isinstance(s, (float, int)): + # in GiB + return s * 1.07374 + elif isinstance(s, j.Selector): + return s + elif s is None: + return 2.14748 # 2 GiB + raise Exception(f"Couldn't recognise memory requirement '{value}'") \ No newline at end of file diff --git a/janis_core/ingestion/wdl/parsing/task.py b/janis_core/ingestion/wdl/parsing/task.py new file mode 100644 index 000000000..0ae150518 --- /dev/null +++ b/janis_core/ingestion/wdl/parsing/task.py @@ -0,0 +1,65 @@ + +import WDL + +from janis_core import CommandToolBuilder +from janis_core import ToolInput +from janis_core import ToolOutput + +from .requirements import ( + parse_container_requirement, + parse_memory_requirement, + parse_disk_requirement, + parse_cpus_requirement +) + +from .expressions import parse_expr +from .types import parse_type +from .command import parse_command + + +def parse_task(task: WDL.Tree.Task): + # metadata + name = task.name + version = "DEV" + + # requirements + container = parse_container_requirement(task) + memory = parse_memory_requirement(task) + disk = parse_disk_requirement(task) + cpus = parse_cpus_requirement(task) + + # io + inputs = [parse_command_tool_input(x) for x in task.inputs if not x.name.startswith("runtime_")] + outputs = [parse_command_tool_output(o) for o in task.outputs] + + # generate first-pass CommandToolBuilder + internal = CommandToolBuilder( + tool=name, + version=version, + base_command=None, + container=container, + memory=memory, + disk=disk, + cpus=cpus, + inputs=inputs, + outputs=outputs, + files_to_create=None + ) + + # augment inputs / outputs using command block + internal = parse_command(internal, task) + return internal + +def parse_command_tool_input(inp: WDL.Tree.Decl) -> ToolInput: + default = None + if inp.expr: + default = parse_expr(inp.expr) + tinput = ToolInput(inp.name, parse_type(inp.type, uuid=inp.name), default=default) + return tinput + +def parse_command_tool_output(out: WDL.Tree.Decl) -> ToolOutput: + if out.expr is None: + raise Exception(f"Output {out.name} has no expression") + sel = parse_expr(out.expr) + tout = ToolOutput(out.name, parse_type(out.type, uuid=out.name), selector=sel) + return tout \ No newline at end of file diff --git a/janis_core/ingestion/wdl/parsing/types.py b/janis_core/ingestion/wdl/parsing/types.py new file mode 100644 index 000000000..851aaeb67 --- /dev/null +++ b/janis_core/ingestion/wdl/parsing/types.py @@ -0,0 +1,30 @@ + + +from typing import Optional + +import WDL +import janis_core as j +import janis_core.messages as m + +def parse_type(t: WDL.Type.Base, uuid: Optional[str]=None): + optional = t.optional + if isinstance(t, WDL.Type.Int): + return j.Int(optional=optional) + elif isinstance(t, WDL.Type.String): + return j.String(optional=optional) + elif isinstance(t, WDL.Type.Float): + return j.Float(optional=optional) + elif isinstance(t, WDL.Type.Boolean): + return j.Boolean(optional=optional) + elif isinstance(t, WDL.Type.File): + return j.File(optional=optional) + elif isinstance(t, WDL.Type.Directory): + return j.Directory(optional=optional) + elif isinstance(t, WDL.Type.Array): + return j.Array(parse_type(t.item_type, uuid), optional=optional) + elif isinstance(t, WDL.Type.StructInstance): + if uuid: + m.log_warning(uuid, 'WDL Struct type unsupported. Has been cast to File type.') + return j.File(optional=optional) + + raise Exception(f"Didn't handle WDL type conversion for '{t}' ({type(t)})") \ No newline at end of file diff --git a/janis_core/tests/data/galaxy/wrappers/cutadapt-135b80fb1ac2/cutadapt.xml b/janis_core/tests/data/galaxy/wrappers/cutadapt-135b80fb1ac2/cutadapt.xml index 8b5910562..1a055374e 100644 --- a/janis_core/tests/data/galaxy/wrappers/cutadapt-135b80fb1ac2/cutadapt.xml +++ b/janis_core/tests/data/galaxy/wrappers/cutadapt-135b80fb1ac2/cutadapt.xml @@ -186,7 +186,7 @@ $read_mod_options.zero_cap </param> <when value="single"> - <param name="input_1" format="@FASTQ_TYPES@" type="data" label="FASTQ/A file" help="Should be of datatype &quot;fastq.gz&quot; or &quot;fasta&quot;" /> + <param name="input_1" format="@FASTQ_TYPES@" type="data" optional="True" label="FASTQ/A file" help="Should be of datatype &quot;fastq.gz&quot; or &quot;fasta&quot;" /> <expand macro="single_end_options" /> </when> diff --git a/janis_core/tests/data/wdl/basic/io_tool.wdl b/janis_core/tests/data/wdl/basic/io_tool.wdl new file mode 100644 index 000000000..efb866f65 --- /dev/null +++ b/janis_core/tests/data/wdl/basic/io_tool.wdl @@ -0,0 +1,45 @@ +version 1.0 + +task IoTool { + input { + Int inInt + String inStr + Boolean inBool + File inFile + File? inFileOpt + Array[File] inFileArr + BamBai inSecondary + } + + command <<< + set -e + echo \ + ~{inInt} \ + ~{inStr} \ + ~{true="--flag1" false="" inBool} \ + --in-file=~{inFile} \ + ~{inFileOpt} \ + ~{sep="," inFileArr} \ + ~{inSecondary} \ + > stdout.txt + >>> + + output { + File outFile = inFile + File? outFileOpt = inFileOpt + Array[File] outFileArr = inFileArr + BamBai outSecondary = inSecondary + File outStdout = "stdout.txt" + } + + parameter_meta { + inFile: { + description: "input file" + } + } +} + +struct BamBai { + File bam + File bai +} \ No newline at end of file diff --git a/janis_core/tests/data/wdl/basic/io_wf.json b/janis_core/tests/data/wdl/basic/io_wf.json new file mode 100644 index 000000000..cc4b60202 --- /dev/null +++ b/janis_core/tests/data/wdl/basic/io_wf.json @@ -0,0 +1,13 @@ + +{ + "main.inInt": 1, + "main.inStr": "hello", + "main.inBool": true, + "main.inFile": "../../infile1.bam", + "main.inFileOpt": "../../infile2.bam", + "main.inFileArr": ["../../textfile1.txt", "../../textfile2.txt"], + "main.inSecondary": { + "bam": "../../2895499223_sorted.bam", + "bai": "../../2895499223_sorted.bam.bai" + } +} diff --git a/janis_core/tests/data/wdl/basic/io_wf.wdl b/janis_core/tests/data/wdl/basic/io_wf.wdl new file mode 100644 index 000000000..394f0bde5 --- /dev/null +++ b/janis_core/tests/data/wdl/basic/io_wf.wdl @@ -0,0 +1,40 @@ + +version 1.0 + +import "./io_tool.wdl" as tools + +workflow main { + input { + Int inInt + String inStr + Boolean inBool + File inFile + File? inFileOpt + Array[File] inFileArr + BamBai inSecondary + } + + call tools.IoTool { + input: + inInt = inInt, + inStr = inStr, + inBool = inBool, + inFile = inFile, + inFileOpt = inFileOpt, + inFileArr = inFileArr, + inSecondary = inSecondary + } + + output { + File outFile = IoTool.outFile + File? outFileOpt = IoTool.outFileOpt + Array[File] outFileArr = IoTool.outFileArr + BamBai outSecondary = IoTool.outSecondary + File outStdout = IoTool.outStdout + } +} + +struct BamBai { + File bam + File bai +} \ No newline at end of file diff --git a/janis_core/tests/data/wdl/basic/meta_tool.wdl b/janis_core/tests/data/wdl/basic/meta_tool.wdl new file mode 100644 index 000000000..4fd4bfae6 --- /dev/null +++ b/janis_core/tests/data/wdl/basic/meta_tool.wdl @@ -0,0 +1,32 @@ +version 1.0 + +task Rename { + runtime { + docker: "biowardrobe2/scidap:v0.0.3" + } + + input { + File sourceFile + String targetFilename + } + + command <<< + set -e + cp \ + ~{sourceFile} \ + ~{targetFilename} \ + >>> + + output { + File targetFile = targetFilename + } + + parameter_meta { + sourceFile: { + description: "source file to rename" + }, + targetFilename: { + description: "filename to rename to" + } + } +} diff --git a/janis_core/tests/data/wdl/basic/rename_tool.wdl b/janis_core/tests/data/wdl/basic/rename_tool.wdl new file mode 100644 index 000000000..a2eea39e0 --- /dev/null +++ b/janis_core/tests/data/wdl/basic/rename_tool.wdl @@ -0,0 +1,29 @@ +version 1.0 + +task Rename { + runtime { + docker: "biowardrobe2/scidap:v0.0.3" + } + + input { + File sourceFile + String targetFilename + } + + command <<< + set -e + cp \ + ~{sourceFile} \ + ~{targetFilename} \ + >>> + + output { + File targetFile = targetFilename + } +} + + + + + + diff --git a/janis_core/tests/data/wdl/bwa_mem.wdl b/janis_core/tests/data/wdl/bwa_mem.wdl new file mode 100644 index 000000000..36e6b9fd5 --- /dev/null +++ b/janis_core/tests/data/wdl/bwa_mem.wdl @@ -0,0 +1,63 @@ +version 1.0 + +# align the two trimmed fastq as piared end data using BWA +task BWAPairedEndAlignment { + input { + File fastq_input_read1 + File fastq_input_read2 + File tar_bwa_reference + String read_group_id + String read_group_sample_name + Int cpu + String output_base_name + String docker_image = "quay.io/humancellatlas/snaptools:0.0.1" + } + + parameter_meta { + fastq_input_read1: "the trimmed read 1 fastq file as input for the aligner" + fastq_input_read2: "the trimmed read 1 fastq file as input for the aligner" + tar_bwa_reference: "the pre built tar file containing the reference fasta and cooresponding reference files for the BWA aligner" + read_group_id: "the read group id to be added upon alignment" + read_group_sample_name: "the read group sample to be added upon alignment" + cpu: "the number of cpu cores to use during alignment" + output_base_name: "basename to be used for the output of the task" + docker_image: "the docker image using BWA to be used (default: quay.io/humancellatlas/snaptools:0.0.1)" + } + + # runtime requirements based upon input file size + Float input_size = size(fastq_input_read1, "GiB") + size(fastq_input_read2, "GiB") + size(tar_bwa_reference, "GiB") + Int disk_size = ceil(3.25 * (if input_size < 1 then 1 else input_size)) + + String sam_aligned_output_name = output_base_name + ".aligned.sam" + + # sort with samtools + command { + set -euo pipefail + + # prepare reference + declare -r REF_DIR=$(mktemp -d genome_referenceXXXXXX) + tar -xf "~{tar_bwa_reference}" -C $REF_DIR --strip-components 1 + rm "~{tar_bwa_reference}" || /bin/true + + # align w/ BWA: -t for number of cores + bwa \ + mem \ + -R "@RG\tID:~{read_group_id}\tSM:~{read_group_sample_name}" \ + -t ~{cpu} \ + $REF_DIR/genome.fa \ + <(zcat ~{fastq_input_read1}) <(zcat ~{fastq_input_read2}) \ + > ~{sam_aligned_output_name} + } + + runtime { + docker: docker_image + disks: "local-disk " + disk_size + " HDD" + cpu: cpu + memory: "3.75 GiB" + } + + output { + File sam_aligned_output = sam_aligned_output_name + File? monitoring_log = "monitoring.log" + } +} \ No newline at end of file diff --git a/janis_core/tests/data/wdl/datatypes/arrays_tools.wdl b/janis_core/tests/data/wdl/datatypes/arrays_tools.wdl new file mode 100644 index 000000000..e69de29bb diff --git a/janis_core/tests/data/wdl/datatypes/multi_tool.wdl b/janis_core/tests/data/wdl/datatypes/multi_tool.wdl new file mode 100644 index 000000000..e69de29bb diff --git a/janis_core/tests/data/wdl/datatypes/secondaries_tool.wdl b/janis_core/tests/data/wdl/datatypes/secondaries_tool.wdl new file mode 100644 index 000000000..139597f9c --- /dev/null +++ b/janis_core/tests/data/wdl/datatypes/secondaries_tool.wdl @@ -0,0 +1,2 @@ + + diff --git a/janis_core/tests/data/wdl/datatypes/singles_tool.wdl b/janis_core/tests/data/wdl/datatypes/singles_tool.wdl new file mode 100644 index 000000000..8b09af613 --- /dev/null +++ b/janis_core/tests/data/wdl/datatypes/singles_tool.wdl @@ -0,0 +1,40 @@ +version 1.0 + +task SingleDatatypes { + input { + File inFile + Int inInt + Float inFloat + String inStr + Boolean inBool + + File? inFileOpt + Int? inIntOpt + Float? inFloatOpt + String? inStrOpt + Boolean? inBoolOpt + } + + command <<< + set -e + echo \ + + ~{inFile} \ + ~{inInt} \ + ~{inFloat} \ + ~{inStr} \ + ~{true="--flag1" false="" inBool} \ + + ~{inFileOpt} \ + ~{inIntOpt} \ + ~{inFloatOpt} \ + ~{inStrOpt} \ + ~{true="--flag2" false="" inBoolOpt} \ + > stdout.txt + >>> + + output {} + +} + + diff --git a/janis_core/tests/data/wdl/datatypes/singles_wf.json b/janis_core/tests/data/wdl/datatypes/singles_wf.json new file mode 100644 index 000000000..388d3c101 --- /dev/null +++ b/janis_core/tests/data/wdl/datatypes/singles_wf.json @@ -0,0 +1,12 @@ +{ + "main.inFile": "../../infile1.bam", + "main.inInt": 1, + "main.inFloat": 3.14, + "main.inStr": "hello", + "main.inBool": true, + "main.inFileOpt": "../../infile2.bam", + "main.inIntOpt": 2, + "main.inFloatOpt": 2.72, + "main.inStrOpt": "friend!", + "main.inBoolOpt": true +} diff --git a/janis_core/tests/data/wdl/datatypes/singles_wf.wdl b/janis_core/tests/data/wdl/datatypes/singles_wf.wdl new file mode 100644 index 000000000..7c6ad0dce --- /dev/null +++ b/janis_core/tests/data/wdl/datatypes/singles_wf.wdl @@ -0,0 +1,37 @@ + +version 1.0 + +import "./singles_tool.wdl" as tools + +workflow main { + input { + File inFile + Int inInt + Float inFloat + String inStr + Boolean inBool + + File? inFileOpt + Int? inIntOpt + Float? inFloatOpt + String? inStrOpt + Boolean? inBoolOpt + } + + call tools.SingleDatatypes { + input: + inFile = inFile, + inInt = inInt, + inFloat = inFloat, + inStr = inStr, + inBool = inBool, + + inFileOpt = inFileOpt, + inIntOpt = inIntOpt, + inFloatOpt = inFloatOpt, + inStrOpt = inStrOpt, + inBoolOpt = inBoolOpt, + } + + output {} +} diff --git a/janis_core/tests/data/wdl/datatypes/stdout_tool.wdl b/janis_core/tests/data/wdl/datatypes/stdout_tool.wdl new file mode 100644 index 000000000..e69de29bb diff --git a/janis_core/tests/test_ingestion_wdl.py b/janis_core/tests/test_ingestion_wdl.py index 9f3c094b1..20bf5677b 100644 --- a/janis_core/tests/test_ingestion_wdl.py +++ b/janis_core/tests/test_ingestion_wdl.py @@ -2,17 +2,42 @@ import os import unittest from janis_core.ingestion.wdl import WdlParser +from janis_core.ingestion.wdl.parsing import parse_task +from janis_core.ingestion import ingest +import WDL WDL_TESTDATA_PATH = os.path.join(os.getcwd(), 'janis_core/tests/data/wdl') +class TestCommandParsing(unittest.TestCase): + + def test_rename_tool(self) -> None: + filepath = f'{WDL_TESTDATA_PATH}/basic/rename_tool.wdl' + d = WDL.load(filepath) + task = d.tasks[0] + parse_task(task) + + def test_io_tool(self) -> None: + filepath = f'{WDL_TESTDATA_PATH}/basic/io_tool.wdl' + d = WDL.load(filepath) + task = d.tasks[0] + parse_task(task) + + def test_bwa_mem(self) -> None: + filepath = f'{WDL_TESTDATA_PATH}/bwa_mem.wdl' + d = WDL.load(filepath) + task = d.tasks[0] + parse_task(task) + + + class TestFromWdl(unittest.TestCase): parser = WdlParser() - - @unittest.skip("no wdl ingest yet") + def test_ingest_tool(self) -> None: + filepath = f'{WDL_TESTDATA_PATH}/basic/rename_tool.wdl' + tool = ingest(filepath, 'wdl') raise NotImplementedError - @unittest.skip("no wdl ingest yet") def test_ingest_workflow(self) -> None: raise NotImplementedError \ No newline at end of file diff --git a/notes.txt b/notes.txt index 8d5a5cc26..f5456818c 100644 --- a/notes.txt +++ b/notes.txt @@ -1,4 +1,44 @@ +----------------- +--- WDL-lexer --- +----------------- + +Motivation: +- wdl2cwl produces .sh script to run. Not very native CWL. +- does a good job at interpreting local vars? look into how this is done. +- if in some situations we can do native CWL parsing of shell, this is better? +- should result in much more native looking CWL and Nextflow + +TODO +Command Parsing +- split text into commands: list[str | WDL.Expr.Placeholder] +- how do we handle local scope variables? +- decide how to parse command + - if there are multiple non-linux-env-var-set commands, use ShellCommandParser + - else, use BasicCommandParser + +BasicCommandParser +- remove comments +- remove env var set commands +- extract stdout redirects +- interpret position, prefix, separator, delim for each component (use galaxy as reference) +- each WDL.Expr.Placeholder needs to be evaluated (look at how wdl2cwl does it) + +ShellCommandParser +- remove comments +- each line becomes ToolArgument +- each WDL.Expr.Placeholder needs to be evaluated (look at how wdl2cwl does it) + + + + +--------------------- +--- USER COMMENTS --- +--------------------- + + + + ---------------------------------- --- REDUCING TEST SUITE WEIGHT --- From b7c67befd454e26d9d3daaf6e578350dd99c73b5 Mon Sep 17 00:00:00 2001 From: Grace Hall <graceavahall@gmail.com> Date: Tue, 24 Oct 2023 14:53:18 +1100 Subject: [PATCH 07/32] updated janis-translate to include --mode option --- janis_core/cli.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/janis_core/cli.py b/janis_core/cli.py index 5f06ee62e..dbebbb420 100644 --- a/janis_core/cli.py +++ b/janis_core/cli.py @@ -17,7 +17,7 @@ def main() -> None: def do_translate(args: dict[str, str]) -> None: internal = ingest(args['infile'], args['from']) - return translate(internal, args['to'], export_path=args['outdir']) + return translate(internal, args['to'], mode=args['mode'], export_path=args['outdir']) def interpret_args(args: argparse.Namespace) -> dict[str, str]: out: dict[str, str] = {} @@ -26,6 +26,8 @@ def interpret_args(args: argparse.Namespace) -> dict[str, str]: out['from'] = val elif key == 'to': out['to'] = val + elif key == 'mode': + out['mode'] = val elif key == 'infile': out['infile'] = val elif key == 'output_dir': From fada7c00b0971be52dc5aaf5be5cad5e11c4070f Mon Sep 17 00:00:00 2001 From: Grace Hall <graceavahall@gmail.com> Date: Tue, 24 Oct 2023 20:48:09 +1100 Subject: [PATCH 08/32] partially working --- .../wdl/parsing/command/basic_parser.py | 5 - .../ingestion/wdl/parsing/command/cmdline.py | 31 +++ .../ingestion/wdl/parsing/command/main.py | 238 +++++----------- .../ingestion/wdl/parsing/command/parsers.py | 258 ++++++++++++++++++ .../wdl/parsing/command/shell_parser.py | 5 - janis_core/ingestion/wdl/parsing/patterns.py | 5 + janis_core/ingestion/wdl/parsing/task.py | 2 +- janis_core/tests/data/wdl/fastqc.wdl | 185 +++++++++++++ janis_core/tests/test_ingestion_wdl.py | 18 +- 9 files changed, 560 insertions(+), 187 deletions(-) delete mode 100644 janis_core/ingestion/wdl/parsing/command/basic_parser.py create mode 100644 janis_core/ingestion/wdl/parsing/command/cmdline.py create mode 100644 janis_core/ingestion/wdl/parsing/command/parsers.py delete mode 100644 janis_core/ingestion/wdl/parsing/command/shell_parser.py create mode 100644 janis_core/ingestion/wdl/parsing/patterns.py create mode 100644 janis_core/tests/data/wdl/fastqc.wdl diff --git a/janis_core/ingestion/wdl/parsing/command/basic_parser.py b/janis_core/ingestion/wdl/parsing/command/basic_parser.py deleted file mode 100644 index 24de065a1..000000000 --- a/janis_core/ingestion/wdl/parsing/command/basic_parser.py +++ /dev/null @@ -1,5 +0,0 @@ - - - -class BasicCommandParser: - pass diff --git a/janis_core/ingestion/wdl/parsing/command/cmdline.py b/janis_core/ingestion/wdl/parsing/command/cmdline.py new file mode 100644 index 000000000..d763ad388 --- /dev/null +++ b/janis_core/ingestion/wdl/parsing/command/cmdline.py @@ -0,0 +1,31 @@ + +from dataclasses import dataclass, field +import regex as re +import WDL + +@dataclass +class CmdLine: + elems: list[str | WDL.Expr.Placeholder] = field(default_factory=list) + + @property + def is_set_command(self) -> bool: + if isinstance(self.elems[0], str): + if self.elems[0].startswith('set '): + return True + return False + + @property + def is_shell_var_cmd(self) -> bool: + if not isinstance(self.elems[0], str): + return False + if not re.match(r'^[ \t]*?(set|declare|env|export)', self.elems[0]): + return False + return True + + @property + def is_comment(self) -> bool: + if not isinstance(self.elems[0], str): + return False + if not re.match(r'^[ \t]*?#', self.elems[0]): + return False + return True \ No newline at end of file diff --git a/janis_core/ingestion/wdl/parsing/command/main.py b/janis_core/ingestion/wdl/parsing/command/main.py index 2c9e88dcc..0abaf3766 100644 --- a/janis_core/ingestion/wdl/parsing/command/main.py +++ b/janis_core/ingestion/wdl/parsing/command/main.py @@ -1,189 +1,77 @@ -from typing import Optional -from copy import deepcopy import WDL -from janis_core import ToolInput -from janis_core import ToolOutput -from janis_core import ToolArgument from janis_core import CommandToolBuilder -from dataclasses import dataclass, field -from .basic_parser import BasicCommandParser -from .shell_parser import ShellCommandParser +from .parsers import NativeCommandParser, ShellCommandParser, ShellScriptParser +from .cmdline import CmdLine import regex as re def parse_command(internal: CommandToolBuilder, task: WDL.Tree.Task) -> CommandToolBuilder: - commands = get_text_commands(task) - parser_c = ShellCommandParser if requires_shell_script(commands) else BasicCommandParser - parser = parser_c(internal, task, commands) - parser.parse() - return parser.internal - -@dataclass -class Command: - elems: list[str | WDL.Expr.Placeholder] = field(default_factory=list) - - @property - def is_shell_var_cmd(self) -> bool: - if not isinstance(self.elems[0], str): - return False - if not re.match(r'^[ \t]*?(set|declare|env|export)', self.elems[0]): - return False - return True - - @property - def is_comment(self) -> bool: - if not isinstance(self.elems[0], str): - return False - if not re.match(r'^[ \t]*?#', self.elems[0]): - return False - return True - -def get_text_commands(task: WDL.Tree.Task) -> list[Command]: - cmds: list[Command] = [] - - if len(task.command.parts) == 0: - return cmds + lines = split_newlines(task) + cmds = split_cmdlines(lines) + cmds = remove_comments(cmds) - curr_cmd = Command() - for i, part in enumerate(task.command.parts): - + for parser_c in [NativeCommandParser, ShellCommandParser, ShellScriptParser]: + try: + parser = parser_c(internal, task, cmds) + parser.parse() + return parser.internal + except Exception as e: + pass + + return internal + +def split_newlines(task: WDL.Tree.Task) -> list[str | WDL.Expr.Placeholder]: + """does what""" + text = [] + for part in task.command.parts: if isinstance(part, str): - lines = re.split(r'(?<!\\)\n', part) - lines = [ln.strip(' \t') for ln in lines] - if lines[0] != '' and isinstance(curr_cmd.elems[-1], WDL.Expr.Placeholder): - - - - - if lines[0] != '': - curr_cmd.elems.append(lines[0]) - - - for j, line in enumerate(lines): - # first line: append to previous command - if j == 0 and line != '' and isinstance(curr_cmd.elems[-1], WDL.Expr.Placeholder): - curr_cmd.elems.append(line) - cmds.append(curr_cmd) - curr_cmd = Command() - - - # middle lines - - # last line - - - - - - # ignore empty lines - elif line == '': - continue - # ignore comments - elif re.match(r'^[ \t]*?#', line): - continue - elif i != len(lines) - 1: - curr_cmd.elems.append(line) - cmds.append(curr_cmd) - curr_cmd = Command() - elif - - - - - - lines = [ln.strip() for ln in lines] - should_append = False if lines[-1] == '' else True - lines = [ln for ln in lines if ln != ''] - - print() - print() - - -def requires_shell_script(commands: list[str]) -> bool: - """Returns True if the task requires a shell script""" - return True - - - - -class WDLCommandParser: - def __init__(self, internal: CommandToolBuilder, task: WDL.Tree.Task): - self.internal = internal - self.task = task - # self.base_command: list[str] = [] - # self.inputs: list[ToolInput] = [] - # self.arguments: list[ToolArgument] = [] - # self.outputs: list[ToolOutput] = [] - - @property - def requires_shell_script(self) -> bool: - - return True - return False - - def parse(self) -> None: - self.update_base_command() - self.update_inputs() - self.update_arguments() - self.update_outputs() - - def update_base_command(self) -> None: - text = self.extract_base_command_text() - text = self.strip_newline_ignores(text) - base_command = self.split_base_command(text) - base_command = self.strip_set_e(base_command) - self.internal.base_command = base_command # type: ignore - - def extract_base_command_text(self) -> str: - text = '' - for part in self.task.command.parts: - if not isinstance(part, str): - break - text += part - return text - - def strip_newline_ignores(self, text: str) -> str: - text = text.replace('\\\n', '') - return text + part = re.sub(r'\\[ \t]*?\n', '\\\n', part) + lines = re.split(r'(?<!\\)\n', part) # split newlines + lines = [ln.strip(' \t') for ln in lines] # strip whitespace + lines = [ln for ln in lines if not ln.startswith('#')] # remove comment lines + lines = [ln.split('#')[0] for ln in lines] # strip comments + text += lines + else: + text.append(part) + return text + +def split_cmdlines(text: list[str | WDL.Expr.Placeholder]) -> list[CmdLine]: + cmds = [] + curr_cmd = CmdLine() - def split_base_command(self, text: str) -> list[str]: - base_command = text.split() - base_command = [x.strip() for x in base_command] - base_command = [x for x in base_command if x != ""] - return base_command - - def strip_set_e(self, base_command: list[str]) -> list[str]: - for ptr, token in enumerate(base_command): - if token.lower() == 'set': - start = deepcopy(ptr) - end = eat_set_command(ptr, base_command) - break - return base_command[:start] + base_command[end:] - - def update_inputs(self) -> None: - # position - # prefix - # delim - # item separator - # unwrapping expression to janis - # - wrapped in function(s)? - # - should these become janis arguments? - raise NotImplementedError + for line in text: + if isinstance(line, str): + # newline: new command + if line == '': + if len(curr_cmd.elems) > 0: + cmds.append(curr_cmd) + curr_cmd = CmdLine() + # escaped newline: do nothing + elif line == '\\\n': + continue + # two string lines in a row means linebreak (new command) + elif len(curr_cmd.elems) > 0 and isinstance(curr_cmd.elems[-1], str): + cmds.append(curr_cmd) + curr_cmd = CmdLine() + line = line.replace('\\\n', '') + line = line.strip(' \t') + curr_cmd.elems.append(line) + pass + # add to current command + else: + line = line.replace('\\\n', '') + line = line.strip(' \t') + curr_cmd.elems.append(line) + else: + curr_cmd.elems.append(line) + if len(curr_cmd.elems) > 0: + cmds.append(curr_cmd) + return cmds + +def remove_comments(cmds: list[CmdLine]) -> list[CmdLine]: + return [cmd for cmd in cmds if not cmd.is_comment] - def update_arguments(self) -> None: - raise NotImplementedError - def update_outputs(self) -> None: - raise NotImplementedError - -def eat_set_command(ptr: int, tokens: list[str]) -> int: - """returns the index of the next token after the set command""" - ptr += 1 - while ptr < len(tokens) and tokens[ptr].startswith('-'): - ptr += 1 - if ptr < len(tokens) -1 and tokens[ptr].lower() == 'pipefail': - ptr += 1 - return ptr \ No newline at end of file diff --git a/janis_core/ingestion/wdl/parsing/command/parsers.py b/janis_core/ingestion/wdl/parsing/command/parsers.py new file mode 100644 index 000000000..3740df65f --- /dev/null +++ b/janis_core/ingestion/wdl/parsing/command/parsers.py @@ -0,0 +1,258 @@ + + +from janis_core import CommandToolBuilder +from janis_core import ToolArgument +from abc import ABC, abstractmethod, abstractproperty + +import WDL + +import regex as re +from ..expressions import parse_expr +from ..patterns import FLAG, OPTION +from .cmdline import CmdLine + +class ComponentParser(ABC): + def __init__(self, ctoken: str | WDL.Expr.Placeholder, ntoken: str | WDL.Expr.Placeholder) -> None: + self.ctoken = ctoken + self.ntoken = ntoken + + @abstractmethod + def passes_check(self) -> bool: ... + + @abstractmethod + def update_command_tool(self, internal: CommandToolBuilder, ptr: int) -> int: ... + +class PrefixExprOptionParser(ComponentParser): + # linked to input + + def passes_check(self) -> bool: + return False + if isinstance(self.ctoken, str) and isinstance(self.ntoken, WDL.Expr.Placeholder): + if re.match(OPTION, self.ctoken): + expr = parse_expr(self.ntoken) + if is_positional_expr(self.ntoken): + return True + return False + + def update_command_tool(self, internal: CommandToolBuilder, ptr: int) -> int: + raise NotImplementedError + +class ExprOptionParser(ComponentParser): + # linked to input + + def passes_check(self) -> bool: + return False + + def update_command_tool(self, internal: CommandToolBuilder, ptr: int) -> int: + raise NotImplementedError + +class FlagParser(ComponentParser): + # linked to input + + def passes_check(self) -> bool: + return False + + def update_command_tool(self, internal: CommandToolBuilder, ptr: int) -> int: + raise NotImplementedError + +class PositionalParser(ComponentParser): + # linked to input + + def passes_check(self) -> bool: + if isinstance(self.ctoken, WDL.Expr.Placeholder): + if isinstance(self.ctoken.expr, WDL.Expr.Get): + if isinstance(self.ctoken.expr.expr, WDL.Expr.Ident): + return True + return False + + def update_command_tool(self, internal: CommandToolBuilder, ptr: int) -> int: + input_name = str(self.ctoken.expr.expr.name) + tinput = [inp for inp in internal._inputs if inp.id() == input_name][0] + tinput.position = ptr + 1 + return 1 # move to next token + +class ArgumentParser(ComponentParser): + # not linked to input + + def passes_check(self) -> bool: + return False + + def update_command_tool(self, internal: CommandToolBuilder, ptr: int) -> int: + raise NotImplementedError + + + +class NativeCommandParser: + """ + parses WDL command into a CommandToolBuilder object. + does not use ShellCommandRequirement. + does not create shell script. + + Want to identify: + - base command + - details of inputs (position, prefix, delim, item separator) + - arguments (from strings not related to inputs) + """ + def __init__(self, internal: CommandToolBuilder, task: WDL.Tree.Task, cmds: list[CmdLine]): + self.internal = internal + self.task = task + self.cmds = cmds + self.cmdline = cmds[0] + + def parse(self) -> None: + self.validate_parser() + self.update_base_command() + self.greedy_parse() + # self.detect_options() + # self.detect_flags() + # self.detect_positionals() + # self.detect_arguments() + + def validate_parser(self) -> None: + local_cmds = [c for c in self.cmds if not c.is_set_command] + assert len(local_cmds) == 1 # only allow single cmd + assert isinstance(local_cmds[0].elems[0], str) # cmd must start with string + assert local_cmds[0].elems[0] != '' # cmd must not start with '' + + # cmd can't have weird chars + for elem in local_cmds[0].elems: + if isinstance(elem, str): + assert not re.match(r'[)(}{:]', elem) + + self.cmdline = local_cmds[0] + + def update_base_command(self) -> None: + text = self.cmdline.elems[0] + assert isinstance(text, str) + words = text.split(' ') + i = 0 + while i < len(words): + if re.match(FLAG, words[i]) or re.match(OPTION, words[i]): + break + i += 1 + + # set base command + base_cmd = words[:i] + self.internal.base_command = base_cmd # type: ignore + + # update cmdline elems + rest_line = ' '.join(words[i:]) + if rest_line == '': + if len(self.cmdline.elems) > 1: + self.cmdline.elems = self.cmdline.elems[1:] + else: + self.cmdline.elems = [] + else: + self.cmdline.elems[0] = rest_line + + def greedy_parse(self) -> None: + tokens = self.get_tokens() + parsers = [ + PrefixExprOptionParser, + ExprOptionParser, + FlagParser, + PositionalParser, + ArgumentParser, + ] + + ptr = 0 + while ptr < len(tokens): + # check not about to go out of bounds + if ptr == len(tokens) - 1: + ctoken, ntoken = tokens[ptr], None + else: + ctoken, ntoken = tokens[ptr], tokens[ptr+1] + + parsed = False + for parser_c in parsers: + parser = parser_c(ctoken, ntoken) + if parser.passes_check(): + ptr += parser.update_command_tool(self.internal, ptr) + parsed = True + break + assert parsed + + def get_tokens(self) -> list[str | WDL.Expr.Placeholder]: + tokens = [] + for elem in self.cmdline.elems: + if isinstance(elem, str): + tokens += elem.split(' ') + else: + tokens += [elem] + return tokens + + # def detect_options(self) -> None: + # raise NotImplementedError + + # def detect_flags(self) -> None: + # raise NotImplementedError + + # def detect_positionals(self) -> None: + # raise NotImplementedError + + # def detect_arguments(self) -> None: + # raise NotImplementedError + + # position + # prefix + # delim + # item separator + # unwrapping expression to janis + # - wrapped in function(s)? + # - should these become janis arguments? + + + +class ShellCommandParser: + """ + parses WDL command into a CommandToolBuilder object. + uses ShellCommandRequirement. + does not create shell script. + """ + def __init__(self, internal: CommandToolBuilder, task: WDL.Tree.Task, cmds: list[CmdLine]): + self.internal = internal + self.task = task + self.cmds = cmds + + @property + def can_parse(self) -> bool: + pass + + def parse(self) -> None: + self.update_inputs() + self.update_arguments() + self.update_base_command() + + def update_inputs(self) -> None: + # position + # prefix + # delim + # item separator + # unwrapping expression to janis + # - wrapped in function(s)? + # - should these become janis arguments? + raise NotImplementedError + + def update_arguments(self) -> None: + raise NotImplementedError + + def update_base_command(self) -> None: + raise NotImplementedError + + +class ShellScriptParser: + """ + parses WDL command into a CommandToolBuilder object. + creates shell script. + """ + def __init__(self, internal: CommandToolBuilder, task: WDL.Tree.Task, cmds: list[CmdLine]): + self.internal = internal + self.task = task + self.cmds = cmds + + @property + def can_parse(self) -> bool: + return True + + def parse(self) -> None: + raise NotImplementedError diff --git a/janis_core/ingestion/wdl/parsing/command/shell_parser.py b/janis_core/ingestion/wdl/parsing/command/shell_parser.py deleted file mode 100644 index 277f64859..000000000 --- a/janis_core/ingestion/wdl/parsing/command/shell_parser.py +++ /dev/null @@ -1,5 +0,0 @@ - - - -class ShellCommandParser: - pass \ No newline at end of file diff --git a/janis_core/ingestion/wdl/parsing/patterns.py b/janis_core/ingestion/wdl/parsing/patterns.py new file mode 100644 index 000000000..e7a1d48bd --- /dev/null +++ b/janis_core/ingestion/wdl/parsing/patterns.py @@ -0,0 +1,5 @@ + + +FLAG = r"[-]{1,2}[a-zA-Z0-9_-]+" +OPTION = r"[-]{1,2}[a-zA-Z0-9_-]+[=:]?" + diff --git a/janis_core/ingestion/wdl/parsing/task.py b/janis_core/ingestion/wdl/parsing/task.py index 0ae150518..e11a45085 100644 --- a/janis_core/ingestion/wdl/parsing/task.py +++ b/janis_core/ingestion/wdl/parsing/task.py @@ -17,7 +17,7 @@ from .command import parse_command -def parse_task(task: WDL.Tree.Task): +def parse_task(task: WDL.Tree.Task) -> CommandToolBuilder: # metadata name = task.name version = "DEV" diff --git a/janis_core/tests/data/wdl/fastqc.wdl b/janis_core/tests/data/wdl/fastqc.wdl new file mode 100644 index 000000000..da31882c6 --- /dev/null +++ b/janis_core/tests/data/wdl/fastqc.wdl @@ -0,0 +1,185 @@ +version 1.0 + +# Copyright (c) 2017 Leiden University Medical Center +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +task Fastqc { + input { + File seqFile + String outdirPath + Boolean casava = false + Boolean nano = false + Boolean noFilter = false + Boolean extract = false + Boolean nogroup = false + + Int? minLength + String? format + File? contaminants + File? adapters + File? limits + Int? kmers + String? dir + + # Set javaXmx a little high. Equal to fastqc default with 7 threads. + # This is because some fastq files need more memory. 2G per core + # is a nice cluster default, so we use all the rest of the memory for + # fastqc so we should have as little OOM crashes as possible even with + # weird edge case fastq's. + String javaXmx="1750M" + Int threads = 1 + String memory = "2GiB" + Int timeMinutes = 1 + ceil(size(seqFile, "G")) * 4 + String dockerImage = "quay.io/biocontainers/fastqc:0.12.1--hdfd78af_0" + + Array[File]? noneArray + File? noneFile + } + + # Chops of the .gz extension if present. + # The Basename needs to be taken here. Otherwise paths might differ + # between similar jobs. + String name = basename(sub(seqFile, "\.gz$","")) + # This regex chops of the extension and replaces it with _fastqc for + # the reportdir. + # Just as fastqc does it. + String reportDir = outdirPath + "/" + sub(name, "\.[^\.]*$", "_fastqc") + + # We reimplement the perl wrapper here. This has the advantage that it + # gives us more control over the amount of memory used. + command <<< + set -e + mkdir -p "~{outdirPath}" + FASTQC_DIR="/usr/local/opt/fastqc-0.12.1" + export CLASSPATH="$FASTQC_DIR:$FASTQC_DIR/sam-1.103.jar:$FASTQC_DIR/jbzip2-0.9.jar:$FASTQC_DIR/cisd-jhdf5.jar" + java -Djava.awt.headless=true -XX:ParallelGCThreads=1 \ + -Xms200M -Xmx~{javaXmx} \ + ~{"-Dfastqc.output_dir=" + outdirPath} \ + ~{true="-Dfastqc.casava=true" false="" casava} \ + ~{true="-Dfastqc.nano=true" false="" nano} \ + ~{true="-Dfastqc.nofilter=true" false="" noFilter} \ + ~{true="-Dfastqc.unzip=true" false="" extract} \ + ~{true="-Dfastqc.nogroup=true" false="" nogroup} \ + ~{"-Dfastqc.min_length=" + minLength} \ + ~{"-Dfastqc.sequence_format=" + format} \ + ~{"-Dfastqc.threads=" + threads} \ + ~{"-Dfastqc.contaminant_file=" + contaminants} \ + ~{"-Dfastqc.adapter_file=" + adapters} \ + ~{"-Dfastqc.limits_file=" + limits} \ + ~{"-Dfastqc.kmer_size=" + kmers} \ + ~{"-Djava.io.tmpdir=" + dir} \ + uk.ac.babraham.FastQC.FastQCApplication \ + ~{seqFile} + >>> + + output { + File htmlReport = reportDir + ".html" + File reportZip = reportDir + ".zip" + File? summary = if extract then reportDir + "/summary.txt" else noneFile + File? rawReport = if extract then reportDir + "/fastqc_data.txt" else noneFile + Array[File]? images = if extract then glob(reportDir + "/Images/*.png") else noneArray + } + + runtime { + cpu: threads + memory: memory + time_minutes: timeMinutes + docker: dockerImage + } + + parameter_meta { + # inputs + seqFile: {description: "A fastq file.", category: "required"} + outdirPath: {description: "The path to write the output to.", catgory: "required"} + casava: {description: "Equivalent to fastqc's --casava flag.", category: "advanced"} + nano: {description: "Equivalent to fastqc's --nano flag.", category: "advanced"} + noFilter: {description: "Equivalent to fastqc's --nofilter flag.", category: "advanced"} + extract: {description: "Equivalent to fastqc's --extract flag.", category: "advanced"} + nogroup: {description: "Equivalent to fastqc's --nogroup flag.", category: "advanced"} + minLength: {description: "Equivalent to fastqc's --min_length option.", category: "advanced"} + format: {description: "Equivalent to fastqc's --format option.", category: "advanced"} + contaminants: {description: "Equivalent to fastqc's --contaminants option.", category: "advanced"} + adapters: {description: "Equivalent to fastqc's --adapters option.", category: "advanced"} + limits: {description: "Equivalent to fastqc's --limits option.", category: "advanced"} + kmers: {description: "Equivalent to fastqc's --kmers option.", category: "advanced"} + dir: {description: "Equivalent to fastqc's --dir option.", category: "advanced"} + javaXmx: {description: "The maximum memory available to the program. Should be lower than `memory` to accommodate JVM overhead.", category: "advanced"} + threads: {description: "The number of cores to use.", category: "advanced"} + memory: {description: "The amount of memory this job will use.", category: "advanced"} + timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"} + dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"} + + # outputs + htmlReport: {description: "HTML report file."} + reportZip: {description: "Source data file."} + summary: {description: "Summary file."} + rawReport: {description: "Raw report file."} + images: {description: "Images in report file."} + } + + meta { + WDL_AID: { + exclude: ["noneFile", "noneArray"] + } + } +} + +task GetConfiguration { + input { + String memory = "2G" # Needs more than 1 to pull the docker image. + Int timeMinutes = 1 + String dockerImage = "quay.io/biocontainers/fastqc:0.11.7--4" + } + + command <<< + set -e + fastqcExe="$(command -v fastqc)" + fastqcPath="$(readlink -f $fastqcExe)" + fastqcDir="$(dirname $fastqcPath)" + mkdir Configuration + cp ${fastqcDir}/Configuration/adapter_list.txt Configuration/adapter_list.txt + cp ${fastqcDir}/Configuration/contaminant_list.txt Configuration/contaminant_list.txt + cp ${fastqcDir}/Configuration/limits.txt Configuration/limits.txt + >>> + + output { + File adapterList = "Configuration/adapter_list.txt" + File contaminantList = "Configuration/contaminant_list.txt" + File limits = "Configuration/limits.txt" + } + + runtime { + memory: memory + time_minute: timeMinutes + docker: dockerImage + } + + parameter_meta { + # inputs + timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"} + memory: {description: "The amount of memory available to the job.", category: "advanced"} + dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"} + + # outputs + adapterList: {description: "List of adapters found."} + contaminantList: {description: "List of contaminants found."} + limits: {description: "Limits file."} + } +} diff --git a/janis_core/tests/test_ingestion_wdl.py b/janis_core/tests/test_ingestion_wdl.py index 20bf5677b..96d3c0d47 100644 --- a/janis_core/tests/test_ingestion_wdl.py +++ b/janis_core/tests/test_ingestion_wdl.py @@ -1,6 +1,7 @@ import os import unittest +from janis_core import CommandToolBuilder from janis_core.ingestion.wdl import WdlParser from janis_core.ingestion.wdl.parsing import parse_task from janis_core.ingestion import ingest @@ -15,7 +16,16 @@ def test_rename_tool(self) -> None: filepath = f'{WDL_TESTDATA_PATH}/basic/rename_tool.wdl' d = WDL.load(filepath) task = d.tasks[0] - parse_task(task) + tool = parse_task(task) + assert isinstance(tool, CommandToolBuilder) + assert tool.base_command == ['cp'] + assert len(tool._inputs) == 2 + assert tool._inputs[0].id() == 'sourceFile' + assert tool._inputs[0].position == 1 + assert tool._inputs[0].prefix == None + assert tool._inputs[1].id() == 'targetFilename' + assert tool._inputs[1].position == 2 + assert tool._inputs[1].prefix == None def test_io_tool(self) -> None: filepath = f'{WDL_TESTDATA_PATH}/basic/io_tool.wdl' @@ -23,6 +33,12 @@ def test_io_tool(self) -> None: task = d.tasks[0] parse_task(task) + def test_fastqc_tool(self) -> None: + filepath = f'{WDL_TESTDATA_PATH}/fastqc.wdl' + d = WDL.load(filepath) + task = d.tasks[0] + parse_task(task) + def test_bwa_mem(self) -> None: filepath = f'{WDL_TESTDATA_PATH}/bwa_mem.wdl' d = WDL.load(filepath) From 7b084544846680df7f459a16a87e50e3f3da0ec6 Mon Sep 17 00:00:00 2001 From: Grace Hall <graceavahall@gmail.com> Date: Thu, 26 Oct 2023 19:56:09 +1100 Subject: [PATCH 09/32] basic CWL javascript lexer --- .../ingestion/cwl/expressions/__init__.py | 2 + .../ingestion/cwl/expressions/grammar.ebnf | 40 +++++ .../cwl/expressions/grammar_test.ebnf | 21 +++ .../{expressions.py => expressions/main.py} | 3 + .../ingestion/cwl/expressions/parser.py | 33 ++++ janis_core/ingestion/cwl/parsing/tool.py | 2 +- janis_core/tests/data/cwl/tools/BWA-Index.cwl | 60 ++++++++ janis_core/tests/data/cwl/tools/BWA-Mem.cwl | 141 ++++++++++++++++++ janis_core/tests/test_ingestion_cwl.py | 22 ++- notes.txt | 13 ++ 10 files changed, 334 insertions(+), 3 deletions(-) create mode 100644 janis_core/ingestion/cwl/expressions/__init__.py create mode 100644 janis_core/ingestion/cwl/expressions/grammar.ebnf create mode 100644 janis_core/ingestion/cwl/expressions/grammar_test.ebnf rename janis_core/ingestion/cwl/{expressions.py => expressions/main.py} (99%) create mode 100644 janis_core/ingestion/cwl/expressions/parser.py create mode 100755 janis_core/tests/data/cwl/tools/BWA-Index.cwl create mode 100755 janis_core/tests/data/cwl/tools/BWA-Mem.cwl diff --git a/janis_core/ingestion/cwl/expressions/__init__.py b/janis_core/ingestion/cwl/expressions/__init__.py new file mode 100644 index 000000000..ffd7e0487 --- /dev/null +++ b/janis_core/ingestion/cwl/expressions/__init__.py @@ -0,0 +1,2 @@ + +from .main import parse_basic_expression \ No newline at end of file diff --git a/janis_core/ingestion/cwl/expressions/grammar.ebnf b/janis_core/ingestion/cwl/expressions/grammar.ebnf new file mode 100644 index 000000000..923a64baf --- /dev/null +++ b/janis_core/ingestion/cwl/expressions/grammar.ebnf @@ -0,0 +1,40 @@ + + +?the_text : javascript + | javascript text + | javascript text javascript + | javascript text javascript text + | javascript text javascript text javascript + | text + +javascript : "$(" expr ")" +TEXT : /[^$(]+/ +text : TEXT + +?expr : group + | ternary + | value "===" value -> deep_eq + | value "!==" value -> deep_ineq + | value "==" value -> eq + | value "!=" value -> ineq + | value + +group : "(" expr ")" +ternary : expr "?" expr ":" expr + +value : TRUE + | FALSE + | SIGNED_NUMBER + | ESCAPED_STRING + | SYMBOL + +TRUE : /true/ +FALSE : /false/ +SYMBOL : /[.\w]+/ + + +%import common.ESCAPED_STRING +%import common.SIGNED_NUMBER +%import common.WS +%ignore WS + diff --git a/janis_core/ingestion/cwl/expressions/grammar_test.ebnf b/janis_core/ingestion/cwl/expressions/grammar_test.ebnf new file mode 100644 index 000000000..94befd6f2 --- /dev/null +++ b/janis_core/ingestion/cwl/expressions/grammar_test.ebnf @@ -0,0 +1,21 @@ + + +?value : dict + | list + | string + | SIGNED_NUMBER -> number + | "true" -> true + | "false" -> false + | "null" -> null + +list : "[" [value ("," value)*] "]" + +dict : "{" [pair ("," pair)*] "}" +pair : string ":" value + +string : ESCAPED_STRING + +%import common.ESCAPED_STRING +%import common.SIGNED_NUMBER +%import common.WS +%ignore WS \ No newline at end of file diff --git a/janis_core/ingestion/cwl/expressions.py b/janis_core/ingestion/cwl/expressions/main.py similarity index 99% rename from janis_core/ingestion/cwl/expressions.py rename to janis_core/ingestion/cwl/expressions/main.py index c1b800d8d..f380e0315 100644 --- a/janis_core/ingestion/cwl/expressions.py +++ b/janis_core/ingestion/cwl/expressions/main.py @@ -38,6 +38,8 @@ # valueFrom: $(inputs.myWfInp) -> InputNodeSelector("myWfInp") input_selector_matcher = re.compile(r"^inputs\.([A-z0-9_]+)$") + + # literal strings string_matcher = re.compile(r'^".+?"$') @@ -129,6 +131,7 @@ def parse(self, expr: Any) -> Tuple[Any, bool]: def convert_javascript_token(self, token: str) -> Optional[Any]: step_output_selector_match = step_output_selector_matcher.match(token) input_selector_match = input_selector_matcher.match(token) + ternary_conditional_match = # inputs if input_selector_match: diff --git a/janis_core/ingestion/cwl/expressions/parser.py b/janis_core/ingestion/cwl/expressions/parser.py new file mode 100644 index 000000000..ffd70241a --- /dev/null +++ b/janis_core/ingestion/cwl/expressions/parser.py @@ -0,0 +1,33 @@ + +import os +from lark import Lark + +GRAMMAR_PATH = f'{os.path.dirname(os.path.abspath(__file__))}/grammar.ebnf' + +with open(GRAMMAR_PATH) as fp: + grammar = fp.read() + +data01 = '$(self === "name" ? true : false).fastq' +data02 = '$(self === "name" ? true : false).fastq$(inputs.index_name.ext)' +data1 = '$(self === "name" ? true : false)' +data2 = '$((inputs.index_name !== null) ? inputs.index_name : inputs.sequences.nameroot)' +data3 = '$(inputs.reads_1.basename).trimmed$(inputs.reads_1.nameext)' + + +json_parser = Lark(grammar, start='the_text') +tree = json_parser.parse(data01) +print(tree.pretty()) +tree = json_parser.parse(data02) +print(tree.pretty()) +tree = json_parser.parse(data1) +print(tree.pretty()) +tree = json_parser.parse(data2) +print(tree.pretty()) +tree = json_parser.parse(data3) +print(tree.pretty()) +print() + + + + + diff --git a/janis_core/ingestion/cwl/parsing/tool.py b/janis_core/ingestion/cwl/parsing/tool.py index a0d1a66b7..f9b3105ef 100644 --- a/janis_core/ingestion/cwl/parsing/tool.py +++ b/janis_core/ingestion/cwl/parsing/tool.py @@ -415,7 +415,7 @@ def fallback(self) -> CommandTool: jtool = CommandToolBuilder( tool=identifier, - base_command=None, + base_command=self.entity.baseCommand, inputs=inputs, outputs=outputs, arguments=arguments, diff --git a/janis_core/tests/data/cwl/tools/BWA-Index.cwl b/janis_core/tests/data/cwl/tools/BWA-Index.cwl new file mode 100755 index 000000000..d271a965a --- /dev/null +++ b/janis_core/tests/data/cwl/tools/BWA-Index.cwl @@ -0,0 +1,60 @@ +#!/usr/bin/env cwl-runner +cwlVersion: v1.0 +class: CommandLineTool + +requirements: + InlineJavascriptRequirement: {} + +hints: + DockerRequirement: + dockerPull: quay.io/biocontainers/bwa:0.7.17--ha92aebf_3 + SoftwareRequirement: + packages: + bwa: + version: [ "0.7.17" ] + specs: [ https://identifiers.org/biotools/bwa ] + +inputs: + sequences: + type: File + format: edam:format_1929 # FASTA + inputBinding: + position: 200 + +#Optional arguments + + algo_type: + type: + - "null" + - type: enum + symbols: + - is + - bwtsw + inputBinding: + prefix: "-a" + index_name: + type: string? + +# the expressions for the index name prefix are needed because 'default:' on an optional +# parameter does not accept an expression +arguments: + - -p + - '$(((inputs.index_name !== null) ? inputs.index_name : inputs.sequences.nameroot))' + +baseCommand: [bwa, index] + +outputs: + index: + type: File + secondaryFiles: + - ^.amb + - ^.ann + - ^.pac + - ^.sa + outputBinding: + glob: "*.bwt" + +$namespaces: + edam: http://edamontology.org/ +$schemas: + - https://edamontology.org/EDAM_1.18.owl diff --git a/janis_core/tests/data/cwl/tools/BWA-Mem.cwl b/janis_core/tests/data/cwl/tools/BWA-Mem.cwl new file mode 100755 index 000000000..966d0ed04 --- /dev/null +++ b/janis_core/tests/data/cwl/tools/BWA-Mem.cwl @@ -0,0 +1,141 @@ +#!/usr/bin/env cwl-runner +cwlVersion: v1.0 +class: CommandLineTool + +hints: + DockerRequirement: + dockerPull: quay.io/biocontainers/bwa:0.7.17--ha92aebf_3 + SoftwareRequirement: + packages: + bwa: + version: [ "0.7.17" ] + specs: [ https://identifiers.org/biotools/bwa ] + +inputs: + index: + type: File + secondaryFiles: + - ^.amb + - ^.ann + - ^.pac + - ^.sa + inputBinding: + position: 200 + valueFrom: $(self.dirname)/$(self.nameroot) + + input_files: + type: File[] + format: + - edam:format_1930 # FASTQ (no quality score encoding specified) + - edam:format_1931 # FASTQ-Illumina + - edam:format_1932 # FASTQ-Sanger + - edam:format_1933 # FASTQ-Solexa + inputBinding: + position: 201 + +#Optional arguments + + threads: + type: int? + inputBinding: + prefix: "-t" + + min_seed_len: + type: int? + inputBinding: + prefix: "-k" + + band_width: + type: int? + inputBinding: + prefix: "-w" + + z_dropoff: + type: int? + inputBinding: + prefix: "-d" + + seed_split_ratio: + type: float? + inputBinding: + prefix: "-r" + + max_occ: + type: int? + inputBinding: + prefix: "-c" + + match_score: + type: int? + inputBinding: + prefix: "-A" + + mm_penalty: + type: int? + inputBinding: + prefix: "-B" + + gap_open_penalty: + type: int? + inputBinding: + prefix: "-O" + + gap_ext_penalty: + type: int? + inputBinding: + prefix: "-E" + + clip_penalty: + type: int? + inputBinding: + prefix: "-L" + + unpair_pen: + type: int? + inputBinding: + prefix: "-U" + + rg_line: + type: string? + inputBinding: + prefix: "-R" + + verbose_level: + type: int? + inputBinding: + prefix: "-v" + + is_out_sec_align: + type: boolean? + inputBinding: + prefix: "-a" + + is_mark_short_split: + type: boolean? + inputBinding: + prefix: "-M" + + is_use_hard_clip: + type: boolean? + inputBinding: + prefix: "-H" + + is_multiplexed_pair: + type: boolean? + inputBinding: + prefix: "-p" + + +baseCommand: [bwa, mem] + +stdout: unsorted_reads.sam + +outputs: + reads_stdout: + type: stdout + format: edam:format_2573 # SAM format + +$namespaces: + edam: http://edamontology.org/ +$schemas: + - https://edamontology.org/EDAM_1.18.owl diff --git a/janis_core/tests/test_ingestion_cwl.py b/janis_core/tests/test_ingestion_cwl.py index e54b22ac9..26610deee 100644 --- a/janis_core/tests/test_ingestion_cwl.py +++ b/janis_core/tests/test_ingestion_cwl.py @@ -47,6 +47,26 @@ def _load_cwl_doc(filepath: str) -> Tuple[Any, Any]: return loaded_doc, cwl_utils +class TestBasicFunctionality(unittest.TestCase): + + def setUp(self) -> None: + settings.ingest.SAFE_MODE = False + + def test_tool_bwa_index(self): + filepath = f'{CWL_TESTDATA_DIR}/tools/BWA-Index.cwl' + clt, cwl_utils = _load_cwl_doc(filepath) + parser = CLTParser(cwl_utils=cwl_utils, clt=clt, entity=clt, uuid='bwa_index') + tool = parser.parse() + msgs = get_messages('bwa_index') + self.assertEqual(tool.id(), 'BWA_Index') + self.assertEqual(len(tool._inputs), 3) + self.assertEqual(len(tool._arguments), 2) + print() + + def test_tool_bwa_mem(self): + pass + + class TestRequirementsParsing(unittest.TestCase): @@ -156,8 +176,6 @@ def test_env_vars1(self): self.assertEqual(reqs['env_vars']['AA_SRC'], '/home/programs/AmpliconArchitect-master/src') - - class TestFallbacksErrorHandling(unittest.TestCase): @unittest.skip('not implemented') def test_workflow_input_parser(self) -> None: diff --git a/notes.txt b/notes.txt index f5456818c..a81bb97ff 100644 --- a/notes.txt +++ b/notes.txt @@ -1,4 +1,17 @@ + +------------------ +--- CWL BOOFED --- +------------------ + +no base command +- samtools_index.cwl [check] + +untranslated javascript: +- '$(((inputs.index_name !== null) ? inputs.index_name : inputs.sequences.nameroot))' +- $(inputs.reads_1.basename).trimmed$(inputs.reads_1.nameext) +- $(inputs.reads_1.format): add support for edam formats? add as a comment? eg edam:format_2359 -> "BAM" + ----------------- --- WDL-lexer --- ----------------- From 20d94eb390d7321e8c906d920cef9caa25e8e882 Mon Sep 17 00:00:00 2001 From: Grace Hall <graceavahall@gmail.com> Date: Fri, 27 Oct 2023 22:32:48 +1100 Subject: [PATCH 10/32] updating test suite for new javascript parser --- .../ingestion/cwl/expressions/__init__.py | 2 +- .../ingestion/cwl/expressions/grammar.ebnf | 97 ++++-- .../ingestion/cwl/expressions/grammar_ok.ebnf | 89 ++++++ .../cwl/expressions/grammar_test.ebnf | 21 -- janis_core/ingestion/cwl/expressions/main.py | 277 ++++++------------ .../ingestion/cwl/expressions/mainold.py | 210 +++++++++++++ .../ingestion/cwl/expressions/parser.py | 28 +- janis_core/ingestion/cwl/parsing/tool.py | 40 +-- janis_core/ingestion/cwl/types.py | 2 +- janis_core/operators/standard.py | 270 +++++++++++++---- janis_core/tests/test_ingestion_cwl.py | 189 +++++++++++- 11 files changed, 880 insertions(+), 345 deletions(-) create mode 100644 janis_core/ingestion/cwl/expressions/grammar_ok.ebnf delete mode 100644 janis_core/ingestion/cwl/expressions/grammar_test.ebnf create mode 100644 janis_core/ingestion/cwl/expressions/mainold.py diff --git a/janis_core/ingestion/cwl/expressions/__init__.py b/janis_core/ingestion/cwl/expressions/__init__.py index ffd7e0487..159763f22 100644 --- a/janis_core/ingestion/cwl/expressions/__init__.py +++ b/janis_core/ingestion/cwl/expressions/__init__.py @@ -1,2 +1,2 @@ -from .main import parse_basic_expression \ No newline at end of file +from .main import parse_expression \ No newline at end of file diff --git a/janis_core/ingestion/cwl/expressions/grammar.ebnf b/janis_core/ingestion/cwl/expressions/grammar.ebnf index 923a64baf..56a4fdd11 100644 --- a/janis_core/ingestion/cwl/expressions/grammar.ebnf +++ b/janis_core/ingestion/cwl/expressions/grammar.ebnf @@ -1,40 +1,91 @@ -?the_text : javascript - | javascript text - | javascript text javascript - | javascript text javascript text - | javascript text javascript text javascript - | text +### top level ### + +?the_text : part+ + +?part : javascript + | text javascript : "$(" expr ")" TEXT : /[^$(]+/ text : TEXT -?expr : group - | ternary - | value "===" value -> deep_eq - | value "!==" value -> deep_ineq - | value "==" value -> eq - | value "!=" value -> ineq - | value -group : "(" expr ")" +### higher level constructs ### + +?expr : ternary + | cond_check + | method_call + | attribute + | group + | object + | value # may cause issues? + ternary : expr "?" expr ":" expr +group : "(" expr ")" + +?cond_check : expr "===" expr -> deep_eq + | expr "!==" expr -> deep_ineq + | expr "==" expr -> eq + | expr "!=" expr -> ineq + | expr ">=" expr -> gteq + | expr "<=" expr -> lteq + | expr ">" expr -> gt + | expr "<" expr -> lt + | expr + +### objects, attributes, methods ### + +?object : "inputs." SYMBOL -> input + | "runtime." SYMBOL -> runtime + | "self" -> self -value : TRUE - | FALSE - | SIGNED_NUMBER - | ESCAPED_STRING - | SYMBOL +?attribute : expr ".basename" -> attr_basename + | expr ".dirname" -> attr_dirname + | expr ".nameroot" -> attr_nameroot + | expr ".nameext" -> attr_nameext + | expr ".size" -> attr_size + | expr ".contents" -> attr_contents + | expr ".length" -> attr_length -TRUE : /true/ -FALSE : /false/ -SYMBOL : /[.\w]+/ +?method_call: expr ".join(" method_args ")" -> meth_join + | expr ".slice(" method_args ")" -> meth_slice + | expr ".split(" method_args ")" -> meth_split + | expr ".flat()" -> meth_flat + | expr "[" SIGNED_NUMBER "]" -> meth_index + | expr ".replace(" method_args ")" -> meth_replace + # TODO: + # meth_filter + # meth_map + +?method_args: value + | value ARGSEP value + | value ARGSEP value ARGSEP value + +ARGSEP : /, *?/ + + +### primitives ### +?value : "true" -> true + | "false" -> false + | "null" -> null + | SIGNED_NUMBER + | QUOTED_STRING + | REGEX + | SYMBOL + +REGEX: /\/[\s\S]*?\/[a-z]?/ + +SYMBOL: /[a-zA-Z0-9_]+/ + +_STRING_INNER: /.*?/ +_STRING_QUOT_INNER: _STRING_INNER /(?<!\\)(\\\\)*?/ +QUOTED_STRING : ( "\"" _STRING_QUOT_INNER "\"" ) | ( "'" _STRING_QUOT_INNER "'" ) -%import common.ESCAPED_STRING %import common.SIGNED_NUMBER %import common.WS %ignore WS + diff --git a/janis_core/ingestion/cwl/expressions/grammar_ok.ebnf b/janis_core/ingestion/cwl/expressions/grammar_ok.ebnf new file mode 100644 index 000000000..44c73d529 --- /dev/null +++ b/janis_core/ingestion/cwl/expressions/grammar_ok.ebnf @@ -0,0 +1,89 @@ + + +### top level ### + +?the_text : part+ + +?part : javascript + | text + +javascript : "$(" expr ")" +TEXT : /[^$(]+/ +text : TEXT + + +### higher level constructs ### + +?expr : object expr + | object + | attribute expr + | attribute + | method_call+ + | ternary + | group + | cond_check + | value # may cause issues? + +ternary : expr "?" expr ":" expr +group : "(" expr ")" + +?cond_check : expr "===" expr -> deep_eq + | expr "!==" expr -> deep_ineq + | expr "==" expr -> eq + | expr "!=" expr -> ineq + | expr ">=" expr -> gteq + | expr "<=" expr -> lteq + | expr ">" expr -> gt + | expr "<" expr -> lt + | expr + + +### objects, attributes, methods ### + +?object : "inputs." SYMBOL -> input + | "runtime." SYMBOL -> runtime + | "self" -> self + +?attribute : ".basename" -> attr_basename + | ".nameroot" -> attr_nameroot + | ".nameext" -> attr_nameext + | ".ext" -> attr_ext + | ".format" -> attr_format + | ".contents" -> attr_contents + | ".length" -> attr_length + | ".location" -> attr_location + +?method_call: ".join(" method_args ")" -> meth_join + | ".split(" method_args ")" -> meth_split + | ".slice(" method_args ")" -> meth_slice + | "[" SIGNED_NUMBER "]" -> meth_array_index + +?method_args: value + | value ARGSEP value + | value ARGSEP value ARGSEP value + +ARGSEP : /, *?/ + + +### primitives ### +?value : "true" -> true + | "false" -> false + | "null" -> null + | SIGNED_NUMBER + | QUOTED_STRING + | SYMBOL + +SYMBOL: /[a-zA-Z0-9_]+/ + +_STRING_INNER: /.*?/ +_STRING_QUOT_INNER: _STRING_INNER /(?<!\\)(\\\\)*?/ +QUOTED_STRING : ( "\"" _STRING_QUOT_INNER "\"" ) | ( "'" _STRING_QUOT_INNER "'" ) + +%import common.SIGNED_NUMBER +%import common.WS +%ignore WS + + + + + diff --git a/janis_core/ingestion/cwl/expressions/grammar_test.ebnf b/janis_core/ingestion/cwl/expressions/grammar_test.ebnf deleted file mode 100644 index 94befd6f2..000000000 --- a/janis_core/ingestion/cwl/expressions/grammar_test.ebnf +++ /dev/null @@ -1,21 +0,0 @@ - - -?value : dict - | list - | string - | SIGNED_NUMBER -> number - | "true" -> true - | "false" -> false - | "null" -> null - -list : "[" [value ("," value)*] "]" - -dict : "{" [pair ("," pair)*] "}" -pair : string ":" value - -string : ESCAPED_STRING - -%import common.ESCAPED_STRING -%import common.SIGNED_NUMBER -%import common.WS -%ignore WS \ No newline at end of file diff --git a/janis_core/ingestion/cwl/expressions/main.py b/janis_core/ingestion/cwl/expressions/main.py index f380e0315..7d8a43bc8 100644 --- a/janis_core/ingestion/cwl/expressions/main.py +++ b/janis_core/ingestion/cwl/expressions/main.py @@ -1,211 +1,100 @@ - -""" -docstring here! sphinx -""" - - -from typing import Any, Tuple, Optional - -import re +import os +from lark import Lark +from lark import Tree +from lark import Token +from typing import Tuple, Any import janis_core as j +GRAMMAR_PATH = f'{os.path.dirname(os.path.abspath(__file__))}/grammar.ebnf' -# functions: "${func}" -function_token_matcher = re.compile(r"^\$\{[\s\S]*return[\s\S]*\}$") # TODO imperfect. see test_initial_workdir_requirement_listing test - -# simple functions: ${ return "over 80000" } -simple_function_token_matcher = re.compile(r"^\s*\$\{\s*return ([^\s'\";{}]+|['\"][^;{}]*?['\"])[\s;]*?\}$") - - -# single javascript expression: "$(expr)" -single_token_matcher = re.compile(r"^\$\(([^)]+)\)$") - -# used for matching multiple expressions in a line: "$(expr1) + $(expr2)" -# up to 3 levels of recursion -inline_expression_matcher = re.compile(r"(?<=\$\()(?:[^)(]|\((?:[^)(]|\((?:[^)(]|\([^)(]*\))*\))*\))*(?=\))") - -# complex single expressions: $(Math.round((953.674 * [inputs.runtime_memory, ((inputs.inputFile.size / 1048576) > 1024) ? 4 : 2, 4].filter(function (inner) { return inner != null })[0]))) -single_expression_matcher = re.compile(r"^\$[({](.*?)[)}]$") - -# cwl input references to StepOutputSelector: valueFrom: $(steps.combine.result) -> StepOutputSelector() -step_output_selector_matcher = re.compile(r"^steps\.([A-z0-9_]+)\.([A-z0-9_]+)$") - -# cwl input references to InputSelector / InputNodeSelector -# depends on 'context' field of ExpressionParser -# valueFrom: $(inputs.myName) -> InputSelector("myName") -# valueFrom: $(inputs.myWfInp) -> InputNodeSelector("myWfInp") -input_selector_matcher = re.compile(r"^inputs\.([A-z0-9_]+)$") - - - -# literal strings -string_matcher = re.compile(r'^".+?"$') - -# ints -int_matcher = re.compile(r"^\s*\d+\s*$") - -# floats -float_matcher = re.compile(r"^\s*(\d*\.\d+)|(\d+\.\d*)\s*$") - - - -def parse_basic_expression(expr: Any, context: str='clt', wf: Optional[j.Workflow]=None) -> Tuple[Optional[Any], bool]: - parser = ExpressionParser(context, wf) - return parser.parse(expr) +def parse_expression(expr: str): + return ExpressionParser().parse(expr) class ExpressionParser: - """parses a javascript expression to janis Selectors""" + with open(GRAMMAR_PATH) as fp: + grammar = fp.read() + parser = Lark(grammar, start='the_text') - def __init__(self, context: str, wf: Optional[j.Workflow]=None) -> None: - self.context = context - self.wf = wf - self.success: bool = True - - def parse(self, expr: Any) -> Tuple[Any, bool]: - # early exits - if expr is None: - return (None, True) - elif not isinstance(expr, str): - return (expr, True) - - # some preprocessing for terms which are not needed - expr = expr.replace('$(runtime.outdir)/', '') - expr = expr.replace('$(runtime.tmpdir)/', '') - if expr == '': - raise NotImplementedError - - single_token_match = single_token_matcher.match(expr) - simple_function_match = simple_function_token_matcher.match(expr) - function_match = function_token_matcher.match(expr) - single_expression_match = single_expression_matcher.match(expr) - inline_expression_matches = list(inline_expression_matcher.findall(expr)) # non-full length expressions "$(expr1).fastq" etc + def parse(self, expr: str) -> Tuple[Any, bool]: + try: + tree = self.parser.parse(expr) + return self.parse_node(tree), True + except Exception as e: + return None, False + + def parse_node(self, node: Tree) -> Any: + t_name = str(node.data) + + if t_name == 'javascript': + return self.parse_node(node.children[0]) + elif t_name == 'input': + i_name = str(node.children[0]) + return j.InputSelector(i_name) + elif t_name == 'expr': + pass - if '/foo/bar/baz' in expr: - print() - # if only single $(expr) - if single_token_match: - res = self.convert_javascript_token(single_token_match.groups()[0]) - - # if simple function ${return 16;} - elif simple_function_match: - res = self.convert_javascript_token(simple_function_match.group(1)) - if isinstance(res, str): - res = res.replace('\n', '') - - # if function ${func} - elif function_match: - res = self.convert_javascript_token(function_match.group(0)) - if isinstance(res, str): - res = res.replace('\n', '') - - elif single_expression_match: - if single_expression_match.group(1).count('(') == single_expression_match.group(1).count(')'): - res = self.convert_javascript_token(single_expression_match.group(1)) + # attributes + elif t_name == 'attr_basename': + file_object = self.parse_node(node.children[0]) + return j.BasenameOperator(file_object) + elif t_name == 'attr_dirname': + file_object = self.parse_node(node.children[0]) + return j.DirnameOperator(file_object) + elif t_name == 'attr_nameroot': + file_object = self.parse_node(node.children[0]) + return j.NamerootOperator(file_object) + elif t_name == 'attr_nameext': + file_object = self.parse_node(node.children[0]) + return j.NameextOperator(file_object) + elif t_name == 'attr_size': + file_object = self.parse_node(node.children[0]) + return j.FileSizeOperator(file_object) + elif t_name == 'attr_contents': + file_object = self.parse_node(node.children[0]) + return j.ReadContents(file_object) + elif t_name == 'attr_length': + file_object = self.parse_node(node.children[0]) + return j.LengthOperator(file_object) - # if multiple expressions $(expr1) + $(expr2) etc - elif inline_expression_matches: - string_format = f"{expr}" - token_replacers = {} - - for token, idx in zip(inline_expression_matches, range(len(inline_expression_matches))): - key = f"JANIS_CWL_TOKEN_{idx+1}" - string_format = string_format.replace(f"$({token})", f"{{{key}}}") - val = self.convert_javascript_token(token) - token_replacers[key] = val - - if len(token_replacers) == 0: - res = string_format + # methods + elif t_name == 'meth_join': + arr_object = self.parse_node(node.children[0]) + separator = str(node.children[1]) + return j.JoinOperator(arr_object, separator) + elif t_name == 'meth_slice': + arr_object = self.parse_node(node.children[0]) + if isinstance(node.children[1], Token): + start = int(str(node.children[1])) + end = None else: - res = j.StringFormatter(string_format, **token_replacers) - + start = int(str(node.children[1].children[0])) + end = int(str(node.children[1].children[2])) + return j.SliceOperator(arr_object, start, end) + elif t_name == 'meth_flat': + arr_object = self.parse_node(node.children[0]) + return j.FlattenOperator(arr_object) + elif t_name == 'meth_index': + arr_object = self.parse_node(node.children[0]) + index = int(str(node.children[1])) + return j.IndexOperator(arr_object, index) + elif t_name == 'meth_split': + string_object = self.parse_node(node.children[0]) + separator = str(node.children[1]) + return j.SplitOperator(string_object, separator) + elif t_name == 'meth_replace': + string_object = self.parse_node(node.children[0]) + pattern = str(node.children[1].children[0]) + repl = str(node.children[1].children[2]) + return j.ReplaceOperator(string_object, pattern, repl) - # no matches else: - res = expr - - return (res, self.success) + pass + + raise NotImplementedError + - def convert_javascript_token(self, token: str) -> Optional[Any]: - step_output_selector_match = step_output_selector_matcher.match(token) - input_selector_match = input_selector_matcher.match(token) - ternary_conditional_match = - # inputs - if input_selector_match: - tag = input_selector_match.groups()[0] - return self.convert_input_selector_token(token, tag) - - # outputs - elif step_output_selector_match: - tag = step_output_selector_match.groups()[0] - return self.convert_input_node_selector_token(token, tag) - - # resources - elif token == 'runtime.cores': - return j.CpuSelector() - elif token == 'runtime.ram': - return j.MemorySelector() - - # directories - # we don't need to do anything here - elif token == 'runtime.outdir': - return '.' - elif token == 'runtime.tmpdir': - return '.' - elif token == 'runtime.outdirSize': - return None - elif token == 'runtime.tmpdirSize': - return None - - # file type attributes - elif token.endswith(".size"): - return j.FileSizeOperator(self.convert_javascript_token(token[:-5])) - elif token.endswith(".nameroot"): - return j.NamerootOperator(self.convert_javascript_token(token[:-9])) - elif token.endswith(".basename"): - return j.BasenameOperator(self.convert_javascript_token(token[:-9])) - elif token.endswith(".path"): - # Ignore it because Janis will automatically put this back in where relevant - return self.convert_javascript_token(token[:-5]) - elif token.endswith(".contents"): - return j.ReadContents(self.convert_javascript_token(token[:-9])) - - # primitives - elif string_matcher.match(token): - return token[1:-1] - elif int_matcher.search(token): - return int(token) - elif float_matcher.search(token): - return float(token) - - # can't convert - else: - # j.Logger.warn( - # f"Couldn't translate javascript token, will use the placeholder '<js>{token}</js>'" - # ) - self.success = False - # if token.startswith('$(') and token.endswith(')'): - # token = token[2:-1] - return f"<js>{token}</js>" - - def convert_input_selector_token(self, token: str, tag: str) -> j.InputNodeSelector | j.InputSelector | str: - if self.context == 'clt': - return j.InputSelector(tag) - elif self.context == 'workflow': - return self.convert_input_node_selector_token(token, tag) - else: - raise NotImplementedError - def convert_input_node_selector_token(self, token: str, tag: str) -> j.InputNodeSelector | str: - assert(self.wf) - # fallback - if tag not in self.wf.input_nodes: - self.success = False - return f"<js>{token}</js>" - # success - else: - inp = self.wf.input_nodes[tag] - return j.InputNodeSelector(inp) \ No newline at end of file diff --git a/janis_core/ingestion/cwl/expressions/mainold.py b/janis_core/ingestion/cwl/expressions/mainold.py new file mode 100644 index 000000000..3a0aee756 --- /dev/null +++ b/janis_core/ingestion/cwl/expressions/mainold.py @@ -0,0 +1,210 @@ + + + +""" +docstring here! sphinx +""" + + +from typing import Any, Tuple, Optional + +import re +import janis_core as j + + +# functions: "${func}" +function_token_matcher = re.compile(r"^\$\{[\s\S]*return[\s\S]*\}$") # TODO imperfect. see test_initial_workdir_requirement_listing test + +# simple functions: ${ return "over 80000" } +simple_function_token_matcher = re.compile(r"^\s*\$\{\s*return ([^\s'\";{}]+|['\"][^;{}]*?['\"])[\s;]*?\}$") + + +# single javascript expression: "$(expr)" +single_token_matcher = re.compile(r"^\$\(([^)]+)\)$") + +# used for matching multiple expressions in a line: "$(expr1) + $(expr2)" +# up to 3 levels of recursion +inline_expression_matcher = re.compile(r"(?<=\$\()(?:[^)(]|\((?:[^)(]|\((?:[^)(]|\([^)(]*\))*\))*\))*(?=\))") + +# complex single expressions: $(Math.round((953.674 * [inputs.runtime_memory, ((inputs.inputFile.size / 1048576) > 1024) ? 4 : 2, 4].filter(function (inner) { return inner != null })[0]))) +single_expression_matcher = re.compile(r"^\$[({](.*?)[)}]$") + +# cwl input references to StepOutputSelector: valueFrom: $(steps.combine.result) -> StepOutputSelector() +step_output_selector_matcher = re.compile(r"^steps\.([A-z0-9_]+)\.([A-z0-9_]+)$") + +# cwl input references to InputSelector / InputNodeSelector +# depends on 'context' field of ExpressionParser +# valueFrom: $(inputs.myName) -> InputSelector("myName") +# valueFrom: $(inputs.myWfInp) -> InputNodeSelector("myWfInp") +input_selector_matcher = re.compile(r"^inputs\.([A-z0-9_]+)$") + + + +# literal strings +string_matcher = re.compile(r'^".+?"$') + +# ints +int_matcher = re.compile(r"^\s*\d+\s*$") + +# floats +float_matcher = re.compile(r"^\s*(\d*\.\d+)|(\d+\.\d*)\s*$") + + + +def parse_basic_expression(expr: Any, context: str='clt', wf: Optional[j.Workflow]=None) -> Tuple[Optional[Any], bool]: + parser = ExpressionParser(context, wf) + return parser.parse(expr) + + +class ExpressionParser: + """parses a javascript expression to janis Selectors""" + + def __init__(self, context: str, wf: Optional[j.Workflow]=None) -> None: + self.context = context + self.wf = wf + self.success: bool = True + + def parse(self, expr: Any) -> Tuple[Any, bool]: + # early exits + if expr is None: + return (None, True) + elif not isinstance(expr, str): + return (expr, True) + + # some preprocessing for terms which are not needed + expr = expr.replace('$(runtime.outdir)/', '') + expr = expr.replace('$(runtime.tmpdir)/', '') + if expr == '': + raise NotImplementedError + + single_token_match = single_token_matcher.match(expr) + simple_function_match = simple_function_token_matcher.match(expr) + function_match = function_token_matcher.match(expr) + single_expression_match = single_expression_matcher.match(expr) + inline_expression_matches = list(inline_expression_matcher.findall(expr)) # non-full length expressions "$(expr1).fastq" etc + + if '/foo/bar/baz' in expr: + print() + # if only single $(expr) + if single_token_match: + res = self.convert_javascript_token(single_token_match.groups()[0]) + + # if simple function ${return 16;} + elif simple_function_match: + res = self.convert_javascript_token(simple_function_match.group(1)) + if isinstance(res, str): + res = res.replace('\n', '') + + # if function ${func} + elif function_match: + res = self.convert_javascript_token(function_match.group(0)) + if isinstance(res, str): + res = res.replace('\n', '') + + elif single_expression_match: + if single_expression_match.group(1).count('(') == single_expression_match.group(1).count(')'): + res = self.convert_javascript_token(single_expression_match.group(1)) + + # if multiple expressions $(expr1) + $(expr2) etc + elif inline_expression_matches: + string_format = f"{expr}" + token_replacers = {} + + for token, idx in zip(inline_expression_matches, range(len(inline_expression_matches))): + key = f"JANIS_CWL_TOKEN_{idx+1}" + string_format = string_format.replace(f"$({token})", f"{{{key}}}") + val = self.convert_javascript_token(token) + token_replacers[key] = val + + if len(token_replacers) == 0: + res = string_format + else: + res = j.StringFormatter(string_format, **token_replacers) + + + # no matches + else: + res = expr + + return (res, self.success) + + def convert_javascript_token(self, token: str) -> Optional[Any]: + step_output_selector_match = step_output_selector_matcher.match(token) + input_selector_match = input_selector_matcher.match(token) + + # inputs + if input_selector_match: + tag = input_selector_match.groups()[0] + return self.convert_input_selector_token(token, tag) + + # outputs + elif step_output_selector_match: + tag = step_output_selector_match.groups()[0] + return self.convert_input_node_selector_token(token, tag) + + # resources + elif token == 'runtime.cores': + return j.CpuSelector() + elif token == 'runtime.ram': + return j.MemorySelector() + + # directories + # we don't need to do anything here + elif token == 'runtime.outdir': + return '.' + elif token == 'runtime.tmpdir': + return '.' + elif token == 'runtime.outdirSize': + return None + elif token == 'runtime.tmpdirSize': + return None + + # file type attributes + elif token.endswith(".size"): + return j.FileSizeOperator(self.convert_javascript_token(token[:-5])) + elif token.endswith(".nameroot"): + return j.NamerootOperator(self.convert_javascript_token(token[:-9])) + elif token.endswith(".basename"): + return j.BasenameOperator(self.convert_javascript_token(token[:-9])) + elif token.endswith(".path"): + # Ignore it because Janis will automatically put this back in where relevant + return self.convert_javascript_token(token[:-5]) + elif token.endswith(".contents"): + return j.ReadContents(self.convert_javascript_token(token[:-9])) + + # primitives + elif string_matcher.match(token): + return token[1:-1] + elif int_matcher.search(token): + return int(token) + elif float_matcher.search(token): + return float(token) + + # can't convert + else: + # j.Logger.warn( + # f"Couldn't translate javascript token, will use the placeholder '<js>{token}</js>'" + # ) + self.success = False + # if token.startswith('$(') and token.endswith(')'): + # token = token[2:-1] + return f"<js>{token}</js>" + + def convert_input_selector_token(self, token: str, tag: str) -> j.InputNodeSelector | j.InputSelector | str: + if self.context == 'clt': + return j.InputSelector(tag) + elif self.context == 'workflow': + return self.convert_input_node_selector_token(token, tag) + else: + raise NotImplementedError + + def convert_input_node_selector_token(self, token: str, tag: str) -> j.InputNodeSelector | str: + assert(self.wf) + # fallback + if tag not in self.wf.input_nodes: + self.success = False + return f"<js>{token}</js>" + # success + else: + inp = self.wf.input_nodes[tag] + return j.InputNodeSelector(inp) \ No newline at end of file diff --git a/janis_core/ingestion/cwl/expressions/parser.py b/janis_core/ingestion/cwl/expressions/parser.py index ffd70241a..0966bdbb0 100644 --- a/janis_core/ingestion/cwl/expressions/parser.py +++ b/janis_core/ingestion/cwl/expressions/parser.py @@ -2,22 +2,26 @@ import os from lark import Lark + GRAMMAR_PATH = f'{os.path.dirname(os.path.abspath(__file__))}/grammar.ebnf' with open(GRAMMAR_PATH) as fp: grammar = fp.read() -data01 = '$(self === "name" ? true : false).fastq' -data02 = '$(self === "name" ? true : false).fastq$(inputs.index_name.ext)' -data1 = '$(self === "name" ? true : false)' -data2 = '$((inputs.index_name !== null) ? inputs.index_name : inputs.sequences.nameroot)' -data3 = '$(inputs.reads_1.basename).trimmed$(inputs.reads_1.nameext)' - +dataa = "$(inputs.sequences.split('/'))" +data0 = "$(self.location.split('/'))" +data1 = "$(self.location.split('/').slice(-1)[0])" +data2 = '$(self === "name" ? true : false)' +data3 = "$(self === 'name' ? true : false).fastq" +data4 = '$(self === "name" ? true : false).fastq$(inputs.index_name.ext)' +data5 = '$((inputs.index_name !== null) ? inputs.index_name : inputs.sequences.nameroot)' +data6 = '$(inputs.reads_1.basename).trimmed$(inputs.reads_1.nameext)' +data7 = "$(self.location.split('/').slice(-1)[0].split('.').slice(-1)[0])" json_parser = Lark(grammar, start='the_text') -tree = json_parser.parse(data01) +tree = json_parser.parse(dataa) print(tree.pretty()) -tree = json_parser.parse(data02) +tree = json_parser.parse(data0) print(tree.pretty()) tree = json_parser.parse(data1) print(tree.pretty()) @@ -25,6 +29,14 @@ print(tree.pretty()) tree = json_parser.parse(data3) print(tree.pretty()) +tree = json_parser.parse(data4) +print(tree.pretty()) +tree = json_parser.parse(data5) +print(tree.pretty()) +tree = json_parser.parse(data6) +print(tree.pretty()) +tree = json_parser.parse(data7) +print(tree.pretty()) print() diff --git a/janis_core/ingestion/cwl/parsing/tool.py b/janis_core/ingestion/cwl/parsing/tool.py index f9b3105ef..3aa054bc6 100644 --- a/janis_core/ingestion/cwl/parsing/tool.py +++ b/janis_core/ingestion/cwl/parsing/tool.py @@ -15,7 +15,7 @@ from ..types import ingest_cwl_type from ..identifiers import get_id_entity from ..identifiers import get_id_filename -from ..expressions import parse_basic_expression +from ..expressions import parse_expression @dataclass @@ -113,7 +113,7 @@ def get_memory(self, requirements: list[Any]) -> Optional[int]: for req in requirements: if isinstance(req, self.cwl_utils.ResourceRequirement): # maybe convert mebibytes to megabytes? - memory, success = parse_basic_expression(req.ramMin or req.ramMax) + memory, success = parse_expression(req.ramMin or req.ramMax) if not success: msg = 'untranslated javascript expression in task MEM requirement' self.error_msgs.append(msg) @@ -123,7 +123,7 @@ def get_memory(self, requirements: list[Any]) -> Optional[int]: def get_cpus(self, requirements: list[Any]) -> Optional[int]: for req in requirements: if isinstance(req, self.cwl_utils.ResourceRequirement): - cpus, success = parse_basic_expression(req.coresMin) + cpus, success = parse_expression(req.coresMin) if not success: msg = 'untranslated javascript expression in task CPU requirement' self.error_msgs.append(msg) @@ -133,7 +133,7 @@ def get_cpus(self, requirements: list[Any]) -> Optional[int]: def get_time(self, requirements: list[Any]) -> Optional[int]: for req in requirements: if hasattr(req, 'timelimit') and isinstance(req, self.cwl_utils.ToolTimeLimit): - time, success = parse_basic_expression(req.timelimit) + time, success = parse_expression(req.timelimit) if not success: msg = 'untranslated javascript expression in task TIME requirement' self.error_msgs.append(msg) @@ -172,12 +172,12 @@ def get_env_vars(self, requirements: list[Any]) -> dict[str, Any]: if isinstance(req, self.cwl_utils.EnvVarRequirement): for envdef in req.envDef: # entry name - name_expr, success = parse_basic_expression(envdef.envName) + name_expr, success = parse_expression(envdef.envName) if not success: msg = 'untranslated javascript expression in environment variable name' self.error_msgs.append(msg) # entry - entry_expr, success = parse_basic_expression(envdef.envValue) + entry_expr, success = parse_expression(envdef.envValue) if not success: msg = 'untranslated javascript expression in environment variable value' self.error_msgs.append(msg) @@ -231,7 +231,7 @@ def is_probably_file(self) -> bool: if re.search(self.FILE_CLASS_MATCHER, self.value): return True else: - res, success = parse_basic_expression(self.value) + res, success = parse_expression(self.value) if success: # successfully parsed requirement value into janis if isinstance(res, InputSelector): @@ -250,7 +250,7 @@ def is_probably_directory(self) -> bool: if re.search(self.DIRECTORY_CLASS_MATCHER, self.value): return True else: - res, success = parse_basic_expression(self.value) + res, success = parse_expression(self.value) if success: # successfully parsed requirement value into janis if isinstance(res, InputSelector): @@ -265,7 +265,7 @@ def is_probably_directory(self) -> bool: @property def value_is_resolvable(self) -> bool: - _, success = parse_basic_expression(self.value) + _, success = parse_expression(self.value) if success: return True return False @@ -273,7 +273,7 @@ def value_is_resolvable(self) -> bool: @property def name_is_resolvable(self) -> bool: if self.name: - _, success = parse_basic_expression(self.name) + _, success = parse_expression(self.name) if success: return True return False @@ -375,7 +375,7 @@ def get_directories_to_create_from_str(self) -> Optional[str | InputSelector]: # most likely just specifying the file / directory needs to be staged. do nothing for now. # future: try to detect whether its a file or directory. create directory if directory. if self.value_is_resolvable and self.is_probably_directory: - res, _ = parse_basic_expression(self.value) + res, _ = parse_expression(self.value) return res elif self.is_probably_directory: @@ -517,7 +517,7 @@ def ingest_io_streams(self, entity: Any, jtool: CommandTool) -> list[ToolArgumen # stderr: n + 1 if entity.stderr: - filename, success = parse_basic_expression(entity.stderr) + filename, success = parse_expression(entity.stderr) if not success: filename = 'stderr.txt' self.error_msgs.append('untranslated javascript expression in stderr filename. used stderr.txt as fallback') @@ -533,7 +533,7 @@ def ingest_io_streams(self, entity: Any, jtool: CommandTool) -> list[ToolArgumen # stdout: n + 2 if entity.stdout: - filename, success = parse_basic_expression(entity.stdout) + filename, success = parse_expression(entity.stdout) if not success: filename = 'stdout.txt' self.error_msgs.append('untranslated javascript expression in stdout filename. used stdout.txt as fallback') @@ -543,7 +543,7 @@ def ingest_io_streams(self, entity: Any, jtool: CommandTool) -> list[ToolArgumen # stdin: n + 3 if entity.stdin: - filename, success = parse_basic_expression(entity.stdin) + filename, success = parse_expression(entity.stdin) if not success: self.error_msgs.append('untranslated javascript expression in stdin filename') arg = ToolArgument(prefix='<', value=filename, position=n + 3) @@ -593,7 +593,7 @@ def fallback(self) -> ToolArgument: def do_parse(self) -> Optional[ToolArgument]: # I don't know when a clt argument would be a string if isinstance(self.entity, str): - res, success = parse_basic_expression(self.entity) + res, success = parse_expression(self.entity) if not success: self.error_msgs.append('untranslated javascript expression') if res is None: @@ -602,7 +602,7 @@ def do_parse(self) -> Optional[ToolArgument]: # normal case else: - res, success = parse_basic_expression(self.entity.valueFrom) + res, success = parse_expression(self.entity.valueFrom) if not success: self.error_msgs.append('untranslated javascript expression') if res is None: @@ -706,7 +706,7 @@ def parse_value(self) -> Any: value = None if self.entity.inputBinding and self.entity.inputBinding.valueFrom: if settings.ingest.cwl.INGEST_JAVASCRIPT_EXPRESSIONS: # why? - value, success = parse_basic_expression(self.entity.inputBinding.valueFrom) + value, success = parse_expression(self.entity.inputBinding.valueFrom) if not success: msg = f'untranslated javascript expression in inputBinding.valueFrom' self.error_msgs.append(msg) @@ -748,7 +748,7 @@ def do_parse_stdout(self, identifier: str, dtype: DataType) -> ToolOutput: selector = None if self.clt.stdout is not None: - expr, success = parse_basic_expression(self.clt.stdout) + expr, success = parse_expression(self.clt.stdout) if success: dtype = File() selector = expr @@ -772,7 +772,7 @@ def do_parse_generic(self, identifier: str, dtype: DataType) -> ToolOutput: elif self.entity.outputBinding: if self.entity.outputBinding.glob: - res, success = parse_basic_expression(self.entity.outputBinding.glob) + res, success = parse_expression(self.entity.outputBinding.glob) if isinstance(res, str): selector = WildcardSelector(res) else: @@ -781,7 +781,7 @@ def do_parse_generic(self, identifier: str, dtype: DataType) -> ToolOutput: self.error_msgs.append('untranslated javascript expression in output collection') elif self.entity.outputBinding.outputEval: - res, success = parse_basic_expression(self.entity.outputBinding.outputEval) + res, success = parse_expression(self.entity.outputBinding.outputEval) if isinstance(res, str): selector = WildcardSelector(res) else: diff --git a/janis_core/ingestion/cwl/types.py b/janis_core/ingestion/cwl/types.py index 68e462b3c..03f75439c 100644 --- a/janis_core/ingestion/cwl/types.py +++ b/janis_core/ingestion/cwl/types.py @@ -25,7 +25,7 @@ from janis_core.utils.errors import UnsupportedError from janis_core import settings -from .expressions import parse_basic_expression +from .expressions import parse_expression file_datatype_cache: dict[int, Any] = {} diff --git a/janis_core/operators/standard.py b/janis_core/operators/standard.py index 7516ee124..5f6cccbd6 100644 --- a/janis_core/operators/standard.py +++ b/janis_core/operators/standard.py @@ -1,5 +1,6 @@ + from copy import copy -from typing import List +from typing import List, Optional from janis_core.utils.logger import Logger from janis_core.types import ( @@ -144,27 +145,118 @@ def evaluate(self, inputs): return str(separator).join((str(el) for el in iterable)) +# TODO test. currently untested. +class SplitOperator(Operator): + def __init__(self, iterable, separator): + super().__init__(iterable, separator) + + @staticmethod + def friendly_signature(): + return "String, String -> Array[String]" + + def argtypes(self): + return [String, String] + + def returntype(self): + return Array(String) + + def to_python(self, unwrap_operator, *args): + string_obj, separator = [unwrap_operator(a) for a in self.args] + return f"{string_obj}.split({separator})" + + def to_wdl(self, unwrap_operator, *args): + string_obj, separator = [unwrap_operator(a) for a in self.args] + Logger.warn( + f"String.Split() is not implemented in WDL, will return the input string" + ) + return string_obj + + def to_cwl(self, unwrap_operator, *args): + string_obj, separator = [unwrap_operator(a) for a in self.args] + return f"{string_obj}.split({separator})" + + def to_nextflow(self, unwrap_operator, *args): + string_obj, separator = [unwrap_operator(a) for a in self.args] + return f"{string_obj}.split({separator})" + + def evaluate(self, inputs): + string_obj, separator = self.evaluate_arg(self.args, inputs) + return string_obj.split(separator) + + +# TODO test. currently untested. +class SliceOperator(Operator): + def __init__(self, iterable, start, stop): + super().__init__(iterable, start, stop) + + @staticmethod + def friendly_signature(): + return "Array, Int, Optional[Int] -> Array" + + def argtypes(self): + return [Array, Int, Optional[Int]] + + def returntype(self): + return Array(AnyType) + + def to_python(self, unwrap_operator, *args): + iterable, start, stop = [unwrap_operator(a) for a in self.args] + if stop is not None: + return f"{iterable}[{start}:{stop}]" + else: + return f"{iterable}[{start}:]" + + def to_wdl(self, unwrap_operator, *args): + iterable, start, stop = [unwrap_operator(a) for a in self.args] + Logger.warn( + f"Array slices not implemented in WDL, will return the input Array" + ) + return iterable + + def to_cwl(self, unwrap_operator, *args): + iterable, start, stop = [unwrap_operator(a) for a in self.args] + if stop is not None: + return f"{iterable}.slice({start},{stop})" + else: + return f"{iterable}.slice({start})" + + def to_nextflow(self, unwrap_operator, *args): + iterable, start, stop = [unwrap_operator(a) for a in self.args] + if stop is not None: + return f"{iterable}[{start}..{stop}]" + else: + return f"{iterable}[{start}..-1]" + + def evaluate(self, inputs): + iterable, start, stop = [unwrap_operator(a) for a in self.args] + if stop is not None: + return iterable[start:stop] + else: + return iterable[start:] + + class BasenameOperator(Operator): @staticmethod def friendly_signature(): return "Union[File, Directory] -> String" def to_python(self, unwrap_operator, *args): - arg = unwrap_operator(args[0]) - return f"os.path.basename({arg})" + file_obj = unwrap_operator(args[0]) + return f"os.path.basename({file_obj})" def to_wdl(self, unwrap_operator, *args): - arg = unwrap_operator(args[0]) - return f"basename({arg})" + file_obj = unwrap_operator(args[0]) + return f"basename({file_obj})" def to_cwl(self, unwrap_operator, *args): - arg = unwrap_operator( - args[0], add_path_suffix_to_input_selector_if_required=False + file_obj = unwrap_operator( + file_obj[0], add_path_suffix_to_input_selector_if_required=False ) - return arg + ".basename" + return file_obj + ".basename" def to_nextflow(self, unwrap_operator, *args): - return f"{unwrap_operator(args[0])}.name" + file_obj = unwrap_operator(args[0]) + return f"{file_obj}.name" def argtypes(self): return [UnionType(File, Directory)] @@ -180,9 +272,49 @@ def __repr__(self): def evaluate(self, inputs): from os.path import basename - return basename(self.evaluate_arg(self.args[0], inputs)) +# TODO test. currently untested. +class DirnameOperator(Operator): + @staticmethod + def friendly_signature(): + return "Union[File, Directory] -> String" + + def to_python(self, unwrap_operator, *args): + file_obj = unwrap_operator(args[0]) + return f"os.path.dirname({file_obj})" + + def to_wdl(self, unwrap_operator, *args): + file_obj, separator = [unwrap_operator(a) for a in self.args] + Logger.warn( + f"File.Dirname() is not implemented in WDL, will return the input File" + ) + return file_obj + + def to_cwl(self, unwrap_operator, *args): + file_obj = unwrap_operator(args[0], add_path_suffix_to_input_selector_if_required=False) + return f"{file_obj}.dirname" + + def to_nextflow(self, unwrap_operator, *args): + file_obj = unwrap_operator(args[0]) + return f"{file_obj}.parent" + + def argtypes(self): + return [UnionType(File, Directory)] + + def returntype(self): + return String() + + def __str__(self): + return str(self.args[0]) + ".dirname" + + def __repr__(self): + return str(self) + + def evaluate(self, inputs): + import os + return os.path.dirname(self.evaluate_arg(self.args[0], inputs)) + # TODO test. currently untested. class NamerootOperator(Operator): @@ -191,23 +323,22 @@ def friendly_signature(): return "File -> String" def to_python(self, unwrap_operator, *args): - arg = unwrap_operator(args[0]) - return f"os.path.splitext(os.path.basename({arg}))[0]" + file_obj = unwrap_operator(args[0]) + return f"os.path.splitext(os.path.basename({file_obj}))[0]" def to_wdl(self, unwrap_operator, *args): - # ext = args[0].split('.')[-1] - arg = unwrap_operator(args[0]) - return f"basename({arg}, \".*\")" + file_obj = unwrap_operator(args[0]) + return f"basename({file_obj}, \".*\")" def to_cwl(self, unwrap_operator, *args): - arg = unwrap_operator( + file_obj = unwrap_operator( args[0], add_path_suffix_to_input_selector_if_required=False ) - return arg + ".nameroot" + return file_obj + ".nameroot" def to_nextflow(self, unwrap_operator, *args): - raise NotImplementedError - return f"{unwrap_operator(args[0])}.baseName" + file_obj = unwrap_operator(args[0]) + return f"{file_obj}.baseName" def argtypes(self): return [UnionType(File, Directory)] @@ -234,16 +365,23 @@ def friendly_signature(): return "File -> String" def to_python(self, unwrap_operator, *args): - raise NotImplementedError + file_obj = unwrap_operator(args[0]) + return f"os.path.splitext(os.path.basename({file_obj}))[1:]" def to_wdl(self, unwrap_operator, *args): - raise NotImplementedError + file_obj, separator = [unwrap_operator(a) for a in self.args] + Logger.warn( + f"File.Extension() is not implemented in WDL, will return the input File" + ) + return file_obj def to_cwl(self, unwrap_operator, *args): - raise NotImplementedError - + file_obj = unwrap_operator(args[0]) + return f"{file_obj}.nameext" + def to_nextflow(self, unwrap_operator, *args): - raise NotImplementedError + file_obj = unwrap_operator(args[0]) + return f"{file_obj}.extension" def argtypes(self): return [UnionType(File, Directory)] @@ -252,16 +390,15 @@ def returntype(self): return String() def __str__(self): - return str(self.args[0]) + ".nameroot" + return str(self.args[0]) + ".nameext" def __repr__(self): return str(self) def evaluate(self, inputs): - raise NotImplementedError - # from os.path import basename - # from os.path import splitext - # return splitext(basename(self.evaluate_arg(self.args[0], inputs)))[0] + from os.path import basename + from os.path import splitext + return splitext(basename(self.evaluate_arg(self.args[0], inputs)))[1:] class TransposeOperator(Operator): @@ -286,7 +423,8 @@ def to_python(self, unwrap_operator, *args): return f"[[{iterable}[j][i] for j in range(len({iterable}))] for i in range(len({iterable}[0]))]" def to_wdl(self, unwrap_operator, *args): - return f"transform({unwrap_operator(args[0])})" + iterable = unwrap_operator(self.args[0]) + return f"transform({iterable})" def to_cwl(self, unwrap_operator, *args): return ( @@ -295,9 +433,8 @@ def to_cwl(self, unwrap_operator, *args): ) def to_nextflow(self, unwrap_operator, *args): - raise NotImplementedError( - f"There is no Nextflow translation for {self.__class__.__name__}" - ) + iterable = unwrap_operator(self.args[0]) + return f"{iterable}.transpose()" def evaluate(self, inputs): ar = self.evaluate_arg(self.args[0], inputs) @@ -322,25 +459,24 @@ def __repr__(self): return str(self) def to_python(self, unwrap_operator, *args): - arg = unwrap_operator(self.args[0]) - return f"len({arg})" + iterable = unwrap_operator(self.args[0]) + return f"len({iterable})" def to_wdl(self, unwrap_operator, *args): - arg = unwrap_operator(self.args[0]) - return f"length({arg})" + iterable = unwrap_operator(self.args[0]) + return f"length({iterable})" def to_cwl(self, unwrap_operator, *args): - arg = unwrap_operator(self.args[0]) - return f"{arg}.length" + iterable = unwrap_operator(self.args[0]) + return f"{iterable}.length" def to_nextflow(self, unwrap_operator, *args): - raise NotImplementedError( - f"There is no Nextflow translation for {self.__class__.__name__}" - ) + iterable = unwrap_operator(self.args[0]) + return f"{iterable}.size()" def evaluate(self, inputs): - ar = self.evaluate_arg(self.args[0], inputs) - return len(ar) + iterable = self.evaluate_arg(self.args[0], inputs) + return len(iterable) class RangeOperator(Operator): @@ -370,9 +506,13 @@ def to_wdl(self, unwrap_operator, *args): def to_cwl(self, unwrap_operator, *args): arg = unwrap_operator(self.args[0]) - return f"Array.from({{ length: {arg} + 1 }}, (_, i) => i)" + return f"Array.from({{length: {arg}}}, (x, i) => i)" # return f"{arg}.length" + def to_nextflow(self, unwrap_operator, *args): + arg = unwrap_operator(self.args[0]) + return f"0..{arg}" + def evaluate(self, inputs): ar = self.evaluate_arg(self.args[0], inputs) return list(range(ar)) @@ -396,25 +536,24 @@ def __repr__(self): return str(self) def to_python(self, unwrap_operator, *args): - arg = unwrap_operator(self.args[0]) - return f"[el for sublist in {arg} for el in sublist]" + iterable = unwrap_operator(self.args[0]) + return f"[el for sublist in {iterable} for el in sublist]" def to_wdl(self, unwrap_operator, *args): - arg = unwrap_operator(self.args[0]) - return f"flatten({arg})" + iterable = unwrap_operator(self.args[0]) + return f"flatten({iterable})" def to_cwl(self, unwrap_operator, *args): - arg = unwrap_operator(self.args[0]) - return f"{arg}.flat()" + iterable = unwrap_operator(self.args[0]) + return f"{iterable}.flat()" def to_nextflow(self, unwrap_operator, *args): - raise NotImplementedError( - f"There is no Nextflow translation for {self.__class__.__name__}" - ) + iterable = unwrap_operator(self.args[0]) + return f"{iterable}.flatten()" def evaluate(self, inputs): - ar = self.evaluate_arg(self.args[0], inputs) - return [el for sl in ar for el in sl] + iterable = self.evaluate_arg(self.args[0], inputs) + return [el for sl in iterable for el in sl] class ApplyPrefixOperator(Operator): @@ -445,11 +584,12 @@ def to_wdl(self, unwrap_operator, *args): def to_cwl(self, unwrap_operator, *args): prefix, iterable = [unwrap_operator(a) for a in self.args] - return f"{iterable}.map(function (inner) {{ return {prefix} + inner; }})" + return f"{iterable}.map(x => {prefix} + x)" + # return f"{iterable}.map(function (inner) {{ return {prefix} + inner; }})" def to_nextflow(self, unwrap_operator, *args): prefix, iterable = [unwrap_operator(a) for a in self.args] - return f"{iterable}.map{{item -> {prefix} + item}}" + return f"{iterable}.map{{it -> {prefix} + it}}" def evaluate(self, inputs): prefix, iterable = self.evaluate_arg(self.args, inputs) @@ -565,11 +705,11 @@ def to_wdl(self, unwrap_operator, *args): def to_cwl(self, unwrap_operator, *args): iterable = unwrap_operator(self.args[0]) - return f"{iterable}.filter(function (inner) {{ return inner != null }})[0]" + return f"{iterable}[0]" + # return f"{iterable}.filter(function (inner) {{ return inner != null }})[0]" def to_nextflow(self, unwrap_operator, *args): iterable = unwrap_operator(self.args[0]) - return f"{iterable}.first()" def evaluate(self, inputs): @@ -622,11 +762,11 @@ def to_wdl(self, unwrap_operator, *args): def to_cwl(self, unwrap_operator, *args): iterable = unwrap_operator(self.args[0]) - return f"{iterable}.filter(function (inner) {{ return inner != null }})" + return f"{iterable}.filter(x => x)" def to_nextflow(self, unwrap_operator, *args): iterable = unwrap_operator(self.args[0]) - return f"{iterable}.filter{{item -> item != null}}" + return f"{iterable}.filter{{it -> it != null}}" def evaluate(self, inputs): iterable = self.evaluate_arg(self.args[0], inputs) @@ -653,7 +793,11 @@ def to_wdl(self, unwrap_operator, *args): def to_cwl(self, unwrap_operator, *args): base, pattern, replacement = [unwrap_operator(a) for a in self.args] - return f"{base}.replace(new RegExp({pattern}), {replacement})" + return f"{base}.replace({pattern}, {replacement})" + + def to_nextflow(self, unwrap_operator, *args): + base, pattern, replacement = [unwrap_operator(a) for a in self.args] + return f"{base}.replaceAll({pattern}, {replacement})" def to_python(self, unwrap_operator, *args): base, pattern, replacement = [unwrap_operator(a) for a in self.args] diff --git a/janis_core/tests/test_ingestion_cwl.py b/janis_core/tests/test_ingestion_cwl.py index 26610deee..350f63af2 100644 --- a/janis_core/tests/test_ingestion_cwl.py +++ b/janis_core/tests/test_ingestion_cwl.py @@ -6,13 +6,23 @@ from janis_core import ( InputSelector, BasenameOperator, + SplitOperator, FileSizeOperator, ReadContents, WildcardSelector, StringFormatter, InputNodeSelector, NamerootOperator, + NameextOperator, + DirnameOperator, CommandToolBuilder, + JoinOperator, + LengthOperator, + FlattenOperator, + FirstOperator, + SliceOperator, + ReplaceOperator, + IndexOperator, ToolInput, ) @@ -21,7 +31,7 @@ from janis_core.ingestion.cwl.loading import load_cwl_utils_from_version from janis_core.ingestion.cwl.identifiers import get_cwl_reference -from janis_core.ingestion.cwl.expressions import parse_basic_expression +from janis_core.ingestion.cwl.expressions import parse_expression from janis_core.ingestion.cwl.parsing.tool import CLTArgumentParser from janis_core.ingestion.cwl.parsing.tool import CLTInputParser @@ -664,64 +674,215 @@ def test_load_cwl_version(self): -class TestFromCwlExpressions(unittest.TestCase): +class TestParseExpression(unittest.TestCase): + """ + $(self.dirname)/$(self.nameroot) # just weird? + $(self.location.split('/')) + $(self.location.split('/').slice(-1)[0]) + $(self.path.split('.').slice(0,-2).join('.')) + $(self === "name" ? true : false) + $(self === 'name' ? true : false).fastq + $(self === "name" ? true : false).fastq$(inputs.index_name.ext) + $((inputs.index_name !== null) ? inputs.index_name : inputs.sequences.nameroot) + $(inputs.reads_1.basename).trimmed$(inputs.reads_1.nameext) + $(self.location.split('/').slice(-1)[0].split('.').slice(-1)[0]) + $(inputs.graph.nameroot).$(self) # wtf? + $(default_output_filename(".bw")) # defined function call + $('> ' + 'stats.log') # string concatenation + $('> ' + inputs.index_base_name + '.log') # string concatenation + + """ + + def test_input(self): + expr = "$(inputs.sequences)" + result, success = parse_expression(expr) + self.assertIsInstance(result, InputSelector) + self.assertEqual("sequences", result.input_to_select) + + expr = "$(inputs.reads_1)" + result, success = parse_expression(expr) + self.assertIsInstance(result, InputSelector) + self.assertEqual("reads_1", result.input_to_select) + + def test_self(self): + raise NotImplementedError + + def test_runtime(self): + raise NotImplementedError + + def test_file_basename(self): + expr = "$(inputs.reads_1.basename)" + result, success = parse_expression(expr) + self.assertIsInstance(result, BasenameOperator) + self.assertIsInstance(result.args[0], InputSelector) + + def test_file_nameroot(self): + expr = "$(inputs.reads_1.nameroot)" + result, success = parse_expression(expr) + self.assertIsInstance(result, NamerootOperator) + self.assertIsInstance(result.args[0], InputSelector) + + def test_file_nameext(self): + expr = "$(inputs.reads_1.nameext)" + result, success = parse_expression(expr) + self.assertIsInstance(result, NameextOperator) + self.assertIsInstance(result.args[0], InputSelector) + + def test_file_dirname(self): + expr = "$(inputs.reads_1.dirname)" + result, success = parse_expression(expr) + self.assertIsInstance(result, DirnameOperator) + self.assertIsInstance(result.args[0], InputSelector) + + def test_file_size(self): + expr = "$(inputs.reads_1.size)" + result, success = parse_expression(expr) + self.assertIsInstance(result, FileSizeOperator) + self.assertIsInstance(result.args[0], InputSelector) + + def test_file_contents(self): + expr = "$(inputs.reads_1.contents)" + result, success = parse_expression(expr) + self.assertIsInstance(result, ReadContents) + self.assertIsInstance(result.args[0], InputSelector) + + def test_arr_join(self): + expr = "$(inputs.reads.join('.'))" + result, success = parse_expression(expr) + self.assertIsInstance(result, JoinOperator) + self.assertIsInstance(result.args[0], InputSelector) + self.assertIsInstance(result.args[1], str) + self.assertEqual(result.args[1], "'.'") + + def test_arr_slice(self): + expr = "$(inputs.reads.slice(0,-1))" + result, success = parse_expression(expr) + self.assertIsInstance(result, SliceOperator) + self.assertIsInstance(result.args[0], InputSelector) + self.assertIsInstance(result.args[1], int) + self.assertEqual(result.args[1], 0) + self.assertIsInstance(result.args[2], int) + self.assertEqual(result.args[2], -1) + + expr = "$(inputs.reads.slice(3))" + result, success = parse_expression(expr) + self.assertIsInstance(result, SliceOperator) + self.assertIsInstance(result.args[0], InputSelector) + self.assertIsInstance(result.args[1], int) + self.assertEqual(result.args[1], 3) + self.assertIsNone(result.args[2]) + + def test_arr_length(self): + expr = "$(inputs.readgroups.length)" + result, success = parse_expression(expr) + self.assertIsInstance(result, LengthOperator) + self.assertIsInstance(result.args[0], InputSelector) + + def test_arr_flatten(self): + expr = "$(inputs.readgroups.flat())" + result, success = parse_expression(expr) + self.assertIsInstance(result, FlattenOperator) + self.assertIsInstance(result.args[0], InputSelector) + + def test_arr_index(self): + expr = "$(inputs.readgroups[1])" + result, success = parse_expression(expr) + self.assertIsInstance(result, IndexOperator) + self.assertIsInstance(result.args[0], InputSelector) + self.assertIsInstance(result.args[1], int) + self.assertEqual(result.args[1], 1) + + def test_str_split(self): + expr = "$(inputs.sequences.split('/'))" + result, success = parse_expression(expr) + self.assertIsInstance(result, SplitOperator) + self.assertIsInstance(result.args[0], InputSelector) + self.assertIsInstance(result.args[1], str) + self.assertEqual(result.args[1], "'/'") + + def test_str_replace(self): + expr = "$(inputs.name.replace(/ /g,''))" + result, success = parse_expression(expr) + self.assertIsInstance(result, ReplaceOperator) + self.assertIsInstance(result.args[0], InputSelector) + self.assertIsInstance(result.args[1], str) + self.assertEqual(result.args[1], "/ /g") + self.assertIsInstance(result.args[2], str) + self.assertEqual(result.args[2], "''") + + def test_ternary(self): + # TODO ADD TO JANIS_CORE + raise NotImplementedError + + def test_expression(self): + raise NotImplementedError + + def test_complex1(self): + raise NotImplementedError + + def test_complex2(self): + raise NotImplementedError + + + +class TestFromCwlExpressionsDEPRECATED(unittest.TestCase): def test_number(self): expr = "${return 16 }" - result, success = parse_basic_expression(expr) + result, success = parse_expression(expr) self.assertEqual(16, result) def test_number_with_semicolon(self): expr = "${return 16;}" - result, success = parse_basic_expression(expr) + result, success = parse_expression(expr) self.assertEqual(16, result) def test_number_with_spaces(self): expr = "${ return 80000 }" - result, success = parse_basic_expression(expr) + result, success = parse_expression(expr) self.assertEqual(80000, result) def test_string(self): expr = '${ return "over 80000" }' - result, success = parse_basic_expression(expr) + result, success = parse_expression(expr) self.assertEqual("over 80000", result) def test_input_selector(self): expr = "$(inputs.my_input)" - result, success = parse_basic_expression(expr) + result, success = parse_expression(expr) self.assertIsInstance(result, InputSelector) self.assertEqual("my_input", result.input_to_select) def test_input_selector_with_basename(self): expr = "$(inputs.my_input.basename)" - result, success = parse_basic_expression(expr) + result, success = parse_expression(expr) self.assertIsInstance(result, BasenameOperator) self.assertIsInstance(result.args[0], InputSelector) self.assertEqual("my_input", result.args[0].input_to_select) def test_input_selector_with_filesize(self): expr = "$(inputs.my_input.size)" - result, success = parse_basic_expression(expr) + result, success = parse_expression(expr) self.assertIsInstance(result, FileSizeOperator) self.assertIsInstance(result.args[0], InputSelector) self.assertEqual("my_input", result.args[0].input_to_select) def test_input_selector_with_contents(self): expr = "$(inputs.my_input.contents)" - result, success = parse_basic_expression(expr) + result, success = parse_expression(expr) self.assertIsInstance(result, ReadContents) self.assertIsInstance(result.args[0], InputSelector) self.assertEqual("my_input", result.args[0].input_to_select) def test_runtime_outdir(self): expr = "$(runtime.outdir)" - result, success = parse_basic_expression(expr) + result, success = parse_expression(expr) self.assertTrue(success) self.assertEquals(result, '.') def test_composite_1(self): expr = "$(runtime.outdir)/$(inputs.bam.basename)" - result, success = parse_basic_expression(expr) + result, success = parse_expression(expr) self.assertTrue(success) self.assertIsInstance(result, BasenameOperator) self.assertIsInstance(result.args[0], InputSelector) @@ -729,7 +890,7 @@ def test_composite_1(self): def test_composite_2(self): expr = "$(inputs.bam.basename).bai" - result, success = parse_basic_expression(expr) + result, success = parse_expression(expr) self.assertTrue(success) self.assertIsInstance(result, StringFormatter) self.assertEqual(result._format, "{JANIS_CWL_TOKEN_1}.bai") @@ -739,7 +900,7 @@ def test_composite_2(self): def test_composite_3(self): expr = "$(runtime.outdir)/$(inputs.bam.nameroot).bai" - result, success = parse_basic_expression(expr) + result, success = parse_expression(expr) self.assertTrue(success) self.assertIsInstance(result, StringFormatter) self.assertEqual(result._format, "{JANIS_CWL_TOKEN_1}.bai") From d6421a5818afbe55253916637da543657138dac0 Mon Sep 17 00:00:00 2001 From: Grace Hall <graceavahall@gmail.com> Date: Mon, 30 Oct 2023 21:33:02 +1100 Subject: [PATCH 11/32] Javascript parsing upgraded. - broken - updating calls to parse_expression() --- .../ingestion/cwl/expressions/grammar.ebnf | 109 +++-- janis_core/ingestion/cwl/expressions/main.py | 201 +++++++-- .../ingestion/cwl/expressions/parser.py | 32 +- janis_core/ingestion/cwl/parsing/tool.py | 339 ++++++++++----- janis_core/messages/__init__.py | 1 + janis_core/messages/logfile.py | 22 +- janis_core/messages/main.py | 48 ++- janis_core/operators/logical.py | 52 ++- janis_core/tests/test_ingestion_cwl.py | 389 +++++++++++++----- notes.txt | 21 + 10 files changed, 877 insertions(+), 337 deletions(-) diff --git a/janis_core/ingestion/cwl/expressions/grammar.ebnf b/janis_core/ingestion/cwl/expressions/grammar.ebnf index 56a4fdd11..79eca35c7 100644 --- a/janis_core/ingestion/cwl/expressions/grammar.ebnf +++ b/janis_core/ingestion/cwl/expressions/grammar.ebnf @@ -1,45 +1,73 @@ ### top level ### - ?the_text : part+ ?part : javascript | text javascript : "$(" expr ")" + | "${" expr "}" TEXT : /[^$(]+/ text : TEXT - ### higher level constructs ### - -?expr : ternary - | cond_check +?expr : return_ifelse + | return_inline + | ternary + | group + | two_value + | math | method_call + | function_call | attribute | group - | object - | value # may cause issues? - -ternary : expr "?" expr ":" expr -group : "(" expr ")" - -?cond_check : expr "===" expr -> deep_eq - | expr "!==" expr -> deep_ineq - | expr "==" expr -> eq - | expr "!=" expr -> ineq - | expr ">=" expr -> gteq - | expr "<=" expr -> lteq - | expr ">" expr -> gt - | expr "<" expr -> lt - | expr + | runtime + | input + | self + | primitive # may cause issues? + + +### logical ### +ternary : expr "?" expr ":" expr +return_ifelse : "if" expr "{" "return" expr ";" "}" "else" "{" "return" expr ";" "}" +return_inline : "return" expr ";"? + | "return" "(" expr ")" ";"? + +group : "(" expr ")" +# TODO NOT OPERATOR +# TODO ISDEFINED OPERATOR? +# TODO ASSERTNOTNULL OPERATOR? + +?math : "Math.floor(" expr ")" -> floor + | "Math.ceil(" expr ")" -> ceil + | "Math.round(" expr ")" -> round + +?two_value : expr "&&" expr -> and + | expr "||" expr -> or + | expr "===" expr -> deep_eq + | expr "!==" expr -> deep_ineq + | expr "==" expr -> eq + | expr "!=" expr -> ineq + | expr ">=" expr -> gteq + | expr "<=" expr -> lteq + | expr ">" expr -> gt + | expr "<" expr -> lt + | expr "+" expr -> add + | expr "-" expr -> sub + | expr "*" expr -> mul + | expr "/" expr -> div -### objects, attributes, methods ### -?object : "inputs." SYMBOL -> input - | "runtime." SYMBOL -> runtime - | "self" -> self +### objects, attributes, methods ### +input : "inputs." SYMBOL +self : "self" +runtime : "runtime.outdir" -> rt_outdir + | "runtime.outdirSize" -> rt_outdir_size + | "runtime.tmpdir" -> rt_tmpdir + | "runtime.tmpdirSize" -> rt_tmpdir_size + | "runtime.cores" -> rt_cores + | "runtime.ram" -> rt_ram ?attribute : expr ".basename" -> attr_basename | expr ".dirname" -> attr_dirname @@ -55,30 +83,35 @@ group : "(" expr ")" | expr ".flat()" -> meth_flat | expr "[" SIGNED_NUMBER "]" -> meth_index | expr ".replace(" method_args ")" -> meth_replace + | expr ".toString()" -> meth_tostr # TODO: # meth_filter # meth_map -?method_args: value - | value ARGSEP value - | value ARGSEP value ARGSEP value +?method_args: primitive + | primitive ARGSEP primitive + | primitive ARGSEP primitive ARGSEP primitive + +?function_call : "parseInt(" expr ")" -> func_parseint ARGSEP : /, *?/ ### primitives ### -?value : "true" -> true - | "false" -> false - | "null" -> null - | SIGNED_NUMBER - | QUOTED_STRING - | REGEX - | SYMBOL - -REGEX: /\/[\s\S]*?\/[a-z]?/ - -SYMBOL: /[a-zA-Z0-9_]+/ +?primitive : TRUE + | FALSE + | NULL + | SIGNED_NUMBER + | QUOTED_STRING + | REGEX + | SYMBOL + +TRUE : /true/ +FALSE : /false/ +NULL : /null/ +REGEX : /\/[\s\S]*?\/[a-z]?/ +SYMBOL : /[a-zA-Z0-9_]+/ _STRING_INNER: /.*?/ _STRING_QUOT_INNER: _STRING_INNER /(?<!\\)(\\\\)*?/ diff --git a/janis_core/ingestion/cwl/expressions/main.py b/janis_core/ingestion/cwl/expressions/main.py index 7d8a43bc8..108684f9f 100644 --- a/janis_core/ingestion/cwl/expressions/main.py +++ b/janis_core/ingestion/cwl/expressions/main.py @@ -6,14 +6,57 @@ from lark import Token from typing import Tuple, Any import janis_core as j +from janis_core.messages import log_error +from janis_core.messages import get_messages +from janis_core.messages import ErrorCategory GRAMMAR_PATH = f'{os.path.dirname(os.path.abspath(__file__))}/grammar.ebnf' - -def parse_expression(expr: str): - return ExpressionParser().parse(expr) +def parse_expression(expr: str, entity: j.CommandToolBuilder | j.WorkflowBuilder) -> Any: + result, success = ExpressionParser().parse(expr) + if not success: + messages = get_messages(entity.id(), level='ERROR') + messages = [x for x in messages if x.category == ErrorCategory.SCRIPT] + new_token = f'__TOKEN{len(messages) + 1}__' + msg = f'{new_token} = "{expr}"' + log_error(entity.id(), ErrorCategory.SCRIPT, msg) + return new_token, False + return result, success class ExpressionParser: + file_attr_map = { + 'attr_basename': j.BasenameOperator, + 'attr_dirname': j.DirnameOperator, + 'attr_nameroot': j.NamerootOperator, + 'attr_nameext': j.NameextOperator, + 'attr_size': j.FileSizeOperator, + 'attr_contents': j.ReadContents, + 'attr_length': j.LengthOperator, + } + + math_map = { + 'floor': j.FloorOperator, + 'ceil': j.CeilOperator, + 'round': j.RoundOperator, + } + + two_value_map = { + 'and': j.AndOperator, + 'or': j.OrOperator, + 'deep_eq': j.EqualityOperator, + 'eq': j.EqualityOperator, + 'deep_ineq': j.InequalityOperator, + 'ineq': j.InequalityOperator, + 'gteq': j.GteOperator, + 'gt': j.GtOperator, + 'lteq': j.LteOperator, + 'lt': j.LtOperator, + 'add': j.AddOperator, + 'sub': j.SubtractOperator, + 'mul': j.MultiplyOperator, + 'div': j.DivideOperator, + } + with open(GRAMMAR_PATH) as fp: grammar = fp.read() parser = Lark(grammar, start='the_text') @@ -24,76 +67,154 @@ def parse(self, expr: str) -> Tuple[Any, bool]: return self.parse_node(tree), True except Exception as e: return None, False - - def parse_node(self, node: Tree) -> Any: + + def generate_string_formatter(self, node: Tree) -> j.StringFormatter: + token_replacers = {} + string_format = "" + for child in node.children: + if child.data == 'javascript': + key = f"token{len(token_replacers)+1}" + value = self.parse_node(child) + # update token replacers + token_replacers[key] = value + # update string format + string_format += f"{{{key}}}" + elif child.data == 'text': + string_format += str(child.children[0].value) + else: + raise RuntimeError + + if len(token_replacers) == 0: + raise RuntimeError + + return j.StringFormatter(string_format, **token_replacers) + + def parse_node(self, node: Tree | Token) -> Any: + if isinstance(node, Token): + if node.type == 'TRUE': + return True + elif node.type == 'FALSE': + return False + elif node.type == 'NULL': + return None + elif node.type == 'SIGNED_NUMBER': + if '.' in node.value: + return float(node.value) + return int(node.value) + else: + return str(node.value) + t_name = str(node.data) + # entry points + if t_name == 'the_text': + return self.generate_string_formatter(node) if t_name == 'javascript': return self.parse_node(node.children[0]) + if t_name == 'text': + return str(node.value) + + # objects elif t_name == 'input': - i_name = str(node.children[0]) + i_name = self.parse_node(node.children[0]) return j.InputSelector(i_name) - elif t_name == 'expr': - pass + elif t_name == 'rt_outdir': + return '.' + elif t_name == 'rt_tmpdir': + return '.' + elif t_name == 'rt_outdir_size': + return 1024 + elif t_name == 'rt_tmpdir_size': + return 1024 + elif t_name == 'rt_cores': + return j.CpuSelector() + elif t_name == 'rt_ram': + return j.MemorySelector() + + # logial - misc + elif t_name == 'ternary': + cond_check = self.parse_node(node.children[0]) + cond_true = self.parse_node(node.children[1]) + cond_false = self.parse_node(node.children[2]) + return j.If(cond_check, cond_true, cond_false) + elif t_name == 'return_ifelse': + cond_check = self.parse_node(node.children[0]) + cond_true = self.parse_node(node.children[1]) + cond_false = self.parse_node(node.children[2]) + return j.If(cond_check, cond_true, cond_false) + elif t_name == 'return_inline': + return self.parse_node(node.children[0]) + elif t_name == 'group': + inner = self.parse_node(node.children[0]) + return j.GroupOperator(inner) + # logial - math + elif t_name in self.math_map: + inner = self.parse_node(node.children[0]) + return self.math_map[t_name](inner) + + # logial - two_value + elif t_name in self.two_value_map: + left = self.parse_node(node.children[0]) + right = self.parse_node(node.children[1]) + return self.two_value_map[t_name](left, right) + # attributes - elif t_name == 'attr_basename': - file_object = self.parse_node(node.children[0]) - return j.BasenameOperator(file_object) - elif t_name == 'attr_dirname': - file_object = self.parse_node(node.children[0]) - return j.DirnameOperator(file_object) - elif t_name == 'attr_nameroot': - file_object = self.parse_node(node.children[0]) - return j.NamerootOperator(file_object) - elif t_name == 'attr_nameext': + elif t_name in self.file_attr_map: file_object = self.parse_node(node.children[0]) - return j.NameextOperator(file_object) - elif t_name == 'attr_size': - file_object = self.parse_node(node.children[0]) - return j.FileSizeOperator(file_object) - elif t_name == 'attr_contents': - file_object = self.parse_node(node.children[0]) - return j.ReadContents(file_object) - elif t_name == 'attr_length': - file_object = self.parse_node(node.children[0]) - return j.LengthOperator(file_object) - - # methods + return self.file_attr_map[t_name](file_object) + + # methods - array elif t_name == 'meth_join': arr_object = self.parse_node(node.children[0]) - separator = str(node.children[1]) + separator = self.parse_node(node.children[1]) return j.JoinOperator(arr_object, separator) elif t_name == 'meth_slice': arr_object = self.parse_node(node.children[0]) if isinstance(node.children[1], Token): - start = int(str(node.children[1])) + start = int(self.parse_node(node.children[1])) end = None + elif len(node.children[1].children) == 3: + start = int(self.parse_node(node.children[1].children[0])) + end = int(self.parse_node(node.children[1].children[2])) else: - start = int(str(node.children[1].children[0])) - end = int(str(node.children[1].children[2])) + raise RuntimeError return j.SliceOperator(arr_object, start, end) elif t_name == 'meth_flat': arr_object = self.parse_node(node.children[0]) return j.FlattenOperator(arr_object) elif t_name == 'meth_index': arr_object = self.parse_node(node.children[0]) - index = int(str(node.children[1])) + index = int(self.parse_node(node.children[1])) return j.IndexOperator(arr_object, index) + + # methods - string elif t_name == 'meth_split': string_object = self.parse_node(node.children[0]) - separator = str(node.children[1]) + separator = self.parse_node(node.children[1]) return j.SplitOperator(string_object, separator) elif t_name == 'meth_replace': string_object = self.parse_node(node.children[0]) - pattern = str(node.children[1].children[0]) - repl = str(node.children[1].children[2]) + pattern = self.parse_node(node.children[1].children[0]) + repl = self.parse_node(node.children[1].children[2]) return j.ReplaceOperator(string_object, pattern, repl) + # methods - casting + elif t_name == 'meth_tostr': + inner = self.parse_node(node.children[0]) + return j.AsStringOperator(inner) + + # functions + elif t_name == 'func_parseint': + inner = self.parse_node(node.children[0]) + return j.AsIntOperator(inner) + else: - pass + raise NotImplementedError ## this should trigger warning message + + + - raise NotImplementedError diff --git a/janis_core/ingestion/cwl/expressions/parser.py b/janis_core/ingestion/cwl/expressions/parser.py index 0966bdbb0..cffe7b22d 100644 --- a/janis_core/ingestion/cwl/expressions/parser.py +++ b/janis_core/ingestion/cwl/expressions/parser.py @@ -8,38 +8,26 @@ with open(GRAMMAR_PATH) as fp: grammar = fp.read() -dataa = "$(inputs.sequences.split('/'))" -data0 = "$(self.location.split('/'))" -data1 = "$(self.location.split('/').slice(-1)[0])" -data2 = '$(self === "name" ? true : false)' -data3 = "$(self === 'name' ? true : false).fastq" -data4 = '$(self === "name" ? true : false).fastq$(inputs.index_name.ext)' -data5 = '$((inputs.index_name !== null) ? inputs.index_name : inputs.sequences.nameroot)' -data6 = '$(inputs.reads_1.basename).trimmed$(inputs.reads_1.nameext)' -data7 = "$(self.location.split('/').slice(-1)[0].split('.').slice(-1)[0])" +data1 = '${ return 100}' +data2 = '${ return(parseInt(runtime.ram/runtime.cores-100).toString() + "M") }' +data3 = """${ + if( inputs.output_name == null ){ + return inputs.bedgraph.basename; + } + else{ + return inputs.output_name; + } +}""" json_parser = Lark(grammar, start='the_text') -tree = json_parser.parse(dataa) -print(tree.pretty()) -tree = json_parser.parse(data0) -print(tree.pretty()) tree = json_parser.parse(data1) print(tree.pretty()) tree = json_parser.parse(data2) print(tree.pretty()) tree = json_parser.parse(data3) print(tree.pretty()) -tree = json_parser.parse(data4) -print(tree.pretty()) -tree = json_parser.parse(data5) -print(tree.pretty()) -tree = json_parser.parse(data6) -print(tree.pretty()) -tree = json_parser.parse(data7) -print(tree.pretty()) print() - diff --git a/janis_core/ingestion/cwl/parsing/tool.py b/janis_core/ingestion/cwl/parsing/tool.py index 3aa054bc6..bec2d7f4c 100644 --- a/janis_core/ingestion/cwl/parsing/tool.py +++ b/janis_core/ingestion/cwl/parsing/tool.py @@ -4,7 +4,7 @@ from typing import Any, Optional, Tuple from dataclasses import dataclass, field from abc import ABC, abstractmethod - +from functools import cached_property from janis_core import ToolInput, ToolArgument, ToolOutput, WildcardSelector, CommandToolBuilder, CommandTool, InputSelector from janis_core.types import File, Stdout, Stderr, Directory, DataType @@ -113,31 +113,19 @@ def get_memory(self, requirements: list[Any]) -> Optional[int]: for req in requirements: if isinstance(req, self.cwl_utils.ResourceRequirement): # maybe convert mebibytes to megabytes? - memory, success = parse_expression(req.ramMin or req.ramMax) - if not success: - msg = 'untranslated javascript expression in task MEM requirement' - self.error_msgs.append(msg) - return memory + return parse_expression(req.ramMin or req.ramMax, self.entity) return None def get_cpus(self, requirements: list[Any]) -> Optional[int]: for req in requirements: if isinstance(req, self.cwl_utils.ResourceRequirement): - cpus, success = parse_expression(req.coresMin) - if not success: - msg = 'untranslated javascript expression in task CPU requirement' - self.error_msgs.append(msg) - return cpus + return parse_expression(req.coresMin, self.entity) return None def get_time(self, requirements: list[Any]) -> Optional[int]: for req in requirements: if hasattr(req, 'timelimit') and isinstance(req, self.cwl_utils.ToolTimeLimit): - time, success = parse_expression(req.timelimit) - if not success: - msg = 'untranslated javascript expression in task TIME requirement' - self.error_msgs.append(msg) - return time + return parse_expression(req.timelimit, self.entity) return None def get_files_directories_to_create(self, requirements: list[Any]) -> Tuple[dict[str, Any], list[str | InputSelector]]: @@ -171,51 +159,43 @@ def get_env_vars(self, requirements: list[Any]) -> dict[str, Any]: for req in requirements: if isinstance(req, self.cwl_utils.EnvVarRequirement): for envdef in req.envDef: - # entry name - name_expr, success = parse_expression(envdef.envName) - if not success: - msg = 'untranslated javascript expression in environment variable name' - self.error_msgs.append(msg) - # entry - entry_expr, success = parse_expression(envdef.envValue) - if not success: - msg = 'untranslated javascript expression in environment variable value' - self.error_msgs.append(msg) - out[name_expr] = entry_expr - + name = parse_expression(envdef.envName, self.entity) + entry = parse_expression(envdef.envValue, self.entity) + out[name] = entry return out -@dataclass class InitialWorkDirRequirementParser: - cwl_utils: Any - clt: Any - req: Any - - is_expression_tool: bool = False - error_msgs: list[str] = field(default_factory=list) - - # want to calculate these fields - file_to_create: Optional[Tuple[str, str | InputSelector]] = None - directory_to_create: Optional[str | InputSelector] = None - FILE_CLASS_MATCHER = re.compile(r'[\'"]?class[\'"]?:.*?[\'"]File[\'"]') - DIRECTORY_CLASS_MATCHER = re.compile(r'[\'"]?class[\'"]?:.*?[\'"]Directory[\'"]') + def __init__(self, cwl_utils: Any, clt: Any, req: Any, is_expression_tool: bool=False) -> None: + self.cwl_utils = cwl_utils + self.clt = clt + self.req = req + self.is_expression_tool = is_expression_tool + + # resolving value + self.r_value, self.r_value_ok = parse_expression(self.value, self.clt) + + # resolving name + if self.name is not None: + self.r_name, self.r_name_ok = parse_expression(self.name, self.clt) + else: + self.r_name, self.r_name_ok = None, True + + # want to calculate these fields + file_to_create: Optional[Tuple[str, str | InputSelector]] = None + directory_to_create: Optional[str | InputSelector] = None - "File | Directory | Dirent | string | Expression" - # TODO improve this. can be smarter about error messages. - # eg file value can be resolved (InputSelector or str), but file name is expression. - # want to say: - # f'file required for runtime ({InputSelector.input_to_select}) is renamed before runtime using cwl / js: <js>{self.name}</js>. please address' + "File | Directory | Dirent | string | Expression" - @property + @cached_property def name(self) -> Optional[str]: name: Optional[str] = None if isinstance(self.req, self.cwl_utils.Dirent): name = self.req.entryname return name - - @property + + @cached_property def value(self) -> str: if isinstance(self.req, str): text: str = self.req @@ -224,71 +204,230 @@ def value(self) -> str: else: raise NotImplementedError return text - - @property - def is_probably_file(self) -> bool: - if self.value.startswith('$(') or self.value.startswith('${'): - if re.search(self.FILE_CLASS_MATCHER, self.value): - return True - else: - res, success = parse_expression(self.value) - if success: - # successfully parsed requirement value into janis - if isinstance(res, InputSelector): - for inp in self.clt.inputs: - name = get_id_entity(inp.id) - dtype, error_msgs = ingest_cwl_type(inp.type, cwl_utils=self.cwl_utils, secondaries=inp.secondaryFiles) - self.error_msgs += error_msgs - basetype = utils.get_base_type(dtype) - if name == res.input_to_select and isinstance(basetype, File): - return True + + @cached_property + def is_dirent(self) -> bool: + if isinstance(self.req, self.cwl_utils.Dirent): + return True return False - @property - def is_probably_directory(self) -> bool: - if self.value.startswith('$(') or self.value.startswith('${'): - if re.search(self.DIRECTORY_CLASS_MATCHER, self.value): + @cached_property + def is_file(self) -> bool: + if isinstance(self.req, str): + FILE_CLASS_MATCHER = re.compile(r'[\'"]?class[\'"]?:.*?[\'"]File[\'"]') + if re.search(FILE_CLASS_MATCHER, self.value): return True - else: - res, success = parse_expression(self.value) - if success: - # successfully parsed requirement value into janis - if isinstance(res, InputSelector): - for inp in self.clt.inputs: - name = get_id_entity(inp.id) - dtype, error_msgs = ingest_cwl_type(inp.type, cwl_utils=self.cwl_utils, secondaries=inp.secondaryFiles) - self.error_msgs += error_msgs - basetype = utils.get_base_type(dtype) - if name == res.input_to_select and isinstance(basetype, Directory): - return True return False - @property - def value_is_resolvable(self) -> bool: - _, success = parse_expression(self.value) - if success: - return True - return False - - @property - def name_is_resolvable(self) -> bool: - if self.name: - _, success = parse_expression(self.name) - if success: + @cached_property + def is_directory(self) -> bool: + if isinstance(self.req, str): + DIRECTORY_CLASS_MATCHER = re.compile(r'[\'"]?class[\'"]?:.*?[\'"]Directory[\'"]') + if re.search(DIRECTORY_CLASS_MATCHER, self.value): + return True + return False + + @cached_property + def is_expression(self) -> bool: + if isinstance(self.req, str): + if self.value.startswith('$(') or self.value.startswith('${'): return True return False - @property - def name_has_expression(self) -> bool: - if self.name: - if self.name.startswith('$(') or self.name.startswith('${'): + @cached_property + def is_string(self) -> bool: + if isinstance(self.req, str): + if not self.is_expression: return True return False + + "File | Directory | Dirent | string | Expression" + # Expression + if isinstance(self.req, str) and self.r_value_ok: + return 'Expression' + + # File object + elif isinstance(self.req, str): + FILE_CLASS_MATCHER = re.compile(r'[\'"]?class[\'"]?:.*?[\'"]File[\'"]') + if re.search(FILE_CLASS_MATCHER, self.value): + return 'File' + + # Directory object + elif isinstance(self.req, str): + DIRECTORY_CLASS_MATCHER = re.compile(r'[\'"]?class[\'"]?:.*?[\'"]Directory[\'"]') + if re.search(DIRECTORY_CLASS_MATCHER, self.value): + return 'Directory' + + + if self.r_value_ok: + if isinstance(self.r_value, InputSelector): + return 'File' + return 'string' + elif isinstance(self.req, self.cwl_utils.Dirent): + return 'Dirent' + else: + raise NotImplementedError + + + @cached_property + def get_file(self) -> Tuple[Any, bool]: + # Resolved Expression: InputSelector (File) + if self.r_value_ok: + if + + # Unresolved Expression + FILE_CLASS_MATCHER = re.compile(r'[\'"]?class[\'"]?:.*?[\'"]File[\'"]') + if re.search(FILE_CLASS_MATCHER, self.value): + pass + + # Dirent + + + # string + + """ + InitialWorkDirRequirement: + listing: + - entry: inputs.genome_folder + writable: true + + InitialWorkDirRequirement: + listing: + - entry: $(inputs.sequences) + + InitialWorkDirRequirement: + listing: + - entry: inputs.input_file + entryname: inputs.input_file.basename + writable: true + + InitialWorkDirRequirement: + listing: + - $(inputs.reference_index) + - $(inputs.reference_fasta) + - $(inputs.reads_index) + + InitialWorkDirRequirement: + listing: [ $(inputs.sequences) ] + + InitialWorkDirRequirement: + listing: + - entryname: param_file.txt + entry: |- + PeakListPath = $(inputs.PeakList.path) + IonizedPrecursorMass = $(inputs.IonizedPrecursorMass) + + InitialWorkDirRequirement: + listing: | + ${ return [ { "class": "Directory", + "listing": inputs.bins, + "basename": "jsons" } ]; } + + InitialWorkDirRequirement: + listing: | + ${ + var entry = "library_id,molecule_h5\n" + for (var i=0; i < inputs.molecule_info_h5.length; i++){ + entry += get_label(i) + "," + inputs.molecule_info_h5[i].path + "\n" + } + return [{ + "entry": entry, + "entryname": "metadata.csv" + }]; + } + """ + + + @cached_property + def entry_type(self) -> str: + if isinstance(self.req, str): + return 'string' + elif isinstance(self.req, self.cwl_utils.Dirent): + return 'Dirent' + else: + raise NotImplementedError + + @cached_property + def get_directory(self) -> Tuple[Any, bool]: + DIRECTORY_CLASS_MATCHER = re.compile(r'[\'"]?class[\'"]?:.*?[\'"]Directory[\'"]') + if re.search(DIRECTORY_CLASS_MATCHER, self.value): + pass + + # InputSelector -> Directory + # Expression + # string + # Dirent + return True + + + # @property + # def is_probably_file(self) -> bool: + # if self.r_value_ok: + # if + # if self.value.startswith('$(') or self.value.startswith('${'): + # if re.search(self.FILE_CLASS_MATCHER, self.value): + # return True + # else: + # res = parse_expression(self.value, self.clt) + # # successfully parsed requirement value into janis? + # if isinstance(res, InputSelector): + # for inp in self.clt.inputs: + # name = get_id_entity(inp.id) + # dtype, error_msgs = ingest_cwl_type(inp.type, cwl_utils=self.cwl_utils, secondaries=inp.secondaryFiles) + # self.error_msgs += error_msgs + # basetype = utils.get_base_type(dtype) + # if name == res.input_to_select and isinstance(basetype, File): + # return True + # return False + + # @property + # def is_probably_directory(self) -> bool: + # if self.value.startswith('$(') or self.value.startswith('${'): + # if re.search(self.DIRECTORY_CLASS_MATCHER, self.value): + # return True + # else: + # res = parse_expression(self.value, self.clt) + # # successfully parsed requirement value into janis + # if isinstance(res, InputSelector): + # for inp in self.clt.inputs: + # name = get_id_entity(inp.id) + # dtype, error_msgs = ingest_cwl_type(inp.type, cwl_utils=self.cwl_utils, secondaries=inp.secondaryFiles) + # self.error_msgs += error_msgs + # basetype = utils.get_base_type(dtype) + # if name == res.input_to_select and isinstance(basetype, Directory): + # return True + # return False + + # @property + # def value_is_resolvable(self) -> bool: + # _, success = parse_expression(self.value) + # if success: + # return True + # return False + + # @property + # def name_is_resolvable(self) -> bool: + # if self.name: + # _, success = parse_expression(self.name) + # if success: + # return True + # return False + + # @property + # def name_has_expression(self) -> bool: + # if self.name: + # if self.name.startswith('$(') or self.name.startswith('${'): + # return True + # return False + def parse(self) -> None: - if self.is_probably_file and self.is_probably_directory: + if self.is_file and self.is_directory: raise RuntimeError + if self.is_file: + + # error handling for names generated using expression if self.name_has_expression and self.is_probably_file: msg = f'file required for runtime generates name using cwl / js: <js>{self.name}</js>. please address' diff --git a/janis_core/messages/__init__.py b/janis_core/messages/__init__.py index d31ec65fe..b04998753 100644 --- a/janis_core/messages/__init__.py +++ b/janis_core/messages/__init__.py @@ -1,6 +1,7 @@ # logging +from .main import ErrorCategory from .main import configure_logging from .main import info_ingesting_tool from .main import info_ingesting_workflow diff --git a/janis_core/messages/logfile.py b/janis_core/messages/logfile.py index 40e9fe079..4ceaef67b 100644 --- a/janis_core/messages/logfile.py +++ b/janis_core/messages/logfile.py @@ -1,5 +1,5 @@ - +from typing import Optional from pathlib import Path from collections import defaultdict from dataclasses import dataclass @@ -8,25 +8,26 @@ @dataclass class LogLine: level: str - uuid: str + category: Optional[str] + uuid: Optional[str] message: str class LogFile: def __init__(self, filepath: str): self.filepath = filepath - self.messages: dict[str, list[LogLine]] = defaultdict(list) + self.lines: list[LogLine] = [] self.load() - def add(self, level: str, uuid: str, message: str) -> None: + def add(self, level: str, category: Optional[str], uuid: Optional[str], message: str) -> None: # add to file message = message.replace('\n', '') message = fr'{message}' with open(self.filepath, 'a') as fp: - fp.write(f'{level}\t{uuid}\t{message}\n') + fp.write(f'{level}\t{category}\t{uuid}\t{message}\n') # add to in-memory - logline = LogLine(level, uuid, message) - self.messages[uuid].append(logline) + logline = LogLine(level, category, uuid, message) + self.lines.append(logline) def load(self) -> None: # check file exists @@ -35,10 +36,11 @@ def load(self) -> None: path.touch() # load messages in file + self.lines = [] with open(self.filepath, 'r') as fp: for line in fp.readlines(): - level, uuid, message = line.strip('\n').split('\t') - logline = LogLine(level, uuid, message) - self.messages[uuid].append(logline) + level, category, uuid, message = line.strip('\n').split('\t') + logline = LogLine(level, category, uuid, message) + self.lines.append(logline) \ No newline at end of file diff --git a/janis_core/messages/main.py b/janis_core/messages/main.py index a3773429a..57126a214 100644 --- a/janis_core/messages/main.py +++ b/janis_core/messages/main.py @@ -2,6 +2,7 @@ from logging import getLogger, config from .logfile import LogFile +from .logfile import LogLine from typing import Optional @@ -9,7 +10,7 @@ import warnings import yaml from pathlib import Path - +from enum import Enum """ This file was built for ingest / translation message logging. @@ -44,12 +45,18 @@ """ - - # ------------- # configuration # ------------- +class ErrorCategory(Enum): + SCRIPT = 'script' + DATATYPE = 'datatype' + DATAFLOW = 'dataflow' + VERSION = 'version' + FALLBACK = 'fallback' + FATAL = 'fatal' + warnings.filterwarnings("ignore") WORK_DIR = (os.getcwd()) # the working directory where janis translate is run from @@ -85,42 +92,47 @@ def info_ingesting_tool(spec: str, name: str) -> None: logger = getLogger('console') logger.info(f'ingesting {spec} tool - "{name}"') - # ------- # to file # ------- -def _log_message(level: str, uuid: Optional[str], msg: str) -> None: +def _log_message(level: str, category: Optional[ErrorCategory], uuid: Optional[str], msg: str) -> None: logfile = LogFile(MESSAGE_LOG_PATH) # if no uuid provided, consider this a general message provided during ingestion / translation. # these messages can be shown to the user at the top of the main parsed file (ie the main workflow / tool), # or you could generate a file in the output folder for the user to show this info. if uuid is None: uuid = 'general' - logfile.add(level, uuid, msg) + if category is not None: + cat = category.value + logfile.add(level, cat, uuid, msg) def log_info(uuid: Optional[str], msg: str) -> None: """logs a message which is considered INFO to the logfile""" - _log_message('INFO', uuid, msg) + _log_message('INFO', None, uuid, msg) -def log_warning(uuid: Optional[str], msg: str) -> None: +def log_warning(uuid: str, msg: str) -> None: """logs a message which is considered a WARNING to the logfile""" - _log_message('WARNING', uuid, msg) + _log_message('WARNING', None, uuid, msg) -def log_error(uuid: Optional[str], msg: str) -> None: +def log_error(uuid: Optional[str], category: ErrorCategory, msg: str) -> None: """logs a message which is considered an ERROR to the logfile""" - _log_message('ERROR', uuid, msg) + _log_message('ERROR', category, uuid, msg) -def get_messages(uuid: str, level: Optional[str]=None) -> list[str]: - # get messages corresponding to this uuid from logfile +def get_messages(uuid: Optional[str]=None, level: Optional[str]=None) -> list[LogLine]: logfile = LogFile(MESSAGE_LOG_PATH) - loglines = logfile.messages[uuid] + loglines = logfile.lines + + # filter for specific entity + if uuid is not None: + loglines = [x for x in loglines if x.uuid == uuid] # filter for specific type of log message if 'level' supplied - valid_levels = ['INFO', 'WARNING', 'ERROR'] - if level and level in valid_levels: + if level is not None: + valid_levels = ['INFO', 'WARNING', 'ERROR'] + if level not in valid_levels: + raise RuntimeError loglines = [x for x in loglines if x.level == level] - messages = [l.message for l in loglines] - return messages + return loglines diff --git a/janis_core/operators/logical.py b/janis_core/operators/logical.py index d35f6ce36..204d3deda 100644 --- a/janis_core/operators/logical.py +++ b/janis_core/operators/logical.py @@ -77,10 +77,10 @@ def __init__(self, condition, value_if_true, value_if_false): @staticmethod def friendly_signature(): - return "(condition: Boolean, value_if_true: X, value_if_false: Y) -> Union[X,Y]" + return "(condition: Any, value_if_true: X, value_if_false: Y) -> Union[X,Y]" def argtypes(self) -> List[DataType]: - return [Boolean, AnyType, AnyType] + return [AnyType, AnyType, AnyType] def returntype(self): args = [] @@ -144,9 +144,9 @@ def to_cwl(self, unwrap_operator, *args): return unwrap_operator(self.args[0]) def to_nextflow(self, unwrap_operator, *args): - raise NotImplementedError( - f"There is no Nextflow translation for {self.__class__.__name__}" - ) + # depends on the datatype? + obj = unwrap_operator(self.args[0]) + return f'assert {obj} != null' def returntype(self): from copy import copy @@ -162,6 +162,48 @@ def returntype(self): return ret +class GroupOperator(Operator): + @staticmethod + def friendly_signature(): + return "(X) -> (X)" + + def argtypes(self) -> List[DataType]: + return [AnyType] + + def returntype(self): + arg = self.args[0] + if isinstance(arg, Selector): + return get_instantiated_type(arg.returntype()) + else: + return get_instantiated_type(arg) + + def __str__(self): + arg = self.args[0] + return f"({arg})" + + def __repr__(self): + return str(self) + + def evaluate(self, inputs): + return self.evaluate_arg(self.args[0], inputs) + + def to_wdl(self, unwrap_operator, *args): + arg = unwrap_operator(self.args[0]) + return f"({arg})" + + def to_cwl(self, unwrap_operator, *args): + arg = unwrap_operator(self.args[0]) + return f"({arg})" + + def to_nextflow(self, unwrap_operator, *args): + arg = unwrap_operator(self.args[0]) + return f"({arg})" + + def to_python(self, unwrap_operator, *args): + arg = unwrap_operator(self.args[0]) + return f"({arg})" + + # Other single value operators diff --git a/janis_core/tests/test_ingestion_cwl.py b/janis_core/tests/test_ingestion_cwl.py index 350f63af2..4702fe46b 100644 --- a/janis_core/tests/test_ingestion_cwl.py +++ b/janis_core/tests/test_ingestion_cwl.py @@ -5,25 +5,56 @@ from janis_core import ( InputSelector, + CommandToolBuilder, + ToolInput, +) + +from janis_core.operators.stringformatter import StringFormatter +from janis_core.operators.standard import ( + ReadContents, BasenameOperator, SplitOperator, FileSizeOperator, - ReadContents, - WildcardSelector, - StringFormatter, - InputNodeSelector, NamerootOperator, NameextOperator, DirnameOperator, - CommandToolBuilder, JoinOperator, LengthOperator, FlattenOperator, FirstOperator, SliceOperator, ReplaceOperator, +) +from janis_core.operators.operator import ( IndexOperator, - ToolInput, +) +from janis_core.operators.selectors import ( + WildcardSelector, + InputNodeSelector, + CpuSelector, + MemorySelector, +) +from janis_core.operators.logical import ( + IsDefined, + If, + AssertNotNull, + GroupOperator, + NotOperator, + AndOperator, + OrOperator, + EqualityOperator, + InequalityOperator, + GtOperator, + GteOperator, + LtOperator, + LteOperator, + AddOperator, + SubtractOperator, + MultiplyOperator, + DivideOperator, + FloorOperator, + CeilOperator, + RoundOperator, ) from janis_core.ingestion.cwl.loading import load_cwl_document @@ -675,24 +706,8 @@ def test_load_cwl_version(self): class TestParseExpression(unittest.TestCase): - """ - $(self.dirname)/$(self.nameroot) # just weird? - $(self.location.split('/')) - $(self.location.split('/').slice(-1)[0]) - $(self.path.split('.').slice(0,-2).join('.')) - $(self === "name" ? true : false) - $(self === 'name' ? true : false).fastq - $(self === "name" ? true : false).fastq$(inputs.index_name.ext) - $((inputs.index_name !== null) ? inputs.index_name : inputs.sequences.nameroot) - $(inputs.reads_1.basename).trimmed$(inputs.reads_1.nameext) - $(self.location.split('/').slice(-1)[0].split('.').slice(-1)[0]) - $(inputs.graph.nameroot).$(self) # wtf? - $(default_output_filename(".bw")) # defined function call - $('> ' + 'stats.log') # string concatenation - $('> ' + inputs.index_base_name + '.log') # string concatenation - - """ + # objects def test_input(self): expr = "$(inputs.sequences)" result, success = parse_expression(expr) @@ -705,11 +720,152 @@ def test_input(self): self.assertEqual("reads_1", result.input_to_select) def test_self(self): - raise NotImplementedError + # should return None, False. + # can't do much about CWL obj.self. + expr = "$(self.location.split('/'))" + result, success = parse_expression(expr) + self.assertIsNone(result) + self.assertFalse(success) - def test_runtime(self): - raise NotImplementedError + # runtime + def test_runtime_outdir(self): + expr = "$(runtime.outdir)" + result, success = parse_expression(expr) + self.assertIsInstance(result, str) + self.assertEqual(result, '.') + + def test_runtime_tmpdir(self): + expr = "$(runtime.tmpdir)" + result, success = parse_expression(expr) + self.assertIsInstance(result, str) + self.assertEqual(result, '.') + + def test_runtime_outdir_size(self): + expr = "$(runtime.outdirSize)" + result, success = parse_expression(expr) + self.assertIsInstance(result, int) + self.assertEqual(result, 1024) + + def test_runtime_tmpdir_size(self): + expr = "$(runtime.tmpdirSize)" + result, success = parse_expression(expr) + self.assertIsInstance(result, int) + self.assertEqual(result, 1024) + + def test_runtime_cores(self): + expr = "$(runtime.cores)" + result, success = parse_expression(expr) + self.assertIsInstance(result, CpuSelector) + + def test_runtime_ram(self): + expr = "$(runtime.ram)" + result, success = parse_expression(expr) + self.assertIsInstance(result, MemorySelector) + + # logical - misc + def test_if(self): + expr = '$(inputs.index_name !== null ? inputs.index_name : inputs.sequences.nameroot)' + result, success = parse_expression(expr) + self.assertIsInstance(result, If) + self.assertIsInstance(result.args[0], InequalityOperator) + self.assertIsInstance(result.args[0].args[0], InputSelector) + self.assertIsNone(result.args[0].args[1]) + self.assertIsInstance(result.args[1], InputSelector) + self.assertIsInstance(result.args[2], NamerootOperator) + self.assertIsInstance(result.args[2].args[0], InputSelector) + + def test_group(self): + expr = '$((1 + 2))' + result, success = parse_expression(expr) + self.assertIsInstance(result, GroupOperator) + self.assertIsInstance(result.args[0], AddOperator) + + # logical - two value + def test_and(self): + expr = '$(inputs.filelist && inputs.filelist_mates)' + result, success = parse_expression(expr) + self.assertIsInstance(result, AndOperator) + + def test_or(self): + expr = '$(inputs.filelist || inputs.filelist_mates)' + result, success = parse_expression(expr) + self.assertIsInstance(result, OrOperator) + + def test_eq(self): + expr = '$(inputs.depth == "-bg")' + result, success = parse_expression(expr) + self.assertIsInstance(result, EqualityOperator) + + expr = '$(inputs.depth === "-bg")' + result, success = parse_expression(expr) + self.assertIsInstance(result, EqualityOperator) + + def test_ineq(self): + expr = '$(inputs.depth != "-bg")' + result, success = parse_expression(expr) + self.assertIsInstance(result, InequalityOperator) + + expr = '$(inputs.depth !== "-bg")' + result, success = parse_expression(expr) + self.assertIsInstance(result, InequalityOperator) + + def test_gte(self): + expr = '$(inputs.depth >= 20)' + result, success = parse_expression(expr) + self.assertIsInstance(result, GteOperator) + + def test_gt(self): + expr = '$(inputs.depth > 20)' + result, success = parse_expression(expr) + self.assertIsInstance(result, GtOperator) + + def test_lte(self): + expr = '$(inputs.depth <= 20)' + result, success = parse_expression(expr) + self.assertIsInstance(result, LteOperator) + + def test_lt(self): + expr = '$(inputs.depth < 20)' + result, success = parse_expression(expr) + self.assertIsInstance(result, LtOperator) + + def test_add(self): + expr = '$(1 + 2)' + result, success = parse_expression(expr) + self.assertIsInstance(result, AddOperator) + + def test_sub(self): + expr = '$(1 - 2)' + result, success = parse_expression(expr) + self.assertIsInstance(result, SubtractOperator) + def test_mul(self): + expr = '$(1 * 2)' + result, success = parse_expression(expr) + self.assertIsInstance(result, MultiplyOperator) + + def test_div(self): + expr = '$(1 / 2)' + result, success = parse_expression(expr) + self.assertIsInstance(result, DivideOperator) + + # logical - math + def test_floor(self): + expr = '$(Math.floor(2.3))' + result, success = parse_expression(expr) + self.assertIsInstance(result, FloorOperator) + + def test_ceil(self): + expr = '$(Math.ceil(2.3))' + result, success = parse_expression(expr) + self.assertIsInstance(result, CeilOperator) + + def test_round(self): + expr = '$(Math.round(2.3))' + result, success = parse_expression(expr) + self.assertIsInstance(result, RoundOperator) + + # attributes - file def test_file_basename(self): expr = "$(inputs.reads_1.basename)" result, success = parse_expression(expr) @@ -746,6 +902,7 @@ def test_file_contents(self): self.assertIsInstance(result, ReadContents) self.assertIsInstance(result.args[0], InputSelector) + # methods - array def test_arr_join(self): expr = "$(inputs.reads.join('.'))" result, success = parse_expression(expr) @@ -792,6 +949,7 @@ def test_arr_index(self): self.assertIsInstance(result.args[1], int) self.assertEqual(result.args[1], 1) + # methods - string def test_str_split(self): expr = "$(inputs.sequences.split('/'))" result, success = parse_expression(expr) @@ -810,100 +968,123 @@ def test_str_replace(self): self.assertIsInstance(result.args[2], str) self.assertEqual(result.args[2], "''") - def test_ternary(self): - # TODO ADD TO JANIS_CORE - raise NotImplementedError + # complex cases + def test_complex_stringformatter(self): + expr = "$(inputs.reads_1.basename).trimmed$(inputs.reads_1.nameext)" + result, success = parse_expression(expr) + self.assertIsInstance(result, StringFormatter) + self.assertEqual(result._format, '{token1}.trimmed{token2}') + self.assertIsInstance(result.kwargs['token1'], BasenameOperator) + self.assertIsInstance(result.kwargs['token2'], NameextOperator) + + def test_complex_methodchain(self): + expr = "$(inputs.index.split('/').slice(-1)[0].split('.').slice(-1)[0])" + result, success = parse_expression(expr) + self.assertIsInstance(result, IndexOperator) + self.assertIsInstance(result.args[0], SliceOperator) + self.assertEqual(result.args[1], 0) + result = result.args[0] + self.assertIsInstance(result.args[0], SplitOperator) + self.assertEqual(result.args[1], -1) + self.assertEqual(result.args[2], None) + result = result.args[0] + self.assertIsInstance(result.args[0], IndexOperator) + self.assertEqual(result.args[1], "'.'") + result = result.args[0] + self.assertEqual(result.args[1], 0) + self.assertIsInstance(result.args[0], SliceOperator) + result = result.args[0] + self.assertEqual(result.args[1], -1) + self.assertEqual(result.args[2], None) + self.assertIsInstance(result.args[0], SplitOperator) + result = result.args[0] + self.assertEqual(result.args[1], "'/'") + self.assertIsInstance(result.args[0], InputSelector) + result = result.args[0] - def test_expression(self): - raise NotImplementedError + def test_complex_concat1(self): + expr = "$('> ' + 'stats.log')" + result, success = parse_expression(expr) + self.assertIsInstance(result, AddOperator) + self.assertEqual(result.args[0], "'> '") + self.assertEqual(result.args[1], "'stats.log'") - def test_complex1(self): - raise NotImplementedError - - def test_complex2(self): - raise NotImplementedError - - - -class TestFromCwlExpressionsDEPRECATED(unittest.TestCase): - - def test_number(self): + def test_complex_concat2(self): + expr = "$('> ' + inputs.index_base_name + '.log')" + result, success = parse_expression(expr) + self.assertIsInstance(result, AddOperator) + self.assertIsInstance(result.args[0], AddOperator) + self.assertEqual(result.args[1], "'.log'") + result = result.args[0] + self.assertIsInstance(result, AddOperator) + self.assertEqual(result.args[0], "'> '") + self.assertIsInstance(result.args[1], InputSelector) + + def test_complex_math1(self): + expr = "$(Math.ceil(inputs.target.size/(1024*1024*1024) + 20))" + result, success = parse_expression(expr) + self.assertIsInstance(result, CeilOperator) + self.assertIsInstance(result.args[0], AddOperator) + result = result.args[0] + self.assertIsInstance(result.args[0], DivideOperator) + self.assertEqual(result.args[1], 20) + result = result.args[0] + self.assertIsInstance(result.args[0], FileSizeOperator) + self.assertIsInstance(result.args[1], GroupOperator) + self.assertIsInstance(result.args[0].args[0], InputSelector) + result = result.args[1].args[0] + self.assertIsInstance(result.args[0], MultiplyOperator) + self.assertEqual(result.args[1], 1024) + result = result.args[0] + self.assertEqual(result.args[0], 1024) + self.assertEqual(result.args[1], 1024) + + # javascript blocks + def test_block_number(self): expr = "${return 16 }" result, success = parse_expression(expr) self.assertEqual(16, result) - def test_number_with_semicolon(self): + def test_block_number_with_semicolon(self): expr = "${return 16;}" result, success = parse_expression(expr) self.assertEqual(16, result) - def test_number_with_spaces(self): + def test_block_number_with_spaces(self): expr = "${ return 80000 }" result, success = parse_expression(expr) self.assertEqual(80000, result) - def test_string(self): + def test_block_string(self): expr = '${ return "over 80000" }' result, success = parse_expression(expr) - self.assertEqual("over 80000", result) - - def test_input_selector(self): - expr = "$(inputs.my_input)" - result, success = parse_expression(expr) - self.assertIsInstance(result, InputSelector) - self.assertEqual("my_input", result.input_to_select) - - def test_input_selector_with_basename(self): - expr = "$(inputs.my_input.basename)" - result, success = parse_expression(expr) - self.assertIsInstance(result, BasenameOperator) - self.assertIsInstance(result.args[0], InputSelector) - self.assertEqual("my_input", result.args[0].input_to_select) - - def test_input_selector_with_filesize(self): - expr = "$(inputs.my_input.size)" - result, success = parse_expression(expr) - self.assertIsInstance(result, FileSizeOperator) - self.assertIsInstance(result.args[0], InputSelector) - self.assertEqual("my_input", result.args[0].input_to_select) - - def test_input_selector_with_contents(self): - expr = "$(inputs.my_input.contents)" + self.assertEqual('"over 80000"', result) + + def test_block_if(self): + expr = """${ + if( inputs.output_name == null ){ + return inputs.bedgraph.basename; + } + else{ + return inputs.output_name; + } +}""" result, success = parse_expression(expr) - self.assertIsInstance(result, ReadContents) - self.assertIsInstance(result.args[0], InputSelector) - self.assertEqual("my_input", result.args[0].input_to_select) - - def test_runtime_outdir(self): - expr = "$(runtime.outdir)" - result, success = parse_expression(expr) - self.assertTrue(success) - self.assertEquals(result, '.') - - def test_composite_1(self): - expr = "$(runtime.outdir)/$(inputs.bam.basename)" - result, success = parse_expression(expr) - self.assertTrue(success) - self.assertIsInstance(result, BasenameOperator) - self.assertIsInstance(result.args[0], InputSelector) - self.assertEqual(result.args[0].input_to_select, 'bam') + self.assertIsInstance(result, If) + self.assertIsInstance(result.args[0], GroupOperator) + cond_check = result.args[0].args[0] + cond_true = result.args[1] + cond_false = result.args[2] + self.assertIsInstance(cond_check, EqualityOperator) + self.assertIsInstance(cond_check.args[0], InputSelector) + self.assertIsNone(cond_check.args[1]) + self.assertIsInstance(cond_true, BasenameOperator) + self.assertIsInstance(cond_false, InputSelector) - def test_composite_2(self): - expr = "$(inputs.bam.basename).bai" + def test_block_complex(self): + expr = '${ return(parseInt(runtime.ram/runtime.cores-100).toString() + "M") }' result, success = parse_expression(expr) - self.assertTrue(success) - self.assertIsInstance(result, StringFormatter) - self.assertEqual(result._format, "{JANIS_CWL_TOKEN_1}.bai") - self.assertIsInstance(result.kwargs['JANIS_CWL_TOKEN_1'], BasenameOperator) - self.assertIsInstance(result.kwargs['JANIS_CWL_TOKEN_1'].args[0], InputSelector) - self.assertEqual(result.kwargs['JANIS_CWL_TOKEN_1'].args[0].input_to_select, "bam") - - def test_composite_3(self): - expr = "$(runtime.outdir)/$(inputs.bam.nameroot).bai" - result, success = parse_expression(expr) - self.assertTrue(success) - self.assertIsInstance(result, StringFormatter) - self.assertEqual(result._format, "{JANIS_CWL_TOKEN_1}.bai") - self.assertIsInstance(result.kwargs['JANIS_CWL_TOKEN_1'], NamerootOperator) - self.assertIsInstance(result.kwargs['JANIS_CWL_TOKEN_1'].args[0], InputSelector) - self.assertEqual(result.kwargs['JANIS_CWL_TOKEN_1'].args[0].input_to_select, "bam") + self.assertIsInstance(result, AddOperator) + expected = '(str(int(((inputs.runtime_memory / inputs.runtime_cpu) - 100))) + "M")' + actual = str(result) + self.assertEqual(actual, expected) diff --git a/notes.txt b/notes.txt index a81bb97ff..2fca28f89 100644 --- a/notes.txt +++ b/notes.txt @@ -1,5 +1,26 @@ +--------------------- +--- CWL JS PARSER --- +--------------------- + +$(self.dirname)/$(self.nameroot) # just weird? +$(self.location.split('/')) +$(self.location.split('/').slice(-1)[0]) +$(self.path.split('.').slice(0,-2).join('.')) +$(self === "name" ? true : false) +$(self === 'name' ? true : false).fastq +$(self === "name" ? true : false).fastq$(inputs.index_name.ext) +$(inputs.graph.nameroot).$(self) # wtf? +$(default_output_filename(".bw")) # defined function call + +messages +- triggered by: parser exceptions +- handled by: replace with '__TOKEN1__' & user message + +translators +- ensure correct unwrapping with new format. + ------------------ --- CWL BOOFED --- ------------------ From 4d5c6ea3d4a306274c55d5a495682ab63d5156d1 Mon Sep 17 00:00:00 2001 From: Grace Hall <graceavahall@gmail.com> Date: Wed, 1 Nov 2023 20:54:58 +1100 Subject: [PATCH 12/32] checkpoint before possible scuffed work --- janis_core/graph/steptaginput.py | 11 +- janis_core/ingestion/cwl/expressions/main.py | 68 +- janis_core/ingestion/cwl/loading.py | 3 +- janis_core/ingestion/cwl/main.py | 36 +- janis_core/ingestion/cwl/parsing/tool.py | 1018 +++++++---------- janis_core/ingestion/cwl/parsing/workflow.py | 163 ++- janis_core/ingestion/cwl/types.py | 167 ++- janis_core/ingestion/wdl/parsing/types.py | 9 +- janis_core/messages/__init__.py | 12 +- janis_core/messages/enums.py | 16 + janis_core/messages/logfile.py | 57 +- janis_core/messages/main.py | 62 +- janis_core/settings/ingest/general.py | 2 +- .../cwl/tools/requirements/BWA-Mem2-index.cwl | 45 + .../requirements/bismark_prepare_genome.cwl | 75 ++ .../cwl/tools/requirements/bzip2_compress.cwl | 94 ++ .../tools/requirements/cellranger-aggr.cwl | 252 ++++ .../requirements/component_segmentation.cwl | 63 + janis_core/tests/test_ingestion_cwl.py | 547 +++++---- janis_core/translations/wdl/main.py | 4 +- janis_core/workflow/workflow.py | 15 +- notes.txt | 92 +- 22 files changed, 1724 insertions(+), 1087 deletions(-) create mode 100644 janis_core/messages/enums.py create mode 100755 janis_core/tests/data/cwl/tools/requirements/BWA-Mem2-index.cwl create mode 100755 janis_core/tests/data/cwl/tools/requirements/bismark_prepare_genome.cwl create mode 100755 janis_core/tests/data/cwl/tools/requirements/bzip2_compress.cwl create mode 100755 janis_core/tests/data/cwl/tools/requirements/cellranger-aggr.cwl create mode 100755 janis_core/tests/data/cwl/tools/requirements/component_segmentation.cwl diff --git a/janis_core/graph/steptaginput.py b/janis_core/graph/steptaginput.py index 60c14c3fb..4c528cfa1 100644 --- a/janis_core/graph/steptaginput.py +++ b/janis_core/graph/steptaginput.py @@ -8,6 +8,7 @@ from janis_core.utils.logger import Logger from janis_core import settings from janis_core.messages import log_warning +from janis_core.messages import ErrorCategory from uuid import uuid4 @@ -45,7 +46,7 @@ def validate_tags(self): if self.ftag not in self.finish.inputs(): if settings.graph.ALLOW_UNKNOWN_SOURCE: msg = "Could not connect this input to its data source" - log_warning(self.uuid, msg) + log_warning(self.uuid, msg, ErrorCategory.PLUMBING) else: raise Exception( f"Could not find the tag '{self.ftag}' in the outputs of '{self.finish.id()}': {list(self.finish.inputs().keys())}" @@ -69,7 +70,7 @@ def check_types(self): if not stype.is_array(): if settings.graph.ALLOW_NON_ARRAY_SCATTER_INPUT: msg = f"This task is supposed to run in parallel across this input ({ftoolin.id()}), but the data source is not an array." - log_warning(self.uuid, msg) + log_warning(self.uuid, msg, ErrorCategory.PLUMBING) else: raise Exception( f"Scatter was required for '{operator} → '{self.finish.id()}.{self.ftag}' but " @@ -89,7 +90,7 @@ def check_types(self): if not self.compatible_types: if settings.graph.ALLOW_INCOMPATIBLE_TYPES: msg = f"The data source for this input is a {stype.id()}, but the input is a {ftoolin.intype.id()}" - log_warning(self.uuid, msg) + log_warning(self.uuid, msg, ErrorCategory.DATATYPE) else: s = str(self.source) f = full_dot(self.finish, self.ftag) @@ -145,7 +146,7 @@ def add_source(self, operator: Selector, should_scatter: Optional[bool]=None) -> if not stype.is_array(): if settings.graph.ALLOW_NON_ARRAY_SCATTER_INPUT: msg = f"This task is supposed to run in parallel across this input ({tinput.id()}), but the data source is not an array." - log_warning(self.uuid, msg) + log_warning(self.uuid, msg, ErrorCategory.PLUMBING) else: raise Exception( f"Scatter was required for '{operator} → '{self.finish.id()}.{self.ftag}' but " @@ -159,7 +160,7 @@ def add_source(self, operator: Selector, should_scatter: Optional[bool]=None) -> if not ftype.is_array(): if settings.graph.ALLOW_INCORRECT_NUMBER_OF_SOURCES: msg = "This input has multiple data sources, but should only have one (it is not an array)." - log_warning(self.uuid, msg) + log_warning(self.uuid, msg, ErrorCategory.PLUMBING) else: raise Exception( f"Adding multiple inputs to '{self.finish.id()}' " diff --git a/janis_core/ingestion/cwl/expressions/main.py b/janis_core/ingestion/cwl/expressions/main.py index 108684f9f..e8484c0b2 100644 --- a/janis_core/ingestion/cwl/expressions/main.py +++ b/janis_core/ingestion/cwl/expressions/main.py @@ -4,24 +4,64 @@ from lark import Lark from lark import Tree from lark import Token -from typing import Tuple, Any +from typing import Tuple, Any, Optional +import regex as re import janis_core as j from janis_core.messages import log_error -from janis_core.messages import get_messages +from janis_core.messages import load_loglines +from janis_core.messages import LogLine from janis_core.messages import ErrorCategory GRAMMAR_PATH = f'{os.path.dirname(os.path.abspath(__file__))}/grammar.ebnf' -def parse_expression(expr: str, entity: j.CommandToolBuilder | j.WorkflowBuilder) -> Any: - result, success = ExpressionParser().parse(expr) - if not success: - messages = get_messages(entity.id(), level='ERROR') - messages = [x for x in messages if x.category == ErrorCategory.SCRIPT] - new_token = f'__TOKEN{len(messages) + 1}__' - msg = f'{new_token} = "{expr}"' - log_error(entity.id(), ErrorCategory.SCRIPT, msg) - return new_token, False - return result, success +def parse_expression(expr: str, tool_uuid: str, context: str='clt') -> Any: + if expr is None: + return None, True + + elif not isinstance(expr, str): + expr = str(expr) + + # no '$' wrapping + if not expr.startswith('$(') and not expr.startswith('${'): + new_expr = f'$({expr})' + result, success = ExpressionParser(context).parse(new_expr) + + # is expression + if success: + return result, True + # not expression + else: + return expr, True + + # has '$' wrapping + else: + result, success = ExpressionParser(context).parse(expr) + + # successful parse + if success: + return result, True + + # unsuccessful parse + # expr already has token + loglines = load_loglines(category=ErrorCategory.SCRIPT, tool_uuid=tool_uuid) + token = get_token_for_expr(expr, loglines) + if token: + return token, False + + # expr needs new token + token = f'__TOKEN{len(loglines) + 1}__' + msg = f'{token} = "{expr}"' + log_error(tool_uuid, msg, ErrorCategory.SCRIPT) + return token, False + +def get_token_for_expr(expr: str, loglines: list[LogLine]) -> Optional[str]: + token_p = r'__TOKEN\d+__' + for line in loglines: + if re.match(token_p, line.message): + token, expr = line.message.split(' = ', 1) + if expr.strip('"') == expr: + return token + return None class ExpressionParser: file_attr_map = { @@ -60,6 +100,10 @@ class ExpressionParser: with open(GRAMMAR_PATH) as fp: grammar = fp.read() parser = Lark(grammar, start='the_text') + + def __init__(self, context: str) -> None: + assert context in ['clt', 'wf'] + self.context = context def parse(self, expr: str) -> Tuple[Any, bool]: try: diff --git a/janis_core/ingestion/cwl/loading.py b/janis_core/ingestion/cwl/loading.py index 5fdeb8082..9f5cf744b 100644 --- a/janis_core/ingestion/cwl/loading.py +++ b/janis_core/ingestion/cwl/loading.py @@ -3,6 +3,7 @@ from typing import Any, Optional from janis_core import settings from janis_core.messages import log_warning +from janis_core.messages import ErrorCategory from .preprocessing import convert_cwl_types_to_python from .preprocessing import handle_inline_cltool_identifiers @@ -26,7 +27,7 @@ def load_cwl_version(doc: str) -> str: raise Exception(f"Couldn't find cwlVersion in tool {doc}") else: msg = f'no cwl version was specified in {doc}. fell back to cwl v1.2 for ingestion.' - log_warning(uuid=None, msg=msg) + log_warning(tool_uuid='loading error', msg=msg, category=ErrorCategory.VERSION, subsection=None) return DEFAULT_PARSER_VERSION # return version diff --git a/janis_core/ingestion/cwl/main.py b/janis_core/ingestion/cwl/main.py index 0821b99cb..483c064dc 100755 --- a/janis_core/ingestion/cwl/main.py +++ b/janis_core/ingestion/cwl/main.py @@ -12,10 +12,10 @@ from cwl_utils.parser.cwl_v1_2 import CommandLineTool as CommandLineTool_1_2 CommandLineTool = CommandLineTool_1_0 | CommandLineTool_1_1 | CommandLineTool_1_2 - from janis_core.workflow.workflow import StepNode, OutputNode from janis_core.utils.errors import UnsupportedError from janis_core.messages import log_warning +from janis_core.messages import ErrorCategory from .identifiers import get_id_filename from .identifiers import get_id_entity @@ -30,7 +30,7 @@ from .parsing.workflow import WorkflowInputParser from .parsing.workflow import WorkflowOutputParser from .parsing.workflow import WorkflowStepInputsParser -from .parsing.workflow import WorkflowStepScatterParser +from .parsing.workflow import WorkflowStepAttributesParser @@ -84,6 +84,7 @@ def ingest(self, cwl_entity: Any) -> j.Tool: ) def ingest_workflow(self, workflow: Any): + # TODO: currently no error handling here. identifier = get_id_filename(workflow.id) wf = j.WorkflowBuilder( @@ -101,27 +102,29 @@ def ingest_workflow(self, workflow: Any): # second step ingest pass for step in workflow.steps: - self.ingest_workflow_step_scatter(wf, step) + self.ingest_workflow_step_attributes(wf, step) # third step ingest pass for step in workflow.steps: self.ingest_workflow_step_inputs(wf, step) - + for out in workflow.outputs: self.ingest_workflow_output(wf, out) return wf def ingest_workflow_input(self, wf: j.Workflow, inp: Any) -> j.InputNodeSelector: - parser = WorkflowInputParser(cwl_utils=self.cwl_utils, entity=inp, wf=wf) + parser = WorkflowInputParser(cwl_utils=self.cwl_utils, entity=inp, wf=wf, tool_uuid=wf.uuid) return parser.parse() def ingest_workflow_output(self, wf: j.Workflow, out: Any) -> OutputNode: - parser = WorkflowOutputParser(cwl_utils=self.cwl_utils, entity=out, wf=wf) + parser = WorkflowOutputParser(cwl_utils=self.cwl_utils, entity=out, wf=wf, tool_uuid=wf.uuid) return parser.parse() def ingest_workflow_step(self, wf: j.Workflow, cwlstp: Any) -> StepNode: - + tool_uuid = wf.uuid # TODO error handling + step_identifier = get_id_entity(cwlstp.id) + if isinstance(cwlstp.run, (self.cwl_utils.CommandLineTool, self.cwl_utils.Workflow)): tool = self.ingest(cwlstp.run) else: @@ -130,7 +133,6 @@ def ingest_workflow_step(self, wf: j.Workflow, cwlstp: Any) -> StepNode: # if _foreach is not None: # wf.has_scatter = True - step_identifier = get_id_entity(cwlstp.id) return wf.step( identifier=step_identifier, tool=tool, @@ -138,19 +140,23 @@ def ingest_workflow_step(self, wf: j.Workflow, cwlstp: Any) -> StepNode: ignore_missing=True ) - def ingest_workflow_step_scatter(self, wf: j.Workflow, cwlstp: Any) -> None: + def ingest_workflow_step_attributes(self, wf: j.Workflow, cwlstp: Any) -> None: step_identifier = get_id_entity(cwlstp.id) jstep = wf.step_nodes[step_identifier] - parser = WorkflowStepScatterParser(cwl_utils=self.cwl_utils, entity=cwlstp, wf=wf, uuid=jstep.uuid) - scatter = parser.parse() + parser = WorkflowStepAttributesParser(cwl_utils=self.cwl_utils, entity=cwlstp, wf=wf, tool_uuid=wf.uuid) + parser.parse() - if scatter is not None: - jstep.scatter = scatter + if parser.scatter is not None: + jstep.scatter = parser.scatter + wf.has_scatter = True + + if parser.when is not None: + jstep.scatter = parser.scatter wf.has_scatter = True def ingest_workflow_step_inputs(self, wf: j.Workflow, cwlstp: Any) -> None: - parser = WorkflowStepInputsParser(cwl_utils=self.cwl_utils, entity=cwlstp, wf=wf) + parser = WorkflowStepInputsParser(cwl_utils=self.cwl_utils, entity=cwlstp, wf=wf, tool_uuid=wf.uuid) inputs_dict = parser.parse() step_identifier = get_id_entity(cwlstp.id) @@ -170,7 +176,7 @@ def ingest_expression_tool(self, etool: Any) -> j.CommandTool: clt = self.parse_etool_to_cltool(etool) tool = self.ingest_command_line_tool(clt, is_expression_tool=True) msg = 'Translation of CWL ExpressionTools is currently an experimental feature of janis translate' - log_warning(tool.uuid, msg) + log_warning(tool.uuid, msg, ErrorCategory.EXPERIMENTAL) return tool def parse_etool_to_cltool(self, etool: Any) -> Any: diff --git a/janis_core/ingestion/cwl/parsing/tool.py b/janis_core/ingestion/cwl/parsing/tool.py index bec2d7f4c..ebddf8602 100644 --- a/janis_core/ingestion/cwl/parsing/tool.py +++ b/janis_core/ingestion/cwl/parsing/tool.py @@ -2,15 +2,15 @@ import re import copy from typing import Any, Optional, Tuple -from dataclasses import dataclass, field +from dataclasses import dataclass from abc import ABC, abstractmethod from functools import cached_property -from janis_core import ToolInput, ToolArgument, ToolOutput, WildcardSelector, CommandToolBuilder, CommandTool, InputSelector +from janis_core import ToolInput, ToolArgument, ToolOutput, WildcardSelector, CommandToolBuilder, CommandTool, Selector from janis_core.types import File, Stdout, Stderr, Directory, DataType from janis_core import settings -from janis_core.messages import log_warning -from janis_core import translation_utils as utils +from janis_core.messages import log_error +from janis_core.messages import ErrorCategory from ..types import ingest_cwl_type from ..identifiers import get_id_entity @@ -19,15 +19,12 @@ @dataclass -class CLTEntityParser(ABC): +class CLTParser: cwl_utils: Any clt: Any entity: Any is_expression_tool: bool = False success: bool = False - uuid: Optional[str] = None - error_msgs: list[str] = field(default_factory=list) - failure_message: str = '' def parse(self) -> Any: # normal mode @@ -43,15 +40,229 @@ def parse(self) -> Any: j_entity = self.do_parse() self.success = True - self.log_messages() return j_entity - def log_messages(self) -> None: - if self.success == False: - self.error_msgs.append(self.failure_message) + def fallback(self) -> CommandTool: + # inputs, arguments, outputs, requirements have fallbacks. + # error must have occured with other clt fields (io streams, base command, doc etc). + + identifier = get_id_filename(self.entity.id) # this does not have a fallback. really hope no errors here :/ + jtool = CommandToolBuilder( + tool=identifier, + base_command=self.entity.baseCommand, + inputs=[], + outputs=[], + arguments=[], + version="v0.1.0", + doc=None, + friendly_name=None, + container="ubuntu:latest" + ) + # this must be set for error messages to be associated with this entity + self.tool_uuid = jtool.uuid + + # log message + msg = 'error parsing tool. returned minimal tool definition as fallback' + log_error(self.tool_uuid, msg, ErrorCategory.FALLBACK) + + inputs = [self.ingest_command_tool_input(inp) for inp in self.entity.inputs] + outputs = [self.ingest_command_tool_output(out) for out in self.entity.outputs] + arguments = [self.ingest_command_tool_argument(arg) for arg in (self.entity.arguments or [])] + + inputs = [inp for inp in inputs if inp is not None] + outputs = [out for out in outputs if out is not None] + arguments = [arg for arg in arguments if arg is not None] + + jtool._inputs = inputs + jtool._outputs = outputs + jtool._arguments = arguments + + # requirements + req_parser = CLTRequirementsParser( + cwl_utils=self.cwl_utils, + clt=self.clt, + entity=self.entity, + tool_uuid=self.tool_uuid, + is_expression_tool=self.is_expression_tool + ) + reqs = req_parser.parse() + + jtool._directories_to_create = reqs['directories_to_create'] or None # type: ignore + jtool._files_to_create = reqs['files_to_create'] or None # type: ignore + jtool._env_vars = reqs['env_vars'] or None # type: ignore + jtool._container = reqs['container'] + jtool._memory = reqs['memory'] + jtool._cpus = reqs['cpus'] + jtool._time = reqs['time'] + return jtool + + def do_parse(self) -> CommandTool: + identifier = get_id_filename(self.entity.id) + jtool = CommandToolBuilder( + tool=identifier, + base_command=self.entity.baseCommand, + inputs=[], + outputs=[], + arguments=[], + version="v0.1.0", + doc=self.entity.doc, + friendly_name=self.entity.label, + container="ubuntu:latest" + ) + # this must be set for error messages to be associated with this entity + self.tool_uuid = jtool.uuid + + inputs = [self.ingest_command_tool_input(inp) for inp in self.entity.inputs] + outputs = [self.ingest_command_tool_output(out) for out in self.entity.outputs] + arguments = [self.ingest_command_tool_argument(arg) for arg in (self.entity.arguments or [])] + + inputs = [inp for inp in inputs if inp is not None] + outputs = [out for out in outputs if out is not None] + arguments = [arg for arg in arguments if arg is not None] + + jtool._inputs = inputs + jtool._outputs = outputs + jtool._arguments = arguments + + if self.is_expression_tool: + # ToolInput for script file, staging under correct name + # ToolArgument to correctly supply inputs as argv to script + # TODO HERE + raise NotImplementedError + + # arguments & selector patterns for io stream names + # addresses cwl stdin: stdout: stderr: file naming + jtool._arguments += self.ingest_io_streams(self.entity, jtool) + + # requirements + req_parser = CLTRequirementsParser( + cwl_utils=self.cwl_utils, + clt=self.clt, + entity=self.entity, + tool_uuid=self.tool_uuid, + is_expression_tool=self.is_expression_tool + ) + requirements = req_parser.parse() - for msg in self.error_msgs: - log_warning(self.uuid, msg) + jtool._directories_to_create = requirements['directories_to_create'] or None # type: ignore + jtool._files_to_create = requirements['files_to_create'] or None # type: ignore + jtool._env_vars = requirements['env_vars'] or None # type: ignore + jtool._container = requirements['container'] + jtool._memory = requirements['memory'] + jtool._cpus = requirements['cpus'] + jtool._time = requirements['time'] + return jtool + + def ingest_command_tool_argument(self, arg: Any) -> Optional[ToolArgument]: + parser = CLTArgumentParser(cwl_utils=self.cwl_utils, clt=self.clt, entity=arg, tool_uuid=self.tool_uuid) + return parser.parse() + + def ingest_command_tool_input(self, inp: Any) -> Optional[ToolInput]: + parser = CLTInputParser(cwl_utils=self.cwl_utils, clt=self.clt, entity=inp, tool_uuid=self.tool_uuid) + return parser.parse() + + def ingest_command_tool_output(self, out: Any, is_expression_tool: bool=False) -> ToolOutput: + parser = CLTOutputParser(cwl_utils=self.cwl_utils, clt=self.clt, entity=out, tool_uuid=self.tool_uuid) + return parser.parse() + + def ingest_io_streams(self, entity: Any, jtool: CommandTool) -> list[ToolArgument]: + out: list[ToolArgument] = [] + + # n = last position for clt inputs / arguments + n = self.get_last_input_position(jtool) + + # stderr: n + 1 + if entity.stderr: + filename, success = parse_expression(entity.stderr, self.tool_uuid) + # if not success: + # msg = 'error parsing tool. returned minimal tool definition as fallback' + # log_error(self.tool_uuid, msg, ErrorCategory.FALLBACK) + # filename = 'stderr.txt' + # self.error_msgs.append('untranslated javascript expression in stderr filename. used stderr.txt as fallback') + arg = ToolArgument(prefix='2>', value=filename, position=n + 1) + out.append(arg) + self.apply_collection_to_stderr_types(filename, jtool) + + elif self.clt_has_stderr_outputs(entity): + filename = 'stderr.txt' + arg = ToolArgument(prefix='2>', value=filename, position=n + 1) + out.append(arg) + self.apply_collection_to_stderr_types(filename, jtool) + + # stdout: n + 2 + if entity.stdout: + filename, success = parse_expression(entity.stdout, self.tool_uuid) + # if not success: + # filename = 'stdout.txt' + # self.error_msgs.append('untranslated javascript expression in stdout filename. used stdout.txt as fallback') + arg = ToolArgument(prefix='>', value=filename, position=n + 2) + out.append(arg) + self.apply_collection_to_stdout_types(filename, jtool) + + # stdin: n + 3 + if entity.stdin: + filename, success = parse_expression(entity.stdin, self.tool_uuid) + # if not success: + # self.error_msgs.append('untranslated javascript expression in stdin filename') + arg = ToolArgument(prefix='<', value=filename, position=n + 3) + out.append(arg) + + return out + + def clt_has_stderr_outputs(self, entity: Any) -> bool: + clt = entity + for out in clt.outputs: + dtype = ingest_cwl_type(out.type, self.cwl_utils, out, self.tool_uuid, secondaries=out.secondaryFiles) + # self.error_msgs += error_msgs + if isinstance(dtype, Stderr): + return True + return False + + def apply_collection_to_stderr_types(self, filename: str, jtool: CommandTool) -> None: + for out in jtool.outputs(): + if isinstance(out.output_type, Stderr): + out.selector = WildcardSelector(filename) + + def apply_collection_to_stdout_types(self, filename: str, jtool: CommandTool) -> None: + for out in jtool.outputs(): + if isinstance(out.output_type, Stdout): + out.selector = WildcardSelector(filename) + + def get_last_input_position(self, jtool: CommandTool) -> int: + max_pos = 0 + inputs: list[ToolInput | ToolArgument] = copy.deepcopy(jtool.inputs()) + if jtool.arguments(): + inputs += copy.deepcopy(jtool.arguments()) + for inp in inputs: + if inp.position and inp.position > max_pos: + max_pos = inp.position + return max_pos + + +@dataclass +class CLTEntityParser(ABC): + cwl_utils: Any + clt: Any + entity: Any + tool_uuid: str + is_expression_tool: bool = False + success: bool = False + + def parse(self) -> Any: + # normal mode + if settings.ingest.SAFE_MODE: + try: + j_entity = self.do_parse() + self.success = True + except Exception: + j_entity = self.fallback() + + # dev mode + else: + j_entity = self.do_parse() + self.success = True + + return j_entity @abstractmethod def do_parse(self) -> Any: @@ -62,11 +273,15 @@ def fallback(self) -> Any: ... - @dataclass class CLTRequirementsParser(CLTEntityParser): def fallback(self) -> dict[str, Any]: + # log message + msg = 'error parsing tool requirements. ignored requirements as fallback' + log_error(self.tool_uuid, msg, ErrorCategory.FALLBACK) + + # fallback return { 'container': None, 'memory': None, @@ -113,24 +328,27 @@ def get_memory(self, requirements: list[Any]) -> Optional[int]: for req in requirements: if isinstance(req, self.cwl_utils.ResourceRequirement): # maybe convert mebibytes to megabytes? - return parse_expression(req.ramMin or req.ramMax, self.entity) + res, success = parse_expression(req.ramMin or req.ramMax, self.tool_uuid) + return res return None def get_cpus(self, requirements: list[Any]) -> Optional[int]: for req in requirements: if isinstance(req, self.cwl_utils.ResourceRequirement): - return parse_expression(req.coresMin, self.entity) + res, success = parse_expression(req.coresMin, self.tool_uuid) + return res return None def get_time(self, requirements: list[Any]) -> Optional[int]: for req in requirements: if hasattr(req, 'timelimit') and isinstance(req, self.cwl_utils.ToolTimeLimit): - return parse_expression(req.timelimit, self.entity) + res, success = parse_expression(req.timelimit, self.tool_uuid) + return res return None - def get_files_directories_to_create(self, requirements: list[Any]) -> Tuple[dict[str, Any], list[str | InputSelector]]: + def get_files_directories_to_create(self, requirements: list[Any]) -> Tuple[dict[str, Any], list[str | Selector]]: files_to_create: dict[str, Any] = {} - directories_to_create: list[str | InputSelector] = [] + directories_to_create: list[str | Selector] = [] for req in requirements: if isinstance(req, self.cwl_utils.InitialWorkDirRequirement): @@ -141,15 +359,12 @@ def get_files_directories_to_create(self, requirements: list[Any]) -> Tuple[dict listing = req.listing for item in listing: - parser = InitialWorkDirRequirementParser(cwl_utils=self.cwl_utils, clt=self.entity, req=item, is_expression_tool=self.is_expression_tool) + parser = InitialWorkDirRequirementParser(cwl_utils=self.cwl_utils, clt=self.entity, req=item, tool_uuid=self.tool_uuid, is_expression_tool=self.is_expression_tool) parser.parse() - self.error_msgs += parser.error_msgs - if parser.file_to_create is not None: - name, value = parser.file_to_create - files_to_create[name] = value - if parser.directory_to_create is not None: - value = parser.directory_to_create - directories_to_create.append(value) + for fname, fcontents in parser.files_to_create: + files_to_create[fname] = fcontents + for dname in parser.directories_to_create: + directories_to_create.append(dname) return files_to_create, directories_to_create @@ -159,34 +374,67 @@ def get_env_vars(self, requirements: list[Any]) -> dict[str, Any]: for req in requirements: if isinstance(req, self.cwl_utils.EnvVarRequirement): for envdef in req.envDef: - name = parse_expression(envdef.envName, self.entity) - entry = parse_expression(envdef.envValue, self.entity) + name, success = parse_expression(envdef.envName, self.tool_uuid) + entry, success = parse_expression(envdef.envValue, self.tool_uuid) out[name] = entry return out class InitialWorkDirRequirementParser: - - def __init__(self, cwl_utils: Any, clt: Any, req: Any, is_expression_tool: bool=False) -> None: + """ + extracts files / directories to create from single InitialWorkDirRequirement entry + requirement types: File | Directory | Dirent | string | Expression + """ + def __init__(self, cwl_utils: Any, clt: Any, req: Any, tool_uuid: str, is_expression_tool: bool=False) -> None: self.cwl_utils = cwl_utils self.clt = clt self.req = req + self.tool_uuid = tool_uuid self.is_expression_tool = is_expression_tool - # resolving value - self.r_value, self.r_value_ok = parse_expression(self.value, self.clt) - - # resolving name + # resolving value, name + self.r_value, self.r_value_ok = parse_expression(self.value, self.tool_uuid) if self.name is not None: - self.r_name, self.r_name_ok = parse_expression(self.name, self.clt) + self.r_name, self.r_name_ok = parse_expression(self.name, self.tool_uuid) else: self.r_name, self.r_name_ok = None, True # want to calculate these fields - file_to_create: Optional[Tuple[str, str | InputSelector]] = None - directory_to_create: Optional[str | InputSelector] = None + self.error_msgs: list[str] = [] + self.files_to_create: list[Tuple[str, str | Selector]] = [] + self.directories_to_create: list[str | Selector] = [] - "File | Directory | Dirent | string | Expression" + def parse(self) -> None: + # normal mode + if settings.ingest.SAFE_MODE: + try: + j_entity = self.do_parse() + except Exception: + j_entity = self.fallback() + # dev mode + else: + j_entity = self.do_parse() + return j_entity + + def fallback(self) -> None: + msg = 'error parsing InitialWorkDirRequirement. ignored as fallback' + log_error(self.tool_uuid, msg, ErrorCategory.FALLBACK) + self.files_to_create = [] + self.directories_to_create = [] + + def do_parse(self) -> None: + success = False + parsers = [ + self.parse_as_textfile, + self.parse_as_selector, + self.parse_as_object, + self.parse_as_directory_path, + ] + for parser in parsers: + success = parser() + if success: + return None + raise RuntimeError @cached_property def name(self) -> Optional[str]: @@ -194,556 +442,154 @@ def name(self) -> Optional[str]: if isinstance(self.req, self.cwl_utils.Dirent): name = self.req.entryname return name - - @cached_property - def value(self) -> str: - if isinstance(self.req, str): - text: str = self.req - elif isinstance(self.req, self.cwl_utils.Dirent): - text: str = self.req.entry - else: - raise NotImplementedError - return text @cached_property - def is_dirent(self) -> bool: + def value(self) -> str: if isinstance(self.req, self.cwl_utils.Dirent): - return True - return False - - @cached_property - def is_file(self) -> bool: - if isinstance(self.req, str): - FILE_CLASS_MATCHER = re.compile(r'[\'"]?class[\'"]?:.*?[\'"]File[\'"]') - if re.search(FILE_CLASS_MATCHER, self.value): - return True - return False - - @cached_property - def is_directory(self) -> bool: - if isinstance(self.req, str): - DIRECTORY_CLASS_MATCHER = re.compile(r'[\'"]?class[\'"]?:.*?[\'"]Directory[\'"]') - if re.search(DIRECTORY_CLASS_MATCHER, self.value): - return True - return False - - @cached_property - def is_expression(self) -> bool: - if isinstance(self.req, str): - if self.value.startswith('$(') or self.value.startswith('${'): - return True - return False - - @cached_property - def is_string(self) -> bool: - if isinstance(self.req, str): - if not self.is_expression: - return True - return False - - - "File | Directory | Dirent | string | Expression" - # Expression - if isinstance(self.req, str) and self.r_value_ok: - return 'Expression' - - # File object - elif isinstance(self.req, str): - FILE_CLASS_MATCHER = re.compile(r'[\'"]?class[\'"]?:.*?[\'"]File[\'"]') - if re.search(FILE_CLASS_MATCHER, self.value): - return 'File' - - # Directory object + text: str = self.req.entry elif isinstance(self.req, str): - DIRECTORY_CLASS_MATCHER = re.compile(r'[\'"]?class[\'"]?:.*?[\'"]Directory[\'"]') - if re.search(DIRECTORY_CLASS_MATCHER, self.value): - return 'Directory' - - - if self.r_value_ok: - if isinstance(self.r_value, InputSelector): - return 'File' - return 'string' - elif isinstance(self.req, self.cwl_utils.Dirent): - return 'Dirent' + text: str = self.req else: raise NotImplementedError + return text + def extract_input_type(self, sel: Selector) -> Optional[str]: + pattern = r'inputs\.([a-zA-Z0-9_]+)' + template = str(sel) + match = re.match(pattern, template) + if match: + input_name = match.group(1) + for inp in self.clt.inputs: + name = get_id_entity(inp.id) + if name == input_name: + dtype = ingest_cwl_type(inp.type, cwl_utils=self.cwl_utils, cwl_entity=inp, tool_uuid=self.tool_uuid, secondaries=inp.secondaryFiles) + if isinstance(dtype, Directory): + return 'dir' + else: + return 'file' + return None - @cached_property - def get_file(self) -> Tuple[Any, bool]: - # Resolved Expression: InputSelector (File) - if self.r_value_ok: - if - - # Unresolved Expression - FILE_CLASS_MATCHER = re.compile(r'[\'"]?class[\'"]?:.*?[\'"]File[\'"]') - if re.search(FILE_CLASS_MATCHER, self.value): - pass - - # Dirent - - - # string - - """ - InitialWorkDirRequirement: - listing: - - entry: inputs.genome_folder - writable: true - - InitialWorkDirRequirement: - listing: - - entry: $(inputs.sequences) - - InitialWorkDirRequirement: - listing: - - entry: inputs.input_file - entryname: inputs.input_file.basename - writable: true - - InitialWorkDirRequirement: - listing: - - $(inputs.reference_index) - - $(inputs.reference_fasta) - - $(inputs.reads_index) + def looks_like_expr(self, text: str) -> bool: + if text.startswith('$(') or text.startswith('${'): + return True + pattern = r'^inputs\.([a-zA-Z0-9_]+)' + match = re.match(pattern, text) + if match: + return True + return False - InitialWorkDirRequirement: - listing: [ $(inputs.sequences) ] - - InitialWorkDirRequirement: - listing: - - entryname: param_file.txt - entry: |- - PeakListPath = $(inputs.PeakList.path) - IonizedPrecursorMass = $(inputs.IonizedPrecursorMass) - - InitialWorkDirRequirement: - listing: | - ${ return [ { "class": "Directory", - "listing": inputs.bins, - "basename": "jsons" } ]; } - - InitialWorkDirRequirement: - listing: | - ${ - var entry = "library_id,molecule_h5\n" - for (var i=0; i < inputs.molecule_info_h5.length; i++){ - entry += get_label(i) + "," + inputs.molecule_info_h5[i].path + "\n" - } - return [{ - "entry": entry, - "entryname": "metadata.csv" - }]; - } - """ - - - @cached_property - def entry_type(self) -> str: - if isinstance(self.req, str): - return 'string' - elif isinstance(self.req, self.cwl_utils.Dirent): - return 'Dirent' - else: - raise NotImplementedError - - @cached_property - def get_directory(self) -> Tuple[Any, bool]: - DIRECTORY_CLASS_MATCHER = re.compile(r'[\'"]?class[\'"]?:.*?[\'"]Directory[\'"]') - if re.search(DIRECTORY_CLASS_MATCHER, self.value): - pass - - # InputSelector -> Directory - # Expression - # string - # Dirent + def parse_as_textfile(self) -> bool: + fname_pattern = r'[a-zA-Z0-9_-]+\.(sh|py|r|R|rscript|Rscript|bash|txt|config|csv|tsv|json|yml|yaml|xml|html)' + # must be dirent + if not isinstance(self.req, self.cwl_utils.Dirent): + return False + + # resolved entry and entryname must be strings + if not isinstance(self.r_value, str) or not isinstance(self.r_name, str): + return False + + # entryname and entry must be strings + if self.looks_like_expr(self.req.entryname): + return False + if self.looks_like_expr(self.req.entry): + return False + + # entryname must match a typical script file + match = re.match(fname_pattern, self.req.entryname) + if not match: + return False + + # entry must have multiple lines + if '\n' not in self.req.entry: + return False + + # looks like script. do parse. + self.files_to_create.append((self.req.entryname, self.req.entry)) return True - - # @property - # def is_probably_file(self) -> bool: - # if self.r_value_ok: - # if - # if self.value.startswith('$(') or self.value.startswith('${'): - # if re.search(self.FILE_CLASS_MATCHER, self.value): - # return True - # else: - # res = parse_expression(self.value, self.clt) - # # successfully parsed requirement value into janis? - # if isinstance(res, InputSelector): - # for inp in self.clt.inputs: - # name = get_id_entity(inp.id) - # dtype, error_msgs = ingest_cwl_type(inp.type, cwl_utils=self.cwl_utils, secondaries=inp.secondaryFiles) - # self.error_msgs += error_msgs - # basetype = utils.get_base_type(dtype) - # if name == res.input_to_select and isinstance(basetype, File): - # return True - # return False - - # @property - # def is_probably_directory(self) -> bool: - # if self.value.startswith('$(') or self.value.startswith('${'): - # if re.search(self.DIRECTORY_CLASS_MATCHER, self.value): - # return True - # else: - # res = parse_expression(self.value, self.clt) - # # successfully parsed requirement value into janis - # if isinstance(res, InputSelector): - # for inp in self.clt.inputs: - # name = get_id_entity(inp.id) - # dtype, error_msgs = ingest_cwl_type(inp.type, cwl_utils=self.cwl_utils, secondaries=inp.secondaryFiles) - # self.error_msgs += error_msgs - # basetype = utils.get_base_type(dtype) - # if name == res.input_to_select and isinstance(basetype, Directory): - # return True - # return False - - # @property - # def value_is_resolvable(self) -> bool: - # _, success = parse_expression(self.value) - # if success: - # return True - # return False - - # @property - # def name_is_resolvable(self) -> bool: - # if self.name: - # _, success = parse_expression(self.name) - # if success: - # return True - # return False - - # @property - # def name_has_expression(self) -> bool: - # if self.name: - # if self.name.startswith('$(') or self.name.startswith('${'): - # return True - # return False - - def parse(self) -> None: - if self.is_file and self.is_directory: - raise RuntimeError - - if self.is_file: - + def parse_as_selector(self) -> bool: + # name and value must be resolvable + if not self.r_name_ok or not self.r_value_ok: + return False - # error handling for names generated using expression - if self.name_has_expression and self.is_probably_file: - msg = f'file required for runtime generates name using cwl / js: <js>{self.name}</js>. please address' - self.error_msgs.append(msg) - elif self.name_has_expression and self.is_probably_directory: - msg = f'directory required for runtime generates name using cwl / js: <js>{self.name}</js>. please address' - self.error_msgs.append(msg) - - # Expression - if isinstance(self.req, str): - self.file_to_create = self.get_files_to_create_from_str() - self.directory_to_create = self.get_directories_to_create_from_str() + # resolved value must be a Selector + if not isinstance(self.r_value, Selector): + return False - # Dirent - elif isinstance(self.req, self.cwl_utils.Dirent): - self.file_to_create = self.get_files_to_create_from_dirent() - self.directory_to_create = self.get_directories_to_create_from_dirent() - - elif isinstance(self.req, dict): - raise NotImplementedError - - else: - raise NotImplementedError - - def get_files_to_create_from_str(self) -> Optional[Tuple[str, str | InputSelector]]: - # value is expression - if self.value.startswith('$(') or self.value.startswith('${'): - if self.value_is_resolvable and self.is_probably_file: - # most likely just specifying the file needs to be staged. do nothing for now. - pass - elif self.is_probably_file: - # TODO error message - pass - - # value is string - else: - raise NotImplementedError - - def get_files_to_create_from_dirent(self) -> Optional[Tuple[str, str | InputSelector]]: - # most likely just specifying the file / directory needs to be staged. do nothing for now. - if self.value.startswith('$('): - pass - - # js code to generate required file - elif self.value.startswith('${'): - msg = f'{self.name}: js code to dynamically create runtime file. please address' - self.error_msgs.append(msg) - if not self.name: - raise NotImplementedError - return (self.name, self.value) - - else: - assert(isinstance(self.name, str)) - # the .js code script to run - if self.is_expression_tool: - if not self.name: - raise NotImplementedError - modified_js = self.modify_js(self.value) - return (self.name, modified_js) - else: - # either a static script, or a script to template at runtime - # script to template at runtime - if '$(inputs.' in self.value: - msg = f'likely untranslated cwl / js in script: {self.name}' - self.error_msgs.append(msg) - if not self.name: - raise NotImplementedError - return (self.name, self.value) - # static script - else: - if not self.name: - raise NotImplementedError - return (self.name, self.value) - - def modify_js(self, script: str) -> str: - text_to_remove = '"use strict";\nvar inputs=$(inputs);\nvar runtime=$(runtime);\n' - text_to_substitute = '\nvar inputs = JSON.parse( process.argv[2] );\n\n' - assert(text_to_remove in script) - script = script.replace(text_to_remove, text_to_substitute) - return script - - def get_directories_to_create_from_str(self) -> Optional[str | InputSelector]: - if self.value.startswith('$(') or self.value.startswith('${'): - # most likely just specifying the file / directory needs to be staged. do nothing for now. - # future: try to detect whether its a file or directory. create directory if directory. - if self.value_is_resolvable and self.is_probably_directory: - res, _ = parse_expression(self.value) - return res - - elif self.is_probably_directory: - msg = f'directory required for runtime generated using cwl / js: <js>{self.value}</js>. please address' - self.error_msgs.append(msg) - else: - # no idea yet. - raise NotImplementedError - - def get_directories_to_create_from_dirent(self) -> Optional[str | InputSelector]: - if self.name and self.value: - if self.is_probably_directory: - return self.value - elif self.value: - if self.is_probably_directory: - raise NotImplementedError - else: - raise RuntimeError - - - -@dataclass -class CLTParser(CLTEntityParser): - - failure_message: str = 'error parsing task. returned minimal task definition as fallback' - - def fallback(self) -> CommandTool: - # inputs, arguments, outputs, requirements have fallbacks. - # error must have occured with other clt fields (io streams, base command, doc etc). - identifier = get_id_filename(self.entity.id) # this does not have a fallback. really hope the error isnt here :/ - inputs = [self.ingest_command_tool_input(inp) for inp in self.entity.inputs] - outputs = [self.ingest_command_tool_output(out) for out in self.entity.outputs] - arguments = [self.ingest_command_tool_argument(arg) for arg in (self.entity.arguments or [])] - - inputs = [inp for inp in inputs if inp is not None] - arguments = [arg for arg in arguments if arg is not None] - - jtool = CommandToolBuilder( - tool=identifier, - base_command=self.entity.baseCommand, - inputs=inputs, - outputs=outputs, - arguments=arguments, - version="v0.1.0", - doc=None, - friendly_name=None, - container="ubuntu:latest" - ) - # this must be set for error messages to be associated with this entity - self.uuid = jtool.uuid - - # requirements - req_parser = CLTRequirementsParser( - cwl_utils=self.cwl_utils, - clt=self.clt, - entity=self.entity, - uuid=self.uuid, - is_expression_tool=self.is_expression_tool - ) - reqs = req_parser.parse() - - jtool._directories_to_create = reqs['directories_to_create'] or None - jtool._files_to_create = reqs['files_to_create'] or None - jtool._env_vars = reqs['env_vars'] or None - jtool._container = reqs['container'] - jtool._memory = reqs['memory'] - jtool._cpus = reqs['cpus'] - jtool._time = reqs['time'] - return jtool - - def do_parse(self) -> CommandTool: - # convert yaml datatypes to python datatypes - - identifier = get_id_filename(self.entity.id) - inputs = [self.ingest_command_tool_input(inp) for inp in self.entity.inputs] - outputs = [self.ingest_command_tool_output(out) for out in self.entity.outputs] - arguments = [self.ingest_command_tool_argument(arg) for arg in (self.entity.arguments or [])] - - jtool = CommandToolBuilder( - tool=identifier, - base_command=self.entity.baseCommand, - inputs=inputs, - outputs=outputs, - arguments=arguments, - version="v0.1.0", - doc=self.entity.doc, - friendly_name=self.entity.label, - container="ubuntu:latest" - ) - # this must be set for error messages to be associated with this entity - self.uuid = jtool.uuid - - if self.is_expression_tool: - # ToolInput for script file, staging under correct name - # ToolArgument to correctly supply inputs as argv to script - # TODO HERE - pass - - # arguments & selector patterns for io stream names - # addresses cwl stdin: stdout: stderr: file naming - jtool._arguments += self.ingest_io_streams(self.entity, jtool) + # resolved value must map to input + input_type = self.extract_input_type(self.r_value) + if input_type is None: + return False - # requirements - req_parser = CLTRequirementsParser( - cwl_utils=self.cwl_utils, - clt=self.clt, - entity=self.entity, - uuid=self.uuid, - is_expression_tool=self.is_expression_tool - ) - requirements = req_parser.parse() + # file with entryname + if input_type == 'file' and self.r_name is not None: + self.files_to_create.append((str(self.r_name), self.r_value)) + return True - jtool._directories_to_create = requirements['directories_to_create'] or None - jtool._files_to_create = requirements['files_to_create'] or None - jtool._env_vars = requirements['env_vars'] or None - jtool._container = requirements['container'] - jtool._memory = requirements['memory'] - jtool._cpus = requirements['cpus'] - jtool._time = requirements['time'] - return jtool - - def ingest_command_tool_argument(self, arg: Any) -> Optional[ToolArgument]: - parser = CLTArgumentParser(cwl_utils=self.cwl_utils, clt=self.clt, entity=arg) - return parser.parse() - - def ingest_command_tool_input(self, inp: Any) -> Optional[ToolInput]: - parser = CLTInputParser(cwl_utils=self.cwl_utils, clt=self.clt, entity=inp) - return parser.parse() + # file + elif input_type == 'file': + self.files_to_create.append((str(self.r_value), self.r_value)) + return True - def ingest_command_tool_output(self, out: Any, is_expression_tool: bool=False) -> ToolOutput: - parser = CLTOutputParser(cwl_utils=self.cwl_utils, clt=self.clt, entity=out) - return parser.parse() + # directory + else: + # TODO this is really weird + self.directories_to_create.append(str(self.r_value)) + return True - def ingest_io_streams(self, entity: Any, jtool: CommandTool) -> list[ToolArgument]: - out: list[ToolArgument] = [] + def parse_as_object(self) -> bool: + return False - # n = last position for clt inputs / arguments - n = self.get_last_input_position(jtool) + def parse_as_directory_path(self) -> bool: + # name and value must be resolvable + if not self.r_name_ok or not self.r_value_ok: + return False - # stderr: n + 1 - if entity.stderr: - filename, success = parse_expression(entity.stderr) - if not success: - filename = 'stderr.txt' - self.error_msgs.append('untranslated javascript expression in stderr filename. used stderr.txt as fallback') - arg = ToolArgument(prefix='2>', value=filename, position=n + 1) - out.append(arg) - self.apply_collection_to_stderr_types(filename, jtool) + # resolved value must be a string + if not isinstance(self.r_value, str): + return False - elif self.clt_has_stderr_outputs(entity): - filename = 'stderr.txt' - arg = ToolArgument(prefix='2>', value=filename, position=n + 1) - out.append(arg) - self.apply_collection_to_stderr_types(filename, jtool) + # resolved name must be None + if self.r_name is not None: + return False - # stdout: n + 2 - if entity.stdout: - filename, success = parse_expression(entity.stdout) - if not success: - filename = 'stdout.txt' - self.error_msgs.append('untranslated javascript expression in stdout filename. used stdout.txt as fallback') - arg = ToolArgument(prefix='>', value=filename, position=n + 2) - out.append(arg) - self.apply_collection_to_stdout_types(filename, jtool) + # must look like directory + # filename_pattern = r'^\/?([a-zA-Z0-9-_]+\/)*([a-zA-Z0-9-_.]+)$' + dirname_pattern = r'^\/?([a-zA-Z0-9-_]+\/)*([a-zA-Z0-9-_]+\/?)$' + if not re.match(dirname_pattern, self.r_value): + return False - # stdin: n + 3 - if entity.stdin: - filename, success = parse_expression(entity.stdin) - if not success: - self.error_msgs.append('untranslated javascript expression in stdin filename') - arg = ToolArgument(prefix='<', value=filename, position=n + 3) - out.append(arg) - - return out + self.directories_to_create.append(self.r_value) + return True - def clt_has_stderr_outputs(self, entity: Any) -> bool: - clt = entity - for out in clt.outputs: - dtype, error_msgs = ingest_cwl_type(out.type, self.cwl_utils, secondaries=out.secondaryFiles) - self.error_msgs += error_msgs - if isinstance(dtype, Stderr): - return True - return False - - def apply_collection_to_stderr_types(self, filename: str, jtool: CommandTool) -> None: - for out in jtool.outputs(): - if isinstance(out.output_type, Stderr): - out.selector = WildcardSelector(filename) - - def apply_collection_to_stdout_types(self, filename: str, jtool: CommandTool) -> None: - for out in jtool.outputs(): - if isinstance(out.output_type, Stdout): - out.selector = WildcardSelector(filename) - - def get_last_input_position(self, jtool: CommandTool) -> int: - max_pos = 0 - inputs: list[ToolInput | ToolArgument] = copy.deepcopy(jtool.inputs()) - if jtool.arguments(): - inputs += copy.deepcopy(jtool.arguments()) - for inp in inputs: - if inp.position and inp.position > max_pos: - max_pos = inp.position - return max_pos - + # def modify_js(self, script: str) -> str: + # text_to_remove = '"use strict";\nvar inputs=$(inputs);\nvar runtime=$(runtime);\n' + # text_to_substitute = '\nvar inputs = JSON.parse( process.argv[2] );\n\n' + # assert(text_to_remove in script) + # script = script.replace(text_to_remove, text_to_substitute) + # return script @dataclass class CLTArgumentParser(CLTEntityParser): - failure_message: str = "error parsing a section of the task script. substituted this section for '[error]' as fallback" - def fallback(self) -> ToolArgument: - return ToolArgument('[error]') + def fallback(self) -> None: + msg = 'error parsing CommandLineTool Argument. ignored as fallback' + log_error(self.tool_uuid, msg, ErrorCategory.FALLBACK) + return None def do_parse(self) -> Optional[ToolArgument]: # I don't know when a clt argument would be a string if isinstance(self.entity, str): - res, success = parse_expression(self.entity) - if not success: - self.error_msgs.append('untranslated javascript expression') + res, success = parse_expression(self.entity, self.tool_uuid) if res is None: return None arg = ToolArgument(res) # normal case else: - res, success = parse_expression(self.entity.valueFrom) - if not success: - self.error_msgs.append('untranslated javascript expression') + res, success = parse_expression(self.entity.valueFrom, self.tool_uuid) if res is None: return None arg = ToolArgument( @@ -762,10 +608,11 @@ def do_parse(self) -> Optional[ToolArgument]: @dataclass class CLTInputParser(CLTEntityParser): - failure_message: str = 'error parsing task input. returned generic optional File input as fallback' - def fallback(self) -> ToolInput: identifier = get_id_entity(self.entity.id) # hope the error isnt here lol + msg = 'error parsing CommandLineTool Input. returned generic optional File input as fallback' + log_error(self.tool_uuid, msg, ErrorCategory.FALLBACK) + return ToolInput( tag=identifier, input_type=File(optional=True), @@ -779,9 +626,11 @@ def fallback(self) -> ToolInput: ) def do_parse(self) -> ToolInput: + tag = get_id_entity(self.entity.id) + dtype = ingest_cwl_type(self.entity.type, self.cwl_utils, self.entity, self.tool_uuid, secondaries=self.entity.secondaryFiles) inp = ToolInput( - tag=self.parse_tag(), - input_type=self.parse_dtype(), + tag=tag, + input_type=dtype, position=self.parse_position(), prefix=self.parse_prefix(), separate_value_from_prefix=self.parse_separate(), @@ -790,18 +639,8 @@ def do_parse(self) -> ToolInput: default=self.parse_default(), value=self.parse_value() ) - # this must be set for error messages to be associated with this entity - self.uuid = inp.uuid return inp - def parse_tag(self) -> str: - return get_id_entity(self.entity.id) - - def parse_dtype(self) -> Any: - dtype, error_msgs = ingest_cwl_type(self.entity.type, self.cwl_utils, secondaries=self.entity.secondaryFiles) - self.error_msgs += error_msgs - return dtype - def parse_position(self) -> Optional[int]: if self.entity.inputBinding is not None: if self.entity.inputBinding.position is not None: @@ -844,26 +683,20 @@ def parse_default(self) -> Any: def parse_value(self) -> Any: value = None if self.entity.inputBinding and self.entity.inputBinding.valueFrom: - if settings.ingest.cwl.INGEST_JAVASCRIPT_EXPRESSIONS: # why? - value, success = parse_expression(self.entity.inputBinding.valueFrom) - if not success: - msg = f'untranslated javascript expression in inputBinding.valueFrom' - self.error_msgs.append(msg) - else: - pass - # j.Logger.warn( - # f"Won't translate the expression for input {self.entity.id}: {self.entity.inputBinding.valueFrom}" - # ) + value, success = parse_expression(self.entity.inputBinding.valueFrom, self.tool_uuid) return value @dataclass class CLTOutputParser(CLTEntityParser): - failure_message: str = 'error parsing task output. returned generic optional File output as fallback' - def fallback(self) -> ToolOutput: - identifier = get_id_entity(self.entity.id) # hope the error isnt here lol + # log message + identifier = get_id_entity(self.entity.id) # hope the error isnt here lol + msg = 'error parsing CommandLineTool output. returned generic File output as fallback' + log_error(self.tool_uuid, msg, ErrorCategory.FALLBACK) + + # fallback return ToolOutput( tag=identifier, output_type=File(optional=True), @@ -873,10 +706,8 @@ def fallback(self) -> ToolOutput: def do_parse(self) -> ToolOutput: # tag identifier = get_id_entity(self.entity.id) - # datatype - dtype, error_msgs = ingest_cwl_type(self.entity.type, self.cwl_utils, secondaries=self.entity.secondaryFiles) - self.error_msgs += error_msgs + dtype = ingest_cwl_type(self.entity.type, self.cwl_utils, self.entity, self.tool_uuid, secondaries=self.entity.secondaryFiles) if isinstance(dtype, Stdout): return self.do_parse_stdout(identifier, dtype) @@ -887,20 +718,15 @@ def do_parse_stdout(self, identifier: str, dtype: DataType) -> ToolOutput: selector = None if self.clt.stdout is not None: - expr, success = parse_expression(self.clt.stdout) - if success: - dtype = File() - selector = expr - else: - self.error_msgs.append('untranslated javascript expression in output collection') + expr, success = parse_expression(self.clt.stdout, self.tool_uuid) + dtype = File() + selector = expr out = ToolOutput( tag=identifier, output_type=dtype, selector=selector ) - # this must be set for error messages to be associated with this entity - self.uuid = out.uuid return out def do_parse_generic(self, identifier: str, dtype: DataType) -> ToolOutput: @@ -911,29 +737,23 @@ def do_parse_generic(self, identifier: str, dtype: DataType) -> ToolOutput: elif self.entity.outputBinding: if self.entity.outputBinding.glob: - res, success = parse_expression(self.entity.outputBinding.glob) - if isinstance(res, str): + res, success = parse_expression(self.entity.outputBinding.glob, self.tool_uuid) + if isinstance(res, str) and not res.startswith('__TOKEN'): selector = WildcardSelector(res) else: selector = res - if not success: - self.error_msgs.append('untranslated javascript expression in output collection') elif self.entity.outputBinding.outputEval: - res, success = parse_expression(self.entity.outputBinding.outputEval) - if isinstance(res, str): + res, success = parse_expression(self.entity.outputBinding.outputEval, self.tool_uuid) + if isinstance(res, str) and not res.startswith('__TOKEN'): selector = WildcardSelector(res) else: selector = res - if not success: - self.error_msgs.append('untranslated javascript expression in output collection') out = ToolOutput( tag=identifier, output_type=dtype, selector=selector ) - # this must be set for error messages to be associated with this entity - self.uuid = out.uuid return out diff --git a/janis_core/ingestion/cwl/parsing/workflow.py b/janis_core/ingestion/cwl/parsing/workflow.py index 1a2c2d0a9..c7ac4cb6f 100644 --- a/janis_core/ingestion/cwl/parsing/workflow.py +++ b/janis_core/ingestion/cwl/parsing/workflow.py @@ -2,7 +2,7 @@ from typing import Any, Optional -from dataclasses import dataclass, field +from dataclasses import dataclass from abc import ABC, abstractmethod from janis_core.workflow.workflow import Workflow, OutputNode, InputNodeSelector, StepNode, InputNode, StepOutputSelector @@ -12,25 +12,23 @@ from ..identifiers import get_id_entity from ..identifiers import remove_output_name_from_output_source from ..graph import get_janis_wf_sources +from ..expressions import parse_expression from janis_core import settings from janis_core.types import File -from janis_core.messages import log_warning +from janis_core.messages import log_error +from janis_core.messages import ErrorCategory parsing_error_count = 0 - @dataclass class WorkflowEntityParser(ABC): cwl_utils: Any entity: Any wf: Workflow + tool_uuid: str success: bool = False - uuid: Optional[str] = None - error_msgs: list[str] = field(default_factory=list) - failure_message: str = '' - should_log_messages: bool = True def parse(self) -> Any: # normal mode @@ -46,17 +44,8 @@ def parse(self) -> Any: j_entity = self.do_parse() self.success = True - self.log_messages() return j_entity - def log_messages(self) -> None: - if self.success == False: - self.error_msgs.append(self.failure_message) - - if self.should_log_messages: - for msg in self.error_msgs: - log_warning(self.uuid, msg) - @abstractmethod def do_parse(self) -> Any: ... @@ -71,26 +60,25 @@ def fallback(self) -> Any: class WorkflowInputParser(WorkflowEntityParser): """parses a cwl WorkflowInputParameter to add an input to the janis Workflow""" - failure_message: str = 'error parsing workflow input. returned generic optional File input as fallback' - def fallback(self) -> InputNodeSelector: + # log message + msg = f'error parsing {get_id_entity(self.entity.id)}. returned generic optional File input as fallback' + log_error(self.tool_uuid, msg, ErrorCategory.FALLBACK, subsection='inputs') + + # fallback global parsing_error_count parsing_error_count += 1 identifier = f'unknown_{parsing_error_count}' inp = self.wf.input( identifier=identifier, - datatype=File, + datatype=File(optional=True), ) - # this must be set for error messages to be associated with this entity - self.uuid = inp.input_node.uuid return inp def do_parse(self) -> InputNodeSelector: - identifier = get_id_entity(self.entity.id) - dtype, error_msgs = ingest_cwl_type(self.entity.type, self.cwl_utils, secondaries=self.entity.secondaryFiles) - self.error_msgs += error_msgs + dtype = ingest_cwl_type(self.entity.type, self.cwl_utils, self.entity, self.tool_uuid, secondaries=self.entity.secondaryFiles) inp = self.wf.input( identifier=identifier, @@ -98,38 +86,31 @@ def do_parse(self) -> InputNodeSelector: default=self.entity.default, doc=self.entity.doc, ) - # this must be set for error messages to be associated with this workflow input - self.uuid = inp.input_node.uuid return inp - @dataclass class WorkflowOutputParser(WorkflowEntityParser): """parses a cwl WorkflowInputParameter to add an input to the janis Workflow""" - failure_message: str = "error parsing workflow output. \ - created a generic File workflow output as fallback. \ - created a generic File workflow input as the fallback's data source." - def fallback(self) -> OutputNode: + # log message + msg = f'error parsing {get_id_entity(self.entity.id)}. returned generic File output (and corresponding input) as fallback' + log_error(self.tool_uuid, msg, ErrorCategory.FALLBACK, subsection='outputs') + + # fallback global parsing_error_count parsing_error_count += 1 - identifier = f'unknown_{parsing_error_count}' - inp = self.wf.input( identifier, datatype=File, ) - out = self.wf.output( identifier=identifier, datatype=File, source=inp ) - # this must be set for error messages to be associated with this workflow output - self.uuid = out.uuid return out def do_parse(self) -> OutputNode: @@ -146,16 +127,13 @@ def do_parse(self) -> OutputNode: else: source = janis_sources - dtype, error_msgs = ingest_cwl_type(self.entity.type, self.cwl_utils, secondaries=self.entity.secondaryFiles) - self.error_msgs += error_msgs + dtype = ingest_cwl_type(self.entity.type, self.cwl_utils, self.entity, self.tool_uuid, secondaries=self.entity.secondaryFiles) out = self.wf.output( identifier=out_identifier, datatype=dtype, source=source, ) - # this must be set for error messages to be associated with this workflow output - self.uuid = out.uuid return out @@ -163,69 +141,62 @@ def do_parse(self) -> OutputNode: @dataclass class WorkflowStepInputsParser(WorkflowEntityParser): - failure_message: str = "error parsing task invocation inputs. \ - task invocation will have no inputs as fallback. " - def fallback(self) -> dict[str, Any]: + # log message step_identifier = get_id_entity(self.entity.id) jstep = self.wf.step_nodes[step_identifier] - # this must be set for error messages to be associated with this workflow output - self.uuid = jstep.uuid + msg = f"error parsing step inputs" + log_error(self.tool_uuid, msg, ErrorCategory.PLUMBING, subsection=f'step:{jstep.id()}') + + # fallback return {} def do_parse(self) -> dict[str, Any]: step_identifier = get_id_entity(self.entity.id) jstep = self.wf.step_nodes[step_identifier] - # this must be set for error messages to be associated with this workflow output - self.uuid = jstep.uuid - - valid_step_inputs = self.get_valid_step_inputs(self.entity, jstep) + # valid_step_inputs = self.get_valid_step_inputs(self.entity, jstep) inputs_dict = {} - for inp in valid_step_inputs: + for inp in self.entity.in_: inp_identifier = get_id_entity(inp.id) - parser = WorkflowStepInputParser(cwl_utils=self.cwl_utils, entity=inp, wf=self.wf) + parser = WorkflowStepInputParser(cwl_utils=self.cwl_utils, entity=inp, wf=self.wf, tool_uuid=self.wf.uuid) + parser.step_name = jstep.id() source = parser.parse() - if source is not None: - inputs_dict[inp_identifier] = source - else: - raise Exception("should this be checked?") - print() - # collect error messages from step inputs, log them as errors parsing this step instead - self.error_msgs += parser.error_msgs + inputs_dict[inp_identifier] = source return inputs_dict - def get_valid_step_inputs(self, cwlstp: Any, jstep: StepNode) -> list[Any]: - return [x for x in cwlstp.in_ if self.is_valid_step_input(x, jstep)] - - def is_valid_step_input(self, inp: Any, jstep: StepNode) -> bool: - inp_identifier = get_id_entity(inp.id) - if inp_identifier in jstep.tool.inputs_map(): - return True - else: - msg = f'{jstep.tool.id()} task has no input named "{inp_identifier}". Ignored as fallback.' - self.error_msgs.append(msg) - return False + # this may have been a mistake to comment out + # def get_valid_step_inputs(self, cwlstp: Any, jstep: StepNode) -> list[Any]: + # return [x for x in cwlstp.in_ if self.is_valid_step_input(x, jstep)] + + # def is_valid_step_input(self, inp: Any, jstep: StepNode) -> bool: + # inp_identifier = get_id_entity(inp.id) + # if inp_identifier in jstep.tool.inputs_map(): + # return True + # else: + # raise RuntimeError + # # msg = f'{jstep.tool.id()} task has no input named "{inp_identifier}". Ignored as fallback.' + # # self.error_msgs.append(msg) + # # return False @dataclass class WorkflowStepInputParser(WorkflowEntityParser): + step_name: str = '' - failure_message: str = '' - should_log_messages: bool = False - def fallback(self) -> Optional[InputNode | StepOutputSelector]: + # log message identifier = get_id_entity(self.entity.id) - self.failure_message = f"error parsing data source for '{identifier}'. Ignored as fallback. " + msg = f"error parsing data source for '{identifier}'. Returned None as fallback." + log_error(self.tool_uuid, msg, ErrorCategory.PLUMBING, subsection=f'step:{self.step_name}') + + # fallback return None def do_parse(self) -> Optional[InputNode | StepOutputSelector]: - identifier = get_id_entity(self.entity.id) - self.failure_message = f"error parsing data source for '{identifier}'. Ignored as fallback. " - source = self.resolve_source() value_from = self.resolve_value_from(source) @@ -250,6 +221,8 @@ def do_parse(self) -> Optional[InputNode | StepOutputSelector]: def resolve_source(self) -> Any: inp = self.entity source = None + # TODO HERE + raise NotImplementedError if inp.source is not None: sources = get_janis_wf_sources(self.wf, inp.source) if len(sources) == 1: @@ -287,15 +260,33 @@ def resolve_value_from(self, source: Any) -> Any: @dataclass -class WorkflowStepScatterParser(WorkflowEntityParser): +class WorkflowStepAttributesParser(WorkflowEntityParser): """parses janis step to return a ScatterDescription.""" - failure_message: str = 'error parsing task parallelisation. ignored parallelisation as fallback' - - def fallback(self) -> Optional[ScatterDescription]: + scatter: Optional[ScatterDescription] = None + when: Optional[Any] = None + + def fallback(self) -> None: + # log message + step_identifier = get_id_entity(self.entity.id) + jstep = self.wf.step_nodes[step_identifier] + msg = 'error parsing step modifiers (scatter | conditional execution). ignored as fallback' + log_error(self.tool_uuid, msg, ErrorCategory.PLUMBING, subsection=f'step:{jstep.id()}') + + # fallback + return None + + def do_parse(self) -> None: + self.scatter = self.parse_scatter() + self.when = self.parse_when() + + def parse_when(self) -> Any: + if hasattr(self.entity, 'when') and self.entity.when is not None: + res, success = parse_expression(self.entity.when, self.tool_uuid) + return res return None - def do_parse(self) -> Optional[ScatterDescription]: + def parse_scatter(self) -> Optional[ScatterDescription]: scatter = None if self.entity.scatter: @@ -315,6 +306,9 @@ def do_parse(self) -> Optional[ScatterDescription]: return scatter def ingest_scatter_method(self, scatter_method: Optional[str]) -> Optional[ScatterMethod]: + step_identifier = get_id_entity(self.entity.id) + jstep = self.wf.step_nodes[step_identifier] + if scatter_method is None or scatter_method == "": return None @@ -323,10 +317,7 @@ def ingest_scatter_method(self, scatter_method: Optional[str]) -> Optional[Scatt elif scatter_method == "nested_crossproduct": msg = 'task parallelisation method was nested crossproduct, but Janis only supports flat crossproduct. Used flat crossproduct as fallback.' - self.error_msgs.append(msg) - # j.Logger.warn( - # "Requesting nested_crossproduct, but Janis only supports flat_crossproduct. Will fallback to flat_crossproduct" - # ) + log_error(self.tool_uuid, msg, ErrorCategory.PLUMBING, subsection=f'step:{jstep.id()}') return ScatterMethod.cross elif scatter_method == "flat_crossproduct": @@ -334,4 +325,4 @@ def ingest_scatter_method(self, scatter_method: Optional[str]) -> Optional[Scatt else: msg = f"Unsupported scatter method '{scatter_method}'. Used flat crossproduct as fallback." - self.error_msgs.append(msg) \ No newline at end of file + log_error(self.tool_uuid, msg, ErrorCategory.PLUMBING, subsection=f'step:{jstep.id()}') \ No newline at end of file diff --git a/janis_core/ingestion/cwl/types.py b/janis_core/ingestion/cwl/types.py index 03f75439c..e1a6bfaa0 100644 --- a/janis_core/ingestion/cwl/types.py +++ b/janis_core/ingestion/cwl/types.py @@ -1,12 +1,13 @@ - - -from typing import Any, Optional, Tuple +from typing import Any, Optional, Type import regex as re -from copy import deepcopy import sys import inspect -from janis_core import JanisShed +from janis_core.messages import ErrorCategory +from janis_core.messages import log_warning +from janis_core.utils.errors import UnsupportedError +from janis_core import settings + from janis_core import translation_utils as utils from janis_core.types import ( DataType, @@ -21,12 +22,61 @@ Stdout, Stderr, ) +from janis_core.redefinitions.types import ( + Fasta, + Fastq, + Sam, + Bam, + Bed, + Vcf, + Tsv, + Cram, +) +from janis_core.ingestion.galaxy.datatypes.galaxy import ( + Anndata, + BigWig, + Gtf, + Gff, + BedGraph, + BigBed +) -from janis_core.utils.errors import UnsupportedError -from janis_core import settings - -from .expressions import parse_expression +edam_format_map = { + 'edam:format_1929': Fasta, + 'edam:format_1930': Fastq, + 'edam:format_1931': Fastq, + 'edam:format_1932': Fastq, + 'edam:format_1933': Fastq, + 'edam:format_1974': Gff, + 'edam:format_2306': Gtf, + 'edam:format_2572': Bam, + 'edam:format_2573': Sam, + 'edam:format_3003': Bed, + 'edam:format_3004': BigBed, + 'edam:format_3006': BigWig, + 'edam:format_3016': Vcf, + 'edam:format_3462': Cram, + 'edam:format_3583': BedGraph, + 'edam:format_3590': Anndata, + 'edam:format_3709': Tsv, +} +file_priorities = { + 'Fasta': 1, + 'Fastq': 2, + 'Gff': 3, + 'Gtf': 4, + 'Bam': 5, + 'Sam': 6, + 'Bed': 7, + 'BigBed': 8, + 'BigWig': 9, + 'Vcf': 10, + 'Cram': 11, + 'BedGraph': 12, + 'Anndata': 13, + 'Tsv': 14, +} file_datatype_cache: dict[int, Any] = {} @@ -88,9 +138,11 @@ def is_javascript_expr(text: str) -> bool: def ingest_cwl_type( cwl_type: Any, cwl_utils: Any, + cwl_entity: Any, + tool_uuid: str, secondaries: Optional[str | list[str]]=None, - ) -> Tuple[DataType, list[str]]: - dtype_parser = CWLTypeParser(cwl_type, cwl_utils, secondaries) + ) -> DataType: + dtype_parser = CWLTypeParser(cwl_type, cwl_utils, cwl_entity, secondaries, tool_uuid) return dtype_parser.parse() @@ -99,12 +151,15 @@ def __init__( self, cwl_type: Any, cwl_utils: Any, + cwl_entity: Any, secondaries: Optional[str | list[str]], + tool_uuid: str ): self.cwl_type = cwl_type self.cwl_utils = cwl_utils + self.cwl_entity = cwl_entity self.secondaries = secondaries - self.error_msgs: list[str] = [] + self.tool_uuid = tool_uuid self.secondary_patterns: list[str] = self.preprocess_secondary_file_patterns(secondaries) def preprocess_secondary_file_patterns(self, secondaries: Optional[str | list[str]]) -> list[str]: @@ -125,6 +180,29 @@ def preprocess_secondary_file_patterns(self, secondaries: Optional[str | list[st return out + @property + def file_subtypes(self) -> list[Type[DataType]]: + # TODO check if any format is a javascript expression. + + # get formats from cwl entity + if not hasattr(self.cwl_entity, 'format') or self.cwl_entity.format is None: + formats_list = [] + elif isinstance(self.cwl_entity.format, list): + formats_list = self.cwl_entity.format + elif isinstance(self.cwl_entity.format, str): + formats_list = [self.cwl_entity.format] + else: + raise NotImplementedError + + # replace uri with edam:format_xxxx structure if applicable + formats_list = [x.replace('http://edamontology.org/', 'edam:') for x in formats_list] + # pull out edam formats + edam_formats = [x for x in formats_list if x.startswith('edam:format_')] + # remove unknown formats + edam_formats = [x for x in edam_formats if x in edam_format_map] + # return janis datatypes + return [edam_format_map[x] for x in edam_formats] + @property def secondary_files_plain(self) -> list[str]: return [x for x in self.secondary_patterns if not is_javascript_expr(x)] @@ -133,11 +211,29 @@ def secondary_files_plain(self) -> list[str]: def secondary_files_exprs(self) -> list[str]: return [x for x in self.secondary_patterns if is_javascript_expr(x)] - def parse(self) -> Tuple[DataType, list[str]]: + def parse(self) -> DataType: # parse basic cwl type inp_type = self.from_cwl_inner_type(self.cwl_type) - return (inp_type, self.error_msgs) + return inp_type + @property + def file_subtype(self) -> DataType: + filetypes = self.file_subtypes + + if len(filetypes) > 1: + filetypes.sort(key=lambda x: file_priorities.get(x.__name__, 999)) + ftype = filetypes[0] + msg = f'entity supports multiple edam formats. selected {ftype.__name__} as fallback.' + log_warning(self.tool_uuid, msg, ErrorCategory.DATATYPE) + return ftype() + + elif len(filetypes) == 1: + ftype = filetypes[0] + return ftype() + + else: + return File() + def from_cwl_inner_type(self, cwl_type: Any) -> DataType: if isinstance(cwl_type, str): # optionality @@ -155,7 +251,7 @@ def from_cwl_inner_type(self, cwl_type: Any) -> DataType: if self.secondary_patterns: inner = self.get_data_type_from_secondaries() else: - inner = File() + inner = self.file_subtype elif cwl_type == "Directory": inner = Directory() elif cwl_type == "string": @@ -178,11 +274,11 @@ def from_cwl_inner_type(self, cwl_type: Any) -> DataType: inner = Int() else: if settings.datatypes.ALLOW_UNPARSEABLE_DATATYPES: - msg = f"Unsupported datatype: {cwl_type}. Treated as a file." - self.error_msgs.append(msg) + msg = f"unsupported datatype: {cwl_type}. treated as generic File." + log_warning(self.tool_uuid, msg, ErrorCategory.DATATYPE) inner = File() else: - raise UnsupportedError(f"Can't detect type {cwl_type}") + raise UnsupportedError(f"can't detect type {cwl_type}") # array depth dtype = inner @@ -201,8 +297,7 @@ def from_cwl_inner_type(self, cwl_type: Any) -> DataType: # casting individual cwl types to janis dtypes: list[DataType] = [] for ctype in cwl_types: - dtype, error_messages = ingest_cwl_type(ctype, self.cwl_utils, self.secondaries) - self.error_msgs += error_messages + dtype = ingest_cwl_type(ctype, self.cwl_utils, self.cwl_entity, self.tool_uuid, self.secondaries) dtypes.append(dtype) # annotate janis dtypes as optional @@ -215,19 +310,25 @@ def from_cwl_inner_type(self, cwl_type: Any) -> DataType: # multiple types elif len(dtypes) > 1: - # create (dtype, dtypetype) tuples to label with type categories - dtypes_w_categories = [(utils.get_dtt(x), x) for x in dtypes] - - # sort by order of importance (according to dtypetype category - uses enum index) - dtypes_w_categories.sort(key=lambda x: x[0].value) + dtype_names = [x.name() for x in dtypes] + edam_types = [x for x in dtypes if x.__class__.__name__ in edam_format_map] + edam_types.sort(key=lambda x: file_priorities.get(x.__name__, 999)) - # get the most important type - selected = dtypes_w_categories[0][1] + # edam file types + if len(edam_types) > 0: + selected = edam_types[0] + # other types + else: + # create (dtype, dtypetype) tuples to label with type categories + dtypes_w_categories = [(utils.get_dtt(x), x) for x in dtypes] + # sort by order of importance (according to dtypetype category - uses enum index) + dtypes_w_categories.sort(key=lambda x: x[0].value) + # get the most important type + selected = dtypes_w_categories[0][1] # print user message - dtype_names = [x.name() for x in dtypes] - msg = f'entity supports multiple datatypes: {dtype_names}. selected {selected.__class__.__name__} as fallback. this may affect pipeline execution' - self.error_msgs.append(msg) + msg = f'entity supports multiple datatypes: {dtype_names}. selected {selected.__class__.__name__} as fallback.' + log_warning(self.tool_uuid, msg, ErrorCategory.DATATYPE) return selected else: @@ -248,7 +349,7 @@ def from_cwl_inner_type(self, cwl_type: Any) -> DataType: else: if settings.datatypes.ALLOW_UNPARSEABLE_DATATYPES: msg = f"Unsupported datatype: {type(cwl_type).__name__}. Treated as a file." - self.error_msgs.append(msg) + log_warning(self.tool_uuid, msg, ErrorCategory.DATATYPE) return File(optional=False) else: raise UnsupportedError(f"Can't parse type {type(cwl_type).__name__}") @@ -281,8 +382,8 @@ def get_data_type_from_secondaries(self) -> DataType: # if success: # raise NotImplementedError # else: - msg = f'could not parse secondaries format from javascript expressions: {self.secondary_files_exprs[0]}' - self.error_msgs.append(msg) + msg = f'could not parse secondaries format from javascript expression. treated as generic File with secondaries.' + log_warning(self.tool_uuid, msg, ErrorCategory.DATATYPE) return GenericFileWithSecondaries(secondaries=[]) else: diff --git a/janis_core/ingestion/wdl/parsing/types.py b/janis_core/ingestion/wdl/parsing/types.py index 851aaeb67..b7b06b31b 100644 --- a/janis_core/ingestion/wdl/parsing/types.py +++ b/janis_core/ingestion/wdl/parsing/types.py @@ -4,7 +4,8 @@ import WDL import janis_core as j -import janis_core.messages as m +from janis_core.messages import log_error +from janis_core.messages import ErrorCategory def parse_type(t: WDL.Type.Base, uuid: Optional[str]=None): optional = t.optional @@ -23,8 +24,10 @@ def parse_type(t: WDL.Type.Base, uuid: Optional[str]=None): elif isinstance(t, WDL.Type.Array): return j.Array(parse_type(t.item_type, uuid), optional=optional) elif isinstance(t, WDL.Type.StructInstance): - if uuid: - m.log_warning(uuid, 'WDL Struct type unsupported. Has been cast to File type.') + if not uuid: + raise Exception('add uuid here') + msg = 'WDL Struct type unsupported. Has been cast to File type.' + log_error(uuid, msg, ErrorCategory.DATATYPE) return j.File(optional=optional) raise Exception(f"Didn't handle WDL type conversion for '{t}' ({type(t)})") \ No newline at end of file diff --git a/janis_core/messages/__init__.py b/janis_core/messages/__init__.py index b04998753..a59ed36d2 100644 --- a/janis_core/messages/__init__.py +++ b/janis_core/messages/__init__.py @@ -1,13 +1,15 @@ -# logging -from .main import ErrorCategory +# objects +from .enums import ErrorCategory +from .logfile import LogFile +from .logfile import LogLine + +# functions from .main import configure_logging from .main import info_ingesting_tool from .main import info_ingesting_workflow - -# messages from .main import log_info from .main import log_warning from .main import log_error -from .main import get_messages \ No newline at end of file +from .main import load_loglines \ No newline at end of file diff --git a/janis_core/messages/enums.py b/janis_core/messages/enums.py new file mode 100644 index 000000000..41c247782 --- /dev/null +++ b/janis_core/messages/enums.py @@ -0,0 +1,16 @@ + +from enum import Enum + +class ErrorLevel(Enum): + INFO = 'INFO' + WARNING = 'WARNING' + ERROR = 'ERROR' + +class ErrorCategory(Enum): + SCRIPT = 'SCRIPT' + DATATYPE = 'DATATYPE' + PLUMBING = 'PLUMBING' + VERSION = 'VERSION' + FALLBACK = 'FALLBACK' + EXPERIMENTAL = 'EXPERIMENTAL' + FATAL = 'FATAL' \ No newline at end of file diff --git a/janis_core/messages/logfile.py b/janis_core/messages/logfile.py index 4ceaef67b..94b8781bc 100644 --- a/janis_core/messages/logfile.py +++ b/janis_core/messages/logfile.py @@ -1,16 +1,23 @@ from typing import Optional from pathlib import Path -from collections import defaultdict from dataclasses import dataclass +from .enums import ErrorLevel +from .enums import ErrorCategory @dataclass class LogLine: - level: str - category: Optional[str] - uuid: Optional[str] + level: ErrorLevel message: str + category: Optional[ErrorCategory] + tool_uuid: Optional[str] + subsection: Optional[str] + + def __str__(self) -> str: + level = self.level.value + category = self.category.value if self.category is not None else None + return f'{level}\t{category}\t{self.tool_uuid}\t{self.subsection}\t{self.message}' class LogFile: @@ -19,14 +26,33 @@ def __init__(self, filepath: str): self.lines: list[LogLine] = [] self.load() - def add(self, level: str, category: Optional[str], uuid: Optional[str], message: str) -> None: - # add to file - message = message.replace('\n', '') + def add( + self, + level: ErrorLevel, + category: Optional[ErrorCategory], + tool_uuid: Optional[str], + msg: str, + subsection: Optional[str] + ) -> None: + + # format message + message = msg.replace('\n', '') message = fr'{message}' + + # create logline + logline = LogLine( + level=level, + message=message, + category=category, + tool_uuid=tool_uuid, + subsection=subsection + ) + + # write to file with open(self.filepath, 'a') as fp: - fp.write(f'{level}\t{category}\t{uuid}\t{message}\n') - # add to in-memory - logline = LogLine(level, category, uuid, message) + fp.write(f'{str(logline)}\n') + + # add to in-memory? self.lines.append(logline) def load(self) -> None: @@ -39,8 +65,15 @@ def load(self) -> None: self.lines = [] with open(self.filepath, 'r') as fp: for line in fp.readlines(): - level, category, uuid, message = line.strip('\n').split('\t') - logline = LogLine(level, category, uuid, message) + logline = self.string_to_logline(line) self.lines.append(logline) + def string_to_logline(self, line: str) -> LogLine: + str_level, str_cat, str_tool_uuid, str_subsection, str_message = line.strip('\n').split('\t') + level = ErrorLevel(str_level) + category = None if str_cat == 'None' else ErrorCategory(str_cat) + tool_uuid = None if str_tool_uuid == 'None' else str_tool_uuid + subsection = None if str_subsection == 'None' else str_subsection + return LogLine(level, str_message, category, tool_uuid, subsection) + \ No newline at end of file diff --git a/janis_core/messages/main.py b/janis_core/messages/main.py index 57126a214..8f64b96c9 100644 --- a/janis_core/messages/main.py +++ b/janis_core/messages/main.py @@ -3,14 +3,15 @@ from logging import getLogger, config from .logfile import LogFile from .logfile import LogLine - +from .enums import ErrorLevel +from .enums import ErrorCategory from typing import Optional import os import warnings import yaml from pathlib import Path -from enum import Enum + """ This file was built for ingest / translation message logging. @@ -49,14 +50,6 @@ # configuration # ------------- -class ErrorCategory(Enum): - SCRIPT = 'script' - DATATYPE = 'datatype' - DATAFLOW = 'dataflow' - VERSION = 'version' - FALLBACK = 'fallback' - FATAL = 'fatal' - warnings.filterwarnings("ignore") WORK_DIR = (os.getcwd()) # the working directory where janis translate is run from @@ -96,43 +89,46 @@ def info_ingesting_tool(spec: str, name: str) -> None: # to file # ------- -def _log_message(level: str, category: Optional[ErrorCategory], uuid: Optional[str], msg: str) -> None: +def _log_message(level: ErrorLevel, category: Optional[ErrorCategory], msg: str, tool_uuid: Optional[str], subsection: Optional[str]) -> None: logfile = LogFile(MESSAGE_LOG_PATH) # if no uuid provided, consider this a general message provided during ingestion / translation. # these messages can be shown to the user at the top of the main parsed file (ie the main workflow / tool), # or you could generate a file in the output folder for the user to show this info. - if uuid is None: - uuid = 'general' - if category is not None: - cat = category.value - logfile.add(level, cat, uuid, msg) + if tool_uuid is None: + tool_uuid = 'general' + logfile.add(level=level, tool_uuid=tool_uuid, category=category, msg=msg, subsection=subsection) -def log_info(uuid: Optional[str], msg: str) -> None: +def log_info(msg: str) -> None: """logs a message which is considered INFO to the logfile""" - _log_message('INFO', None, uuid, msg) + _log_message(ErrorLevel.INFO, tool_uuid=None, category=None, msg=msg, subsection=None) -def log_warning(uuid: str, msg: str) -> None: +def log_warning(tool_uuid: str, msg: str, category: ErrorCategory, subsection: Optional[str]=None) -> None: """logs a message which is considered a WARNING to the logfile""" - _log_message('WARNING', None, uuid, msg) + _log_message(ErrorLevel.WARNING, tool_uuid=tool_uuid, category=category, msg=msg, subsection=subsection) -def log_error(uuid: Optional[str], category: ErrorCategory, msg: str) -> None: +def log_error(tool_uuid: str, msg: str, category: ErrorCategory, subsection: Optional[str]=None) -> None: """logs a message which is considered an ERROR to the logfile""" - _log_message('ERROR', category, uuid, msg) + _log_message(ErrorLevel.ERROR, tool_uuid=tool_uuid, category=category, msg=msg, subsection=subsection) + +def load_loglines( + level: Optional[ErrorLevel]=None, + category: Optional[ErrorCategory]=None, + tool_uuid: Optional[str]=None, + subsection: Optional[str]=None + ) -> list[LogLine]: -def get_messages(uuid: Optional[str]=None, level: Optional[str]=None) -> list[LogLine]: logfile = LogFile(MESSAGE_LOG_PATH) loglines = logfile.lines - # filter for specific entity - if uuid is not None: - loglines = [x for x in loglines if x.uuid == uuid] - - # filter for specific type of log message if 'level' supplied + # filters if level is not None: - valid_levels = ['INFO', 'WARNING', 'ERROR'] - if level not in valid_levels: - raise RuntimeError - loglines = [x for x in loglines if x.level == level] - + loglines = [x for x in loglines if x.level.value == level.value] + if category is not None: + loglines = [x for x in loglines if x.category is not None and x.category.value == category.value] + if tool_uuid is not None: + loglines = [x for x in loglines if x.tool_uuid == tool_uuid] + if subsection is not None: + loglines = [x for x in loglines if x.subsection == subsection] + return loglines diff --git a/janis_core/settings/ingest/general.py b/janis_core/settings/ingest/general.py index a16aca503..6f6845122 100644 --- a/janis_core/settings/ingest/general.py +++ b/janis_core/settings/ingest/general.py @@ -1,3 +1,3 @@ SOURCE: str = '' # ingest source: one of 'galaxy' | 'cwl' | 'wdl' -SAFE_MODE: bool = True # master controller for whether exceptions halt program, or are handled. +SAFE_MODE: bool = False # master controller for whether exceptions halt program, or are handled. diff --git a/janis_core/tests/data/cwl/tools/requirements/BWA-Mem2-index.cwl b/janis_core/tests/data/cwl/tools/requirements/BWA-Mem2-index.cwl new file mode 100755 index 000000000..2f2c65639 --- /dev/null +++ b/janis_core/tests/data/cwl/tools/requirements/BWA-Mem2-index.cwl @@ -0,0 +1,45 @@ +#!/usr/bin/env cwl-runner +cwlVersion: v1.1 +class: CommandLineTool + +inputs: + sequences: + type: File + format: edam:format_1929 # FASTA + +hints: + DockerRequirement: + dockerPull: quay.io/biocontainers/bwa-mem2:2.2.1--hd03093a_2 + SoftwareRequirement: + packages: + bwa-mem2: + version: [ 2.2.1 ] + specs: [ https://identifiers.org/biotools/bwa-mem2 ] + +requirements: + InitialWorkDirRequirement: + listing: + - entry: $(inputs.sequences) + +baseCommand: [bwa-mem2, index] + +arguments: + - $(inputs.sequences) + +outputs: + indexed_sequences: + type: File + format: edam:format_1929 # FASTA + outputBinding: + glob: $(inputs.sequences.basename) + secondaryFiles: + - .bwt.2bit.64 + - .ann + - .amb + - .pac + - ".0123" + +$namespaces: + edam: http://edamontology.org/ +$schemas: + - https://edamontology.org/EDAM_1.18.owl diff --git a/janis_core/tests/data/cwl/tools/requirements/bismark_prepare_genome.cwl b/janis_core/tests/data/cwl/tools/requirements/bismark_prepare_genome.cwl new file mode 100755 index 000000000..c29290b28 --- /dev/null +++ b/janis_core/tests/data/cwl/tools/requirements/bismark_prepare_genome.cwl @@ -0,0 +1,75 @@ +#!/usr/bin/env cwl-runner +cwlVersion: v1.0 +class: CommandLineTool + +requirements: + InitialWorkDirRequirement: + listing: + - entry: inputs.genome_folder + writable: true + +hints: + DockerRequirement: + dockerPull: biowardrobe2/bismark:v0.0.2 + SoftwareRequirement: + packages: + bismark: + specs: [ https://identifiers.org/biotools/bismark ] + version: [ "0.0.2" ] + +inputs: + + genome_folder: + type: Directory + inputBinding: + position: 2 + label: "Genome folder" + doc: "Genome folder with FASTA files" + +outputs: + + indices_folder: + type: Directory + label: "Bismark indices folder" + doc: "Bismark generated indices folder" + outputBinding: + glob: "*" + +baseCommand: ["bismark_genome_preparation"] + +$namespaces: + s: http://schema.org/ + +$schemas: +- https://schema.org/version/latest/schemaorg-current-https.rdf + +s:name: "bismark_prepare_genome" +s:license: http://www.apache.org/licenses/LICENSE-2.0 + +s:creator: +- class: s:Organization + s:legalName: "Cincinnati Children's Hospital Medical Center" + s:location: + - class: s:PostalAddress + s:addressCountry: "USA" + s:addressLocality: "Cincinnati" + s:addressRegion: "OH" + s:postalCode: "45229" + s:streetAddress: "3333 Burnet Ave" + s:telephone: "+1(513)636-4200" + s:logo: "https://www.cincinnatichildrens.org/-/media/cincinnati%20childrens/global%20shared/childrens-logo-new.png" + s:department: + - class: s:Organization + s:legalName: "Allergy and Immunology" + s:department: + - class: s:Organization + s:legalName: "Barski Research Lab" + s:member: + - class: s:Person + s:name: Michael Kotliar + s:email: mailto:misha.kotliar@gmail.com + s:sameAs: + - id: http://orcid.org/0000-0002-6486-3898 + +doc: | + bismark_genome_preparation script generates indices using Bowtie2 aligners by default. diff --git a/janis_core/tests/data/cwl/tools/requirements/bzip2_compress.cwl b/janis_core/tests/data/cwl/tools/requirements/bzip2_compress.cwl new file mode 100755 index 000000000..744e5c4da --- /dev/null +++ b/janis_core/tests/data/cwl/tools/requirements/bzip2_compress.cwl @@ -0,0 +1,94 @@ +#!/usr/bin/env cwl-runner +cwlVersion: v1.0 +class: CommandLineTool + +requirements: + InitialWorkDirRequirement: + listing: + - entry: inputs.input_file + entryname: inputs.input_file.basename + writable: true + +hints: + DockerRequirement: + dockerPull: biowardrobe2/scidap:v0.0.2 + +inputs: + + input_file: + type: + - File + inputBinding: + position: 1 + doc: | + File to be compressed + + fast: + type: + - "null" + - boolean + inputBinding: + position: 2 + doc: | + Set block size to 100k + + best: + type: + - "null" + - boolean + inputBinding: + position: 3 + doc: | + Set block size to 900k + +outputs: + + output_file: + type: + - File + outputBinding: + glob: $(inputs.input_file.basename).bz2 + +baseCommand: [bzip2] + +$namespaces: + s: http://schema.org/ + +$schemas: +- https://schema.org/version/latest/schemaorg-current-https.rdf + +s:name: "bzip2_compress" +s:license: http://www.apache.org/licenses/LICENSE-2.0 + +s:creator: +- class: s:Organization + s:legalName: "Cincinnati Children's Hospital Medical Center" + s:location: + - class: s:PostalAddress + s:addressCountry: "USA" + s:addressLocality: "Cincinnati" + s:addressRegion: "OH" + s:postalCode: "45229" + s:streetAddress: "3333 Burnet Ave" + s:telephone: "+1(513)636-4200" + s:logo: "https://www.cincinnatichildrens.org/-/media/cincinnati%20childrens/global%20shared/childrens-logo-new.png" + s:department: + - class: s:Organization + s:legalName: "Allergy and Immunology" + s:department: + - class: s:Organization + s:legalName: "Barski Research Lab" + s:member: + - class: s:Person + s:name: Michael Kotliar + s:email: mailto:misha.kotliar@gmail.com + s:sameAs: + - id: http://orcid.org/0000-0002-6486-3898 + +doc: | + Tool compresses `input_file` to `*.bz2`. + Output file has the same basename, as input file, but with updated `.bz2` extension. `bzip2` exports compressed + output file alognside the input file. To prevent tool from failing, `input_file` should be staged into output + directory using `"writable": true`. Setting `writable: true` makes cwl-runner to make a copy of input file and + mount it to docker container with `rw` mode as part of `--workdir` (if set to false, the file staged into output + directory will be mounted to docker container separately with `ro` mode) diff --git a/janis_core/tests/data/cwl/tools/requirements/cellranger-aggr.cwl b/janis_core/tests/data/cwl/tools/requirements/cellranger-aggr.cwl new file mode 100755 index 000000000..b60a76e1c --- /dev/null +++ b/janis_core/tests/data/cwl/tools/requirements/cellranger-aggr.cwl @@ -0,0 +1,252 @@ +#!/usr/bin/env cwl-runner +cwlVersion: v1.0 +class: CommandLineTool + +requirements: + InlineJavascriptRequirement: + expressionLib: + - var get_label = function(i) { + var rootname = inputs.molecule_info_h5[i].basename.split('.').slice(0,-1).join('.'); + rootname = (rootname=="")?inputs.molecule_info_h5[i].basename:rootname; + return inputs.gem_well_labels?inputs.gem_well_labels[i].replace(/,/g, "_"):rootname; + }; + InitialWorkDirRequirement: + listing: | + ${ + var entry = "library_id,molecule_h5\n" + for (var i=0; i < inputs.molecule_info_h5.length; i++){ + entry += get_label(i) + "," + inputs.molecule_info_h5[i].path + "\n" + } + return [{ + "entry": entry, + "entryname": "metadata.csv" + }]; + } +hints: + DockerRequirement: + dockerPull: cumulusprod/cellranger:4.0.0 + +inputs: + molecule_info_h5: + type: File[] + format: edam:format_3590 # HDF5 + doc: | + Array of molecule-level information files in HDF5 format. + Outputs from "cellranger count" command + + gem_well_labels: + type: + - "null" + - string[] + doc: | + Array of GEM well identifiers to be used for labeling purposes only. + If not provided use rootnames of files from the molecule_info_h5 input + + normalization_mode: + type: + - "null" + - type: enum + name: "normalization" + symbols: ["none", "mapped"] + inputBinding: + position: 5 + prefix: "--normalize" + doc: | + Library depth normalization mode: mapped, none. + Default: mapped + + threads: + type: int? + inputBinding: + position: 6 + prefix: "--localcores" + doc: | + Set max cores the pipeline may request at one time. + Default: all available + + memory_limit: + type: int? + inputBinding: + position: 7 + prefix: "--localmem" + doc: | + Set max GB the pipeline may request at one time + Default: all available + + virt_memory_limit: + type: int? + inputBinding: + position: 8 + prefix: "--localvmem" + doc: | + Set max virtual address space in GB for the pipeline + Default: all available + + +outputs: + + web_summary_report: + type: File + format: iana:text/html + outputBinding: + glob: "aggregated/outs/web_summary.html" + doc: | + Aggregated run summary metrics and charts in HTML format + + metrics_summary_report_json: + type: File + format: iana:application/json + outputBinding: + glob: "aggregated/outs/summary.json" + doc: | + Aggregated run summary metrics in JSON format + + secondary_analysis_report_folder: + type: Directory + outputBinding: + glob: "aggregated/outs/analysis" + doc: | + Folder with secondary analysis results including dimensionality reduction, + cell clustering, and differential expression for aggregated results + + filtered_feature_bc_matrix_folder: + type: Directory + outputBinding: + glob: "aggregated/outs/filtered_feature_bc_matrix" + doc: | + Folder with aggregated filtered feature-barcode matrices containing only cellular barcodes in MEX format + + filtered_feature_bc_matrix_h5: + type: File + format: edam:format_3590 # HDF5 + outputBinding: + glob: "aggregated/outs/filtered_feature_bc_matrix.h5" + doc: | + Aggregated filtered feature-barcode matrices containing only cellular barcodes in HDF5 format + + raw_feature_bc_matrices_folder: + type: Directory + outputBinding: + glob: "aggregated/outs/raw_feature_bc_matrix" + doc: | + Folder with aggregated unfiltered feature-barcode matrices containing all barcodes in MEX format + + raw_feature_bc_matrices_h5: + type: File + format: edam:format_3590 # HDF5 + outputBinding: + glob: "aggregated/outs/raw_feature_bc_matrix.h5" + doc: | + Aggregated unfiltered feature-barcode matrices containing all barcodes in HDF5 format + + aggregation_metadata: + type: File + format: iana:text/csv + outputBinding: + glob: "aggregated/outs/aggregation.csv" + doc: | + Copy of the input aggregation CSV file + + loupe_browser_track: + type: File + outputBinding: + glob: "aggregated/outs/cloupe.cloupe" + doc: | + Loupe Browser visualization and analysis file for aggregated results + + stdout_log: + type: stdout + + stderr_log: + type: stderr + + +baseCommand: ["cellranger", "aggr", "--disable-ui", "--id", "aggregated", "--csv", "metadata.csv"] + + +stdout: cellranger_aggr_stdout.log +stderr: cellranger_aggr_stderr.log + + +$namespaces: + s: http://schema.org/ + edam: http://edamontology.org/ + iana: https://www.iana.org/assignments/media-types/ + +$schemas: +- https://schema.org/version/latest/schemaorg-current-https.rdf + +label: "Cellranger aggr - aggregates data from multiple Cellranger runs" +s:alternateName: "Cellranger aggr takes a list of cellranger count output files and produces a single feature-barcode matrix containing all the data" + +s:license: http://www.apache.org/licenses/LICENSE-2.0 + +s:creator: +- class: s:Organization + s:legalName: "Cincinnati Children's Hospital Medical Center" + s:location: + - class: s:PostalAddress + s:addressCountry: "USA" + s:addressLocality: "Cincinnati" + s:addressRegion: "OH" + s:postalCode: "45229" + s:streetAddress: "3333 Burnet Ave" + s:telephone: "+1(513)636-4200" + s:logo: "https://www.cincinnatichildrens.org/-/media/cincinnati%20childrens/global%20shared/childrens-logo-new.png" + s:department: + - class: s:Organization + s:legalName: "Allergy and Immunology" + s:department: + - class: s:Organization + s:legalName: "Barski Research Lab" + s:member: + - class: s:Person + s:name: Michael Kotliar + s:email: mailto:misha.kotliar@gmail.com + s:sameAs: + - id: http://orcid.org/0000-0002-6486-3898 + + +doc: | + Tool calls "cellranger aggr" command to combine output files from "cellranger count" + (the molecule_info.h5 file from each run) into a single feature-barcode matrix containing + all the data. When combining multiple GEM wells, the barcode sequences for each channel + are distinguished by a GEM well suffix appended to the barcode sequence. Each GEM well is + a physically distinct set of GEM partitions, but draws barcode sequences randomly from the + pool of valid barcodes, known as the barcode whitelist. To keep the barcodes unique when + aggregating multiple libraries, we append a small integer identifying the GEM well to the + barcode nucleotide sequence, and use that nucleotide sequence plus ID as the unique identifier + in the feature-barcode matrix. For example, AGACCATTGAGACTTA-1 and AGACCATTGAGACTTA-2 are + distinct cell barcodes from different GEM wells, despite having the same barcode nucleotide + sequence. This number, which tells us which GEM well this barcode sequence came from, is + called the GEM well suffix. The numbering of the GEM wells will reflect the order that the + GEM wells were provided in the "molecule_info_h5" and "gem_well_labels" inputs. + + When combining data from multiple GEM wells, the "cellranger aggr" pipeline automatically + equalizes the average read depth per cell between groups before merging. This approach avoids + artifacts that may be introduced due to differences in sequencing depth. It is possible to turn + off normalization or change the way normalization is done through the "normalization_mode" + input. The "none" value may be appropriate if you want to maximize sensitivity and plan to deal + with depth normalization in a downstream step. + + Parameters set by default: + --disable-ui - no need in any UI when running in Docker container + --id - hardcoded to `aggregated` as we want to return the content of the + outputs folder as separate outputs + + Skipped parameters: + --nosecondary + --dry + --noexit + --nopreflight + --description + --jobmode + --mempercore + --maxjobs + --jobinterval + --overrides + --uiport + + Not supported features: + - Batch correction caused by different versions of the Single Cell Gene Expression chemistry is + not supported as the generated metadata file doesn't include "batch" field. diff --git a/janis_core/tests/data/cwl/tools/requirements/component_segmentation.cwl b/janis_core/tests/data/cwl/tools/requirements/component_segmentation.cwl new file mode 100755 index 000000000..10987ef42 --- /dev/null +++ b/janis_core/tests/data/cwl/tools/requirements/component_segmentation.cwl @@ -0,0 +1,63 @@ +#!/usr/bin/env cwl-runner +cwlVersion: v1.0 +class: CommandLineTool + +hints: + ResourceRequirement: + coresMin: 8 + ramMin: 31000 + DockerRequirement: + dockerImageId: graph-genome-component_segmentation + dockerFile: {$include: component_segmentation.Dockerfile} + +requirements: + InlineJavascriptRequirement: {} + InitialWorkDirRequirement: + listing: | + ${ return [ { "class": "Directory", + "listing": inputs.bins, + "basename": "jsons" } ]; } + +inputs: + bins: + type: File[] + format: iana:application/json + + cells_per_file: + type: int? + label: Number of cells per file + doc: | + #number bins per file = #cells / #paths + Tip: Adjust this number to get chunk files output close to 2MB. + inputBinding: + prefix: --cells-per-file= + separate: false + + pangenome_sequence: + type: File? + format: edam:format_1929 # FASTA + doc: | + Fasta file containing the pangenome sequence + generated by odgi for this graph + inputBinding: + prefix: --fasta= + separate: false + +arguments: + - --out-folder=$(runtime.outdir)/results + - --parallel-cores=$(runtime.cores) + - --json-file=$(runtime.outdir)/jsons/* + +baseCommand: segmentation.py + +outputs: + colinear_components: + type: Directory + outputBinding: + glob: results + +$namespaces: + iana: https://www.iana.org/assignments/media-types/ + edam: http://edamontology.org/ +$schemas: + - https://edamontology.org/EDAM_1.18.owl diff --git a/janis_core/tests/test_ingestion_cwl.py b/janis_core/tests/test_ingestion_cwl.py index 4702fe46b..53f56d98d 100644 --- a/janis_core/tests/test_ingestion_cwl.py +++ b/janis_core/tests/test_ingestion_cwl.py @@ -71,14 +71,20 @@ from janis_core.ingestion.cwl.parsing.tool import CLTRequirementsParser from janis_core.ingestion.cwl.types import ingest_cwl_type from janis_core.ingestion.cwl import parse as parse_cwl -from janis_core.ingestion.cwl import CWlParser from janis_core.types import File from janis_core.types import GenericFileWithSecondaries -from janis_core.messages import get_messages +from janis_core.messages import configure_logging +from janis_core.messages import load_loglines +from janis_core.messages import ErrorCategory from janis_core import settings +def _do_setup() -> None: + configure_logging() + settings.ingest.SAFE_MODE = False + + CWL_TESTDATA_DIR = os.path.join(os.getcwd(), 'janis_core/tests/data/cwl') def _load_cwl_doc(filepath: str) -> Tuple[Any, Any]: @@ -91,18 +97,17 @@ def _load_cwl_doc(filepath: str) -> Tuple[Any, Any]: class TestBasicFunctionality(unittest.TestCase): def setUp(self) -> None: - settings.ingest.SAFE_MODE = False + _do_setup() def test_tool_bwa_index(self): filepath = f'{CWL_TESTDATA_DIR}/tools/BWA-Index.cwl' clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTParser(cwl_utils=cwl_utils, clt=clt, entity=clt, uuid='bwa_index') + parser = CLTParser(cwl_utils=cwl_utils, clt=clt, entity=clt) tool = parser.parse() - msgs = get_messages('bwa_index') + msgs = load_loglines() self.assertEqual(tool.id(), 'BWA_Index') self.assertEqual(len(tool._inputs), 3) self.assertEqual(len(tool._arguments), 2) - print() def test_tool_bwa_mem(self): pass @@ -111,6 +116,9 @@ def test_tool_bwa_mem(self): class TestRequirementsParsing(unittest.TestCase): + def setUp(self) -> None: + _do_setup() + def test_directories_to_create1(self): pass @@ -120,104 +128,154 @@ def test_directories_to_create2(self): def test_directories_to_create3(self): filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/prepare_fasta_db.cwl' clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, uuid='test_directories_to_create3') + parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, tool_uuid='test_directories_to_create3') reqs = parser.parse() - msgs = get_messages('test_directories_to_create3') + msgs = load_loglines(tool_uuid='test_directories_to_create3') print() - - def test_files_to_create1(self): + + def test_files_to_create0(self): filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/bundle_secondaryfiles.cwl' clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt) - reqs = parser.do_parse() - self.assertDictEqual(reqs['files_to_create'], {}) - - def test_files_to_create2(self): - # expression tool - filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/return_directory.cwl' - etool, cwl_utils = _load_cwl_doc(filepath) - - parser = CWlParser(filepath) - cltool = parser.parse_etool_to_cltool(etool) - - parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=cltool, entity=cltool, is_expression_tool=True) - reqs = parser.do_parse() - self.assertIn('return_directory.js', reqs['files_to_create']) - self.assertIsInstance(reqs['files_to_create']['return_directory.js'], str) + parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, tool_uuid='test_files_to_create0') + reqs = parser.parse() + msgs = load_loglines(tool_uuid='test_files_to_create0') + self.assertIn('inputs.primary_file', reqs['files_to_create']) + self.assertIsInstance(reqs['files_to_create']['inputs.primary_file'], InputSelector) + self.assertIn('inputs.secondary_files', reqs['files_to_create']) + self.assertIsInstance(reqs['files_to_create']['inputs.secondary_files'], InputSelector) - def test_files_to_create8(self): - # expression tool - filepath = f'{CWL_TESTDATA_DIR}/tools/expressiontools/check_value.cwl' - etool, cwl_utils = _load_cwl_doc(filepath) - - parser = CWlParser(filepath) - cltool = parser.parse_etool_to_cltool(etool) - - parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=cltool, entity=cltool, is_expression_tool=True) - reqs = parser.do_parse() - - # check js script file created, and is a string - self.assertIn('check_value.js', reqs['files_to_create']) - self.assertIsInstance(reqs['files_to_create']['check_value.js'], str) - - # check js script file modified correctly - script = reqs['files_to_create']['check_value.js'] - self.assertNotIn('"use strict";\nvar inputs=$(inputs);\nvar runtime=$(runtime);', script) - self.assertIn('var inputs = JSON.parse( process.argv[2] );\n', script) - - def test_files_to_create3(self): - filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/check_threshold.cwl' + def test_files_to_create1(self): + filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/bismark_prepare_genome.cwl' clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt) - reqs = parser.do_parse() - self.assertIn('check_threshold.py', reqs['files_to_create']) - self.assertIsInstance(reqs['files_to_create']['check_threshold.py'], str) - self.assertIn('#!/usr/bin/env python3', reqs['files_to_create']['check_threshold.py']) - - def test_files_to_create4(self): - filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/amplicon_architect.cwl' + parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, tool_uuid='test_files_to_create1') + reqs = parser.parse() + msgs = load_loglines(tool_uuid='test_files_to_create1') + + def test_files_to_create2(self): + filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/BWA-Mem2-index.cwl' clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, uuid='test_files_to_create4') + parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, tool_uuid='test_files_to_create2') reqs = parser.parse() - msgs = get_messages('test_files_to_create4') - self.assertIn('likely untranslated cwl / js in script: setup_vars.sh', msgs) + msgs = load_loglines(tool_uuid='test_files_to_create2') - def test_files_to_create5(self): - filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/control-freec-11-6-sbg.cwl' + def test_files_to_create3(self): + filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/bzip2_compress.cwl' clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, uuid='test_files_to_create5') + parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, tool_uuid='test_files_to_create3') reqs = parser.parse() - self.assertIn('config.txt', reqs['files_to_create']) - msgs = get_messages('test_files_to_create5') - self.assertIn('config.txt: js code to dynamically create runtime file. please address', msgs) - print() + msgs = load_loglines(tool_uuid='test_files_to_create3') - def test_files_to_create6(self): - filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/antismash_v4.cwl' + def test_files_to_create4(self): + filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/component_segmentation.cwl' clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, uuid='test_files_to_create6') + parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, tool_uuid='test_files_to_create4') reqs = parser.parse() - msgs = get_messages('test_files_to_create6') - print() + msgs = load_loglines(tool_uuid='test_files_to_create4') - def test_files_to_create7(self): - filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/add_crossmapped2resmapped.cwl' + def test_files_to_create5(self): + filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/cellranger-aggr.cwl' clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, uuid='test_files_to_create7') + parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, tool_uuid='test_files_to_create5') reqs = parser.parse() - msgs = get_messages('test_files_to_create7') - print() + msgs = load_loglines(tool_uuid='test_files_to_create5') + + # def test_files_to_create9(self): + # filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/bundle_secondaryfiles.cwl' + # clt, cwl_utils = _load_cwl_doc(filepath) + # parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt) + # reqs = parser.do_parse() + # self.assertDictEqual(reqs['files_to_create'], {}) + + # def test_files_to_create10(self): + # # expression tool + # filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/return_directory.cwl' + # etool, cwl_utils = _load_cwl_doc(filepath) + + # parser = CWlParser(filepath) + # cltool = parser.parse_etool_to_cltool(etool) + + # parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=cltool, entity=cltool, is_expression_tool=True) + # reqs = parser.do_parse() + # self.assertIn('return_directory.js', reqs['files_to_create']) + # self.assertIsInstance(reqs['files_to_create']['return_directory.js'], str) + + # def test_files_to_create11(self): + # filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/check_threshold.cwl' + # clt, cwl_utils = _load_cwl_doc(filepath) + # parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt) + # reqs = parser.do_parse() + # self.assertIn('check_threshold.py', reqs['files_to_create']) + # self.assertIsInstance(reqs['files_to_create']['check_threshold.py'], str) + # self.assertIn('#!/usr/bin/env python3', reqs['files_to_create']['check_threshold.py']) + + # def test_files_to_create13(self): + # filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/amplicon_architect.cwl' + # clt, cwl_utils = _load_cwl_doc(filepath) + # parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, tool_uuid='test_files_to_create13') + # reqs = parser.parse() + # msgs = get_messages('test_files_to_create13') + # self.assertIn('likely untranslated cwl / js in script: setup_vars.sh', msgs) + + # def test_files_to_create14(self): + # filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/control-freec-11-6-sbg.cwl' + # clt, cwl_utils = _load_cwl_doc(filepath) + # parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, tool_uuid='test_files_to_create14') + # reqs = parser.parse() + # self.assertIn('config.txt', reqs['files_to_create']) + # msgs = get_messages('test_files_to_create14') + # self.assertIn('config.txt: js code to dynamically create runtime file. please address', msgs) + # print() + # def test_files_to_create6(self): + # filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/antismash_v4.cwl' + # clt, cwl_utils = _load_cwl_doc(filepath) + # parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, tool_uuid='test_files_to_create6') + # reqs = parser.parse() + # msgs = get_messages('test_files_to_create6') + # print() + + # def test_files_to_create7(self): + # filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/add_crossmapped2resmapped.cwl' + # clt, cwl_utils = _load_cwl_doc(filepath) + # parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, tool_uuid='test_files_to_create7') + # reqs = parser.parse() + # msgs = get_messages('test_files_to_create7') + # print() + + # def test_files_to_create8(self): + # # expression tool + # filepath = f'{CWL_TESTDATA_DIR}/tools/expressiontools/check_value.cwl' + # etool, cwl_utils = _load_cwl_doc(filepath) + + # parser = CWlParser(filepath) + # cltool = parser.parse_etool_to_cltool(etool) + + # parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=cltool, entity=cltool, is_expression_tool=True) + # reqs = parser.do_parse() + + # # check js script file created, and is a string + # self.assertIn('check_value.js', reqs['files_to_create']) + # self.assertIsInstance(reqs['files_to_create']['check_value.js'], str) + + # # check js script file modified correctly + # script = reqs['files_to_create']['check_value.js'] + # self.assertNotIn('"use strict";\nvar inputs=$(inputs);\nvar runtime=$(runtime);', script) + # self.assertIn('var inputs = JSON.parse( process.argv[2] );\n', script) + def test_env_vars1(self): filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/amplicon_architect.cwl' clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt) + parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, tool_uuid='test') reqs = parser.do_parse() self.assertIn('AA_SRC', reqs['env_vars']) self.assertEqual(reqs['env_vars']['AA_SRC'], '/home/programs/AmpliconArchitect-master/src') -class TestFallbacksErrorHandling(unittest.TestCase): +class TestErrorHandlingFallbacks(unittest.TestCase): + + def setUp(self) -> None: + _do_setup() + @unittest.skip('not implemented') def test_workflow_input_parser(self) -> None: raise NotImplementedError @@ -261,6 +319,9 @@ def test_requirements_parser(self) -> None: class TestDatatypes(unittest.TestCase): + + def setUp(self) -> None: + _do_setup() def test_primitive_types(self) -> None: filepath = f'{CWL_TESTDATA_DIR}/tools/datatypes/basic_types.cwl' @@ -280,6 +341,30 @@ def test_primitive_types(self) -> None: } self.assertDictEqual(actual_types, expected_types) + def test_edam_types(self) -> None: + filepath = f'{CWL_TESTDATA_DIR}/tools/BWA-Index.cwl' + clt, cwl_utils = _load_cwl_doc(filepath) + parser = CLTParser(cwl_utils=cwl_utils, clt=clt, entity=clt) + jtool = parser.parse() + self.assertIsInstance(jtool, CommandToolBuilder) + + # inputs + actual_inp_types = {x.id(): x.input_type.__repr__() for x in jtool._inputs} + expected_inp_types = { + 'algo_type': 'Optional<String>', + 'index_name': 'Optional<String>', + 'sequences': 'Fasta', + } + self.assertDictEqual(actual_inp_types, expected_inp_types) + + # outputs + actual_out_types = {x.id(): x.output_type.__repr__() for x in jtool._outputs} + expected_out_types = { + 'index': 'GenericFileWithSecondaries [^.amb, ^.ann, ^.pac, ^.sa]', + } + self.assertDictEqual(actual_out_types, expected_out_types) + + def test_array_types(self) -> None: filepath = f'{CWL_TESTDATA_DIR}/tools/datatypes/array_types.cwl' clt, cwl_utils = _load_cwl_doc(filepath) @@ -320,67 +405,77 @@ def test_secondary_types(self) -> None: -class TestDatatypeErrorHandling(unittest.TestCase): +class TestErrorHandlingDatatypes(unittest.TestCase): + + def setUp(self) -> None: + _do_setup() def test_multiple_datatypes(self): settings.datatypes.ALLOW_UNPARSEABLE_DATATYPES = True from cwl_utils.parser import cwl_v1_0 as cwl_utils cwl_type = ['null', 'File', 'string'] - dtype, error_messages = ingest_cwl_type(cwl_type, cwl_utils, secondaries=None) + dtype = ingest_cwl_type(cwl_type, cwl_utils, None, tool_uuid='test', secondaries=None) self.assertIsInstance(dtype, File) - self.assertIn("entity supports multiple datatypes: ['File', 'String']. selected File as fallback. this may affect pipeline execution", error_messages) + lines = load_loglines(tool_uuid='test') + msgs = [x.message for x in lines] + self.assertIn("entity supports multiple datatypes: ['File', 'String']. selected File as fallback.", msgs) def test_unparseable_generic(self): settings.datatypes.ALLOW_UNPARSEABLE_DATATYPES = True from cwl_utils.parser import cwl_v1_0 as cwl_utils - datatype = 'kitten' - dtype, error_messages = ingest_cwl_type(datatype, cwl_utils, secondaries=None) + cwl_type = 'kitten' + dtype = ingest_cwl_type(cwl_type, cwl_utils, None, tool_uuid='test', secondaries=None) self.assertIsInstance(dtype, File) - self.assertIn('Unsupported datatype: kitten. Treated as a file.', error_messages) + lines = load_loglines(tool_uuid='test') + msgs = [x.message for x in lines] + self.assertIn('unsupported datatype: kitten. treated as generic File.', msgs) def test_enum_type(self): settings.datatypes.ALLOW_UNPARSEABLE_DATATYPES = True from cwl_utils.parser import cwl_v1_0 as cwl_utils - datatype = f'file://{CWL_TESTDATA_DIR}/tools/gatk_haplotype_tool.cwl#annotation_type' - dtype, error_messages = ingest_cwl_type(datatype, cwl_utils, secondaries=None) + cwl_type = f'file://{CWL_TESTDATA_DIR}/tools/gatk_haplotype_tool.cwl#annotation_type' + dtype = ingest_cwl_type(cwl_type, cwl_utils, None, tool_uuid='test', secondaries=None) self.assertIsInstance(dtype, File) - self.assertGreater(len(error_messages), 0) + lines = load_loglines(tool_uuid='test') + msgs = [x.message for x in lines] + self.assertIn('unsupported datatype: file:///home/grace/work/pp/translation/janis-core/janis_core/tests/data/cwl/tools/gatk_haplotype_tool.cwl#annotation_type. treated as generic File.', msgs) def test_unparseable_secondary_type(self): settings.datatypes.ALLOW_UNPARSEABLE_DATATYPES = True filepath = f'{CWL_TESTDATA_DIR}/tools/expressions/inputs_arguments.cwl' clt, cwl_utils = _load_cwl_doc(filepath) cinp = clt.inputs[1] - dtype, error_messages = ingest_cwl_type(cinp.type, cwl_utils, secondaries=cinp.secondaryFiles) + dtype = ingest_cwl_type(cinp.type, cwl_utils, None, tool_uuid='test', secondaries=cinp.secondaryFiles) self.assertIsInstance(dtype, GenericFileWithSecondaries) - self.assertGreater(len(error_messages), 0) + lines = load_loglines(tool_uuid='test') + msgs = [x.message for x in lines] + self.assertIn("could not parse secondaries format from javascript expression. treated as generic File with secondaries.", msgs) -class TestJavascriptExpressionErrorHandling(unittest.TestCase): +class TestErrorHandlingExpressions(unittest.TestCase): + + def setUp(self) -> None: + _do_setup() def test_resource_requirements(self): filepath = f'{CWL_TESTDATA_DIR}/tools/expressions/resources.cwl' clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTRequirementsParser(cwl_utils, clt=clt, entity=clt, uuid='placeholder') + parser = CLTRequirementsParser(cwl_utils, clt=clt, entity=clt, tool_uuid='test') requirements = parser.parse() - expected_time = '<js>[inputs.runtime_seconds, 86400].filter(function (inner) { return inner != null })[0]</js>' - self.assertEqual(requirements["time"], expected_time) - # self.assertIsInstance(requirements['time'], StringFormatter) - # self.assertEqual(requirements['time']._format, "{JANIS_CWL_TOKEN_1}") - # self.assertEqual(requirements['time'].kwargs["JANIS_CWL_TOKEN_1"], expected_time) + lines = load_loglines(tool_uuid='test', category=ErrorCategory.SCRIPT) + msgs = [x.message for x in lines] - expected_cpus = '<js>[inputs.runtime_cpu, (2 * inputs.outputFiles), 1].filter(function (inner) { return inner != null })[0]</js>' - self.assertEqual(requirements["cpus"], expected_cpus) - # self.assertIsInstance(requirements['cpus'], StringFormatter) - # self.assertEqual(requirements['cpus']._format, "{JANIS_CWL_TOKEN_1}") - # self.assertEqual(requirements['cpus'].kwargs["JANIS_CWL_TOKEN_1"], expected_cpus) - - expected_mem = '<js>Math.round((953.674 * [inputs.runtime_memory, ((inputs.inputFile.size / 1048576) > 1024) ? 4 : 2, 4].filter(function (inner) { return inner != null })[0]))</js>' - self.assertEqual(requirements["memory"], expected_mem) + self.assertEqual(requirements["memory"], '__TOKEN1__') + self.assertEqual(requirements["cpus"], '__TOKEN2__') + self.assertEqual(requirements["time"], '__TOKEN3__') + + self.assertIn('__TOKEN1__ = "$(Math.round((953.674 * [inputs.runtime_memory, ((inputs.inputFile.size / 1048576) > 1024) ? 4 : 2, 4].filter(function (inner) { return inner != null })[0])))"', msgs) + self.assertIn('__TOKEN2__ = "$([inputs.runtime_cpu, (2 * inputs.outputFiles), 1].filter(function (inner) { return inner != null })[0])"', msgs) + self.assertIn('__TOKEN3__ = "$([inputs.runtime_seconds, 86400].filter(function (inner) { return inner != null })[0])"', msgs) def test_initial_workdir_requirement_listing(self): filepath = f'{CWL_TESTDATA_DIR}/tools/expressions/requirements.cwl' @@ -388,7 +483,8 @@ def test_initial_workdir_requirement_listing(self): parser = CLTParser(cwl_utils, clt=clt, entity=clt) jtool = parser.parse() - msgs = get_messages(jtool.uuid) + lines = load_loglines(jtool.uuid) + msgs = [x.message for x in lines] self.assertIsNone(jtool.files_to_create()) expected_msg = 'directory required for runtime generated using cwl / js: <js>${ return [{"class": "Directory", "basename": "subdir", "listing": [ inputs.example ] }]}</js>. please address' @@ -400,7 +496,8 @@ def test_initial_workdir_requirement_dirent_entryname(self): parser = CLTParser(cwl_utils, clt=clt, entity=clt) jtool = parser.parse() - msgs = get_messages(jtool.uuid) + lines = load_loglines(jtool.uuid) + msgs = [x.message for x in lines] self.assertIsNone(jtool.files_to_create()) expected_msg = 'untranslated javascript expression in environment variable value' @@ -412,7 +509,8 @@ def test_initial_workdir_requirement_dirent_entry(self): parser = CLTParser(cwl_utils, clt=clt, entity=clt) jtool = parser.parse() - msgs = get_messages(jtool.uuid) + lines = load_loglines(jtool.uuid) + msgs = [x.message for x in lines] self.assertIsNone(jtool.files_to_create()) expected_msg = 'untranslated javascript expression in environment variable value' @@ -421,102 +519,38 @@ def test_initial_workdir_requirement_dirent_entry(self): def test_envvar_requirement_envdef_envvalue(self): filepath = f'{CWL_TESTDATA_DIR}/tools/expressions/requirements.cwl' clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTParser(cwl_utils, clt=clt, entity=clt) jtool = parser.parse() + lines = load_loglines(jtool.uuid) + msgs = [x.message for x in lines] self.assertEqual(jtool.env_vars()['test1'], '<js>9 + 10</js>') - def test_clt_stdout(self): - filepath = f'{CWL_TESTDATA_DIR}/tools/expressions/streams.cwl' - clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTParser(cwl_utils, clt=clt, entity=clt) - jtool = parser.parse() - - arg = jtool.arguments()[1] - self.assertEqual(arg.prefix, '>') - self.assertEqual(arg.value, 'stdout.txt') - - msgs = get_messages(jtool.uuid) - expected_msg = 'untranslated javascript expression in stdout filename. used stdout.txt as fallback' - self.assertIn(expected_msg, msgs) - - def test_clt_stderr(self): - filepath = f'{CWL_TESTDATA_DIR}/tools/expressions/streams.cwl' - clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTParser(cwl_utils, clt=clt, entity=clt) - jtool = parser.parse() - - arg = jtool.arguments()[0] - self.assertEqual(arg.prefix, '2>') - self.assertEqual(arg.value, 'stderr.txt') - - msgs = get_messages(jtool.uuid) - expected_msg = 'untranslated javascript expression in stdout filename. used stdout.txt as fallback' - self.assertIn(expected_msg, msgs) - - def test_clt_stdin(self): - filepath = f'{CWL_TESTDATA_DIR}/tools/expressions/streams.cwl' - clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTParser(cwl_utils, clt=clt, entity=clt) - jtool = parser.parse() - - arg = jtool.arguments()[2] - self.assertEqual(arg.prefix, '<') - self.assertIsInstance(arg.value, InputSelector) - self.assertEqual(arg.value.input_to_select, 'inFile') - def test_clt_argument_valuefrom(self): filepath = f'{CWL_TESTDATA_DIR}/tools/expressions/inputs_arguments.cwl' clt, cwl_utils = _load_cwl_doc(filepath) - - parser = CLTArgumentParser(cwl_utils, clt=clt, entity=clt.arguments[0]) - arg = parser.parse() - expected_value = '.' - self.assertEqual(arg.value, expected_value) - - parser = CLTArgumentParser(cwl_utils, clt=clt, entity=clt.arguments[1]) - arg = parser.parse() - self.assertIsInstance(arg.value, BasenameOperator) - self.assertEquals(arg.value.args[0].input_to_select, 'inFile') - - parser = CLTArgumentParser(cwl_utils, clt=clt, entity=clt.arguments[2]) - arg = parser.parse() - expected_value = '--noextract' - self.assertEqual(arg.value, expected_value) - - parser = CLTArgumentParser(cwl_utils, clt=clt, entity=clt.arguments[3]) - arg = parser.parse() - expected_value = '<js>1+1</js>' - self.assertEqual(arg.value, expected_value) - - parser = CLTArgumentParser(cwl_utils, clt=clt, entity=clt.arguments[4]) - arg = parser.parse() - expected_value = '<js>"/foo/bar/baz".split(\'/\').slice(-1)[0]</js>' - self.assertEqual(arg.value, expected_value) - # self.assertIsInstance(arg.value, StringFormatter) - # self.assertEqual(arg.value._format, '{JANIS_CWL_TOKEN_1}') - # self.assertEqual(arg.value.kwargs['JANIS_CWL_TOKEN_1'], expected_value) - parser = CLTArgumentParser(cwl_utils, clt=clt, entity=clt.arguments[5]) + parser = CLTArgumentParser(cwl_utils, clt=clt, entity=clt.arguments[5], tool_uuid='test') arg = parser.parse() - expected_value = '<js>${ var r = []; for (var i = 10; i >= 1; i--) { r.push(i); } return r;}</js>' - self.assertEqual(arg.value, expected_value) + lines = load_loglines(tool_uuid='test') + msgs = [x.message for x in lines] + self.assertEqual(arg.value, '__TOKEN1__') + self.assertIn('__TOKEN1__ = "${ var r = []; for (var i = 10; i >= 1; i--) { r.push(i); } return r;}"', msgs) @unittest.skip("TODO leave log_info message") def test_clt_input_format(self): # don't need to worry about File format in cwl - type is ingested as File filepath = f'{CWL_TESTDATA_DIR}/tools/expressions/inputs_arguments.cwl' clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTInputParser(cwl_utils, clt=clt, entity=clt.inputs[3]) + parser = CLTInputParser(cwl_utils, clt=clt, entity=clt.inputs[3], tool_uuid='test') tinput = parser.parse() def test_clt_input_secondaryfiles(self): filepath = f'{CWL_TESTDATA_DIR}/tools/expressions/inputs_arguments.cwl' clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTInputParser(cwl_utils, clt=clt, entity=clt.inputs[1]) + parser = CLTInputParser(cwl_utils, clt=clt, entity=clt.inputs[1], tool_uuid='test') tinput = parser.parse() self.assertIsInstance(tinput.input_type, GenericFileWithSecondaries) - error_msgs = get_messages(tinput.uuid) + error_msgs = load_loglines(tinput.uuid) expected_msg = "could not parse secondaries format from javascript expressions: $(self.basename + self.nameext.replace('m','i'))" self.assertIn(expected_msg, error_msgs) @@ -524,7 +558,7 @@ def test_clt_input_inputbinding_valuefrom(self): filepath = f'{CWL_TESTDATA_DIR}/tools/expressions/inputs_arguments.cwl' clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTInputParser(cwl_utils, clt=clt, entity=clt.inputs[5]) + parser = CLTInputParser(cwl_utils, clt=clt, entity=clt.inputs[5], tool_uuid='test') tinput = parser.parse() expected_value = '<js>[inputs.runtime_cpu, 16, 1].filter(function (inner) { return inner != null })[0]</js>' self.assertEqual(tinput.value, expected_value) @@ -534,28 +568,28 @@ def test_clt_output_format(self): # don't need to worry about File format in cwl - type is ingested as File filepath = f'{CWL_TESTDATA_DIR}/tools/expressions/outputs.cwl' clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTOutputParser(cwl_utils, clt=clt, entity=clt.outputs[1]) + parser = CLTOutputParser(cwl_utils, clt=clt, entity=clt.outputs[1], tool_uuid='test') tout = parser.parse() def test_clt_output_secondaryfiles(self): filepath = f'{CWL_TESTDATA_DIR}/tools/expressions/outputs.cwl' clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTOutputParser(cwl_utils, clt=clt, entity=clt.outputs[1]) + parser = CLTOutputParser(cwl_utils, clt=clt, entity=clt.outputs[1], tool_uuid='test') tout = parser.parse() self.assertIsInstance(tout.output_type, GenericFileWithSecondaries) - error_msgs = get_messages(tout.uuid) + error_msgs = load_loglines(tout.uuid) expected_msg = "could not parse secondaries format from javascript expressions: $(inputs.bam.basename + inputs.bam.nameext.replace('m','i'))" self.assertIn(expected_msg, error_msgs) def test_clt_output_outputbinding_glob(self): filepath = f'{CWL_TESTDATA_DIR}/tools/expressions/outputs.cwl' clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTOutputParser(cwl_utils, clt=clt, entity=clt.outputs[0]) + parser = CLTOutputParser(cwl_utils, clt=clt, entity=clt.outputs[0], tool_uuid='test') tout = parser.parse() self.assertIsInstance(tout.selector, WildcardSelector) self.assertEqual(tout.selector.wildcard, 'output.txt') - parser = CLTOutputParser(cwl_utils, clt=clt, entity=clt.outputs[2]) + parser = CLTOutputParser(cwl_utils, clt=clt, entity=clt.outputs[2], tool_uuid='test') tout = parser.parse() self.assertIsInstance(tout.selector, StringFormatter) self.assertEqual(tout.selector._format, '{JANIS_CWL_TOKEN_1}.trimmed.fastq') @@ -564,7 +598,7 @@ def test_clt_output_outputbinding_glob(self): def test_clt_output_outputbinding_outputEval(self): filepath = f'{CWL_TESTDATA_DIR}/tools/expressions/outputs.cwl' clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTOutputParser(cwl_utils, clt=clt, entity=clt.outputs[3]) + parser = CLTOutputParser(cwl_utils, clt=clt, entity=clt.outputs[3], tool_uuid='test') tout = parser.parse() self.assertIsInstance(tout.selector, ReadContents) self.assertEqual(tout.selector.args[0], '<js>self[0]</js>') @@ -580,7 +614,7 @@ def test_wf_input_secondaryfiles(self): winp = wf.input_nodes['bambai_pair2'] self.assertIsInstance(winp.datatype, GenericFileWithSecondaries) self.assertEqual(len(winp.datatype.secondaries), 0) - error_msgs = get_messages(winp.uuid) + error_msgs = load_loglines(winp.uuid) expected_msg = "could not parse secondaries format from javascript expressions: $(self.basename + self.nameext.replace('m','i'))" self.assertIn(expected_msg, error_msgs) @@ -597,7 +631,7 @@ def test_step_input_valuefrom(self): self.assertIn(inp_name, jstep.sources) self.assertEqual(jstep.sources[inp_name].source_map[0].source.input_node.default, "<js>$(inputs.prefix_str + '_' + inputs.suffix_str)</js>") - msgs = get_messages(jstep.uuid) + msgs = load_loglines(jstep.uuid) expected_msg = "'text' input value contains untranslated javascript expression: <js>$(inputs.prefix_str + '_' + inputs.suffix_str)</js>" self.assertIn(expected_msg, msgs) @@ -612,7 +646,7 @@ def test_step_input_valuefrom(self): self.assertIn(inp_name, jstep.sources) self.assertIsNone(jstep.sources[inp_name].source_map[0].source.input_node.default) - msgs = get_messages(jstep.uuid) + msgs = load_loglines(jstep.uuid) self.assertIn('\'target_filename\' input value contains untranslated javascript expression: <js>$(inputs.bambai_pair1.location.split(\'/\').slice(-1)[0].split(\'.\').slice(0,-1).join(\'.\')+"_default_s_enhcr.png")</js>', msgs) @unittest.skip("TODO leave log_info message") @@ -627,7 +661,7 @@ def test_wf_output_secondaryfiles(self): winp = wf.output_nodes['out3'] self.assertIsInstance(winp.datatype, GenericFileWithSecondaries) self.assertEqual(len(winp.datatype.secondaries), 0) - error_msgs = get_messages(winp.uuid) + error_msgs = load_loglines(winp.uuid) expected_msg = "could not parse secondaries format from javascript expressions: $(self.basename + self.nameext.replace('m','i'))" self.assertIn(expected_msg, error_msgs) @@ -638,6 +672,9 @@ def test_wf_output_secondaryfiles(self): class TestIdentifiers(unittest.TestCase): + def setUp(self) -> None: + _do_setup() + def test_filename_id(self): ident = f'file://{CWL_TESTDATA_DIR}/workflows/super_enhancer_wf.cwl' ref = get_cwl_reference(ident) @@ -671,6 +708,9 @@ def test_inline_step_id(self): class TestPreprocessing(unittest.TestCase): + def setUp(self) -> None: + _do_setup() + def test_convert_cwl_types_to_python_clt(self): doc = f'{CWL_TESTDATA_DIR}/tools/gatk_haplotype_caller.cwl' clt = load_cwl_document(doc) @@ -693,6 +733,9 @@ def test_inline_cltool_ids(self): class TestDocumentLoading(unittest.TestCase): + def setUp(self) -> None: + _do_setup() + def test_load_cwl_document(self): doc = f'{CWL_TESTDATA_DIR}/workflows/super_enhancer_wf.cwl' workflow = load_cwl_document(doc) @@ -707,65 +750,68 @@ def test_load_cwl_version(self): class TestParseExpression(unittest.TestCase): + def setUp(self) -> None: + _do_setup() + # objects def test_input(self): expr = "$(inputs.sequences)" - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, InputSelector) self.assertEqual("sequences", result.input_to_select) expr = "$(inputs.reads_1)" - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, InputSelector) self.assertEqual("reads_1", result.input_to_select) - + def test_self(self): # should return None, False. # can't do much about CWL obj.self. expr = "$(self.location.split('/'))" - result, success = parse_expression(expr) - self.assertIsNone(result) - self.assertFalse(success) + result, success = parse_expression(expr, 'blank') + self.assertIsInstance(result, str) + self.assertEqual(result, '__TOKEN1__') # runtime def test_runtime_outdir(self): expr = "$(runtime.outdir)" - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, str) self.assertEqual(result, '.') def test_runtime_tmpdir(self): expr = "$(runtime.tmpdir)" - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, str) self.assertEqual(result, '.') def test_runtime_outdir_size(self): expr = "$(runtime.outdirSize)" - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, int) self.assertEqual(result, 1024) def test_runtime_tmpdir_size(self): expr = "$(runtime.tmpdirSize)" - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, int) self.assertEqual(result, 1024) def test_runtime_cores(self): expr = "$(runtime.cores)" - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, CpuSelector) def test_runtime_ram(self): expr = "$(runtime.ram)" - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, MemorySelector) # logical - misc def test_if(self): expr = '$(inputs.index_name !== null ? inputs.index_name : inputs.sequences.nameroot)' - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, If) self.assertIsInstance(result.args[0], InequalityOperator) self.assertIsInstance(result.args[0].args[0], InputSelector) @@ -776,136 +822,136 @@ def test_if(self): def test_group(self): expr = '$((1 + 2))' - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, GroupOperator) self.assertIsInstance(result.args[0], AddOperator) # logical - two value def test_and(self): expr = '$(inputs.filelist && inputs.filelist_mates)' - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, AndOperator) def test_or(self): expr = '$(inputs.filelist || inputs.filelist_mates)' - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, OrOperator) def test_eq(self): expr = '$(inputs.depth == "-bg")' - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, EqualityOperator) expr = '$(inputs.depth === "-bg")' - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, EqualityOperator) def test_ineq(self): expr = '$(inputs.depth != "-bg")' - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, InequalityOperator) expr = '$(inputs.depth !== "-bg")' - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, InequalityOperator) def test_gte(self): expr = '$(inputs.depth >= 20)' - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, GteOperator) def test_gt(self): expr = '$(inputs.depth > 20)' - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, GtOperator) def test_lte(self): expr = '$(inputs.depth <= 20)' - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, LteOperator) def test_lt(self): expr = '$(inputs.depth < 20)' - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, LtOperator) def test_add(self): expr = '$(1 + 2)' - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, AddOperator) def test_sub(self): expr = '$(1 - 2)' - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, SubtractOperator) def test_mul(self): expr = '$(1 * 2)' - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, MultiplyOperator) def test_div(self): expr = '$(1 / 2)' - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, DivideOperator) # logical - math def test_floor(self): expr = '$(Math.floor(2.3))' - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, FloorOperator) def test_ceil(self): expr = '$(Math.ceil(2.3))' - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, CeilOperator) def test_round(self): expr = '$(Math.round(2.3))' - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, RoundOperator) # attributes - file def test_file_basename(self): expr = "$(inputs.reads_1.basename)" - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, BasenameOperator) self.assertIsInstance(result.args[0], InputSelector) def test_file_nameroot(self): expr = "$(inputs.reads_1.nameroot)" - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, NamerootOperator) self.assertIsInstance(result.args[0], InputSelector) def test_file_nameext(self): expr = "$(inputs.reads_1.nameext)" - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, NameextOperator) self.assertIsInstance(result.args[0], InputSelector) def test_file_dirname(self): expr = "$(inputs.reads_1.dirname)" - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, DirnameOperator) self.assertIsInstance(result.args[0], InputSelector) def test_file_size(self): expr = "$(inputs.reads_1.size)" - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, FileSizeOperator) self.assertIsInstance(result.args[0], InputSelector) def test_file_contents(self): expr = "$(inputs.reads_1.contents)" - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, ReadContents) self.assertIsInstance(result.args[0], InputSelector) # methods - array def test_arr_join(self): expr = "$(inputs.reads.join('.'))" - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, JoinOperator) self.assertIsInstance(result.args[0], InputSelector) self.assertIsInstance(result.args[1], str) @@ -913,7 +959,7 @@ def test_arr_join(self): def test_arr_slice(self): expr = "$(inputs.reads.slice(0,-1))" - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, SliceOperator) self.assertIsInstance(result.args[0], InputSelector) self.assertIsInstance(result.args[1], int) @@ -922,7 +968,7 @@ def test_arr_slice(self): self.assertEqual(result.args[2], -1) expr = "$(inputs.reads.slice(3))" - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, SliceOperator) self.assertIsInstance(result.args[0], InputSelector) self.assertIsInstance(result.args[1], int) @@ -931,19 +977,19 @@ def test_arr_slice(self): def test_arr_length(self): expr = "$(inputs.readgroups.length)" - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, LengthOperator) self.assertIsInstance(result.args[0], InputSelector) def test_arr_flatten(self): expr = "$(inputs.readgroups.flat())" - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, FlattenOperator) self.assertIsInstance(result.args[0], InputSelector) def test_arr_index(self): expr = "$(inputs.readgroups[1])" - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, IndexOperator) self.assertIsInstance(result.args[0], InputSelector) self.assertIsInstance(result.args[1], int) @@ -952,7 +998,7 @@ def test_arr_index(self): # methods - string def test_str_split(self): expr = "$(inputs.sequences.split('/'))" - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, SplitOperator) self.assertIsInstance(result.args[0], InputSelector) self.assertIsInstance(result.args[1], str) @@ -960,7 +1006,7 @@ def test_str_split(self): def test_str_replace(self): expr = "$(inputs.name.replace(/ /g,''))" - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, ReplaceOperator) self.assertIsInstance(result.args[0], InputSelector) self.assertIsInstance(result.args[1], str) @@ -971,7 +1017,7 @@ def test_str_replace(self): # complex cases def test_complex_stringformatter(self): expr = "$(inputs.reads_1.basename).trimmed$(inputs.reads_1.nameext)" - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, StringFormatter) self.assertEqual(result._format, '{token1}.trimmed{token2}') self.assertIsInstance(result.kwargs['token1'], BasenameOperator) @@ -979,7 +1025,7 @@ def test_complex_stringformatter(self): def test_complex_methodchain(self): expr = "$(inputs.index.split('/').slice(-1)[0].split('.').slice(-1)[0])" - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, IndexOperator) self.assertIsInstance(result.args[0], SliceOperator) self.assertEqual(result.args[1], 0) @@ -1004,14 +1050,14 @@ def test_complex_methodchain(self): def test_complex_concat1(self): expr = "$('> ' + 'stats.log')" - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, AddOperator) self.assertEqual(result.args[0], "'> '") self.assertEqual(result.args[1], "'stats.log'") def test_complex_concat2(self): expr = "$('> ' + inputs.index_base_name + '.log')" - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, AddOperator) self.assertIsInstance(result.args[0], AddOperator) self.assertEqual(result.args[1], "'.log'") @@ -1022,7 +1068,7 @@ def test_complex_concat2(self): def test_complex_math1(self): expr = "$(Math.ceil(inputs.target.size/(1024*1024*1024) + 20))" - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, CeilOperator) self.assertIsInstance(result.args[0], AddOperator) result = result.args[0] @@ -1039,25 +1085,30 @@ def test_complex_math1(self): self.assertEqual(result.args[0], 1024) self.assertEqual(result.args[1], 1024) + def test_complex_stringmethods(self): + expr = '$("/foo/bar/baz".split(\'/\').slice(-1)[0])' + result, success = parse_expression(expr, 'blank') + print() + # javascript blocks def test_block_number(self): expr = "${return 16 }" - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertEqual(16, result) def test_block_number_with_semicolon(self): expr = "${return 16;}" - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertEqual(16, result) def test_block_number_with_spaces(self): expr = "${ return 80000 }" - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertEqual(80000, result) def test_block_string(self): expr = '${ return "over 80000" }' - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertEqual('"over 80000"', result) def test_block_if(self): @@ -1069,7 +1120,7 @@ def test_block_if(self): return inputs.output_name; } }""" - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, If) self.assertIsInstance(result.args[0], GroupOperator) cond_check = result.args[0].args[0] @@ -1083,7 +1134,7 @@ def test_block_if(self): def test_block_complex(self): expr = '${ return(parseInt(runtime.ram/runtime.cores-100).toString() + "M") }' - result, success = parse_expression(expr) + result, success = parse_expression(expr, 'blank') self.assertIsInstance(result, AddOperator) expected = '(str(int(((inputs.runtime_memory / inputs.runtime_cpu) - 100))) + "M")' actual = str(result) diff --git a/janis_core/translations/wdl/main.py b/janis_core/translations/wdl/main.py index 74aea6dcd..1fbed442d 100644 --- a/janis_core/translations/wdl/main.py +++ b/janis_core/translations/wdl/main.py @@ -22,7 +22,7 @@ from typing import List, Dict, Any, Set, Tuple, Optional from janis_core import settings -from janis_core.messages import get_messages +from janis_core.messages import load_loglines from janis_core.code.codetool import CodeTool from janis_core.graph.steptaginput import Edge, StepTagInput @@ -1605,7 +1605,7 @@ def translate_step_node( for key, val in resource_overrides.items(): inputs_details[key] = {'value': val} - messages = get_messages(step.id()) # uuid is currently using janis-core identifiers + messages = load_loglines(step.id()) # uuid is currently using janis-core identifiers render_comments = settings.translate.RENDER_COMMENTS call = wdl.WorkflowCall(step_identifier, step.id(), inputs_details, messages, render_comments) diff --git a/janis_core/workflow/workflow.py b/janis_core/workflow/workflow.py index 952e2dc28..1dce18875 100644 --- a/janis_core/workflow/workflow.py +++ b/janis_core/workflow/workflow.py @@ -5,7 +5,9 @@ from typing import List, Union, Optional, Dict, Tuple, Any, Set, Iterable, Type from uuid import uuid4 -from janis_core.messages import log_warning +from janis_core.messages import log_error +from janis_core.messages import ErrorCategory + from janis_core import settings from janis_core.graph.node import Node, NodeType from janis_core.graph.steptaginput import StepTagInput @@ -753,15 +755,14 @@ def step( if any(f not in ins for f in fields): if settings.graph.ALLOW_UNKNOWN_SCATTER_FIELDS: msg = f"This task is supposed to run in parallel across {fields}, but some of these are not task inputs." - log_warning(self.uuid, msg) - raise Exception("should this be checked?") + log_error(self.uuid, msg, ErrorCategory.PLUMBING) else: # if there is a field not in the input map, we have a problem extra_keys = ", ".join(f"'{f}'" for f in (fields - ins)) - raise Exception( - f"Couldn't scatter the field(s) {extra_keys} for step '{identifier}' " - f"as they are not inputs to the tool '{tool.id()}'" - ) + msg = f"Couldn't scatter the field(s) {extra_keys} for step '{identifier}' " +\ + f"as they are not inputs to the tool '{tool.id()}'" + log_error(self.uuid, msg, ErrorCategory.FATAL) + raise RuntimeError(msg) tool.workflow = self inputs = tool.inputs_map() diff --git a/notes.txt b/notes.txt index 2fca28f89..13de3889b 100644 --- a/notes.txt +++ b/notes.txt @@ -1,37 +1,79 @@ ---------------------- ---- CWL JS PARSER --- ---------------------- -$(self.dirname)/$(self.nameroot) # just weird? -$(self.location.split('/')) -$(self.location.split('/').slice(-1)[0]) -$(self.path.split('.').slice(0,-2).join('.')) -$(self === "name" ? true : false) -$(self === 'name' ? true : false).fastq -$(self === "name" ? true : false).fastq$(inputs.index_name.ext) -$(inputs.graph.nameroot).$(self) # wtf? -$(default_output_filename(".bw")) # defined function call - -messages -- triggered by: parser exceptions -- handled by: replace with '__TOKEN1__' & user message - -translators -- ensure correct unwrapping with new format. + + +---------------- +--- MESSAGES --- +---------------- +CWL TODO +- main.py -> workflow parsing? +- VERSION +- EXPERIMENTAL +- FATAL + +WORKFLOW + +### untranslated javascript ### +__TOKEN1__ = "$(inputs.myfile)" +__TOKEN2__ = "$(inputs.reads2)" + +### errors / warnings ### +# inputs --- +# error: [FALLBACK] reads1: parse failed. used fallback. +# warning: [DATATYPE] reads2: WDL structs unsupported, used File instead. +# warning: [DATAFLOW] reads2: unused input + +# step1 --- +# error: [FALLBACK] step1: parse failed. used fallback. +# error: [DATAFLOW] step1,reads2: could not connect sources. ------------------ --- CWL BOOFED --- ------------------ -no base command -- samtools_index.cwl [check] +get basic functionality back online +- workflow parsing +- InitalWorkDirRequirement + +-------------- +--- CWL JS --- +-------------- + +locations: CommandLineTool +- InlineJavascriptRequirement:expressionLib +- InitialWorkDirRequirement +- InitialWorkDirRequirement:Dirent:entry +- InitialWorkDirRequirement:Dirent:entryname + +locations: Workflow +- WorkflowOutputParameter:outputBinding:glob? +- WorkflowOutputParameter:outputBinding:outputEval? +- WorkflowStepInput:valueFrom +- InlineJavascriptRequirement:expressionLib + +js expressions: workflow context +- call parse_expression() during workflow parsing! +- workflow input +- workflow output? +- step input? +- step conditions? +- step output? + +js expressions: translators +- ensure correct unwrapping with new format. + +js expressions: self +- $(self.dirname)/$(self.nameroot) # just weird? +- $(self.location.split('/')) +- $(self.location.split('/').slice(-1)[0]) +- $(self.path.split('.').slice(0,-2).join('.')) +- $(self === "name" ? true : false) +- $(self === 'name' ? true : false).fastq +- $(self === "name" ? true : false).fastq$(inputs.index_name.ext) +- $(inputs.graph.nameroot).$(self) # wtf? +- $(default_output_filename(".bw")) # defined function call -untranslated javascript: -- '$(((inputs.index_name !== null) ? inputs.index_name : inputs.sequences.nameroot))' -- $(inputs.reads_1.basename).trimmed$(inputs.reads_1.nameext) -- $(inputs.reads_1.format): add support for edam formats? add as a comment? eg edam:format_2359 -> "BAM" ----------------- --- WDL-lexer --- From 0719cc3a2a50c48e64cf63bfd7f370c657d370d2 Mon Sep 17 00:00:00 2001 From: Grace Hall <graceavahall@gmail.com> Date: Thu, 2 Nov 2023 00:04:38 +1100 Subject: [PATCH 13/32] CWL ingest upgraded. --- janis_core/graph/steptaginput.py | 2 + janis_core/ingestion/cwl/expressions/main.py | 14 +- janis_core/ingestion/cwl/main.py | 29 +- janis_core/ingestion/cwl/parsing/tool.py | 23 +- janis_core/ingestion/cwl/parsing/workflow.py | 26 +- janis_core/operators/standard.py | 4 +- .../tools/requirements/cellranger-aggr.cwl | 12 - janis_core/tests/data/cwl/tools/wc.cwl | 31 ++ .../workflows/conditional_execution/align.cwl | 30 ++ .../conditional_execution.cwl | 60 +++ .../extract_metadata.cwl | 29 ++ .../tests/data/cwl/workflows/scatter_wf.cwl | 20 + janis_core/tests/test_ingestion_cwl.py | 379 ++++++++---------- janis_core/workflow/workflow.py | 1 + notes.txt | 36 +- 15 files changed, 450 insertions(+), 246 deletions(-) create mode 100644 janis_core/tests/data/cwl/tools/wc.cwl create mode 100644 janis_core/tests/data/cwl/workflows/conditional_execution/align.cwl create mode 100755 janis_core/tests/data/cwl/workflows/conditional_execution/conditional_execution.cwl create mode 100644 janis_core/tests/data/cwl/workflows/conditional_execution/extract_metadata.cwl create mode 100644 janis_core/tests/data/cwl/workflows/scatter_wf.cwl diff --git a/janis_core/graph/steptaginput.py b/janis_core/graph/steptaginput.py index 4c528cfa1..58078cb86 100644 --- a/janis_core/graph/steptaginput.py +++ b/janis_core/graph/steptaginput.py @@ -2,6 +2,7 @@ from janis_core.types import get_instantiated_type from janis_core.operators import Selector +from janis_core.operators import Operator from janis_core.graph.node import Node, NodeType from janis_core.tool.tool import TInput from janis_core.utils import first_value @@ -115,6 +116,7 @@ def __init__(self, finish: Node, finish_tag: str): self.ftag: Optional[str] = finish_tag self.multiple_inputs = False self.source_map: list[Edge] = [] + self.operator: Optional[Operator] = None def add_source(self, operator: Selector, should_scatter: Optional[bool]=None) -> Edge: """ diff --git a/janis_core/ingestion/cwl/expressions/main.py b/janis_core/ingestion/cwl/expressions/main.py index e8484c0b2..bf6b5b012 100644 --- a/janis_core/ingestion/cwl/expressions/main.py +++ b/janis_core/ingestion/cwl/expressions/main.py @@ -14,7 +14,13 @@ GRAMMAR_PATH = f'{os.path.dirname(os.path.abspath(__file__))}/grammar.ebnf' -def parse_expression(expr: str, tool_uuid: str, context: str='clt') -> Any: +def parse_expression( + expr: str, + tool_uuid: str, + context: str='clt', + error_token_override: Optional[str]=None + ) -> Any: + if expr is None: return None, True @@ -43,6 +49,12 @@ def parse_expression(expr: str, tool_uuid: str, context: str='clt') -> Any: # unsuccessful parse # expr already has token + if error_token_override: + msg = f'{error_token_override}: {expr}' + log_error(tool_uuid, msg, ErrorCategory.SCRIPT) + # this is shit + return None, False + loglines = load_loglines(category=ErrorCategory.SCRIPT, tool_uuid=tool_uuid) token = get_token_for_expr(expr, loglines) if token: diff --git a/janis_core/ingestion/cwl/main.py b/janis_core/ingestion/cwl/main.py index 483c064dc..797ea137a 100755 --- a/janis_core/ingestion/cwl/main.py +++ b/janis_core/ingestion/cwl/main.py @@ -152,8 +152,7 @@ def ingest_workflow_step_attributes(self, wf: j.Workflow, cwlstp: Any) -> None: wf.has_scatter = True if parser.when is not None: - jstep.scatter = parser.scatter - wf.has_scatter = True + jstep.when = parser.when def ingest_workflow_step_inputs(self, wf: j.Workflow, cwlstp: Any) -> None: parser = WorkflowStepInputsParser(cwl_utils=self.cwl_utils, entity=cwlstp, wf=wf, tool_uuid=wf.uuid) @@ -163,6 +162,32 @@ def ingest_workflow_step_inputs(self, wf: j.Workflow, cwlstp: Any) -> None: jstep = wf.step_nodes[step_identifier] jstep.tool.connections = inputs_dict add_step_edges_to_graph(jstep, wf) + self.ingest_workflow_step_inputs_pickvalue(jstep, cwlstp) + + def ingest_workflow_step_inputs_pickvalue(self, jstep: StepNode, cwlstp: Any) -> None: + operator_map = { + 'first_non_null': j.FirstOperator, + 'the_only_non_null': j.FirstOperator, + 'all_non_null': j.FilterNullOperator, + } + + # new: multiple input sources with selection method + for inp in cwlstp.in_: + inp_identifier = get_id_entity(inp.id) + if inp_identifier not in jstep.sources: + continue + + # must have more than one source + sti = jstep.sources[inp_identifier] + if len(sti.source_map) <= 1: + continue + + # must have pickValue set on cwl step input + if not hasattr(inp, 'pickValue') or inp.pickValue is None: + continue + + operator = operator_map[inp.pickValue] + sti.operator = operator(sti.source_map) def ingest_command_line_tool(self, clt: Any, is_expression_tool: bool=False): parser = CLTParser(cwl_utils=self.cwl_utils, clt=clt, entity=clt, is_expression_tool=is_expression_tool) diff --git a/janis_core/ingestion/cwl/parsing/tool.py b/janis_core/ingestion/cwl/parsing/tool.py index ebddf8602..b74c318e4 100644 --- a/janis_core/ingestion/cwl/parsing/tool.py +++ b/janis_core/ingestion/cwl/parsing/tool.py @@ -292,7 +292,8 @@ def fallback(self) -> dict[str, Any]: 'env_vars': {} } - def do_parse(self) -> dict[str, Any]: # type: ignore I FKN KNOW + def do_parse(self) -> dict[str, Any]: + self.handle_expression_libs() requirements = self.entity.requirements or [] out: dict[str, Any] = { @@ -313,6 +314,21 @@ def do_parse(self) -> dict[str, Any]: # type: ignore I FKN KNOW out['env_vars'] = self.get_env_vars(requirements) return out + + def handle_expression_libs(self) -> None: + """ + goal is to mark expression libraries as messages at top of output file. + achieve this by attempting to parse (will fail), causing a __TOKENX__ = "[JS EXPR]" to be created as a message. + """ + + for req in self.entity.requirements: + if req.__class__.__name__ == 'InlineJavascriptRequirement': + if hasattr(req, 'expressionLib') and isinstance(req.expressionLib, list): + for exprlib in req.expressionLib: + assert isinstance(exprlib, str) + if not exprlib.startswith('$(') or not exprlib.startswith('$('): + exprlib = f'$({exprlib})' + res, success = parse_expression(exprlib, self.tool_uuid) def get_container(self, requirements: list[Any]) -> str: fallback = 'ubuntu:latest' @@ -391,9 +407,10 @@ def __init__(self, cwl_utils: Any, clt: Any, req: Any, tool_uuid: str, is_expres self.req = req self.tool_uuid = tool_uuid self.is_expression_tool = is_expression_tool + error_token_override = "error parsing InitialWorkDirRequirement" # resolving value, name - self.r_value, self.r_value_ok = parse_expression(self.value, self.tool_uuid) + self.r_value, self.r_value_ok = parse_expression(self.value, self.tool_uuid, error_token_override=error_token_override) if self.name is not None: self.r_name, self.r_name_ok = parse_expression(self.name, self.tool_uuid) else: @@ -534,10 +551,12 @@ def parse_as_selector(self) -> bool: # directory else: # TODO this is really weird + return False self.directories_to_create.append(str(self.r_value)) return True def parse_as_object(self) -> bool: + # TODO? return False def parse_as_directory_path(self) -> bool: diff --git a/janis_core/ingestion/cwl/parsing/workflow.py b/janis_core/ingestion/cwl/parsing/workflow.py index c7ac4cb6f..563d3204a 100644 --- a/janis_core/ingestion/cwl/parsing/workflow.py +++ b/janis_core/ingestion/cwl/parsing/workflow.py @@ -6,6 +6,7 @@ from abc import ABC, abstractmethod from janis_core.workflow.workflow import Workflow, OutputNode, InputNodeSelector, StepNode, InputNode, StepOutputSelector +from janis_core.operators import FirstOperator, FilterNullOperator from janis_core import ScatterDescription, ScatterMethod from ..types import ingest_cwl_type @@ -89,6 +90,7 @@ def do_parse(self) -> InputNodeSelector: return inp + @dataclass class WorkflowOutputParser(WorkflowEntityParser): """parses a cwl WorkflowInputParameter to add an input to the janis Workflow""" @@ -134,7 +136,27 @@ def do_parse(self) -> OutputNode: datatype=dtype, source=source, ) + self.ingest_workflow_output_pickvalue(out) return out + + def ingest_workflow_output_pickvalue(self, out: OutputNode) -> None: + # new + operator_map = { + 'first_non_null': FirstOperator, + 'the_only_non_null': FirstOperator, + 'all_non_null': FilterNullOperator, + } + + # must have more than one source + if not isinstance(out.source, list) or len(out.source) <= 1: + return + + # must have pickValue set on cwl step input + if not hasattr(self.entity, 'pickValue') or self.entity.pickValue is None: + return + + operator = operator_map[self.entity.pickValue] + out.operator = operator(out.source) @@ -222,7 +244,7 @@ def resolve_source(self) -> Any: inp = self.entity source = None # TODO HERE - raise NotImplementedError + # raise NotImplementedError if inp.source is not None: sources = get_janis_wf_sources(self.wf, inp.source) if len(sources) == 1: @@ -256,7 +278,7 @@ def resolve_value_from(self, source: Any) -> Any: self.error_msgs.append(msg) return value - + @dataclass diff --git a/janis_core/operators/standard.py b/janis_core/operators/standard.py index 5f6cccbd6..269d9255f 100644 --- a/janis_core/operators/standard.py +++ b/janis_core/operators/standard.py @@ -705,8 +705,8 @@ def to_wdl(self, unwrap_operator, *args): def to_cwl(self, unwrap_operator, *args): iterable = unwrap_operator(self.args[0]) - return f"{iterable}[0]" - # return f"{iterable}.filter(function (inner) {{ return inner != null }})[0]" + # return f"{iterable}[0]" + return f"{iterable}.filter(function (inner) {{ return inner != null }})[0]" def to_nextflow(self, unwrap_operator, *args): iterable = unwrap_operator(self.args[0]) diff --git a/janis_core/tests/data/cwl/tools/requirements/cellranger-aggr.cwl b/janis_core/tests/data/cwl/tools/requirements/cellranger-aggr.cwl index b60a76e1c..c4ef368ce 100755 --- a/janis_core/tests/data/cwl/tools/requirements/cellranger-aggr.cwl +++ b/janis_core/tests/data/cwl/tools/requirements/cellranger-aggr.cwl @@ -10,18 +10,6 @@ requirements: rootname = (rootname=="")?inputs.molecule_info_h5[i].basename:rootname; return inputs.gem_well_labels?inputs.gem_well_labels[i].replace(/,/g, "_"):rootname; }; - InitialWorkDirRequirement: - listing: | - ${ - var entry = "library_id,molecule_h5\n" - for (var i=0; i < inputs.molecule_info_h5.length; i++){ - entry += get_label(i) + "," + inputs.molecule_info_h5[i].path + "\n" - } - return [{ - "entry": entry, - "entryname": "metadata.csv" - }]; - } hints: DockerRequirement: dockerPull: cumulusprod/cellranger:4.0.0 diff --git a/janis_core/tests/data/cwl/tools/wc.cwl b/janis_core/tests/data/cwl/tools/wc.cwl new file mode 100644 index 000000000..a394770cd --- /dev/null +++ b/janis_core/tests/data/cwl/tools/wc.cwl @@ -0,0 +1,31 @@ + +#!/usr/bin/env cwl-runner +cwlVersion: v1.0 +class: CommandLineTool + +requirements: + DockerRequirement: + dockerPull: ubuntu:latest + +baseCommand: echo + +inputs: + the_num_words: + type: string + inputBinding: + position: 1 + + the_text: + type: string + inputBinding: + position: 2 + +stdout: output.txt + +outputs: + out: + type: string + outputBinding: + glob: output.txt + loadContents: true + outputEval: $(self[0].contents.split().length) \ No newline at end of file diff --git a/janis_core/tests/data/cwl/workflows/conditional_execution/align.cwl b/janis_core/tests/data/cwl/workflows/conditional_execution/align.cwl new file mode 100644 index 000000000..a75e49a0f --- /dev/null +++ b/janis_core/tests/data/cwl/workflows/conditional_execution/align.cwl @@ -0,0 +1,30 @@ + +#!/usr/bin/env cwl-runner +cwlVersion: v1.0 +class: CommandLineTool + +requirements: + DockerRequirement: + dockerPull: ubuntu:latest + +baseCommand: echo + +inputs: + reads: + type: File + inputBinding: + position: 1 + + reference: + type: File + inputBinding: + position: 2 + + metadata: + type: File + inputBinding: + position: 3 + +outputs: + aligned_reads: + type: stdout \ No newline at end of file diff --git a/janis_core/tests/data/cwl/workflows/conditional_execution/conditional_execution.cwl b/janis_core/tests/data/cwl/workflows/conditional_execution/conditional_execution.cwl new file mode 100755 index 000000000..4cd18300e --- /dev/null +++ b/janis_core/tests/data/cwl/workflows/conditional_execution/conditional_execution.cwl @@ -0,0 +1,60 @@ +#!/usr/bin/env cwl-runner +cwlVersion: v1.2 +class: Workflow + +label: | + map medium and long reads (> 100 bp) against reference genome + +inputs: + in_reads: + type: File + in_reference: + type: File + in_metadata: + type: File? + +outputs: + out_alignments: + type: File + format: edam:format_2572 # BAM + outputSource: align/aligned_reads + label: "Alignments of the reads to the references genome" + + out_metadata: + type: File + outputSource: [ extract_metadata/output_metadata, in_metadata ] + pickValue: the_only_non_null + +steps: + extract_metadata: + run: extract_metadata.cwl + label: "extract metadata from reads / reference" + in: + reads: in_reads + reference: in_reference + metadata: in_metadata + when: $(inputs.metadata === null) + out: [ output_metadata ] + + align: + run: align.cwl + in: + reads: in_reads + reference: in_reference + metadata: + source: [ extract_metadata/output_metadata, in_metadata ] + pickValue: first_non_null + out: [ aligned_reads ] + +requirements: + MultipleInputFeatureRequirement: {} + InlineJavascriptRequirement: {} + StepInputExpressionRequirement: {} +# SchemaDefRequirement: +# types: +# - $import: ReadGroupType.yml + +$namespaces: + edam: http://edamontology.org/ +$schemas: + - https://edamontology.org/EDAM_1.18.owl diff --git a/janis_core/tests/data/cwl/workflows/conditional_execution/extract_metadata.cwl b/janis_core/tests/data/cwl/workflows/conditional_execution/extract_metadata.cwl new file mode 100644 index 000000000..a1297df3c --- /dev/null +++ b/janis_core/tests/data/cwl/workflows/conditional_execution/extract_metadata.cwl @@ -0,0 +1,29 @@ +#!/usr/bin/env cwl-runner +cwlVersion: v1.0 +class: CommandLineTool + +requirements: + DockerRequirement: + dockerPull: ubuntu:latest + +baseCommand: echo + +inputs: + reads: + type: File + inputBinding: + position: 1 + + reference: + type: File + inputBinding: + position: 2 + + metadata: + type: File? + inputBinding: + position: 3 + +outputs: + output_metadata: + type: stdout \ No newline at end of file diff --git a/janis_core/tests/data/cwl/workflows/scatter_wf.cwl b/janis_core/tests/data/cwl/workflows/scatter_wf.cwl new file mode 100644 index 000000000..320db17eb --- /dev/null +++ b/janis_core/tests/data/cwl/workflows/scatter_wf.cwl @@ -0,0 +1,20 @@ + + +cwlVersion: v1.0 +class: Workflow + +requirements: + ScatterFeatureRequirement: {} + +inputs: + message_array: string[] + +steps: + echo: + run: ../tools/echo.cwl + scatter: text + in: + text: message_array + out: [] + +outputs: [] diff --git a/janis_core/tests/test_ingestion_cwl.py b/janis_core/tests/test_ingestion_cwl.py index 53f56d98d..27cf07d82 100644 --- a/janis_core/tests/test_ingestion_cwl.py +++ b/janis_core/tests/test_ingestion_cwl.py @@ -6,7 +6,9 @@ from janis_core import ( InputSelector, CommandToolBuilder, + WorkflowBuilder, ToolInput, + ScatterDescription, ) from janis_core.operators.stringformatter import StringFormatter @@ -113,72 +115,126 @@ def test_tool_bwa_mem(self): pass +class TestExtendedFunctionality(unittest.TestCase): + + def setUp(self) -> None: + _do_setup() + + def test_scatter(self): + filepath = f'{CWL_TESTDATA_DIR}/workflows/scatter_wf.cwl' + workflow: WorkflowBuilder = parse_cwl(filepath) # type: ignore + self.assertIsInstance(workflow, WorkflowBuilder) + self.assertIn('echo', workflow.step_nodes) + step = workflow.step_nodes['echo'] + self.assertIsInstance(step.scatter, ScatterDescription) + self.assertListEqual(step.scatter.fields, ['text']) + self.assertIsNone(step.scatter.method) + + def test_conditional_execution(self): + filepath = f'{CWL_TESTDATA_DIR}/workflows/conditional_execution/conditional_execution.cwl' + workflow = parse_cwl(filepath) + self.assertIsInstance(workflow, WorkflowBuilder) + self.assertIn('align', workflow.step_nodes) + self.assertIn('extract_metadata', workflow.step_nodes) + step = workflow.step_nodes['extract_metadata'] + self.assertIsInstance(step.when, EqualityOperator) + + def test_multiple_sources_step_input(self): + filepath = f'{CWL_TESTDATA_DIR}/workflows/conditional_execution/conditional_execution.cwl' + workflow = parse_cwl(filepath) + self.assertIsInstance(workflow, WorkflowBuilder) + self.assertIn('align', workflow.step_nodes) + self.assertIn('extract_metadata', workflow.step_nodes) + sti = workflow.step_nodes['align'].sources['metadata'] + self.assertEqual(len(sti.source_map), 2) + self.assertIsInstance(sti.operator, FirstOperator) + + def test_multiple_sources_wf_output(self): + filepath = f'{CWL_TESTDATA_DIR}/workflows/conditional_execution/conditional_execution.cwl' + clt, cwl_utils = _load_cwl_doc(filepath) + workflow: WorkflowBuilder = parse_cwl(filepath) # type: ignore + self.assertIsInstance(workflow, WorkflowBuilder) + self.assertIn('out_alignments', workflow.output_nodes) + self.assertIn('out_metadata', workflow.output_nodes) + out_alignments = workflow.output_nodes['out_alignments'] + out_metadata = workflow.output_nodes['out_metadata'] + self.assertEqual(str(out_alignments.source), 'align.aligned_reads') + self.assertIsInstance(out_metadata.operator, FirstOperator) + + + + class TestRequirementsParsing(unittest.TestCase): def setUp(self) -> None: _do_setup() - def test_directories_to_create1(self): - pass - - def test_directories_to_create2(self): - pass - - def test_directories_to_create3(self): - filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/prepare_fasta_db.cwl' + def test_expression_lib(self): + filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/cellranger-aggr.cwl' clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, tool_uuid='test_directories_to_create3') + parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, tool_uuid='test_expression_lib') reqs = parser.parse() - msgs = load_loglines(tool_uuid='test_directories_to_create3') - print() + lines = load_loglines(tool_uuid='test_expression_lib') + msgs = [x.message for x in lines] + self.assertIn('__TOKEN1__ = "$(var get_label = function(i) { var rootname = inputs.molecule_info_h5[i].basename.split(\'.\').slice(0,-1).join(\'.\'); rootname = (rootname=="")?inputs.molecule_info_h5[i].basename:rootname; return inputs.gem_well_labels?inputs.gem_well_labels[i].replace(/,/g, "_"):rootname; };)"', msgs) - def test_files_to_create0(self): - filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/bundle_secondaryfiles.cwl' - clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, tool_uuid='test_files_to_create0') - reqs = parser.parse() - msgs = load_loglines(tool_uuid='test_files_to_create0') - self.assertIn('inputs.primary_file', reqs['files_to_create']) - self.assertIsInstance(reqs['files_to_create']['inputs.primary_file'], InputSelector) - self.assertIn('inputs.secondary_files', reqs['files_to_create']) - self.assertIsInstance(reqs['files_to_create']['inputs.secondary_files'], InputSelector) - - def test_files_to_create1(self): - filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/bismark_prepare_genome.cwl' - clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, tool_uuid='test_files_to_create1') - reqs = parser.parse() - msgs = load_loglines(tool_uuid='test_files_to_create1') - - def test_files_to_create2(self): - filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/BWA-Mem2-index.cwl' + def test_files_to_create_textfile(self): + settings.ingest.SAFE_MODE = True + filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/amplicon_architect.cwl' clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, tool_uuid='test_files_to_create2') + parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, tool_uuid='test') reqs = parser.parse() - msgs = load_loglines(tool_uuid='test_files_to_create2') + self.assertEqual(len(reqs['files_to_create']), 1) + self.assertIn('setup_vars.sh', reqs['files_to_create']) + self.assertIn('export AA_DATA_REPO', reqs['files_to_create']['setup_vars.sh']) + msgs = load_loglines(tool_uuid='test') + self.assertEqual(len(msgs), 1) + + @unittest.skip('how does this work for janis?') + def test_files_to_create_selector(self): + raise NotImplementedError + + @unittest.skip('how does this work for janis?') + def test_files_to_create_object(self): + raise NotImplementedError - def test_files_to_create3(self): - filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/bzip2_compress.cwl' - clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, tool_uuid='test_files_to_create3') - reqs = parser.parse() - msgs = load_loglines(tool_uuid='test_files_to_create3') + @unittest.skip('cant find example') + def test_files_to_create_dirpath(self): + raise NotImplementedError + + # def test_files_to_create0(self): + # filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/bundle_secondaryfiles.cwl' + # clt, cwl_utils = _load_cwl_doc(filepath) + # parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, tool_uuid='test_files_to_create0') + # reqs = parser.parse() + # msgs = load_loglines(tool_uuid='test_files_to_create0') + # self.assertIn('inputs.primary_file', reqs['files_to_create']) + # self.assertIsInstance(reqs['files_to_create']['inputs.primary_file'], InputSelector) + # self.assertIn('inputs.secondary_files', reqs['files_to_create']) + # self.assertIsInstance(reqs['files_to_create']['inputs.secondary_files'], InputSelector) + + # def test_files_to_create1(self): + # filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/bismark_prepare_genome.cwl' + # clt, cwl_utils = _load_cwl_doc(filepath) + # parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, tool_uuid='test_files_to_create1') + # reqs = parser.parse() + # msgs = load_loglines(tool_uuid='test_files_to_create1') - def test_files_to_create4(self): - filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/component_segmentation.cwl' - clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, tool_uuid='test_files_to_create4') - reqs = parser.parse() - msgs = load_loglines(tool_uuid='test_files_to_create4') + # def test_files_to_create2(self): + # filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/BWA-Mem2-index.cwl' + # clt, cwl_utils = _load_cwl_doc(filepath) + # parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, tool_uuid='test_files_to_create2') + # reqs = parser.parse() + # msgs = load_loglines(tool_uuid='test_files_to_create2') - def test_files_to_create5(self): - filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/cellranger-aggr.cwl' - clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, tool_uuid='test_files_to_create5') - reqs = parser.parse() - msgs = load_loglines(tool_uuid='test_files_to_create5') - + # def test_files_to_create3(self): + # filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/bzip2_compress.cwl' + # clt, cwl_utils = _load_cwl_doc(filepath) + # parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, tool_uuid='test_files_to_create3') + # reqs = parser.parse() + # msgs = load_loglines(tool_uuid='test_files_to_create3') + # def test_files_to_create9(self): # filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/bundle_secondaryfiles.cwl' # clt, cwl_utils = _load_cwl_doc(filepath) @@ -263,6 +319,7 @@ def test_files_to_create5(self): # self.assertIn('var inputs = JSON.parse( process.argv[2] );\n', script) def test_env_vars1(self): + settings.ingest.SAFE_MODE = True filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/amplicon_architect.cwl' clt, cwl_utils = _load_cwl_doc(filepath) parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, tool_uuid='test') @@ -275,6 +332,7 @@ class TestErrorHandlingFallbacks(unittest.TestCase): def setUp(self) -> None: _do_setup() + settings.ingest.SAFE_MODE = True @unittest.skip('not implemented') def test_workflow_input_parser(self) -> None: @@ -312,11 +370,14 @@ def test_clt_input_parser(self) -> None: def test_clt_output_parser(self) -> None: raise NotImplementedError - @unittest.skip('not implemented') def test_requirements_parser(self) -> None: - raise NotImplementedError - - + filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/component_segmentation.cwl' + clt, cwl_utils = _load_cwl_doc(filepath) + parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, tool_uuid='test_files_to_create4') + reqs = parser.parse() + lines = load_loglines(tool_uuid='test_files_to_create4') + msgs = [x.message for x in lines] + print() class TestDatatypes(unittest.TestCase): @@ -458,6 +519,7 @@ class TestErrorHandlingExpressions(unittest.TestCase): def setUp(self) -> None: _do_setup() + settings.ingest.SAFE_MODE = True def test_resource_requirements(self): filepath = f'{CWL_TESTDATA_DIR}/tools/expressions/resources.cwl' @@ -477,55 +539,45 @@ def test_resource_requirements(self): self.assertIn('__TOKEN2__ = "$([inputs.runtime_cpu, (2 * inputs.outputFiles), 1].filter(function (inner) { return inner != null })[0])"', msgs) self.assertIn('__TOKEN3__ = "$([inputs.runtime_seconds, 86400].filter(function (inner) { return inner != null })[0])"', msgs) - def test_initial_workdir_requirement_listing(self): + def test_initial_workdir_requirement(self): filepath = f'{CWL_TESTDATA_DIR}/tools/expressions/requirements.cwl' clt, cwl_utils = _load_cwl_doc(filepath) parser = CLTParser(cwl_utils, clt=clt, entity=clt) jtool = parser.parse() - lines = load_loglines(jtool.uuid) - msgs = [x.message for x in lines] self.assertIsNone(jtool.files_to_create()) - expected_msg = 'directory required for runtime generated using cwl / js: <js>${ return [{"class": "Directory", "basename": "subdir", "listing": [ inputs.example ] }]}</js>. please address' - self.assertIn(expected_msg, msgs) - - def test_initial_workdir_requirement_dirent_entryname(self): - filepath = f'{CWL_TESTDATA_DIR}/tools/expressions/requirements.cwl' - clt, cwl_utils = _load_cwl_doc(filepath) - - parser = CLTParser(cwl_utils, clt=clt, entity=clt) - jtool = parser.parse() - lines = load_loglines(jtool.uuid) + lines = load_loglines(tool_uuid=jtool.uuid) msgs = [x.message for x in lines] - self.assertIsNone(jtool.files_to_create()) - - expected_msg = 'untranslated javascript expression in environment variable value' - self.assertIn(expected_msg, msgs) + self.assertEqual(len(msgs), 3) + self.assertIn('error parsing InitialWorkDirRequirement. ignored as fallback', msgs) + self.assertIn('error parsing InitialWorkDirRequirement: ${ return [{"class": "Directory", "basename": "subdir", "listing": [ inputs.example ] }]}', msgs) - def test_initial_workdir_requirement_dirent_entry(self): - filepath = f'{CWL_TESTDATA_DIR}/tools/expressions/requirements.cwl' + def test_secondaryfiles(self): + filepath = f'{CWL_TESTDATA_DIR}/tools/expressions/inputs_arguments.cwl' clt, cwl_utils = _load_cwl_doc(filepath) - - parser = CLTParser(cwl_utils, clt=clt, entity=clt) - jtool = parser.parse() - lines = load_loglines(jtool.uuid) + parser = CLTInputParser(cwl_utils, clt=clt, entity=clt.inputs[1], tool_uuid='test') + tinput = parser.parse() + self.assertIsInstance(tinput.input_type, GenericFileWithSecondaries) + lines = load_loglines(tool_uuid='test') msgs = [x.message for x in lines] - self.assertIsNone(jtool.files_to_create()) - - expected_msg = 'untranslated javascript expression in environment variable value' + expected_msg = 'could not parse secondaries format from javascript expression. treated as generic File with secondaries.' self.assertIn(expected_msg, msgs) - def test_envvar_requirement_envdef_envvalue(self): - filepath = f'{CWL_TESTDATA_DIR}/tools/expressions/requirements.cwl' + def test_clt_input(self): + # TODO could actually parse this expression. + filepath = f'{CWL_TESTDATA_DIR}/tools/expressions/inputs_arguments.cwl' clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTParser(cwl_utils, clt=clt, entity=clt) - jtool = parser.parse() - lines = load_loglines(jtool.uuid) + + parser = CLTInputParser(cwl_utils, clt=clt, entity=clt.inputs[5], tool_uuid='test') + tinput = parser.parse() + lines = load_loglines(tool_uuid='test') msgs = [x.message for x in lines] - self.assertEqual(jtool.env_vars()['test1'], '<js>9 + 10</js>') + expected_msg = '__TOKEN1__ = "$([inputs.runtime_cpu, 16, 1].filter(function (inner) { return inner != null })[0])"' + self.assertEqual(tinput.value, '__TOKEN1__') + self.assertIn(expected_msg, msgs) - def test_clt_argument_valuefrom(self): + def test_clt_argument(self): filepath = f'{CWL_TESTDATA_DIR}/tools/expressions/inputs_arguments.cwl' clt, cwl_utils = _load_cwl_doc(filepath) @@ -536,135 +588,26 @@ def test_clt_argument_valuefrom(self): self.assertEqual(arg.value, '__TOKEN1__') self.assertIn('__TOKEN1__ = "${ var r = []; for (var i = 10; i >= 1; i--) { r.push(i); } return r;}"', msgs) - @unittest.skip("TODO leave log_info message") - def test_clt_input_format(self): - # don't need to worry about File format in cwl - type is ingested as File - filepath = f'{CWL_TESTDATA_DIR}/tools/expressions/inputs_arguments.cwl' - clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTInputParser(cwl_utils, clt=clt, entity=clt.inputs[3], tool_uuid='test') - tinput = parser.parse() - - def test_clt_input_secondaryfiles(self): - filepath = f'{CWL_TESTDATA_DIR}/tools/expressions/inputs_arguments.cwl' - clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTInputParser(cwl_utils, clt=clt, entity=clt.inputs[1], tool_uuid='test') - tinput = parser.parse() - self.assertIsInstance(tinput.input_type, GenericFileWithSecondaries) - error_msgs = load_loglines(tinput.uuid) - expected_msg = "could not parse secondaries format from javascript expressions: $(self.basename + self.nameext.replace('m','i'))" - self.assertIn(expected_msg, error_msgs) - - def test_clt_input_inputbinding_valuefrom(self): - filepath = f'{CWL_TESTDATA_DIR}/tools/expressions/inputs_arguments.cwl' - clt, cwl_utils = _load_cwl_doc(filepath) - - parser = CLTInputParser(cwl_utils, clt=clt, entity=clt.inputs[5], tool_uuid='test') - tinput = parser.parse() - expected_value = '<js>[inputs.runtime_cpu, 16, 1].filter(function (inner) { return inner != null })[0]</js>' - self.assertEqual(tinput.value, expected_value) - - @unittest.skip("TODO leave log_info message") - def test_clt_output_format(self): - # don't need to worry about File format in cwl - type is ingested as File - filepath = f'{CWL_TESTDATA_DIR}/tools/expressions/outputs.cwl' - clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTOutputParser(cwl_utils, clt=clt, entity=clt.outputs[1], tool_uuid='test') - tout = parser.parse() - - def test_clt_output_secondaryfiles(self): - filepath = f'{CWL_TESTDATA_DIR}/tools/expressions/outputs.cwl' - clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTOutputParser(cwl_utils, clt=clt, entity=clt.outputs[1], tool_uuid='test') - tout = parser.parse() - self.assertIsInstance(tout.output_type, GenericFileWithSecondaries) - error_msgs = load_loglines(tout.uuid) - expected_msg = "could not parse secondaries format from javascript expressions: $(inputs.bam.basename + inputs.bam.nameext.replace('m','i'))" - self.assertIn(expected_msg, error_msgs) - - def test_clt_output_outputbinding_glob(self): - filepath = f'{CWL_TESTDATA_DIR}/tools/expressions/outputs.cwl' - clt, cwl_utils = _load_cwl_doc(filepath) - parser = CLTOutputParser(cwl_utils, clt=clt, entity=clt.outputs[0], tool_uuid='test') - tout = parser.parse() - self.assertIsInstance(tout.selector, WildcardSelector) - self.assertEqual(tout.selector.wildcard, 'output.txt') - - parser = CLTOutputParser(cwl_utils, clt=clt, entity=clt.outputs[2], tool_uuid='test') - tout = parser.parse() - self.assertIsInstance(tout.selector, StringFormatter) - self.assertEqual(tout.selector._format, '{JANIS_CWL_TOKEN_1}.trimmed.fastq') - self.assertEqual(tout.selector.kwargs['JANIS_CWL_TOKEN_1'], "<js>inputs.fastq.nameroot.replace(/\\b.fastq\\b/g, '')</js>") - - def test_clt_output_outputbinding_outputEval(self): + def test_clt_output(self): + # TODO this use of "self" is ok. should make output ReadContents. filepath = f'{CWL_TESTDATA_DIR}/tools/expressions/outputs.cwl' clt, cwl_utils = _load_cwl_doc(filepath) parser = CLTOutputParser(cwl_utils, clt=clt, entity=clt.outputs[3], tool_uuid='test') tout = parser.parse() - self.assertIsInstance(tout.selector, ReadContents) - self.assertEqual(tout.selector.args[0], '<js>self[0]</js>') - - @unittest.skip("TODO leave log_info message") - def test_wf_input_format(self) -> None: - # don't need to worry about File format in cwl - type is ingested as File - raise NotImplementedError - - def test_wf_input_secondaryfiles(self): - filepath = f'{CWL_TESTDATA_DIR}/workflows/expressions.cwl' - wf = parse_cwl(filepath) - winp = wf.input_nodes['bambai_pair2'] - self.assertIsInstance(winp.datatype, GenericFileWithSecondaries) - self.assertEqual(len(winp.datatype.secondaries), 0) - error_msgs = load_loglines(winp.uuid) - expected_msg = "could not parse secondaries format from javascript expressions: $(self.basename + self.nameext.replace('m','i'))" - self.assertIn(expected_msg, error_msgs) - - def test_step_input_valuefrom(self): - filepath = f'{CWL_TESTDATA_DIR}/workflows/expressions.cwl' - wf = parse_cwl(filepath) - - # example 1 - jstep = wf.step_nodes['echo2'] - inp_name = 'text' - - self.assertIn(inp_name, jstep.tool.connections) - self.assertEqual(jstep.tool.connections[inp_name], "<js>$(inputs.prefix_str + '_' + inputs.suffix_str)</js>") - self.assertIn(inp_name, jstep.sources) - self.assertEqual(jstep.sources[inp_name].source_map[0].source.input_node.default, "<js>$(inputs.prefix_str + '_' + inputs.suffix_str)</js>") - - msgs = load_loglines(jstep.uuid) - expected_msg = "'text' input value contains untranslated javascript expression: <js>$(inputs.prefix_str + '_' + inputs.suffix_str)</js>" - self.assertIn(expected_msg, msgs) - - # example 2 - jstep = wf.step_nodes['rename_png1'] - inp_name = 'target_filename' - - self.assertIn(inp_name, jstep.tool.connections) - self.assertIsInstance(jstep.tool.connections[inp_name], InputNodeSelector) - self.assertEqual(jstep.tool.connections[inp_name].input_node.id(), 'bambai_pair1') - - self.assertIn(inp_name, jstep.sources) - self.assertIsNone(jstep.sources[inp_name].source_map[0].source.input_node.default) + lines = load_loglines(tool_uuid='test') + msgs = [x.message for x in lines] + self.assertEqual(tout.selector, '__TOKEN1__') + self.assertIn('__TOKEN1__ = "$(self[0].contents)"', msgs) - msgs = load_loglines(jstep.uuid) - self.assertIn('\'target_filename\' input value contains untranslated javascript expression: <js>$(inputs.bambai_pair1.location.split(\'/\').slice(-1)[0].split(\'.\').slice(0,-1).join(\'.\')+"_default_s_enhcr.png")</js>', msgs) - - @unittest.skip("TODO leave log_info message") - def test_wf_output_format(self) -> None: - # TODO implement this - log info message about the format which was discarded - # don't need to worry about File format in cwl - type is ingested as File - raise NotImplementedError - - def test_wf_output_secondaryfiles(self): + def test_step_input(self): filepath = f'{CWL_TESTDATA_DIR}/workflows/expressions.cwl' wf = parse_cwl(filepath) - winp = wf.output_nodes['out3'] - self.assertIsInstance(winp.datatype, GenericFileWithSecondaries) - self.assertEqual(len(winp.datatype.secondaries), 0) - error_msgs = load_loglines(winp.uuid) - expected_msg = "could not parse secondaries format from javascript expressions: $(self.basename + self.nameext.replace('m','i'))" - self.assertIn(expected_msg, error_msgs) - + lines = load_loglines(tool_uuid=wf.uuid) + msgs = [x.message for x in lines] + + self.assertIn('could not parse secondaries format from javascript expression. treated as generic File with secondaries.', msgs) + self.assertIn("error parsing data source for 'text'. Returned None as fallback.", msgs) + self.assertIn("error parsing data source for 'target_filename'. Returned None as fallback.", msgs) @@ -1139,3 +1082,17 @@ def test_block_complex(self): expected = '(str(int(((inputs.runtime_memory / inputs.runtime_cpu) - 100))) + "M")' actual = str(result) self.assertEqual(actual, expected) + + def test_clt_output(self): + filepath = f'{CWL_TESTDATA_DIR}/tools/expressions/outputs.cwl' + clt, cwl_utils = _load_cwl_doc(filepath) + parser = CLTOutputParser(cwl_utils, clt=clt, entity=clt.outputs[0], tool_uuid='test') + tout = parser.parse() + self.assertIsInstance(tout.selector, WildcardSelector) + self.assertEqual(tout.selector.wildcard, 'output.txt') + + parser = CLTOutputParser(cwl_utils, clt=clt, entity=clt.outputs[2], tool_uuid='test') + tout = parser.parse() + self.assertIsInstance(tout.selector, StringFormatter) + self.assertEqual(tout.selector._format, '{token1}.trimmed.fastq') + self.assertIsInstance(tout.selector.kwargs['token1'], ReplaceOperator) diff --git a/janis_core/workflow/workflow.py b/janis_core/workflow/workflow.py index 1dce18875..94ccc2eb4 100644 --- a/janis_core/workflow/workflow.py +++ b/janis_core/workflow/workflow.py @@ -301,6 +301,7 @@ def __init__( self.output_folder = output_folder self.output_name = output_name self.extension = extension + self.operator: Optional[Operator] = None def inputs(self) -> Dict[str, TInput]: # Program will just grab first value anyway diff --git a/notes.txt b/notes.txt index 13de3889b..d1e2f151f 100644 --- a/notes.txt +++ b/notes.txt @@ -28,38 +28,46 @@ __TOKEN2__ = "$(inputs.reads2)" # error: [FALLBACK] step1: parse failed. used fallback. # error: [DATAFLOW] step1,reads2: could not connect sources. +----------------------- +--- CWL UNSUPPORTED --- +----------------------- +- linkMerge +- WorkflowStepInput:valueFrom +- Any JS Expression using "self" +- [Workflow] InlineJavascriptRequirement:expressionLib? + ------------------ --- CWL BOOFED --- ------------------ +Can InputNodeSelectors be InputSelectors instead? + +JS +- undefined vs null? + get basic functionality back online - workflow parsing - InitalWorkDirRequirement +misc +- move entity ids to non-janis keywords +- ingestion.cwl.parsing.workflow.resolve_source()? + -------------- --- CWL JS --- -------------- +InitialWorkDirRequirement +- log to top of screen without __TOKEN__. +- eg: unparsed expression for file / directory staging: ${JS} + + locations: CommandLineTool -- InlineJavascriptRequirement:expressionLib - InitialWorkDirRequirement - InitialWorkDirRequirement:Dirent:entry - InitialWorkDirRequirement:Dirent:entryname - -locations: Workflow -- WorkflowOutputParameter:outputBinding:glob? -- WorkflowOutputParameter:outputBinding:outputEval? -- WorkflowStepInput:valueFrom - InlineJavascriptRequirement:expressionLib -js expressions: workflow context -- call parse_expression() during workflow parsing! -- workflow input -- workflow output? -- step input? -- step conditions? -- step output? - js expressions: translators - ensure correct unwrapping with new format. From 55315a4abed12a59b5e14249f14a6ca97d1dd9f8 Mon Sep 17 00:00:00 2001 From: Grace Hall <graceavahall@gmail.com> Date: Fri, 3 Nov 2023 23:20:50 +1100 Subject: [PATCH 14/32] better --- janis_core/ingestion/cwl/expressions/main.py | 102 +- janis_core/ingestion/cwl/parsing/tool.py | 147 +- .../galaxy/gxtool/parsing/__init__.py | 3 +- .../gxtool/parsing/{nogx => }/encoding.py | 0 .../ingestion/galaxy/gxtool/parsing/main.py | 9 +- .../galaxy/gxtool/parsing/nogx/GXTool.py | 4372 ++++++++--------- .../galaxy/gxtool/parsing/nogx/__init__.py | 2 - .../galaxy/gxtool/parsing/nogx/main.py | 698 +-- .../galaxy/gxtool/text/cheetah/blocks.py | 2 +- janis_core/ingestion/galaxy/ingest.py | 6 +- janis_core/ingestion/main.py | 45 +- janis_core/operators/standard.py | 13 +- janis_core/settings/ingest/general.py | 2 +- .../cwl/tools/requirements/bedgraph_sort.cwl | 43 + .../requirements/mark_duplicates_and_sort.cwl | 58 + janis_core/tests/test_ingestion_cwl.py | 48 +- janis_core/tests/test_ingestion_galaxy.py | 8 +- janis_core/translations/nextflow/unwrap.py | 49 +- janis_core/translations/wdl/main.py | 20 +- notes.txt | 63 + pyproject.toml | 2 +- requirements/base.txt | 2 +- 22 files changed, 3002 insertions(+), 2692 deletions(-) rename janis_core/ingestion/galaxy/gxtool/parsing/{nogx => }/encoding.py (100%) create mode 100755 janis_core/tests/data/cwl/tools/requirements/bedgraph_sort.cwl create mode 100644 janis_core/tests/data/cwl/tools/requirements/mark_duplicates_and_sort.cwl diff --git a/janis_core/ingestion/cwl/expressions/main.py b/janis_core/ingestion/cwl/expressions/main.py index bf6b5b012..487892778 100644 --- a/janis_core/ingestion/cwl/expressions/main.py +++ b/janis_core/ingestion/cwl/expressions/main.py @@ -15,56 +15,83 @@ GRAMMAR_PATH = f'{os.path.dirname(os.path.abspath(__file__))}/grammar.ebnf' def parse_expression( - expr: str, + expr: Any, tool_uuid: str, - context: str='clt', + implicit_wrapping: bool=False, error_token_override: Optional[str]=None ) -> Any: + print(type(expr)) + # don't parse None if expr is None: return None, True - elif not isinstance(expr, str): - expr = str(expr) + # don't parse ints / floats / bools + if isinstance(expr, int | float | bool): + return expr, True - # no '$' wrapping - if not expr.startswith('$(') and not expr.startswith('${'): - new_expr = f'$({expr})' - result, success = ExpressionParser(context).parse(new_expr) - - # is expression - if success: - return result, True - # not expression - else: - return expr, True + # check we have a string + if not isinstance(expr, str): + raise NotImplementedError # has '$' wrapping + if expr.startswith('$(') or expr.startswith('${'): + return parse_explicit_expr(expr, tool_uuid, error_token_override) + + # no '$' wrapping but in this cwl context may still be valid expression + # add '$' and attempt parse. + elif implicit_wrapping: + return parse_implicit_expr(expr, tool_uuid, error_token_override) + + # its just a string else: - result, success = ExpressionParser(context).parse(expr) + return expr, True - # successful parse - if success: - return result, True - - # unsuccessful parse - # expr already has token - if error_token_override: - msg = f'{error_token_override}: {expr}' - log_error(tool_uuid, msg, ErrorCategory.SCRIPT) - # this is shit - return None, False +def parse_explicit_expr( + expr: str, + tool_uuid: str, + error_token_override: Optional[str]=None + ) -> Any: - loglines = load_loglines(category=ErrorCategory.SCRIPT, tool_uuid=tool_uuid) - token = get_token_for_expr(expr, loglines) - if token: - return token, False - - # expr needs new token - token = f'__TOKEN{len(loglines) + 1}__' - msg = f'{token} = "{expr}"' + result, success = ExpressionParser().parse(expr) + # successful parse + if success: + return result, True + + # unsuccessful parse + # expr already has token + if error_token_override: + msg = f'{error_token_override}: {expr}' log_error(tool_uuid, msg, ErrorCategory.SCRIPT) + # this is shit + return None, False + + loglines = load_loglines(category=ErrorCategory.SCRIPT, tool_uuid=tool_uuid) + token = get_token_for_expr(expr, loglines) + if token: return token, False + + # expr needs new token + token = f'__TOKEN{len(loglines) + 1}__' + msg = f'{token} = "{expr}"' + log_error(tool_uuid, msg, ErrorCategory.SCRIPT) + return token, False + +def parse_implicit_expr( + expr: str, + tool_uuid: str, + error_token_override: Optional[str]=None + ) -> Any: + new_expr = f'$({expr})' + result, success = ExpressionParser().parse(new_expr) + + # is expression + if success: + return result, True + + # not expression + else: + return expr, True def get_token_for_expr(expr: str, loglines: list[LogLine]) -> Optional[str]: token_p = r'__TOKEN\d+__' @@ -75,6 +102,7 @@ def get_token_for_expr(expr: str, loglines: list[LogLine]) -> Optional[str]: return token return None + class ExpressionParser: file_attr_map = { 'attr_basename': j.BasenameOperator, @@ -113,10 +141,6 @@ class ExpressionParser: grammar = fp.read() parser = Lark(grammar, start='the_text') - def __init__(self, context: str) -> None: - assert context in ['clt', 'wf'] - self.context = context - def parse(self, expr: str) -> Tuple[Any, bool]: try: tree = self.parser.parse(expr) diff --git a/janis_core/ingestion/cwl/parsing/tool.py b/janis_core/ingestion/cwl/parsing/tool.py index b74c318e4..4392f369c 100644 --- a/janis_core/ingestion/cwl/parsing/tool.py +++ b/janis_core/ingestion/cwl/parsing/tool.py @@ -94,6 +94,7 @@ def fallback(self) -> CommandTool: jtool._memory = reqs['memory'] jtool._cpus = reqs['cpus'] jtool._time = reqs['time'] + jtool._disk = reqs['disk'] return jtool def do_parse(self) -> CommandTool: @@ -142,15 +143,16 @@ def do_parse(self) -> CommandTool: tool_uuid=self.tool_uuid, is_expression_tool=self.is_expression_tool ) - requirements = req_parser.parse() - - jtool._directories_to_create = requirements['directories_to_create'] or None # type: ignore - jtool._files_to_create = requirements['files_to_create'] or None # type: ignore - jtool._env_vars = requirements['env_vars'] or None # type: ignore - jtool._container = requirements['container'] - jtool._memory = requirements['memory'] - jtool._cpus = requirements['cpus'] - jtool._time = requirements['time'] + reqs = req_parser.parse() + + jtool._directories_to_create = reqs['directories_to_create'] or None # type: ignore + jtool._files_to_create = reqs['files_to_create'] or None # type: ignore + jtool._env_vars = reqs['env_vars'] or None # type: ignore + jtool._container = reqs['container'] + jtool._memory = reqs['memory'] + jtool._cpus = reqs['cpus'] + jtool._time = reqs['time'] + jtool._disk = reqs['disk'] return jtool def ingest_command_tool_argument(self, arg: Any) -> Optional[ToolArgument]: @@ -287,41 +289,44 @@ def fallback(self) -> dict[str, Any]: 'memory': None, 'cpus': None, 'time': None, + 'disk': None, 'directories_to_create': [], 'files_to_create': {}, 'env_vars': {} } def do_parse(self) -> dict[str, Any]: - self.handle_expression_libs() - requirements = self.entity.requirements or [] + reqs = self.entity.requirements or [] + hints = self.entity.hints or [] + self.handle_expression_libs(reqs, hints) out: dict[str, Any] = { 'container': None, 'memory': None, 'cpus': None, 'time': None, + 'disk': None, 'directories_to_create': [], 'files_to_create': {}, 'env_vars': {} } - out['container'] = self.get_container(requirements) - out['memory'] = self.get_memory(requirements) - out['cpus'] = self.get_cpus(requirements) - out['time'] = self.get_time(requirements) - out['files_to_create'], out['directories_to_create'] = self.get_files_directories_to_create(requirements) - out['env_vars'] = self.get_env_vars(requirements) + out['container'] = self.get_container(reqs, hints) + out['memory'] = self.get_memory(reqs, hints) + out['cpus'] = self.get_cpus(reqs, hints) + out['time'] = self.get_time(reqs, hints) + out['disk'] = self.get_disk(reqs, hints) + out['files_to_create'], out['directories_to_create'] = self.get_files_directories_to_create(reqs, hints) + out['env_vars'] = self.get_env_vars(reqs, hints) return out - def handle_expression_libs(self) -> None: + def handle_expression_libs(self, reqs: list[Any], hints: list[Any]) -> None: """ goal is to mark expression libraries as messages at top of output file. achieve this by attempting to parse (will fail), causing a __TOKENX__ = "[JS EXPR]" to be created as a message. """ - - for req in self.entity.requirements: + for req in reqs: if req.__class__.__name__ == 'InlineJavascriptRequirement': if hasattr(req, 'expressionLib') and isinstance(req.expressionLib, list): for exprlib in req.expressionLib: @@ -330,43 +335,107 @@ def handle_expression_libs(self) -> None: exprlib = f'$({exprlib})' res, success = parse_expression(exprlib, self.tool_uuid) - def get_container(self, requirements: list[Any]) -> str: + def get_container(self, reqs: list[Any], hints: list[Any]) -> str: fallback = 'ubuntu:latest' if self.is_expression_tool: return 'node:latest' else: - for req in requirements: + for req in reqs: if isinstance(req, self.cwl_utils.DockerRequirement): return req.dockerPull + for hint in hints: + if 'class' in hint and hint['class'] == 'DockerRequirement': + return hint['dockerPull'] return fallback - def get_memory(self, requirements: list[Any]) -> Optional[int]: - for req in requirements: + def get_memory(self, reqs: list[Any], hints: list[Any]) -> Optional[int]: + for req in reqs: if isinstance(req, self.cwl_utils.ResourceRequirement): - # maybe convert mebibytes to megabytes? - res, success = parse_expression(req.ramMin or req.ramMax, self.tool_uuid) + if hasattr(req, 'ramMin') and req.ramMin is not None: + res, success = parse_expression(req.ramMin, self.tool_uuid) + return res + if hasattr(req, 'ramMax') and req.ramMax is not None: + res, success = parse_expression(req.ramMax, self.tool_uuid) + return res + for hint in hints: + if 'ramMin' in hint and hint['ramMin'] is not None: + res, success = parse_expression(hint['ramMin'], self.tool_uuid) + return res + elif 'ramMax' in hint and hint['ramMax'] is not None: + res, success = parse_expression(hint['ramMax'], self.tool_uuid) return res return None - def get_cpus(self, requirements: list[Any]) -> Optional[int]: - for req in requirements: + def get_cpus(self, reqs: list[Any], hints: list[Any]) -> Optional[int]: + for req in reqs: if isinstance(req, self.cwl_utils.ResourceRequirement): - res, success = parse_expression(req.coresMin, self.tool_uuid) + if hasattr(req, 'coresMin') and req.coresMin is not None: + res, success = parse_expression(req.coresMin, self.tool_uuid) + return res + if hasattr(req, 'coresMax') and req.coresMax is not None: + res, success = parse_expression(req.coresMax, self.tool_uuid) + return res + for hint in hints: + if 'coresMin' in hint and hint['coresMin'] is not None: + res, success = parse_expression(hint['coresMin'], self.tool_uuid) + return res + elif 'coresMax' in hint and hint['coresMax'] is not None: + res, success = parse_expression(hint['coresMax'], self.tool_uuid) return res return None - def get_time(self, requirements: list[Any]) -> Optional[int]: - for req in requirements: + def get_time(self, reqs: list[Any], hints: list[Any]) -> Optional[int]: + for req in reqs: if hasattr(req, 'timelimit') and isinstance(req, self.cwl_utils.ToolTimeLimit): res, success = parse_expression(req.timelimit, self.tool_uuid) return res + for hint in hints: + if 'timelimit' in hint and hint['timelimit'] is not None: + res, success = parse_expression(hint['timelimit'], self.tool_uuid) + return res + return None + + def get_disk(self, reqs: list[Any], hints: list[Any]) -> Optional[int]: + """ + tmpdirMin + tmpdirMax + outdirMin + outdirMax + """ + for req in reqs: + if isinstance(req, self.cwl_utils.ResourceRequirement): + if hasattr(req, 'tmpdirMin') and req.tmpdirMin is not None: + res, success = parse_expression(req.tmpdirMin, self.tool_uuid) + return res + if hasattr(req, 'outdirMin') and req.outdirMin is not None: + res, success = parse_expression(req.outdirMin, self.tool_uuid) + return res + if hasattr(req, 'tmpdirMax') and req.tmpdirMax is not None: + res, success = parse_expression(req.tmpdirMax, self.tool_uuid) + return res + if hasattr(req, 'outdirMax') and req.outdirMax is not None: + res, success = parse_expression(req.outdirMax, self.tool_uuid) + return res + for hint in hints: + if 'tmpdirMin' in hint and hint['tmpdirMin'] is not None: + res, success = parse_expression(hint['tmpdirMin'], self.tool_uuid) + return res + if 'outdirMin' in hint and hint['outdirMin'] is not None: + res, success = parse_expression(hint['outdirMin'], self.tool_uuid) + return res + if 'tmpdirMax' in hint and hint['tmpdirMax'] is not None: + res, success = parse_expression(hint['tmpdirMax'], self.tool_uuid) + return res + if 'outdirMax' in hint and hint['outdirMax'] is not None: + res, success = parse_expression(hint['outdirMax'], self.tool_uuid) + return res return None - def get_files_directories_to_create(self, requirements: list[Any]) -> Tuple[dict[str, Any], list[str | Selector]]: + def get_files_directories_to_create(self, reqs: list[Any], hints: list[Any]) -> Tuple[dict[str, Any], list[str | Selector]]: files_to_create: dict[str, Any] = {} directories_to_create: list[str | Selector] = [] - for req in requirements: + for req in reqs: if isinstance(req, self.cwl_utils.InitialWorkDirRequirement): # ensure array if isinstance (req.listing, str): @@ -384,10 +453,10 @@ def get_files_directories_to_create(self, requirements: list[Any]) -> Tuple[dict return files_to_create, directories_to_create - def get_env_vars(self, requirements: list[Any]) -> dict[str, Any]: + def get_env_vars(self, reqs: list[Any], hints: list[Any]) -> dict[str, Any]: out: dict[str, Any] = {} - for req in requirements: + for req in reqs: if isinstance(req, self.cwl_utils.EnvVarRequirement): for envdef in req.envDef: name, success = parse_expression(envdef.envName, self.tool_uuid) @@ -410,9 +479,9 @@ def __init__(self, cwl_utils: Any, clt: Any, req: Any, tool_uuid: str, is_expres error_token_override = "error parsing InitialWorkDirRequirement" # resolving value, name - self.r_value, self.r_value_ok = parse_expression(self.value, self.tool_uuid, error_token_override=error_token_override) + self.r_value, self.r_value_ok = parse_expression(self.value, self.tool_uuid, error_token_override=error_token_override, implicit_wrapping=True) if self.name is not None: - self.r_name, self.r_name_ok = parse_expression(self.name, self.tool_uuid) + self.r_name, self.r_name_ok = parse_expression(self.name, self.tool_uuid, implicit_wrapping=True) else: self.r_name, self.r_name_ok = None, True @@ -443,9 +512,9 @@ def do_parse(self) -> None: success = False parsers = [ self.parse_as_textfile, - self.parse_as_selector, - self.parse_as_object, self.parse_as_directory_path, + # self.parse_as_selector, + # self.parse_as_object, ] for parser in parsers: success = parser() diff --git a/janis_core/ingestion/galaxy/gxtool/parsing/__init__.py b/janis_core/ingestion/galaxy/gxtool/parsing/__init__.py index 72e34352b..2954c4f1d 100644 --- a/janis_core/ingestion/galaxy/gxtool/parsing/__init__.py +++ b/janis_core/ingestion/galaxy/gxtool/parsing/__init__.py @@ -1,3 +1,4 @@ -from .main import load_xmltool \ No newline at end of file +from .main import load_xmltool +from .encoding import unicodify diff --git a/janis_core/ingestion/galaxy/gxtool/parsing/nogx/encoding.py b/janis_core/ingestion/galaxy/gxtool/parsing/encoding.py similarity index 100% rename from janis_core/ingestion/galaxy/gxtool/parsing/nogx/encoding.py rename to janis_core/ingestion/galaxy/gxtool/parsing/encoding.py diff --git a/janis_core/ingestion/galaxy/gxtool/parsing/main.py b/janis_core/ingestion/galaxy/gxtool/parsing/main.py index b1dd1e923..a33060ad9 100644 --- a/janis_core/ingestion/galaxy/gxtool/parsing/main.py +++ b/janis_core/ingestion/galaxy/gxtool/parsing/main.py @@ -2,9 +2,8 @@ import os import tempfile import regex as re -from typing import Any - -from galaxy.tools import Tool as GxTool +from typing import Any + from galaxy.tools import create_tool_from_source from galaxy.tools.parameters.basic import ToolParameter from galaxy.tool_util.parser import get_tool_source @@ -39,7 +38,7 @@ def load_xmltool(path: str) -> XMLTool: factory = GalaxyToolFactory(gxtool, path) return factory.create() -def _load_galaxy_tool(path: str) -> GxTool: +def _load_galaxy_tool(path: str) -> Any: app = _get_app() tool_source = get_tool_source(path) tool = create_tool_from_source(app, tool_source) @@ -64,7 +63,7 @@ def _get_app() -> MockApp: return app class GalaxyToolFactory: - def __init__(self, gxtool: GxTool, xmlpath: str): + def __init__(self, gxtool: Any, xmlpath: str): self.gxtool = gxtool self.xmlpath = xmlpath self.scripts: list[XMLScript] = [] diff --git a/janis_core/ingestion/galaxy/gxtool/parsing/nogx/GXTool.py b/janis_core/ingestion/galaxy/gxtool/parsing/nogx/GXTool.py index 88f5eb8f2..33782136d 100644 --- a/janis_core/ingestion/galaxy/gxtool/parsing/nogx/GXTool.py +++ b/janis_core/ingestion/galaxy/gxtool/parsing/nogx/GXTool.py @@ -1,2188 +1,2188 @@ -import itertools -import math -import os -import re -import tarfile -import tempfile -import threading -from pathlib import Path -from typing import ( - Any, - cast, - Dict, - List, - Optional, - Set, - Tuple, - Union, -) -from urllib.parse import unquote_plus - -import packaging.version -import webob.exc -from mako.template import Template -from webob.compat import cgi_FieldStorage - -from galaxy import ( - exceptions, - model -) -from galaxy.exceptions import ToolInputsNotReadyException -from galaxy.job_execution import output_collect -from galaxy.tool_shed.util.repository_util import get_installed_repository -from galaxy.tool_shed.util.shed_util_common import set_image_paths -from galaxy.tool_util.deps import ( - CachedDependencyManager, -) -from galaxy.tool_util.loader import ( - imported_macro_paths, - raw_tool_xml_tree, - template_macro_params -) -from galaxy.tool_util.parser import ( - RequiredFiles, - ToolOutputCollectionPart -) -from galaxy.tool_util.parser.xml import XmlPageSource -from galaxy.tool_util.provided_metadata import parse_tool_provided_metadata -from galaxy.tools import expressions -from galaxy.tools.actions import DefaultToolAction, ToolAction -from galaxy.tools.evaluation import global_tool_errors -from galaxy.tools.parameters import ( - check_param, - params_from_strings, - params_to_incoming, - params_to_strings, - populate_state, - visit_input_values -) -from galaxy.tools.parameters.basic import ( - BaseURLToolParameter, - DataCollectionToolParameter, - DataToolParameter, - HiddenToolParameter, - ImplicitConversionRequired, - SelectToolParameter, - ToolParameter, - workflow_building_modes, -) -from galaxy.tools.parameters.dataset_matcher import ( - set_dataset_matcher_factory, - unset_dataset_matcher_factory, -) -from galaxy.tools.parameters.grouping import Conditional, ConditionalWhen, Repeat, Section, UploadDataset -from galaxy.tools.parameters.input_translation import ToolInputTranslator -from galaxy.tools.parameters.meta import expand_meta_parameters -from galaxy.tools.test import parse_tests -from galaxy.util import ( - in_directory, - Params, - parse_xml_string, - rst_to_html, - string_as_bool, - unicodify, - XML, -) -from galaxy.util.expressions import ExpressionContext -from galaxy.util.template import ( - fill_template, - refactoring_tool, -) -from galaxy.util.tool_shed.common_util import ( - get_tool_shed_repository_url, - get_tool_shed_url_from_tool_shed_registry, -) -from galaxy.version import VERSION_MAJOR -from galaxy.work.context import proxy_work_context_for_history - - -HELP_UNINITIALIZED = threading.Lock() - -REQUIRE_FULL_DIRECTORY = { - "includes": [{"path": "**", "path_type": "glob"}], -} -IMPLICITLY_REQUIRED_TOOL_FILES: Dict[str, Dict] = { - "deseq2": {"version": packaging.version.parse("2.11.40.6"), "required": {"includes": [{"path": "*.R", "path_type": "glob"}]}}, - # minimum example: - # "foobar": {"required": REQUIRE_FULL_DIRECTORY} - # if no version is specified, all versions without explicit RequiredFiles will be selected - "circos": {"required": REQUIRE_FULL_DIRECTORY}, - "cp_image_math": {"required": {"includes": [{"path": "*.py", "path_type": "glob"}]}}, - "enumerate_charges": {"required": REQUIRE_FULL_DIRECTORY}, - "fasta_compute_length": {"required": {"includes": [{"path": "utils/*", "path_type": "glob"}]}}, - "fasta_concatenate0": {"required": {"includes": [{"path": "utils/*", "path_type": "glob"}]}}, - "filter_tabular": {"required": {"includes": [{"path": "*.py", "path_type": "glob"}]}}, - "flanking_features_1": {"required": {"includes": [{"path": "utils/*", "path_type": "glob"}]}}, - "gops_intersect_1": {"required": {"includes": [{"path": "utils/*", "path_type": "glob"}]}}, - "gops_subtract_1": {"required": {"includes": [{"path": "utils/*", "path_type": "glob"}]}}, - "maxquant": {"required": {"includes": [{"path": "*.py", "path_type": "glob"}]}}, - "maxquant_mqpar": {"required": {"includes": [{"path": "*.py", "path_type": "glob"}]}}, - "query_tabular": {"required": {"includes": [{"path": "*.py", "path_type": "glob"}]}}, - "shasta": {"required": {"includes": [{"path": "configs/*", "path_type": "glob"}]}}, - "sqlite_to_tabular": {"required": {"includes": [{"path": "*.py", "path_type": "glob"}]}}, - "sucos_max_score": {"required": {"includes": [{"path": "*.py", "path_type": "glob"}]}}, -} - -from galaxy.datatypes.registry import Registry - - -class App: - - def __init__(self) -> None: - self.datatypes_registry = Registry() - self.datatypes_registry.load_datatypes() - - -class GXTool: - """ - Represents a computational tool that can be executed through Galaxy. - """ - - tool_type = 'default' - requires_setting_metadata = True - produces_entry_points = False - default_tool_action = DefaultToolAction - tool_action: ToolAction - tool_type_local = False - dict_collection_visible_keys = ['id', 'name', 'version', 'description', 'labels'] - __help: Optional[threading.Lock] - __help_by_page: Union[threading.Lock, List[str]] - job_search: 'JobSearch' - version: str - - def __init__(self, config_file, tool_source, guid=None, repository_id=None, tool_shed_repository=None, allow_code_files=True, dynamic=False, tool_dir=None): - """Load a tool from the config named by `config_file`""" - # Determine the full path of the directory where the tool config is - if config_file is not None: - self.config_file = config_file - self.tool_dir = tool_dir or os.path.dirname(config_file) - else: - self.config_file = None - self.tool_dir = tool_dir - - # self.app = app - self.repository_id = repository_id - self._allow_code_files = allow_code_files - # setup initial attribute values - self.stdio_exit_codes = list() - self.stdio_regexes = list() - self.inputs_by_page = list() - self.display_by_page = list() - self.action: Union[str, Tuple[str, str]] = "/tool_runner/index" - self.target = "galaxy_main" - self.method = "post" - self.labels = [] - self.check_values = True - self.nginx_upload = False - self.input_required = False - self.display_interface = True - self.require_login = False - self.rerun = False - # This will be non-None for tools loaded from the database (DynamicTool objects). - self.dynamic_tool = None - # Define a place to keep track of all input These - # differ from the inputs dictionary in that inputs can be page - # elements like conditionals, but input_params are basic form - # parameters like SelectField objects. This enables us to more - # easily ensure that parameter dependencies like index files or - # tool_data_table_conf.xml entries exist. - self.input_params = [] - # Attributes of tools installed from Galaxy tool sheds. - self.tool_shed = None - self.repository_name = None - self.repository_owner = None - self.changeset_revision = None - self.installed_changeset_revision = None - self.sharable_url = None - # The tool.id value will be the value of guid, but we'll keep the - # guid attribute since it is useful to have. - self.guid = guid - self.old_id = None - self.python_template_version = None - self._lineage = None - self.dependencies = [] - # populate toolshed repository info, if available - self.populate_tool_shed_info(tool_shed_repository) - # add tool resource parameters - # self.populate_resource_parameters(tool_source) - self.tool_errors = None - # Parse XML element containing configuration - self.tool_source = tool_source - self._is_workflow_compatible = None - self.finalized = False - try: - self.parse(tool_source, guid=guid, dynamic=dynamic) - except Exception as e: - global_tool_errors.add_error(config_file, "Tool Loading", e) - raise e - # # The job search is only relevant in a galaxy context, and breaks - # # loading tools into the toolshed for validation. - # if self.app.name == 'galaxy': - # self.job_search = self.app.job_search - - def __getattr__(self, name): - lazy_attributes = { - 'action', - 'check_values', - 'display_by_page', - 'enctype', - 'has_multiple_pages', - 'inputs', - 'inputs_by_page', - 'last_page', - 'method', - 'npages', - 'nginx_upload', - 'target', - 'template_macro_params', - 'outputs', - 'output_collections' - } - if name in lazy_attributes: - self.assert_finalized() - return getattr(self, name) - raise AttributeError(name) - - def assert_finalized(self, raise_if_invalid=False): - if self.finalized is False: - try: - self.parse_inputs(self.tool_source) - self.parse_outputs(self.tool_source) - self.finalized = True - except Exception as e: - toolbox = getattr(self.app, 'toolbox', None) - if toolbox: - toolbox.remove_tool_by_id(self.id) - if raise_if_invalid: - raise - else: - print("An error occured while parsing the tool wrapper xml, the tool is not functional") - - def remove_from_cache(self): - source_path = self.tool_source._source_path - if source_path: - for region in self.app.toolbox.cache_regions.values(): - region.delete(source_path) - - @property - def history_manager(self): - return self.app.history_manager - - @property - def _view(self): - return self.app.dependency_resolvers_view - - @property - def version_object(self): - return packaging.version.parse(self.version) - - @property - def sa_session(self): - """Returns a SQLAlchemy session""" - return self.app.model.context - - @property - def lineage(self): - """Return ToolLineage for this tool.""" - return self._lineage - - @property - def tool_versions(self): - # If we have versions, return them. - if self.lineage: - return list(self.lineage.tool_versions) - else: - return [] - - @property - def is_latest_version(self): - tool_versions = self.tool_versions - return not tool_versions or self.version == self.tool_versions[-1] - - @property - def latest_version(self): - if self.is_latest_version: - return self - else: - return self.app.tool_cache.get_tool_by_id(self.lineage.get_versions()[-1].id) - - @property - def is_datatype_converter(self): - return self in self.app.datatypes_registry.converter_tools - - @property - def tool_shed_repository(self): - # If this tool is included in an installed tool shed repository, return it. - if self.tool_shed: - return get_installed_repository(self.app, - tool_shed=self.tool_shed, - name=self.repository_name, - owner=self.repository_owner, - installed_changeset_revision=self.installed_changeset_revision, - from_cache=True) - - @property - def produces_collections_with_unknown_structure(self): - - def output_is_dynamic(output): - if not output.collection: - return False - return output.dynamic_structure - - return any(map(output_is_dynamic, self.outputs.values())) - - @property - def valid_input_states(self): - return model.Dataset.valid_input_states - - @property - def requires_galaxy_python_environment(self): - """Indicates this tool's runtime requires Galaxy's Python environment.""" - # All special tool types (data source, history import/export, etc...) - # seem to require Galaxy's Python. - # FIXME: the (instantiated) tool class should emit this behavior, and not - # use inspection by string check - if self.tool_type not in ["default", "manage_data", "interactive", "data_source"]: - return True - - if self.tool_type == "manage_data" and self.profile < 18.09: - return True - - if self.tool_type == "data_source" and self.profile < 21.09: - return True - - config = self.app.config - preserve_python_environment = config.preserve_python_environment - if preserve_python_environment == "always": - return True - elif preserve_python_environment == "legacy_and_local" and self.tool_shed is None: - return True - else: - unversioned_legacy_tool = self.old_id in GALAXY_LIB_TOOLS_UNVERSIONED - versioned_legacy_tool = self.old_id in GALAXY_LIB_TOOLS_VERSIONED - legacy_tool = unversioned_legacy_tool or ( - versioned_legacy_tool - and self.old_id - and self.version_object < GALAXY_LIB_TOOLS_VERSIONED[self.old_id] - ) - return legacy_tool - - def __get_job_tool_configuration(self, job_params=None): - """Generalized method for getting this tool's job configuration. - - :type job_params: dict or None - :returns: `galaxy.jobs.JobToolConfiguration` -- JobToolConfiguration that matches this `Tool` and the given `job_params` - """ - rval = None - if len(self.job_tool_configurations) == 1: - # If there's only one config, use it rather than wasting time on comparisons - rval = self.job_tool_configurations[0] - elif job_params is None: - for job_tool_config in self.job_tool_configurations: - if not job_tool_config.params: - rval = job_tool_config - break - else: - for job_tool_config in self.job_tool_configurations: - if job_tool_config.params: - # There are job params and this config has params defined - for param, value in job_params.items(): - if param not in job_tool_config.params or job_tool_config.params[param] != value: - break - else: - # All params match, use this config - rval = job_tool_config - break - else: - rval = job_tool_config - assert rval is not None, f'Could not get a job tool configuration for Tool {self.id} with job_params {job_params}, this is a bug' - return rval - - def get_configured_job_handler(self, job_params=None): - """Get the configured job handler for this `Tool` given the provided `job_params`. - - Unlike the former ``get_job_handler()`` method, this does not perform "preassignment" (random selection of - a configured handler ID from a tag). - - :param job_params: Any params specific to this job (e.g. the job source) - :type job_params: dict or None - - :returns: str or None -- The configured handler for a job run of this `Tool` - """ - return self.__get_job_tool_configuration(job_params=job_params).handler - - def get_job_destination(self, job_params=None): - """ - :returns: galaxy.jobs.JobDestination -- The destination definition and runner parameters. - """ - return self.app.job_config.get_destination(self.__get_job_tool_configuration(job_params=job_params).destination) - - def get_panel_section(self): - return self.app.toolbox.get_section_for_tool(self) - - def allow_user_access(self, user, attempting_access=True): - """ - :returns: bool -- Whether the user is allowed to access the tool. - """ - if self.require_login and user is None: - return False - return True - - def parse(self, tool_source, guid=None, dynamic=False): - """ - Read tool configuration from the element `root` and fill in `self`. - """ - self.profile = float(tool_source.parse_profile()) - # Get the UNIQUE id for the tool - self.old_id = tool_source.parse_id() - self.id = self.old_id # added - # if guid is None: - # self.id = self.old_id - # else: - # self.id = guid - - # if not dynamic and not self.id: - # raise Exception(f"Missing tool 'id' for tool at '{tool_source}'") - - # profile = packaging.version.parse(str(self.profile)) - # if self.app.name == 'galaxy' and profile >= packaging.version.parse("16.04") and packaging.version.parse(VERSION_MAJOR) < profile: - # message = f"The tool [{self.id}] targets version {self.profile} of Galaxy, you should upgrade Galaxy to ensure proper functioning of this tool." - # raise Exception(message) - - # self.python_template_version = tool_source.parse_python_template_version() - # if self.python_template_version is None: - # # If python_template_version not specified we assume tools with profile versions >= 19.05 are python 3 ready - # if self.profile >= 19.05: - # self.python_template_version = packaging.version.parse('3.5') - # else: - # self.python_template_version = packaging.version.parse('2.7') - - # Get the (user visible) name of the tool - self.name = tool_source.parse_name() - if not self.name: - raise RuntimeError - # if not self.name and dynamic: - # self.name = self.id - # if not dynamic and not self.name: - # raise Exception(f"Missing tool 'name' for tool with id '{self.id}' at '{tool_source}'") - - self.version = tool_source.parse_version() - if not self.version: - raise RuntimeError - # if self.profile < 16.04: - # # For backward compatibility, some tools may not have versions yet. - # self.version = "1.0.0" - # else: - # raise Exception(f"Missing tool 'version' for tool with id '{self.id}' at '{tool_source}'") - - # Legacy feature, ignored by UI. - self.force_history_refresh = False - - self.display_interface = False # added - # self.display_interface = tool_source.parse_display_interface(default=self.display_interface) - - self.require_login = False # added - # self.require_login = tool_source.parse_require_login(self.require_login) - - self.input_translator = None # added - # request_param_translation_elem = tool_source.parse_request_param_translation_elem() - # if request_param_translation_elem is not None: - # # Load input translator, used by datasource tools to change names/values of incoming parameters - # self.input_translator = ToolInputTranslator.from_element(request_param_translation_elem) - # else: - # self.input_translator = None - - self.parse_command(tool_source) - self.environment_variables = self.parse_environment_variables(tool_source) - self.tmp_directory_vars = tool_source.parse_tmp_directory_vars() - - self.home_target = None # added - self.tmp_target = None # added - - # home_target = tool_source.parse_home_target() - # tmp_target = tool_source.parse_tmp_target() - # # If a tool explicitly sets one of these variables just respect that and turn off - # # explicit processing by Galaxy. - # for environment_variable in self.environment_variables: - # if environment_variable.get("name") == "HOME": - # home_target = None - # continue - # for tmp_directory_var in self.tmp_directory_vars: - # if environment_variable.get("name") == tmp_directory_var: - # tmp_target = None - # break - # self.home_target = home_target - # self.tmp_target = tmp_target - self.docker_env_pass_through = [] # added - # self.docker_env_pass_through = tool_source.parse_docker_env_pass_through() - # if self.environment_variables: - # if not self.docker_env_pass_through: - # self.docker_env_pass_through = [] - # self.docker_env_pass_through.extend(map(lambda x: x['name'], self.environment_variables)) - - # Parameters used to build URL for redirection to external app - self.redirect_url_params = '' # added - # redirect_url_params = tool_source.parse_redirect_url_params_elem() - # if redirect_url_params is not None and redirect_url_params.text is not None: - # # get rid of leading / trailing white space - # redirect_url_params = redirect_url_params.text.strip() - # # Replace remaining white space with something we can safely split on later - # # when we are building the params - # self.redirect_url_params = redirect_url_params.replace(' ', '**^**') - # else: - # self.redirect_url_params = '' - - # Short description of the tool - self.description = tool_source.parse_description() - - # Versioning for tools - self.version_string_cmd = None - # version_command = tool_source.parse_version_command() - # if version_command is not None: - # self.version_string_cmd = version_command.strip() - - # version_cmd_interpreter = tool_source.parse_version_command_interpreter() - # if version_cmd_interpreter: - # executable = self.version_string_cmd.split()[0] - # abs_executable = os.path.abspath(os.path.join(self.tool_dir, executable)) - # command_line = self.version_string_cmd.replace(executable, abs_executable, 1) - # self.version_string_cmd = f"{version_cmd_interpreter} {command_line}" - - # Parallelism for tasks, read from tool config. - self.parallelism = None # added - # self.parallelism = tool_source.parse_parallelism() - - self.all_ids = [] # added - # # Get JobToolConfiguration(s) valid for this particular Tool. At least - # # a 'default' will be provided that uses the 'default' handler and - # # 'default' destination. I thought about moving this to the - # # job_config, but it makes more sense to store here. -nate - # if self.id: - # self_ids = [self.id.lower()] - # if self.old_id != self.id: - # # Handle toolshed guids - # self_ids = [self.id.lower(), self.id.lower().rsplit('/', 1)[0], self.old_id.lower()] - # else: - # self_ids = [] - # self.all_ids = self_ids - - # In the toolshed context, there is no job config. - self.job_tool_configurations = None # added - # if hasattr(self.app, 'job_config'): - # # Order of this list must match documentation in job_conf.sample_advanced.yml - # tool_classes = [] - # if self.tool_type_local: - # tool_classes.append("local") - # elif self.old_id in ['upload1', '__DATA_FETCH__']: - # tool_classes.append("local") - # if self.requires_galaxy_python_environment: - # tool_classes.append("requires_galaxy") - - # self.job_tool_configurations = self.app.job_config.get_job_tool_configurations(self_ids, tool_classes) - - # Is this a 'hidden' tool (hidden in tool menu) - self.hidden = tool_source.parse_hidden() - self.license = tool_source.parse_license() - self.creator = tool_source.parse_creator() - - self.__parse_legacy_features(tool_source) - - # Load any tool specific options (optional) - self.options = None # added - # self.options = _Options( - # **dict( - # sanitize=tool_source.parse_sanitize(), - # refresh=tool_source.parse_refresh(), - # ) - # ) - - # Read in name of galaxy.json metadata file and how to parse it. - self.provided_metadata_file = tool_source.parse_provided_metadata_file() - self.provided_metadata_style = tool_source.parse_provided_metadata_style() - - # Parse tool help - self.parse_help(tool_source) - - # Parse result handling for tool exit codes and stdout/stderr messages: - self.parse_stdio(tool_source) - - self.strict_shell = tool_source.parse_strict_shell() - - # Any extra generated config files for the tool - self.__parse_config_files(tool_source) - # Action - self.tool_action = self.default_tool_action() # added - # action = tool_source.parse_action_module() - # if action is None: - # self.tool_action = self.default_tool_action() - # else: - # module, cls = action - # mod = __import__(module, globals(), locals(), [cls]) - # self.tool_action = getattr(mod, cls)() - # if getattr(self.tool_action, "requires_js_runtime", False): - # try: - # expressions.find_engine(self.app.config) - # except Exception: - # message = REQUIRES_JS_RUNTIME_MESSAGE % self.tool_id or self.tool_uuid - # raise Exception(message) - # Tests - self.__parse_tests(tool_source) - - # Requirements (dependencies) - requirements, containers = tool_source.parse_requirements_and_containers() - self.requirements = requirements - self.containers = containers - - required_files = tool_source.parse_required_files() - if required_files is None: - old_id = self.old_id - if old_id in IMPLICITLY_REQUIRED_TOOL_FILES: - lineage_requirement = IMPLICITLY_REQUIRED_TOOL_FILES[old_id] - lineage_requirement_until = lineage_requirement.get("version") - if lineage_requirement_until is None or self.version_object < lineage_requirement_until: - required_files = RequiredFiles.from_dict(lineage_requirement["required"]) - self.required_files = required_files - - self.citations = [] # added - # self.citations = self._parse_citations(tool_source) - xrefs = tool_source.parse_xrefs() - has_biotools_reference = any(x["reftype"] == "bio.tools" for x in xrefs) - if not has_biotools_reference: - legacy_biotools_ref = self.legacy_biotools_external_reference - if legacy_biotools_ref is not None: - xrefs.append({"value": legacy_biotools_ref, "reftype": "bio.tools"}) - self.xrefs = xrefs - - - self.edam_operations = [] # added - self.edam_topics = [] # added - # edam_operations = tool_source.parse_edam_operations() - # edam_topics = tool_source.parse_edam_topics() - - # has_missing_data = len(edam_operations) == 0 or len(edam_topics) == 0 - # if has_missing_data: - # biotools_reference = self.biotools_reference - # metadata_source = self.app.biotools_metadata_source - # if biotools_reference and metadata_source: - # biotools_entry = metadata_source.get_biotools_metadata(biotools_reference) - # if biotools_entry: - # edam_info = biotools_entry.edam_info - # if len(edam_operations) == 0: - # edam_operations = edam_info.edam_operations - # if len(edam_topics) == 0: - # edam_topics = edam_info.edam_topics - - # self.edam_operations = edam_operations - # self.edam_topics = edam_topics - - self.__parse_trackster_conf(tool_source) - # Record macro paths so we can reload a tool if any of its macro has changes - self._macro_paths = tool_source.macro_paths - self.ports = tool_source.parse_interactivetool() - - def __parse_legacy_features(self, tool_source): - self.code_namespace: Dict[str, str] = {} - self.hook_map: Dict[str, str] = {} - self.uihints: Dict[str, str] = {} - - if not hasattr(tool_source, 'root'): - return - - # TODO: Move following logic into XmlToolSource. - root = tool_source.root - # Load any tool specific code (optional) Edit: INS 5/29/2007, - # allow code files to have access to the individual tool's - # "module" if it has one. Allows us to reuse code files, etc. - for code_elem in root.findall("code"): - for hook_elem in code_elem.findall("hook"): - for key, value in hook_elem.items(): - # map hook to function - self.hook_map[key] = value - file_name = code_elem.get("file") - code_path = os.path.join(self.tool_dir, file_name) - if self._allow_code_files: - with open(code_path) as f: - code_string = f.read() - try: - compiled_code = compile(code_string, code_path, 'exec') - exec(compiled_code, self.code_namespace) - except Exception: - if ( - refactoring_tool - and self.python_template_version - and self.python_template_version.release[0] < 3 - ): - # Could be a code file that uses python 2 syntax - translated_code = str(refactoring_tool.refactor_string(code_string, name='auto_translated_code_file')) - compiled_code = compile(translated_code, f"futurized_{code_path}", 'exec') - exec(compiled_code, self.code_namespace) - else: - raise - - # User interface hints - uihints_elem = root.find("uihints") - if uihints_elem is not None: - for key, value in uihints_elem.attrib.items(): - self.uihints[key] = value - - def __parse_tests(self, tool_source): - self.__tests_source = tool_source - self.__tests_populated = False - - def __parse_config_files(self, tool_source): - self.config_files = [] - if not hasattr(tool_source, 'root'): - return - - root = tool_source.root - conf_parent_elem = root.find("configfiles") - if conf_parent_elem is not None: - inputs_elem = conf_parent_elem.find("inputs") - if inputs_elem is not None: - name = inputs_elem.get("name") - filename = inputs_elem.get("filename", None) - format = inputs_elem.get("format", "json") - data_style = inputs_elem.get("data_style", "skip") - content = dict(format=format, handle_files=data_style, type="inputs") - self.config_files.append((name, filename, content)) - file_sources_elem = conf_parent_elem.find("file_sources") - if file_sources_elem is not None: - name = file_sources_elem.get("name") - filename = file_sources_elem.get("filename", None) - content = dict(type="files") - self.config_files.append((name, filename, content)) - for conf_elem in conf_parent_elem.findall("configfile"): - name = conf_elem.get("name") - filename = conf_elem.get("filename", None) - content = conf_elem.text - self.config_files.append((name, filename, content)) - - def __parse_trackster_conf(self, tool_source): - self.trackster_conf = None - if not hasattr(tool_source, 'root'): - return - - # Trackster configuration. - trackster_conf = tool_source.root.find("trackster_conf") - if trackster_conf is not None: - self.trackster_conf = TracksterConfig.parse(trackster_conf) - - @property - def tests(self): - self.assert_finalized() - if not self.__tests_populated: - tests_source = self.__tests_source - if tests_source: - try: - self.__tests = parse_tests(self, tests_source) - except Exception: - self.__tests = None - log.exception("Failed to parse tool tests for tool '%s'", self.id) - else: - self.__tests = None - self.__tests_populated = True - return self.__tests - - @property - def _repository_dir(self): - """If tool shed installed tool, the base directory of the repository installed.""" - repository_base_dir = None - - if getattr(self, 'tool_shed', None): - tool_dir = Path(self.tool_dir) - for repo_dir in itertools.chain([tool_dir], tool_dir.parents): - if repo_dir.name == self.repository_name: - return str(repo_dir) - else: - log.error(f"Problem finding repository dir for tool '{self.id}'") - - return repository_base_dir - - def test_data_path(self, filename): - repository_dir = self._repository_dir - test_data = None - if repository_dir: - test_data = self.__walk_test_data(dir=repository_dir, filename=filename) - else: - if self.tool_dir: - tool_dir = self.tool_dir - if isinstance(self, DataManagerTool): - tool_dir = os.path.dirname(self.tool_dir) - test_data = self.__walk_test_data(tool_dir, filename=filename) - if not test_data: - # Fallback to Galaxy test data directory for builtin tools, tools - # under development, and some older ToolShed published tools that - # used stock test data. - test_data = self.app.test_data_resolver.get_filename(filename) - return test_data - - def __walk_test_data(self, dir, filename): - for root, dirs, _ in os.walk(dir): - if '.hg' in dirs: - dirs.remove('.hg') - if 'test-data' in dirs: - test_data_dir = os.path.join(root, 'test-data') - result = os.path.abspath(os.path.join(test_data_dir, filename)) - if not in_directory(result, test_data_dir): - # Don't raise an explicit exception and reveal details about what - # files are or are not on the path, simply return None and let the - # API raise a 404. - return None - else: - if os.path.exists(result): - return result - - def tool_provided_metadata(self, job_wrapper): - meta_file = os.path.join(job_wrapper.tool_working_directory, self.provided_metadata_file) - return parse_tool_provided_metadata(meta_file, provided_metadata_style=self.provided_metadata_style, job_wrapper=job_wrapper) - - def parse_command(self, tool_source): - """ - """ - # Command line (template). Optional for tools that do not invoke a local program - command = tool_source.parse_command() - if command is not None: - self.command = command.lstrip() # get rid of leading whitespace - # Must pre-pend this AFTER processing the cheetah command template - self.interpreter = tool_source.parse_interpreter() - else: - self.command = '' - self.interpreter = None - - def parse_environment_variables(self, tool_source): - return tool_source.parse_environment_variables() - - def parse_inputs(self, tool_source): - """ - Parse the "<inputs>" element and create appropriate `ToolParameter` s. - This implementation supports multiple pages and grouping constructs. - """ - # Load parameters (optional) - self.inputs = {} - pages = tool_source.parse_input_pages() - enctypes: Set[str] = set() - if pages.inputs_defined: - if hasattr(pages, "input_elem"): - input_elem = pages.input_elem - # Handle properties of the input form - self.check_values = string_as_bool(input_elem.get("check_values", self.check_values)) - self.nginx_upload = string_as_bool(input_elem.get("nginx_upload", self.nginx_upload)) - self.action = input_elem.get('action', self.action) - # If we have an nginx upload, save the action as a tuple instead of - # a string. The actual action needs to get url_for run to add any - # prefixes, and we want to avoid adding the prefix to the - # nginx_upload_path. - # if ( - # self.nginx_upload - # and self.app.config.nginx_upload_path - # and not isinstance(self.action, tuple) - # ): - # if "?" in unquote_plus(self.action): - # raise Exception( - # "URL parameters in a non-default tool action can not be used " - # "in conjunction with nginx upload. Please convert them to " - # "hidden POST parameters" - # ) - # self.action = ( - # f"{self.app.config.nginx_upload_path}?nginx_redir=", - # unquote_plus(self.action), - # ) - self.target = input_elem.get("target", self.target) - self.method = input_elem.get("method", self.method) - # Parse the actual parameters - # Handle multiple page case - for page_source in pages.page_sources: - inputs = self.parse_input_elem(page_source, enctypes) - display = page_source.parse_display() - self.inputs_by_page.append(inputs) - self.inputs.update(inputs) - self.display_by_page.append(display) - else: - self.inputs_by_page.append(self.inputs) - self.display_by_page.append(None) - self.display = self.display_by_page[0] - self.npages = len(self.inputs_by_page) - self.last_page = len(self.inputs_by_page) - 1 - self.has_multiple_pages = bool(self.last_page) - # Determine the needed enctype for the form - if len(enctypes) == 0: - self.enctype = "application/x-www-form-urlencoded" - elif len(enctypes) == 1: - self.enctype = enctypes.pop() - else: - raise Exception(f"Conflicting required enctypes: {str(enctypes)}") - # Check if the tool either has no parameters or only hidden (and - # thus hardcoded) FIXME: hidden parameters aren't - # parameters at all really, and should be passed in a different - # way, making this check easier. - template_macros = {} - if hasattr(tool_source, 'root'): - template_macros = template_macro_params(tool_source.root) - self.template_macro_params = template_macros - for param in self.inputs.values(): - if not isinstance(param, (HiddenToolParameter, BaseURLToolParameter)): - self.input_required = True - break - - def parse_help(self, tool_source): - """ - Parse the help text for the tool. Formatted in reStructuredText, but - stored as Mako to allow for dynamic image paths. - This implementation supports multiple pages. - """ - # TODO: Allow raw HTML or an external link. - self.__help = HELP_UNINITIALIZED - self.__help_by_page = HELP_UNINITIALIZED - self.__help_source = tool_source - - def parse_outputs(self, tool_source): - """ - Parse <outputs> elements and fill in self.outputs (keyed by name) - """ - self.outputs, self.output_collections = tool_source.parse_outputs(self) - - # TODO: Include the tool's name in any parsing warnings. - def parse_stdio(self, tool_source): - """ - Parse <stdio> element(s) and fill in self.return_codes, - self.stderr_rules, and self.stdout_rules. Return codes have a range - and an error type (fault or warning). Stderr and stdout rules have - a regular expression and an error level (fault or warning). - """ - exit_codes, regexes = tool_source.parse_stdio() - self.stdio_exit_codes = exit_codes - self.stdio_regexes = regexes - - def _parse_citations(self, tool_source): - # TODO: Move following logic into ToolSource abstraction. - if not hasattr(tool_source, 'root'): - return [] - - root = tool_source.root - citations: List[str] = [] - citations_elem = root.find("citations") - if citations_elem is None: - return citations - - for citation_elem in citations_elem: - if citation_elem.tag != "citation": - pass - if hasattr(self.app, 'citations_manager'): - citation = self.app.citations_manager.parse_citation(citation_elem) - if citation: - citations.append(citation) - return citations - - def parse_input_elem(self, page_source, enctypes, context=None): - """ - Parse a parent element whose children are inputs -- these could be - groups (repeat, conditional) or param elements. Groups will be parsed - recursively. - """ - rval: Dict[str, Any] = {} - context = ExpressionContext(rval, context) - for input_source in page_source.parse_input_sources(): - # Repeat group - input_type = input_source.parse_input_type() - if input_type == "repeat": - group_r = Repeat() - group_r.name = input_source.get("name") - group_r.title = input_source.get("title") - group_r.help = input_source.get("help", None) - page_source = input_source.parse_nested_inputs_source() - group_r.inputs = self.parse_input_elem(page_source, enctypes, context) - group_r.default = int(input_source.get("default", 0)) - group_r.min = int(input_source.get("min", 0)) - # Use float instead of int so that math.inf can be used for no max - group_r.max = float(input_source.get("max", math.inf)) - assert group_r.min <= group_r.max, ValueError( - f"Tool with id '{self.id}': min repeat count must be less-than-or-equal to the max." - ) - # Force default to be within min-max range - group_r.default = cast( - int, min(max(group_r.default, group_r.min), group_r.max) - ) - rval[group_r.name] = group_r - elif input_type == "conditional": - group_c = Conditional() - group_c.name = input_source.get("name") - group_c.value_ref = input_source.get("value_ref", None) - group_c.value_ref_in_group = input_source.get_bool( - "value_ref_in_group", True - ) - value_from = input_source.get("value_from", None) - if value_from: - value_from = value_from.split(':') - temp_value_from = locals().get(value_from[0]) - group_c.test_param = rval[group_c.value_ref] - group_c.test_param.refresh_on_change = True - for attr in value_from[1].split('.'): - temp_value_from = getattr(temp_value_from, attr) - group_c.value_from = temp_value_from # type: ignore[assignment] - # ^^ due to https://github.com/python/mypy/issues/2427 - assert group_c.value_from - for case_value, case_inputs in group_c.value_from( - context, group_c, self - ).items(): - # TODO move this to attribute check to remove galaxy class imports - case = ConditionalWhen() - case.value = case_value - if case_inputs: - page_source = XmlPageSource(XML(f"<when>{case_inputs}</when>")) - case.inputs = self.parse_input_elem(page_source, enctypes, context) - else: - case.inputs = {} - group_c.cases.append(case) - else: - # Should have one child "input" which determines the case - test_param_input_source = input_source.parse_test_input_source() - group_c.test_param = self.parse_param_elem( - test_param_input_source, enctypes, context - ) - if group_c.test_param.optional: - log.debug(f"Tool with id '{self.id}': declares a conditional test parameter as optional, this is invalid and will be ignored.") - group_c.test_param.optional = False - possible_cases = list( - group_c.test_param.legal_values - ) # store possible cases, undefined whens will have no inputs - # Must refresh when test_param changes - group_c.test_param.refresh_on_change = True - # And a set of possible cases - for (value, case_inputs_source) in input_source.parse_when_input_sources(): - # TODO move this to attribute check to remove galaxy class imports - case = ConditionalWhen() - case.value = value - case.inputs = self.parse_input_elem(case_inputs_source, enctypes, context) - group_c.cases.append(case) - try: - possible_cases.remove(case.value) - except Exception: - log.debug( - "Tool with id '%s': a when tag has been defined for '%s (%s) --> %s', but does not appear to be selectable." - % ( - self.id, - group_c.name, - group_c.test_param.name, - case.value, - ) - ) - for unspecified_case in possible_cases: - log.warning( - "Tool with id '%s': a when tag has not been defined for '%s (%s) --> %s', assuming empty inputs." - % ( - self.id, - group_c.name, - group_c.test_param.name, - unspecified_case, - ) - ) - # TODO move this to attribute check to remove galaxy class imports - case = ConditionalWhen() - case.value = unspecified_case - case.inputs = {} - group_c.cases.append(case) - rval[group_c.name] = group_c - elif input_type == "section": - group_s = Section() - group_s.name = input_source.get("name") - group_s.title = input_source.get("title") - group_s.help = input_source.get("help", None) - group_s.expanded = input_source.get_bool("expanded", False) - page_source = input_source.parse_nested_inputs_source() - group_s.inputs = self.parse_input_elem(page_source, enctypes, context) - rval[group_s.name] = group_s - elif input_type == "upload_dataset": - elem = input_source.elem() - group_u = UploadDataset() - group_u.name = elem.get("name") - group_u.title = elem.get("title") - group_u.file_type_name = elem.get( - "file_type_name", group_u.file_type_name - ) - group_u.default_file_type = elem.get( - "default_file_type", group_u.default_file_type - ) - group_u.metadata_ref = elem.get("metadata_ref", group_u.metadata_ref) - try: - rval[group_u.file_type_name].refresh_on_change = True - except KeyError: - pass - group_page_source = XmlPageSource(elem) - group_u.inputs = self.parse_input_elem( - group_page_source, enctypes, context - ) - rval[group_u.name] = group_u - elif input_type == "param": - param = self.parse_param_elem(input_source, enctypes, context) - rval[param.name] = param - if hasattr(param, 'data_ref'): - param.ref_input = context[param.data_ref] - self.input_params.append(param) - return rval - - def parse_param_elem(self, input_source, enctypes, context): - """ - Parse a single "<param>" element and return a ToolParameter instance. - Also, if the parameter has a 'required_enctype' add it to the set - enctypes. - """ - param = ToolParameter.build(self, input_source) - param_enctype = param.get_required_enctype() - if param_enctype: - enctypes.add(param_enctype) - # If parameter depends on any other paramters, we must refresh the - # form when it changes - for name in param.get_dependencies(): - # Let it throw exception, but give some hint what the problem might be - if name not in context: - log.error(f"Tool with id '{self.id}': Could not find dependency '{name}' of parameter '{param.name}'") - context[name].refresh_on_change = True - return param - - def populate_resource_parameters(self, tool_source): - root = getattr(tool_source, 'root', None) - if root is not None and hasattr(self.app, 'job_config') and hasattr(self.app.job_config, 'get_tool_resource_xml'): - resource_xml = self.app.job_config.get_tool_resource_xml(root.get('id', '').lower(), self.tool_type) - if resource_xml is not None: - inputs = root.find('inputs') - if inputs is None: - inputs = parse_xml_string('<inputs/>') - root.append(inputs) - inputs.append(resource_xml) - - def populate_tool_shed_info(self, tool_shed_repository): - if tool_shed_repository: - self.tool_shed = tool_shed_repository.tool_shed - self.repository_name = tool_shed_repository.name - self.repository_owner = tool_shed_repository.owner - self.changeset_revision = tool_shed_repository.changeset_revision - self.installed_changeset_revision = tool_shed_repository.installed_changeset_revision - self.sharable_url = get_tool_shed_repository_url( - self.app, self.tool_shed, self.repository_owner, self.repository_name - ) - - @property - def legacy_biotools_external_reference(self) -> Optional[str]: - """Return a bio.tools ID if any of tool's IDs are BIOTOOLS_MAPPING.""" - for tool_id in self.all_ids: - if tool_id in BIOTOOLS_MAPPING: - return BIOTOOLS_MAPPING[tool_id] - return None - - @property - def biotools_reference(self) -> Optional[str]: - """Return a bio.tools ID if external reference to it is found. - - If multiple bio.tools references are found, return just the first one. - """ - for xref in self.xrefs: - if xref["reftype"] == "bio.tools": - return xref["value"] - return None - - @property - def help(self): - if self.__help is HELP_UNINITIALIZED: - self.__ensure_help() - return self.__help - - @property - def help_by_page(self): - if self.__help_by_page is HELP_UNINITIALIZED: - self.__ensure_help() - return self.__help_by_page - - @property - def raw_help(self): - # may return rst (or Markdown in the future) - tool_source = self.__help_source - help_text = tool_source.parse_help() - return help_text - - def __ensure_help(self): - with HELP_UNINITIALIZED: - if self.__help is HELP_UNINITIALIZED: - self.__inititalize_help() - - def __inititalize_help(self): - tool_source = self.__help_source - self.__help = None - __help_by_page = [] - help_footer = "" - help_text = tool_source.parse_help() - if help_text is not None: - try: - if help_text.find('.. image:: ') >= 0 and (self.tool_shed_repository or self.repository_id): - help_text = set_image_paths( - self.app, help_text, encoded_repository_id=self.repository_id, tool_shed_repository=self.tool_shed_repository, tool_id=self.old_id, tool_version=self.version - ) - except Exception: - log.exception("Exception in parse_help, so images may not be properly displayed for tool with id '%s'", self.id) - try: - self.__help = Template(rst_to_html(help_text), input_encoding='utf-8', - default_filters=['decode.utf8'], - encoding_errors='replace') - except Exception: - log.exception("Exception while parsing help for tool with id '%s'", self.id) - - # Handle deprecated multi-page help text in XML case. - if hasattr(tool_source, "root"): - help_elem = tool_source.root.find("help") - help_header = help_text - help_pages = help_elem.findall("page") - # Multiple help page case - if help_pages: - for help_page in help_pages: - __help_by_page.append(help_page.text) - help_footer = help_footer + help_page.tail - # Each page has to rendered all-together because of backreferences allowed by rst - try: - __help_by_page = [ - Template( - rst_to_html(help_header + x + help_footer), - input_encoding="utf-8", - default_filters=["decode.utf8"], - encoding_errors="replace", - ) - for x in __help_by_page - ] - except Exception: - log.exception("Exception while parsing multi-page help for tool with id '%s'", self.id) - # Pad out help pages to match npages ... could this be done better? - while len(__help_by_page) < self.npages: - __help_by_page.append(self.__help) - self.__help_by_page = __help_by_page - - def find_output_def(self, name): - # name is JobToOutputDatasetAssociation name. - # TODO: to defensive, just throw IndexError and catch somewhere - # up that stack. - if ToolOutputCollectionPart.is_named_collection_part_name(name): - collection_name, part = ToolOutputCollectionPart.split_output_name(name) - collection_def = self.output_collections.get(collection_name, None) - if not collection_def: - return None - return collection_def.outputs.get(part, None) - else: - return self.outputs.get(name, None) - - @property - def is_workflow_compatible(self): - is_workflow_compatible = self._is_workflow_compatible - if is_workflow_compatible is None: - is_workflow_compatible = self.check_workflow_compatible(self.tool_source) - if self.finalized: - self._is_workflow_compatible = is_workflow_compatible - return is_workflow_compatible - - def check_workflow_compatible(self, tool_source): - """ - Determine if a tool can be used in workflows. External tools and the - upload tool are currently not supported by workflows. - """ - # Multiple page tools are not supported -- we're eliminating most - # of these anyway - if self.finalized and self.has_multiple_pages: - return False - # This is probably the best bet for detecting external web tools - # right now - if self.tool_type.startswith('data_source'): - return False - - if hasattr(tool_source, "root"): - root = tool_source.root - if not string_as_bool(root.get("workflow_compatible", "True")): - return False - - # TODO: Anyway to capture tools that dynamically change their own - # outputs? - return True - - def new_state(self, trans): - """ - Create a new `DefaultToolState` for this tool. It will be initialized - with default values for inputs. Grouping elements are filled in recursively. - """ - state = DefaultToolState() - state.initialize(trans, self) - return state - - def get_param(self, key): - """ - Returns the parameter named `key` or None if there is no such - parameter. - """ - return self.inputs.get(key, None) - - def get_hook(self, name): - """ - Returns an object from the code file referenced by `code_namespace` - (this will normally be a callable object) - """ - if self.code_namespace: - # Try to look up hook in self.hook_map, otherwise resort to default - if name in self.hook_map and self.hook_map[name] in self.code_namespace: - return self.code_namespace[self.hook_map[name]] - elif name in self.code_namespace: - return self.code_namespace[name] - return None - - def visit_inputs(self, values, callback): - """ - Call the function `callback` on each parameter of this tool. Visits - grouping parameters recursively and constructs unique prefixes for - each nested set of The callback method is then called as: - - `callback( level_prefix, parameter, parameter_value )` - """ - # HACK: Yet another hack around check_values -- WHY HERE? - if self.check_values: - visit_input_values(self.inputs, values, callback) - - def expand_incoming(self, trans, incoming, request_context, input_format='legacy'): - rerun_remap_job_id = None - if 'rerun_remap_job_id' in incoming: - try: - rerun_remap_job_id = trans.app.security.decode_id(incoming['rerun_remap_job_id']) - except Exception as exception: - log.error(str(exception)) - raise exceptions.MessageException("Failure executing tool with id '%s' (attempting to rerun invalid job).", self.id) - - set_dataset_matcher_factory(request_context, self) - - # Fixed set of input parameters may correspond to any number of jobs. - # Expand these out to individual parameters for given jobs (tool executions). - expanded_incomings, collection_info = expand_meta_parameters(trans, self, incoming) - - # Remapping a single job to many jobs doesn't make sense, so disable - # remap if multi-runs of tools are being used. - if rerun_remap_job_id and len(expanded_incomings) > 1: - raise exceptions.MessageException( - "Failure executing tool with id '%s' (cannot create multiple jobs when remapping existing job).", self.id) - - # Process incoming data - validation_timer = self.app.execution_timer_factory.get_timer( - 'internals.galaxy.tools.validation', - 'Validated and populated state for tool request', - ) - all_errors = [] - all_params = [] - for expanded_incoming in expanded_incomings: - params = {} - errors: Dict[str, str] = {} - if self.input_translator: - self.input_translator.translate(expanded_incoming) - if not self.check_values: - # If `self.check_values` is false we don't do any checking or - # processing on input This is used to pass raw values - # through to/from external sites. - params = expanded_incoming - else: - # Update state for all inputs on the current page taking new - # values from `incoming`. - populate_state(request_context, self.inputs, expanded_incoming, params, errors, simple_errors=False, input_format=input_format) - # If the tool provides a `validate_input` hook, call it. - validate_input = self.get_hook('validate_input') - if validate_input: - validate_input(request_context, errors, params, self.inputs) - all_errors.append(errors) - all_params.append(params) - unset_dataset_matcher_factory(request_context) - - log.info(validation_timer) - return all_params, all_errors, rerun_remap_job_id, collection_info - - def handle_input(self, trans, incoming, history=None, use_cached_job=False, input_format='legacy'): - """ - Process incoming parameters for this tool from the dict `incoming`, - update the tool state (or create if none existed), and either return - to the form or execute the tool (only if 'execute' was clicked and - there were no errors). - """ - request_context = proxy_work_context_for_history(trans, history=history) - all_params, all_errors, rerun_remap_job_id, collection_info = self.expand_incoming(trans=trans, incoming=incoming, request_context=request_context, input_format=input_format) - # If there were errors, we stay on the same page and display them - if any(all_errors): - # simple param_key -> message string for tool form. - err_data = {key: unicodify(value) for d in all_errors for (key, value) in d.items()} - param_errors = {} - for d in all_errors: - for key, value in d.items(): - if hasattr(value, 'to_dict'): - value_obj = value.to_dict() - else: - value_obj = {"message": unicodify(value)} - param_errors[key] = value_obj - raise exceptions.RequestParameterInvalidException(', '.join(msg for msg in err_data.values()), err_data=err_data, param_errors=param_errors) - else: - mapping_params = MappingParameters(incoming, all_params) - completed_jobs = {} - for i, param in enumerate(all_params): - if use_cached_job: - completed_jobs[i] = self.job_search.by_tool_input( - trans=trans, - tool_id=self.id, - tool_version=self.version, - param=param, - param_dump=self.params_to_strings(param, self.app, nested=True), - job_state=None, - ) - else: - completed_jobs[i] = None - execution_tracker = execute_job(trans, self, mapping_params, history=request_context.history, rerun_remap_job_id=rerun_remap_job_id, collection_info=collection_info, completed_jobs=completed_jobs) - # Raise an exception if there were jobs to execute and none of them were submitted, - # if at least one is submitted or there are no jobs to execute - return aggregate - # information including per-job errors. Arguably we should just always return the - # aggregate information - we just haven't done that historically. - raise_execution_exception = not execution_tracker.successful_jobs and len(all_params) > 0 - - if raise_execution_exception: - raise exceptions.MessageException(execution_tracker.execution_errors[0]) - - return dict(out_data=execution_tracker.output_datasets, - num_jobs=len(execution_tracker.successful_jobs), - job_errors=execution_tracker.execution_errors, - jobs=execution_tracker.successful_jobs, - output_collections=execution_tracker.output_collections, - implicit_collections=execution_tracker.implicit_collections) - - def handle_single_execution(self, trans, rerun_remap_job_id, execution_slice, history, execution_cache=None, completed_job=None, collection_info=None, job_callback=None, flush_job=True): - """ - Return a pair with whether execution is successful as well as either - resulting output data or an error message indicating the problem. - """ - try: - rval = self.execute( - trans, - incoming=execution_slice.param_combination, - history=history, - rerun_remap_job_id=rerun_remap_job_id, - execution_cache=execution_cache, - dataset_collection_elements=execution_slice.dataset_collection_elements, - completed_job=completed_job, - collection_info=collection_info, - job_callback=job_callback, - flush_job=flush_job, - ) - job = rval[0] - out_data = rval[1] - if len(rval) > 2: - execution_slice.history = rval[2] - except (webob.exc.HTTPFound, exceptions.MessageException) as e: - # if it's a webob redirect exception, pass it up the stack - raise e - except ToolInputsNotReadyException as e: - return False, e - except Exception as e: - log.exception("Exception caught while attempting to execute tool with id '%s':", self.id) - message = f"Error executing tool with id '{self.id}': {unicodify(e)}" - return False, message - if isinstance(out_data, dict): - return job, list(out_data.items()) - else: - if isinstance(out_data, str): - message = out_data - else: - message = f"Failure executing tool with id '{self.id}' (invalid data returned from tool execution)" - return False, message - - def find_fieldstorage(self, x): - if isinstance(x, cgi_FieldStorage): - raise InterruptedUpload(None) - elif isinstance(x, dict): - [self.find_fieldstorage(y) for y in x.values()] - elif isinstance(x, list): - [self.find_fieldstorage(y) for y in x] - - @property - def params_with_missing_data_table_entry(self): - """ - Return all parameters that are dynamically generated select lists whose - options require an entry not currently in the tool_data_table_conf.xml file. - """ - params = [] - for input_param in self.input_params: - if isinstance(input_param, SelectToolParameter) and input_param.is_dynamic: - options = input_param.options - if options and options.missing_tool_data_table_name and input_param not in params: - params.append(input_param) - return params - - @property - def params_with_missing_index_file(self): - """ - Return all parameters that are dynamically generated - select lists whose options refer to a missing .loc file. - """ - params = [] - for input_param in self.input_params: - if isinstance(input_param, SelectToolParameter) and input_param.is_dynamic: - options = input_param.options - if options and options.tool_data_table and options.tool_data_table.missing_index_file and input_param not in params: - params.append(input_param) - return params - - def get_static_param_values(self, trans): - """ - Returns a map of parameter names and values if the tool does not - require any user input. Will raise an exception if any parameter - does require input. - """ - args = dict() - for key, param in self.inputs.items(): - # BaseURLToolParameter is now a subclass of HiddenToolParameter, so - # we must check if param is a BaseURLToolParameter first - if isinstance(param, BaseURLToolParameter): - args[key] = param.get_initial_value(trans, None) - elif isinstance(param, HiddenToolParameter): - args[key] = model.User.expand_user_properties(trans.user, param.value) - else: - args[key] = param.get_initial_value(trans, None) - return args - - def execute(self, trans, incoming=None, set_output_hid=True, history=None, **kwargs): - """ - Execute the tool using parameter values in `incoming`. This just - dispatches to the `ToolAction` instance specified by - `self.tool_action`. In general this will create a `Job` that - when run will build the tool's outputs, e.g. `DefaultToolAction`. - """ - if incoming is None: - incoming = {} - try: - return self.tool_action.execute(self, trans, incoming=incoming, set_output_hid=set_output_hid, history=history, **kwargs) - except exceptions.ToolExecutionError as exc: - job = exc.job - job_id = 'unknown' - if job is not None: - job.mark_failed(info=exc.err_msg, blurb=exc.err_code.default_error_message) - job_id = job.id - log.error("Tool execution failed for job: %s", job_id) - raise - - def params_to_strings(self, params, app, nested=False): - return params_to_strings(self.inputs, params, app, nested) - - def params_from_strings(self, params, app, ignore_errors=False): - return params_from_strings(self.inputs, params, app, ignore_errors) - - def check_and_update_param_values(self, values, trans, update_values=True, workflow_building_mode=False): - """ - Check that all parameters have values, and fill in with default - values where necessary. This could be called after loading values - from a database in case new parameters have been added. - """ - messages = {} - request_context = proxy_work_context_for_history(trans, workflow_building_mode=workflow_building_mode) - - def validate_inputs(input, value, error, parent, context, prefixed_name, prefixed_label, **kwargs): - if not error: - value, error = check_param(request_context, input, value, context) - if error: - if update_values and not hasattr(input, 'data_ref'): - try: - previous_value = value - value = input.get_initial_value(request_context, context) - if not prefixed_name.startswith('__'): - messages[prefixed_name] = error if previous_value == value else f'{error} Using default: \'{value}\'.' - parent[input.name] = value - except Exception: - messages[prefixed_name] = 'Attempt to replace invalid value for \'%s\' failed.' % (prefixed_label) - else: - messages[prefixed_name] = error - - visit_input_values(self.inputs, values, validate_inputs) - return messages - - def build_dependency_cache(self, **kwds): - if isinstance(self.app.toolbox.dependency_manager, CachedDependencyManager): - self.app.toolbox.dependency_manager.build_cache( - requirements=self.requirements, - installed_tool_dependencies=self.installed_tool_dependencies, - tool_dir=self.tool_dir, - job_directory=None, - metadata=False, - tool_instance=self, - **kwds - ) - - def build_dependency_shell_commands(self, job_directory=None, metadata=False): - """ - Return a list of commands to be run to populate the current environment to include this tools requirements. - """ - return self.app.toolbox.dependency_manager.dependency_shell_commands( - requirements=self.requirements, - installed_tool_dependencies=self.installed_tool_dependencies, - tool_dir=self.tool_dir, - job_directory=job_directory, - preserve_python_environment=self.requires_galaxy_python_environment, - metadata=metadata, - tool_instance=self - ) - - @property - def installed_tool_dependencies(self): - if self.tool_shed_repository: - installed_tool_dependencies = self.tool_shed_repository.tool_dependencies_installed_or_in_error - else: - installed_tool_dependencies = None - return installed_tool_dependencies - - @property - def tool_requirements(self): - """ - Return all requiremens of type package - """ - return self.requirements.packages - - @property - def tool_requirements_status(self): - """ - Return a list of dictionaries for all tool dependencies with their associated status - """ - return self._view.get_requirements_status({self.id: self.tool_requirements}, self.installed_tool_dependencies) - - @property - def output_discover_patterns(self): - # patterns to collect for remote job execution - patterns = [] - for output in self.outputs.values(): - patterns.extend(output.output_discover_patterns) - return patterns - - def build_redirect_url_params(self, param_dict): - """ - Substitute parameter values into self.redirect_url_params - """ - if not self.redirect_url_params: - return - redirect_url_params = None - # Substituting parameter values into the url params - redirect_url_params = fill_template(self.redirect_url_params, context=param_dict) - # Remove newlines - redirect_url_params = redirect_url_params.replace("\n", " ").replace("\r", " ") - return redirect_url_params - - def parse_redirect_url(self, data, param_dict): - """ - Parse the REDIRECT_URL tool param. Tools that send data to an external - application via a redirect must include the following 3 tool params: - - 1) REDIRECT_URL - the url to which the data is being sent - - 2) DATA_URL - the url to which the receiving application will send an - http post to retrieve the Galaxy data - - 3) GALAXY_URL - the url to which the external application may post - data as a response - """ - redirect_url = param_dict.get('REDIRECT_URL') - redirect_url_params = self.build_redirect_url_params(param_dict) - # Add the parameters to the redirect url. We're splitting the param - # string on '**^**' because the self.parse() method replaced white - # space with that separator. - params = redirect_url_params.split('**^**') - rup_dict = {} - for param in params: - p_list = param.split('=') - p_name = p_list[0] - p_val = p_list[1] - rup_dict[p_name] = p_val - DATA_URL = param_dict.get('DATA_URL', None) - assert DATA_URL is not None, "DATA_URL parameter missing in tool config." - DATA_URL += f"/{str(data.id)}/display" - redirect_url += f"?DATA_URL={DATA_URL}" - # Add the redirect_url_params to redirect_url - for p_name in rup_dict: - redirect_url += f"&{p_name}={rup_dict[p_name]}" - # Add the current user email to redirect_url - if data.history.user: - USERNAME = str(data.history.user.email) - else: - USERNAME = 'Anonymous' - redirect_url += f"&USERNAME={USERNAME}" - return redirect_url - - def call_hook(self, hook_name, *args, **kwargs): - """ - Call the custom code hook function identified by 'hook_name' if any, - and return the results - """ - try: - code = self.get_hook(hook_name) - if code: - return code(*args, **kwargs) - except Exception as e: - original_message = '' - if len(e.args): - original_message = e.args[0] - e.args = (f"Error in '{self.name}' hook '{hook_name}', original message: {original_message}", ) - raise - - def exec_before_job(self, app, inp_data, out_data, param_dict=None): - pass - - def exec_after_process(self, app, inp_data, out_data, param_dict, job=None, **kwds): - pass - - def job_failed(self, job_wrapper, message, exception=False): - """ - Called when a job has failed - """ - - def discover_outputs(self, out_data, out_collections, tool_provided_metadata, tool_working_directory, job, input_ext, input_dbkey, inp_data=None, final_job_state='ok'): - """ - Find any additional datasets generated by a tool and attach (for - cases where number of outputs is not known in advance). - """ - # given the job_execution import is the only one, probably makes sense to refactor this out - # into job_wrapper. - tool = self - permission_provider = output_collect.PermissionProvider(inp_data, tool.app.security_agent, job) - metadata_source_provider = output_collect.MetadataSourceProvider(inp_data) - job_context = output_collect.JobContext( - tool, - tool_provided_metadata, - job, - tool_working_directory, - permission_provider, - metadata_source_provider, - input_dbkey, - object_store=tool.app.object_store, - final_job_state=final_job_state, - flush_per_n_datasets=tool.app.config.flush_per_n_datasets, - max_discovered_files=tool.app.config.max_discovered_files, - ) - collected = output_collect.collect_primary_datasets( - job_context, - out_data, - input_ext, - ) - output_collect.collect_dynamic_outputs( - job_context, - out_collections, - ) - # Return value only used in unit tests. Probably should be returning number of collected - # bytes instead? - return collected - - def to_archive(self): - tool = self - tarball_files = [] - temp_files = [] - with open(os.path.abspath(tool.config_file)) as fh1: - tool_xml = fh1.read() - # Retrieve tool help images and rewrite the tool's xml into a temporary file with the path - # modified to be relative to the repository root. - image_found = False - if tool.help is not None: - tool_help = tool.help._source - # Check each line of the rendered tool help for an image tag that points to a location under static/ - for help_line in tool_help.split('\n'): - image_regex = re.compile(r'img alt="[^"]+" src="\${static_path}/([^"]+)"') - matches = re.search(image_regex, help_line) - if matches is not None: - tool_help_image = matches.group(1) - tarball_path = tool_help_image - filesystem_path = os.path.abspath(os.path.join(self.app.config.root, 'static', tool_help_image)) - if os.path.exists(filesystem_path): - tarball_files.append((filesystem_path, tarball_path)) - image_found = True - tool_xml = tool_xml.replace('${static_path}/%s' % tarball_path, tarball_path) - # If one or more tool help images were found, add the modified tool XML to the tarball instead of the original. - if image_found: - with tempfile.NamedTemporaryFile( - mode="w", suffix=".xml", delete=False - ) as fh2: - new_tool_config = fh2.name - fh2.write(tool_xml) - tool_tup = (new_tool_config, os.path.split(tool.config_file)[-1]) - temp_files.append(new_tool_config) - else: - tool_tup = (os.path.abspath(tool.config_file), os.path.split(tool.config_file)[-1]) - tarball_files.append(tool_tup) - # TODO: This feels hacky. - tool_command = tool.command.strip().split()[0] - tool_path = os.path.dirname(os.path.abspath(tool.config_file)) - # Add the tool XML to the tuple that will be used to populate the tarball. - if os.path.exists(os.path.join(tool_path, tool_command)): - tarball_files.append((os.path.join(tool_path, tool_command), tool_command)) - # Find and add macros and code files. - for external_file in tool.get_externally_referenced_paths(os.path.abspath(tool.config_file)): - external_file_abspath = os.path.abspath(os.path.join(tool_path, external_file)) - tarball_files.append((external_file_abspath, external_file)) - if os.path.exists(os.path.join(tool_path, "Dockerfile")): - tarball_files.append((os.path.join(tool_path, "Dockerfile"), "Dockerfile")) - # Find tests, and check them for test data. - tests = tool.tests - if tests is not None: - for test in tests: - # Add input file tuples to the list. - for input in test.inputs: - for input_value in test.inputs[input]: - input_filename = str(input_value) - input_path = os.path.abspath(os.path.join('test-data', input_filename)) - if os.path.exists(input_path): - td_tup = (input_path, os.path.join('test-data', input_filename)) - tarball_files.append(td_tup) - # And add output file tuples to the list. - for _, filename, _ in test.outputs: - output_filepath = os.path.abspath(os.path.join('test-data', filename)) - if os.path.exists(output_filepath): - td_tup = (output_filepath, os.path.join('test-data', filename)) - tarball_files.append(td_tup) - for param in tool.input_params: - # Check for tool data table definitions. - if hasattr(param, 'options'): - if hasattr(param.options, 'tool_data_table'): - data_table = param.options.tool_data_table - if hasattr(data_table, 'filenames'): - data_table_definitions = [] - for data_table_filename in data_table.filenames: - # FIXME: from_shed_config seems to always be False. - if not data_table.filenames[data_table_filename]['from_shed_config']: - tar_file = f"{data_table.filenames[data_table_filename]['filename']}.sample" - sample_file = os.path.join(data_table.filenames[data_table_filename]['tool_data_path'], - tar_file) - # Use the .sample file, if one exists. If not, skip this data table. - if os.path.exists(sample_file): - tarfile_path, tarfile_name = os.path.split(tar_file) - tarfile_path = os.path.join('tool-data', tarfile_name) - tarball_files.append((sample_file, tarfile_path)) - data_table_definitions.append(data_table.xml_string) - if len(data_table_definitions) > 0: - # Put the data table definition XML in a temporary file. - table_definition = '<?xml version="1.0" encoding="utf-8"?>\n<tables>\n %s</tables>' - table_definition = table_definition % "\n".join( - data_table_definitions - ) - with tempfile.NamedTemporaryFile( - mode="w", delete=False - ) as fh3: - table_conf = fh3.name - fh3.write(table_definition) - tarball_files.append((table_conf, os.path.join('tool-data', 'tool_data_table_conf.xml.sample'))) - temp_files.append(table_conf) - # Create the tarball. - with tempfile.NamedTemporaryFile(suffix=".tgz", delete=False) as fh4: - tarball_archive = fh4.name - tarball = tarfile.open(name=tarball_archive, mode='w:gz') - # Add the files from the previously generated list. - for fspath, tarpath in tarball_files: - tarball.add(fspath, arcname=tarpath) - tarball.close() - # Delete any temporary files that were generated. - for temp_file in temp_files: - os.remove(temp_file) - return tarball_archive - - def to_dict(self, trans, link_details=False, io_details=False, tool_help=False): - """ Returns dict of tool. """ - - # Basic information - tool_dict = super().to_dict() - - tool_dict["edam_operations"] = self.edam_operations - tool_dict["edam_topics"] = self.edam_topics - tool_dict["hidden"] = self.hidden - tool_dict["is_workflow_compatible"] = self.is_workflow_compatible - tool_dict["xrefs"] = self.xrefs - - # Fill in ToolShedRepository info - if hasattr(self, 'tool_shed') and self.tool_shed: - tool_dict['tool_shed_repository'] = { - 'name': self.repository_name, - 'owner': self.repository_owner, - 'changeset_revision': self.changeset_revision, - 'tool_shed': self.tool_shed - } - - # If an admin user, expose the path to the actual tool config XML file. - if trans.user_is_admin: - config_file = None if not self.config_file else os.path.abspath(self.config_file) - tool_dict['config_file'] = config_file - - # Add link details. - if link_details: - # Add details for creating a hyperlink to the tool. - if not isinstance(self, DataSourceTool): - link = self.app.url_for(controller='tool_runner', tool_id=self.id) - else: - link = self.app.url_for(controller='tool_runner', action='data_source_redirect', tool_id=self.id) - - # Basic information - tool_dict.update({'link': link, - 'min_width': self.uihints.get('minwidth', -1), - 'target': self.target}) - - # Add input and output details. - if io_details: - tool_dict['inputs'] = [input.to_dict(trans) for input in self.inputs.values()] - tool_dict['outputs'] = [output.to_dict(app=self.app) for output in self.outputs.values()] - - tool_dict['panel_section_id'], tool_dict['panel_section_name'] = self.get_panel_section() - - tool_class = self.__class__ - # FIXME: the Tool class should declare directly, instead of ad hoc inspection - regular_form = tool_class == Tool or isinstance(self, (DatabaseOperationTool, InteractiveTool)) - tool_dict["form_style"] = "regular" if regular_form else "special" - if tool_help: - # create tool help - help_txt = '' - if self.help: - help_txt = self.help.render(static_path=self.app.url_for('/static'), host_url=self.app.url_for('/', qualified=True)) - help_txt = unicodify(help_txt) - tool_dict['help'] = help_txt - - return tool_dict - - def to_json(self, trans, kwd=None, job=None, workflow_building_mode=False, history=None): - """ - Recursively creates a tool dictionary containing repeats, dynamic options and updated states. - """ - if kwd is None: - kwd = {} - if workflow_building_mode is workflow_building_modes.USE_HISTORY or workflow_building_mode is workflow_building_modes.DISABLED: - # We don't need a history when exporting a workflow for the workflow editor or when downloading a workflow - history = history or trans.get_history() - if history is None and job is not None: - history = self.history_manager.get_owned(job.history.id, trans.user, current_history=trans.history) - if history is None: - raise exceptions.MessageException('History unavailable. Please specify a valid history id') - - # build request context - request_context = proxy_work_context_for_history(trans, history, workflow_building_mode=workflow_building_mode) - - # load job parameters into incoming - tool_message = '' - tool_warnings = '' - if job: - try: - job_params = job.get_param_values(self.app, ignore_errors=True) - tool_warnings = self.check_and_update_param_values(job_params, request_context, update_values=True) - self._map_source_to_history(request_context, self.inputs, job_params) - tool_message = self._compare_tool_version(job) - params_to_incoming(kwd, self.inputs, job_params, self.app) - except Exception as e: - raise exceptions.MessageException(unicodify(e)) - - # create parameter object - params = Params(kwd, sanitize=False) - - # expand incoming parameters (parameters might trigger multiple tool executions, - # here we select the first execution only in order to resolve dynamic parameters) - expanded_incomings, _ = expand_meta_parameters(trans, self, params.__dict__) - if expanded_incomings: - params.__dict__ = expanded_incomings[0] - - # do param translation here, used by datasource tools - if self.input_translator: - self.input_translator.translate(params) - - set_dataset_matcher_factory(request_context, self) - # create tool state - state_inputs: Dict[str, str] = {} - state_errors: Dict[str, str] = {} - populate_state(request_context, self.inputs, params.__dict__, state_inputs, state_errors) - - # create tool model - tool_model = self.to_dict(request_context) - tool_model['inputs'] = [] - self.populate_model(request_context, self.inputs, state_inputs, tool_model['inputs']) - unset_dataset_matcher_factory(request_context) - - # create tool help - tool_help = '' - if self.help: - tool_help = self.help.render(static_path=self.app.url_for('/static'), host_url=self.app.url_for('/', qualified=True)) - tool_help = unicodify(tool_help, 'utf-8') - - if isinstance(self.action, tuple): - action = self.action[0] + self.app.url_for(self.action[1]) - else: - action = self.app.url_for(self.action) - - # update tool model - tool_model.update({ - 'id': self.id, - 'help': tool_help, - 'citations': bool(self.citations), - 'sharable_url': self.sharable_url, - 'message': tool_message, - 'warnings': tool_warnings, - 'versions': self.tool_versions, - 'requirements': [{'name': r.name, 'version': r.version} for r in self.requirements], - 'errors': state_errors, - 'tool_errors': self.tool_errors, - 'state_inputs': params_to_strings(self.inputs, state_inputs, self.app, use_security=True, nested=True), - 'job_id': trans.security.encode_id(job.id) if job else None, - 'job_remap': job.remappable() if job else None, - 'history_id': trans.security.encode_id(history.id) if history else None, - 'display': self.display_interface, - 'action': action, - 'license': self.license, - 'creator': self.creator, - 'method': self.method, - 'enctype': self.enctype - }) - return tool_model - - def populate_model(self, request_context, inputs, state_inputs, group_inputs, other_values=None): - """ - Populates the tool model consumed by the client form builder. - """ - other_values = ExpressionContext(state_inputs, other_values) - for input_index, input in enumerate(inputs.values()): - tool_dict = None - group_state = state_inputs.get(input.name, {}) - if input.type == 'repeat': - tool_dict = input.to_dict(request_context) - group_size = len(group_state) - tool_dict["cache"] = [None] * group_size - group_cache: List[List[str]] = tool_dict["cache"] - for i in range(group_size): - group_cache[i] = [] - self.populate_model(request_context, input.inputs, group_state[i], group_cache[i], other_values) - elif input.type == 'conditional': - tool_dict = input.to_dict(request_context) - if 'test_param' in tool_dict: - test_param = tool_dict['test_param'] - test_param['value'] = input.test_param.value_to_basic(group_state.get(test_param['name'], input.test_param.get_initial_value(request_context, other_values)), self.app) - test_param['text_value'] = input.test_param.value_to_display_text(test_param['value']) - for i in range(len(tool_dict['cases'])): - current_state = {} - if i == group_state.get('__current_case__'): - current_state = group_state - self.populate_model(request_context, input.cases[i].inputs, current_state, tool_dict['cases'][i]['inputs'], other_values) - elif input.type == 'section': - tool_dict = input.to_dict(request_context) - self.populate_model(request_context, input.inputs, group_state, tool_dict['inputs'], other_values) - else: - try: - initial_value = input.get_initial_value(request_context, other_values) - tool_dict = input.to_dict(request_context, other_values=other_values) - tool_dict['value'] = input.value_to_basic(state_inputs.get(input.name, initial_value), self.app, use_security=True) - tool_dict['default_value'] = input.value_to_basic(initial_value, self.app, use_security=True) - tool_dict['text_value'] = input.value_to_display_text(tool_dict['value']) - except ImplicitConversionRequired: - tool_dict = input.to_dict(request_context) - # This hack leads client to display a text field - tool_dict['textable'] = True - except Exception: - tool_dict = input.to_dict(request_context) - log.exception("tools::to_json() - Skipping parameter expansion '%s'", input.name) - if input_index >= len(group_inputs): - group_inputs.append(tool_dict) - else: - group_inputs[input_index] = tool_dict - - def _map_source_to_history(self, trans, tool_inputs, params): - # Need to remap dataset parameters. Job parameters point to original - # dataset used; parameter should be the analygous dataset in the - # current history. - history = trans.history - - # Create index for hdas. - hda_source_dict = {} - for hda in history.datasets: - key = f'{hda.hid}_{hda.dataset.id}' - hda_source_dict[hda.dataset.id] = hda_source_dict[key] = hda - - # Ditto for dataset collections. - hdca_source_dict = {} - for hdca in history.dataset_collections: - key = f'{hdca.hid}_{hdca.collection.id}' - hdca_source_dict[hdca.collection.id] = hdca_source_dict[key] = hdca - - # Map dataset or collection to current history - def map_to_history(value): - id = None - source = None - if isinstance(value, self.app.model.HistoryDatasetAssociation): - id = value.dataset.id - source = hda_source_dict - elif isinstance(value, self.app.model.HistoryDatasetCollectionAssociation): - id = value.collection.id - source = hdca_source_dict - else: - return None - key = f'{value.hid}_{id}' - if key in source: - return source[key] - elif id in source: - return source[id] - else: - return None - - def mapping_callback(input, value, **kwargs): - if isinstance(input, DataToolParameter): - if isinstance(value, list): - values = [] - for val in value: - new_val = map_to_history(val) - if new_val: - values.append(new_val) - else: - values.append(val) - return values - else: - return map_to_history(value) - elif isinstance(input, DataCollectionToolParameter): - return map_to_history(value) - visit_input_values(tool_inputs, params, mapping_callback) - - def _compare_tool_version(self, job): - """ - Compares a tool version with the tool version from a job (from ToolRunner). - """ - tool_id = job.tool_id - tool_version = job.tool_version - message = '' - try: - select_field, tools, tool = self.app.toolbox.get_tool_components(tool_id, tool_version=tool_version, get_loaded_tools_by_lineage=False, set_selected=True) - if tool is None: - raise exceptions.MessageException('This dataset was created by an obsolete tool (%s). Can\'t re-run.' % tool_id) - if (self.id != tool_id and self.old_id != tool_id) or self.version != tool_version: - if self.id == tool_id: - if tool_version: - message = f'This job was run with tool version "{tool_version}", which is not available. ' - if len(tools) > 1: - message += 'You can re-run the job with the selected tool or choose another version of the tool. ' - else: - message += 'You can re-run the job with this tool version, which is a different version of the original tool. ' - else: - new_tool_shed_url = f'{tool.sharable_url}/{tool.changeset_revision}/' - old_tool_shed_url = get_tool_shed_url_from_tool_shed_registry(self.app, tool_id.split('/repos/')[0]) - old_tool_shed_url = f'{old_tool_shed_url}/view/{tool.repository_owner}/{tool.repository_name}/' - message = f'This job was run with <a href=\"{old_tool_shed_url}\" target=\"_blank\">tool id \"{tool_id}\"</a>, version "{tool_version}", which is not available. ' - if len(tools) > 1: - message += f'You can re-run the job with the selected <a href=\"{new_tool_shed_url}\" target=\"_blank\">tool id \"{self.id}\"</a> or choose another derivation of the tool. ' - else: - message += f'You can re-run the job with <a href=\"{new_tool_shed_url}\" target=\"_blank\">tool id \"{self.id}\"</a>, which is a derivation of the original tool. ' - if not self.is_latest_version: - message += 'There is a newer version of this tool available.' - except Exception as e: - raise exceptions.MessageException(unicodify(e)) - return message - - def get_default_history_by_trans(self, trans, create=False): - return trans.get_history(create=create) - - @classmethod - def get_externally_referenced_paths(self, path): - """ Return relative paths to externally referenced files by the tool - described by file at `path`. External components should not assume things - about the structure of tool xml files (this is the tool's responsibility). - """ - tree = raw_tool_xml_tree(path) - root = tree.getroot() - external_paths = [] - for code_elem in root.findall('code'): - external_path = code_elem.get('file') - if external_path: - external_paths.append(external_path) - external_paths.extend(imported_macro_paths(root)) - # May also need to load external citation files as well at some point. - return external_paths +# import itertools +# import math +# import os +# import re +# import tarfile +# import tempfile +# import threading +# from pathlib import Path +# from typing import ( +# Any, +# cast, +# Dict, +# List, +# Optional, +# Set, +# Tuple, +# Union, +# ) +# from urllib.parse import unquote_plus + +# import packaging.version +# import webob.exc +# from mako.template import Template +# from webob.compat import cgi_FieldStorage + +# from galaxy import ( +# exceptions, +# model +# ) +# from galaxy.exceptions import ToolInputsNotReadyException +# from galaxy.job_execution import output_collect +# from galaxy.tool_shed.util.repository_util import get_installed_repository +# from galaxy.tool_shed.util.shed_util_common import set_image_paths +# from galaxy.tool_util.deps import ( +# CachedDependencyManager, +# ) +# from galaxy.tool_util.loader import ( +# imported_macro_paths, +# raw_tool_xml_tree, +# template_macro_params +# ) +# from galaxy.tool_util.parser import ( +# RequiredFiles, +# ToolOutputCollectionPart +# ) +# from galaxy.tool_util.parser.xml import XmlPageSource +# from galaxy.tool_util.provided_metadata import parse_tool_provided_metadata +# from galaxy.tools import expressions +# from galaxy.tools.actions import DefaultToolAction, ToolAction +# from galaxy.tools.evaluation import global_tool_errors +# from galaxy.tools.parameters import ( +# check_param, +# params_from_strings, +# params_to_incoming, +# params_to_strings, +# populate_state, +# visit_input_values +# ) +# from galaxy.tools.parameters.basic import ( +# BaseURLToolParameter, +# DataCollectionToolParameter, +# DataToolParameter, +# HiddenToolParameter, +# ImplicitConversionRequired, +# SelectToolParameter, +# ToolParameter, +# workflow_building_modes, +# ) +# from galaxy.tools.parameters.dataset_matcher import ( +# set_dataset_matcher_factory, +# unset_dataset_matcher_factory, +# ) +# from galaxy.tools.parameters.grouping import Conditional, ConditionalWhen, Repeat, Section, UploadDataset +# from galaxy.tools.parameters.input_translation import ToolInputTranslator +# from galaxy.tools.parameters.meta import expand_meta_parameters +# from galaxy.tools.test import parse_tests +# from galaxy.util import ( +# in_directory, +# Params, +# parse_xml_string, +# rst_to_html, +# string_as_bool, +# unicodify, +# XML, +# ) +# from galaxy.util.expressions import ExpressionContext +# from galaxy.util.template import ( +# fill_template, +# refactoring_tool, +# ) +# from galaxy.util.tool_shed.common_util import ( +# get_tool_shed_repository_url, +# get_tool_shed_url_from_tool_shed_registry, +# ) +# from galaxy.version import VERSION_MAJOR +# from galaxy.work.context import proxy_work_context_for_history + + +# HELP_UNINITIALIZED = threading.Lock() + +# REQUIRE_FULL_DIRECTORY = { +# "includes": [{"path": "**", "path_type": "glob"}], +# } +# IMPLICITLY_REQUIRED_TOOL_FILES: Dict[str, Dict] = { +# "deseq2": {"version": packaging.version.parse("2.11.40.6"), "required": {"includes": [{"path": "*.R", "path_type": "glob"}]}}, +# # minimum example: +# # "foobar": {"required": REQUIRE_FULL_DIRECTORY} +# # if no version is specified, all versions without explicit RequiredFiles will be selected +# "circos": {"required": REQUIRE_FULL_DIRECTORY}, +# "cp_image_math": {"required": {"includes": [{"path": "*.py", "path_type": "glob"}]}}, +# "enumerate_charges": {"required": REQUIRE_FULL_DIRECTORY}, +# "fasta_compute_length": {"required": {"includes": [{"path": "utils/*", "path_type": "glob"}]}}, +# "fasta_concatenate0": {"required": {"includes": [{"path": "utils/*", "path_type": "glob"}]}}, +# "filter_tabular": {"required": {"includes": [{"path": "*.py", "path_type": "glob"}]}}, +# "flanking_features_1": {"required": {"includes": [{"path": "utils/*", "path_type": "glob"}]}}, +# "gops_intersect_1": {"required": {"includes": [{"path": "utils/*", "path_type": "glob"}]}}, +# "gops_subtract_1": {"required": {"includes": [{"path": "utils/*", "path_type": "glob"}]}}, +# "maxquant": {"required": {"includes": [{"path": "*.py", "path_type": "glob"}]}}, +# "maxquant_mqpar": {"required": {"includes": [{"path": "*.py", "path_type": "glob"}]}}, +# "query_tabular": {"required": {"includes": [{"path": "*.py", "path_type": "glob"}]}}, +# "shasta": {"required": {"includes": [{"path": "configs/*", "path_type": "glob"}]}}, +# "sqlite_to_tabular": {"required": {"includes": [{"path": "*.py", "path_type": "glob"}]}}, +# "sucos_max_score": {"required": {"includes": [{"path": "*.py", "path_type": "glob"}]}}, +# } + +# from galaxy.datatypes.registry import Registry + + +# class App: + +# def __init__(self) -> None: +# self.datatypes_registry = Registry() +# self.datatypes_registry.load_datatypes() + + +# class GXTool: +# """ +# Represents a computational tool that can be executed through Galaxy. +# """ + +# tool_type = 'default' +# requires_setting_metadata = True +# produces_entry_points = False +# default_tool_action = DefaultToolAction +# tool_action: ToolAction +# tool_type_local = False +# dict_collection_visible_keys = ['id', 'name', 'version', 'description', 'labels'] +# __help: Optional[threading.Lock] +# __help_by_page: Union[threading.Lock, List[str]] +# job_search: 'JobSearch' +# version: str + +# def __init__(self, config_file, tool_source, guid=None, repository_id=None, tool_shed_repository=None, allow_code_files=True, dynamic=False, tool_dir=None): +# """Load a tool from the config named by `config_file`""" +# # Determine the full path of the directory where the tool config is +# if config_file is not None: +# self.config_file = config_file +# self.tool_dir = tool_dir or os.path.dirname(config_file) +# else: +# self.config_file = None +# self.tool_dir = tool_dir + +# # self.app = app +# self.repository_id = repository_id +# self._allow_code_files = allow_code_files +# # setup initial attribute values +# self.stdio_exit_codes = list() +# self.stdio_regexes = list() +# self.inputs_by_page = list() +# self.display_by_page = list() +# self.action: Union[str, Tuple[str, str]] = "/tool_runner/index" +# self.target = "galaxy_main" +# self.method = "post" +# self.labels = [] +# self.check_values = True +# self.nginx_upload = False +# self.input_required = False +# self.display_interface = True +# self.require_login = False +# self.rerun = False +# # This will be non-None for tools loaded from the database (DynamicTool objects). +# self.dynamic_tool = None +# # Define a place to keep track of all input These +# # differ from the inputs dictionary in that inputs can be page +# # elements like conditionals, but input_params are basic form +# # parameters like SelectField objects. This enables us to more +# # easily ensure that parameter dependencies like index files or +# # tool_data_table_conf.xml entries exist. +# self.input_params = [] +# # Attributes of tools installed from Galaxy tool sheds. +# self.tool_shed = None +# self.repository_name = None +# self.repository_owner = None +# self.changeset_revision = None +# self.installed_changeset_revision = None +# self.sharable_url = None +# # The tool.id value will be the value of guid, but we'll keep the +# # guid attribute since it is useful to have. +# self.guid = guid +# self.old_id = None +# self.python_template_version = None +# self._lineage = None +# self.dependencies = [] +# # populate toolshed repository info, if available +# self.populate_tool_shed_info(tool_shed_repository) +# # add tool resource parameters +# # self.populate_resource_parameters(tool_source) +# self.tool_errors = None +# # Parse XML element containing configuration +# self.tool_source = tool_source +# self._is_workflow_compatible = None +# self.finalized = False +# try: +# self.parse(tool_source, guid=guid, dynamic=dynamic) +# except Exception as e: +# global_tool_errors.add_error(config_file, "Tool Loading", e) +# raise e +# # # The job search is only relevant in a galaxy context, and breaks +# # # loading tools into the toolshed for validation. +# # if self.app.name == 'galaxy': +# # self.job_search = self.app.job_search + +# def __getattr__(self, name): +# lazy_attributes = { +# 'action', +# 'check_values', +# 'display_by_page', +# 'enctype', +# 'has_multiple_pages', +# 'inputs', +# 'inputs_by_page', +# 'last_page', +# 'method', +# 'npages', +# 'nginx_upload', +# 'target', +# 'template_macro_params', +# 'outputs', +# 'output_collections' +# } +# if name in lazy_attributes: +# self.assert_finalized() +# return getattr(self, name) +# raise AttributeError(name) + +# def assert_finalized(self, raise_if_invalid=False): +# if self.finalized is False: +# try: +# self.parse_inputs(self.tool_source) +# self.parse_outputs(self.tool_source) +# self.finalized = True +# except Exception as e: +# toolbox = getattr(self.app, 'toolbox', None) +# if toolbox: +# toolbox.remove_tool_by_id(self.id) +# if raise_if_invalid: +# raise +# else: +# print("An error occured while parsing the tool wrapper xml, the tool is not functional") + +# def remove_from_cache(self): +# source_path = self.tool_source._source_path +# if source_path: +# for region in self.app.toolbox.cache_regions.values(): +# region.delete(source_path) + +# @property +# def history_manager(self): +# return self.app.history_manager + +# @property +# def _view(self): +# return self.app.dependency_resolvers_view + +# @property +# def version_object(self): +# return packaging.version.parse(self.version) + +# @property +# def sa_session(self): +# """Returns a SQLAlchemy session""" +# return self.app.model.context + +# @property +# def lineage(self): +# """Return ToolLineage for this tool.""" +# return self._lineage + +# @property +# def tool_versions(self): +# # If we have versions, return them. +# if self.lineage: +# return list(self.lineage.tool_versions) +# else: +# return [] + +# @property +# def is_latest_version(self): +# tool_versions = self.tool_versions +# return not tool_versions or self.version == self.tool_versions[-1] + +# @property +# def latest_version(self): +# if self.is_latest_version: +# return self +# else: +# return self.app.tool_cache.get_tool_by_id(self.lineage.get_versions()[-1].id) + +# @property +# def is_datatype_converter(self): +# return self in self.app.datatypes_registry.converter_tools + +# @property +# def tool_shed_repository(self): +# # If this tool is included in an installed tool shed repository, return it. +# if self.tool_shed: +# return get_installed_repository(self.app, +# tool_shed=self.tool_shed, +# name=self.repository_name, +# owner=self.repository_owner, +# installed_changeset_revision=self.installed_changeset_revision, +# from_cache=True) + +# @property +# def produces_collections_with_unknown_structure(self): + +# def output_is_dynamic(output): +# if not output.collection: +# return False +# return output.dynamic_structure + +# return any(map(output_is_dynamic, self.outputs.values())) + +# @property +# def valid_input_states(self): +# return model.Dataset.valid_input_states + +# @property +# def requires_galaxy_python_environment(self): +# """Indicates this tool's runtime requires Galaxy's Python environment.""" +# # All special tool types (data source, history import/export, etc...) +# # seem to require Galaxy's Python. +# # FIXME: the (instantiated) tool class should emit this behavior, and not +# # use inspection by string check +# if self.tool_type not in ["default", "manage_data", "interactive", "data_source"]: +# return True + +# if self.tool_type == "manage_data" and self.profile < 18.09: +# return True + +# if self.tool_type == "data_source" and self.profile < 21.09: +# return True + +# config = self.app.config +# preserve_python_environment = config.preserve_python_environment +# if preserve_python_environment == "always": +# return True +# elif preserve_python_environment == "legacy_and_local" and self.tool_shed is None: +# return True +# else: +# unversioned_legacy_tool = self.old_id in GALAXY_LIB_TOOLS_UNVERSIONED +# versioned_legacy_tool = self.old_id in GALAXY_LIB_TOOLS_VERSIONED +# legacy_tool = unversioned_legacy_tool or ( +# versioned_legacy_tool +# and self.old_id +# and self.version_object < GALAXY_LIB_TOOLS_VERSIONED[self.old_id] +# ) +# return legacy_tool + +# def __get_job_tool_configuration(self, job_params=None): +# """Generalized method for getting this tool's job configuration. + +# :type job_params: dict or None +# :returns: `galaxy.jobs.JobToolConfiguration` -- JobToolConfiguration that matches this `Tool` and the given `job_params` +# """ +# rval = None +# if len(self.job_tool_configurations) == 1: +# # If there's only one config, use it rather than wasting time on comparisons +# rval = self.job_tool_configurations[0] +# elif job_params is None: +# for job_tool_config in self.job_tool_configurations: +# if not job_tool_config.params: +# rval = job_tool_config +# break +# else: +# for job_tool_config in self.job_tool_configurations: +# if job_tool_config.params: +# # There are job params and this config has params defined +# for param, value in job_params.items(): +# if param not in job_tool_config.params or job_tool_config.params[param] != value: +# break +# else: +# # All params match, use this config +# rval = job_tool_config +# break +# else: +# rval = job_tool_config +# assert rval is not None, f'Could not get a job tool configuration for Tool {self.id} with job_params {job_params}, this is a bug' +# return rval + +# def get_configured_job_handler(self, job_params=None): +# """Get the configured job handler for this `Tool` given the provided `job_params`. + +# Unlike the former ``get_job_handler()`` method, this does not perform "preassignment" (random selection of +# a configured handler ID from a tag). + +# :param job_params: Any params specific to this job (e.g. the job source) +# :type job_params: dict or None + +# :returns: str or None -- The configured handler for a job run of this `Tool` +# """ +# return self.__get_job_tool_configuration(job_params=job_params).handler + +# def get_job_destination(self, job_params=None): +# """ +# :returns: galaxy.jobs.JobDestination -- The destination definition and runner parameters. +# """ +# return self.app.job_config.get_destination(self.__get_job_tool_configuration(job_params=job_params).destination) + +# def get_panel_section(self): +# return self.app.toolbox.get_section_for_tool(self) + +# def allow_user_access(self, user, attempting_access=True): +# """ +# :returns: bool -- Whether the user is allowed to access the tool. +# """ +# if self.require_login and user is None: +# return False +# return True + +# def parse(self, tool_source, guid=None, dynamic=False): +# """ +# Read tool configuration from the element `root` and fill in `self`. +# """ +# self.profile = float(tool_source.parse_profile()) +# # Get the UNIQUE id for the tool +# self.old_id = tool_source.parse_id() +# self.id = self.old_id # added +# # if guid is None: +# # self.id = self.old_id +# # else: +# # self.id = guid + +# # if not dynamic and not self.id: +# # raise Exception(f"Missing tool 'id' for tool at '{tool_source}'") + +# # profile = packaging.version.parse(str(self.profile)) +# # if self.app.name == 'galaxy' and profile >= packaging.version.parse("16.04") and packaging.version.parse(VERSION_MAJOR) < profile: +# # message = f"The tool [{self.id}] targets version {self.profile} of Galaxy, you should upgrade Galaxy to ensure proper functioning of this tool." +# # raise Exception(message) + +# # self.python_template_version = tool_source.parse_python_template_version() +# # if self.python_template_version is None: +# # # If python_template_version not specified we assume tools with profile versions >= 19.05 are python 3 ready +# # if self.profile >= 19.05: +# # self.python_template_version = packaging.version.parse('3.5') +# # else: +# # self.python_template_version = packaging.version.parse('2.7') + +# # Get the (user visible) name of the tool +# self.name = tool_source.parse_name() +# if not self.name: +# raise RuntimeError +# # if not self.name and dynamic: +# # self.name = self.id +# # if not dynamic and not self.name: +# # raise Exception(f"Missing tool 'name' for tool with id '{self.id}' at '{tool_source}'") + +# self.version = tool_source.parse_version() +# if not self.version: +# raise RuntimeError +# # if self.profile < 16.04: +# # # For backward compatibility, some tools may not have versions yet. +# # self.version = "1.0.0" +# # else: +# # raise Exception(f"Missing tool 'version' for tool with id '{self.id}' at '{tool_source}'") + +# # Legacy feature, ignored by UI. +# self.force_history_refresh = False + +# self.display_interface = False # added +# # self.display_interface = tool_source.parse_display_interface(default=self.display_interface) + +# self.require_login = False # added +# # self.require_login = tool_source.parse_require_login(self.require_login) + +# self.input_translator = None # added +# # request_param_translation_elem = tool_source.parse_request_param_translation_elem() +# # if request_param_translation_elem is not None: +# # # Load input translator, used by datasource tools to change names/values of incoming parameters +# # self.input_translator = ToolInputTranslator.from_element(request_param_translation_elem) +# # else: +# # self.input_translator = None + +# self.parse_command(tool_source) +# self.environment_variables = self.parse_environment_variables(tool_source) +# self.tmp_directory_vars = tool_source.parse_tmp_directory_vars() + +# self.home_target = None # added +# self.tmp_target = None # added + +# # home_target = tool_source.parse_home_target() +# # tmp_target = tool_source.parse_tmp_target() +# # # If a tool explicitly sets one of these variables just respect that and turn off +# # # explicit processing by Galaxy. +# # for environment_variable in self.environment_variables: +# # if environment_variable.get("name") == "HOME": +# # home_target = None +# # continue +# # for tmp_directory_var in self.tmp_directory_vars: +# # if environment_variable.get("name") == tmp_directory_var: +# # tmp_target = None +# # break +# # self.home_target = home_target +# # self.tmp_target = tmp_target +# self.docker_env_pass_through = [] # added +# # self.docker_env_pass_through = tool_source.parse_docker_env_pass_through() +# # if self.environment_variables: +# # if not self.docker_env_pass_through: +# # self.docker_env_pass_through = [] +# # self.docker_env_pass_through.extend(map(lambda x: x['name'], self.environment_variables)) + +# # Parameters used to build URL for redirection to external app +# self.redirect_url_params = '' # added +# # redirect_url_params = tool_source.parse_redirect_url_params_elem() +# # if redirect_url_params is not None and redirect_url_params.text is not None: +# # # get rid of leading / trailing white space +# # redirect_url_params = redirect_url_params.text.strip() +# # # Replace remaining white space with something we can safely split on later +# # # when we are building the params +# # self.redirect_url_params = redirect_url_params.replace(' ', '**^**') +# # else: +# # self.redirect_url_params = '' + +# # Short description of the tool +# self.description = tool_source.parse_description() + +# # Versioning for tools +# self.version_string_cmd = None +# # version_command = tool_source.parse_version_command() +# # if version_command is not None: +# # self.version_string_cmd = version_command.strip() + +# # version_cmd_interpreter = tool_source.parse_version_command_interpreter() +# # if version_cmd_interpreter: +# # executable = self.version_string_cmd.split()[0] +# # abs_executable = os.path.abspath(os.path.join(self.tool_dir, executable)) +# # command_line = self.version_string_cmd.replace(executable, abs_executable, 1) +# # self.version_string_cmd = f"{version_cmd_interpreter} {command_line}" + +# # Parallelism for tasks, read from tool config. +# self.parallelism = None # added +# # self.parallelism = tool_source.parse_parallelism() + +# self.all_ids = [] # added +# # # Get JobToolConfiguration(s) valid for this particular Tool. At least +# # # a 'default' will be provided that uses the 'default' handler and +# # # 'default' destination. I thought about moving this to the +# # # job_config, but it makes more sense to store here. -nate +# # if self.id: +# # self_ids = [self.id.lower()] +# # if self.old_id != self.id: +# # # Handle toolshed guids +# # self_ids = [self.id.lower(), self.id.lower().rsplit('/', 1)[0], self.old_id.lower()] +# # else: +# # self_ids = [] +# # self.all_ids = self_ids + +# # In the toolshed context, there is no job config. +# self.job_tool_configurations = None # added +# # if hasattr(self.app, 'job_config'): +# # # Order of this list must match documentation in job_conf.sample_advanced.yml +# # tool_classes = [] +# # if self.tool_type_local: +# # tool_classes.append("local") +# # elif self.old_id in ['upload1', '__DATA_FETCH__']: +# # tool_classes.append("local") +# # if self.requires_galaxy_python_environment: +# # tool_classes.append("requires_galaxy") + +# # self.job_tool_configurations = self.app.job_config.get_job_tool_configurations(self_ids, tool_classes) + +# # Is this a 'hidden' tool (hidden in tool menu) +# self.hidden = tool_source.parse_hidden() +# self.license = tool_source.parse_license() +# self.creator = tool_source.parse_creator() + +# self.__parse_legacy_features(tool_source) + +# # Load any tool specific options (optional) +# self.options = None # added +# # self.options = _Options( +# # **dict( +# # sanitize=tool_source.parse_sanitize(), +# # refresh=tool_source.parse_refresh(), +# # ) +# # ) + +# # Read in name of galaxy.json metadata file and how to parse it. +# self.provided_metadata_file = tool_source.parse_provided_metadata_file() +# self.provided_metadata_style = tool_source.parse_provided_metadata_style() + +# # Parse tool help +# self.parse_help(tool_source) + +# # Parse result handling for tool exit codes and stdout/stderr messages: +# self.parse_stdio(tool_source) + +# self.strict_shell = tool_source.parse_strict_shell() + +# # Any extra generated config files for the tool +# self.__parse_config_files(tool_source) +# # Action +# self.tool_action = self.default_tool_action() # added +# # action = tool_source.parse_action_module() +# # if action is None: +# # self.tool_action = self.default_tool_action() +# # else: +# # module, cls = action +# # mod = __import__(module, globals(), locals(), [cls]) +# # self.tool_action = getattr(mod, cls)() +# # if getattr(self.tool_action, "requires_js_runtime", False): +# # try: +# # expressions.find_engine(self.app.config) +# # except Exception: +# # message = REQUIRES_JS_RUNTIME_MESSAGE % self.tool_id or self.tool_uuid +# # raise Exception(message) +# # Tests +# self.__parse_tests(tool_source) + +# # Requirements (dependencies) +# requirements, containers = tool_source.parse_requirements_and_containers() +# self.requirements = requirements +# self.containers = containers + +# required_files = tool_source.parse_required_files() +# if required_files is None: +# old_id = self.old_id +# if old_id in IMPLICITLY_REQUIRED_TOOL_FILES: +# lineage_requirement = IMPLICITLY_REQUIRED_TOOL_FILES[old_id] +# lineage_requirement_until = lineage_requirement.get("version") +# if lineage_requirement_until is None or self.version_object < lineage_requirement_until: +# required_files = RequiredFiles.from_dict(lineage_requirement["required"]) +# self.required_files = required_files + +# self.citations = [] # added +# # self.citations = self._parse_citations(tool_source) +# xrefs = tool_source.parse_xrefs() +# has_biotools_reference = any(x["reftype"] == "bio.tools" for x in xrefs) +# if not has_biotools_reference: +# legacy_biotools_ref = self.legacy_biotools_external_reference +# if legacy_biotools_ref is not None: +# xrefs.append({"value": legacy_biotools_ref, "reftype": "bio.tools"}) +# self.xrefs = xrefs + + +# self.edam_operations = [] # added +# self.edam_topics = [] # added +# # edam_operations = tool_source.parse_edam_operations() +# # edam_topics = tool_source.parse_edam_topics() + +# # has_missing_data = len(edam_operations) == 0 or len(edam_topics) == 0 +# # if has_missing_data: +# # biotools_reference = self.biotools_reference +# # metadata_source = self.app.biotools_metadata_source +# # if biotools_reference and metadata_source: +# # biotools_entry = metadata_source.get_biotools_metadata(biotools_reference) +# # if biotools_entry: +# # edam_info = biotools_entry.edam_info +# # if len(edam_operations) == 0: +# # edam_operations = edam_info.edam_operations +# # if len(edam_topics) == 0: +# # edam_topics = edam_info.edam_topics + +# # self.edam_operations = edam_operations +# # self.edam_topics = edam_topics + +# self.__parse_trackster_conf(tool_source) +# # Record macro paths so we can reload a tool if any of its macro has changes +# self._macro_paths = tool_source.macro_paths +# self.ports = tool_source.parse_interactivetool() + +# def __parse_legacy_features(self, tool_source): +# self.code_namespace: Dict[str, str] = {} +# self.hook_map: Dict[str, str] = {} +# self.uihints: Dict[str, str] = {} + +# if not hasattr(tool_source, 'root'): +# return + +# # TODO: Move following logic into XmlToolSource. +# root = tool_source.root +# # Load any tool specific code (optional) Edit: INS 5/29/2007, +# # allow code files to have access to the individual tool's +# # "module" if it has one. Allows us to reuse code files, etc. +# for code_elem in root.findall("code"): +# for hook_elem in code_elem.findall("hook"): +# for key, value in hook_elem.items(): +# # map hook to function +# self.hook_map[key] = value +# file_name = code_elem.get("file") +# code_path = os.path.join(self.tool_dir, file_name) +# if self._allow_code_files: +# with open(code_path) as f: +# code_string = f.read() +# try: +# compiled_code = compile(code_string, code_path, 'exec') +# exec(compiled_code, self.code_namespace) +# except Exception: +# if ( +# refactoring_tool +# and self.python_template_version +# and self.python_template_version.release[0] < 3 +# ): +# # Could be a code file that uses python 2 syntax +# translated_code = str(refactoring_tool.refactor_string(code_string, name='auto_translated_code_file')) +# compiled_code = compile(translated_code, f"futurized_{code_path}", 'exec') +# exec(compiled_code, self.code_namespace) +# else: +# raise + +# # User interface hints +# uihints_elem = root.find("uihints") +# if uihints_elem is not None: +# for key, value in uihints_elem.attrib.items(): +# self.uihints[key] = value + +# def __parse_tests(self, tool_source): +# self.__tests_source = tool_source +# self.__tests_populated = False + +# def __parse_config_files(self, tool_source): +# self.config_files = [] +# if not hasattr(tool_source, 'root'): +# return + +# root = tool_source.root +# conf_parent_elem = root.find("configfiles") +# if conf_parent_elem is not None: +# inputs_elem = conf_parent_elem.find("inputs") +# if inputs_elem is not None: +# name = inputs_elem.get("name") +# filename = inputs_elem.get("filename", None) +# format = inputs_elem.get("format", "json") +# data_style = inputs_elem.get("data_style", "skip") +# content = dict(format=format, handle_files=data_style, type="inputs") +# self.config_files.append((name, filename, content)) +# file_sources_elem = conf_parent_elem.find("file_sources") +# if file_sources_elem is not None: +# name = file_sources_elem.get("name") +# filename = file_sources_elem.get("filename", None) +# content = dict(type="files") +# self.config_files.append((name, filename, content)) +# for conf_elem in conf_parent_elem.findall("configfile"): +# name = conf_elem.get("name") +# filename = conf_elem.get("filename", None) +# content = conf_elem.text +# self.config_files.append((name, filename, content)) + +# def __parse_trackster_conf(self, tool_source): +# self.trackster_conf = None +# if not hasattr(tool_source, 'root'): +# return + +# # Trackster configuration. +# trackster_conf = tool_source.root.find("trackster_conf") +# if trackster_conf is not None: +# self.trackster_conf = TracksterConfig.parse(trackster_conf) + +# @property +# def tests(self): +# self.assert_finalized() +# if not self.__tests_populated: +# tests_source = self.__tests_source +# if tests_source: +# try: +# self.__tests = parse_tests(self, tests_source) +# except Exception: +# self.__tests = None +# log.exception("Failed to parse tool tests for tool '%s'", self.id) +# else: +# self.__tests = None +# self.__tests_populated = True +# return self.__tests + +# @property +# def _repository_dir(self): +# """If tool shed installed tool, the base directory of the repository installed.""" +# repository_base_dir = None + +# if getattr(self, 'tool_shed', None): +# tool_dir = Path(self.tool_dir) +# for repo_dir in itertools.chain([tool_dir], tool_dir.parents): +# if repo_dir.name == self.repository_name: +# return str(repo_dir) +# else: +# log.error(f"Problem finding repository dir for tool '{self.id}'") + +# return repository_base_dir + +# def test_data_path(self, filename): +# repository_dir = self._repository_dir +# test_data = None +# if repository_dir: +# test_data = self.__walk_test_data(dir=repository_dir, filename=filename) +# else: +# if self.tool_dir: +# tool_dir = self.tool_dir +# if isinstance(self, DataManagerTool): +# tool_dir = os.path.dirname(self.tool_dir) +# test_data = self.__walk_test_data(tool_dir, filename=filename) +# if not test_data: +# # Fallback to Galaxy test data directory for builtin tools, tools +# # under development, and some older ToolShed published tools that +# # used stock test data. +# test_data = self.app.test_data_resolver.get_filename(filename) +# return test_data + +# def __walk_test_data(self, dir, filename): +# for root, dirs, _ in os.walk(dir): +# if '.hg' in dirs: +# dirs.remove('.hg') +# if 'test-data' in dirs: +# test_data_dir = os.path.join(root, 'test-data') +# result = os.path.abspath(os.path.join(test_data_dir, filename)) +# if not in_directory(result, test_data_dir): +# # Don't raise an explicit exception and reveal details about what +# # files are or are not on the path, simply return None and let the +# # API raise a 404. +# return None +# else: +# if os.path.exists(result): +# return result + +# def tool_provided_metadata(self, job_wrapper): +# meta_file = os.path.join(job_wrapper.tool_working_directory, self.provided_metadata_file) +# return parse_tool_provided_metadata(meta_file, provided_metadata_style=self.provided_metadata_style, job_wrapper=job_wrapper) + +# def parse_command(self, tool_source): +# """ +# """ +# # Command line (template). Optional for tools that do not invoke a local program +# command = tool_source.parse_command() +# if command is not None: +# self.command = command.lstrip() # get rid of leading whitespace +# # Must pre-pend this AFTER processing the cheetah command template +# self.interpreter = tool_source.parse_interpreter() +# else: +# self.command = '' +# self.interpreter = None + +# def parse_environment_variables(self, tool_source): +# return tool_source.parse_environment_variables() + +# def parse_inputs(self, tool_source): +# """ +# Parse the "<inputs>" element and create appropriate `ToolParameter` s. +# This implementation supports multiple pages and grouping constructs. +# """ +# # Load parameters (optional) +# self.inputs = {} +# pages = tool_source.parse_input_pages() +# enctypes: Set[str] = set() +# if pages.inputs_defined: +# if hasattr(pages, "input_elem"): +# input_elem = pages.input_elem +# # Handle properties of the input form +# self.check_values = string_as_bool(input_elem.get("check_values", self.check_values)) +# self.nginx_upload = string_as_bool(input_elem.get("nginx_upload", self.nginx_upload)) +# self.action = input_elem.get('action', self.action) +# # If we have an nginx upload, save the action as a tuple instead of +# # a string. The actual action needs to get url_for run to add any +# # prefixes, and we want to avoid adding the prefix to the +# # nginx_upload_path. +# # if ( +# # self.nginx_upload +# # and self.app.config.nginx_upload_path +# # and not isinstance(self.action, tuple) +# # ): +# # if "?" in unquote_plus(self.action): +# # raise Exception( +# # "URL parameters in a non-default tool action can not be used " +# # "in conjunction with nginx upload. Please convert them to " +# # "hidden POST parameters" +# # ) +# # self.action = ( +# # f"{self.app.config.nginx_upload_path}?nginx_redir=", +# # unquote_plus(self.action), +# # ) +# self.target = input_elem.get("target", self.target) +# self.method = input_elem.get("method", self.method) +# # Parse the actual parameters +# # Handle multiple page case +# for page_source in pages.page_sources: +# inputs = self.parse_input_elem(page_source, enctypes) +# display = page_source.parse_display() +# self.inputs_by_page.append(inputs) +# self.inputs.update(inputs) +# self.display_by_page.append(display) +# else: +# self.inputs_by_page.append(self.inputs) +# self.display_by_page.append(None) +# self.display = self.display_by_page[0] +# self.npages = len(self.inputs_by_page) +# self.last_page = len(self.inputs_by_page) - 1 +# self.has_multiple_pages = bool(self.last_page) +# # Determine the needed enctype for the form +# if len(enctypes) == 0: +# self.enctype = "application/x-www-form-urlencoded" +# elif len(enctypes) == 1: +# self.enctype = enctypes.pop() +# else: +# raise Exception(f"Conflicting required enctypes: {str(enctypes)}") +# # Check if the tool either has no parameters or only hidden (and +# # thus hardcoded) FIXME: hidden parameters aren't +# # parameters at all really, and should be passed in a different +# # way, making this check easier. +# template_macros = {} +# if hasattr(tool_source, 'root'): +# template_macros = template_macro_params(tool_source.root) +# self.template_macro_params = template_macros +# for param in self.inputs.values(): +# if not isinstance(param, (HiddenToolParameter, BaseURLToolParameter)): +# self.input_required = True +# break + +# def parse_help(self, tool_source): +# """ +# Parse the help text for the tool. Formatted in reStructuredText, but +# stored as Mako to allow for dynamic image paths. +# This implementation supports multiple pages. +# """ +# # TODO: Allow raw HTML or an external link. +# self.__help = HELP_UNINITIALIZED +# self.__help_by_page = HELP_UNINITIALIZED +# self.__help_source = tool_source + +# def parse_outputs(self, tool_source): +# """ +# Parse <outputs> elements and fill in self.outputs (keyed by name) +# """ +# self.outputs, self.output_collections = tool_source.parse_outputs(self) + +# # TODO: Include the tool's name in any parsing warnings. +# def parse_stdio(self, tool_source): +# """ +# Parse <stdio> element(s) and fill in self.return_codes, +# self.stderr_rules, and self.stdout_rules. Return codes have a range +# and an error type (fault or warning). Stderr and stdout rules have +# a regular expression and an error level (fault or warning). +# """ +# exit_codes, regexes = tool_source.parse_stdio() +# self.stdio_exit_codes = exit_codes +# self.stdio_regexes = regexes + +# def _parse_citations(self, tool_source): +# # TODO: Move following logic into ToolSource abstraction. +# if not hasattr(tool_source, 'root'): +# return [] + +# root = tool_source.root +# citations: List[str] = [] +# citations_elem = root.find("citations") +# if citations_elem is None: +# return citations + +# for citation_elem in citations_elem: +# if citation_elem.tag != "citation": +# pass +# if hasattr(self.app, 'citations_manager'): +# citation = self.app.citations_manager.parse_citation(citation_elem) +# if citation: +# citations.append(citation) +# return citations + +# def parse_input_elem(self, page_source, enctypes, context=None): +# """ +# Parse a parent element whose children are inputs -- these could be +# groups (repeat, conditional) or param elements. Groups will be parsed +# recursively. +# """ +# rval: Dict[str, Any] = {} +# context = ExpressionContext(rval, context) +# for input_source in page_source.parse_input_sources(): +# # Repeat group +# input_type = input_source.parse_input_type() +# if input_type == "repeat": +# group_r = Repeat() +# group_r.name = input_source.get("name") +# group_r.title = input_source.get("title") +# group_r.help = input_source.get("help", None) +# page_source = input_source.parse_nested_inputs_source() +# group_r.inputs = self.parse_input_elem(page_source, enctypes, context) +# group_r.default = int(input_source.get("default", 0)) +# group_r.min = int(input_source.get("min", 0)) +# # Use float instead of int so that math.inf can be used for no max +# group_r.max = float(input_source.get("max", math.inf)) +# assert group_r.min <= group_r.max, ValueError( +# f"Tool with id '{self.id}': min repeat count must be less-than-or-equal to the max." +# ) +# # Force default to be within min-max range +# group_r.default = cast( +# int, min(max(group_r.default, group_r.min), group_r.max) +# ) +# rval[group_r.name] = group_r +# elif input_type == "conditional": +# group_c = Conditional() +# group_c.name = input_source.get("name") +# group_c.value_ref = input_source.get("value_ref", None) +# group_c.value_ref_in_group = input_source.get_bool( +# "value_ref_in_group", True +# ) +# value_from = input_source.get("value_from", None) +# if value_from: +# value_from = value_from.split(':') +# temp_value_from = locals().get(value_from[0]) +# group_c.test_param = rval[group_c.value_ref] +# group_c.test_param.refresh_on_change = True +# for attr in value_from[1].split('.'): +# temp_value_from = getattr(temp_value_from, attr) +# group_c.value_from = temp_value_from # type: ignore[assignment] +# # ^^ due to https://github.com/python/mypy/issues/2427 +# assert group_c.value_from +# for case_value, case_inputs in group_c.value_from( +# context, group_c, self +# ).items(): +# # TODO move this to attribute check to remove galaxy class imports +# case = ConditionalWhen() +# case.value = case_value +# if case_inputs: +# page_source = XmlPageSource(XML(f"<when>{case_inputs}</when>")) +# case.inputs = self.parse_input_elem(page_source, enctypes, context) +# else: +# case.inputs = {} +# group_c.cases.append(case) +# else: +# # Should have one child "input" which determines the case +# test_param_input_source = input_source.parse_test_input_source() +# group_c.test_param = self.parse_param_elem( +# test_param_input_source, enctypes, context +# ) +# if group_c.test_param.optional: +# log.debug(f"Tool with id '{self.id}': declares a conditional test parameter as optional, this is invalid and will be ignored.") +# group_c.test_param.optional = False +# possible_cases = list( +# group_c.test_param.legal_values +# ) # store possible cases, undefined whens will have no inputs +# # Must refresh when test_param changes +# group_c.test_param.refresh_on_change = True +# # And a set of possible cases +# for (value, case_inputs_source) in input_source.parse_when_input_sources(): +# # TODO move this to attribute check to remove galaxy class imports +# case = ConditionalWhen() +# case.value = value +# case.inputs = self.parse_input_elem(case_inputs_source, enctypes, context) +# group_c.cases.append(case) +# try: +# possible_cases.remove(case.value) +# except Exception: +# log.debug( +# "Tool with id '%s': a when tag has been defined for '%s (%s) --> %s', but does not appear to be selectable." +# % ( +# self.id, +# group_c.name, +# group_c.test_param.name, +# case.value, +# ) +# ) +# for unspecified_case in possible_cases: +# log.warning( +# "Tool with id '%s': a when tag has not been defined for '%s (%s) --> %s', assuming empty inputs." +# % ( +# self.id, +# group_c.name, +# group_c.test_param.name, +# unspecified_case, +# ) +# ) +# # TODO move this to attribute check to remove galaxy class imports +# case = ConditionalWhen() +# case.value = unspecified_case +# case.inputs = {} +# group_c.cases.append(case) +# rval[group_c.name] = group_c +# elif input_type == "section": +# group_s = Section() +# group_s.name = input_source.get("name") +# group_s.title = input_source.get("title") +# group_s.help = input_source.get("help", None) +# group_s.expanded = input_source.get_bool("expanded", False) +# page_source = input_source.parse_nested_inputs_source() +# group_s.inputs = self.parse_input_elem(page_source, enctypes, context) +# rval[group_s.name] = group_s +# elif input_type == "upload_dataset": +# elem = input_source.elem() +# group_u = UploadDataset() +# group_u.name = elem.get("name") +# group_u.title = elem.get("title") +# group_u.file_type_name = elem.get( +# "file_type_name", group_u.file_type_name +# ) +# group_u.default_file_type = elem.get( +# "default_file_type", group_u.default_file_type +# ) +# group_u.metadata_ref = elem.get("metadata_ref", group_u.metadata_ref) +# try: +# rval[group_u.file_type_name].refresh_on_change = True +# except KeyError: +# pass +# group_page_source = XmlPageSource(elem) +# group_u.inputs = self.parse_input_elem( +# group_page_source, enctypes, context +# ) +# rval[group_u.name] = group_u +# elif input_type == "param": +# param = self.parse_param_elem(input_source, enctypes, context) +# rval[param.name] = param +# if hasattr(param, 'data_ref'): +# param.ref_input = context[param.data_ref] +# self.input_params.append(param) +# return rval + +# def parse_param_elem(self, input_source, enctypes, context): +# """ +# Parse a single "<param>" element and return a ToolParameter instance. +# Also, if the parameter has a 'required_enctype' add it to the set +# enctypes. +# """ +# param = ToolParameter.build(self, input_source) +# param_enctype = param.get_required_enctype() +# if param_enctype: +# enctypes.add(param_enctype) +# # If parameter depends on any other paramters, we must refresh the +# # form when it changes +# for name in param.get_dependencies(): +# # Let it throw exception, but give some hint what the problem might be +# if name not in context: +# log.error(f"Tool with id '{self.id}': Could not find dependency '{name}' of parameter '{param.name}'") +# context[name].refresh_on_change = True +# return param + +# def populate_resource_parameters(self, tool_source): +# root = getattr(tool_source, 'root', None) +# if root is not None and hasattr(self.app, 'job_config') and hasattr(self.app.job_config, 'get_tool_resource_xml'): +# resource_xml = self.app.job_config.get_tool_resource_xml(root.get('id', '').lower(), self.tool_type) +# if resource_xml is not None: +# inputs = root.find('inputs') +# if inputs is None: +# inputs = parse_xml_string('<inputs/>') +# root.append(inputs) +# inputs.append(resource_xml) + +# def populate_tool_shed_info(self, tool_shed_repository): +# if tool_shed_repository: +# self.tool_shed = tool_shed_repository.tool_shed +# self.repository_name = tool_shed_repository.name +# self.repository_owner = tool_shed_repository.owner +# self.changeset_revision = tool_shed_repository.changeset_revision +# self.installed_changeset_revision = tool_shed_repository.installed_changeset_revision +# self.sharable_url = get_tool_shed_repository_url( +# self.app, self.tool_shed, self.repository_owner, self.repository_name +# ) + +# @property +# def legacy_biotools_external_reference(self) -> Optional[str]: +# """Return a bio.tools ID if any of tool's IDs are BIOTOOLS_MAPPING.""" +# for tool_id in self.all_ids: +# if tool_id in BIOTOOLS_MAPPING: +# return BIOTOOLS_MAPPING[tool_id] +# return None + +# @property +# def biotools_reference(self) -> Optional[str]: +# """Return a bio.tools ID if external reference to it is found. + +# If multiple bio.tools references are found, return just the first one. +# """ +# for xref in self.xrefs: +# if xref["reftype"] == "bio.tools": +# return xref["value"] +# return None + +# @property +# def help(self): +# if self.__help is HELP_UNINITIALIZED: +# self.__ensure_help() +# return self.__help + +# @property +# def help_by_page(self): +# if self.__help_by_page is HELP_UNINITIALIZED: +# self.__ensure_help() +# return self.__help_by_page + +# @property +# def raw_help(self): +# # may return rst (or Markdown in the future) +# tool_source = self.__help_source +# help_text = tool_source.parse_help() +# return help_text + +# def __ensure_help(self): +# with HELP_UNINITIALIZED: +# if self.__help is HELP_UNINITIALIZED: +# self.__inititalize_help() + +# def __inititalize_help(self): +# tool_source = self.__help_source +# self.__help = None +# __help_by_page = [] +# help_footer = "" +# help_text = tool_source.parse_help() +# if help_text is not None: +# try: +# if help_text.find('.. image:: ') >= 0 and (self.tool_shed_repository or self.repository_id): +# help_text = set_image_paths( +# self.app, help_text, encoded_repository_id=self.repository_id, tool_shed_repository=self.tool_shed_repository, tool_id=self.old_id, tool_version=self.version +# ) +# except Exception: +# log.exception("Exception in parse_help, so images may not be properly displayed for tool with id '%s'", self.id) +# try: +# self.__help = Template(rst_to_html(help_text), input_encoding='utf-8', +# default_filters=['decode.utf8'], +# encoding_errors='replace') +# except Exception: +# log.exception("Exception while parsing help for tool with id '%s'", self.id) + +# # Handle deprecated multi-page help text in XML case. +# if hasattr(tool_source, "root"): +# help_elem = tool_source.root.find("help") +# help_header = help_text +# help_pages = help_elem.findall("page") +# # Multiple help page case +# if help_pages: +# for help_page in help_pages: +# __help_by_page.append(help_page.text) +# help_footer = help_footer + help_page.tail +# # Each page has to rendered all-together because of backreferences allowed by rst +# try: +# __help_by_page = [ +# Template( +# rst_to_html(help_header + x + help_footer), +# input_encoding="utf-8", +# default_filters=["decode.utf8"], +# encoding_errors="replace", +# ) +# for x in __help_by_page +# ] +# except Exception: +# log.exception("Exception while parsing multi-page help for tool with id '%s'", self.id) +# # Pad out help pages to match npages ... could this be done better? +# while len(__help_by_page) < self.npages: +# __help_by_page.append(self.__help) +# self.__help_by_page = __help_by_page + +# def find_output_def(self, name): +# # name is JobToOutputDatasetAssociation name. +# # TODO: to defensive, just throw IndexError and catch somewhere +# # up that stack. +# if ToolOutputCollectionPart.is_named_collection_part_name(name): +# collection_name, part = ToolOutputCollectionPart.split_output_name(name) +# collection_def = self.output_collections.get(collection_name, None) +# if not collection_def: +# return None +# return collection_def.outputs.get(part, None) +# else: +# return self.outputs.get(name, None) + +# @property +# def is_workflow_compatible(self): +# is_workflow_compatible = self._is_workflow_compatible +# if is_workflow_compatible is None: +# is_workflow_compatible = self.check_workflow_compatible(self.tool_source) +# if self.finalized: +# self._is_workflow_compatible = is_workflow_compatible +# return is_workflow_compatible + +# def check_workflow_compatible(self, tool_source): +# """ +# Determine if a tool can be used in workflows. External tools and the +# upload tool are currently not supported by workflows. +# """ +# # Multiple page tools are not supported -- we're eliminating most +# # of these anyway +# if self.finalized and self.has_multiple_pages: +# return False +# # This is probably the best bet for detecting external web tools +# # right now +# if self.tool_type.startswith('data_source'): +# return False + +# if hasattr(tool_source, "root"): +# root = tool_source.root +# if not string_as_bool(root.get("workflow_compatible", "True")): +# return False + +# # TODO: Anyway to capture tools that dynamically change their own +# # outputs? +# return True + +# def new_state(self, trans): +# """ +# Create a new `DefaultToolState` for this tool. It will be initialized +# with default values for inputs. Grouping elements are filled in recursively. +# """ +# state = DefaultToolState() +# state.initialize(trans, self) +# return state + +# def get_param(self, key): +# """ +# Returns the parameter named `key` or None if there is no such +# parameter. +# """ +# return self.inputs.get(key, None) + +# def get_hook(self, name): +# """ +# Returns an object from the code file referenced by `code_namespace` +# (this will normally be a callable object) +# """ +# if self.code_namespace: +# # Try to look up hook in self.hook_map, otherwise resort to default +# if name in self.hook_map and self.hook_map[name] in self.code_namespace: +# return self.code_namespace[self.hook_map[name]] +# elif name in self.code_namespace: +# return self.code_namespace[name] +# return None + +# def visit_inputs(self, values, callback): +# """ +# Call the function `callback` on each parameter of this tool. Visits +# grouping parameters recursively and constructs unique prefixes for +# each nested set of The callback method is then called as: + +# `callback( level_prefix, parameter, parameter_value )` +# """ +# # HACK: Yet another hack around check_values -- WHY HERE? +# if self.check_values: +# visit_input_values(self.inputs, values, callback) + +# def expand_incoming(self, trans, incoming, request_context, input_format='legacy'): +# rerun_remap_job_id = None +# if 'rerun_remap_job_id' in incoming: +# try: +# rerun_remap_job_id = trans.app.security.decode_id(incoming['rerun_remap_job_id']) +# except Exception as exception: +# log.error(str(exception)) +# raise exceptions.MessageException("Failure executing tool with id '%s' (attempting to rerun invalid job).", self.id) + +# set_dataset_matcher_factory(request_context, self) + +# # Fixed set of input parameters may correspond to any number of jobs. +# # Expand these out to individual parameters for given jobs (tool executions). +# expanded_incomings, collection_info = expand_meta_parameters(trans, self, incoming) + +# # Remapping a single job to many jobs doesn't make sense, so disable +# # remap if multi-runs of tools are being used. +# if rerun_remap_job_id and len(expanded_incomings) > 1: +# raise exceptions.MessageException( +# "Failure executing tool with id '%s' (cannot create multiple jobs when remapping existing job).", self.id) + +# # Process incoming data +# validation_timer = self.app.execution_timer_factory.get_timer( +# 'internals.galaxy.tools.validation', +# 'Validated and populated state for tool request', +# ) +# all_errors = [] +# all_params = [] +# for expanded_incoming in expanded_incomings: +# params = {} +# errors: Dict[str, str] = {} +# if self.input_translator: +# self.input_translator.translate(expanded_incoming) +# if not self.check_values: +# # If `self.check_values` is false we don't do any checking or +# # processing on input This is used to pass raw values +# # through to/from external sites. +# params = expanded_incoming +# else: +# # Update state for all inputs on the current page taking new +# # values from `incoming`. +# populate_state(request_context, self.inputs, expanded_incoming, params, errors, simple_errors=False, input_format=input_format) +# # If the tool provides a `validate_input` hook, call it. +# validate_input = self.get_hook('validate_input') +# if validate_input: +# validate_input(request_context, errors, params, self.inputs) +# all_errors.append(errors) +# all_params.append(params) +# unset_dataset_matcher_factory(request_context) + +# log.info(validation_timer) +# return all_params, all_errors, rerun_remap_job_id, collection_info + +# def handle_input(self, trans, incoming, history=None, use_cached_job=False, input_format='legacy'): +# """ +# Process incoming parameters for this tool from the dict `incoming`, +# update the tool state (or create if none existed), and either return +# to the form or execute the tool (only if 'execute' was clicked and +# there were no errors). +# """ +# request_context = proxy_work_context_for_history(trans, history=history) +# all_params, all_errors, rerun_remap_job_id, collection_info = self.expand_incoming(trans=trans, incoming=incoming, request_context=request_context, input_format=input_format) +# # If there were errors, we stay on the same page and display them +# if any(all_errors): +# # simple param_key -> message string for tool form. +# err_data = {key: unicodify(value) for d in all_errors for (key, value) in d.items()} +# param_errors = {} +# for d in all_errors: +# for key, value in d.items(): +# if hasattr(value, 'to_dict'): +# value_obj = value.to_dict() +# else: +# value_obj = {"message": unicodify(value)} +# param_errors[key] = value_obj +# raise exceptions.RequestParameterInvalidException(', '.join(msg for msg in err_data.values()), err_data=err_data, param_errors=param_errors) +# else: +# mapping_params = MappingParameters(incoming, all_params) +# completed_jobs = {} +# for i, param in enumerate(all_params): +# if use_cached_job: +# completed_jobs[i] = self.job_search.by_tool_input( +# trans=trans, +# tool_id=self.id, +# tool_version=self.version, +# param=param, +# param_dump=self.params_to_strings(param, self.app, nested=True), +# job_state=None, +# ) +# else: +# completed_jobs[i] = None +# execution_tracker = execute_job(trans, self, mapping_params, history=request_context.history, rerun_remap_job_id=rerun_remap_job_id, collection_info=collection_info, completed_jobs=completed_jobs) +# # Raise an exception if there were jobs to execute and none of them were submitted, +# # if at least one is submitted or there are no jobs to execute - return aggregate +# # information including per-job errors. Arguably we should just always return the +# # aggregate information - we just haven't done that historically. +# raise_execution_exception = not execution_tracker.successful_jobs and len(all_params) > 0 + +# if raise_execution_exception: +# raise exceptions.MessageException(execution_tracker.execution_errors[0]) + +# return dict(out_data=execution_tracker.output_datasets, +# num_jobs=len(execution_tracker.successful_jobs), +# job_errors=execution_tracker.execution_errors, +# jobs=execution_tracker.successful_jobs, +# output_collections=execution_tracker.output_collections, +# implicit_collections=execution_tracker.implicit_collections) + +# def handle_single_execution(self, trans, rerun_remap_job_id, execution_slice, history, execution_cache=None, completed_job=None, collection_info=None, job_callback=None, flush_job=True): +# """ +# Return a pair with whether execution is successful as well as either +# resulting output data or an error message indicating the problem. +# """ +# try: +# rval = self.execute( +# trans, +# incoming=execution_slice.param_combination, +# history=history, +# rerun_remap_job_id=rerun_remap_job_id, +# execution_cache=execution_cache, +# dataset_collection_elements=execution_slice.dataset_collection_elements, +# completed_job=completed_job, +# collection_info=collection_info, +# job_callback=job_callback, +# flush_job=flush_job, +# ) +# job = rval[0] +# out_data = rval[1] +# if len(rval) > 2: +# execution_slice.history = rval[2] +# except (webob.exc.HTTPFound, exceptions.MessageException) as e: +# # if it's a webob redirect exception, pass it up the stack +# raise e +# except ToolInputsNotReadyException as e: +# return False, e +# except Exception as e: +# log.exception("Exception caught while attempting to execute tool with id '%s':", self.id) +# message = f"Error executing tool with id '{self.id}': {unicodify(e)}" +# return False, message +# if isinstance(out_data, dict): +# return job, list(out_data.items()) +# else: +# if isinstance(out_data, str): +# message = out_data +# else: +# message = f"Failure executing tool with id '{self.id}' (invalid data returned from tool execution)" +# return False, message + +# def find_fieldstorage(self, x): +# if isinstance(x, cgi_FieldStorage): +# raise InterruptedUpload(None) +# elif isinstance(x, dict): +# [self.find_fieldstorage(y) for y in x.values()] +# elif isinstance(x, list): +# [self.find_fieldstorage(y) for y in x] + +# @property +# def params_with_missing_data_table_entry(self): +# """ +# Return all parameters that are dynamically generated select lists whose +# options require an entry not currently in the tool_data_table_conf.xml file. +# """ +# params = [] +# for input_param in self.input_params: +# if isinstance(input_param, SelectToolParameter) and input_param.is_dynamic: +# options = input_param.options +# if options and options.missing_tool_data_table_name and input_param not in params: +# params.append(input_param) +# return params + +# @property +# def params_with_missing_index_file(self): +# """ +# Return all parameters that are dynamically generated +# select lists whose options refer to a missing .loc file. +# """ +# params = [] +# for input_param in self.input_params: +# if isinstance(input_param, SelectToolParameter) and input_param.is_dynamic: +# options = input_param.options +# if options and options.tool_data_table and options.tool_data_table.missing_index_file and input_param not in params: +# params.append(input_param) +# return params + +# def get_static_param_values(self, trans): +# """ +# Returns a map of parameter names and values if the tool does not +# require any user input. Will raise an exception if any parameter +# does require input. +# """ +# args = dict() +# for key, param in self.inputs.items(): +# # BaseURLToolParameter is now a subclass of HiddenToolParameter, so +# # we must check if param is a BaseURLToolParameter first +# if isinstance(param, BaseURLToolParameter): +# args[key] = param.get_initial_value(trans, None) +# elif isinstance(param, HiddenToolParameter): +# args[key] = model.User.expand_user_properties(trans.user, param.value) +# else: +# args[key] = param.get_initial_value(trans, None) +# return args + +# def execute(self, trans, incoming=None, set_output_hid=True, history=None, **kwargs): +# """ +# Execute the tool using parameter values in `incoming`. This just +# dispatches to the `ToolAction` instance specified by +# `self.tool_action`. In general this will create a `Job` that +# when run will build the tool's outputs, e.g. `DefaultToolAction`. +# """ +# if incoming is None: +# incoming = {} +# try: +# return self.tool_action.execute(self, trans, incoming=incoming, set_output_hid=set_output_hid, history=history, **kwargs) +# except exceptions.ToolExecutionError as exc: +# job = exc.job +# job_id = 'unknown' +# if job is not None: +# job.mark_failed(info=exc.err_msg, blurb=exc.err_code.default_error_message) +# job_id = job.id +# log.error("Tool execution failed for job: %s", job_id) +# raise + +# def params_to_strings(self, params, app, nested=False): +# return params_to_strings(self.inputs, params, app, nested) + +# def params_from_strings(self, params, app, ignore_errors=False): +# return params_from_strings(self.inputs, params, app, ignore_errors) + +# def check_and_update_param_values(self, values, trans, update_values=True, workflow_building_mode=False): +# """ +# Check that all parameters have values, and fill in with default +# values where necessary. This could be called after loading values +# from a database in case new parameters have been added. +# """ +# messages = {} +# request_context = proxy_work_context_for_history(trans, workflow_building_mode=workflow_building_mode) + +# def validate_inputs(input, value, error, parent, context, prefixed_name, prefixed_label, **kwargs): +# if not error: +# value, error = check_param(request_context, input, value, context) +# if error: +# if update_values and not hasattr(input, 'data_ref'): +# try: +# previous_value = value +# value = input.get_initial_value(request_context, context) +# if not prefixed_name.startswith('__'): +# messages[prefixed_name] = error if previous_value == value else f'{error} Using default: \'{value}\'.' +# parent[input.name] = value +# except Exception: +# messages[prefixed_name] = 'Attempt to replace invalid value for \'%s\' failed.' % (prefixed_label) +# else: +# messages[prefixed_name] = error + +# visit_input_values(self.inputs, values, validate_inputs) +# return messages + +# def build_dependency_cache(self, **kwds): +# if isinstance(self.app.toolbox.dependency_manager, CachedDependencyManager): +# self.app.toolbox.dependency_manager.build_cache( +# requirements=self.requirements, +# installed_tool_dependencies=self.installed_tool_dependencies, +# tool_dir=self.tool_dir, +# job_directory=None, +# metadata=False, +# tool_instance=self, +# **kwds +# ) + +# def build_dependency_shell_commands(self, job_directory=None, metadata=False): +# """ +# Return a list of commands to be run to populate the current environment to include this tools requirements. +# """ +# return self.app.toolbox.dependency_manager.dependency_shell_commands( +# requirements=self.requirements, +# installed_tool_dependencies=self.installed_tool_dependencies, +# tool_dir=self.tool_dir, +# job_directory=job_directory, +# preserve_python_environment=self.requires_galaxy_python_environment, +# metadata=metadata, +# tool_instance=self +# ) + +# @property +# def installed_tool_dependencies(self): +# if self.tool_shed_repository: +# installed_tool_dependencies = self.tool_shed_repository.tool_dependencies_installed_or_in_error +# else: +# installed_tool_dependencies = None +# return installed_tool_dependencies + +# @property +# def tool_requirements(self): +# """ +# Return all requiremens of type package +# """ +# return self.requirements.packages + +# @property +# def tool_requirements_status(self): +# """ +# Return a list of dictionaries for all tool dependencies with their associated status +# """ +# return self._view.get_requirements_status({self.id: self.tool_requirements}, self.installed_tool_dependencies) + +# @property +# def output_discover_patterns(self): +# # patterns to collect for remote job execution +# patterns = [] +# for output in self.outputs.values(): +# patterns.extend(output.output_discover_patterns) +# return patterns + +# def build_redirect_url_params(self, param_dict): +# """ +# Substitute parameter values into self.redirect_url_params +# """ +# if not self.redirect_url_params: +# return +# redirect_url_params = None +# # Substituting parameter values into the url params +# redirect_url_params = fill_template(self.redirect_url_params, context=param_dict) +# # Remove newlines +# redirect_url_params = redirect_url_params.replace("\n", " ").replace("\r", " ") +# return redirect_url_params + +# def parse_redirect_url(self, data, param_dict): +# """ +# Parse the REDIRECT_URL tool param. Tools that send data to an external +# application via a redirect must include the following 3 tool params: + +# 1) REDIRECT_URL - the url to which the data is being sent + +# 2) DATA_URL - the url to which the receiving application will send an +# http post to retrieve the Galaxy data + +# 3) GALAXY_URL - the url to which the external application may post +# data as a response +# """ +# redirect_url = param_dict.get('REDIRECT_URL') +# redirect_url_params = self.build_redirect_url_params(param_dict) +# # Add the parameters to the redirect url. We're splitting the param +# # string on '**^**' because the self.parse() method replaced white +# # space with that separator. +# params = redirect_url_params.split('**^**') +# rup_dict = {} +# for param in params: +# p_list = param.split('=') +# p_name = p_list[0] +# p_val = p_list[1] +# rup_dict[p_name] = p_val +# DATA_URL = param_dict.get('DATA_URL', None) +# assert DATA_URL is not None, "DATA_URL parameter missing in tool config." +# DATA_URL += f"/{str(data.id)}/display" +# redirect_url += f"?DATA_URL={DATA_URL}" +# # Add the redirect_url_params to redirect_url +# for p_name in rup_dict: +# redirect_url += f"&{p_name}={rup_dict[p_name]}" +# # Add the current user email to redirect_url +# if data.history.user: +# USERNAME = str(data.history.user.email) +# else: +# USERNAME = 'Anonymous' +# redirect_url += f"&USERNAME={USERNAME}" +# return redirect_url + +# def call_hook(self, hook_name, *args, **kwargs): +# """ +# Call the custom code hook function identified by 'hook_name' if any, +# and return the results +# """ +# try: +# code = self.get_hook(hook_name) +# if code: +# return code(*args, **kwargs) +# except Exception as e: +# original_message = '' +# if len(e.args): +# original_message = e.args[0] +# e.args = (f"Error in '{self.name}' hook '{hook_name}', original message: {original_message}", ) +# raise + +# def exec_before_job(self, app, inp_data, out_data, param_dict=None): +# pass + +# def exec_after_process(self, app, inp_data, out_data, param_dict, job=None, **kwds): +# pass + +# def job_failed(self, job_wrapper, message, exception=False): +# """ +# Called when a job has failed +# """ + +# def discover_outputs(self, out_data, out_collections, tool_provided_metadata, tool_working_directory, job, input_ext, input_dbkey, inp_data=None, final_job_state='ok'): +# """ +# Find any additional datasets generated by a tool and attach (for +# cases where number of outputs is not known in advance). +# """ +# # given the job_execution import is the only one, probably makes sense to refactor this out +# # into job_wrapper. +# tool = self +# permission_provider = output_collect.PermissionProvider(inp_data, tool.app.security_agent, job) +# metadata_source_provider = output_collect.MetadataSourceProvider(inp_data) +# job_context = output_collect.JobContext( +# tool, +# tool_provided_metadata, +# job, +# tool_working_directory, +# permission_provider, +# metadata_source_provider, +# input_dbkey, +# object_store=tool.app.object_store, +# final_job_state=final_job_state, +# flush_per_n_datasets=tool.app.config.flush_per_n_datasets, +# max_discovered_files=tool.app.config.max_discovered_files, +# ) +# collected = output_collect.collect_primary_datasets( +# job_context, +# out_data, +# input_ext, +# ) +# output_collect.collect_dynamic_outputs( +# job_context, +# out_collections, +# ) +# # Return value only used in unit tests. Probably should be returning number of collected +# # bytes instead? +# return collected + +# def to_archive(self): +# tool = self +# tarball_files = [] +# temp_files = [] +# with open(os.path.abspath(tool.config_file)) as fh1: +# tool_xml = fh1.read() +# # Retrieve tool help images and rewrite the tool's xml into a temporary file with the path +# # modified to be relative to the repository root. +# image_found = False +# if tool.help is not None: +# tool_help = tool.help._source +# # Check each line of the rendered tool help for an image tag that points to a location under static/ +# for help_line in tool_help.split('\n'): +# image_regex = re.compile(r'img alt="[^"]+" src="\${static_path}/([^"]+)"') +# matches = re.search(image_regex, help_line) +# if matches is not None: +# tool_help_image = matches.group(1) +# tarball_path = tool_help_image +# filesystem_path = os.path.abspath(os.path.join(self.app.config.root, 'static', tool_help_image)) +# if os.path.exists(filesystem_path): +# tarball_files.append((filesystem_path, tarball_path)) +# image_found = True +# tool_xml = tool_xml.replace('${static_path}/%s' % tarball_path, tarball_path) +# # If one or more tool help images were found, add the modified tool XML to the tarball instead of the original. +# if image_found: +# with tempfile.NamedTemporaryFile( +# mode="w", suffix=".xml", delete=False +# ) as fh2: +# new_tool_config = fh2.name +# fh2.write(tool_xml) +# tool_tup = (new_tool_config, os.path.split(tool.config_file)[-1]) +# temp_files.append(new_tool_config) +# else: +# tool_tup = (os.path.abspath(tool.config_file), os.path.split(tool.config_file)[-1]) +# tarball_files.append(tool_tup) +# # TODO: This feels hacky. +# tool_command = tool.command.strip().split()[0] +# tool_path = os.path.dirname(os.path.abspath(tool.config_file)) +# # Add the tool XML to the tuple that will be used to populate the tarball. +# if os.path.exists(os.path.join(tool_path, tool_command)): +# tarball_files.append((os.path.join(tool_path, tool_command), tool_command)) +# # Find and add macros and code files. +# for external_file in tool.get_externally_referenced_paths(os.path.abspath(tool.config_file)): +# external_file_abspath = os.path.abspath(os.path.join(tool_path, external_file)) +# tarball_files.append((external_file_abspath, external_file)) +# if os.path.exists(os.path.join(tool_path, "Dockerfile")): +# tarball_files.append((os.path.join(tool_path, "Dockerfile"), "Dockerfile")) +# # Find tests, and check them for test data. +# tests = tool.tests +# if tests is not None: +# for test in tests: +# # Add input file tuples to the list. +# for input in test.inputs: +# for input_value in test.inputs[input]: +# input_filename = str(input_value) +# input_path = os.path.abspath(os.path.join('test-data', input_filename)) +# if os.path.exists(input_path): +# td_tup = (input_path, os.path.join('test-data', input_filename)) +# tarball_files.append(td_tup) +# # And add output file tuples to the list. +# for _, filename, _ in test.outputs: +# output_filepath = os.path.abspath(os.path.join('test-data', filename)) +# if os.path.exists(output_filepath): +# td_tup = (output_filepath, os.path.join('test-data', filename)) +# tarball_files.append(td_tup) +# for param in tool.input_params: +# # Check for tool data table definitions. +# if hasattr(param, 'options'): +# if hasattr(param.options, 'tool_data_table'): +# data_table = param.options.tool_data_table +# if hasattr(data_table, 'filenames'): +# data_table_definitions = [] +# for data_table_filename in data_table.filenames: +# # FIXME: from_shed_config seems to always be False. +# if not data_table.filenames[data_table_filename]['from_shed_config']: +# tar_file = f"{data_table.filenames[data_table_filename]['filename']}.sample" +# sample_file = os.path.join(data_table.filenames[data_table_filename]['tool_data_path'], +# tar_file) +# # Use the .sample file, if one exists. If not, skip this data table. +# if os.path.exists(sample_file): +# tarfile_path, tarfile_name = os.path.split(tar_file) +# tarfile_path = os.path.join('tool-data', tarfile_name) +# tarball_files.append((sample_file, tarfile_path)) +# data_table_definitions.append(data_table.xml_string) +# if len(data_table_definitions) > 0: +# # Put the data table definition XML in a temporary file. +# table_definition = '<?xml version="1.0" encoding="utf-8"?>\n<tables>\n %s</tables>' +# table_definition = table_definition % "\n".join( +# data_table_definitions +# ) +# with tempfile.NamedTemporaryFile( +# mode="w", delete=False +# ) as fh3: +# table_conf = fh3.name +# fh3.write(table_definition) +# tarball_files.append((table_conf, os.path.join('tool-data', 'tool_data_table_conf.xml.sample'))) +# temp_files.append(table_conf) +# # Create the tarball. +# with tempfile.NamedTemporaryFile(suffix=".tgz", delete=False) as fh4: +# tarball_archive = fh4.name +# tarball = tarfile.open(name=tarball_archive, mode='w:gz') +# # Add the files from the previously generated list. +# for fspath, tarpath in tarball_files: +# tarball.add(fspath, arcname=tarpath) +# tarball.close() +# # Delete any temporary files that were generated. +# for temp_file in temp_files: +# os.remove(temp_file) +# return tarball_archive + +# def to_dict(self, trans, link_details=False, io_details=False, tool_help=False): +# """ Returns dict of tool. """ + +# # Basic information +# tool_dict = super().to_dict() + +# tool_dict["edam_operations"] = self.edam_operations +# tool_dict["edam_topics"] = self.edam_topics +# tool_dict["hidden"] = self.hidden +# tool_dict["is_workflow_compatible"] = self.is_workflow_compatible +# tool_dict["xrefs"] = self.xrefs + +# # Fill in ToolShedRepository info +# if hasattr(self, 'tool_shed') and self.tool_shed: +# tool_dict['tool_shed_repository'] = { +# 'name': self.repository_name, +# 'owner': self.repository_owner, +# 'changeset_revision': self.changeset_revision, +# 'tool_shed': self.tool_shed +# } + +# # If an admin user, expose the path to the actual tool config XML file. +# if trans.user_is_admin: +# config_file = None if not self.config_file else os.path.abspath(self.config_file) +# tool_dict['config_file'] = config_file + +# # Add link details. +# if link_details: +# # Add details for creating a hyperlink to the tool. +# if not isinstance(self, DataSourceTool): +# link = self.app.url_for(controller='tool_runner', tool_id=self.id) +# else: +# link = self.app.url_for(controller='tool_runner', action='data_source_redirect', tool_id=self.id) + +# # Basic information +# tool_dict.update({'link': link, +# 'min_width': self.uihints.get('minwidth', -1), +# 'target': self.target}) + +# # Add input and output details. +# if io_details: +# tool_dict['inputs'] = [input.to_dict(trans) for input in self.inputs.values()] +# tool_dict['outputs'] = [output.to_dict(app=self.app) for output in self.outputs.values()] + +# tool_dict['panel_section_id'], tool_dict['panel_section_name'] = self.get_panel_section() + +# tool_class = self.__class__ +# # FIXME: the Tool class should declare directly, instead of ad hoc inspection +# regular_form = tool_class == Tool or isinstance(self, (DatabaseOperationTool, InteractiveTool)) +# tool_dict["form_style"] = "regular" if regular_form else "special" +# if tool_help: +# # create tool help +# help_txt = '' +# if self.help: +# help_txt = self.help.render(static_path=self.app.url_for('/static'), host_url=self.app.url_for('/', qualified=True)) +# help_txt = unicodify(help_txt) +# tool_dict['help'] = help_txt + +# return tool_dict + +# def to_json(self, trans, kwd=None, job=None, workflow_building_mode=False, history=None): +# """ +# Recursively creates a tool dictionary containing repeats, dynamic options and updated states. +# """ +# if kwd is None: +# kwd = {} +# if workflow_building_mode is workflow_building_modes.USE_HISTORY or workflow_building_mode is workflow_building_modes.DISABLED: +# # We don't need a history when exporting a workflow for the workflow editor or when downloading a workflow +# history = history or trans.get_history() +# if history is None and job is not None: +# history = self.history_manager.get_owned(job.history.id, trans.user, current_history=trans.history) +# if history is None: +# raise exceptions.MessageException('History unavailable. Please specify a valid history id') + +# # build request context +# request_context = proxy_work_context_for_history(trans, history, workflow_building_mode=workflow_building_mode) + +# # load job parameters into incoming +# tool_message = '' +# tool_warnings = '' +# if job: +# try: +# job_params = job.get_param_values(self.app, ignore_errors=True) +# tool_warnings = self.check_and_update_param_values(job_params, request_context, update_values=True) +# self._map_source_to_history(request_context, self.inputs, job_params) +# tool_message = self._compare_tool_version(job) +# params_to_incoming(kwd, self.inputs, job_params, self.app) +# except Exception as e: +# raise exceptions.MessageException(unicodify(e)) + +# # create parameter object +# params = Params(kwd, sanitize=False) + +# # expand incoming parameters (parameters might trigger multiple tool executions, +# # here we select the first execution only in order to resolve dynamic parameters) +# expanded_incomings, _ = expand_meta_parameters(trans, self, params.__dict__) +# if expanded_incomings: +# params.__dict__ = expanded_incomings[0] + +# # do param translation here, used by datasource tools +# if self.input_translator: +# self.input_translator.translate(params) + +# set_dataset_matcher_factory(request_context, self) +# # create tool state +# state_inputs: Dict[str, str] = {} +# state_errors: Dict[str, str] = {} +# populate_state(request_context, self.inputs, params.__dict__, state_inputs, state_errors) + +# # create tool model +# tool_model = self.to_dict(request_context) +# tool_model['inputs'] = [] +# self.populate_model(request_context, self.inputs, state_inputs, tool_model['inputs']) +# unset_dataset_matcher_factory(request_context) + +# # create tool help +# tool_help = '' +# if self.help: +# tool_help = self.help.render(static_path=self.app.url_for('/static'), host_url=self.app.url_for('/', qualified=True)) +# tool_help = unicodify(tool_help, 'utf-8') + +# if isinstance(self.action, tuple): +# action = self.action[0] + self.app.url_for(self.action[1]) +# else: +# action = self.app.url_for(self.action) + +# # update tool model +# tool_model.update({ +# 'id': self.id, +# 'help': tool_help, +# 'citations': bool(self.citations), +# 'sharable_url': self.sharable_url, +# 'message': tool_message, +# 'warnings': tool_warnings, +# 'versions': self.tool_versions, +# 'requirements': [{'name': r.name, 'version': r.version} for r in self.requirements], +# 'errors': state_errors, +# 'tool_errors': self.tool_errors, +# 'state_inputs': params_to_strings(self.inputs, state_inputs, self.app, use_security=True, nested=True), +# 'job_id': trans.security.encode_id(job.id) if job else None, +# 'job_remap': job.remappable() if job else None, +# 'history_id': trans.security.encode_id(history.id) if history else None, +# 'display': self.display_interface, +# 'action': action, +# 'license': self.license, +# 'creator': self.creator, +# 'method': self.method, +# 'enctype': self.enctype +# }) +# return tool_model + +# def populate_model(self, request_context, inputs, state_inputs, group_inputs, other_values=None): +# """ +# Populates the tool model consumed by the client form builder. +# """ +# other_values = ExpressionContext(state_inputs, other_values) +# for input_index, input in enumerate(inputs.values()): +# tool_dict = None +# group_state = state_inputs.get(input.name, {}) +# if input.type == 'repeat': +# tool_dict = input.to_dict(request_context) +# group_size = len(group_state) +# tool_dict["cache"] = [None] * group_size +# group_cache: List[List[str]] = tool_dict["cache"] +# for i in range(group_size): +# group_cache[i] = [] +# self.populate_model(request_context, input.inputs, group_state[i], group_cache[i], other_values) +# elif input.type == 'conditional': +# tool_dict = input.to_dict(request_context) +# if 'test_param' in tool_dict: +# test_param = tool_dict['test_param'] +# test_param['value'] = input.test_param.value_to_basic(group_state.get(test_param['name'], input.test_param.get_initial_value(request_context, other_values)), self.app) +# test_param['text_value'] = input.test_param.value_to_display_text(test_param['value']) +# for i in range(len(tool_dict['cases'])): +# current_state = {} +# if i == group_state.get('__current_case__'): +# current_state = group_state +# self.populate_model(request_context, input.cases[i].inputs, current_state, tool_dict['cases'][i]['inputs'], other_values) +# elif input.type == 'section': +# tool_dict = input.to_dict(request_context) +# self.populate_model(request_context, input.inputs, group_state, tool_dict['inputs'], other_values) +# else: +# try: +# initial_value = input.get_initial_value(request_context, other_values) +# tool_dict = input.to_dict(request_context, other_values=other_values) +# tool_dict['value'] = input.value_to_basic(state_inputs.get(input.name, initial_value), self.app, use_security=True) +# tool_dict['default_value'] = input.value_to_basic(initial_value, self.app, use_security=True) +# tool_dict['text_value'] = input.value_to_display_text(tool_dict['value']) +# except ImplicitConversionRequired: +# tool_dict = input.to_dict(request_context) +# # This hack leads client to display a text field +# tool_dict['textable'] = True +# except Exception: +# tool_dict = input.to_dict(request_context) +# log.exception("tools::to_json() - Skipping parameter expansion '%s'", input.name) +# if input_index >= len(group_inputs): +# group_inputs.append(tool_dict) +# else: +# group_inputs[input_index] = tool_dict + +# def _map_source_to_history(self, trans, tool_inputs, params): +# # Need to remap dataset parameters. Job parameters point to original +# # dataset used; parameter should be the analygous dataset in the +# # current history. +# history = trans.history + +# # Create index for hdas. +# hda_source_dict = {} +# for hda in history.datasets: +# key = f'{hda.hid}_{hda.dataset.id}' +# hda_source_dict[hda.dataset.id] = hda_source_dict[key] = hda + +# # Ditto for dataset collections. +# hdca_source_dict = {} +# for hdca in history.dataset_collections: +# key = f'{hdca.hid}_{hdca.collection.id}' +# hdca_source_dict[hdca.collection.id] = hdca_source_dict[key] = hdca + +# # Map dataset or collection to current history +# def map_to_history(value): +# id = None +# source = None +# if isinstance(value, self.app.model.HistoryDatasetAssociation): +# id = value.dataset.id +# source = hda_source_dict +# elif isinstance(value, self.app.model.HistoryDatasetCollectionAssociation): +# id = value.collection.id +# source = hdca_source_dict +# else: +# return None +# key = f'{value.hid}_{id}' +# if key in source: +# return source[key] +# elif id in source: +# return source[id] +# else: +# return None + +# def mapping_callback(input, value, **kwargs): +# if isinstance(input, DataToolParameter): +# if isinstance(value, list): +# values = [] +# for val in value: +# new_val = map_to_history(val) +# if new_val: +# values.append(new_val) +# else: +# values.append(val) +# return values +# else: +# return map_to_history(value) +# elif isinstance(input, DataCollectionToolParameter): +# return map_to_history(value) +# visit_input_values(tool_inputs, params, mapping_callback) + +# def _compare_tool_version(self, job): +# """ +# Compares a tool version with the tool version from a job (from ToolRunner). +# """ +# tool_id = job.tool_id +# tool_version = job.tool_version +# message = '' +# try: +# select_field, tools, tool = self.app.toolbox.get_tool_components(tool_id, tool_version=tool_version, get_loaded_tools_by_lineage=False, set_selected=True) +# if tool is None: +# raise exceptions.MessageException('This dataset was created by an obsolete tool (%s). Can\'t re-run.' % tool_id) +# if (self.id != tool_id and self.old_id != tool_id) or self.version != tool_version: +# if self.id == tool_id: +# if tool_version: +# message = f'This job was run with tool version "{tool_version}", which is not available. ' +# if len(tools) > 1: +# message += 'You can re-run the job with the selected tool or choose another version of the tool. ' +# else: +# message += 'You can re-run the job with this tool version, which is a different version of the original tool. ' +# else: +# new_tool_shed_url = f'{tool.sharable_url}/{tool.changeset_revision}/' +# old_tool_shed_url = get_tool_shed_url_from_tool_shed_registry(self.app, tool_id.split('/repos/')[0]) +# old_tool_shed_url = f'{old_tool_shed_url}/view/{tool.repository_owner}/{tool.repository_name}/' +# message = f'This job was run with <a href=\"{old_tool_shed_url}\" target=\"_blank\">tool id \"{tool_id}\"</a>, version "{tool_version}", which is not available. ' +# if len(tools) > 1: +# message += f'You can re-run the job with the selected <a href=\"{new_tool_shed_url}\" target=\"_blank\">tool id \"{self.id}\"</a> or choose another derivation of the tool. ' +# else: +# message += f'You can re-run the job with <a href=\"{new_tool_shed_url}\" target=\"_blank\">tool id \"{self.id}\"</a>, which is a derivation of the original tool. ' +# if not self.is_latest_version: +# message += 'There is a newer version of this tool available.' +# except Exception as e: +# raise exceptions.MessageException(unicodify(e)) +# return message + +# def get_default_history_by_trans(self, trans, create=False): +# return trans.get_history(create=create) + +# @classmethod +# def get_externally_referenced_paths(self, path): +# """ Return relative paths to externally referenced files by the tool +# described by file at `path`. External components should not assume things +# about the structure of tool xml files (this is the tool's responsibility). +# """ +# tree = raw_tool_xml_tree(path) +# root = tree.getroot() +# external_paths = [] +# for code_elem in root.findall('code'): +# external_path = code_elem.get('file') +# if external_path: +# external_paths.append(external_path) +# external_paths.extend(imported_macro_paths(root)) +# # May also need to load external citation files as well at some point. +# return external_paths diff --git a/janis_core/ingestion/galaxy/gxtool/parsing/nogx/__init__.py b/janis_core/ingestion/galaxy/gxtool/parsing/nogx/__init__.py index df2322306..8b1378917 100644 --- a/janis_core/ingestion/galaxy/gxtool/parsing/nogx/__init__.py +++ b/janis_core/ingestion/galaxy/gxtool/parsing/nogx/__init__.py @@ -1,3 +1 @@ - -from .encoding import unicodify \ No newline at end of file diff --git a/janis_core/ingestion/galaxy/gxtool/parsing/nogx/main.py b/janis_core/ingestion/galaxy/gxtool/parsing/nogx/main.py index 49017fed1..321d04b32 100644 --- a/janis_core/ingestion/galaxy/gxtool/parsing/nogx/main.py +++ b/janis_core/ingestion/galaxy/gxtool/parsing/nogx/main.py @@ -1,375 +1,375 @@ -import os -import regex as re -from typing import Any - -from galaxy.tools import Tool as GxTool -from galaxy.tools.parameters.basic import ToolParameter -from galaxy.tool_util.parser import get_tool_source -from galaxy.tool_util.parser.xml import XmlToolSource -from galaxy.tool_util.parser.output_objects import ToolOutput - -from ...model import XMLDataParam -from ...model import XMLConfigfile -from ...model import XMLScript -from ...model import XMLTool -from ...model import XMLMetadata -from ...model import XMLCitation -from ...model import XMLParamRegister -from ...model import XMLCondaRequirement -from ...model import XMLContainerRequirement -from ...model import XMLTest -from ...model import XMLTestRegister - -from ....expressions.patterns import GX_TOOL_SCRIPT -from ....expressions.matches import get_matches - -from ..param_flattener import XMLParamFlattener -from ..outputs import parse_output_param -from ..inputs import parse_input_param - -Requirement = XMLContainerRequirement | XMLCondaRequirement - -from .GXTool import GXTool - - -def load_xmltool_new(path: str) -> XMLTool: - tool_source = get_tool_source(path) - assert(isinstance(tool_source, XmlToolSource)) - config_file = None - gxtool = GXTool(config_file, tool_source) - gxtool.assert_finalized() - factory = GalaxyToolFactory(gxtool, path) - return factory.create() - - - -class GalaxyToolFactory: - def __init__(self, gxtool: GXTool, xmlpath: str): - self.gxtool = gxtool - self.xmlpath = xmlpath - self.scripts: list[XMLScript] = [] - self.configfiles: list[XMLConfigfile] = [] - self.inputs = self.parse_inputs() - self.parse_scripts() - self.parse_configfiles() - self.outputs = self.parse_outputs() - - # TODO remove script references in command parsing etc - # scripts / configfiles treated as gxparam XMLInputParams. - # still need way to set default value? - - def create(self) -> XMLTool: - return XMLTool( - metadata=self.parse_metadata(), - raw_command=self.parse_command(), - configfiles=self.configfiles, - scripts=self.scripts, - inputs=self.inputs, - outputs=self.outputs, - tests=self.parse_tests() - ) +# import os +# import regex as re +# from typing import Any + +# from galaxy.tools import Tool as GxTool +# from galaxy.tools.parameters.basic import ToolParameter +# from galaxy.tool_util.parser import get_tool_source +# from galaxy.tool_util.parser.xml import XmlToolSource +# from galaxy.tool_util.parser.output_objects import ToolOutput + +# from ...model import XMLDataParam +# from ...model import XMLConfigfile +# from ...model import XMLScript +# from ...model import XMLTool +# from ...model import XMLMetadata +# from ...model import XMLCitation +# from ...model import XMLParamRegister +# from ...model import XMLCondaRequirement +# from ...model import XMLContainerRequirement +# from ...model import XMLTest +# from ...model import XMLTestRegister + +# from ....expressions.patterns import GX_TOOL_SCRIPT +# from ....expressions.matches import get_matches + +# from ..param_flattener import XMLParamFlattener +# from ..outputs import parse_output_param +# from ..inputs import parse_input_param + +# Requirement = XMLContainerRequirement | XMLCondaRequirement + +# from .GXTool import GXTool + + +# def load_xmltool_new(path: str) -> XMLTool: +# tool_source = get_tool_source(path) +# assert(isinstance(tool_source, XmlToolSource)) +# config_file = None +# gxtool = GXTool(config_file, tool_source) +# gxtool.assert_finalized() +# factory = GalaxyToolFactory(gxtool, path) +# return factory.create() + + + +# class GalaxyToolFactory: +# def __init__(self, gxtool: GXTool, xmlpath: str): +# self.gxtool = gxtool +# self.xmlpath = xmlpath +# self.scripts: list[XMLScript] = [] +# self.configfiles: list[XMLConfigfile] = [] +# self.inputs = self.parse_inputs() +# self.parse_scripts() +# self.parse_configfiles() +# self.outputs = self.parse_outputs() + +# # TODO remove script references in command parsing etc +# # scripts / configfiles treated as gxparam XMLInputParams. +# # still need way to set default value? + +# def create(self) -> XMLTool: +# return XMLTool( +# metadata=self.parse_metadata(), +# raw_command=self.parse_command(), +# configfiles=self.configfiles, +# scripts=self.scripts, +# inputs=self.inputs, +# outputs=self.outputs, +# tests=self.parse_tests() +# ) - def parse_inputs(self) -> XMLParamRegister: - """returns a an InputRegister by reformatting the galaxy tool representation's params.""" - register = XMLParamRegister() - g_in_params = self.flatten_params() - - # removing duplicates - fingerprints = set() - unique_params = [] - for g_param in g_in_params: - items = [g_param.flat_name, g_param.label, g_param.type] - items = [x for x in items if isinstance(x, str)] - fingerprint = ''.join(items) - if fingerprint not in fingerprints: - unique_params.append(g_param) - fingerprints.add(fingerprint) - - # parsing individual params - for g_param in unique_params: - i_param = parse_input_param(g_param) - register.add(i_param) +# def parse_inputs(self) -> XMLParamRegister: +# """returns a an InputRegister by reformatting the galaxy tool representation's params.""" +# register = XMLParamRegister() +# g_in_params = self.flatten_params() + +# # removing duplicates +# fingerprints = set() +# unique_params = [] +# for g_param in g_in_params: +# items = [g_param.flat_name, g_param.label, g_param.type] +# items = [x for x in items if isinstance(x, str)] +# fingerprint = ''.join(items) +# if fingerprint not in fingerprints: +# unique_params.append(g_param) +# fingerprints.add(fingerprint) + +# # parsing individual params +# for g_param in unique_params: +# i_param = parse_input_param(g_param) +# register.add(i_param) - return register - - def flatten_params(self) -> list[ToolParameter]: - pf = XMLParamFlattener(self.gxtool.inputs) - return pf.flatten() - - def parse_outputs(self) -> XMLParamRegister: - """returns a formatted list of outputs using the representation""" - register = XMLParamRegister() - g_out_params: list[ToolOutput] = list(self.gxtool.outputs.values()) - for g_param in g_out_params: - t_params = parse_output_param(g_param, self.inputs) - for param in t_params: - register.add(param) - return register - - def parse_metadata(self) -> XMLMetadata: - """returns a formatted Metadata using the representation""" - requirements: list[Requirement] = self.get_requirements() - citations: list[XMLCitation] = self.get_citations() - return XMLMetadata( - name=str(self.gxtool.name), #type: ignore - id=str(self.gxtool.id), #type: ignore - version=str(self.gxtool.version).split('+galaxy')[0], #type: ignore - description=str(self.gxtool.description), #type: ignore - help=str(self.gxtool.raw_help), #type: ignore - requirements=requirements, - citations=citations, - creator=self.gxtool.creator #type: ignore - ) +# return register + +# def flatten_params(self) -> list[ToolParameter]: +# pf = XMLParamFlattener(self.gxtool.inputs) +# return pf.flatten() + +# def parse_outputs(self) -> XMLParamRegister: +# """returns a formatted list of outputs using the representation""" +# register = XMLParamRegister() +# g_out_params: list[ToolOutput] = list(self.gxtool.outputs.values()) +# for g_param in g_out_params: +# t_params = parse_output_param(g_param, self.inputs) +# for param in t_params: +# register.add(param) +# return register + +# def parse_metadata(self) -> XMLMetadata: +# """returns a formatted Metadata using the representation""" +# requirements: list[Requirement] = self.get_requirements() +# citations: list[XMLCitation] = self.get_citations() +# return XMLMetadata( +# name=str(self.gxtool.name), #type: ignore +# id=str(self.gxtool.id), #type: ignore +# version=str(self.gxtool.version).split('+galaxy')[0], #type: ignore +# description=str(self.gxtool.description), #type: ignore +# help=str(self.gxtool.raw_help), #type: ignore +# requirements=requirements, +# citations=citations, +# creator=self.gxtool.creator #type: ignore +# ) - def get_requirements(self) -> list[Requirement]: - """returns a formatted list of Requirements using the representation""" - reqs: list[Requirement] = [] - reqs += self.get_conda_requirements() - reqs += self.get_container_requirements() - return reqs +# def get_requirements(self) -> list[Requirement]: +# """returns a formatted list of Requirements using the representation""" +# reqs: list[Requirement] = [] +# reqs += self.get_conda_requirements() +# reqs += self.get_container_requirements() +# return reqs - def get_conda_requirements(self) -> list[XMLCondaRequirement]: - packages: list[dict[str, str]] = self.gxtool.requirements.to_list() # type: ignore - return [XMLCondaRequirement(p['name'], p['version']) for p in packages] +# def get_conda_requirements(self) -> list[XMLCondaRequirement]: +# packages: list[dict[str, str]] = self.gxtool.requirements.to_list() # type: ignore +# return [XMLCondaRequirement(p['name'], p['version']) for p in packages] - def get_container_requirements(self) -> list[XMLContainerRequirement]: - containers: list[ContainerDescription] = self.gxtool.containers # type: ignore - return [XMLContainerRequirement(c.identifier) for c in containers] # type: ignore - - def get_citations(self) -> list[XMLCitation]: - citations: list[XMLCitation] = [] - citations += self.get_biotools_citations() - citations += self.get_doi_citations() - #citations += self.get_bibtex_citations() - return citations - - def get_biotools_citations(self) -> list[XMLCitation]: - out: list[XMLCitation] = [] - for ref in self.gxtool.xrefs: - citation = XMLCitation( - type='biotools', - text=f"https://bio.tools/{ref['value']}" - ) - out.append(citation) - return out - - def get_doi_citations(self) -> list[XMLCitation]: - out: list[XMLCitation] = [] - for elem in self.gxtool.tool_source.xml_tree.findall('citations'): - for ref in elem.findall('citation'): - if ref.attrib['type'] == 'doi': - citation = XMLCitation( - type='doi', - text=f"https://doi.org/{ref.text}" - ) - out.append(citation) - return out +# def get_container_requirements(self) -> list[XMLContainerRequirement]: +# containers: list[ContainerDescription] = self.gxtool.containers # type: ignore +# return [XMLContainerRequirement(c.identifier) for c in containers] # type: ignore + +# def get_citations(self) -> list[XMLCitation]: +# citations: list[XMLCitation] = [] +# citations += self.get_biotools_citations() +# citations += self.get_doi_citations() +# #citations += self.get_bibtex_citations() +# return citations + +# def get_biotools_citations(self) -> list[XMLCitation]: +# out: list[XMLCitation] = [] +# for ref in self.gxtool.xrefs: +# citation = XMLCitation( +# type='biotools', +# text=f"https://bio.tools/{ref['value']}" +# ) +# out.append(citation) +# return out + +# def get_doi_citations(self) -> list[XMLCitation]: +# out: list[XMLCitation] = [] +# for elem in self.gxtool.tool_source.xml_tree.findall('citations'): +# for ref in elem.findall('citation'): +# if ref.attrib['type'] == 'doi': +# citation = XMLCitation( +# type='doi', +# text=f"https://doi.org/{ref.text}" +# ) +# out.append(citation) +# return out - def get_bibtex_citations(self) -> list[XMLCitation]: - out: list[XMLCitation] = [] - for elem in self.gxtool.tool_source.xml_tree.findall('citations'): - for ref in elem.findall('citation'): - if ref.attrib['type'] == 'bibtex': - citation = XMLCitation( - type='bibtex', - text=self.parse_bibtex(ref.text) - ) - out.append(citation) - return out +# def get_bibtex_citations(self) -> list[XMLCitation]: +# out: list[XMLCitation] = [] +# for elem in self.gxtool.tool_source.xml_tree.findall('citations'): +# for ref in elem.findall('citation'): +# if ref.attrib['type'] == 'bibtex': +# citation = XMLCitation( +# type='bibtex', +# text=self.parse_bibtex(ref.text) +# ) +# out.append(citation) +# return out - def parse_bibtex(self, bibtex_citation: dict[str, str]) -> str: - # define and parse using biblib - bp = bib.Parser() - data = bp.parse(bibtex_citation).get_entries() # type: ignore - # get each citation key: value pair - entry = list(data.values())[0] # type: ignore - if 'url' in entry: - return f"{entry['url']}" # type: ignore - elif 'author' in entry and 'title' in entry: - return f"{entry['author']}. {entry['title']}" - return '' - - def parse_command(self) -> str: - """returns the tool xml command""" - return str(self.gxtool.command) # type: ignore +# def parse_bibtex(self, bibtex_citation: dict[str, str]) -> str: +# # define and parse using biblib +# bp = bib.Parser() +# data = bp.parse(bibtex_citation).get_entries() # type: ignore +# # get each citation key: value pair +# entry = list(data.values())[0] # type: ignore +# if 'url' in entry: +# return f"{entry['url']}" # type: ignore +# elif 'author' in entry and 'title' in entry: +# return f"{entry['author']}. {entry['title']}" +# return '' + +# def parse_command(self) -> str: +# """returns the tool xml command""" +# return str(self.gxtool.command) # type: ignore - def parse_configfiles(self) -> None: - """ - parses tool configfiles & adds to XMLTool.configfiles. - Additionally: - Adds a XMLDataParam for the configfile. - Do not need to replace the configfile in the command, as is already a reference. - This way, configfile will be treated as ToolInputs which is desired behaviour. +# def parse_configfiles(self) -> None: +# """ +# parses tool configfiles & adds to XMLTool.configfiles. +# Additionally: +# Adds a XMLDataParam for the configfile. +# Do not need to replace the configfile in the command, as is already a reference. +# This way, configfile will be treated as ToolInputs which is desired behaviour. - Need to add a Workflow InputNode for the configfile. - Need to link this InputNode to the extracted ToolInput in the step call. - These happen later, in ingestion.galaxy.gx.gxworkflow.values.scripts - (called from janis_core.ingestion.galaxy.ingest) - """ - for name, _, contents in self.gxtool.config_files: # type: ignore - if isinstance(contents, str): - # parse into XMLConfigfile & add to XMLTool - configfile = XMLConfigfile(name, contents) # type: ignore - self.configfiles.append(configfile) - - # add param for XMLConfigfile - param = XMLDataParam(name=configfile.varname) - param.formats = ['file'] - param.helptext = 'galaxy script needed to run tool' - self.inputs.add(param) - - def parse_scripts(self) -> None: - """ - parses local tool scripts & adds to XMLTool.scripts. - (ie $__tool_directory__/my_script.py) - Additionally: - Adds a XMLDataParam for the script. - Replaces the script in the command with a reference to the param. - This way, scripts will be treated as ToolInputs which is desired behaviour. +# Need to add a Workflow InputNode for the configfile. +# Need to link this InputNode to the extracted ToolInput in the step call. +# These happen later, in ingestion.galaxy.gx.gxworkflow.values.scripts +# (called from janis_core.ingestion.galaxy.ingest) +# """ +# for name, _, contents in self.gxtool.config_files: # type: ignore +# if isinstance(contents, str): +# # parse into XMLConfigfile & add to XMLTool +# configfile = XMLConfigfile(name, contents) # type: ignore +# self.configfiles.append(configfile) + +# # add param for XMLConfigfile +# param = XMLDataParam(name=configfile.varname) +# param.formats = ['file'] +# param.helptext = 'galaxy script needed to run tool' +# self.inputs.add(param) + +# def parse_scripts(self) -> None: +# """ +# parses local tool scripts & adds to XMLTool.scripts. +# (ie $__tool_directory__/my_script.py) +# Additionally: +# Adds a XMLDataParam for the script. +# Replaces the script in the command with a reference to the param. +# This way, scripts will be treated as ToolInputs which is desired behaviour. - Need to add a Workflow InputNode for the script file. - Need to link this InputNode to the extracted ToolInput in the step call. - These happen later, in ingestion.galaxy.gx.gxworkflow.values.scripts - (called from janis_core.ingestion.galaxy.ingest) - """ - while get_matches(self.gxtool.command, GX_TOOL_SCRIPT): - # get the match - match = get_matches(self.gxtool.command, GX_TOOL_SCRIPT)[0] +# Need to add a Workflow InputNode for the script file. +# Need to link this InputNode to the extracted ToolInput in the step call. +# These happen later, in ingestion.galaxy.gx.gxworkflow.values.scripts +# (called from janis_core.ingestion.galaxy.ingest) +# """ +# while get_matches(self.gxtool.command, GX_TOOL_SCRIPT): +# # get the match +# match = get_matches(self.gxtool.command, GX_TOOL_SCRIPT)[0] - # parse match into script & add to XMLTool - script = self.parse_script(match) - self.scripts.append(script) - - # add param for script - param = XMLDataParam(name=script.varname) - param.formats = ['file'] - param.helptext = 'galaxy script needed to run tool' - self.inputs.add(param) +# # parse match into script & add to XMLTool +# script = self.parse_script(match) +# self.scripts.append(script) + +# # add param for script +# param = XMLDataParam(name=script.varname) +# param.formats = ['file'] +# param.helptext = 'galaxy script needed to run tool' +# self.inputs.add(param) - # modify command to replace script with param - print(self.gxtool.command) - self.replace_script_in_command(match, param) - print(self.gxtool.command) - print() - - def parse_script(self, match: re.Match[str]) -> XMLScript: - filename = match.group(1) - varname = filename.rsplit('.', 1)[0] - if not varname.endswith('_script'): - varname = f'{varname}_script' - script_contents = self.read_script_contents(filename) - return XMLScript(varname, filename, script_contents) +# # modify command to replace script with param +# print(self.gxtool.command) +# self.replace_script_in_command(match, param) +# print(self.gxtool.command) +# print() + +# def parse_script(self, match: re.Match[str]) -> XMLScript: +# filename = match.group(1) +# varname = filename.rsplit('.', 1)[0] +# if not varname.endswith('_script'): +# varname = f'{varname}_script' +# script_contents = self.read_script_contents(filename) +# return XMLScript(varname, filename, script_contents) - def read_script_contents(self, filename: str) -> str: - xmldir = os.path.dirname(self.xmlpath) - filepath = os.path.join(xmldir, filename) - with open(filepath, 'r') as f: - script_contents = f.read() - return script_contents - - def replace_script_in_command(self, match: re.Match[str], param: XMLDataParam) -> None: - self.gxtool.command = self.gxtool.command.replace(match.group(0), f'${param.name}') +# def read_script_contents(self, filename: str) -> str: +# xmldir = os.path.dirname(self.xmlpath) +# filepath = os.path.join(xmldir, filename) +# with open(filepath, 'r') as f: +# script_contents = f.read() +# return script_contents + +# def replace_script_in_command(self, match: re.Match[str], param: XMLDataParam) -> None: +# self.gxtool.command = self.gxtool.command.replace(match.group(0), f'${param.name}') - def parse_tests(self) -> XMLTestRegister: - """ - returns a formatted list of tests using the representation - needs to be properly fleshed out later! - """ - xmltests: list[XMLTest] = [] - if self.gxtool.tests: - for test in self.gxtool.tests: - inputs_dict = to_inputs_dict(test.inputs) - xmltest = XMLTest(test.name, inputs_dict) - xmltests.append(xmltest) - return XMLTestRegister(xmltests) +# def parse_tests(self) -> XMLTestRegister: +# """ +# returns a formatted list of tests using the representation +# needs to be properly fleshed out later! +# """ +# xmltests: list[XMLTest] = [] +# if self.gxtool.tests: +# for test in self.gxtool.tests: +# inputs_dict = to_inputs_dict(test.inputs) +# xmltest = XMLTest(test.name, inputs_dict) +# xmltests.append(xmltest) +# return XMLTestRegister(xmltests) -### HELPER FUNCTIONS ### - -class RepeatSection(dict): - def __init__(self): - super().__init__() - -def to_inputs_dict(gxinputs: dict[str, Any]) -> dict[str, Any]: - inputs_dict: dict[str, Any] = {} - for longname, value in gxinputs.items(): - inputs_dict = generate_structure(inputs_dict, longname) - inputs_dict = inject_value(inputs_dict, longname, value) - inputs_dict = collapse_repeats(inputs_dict) - return inputs_dict - -def generate_structure(inputs_dict: dict[str, Any], longname: str) -> dict[str, Any]: - REPEAT_MATCHER = r'_\d+$' - longname = longname.replace('|', '.') - heirarchy = longname.split('.') - - if len(heirarchy) >= 1: - heirarchy = heirarchy[:-1] # don't care about leaf nodes - node = inputs_dict - # prepare dict structure & inject value at leaf - for label in heirarchy: - # if internal repeat section, handle - if re.search(REPEAT_MATCHER, label): - label, elem = label.rsplit('_', 1) - if label not in node: - node[label] = RepeatSection() - if elem not in node[label]: - node[label][elem] = {} - node = node[label][elem] - - # if internal generic node, handle - elif label not in node: - node[label] = {} - node = node[label] - - else: - node = node[label] +# ### HELPER FUNCTIONS ### + +# class RepeatSection(dict): +# def __init__(self): +# super().__init__() + +# def to_inputs_dict(gxinputs: dict[str, Any]) -> dict[str, Any]: +# inputs_dict: dict[str, Any] = {} +# for longname, value in gxinputs.items(): +# inputs_dict = generate_structure(inputs_dict, longname) +# inputs_dict = inject_value(inputs_dict, longname, value) +# inputs_dict = collapse_repeats(inputs_dict) +# return inputs_dict + +# def generate_structure(inputs_dict: dict[str, Any], longname: str) -> dict[str, Any]: +# REPEAT_MATCHER = r'_\d+$' +# longname = longname.replace('|', '.') +# heirarchy = longname.split('.') + +# if len(heirarchy) >= 1: +# heirarchy = heirarchy[:-1] # don't care about leaf nodes +# node = inputs_dict +# # prepare dict structure & inject value at leaf +# for label in heirarchy: +# # if internal repeat section, handle +# if re.search(REPEAT_MATCHER, label): +# label, elem = label.rsplit('_', 1) +# if label not in node: +# node[label] = RepeatSection() +# if elem not in node[label]: +# node[label][elem] = {} +# node = node[label][elem] + +# # if internal generic node, handle +# elif label not in node: +# node[label] = {} +# node = node[label] + +# else: +# node = node[label] - return inputs_dict +# return inputs_dict -def inject_value(inputs_dict: dict[str, Any], longname: str, value: Any) -> dict[str, Any]: - REPEAT_MATCHER = r'_\d+$' - longname = longname.replace('|', '.') - heirarchy = longname.split('.') - node = inputs_dict +# def inject_value(inputs_dict: dict[str, Any], longname: str, value: Any) -> dict[str, Any]: +# REPEAT_MATCHER = r'_\d+$' +# longname = longname.replace('|', '.') +# heirarchy = longname.split('.') +# node = inputs_dict - for i, label in enumerate(heirarchy): - # inject value if leaf node - if i == len(heirarchy) - 1: - # TODO get gxparam, check if it expects list or single - # value rather than the logic below - if isinstance(value, list) and len(value) == 1: - value = value[0] - node[label] = value - break +# for i, label in enumerate(heirarchy): +# # inject value if leaf node +# if i == len(heirarchy) - 1: +# # TODO get gxparam, check if it expects list or single +# # value rather than the logic below +# if isinstance(value, list) and len(value) == 1: +# value = value[0] +# node[label] = value +# break - # if internal repeat section, go to next level - elif re.search(REPEAT_MATCHER, label): - label, elem = label.rsplit('_', 1) - node = node[label][elem] +# # if internal repeat section, go to next level +# elif re.search(REPEAT_MATCHER, label): +# label, elem = label.rsplit('_', 1) +# node = node[label][elem] - # if internal generic node, go to next level - else: - node = node[label] - - return inputs_dict - -def collapse_repeats(node: dict[str, Any]) -> dict[str, Any]: - for key, value in node.items(): - # if repeat, do collapse - if isinstance(value, RepeatSection): - repeat = value - num_elems = len(repeat) - the_list = [None for _ in range(num_elems)] - for elem, subdict in repeat.items(): - the_list[int(elem)] = collapse_repeats(subdict) # type: ignore - node[key] = the_list - # if normal dict, descend - elif isinstance(value, dict): - node[key] = collapse_repeats(value) - return node +# # if internal generic node, go to next level +# else: +# node = node[label] + +# return inputs_dict + +# def collapse_repeats(node: dict[str, Any]) -> dict[str, Any]: +# for key, value in node.items(): +# # if repeat, do collapse +# if isinstance(value, RepeatSection): +# repeat = value +# num_elems = len(repeat) +# the_list = [None for _ in range(num_elems)] +# for elem, subdict in repeat.items(): +# the_list[int(elem)] = collapse_repeats(subdict) # type: ignore +# node[key] = the_list +# # if normal dict, descend +# elif isinstance(value, dict): +# node[key] = collapse_repeats(value) +# return node diff --git a/janis_core/ingestion/galaxy/gxtool/text/cheetah/blocks.py b/janis_core/ingestion/galaxy/gxtool/text/cheetah/blocks.py index 082ba4acc..76576f359 100644 --- a/janis_core/ingestion/galaxy/gxtool/text/cheetah/blocks.py +++ b/janis_core/ingestion/galaxy/gxtool/text/cheetah/blocks.py @@ -10,7 +10,7 @@ # from galaxy.util import unicodify from .. import utils -from janis_core.ingestion.galaxy.gxtool.parsing.nogx import unicodify +from janis_core.ingestion.galaxy.gxtool.parsing import unicodify from janis_core.ingestion.galaxy.gxtool.command.cmdstr import constructs from janis_core.ingestion.galaxy import expressions diff --git a/janis_core/ingestion/galaxy/ingest.py b/janis_core/ingestion/galaxy/ingest.py index 65b440e5a..6b5215932 100644 --- a/janis_core/ingestion/galaxy/ingest.py +++ b/janis_core/ingestion/galaxy/ingest.py @@ -1,8 +1,12 @@ - import json import os from typing import Any, Optional, Tuple + +# this is boofed, but necessary for local unittest on my machine +import packaging.version +packaging.version.LegacyVersion = packaging.version.Version + from janis_core import settings from janis_core import Tool from janis_core.ingestion.galaxy import runtime diff --git a/janis_core/ingestion/main.py b/janis_core/ingestion/main.py index b2a8c19ee..03a682913 100644 --- a/janis_core/ingestion/main.py +++ b/janis_core/ingestion/main.py @@ -1,49 +1,48 @@ - -from janis_core import Tool -from janis_core import settings -from janis_core.messages import configure_logging - -from .SupportedIngestion import SupportedIngestion -from .cwl import parse as parse_cwl -from .wdl import WdlParser +from __future__ import annotations +from typing import TYPE_CHECKING +if TYPE_CHECKING: + from janis_core import Tool def ingest_galaxy(uri: str) -> Tool: from .galaxy import parse_galaxy return parse_galaxy(uri) def ingest_cwl(path: str) -> Tool: + from .cwl import parse as parse_cwl return parse_cwl(path) def ingest_wdl(path: str) -> Tool: + from .wdl import WdlParser return WdlParser.from_doc(path) - -# this is using the SupportedIngestion Enum values. -# should it just be the Enum? these strings are in 2 places now. -ingestor_map = { - 'galaxy': ingest_galaxy, - 'cwl': ingest_cwl, - 'wdl': ingest_wdl -} - def ingest( path: str, - format: str, + fmt: str, build_galaxy_tool_images: bool = False, ) -> Tool: + from janis_core import settings + from janis_core.messages import configure_logging + from .SupportedIngestion import SupportedIngestion + + # setup logging configure_logging() # set ingest settings - settings.ingest.SOURCE = format + settings.ingest.SOURCE = fmt settings.validation.STRICT_IDENTIFIERS = False settings.validation.VALIDATE_STRINGFORMATTERS = False if build_galaxy_tool_images: settings.ingest.galaxy.GEN_IMAGES = True # do ingest - assert(format in SupportedIngestion.all()) # validate format - ingest_func = ingestor_map[format] # select ingestor - internal = ingest_func(path) # ingest - return internal \ No newline at end of file + assert(fmt in SupportedIngestion.all()) # validate format + + if fmt == 'galaxy': + return ingest_galaxy(path) + elif fmt == 'cwl': + return ingest_cwl(path) + elif fmt == 'wdl': + return ingest_wdl(path) + raise Exception \ No newline at end of file diff --git a/janis_core/operators/standard.py b/janis_core/operators/standard.py index 269d9255f..2839dbd80 100644 --- a/janis_core/operators/standard.py +++ b/janis_core/operators/standard.py @@ -1,5 +1,6 @@ from copy import copy +import regex as re from typing import List, Optional from janis_core.utils.logger import Logger @@ -80,9 +81,12 @@ def to_cwl(self, unwrap_operator, *args): return f"JSON.parse({fp}.contents)" def to_nextflow(self, unwrap_operator, *args): - raise NotImplementedError( - f"There is no Nextflow translation for {self.__class__.__name__}" - ) + arg = unwrap_operator(self.args[0]) + PATTERN = r'^[\'"](.*)[\'"]$' + if isinstance(arg, str) and re.match(PATTERN, arg): + match = re.match(PATTERN, arg) + arg = match.group(1) + return f'jsonSlurper.parseText(file("${{task.workDir}}/{arg}").text)' def requires_contents(self): return True @@ -256,7 +260,7 @@ def to_cwl(self, unwrap_operator, *args): def to_nextflow(self, unwrap_operator, *args): file_obj = unwrap_operator(args[0]) - return f"{file_obj}.name" + return f"{file_obj}" def argtypes(self): return [UnionType(File, Directory)] @@ -274,6 +278,7 @@ def evaluate(self, inputs): from os.path import basename return basename(self.evaluate_arg(self.args[0], inputs)) + # TODO test. currently untested. class DirnameOperator(Operator): @staticmethod diff --git a/janis_core/settings/ingest/general.py b/janis_core/settings/ingest/general.py index 6f6845122..a16aca503 100644 --- a/janis_core/settings/ingest/general.py +++ b/janis_core/settings/ingest/general.py @@ -1,3 +1,3 @@ SOURCE: str = '' # ingest source: one of 'galaxy' | 'cwl' | 'wdl' -SAFE_MODE: bool = False # master controller for whether exceptions halt program, or are handled. +SAFE_MODE: bool = True # master controller for whether exceptions halt program, or are handled. diff --git a/janis_core/tests/data/cwl/tools/requirements/bedgraph_sort.cwl b/janis_core/tests/data/cwl/tools/requirements/bedgraph_sort.cwl new file mode 100755 index 000000000..fe2420745 --- /dev/null +++ b/janis_core/tests/data/cwl/tools/requirements/bedgraph_sort.cwl @@ -0,0 +1,43 @@ +#!/usr/bin/env cwl-runner +cwlVersion: v1.0 +class: CommandLineTool +requirements: + InlineJavascriptRequirement: {} +hints: + ResourceRequirement: + coresMin: 1 + ramMin: 15000 + DockerRequirement: + dockerPull: docker.io/debian:stable-slim + SoftwareRequirement: + packages: + coreutils: + specs: [ https://anaconda.org/conda-forge/coreutils ] + +doc: | + sorting a bedgraph file by genomic coordinates + +baseCommand: ["bash", "-c"] +arguments: + - LC_COLLATE=C sort -k1,1 -k2,2n $(inputs.bedgraph.path) +stdout: | + ${ + if( inputs.output_name == null ){ + return inputs.bedgraph.basename; + } + else{ + return inputs.output_name; + } + } + +inputs: + bedgraph: + type: File + output_name: + doc: optional, if not specified, output file will be named as input file + type: string? + +outputs: + bedgraph_sorted: + type: stdout + diff --git a/janis_core/tests/data/cwl/tools/requirements/mark_duplicates_and_sort.cwl b/janis_core/tests/data/cwl/tools/requirements/mark_duplicates_and_sort.cwl new file mode 100644 index 000000000..79097442c --- /dev/null +++ b/janis_core/tests/data/cwl/tools/requirements/mark_duplicates_and_sort.cwl @@ -0,0 +1,58 @@ +#!/usr/bin/env cwl-runner + +cwlVersion: v1.0 +class: CommandLineTool +label: "Mark duplicates and Sort" + +baseCommand: ["/bin/bash", "markduplicates_helper.sh"] +requirements: + - class: ResourceRequirement + coresMin: 8 + ramMin: 40000 + - class: DockerRequirement + dockerPull: "mgibio/mark_duplicates-cwl:1.0.1" + - class: InitialWorkDirRequirement + listing: + - entryname: 'markduplicates_helper.sh' + entry: | + set -o pipefail + set -o errexit + + declare MD_BARCODE_TAG + if [ ! -z "$6" ]; then + MD_BARCODE_TAG="BARCODE_TAG=$6" + /usr/bin/java -Xmx16g -jar /opt/picard/picard.jar MarkDuplicates I=$1 O=/dev/stdout ASSUME_SORT_ORDER=$5 METRICS_FILE=$4 QUIET=true COMPRESSION_LEVEL=0 VALIDATION_STRINGENCY=LENIENT "$MD_BARCODE_TAG" | /usr/bin/sambamba sort -t $2 -m 18G -o $3 /dev/stdin + else + /usr/bin/java -Xmx16g -jar /opt/picard/picard.jar MarkDuplicates I=$1 O=/dev/stdout ASSUME_SORT_ORDER=$5 METRICS_FILE=$4 QUIET=true COMPRESSION_LEVEL=0 VALIDATION_STRINGENCY=LENIENT | /usr/bin/sambamba sort -t $2 -m 18G -o $3 /dev/stdin + fi +arguments: + - position: 2 + valueFrom: "$(runtime.cores)" + - position: 4 + valueFrom: "$(inputs.bam.nameroot).mark_dups_metrics.txt" +inputs: + bam: + type: File + inputBinding: + position: 1 + input_sort_order: + type: string + default: "queryname" + inputBinding: + position: 5 + output_name: + type: string? + default: 'MarkedSorted.bam' + inputBinding: + position: 3 + +outputs: + sorted_bam: + type: File + outputBinding: + glob: $(inputs.output_name) + secondaryFiles: [.bai] + metrics_file: + type: File + outputBinding: + glob: "$(inputs.bam.nameroot).mark_dups_metrics.txt" diff --git a/janis_core/tests/test_ingestion_cwl.py b/janis_core/tests/test_ingestion_cwl.py index 27cf07d82..dac7d2aba 100644 --- a/janis_core/tests/test_ingestion_cwl.py +++ b/janis_core/tests/test_ingestion_cwl.py @@ -106,13 +106,26 @@ def test_tool_bwa_index(self): clt, cwl_utils = _load_cwl_doc(filepath) parser = CLTParser(cwl_utils=cwl_utils, clt=clt, entity=clt) tool = parser.parse() - msgs = load_loglines() + msgs = load_loglines(tool_uuid=tool.uuid) + + self.assertEqual(len(msgs), 0) self.assertEqual(tool.id(), 'BWA_Index') + self.assertListEqual(tool._base_command, ['bwa', 'index']) self.assertEqual(len(tool._inputs), 3) self.assertEqual(len(tool._arguments), 2) + self.assertEqual(len(tool._outputs), 1) def test_tool_bwa_mem(self): - pass + filepath = f'{CWL_TESTDATA_DIR}/tools/BWA-Mem.cwl' + clt, cwl_utils = _load_cwl_doc(filepath) + parser = CLTParser(cwl_utils=cwl_utils, clt=clt, entity=clt) + tool = parser.parse() + + self.assertEqual(tool.id(), 'BWA_Mem') + self.assertListEqual(tool._base_command, ['bwa', 'mem']) + self.assertEqual(len(tool._inputs), 20) + self.assertEqual(len(tool._arguments), 1) + self.assertEqual(len(tool._outputs), 1) class TestExtendedFunctionality(unittest.TestCase): @@ -170,6 +183,36 @@ class TestRequirementsParsing(unittest.TestCase): def setUp(self) -> None: _do_setup() + def test_hints(self): + filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/bedgraph_sort.cwl' + clt, cwl_utils = _load_cwl_doc(filepath) + parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, tool_uuid='test_hints') + actual_reqs = parser.parse() + expected_reqs = { + 'container': 'docker.io/debian:stable-slim', + 'memory': 15000, + 'cpus': 1, + 'time': None, + 'disk': None, + } + for k, v in expected_reqs.items(): + self.assertEqual(actual_reqs[k], v) + + def test_requirements(self): + filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/mark_duplicates_and_sort.cwl' + clt, cwl_utils = _load_cwl_doc(filepath) + parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, tool_uuid='test_requirements') + actual_reqs = parser.parse() + expected_reqs = { + 'container': 'mgibio/mark_duplicates-cwl:1.0.1', + 'memory': 40000, + 'cpus': 8, + 'time': None, + 'disk': None, + } + for k, v in expected_reqs.items(): + self.assertEqual(actual_reqs[k], v) + def test_expression_lib(self): filepath = f'{CWL_TESTDATA_DIR}/tools/requirements/cellranger-aggr.cwl' clt, cwl_utils = _load_cwl_doc(filepath) @@ -612,7 +655,6 @@ def test_step_input(self): - class TestIdentifiers(unittest.TestCase): def setUp(self) -> None: diff --git a/janis_core/tests/test_ingestion_galaxy.py b/janis_core/tests/test_ingestion_galaxy.py index 2c87d9086..a91990e35 100644 --- a/janis_core/tests/test_ingestion_galaxy.py +++ b/janis_core/tests/test_ingestion_galaxy.py @@ -1,10 +1,9 @@ -from typing import Any, Optional +from typing import Any import unittest import os import json -import xml.etree.ElementTree as et -import pytest +import pytest from janis_core.ingestion.main import ingest_galaxy @@ -12,7 +11,6 @@ from janis_core.ingestion.galaxy import runtime from janis_core.ingestion.galaxy.gxworkflow import load_tool_state from janis_core.ingestion.galaxy.gxtool.parsing import load_xmltool -from janis_core.ingestion.galaxy.gxtool.parsing.nogx.main import load_xmltool_new from janis_core.ingestion.galaxy.gxtool.text.simplification.simplify import simplify_cmd from janis_core.ingestion.galaxy.gxworkflow.parsing.tool_step.metadata import parse_step_metadata @@ -142,7 +140,7 @@ def test_fastqc(self) -> None: @unittest.skip('requires moving to new parser') def test_fastqc2(self) -> None: filepath = f'{GALAXY_TESTTOOL_PATH}/fastqc-5ec9f6bceaee/rgFastQC.xml' - tool = load_xmltool_new(filepath) + # tool = load_xmltool_new(filepath) print() @unittest.skip('requires moving to new parser') diff --git a/janis_core/translations/nextflow/unwrap.py b/janis_core/translations/nextflow/unwrap.py index 904fc56d3..cc162460b 100644 --- a/janis_core/translations/nextflow/unwrap.py +++ b/janis_core/translations/nextflow/unwrap.py @@ -177,12 +177,12 @@ def __init__( list: self.unwrap_list, # logical operators - IsDefined: self.unwrap_is_defined_operator, - If: self.unwrap_if_operator, - AssertNotNull: self.unwrap_assert_not_null_operator, - FloorOperator: self.unwrap_floor_operator, - CeilOperator: self.unwrap_ceil_operator, - RoundOperator: self.unwrap_round_operator, + # IsDefined: self.unwrap_is_defined_operator, + # If: self.unwrap_if_operator, + # AssertNotNull: self.unwrap_assert_not_null_operator, + # FloorOperator: self.unwrap_floor_operator, + # CeilOperator: self.unwrap_ceil_operator, + # RoundOperator: self.unwrap_round_operator, # operator operators IndexOperator: self.unwrap_index_operator, @@ -192,21 +192,22 @@ def __init__( AsFloatOperator: self.unwrap_as_float_operator, # standard operators - ReadContents: self.unwrap_read_contents_operator, - ReadJsonOperator: self.unwrap_read_json_operator, - JoinOperator: self.unwrap_join_operator, - BasenameOperator: self.unwrap_basename_operator, - NamerootOperator: self.unwrap_nameroot_operator, - NameextOperator: self.unwrap_nameext_operator, - TransposeOperator: self.unwrap_transpose_operator, - LengthOperator: self.unwrap_length_operator, - RangeOperator: self.unwrap_range_operator, - FlattenOperator: self.unwrap_flatten_operator, - ApplyPrefixOperator: self.unwrap_apply_prefix_operator, - FileSizeOperator: self.unwrap_file_size_operator, - FirstOperator: self.unwrap_first_operator, - FilterNullOperator: self.unwrap_filter_null_operator, - ReplaceOperator: self.unwrap_replace_operator, + # TODO kill these + # ReadContents: self.unwrap_read_contents_operator, + # ReadJsonOperator: self.unwrap_read_json_operator, + # JoinOperator: self.unwrap_join_operator, + # BasenameOperator: self.unwrap_basename_operator, + # NamerootOperator: self.unwrap_nameroot_operator, + # NameextOperator: self.unwrap_nameext_operator, + # TransposeOperator: self.unwrap_transpose_operator, + # LengthOperator: self.unwrap_length_operator, + # RangeOperator: self.unwrap_range_operator, + # FlattenOperator: self.unwrap_flatten_operator, + # ApplyPrefixOperator: self.unwrap_apply_prefix_operator, + # FileSizeOperator: self.unwrap_file_size_operator, + # FirstOperator: self.unwrap_first_operator, + # FilterNullOperator: self.unwrap_filter_null_operator, + # ReplaceOperator: self.unwrap_replace_operator, # selectors AliasSelector: self.unwrap_alias_selector, @@ -288,6 +289,7 @@ def unwrap_entity(self, entity: Any) -> Any: This is needed to properly enclose curly braces. For example: Janis: InputSelector("read", remove_file_extension=True) + "_fastqc.zip" + Janis: AddOperator(InputSelector()) -> Nextflow: "${read.simpleName}_fastqc.zip" @@ -312,6 +314,9 @@ def update_operator_stack(self, val: Any, life_cycle: str='start') -> None: ### HELPERS ### def should_apply_curly_braces(self, val: Any) -> bool: + # TODO here address curly brace shit. + # raise NotImplementedError + # return False if self.in_shell_script: if len(self.operator_stack) == 1: if self.operator_stack[0] == val.__class__.__name__: @@ -334,7 +339,7 @@ def should_quote(self, val: Any, expr: Any) -> bool: return True if self.quote_strings == False: return False - # string within curly braces + # string within curly braces # TODO test if len(self.operator_stack) > 0: return True # stringformatter within shell script diff --git a/janis_core/translations/wdl/main.py b/janis_core/translations/wdl/main.py index 1fbed442d..c1aa654df 100644 --- a/janis_core/translations/wdl/main.py +++ b/janis_core/translations/wdl/main.py @@ -970,14 +970,15 @@ def add_runtimefield_overrides_for_wdl(cls, runtime_block, tool, inmap): string_environment=False, tool=tool, id="runtimestats", - ) - runtime_block.kwargs["duration"] = cls.unwrap_expression( - TimeSelector(), - inmap, - string_environment=False, - tool=tool, - id="runtimestats", - ) + ) + # Note: commented this out because seems runtime.duration no longer supported in WDL + # runtime_block.kwargs["duration"] = cls.unwrap_expression( + # TimeSelector(), + # inmap, + # string_environment=False, + # tool=tool, + # id="runtimestats", + # ) runtime_block.kwargs["disks"] = cls.unwrap_expression( StringFormatter("local-disk {value} SSD", value=DiskSelector()), inmap, @@ -2154,7 +2155,8 @@ def build_resource_override_maps_for_tool(tool, prefix=None) -> List[wdl.Input]: wdl.Input(wdl.WdlType.parse_type("Int?"), prefix + "runtime_memory"), wdl.Input(wdl.WdlType.parse_type("Int?"), prefix + "runtime_cpu"), wdl.Input(wdl.WdlType.parse_type("Int?"), prefix + "runtime_disk"), - wdl.Input(wdl.WdlType.parse_type("Int?"), prefix + "runtime_seconds"), + # Note: commented this out because seems runtime.duration no longer supported in WDL + # wdl.Input(wdl.WdlType.parse_type("Int?"), prefix + "runtime_seconds"), ] ) else: diff --git a/notes.txt b/notes.txt index d1e2f151f..d816ee5af 100644 --- a/notes.txt +++ b/notes.txt @@ -1,6 +1,69 @@ +--------------- +--- GENERAL --- +--------------- + +CHANGES [TEST THESE]: +- WDL runtime duration removed + +TODO +- messages -> output file +- adapt translation units for new cwl parsed expressions +- address bugs +- exceptions + - samtools index (cwl -> wdl) + - bwa index (cwl -> wdl) + - cutadapt (cwl -> wdl) + +------------------ +--- CWL INGEST --- +------------------ + +misc +- can everything be both an object and a dict???? or is this just hints? just hints I think? + +test suite +- edam formats + +--------------------- +--- NXF TRANSLATE --- +--------------------- + +CWL -> NXF boofed +- bwa index: + whenever there is a Janis IfOperator the operator should be moved to prescript. See below. + script: + """ + ${(${(${index_name != None}) ? index_name : sequences.simpleName})} \ + """ + +misc +- Janis BasenameOperator -> Nextflow updated to no mods. This isn't doing normal janis unwrapping so didnt work. +- curly brace unwrapping boofed + +--------------------- +--- WDL TRANSLATE --- +--------------------- +misc +- string + int interpolation? +- inputs which are secondary files getting split into individual inputs (may be fine to leave as-is) +- remove runtime_seconds from inputs + +CWL -> WDL failed +- bwa index +- cutadapt paired + +CWL -> WDL Boofed +- samtools index: wtf is this? + """ + set -e + cat <<EOT >> 'inputs.bam_sorted' + ~{bam_sorted} + EOT + samtools index \ + """ ---------------- diff --git a/pyproject.toml b/pyproject.toml index 4aafa978b..00d92b2f1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -46,6 +46,7 @@ dependencies = [ "regex", "tabulate", "path", + "packaging==21.3", "galaxy-app==22.1.1", "galaxy-auth==22.1.1", "galaxy-config==22.1.1", @@ -61,7 +62,6 @@ dependencies = [ "galaxy-web-framework==22.1.1", "galaxy-web-stack==22.1.1", "pulsar-galaxy-lib==0.14.13", - "packaging==21.3", "miniwdl", "biopython==1.79", "filelock==3.7.0", diff --git a/requirements/base.txt b/requirements/base.txt index f03d087ed..d2d29b7fe 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -4,6 +4,7 @@ ruamel.yaml >= 0.12.4, <= 0.16.5 regex tabulate path +packaging==21.3 galaxy-app==22.1.1 galaxy-auth==22.1.1 galaxy-config==22.1.1 @@ -19,7 +20,6 @@ galaxy-util==22.1.1 galaxy-web-framework==22.1.1 galaxy-web-stack==22.1.1 pulsar-galaxy-lib==0.14.13 -packaging==21.3 miniwdl biopython==1.79 filelock==3.7.0 From 83c9cfeef758025e4233d559bcee6d265ad4d3f8 Mon Sep 17 00:00:00 2001 From: Grace Hall <graceavahall@gmail.com> Date: Sun, 5 Nov 2023 21:09:52 +1100 Subject: [PATCH 15/32] nextflow unwrap halfway done for new approach --- janis_core/operators/logical.py | 15 +- janis_core/operators/operator.py | 7 +- janis_core/operators/standard.py | 2 +- janis_core/tests/test_translation_nextflow.py | 166 ++++- janis_core/tests/testworkflows/unwrap.py | 505 ++++++++++++-- .../process/outputs/factory_cmdtool.py | 2 - .../generate/process/script/common.py | 8 +- .../nextflow/generate/process/script/main.py | 1 - .../generate/process/script/prescript.py | 51 +- .../generate/process/script/script.py | 2 + .../nextflow/generate/workflow/call.py | 1 - .../nextflow/generate/workflow/main.py | 1 - janis_core/translations/nextflow/unwrap.py | 615 +++++++++--------- notes.txt | 7 + 14 files changed, 986 insertions(+), 397 deletions(-) diff --git a/janis_core/operators/logical.py b/janis_core/operators/logical.py index 204d3deda..e99d28a30 100644 --- a/janis_core/operators/logical.py +++ b/janis_core/operators/logical.py @@ -694,9 +694,8 @@ def to_cwl(self, unwrap_operator, *args): return f"Math.floor({arg})" def to_nextflow(self, unwrap_operator, *args): - raise NotImplementedError( - f"There is no Nextflow translation for {self.__class__.__name__}" - ) + arg = unwrap_operator(self.args[0]) + return f"Math.floor({arg})" def evaluate(self, inputs): from math import floor @@ -736,9 +735,8 @@ def to_cwl(self, unwrap_operator, *args): return f"Math.ceil({arg})" def to_nextflow(self, unwrap_operator, *args): - raise NotImplementedError( - f"There is no Nextflow translation for {self.__class__.__name__}" - ) + arg = unwrap_operator(self.args[0]) + return f"Math.ceil({arg})" def evaluate(self, inputs): from math import ceil @@ -778,9 +776,8 @@ def to_cwl(self, unwrap_operator, *args): return f"Math.round({arg})" def to_nextflow(self, unwrap_operator, *args): - raise NotImplementedError( - f"There is no Nextflow translation for {self.__class__.__name__}" - ) + arg = unwrap_operator(self.args[0]) + return f"Math.round({arg})" def evaluate(self, inputs): result = self.evaluate_arg(self.args[0], inputs) diff --git a/janis_core/operators/operator.py b/janis_core/operators/operator.py index 84591a0f1..6d5d52a97 100644 --- a/janis_core/operators/operator.py +++ b/janis_core/operators/operator.py @@ -217,6 +217,11 @@ def wdl_symbol(): @abstractmethod def cwl_symbol(): pass + + @staticmethod + @abstractmethod + def nextflow_symbol(): + pass @staticmethod @abstractmethod @@ -241,7 +246,7 @@ def to_cwl(self, unwrap_operator, *args): return f"{self.cwl_symbol()}({unwrap_operator(*args)})" def to_nextflow(self, unwrap_operator, *args): - return f"{self.to_nextflow()}({unwrap_operator(*args)})" + return f"{self.nextflow_symbol()}({unwrap_operator(*args)})" def to_python(self, unwrap_operator, *args): return f"{self.symbol()}({unwrap_operator(*args)})" diff --git a/janis_core/operators/standard.py b/janis_core/operators/standard.py index 2839dbd80..97d7b9876 100644 --- a/janis_core/operators/standard.py +++ b/janis_core/operators/standard.py @@ -343,7 +343,7 @@ def to_cwl(self, unwrap_operator, *args): def to_nextflow(self, unwrap_operator, *args): file_obj = unwrap_operator(args[0]) - return f"{file_obj}.baseName" + return f"{file_obj}.simpleName" def argtypes(self): return [UnionType(File, Directory)] diff --git a/janis_core/tests/test_translation_nextflow.py b/janis_core/tests/test_translation_nextflow.py index 4dd866a5e..37eaa0826 100644 --- a/janis_core/tests/test_translation_nextflow.py +++ b/janis_core/tests/test_translation_nextflow.py @@ -3652,6 +3652,148 @@ def test_with_expression(self): +class TestUnwrap(unittest.TestCase): + + def setUp(self) -> None: + reset_globals() + wf = UnwrapTestWF() + self.wf = do_preprocessing_workflow(wf) + + def test_selectors(self) -> None: + step = self.wf.step_nodes["selectors_step"] + process = nextflow.generate.process.generate_process(step.tool) + process_text = process.get_string() + prescript = simplify_prescript(process_text) + script = simplify_script(process_text) + print(process_text) + + # prescript + self.assertIn('def target_filename = target_filename != params.NULL_VALUE ? target_filename : "${in_file.baseName}.fastq.gz"', prescript) + + # script + self.assertIn('--targetFilename ${target_filename}', script) + self.assertIn('--inFile ${in_file}', script) + + def test_standard(self) -> None: + step = self.wf.step_nodes["standard_step"] + process = nextflow.generate.process.generate_process(step.tool) + process_text = process.get_string() + print(process_text) + prescript = simplify_prescript(process_text) + script = simplify_script(process_text) + + # prescript + self.assertIn('def in_bam_bai_arr = get_primary_files(in_bam_bai_arr_flat, 2)', prescript) + self.assertIn("def in_bam_bai_arr_joined = in_bam_bai_arr.join(' ')", prescript) + self.assertIn('def in_bam_bai = in_bam_bai[0]', prescript) + self.assertIn('def in_file_arr_joined = in_file_arr.join(\' \')', prescript) + self.assertIn('def in_int_opt = in_int_opt != params.NULL_VALUE ? in_int_opt : ""', prescript) + self.assertIn('def in_str_opt = in_str_opt != params.NULL_VALUE ? in_str_opt : ""', prescript) + + # script + self.assertIn('--BasenameOperator ${in_file}', script) + self.assertIn('--DirnameOperator ${in_file.parent}', script) + self.assertIn('--NamerootOperator ${in_file.simpleName}', script) + self.assertIn('--NameextOperator ${in_file.extension}', script) + self.assertIn('--FileSizeOperator ${(in_file.size / 1048576)}', script) + self.assertIn('--ReadContents ${in_file.text}', script) + self.assertIn('--ReadJsonOperator ${jsonSlurper.parseText(file("${task.workDir}/${in_file}").text)}', script) + self.assertIn('--RangeOperator ${0..in_int}', script) + self.assertIn('--SplitOperator ${in_str.split(" ")}', script) + self.assertIn('--ReplaceOperator ${in_str.replaceAll("/[a-z]/", "/[A-Z]/")}', script) + self.assertIn('--LengthOperator ${in_file_arr.size()}', script) + self.assertIn('--FlattenOperator ${in_file_arr.flatten()}', script) + self.assertIn('--SliceOperator ${in_file_arr[0..-2]}', script) + self.assertIn('--IndexOperator ${in_file_arr[1]}', script) + self.assertIn('--IndexOperator ${in_bam_bai_arr[1]}', script) + self.assertIn('--ApplyPrefixOperator ${in_file_arr.map{it -> "--prefix" + it}}', script) + self.assertIn('--FirstOperator ${in_file_arr.first()}', script) + self.assertIn('--FilterNullOperator ${in_file_arr.filter{it -> it != null}}', script) + self.assertIn('--FilterNullOperatorLiteral ${[1, null, 3, 4, null].filter{it -> it != null}}', script) + self.assertIn('--JoinOperator ${in_file_arr.join(",")}', script) + self.assertIn('--TransposeOperator ${in_file_arr.transpose()}', script) + + def test_logical(self) -> None: + step = self.wf.step_nodes["logical_step"] + process = nextflow.generate.process.generate_process(step.tool) + process_text = process.get_string() + print(process_text) + prescript = simplify_prescript(process_text) + script = simplify_script(process_text) + + # prescript + self.assertIn("def in_bam_bai_arr = get_primary_files(in_bam_bai_arr_flat, 2)", prescript) + self.assertIn("def in_bam_bai_arr_joined = in_bam_bai_arr.join(' ')", prescript) + self.assertIn("def in_bam_bai = in_bam_bai[0]", prescript) + self.assertIn("def in_file_arr_joined = in_file_arr.join(' ')", prescript) + self.assertIn("def in_file_opt = in_file_opt.simpleName != params.NULL_VALUE ? in_file_opt : \"\"", prescript) + self.assertIn("def in_float_opt = in_float_opt != params.NULL_VALUE ? in_float_opt : \"\"", prescript) + self.assertIn("def in_int_opt = in_int_opt != params.NULL_VALUE ? in_int_opt : \"\"", prescript) + self.assertIn("def in_str_opt = in_str_opt != params.NULL_VALUE ? in_str_opt : \"\"", prescript) + + # script + self.assertIn("--AssertNotNull ${assert in_file_opt != null}", script) + self.assertIn("--IsDefined ${in_file_opt}", script) + self.assertIn("--NotOperator ${!(in_file_opt)}", script) + self.assertIn("--FloorOperator ${Math.floor(in_float)}", script) + self.assertIn("--CeilOperator ${Math.ceil(in_float)}", script) + self.assertIn("--RoundOperator ${Math.round(in_float)}", script) + self.assertIn("--GroupOperator ${(5 + 10)}", script) + self.assertIn("--AndOperator ${in_file_opt && in_str_opt}", script) + self.assertIn("--OrOperator ${in_file_opt || in_str_opt}", script) + self.assertIn("--EqualityOperator ${in_str_opt == \"hello!\"}", script) + self.assertIn("--InequalityOperator ${in_str_opt != \"hello!\"}", script) + self.assertIn("--GtOperator ${in_int > 0}", script) + self.assertIn("--GteOperator ${in_int >= 0}", script) + self.assertIn("--LtOperator ${in_int < 0}", script) + self.assertIn("--LteOperator ${in_int <= 0}", script) + self.assertIn("--AddOperator ${9 + 10}", script) + self.assertIn("--SubtractOperator ${9 - 10}", script) + self.assertIn("--MultiplyOperator ${9 * 10}", script) + self.assertIn("--DivideOperator ${9 / 10}", script) + + # not script + self.assertNotIn("--If ${in_file_opt ? in_file_opt : \"\"}", script) + + def test_complex(self) -> None: + step = self.wf.step_nodes["complex_step"] + process = nextflow.generate.process.generate_process(step.tool) + process_text = process.get_string() + print(process_text) + prescript = simplify_prescript(process_text) + script = simplify_script(process_text) + + # prescript + self.assertIn("def in_bam_bai_arr = get_primary_files(in_bam_bai_arr_flat, 2)", prescript) + self.assertIn("def in_bam_bai_arr_joined = in_bam_bai_arr.join(' ')", prescript) + self.assertIn("def in_bam_bai = in_bam_bai[0]", prescript) + self.assertIn("def in_file_arr_joined = in_file_arr.join(' ')", prescript) + self.assertIn("def in_file_opt = in_file_opt.simpleName != params.NULL_VALUE ? in_file_opt : \"\"", prescript) + self.assertIn("def in_float_opt = in_float_opt != params.NULL_VALUE ? in_float_opt : \"\"", prescript) + self.assertIn("def in_int_opt = in_int_opt != params.NULL_VALUE ? in_int_opt : \"\"", prescript) + self.assertIn("def in_str_opt = in_str_opt != params.NULL_VALUE ? in_str_opt : \"\"", prescript) + + # script + self.assertIn('--StringFormatter ${in_file}.trimmed${in_file.extension}', script) + self.assertIn('--ArrayMethodChain ${in_file_arr[0].split(".")[0..-1].join(".")}', script) + self.assertIn('--Concat ${"> " + in_str + ".log"}', script) + self.assertIn('--Math ${Math.ceil((in_file.size / 1048576) / (1024 * 1024 * 1024) + 20)}', script) + + def test_process_prescript(self) -> None: + raise NotImplementedError + + def test_process_script(self) -> None: + raise NotImplementedError + + def test_process_output(self) -> None: + raise NotImplementedError + + def test_workflow_input(self) -> None: + raise NotImplementedError + + def test_workflow_output(self) -> None: + raise NotImplementedError + class TestUnwrapProcess(unittest.TestCase): @@ -3666,10 +3808,22 @@ def setUp(self) -> None: self.script = process.script print(process.get_string()) + # PROCESS RELATED + def test_input(self) -> None: + # prescript + # script + self.assertIn("--filenameGen generated.gz", self.script) + + def test_ternary(self) -> None: + # only ever prescript section + self.assertIn("--filenameGen generated.gz", self.script) + + # PROCESS RELATED @unittest.skip('filenames are scuffed') def test_filename_generated(self) -> None: self.assertIn("--filenameGen generated.gz", self.script) + @unittest.skip('filenames are scuffed') def test_filename_reference(self) -> None: self.assertIn("--filenameRef ${in_file.simpleName}.fastq.gz", self.script) @@ -3741,7 +3895,7 @@ def test_input_node_channel(self) -> None: val=node, context='workflow', variable_manager=variable_manager, - quote_strings=True + strquote_override=True ) expected = 'ch_in_file' self.assertEqual(actual, expected) @@ -3757,7 +3911,7 @@ def test_input_node_param(self) -> None: val=node, context='workflow', variable_manager=variable_manager, - quote_strings=True + strquote_override=True ) expected = 'params.in_str' self.assertEqual(actual, expected) @@ -3773,7 +3927,7 @@ def test_step_connection(self) -> None: val=src, context='workflow', variable_manager=variable_manager, - quote_strings=True + strquote_override=True ) expected = 'STP1.out.out' self.assertEqual(actual, expected) @@ -3789,7 +3943,7 @@ def test_alias_selector_wf(self) -> None: val=src, context='workflow', variable_manager=variable_manager, - quote_strings=True + strquote_override=True ) expected = 'STP1.out.out' self.assertEqual(actual, expected) @@ -3806,7 +3960,7 @@ def test_first_operator_wf(self) -> None: val=src, context='workflow', variable_manager=variable_manager, - quote_strings=True + strquote_override=True ) expected = '[params.mystring, GET_STRING.out.out].find{ it != null }' self.assertEqual(actual, expected) @@ -3822,7 +3976,7 @@ def test_index_operator_wf(self) -> None: val=src, context='workflow', variable_manager=variable_manager, - quote_strings=True + strquote_override=True ) expected = 'ch_in_file_arr[0]' self.assertEqual(actual, expected) diff --git a/janis_core/tests/testworkflows/unwrap.py b/janis_core/tests/testworkflows/unwrap.py index 944497802..f253dfcf2 100644 --- a/janis_core/tests/testworkflows/unwrap.py +++ b/janis_core/tests/testworkflows/unwrap.py @@ -6,41 +6,90 @@ CommandTool, ToolInput, ToolArgument, - InputSelector, - FirstOperator, - IndexOperator, + ToolOutput, Workflow ) from janis_core.types import ( Filename, File, String, - Array + Int, + Float, + Array, ) from janis_core.redefinitions.types import BamBai +import janis_core as j -# TODO alias selector - # WORKFLOW class UnwrapTestWF(Workflow): def constructor(self): self.input("inFile", File()) + self.input("inFileOpt", File(optional=True)) self.input("inFileArr", Array(File())) self.input("inBamBai", BamBai()) self.input("inBamBaiArr", Array(BamBai())) self.input("inStr", String()) + self.input("inStrOpt", String(optional=True)) + self.input("inInt", Int()) + self.input("inIntOpt", Int(optional=True)) + self.input("inFloat", Float()) + self.input("inFloatOpt", Float(optional=True)) self.step( - "stp1", - UnwrapTestTool( + "selectors_step", + SelectorTestTool( + inFile=self.inFile, + ) + ) + + self.step( + "standard_step", + StandardTestTool( + inFile=self.selectors_step.out, + inFileArr=self.inFileArr, + inBamBai=self.inBamBai, + inBamBaiArr=self.inBamBaiArr, + inStr=self.inStr, + inStrOpt=self.inStrOpt, + inInt=self.inInt, + inIntOpt=self.inIntOpt, + ) + ) + + self.step( + "logical_step", + LogicalTestTool( inFile=self.inFile, + inFileOpt=self.inFileOpt, inFileArr=self.inFileArr, inBamBai=self.inBamBai, inBamBaiArr=self.inBamBaiArr, inStr=self.inStr, + inStrOpt=self.inStrOpt, + inInt=self.inInt, + inIntOpt=self.inIntOpt, + inFloat=self.inFloat, + inFloatOpt=self.inFloatOpt, + ) + ) + + self.step( + "complex_step", + ComplexOperatorTestTool( + inFile=self.inFile, + inFileOpt=self.inFileOpt, + inFileArr=self.inFileArr, + inBamBai=self.inBamBai, + inBamBaiArr=self.inBamBaiArr, + inStr=self.inStr, + inStrOpt=self.inStrOpt, + inInt=self.inInt, + inIntOpt=self.inIntOpt, + inFloat=self.inFloat, + inFloatOpt=self.inFloatOpt, ) ) @@ -52,9 +101,18 @@ def id(self) -> str: # TOOLS - -class UnwrapTestTool(CommandTool): - +class SelectorTestTool(CommandTool): + """ + TODO + AliasSelector? + ForEachSelector? + ResourceSelector? + MemorySelector? + CpuSelector? + DiskSelector? + TimeSelector ? + """ + def container(self) -> str: return "ubuntu:latest" @@ -65,11 +123,11 @@ def base_command(self) -> Optional[str | list[str]]: return 'cat' def friendly_name(self): - return "TEST: UnwrapTestTool" + return "TEST: SelectorTestTool" def tool(self): - return "UnwrapTestTool" - + return "SelectorTestTool" + def inputs(self): return [ ToolInput( @@ -77,104 +135,413 @@ def inputs(self): File(), ), ToolInput( - "inFileArr", - Array(File()), - ), - ToolInput( - "inBamBai", - BamBai(), - ), - ToolInput( - "inBamBaiArr", - Array(BamBai()), - ), - ToolInput( - "inStr", - String(), - ), - ToolInput( - "filenameGen", - Filename(extension=".gz"), - prefix="--filenameGen", - position=1, - ), - ToolInput( - "filenameRef", + "targetFilename", Filename( - prefix=InputSelector("inFile", remove_file_extension=True), + prefix=j.InputSelector("inFile", remove_file_extension=True), # wtf is this suffix=".fastq", extension=".gz", ), - prefix="--filenameRef", - position=2, + prefix="--targetFilename", + position=1, ), ] def arguments(self): return [ ToolArgument( - InputSelector("inFile"), - prefix="--inputSelectorProcess", + j.InputSelector("inFile"), + prefix="--inFile", + position=2, + ) + ] + + def outputs(self): + return [ + ToolOutput( + "out", + File(), + selector=j.WildcardSelector("*fastq.gz"), + ) + ] + + +class StandardTestTool(CommandTool): + + def container(self) -> str: + return "ubuntu:latest" + + def version(self) -> str: + return "TEST" + + def base_command(self) -> Optional[str | list[str]]: + return 'cat' + + def friendly_name(self): + return "TEST: StandardTestTool" + + def tool(self): + return "StandardTestTool" + + def inputs(self): + return [ + ToolInput("inFile", File()), + ToolInput("inFileArr", Array(File())), + ToolInput("inBamBai", BamBai()), + ToolInput("inBamBaiArr", Array(BamBai())), + ToolInput("inStr", String()), + ToolInput("inStrOpt", String(optional=True)), + ToolInput("inInt", Int()), + ToolInput("inIntOpt", Int(optional=True)), + ] + + def arguments(self): + return [ + # file operators + ToolArgument( + value=j.BasenameOperator(j.InputSelector("inFile")), + prefix="--BasenameOperator", + position=1, + ), + ToolArgument( + value=j.DirnameOperator(j.InputSelector("inFile")), + prefix="--DirnameOperator", + position=2, + ), + ToolArgument( + value=j.NamerootOperator(j.InputSelector("inFile")), + prefix="--NamerootOperator", position=3, ), ToolArgument( - InputSelector("inStr"), - prefix="--inputSelectorParam", + value=j.NameextOperator(j.InputSelector("inFile")), + prefix="--NameextOperator", position=4, ), ToolArgument( - InputSelector("inFileArr"), - prefix="--InputSelectorArray", + value=j.FileSizeOperator(j.InputSelector("inFile")), + prefix="--FileSizeOperator", + position=5, + ), + ToolArgument( + value=j.ReadContents(j.InputSelector("inFile")), + prefix="--ReadContents", + position=6, + ), + ToolArgument( + value=j.ReadJsonOperator(j.InputSelector("inFile")), + prefix="--ReadJsonOperator", + position=7, + ), + + # int operators + ToolArgument( + value=j.RangeOperator(j.InputSelector("inInt")), + prefix="--RangeOperator", position=8, ), + + # string operators + ToolArgument( + value=j.SplitOperator(j.InputSelector("inStr"), ' '), + prefix="--SplitOperator", + position=9, + ), + ToolArgument( + value=j.ReplaceOperator(j.InputSelector("inStr"), '/[a-z]/', '/[A-Z]/'), + prefix="--ReplaceOperator", + position=10, + ), + + # array operators + ToolArgument( + value=j.TransposeOperator(j.InputSelector("inFileArr")), + prefix="--TransposeOperator", + position=11, + ), + ToolArgument( + value=j.LengthOperator(j.InputSelector("inFileArr")), + prefix="--LengthOperator", + position=12, + ), + ToolArgument( + value=j.SliceOperator(j.InputSelector("inFileArr"), 0, -2), + prefix="--SliceOperator", + position=13, + ), + ToolArgument( + value=j.FlattenOperator(j.InputSelector("inFileArr")), + prefix="--FlattenOperator", + position=13, + ), + ToolArgument( + value=j.IndexOperator(j.InputSelector("inFileArr"), 1), + prefix="--IndexOperator", + position=14, + ), + ToolArgument( + value=j.IndexOperator(j.InputSelector("inBamBaiArr"), 1), + prefix="--IndexOperator", + position=14, + ), ToolArgument( - [1,2,3,4,5], - prefix="--list", + value=j.ApplyPrefixOperator("--prefix", j.InputSelector("inFileArr")), + prefix="--ApplyPrefixOperator", + position=15, + ), + ToolArgument( + value=j.FirstOperator(j.InputSelector("inFileArr")), + prefix="--FirstOperator", + position=16, + ), + ToolArgument( + value=j.FilterNullOperator(j.InputSelector("inFileArr")), + prefix="--FilterNullOperator", + position=17, + ), + ToolArgument( + value=j.FilterNullOperator([1,None,3,4,None]), + prefix="--FilterNullOperatorLiteral", + position=17, + ), + ToolArgument( + value=j.JoinOperator(j.InputSelector("inFileArr"), ','), + prefix="--JoinOperator", + position=18, + ), + ] + + def outputs(self): + return [] + + +class LogicalTestTool(CommandTool): + + def container(self) -> str: + return "ubuntu:latest" + + def version(self) -> str: + return "TEST" + + def base_command(self) -> Optional[str | list[str]]: + return 'cat' + + def friendly_name(self): + return "TEST: LogicalTestTool" + + def tool(self): + return "LogicalTestTool" + + def inputs(self): + return [ + ToolInput("inFile", File()), + ToolInput("inFileOpt", File(optional=True)), + ToolInput("inFileArr", Array(File())), + ToolInput("inBamBai", BamBai()), + ToolInput("inBamBaiArr", Array(BamBai())), + ToolInput("inStr", String()), + ToolInput("inStrOpt", String(optional=True)), + ToolInput("inInt", Int()), + ToolInput("inIntOpt", Int(optional=True)), + ToolInput("inFloat", Float()), + ToolInput("inFloatOpt", Float(optional=True)), + ] + + def arguments(self): + return [ + # single value + ToolArgument( + j.AssertNotNull(j.InputSelector("inFileOpt")), + prefix="--AssertNotNull", + position=1, + ), + ToolArgument( + j.IsDefined(j.InputSelector("inFileOpt")), + prefix="--IsDefined", + position=2, + ), + ToolArgument( + j.NotOperator(j.InputSelector("inFileOpt")), + prefix="--NotOperator", + position=3, + ), + ToolArgument( + j.FloorOperator(j.InputSelector("inFloat")), + prefix="--FloorOperator", + position=4, + ), + ToolArgument( + j.CeilOperator(j.InputSelector("inFloat")), + prefix="--CeilOperator", position=5, - shell_quote=True ), ToolArgument( - InputSelector("inFile") + '.gz', - prefix="--TwoValueOperator", + j.RoundOperator(j.InputSelector("inFloat")), + prefix="--RoundOperator", position=6, ), ToolArgument( - FirstOperator([InputSelector("inStr"), []]), - prefix="--FirstOperator", + j.GroupOperator(j.AddOperator(5, 10)), + prefix="--GroupOperator", position=7, ), + + # two+ value ToolArgument( - IndexOperator(InputSelector("inFileArr"), 0), - prefix="--IndexOperatorArray", + j.If(j.IsDefined(j.InputSelector("inFileOpt")), j.InputSelector("inFileOpt"), ""), + prefix="--If", position=8, ), ToolArgument( - IndexOperator(InputSelector("inBamBai"), 0), - prefix="--IndexOperatorSecondariesBam", + j.AndOperator(j.IsDefined(j.InputSelector("inFileOpt")), j.IsDefined(j.InputSelector("inStrOpt"))), + prefix="--AndOperator", position=9, ), ToolArgument( - IndexOperator(InputSelector("inBamBai"), 1), - prefix="--IndexOperatorSecondariesBai", + j.OrOperator(j.IsDefined(j.InputSelector("inFileOpt")), j.IsDefined(j.InputSelector("inStrOpt"))), + prefix="--OrOperator", position=10, ), ToolArgument( - IndexOperator(InputSelector("inBamBaiArr"), 0), - prefix="--IndexOperatorArraySecondariesBams", + j.EqualityOperator(j.InputSelector("inStrOpt"), "hello!"), + prefix="--EqualityOperator", position=11, ), ToolArgument( - IndexOperator(InputSelector("inBamBaiArr"), 1), - prefix="--IndexOperatorArraySecondariesBais", + j.InequalityOperator(j.InputSelector("inStrOpt"), "hello!"), + prefix="--InequalityOperator", position=12, ), + ToolArgument( + j.GtOperator(j.InputSelector("inInt"), 0), + prefix="--GtOperator", + position=13, + ), + ToolArgument( + j.GteOperator(j.InputSelector("inInt"), 0), + prefix="--GteOperator", + position=14, + ), + ToolArgument( + j.LtOperator(j.InputSelector("inInt"), 0), + prefix="--LtOperator", + position=15, + ), + ToolArgument( + j.LteOperator(j.InputSelector("inInt"), 0), + prefix="--LteOperator", + position=16, + ), + ToolArgument( + j.AddOperator(9, 10), + prefix="--AddOperator", + position=17, + ), + ToolArgument( + j.SubtractOperator(9, 10), + prefix="--SubtractOperator", + position=18, + ), + ToolArgument( + j.MultiplyOperator(9, 10), + prefix="--MultiplyOperator", + position=19, + ), + ToolArgument( + j.DivideOperator(9, 10), + prefix="--DivideOperator", + position=20, + ), ] def outputs(self): return [] - # ToolOutput( - # "out", - # File(), - # selector=WildcardSelector("myfile.txt"), - # ) - # ] + + +class ComplexOperatorTestTool(CommandTool): + + def container(self) -> str: + return "ubuntu:latest" + + def version(self) -> str: + return "TEST" + + def base_command(self) -> Optional[str | list[str]]: + return 'cat' + + def friendly_name(self): + return "TEST: ComplexOperatorTestTool" + + def tool(self): + return "ComplexOperatorTestTool" + + def inputs(self): + return [ + ToolInput("inFile", File()), + ToolInput("inFileOpt", File(optional=True)), + ToolInput("inFileArr", Array(File())), + ToolInput("inBamBai", BamBai()), + ToolInput("inBamBaiArr", Array(BamBai())), + ToolInput("inStr", String()), + ToolInput("inStrOpt", String(optional=True)), + ToolInput("inInt", Int()), + ToolInput("inIntOpt", Int(optional=True)), + ToolInput("inFloat", Float()), + ToolInput("inFloatOpt", Float(optional=True)), + ] + + def arguments(self): + return [ + # $(inputs.reads_1.basename).trimmed$(inputs.reads_1.nameext) + ToolArgument( + value=j.StringFormatter( + format='{token1}.trimmed{token2}', + token1=j.BasenameOperator(j.InputSelector("inFile")), + token2=j.NameextOperator(j.InputSelector("inFile")), + ), + prefix="--StringFormatter", + position=1, + ), + + # $(inputs.molecule_info_h5[0].basename.split('.').slice(0,-1).join('.')) + ToolArgument( + value=j.JoinOperator( + j.SliceOperator( + j.SplitOperator( + j.BasenameOperator(j.IndexOperator(j.InputSelector("inFileArr"), 0)), '.'), + 0, -1), + '.'), + prefix="--ArrayMethodChain", + position=2, + ), + + # $('> ' + inputs.index_base_name + '.log') + ToolArgument( + value=j.AddOperator(j.AddOperator('> ', j.InputSelector("inStr")), '.log'), + prefix="--Concat", + position=3, + ), + + # $(Math.ceil(inputs.target.size/(1024*1024*1024) + 20)) + ToolArgument( + value=j.CeilOperator( + j.AddOperator( + j.DivideOperator( + j.FileSizeOperator(j.InputSelector("inFile")), + j.GroupOperator( + j.MultiplyOperator( + j.MultiplyOperator(1024, 1024), + 1024, + ) + ) + ), + 20), + ), + prefix="--Math", + position=4, + ), + ] + + def outputs(self): + return [] + + diff --git a/janis_core/translations/nextflow/generate/process/outputs/factory_cmdtool.py b/janis_core/translations/nextflow/generate/process/outputs/factory_cmdtool.py index b94c8eb8f..53626f900 100644 --- a/janis_core/translations/nextflow/generate/process/outputs/factory_cmdtool.py +++ b/janis_core/translations/nextflow/generate/process/outputs/factory_cmdtool.py @@ -188,8 +188,6 @@ def unwrap(self, expr: Any): context='process_output', variable_manager=self.variable_manager, tool=self.tool, - in_shell_script=self.add_braces, - quote_strings=self.quote_strings, ) # process output creation methods diff --git a/janis_core/translations/nextflow/generate/process/script/common.py b/janis_core/translations/nextflow/generate/process/script/common.py index 2ade77a83..3682acd6c 100644 --- a/janis_core/translations/nextflow/generate/process/script/common.py +++ b/janis_core/translations/nextflow/generate/process/script/common.py @@ -1,7 +1,7 @@ from typing import Any, Optional -from janis_core import ToolInput, ToolArgument, CommandTool, DataType +from janis_core import ToolInput, ToolArgument, CommandTool, DataType, Selector from ....nfgen_utils import to_groovy from ....unwrap import unwrap_expression @@ -28,13 +28,15 @@ def delim_str(tinput: ToolInput) -> str: def unwrap(val: Any, tool: CommandTool, vmanager: VariableManager, quote_strings: Optional[bool]=None) -> Any: + apply_braces = True if isinstance(val, Selector) else False + inside_braces = True if apply_braces else False return unwrap_expression( val=val, context='process_script', variable_manager=vmanager, tool=tool, - in_shell_script=True, - quote_strings=quote_strings + apply_braces=apply_braces, + inside_braces=inside_braces, ) def eval_cmdline_targ( diff --git a/janis_core/translations/nextflow/generate/process/script/main.py b/janis_core/translations/nextflow/generate/process/script/main.py index e537c9bef..704041587 100644 --- a/janis_core/translations/nextflow/generate/process/script/main.py +++ b/janis_core/translations/nextflow/generate/process/script/main.py @@ -102,7 +102,6 @@ def handle_cmdtool_directories(self) -> None: context='process_script', variable_manager=self.vmanager, tool=self.tool, - in_shell_script=True, ) line = f"mkdir -p '{unwrapped_dir}';" self.script.append(line) diff --git a/janis_core/translations/nextflow/generate/process/script/prescript.py b/janis_core/translations/nextflow/generate/process/script/prescript.py index a013cb514..a944d1594 100644 --- a/janis_core/translations/nextflow/generate/process/script/prescript.py +++ b/janis_core/translations/nextflow/generate/process/script/prescript.py @@ -3,7 +3,7 @@ from typing import Any from abc import ABC, abstractmethod -from janis_core import ToolInput, CommandTool, DataType +from janis_core import ToolInput, CommandTool, DataType, Filename, Selector, StringFormatter from janis_core import translation_utils as utils from janis_core.translation_utils import DTypeType @@ -479,14 +479,47 @@ def format(self) -> None: self.prescript.append(line) def default_str(self, apply_prefix: bool=False) -> str: - expr = unwrap_expression( - val=self.dtype, - context='process_output', - variable_manager=self.vmanager, - tool=self.tool, - in_shell_script=True, - quote_strings=False - ) + val: Filename = self.dtype # type: ignore + + if any([isinstance(x, Selector) for x in [val.prefix, val.suffix, val.extension]]): + kwargs = {} + fmt = '' + if val.prefix is not None: + if isinstance(val.prefix, str): + fmt += f'{val.prefix}' + else: + fmt += '{prefix}' + kwargs['prefix']=val.prefix + if val.suffix is not None: + if isinstance(val.suffix, str): + fmt += f'{val.suffix}' + else: + fmt += '{suffix}' + kwargs['suffix']=val.suffix + if val.extension is not None: + if isinstance(val.extension, str): + fmt += f'{val.extension}' + else: + fmt += '{extension}' + kwargs['extension']=val.extension + + + val = StringFormatter(fmt, **kwargs) + + apply_braces = False + inside_braces = False + expr = unwrap_expression( + val=val, + context='process_prescript', + variable_manager=self.vmanager, + tool=self.tool, + apply_braces=apply_braces, + inside_braces=inside_braces, + ) + + else: + expr = val.generated_filename() + if not expr.startswith('"') and not expr.endswith('"'): expr = f'"{expr}"' if apply_prefix: diff --git a/janis_core/translations/nextflow/generate/process/script/script.py b/janis_core/translations/nextflow/generate/process/script/script.py index 304be1c89..773353013 100644 --- a/janis_core/translations/nextflow/generate/process/script/script.py +++ b/janis_core/translations/nextflow/generate/process/script/script.py @@ -95,6 +95,8 @@ class ScriptFormatter(ABC): def format(self) -> list[str]: ... + + ### CMDLINE INPUT REFERENCE ### class InputReferenceFormatter: diff --git a/janis_core/translations/nextflow/generate/workflow/call.py b/janis_core/translations/nextflow/generate/workflow/call.py index 4f35b18c7..22567d9b3 100644 --- a/janis_core/translations/nextflow/generate/workflow/call.py +++ b/janis_core/translations/nextflow/generate/workflow/call.py @@ -224,7 +224,6 @@ def generate_regular(self) -> str: val=self.src, context='workflow', variable_manager=self.vmanager, - quote_strings=True ) if isinstance(arg, list): diff --git a/janis_core/translations/nextflow/generate/workflow/main.py b/janis_core/translations/nextflow/generate/workflow/main.py index 406e48e26..49d852166 100644 --- a/janis_core/translations/nextflow/generate/workflow/main.py +++ b/janis_core/translations/nextflow/generate/workflow/main.py @@ -221,7 +221,6 @@ def emit_block(self) -> list[NFWorkflowEmit]: val=out.source, context='workflow', variable_manager=self.vmanager, - in_shell_script=True ) emit_item = NFWorkflowEmit(outname, expression) emit.append(emit_item) diff --git a/janis_core/translations/nextflow/unwrap.py b/janis_core/translations/nextflow/unwrap.py index cc162460b..c838f015e 100644 --- a/janis_core/translations/nextflow/unwrap.py +++ b/janis_core/translations/nextflow/unwrap.py @@ -5,6 +5,8 @@ # if TYPE_CHECKING: # from .parsing.process.VariableManager import VariableManager +from enum import Enum + from .variables import VariableManager from .variables import VariableType from .variables import Variable @@ -17,7 +19,9 @@ from janis_core import ( CommandTool, ToolInput, - Operator + Operator, + ReadJsonOperator, + SplitOperator ) from janis_core.graph.steptaginput import Edge, StepTagInput from janis_core.operators.operator import IndexOperator @@ -29,31 +33,31 @@ DataType ) -from janis_core.operators.logical import ( - IsDefined, - If, - AssertNotNull, - FloorOperator, - CeilOperator, - RoundOperator -) -from janis_core.operators.standard import ( - ReadContents, - ReadJsonOperator, - JoinOperator, - BasenameOperator, - NamerootOperator, - NameextOperator, - TransposeOperator, - LengthOperator, - RangeOperator, - FlattenOperator, - ApplyPrefixOperator, - FileSizeOperator, - FirstOperator, - FilterNullOperator, - ReplaceOperator -) +# from janis_core.operators.logical import ( +# IsDefined, +# If, +# AssertNotNull, +# FloorOperator, +# CeilOperator, +# RoundOperator +# ) +# from janis_core.operators.standard import ( +# ReadContents, +# ReadJsonOperator, +# JoinOperator, +# BasenameOperator, +# NamerootOperator, +# NameextOperator, +# TransposeOperator, +# LengthOperator, +# RangeOperator, +# FlattenOperator, +# ApplyPrefixOperator, +# FileSizeOperator, +# FirstOperator, +# FilterNullOperator, +# ReplaceOperator +# ) from janis_core.operators.operator import ( IndexOperator, AsStringOperator, @@ -100,33 +104,38 @@ def unwrap_expression( val: Any, - # scope: Scope, - context: str='general', + context: str, variable_manager: Optional[VariableManager]=None, tool: Optional[CommandTool]=None, + apply_braces: bool=False, + inside_braces: bool=False, + strquote_override: Optional[bool]=None, + scatter_target: bool=False, scatter_method: Optional[ScatterMethod]=None, - - in_shell_script: bool=False, - quote_strings: Optional[bool]=None, ) -> Any: + context_e = UnwrapContext(context) unwrapper = Unwrapper( - # scope=scope, - context=context, + context_e=context_e, variable_manager=variable_manager, tool=tool, - + apply_braces=apply_braces, + inside_braces=inside_braces, + strquote_override=strquote_override, scatter_target=scatter_target, scatter_method=scatter_method, - - in_shell_script=in_shell_script, - quote_strings=quote_strings, ) return unwrapper.unwrap(val) +class UnwrapContext(Enum): + PROCESS_PRESCRIPT = 'process_prescript' + PROCESS_SCRIPT = 'process_script' + PROCESS_OUTPUT = 'process_output' + WORKFLOW = 'workflow' + class Unwrapper: """ @@ -134,40 +143,39 @@ class Unwrapper: """ def __init__( self, - # scope: Scope, - context: str, + context_e: UnwrapContext, variable_manager: Optional[VariableManager], tool: Optional[CommandTool], - + apply_braces: bool, + inside_braces: bool, + strquote_override: Optional[bool], scatter_target: bool, scatter_method: Optional[ScatterMethod], - - in_shell_script: bool, - quote_strings: Optional[bool], ) -> None: - # self.scope = scope - self.context = context + self.context_e = context_e self.vmanager = variable_manager self.tool = tool + self.apply_braces = apply_braces + self.inside_braces = inside_braces + self.strquote_override = strquote_override self.scatter_target = scatter_target self.scatter_method = scatter_method - self.quote_strings = quote_strings - self.in_shell_script = in_shell_script - - self.operator_stack: list[str] = [] - self.operator_stack_ignore: list[Type[Any]] = [ - WildcardSelector, - AliasSelector, - InputNodeSelector, - StepOutputSelector, - StringFormatter, - MemorySelector, - CpuSelector, - DiskSelector, - TimeSelector, - ] - - self.func_switchboard = { + + # self.operator_stack: list[str] = [] + # self.operator_stack_ignore: list[Type[Any]] = [ + # WildcardSelector, + # AliasSelector, + # InputNodeSelector, + # StepOutputSelector, + # StringFormatter, + # MemorySelector, + # CpuSelector, + # DiskSelector, + # TimeSelector, + # ] + + + self.unwrap_overrides = { # primitives NoneType: self.unwrap_null, str: self.unwrap_str, @@ -176,6 +184,32 @@ def __init__( float: self.unwrap_float, list: self.unwrap_list, + # operator operators + IndexOperator: self.unwrap_index_operator, + AsStringOperator: self.unwrap_as_string_operator, + AsBoolOperator: self.unwrap_as_bool_operator, + AsIntOperator: self.unwrap_as_int_operator, + AsFloatOperator: self.unwrap_as_float_operator, + ReadJsonOperator: self.unwrap_read_json_operator, + + # selectors + AliasSelector: self.unwrap_alias_selector, + InputNodeSelector: self.unwrap_input_node_selector, + WildcardSelector: self.unwrap_wildcard_selector, + InputSelector: self.unwrap_input_selector, + StepOutputSelector: self.unwrap_step_output_selector, + MemorySelector: self.unwrap_memory_selector, + CpuSelector: self.unwrap_cpu_selector, + DiskSelector: self.unwrap_disk_selector, + TimeSelector: self.unwrap_time_selector, + + # misc + StepTagInput: self.unwrap_step_tag_input, + Edge: self.unwrap_edge, + StringFormatter: self.unwrap_string_formatter, + Filename: self.unwrap_filename, + InputNode: self.unwrap_input_node, + # logical operators # IsDefined: self.unwrap_is_defined_operator, # If: self.unwrap_if_operator, @@ -184,17 +218,9 @@ def __init__( # CeilOperator: self.unwrap_ceil_operator, # RoundOperator: self.unwrap_round_operator, - # operator operators - IndexOperator: self.unwrap_index_operator, - AsStringOperator: self.unwrap_as_string_operator, - AsBoolOperator: self.unwrap_as_bool_operator, - AsIntOperator: self.unwrap_as_int_operator, - AsFloatOperator: self.unwrap_as_float_operator, - # standard operators # TODO kill these # ReadContents: self.unwrap_read_contents_operator, - # ReadJsonOperator: self.unwrap_read_json_operator, # JoinOperator: self.unwrap_join_operator, # BasenameOperator: self.unwrap_basename_operator, # NamerootOperator: self.unwrap_nameroot_operator, @@ -209,31 +235,11 @@ def __init__( # FilterNullOperator: self.unwrap_filter_null_operator, # ReplaceOperator: self.unwrap_replace_operator, - # selectors - AliasSelector: self.unwrap_alias_selector, - InputNodeSelector: self.unwrap_input_node_selector, - WildcardSelector: self.unwrap_wildcard_selector, - InputSelector: self.unwrap_input_selector, - StepOutputSelector: self.unwrap_step_output_selector, - MemorySelector: self.unwrap_memory_selector, - CpuSelector: self.unwrap_cpu_selector, - DiskSelector: self.unwrap_disk_selector, - TimeSelector: self.unwrap_time_selector, - - # misc - StepTagInput: self.unwrap_step_tag_input, - Edge: self.unwrap_edge, - StringFormatter: self.unwrap_string_formatter, - Filename: self.unwrap_filename, - InputNode: self.unwrap_input_node, } def unwrap(self, val: Any) -> Any: """main public method""" - # add to operator stack if entity is a Selector - self.update_operator_stack(val, life_cycle='start') - # do the unwrap expr = self.unwrap_entity(val) @@ -242,25 +248,23 @@ def unwrap(self, val: Any) -> Any: expr = f'"{expr}"' # apply nextflow curly braces if needed - if self.should_apply_curly_braces(val): + if self.apply_braces: expr = f'${{{expr}}}' - - # pop from operator stack if entity is a Selector - self.update_operator_stack(val, life_cycle='end') + return expr def unwrap_entity(self, entity: Any) -> Any: """switchboard to delegate unwrap based on entity type.""" - # most entities: custom unwrap function + # entity has custom unwrap function override etype = type(entity) - if etype in self.func_switchboard: - func = self.func_switchboard[etype] + if etype in self.unwrap_overrides: + func = self.unwrap_overrides[etype] expr = func(entity) - # TwoValueOperators: shared unwrap function - elif isinstance(entity, TwoValueOperator): - expr = self.unwrap_two_value_operator(entity) + # # TwoValueOperators: shared unwrap function TODO remove + # elif isinstance(entity, TwoValueOperator): + # expr = self.unwrap_two_value_operator(entity) # anything else with a .to_nextflow() method elif callable(getattr(entity, "to_nextflow", None)): @@ -279,73 +283,18 @@ def unwrap_entity(self, entity: Any) -> Any: return expr - - ### OPERATOR STACK - - """ - --- operator_stack --- - - keeps track of how deep we are into Janis operators. - This is needed to properly enclose curly braces. For example: - - Janis: InputSelector("read", remove_file_extension=True) + "_fastqc.zip" - Janis: AddOperator(InputSelector()) - -> - Nextflow: "${read.simpleName}_fastqc.zip" - - The InputSelector function should appear in curly braces, while the "_fastqc.zip" should not. - We apply curly braces for the outermost context of janis operators. - eg Operator(Operator(Operator)) would apply curly braces only for the outermost Operator, not for each. - """ - - def update_operator_stack(self, val: Any, life_cycle: str='start') -> None: - if isinstance(val, Selector) and type(val) not in self.operator_stack_ignore: - # start of main unwrap() function - if life_cycle == 'start': - self.operator_stack.append(val.__class__.__name__) - - # end of main unwrap() function - elif life_cycle == 'end': - if self.operator_stack[-1] == val.__class__.__name__: - self.operator_stack.pop(-1) - else: - raise NotImplementedError - - ### HELPERS ### - def should_apply_curly_braces(self, val: Any) -> bool: - # TODO here address curly brace shit. - # raise NotImplementedError - # return False - if self.in_shell_script: - if len(self.operator_stack) == 1: - if self.operator_stack[0] == val.__class__.__name__: - return True - return False def should_quote(self, val: Any, expr: Any) -> bool: - # only quote strings - if not isinstance(val, str) or not isinstance(expr, str): + if not isinstance(val, str): return False + # only quote strings + if self.strquote_override is not None: + return self.strquote_override # dont quote if already quoted if expr.startswith('"') or expr.endswith('"'): return False - # # dont quote if wrapped isn't string & context is workflow - # if not isinstance(val, str) and self.context == 'workflow': - # return False - # master override - set when calling unwrap_expression. - # some sort of external context means the expr should be quoted. - if self.quote_strings == True: - return True - if self.quote_strings == False: - return False - # string within curly braces # TODO test - if len(self.operator_stack) > 0: - return True - # stringformatter within shell script - elif self.in_shell_script and isinstance(val, StringFormatter): - return True - return False + return True def get_input_by_id(self, input_id: str) -> ToolInput: assert(self.tool is not None) @@ -382,8 +331,8 @@ def build_resources_dict(self) -> dict[str, Any]: def unwrap_str(self, val: str) -> str: return val - def unwrap_null(self, val: None) -> None: - return None + def unwrap_null(self, val: None) -> str: + return 'null' def unwrap_bool(self, val: bool) -> str: if val == True: @@ -404,44 +353,12 @@ def unwrap_list(self, val: list[Any]) -> str: list_representation = f"[{', '.join(elements)}]" return list_representation - - # logical operators - def unwrap_is_defined_operator(self, op: IsDefined) -> str: - # this is a little weird. not a 1:1 mapping. - # assume everything is defined and set to null at least. - arg = self.unwrap(op.args[0]) - # return f"{arg} != null" - return f"{arg}" - - def unwrap_if_operator(self, op: If) -> str: - cond = self.unwrap(op.args[0]) - v1 = self.unwrap(op.args[1]) - v2 = self.unwrap(op.args[2]) - return f"{cond} ? {v1} : {v2}" - - def unwrap_assert_not_null_operator(self, op: AssertNotNull) -> str: - arg = self.unwrap(op.args[0]) - return f'assert {arg[0]} != null' - - def unwrap_floor_operator(self, op: FloorOperator) -> str: - arg = self.unwrap(op.args[0]) - return f"Math.floor({arg})" - - def unwrap_ceil_operator(self, op: CeilOperator) -> str: - arg = self.unwrap(op.args[0]) - return f"Math.ceil({arg})" - - def unwrap_round_operator(self, op: RoundOperator) -> str: - arg = self.unwrap(op.args[0]) - return f"Math.round({arg})" - - def unwrap_two_value_operator(self, op: TwoValueOperator) -> str: - # self.add_quotes_to_strs = True - arg1 = self.unwrap(op.args[0]) - arg2 = self.unwrap(op.args[1]) - # self.add_quotes_to_strs = False - return f'{arg1} {op.nextflow_symbol()} {arg2}' - + # def unwrap_two_value_operator(self, op: TwoValueOperator) -> str: + # # self.add_quotes_to_strs = True + # arg1 = self.unwrap(op.args[0]) + # arg2 = self.unwrap(op.args[1]) + # # self.add_quotes_to_strs = False + # return f'{arg1} {op.nextflow_symbol()} {arg2}' # operator operators def unwrap_index_operator(self, op: IndexOperator) -> str: @@ -491,86 +408,28 @@ def unwrap_as_float_operator(self, op: AsFloatOperator) -> str: arg = self.unwrap(op.args[0]) return f"Float.valueOf({arg})" - - # standard operators - def unwrap_read_contents_operator(self, op: ReadContents) -> str: - arg = self.unwrap(op.args[0]) - return f"{arg}.text" - def unwrap_read_json_operator(self, op: ReadJsonOperator) -> str: - arg = self.unwrap(op.args[0]) - if isinstance(arg, str) and arg.startswith('"') and arg.endswith('"'): - arg = arg.strip('"') + arg = unwrap_expression( + op.args[0], + context=self.context_e.value, + variable_manager=self.vmanager, + tool=self.tool, + apply_braces=True, + inside_braces=True, + ) return f'jsonSlurper.parseText(file("${{task.workDir}}/{arg}").text)' - - def unwrap_join_operator(self, op: JoinOperator) -> str: - iterable = self.unwrap(op.args[0]) - separator = self.unwrap(op.args[1]) - return f"{iterable}.join({separator})" - - def unwrap_basename_operator(self, op: BasenameOperator) -> str: - arg = self.unwrap(op.args[0]) - return f"{arg}.name" - - def unwrap_nameroot_operator(self, op: NamerootOperator) -> str: - arg = self.unwrap(op.args[0]) - return f"{arg}.simpleName" - - def unwrap_nameext_operator(self, op: NameextOperator) -> str: - arg = self.unwrap(op.args[0]) - return f"{arg}.extension" - - def unwrap_transpose_operator(self, op: TransposeOperator) -> str: - raise NotImplementedError - - def unwrap_length_operator(self, op: LengthOperator) -> str: - arg = self.unwrap(op.args[0]) - return f"{arg}.size" - - def unwrap_range_operator(self, op: RangeOperator) -> str: - ceil = self.unwrap(op.args[0]) - return f'0..{ceil}' - - def unwrap_flatten_operator(self, op: FlattenOperator) -> str: - # TODO VALIDATE - arg = self.unwrap(op.args[0]) - return f'{arg}.flatten()' - - def unwrap_apply_prefix_operator(self, op: ApplyPrefixOperator) -> str: - prefix = self.unwrap(op.args[0]) - iterable = self.unwrap(op.args[1]) - return f"{iterable}.map{{item -> {prefix} + item}}" - - def unwrap_file_size_operator(self, op: FileSizeOperator) -> str: - fbytes = self.unwrap(op.args[0]) - return f"({fbytes}.size / 1048576)" - - def unwrap_first_operator(self, op: FirstOperator) -> str: - resolved_list = self.unwrap(op.args[0]) - return f'{resolved_list}.find{{ it != null }}' - - def unwrap_filter_null_operator(self, op: FilterNullOperator) -> str: - iterable = self.unwrap(op.args[0]) - return f"{iterable}.filter{{item -> item != null}}" - - def unwrap_replace_operator(self, op: ReplaceOperator) -> str: - base = self.unwrap(op.args[0]) - pattern = self.unwrap(op.args[1]) - replacement = self.unwrap(op.args[2]) - return f"{base}.replaceAll({pattern}, {replacement})" # other operators def unwrap_operator(self, op: Operator) -> str: + unwrap_expression_wrap = lambda x: unwrap_expression( val=x, - # scope=self.scope, - context=self.context, + context=self.context_e.value, variable_manager=self.vmanager, tool=self.tool, - in_shell_script=self.in_shell_script, scatter_target=self.scatter_target, - scatter_method=self.scatter_method + scatter_method=self.scatter_method, ) return op.to_nextflow(unwrap_expression_wrap, *op.args) @@ -583,14 +442,12 @@ def unwrap_string_formatter(self, selector: StringFormatter) -> str: """ Translate Janis StringFormatter data type to Nextflow """ - if self.context == 'process_script' or self.context == 'process_output': + if self.context_e == UnwrapContext.WORKFLOW: + expr = self.unwrap_string_formatter_workflow(selector) + else: assert(self.tool) assert(self.vmanager) expr = self.unwrap_string_formatter_process(selector) - elif self.context == 'workflow': - expr = self.unwrap_string_formatter_workflow(selector) - else: - raise RuntimeError return expr def unwrap_string_formatter_process(self, selector: StringFormatter) -> str: @@ -601,16 +458,24 @@ def unwrap_string_formatter_process(self, selector: StringFormatter) -> str: kwarg_replacements: dict[str, Any] = {} for k, v in selector.kwargs.items(): - kwarg_replacements[k] = self.unwrap(v) + if not isinstance(v, str): + kwarg_replacements[k] = unwrap_expression( + v, + context=self.context_e.value, + variable_manager=self.vmanager, + tool=self.tool, + apply_braces=True, + inside_braces=True, + ) arg_val = selector._format for k in selector.kwargs: arg_val = arg_val.replace(f"{{{k}}}", f"{kwarg_replacements[k]}") - if self.in_shell_script: + if self.context_e == UnwrapContext.PROCESS_SCRIPT: arg_val = arg_val.replace('\\', '\\\\') - return self.unwrap(arg_val) + return arg_val def unwrap_string_formatter_workflow(self, selector: StringFormatter) -> str: if len(selector.kwargs) == 0: @@ -685,7 +550,7 @@ def unwrap_filename(self, fn: Filename, varname: Optional[str]=None) -> str: suffix = f'"{suffix}"' # inside curly braces (each component wrapped in string) - if len(self.operator_stack) > 0: + if self.apply_braces: items = [prefix, varname, suffix, extension] grouped_words = self.group_quoted_strings_in_list(items) expr = ' + '.join(grouped_words) @@ -756,7 +621,7 @@ def unwrap_input_selector_get_var(self, inp: ToolInput, index: Optional[int]=Non assert(self.vmanager) dtt = utils.get_dtt(inp.input_type) - if self.context == 'process_script': + if self.context_e == UnwrapContext.PROCESS_SCRIPT: if dtt == DTypeType.SECONDARY_ARRAY: if index is None: var = self.vmanager.get(inp.id()).items[2] # bams_joined @@ -769,10 +634,6 @@ def unwrap_input_selector_get_var(self, inp: ToolInput, index: Optional[int]=Non var = self.vmanager.get(inp.id()).items[1] var_copy = deepcopy(var) - elif dtt == DTypeType.FILE_PAIR_ARRAY: - var = self.vmanager.get(inp.id()).items[2] # always read_pairs_joined - var_copy = deepcopy(var) - elif dtt == DTypeType.FILE_PAIR: if index is None: var = self.vmanager.get(inp.id()).items[1] # reads_joined @@ -782,19 +643,15 @@ def unwrap_input_selector_get_var(self, inp: ToolInput, index: Optional[int]=Non var_copy = deepcopy(var) var_copy.value = var_copy.value[index] # reads1 or reads2 - elif dtt == DTypeType.FILE_ARRAY: - if index is None: - var = self.vmanager.get(inp.id()).items[1] # file_array_joined - var_copy = deepcopy(var) - else: - var = self.vmanager.get(inp.id()).original # file_array - var_copy = deepcopy(var) + elif dtt in [DTypeType.FILE_PAIR_ARRAY, DTypeType.FILE_ARRAY]: + var = self.vmanager.get(inp.id()).original + var_copy = deepcopy(var) else: var = self.vmanager.get(inp.id()).current var_copy = deepcopy(var) - elif self.context == 'process_output': + elif self.context_e == UnwrapContext.PROCESS_PRESCRIPT or self.context_e == UnwrapContext.PROCESS_OUTPUT: # always referring to the original process input var = self.vmanager.get(inp.id()).original var_copy = deepcopy(var) @@ -878,8 +735,8 @@ def unwrap_input_selector_get_expr(self, sel: InputSelector, inp: ToolInput, var ### applying modifiers ### # special case: remove file extension if isinstance(basetype, File) and sel.remove_file_extension: - # expr = f'{expr}.simpleName' - expr = f'{expr}.baseName' + # expr = f'{expr}.baseName' + expr = f'{expr}.simpleName' return expr @@ -906,7 +763,7 @@ def unwrap_input_node_selector(self, sel: InputNodeSelector) -> Any: return self.unwrap(sel.input_node) def unwrap_input_node(self, node: InputNode) -> Any: - if self.context != 'workflow': + if self.context_e != UnwrapContext.WORKFLOW: raise RuntimeError assert(self.vmanager) cvar = self.vmanager.get(node.id()).current @@ -947,3 +804,173 @@ def unwrap_step_output_selector(self, sel: StepOutputSelector) -> Any: channel_name=channel_name, upstream_dtype=conn_out.outtype, ) + + + +""" +DEPRECATED + + + def unwrap(self, val: Any) -> Any: + \"""main public method\""" + + # add to operator stack if entity is a Selector + self.update_operator_stack(val, life_cycle='start') + + # do the unwrap + expr = self.unwrap_entity(val) + + # apply quotes if needed + if self.should_quote(val, expr): + expr = f'"{expr}"' + + # apply nextflow curly braces if needed + if self.should_apply_curly_braces(val): + expr = f'${{{expr}}}' + + # pop from operator stack if entity is a Selector + self.update_operator_stack(val, life_cycle='end') + return expr + + ### OPERATOR STACK + + \""" + --- operator_stack --- + + keeps track of how deep we are into Janis operators. + This is needed to properly enclose curly braces. For example: + + Janis: InputSelector("read", remove_file_extension=True) + "_fastqc.zip" + Janis: AddOperator(InputSelector()) + -> + Nextflow: "${read.simpleName}_fastqc.zip" + + The InputSelector function should appear in curly braces, while the "_fastqc.zip" should not. + We apply curly braces for the outermost context of janis operators. + eg Operator(Operator(Operator)) would apply curly braces only for the outermost Operator, not for each. + \""" + + def update_operator_stack(self, val: Any, life_cycle: str='start') -> None: + if isinstance(val, Selector) and type(val) not in self.operator_stack_ignore: + # start of main unwrap() function + if life_cycle == 'start': + self.operator_stack.append(val.__class__.__name__) + + # end of main unwrap() function + elif life_cycle == 'end': + if self.operator_stack[-1] == val.__class__.__name__: + self.operator_stack.pop(-1) + else: + raise NotImplementedError + + + def should_apply_curly_braces(self, val: Any) -> bool: + # TODO here address curly brace shit. + # raise NotImplementedError + # return False + if self.in_shell_script: + if len(self.operator_stack) == 1: + if self.operator_stack[0] == val.__class__.__name__: + return True + return False + + +standard operators + def unwrap_read_contents_operator(self, op: ReadContents) -> str: + arg = self.unwrap(op.args[0]) + return f"{arg}.text" + + def unwrap_read_json_operator(self, op: ReadJsonOperator) -> str: + arg = self.unwrap(op.args[0]) + if isinstance(arg, str) and arg.startswith('"') and arg.endswith('"'): + arg = arg.strip('"') + return f'jsonSlurper.parseText(file("${{task.workDir}}/{arg}").text)' + + def unwrap_join_operator(self, op: JoinOperator) -> str: + iterable = self.unwrap(op.args[0]) + separator = self.unwrap(op.args[1]) + return f"{iterable}.join({separator})" + + def unwrap_basename_operator(self, op: BasenameOperator) -> str: + arg = self.unwrap(op.args[0]) + return f"{arg}.name" + + def unwrap_nameroot_operator(self, op: NamerootOperator) -> str: + arg = self.unwrap(op.args[0]) + return f"{arg}.simpleName" + + def unwrap_nameext_operator(self, op: NameextOperator) -> str: + arg = self.unwrap(op.args[0]) + return f"{arg}.extension" + + def unwrap_transpose_operator(self, op: TransposeOperator) -> str: + raise NotImplementedError + + def unwrap_length_operator(self, op: LengthOperator) -> str: + arg = self.unwrap(op.args[0]) + return f"{arg}.size" + + def unwrap_range_operator(self, op: RangeOperator) -> str: + ceil = self.unwrap(op.args[0]) + return f'0..{ceil}' + + def unwrap_flatten_operator(self, op: FlattenOperator) -> str: + # TODO VALIDATE + arg = self.unwrap(op.args[0]) + return f'{arg}.flatten()' + + def unwrap_apply_prefix_operator(self, op: ApplyPrefixOperator) -> str: + prefix = self.unwrap(op.args[0]) + iterable = self.unwrap(op.args[1]) + return f"{iterable}.map{{item -> {prefix} + item}}" + + def unwrap_file_size_operator(self, op: FileSizeOperator) -> str: + fbytes = self.unwrap(op.args[0]) + return f"({fbytes}.size / 1048576)" + + def unwrap_first_operator(self, op: FirstOperator) -> str: + resolved_list = self.unwrap(op.args[0]) + return f'{resolved_list}.find{{ it != null }}' + + def unwrap_filter_null_operator(self, op: FilterNullOperator) -> str: + iterable = self.unwrap(op.args[0]) + return f"{iterable}.filter{{item -> item != null}}" + + def unwrap_replace_operator(self, op: ReplaceOperator) -> str: + base = self.unwrap(op.args[0]) + pattern = self.unwrap(op.args[1]) + replacement = self.unwrap(op.args[2]) + return f"{base}.replaceAll({pattern}, {replacement})" + + + # logical operators + def unwrap_is_defined_operator(self, op: IsDefined) -> str: + # this is a little weird. not a 1:1 mapping. + # assume everything is defined and set to null at least. + arg = self.unwrap(op.args[0]) + # return f"{arg} != null" + return f"{arg}" + + def unwrap_if_operator(self, op: If) -> str: + cond = self.unwrap(op.args[0]) + v1 = self.unwrap(op.args[1]) + v2 = self.unwrap(op.args[2]) + return f"{cond} ? {v1} : {v2}" + + def unwrap_assert_not_null_operator(self, op: AssertNotNull) -> str: + arg = self.unwrap(op.args[0]) + return f'assert {arg[0]} != null' + + def unwrap_floor_operator(self, op: FloorOperator) -> str: + arg = self.unwrap(op.args[0]) + return f"Math.floor({arg})" + + def unwrap_ceil_operator(self, op: CeilOperator) -> str: + arg = self.unwrap(op.args[0]) + return f"Math.ceil({arg})" + + def unwrap_round_operator(self, op: RoundOperator) -> str: + arg = self.unwrap(op.args[0]) + return f"Math.round({arg})" + +""" \ No newline at end of file diff --git a/notes.txt b/notes.txt index d816ee5af..b08c0afed 100644 --- a/notes.txt +++ b/notes.txt @@ -24,6 +24,8 @@ misc test suite - edam formats +expressions +- "self" can be parsed. --------------------- @@ -38,6 +40,11 @@ CWL -> NXF boofed ${(${(${index_name != None}) ? index_name : sequences.simpleName})} \ """ +unwrap +- + + + misc - Janis BasenameOperator -> Nextflow updated to no mods. This isn't doing normal janis unwrapping so didnt work. - curly brace unwrapping boofed From 7c97d0d77655581914ef0d9a28d7fb6a1cce727b Mon Sep 17 00:00:00 2001 From: Grace Hall <graceavahall@gmail.com> Date: Mon, 6 Nov 2023 20:25:46 +1100 Subject: [PATCH 16/32] nextflow unwrap looking good. --- janis_core/tests/test_translation_nextflow.py | 176 ++++--- janis_core/tests/testworkflows/unwrap.py | 59 ++- .../process/outputs/factory_cmdtool.py | 92 ++-- .../nextflow/generate/process/outputs/main.py | 36 -- .../generate/process/script/common.py | 14 +- .../nextflow/generate/process/script/main.py | 6 +- .../generate/process/script/prescript.py | 55 +-- janis_core/translations/nextflow/unwrap.py | 447 +++--------------- notes.txt | 7 + 9 files changed, 293 insertions(+), 599 deletions(-) diff --git a/janis_core/tests/test_translation_nextflow.py b/janis_core/tests/test_translation_nextflow.py index 37eaa0826..257d08b3a 100644 --- a/janis_core/tests/test_translation_nextflow.py +++ b/janis_core/tests/test_translation_nextflow.py @@ -117,7 +117,10 @@ Tool, WorkflowBuilder, Workflow, - CommandToolBuilder + CommandToolBuilder, + SplitOperator, + BasenameOperator, + NameextOperator, ) from janis_core.translations import translate @@ -156,6 +159,7 @@ from janis_core.translation_utils import DTypeType from janis_core import settings +from janis_core.translations.nextflow import unwrap_expression from janis_core.translations.nextflow.generate.workflow.common import get_common_type from janis_core.translations.nextflow.generate.workflow.datatype_mismatch import ( get_array_depth, @@ -165,6 +169,8 @@ ) + + ### helper functions TRANSLATED_DIR = os.path.join(os.getcwd(), 'translated') @@ -3659,6 +3665,96 @@ def setUp(self) -> None: wf = UnwrapTestWF() self.wf = do_preprocessing_workflow(wf) + def test_process_basics(self) -> None: + # prescript (BWA_Index) If Operator: make prescript line rather than in script + step = self.wf.step_nodes["basics_step"] + process = nextflow.generate.process.generate_process(step.tool) + process_text = process.get_string() + print(process_text) + + # actual + actual_inputs = _get_process_input_lines(process_text) + actual_outputs = _get_process_output_lines(process_text) + actual_prescript = simplify_prescript(process_text) + actual_script = simplify_script(process_text) + + # expected + expected_inputs = [ + 'path bam_sorted' + ] + expected_outputs = [ + 'tuple path("${bam_sorted}"), path("*.bai"), emit: bam_sorted_indexed', + 'path "${reads_1}.trimmed${reads_1.extension}", emit: trimmed_reads_1' + ] + expected_prescript = [ + ] + expected_script = [ + 'samtools index', + '-b', + '${bam_sorted}', + ] + + # checks + self.assertEqual(actual_inputs, expected_inputs) + self.assertEqual(actual_outputs, expected_outputs) + self.assertEqual(actual_prescript, expected_prescript) + self.assertEqual(actual_script, expected_inputs) + + def test_workflow_basics(self) -> None: + # workflow input + # workflow call + # workflow output + raise NotImplementedError + + def test_string_quoting(self) -> None: + tool: CommandToolBuilder = self.wf.step_nodes['standard_step'].tool # type: ignore + vmanager = init_variable_manager_for_task(tool) + expr = SplitOperator(InputSelector("inStr"), ' ') + actual = unwrap_expression( + val=expr, context='process_script', + variable_manager=vmanager, tool=tool + ) + expected = 'in_str.split(" ")' + self.assertEqual(actual, expected) + + def test_string_formatter1(self) -> None: + # kwargs are strings + expr = StringFormatter( + format='{token1} is heavier than {token2}', + token1="aluminium", + token2="steel", + ) + actual = unwrap_expression(val=expr, context='default') + expected = 'aluminium is heavier than steel' + self.assertEqual(actual, expected) + + def test_string_formatter2(self) -> None: + # kwargs are other primitives + expr = StringFormatter( + format='{token1} blah blah {token2}', + token1=[1, 2, 3, 4], + token2=5, + ) + actual = unwrap_expression(val=expr, context='default') + expected = '${[1, 2, 3, 4]} blah blah ${5}' + self.assertEqual(actual, expected) + + def test_string_formatter3(self) -> None: + # kwargs are Selectors + tool: CommandToolBuilder = self.wf.step_nodes['standard_step'].tool # type: ignore + vmanager = init_variable_manager_for_task(tool) + expr = StringFormatter( + format='{token1}.trimmed{token2}', + token1=BasenameOperator(InputSelector("inFile")), + token2=NameextOperator(InputSelector("inFile")), + ) + actual = unwrap_expression( + val=expr, context='process_script', + variable_manager=vmanager, tool=tool + ) + expected = '${in_file}.trimmed${in_file.extension}' + self.assertEqual(actual, expected) + def test_selectors(self) -> None: step = self.wf.step_nodes["selectors_step"] process = nextflow.generate.process.generate_process(step.tool) @@ -3668,7 +3764,7 @@ def test_selectors(self) -> None: print(process_text) # prescript - self.assertIn('def target_filename = target_filename != params.NULL_VALUE ? target_filename : "${in_file.baseName}.fastq.gz"', prescript) + self.assertIn('def target_filename = target_filename != params.NULL_VALUE ? target_filename : "${in_file.simpleName}.fastq.gz"', prescript) # script self.assertIn('--targetFilename ${target_filename}', script) @@ -3751,10 +3847,8 @@ def test_logical(self) -> None: self.assertIn("--SubtractOperator ${9 - 10}", script) self.assertIn("--MultiplyOperator ${9 * 10}", script) self.assertIn("--DivideOperator ${9 / 10}", script) + self.assertIn("--If ${in_file_opt ? in_file_opt : \"\"}", script) - # not script - self.assertNotIn("--If ${in_file_opt ? in_file_opt : \"\"}", script) - def test_complex(self) -> None: step = self.wf.step_nodes["complex_step"] process = nextflow.generate.process.generate_process(step.tool) @@ -3779,76 +3873,6 @@ def test_complex(self) -> None: self.assertIn('--Concat ${"> " + in_str + ".log"}', script) self.assertIn('--Math ${Math.ceil((in_file.size / 1048576) / (1024 * 1024 * 1024) + 20)}', script) - def test_process_prescript(self) -> None: - raise NotImplementedError - - def test_process_script(self) -> None: - raise NotImplementedError - - def test_process_output(self) -> None: - raise NotImplementedError - - def test_workflow_input(self) -> None: - raise NotImplementedError - - def test_workflow_output(self) -> None: - raise NotImplementedError - - - -class TestUnwrapProcess(unittest.TestCase): - - def setUp(self) -> None: - reset_globals() - wf = UnwrapTestWF() - wf = do_preprocessing_workflow(wf) - step = wf.step_nodes["stp1"] - process = nextflow.generate.process.generate_process(step.tool) - self.prescript = process.pre_script - self.script = process.script - print(process.get_string()) - - # PROCESS RELATED - def test_input(self) -> None: - # prescript - # script - self.assertIn("--filenameGen generated.gz", self.script) - - def test_ternary(self) -> None: - # only ever prescript section - self.assertIn("--filenameGen generated.gz", self.script) - - - # PROCESS RELATED - @unittest.skip('filenames are scuffed') - def test_filename_generated(self) -> None: - self.assertIn("--filenameGen generated.gz", self.script) - - @unittest.skip('filenames are scuffed') - def test_filename_reference(self) -> None: - self.assertIn("--filenameRef ${in_file.simpleName}.fastq.gz", self.script) - - def test_input_selector_process_input(self) -> None: - self.assertIn("--inputSelectorProcess ${in_file}", self.script) - - def test_input_selector_param_input(self) -> None: - self.assertIn("--inputSelectorParam ${in_str}", self.script) - - def test_input_selector_array(self) -> None: - self.assertIn("--InputSelectorArray ${in_file_arr_joined}", self.script) - - def test_list(self) -> None: - self.assertIn('--list "1 2 3 4 5"', self.script) # this is correct - - def test_two_value_operator(self) -> None: - self.assertIn("--TwoValueOperator ${in_file + \".gz\"}", self.script) - - def test_first_operator(self) -> None: - self.assertIn("--FirstOperator ${[in_str, []].find{ it != null }}", self.script) - - def test_index_operator_array(self) -> None: - self.assertIn("--IndexOperatorArray ${in_file_arr[0]}", self.script) - def test_index_operator_secondaries(self) -> None: self.assertIn("--IndexOperatorSecondariesBam ${in_bam_bai}", self.script) self.assertIn("--IndexOperatorSecondariesBai ${in_bam_bai}", self.script) @@ -3857,7 +3881,7 @@ def test_index_operator_secondaries_array(self) -> None: print(self.script) self.assertIn("--IndexOperatorArraySecondariesBams ${in_bam_bai_arr[0]}", self.script) self.assertIn("--IndexOperatorArraySecondariesBais ${in_bam_bai_arr[1]}", self.script) - + def update_variables(tool: Tool, vmanager: VariableManager) -> None: diff --git a/janis_core/tests/testworkflows/unwrap.py b/janis_core/tests/testworkflows/unwrap.py index f253dfcf2..dd7f01edd 100644 --- a/janis_core/tests/testworkflows/unwrap.py +++ b/janis_core/tests/testworkflows/unwrap.py @@ -17,11 +17,10 @@ Float, Array, ) -from janis_core.redefinitions.types import BamBai +from janis_core.redefinitions.types import Bam, BamBai import janis_core as j - # WORKFLOW class UnwrapTestWF(Workflow): @@ -38,6 +37,14 @@ def constructor(self): self.input("inFloat", Float()) self.input("inFloatOpt", Float(optional=True)) + self.step( + "basics_step", + BasicsTestTool( + reads_1=self.inFile, + bam_sorted=self.inFile, + ) + ) + self.step( "selectors_step", SelectorTestTool( @@ -101,6 +108,54 @@ def id(self) -> str: # TOOLS +class BasicsTestTool(CommandTool): + + def container(self) -> str: + return "ubuntu:latest" + + def version(self) -> str: + return "TEST" + + def base_command(self) -> Optional[str | list[str]]: + return ['samtools', 'index'] + + def friendly_name(self): + return "TEST: BasicsTestTool" + + def tool(self): + return "BasicsTestTool" + + def inputs(self): + return [ + ToolInput("reads_1", File()), + ToolInput("in_filename", Filename(), position=3), + ToolInput("bam_sorted", Bam(), position=2), + ] + + def arguments(self): + return [ + ToolArgument('-b', position=1) + ] + + def outputs(self): + return [ + ToolOutput( + "bam_sorted_indexed", + BamBai(), + selector=j.BasenameOperator(j.InputSelector('bam_sorted')), + ), + ToolOutput( + "trimmed_reads_1", + File(), + selector=j.StringFormatter( + format='{token1}.trimmed{token2}', + token1=j.BasenameOperator(j.InputSelector("reads_1")), + token2=j.NameextOperator(j.InputSelector("reads_1")) + ) + ) + ] + + class SelectorTestTool(CommandTool): """ TODO diff --git a/janis_core/translations/nextflow/generate/process/outputs/factory_cmdtool.py b/janis_core/translations/nextflow/generate/process/outputs/factory_cmdtool.py index 53626f900..5e46b5d4c 100644 --- a/janis_core/translations/nextflow/generate/process/outputs/factory_cmdtool.py +++ b/janis_core/translations/nextflow/generate/process/outputs/factory_cmdtool.py @@ -7,12 +7,13 @@ from janis_core.types import DataType from janis_core import ( ToolOutput, - CommandTool, + CommandToolBuilder, WildcardSelector, InputSelector, Selector, Filename, - Stdout + Stdout, + StringFormatter, ) from janis_core import translation_utils as utils from janis_core.translation_utils import DTypeType @@ -48,14 +49,12 @@ def has_n_collectors(out: ToolOutput, n: int) -> bool: class FmtType(Enum): - REFERENCE = auto() # reference to process input or param - WILDCARD = auto() # regex based collection - FILENAME = auto() # filename TInput - FILENAME_REF = auto() # filename referencing another TInput: process input or param - FILENAME_GEN = auto() # filename referencing another TInput: internal input - STATIC = auto() # static value for TInput - COMPLEX = auto() # complex use of selectors / operators - + STRINGFORMATTER = auto() # string formatter + REFERENCE = auto() # reference to process input or param + WILDCARD = auto() # regex based collection + FILENAME = auto() # filename TInput + STATIC = auto() # static value for TInput + COMPLEX = auto() # complex use of selectors / operators ### CMDTOOL OUTPUTS ### @@ -63,7 +62,7 @@ class CmdtoolProcessOutputFactory: def __init__( self, out: ToolOutput, - tool: CommandTool, + tool: CommandToolBuilder, variable_manager: VariableManager, ) -> None: self.out = out @@ -82,9 +81,6 @@ def __init__( DTypeType.GENERIC_ARRAY: self.non_file_output, DTypeType.GENERIC: self.non_file_output, } - - self.add_braces: bool = False - self.quote_strings: bool = False # public method def create(self) -> NFProcessOutput: @@ -111,8 +107,11 @@ def get_fmttype(self, selector: Any) -> FmtType: if isinstance(selector, str): return FmtType.WILDCARD - if isinstance(selector, WildcardSelector): + elif isinstance(selector, WildcardSelector): return FmtType.WILDCARD + + elif isinstance(selector, StringFormatter): + return FmtType.STRINGFORMATTER # output uses InputSelector elif isinstance(selector, InputSelector): @@ -120,28 +119,29 @@ def get_fmttype(self, selector: Any) -> FmtType: # ToolInput is Filename type if isinstance(tinput.intype, Filename): - entity_counts = trace.trace_entity_counts(tinput.intype, tool=self.tool) - entities = set(entity_counts.keys()) - filename_gen_whitelist = set(['Filename', 'str', 'NoneType']) - filename_ref_whitelist = set(['InputSelector', 'Filename', 'str', 'NoneType']) + return FmtType.FILENAME + # entity_counts = trace.trace_entity_counts(tinput.intype, tool=self.tool) + # entities = set(entity_counts.keys()) + # filename_gen_whitelist = set(['Filename', 'str', 'NoneType']) + # filename_ref_whitelist = set(['InputSelector', 'Filename', 'str', 'NoneType']) - # ToolInput does not refer to another ToolInput - # This must be first as less specific - if entities.issubset(filename_gen_whitelist): - if tinput.id() in task_inputs.task_inputs(self.tool.id()): - return FmtType.FILENAME - elif tinput.id() in task_inputs.param_inputs(self.tool.id()): - return FmtType.FILENAME - else: - return FmtType.FILENAME_GEN + # # ToolInput does not refer to another ToolInput + # # This must be first as less specific + # if entities.issubset(filename_gen_whitelist): + # if tinput.id() in task_inputs.task_inputs(self.tool.id()): + # return FmtType.FILENAME + # elif tinput.id() in task_inputs.param_inputs(self.tool.id()): + # return FmtType.FILENAME + # else: + # return FmtType.FILENAME_GEN - # ToolInput refers to another ToolInput - elif entities.issubset(filename_ref_whitelist): - return FmtType.FILENAME_REF + # # ToolInput refers to another ToolInput + # elif entities.issubset(filename_ref_whitelist): + # return FmtType.FILENAME_REF - # ToolInput uses complex logic - else: - return FmtType.COMPLEX + # # ToolInput uses complex logic + # else: + # return FmtType.COMPLEX # ToolInput is not Filename type (direct reference) else: @@ -149,7 +149,7 @@ def get_fmttype(self, selector: Any) -> FmtType: task_input = task_inputs.get(self.tool.id(), tinput) if task_input.ti_type == TaskInputType.STATIC: return FmtType.STATIC - # TInput which is referenced by variable + # TInput which is directly referenced by variable else: return FmtType.REFERENCE @@ -159,21 +159,20 @@ def get_fmttype(self, selector: Any) -> FmtType: def unwrap_collection_expression(self, expr: Any, ftype: FmtType) -> str: if ftype == FmtType.REFERENCE: - self.add_braces = False - self.quote_strings = False - expr = self.unwrap(expr) + expr = self.unwrap(expr) + + elif ftype == FmtType.STRINGFORMATTER: + expr = self.unwrap(expr, apply_braces=False) + expr = f'"{expr}"' - elif ftype in (FmtType.WILDCARD, FmtType.STATIC, FmtType.FILENAME_GEN): - self.add_braces = False - self.quote_strings = True + elif ftype in (FmtType.WILDCARD, FmtType.STATIC): expr = self.unwrap(expr) if not expr.startswith('"') and not expr.endswith('"'): expr = f'"{expr}"' - elif ftype in (FmtType.FILENAME, FmtType.FILENAME_REF, FmtType.COMPLEX): - self.add_braces = True - self.quote_strings = True - expr = self.unwrap(expr) + # things which need unwrapping + elif ftype in (FmtType.FILENAME, FmtType.COMPLEX): + expr = self.unwrap(expr, apply_braces=True) if not expr.startswith('"') and not expr.endswith('"'): expr = f'"{expr}"' @@ -182,12 +181,13 @@ def unwrap_collection_expression(self, expr: Any, ftype: FmtType) -> str: raise NotImplementedError return expr - def unwrap(self, expr: Any): + def unwrap(self, expr: Any, apply_braces: bool=False): return unwrap_expression( val=expr, context='process_output', variable_manager=self.variable_manager, tool=self.tool, + apply_braces=apply_braces ) # process output creation methods diff --git a/janis_core/translations/nextflow/generate/process/outputs/main.py b/janis_core/translations/nextflow/generate/process/outputs/main.py index 8a18f60ff..7ff6c6572 100644 --- a/janis_core/translations/nextflow/generate/process/outputs/main.py +++ b/janis_core/translations/nextflow/generate/process/outputs/main.py @@ -22,9 +22,6 @@ def gen_nf_process_outputs( ) -> list[NFProcessOutput]: process_outputs: list[NFProcessOutput] = [] - # name_clashes: set[str] = set() - # if isinstance(tool, CommandTool): - # name_clashes = _ensure_unique_filenames(tool, sources) for out in tool.outputs(): if isinstance(out, ToolOutput) and isinstance(tool, CommandTool): @@ -45,36 +42,3 @@ def gen_nf_process_outputs( return process_outputs - - - -# def _ensure_unique_filenames(tool: CommandTool, sources: dict[str, Any]) -> set[str]: -# """ -# Ensures that files have unique filename. -# Changes filename to the path of -# This is necessary because nextflow will stage files into a process using filename only. -# For example, if process1 creates a file @ 'data/data.txt' and another file @ 'outs/data.txt', -# for a process which stages those two files, they will be both staged as '{job_working_dir}/data.txt'. -# The filenames now clash, as the folder structure was not preserved. -# """ -# name_clashes: set[str] = set() -# for out in tool.outputs(): -# if isinstance(out.output_type, File): -# process_inputs = get_process_inputs(sources) -# param_inputs = get_param_inputs(sources) -# internal_inputs = get_internal_inputs(tool, sources) -# if isinstance(out.selector, list): -# pass - -# expr = unwrap_expression( -# val=out.selector, -# tool=tool, -# sources=sources, -# process_inputs=process_inputs, -# param_inputs=param_inputs, -# internal_inputs=internal_inputs, -# ) - -# print() -# return name_clashes - diff --git a/janis_core/translations/nextflow/generate/process/script/common.py b/janis_core/translations/nextflow/generate/process/script/common.py index 3682acd6c..cc2e8e01b 100644 --- a/janis_core/translations/nextflow/generate/process/script/common.py +++ b/janis_core/translations/nextflow/generate/process/script/common.py @@ -1,7 +1,7 @@ from typing import Any, Optional -from janis_core import ToolInput, ToolArgument, CommandTool, DataType, Selector +from janis_core import ToolInput, ToolArgument, CommandToolBuilder, DataType, Selector, StringFormatter from ....nfgen_utils import to_groovy from ....unwrap import unwrap_expression @@ -26,22 +26,20 @@ def delim_str(tinput: ToolInput) -> str: return tinput.separator return ' ' - -def unwrap(val: Any, tool: CommandTool, vmanager: VariableManager, quote_strings: Optional[bool]=None) -> Any: - apply_braces = True if isinstance(val, Selector) else False - inside_braces = True if apply_braces else False +def unwrap(val: Any, tool: CommandToolBuilder, vmanager: VariableManager, quote_strings: Optional[bool]=None) -> Any: + apply_braces = True if isinstance(val, Selector) and not isinstance(val, StringFormatter) else False return unwrap_expression( val=val, context='process_script', variable_manager=vmanager, tool=tool, apply_braces=apply_braces, - inside_braces=inside_braces, + strquote_override=False ) def eval_cmdline_targ( arg: ToolArgument, - tool: CommandTool, + tool: CommandToolBuilder, vmanager: VariableManager, shell_quote: Optional[bool]=None ) -> str: @@ -74,7 +72,7 @@ def eval_cmdline_targ( def eval_cmdline_tinput( default: Any, tinput: ToolInput, - tool: CommandTool, + tool: CommandToolBuilder, vmanager: VariableManager, apply_prefix: bool, quote_strings: Optional[bool]=None diff --git a/janis_core/translations/nextflow/generate/process/script/main.py b/janis_core/translations/nextflow/generate/process/script/main.py index 704041587..5201cd632 100644 --- a/janis_core/translations/nextflow/generate/process/script/main.py +++ b/janis_core/translations/nextflow/generate/process/script/main.py @@ -1,7 +1,7 @@ from typing import Tuple, Optional -from janis_core import CommandTool, ToolArgument, Stdout +from janis_core import CommandToolBuilder, ToolArgument, Stdout from janis_core import settings from janis_core.translations.common import trace @@ -15,7 +15,7 @@ def gen_nf_process_script( - tool: CommandTool, + tool: CommandToolBuilder, vmanager: VariableManager, ) -> Tuple[Optional[str], str]: return ProcessScriptGenerator( @@ -27,7 +27,7 @@ def gen_nf_process_script( class ProcessScriptGenerator: def __init__( self, - tool: CommandTool, + tool: CommandToolBuilder, vmanager: VariableManager ): self.tool = tool diff --git a/janis_core/translations/nextflow/generate/process/script/prescript.py b/janis_core/translations/nextflow/generate/process/script/prescript.py index a944d1594..98fe51089 100644 --- a/janis_core/translations/nextflow/generate/process/script/prescript.py +++ b/janis_core/translations/nextflow/generate/process/script/prescript.py @@ -3,7 +3,7 @@ from typing import Any from abc import ABC, abstractmethod -from janis_core import ToolInput, CommandTool, DataType, Filename, Selector, StringFormatter +from janis_core import ToolInput, CommandToolBuilder, DataType, Filename, Selector, StringFormatter from janis_core import translation_utils as utils from janis_core.translation_utils import DTypeType @@ -27,7 +27,7 @@ -def gen_prescript_lines(tool: CommandTool, vmanager: VariableManager) -> list[str]: +def gen_prescript_lines(tool: CommandToolBuilder, vmanager: VariableManager) -> list[str]: lines: list[str] = [] tinputs = selection.prescript_inputs(tool, vmanager) tinputs = ordering.prescript_inputs(tinputs) @@ -38,7 +38,7 @@ def gen_prescript_lines(tool: CommandTool, vmanager: VariableManager) -> list[st def gen_prescript_lines_for_input( tinput: ToolInput, - tool: CommandTool, + tool: CommandToolBuilder, vmanager: VariableManager, ) -> list[str]: @@ -90,7 +90,7 @@ class PreScriptFormatter(ABC): def __init__( self, tinput: ToolInput, - tool: CommandTool, + tool: CommandToolBuilder, vmanager: VariableManager, ) -> None: self.tool = tool @@ -479,47 +479,12 @@ def format(self) -> None: self.prescript.append(line) def default_str(self, apply_prefix: bool=False) -> str: - val: Filename = self.dtype # type: ignore - - if any([isinstance(x, Selector) for x in [val.prefix, val.suffix, val.extension]]): - kwargs = {} - fmt = '' - if val.prefix is not None: - if isinstance(val.prefix, str): - fmt += f'{val.prefix}' - else: - fmt += '{prefix}' - kwargs['prefix']=val.prefix - if val.suffix is not None: - if isinstance(val.suffix, str): - fmt += f'{val.suffix}' - else: - fmt += '{suffix}' - kwargs['suffix']=val.suffix - if val.extension is not None: - if isinstance(val.extension, str): - fmt += f'{val.extension}' - else: - fmt += '{extension}' - kwargs['extension']=val.extension - - - val = StringFormatter(fmt, **kwargs) - - apply_braces = False - inside_braces = False - expr = unwrap_expression( - val=val, - context='process_prescript', - variable_manager=self.vmanager, - tool=self.tool, - apply_braces=apply_braces, - inside_braces=inside_braces, - ) - - else: - expr = val.generated_filename() - + expr = unwrap_expression( + val=self.dtype, + context='process_prescript', + variable_manager=self.vmanager, + tool=self.tool, + ) if not expr.startswith('"') and not expr.endswith('"'): expr = f'"{expr}"' if apply_prefix: diff --git a/janis_core/translations/nextflow/unwrap.py b/janis_core/translations/nextflow/unwrap.py index c838f015e..02b52e3f6 100644 --- a/janis_core/translations/nextflow/unwrap.py +++ b/janis_core/translations/nextflow/unwrap.py @@ -12,16 +12,15 @@ from .variables import Variable from copy import deepcopy -from typing import Any, Optional, Type +from typing import Any, Optional NoneType = type(None) import re from janis_core import ( - CommandTool, + CommandToolBuilder, ToolInput, Operator, ReadJsonOperator, - SplitOperator ) from janis_core.graph.steptaginput import Edge, StepTagInput from janis_core.operators.operator import IndexOperator @@ -33,38 +32,12 @@ DataType ) -# from janis_core.operators.logical import ( -# IsDefined, -# If, -# AssertNotNull, -# FloorOperator, -# CeilOperator, -# RoundOperator -# ) -# from janis_core.operators.standard import ( -# ReadContents, -# ReadJsonOperator, -# JoinOperator, -# BasenameOperator, -# NamerootOperator, -# NameextOperator, -# TransposeOperator, -# LengthOperator, -# RangeOperator, -# FlattenOperator, -# ApplyPrefixOperator, -# FileSizeOperator, -# FirstOperator, -# FilterNullOperator, -# ReplaceOperator -# ) from janis_core.operators.operator import ( IndexOperator, AsStringOperator, AsBoolOperator, AsIntOperator, AsFloatOperator, - TwoValueOperator ) from janis_core.operators.selectors import ( InputNodeSelector, @@ -85,31 +58,25 @@ from . import naming from . import nfgen_utils -# from .plumbing import cartesian_cross_subname -from .expressions import stringformatter_matcher """ -NOTE: -only unwrapping simple references for step inputs. +BRACES -reason: -InputNodeSelector(input_fasta).name ---/-> -ch_input_fasta.name +1. StringFormatter(format{token1} some text {token2}, token1=[1, 2, 3], token2=4) + - expr: {token1} some text {token2} - apply_braces=False, inside_braces=False, outcome=False + - expr: [1, 2, 3] - apply_braces=True, inside_braces=False, outcome=True + - expr: 1 - apply_braces=False, inside_braces=True, outcome=False -nextflow wants to provide process inputs as channels. -cant do channel.name etc, doesn't make sense. -this stuff is supposed to be done inside the process. """ + def unwrap_expression( val: Any, context: str, variable_manager: Optional[VariableManager]=None, - tool: Optional[CommandTool]=None, + tool: Optional[CommandToolBuilder]=None, apply_braces: bool=False, - inside_braces: bool=False, strquote_override: Optional[bool]=None, scatter_target: bool=False, @@ -122,7 +89,6 @@ def unwrap_expression( variable_manager=variable_manager, tool=tool, apply_braces=apply_braces, - inside_braces=inside_braces, strquote_override=strquote_override, scatter_target=scatter_target, scatter_method=scatter_method, @@ -131,6 +97,7 @@ def unwrap_expression( class UnwrapContext(Enum): + DEFAULT = 'default' PROCESS_PRESCRIPT = 'process_prescript' PROCESS_SCRIPT = 'process_script' PROCESS_OUTPUT = 'process_output' @@ -145,9 +112,8 @@ def __init__( self, context_e: UnwrapContext, variable_manager: Optional[VariableManager], - tool: Optional[CommandTool], + tool: Optional[CommandToolBuilder], apply_braces: bool, - inside_braces: bool, strquote_override: Optional[bool], scatter_target: bool, scatter_method: Optional[ScatterMethod], @@ -156,25 +122,10 @@ def __init__( self.vmanager = variable_manager self.tool = tool self.apply_braces = apply_braces - self.inside_braces = inside_braces self.strquote_override = strquote_override self.scatter_target = scatter_target self.scatter_method = scatter_method - # self.operator_stack: list[str] = [] - # self.operator_stack_ignore: list[Type[Any]] = [ - # WildcardSelector, - # AliasSelector, - # InputNodeSelector, - # StepOutputSelector, - # StringFormatter, - # MemorySelector, - # CpuSelector, - # DiskSelector, - # TimeSelector, - # ] - - self.unwrap_overrides = { # primitives NoneType: self.unwrap_null, @@ -210,36 +161,10 @@ def __init__( Filename: self.unwrap_filename, InputNode: self.unwrap_input_node, - # logical operators - # IsDefined: self.unwrap_is_defined_operator, - # If: self.unwrap_if_operator, - # AssertNotNull: self.unwrap_assert_not_null_operator, - # FloorOperator: self.unwrap_floor_operator, - # CeilOperator: self.unwrap_ceil_operator, - # RoundOperator: self.unwrap_round_operator, - - # standard operators - # TODO kill these - # ReadContents: self.unwrap_read_contents_operator, - # JoinOperator: self.unwrap_join_operator, - # BasenameOperator: self.unwrap_basename_operator, - # NamerootOperator: self.unwrap_nameroot_operator, - # NameextOperator: self.unwrap_nameext_operator, - # TransposeOperator: self.unwrap_transpose_operator, - # LengthOperator: self.unwrap_length_operator, - # RangeOperator: self.unwrap_range_operator, - # FlattenOperator: self.unwrap_flatten_operator, - # ApplyPrefixOperator: self.unwrap_apply_prefix_operator, - # FileSizeOperator: self.unwrap_file_size_operator, - # FirstOperator: self.unwrap_first_operator, - # FilterNullOperator: self.unwrap_filter_null_operator, - # ReplaceOperator: self.unwrap_replace_operator, - } def unwrap(self, val: Any) -> Any: """main public method""" - # do the unwrap expr = self.unwrap_entity(val) @@ -252,7 +177,7 @@ def unwrap(self, val: Any) -> Any: expr = f'${{{expr}}}' return expr - + def unwrap_entity(self, entity: Any) -> Any: """switchboard to delegate unwrap based on entity type.""" @@ -262,10 +187,6 @@ def unwrap_entity(self, entity: Any) -> Any: func = self.unwrap_overrides[etype] expr = func(entity) - # # TwoValueOperators: shared unwrap function TODO remove - # elif isinstance(entity, TwoValueOperator): - # expr = self.unwrap_two_value_operator(entity) - # anything else with a .to_nextflow() method elif callable(getattr(entity, "to_nextflow", None)): expr = self.unwrap_operator(entity) @@ -292,7 +213,8 @@ def should_quote(self, val: Any, expr: Any) -> bool: if self.strquote_override is not None: return self.strquote_override # dont quote if already quoted - if expr.startswith('"') or expr.endswith('"'): + PATTERN = r'(^\'[\s\S]*\'$)|(^"[\s\S]*"$)' + if re.match(PATTERN, expr): return False return True @@ -324,8 +246,7 @@ def build_resources_dict(self) -> dict[str, Any]: 'runtime_disk': self.tool.disk({}), } - - ### LOGIC ### + ### UNWRAP OVERRIDES ### # primitives def unwrap_str(self, val: str) -> str: @@ -346,20 +267,16 @@ def unwrap_float(self, val: float) -> str: return str(val) def unwrap_list(self, val: list[Any]) -> str: + ab_temp = deepcopy(self.apply_braces) + self.apply_braces = False elements: list[Any] = [] for elem in val: el = self.unwrap(val=elem) elements.append(str(el)) list_representation = f"[{', '.join(elements)}]" + self.apply_braces = ab_temp return list_representation - # def unwrap_two_value_operator(self, op: TwoValueOperator) -> str: - # # self.add_quotes_to_strs = True - # arg1 = self.unwrap(op.args[0]) - # arg2 = self.unwrap(op.args[1]) - # # self.add_quotes_to_strs = False - # return f'{arg1} {op.nextflow_symbol()} {arg2}' - # operator operators def unwrap_index_operator(self, op: IndexOperator) -> str: obj = op.args[0] @@ -414,8 +331,8 @@ def unwrap_read_json_operator(self, op: ReadJsonOperator) -> str: context=self.context_e.value, variable_manager=self.vmanager, tool=self.tool, - apply_braces=True, - inside_braces=True, + apply_braces=True, + strquote_override=True ) return f'jsonSlurper.parseText(file("${{task.workDir}}/{arg}").text)' @@ -442,13 +359,7 @@ def unwrap_string_formatter(self, selector: StringFormatter) -> str: """ Translate Janis StringFormatter data type to Nextflow """ - if self.context_e == UnwrapContext.WORKFLOW: - expr = self.unwrap_string_formatter_workflow(selector) - else: - assert(self.tool) - assert(self.vmanager) - expr = self.unwrap_string_formatter_process(selector) - return expr + return self.unwrap_string_formatter_process(selector) def unwrap_string_formatter_process(self, selector: StringFormatter) -> str: # assert(self.tool) # n @@ -458,14 +369,19 @@ def unwrap_string_formatter_process(self, selector: StringFormatter) -> str: kwarg_replacements: dict[str, Any] = {} for k, v in selector.kwargs.items(): - if not isinstance(v, str): + # no need to add curly braces, don't quote the string. + if isinstance(v, str): + kwarg_replacements[k] = v + + # must add curly braces & unwrap + else: kwarg_replacements[k] = unwrap_expression( v, context=self.context_e.value, variable_manager=self.vmanager, tool=self.tool, apply_braces=True, - inside_braces=True, + strquote_override=True, ) arg_val = selector._format @@ -476,49 +392,6 @@ def unwrap_string_formatter_process(self, selector: StringFormatter) -> str: arg_val = arg_val.replace('\\', '\\\\') return arg_val - - def unwrap_string_formatter_workflow(self, selector: StringFormatter) -> str: - if len(selector.kwargs) == 0: - return self.unwrap(selector._format) - - kwarg_replacements: dict[str, Any] = {} - for k, v in selector.kwargs.items(): - kwarg_replacements[k] = self.unwrap(v) - - # workaround for channels - # need .first() at the moment to grab the value from a channel which only has a single value, - # but should guarantee in future this is correct for the channel - for key, val in kwarg_replacements.items(): - if val.startswith('ch_'): - kwarg_replacements[key] = f'{val}.first()' - - # reformat the selector format to be correct groovy syntax for use in workflow scope - text_format = self.reformat_stringformatter_format_for_workflow_scope(selector._format) - - # substitute in unwrapped var values - for k in selector.kwargs: - text_format = text_format.replace(f"{{{k}}}", f"{kwarg_replacements[k]}") - - return self.unwrap(text_format) - - def reformat_stringformatter_format_for_workflow_scope(self, old_format: str) -> str: - # reformat the selector format to be correct groovy syntax for use in workflow scope - # eg: '{tumor}--{normal}' -> '{tumor} + "--" + {normal}' - new_format: str = '' - matches = re.findall(stringformatter_matcher, old_format) - - # replace each segment of the old_format, adding '+' and double quotes if needed - for filler_text, var_text in matches: - if filler_text != '': - new_format += f' + "{filler_text}"' - elif var_text != '': - new_format += f' + {var_text}' - else: - raise RuntimeError - - # remove any beginning whitespace and '+' - new_format = new_format.lstrip(' +') - return new_format def unwrap_filename(self, fn: Filename, varname: Optional[str]=None) -> str: """ @@ -529,59 +402,39 @@ def unwrap_filename(self, fn: Filename, varname: Optional[str]=None) -> str: ${"generated.fastq.gz"} etc """ - prefix = self.unwrap(fn.prefix) or '' - varname = varname or '' - suffix = self.unwrap(fn.suffix) or '' - extension = self.unwrap(fn.extension) or '' - - # special prefix formatting - where ref is present - if varname != '' and prefix.strip('"') == 'generated': - prefix = '' - - # special suffix formatting - quote_suffix = True if suffix.startswith('"') and suffix.endswith('"') else False - suffix = suffix.strip('"') - if suffix != '': - if str(suffix).startswith("."): - suffix = str(suffix) - else: - suffix = f'-{suffix}' - if quote_suffix: - suffix = f'"{suffix}"' - - # inside curly braces (each component wrapped in string) - if self.apply_braces: - items = [prefix, varname, suffix, extension] - grouped_words = self.group_quoted_strings_in_list(items) - expr = ' + '.join(grouped_words) - return expr - - # not inside curly braces - if varname != '': - return f'{prefix}${{{varname}}}{suffix}{extension}' - else: - return f'{prefix}{suffix}{extension}' - - def group_quoted_strings_in_list(self, the_list: list[str]) -> list[str]: - groups: list[str] = [] - current_group: list[str] = [] - - for word in the_list: - if word != '': - if word.startswith('"') and word.endswith('"'): - current_group.append(word.strip('"')) + if any([isinstance(x, Selector) for x in [fn.prefix, fn.suffix, fn.extension]]): + kwargs = {} + fmt = '' + if fn.prefix is not None: + if isinstance(fn.prefix, str): + fmt += f'{fn.prefix}' else: - if len(current_group) > 0: - groups.append(f"\"{''.join(current_group)}\"") - groups.append(word) - current_group = [] - - # still words in current_group by time we reach end of list - if len(current_group) > 0: - groups.append(f"\"{''.join(current_group)}\"") - - return groups - + fmt += '{prefix}' + kwargs['prefix']=fn.prefix + if fn.suffix is not None: + if isinstance(fn.suffix, str): + fmt += f'{fn.suffix}' + else: + fmt += '{suffix}' + kwargs['suffix']=fn.suffix + if fn.extension is not None: + if isinstance(fn.extension, str): + fmt += f'{fn.extension}' + else: + fmt += '{extension}' + kwargs['extension']=fn.extension + + val = StringFormatter(fmt, **kwargs) + expr = unwrap_expression( + val=val, + context=self.context_e.value, + variable_manager=self.vmanager, + tool=self.tool, + ) + else: + expr = fn.generated_filename() + return expr + ### PROCESSES ### @@ -768,14 +621,12 @@ def unwrap_input_node(self, node: InputNode) -> Any: assert(self.vmanager) cvar = self.vmanager.get(node.id()).current if cvar.vtype == VariableType.STATIC: - # TODO debug make breakpoint. test = test_static_inputs() - should_quote = self.should_quote(cvar.value, cvar.value) - return nfgen_utils.to_groovy(cvar.value, quote_override=should_quote) + return nfgen_utils.to_groovy(cvar.value, quote_override=self.strquote_override) else: - qs_temp = deepcopy(self.quote_strings) - self.quote_strings = False + qs_temp = deepcopy(self.strquote_override) + self.strquote_override = False expr = self.unwrap(cvar.value) - self.quote_strings = qs_temp + self.strquote_override = qs_temp return expr def unwrap_step_tag_input(self, val: StepTagInput) -> Any: @@ -804,173 +655,3 @@ def unwrap_step_output_selector(self, sel: StepOutputSelector) -> Any: channel_name=channel_name, upstream_dtype=conn_out.outtype, ) - - - -""" -DEPRECATED - - - def unwrap(self, val: Any) -> Any: - \"""main public method\""" - - # add to operator stack if entity is a Selector - self.update_operator_stack(val, life_cycle='start') - - # do the unwrap - expr = self.unwrap_entity(val) - - # apply quotes if needed - if self.should_quote(val, expr): - expr = f'"{expr}"' - - # apply nextflow curly braces if needed - if self.should_apply_curly_braces(val): - expr = f'${{{expr}}}' - - # pop from operator stack if entity is a Selector - self.update_operator_stack(val, life_cycle='end') - return expr - - ### OPERATOR STACK - - \""" - --- operator_stack --- - - keeps track of how deep we are into Janis operators. - This is needed to properly enclose curly braces. For example: - - Janis: InputSelector("read", remove_file_extension=True) + "_fastqc.zip" - Janis: AddOperator(InputSelector()) - -> - Nextflow: "${read.simpleName}_fastqc.zip" - - The InputSelector function should appear in curly braces, while the "_fastqc.zip" should not. - We apply curly braces for the outermost context of janis operators. - eg Operator(Operator(Operator)) would apply curly braces only for the outermost Operator, not for each. - \""" - - def update_operator_stack(self, val: Any, life_cycle: str='start') -> None: - if isinstance(val, Selector) and type(val) not in self.operator_stack_ignore: - # start of main unwrap() function - if life_cycle == 'start': - self.operator_stack.append(val.__class__.__name__) - - # end of main unwrap() function - elif life_cycle == 'end': - if self.operator_stack[-1] == val.__class__.__name__: - self.operator_stack.pop(-1) - else: - raise NotImplementedError - - - def should_apply_curly_braces(self, val: Any) -> bool: - # TODO here address curly brace shit. - # raise NotImplementedError - # return False - if self.in_shell_script: - if len(self.operator_stack) == 1: - if self.operator_stack[0] == val.__class__.__name__: - return True - return False - - -standard operators - def unwrap_read_contents_operator(self, op: ReadContents) -> str: - arg = self.unwrap(op.args[0]) - return f"{arg}.text" - - def unwrap_read_json_operator(self, op: ReadJsonOperator) -> str: - arg = self.unwrap(op.args[0]) - if isinstance(arg, str) and arg.startswith('"') and arg.endswith('"'): - arg = arg.strip('"') - return f'jsonSlurper.parseText(file("${{task.workDir}}/{arg}").text)' - - def unwrap_join_operator(self, op: JoinOperator) -> str: - iterable = self.unwrap(op.args[0]) - separator = self.unwrap(op.args[1]) - return f"{iterable}.join({separator})" - - def unwrap_basename_operator(self, op: BasenameOperator) -> str: - arg = self.unwrap(op.args[0]) - return f"{arg}.name" - - def unwrap_nameroot_operator(self, op: NamerootOperator) -> str: - arg = self.unwrap(op.args[0]) - return f"{arg}.simpleName" - - def unwrap_nameext_operator(self, op: NameextOperator) -> str: - arg = self.unwrap(op.args[0]) - return f"{arg}.extension" - - def unwrap_transpose_operator(self, op: TransposeOperator) -> str: - raise NotImplementedError - - def unwrap_length_operator(self, op: LengthOperator) -> str: - arg = self.unwrap(op.args[0]) - return f"{arg}.size" - - def unwrap_range_operator(self, op: RangeOperator) -> str: - ceil = self.unwrap(op.args[0]) - return f'0..{ceil}' - - def unwrap_flatten_operator(self, op: FlattenOperator) -> str: - # TODO VALIDATE - arg = self.unwrap(op.args[0]) - return f'{arg}.flatten()' - - def unwrap_apply_prefix_operator(self, op: ApplyPrefixOperator) -> str: - prefix = self.unwrap(op.args[0]) - iterable = self.unwrap(op.args[1]) - return f"{iterable}.map{{item -> {prefix} + item}}" - - def unwrap_file_size_operator(self, op: FileSizeOperator) -> str: - fbytes = self.unwrap(op.args[0]) - return f"({fbytes}.size / 1048576)" - - def unwrap_first_operator(self, op: FirstOperator) -> str: - resolved_list = self.unwrap(op.args[0]) - return f'{resolved_list}.find{{ it != null }}' - - def unwrap_filter_null_operator(self, op: FilterNullOperator) -> str: - iterable = self.unwrap(op.args[0]) - return f"{iterable}.filter{{item -> item != null}}" - - def unwrap_replace_operator(self, op: ReplaceOperator) -> str: - base = self.unwrap(op.args[0]) - pattern = self.unwrap(op.args[1]) - replacement = self.unwrap(op.args[2]) - return f"{base}.replaceAll({pattern}, {replacement})" - - - # logical operators - def unwrap_is_defined_operator(self, op: IsDefined) -> str: - # this is a little weird. not a 1:1 mapping. - # assume everything is defined and set to null at least. - arg = self.unwrap(op.args[0]) - # return f"{arg} != null" - return f"{arg}" - - def unwrap_if_operator(self, op: If) -> str: - cond = self.unwrap(op.args[0]) - v1 = self.unwrap(op.args[1]) - v2 = self.unwrap(op.args[2]) - return f"{cond} ? {v1} : {v2}" - - def unwrap_assert_not_null_operator(self, op: AssertNotNull) -> str: - arg = self.unwrap(op.args[0]) - return f'assert {arg[0]} != null' - - def unwrap_floor_operator(self, op: FloorOperator) -> str: - arg = self.unwrap(op.args[0]) - return f"Math.floor({arg})" - - def unwrap_ceil_operator(self, op: CeilOperator) -> str: - arg = self.unwrap(op.args[0]) - return f"Math.ceil({arg})" - - def unwrap_round_operator(self, op: RoundOperator) -> str: - arg = self.unwrap(op.args[0]) - return f"Math.round({arg})" - -""" \ No newline at end of file diff --git a/notes.txt b/notes.txt index b08c0afed..cbed78a78 100644 --- a/notes.txt +++ b/notes.txt @@ -1,7 +1,14 @@ + + + --------------- --- GENERAL --- --------------- +DOING +- apply_braces +- filename -> StringFormatter, unwrap StringFormatter instead. + CHANGES [TEST THESE]: - WDL runtime duration removed From 52e0faac9a08e034fb94366e02d85d6faa437cdf Mon Sep 17 00:00:00 2001 From: Grace Hall <graceavahall@gmail.com> Date: Mon, 6 Nov 2023 20:52:07 +1100 Subject: [PATCH 17/32] nextflow translate test suite passing. TODO - messages: print to top of file - fix wdl translate --- janis_core/tests/test_translation_nextflow.py | 117 ++++++------------ .../nextflow/generate/workflow/call.py | 13 +- notes.txt | 5 +- 3 files changed, 50 insertions(+), 85 deletions(-) diff --git a/janis_core/tests/test_translation_nextflow.py b/janis_core/tests/test_translation_nextflow.py index 257d08b3a..3cb4c46a9 100644 --- a/janis_core/tests/test_translation_nextflow.py +++ b/janis_core/tests/test_translation_nextflow.py @@ -279,15 +279,15 @@ def _get_process_output_lines(text: str) -> list[str]: sec_end = r'(script:)|(exec:)' return _lines_within_section(text, sec_start, sec_end) -# def _get_process_prescript_lines(text: str) -> list[str]: -# sec_start = r'script:' -# sec_end = r'"""' -# return _lines_within_section(text, sec_start, sec_end) +def _get_process_prescript_lines(text: str) -> list[str]: + sec_start = r'script:' + sec_end = r'"""' + return _lines_within_section(text, sec_start, sec_end) -# def _get_process_script_lines(text: str) -> list[str]: -# sec_start = r'"""' -# sec_start = r'"""' -# return _lines_within_section(text, sec_start, sec_end) +def _get_process_script_lines(text: str) -> list[str]: + sec_start = r'"""' + sec_end = r'"""' + return _lines_within_section(text, sec_start, sec_end) def _get_task_call_lines(text: str, task_name: str) -> list[str]: out: list[str] =[] @@ -309,7 +309,6 @@ def _lines_within_section(text: str, sec_start: str, sec_end: str) -> list[str]: lines = text.split('\n') # split into lines lines = [ln.strip(' ') for ln in lines] # strip indents lines = [ln for ln in lines if not ln == ''] # remove empty lines - lines = [ln for ln in lines if not ln == '"""'] # remove script """ start end within_section: bool = False for line in lines: if re.findall(sec_start, line) and not within_section: @@ -1761,7 +1760,7 @@ def test_secondaries_edge_basename(self) -> None: actual_outputs = {out.get_string() for out in process.outputs} print(process.outputs[0].get_string()) expected_outputs = { - 'tuple path("${bam[0].name}"), path("*.bai"), emit: out' + 'tuple path("${bam[0]}"), path("*.bai"), emit: out' } self.assertEqual(actual_outputs, expected_outputs) @@ -2418,8 +2417,8 @@ def test_filename_generated_tool(self): 'val "*", emit: out', 'script:', 'def file_inp_optional = file_inp_optional.simpleName != params.NULL_VALUE ? file_inp_optional : ""', - 'def generated_file_inp = generated_file_inp != params.NULL_VALUE ? generated_file_inp : "${file_inp.baseName}.transformed.fnp"', - 'def generated_file_inp_optional = generated_file_inp_optional != params.NULL_VALUE ? generated_file_inp_optional : "${file_inp_optional.baseName}.optional.txt"', + 'def generated_file_inp = generated_file_inp != params.NULL_VALUE ? generated_file_inp : "${file_inp.simpleName}.transformed.fnp"', + 'def generated_file_inp_optional = generated_file_inp_optional != params.NULL_VALUE ? generated_file_inp_optional : "${file_inp_optional.simpleName}.optional.txt"', 'def generated_inp = generated_inp != params.NULL_VALUE ? generated_inp : "${inp}"', 'def generated_inp_optional = generated_inp_optional != params.NULL_VALUE ? generated_inp_optional : "${inp_optional}"', 'def inp_optional = inp_optional != params.NULL_VALUE ? inp_optional : ""', @@ -2471,7 +2470,7 @@ def test_filename_types2(self) -> None: actual_prescript = simplify_prescript(process.pre_script) expected_prescript = [ - 'def inp2 = inp2 != params.NULL_VALUE ? inp2 : "${inp1.baseName}.processed.txt"' + 'def inp2 = inp2 != params.NULL_VALUE ? inp2 : "${inp1.simpleName}.processed.txt"' ] self.assertEqual(len(actual_prescript), len(expected_prescript)) for ln in expected_prescript: @@ -3638,7 +3637,7 @@ def test_first_selector(self): print(mainstr) actual = _get_task_call_lines(mainstr, 'PRINT') expected = [ - "[params.mystring, GET_STRING.out.out].find{ it != null }" + "[params.mystring, GET_STRING.out.out].first()" ] self.assertEqual(len(actual), len(expected)) for arg in expected: @@ -3675,31 +3674,36 @@ def test_process_basics(self) -> None: # actual actual_inputs = _get_process_input_lines(process_text) actual_outputs = _get_process_output_lines(process_text) - actual_prescript = simplify_prescript(process_text) - actual_script = simplify_script(process_text) + actual_prescript = _get_process_prescript_lines(process_text) + actual_script = _get_process_script_lines(process_text) # expected expected_inputs = [ - 'path bam_sorted' + 'path bam_sorted', + 'path reads_1', + 'val in_filename', ] expected_outputs = [ 'tuple path("${bam_sorted}"), path("*.bai"), emit: bam_sorted_indexed', 'path "${reads_1}.trimmed${reads_1.extension}", emit: trimmed_reads_1' ] expected_prescript = [ + 'def in_filename = in_filename != params.NULL_VALUE ? in_filename : "generated"', ] expected_script = [ - 'samtools index', - '-b', - '${bam_sorted}', + 'samtools index \\', + '-b \\', + '${bam_sorted} \\', + '${in_filename}', ] # checks self.assertEqual(actual_inputs, expected_inputs) self.assertEqual(actual_outputs, expected_outputs) self.assertEqual(actual_prescript, expected_prescript) - self.assertEqual(actual_script, expected_inputs) + self.assertEqual(actual_script, expected_script) + @unittest.skip('should probably implement this') def test_workflow_basics(self) -> None: # workflow input # workflow call @@ -3873,16 +3877,7 @@ def test_complex(self) -> None: self.assertIn('--Concat ${"> " + in_str + ".log"}', script) self.assertIn('--Math ${Math.ceil((in_file.size / 1048576) / (1024 * 1024 * 1024) + 20)}', script) - def test_index_operator_secondaries(self) -> None: - self.assertIn("--IndexOperatorSecondariesBam ${in_bam_bai}", self.script) - self.assertIn("--IndexOperatorSecondariesBai ${in_bam_bai}", self.script) - def test_index_operator_secondaries_array(self) -> None: - print(self.script) - self.assertIn("--IndexOperatorArraySecondariesBams ${in_bam_bai_arr[0]}", self.script) - self.assertIn("--IndexOperatorArraySecondariesBais ${in_bam_bai_arr[1]}", self.script) - - def update_variables(tool: Tool, vmanager: VariableManager) -> None: for tinput in _get_param_inputs(tool, vmanager): @@ -3915,7 +3910,7 @@ def test_input_node_channel(self) -> None: node = wf.input_nodes['inFile'] variable_manager = init_variable_manager_for_task(wf) update_variables(wf, variable_manager) - actual = nextflow.unwrap_expression( + actual = unwrap_expression( val=node, context='workflow', variable_manager=variable_manager, @@ -3931,7 +3926,7 @@ def test_input_node_param(self) -> None: node = wf.input_nodes['inStr'] variable_manager = init_variable_manager_for_task(wf) update_variables(wf, variable_manager) - actual = nextflow.unwrap_expression( + actual = unwrap_expression( val=node, context='workflow', variable_manager=variable_manager, @@ -3947,7 +3942,7 @@ def test_step_connection(self) -> None: src = sources['inp'] variable_manager = init_variable_manager_for_task(wf) update_variables(wf, variable_manager) - actual = nextflow.unwrap_expression( + actual = unwrap_expression( val=src, context='workflow', variable_manager=variable_manager, @@ -3963,7 +3958,7 @@ def test_alias_selector_wf(self) -> None: src = sources['inp'] variable_manager = init_variable_manager_for_task(wf) update_variables(wf, variable_manager) - actual = nextflow.unwrap_expression( + actual = unwrap_expression( val=src, context='workflow', variable_manager=variable_manager, @@ -3980,13 +3975,13 @@ def test_first_operator_wf(self) -> None: src = sources['inp'] variable_manager = init_variable_manager_for_task(wf) update_variables(wf, variable_manager) - actual = nextflow.unwrap_expression( + actual = unwrap_expression( val=src, context='workflow', variable_manager=variable_manager, strquote_override=True ) - expected = '[params.mystring, GET_STRING.out.out].find{ it != null }' + expected = '[params.mystring, GET_STRING.out.out].first()' self.assertEqual(actual, expected) def test_index_operator_wf(self) -> None: @@ -3996,7 +3991,7 @@ def test_index_operator_wf(self) -> None: src = sources['inp'] variable_manager = init_variable_manager_for_task(wf) update_variables(wf, variable_manager) - actual = nextflow.unwrap_expression( + actual = unwrap_expression( val=src, context='workflow', variable_manager=variable_manager, @@ -4011,33 +4006,17 @@ class TestUnwrapStringFormatter(unittest.TestCase): def setUp(self) -> None: reset_globals() - def test_basic(self): - settings.translate.nextflow.ENTITY = 'tool' - tool = BasicTestTool() - tool = do_preprocessing_tool(tool) - variable_manager = init_variable_manager_for_task(tool) - sf = StringFormatter("no format") - actual = nextflow.unwrap_expression( - val=sf, - context='process_script', - variable_manager=variable_manager, - tool=tool, - in_shell_script=True - ) - self.assertEqual("no format", actual) - def test_string(self): settings.translate.nextflow.ENTITY = 'tool' tool = BasicTestTool() tool = do_preprocessing_tool(tool) variable_manager = init_variable_manager_for_task(tool) sf = StringFormatter("there's a {str_arg} arg", str_arg="string") - actual = nextflow.unwrap_expression( + actual = unwrap_expression( val=sf, context='process_script', variable_manager=variable_manager, tool=tool, - in_shell_script=True ) self.assertEqual("there\'s a string arg", actual) @@ -4047,12 +4026,11 @@ def test_input_selector_process_input(self): tool = do_preprocessing_tool(tool) variable_manager = init_variable_manager_for_task(tool) sf = StringFormatter("an input {arg}", arg=InputSelector("testtool")) - actual = nextflow.unwrap_expression( + actual = unwrap_expression( val=sf, context='process_script', variable_manager=variable_manager, tool=tool, - in_shell_script=True, ) self.assertEqual("an input ${testtool}", actual) @@ -4062,12 +4040,11 @@ def test_input_selector_param_input(self): step = wf.step_nodes["stp1"] variable_manager = init_variable_manager_for_task(step.tool) sf = StringFormatter("an input {arg}", arg=InputSelector("compressionLevel")) - actual = nextflow.unwrap_expression( + actual = unwrap_expression( val=sf, context='process_script', variable_manager=variable_manager, tool=step.tool, - in_shell_script=True ) expected = "an input ${compression_level}" self.assertEqual(actual, expected) @@ -4082,12 +4059,11 @@ def test_two_params(self): username=InputSelector("user"), password=InputSelector("static"), ) - actual = nextflow.unwrap_expression( + actual = unwrap_expression( val=sf, context='process_script', variable_manager=variable_manager, tool=tool, - in_shell_script=True ) self.assertEqual("${user}:${static}", actual) @@ -4101,23 +4077,14 @@ def test_escaped_characters(self): username=InputSelector("user"), password=InputSelector("static"), ) - actual_scripting = nextflow.unwrap_expression( - val=sf, - context='process_script', - variable_manager=variable_manager, - tool=tool, - in_shell_script=False - ) - actual_shell = nextflow.unwrap_expression( + actual_script = unwrap_expression( val=sf, context='process_script', variable_manager=variable_manager, tool=tool, - in_shell_script=True ) - print(actual_shell) - self.assertEqual("user\\tstatic", actual_scripting) - self.assertEqual("${user}\\\\t${static}", actual_shell) + print(actual_script) + self.assertEqual("${user}\\\\t${static}", actual_script) def test_expression(self): settings.translate.nextflow.ENTITY = 'tool' @@ -4129,12 +4096,11 @@ def test_expression(self): name=InputSelector("testtool"), items=JoinOperator(InputSelector("arrayInp"), separator=";"), ) - res = nextflow.unwrap_expression( + res = unwrap_expression( val=sf, context='process_script', variable_manager=variable_manager, tool=tool, - in_shell_script=True ) self.assertEqual("${testtool}:${array_inp.join(\";\")}", res) @@ -4148,9 +4114,8 @@ def test_argument(self) -> None: arg=arg, tool=step.tool, vmanager=vmanager, - shell_quote=True ) - expected = '--java-options "-Xmx${8 * 3 / 4}G ${compression_level ? "-Dsamjdk.compress_level=" + compression_level : ""} ${[java_options, []].find{ it != null }.join(" ")}"' + expected = '--java-options -Xmx${8 * 3 / 4}G ${compression_level ? "-Dsamjdk.compress_level=" + compression_level : ""} ${[java_options, []].first().join(" ")}' self.assertEqual(actual, expected) diff --git a/janis_core/translations/nextflow/generate/workflow/call.py b/janis_core/translations/nextflow/generate/workflow/call.py index 22567d9b3..6cf63917d 100644 --- a/janis_core/translations/nextflow/generate/workflow/call.py +++ b/janis_core/translations/nextflow/generate/workflow/call.py @@ -220,11 +220,14 @@ def generate_code_file(self) -> str: return f'params.{param.name}' def generate_regular(self) -> str: - arg = unwrap_expression( - val=self.src, - context='workflow', - variable_manager=self.vmanager, - ) + if self.src is not None: + arg = unwrap_expression( + val=self.src, + context='workflow', + variable_manager=self.vmanager, + ) + else: + arg = None if isinstance(arg, list): raise NotImplementedError diff --git a/notes.txt b/notes.txt index cbed78a78..1cf6592bc 100644 --- a/notes.txt +++ b/notes.txt @@ -1,13 +1,10 @@ - - --------------- --- GENERAL --- --------------- DOING -- apply_braces -- filename -> StringFormatter, unwrap StringFormatter instead. +- messages -> output file CHANGES [TEST THESE]: - WDL runtime duration removed From 774746c671cbe80ef46f4b83c2a17a3bb48d582a Mon Sep 17 00:00:00 2001 From: Grace Hall <graceavahall@gmail.com> Date: Wed, 29 Nov 2023 17:14:25 +1100 Subject: [PATCH 18/32] chaos --- janis_core/cli.py | 13 +- janis_core/ingestion/cwl/expressions/main.py | 7 +- janis_core/ingestion/cwl/parsing/tool.py | 23 +- janis_core/ingestion/cwl/types.py | 15 +- .../galaxy/internal_model/tool/containers.py | 5 +- .../ingestion/galaxy/janis_mapping/tool.py | 2 +- janis_core/ingestion/wdl/parsing/__init__.py | 1 - .../ingestion/wdl/parsing/command/parsers.py | 68 +- janis_core/messages/main.py | 7 + janis_core/operators/logical.py | 3 +- janis_core/operators/operator.py | 4 + janis_core/operators/standard.py | 8 +- .../tests/data/cwl/tools/cutadapt-paired.cwl | 53 ++ .../expressions/picard_MarkDuplicates.cwl | 122 +++ .../data/cwl/tools/picard_MarkDuplicates.cwl | 122 +++ .../tests/data/cwl/tools/picard_SortSam.cwl | 72 ++ .../cwl/tools/requirements/minimap2_paf.cwl | 83 ++ janis_core/tests/mock/__init__.py | 5 + janis_core/tests/mock/galaxy/__init__.py | 48 ++ .../mock/{ => galaxy}/mock_components.py | 8 +- .../tests/mock/{ => galaxy}/mock_entities.py | 0 .../tests/mock/{ => galaxy}/mock_metadata.py | 0 .../tests/mock/{ => galaxy}/mock_params.py | 0 .../tests/mock/{ => galaxy}/mock_tool.py | 0 .../tests/mock/{ => galaxy}/mock_workflow.py | 0 .../tests/mock/{ => galaxy}/mock_xmltool.py | 0 janis_core/tests/mock/janis/__init__.py | 7 + janis_core/tests/mock/janis/mock_tool.py | 12 + janis_core/tests/mock/janis/mock_workflow.py | 6 + janis_core/tests/test_ingestion_cwl.py | 16 +- janis_core/tests/test_ingestion_galaxy.py | 18 +- janis_core/tests/test_ingestion_wdl.py | 94 ++- janis_core/tests/test_janis_translate.py | 116 +++ janis_core/tests/test_translation_cwl.py | 153 +++- janis_core/tests/test_translation_nextflow.py | 39 +- janis_core/tests/test_translation_wdl.py | 36 +- janis_core/tests/testtools/basics.py | 1 - janis_core/tests/testworkflows/basics.py | 74 +- janis_core/tests/testworkflows/outputs.py | 34 +- janis_core/tool/commandtool.py | 18 +- janis_core/translations/common/__init__.py | 3 +- .../common/preprocessing/__init__.py | 3 +- .../common/preprocessing/wrap/__init__.py | 3 + .../common/preprocessing/wrap/main.py | 32 + janis_core/translations/cwl/main.py | 582 +++++++------ janis_core/translations/main.py | 16 +- .../translations/nextflow/generate/config.py | 4 +- .../nextflow/generate/files/__init__.py | 5 +- .../nextflow/generate/files/main.py | 80 +- .../nextflow/generate/files/process.py | 111 ++- .../nextflow/generate/process/directives.py | 89 +- .../nextflow/generate/process/main.py | 3 +- .../process/outputs/factory_cmdtool.py | 22 - .../generate/process/script/prescript.py | 4 + janis_core/translations/nextflow/main.py | 379 ++++----- .../nextflow/model/files/__init__.py | 1 + .../nextflow/model/files/files.py | 13 + .../nextflow/model/process/directives.py | 24 +- .../nextflow/model/process/inputs.py | 3 +- janis_core/translations/nextflow/nulls.py | 85 +- janis_core/translations/todisk.py | 198 +++++ janis_core/translations/translationbase.py | 777 ++++++++++-------- janis_core/translations/wdl/main.py | 156 ++-- janis_core/types/common_data_types.py | 42 + janis_core/workflow/workflow.py | 4 +- notes.txt | 240 +++++- 66 files changed, 2851 insertions(+), 1321 deletions(-) create mode 100755 janis_core/tests/data/cwl/tools/cutadapt-paired.cwl create mode 100755 janis_core/tests/data/cwl/tools/expressions/picard_MarkDuplicates.cwl create mode 100755 janis_core/tests/data/cwl/tools/picard_MarkDuplicates.cwl create mode 100755 janis_core/tests/data/cwl/tools/picard_SortSam.cwl create mode 100755 janis_core/tests/data/cwl/tools/requirements/minimap2_paf.cwl create mode 100644 janis_core/tests/mock/galaxy/__init__.py rename janis_core/tests/mock/{ => galaxy}/mock_components.py (92%) rename janis_core/tests/mock/{ => galaxy}/mock_entities.py (100%) rename janis_core/tests/mock/{ => galaxy}/mock_metadata.py (100%) rename janis_core/tests/mock/{ => galaxy}/mock_params.py (100%) rename janis_core/tests/mock/{ => galaxy}/mock_tool.py (100%) rename janis_core/tests/mock/{ => galaxy}/mock_workflow.py (100%) rename janis_core/tests/mock/{ => galaxy}/mock_xmltool.py (100%) create mode 100644 janis_core/tests/mock/janis/__init__.py create mode 100644 janis_core/tests/mock/janis/mock_tool.py create mode 100644 janis_core/tests/mock/janis/mock_workflow.py create mode 100644 janis_core/translations/common/preprocessing/wrap/__init__.py create mode 100644 janis_core/translations/common/preprocessing/wrap/main.py create mode 100644 janis_core/translations/todisk.py diff --git a/janis_core/cli.py b/janis_core/cli.py index 5f06ee62e..2638a13c2 100644 --- a/janis_core/cli.py +++ b/janis_core/cli.py @@ -17,7 +17,7 @@ def main() -> None: def do_translate(args: dict[str, str]) -> None: internal = ingest(args['infile'], args['from']) - return translate(internal, args['to'], export_path=args['outdir']) + return translate(internal, dest_fmt=args['to'], mode=args['mode'], export_path=args['outdir'], as_workflow=args['as_workflow']) def interpret_args(args: argparse.Namespace) -> dict[str, str]: out: dict[str, str] = {} @@ -26,10 +26,14 @@ def interpret_args(args: argparse.Namespace) -> dict[str, str]: out['from'] = val elif key == 'to': out['to'] = val + elif key == 'mode': + out['mode'] = val elif key == 'infile': out['infile'] = val elif key == 'output_dir': out['outdir'] = val + elif key == 'as_workflow': + out['as_workflow'] = val return out def parse_args(sysargs: list[str]) -> argparse.Namespace: @@ -58,6 +62,11 @@ def parse_args(sysargs: list[str]) -> argparse.Namespace: type=str, default="translated" ) + parser.add_argument( + "--as-workflow", + action="store_true", + help="For tool translation: wraps output tool in workflow.", + ) parser.add_argument( "--mode", help="Translate mode (default: regular). Controls extent of tool translation\n\ @@ -66,7 +75,7 @@ def parse_args(sysargs: list[str]) -> argparse.Namespace: - extended: full translation of all inputs & CLI command", type=str, choices=["skeleton", "regular", "extended"], - default="regular" + default="extended" ) return parser.parse_args(sysargs) diff --git a/janis_core/ingestion/cwl/expressions/main.py b/janis_core/ingestion/cwl/expressions/main.py index 487892778..3af82505f 100644 --- a/janis_core/ingestion/cwl/expressions/main.py +++ b/janis_core/ingestion/cwl/expressions/main.py @@ -6,6 +6,8 @@ from lark import Token from typing import Tuple, Any, Optional import regex as re +from copy import deepcopy + import janis_core as j from janis_core.messages import log_error from janis_core.messages import load_loglines @@ -82,7 +84,10 @@ def parse_implicit_expr( tool_uuid: str, error_token_override: Optional[str]=None ) -> Any: - new_expr = f'$({expr})' + if '$(' not in expr and '${' not in expr: + new_expr = f'$({expr})' + else: + new_expr = deepcopy(expr) result, success = ExpressionParser().parse(new_expr) # is expression diff --git a/janis_core/ingestion/cwl/parsing/tool.py b/janis_core/ingestion/cwl/parsing/tool.py index 4392f369c..83669bded 100644 --- a/janis_core/ingestion/cwl/parsing/tool.py +++ b/janis_core/ingestion/cwl/parsing/tool.py @@ -670,7 +670,7 @@ def fallback(self) -> None: def do_parse(self) -> Optional[ToolArgument]: # I don't know when a clt argument would be a string if isinstance(self.entity, str): - res, success = parse_expression(self.entity, self.tool_uuid) + res, success = parse_expression(self.entity, self.tool_uuid, implicit_wrapping=True) if res is None: return None arg = ToolArgument(res) @@ -797,18 +797,23 @@ def do_parse(self) -> ToolOutput: # datatype dtype = ingest_cwl_type(self.entity.type, self.cwl_utils, self.entity, self.tool_uuid, secondaries=self.entity.secondaryFiles) - if isinstance(dtype, Stdout): - return self.do_parse_stdout(identifier, dtype) + if isinstance(dtype, Stdout | Stderr): + return self.do_parse_streams(identifier, dtype) else: return self.do_parse_generic(identifier, dtype) - def do_parse_stdout(self, identifier: str, dtype: DataType) -> ToolOutput: + def do_parse_streams(self, identifier: str, dtype: DataType) -> ToolOutput: selector = None if self.clt.stdout is not None: expr, success = parse_expression(self.clt.stdout, self.tool_uuid) - dtype = File() - selector = expr + elif self.clt.stderr is not None: + expr, success = parse_expression(self.clt.stderr, self.tool_uuid) + else: + raise RuntimeError + + dtype = File() + selector = expr out = ToolOutput( tag=identifier, @@ -823,15 +828,15 @@ def do_parse_generic(self, identifier: str, dtype: DataType) -> ToolOutput: if hasattr(self.entity, 'janis_collection_override'): selector = self.entity.janis_collection_override - elif self.entity.outputBinding: - if self.entity.outputBinding.glob: + elif self.entity.outputBinding is not None: + if self.entity.outputBinding.glob is not None: res, success = parse_expression(self.entity.outputBinding.glob, self.tool_uuid) if isinstance(res, str) and not res.startswith('__TOKEN'): selector = WildcardSelector(res) else: selector = res - elif self.entity.outputBinding.outputEval: + elif self.entity.outputBinding.outputEval is not None: res, success = parse_expression(self.entity.outputBinding.outputEval, self.tool_uuid) if isinstance(res, str) and not res.startswith('__TOKEN'): selector = WildcardSelector(res) diff --git a/janis_core/ingestion/cwl/types.py b/janis_core/ingestion/cwl/types.py index e1a6bfaa0..b00d099bb 100644 --- a/janis_core/ingestion/cwl/types.py +++ b/janis_core/ingestion/cwl/types.py @@ -3,6 +3,7 @@ import sys import inspect +from janis_core.ingestion.cwl.identifiers import get_id_entity from janis_core.messages import ErrorCategory from janis_core.messages import log_warning from janis_core.utils.errors import UnsupportedError @@ -161,6 +162,10 @@ def __init__( self.secondaries = secondaries self.tool_uuid = tool_uuid self.secondary_patterns: list[str] = self.preprocess_secondary_file_patterns(secondaries) + + @property + def entity_name(self) -> str: + return get_id_entity(self.cwl_entity.id) def preprocess_secondary_file_patterns(self, secondaries: Optional[str | list[str]]) -> list[str]: out: list[str] = [] @@ -223,7 +228,7 @@ def file_subtype(self) -> DataType: if len(filetypes) > 1: filetypes.sort(key=lambda x: file_priorities.get(x.__name__, 999)) ftype = filetypes[0] - msg = f'entity supports multiple edam formats. selected {ftype.__name__} as fallback.' + msg = f'{self.entity_name}: supports multiple edam formats. selected {ftype.__name__} as fallback.' log_warning(self.tool_uuid, msg, ErrorCategory.DATATYPE) return ftype() @@ -274,7 +279,7 @@ def from_cwl_inner_type(self, cwl_type: Any) -> DataType: inner = Int() else: if settings.datatypes.ALLOW_UNPARSEABLE_DATATYPES: - msg = f"unsupported datatype: {cwl_type}. treated as generic File." + msg = f"{self.entity_name}: unsupported datatype {cwl_type}. treated as generic File." log_warning(self.tool_uuid, msg, ErrorCategory.DATATYPE) inner = File() else: @@ -327,7 +332,7 @@ def from_cwl_inner_type(self, cwl_type: Any) -> DataType: selected = dtypes_w_categories[0][1] # print user message - msg = f'entity supports multiple datatypes: {dtype_names}. selected {selected.__class__.__name__} as fallback.' + msg = f'{self.entity_name}: supports multiple datatypes {dtype_names}. selected {selected.__class__.__name__} as fallback.' log_warning(self.tool_uuid, msg, ErrorCategory.DATATYPE) return selected @@ -348,7 +353,7 @@ def from_cwl_inner_type(self, cwl_type: Any) -> DataType: else: if settings.datatypes.ALLOW_UNPARSEABLE_DATATYPES: - msg = f"Unsupported datatype: {type(cwl_type).__name__}. Treated as a file." + msg = f"{self.entity_name}: unsupported datatype {type(cwl_type).__name__}. Treated as a file." log_warning(self.tool_uuid, msg, ErrorCategory.DATATYPE) return File(optional=False) else: @@ -382,7 +387,7 @@ def get_data_type_from_secondaries(self) -> DataType: # if success: # raise NotImplementedError # else: - msg = f'could not parse secondaries format from javascript expression. treated as generic File with secondaries.' + msg = f'{self.entity_name}: Could not parse datatype from javascript expression. Treated as generic File with secondaries.' log_warning(self.tool_uuid, msg, ErrorCategory.DATATYPE) return GenericFileWithSecondaries(secondaries=[]) diff --git a/janis_core/ingestion/galaxy/internal_model/tool/containers.py b/janis_core/ingestion/galaxy/internal_model/tool/containers.py index 46657d010..184caafd3 100644 --- a/janis_core/ingestion/galaxy/internal_model/tool/containers.py +++ b/janis_core/ingestion/galaxy/internal_model/tool/containers.py @@ -1,5 +1,6 @@ +from galaxy.tool_util.deps.mulled.util import quay_versions from galaxy.tool_util.deps.mulled.util import v2_image_name from galaxy.tool_util.deps.mulled.util import build_target @@ -21,7 +22,9 @@ def resolve_dependencies_as_container(xmltool: XMLTool) -> str: elif len(xmltool.metadata.requirements) == 1: req = xmltool.metadata.requirements[0] - return f'quay.io/biocontainers/{req.name}:{req.version}' + tags = quay_versions('biocontainers', req.name) + version_tags = [x for x in tags if x.startswith(req.version)] + return f'quay.io/biocontainers/{req.name}:{version_tags[0]}' else: items = [build_target(req.name, version=req.version) for req in xmltool.metadata.requirements] diff --git a/janis_core/ingestion/galaxy/janis_mapping/tool.py b/janis_core/ingestion/galaxy/janis_mapping/tool.py index 81304e7a1..840aedd73 100644 --- a/janis_core/ingestion/galaxy/janis_mapping/tool.py +++ b/janis_core/ingestion/galaxy/janis_mapping/tool.py @@ -77,7 +77,7 @@ def to_janis_tool_input(internal_inp: InputComponent) -> ToolInput: """ # these should be the janis ToolInput defaults prefix: Optional[str] = None - separate: bool = True + separate: Optional[bool] = None # derive special attributes in case of flag tool input if isinstance(internal_inp, Flag): diff --git a/janis_core/ingestion/wdl/parsing/__init__.py b/janis_core/ingestion/wdl/parsing/__init__.py index 045273cad..8f3640a53 100644 --- a/janis_core/ingestion/wdl/parsing/__init__.py +++ b/janis_core/ingestion/wdl/parsing/__init__.py @@ -1,3 +1,2 @@ -from .command import main from .task import parse_task \ No newline at end of file diff --git a/janis_core/ingestion/wdl/parsing/command/parsers.py b/janis_core/ingestion/wdl/parsing/command/parsers.py index 3740df65f..074ce82bc 100644 --- a/janis_core/ingestion/wdl/parsing/command/parsers.py +++ b/janis_core/ingestion/wdl/parsing/command/parsers.py @@ -6,13 +6,29 @@ import WDL +from typing import Any import regex as re from ..expressions import parse_expr from ..patterns import FLAG, OPTION from .cmdline import CmdLine + +input_types = ( + WDL.Type.Boolean, + WDL.Type.Int, + WDL.Type.Float, + WDL.Type.String, + WDL.Type.File, + WDL.Type.Directory, + WDL.Type.Array, + WDL.Type.Map, + WDL.Type.Pair, + WDL.Type.StructInstance +) + class ComponentParser(ABC): - def __init__(self, ctoken: str | WDL.Expr.Placeholder, ntoken: str | WDL.Expr.Placeholder) -> None: + def __init__(self, task: WDL.Tree.Task, ctoken: str | WDL.Expr.Placeholder, ntoken: str | WDL.Expr.Placeholder) -> None: + self.task = task self.ctoken = ctoken self.ntoken = ntoken @@ -22,23 +38,33 @@ def passes_check(self) -> bool: ... @abstractmethod def update_command_tool(self, internal: CommandToolBuilder, ptr: int) -> int: ... + def is_input(self, token: Any) -> bool: + if self.task.inputs is None: + return False + if not isinstance(token, WDL.Expr.Ident): + return False + for inp in self.task.inputs: + if inp.name == token.name: + return True + return False + + class PrefixExprOptionParser(ComponentParser): - # linked to input def passes_check(self) -> bool: - return False if isinstance(self.ctoken, str) and isinstance(self.ntoken, WDL.Expr.Placeholder): if re.match(OPTION, self.ctoken): - expr = parse_expr(self.ntoken) - if is_positional_expr(self.ntoken): - return True + if isinstance(self.ntoken, WDL.Expr.Placeholder): + if isinstance(self.ntoken.expr, WDL.Expr.Get): + if self.is_input(self.ntoken.expr.expr): + return True return False def update_command_tool(self, internal: CommandToolBuilder, ptr: int) -> int: raise NotImplementedError + class ExprOptionParser(ComponentParser): - # linked to input def passes_check(self) -> bool: return False @@ -46,22 +72,38 @@ def passes_check(self) -> bool: def update_command_tool(self, internal: CommandToolBuilder, ptr: int) -> int: raise NotImplementedError + class FlagParser(ComponentParser): - # linked to input def passes_check(self) -> bool: + if isinstance(self.ctoken, WDL.Expr.Placeholder): + if isinstance(self.ctoken.expr, WDL.Expr.Get): + if self.is_input(self.ctoken.expr.expr): + if isinstance(self.ctoken.expr.type, WDL.Type.Boolean): + return True return False def update_command_tool(self, internal: CommandToolBuilder, ptr: int) -> int: - raise NotImplementedError + input_name = str(self.ctoken.expr.expr.name) + tinput = [inp for inp in internal._inputs if inp.id() == input_name][0] + truevalue = self.ctoken.options['true'] if self.ctoken.options['true'] != '' else None + falsevalue = self.ctoken.options['false'] if self.ctoken.options['false'] != '' else None + if truevalue is not None and falsevalue is not None: + raise RuntimeError + elif truevalue is not None: + tinput.prefix = truevalue + else: + tinput.prefix = falsevalue + tinput.position = ptr + 1 + return 1 + class PositionalParser(ComponentParser): - # linked to input def passes_check(self) -> bool: if isinstance(self.ctoken, WDL.Expr.Placeholder): if isinstance(self.ctoken.expr, WDL.Expr.Get): - if isinstance(self.ctoken.expr.expr, WDL.Expr.Ident): + if self.is_input(self.ctoken.expr.expr): return True return False @@ -71,6 +113,7 @@ def update_command_tool(self, internal: CommandToolBuilder, ptr: int) -> int: tinput.position = ptr + 1 return 1 # move to next token + class ArgumentParser(ComponentParser): # not linked to input @@ -111,6 +154,7 @@ def parse(self) -> None: def validate_parser(self) -> None: local_cmds = [c for c in self.cmds if not c.is_set_command] assert len(local_cmds) == 1 # only allow single cmd + # TODO expand this to multiple commands/tools? assert isinstance(local_cmds[0].elems[0], str) # cmd must start with string assert local_cmds[0].elems[0] != '' # cmd must not start with '' @@ -165,7 +209,7 @@ def greedy_parse(self) -> None: parsed = False for parser_c in parsers: - parser = parser_c(ctoken, ntoken) + parser = parser_c(self.task, ctoken, ntoken) if parser.passes_check(): ptr += parser.update_command_tool(self.internal, ptr) parsed = True diff --git a/janis_core/messages/main.py b/janis_core/messages/main.py index 8f64b96c9..30d501c32 100644 --- a/janis_core/messages/main.py +++ b/janis_core/messages/main.py @@ -94,6 +94,13 @@ def _log_message(level: ErrorLevel, category: Optional[ErrorCategory], msg: str, # if no uuid provided, consider this a general message provided during ingestion / translation. # these messages can be shown to the user at the top of the main parsed file (ie the main workflow / tool), # or you could generate a file in the output folder for the user to show this info. + + # check the same message isn't already present + for ll in logfile.lines: + if ll.category == category and ll.message == msg and ll.tool_uuid == tool_uuid and ll.subsection == subsection: + return + + # log the new message if tool_uuid is None: tool_uuid = 'general' logfile.add(level=level, tool_uuid=tool_uuid, category=category, msg=msg, subsection=subsection) diff --git a/janis_core/operators/logical.py b/janis_core/operators/logical.py index e99d28a30..dffacc938 100644 --- a/janis_core/operators/logical.py +++ b/janis_core/operators/logical.py @@ -196,8 +196,9 @@ def to_cwl(self, unwrap_operator, *args): return f"({arg})" def to_nextflow(self, unwrap_operator, *args): + # note: nextflow doesn't like brackets :/ arg = unwrap_operator(self.args[0]) - return f"({arg})" + return f"{arg}" def to_python(self, unwrap_operator, *args): arg = unwrap_operator(self.args[0]) diff --git a/janis_core/operators/operator.py b/janis_core/operators/operator.py index 6d5d52a97..bda2a9b0f 100644 --- a/janis_core/operators/operator.py +++ b/janis_core/operators/operator.py @@ -419,6 +419,10 @@ def wdl_symbol(): @staticmethod def cwl_symbol(): return "Number" + + @staticmethod + def nextflow_symbol(): + return "" @staticmethod def apply_to(value): diff --git a/janis_core/operators/standard.py b/janis_core/operators/standard.py index 97d7b9876..9bbd16630 100644 --- a/janis_core/operators/standard.py +++ b/janis_core/operators/standard.py @@ -290,7 +290,7 @@ def to_python(self, unwrap_operator, *args): return f"os.path.dirname({file_obj})" def to_wdl(self, unwrap_operator, *args): - file_obj, separator = [unwrap_operator(a) for a in self.args] + file_obj = unwrap_operator(self.args[0]) Logger.warn( f"File.Dirname() is not implemented in WDL, will return the input File" ) @@ -374,7 +374,7 @@ def to_python(self, unwrap_operator, *args): return f"os.path.splitext(os.path.basename({file_obj}))[1:]" def to_wdl(self, unwrap_operator, *args): - file_obj, separator = [unwrap_operator(a) for a in self.args] + file_obj = unwrap_operator(self.args[0]) Logger.warn( f"File.Extension() is not implemented in WDL, will return the input File" ) @@ -386,7 +386,7 @@ def to_cwl(self, unwrap_operator, *args): def to_nextflow(self, unwrap_operator, *args): file_obj = unwrap_operator(args[0]) - return f"{file_obj}.extension" + return f'"." + {file_obj}.extension' def argtypes(self): return [UnionType(File, Directory)] @@ -666,7 +666,7 @@ def to_cwl(self, unwrap_operator, *args): def to_nextflow(self, unwrap_operator, *args): f = unwrap_operator(self.args[0]) - return f"({f}.size / 1048576)" + return f"{f}.size / 1048576" def evaluate(self, inputs): from os.path import getsize diff --git a/janis_core/tests/data/cwl/tools/cutadapt-paired.cwl b/janis_core/tests/data/cwl/tools/cutadapt-paired.cwl new file mode 100755 index 000000000..136800f28 --- /dev/null +++ b/janis_core/tests/data/cwl/tools/cutadapt-paired.cwl @@ -0,0 +1,53 @@ +#!/usr/bin/env cwl-runner +cwlVersion: v1.0 +class: CommandLineTool + +hints: + DockerRequirement: + dockerPull: quay.io/biocontainers/cutadapt:3.7--py39hbf8eff0_1 + SoftwareRequirement: + packages: + cutadapt: + version: [ "3.7" ] + specs: [ https://identifiers.org/biotools/cutadapt ] + +baseCommand: cutadapt + +inputs: + reads_1: + type: File + inputBinding: {} + reads_2: + type: File + inputBinding: {} + minimum_length: + type: int? + inputBinding: + prefix: --minimum-length + quality_cutoff: + type: int? + inputBinding: + prefix: --quality-cutoff + +stdout: report.txt + +arguments: + - prefix: --output + valueFrom: $(inputs.reads_1.basename).trimmed$(inputs.reads_1.nameext) + - prefix: --paired-output + valueFrom: $(inputs.reads_2.basename).trimmed$(inputs.reads_2.nameext) + +outputs: + report: stdout + trimmed_reads_1: + type: File + format: $(inputs.reads_1.format) + outputBinding: + glob: $(inputs.reads_1.basename).trimmed$(inputs.reads_1.nameext) + trimmed_reads_2: + type: File + format: $(inputs.reads_2.format) + outputBinding: + glob: $(inputs.reads_2.basename).trimmed$(inputs.reads_2.nameext) + + diff --git a/janis_core/tests/data/cwl/tools/expressions/picard_MarkDuplicates.cwl b/janis_core/tests/data/cwl/tools/expressions/picard_MarkDuplicates.cwl new file mode 100755 index 000000000..a451410d7 --- /dev/null +++ b/janis_core/tests/data/cwl/tools/expressions/picard_MarkDuplicates.cwl @@ -0,0 +1,122 @@ +#!/usr/bin/env cwl-runner +cwlVersion: v1.0 +class: CommandLineTool + +doc: | + Removal of duplicates from aligned reads. + +hints: + ResourceRequirement: + coresMin: 1 + ramMin: 20000 + DockerRequirement: + dockerPull: quay.io/biocontainers/picard:2.22.2--0 + SoftwareRequirement: + packages: + picard: + version: [ "2.22.2" ] + specs: [ https://identifiers.org/biotools/picard_tools ] + +baseCommand: [ picard, MarkDuplicates ] + +arguments: + - OUTPUT=$(inputs.alignments.nameroot)_markduplicates$(inputs.alignments.nameext) + - METRICS_FILE=$(inputs.alignments.nameroot)_markduplicates.metrics + +stderr: $(inputs.alignments.nameroot).markduplicates.log + +inputs: + alignments: + doc: SAM or BAM format alignment file + format: + - edam:format_2573 # SAM + - edam:format_2572 # BAM + type: File + inputBinding: + prefix: "INPUT=" + separate: false + + alignments_are_sorted: + type: boolean + inputBinding: + prefix: ASSUME_SORTED=TRUE + + remove_duplicates: + doc: | + If true do not write duplicates to the output file instead of writing them + with appropriate flags set. + type: boolean + inputBinding: + prefix: REMOVE_DUPLICATES=TRUE + + validation_stringency: + type: + - 'null' + - type: enum + symbols: + - STRICT + - LENIENT + - SILENT + inputBinding: + prefix: VALIDATION_STRINGENCY= + separate: false + + comment: + doc: Comment(s) to include in the output file's header + type: + - 'null' + - type: array + items: string + inputBinding: + prefix: COMMENT= + separate: false + + duplicate_scoring_strategy: + type: + - 'null' + - type: enum + symbols: + - SUM_OF_BASE_QUALITIES + - TOTAL_MAPPED_REFERENCE_LENGTH + - RANDOM + inputBinding: + prefix: DUPLICATE_SCORING_STRATEGY= + separate: false + + read_name_regex: + type: string? + inputBinding: + prefix: READ_NAME_REGEX= + separate: false + + optical_duplicate_pixel_distance: + type: int? + default: 100 + doc: '(0;500)' + inputBinding: + prefix: OPTICAL_DUPLICATE_PIXEL_DISTANCE= + separate: false + + barcode_tag: + type: string? + inputBinding: + prefix: BARCODE_TAG= + separate: false + +outputs: + alignments: + type: File + format: $(inputs.alignments.format) + outputBinding: + glob: $(inputs.alignments.nameroot)_markduplicates$(inputs.alignments.nameext) + log: + type: stderr + metrics: + type: File + outputBinding: + glob: $(inputs.alignments.nameroot)_markduplicates.metrics + +$namespaces: + edam: http://edamontology.org/ +$schemas: + - https://edamontology.org/EDAM_1.18.owl diff --git a/janis_core/tests/data/cwl/tools/picard_MarkDuplicates.cwl b/janis_core/tests/data/cwl/tools/picard_MarkDuplicates.cwl new file mode 100755 index 000000000..a451410d7 --- /dev/null +++ b/janis_core/tests/data/cwl/tools/picard_MarkDuplicates.cwl @@ -0,0 +1,122 @@ +#!/usr/bin/env cwl-runner +cwlVersion: v1.0 +class: CommandLineTool + +doc: | + Removal of duplicates from aligned reads. + +hints: + ResourceRequirement: + coresMin: 1 + ramMin: 20000 + DockerRequirement: + dockerPull: quay.io/biocontainers/picard:2.22.2--0 + SoftwareRequirement: + packages: + picard: + version: [ "2.22.2" ] + specs: [ https://identifiers.org/biotools/picard_tools ] + +baseCommand: [ picard, MarkDuplicates ] + +arguments: + - OUTPUT=$(inputs.alignments.nameroot)_markduplicates$(inputs.alignments.nameext) + - METRICS_FILE=$(inputs.alignments.nameroot)_markduplicates.metrics + +stderr: $(inputs.alignments.nameroot).markduplicates.log + +inputs: + alignments: + doc: SAM or BAM format alignment file + format: + - edam:format_2573 # SAM + - edam:format_2572 # BAM + type: File + inputBinding: + prefix: "INPUT=" + separate: false + + alignments_are_sorted: + type: boolean + inputBinding: + prefix: ASSUME_SORTED=TRUE + + remove_duplicates: + doc: | + If true do not write duplicates to the output file instead of writing them + with appropriate flags set. + type: boolean + inputBinding: + prefix: REMOVE_DUPLICATES=TRUE + + validation_stringency: + type: + - 'null' + - type: enum + symbols: + - STRICT + - LENIENT + - SILENT + inputBinding: + prefix: VALIDATION_STRINGENCY= + separate: false + + comment: + doc: Comment(s) to include in the output file's header + type: + - 'null' + - type: array + items: string + inputBinding: + prefix: COMMENT= + separate: false + + duplicate_scoring_strategy: + type: + - 'null' + - type: enum + symbols: + - SUM_OF_BASE_QUALITIES + - TOTAL_MAPPED_REFERENCE_LENGTH + - RANDOM + inputBinding: + prefix: DUPLICATE_SCORING_STRATEGY= + separate: false + + read_name_regex: + type: string? + inputBinding: + prefix: READ_NAME_REGEX= + separate: false + + optical_duplicate_pixel_distance: + type: int? + default: 100 + doc: '(0;500)' + inputBinding: + prefix: OPTICAL_DUPLICATE_PIXEL_DISTANCE= + separate: false + + barcode_tag: + type: string? + inputBinding: + prefix: BARCODE_TAG= + separate: false + +outputs: + alignments: + type: File + format: $(inputs.alignments.format) + outputBinding: + glob: $(inputs.alignments.nameroot)_markduplicates$(inputs.alignments.nameext) + log: + type: stderr + metrics: + type: File + outputBinding: + glob: $(inputs.alignments.nameroot)_markduplicates.metrics + +$namespaces: + edam: http://edamontology.org/ +$schemas: + - https://edamontology.org/EDAM_1.18.owl diff --git a/janis_core/tests/data/cwl/tools/picard_SortSam.cwl b/janis_core/tests/data/cwl/tools/picard_SortSam.cwl new file mode 100755 index 000000000..95d1ec9ae --- /dev/null +++ b/janis_core/tests/data/cwl/tools/picard_SortSam.cwl @@ -0,0 +1,72 @@ +#!/usr/bin/env cwl-runner +cwlVersion: v1.0 +class: CommandLineTool + +hints: + DockerRequirement: + dockerPull: quay.io/biocontainers/picard:2.22.2--0 + SoftwareRequirement: + packages: + picard: + version: [ "2.22.2" ] + specs: [ https://identifiers.org/biotools/picard_tools ] +requirements: + InlineJavascriptRequirement: {} + +baseCommand: [ picard, SortSam ] + +arguments: + - prefix: OUTPUT= + separate: false + valueFrom: | + ${ if(inputs.sort_order == "coordinate") { return (inputs.alignments.nameroot)+".bam";} else { return (inputs.alignments.nameroot)+".sam"; } } + +inputs: + alignments: + type: File + inputBinding: + prefix: INPUT= + separate: false + + sort_order: + type: + - 'null' + - type: enum + symbols: + - queryname + - coordinate + - duplicate + default: coordinate + doc: 'coordinate (bam) or queryname (sam)' + inputBinding: + prefix: SORT_ORDER= + separate: false + + validation_stringency: + default: LENIENT + doc: Validation stringency for all SAM files read by this program. Setting stringency + to SILENT can improve performance when processing a BAM file in which variable-length + data (read, qualities, tags) do not otherwise need to be decoded. + type: + - 'null' + - type: enum + symbols: + - STRICT + - LENIENT + - SILENT + inputBinding: + prefix: VALIDATION_STRINGENCY= + separate: false + +outputs: + sorted_alignments: + type: File + format: |- + ${ if(inputs.sort_order == "coordinate") { return "http://edamontology.org/format_2572";} else { return "http://edamontology.org/format_2573"; } } + outputBinding: + glob: '*.*am' + +$namespaces: + edam: http://edamontology.org/ +$schemas: + - https://edamontology.org/EDAM_1.18.owl diff --git a/janis_core/tests/data/cwl/tools/requirements/minimap2_paf.cwl b/janis_core/tests/data/cwl/tools/requirements/minimap2_paf.cwl new file mode 100755 index 000000000..f94b61642 --- /dev/null +++ b/janis_core/tests/data/cwl/tools/requirements/minimap2_paf.cwl @@ -0,0 +1,83 @@ +#!/usr/bin/env cwl-runner +cwlVersion: v1.0 +class: CommandLineTool + +baseCommand: minimap2 + +doc: This CWL file defines running minimap2 to align some sequences to a database. + We assume the database has been indexed. This is not necessary but we will do it + in our use case + +requirements: + InlineJavascriptRequirement: {} +hints: + DockerRequirement: + dockerPull: quay.io/biocontainers/minimap2:2.17--h8b12597_1 + SoftwareRequirement: + packages: + minimap2: + specs: + - https://identifiers.org/biotools/minimap2 + - https://github.com/lh3/minimap2 + version: [ "2.17" ] + ResourceRequirement: + coresMin: 8 + coresMax: 32 + ramMin: $(15 * 1024) + outdirMin: $(Math.ceil(inputs.target.size/(1024*1024*1024) + 20)) + +inputs: + preset: + type: + - 'null' + - type: enum + symbols: + - map-pb + - map-ont + - ava-pb + - ava-ont + - asm5 + - asm10 + - asm20 + - splice + - sr + inputBinding: + prefix: "-x" + outputCIGAR: + type: boolean? + label: output CIGAR in PAF + inputBinding: + prefix: -c + miniWinSize: + type: int? + label: minimizer window length + inputBinding: + prefix: -w + target: + type: File + inputBinding: + position: 5 + query: + type: + - File + - type: array + items: File + inputBinding: + position: 6 + +arguments: + - -t + - $(runtime.cores) + +stdout: "$(inputs.target.nameroot)_$((Array.isArray(inputs.query) ? inputs.query[0] : inputs.query).nameroot).paf" + +outputs: + alignments: stdout + +$namespaces: + s: http://schema.org/ + edam: http://edamontology.org/ + +$schemas: + - https://schema.org/version/latest/schemaorg-current-https.rdf + - https://edamontology.org/EDAM_1.20.owl diff --git a/janis_core/tests/mock/__init__.py b/janis_core/tests/mock/__init__.py index e69de29bb..940d1c1ee 100644 --- a/janis_core/tests/mock/__init__.py +++ b/janis_core/tests/mock/__init__.py @@ -0,0 +1,5 @@ + + +from . import galaxy +from . import cwl +from . import janis \ No newline at end of file diff --git a/janis_core/tests/mock/galaxy/__init__.py b/janis_core/tests/mock/galaxy/__init__.py new file mode 100644 index 000000000..4d3e39213 --- /dev/null +++ b/janis_core/tests/mock/galaxy/__init__.py @@ -0,0 +1,48 @@ + + +from .mock_components import ( + MOCK_POSITIONAL1, + MOCK_POSITIONAL2, + MOCK_FLAG1, + MOCK_OPTION1, + MOCK_OPTION2, + MOCK_REDIRECT_OUTPUT, + MOCK_WILDCARD_OUTPUT, + MOCK_INPUT_OUTPUT, +) +from .mock_entities import ( + MOCK_WORKFLOW_INPUT1, + MOCK_STEP1, + MOCK_STEP_INPUT1, + MOCK_STEP_INPUT2, + MOCK_STEP_INPUT3, + MOCK_STEP_INPUT4, + MOCK_STEP_OUTPUT1, +) + +from .mock_metadata import ( + MOCK_WORKFLOW_METADATA, + MOCK_TOOL_METADATA, +) + +from .mock_params import ( + MOCK_BOOLPARAM1, + MOCK_DATAPARAM1, + MOCK_FLOATPARAM1, + MOCK_FLOATPARAM2, + MOCK_OUTPARAM1, + MOCK_PARAM_REGISTER, + MOCK_SELECTPARAM1, +) + +from .mock_tool import ( + MOCK_TOOL_ABRICATE +) + +from .mock_workflow import ( + MOCK_WORKFLOW +) + +from .mock_xmltool import ( + MOCK_XMLTOOL +) \ No newline at end of file diff --git a/janis_core/tests/mock/mock_components.py b/janis_core/tests/mock/galaxy/mock_components.py similarity index 92% rename from janis_core/tests/mock/mock_components.py rename to janis_core/tests/mock/galaxy/mock_components.py index 4846c8c91..db6c3a81e 100644 --- a/janis_core/tests/mock/mock_components.py +++ b/janis_core/tests/mock/galaxy/mock_components.py @@ -21,10 +21,10 @@ MOCK_OUTPARAM1 ) -MOCK_POSIT2 = Positional() -MOCK_POSIT2.values.add('abricate') -MOCK_POSIT2.cmd_pos = 0 -MOCK_POSIT2.before_opts = True +MOCK_POSITIONAL2 = Positional() +MOCK_POSITIONAL2.values.add('abricate') +MOCK_POSITIONAL2.cmd_pos = 0 +MOCK_POSITIONAL2.before_opts = True diff --git a/janis_core/tests/mock/mock_entities.py b/janis_core/tests/mock/galaxy/mock_entities.py similarity index 100% rename from janis_core/tests/mock/mock_entities.py rename to janis_core/tests/mock/galaxy/mock_entities.py diff --git a/janis_core/tests/mock/mock_metadata.py b/janis_core/tests/mock/galaxy/mock_metadata.py similarity index 100% rename from janis_core/tests/mock/mock_metadata.py rename to janis_core/tests/mock/galaxy/mock_metadata.py diff --git a/janis_core/tests/mock/mock_params.py b/janis_core/tests/mock/galaxy/mock_params.py similarity index 100% rename from janis_core/tests/mock/mock_params.py rename to janis_core/tests/mock/galaxy/mock_params.py diff --git a/janis_core/tests/mock/mock_tool.py b/janis_core/tests/mock/galaxy/mock_tool.py similarity index 100% rename from janis_core/tests/mock/mock_tool.py rename to janis_core/tests/mock/galaxy/mock_tool.py diff --git a/janis_core/tests/mock/mock_workflow.py b/janis_core/tests/mock/galaxy/mock_workflow.py similarity index 100% rename from janis_core/tests/mock/mock_workflow.py rename to janis_core/tests/mock/galaxy/mock_workflow.py diff --git a/janis_core/tests/mock/mock_xmltool.py b/janis_core/tests/mock/galaxy/mock_xmltool.py similarity index 100% rename from janis_core/tests/mock/mock_xmltool.py rename to janis_core/tests/mock/galaxy/mock_xmltool.py diff --git a/janis_core/tests/mock/janis/__init__.py b/janis_core/tests/mock/janis/__init__.py new file mode 100644 index 000000000..b01cb790a --- /dev/null +++ b/janis_core/tests/mock/janis/__init__.py @@ -0,0 +1,7 @@ + +from .mock_tool import ( + MOCK_TOOL1 +) +from .mock_workflow import ( + MOCK_WORKFLOW1 +) \ No newline at end of file diff --git a/janis_core/tests/mock/janis/mock_tool.py b/janis_core/tests/mock/janis/mock_tool.py new file mode 100644 index 000000000..25f0e11fe --- /dev/null +++ b/janis_core/tests/mock/janis/mock_tool.py @@ -0,0 +1,12 @@ + +from janis_core import CommandToolBuilder, ToolInput, String + +MOCK_TOOL1 = CommandToolBuilder( + tool='mock', + base_command=["mock"], + inputs=[ToolInput("inp1", String())], + outputs=[], + container='ubuntu:latest', + version='0.1' +) + diff --git a/janis_core/tests/mock/janis/mock_workflow.py b/janis_core/tests/mock/janis/mock_workflow.py new file mode 100644 index 000000000..3c7fd2bbd --- /dev/null +++ b/janis_core/tests/mock/janis/mock_workflow.py @@ -0,0 +1,6 @@ + +from janis_core import WorkflowBuilder +from janis_core import String + +MOCK_WORKFLOW1 = WorkflowBuilder("mock") +MOCK_WORKFLOW1.input('inp1', String()) \ No newline at end of file diff --git a/janis_core/tests/test_ingestion_cwl.py b/janis_core/tests/test_ingestion_cwl.py index dac7d2aba..7dc7aa06e 100644 --- a/janis_core/tests/test_ingestion_cwl.py +++ b/janis_core/tests/test_ingestion_cwl.py @@ -811,6 +811,12 @@ def test_group(self): self.assertIsInstance(result, GroupOperator) self.assertIsInstance(result.args[0], AddOperator) + filepath = f'{CWL_TESTDATA_DIR}/tools/picard_SortSam.cwl' + clt, cwl_utils = _load_cwl_doc(filepath) + parser = CLTArgumentParser(cwl_utils, clt=clt, entity=clt.arguments[0], tool_uuid='test') + targ = parser.parse() + self.assertEqual(str(targ.value), '((inputs.sort_order == "coordinate")) ? ((inputs.alignments.nameroot) + ".bam") : ((inputs.alignments.nameroot) + ".sam")') + # logical - two value def test_and(self): expr = '$(inputs.filelist && inputs.filelist_mates)' @@ -1125,7 +1131,7 @@ def test_block_complex(self): actual = str(result) self.assertEqual(actual, expected) - def test_clt_output(self): + def test_clt_output1(self): filepath = f'{CWL_TESTDATA_DIR}/tools/expressions/outputs.cwl' clt, cwl_utils = _load_cwl_doc(filepath) parser = CLTOutputParser(cwl_utils, clt=clt, entity=clt.outputs[0], tool_uuid='test') @@ -1138,3 +1144,11 @@ def test_clt_output(self): self.assertIsInstance(tout.selector, StringFormatter) self.assertEqual(tout.selector._format, '{token1}.trimmed.fastq') self.assertIsInstance(tout.selector.kwargs['token1'], ReplaceOperator) + + def test_clt_output2(self): + filepath = f'{CWL_TESTDATA_DIR}/tools/expressions/picard_MarkDuplicates.cwl' + clt, cwl_utils = _load_cwl_doc(filepath) + parser = CLTOutputParser(cwl_utils, clt=clt, entity=clt.outputs[2], tool_uuid='test') + tout = parser.parse() + self.assertIsInstance(tout.selector, StringFormatter) + diff --git a/janis_core/tests/test_ingestion_galaxy.py b/janis_core/tests/test_ingestion_galaxy.py index a91990e35..bdb32beb3 100644 --- a/janis_core/tests/test_ingestion_galaxy.py +++ b/janis_core/tests/test_ingestion_galaxy.py @@ -61,13 +61,13 @@ from janis_core.ingestion.galaxy.janis_mapping.tool import to_janis_tool # mock objects -from .mock.mock_components import MOCK_POSITIONAL1 -from .mock.mock_components import MOCK_FLAG1 -from .mock.mock_components import MOCK_OPTION2 -from .mock.mock_components import MOCK_REDIRECT_OUTPUT -from .mock.mock_entities import MOCK_WORKFLOW_INPUT1 -from .mock.mock_tool import MOCK_TOOL_ABRICATE -from .mock.mock_workflow import MOCK_WORKFLOW +from .mock.galaxy import MOCK_POSITIONAL1 +from .mock.galaxy import MOCK_FLAG1 +from .mock.galaxy import MOCK_OPTION2 +from .mock.galaxy import MOCK_REDIRECT_OUTPUT +from .mock.galaxy import MOCK_WORKFLOW_INPUT1 +from .mock.galaxy import MOCK_TOOL_ABRICATE +from .mock.galaxy import MOCK_WORKFLOW from janis_core.ingestion import ingest from janis_core.translations import translate @@ -317,14 +317,14 @@ def test_single_requirement(self) -> None: runtime.tool.tool_path = filepath xmltool = load_xmltool(filepath) actual = resolve_dependencies_as_container(xmltool) - expected = 'quay.io/biocontainers/abricate:1.0.1' + expected = 'quay.io/biocontainers/abricate:1.0.1--ha8f3691_2' self.assertEqual(actual, expected) filepath = os.path.abspath(f'{GALAXY_TESTTOOL_PATH}/fastqc-3d0c7bdf12f5/rgFastQC.xml') runtime.tool.tool_path = filepath xmltool = load_xmltool(filepath) actual = resolve_dependencies_as_container(xmltool) - expected = 'quay.io/biocontainers/fastqc:0.11.9' + expected = 'quay.io/biocontainers/fastqc:0.11.9--hdfd78af_1' self.assertEqual(actual, expected) def test_multiple_requirements(self) -> None: diff --git a/janis_core/tests/test_ingestion_wdl.py b/janis_core/tests/test_ingestion_wdl.py index 96d3c0d47..93f94c319 100644 --- a/janis_core/tests/test_ingestion_wdl.py +++ b/janis_core/tests/test_ingestion_wdl.py @@ -5,6 +5,13 @@ from janis_core.ingestion.wdl import WdlParser from janis_core.ingestion.wdl.parsing import parse_task from janis_core.ingestion import ingest +from janis_core import ( + File, + String, + Int, + Boolean, + Array, +) import WDL WDL_TESTDATA_PATH = os.path.join(os.getcwd(), 'janis_core/tests/data/wdl') @@ -17,22 +24,87 @@ def test_rename_tool(self) -> None: d = WDL.load(filepath) task = d.tasks[0] tool = parse_task(task) - assert isinstance(tool, CommandToolBuilder) - assert tool.base_command == ['cp'] - assert len(tool._inputs) == 2 - assert tool._inputs[0].id() == 'sourceFile' - assert tool._inputs[0].position == 1 - assert tool._inputs[0].prefix == None - assert tool._inputs[1].id() == 'targetFilename' - assert tool._inputs[1].position == 2 - assert tool._inputs[1].prefix == None + self.assertIsInstance(tool, CommandToolBuilder) + self.assertEqual(tool.base_command, ['cp']) + self.assertEqual(len(tool._inputs), 2) + self.assertEqual(tool._inputs[0].id(), 'sourceFile') + self.assertIsInstance(tool._inputs[0].position, File) + self.assertEqual(tool._inputs[0].position, 1) + self.assertEqual(tool._inputs[0].prefix, None) + self.assertEqual(tool._inputs[1].id(), 'targetFilename') + self.assertIsInstance(tool._inputs[1].position, String) + self.assertEqual(tool._inputs[1].position, 2) + self.assertEqual(tool._inputs[1].prefix, None) def test_io_tool(self) -> None: filepath = f'{WDL_TESTDATA_PATH}/basic/io_tool.wdl' d = WDL.load(filepath) task = d.tasks[0] - parse_task(task) - + tool = parse_task(task) + + ### basics ### + self.assertIsInstance(tool, CommandToolBuilder) + self.assertEqual(tool.base_command, ['echo']) + self.assertEqual(len(tool._inputs), 7) + self.assertEqual(len(tool._outputs), 5) + + ### inputs ### + # inInt + tinp = tool._inputs[0] + self.assertEqual(tinp.id(), 'inInt') + self.assertIsInstance(tinp.input_type, Int) + self.assertNotEqual(tinp.input_type.optional, True) + self.assertEqual(tinp.position, 1) + self.assertIsNone(tinp.prefix) + # inStr + tinp = tool._inputs[1] + self.assertEqual(tinp.id(), 'inStr') + self.assertIsInstance(tinp.input_type, String) + self.assertNotEqual(tinp.input_type.optional, True) + self.assertEqual(tinp.position, 2) + self.assertIsNone(tinp.prefix) + # inBool + tinp = tool._inputs[2] + self.assertEqual(tinp.id(), 'inBool') + self.assertIsInstance(tinp.input_type, Boolean) + self.assertNotEqual(tinp.input_type.optional, True) + self.assertEqual(tinp.position, 3) + self.assertEqual(tinp.prefix, '--flag1') + # inFile + tinp = tool._inputs[3] + self.assertEqual(tinp.id(), 'inFile') + self.assertIsInstance(tinp.input_type, File) + self.assertNotEqual(tinp.input_type.optional, True) + self.assertEqual(tinp.position, 4) + self.assertEqual(tinp.prefix, '--in-file=') + self.assertFalse(tinp.separate_value_from_prefix) + # inFileOpt + tinp = tool._inputs[4] + self.assertEqual(tinp.id(), 'inFileOpt') + self.assertIsInstance(tinp.input_type, File) + self.assertTrue(tinp.input_type.optional) + self.assertEqual(tinp.position, 5) + self.assertIsNone(tinp.prefix) + # inFileArr + tinp = tool._inputs[5] + self.assertEqual(tinp.id(), 'inFileArr') + self.assertIsInstance(tinp.input_type, File) + self.assertNotEqual(tinp.input_type.optional, True) + self.assertEqual(tinp.position, 6) + self.assertIsNone(tinp.prefix) + # inSecondary + tinp = tool._inputs[6] + self.assertEqual(tinp.id(), 'inSecondary') + self.assertIsInstance(tinp.input_type, File) + self.assertNotEqual(tinp.input_type.optional, True) + self.assertEqual(tinp.position, 7) + self.assertIsNone(tinp.prefix) + + ### outputs ### + tout = tool._outputs[0] + + + def test_fastqc_tool(self) -> None: filepath = f'{WDL_TESTDATA_PATH}/fastqc.wdl' d = WDL.load(filepath) diff --git a/janis_core/tests/test_janis_translate.py b/janis_core/tests/test_janis_translate.py index 93ba72197..fe005e2b8 100644 --- a/janis_core/tests/test_janis_translate.py +++ b/janis_core/tests/test_janis_translate.py @@ -9,6 +9,7 @@ from janis_core.translations import translate from janis_core.tests.testtools import FileOutputPythonTestTool from janis_core.tests.testtools import GridssTestTool +from janis_core.tests.testtools import FastqcTestTool from janis_core.tests.testworkflows import PruneFlatTW from janis_core.tests.testworkflows import PruneNestedTW from janis_core.tests.testworkflows import AssemblyTestWF @@ -20,10 +21,13 @@ from janis_core import CommandToolBuilder from janis_core import WorkflowBuilder from janis_core import CodeTool +from janis_core import StepOutputSelector +from janis_core import InputNodeSelector from janis_core.translations import nextflow from janis_core.translations.common import to_builders from janis_core.translations.common import prune_workflow +from janis_core.translations.common import wrap_tool_in_workflow from janis_core import settings import os @@ -232,6 +236,60 @@ def test_str_big_workflow(self): +### ----- MESSAGES ----- ### + +class TestMessages(unittest.TestCase): + + def setUp(self) -> None: + _reset_global_settings() + + def test_scripting1(self) -> None: + filepath = f'{CWL_TESTDATA_PATH}/tools/expressions/inputs_arguments.cwl' + mainstr = _run(filepath, 'cwl', 'nextflow') + print(mainstr) + + # ensure heading + self.assertIn('// ERROR: UNTRANSLATED EXPRESSIONS', mainstr) + # ignore tokens which no longer appear in file + self.assertNotIn('__TOKEN1__ = "$([inputs.runtime_cpu, 16, 1].filter(function (inner) { return inner != null })[0])"', mainstr) + # ensure tokens which are in file + self.assertIn('__TOKEN2__ = "${ var r = []; for (var i = 10; i >= 1; i--) { r.push(i); } return r;}"', mainstr) + self.assertIn('-C __TOKEN2__', mainstr) + + filepath = f'{CWL_TESTDATA_PATH}/tools/expressions/outputs.cwl' + mainstr = _run(filepath, 'cwl', 'nextflow') + print(mainstr) + + # ensure heading + self.assertIn('// ERROR: UNTRANSLATED EXPRESSIONS', mainstr) + # ensure tokens which are in file + self.assertIn('__TOKEN1__ = "$(self[0].contents)"', mainstr) + self.assertIn('path "__TOKEN1__", emit: out4', mainstr) + + def test_datatypes1(self) -> None: + filepath = f'{CWL_TESTDATA_PATH}/tools/expressions/outputs.cwl' + mainstr = _run(filepath, 'cwl', 'nextflow') + print(mainstr) + + # ensure heading + self.assertIn('// WARNING: DATATYPES', mainstr) + # ensure messages + self.assertIn('// out2: Could not parse datatype from javascript expression. Treated as generic File with secondaries.', mainstr) + + def test_fallbacks(self) -> None: + raise NotImplementedError + + def test_experimental(self) -> None: + raise NotImplementedError + + def test_version(self) -> None: + raise NotImplementedError + + + + + + ### ----- FROM JANIS ----- ### class TestJanisToCWL(unittest.TestCase): @@ -879,6 +937,41 @@ def test_workflow_to_builders(self) -> None: +# ---- PREPROCESSING: AS_WORKFLOW ------------------------------ + +class TestPreprocessingAsWorkflow(unittest.TestCase): + + def setUp(self) -> None: + _reset_global_settings() + + def test_tool_fastqc(self): + tool: CommandToolBuilder = FastqcTestTool() + wf = wrap_tool_in_workflow(tool) + + # basics + self.assertIsInstance(wf, WorkflowBuilder) + self.assertEqual(len(wf.input_nodes), 11) + self.assertEqual(len(wf.step_nodes), 1) + self.assertEqual(len(wf.output_nodes), 2) + + # checking step input sources + step = wf.step_nodes['fastqc_step'] + for inp in tool._inputs: + self.assertIn(inp.id(), step.sources) + source = step.sources[inp.id()].source_map[0].source + self.assertIsInstance(source, InputNodeSelector) + self.assertEqual(source.input_node, wf.input_nodes[inp.id()]) + + # checking workflow output sources + for out in tool._outputs: + self.assertIn(out.id(), wf.output_nodes) + source = wf.output_nodes[out.id()].source + self.assertIsInstance(source, StepOutputSelector) + self.assertEqual(source.node, step) + self.assertEqual(source.tag, out.id()) + + + # ---- FROM CWL --------------------------- class TestCwlToWdl(unittest.TestCase): @@ -888,6 +981,21 @@ def setUp(self) -> None: self.dest = 'wdl' _reset_global_settings() + def test_tool_bwa_index(self): + filepath = f'{CWL_TESTDATA_PATH}/tools/BWA-Index.cwl' + toolstr = _run(filepath, self.src, self.dest) + print(toolstr) + + def test_tool_cutadapt(self): + filepath = f'{CWL_TESTDATA_PATH}/tools/cutadapt-paired.cwl' + toolstr = _run(filepath, self.src, self.dest) + print(toolstr) + + def test_tool_picard_markduplicates(self): + filepath = f'{CWL_TESTDATA_PATH}/tools/picard_MarkDuplicates.cwl' + toolstr = _run(filepath, self.src, self.dest) + print(toolstr) + def test_tool_fastqc2(self): filepath = f'{CWL_TESTDATA_PATH}/tools/fastqc2.cwl' toolstr = _run(filepath, self.src, self.dest) @@ -977,6 +1085,14 @@ def setUp(self) -> None: _reset_global_settings() # Tools + def test_tool_picard_markduplicates(self): + filepath = f'{CWL_TESTDATA_PATH}/tools/expressions/picard_MarkDuplicates.cwl' + mainstr = _run(filepath, self.src, self.dest) + self.assertIn('path "${alignments.simpleName}.markduplicates.log", emit: log', mainstr) + self.assertIn('OUTPUT=${alignments.simpleName}_markduplicates${"." + alignments.extension}', mainstr) + print(mainstr) + print() + def test_tool_samtools_flagstat(self): filepath = f'{CWL_TESTDATA_PATH}/tools/samtools_flagstat.cwl' mainstr = _run(filepath, self.src, self.dest) diff --git a/janis_core/tests/test_translation_cwl.py b/janis_core/tests/test_translation_cwl.py index 52494b14f..8ae9c6bdb 100644 --- a/janis_core/tests/test_translation_cwl.py +++ b/janis_core/tests/test_translation_cwl.py @@ -5,7 +5,7 @@ from janis_core.operators.logical import If, IsDefined from janis_core.operators.standard import ReadContents, FilterNullOperator - +from janis_core.translations.common.preprocessing import to_builders from janis_core.tests.testtools import ( SingleTestTool, ArrayStepTool, @@ -44,6 +44,8 @@ from janis_core.translations import build_resources_input from janis_core import settings +from . import mock + def reset_global_settings() -> None: settings.validation.STRICT_IDENTIFIERS = True @@ -117,7 +119,7 @@ def test_stringify_WorkflowBuilder(self): id: wid """ self.assertEqual( - expected, self.translator.stringify_translated_workflow(cwlobj) + expected, self.translator.stringify_translated_workflow(None, cwlobj) ) def test_stringify_tool(self): @@ -133,13 +135,17 @@ def test_stringify_tool(self): outputs: {} id: tid -""" - - self.assertEqual(expected, self.translator.stringify_translated_tool(cwlobj)) - +""" + tool = mock.janis.MOCK_TOOL1 + self.assertEqual(expected, self.translator.stringify_translated_tool(tool, cwlobj)) + def test_stringify_inputs(self): d = {"inp1": 1} - self.assertEqual("inp1: 1\n", self.translator.stringify_translated_inputs(d)) + settings.translate.ADDITIONAL_INPUTS = d + wf = mock.janis.MOCK_WORKFLOW1 + self.translator.build_inputs_file(wf) + inputs_file = self.translator.inputs_file + self.assertEqual("inp1: 1\n", inputs_file) def test_workflow_filename(self): w = WorkflowBuilder("wid") @@ -318,6 +324,7 @@ def test_alias_selector(self): w.input("inp", str) w.step("echo", EchoTestTool(inp=w.inp.as_type(str))) w.output("out", source=w.echo.out) + w = to_builders(w) sn: List[cwlgen.WorkflowStep] = cwltranslate.translate_step_node( w.step_nodes["echo"], inputs_dict={"inp": ToolInput("inp", str)}, @@ -477,7 +484,11 @@ def test_string_formatter_two_param(self): ) def test_escaped_characters(self): - translated = cwltranslate.CwlTranslator.translate_tool_internal(BasicTestTool()) + tool = to_builders(BasicTestTool()) + translator = CwlTranslator() + translator.translate_tool_internal(tool) + self.assertGreater(len(translator.tools), 0) + translated = translator.tools[0][1] arg: cwlgen.CommandLineBinding = translated.arguments[0] self.assertEqual('test:\\\\t:escaped:\\\\n:characters\\"', arg.valueFrom) @@ -488,9 +499,14 @@ def setUp(self) -> None: reset_global_settings() def test_environment1(self): - t = CwlTranslator().translate_tool_internal(tool=BasicTestTool()) + translator = CwlTranslator() + internal = BasicTestTool() + internal = to_builders(internal) + translator.translate_tool_internal(internal) + self.assertEqual(len(translator.tools), 1) + translated = translator.tools[0][1] envvar: cwlgen.EnvVarRequirement = [ - t for t in t.requirements if t.class_ == "EnvVarRequirement" + t for t in translated.requirements if t.class_ == "EnvVarRequirement" ][0] envdef: cwlgen.EnvironmentDef = envvar.envDef[0] self.assertEqual("test1", envdef.envName) @@ -575,45 +591,60 @@ def setUp(self): def test_input_in_input_value_nooptional_nodefault(self): wf = WorkflowBuilder("test_cwl_input_in_input_value_nooptional_nodefault") - wf.input("inpId", String(), default="1") - self.assertDictEqual({"inpId": "1"}, self.translator.build_inputs_dict(wf)) + wf.input("inpId", String()) + self.translator.build_inputs_file(wf) + inputs_file = self.translator.inputs_file + self.assertEqual(inputs_file, "inpId: null\n") def test_input_in_input_value_nooptional_default(self): wf = WorkflowBuilder("test_cwl_input_in_input_value_nooptional_default") wf.input("inpId", String(), default="1") - self.assertDictEqual({"inpId": "1"}, self.translator.build_inputs_dict(wf)) + self.translator.build_inputs_file(wf) + inputs_file = self.translator.inputs_file + self.assertEqual(inputs_file, "inpId: '1'\n") def test_input_in_input_value_optional_nodefault(self): wf = WorkflowBuilder("test_cwl_input_in_input_value_optional_nodefault") wf.input("inpId", String(optional=True), default="1") - self.assertDictEqual({"inpId": "1"}, self.translator.build_inputs_dict(wf)) + self.translator.build_inputs_file(wf) + inputs_file = self.translator.inputs_file + self.assertEqual(inputs_file, "inpId: '1'\n") def test_input_in_input_value_optional_default(self): wf = WorkflowBuilder("test_cwl_input_in_input_value_optional_default") wf.input("inpId", String(optional=True), default="1") - self.assertDictEqual({"inpId": "1"}, self.translator.build_inputs_dict(wf)) + self.translator.build_inputs_file(wf) + inputs_file = self.translator.inputs_file + self.assertEqual(inputs_file, "inpId: '1'\n") def test_input_in_input_novalue_nooptional_nodefault(self): wf = WorkflowBuilder("test_cwl_input_in_input_novalue_nooptional_nodefault") wf.input("inpId", String()) # included because no value, no default, and not optional - self.assertDictEqual({"inpId": None}, self.translator.build_inputs_dict(wf)) + self.translator.build_inputs_file(wf) + inputs_file = self.translator.inputs_file + self.assertEqual(inputs_file, "inpId: null\n") def test_input_in_input_novalue_nooptional_default(self): wf = WorkflowBuilder("test_cwl_input_in_input_novalue_nooptional_default") wf.input("inpId", String(), default="2") - self.assertDictEqual({"inpId": "2"}, self.translator.build_inputs_dict(wf)) + self.translator.build_inputs_file(wf) + inputs_file = self.translator.inputs_file + self.assertEqual(inputs_file, "inpId: '2'\n") def test_input_in_input_novalue_optional_nodefault(self): wf = WorkflowBuilder("test_cwl_input_in_input_novalue_optional_nodefault") wf.input("inpId", String(optional=True)) - # self.assertDictEqual({'inpId': None}, self.translator.build_inputs_file(wf)) - self.assertDictEqual({}, self.translator.build_inputs_dict(wf)) + self.translator.build_inputs_file(wf) + inputs_file = self.translator.inputs_file + self.assertEqual(inputs_file, "inpId: null\n") def test_input_in_input_novalue_optional_default(self): wf = WorkflowBuilder("test_cwl_input_in_input_novalue_optional_default") wf.input("inpId", String(optional=True), default="2") - self.assertDictEqual({"inpId": "2"}, self.translator.build_inputs_dict(wf)) + self.translator.build_inputs_file(wf) + inputs_file = self.translator.inputs_file + self.assertEqual(inputs_file, "inpId: '2'\n") class TestCwlMaxResources(unittest.TestCase): @@ -669,8 +700,12 @@ def test_empty_container_raises(self): toolstr = translate(tool, 'cwl') def test_empty_container(self): - c = CwlTranslator().translate_tool_internal(SingleTestTool()) - self.assertNotIn("DockerRequirement", c.requirements) + tool = to_builders(SingleTestTool()) + translator = CwlTranslator() + translator.translate_tool_internal(tool) + self.assertGreater(len(translator.tools), 0) + tool_cwl = translator.tools[0][1] + self.assertNotIn("DockerRequirement", tool_cwl.requirements) @@ -697,8 +732,10 @@ def setUp(self) -> None: def test_simple(self): w = WorkflowBuilder("test_add_single_to_array_edge") w.step("ech", SingleTestTool(input1="Hello"), doc="Print 'Hello'") - c = CwlTranslator.translate_workflow_to_all_in_one(w) - print(CwlTranslator.stringify_translated_workflow(c)) + w = to_builders(w) + translator = CwlTranslator() + c = translator.translate_workflow_to_all_in_one(w) + print(translator.stringify_translated_workflow(w, c)) class TestContainerOverride(unittest.TestCase): @@ -880,9 +917,14 @@ def test_string_formatter(self): ) wf.step("print", EchoTestTool(inp=wf.readGroupHeaderLine)) wf.output("out", source=wf.print) + wf = to_builders(wf) + + translator = CwlTranslator() + translator.translate_workflow_internal(wf) + self.assertIsNotNone(translator.main) + w_cwl = translator.main[1] - d, _ = CwlTranslator.translate_workflow_internal(wf) - stepinputs = d.save()["steps"][0]["in"] + stepinputs = w_cwl.save()["steps"][0]["in"] self.assertEqual(4, len(stepinputs)) expression = stepinputs[-1]["valueFrom"] expected = ( @@ -908,9 +950,14 @@ def test_string_formatter_stepinput(self): ), ) wf.output("out", source=wf.print) + wf = to_builders(wf) + + translator = CwlTranslator() + translator.translate_workflow_internal(wf) + self.assertIsNotNone(translator.main) + w_cwl = translator.main[1] - d, _ = CwlTranslator.translate_workflow_internal(wf) - stepinputs = d.save()["steps"][0]["in"] + stepinputs = w_cwl.save()["steps"][0]["in"] self.assertEqual(3, len(stepinputs)) expression = stepinputs[-1]["valueFrom"] expected = '$("@RG\\\\tID:{name}\\\\tSM:{name}\\\\tLB:{name}\\\\tPL:{pl}".replace(/\\{name\\}/g, inputs._print_inp_sampleName).replace(/\\{pl\\}/g, inputs._print_inp_platform))' @@ -953,8 +1000,12 @@ def test_two_similar_tools(self): w.input("inp", str) w.step("stp1", BasicTestTool(testtool=w.inp)) w.step("stp2", VersionTestTool(testtool=w.inp)) + w = to_builders(w) - wf_cwl, _ = CwlTranslator.translate_workflow_internal(w) + translator = CwlTranslator() + translator.translate_workflow_internal(w) + self.assertIsNotNone(translator.main) + wf_cwl = translator.main[1] stps = {stp.id: stp for stp in wf_cwl.steps} self.assertEqual("tools/BasicTestTool.cwl", stps["stp1"].run) @@ -996,11 +1047,14 @@ def test_read_contents_string(self): container=None, version="-1", ) - translated = CwlTranslator.translate_tool_internal(t) - self.assertTrue(translated.outputs[0].outputBinding.loadContents) + t = to_builders(t) + translator = CwlTranslator() + translator.translate_tool_internal(t) + assert len(translator.tools) == 1 + tool_cwl = translator.tools[0][1] + self.assertTrue(tool_cwl.outputs[0].outputBinding.loadContents) def test_read_contents_as_int(self): - t = CommandToolBuilder( tool="test_readcontents", base_command=["echo", "1"], @@ -1009,9 +1063,13 @@ def test_read_contents_as_int(self): container=None, version="-1", ) - translated = CwlTranslator.translate_tool_internal(t) - self.assertTrue(translated.outputs[0].outputBinding.loadContents) - self.assertEqual("float", translated.outputs[0].type) + t = to_builders(t) + translator = CwlTranslator() + translator.translate_tool_internal(t) + assert len(translator.tools) == 1 + tool_cwl = translator.tools[0][1] + self.assertTrue(tool_cwl.outputs[0].outputBinding.loadContents) + self.assertEqual("float", tool_cwl.outputs[0].type) class TestCWLNotNullOperator(unittest.TestCase): @@ -1060,12 +1118,16 @@ def test_filter_null(self): w.input("inp", Array(Optional[str], optional=True)) w.step("stp", T(inp=FilterNullOperator(w.inp)), scatter="inp") w.output("out", source=w.stp.out) + w = to_builders(w) - w_cwl = cwltranslate.CwlTranslator().translate_workflow_internal(w)[0] + translator = CwlTranslator() + translator.translate_workflow_internal(w) + self.assertIsNotNone(translator.main) + wf_cwl = translator.main[1] - self.assertEqual(2, len(w_cwl.steps)) + self.assertEqual(2, len(wf_cwl.steps)) self.assertEqual( - "_evaluate_prescatter-stp-inp/out", w_cwl.steps[1].in_[0].source + "_evaluate_prescatter-stp-inp/out", wf_cwl.steps[1].in_[0].source ) @@ -1079,8 +1141,12 @@ def test_read_contents(self): w.input("inp", str) w.step("stp", EchoTestTool(inp=w.inp)) w.output("out", source=w.stp.out.contents()) - - w_cwl = cwltranslate.CwlTranslator().translate_workflow_internal(w)[0] + w = to_builders(w) + + translator = CwlTranslator() + translator.translate_workflow_internal(w) + self.assertIsNotNone(translator.main) + w_cwl = translator.main[1] self.assertEqual(2, len(w_cwl.steps)) self.assertEqual( @@ -1123,6 +1189,7 @@ def test_basic(self): ) w.output("out", source=w.print_if_has_value) + w = to_builders(w) inputs_dict = {"inp": ToolInput("inp", str)} @@ -1142,7 +1209,11 @@ def setUp(self) -> None: def test_minimal(self): tool = ForEachTestWF() - w, _ = CwlTranslator.translate_workflow_internal(tool) + tool = to_builders(tool) + translator = CwlTranslator() + translator.translate_workflow_internal(tool) + assert translator.main is not None + w = translator.main[1] stp = w.steps[0] self.assertEqual("inp", stp.in_[0].source) self.assertEqual('$((inputs._idx + "-hello"))', stp.in_[1].valueFrom) diff --git a/janis_core/tests/test_translation_nextflow.py b/janis_core/tests/test_translation_nextflow.py index 3cb4c46a9..f28beb9c6 100644 --- a/janis_core/tests/test_translation_nextflow.py +++ b/janis_core/tests/test_translation_nextflow.py @@ -1411,22 +1411,27 @@ def setUp(self) -> None: self.destfmt = 'nextflow' reset_globals() - def test_directives(self) -> None: + def test_directives_basic(self) -> None: wf = DirectivesTestWF() _, _, subtasks = translate(wf, dest_fmt=self.destfmt, export_path='./translated') subtasks.sort(key=lambda x: x[0]) - actual_lines = _get_process_directive_lines(subtasks[1][1]) + actual_lines = _get_process_directive_lines(subtasks[0][1]) + + # math import statement + self.assertIn('import java.lang.Math', subtasks[0][1]) + + # directives expected_directives = { 'container "quay.io/biocontainers/bedtools:2.29.2--hc088bd4_0"', - 'publishDir "${params.outdir}/resources_test_tool"', - 'cpus "${params.resources_test_tool.cpus}"', - 'disk "${params.resources_test_tool.disk}"', - 'memory "${params.resources_test_tool.memory}"', - 'time "${params.resources_test_tool.time}"' + 'publishDir "${params.outdir}/resources_test_tool_cb"', + 'cpus "${params.resources_test_tool_cb.cpus}"', + 'disk "${Math.ceil(inp.size / 1048576 / 1024 * 1024 * 1024 + 20)} MB"', + 'memory "${15 * 1024} MB"', + 'time "${params.resources_test_tool_cb.time}"' } for direc in expected_directives: self.assertIn(direc, actual_lines) - + @unittest.skip('not implemented') def test_translate_commandtool(self) -> None: raise NotImplementedError @@ -1639,6 +1644,18 @@ def test_wildcard(self) -> None: for inp in expected_lines: self.assertIn(inp, actual_lines) + def test_expression(self) -> None: + wf = OutputCollectionTestWF() + _, _, subtasks = translate(wf, dest_fmt=self.dest, export_path='./translated') + process = [x[1] for x in subtasks if x[0] == 'modules/expression_test_tool.nf'][0] + actual_lines = _get_process_output_lines(process) + expected_lines = [ + 'path "${inp.simpleName}_markduplicates.metrics", emit: out' + ] + self.assertEqual(len(actual_lines), len(expected_lines)) + for inp in expected_lines: + self.assertIn(inp, actual_lines) + def test_wildcard_array(self) -> None: wf = WildcardSelectorOutputTestWF() _, _, subtasks = translate(wf, dest_fmt=self.dest, export_path='./translated') @@ -2566,7 +2583,7 @@ def setUp(self) -> None: def test_python_tool_helpers(self) -> None: # first test wf wf = InputsPythonToolTestWF() - helper_files = translator.translate_helper_files(wf) + helper_files = translator.build_helper_files(wf) actual_paths = list(helper_files.keys()) expected_paths = [ 'templates/MultiTypesInputPythonTool.py', @@ -2582,7 +2599,7 @@ def test_python_tool_helpers(self) -> None: # second test wf wf = OutputsPythonToolTestWF() - helper_files = translator.translate_helper_files(wf) + helper_files = translator.build_helper_files(wf) actual_paths = list(helper_files.keys()) expected_paths = [ 'templates/FileOutputPythonTestTool.py', @@ -2595,7 +2612,7 @@ def test_python_tool_helpers(self) -> None: def test_template_helpers(self) -> None: wf = FilesDirectoriesToCreateTestWF() - helper_files = translator.translate_helper_files(wf) + helper_files = translator.build_helper_files(wf) actual_paths = list(helper_files.keys()) expected_paths = [ 'templates/myscript.sh', diff --git a/janis_core/tests/test_translation_wdl.py b/janis_core/tests/test_translation_wdl.py index f20db5e6f..2d1c4f8ef 100644 --- a/janis_core/tests/test_translation_wdl.py +++ b/janis_core/tests/test_translation_wdl.py @@ -155,6 +155,7 @@ def secondary_files(): return ["^.file"] + class TestWdl(unittest.TestCase): def setUp(self) -> None: reset_global_settings() @@ -167,6 +168,9 @@ def test_optional_array(self): self.assertEqual("Array[File]?", wdl.get_string()) + + + class TestWdlComments(unittest.TestCase): def setUp(self): reset_global_settings() @@ -264,7 +268,7 @@ def test_inputs_generator_secondary_files(self): w.input("wsec", SecondaryTestType, default="test.ext") # w._add_input(Input("wsec", TestTypeWithSecondary(), value="test.ext")) settings.translate.MERGE_RESOURCES = False - inpsdict = WdlTranslator().build_inputs_dict(w) + inpsdict = WdlTranslator().build_inputs_file(w) self.assertEqual("test.ext", inpsdict.get("tst.wsec")) self.assertEqual("test.txt", inpsdict.get("tst.wsec_txt")) @@ -272,7 +276,7 @@ def test_inputs_generator_array_of_secondary_files(self): w = WorkflowBuilder("tst") w.input("wsec", Array(SecondaryTestType()), default=["test.ext"]) settings.translate.MERGE_RESOURCES = False - inpsdict = WdlTranslator().build_inputs_dict(w) + inpsdict = WdlTranslator().build_inputs_file(w) self.assertListEqual(["test.ext"], inpsdict.get("tst.wsec")) self.assertListEqual(["test.txt"], inpsdict.get("tst.wsec_txt")) @@ -557,7 +561,7 @@ def test_input_in_input_value_nooptional_nodefault(self): self.assertDictEqual( {"test_input_in_inputfile.inpId": "1"}, - self.translator.build_inputs_dict(wf), + self.translator.build_inputs_file(wf), ) def test_input_in_input_value_nooptional_default(self): @@ -566,7 +570,7 @@ def test_input_in_input_value_nooptional_default(self): self.assertDictEqual( {"test_input_in_inputfile.inpId": "1"}, - self.translator.build_inputs_dict(wf), + self.translator.build_inputs_file(wf), ) def test_input_in_input_value_optional_nodefault(self): @@ -575,7 +579,7 @@ def test_input_in_input_value_optional_nodefault(self): self.assertDictEqual( {"test_input_in_inputfile.inpId": "1"}, - self.translator.build_inputs_dict(wf), + self.translator.build_inputs_file(wf), ) def test_input_in_input_value_optional_default(self): @@ -584,7 +588,7 @@ def test_input_in_input_value_optional_default(self): self.assertDictEqual( {"test_input_in_inputfile.inpId": "1"}, - self.translator.build_inputs_dict(wf), + self.translator.build_inputs_file(wf), ) def test_input_in_input_novalue_nooptional_nodefault(self): @@ -594,7 +598,7 @@ def test_input_in_input_novalue_nooptional_nodefault(self): # included because no value, no default, and not optional self.assertDictEqual( {"test_input_in_inputfile.inpId": None}, - self.translator.build_inputs_dict(wf), + self.translator.build_inputs_file(wf), ) def test_input_in_input_novalue_nooptional_default(self): @@ -604,7 +608,7 @@ def test_input_in_input_novalue_nooptional_default(self): # new interpretation: defaults appear in inputs self.assertDictEqual( {"test_input_in_inputfile.inpId": "2"}, - self.translator.build_inputs_dict(wf), + self.translator.build_inputs_file(wf), ) # self.assertDictEqual({}, self.translator.build_inputs_file(wf)) @@ -613,7 +617,7 @@ def test_overrided_input_optional_nodefault(self): wf.input("inpId", String(optional=True)) settings.translate.ADDITIONAL_INPUTS = {"inpId": "2"} - actual_inputs = self.translator.build_inputs_dict(wf) + actual_inputs = self.translator.build_inputs_file(wf) settings.translate.ADDITIONAL_INPUTS = None expected_inputs = {"test_input_in_inputfile.inpId": "2"} @@ -625,7 +629,7 @@ def test_overrided_input_optional_default(self): wf.input("inpId", String(optional=True), default="2") settings.translate.ADDITIONAL_INPUTS = {"inpId": "4"} - actual_inputs = self.translator.build_inputs_dict(wf) + actual_inputs = self.translator.build_inputs_file(wf) settings.translate.ADDITIONAL_INPUTS = None expected_inputs = {"test_input_in_inputfile.inpId": "4"} @@ -636,7 +640,7 @@ def test_input_in_input_novalue_optional_nodefault(self): wf = WorkflowBuilder("test_input_in_inputfile") wf.input("inpId", String(optional=True)) - self.assertDictEqual({}, self.translator.build_inputs_dict(wf)) + self.assertDictEqual({}, self.translator.build_inputs_file(wf)) def test_input_in_input_novalue_optional_default(self): wf = WorkflowBuilder("test_input_in_inputfile") @@ -645,7 +649,7 @@ def test_input_in_input_novalue_optional_default(self): # new interpretation: defaults appear in inputs self.assertDictEqual( {"test_input_in_inputfile.inpId": "2"}, - self.translator.build_inputs_dict(wf), + self.translator.build_inputs_file(wf), ) # self.assertDictEqual({}, self.translator.build_inputs_file(wf)) @@ -851,7 +855,7 @@ def setUp(self) -> None: def test_cores(self): tool = BasicTestTool() - resources = WdlTranslator.build_resources_input( + resources = WdlTranslator._build_resources_dict( tool.wrapped_in_wf(), {}, is_root=True ) self.assertEqual( @@ -862,7 +866,7 @@ def test_max_cores(self): tool = BasicTestTool() wf = tool.wrapped_in_wf() settings.translate.MAX_CORES = 1 - resources = WdlTranslator.build_resources_input(wf, {}, is_root=True) + resources = WdlTranslator._build_resources_dict(wf, {}, is_root=True) settings.translate.MAX_CORES = None self.assertEqual( 1, resources["BasicTestToolWf.basictesttool_runtime_cpu"] @@ -870,7 +874,7 @@ def test_max_cores(self): def test_memory(self): tool = BasicTestTool() - resources = WdlTranslator.build_resources_input( + resources = WdlTranslator._build_resources_dict( tool.wrapped_in_wf(), {}, is_root=True ) self.assertEqual( @@ -881,7 +885,7 @@ def test_max_memory(self): tool = BasicTestTool() wf = tool.wrapped_in_wf() settings.translate.MAX_MEM = 1 - resources = WdlTranslator.build_resources_input(wf, {}, is_root=True) + resources = WdlTranslator._build_resources_dict(wf, {}, is_root=True) settings.translate.MAX_MEM = None self.assertEqual( 1, resources["BasicTestToolWf.basictesttool_runtime_memory"] diff --git a/janis_core/tests/testtools/basics.py b/janis_core/tests/testtools/basics.py index 58750b0ea..dbd88f01f 100644 --- a/janis_core/tests/testtools/basics.py +++ b/janis_core/tests/testtools/basics.py @@ -20,7 +20,6 @@ Boolean, ) - class StdoutTestTool(CommandTool): def tool(self) -> str: return "StdoutTestTool" diff --git a/janis_core/tests/testworkflows/basics.py b/janis_core/tests/testworkflows/basics.py index 66c548ee6..b6c3c2e4e 100644 --- a/janis_core/tests/testworkflows/basics.py +++ b/janis_core/tests/testworkflows/basics.py @@ -1,15 +1,29 @@ - +from typing import Optional from janis_core import ( Workflow, + ToolInput, + ToolArgument, + ToolOutput, + CommandToolBuilder, + WorkflowBuilder, + CeilOperator, + FileSizeOperator, + MultiplyOperator, + DivideOperator, + InputSelector, + AddOperator, ) + + from janis_core.types import ( String, File, Array, Int, - Float + Float, + Stdout ) from janis_core.tests.testtools import ( FileTestTool, @@ -18,7 +32,6 @@ WildcardSelectorTestTool, FileInputSelectorTestTool, StringInputSelectorTestTool, - ResourcesTestTool, ArrayFileTestTool, ArrayIntTestTool, ArrayStringTestTool, @@ -126,35 +139,34 @@ def id(self) -> str: return self.__class__.__name__ -# directives -class DirectivesTestWF(Workflow): - - def constructor(self): - self.input('inFile', File) - - self.step( - "stp1", - ResourcesTestTool( - inp=self.inFile, - threads=4 - ) - ) - self.step( - "stp2", - FileTestTool(inp=self.inFile) - ) - - self.output("outFile", File, source=self.stp1.out) - self.output("outFile2", File, source=self.stp2.out) - - def friendly_name(self): - return "TEST: DirectivesTestWF" - - def id(self) -> str: - return self.__class__.__name__ - - +# DIRECTIVES +resources_tool = CommandToolBuilder( + tool="ResourcesTestToolCB", + version="TEST", + base_command="echo", + inputs=[ + ToolInput("inp", File, position=1), + ToolInput("threads", Int) + ], + outputs=[ToolOutput("out", Stdout)], + container="quay.io/biocontainers/bedtools:2.29.2--hc088bd4_0", + disk=CeilOperator( + AddOperator( + DivideOperator( + FileSizeOperator(InputSelector('inp')), + MultiplyOperator(MultiplyOperator(1024, 1024), 1024)), + 20)), + memory=MultiplyOperator(15, 1024), + cpus=1, + time=60, +) +direcs_wf = WorkflowBuilder("DirectivesTestWF") +direcs_wf.input("inFile", File) +direcs_wf.step("stp1", resources_tool(inp=direcs_wf.inFile, threads=4)) +direcs_wf.output("outFile", source=direcs_wf.stp1.out) +DirectivesTestWF = direcs_wf + # -------- # # ARRAYS # diff --git a/janis_core/tests/testworkflows/outputs.py b/janis_core/tests/testworkflows/outputs.py index 699bbaa51..c49a19fd9 100644 --- a/janis_core/tests/testworkflows/outputs.py +++ b/janis_core/tests/testworkflows/outputs.py @@ -11,7 +11,9 @@ InputSelector, WildcardSelector, FirstOperator, - IndexOperator + IndexOperator, + StringFormatter, + NamerootOperator, ) from janis_core.types import ( Filename, @@ -29,6 +31,7 @@ def constructor(self): self.input('inFile', File) self.input('inFileArray', Array(File)) + self.step("stp0", ExpressionTestTool(inp=self.inFile)) self.step("stp1", WildcardSelectorTestTool(inp=self.inFile)) self.step("stp2", FilenameGenTestTool(inp=self.inFile)) self.step("stp3", FilenameRefTestTool(inp=self.inFile)) @@ -60,6 +63,35 @@ def base_command(self) -> Optional[str | list[str]]: return 'cat' +class ExpressionTestTool(CatToolBase): + + def friendly_name(self): + return "TEST: ExpressionTestTool" + + def tool(self): + return "ExpressionTestTool" + + def inputs(self): + return [ + ToolInput("inp", File(), position=1), + ] + + def arguments(self): + return [] + + def outputs(self): + return [ + ToolOutput( + "out", + File(), + selector=StringFormatter( + format='{token1}_markduplicates.metrics', + token1=NamerootOperator(InputSelector('inp')) + ), + ) + ] + + class WildcardSelectorTestTool(CatToolBase): def friendly_name(self): diff --git a/janis_core/tool/commandtool.py b/janis_core/tool/commandtool.py index 03a5c3f3c..7abb183d2 100644 --- a/janis_core/tool/commandtool.py +++ b/janis_core/tool/commandtool.py @@ -271,11 +271,19 @@ def id(self): return self.tag def __repr__(self): - attrs = ", ".join( - f"{k}={repr(v)}" - for k, v in self.__dict__.items() - if not k.startswith("_") and not callable(v) and v is not None - ) + attrs = [] + for k, v in self.__dict__.items(): + k = repr(k) + if k.startswith("_"): + continue + elif k == 'uuid': + continue + elif callable(v): + continue + elif v is None: + continue + else: + attrs.append(f"{k}={repr(v)}") return f"{self.__class__.__name__}({attrs})" diff --git a/janis_core/translations/common/__init__.py b/janis_core/translations/common/__init__.py index 78f0d6640..76da5db15 100644 --- a/janis_core/translations/common/__init__.py +++ b/janis_core/translations/common/__init__.py @@ -3,4 +3,5 @@ from .preprocessing.prune.history import TaskInputCollector from .preprocessing.prune.tools import get_step_referenced_tinputs from .preprocessing import prune_workflow -from .preprocessing import to_builders \ No newline at end of file +from .preprocessing import to_builders +from .preprocessing import wrap_tool_in_workflow \ No newline at end of file diff --git a/janis_core/translations/common/preprocessing/__init__.py b/janis_core/translations/common/preprocessing/__init__.py index d80ee50a4..8b239c9da 100644 --- a/janis_core/translations/common/preprocessing/__init__.py +++ b/janis_core/translations/common/preprocessing/__init__.py @@ -1,4 +1,5 @@ from .prune import prune_workflow -from .builders import to_builders \ No newline at end of file +from .builders import to_builders +from .wrap import wrap_tool_in_workflow \ No newline at end of file diff --git a/janis_core/translations/common/preprocessing/wrap/__init__.py b/janis_core/translations/common/preprocessing/wrap/__init__.py new file mode 100644 index 000000000..e22158b77 --- /dev/null +++ b/janis_core/translations/common/preprocessing/wrap/__init__.py @@ -0,0 +1,3 @@ + + +from .main import wrap_tool_in_workflow \ No newline at end of file diff --git a/janis_core/translations/common/preprocessing/wrap/main.py b/janis_core/translations/common/preprocessing/wrap/main.py new file mode 100644 index 000000000..8887f70f0 --- /dev/null +++ b/janis_core/translations/common/preprocessing/wrap/main.py @@ -0,0 +1,32 @@ + + +from janis_core import CommandToolBuilder, WorkflowBuilder, InputNodeSelector, StepOutputSelector + + +def wrap_tool_in_workflow(tool: CommandToolBuilder) -> WorkflowBuilder: + wf = WorkflowBuilder(f'{tool.id()}_wf') + + # add workflow input for each tool input + for inp in tool._inputs: + wf.input( + identifier=inp.id(), + datatype=inp.input_type, + default=None, + ) + + # add step + kwargs = {inp.id(): InputNodeSelector(wf.input_nodes[inp.id()]) for inp in tool._inputs} + step = wf.step( + f'{tool.id()}_step', + tool(**kwargs) + ) + + # add output for each tool output + for out in tool._outputs: + wf.output( + identifier=out.id(), + datatype=out.output_type, + source=StepOutputSelector(step, out.id()) + ) + + return wf \ No newline at end of file diff --git a/janis_core/translations/cwl/main.py b/janis_core/translations/cwl/main.py index 8b9a6fa20..e4626a7ec 100644 --- a/janis_core/translations/cwl/main.py +++ b/janis_core/translations/cwl/main.py @@ -24,12 +24,11 @@ from typing import List, Dict, Optional, Tuple, Any from typing import Union - import ruamel.yaml import cwl_utils.parser.cwl_v1_2 as cwlgen from janis_core import settings -from janis_core import WorkflowBase +from janis_core import WorkflowBase, WorkflowBuilder from janis_core.translation_deps.supportedtranslations import SupportedTranslation from janis_core.code.codetool import CodeTool from janis_core.graph.steptaginput import Edge, StepTagInput @@ -51,7 +50,7 @@ ) from janis_core.operators.logical import IsDefined, If, RoundOperator from janis_core.operators.standard import FirstOperator -from janis_core.tool.commandtool import CommandTool, ToolInput, ToolArgument, ToolOutput +from janis_core.tool.commandtool import CommandToolBuilder, ToolInput, ToolArgument, ToolOutput from janis_core.tool.tool import Tool, ToolType from janis_core.translations.translationbase import ( TranslatorBase, @@ -67,6 +66,8 @@ DataType, Directory, ) +from janis_core.messages import load_loglines +from janis_core.messages import ErrorCategory from janis_core.utils.logger import Logger from janis_core.utils.metadata import ToolMetadata from janis_core.workflow.workflow import StepNode, InputNode, OutputNode @@ -86,58 +87,14 @@ class CwlTranslator(TranslatorBase, metaclass=TranslatorMeta): def __init__(self): super().__init__(name="cwl") - @staticmethod - def stringify_commentedmap(m): - io = StringIO() - yaml.dump(m, io) - return io.getvalue() - - @staticmethod - def stringify_translated_workflow( - wf: cwlgen.Savable, should_format=True, as_json=False - ): - saved = wf.save() + ### JANIS -> OUTPUT MODEL MAPPING ### - if as_json: - return json.dumps(saved) - - formatted = SHEBANG + "\n" + CwlTranslator.stringify_commentedmap(saved) - if should_format: - from cwlformat.formatter import cwl_format - - formatted = cwl_format(formatted) - - return formatted - - @staticmethod - def stringify_translated_tool( - tool: cwlgen.Savable, should_format=True, as_json=False - ): - saved = tool.save() - - if as_json: - return json.dumps(saved) - - formatted = SHEBANG + "\n" + CwlTranslator.stringify_commentedmap(saved) - if should_format: - from cwlformat.formatter import cwl_format - - formatted = cwl_format(formatted) - - return formatted - - @staticmethod - def stringify_translated_inputs(inputs): - return ruamel.yaml.dump(inputs, default_flow_style=False) - - @staticmethod - def validate_command_for(wfpath, inppath, tools_dir_path, tools_zip_path): - return ["cwltool", "--validate", wfpath] - - @classmethod @try_catch_translate(type="workflow") - def translate_workflow_internal(cls, wf: WorkflowBase, is_nested_tool: bool=False) -> Tuple[cwlgen.Workflow, dict[str, Any]]: - + def translate_workflow_internal(self, wf: WorkflowBuilder, is_nested_tool: bool=False) -> None: + # check we haven't already translated this + if self.get_subworkflow(wf) is not None: + return + w = cwlgen.Workflow( id=wf.id(), label=wf.friendly_name(), @@ -197,169 +154,27 @@ def translate_workflow_internal(cls, wf: WorkflowBase, is_nested_tool: bool=Fals if wf.has_multiple_inputs: w.requirements.append(cwlgen.MultipleInputFeatureRequirement()) - tools = {} tools_to_build: Dict[str, Tool] = { s.tool.id(): s.tool for s in wf.step_nodes.values() } for t in tools_to_build: tool: Tool = tools_to_build[t] - if tool.type() == ToolType.Workflow: - wf_cwl, subtools = cls.translate_workflow_internal(tool, is_nested_tool=True) - tools[tool.versioned_id()] = wf_cwl - tools.update(subtools) - - elif isinstance(tool, CommandTool): - tool_cwl = cls.translate_tool_internal(tool) - tools[tool.versioned_id()] = tool_cwl - + if isinstance(tool, WorkflowBuilder): + self.translate_workflow_internal(tool, is_nested_tool=True) + elif isinstance(tool, CommandToolBuilder): + self.translate_tool_internal(tool) elif isinstance(tool, CodeTool): - tool_cwl = cls.translate_code_tool_internal(tool) - tools[tool.versioned_id()] = tool_cwl - + self.translate_code_tool_internal(tool) else: raise Exception(f"Unknown tool type: '{type(tool)}'") - return w, tools - - @classmethod - def convert_operator_to_commandtool( - cls, - step_id: str, - operators: List[Operator], - tool, - select_first_element: bool, - use_command_line_tool=False, - ) -> cwlgen.WorkflowStep: - - if len(operators) == 0: - raise Exception( - "Expected at least one operator when building intermediary expression tool" - ) - - prepare_alias = lambda x: f"_{re.sub('[^0-9a-zA-Z]+', '', x)}" - - # two step process - # 1. Look through and find ALL sources includng an operator's leaves - # Ensure these are connected using the alias - # 2. Go through sources again, build up the expression - - param_aliasing = {} - # Use a dict to ensure we don't double add inputs - ins_to_connect: Dict[str, cwlgen.WorkflowStepInput] = {} - tool_inputs: List[cwlgen.CommandInputParameter] = [] - - for src in operators: - if isinstance(src, InputNodeSelector) and isinstance( - src.input_node.default, Selector - ): - src = If(IsDefined(src), src, src.input_node.default) - - if isinstance(src, Operator): - # we'll need to get the leaves and do extra mappings - load_contents = src.requires_contents() - for leaf in src.get_leaves(): - if not isinstance(leaf, Selector): - # probably a python literal - continue - sel = CwlTranslator.unwrap_selector_for_reference(leaf) - alias = prepare_alias(sel) - param_aliasing[sel] = "inputs." + alias - ins_to_connect[alias] = cwlgen.WorkflowStepInput( - id=alias, source=sel - ) - tool_inputs.append( - cwlgen.CommandInputParameter( - type=leaf.returntype().received_type().cwl_type(), - id=alias, - loadContents=load_contents, - ) - ) - else: - sel = CwlTranslator.unwrap_selector_for_reference(src) - alias = prepare_alias(sel) - param_aliasing[sel] = alias - ins_to_connect[alias] = cwlgen.WorkflowStepInput(id=alias, source=sel) - - valuefrom = CwlTranslator.unwrap_expression( - operators[0] if select_first_element else operators, - code_environment=True, - selector_override=param_aliasing, - tool=tool, - ) - - tool_outputs = [ - cwlgen.CommandOutputParameter( - type=operators[0].returntype().cwl_type(), id="out" - ) - ] - if use_command_line_tool: - - tool = cwlgen.CommandLineTool( - baseCommand=["nodejs", "expression.js"], - stdout="cwl.output.json", - inputs=tool_inputs, - outputs=tool_outputs, - requirements=[ - cwlgen.DockerRequirement(dockerPull="node:slim"), - cwlgen.InitialWorkDirRequirement( - listing=[ - cwlgen.Dirent( - entryname="expression.js", - entry=f"""\ - "use strict"; - var inputs = $(inputs); - var runtime = $(runtime); - var ret = {valuefrom}; - process.stdout.write(JSON.stringify({{out: ret}})); - """, - ) - ] - ), - ], - ) + # add the translated workflow + if is_nested_tool: + self.add_subworkflow(wf, w) else: - tool = cwlgen.ExpressionTool( - inputs=tool_inputs, - outputs=tool_outputs, - expression=f"${{return {{out: {valuefrom} }}}}", - ) - - return cwlgen.WorkflowStep( - id=step_id, in_=list(ins_to_connect.values()), out=["out"], run=tool - ) - - @classmethod - def build_inputs_dict(cls, tool: Tool) -> dict[str, Any]: - - ad = settings.translate.ADDITIONAL_INPUTS or {} - values_provided_from_tool = {} - - if tool.type() == ToolType.Workflow: - values_provided_from_tool = { - i.id(): i.value if i.value is not None else i.default - for i in tool.input_nodes.values() - if i.value - or (i.default is not None and not isinstance(i.default, Selector)) - } - - inp = { - i.id(): i.intype.cwl_input( - ad.get(i.id(), values_provided_from_tool.get(i.id())) - ) - for i in tool.tool_inputs() - if i.default is not None - or not i.intype.optional - or i.id() in ad - or i.id() in values_provided_from_tool - } - - if settings.translate.MERGE_RESOURCES: - inputs_dict = cls.build_resources_input(tool) - for k, v in inputs_dict.items(): - inp[k] = ad.get(k, v) - - return inp - + assert self.main is None + self.main = (wf, w) + @classmethod @try_catch_translate(type="workflow (all in one)") def translate_workflow_to_all_in_one( @@ -367,6 +182,7 @@ def translate_workflow_to_all_in_one( wf, is_nested_tool=False, ) -> cwlgen.Workflow: + """What is the point of this function????""" metadata = wf.bind_metadata() or wf.metadata w = cwlgen.Workflow( @@ -429,9 +245,12 @@ def translate_workflow_to_all_in_one( return w - @classmethod @try_catch_translate(type="tool") - def translate_tool_internal(cls, tool: CommandTool): + def translate_tool_internal(self, tool: CommandToolBuilder) -> None: + # check we haven't already translated this + if self.get_tool(tool) is not None: + return + metadata = tool.metadata if tool.metadata else ToolMetadata() stdout = STDOUT_NAME @@ -540,7 +359,7 @@ def translate_tool_internal(cls, tool: CommandTool): for o in tool.outputs() ) - initial_workdir_req = cls.build_initial_workdir_from_tool(tool) + initial_workdir_req = self.build_initial_workdir_from_tool(tool) if initial_workdir_req: tool_cwl.requirements.append(initial_workdir_req) @@ -585,15 +404,16 @@ def translate_tool_internal(cls, tool: CommandTool): ), ) ) + # Add ToolTimeLimit here? - # Add ToolTimeLimit here - - return tool_cwl + self.add_tool(tool, tool_cwl) - @classmethod @try_catch_translate(type="code tool") - def translate_code_tool_internal(cls, tool: CodeTool): - + def translate_code_tool_internal(self, tool: CodeTool) -> None: + # check we haven't already translated this + if self.get_tool(tool) is not None: + return + stdouts = [ o.outtype for o in tool.tool_outputs() @@ -697,58 +517,57 @@ def translate_code_tool_internal(cls, tool: CodeTool): f"or --allow-empty-container" ) - return tool_cwl - + self.add_tool(tool, tool_cwl) @staticmethod def prepare_output_eval_for_python_codetool(tag: str, outtype: DataType): return None -# requires_obj_capture = isinstance(outtype, (File, Directory)) -# arraylayers = None -# if outtype.is_array() and isinstance( -# outtype.fundamental_type(), (File, Directory) -# ): -# requires_obj_capture = True -# base = outtype -# arraylayers = 0 -# while base.is_array(): -# arraylayers += 1 -# base = outtype.subtype() - -# if not requires_obj_capture: -# return None - -# classtype = "File" if isinstance(base, File) else "Directory" -# fileout_generator = ( -# lambda c: f"{{ class: '{classtype}', path: {c}, basename: {c}.substring({c}.lastIndexOf('/') + 1) }}" -# ) - -# if arraylayers: -# els = [] - -# base_var = f"v{arraylayers}" -# center = f"els.push({fileout_generator(base_var)};" - -# def iteratively_wrap(center, iterable, layers_remaining): -# var = f"v{layers_remaining}" -# if layers_remaining > 1: -# center = iteratively_wrap(center, var, layers_remaining - 1) -# return f"for (var {var} of {iterable}) {{ {center} }}" - -# out_capture = "\n".join( -# [ -# "var els = [];", -# iteratively_wrap(center, "c", arraylayers), -# "return els", -# ] -# ) -# else: -# capture = fileout_generator("self") -# out_capture = f"return {capture};" - -# return f"""${{ -# {out_capture} -# }}""" + # requires_obj_capture = isinstance(outtype, (File, Directory)) + # arraylayers = None + # if outtype.is_array() and isinstance( + # outtype.fundamental_type(), (File, Directory) + # ): + # requires_obj_capture = True + # base = outtype + # arraylayers = 0 + # while base.is_array(): + # arraylayers += 1 + # base = outtype.subtype() + + # if not requires_obj_capture: + # return None + + # classtype = "File" if isinstance(base, File) else "Directory" + # fileout_generator = ( + # lambda c: f"{{ class: '{classtype}', path: {c}, basename: {c}.substring({c}.lastIndexOf('/') + 1) }}" + # ) + + # if arraylayers: + # els = [] + + # base_var = f"v{arraylayers}" + # center = f"els.push({fileout_generator(base_var)};" + + # def iteratively_wrap(center, iterable, layers_remaining): + # var = f"v{layers_remaining}" + # if layers_remaining > 1: + # center = iteratively_wrap(center, var, layers_remaining - 1) + # return f"for (var {var} of {iterable}) {{ {center} }}" + + # out_capture = "\n".join( + # [ + # "var els = [];", + # iteratively_wrap(center, "c", arraylayers), + # "return els", + # ] + # ) + # else: + # capture = fileout_generator("self") + # out_capture = f"return {capture};" + + # return f"""${{ + # {out_capture} + # }}""" @classmethod def wrap_in_codeblock_if_required(cls, value, is_code_environment): @@ -978,8 +797,100 @@ def build_initial_workdir_from_tool(cls, tool): return cwlgen.InitialWorkDirRequirement(listing=listing) return None + def build_inputs_file(self, entity: WorkflowBuilder | CommandToolBuilder | CodeTool) -> None: + ad = settings.translate.ADDITIONAL_INPUTS or {} + values_provided_from_tool = {} + + if isinstance(entity, WorkflowBuilder): + values_provided_from_tool = { + i.id(): i.value if i.value is not None else i.default + for i in entity.input_nodes.values() + if i.value + or (i.default is not None and not isinstance(i.default, Selector)) + } + + inp = { + i.id(): i.intype.cwl_input( + ad.get(i.id(), values_provided_from_tool.get(i.id())) + ) + for i in entity.tool_inputs() + if i.default is not None + or not i.intype.optional + or i.id() in ad + or i.id() in values_provided_from_tool + } + + if settings.translate.MERGE_RESOURCES: + inputs_dict = self._build_resources_dict(entity) + for k, v in inputs_dict.items(): + inp[k] = ad.get(k, v) + + # convert to string & assign to self.inputs + inputs_str = ruamel.yaml.dump(inp, default_flow_style=False) + self.inputs_file = inputs_str + + def build_resources_file(self, entity: WorkflowBuilder | CommandToolBuilder | CodeTool) -> None: + resources_dict = self._build_resources_dict(entity) # type: ignore + resources_str = ruamel.yaml.dump(resources_dict, default_flow_style=False) + self.resources_file = resources_str + + + ### STRINGIFY ### + @staticmethod - def workflow_filename(workflow): + def stringify_commentedmap(m): + io = StringIO() + yaml.dump(m, io) + return io.getvalue() + + def stringify_translated_workflow( + self, + internal: WorkflowBuilder, + translated: cwlgen.Savable, + should_format=True, + as_json=False + ) -> str: + saved = translated.save() + + if as_json: + return json.dumps(saved) + + formatted = SHEBANG + "\n" + CwlTranslator.stringify_commentedmap(saved) + if should_format: + from cwlformat.formatter import cwl_format + + formatted = cwl_format(formatted) + + return formatted + + def stringify_translated_tool( + self, + internal: CommandToolBuilder | CodeTool, + translated: cwlgen.Savable, + should_format=True, + as_json=False + ) -> str: + saved = translated.save() + + if as_json: + return json.dumps(saved) # no messages + + formatted = SHEBANG + "\n" + CwlTranslator.stringify_commentedmap(saved) + if should_format: + from cwlformat.formatter import cwl_format + + formatted = cwl_format(formatted) + + # adding messages + loglines = load_loglines(category=ErrorCategory.SCRIPT, tool_uuid=internal.uuid) + + return formatted + + + ### FILENAMES ### + + @staticmethod + def workflow_filename(workflow: WorkflowBuilder, is_main: Optional[bool]=False) -> str: return workflow.versioned_id() + ".cwl" @staticmethod @@ -994,6 +905,123 @@ def tool_filename(tool): def resources_filename(workflow): return workflow.id() + "-resources.yml" + + ### VALIDATION ### + + @staticmethod + def validate_command_for(wfpath, inppath, tools_dir_path, tools_zip_path): + return ["cwltool", "--validate", wfpath] + + + ### MISC ### + + @classmethod + def convert_operator_to_commandtool( + cls, + step_id: str, + operators: List[Operator], + tool, + select_first_element: bool, + use_command_line_tool=False, + ) -> cwlgen.WorkflowStep: + + if len(operators) == 0: + raise Exception( + "Expected at least one operator when building intermediary expression tool" + ) + + prepare_alias = lambda x: f"_{re.sub('[^0-9a-zA-Z]+', '', x)}" + + # two step process + # 1. Look through and find ALL sources includng an operator's leaves + # Ensure these are connected using the alias + # 2. Go through sources again, build up the expression + + param_aliasing = {} + # Use a dict to ensure we don't double add inputs + ins_to_connect: Dict[str, cwlgen.WorkflowStepInput] = {} + tool_inputs: List[cwlgen.CommandInputParameter] = [] + + for src in operators: + if isinstance(src, InputNodeSelector) and isinstance( + src.input_node.default, Selector + ): + src = If(IsDefined(src), src, src.input_node.default) + + if isinstance(src, Operator): + # we'll need to get the leaves and do extra mappings + load_contents = src.requires_contents() + for leaf in src.get_leaves(): + if not isinstance(leaf, Selector): + # probably a python literal + continue + sel = CwlTranslator.unwrap_selector_for_reference(leaf) + alias = prepare_alias(sel) + param_aliasing[sel] = "inputs." + alias + ins_to_connect[alias] = cwlgen.WorkflowStepInput( + id=alias, source=sel + ) + tool_inputs.append( + cwlgen.CommandInputParameter( + type=leaf.returntype().received_type().cwl_type(), + id=alias, + loadContents=load_contents, + ) + ) + else: + sel = CwlTranslator.unwrap_selector_for_reference(src) + alias = prepare_alias(sel) + param_aliasing[sel] = alias + ins_to_connect[alias] = cwlgen.WorkflowStepInput(id=alias, source=sel) + + valuefrom = CwlTranslator.unwrap_expression( + operators[0] if select_first_element else operators, + code_environment=True, + selector_override=param_aliasing, + tool=tool, + ) + + tool_outputs = [ + cwlgen.CommandOutputParameter( + type=operators[0].returntype().cwl_type(), id="out" + ) + ] + if use_command_line_tool: + + tool = cwlgen.CommandLineTool( + baseCommand=["nodejs", "expression.js"], + stdout="cwl.output.json", + inputs=tool_inputs, + outputs=tool_outputs, + requirements=[ + cwlgen.DockerRequirement(dockerPull="node:slim"), + cwlgen.InitialWorkDirRequirement( + listing=[ + cwlgen.Dirent( + entryname="expression.js", + entry=f"""\ + "use strict"; + var inputs = $(inputs); + var runtime = $(runtime); + var ret = {valuefrom}; + process.stdout.write(JSON.stringify({{out: ret}})); + """, + ) + ] + ), + ], + ) + else: + tool = cwlgen.ExpressionTool( + inputs=tool_inputs, + outputs=tool_outputs, + expression=f"${{return {{out: {valuefrom} }}}}", + ) + + return cwlgen.WorkflowStep( + id=step_id, in_=list(ins_to_connect.values()), out=["out"], run=tool + ) + # matcher_double_quote = re.compile('[^\\\]"') # matcher_single_quote = re.compile("[^\\\]'") @@ -1427,18 +1455,24 @@ def get_run_ref_from_subtool( is_nested_tool: bool, use_run_ref: bool, ): - - if use_run_ref: + translator = CwlTranslator() + + if use_run_ref and isinstance(tool, CommandToolBuilder | CodeTool): prefix = "" if is_nested_tool else "tools/" - return prefix + CwlTranslator.tool_filename(tool) + return prefix + translator.tool_filename(tool) else: - - if tool.type() == ToolType.Workflow: - return CwlTranslator.translate_workflow_to_all_in_one(tool) + if isinstance(tool, WorkflowBuilder): + return translator.translate_workflow_to_all_in_one(tool) elif isinstance(tool, CodeTool): - return CwlTranslator.translate_code_tool_internal(tool) + translator.translate_code_tool_internal(tool) + assert len(translator.tools) == 1 + return translator.tools[0][1] + elif isinstance(tool, CommandToolBuilder): + translator.translate_tool_internal(tool) + assert len(translator.tools) == 1 + return translator.tools[0][1] else: - return CwlTranslator.translate_tool_internal(tool) + raise RuntimeError("Unknown tool type") def add_when_conditional_for_workflow_stp(stp: cwlgen.WorkflowStep, when: Selector): @@ -1663,7 +1697,7 @@ def translate_step_node( processed_sources = [] for i in range(len(ar_source)): stepinput = ar_source[i] - src: any = stepinput.source + src: Any = stepinput.source if isinstance(src, InputNodeSelector) and isinstance( src.input_node.default, Selector ): @@ -1982,7 +2016,7 @@ def build_resource_override_maps_for_workflow( for s in wf.step_nodes.values(): tool: Tool = s.tool - if isinstance(tool, CommandTool): + if isinstance(tool, CommandToolBuilder): tool_pre = prefix + s.id() + "_" inputs.extend( [ diff --git a/janis_core/translations/main.py b/janis_core/translations/main.py index f9676029a..52da6c1fc 100644 --- a/janis_core/translations/main.py +++ b/janis_core/translations/main.py @@ -4,12 +4,13 @@ from inspect import isclass from janis_core import settings -from janis_core import CodeTool, CommandTool, WorkflowBase, WorkflowBuilder +from janis_core import CodeTool, CommandTool, CommandToolBuilder, WorkflowBase, WorkflowBuilder from janis_core import Tool from janis_core.utils import lowercase_dictkeys from janis_core.translation_deps.supportedtranslations import SupportedTranslation from janis_core.translations.common import to_builders from janis_core.translations.common import prune_workflow +from janis_core.translations.common import wrap_tool_in_workflow from .translationbase import TranslatorBase @@ -21,6 +22,7 @@ def translate( # file io to_disk: Optional[bool] = None, export_path: Optional[str] = None, + as_workflow: Optional[bool] = None, should_zip: Optional[bool] = None, to_console: Optional[bool] = None, tool_to_console: Optional[bool] = None, @@ -104,13 +106,16 @@ def translate( assert(isinstance(entity, WorkflowBuilder)) prune_workflow(entity) + if as_workflow and isinstance(entity, CommandToolBuilder): + entity = wrap_tool_in_workflow(entity) + # select the translation unit translator = get_translator(dest_fmt) # do translation - if isinstance(entity, WorkflowBase): + if isinstance(entity, WorkflowBuilder): return translator.translate_workflow(entity) - elif isinstance(entity, CommandTool): + elif isinstance(entity, CommandToolBuilder): return translator.translate_tool(entity) elif isinstance(entity, CodeTool): return translator.translate_code_tool(entity) @@ -123,6 +128,9 @@ def get_translator(translation: str | SupportedTranslation) -> TranslatorBase: translation = SupportedTranslation(translation) return translation.get_translator() + +# standalone funcs for just building inputs, rather than doing full translation. +# doesn't really work or make sense. def build_resources_input( workflow: WorkflowBase, translation: str | SupportedTranslation, @@ -141,7 +149,7 @@ def build_resources_input( settings.translate.MAX_MEM = max_mem translator = get_translator(translation) - inputs_dict = translator.build_resources_input(workflow) + inputs_dict = translator._build_resources_dict(workflow) return inputs_dict def build_resources_file( diff --git a/janis_core/translations/nextflow/generate/config.py b/janis_core/translations/nextflow/generate/config.py index 1e51174ae..da6784140 100644 --- a/janis_core/translations/nextflow/generate/config.py +++ b/janis_core/translations/nextflow/generate/config.py @@ -19,9 +19,7 @@ TEMPLATE = """\ nextflow.enable.dsl = 2 -singularity.enabled = true -singularity.autoMounts = true -singularity.cacheDir = "$HOME/.singularity/cache" +docker.enabled = true params {{ diff --git a/janis_core/translations/nextflow/generate/files/__init__.py b/janis_core/translations/nextflow/generate/files/__init__.py index dedbaa8ba..af046065c 100644 --- a/janis_core/translations/nextflow/generate/files/__init__.py +++ b/janis_core/translations/nextflow/generate/files/__init__.py @@ -1,6 +1,7 @@ -from .main import generate_files -from .main import generate_file_process +# from .main import generate_files +from .process import generate_file_process +from .workflow import generate_file_workflow from .channel_declarations import should_create_channel_definition from .variable_declarations import should_create_variable_definition \ No newline at end of file diff --git a/janis_core/translations/nextflow/generate/files/main.py b/janis_core/translations/nextflow/generate/files/main.py index 90728dd1d..739dd2c81 100644 --- a/janis_core/translations/nextflow/generate/files/main.py +++ b/janis_core/translations/nextflow/generate/files/main.py @@ -1,74 +1,34 @@ -from typing import Optional +# from typing import Optional -from janis_core import Workflow, PythonTool, CommandTool -from ...model.process import NFProcess -from ...model.workflow import NFWorkflow -from ...model.files import NFFile +# from janis_core import Workflow, CodeTool, CommandToolBuilder +# from ...model.process import NFProcess +# from ...model.workflow import NFWorkflow +# from ...model.files import NFFile -from .process import generate_file_process -from .workflow import generate_file_workflow +# from .process import generate_file_process +# from .workflow import generate_file_workflow - -def generate_files(main_wf: Workflow, nf_processes: dict[str, NFProcess], nf_workflows: dict[str, NFWorkflow]) -> dict[str, NFFile]: - """generates nextflow files for processes and workflows""" - nf_files: dict[str, NFFile] = {} +# def generate_files(main_wf: Workflow, nf_processes: dict[str, NFProcess], nf_workflows: dict[str, NFWorkflow]) -> dict[str, NFFile]: +# """generates nextflow files for processes and workflows""" +# nf_files: dict[str, NFFile] = {} - for tool_id, process in nf_processes.items(): - tool = _get_tool(tool_id, main_wf) - nffile = generate_file_process(process, tool) - nf_files[tool_id] = nffile +# for tool_id, process in nf_processes.items(): +# tool = _get_tool(tool_id, main_wf) +# nffile = generate_file_process(process, tool) +# nf_files[tool_id] = nffile - for wf_id, workflow in nf_workflows.items(): - is_subworkflow = True if wf_id != main_wf.id() else False - wf = _get_workflow(wf_id, main_wf) - nffile = generate_file_workflow(workflow, nf_processes, nf_workflows, wf, is_subworkflow) - nf_files[wf_id] = nffile - - return nf_files +# for wf_id, workflow in nf_workflows.items(): +# is_subworkflow = True if wf_id != main_wf.id() else False +# wf = _get_workflow(wf_id, main_wf) +# nffile = generate_file_workflow(workflow, nf_processes, nf_workflows, wf, is_subworkflow) +# nf_files[wf_id] = nffile +# return nf_files -def _get_tool(tool_id: str, wf: Workflow) -> CommandTool | PythonTool: - """finds & returns workflow tool using tool_id""" - tool = _do_get_tool(tool_id, wf) - if not tool: - raise Exception(f"Tool '{tool_id}' not found in workflow") - return tool -def _do_get_tool(tool_id: str, wf: Workflow) -> Optional[CommandTool | PythonTool]: - """finds & returns workflow tool using tool_id""" - for step in wf.step_nodes.values(): - if step.tool.id() == tool_id: - return step.tool - - if isinstance(step.tool, Workflow): - tool = _do_get_tool(tool_id, step.tool) - if tool: - return tool - - return None -def _get_workflow(workflow_id: str, main_wf: Workflow) -> Workflow: - if main_wf.id() == workflow_id: - return main_wf - workflow = _do_get_workflow(workflow_id, main_wf) - if not workflow: - raise Exception(f"Workflow '{workflow_id}' not found in workflow") - return workflow - -def _do_get_workflow(workflow_id: str, wf: Workflow) -> Optional[Workflow]: - """finds & returns workflow using workflow_id""" - for step in wf.step_nodes.values(): - if step.tool.id() == workflow_id: - return step.tool - - if isinstance(step.tool, Workflow): - workflow = _do_get_workflow(workflow_id, step.tool) - if workflow: - return workflow - - return None diff --git a/janis_core/translations/nextflow/generate/files/process.py b/janis_core/translations/nextflow/generate/files/process.py index 4bd5d0fff..e10ea753a 100644 --- a/janis_core/translations/nextflow/generate/files/process.py +++ b/janis_core/translations/nextflow/generate/files/process.py @@ -1,12 +1,14 @@ from typing import Optional -from janis_core import CommandTool, PythonTool +from janis_core import CommandToolBuilder, CodeTool from janis_core import translation_utils as utils +from janis_core.messages import load_loglines, ErrorCategory from ...model.files import NFFile from ...model.files import NFImportsBlock from ...model.files import NFFunctionsBlock +from ...model.files import NFMessageBlock from ...model.process import NFProcess from janis_core.translations.common import trace @@ -24,10 +26,15 @@ def primary_files = [] }""" -def generate_file_process(process: NFProcess, tool: CommandTool | PythonTool) -> NFFile: - """generates nextflow file for nextflow process derived from CommandTool""" +def generate_file_process(process: NFProcess, tool: CommandToolBuilder | CodeTool) -> NFFile: + """generates nextflow file for nextflow process derived from CommandToolBuilder""" nf_file = NFFile(subtype='process', name=process.name) + # item: messages + message_items = gen_message_items_for_process_file(tool, process) + if message_items: + nf_file.items += message_items + # groovy library imports & groovy functions used in process # item: imports imports_item = gen_imports_for_process_file(tool) @@ -44,14 +51,71 @@ def generate_file_process(process: NFProcess, tool: CommandTool | PythonTool) -> return nf_file +def gen_message_items_for_process_file(tool: CommandToolBuilder | CodeTool, process: NFProcess) -> list[NFMessageBlock]: + message_items = [] -def gen_imports_for_process_file(tool: CommandTool | PythonTool) -> Optional[NFImportsBlock]: - # methods: list[str] = [] + # fallbacks + loglines = load_loglines(category=ErrorCategory.FALLBACK, tool_uuid=tool.uuid) + if loglines: + message_items.append(NFMessageBlock( + heading='ERROR: PARSING FALLBACKS', + lines=[f'// {x.message}' for x in loglines] + )) + + # datatypes + loglines = load_loglines(category=ErrorCategory.DATATYPE, tool_uuid=tool.uuid) + if loglines: + # TODO handle updated variable names here? + message_items.append(NFMessageBlock( + heading='WARNING: DATATYPES', + lines=[f'// {x.message}' for x in loglines] + )) + + # version + loglines = load_loglines(category=ErrorCategory.VERSION, tool_uuid=tool.uuid) + if loglines: + message_items.append(NFMessageBlock( + heading='WARNING: VERSION', + lines=[f'// {x.message}' for x in loglines] + )) + + # experimental + loglines = load_loglines(category=ErrorCategory.EXPERIMENTAL, tool_uuid=tool.uuid) + if loglines: + message_items.append(NFMessageBlock( + heading='WARNING: EXPERIMENTAL FEATURES', + lines=[f'// {x.message}' for x in loglines] + )) + + # untranslated expressions + loglines = load_loglines(category=ErrorCategory.SCRIPT, tool_uuid=tool.uuid) + if loglines: + messages = [x.message for x in loglines] + filtered = [] + + # filter to messages where __TOKEN__ still is in the process text + for msg in messages: + token = msg.split(' = ', 1)[0] + if token in process.get_string(): + filtered.append(msg) + + # create block & append + if filtered: + message_items.append(NFMessageBlock( + heading='ERROR: UNTRANSLATED EXPRESSIONS', + lines=filtered + )) + + return message_items + +def gen_imports_for_process_file(tool: CommandToolBuilder | CodeTool) -> Optional[NFImportsBlock]: imports: list[str] = [] declarations: list[str] = [] + if _should_add_math(tool): + imports.append('import java.lang.Math') + if _should_add_json_slurper(tool): - # methods.append('include') imports.append('import groovy.json.JsonSlurper') declarations.append('jsonSlurper = new JsonSlurper()') @@ -61,15 +125,42 @@ def gen_imports_for_process_file(tool: CommandTool | PythonTool) -> Optional[NFI else: return None -def _should_add_json_slurper(tool: CommandTool | PythonTool) -> bool: - if isinstance(tool, CommandTool): +def _should_add_math(tool: CommandToolBuilder | CodeTool) -> bool: + if isinstance(tool, CommandToolBuilder): + entity_counts = {} + # runtime + for item in [tool._cpus, tool._disk, tool._memory, tool._time]: + if item is not None: + entity_counts = entity_counts | trace.trace_entity_counts(item, tool) + # inputs + if tool._inputs is not None: + for tinput in tool._inputs: + entity_counts = entity_counts | trace.trace_entity_counts(tinput, tool) + # arguments + if tool._arguments is not None: + for targ in tool._arguments: + entity_counts = entity_counts | trace.trace_entity_counts(targ, tool) + # outputs + if tool._outputs is not None: + for tout in tool._outputs: + entity_counts = entity_counts | trace.trace_entity_counts(tout, tool) + + for op in ["CeilOperator", "FloorOperator", "RoundOperator"]: + if op in entity_counts: + return True + return False + return False + + +def _should_add_json_slurper(tool: CommandToolBuilder | CodeTool) -> bool: + if isinstance(tool, CommandToolBuilder): for toutput in tool.outputs(): entity_counts = trace.trace_entity_counts(toutput.selector, tool) if 'ReadJsonOperator' in entity_counts: return True return False -def gen_functions_for_process_file(tool: CommandTool | PythonTool) -> Optional[NFFunctionsBlock]: +def gen_functions_for_process_file(tool: CommandToolBuilder | CodeTool) -> Optional[NFFunctionsBlock]: funcs: list[str] = [] if _should_add_get_primary_files(tool): @@ -80,7 +171,7 @@ def gen_functions_for_process_file(tool: CommandTool | PythonTool) -> Optional[N else: return None -def _should_add_get_primary_files(tool: CommandTool | PythonTool) -> bool: +def _should_add_get_primary_files(tool: CommandToolBuilder | CodeTool) -> bool: for tinput in tool.tool_inputs(): if utils.is_secondary_array_type(tinput.intype): return True diff --git a/janis_core/translations/nextflow/generate/process/directives.py b/janis_core/translations/nextflow/generate/process/directives.py index 25ab1278d..e39fb36c3 100644 --- a/janis_core/translations/nextflow/generate/process/directives.py +++ b/janis_core/translations/nextflow/generate/process/directives.py @@ -2,11 +2,13 @@ from typing import Any -from janis_core import CommandTool, PythonTool, Selector +from janis_core import CommandToolBuilder, PythonTool, Selector, StringFormatter from janis_core.types import Int from janis_core import settings +from janis_core.translations.nextflow.unwrap import unwrap_expression from ... import params +from ...variables import VariableManager from ...model.process.directives import ( NFProcessDirective, @@ -24,7 +26,7 @@ # why? the module acts as an enum. currently can access directives via `directives.ProcessDirective` etc - GH Dec 2022 -def gen_nf_process_directives(tool: CommandTool | PythonTool, resources: dict[str, Any]) -> list[NFProcessDirective]: +def gen_nf_process_directives(tool: CommandToolBuilder | PythonTool, vmanager: VariableManager) -> list[NFProcessDirective]: nf_directives: dict[str, NFProcessDirective] = {} # publishDir @@ -38,7 +40,6 @@ def gen_nf_process_directives(tool: CommandTool | PythonTool, resources: dict[st uri = None if settings.translate.WITH_CONTAINER and tool.container(): uri = tool.container() - # unwrap_expression()? nf_directives['container'] = NFContainerDirective(uri) if uri is None and not settings.translate.ALLOW_EMPTY_CONTAINER: @@ -48,41 +49,77 @@ def gen_nf_process_directives(tool: CommandTool | PythonTool, resources: dict[st f"'allow_empty_container=True' or --allow-empty-container" ) - # directives from input resources - for res, val in resources.items(): - if res.endswith("runtime_cpu"): - param = params.add(tinput_id='cpus', task_id=tool.id(), default=val, janis_dtype=Int(), subtype='sub_tool') - nf_directives['cpus'] = NFCpusDirective(param) + # # directives from input resources + # for res, val in resources.items(): + # if res.endswith("runtime_cpu"): + # param = params.add(tinput_id='cpus', task_id=tool.id(), default=val, janis_dtype=Int(), subtype='sub_tool') + # nf_directives['cpus'] = NFCpusDirective(param) - elif res.endswith("runtime_memory"): - param = params.add(tinput_id='memory', task_id=tool.id(), default=val, janis_dtype=Int(), subtype='sub_tool') - nf_directives['memory'] = NFMemoryDirective(param) + # elif res.endswith("runtime_memory"): + # param = params.add(tinput_id='memory', task_id=tool.id(), default=val, janis_dtype=Int(), subtype='sub_tool') + # nf_directives['memory'] = NFMemoryDirective(param) - elif res.endswith("runtime_seconds"): - param = params.add(tinput_id='time', task_id=tool.id(), default=val, janis_dtype=Int(), subtype='sub_tool') - nf_directives['time'] = NFTimeDirective(param) + # elif res.endswith("runtime_seconds"): + # param = params.add(tinput_id='time', task_id=tool.id(), default=val, janis_dtype=Int(), subtype='sub_tool') + # nf_directives['time'] = NFTimeDirective(param) - elif res.endswith("runtime_disk"): - param = params.add(tinput_id='disk', task_id=tool.id(), default=val, janis_dtype=Int(), subtype='sub_tool') - nf_directives['disk'] = NFDiskDirective(param) + # elif res.endswith("runtime_disk"): + # param = params.add(tinput_id='disk', task_id=tool.id(), default=val, janis_dtype=Int(), subtype='sub_tool') + # nf_directives['disk'] = NFDiskDirective(param) # directives from tool resources if settings.translate.nextflow.ENTITY == 'workflow': - if 'cpus' not in nf_directives and tool.cpus({}) is not None: - param = params.add(tinput_id='cpus', task_id=tool.id(), default=tool.cpus({}), janis_dtype=Int(), subtype='sub_tool') - nf_directives['cpus'] = NFCpusDirective(param) + if 'cpus' not in nf_directives and tool.cpus({}) is not None: + cpus = tool.cpus({}) + if isinstance(cpus, Selector): + res = unwrap_expression(val=cpus, context='process_script', variable_manager=vmanager, tool=tool, apply_braces=False) + if isinstance(cpus, StringFormatter): + res = f'{res}' + else: + res = f'${{{res}}}' + nf_directives['cpus'] = NFCpusDirective(res) + else: + param = params.add(tinput_id='cpus', task_id=tool.id(), default=tool.cpus({}), janis_dtype=Int(), subtype='sub_tool') + nf_directives['cpus'] = NFCpusDirective(param) if 'memory' not in nf_directives and tool.memory({}) is not None: - param = params.add(tinput_id='memory', task_id=tool.id(), default=tool.memory({}), janis_dtype=Int(), subtype='sub_tool') - nf_directives['memory'] = NFMemoryDirective(param) + memory = tool.memory({}) + if isinstance(memory, Selector): + res = unwrap_expression(val=memory, context='process_script', variable_manager=vmanager, tool=tool, apply_braces=False) + if isinstance(memory, StringFormatter): + res = f'{res} MB' + else: + res = f'${{{res}}} MB' + nf_directives['memory'] = NFMemoryDirective(res) + else: + param = params.add(tinput_id='memory', task_id=tool.id(), default=tool.memory({}), janis_dtype=Int(), subtype='sub_tool') + nf_directives['memory'] = NFMemoryDirective(param) if 'disk' not in nf_directives and tool.disk({}) is not None: - param = params.add(tinput_id='disk', task_id=tool.id(), default=tool.disk({}), janis_dtype=Int(), subtype='sub_tool') - nf_directives['disk'] = NFDiskDirective(param) + disk = tool.disk({}) + if isinstance(disk, Selector): + res = unwrap_expression(val=disk, context='process_script', variable_manager=vmanager, tool=tool, apply_braces=False) + if isinstance(disk, StringFormatter): + res = f'{res} MB' + else: + res = f'${{{res}}} MB' + nf_directives['disk'] = NFDiskDirective(res) + else: + param = params.add(tinput_id='disk', task_id=tool.id(), default=tool.disk({}), janis_dtype=Int(), subtype='sub_tool') + nf_directives['disk'] = NFDiskDirective(param) if 'time' not in nf_directives and tool.time({}) is not None: - param = params.add(tinput_id='time', task_id=tool.id(), default=tool.time({}), janis_dtype=Int(), subtype='sub_tool') - nf_directives['time'] = NFTimeDirective(param) + time = tool.time({}) + if isinstance(time, Selector): + res = unwrap_expression(val=time, context='process_script', variable_manager=vmanager, tool=tool, apply_braces=False) + if isinstance(time, StringFormatter): + res = f'{res}' + else: + res = f'${{{res}}}' + nf_directives['time'] = NFTimeDirective(res) + else: + param = params.add(tinput_id='time', task_id=tool.id(), default=tool.time({}), janis_dtype=Int(), subtype='sub_tool') + nf_directives['time'] = NFTimeDirective(param) final_directives: list[NFProcessDirective] = [] for direc in nf_directives.values(): diff --git a/janis_core/translations/nextflow/generate/process/main.py b/janis_core/translations/nextflow/generate/process/main.py index d1585248c..a4f1f1e79 100644 --- a/janis_core/translations/nextflow/generate/process/main.py +++ b/janis_core/translations/nextflow/generate/process/main.py @@ -72,8 +72,7 @@ def name(self) -> str: def generate(self) -> NFProcess: # directives - resources = {} - process_directives = gen_nf_process_directives(self.tool, resources) + process_directives = gen_nf_process_directives(self.tool, self.vmanager) # inputs process_inputs = gen_nf_process_inputs(self.tool) diff --git a/janis_core/translations/nextflow/generate/process/outputs/factory_cmdtool.py b/janis_core/translations/nextflow/generate/process/outputs/factory_cmdtool.py index 5e46b5d4c..0b9780e89 100644 --- a/janis_core/translations/nextflow/generate/process/outputs/factory_cmdtool.py +++ b/janis_core/translations/nextflow/generate/process/outputs/factory_cmdtool.py @@ -120,29 +120,7 @@ def get_fmttype(self, selector: Any) -> FmtType: # ToolInput is Filename type if isinstance(tinput.intype, Filename): return FmtType.FILENAME - # entity_counts = trace.trace_entity_counts(tinput.intype, tool=self.tool) - # entities = set(entity_counts.keys()) - # filename_gen_whitelist = set(['Filename', 'str', 'NoneType']) - # filename_ref_whitelist = set(['InputSelector', 'Filename', 'str', 'NoneType']) - - # # ToolInput does not refer to another ToolInput - # # This must be first as less specific - # if entities.issubset(filename_gen_whitelist): - # if tinput.id() in task_inputs.task_inputs(self.tool.id()): - # return FmtType.FILENAME - # elif tinput.id() in task_inputs.param_inputs(self.tool.id()): - # return FmtType.FILENAME - # else: - # return FmtType.FILENAME_GEN - - # # ToolInput refers to another ToolInput - # elif entities.issubset(filename_ref_whitelist): - # return FmtType.FILENAME_REF - # # ToolInput uses complex logic - # else: - # return FmtType.COMPLEX - # ToolInput is not Filename type (direct reference) else: # TInput with static value for process diff --git a/janis_core/translations/nextflow/generate/process/script/prescript.py b/janis_core/translations/nextflow/generate/process/script/prescript.py index 98fe51089..6e2aa4b01 100644 --- a/janis_core/translations/nextflow/generate/process/script/prescript.py +++ b/janis_core/translations/nextflow/generate/process/script/prescript.py @@ -375,6 +375,10 @@ def join_declaration_mandatory_basic(self) -> str: class FileArrayFormatter(GenericArrayFormatter): COND_CHECK_FMT = '{src}[0] != {null}' + + ARR_JOIN_BASIC = '{src}' + ARR_JOIN_PREFIX = '"{prefix}{spacer}${{{src}}}"' + ARR_JOIN_PREFIXEACH = '{src}.collect{{ \"{prefix}{spacer}${{it}}\" }}' def cond_check(self) -> str: # eg: adapters[0] != null diff --git a/janis_core/translations/nextflow/main.py b/janis_core/translations/nextflow/main.py index c97aa2164..ce57aff3c 100644 --- a/janis_core/translations/nextflow/main.py +++ b/janis_core/translations/nextflow/main.py @@ -1,13 +1,8 @@ -from copy import deepcopy -import os -from collections import defaultdict -from typing import Tuple, Optional, Any, Protocol -from janis_core.tool.commandtool import ( - CommandTool, - Tool, -) +import os +from typing import Tuple, Any, Optional +from janis_core.tool.commandtool import Tool from janis_core.code.codetool import CodeTool from janis_core.code.pythontool import PythonTool from janis_core.tool.commandtool import CommandToolBuilder @@ -17,144 +12,103 @@ from janis_core import InputSelector, File, Directory from janis_core import settings -from .model.files.files import NFFile +from .model.workflow import NFWorkflow +from .model.process import NFProcess from .generate.process import generate_processes from .generate.process import generate_process from .generate.workflow import generate_workflows -from .generate.files import generate_files +# from .generate.files import generate_files from .generate.files import generate_file_process +from .generate.files import generate_file_workflow -from . import params from . import generate from . import preprocessing -from .scope import Scope - - -# class methods dont make sense. dislike this approach. -# whole approach is far too complex. no need for oop. -# should have just defined a translation interface (protocol class in python) -# specifying the method signatures each translator needs. - -# class File: -# ... - -# def translate_workflow(workflow: Workflow) -> list[File]: -# """translates a janis workflow to nextflow format.""" -# ... - -# def translate_tool(tool: Tool) -> list[File]: -# """translates a janis tool to nextflow""" -# ... - -# - GH Dec 2022 - - -class IGetStringMethod(Protocol): - def get_string(self) -> str: - ... - -def dot_to_scope_notation(dot: str) -> list[str]: - return dot.split('.') - - -class NFFileRegister: - """ - Stores generated nf files. - Organised by {scope: file}. - Each entity (ie workflow, subworkflow, tool) only belongs to 1 file. - Some entities (Tools / Workflows) may have multiple items (imports, function definitions, process / workflow body etc). - """ - def __init__(self): - self.files: dict[str, NFFile] = {} - - def add(self, scope: Scope, nf_file: NFFile) -> None: - label = scope.to_string() - self.files[label] = nf_file - - def get(self, scope: Scope) -> NFFile: - label = scope.to_string() - return self.files[label] - def get_children(self, scope: Scope, direct_only: bool=True) -> list[NFFile]: - # items with current scope - child_files: list[NFFile] = [] - - # items with child scope - depth = len(scope.items) - for label, nf_file in self.files.items(): - label_split = dot_to_scope_notation(label) - # ignore the main workflow file (it throws things off) - if label_split != [settings.translate.nextflow.NF_MAIN_NAME]: - # does the scope match the start of the label? - if label_split[:depth] == scope.labels: - # if we only want direct children - if not direct_only: - child_files.append(nf_file) - elif direct_only and len(label_split) == depth + 1: - child_files.append(nf_file) - return child_files +# HELPERS +def _get_tool(tool_id: str, wf: WorkflowBuilder) -> CommandToolBuilder | CodeTool: + """finds & returns workflow tool using tool_id""" + tool = _do_get_tool(tool_id, wf) + if not tool: + raise Exception(f"Tool '{tool_id}' not found in workflow") + return tool + +def _do_get_tool(tool_id: str, wf: WorkflowBuilder) -> Optional[CommandToolBuilder | CodeTool]: + """finds & returns workflow tool using tool_id""" + for step in wf.step_nodes.values(): + if step.tool.id() == tool_id: + return step.tool + + if isinstance(step.tool, WorkflowBuilder): + tool = _do_get_tool(tool_id, step.tool) + if tool: + return tool + return None + +def _get_workflow(workflow_id: str, main_wf: WorkflowBuilder) -> WorkflowBuilder: + if main_wf.id() == workflow_id: + return main_wf + workflow = _do_get_workflow(workflow_id, main_wf) + if not workflow: + raise Exception(f"Workflow '{workflow_id}' not found in workflow") + return workflow + +def _do_get_workflow(workflow_id: str, wf: WorkflowBuilder) -> Optional[WorkflowBuilder]: + """finds & returns workflow using workflow_id""" + for step in wf.step_nodes.values(): + if step.tool.id() == workflow_id: + return step.tool + + if isinstance(step.tool, Workflow): + workflow = _do_get_workflow(workflow_id, step.tool) + if workflow: + return workflow + return None -class NFItemRegister: - """ - Stores generated nf items. - Organised by {scope: [items]}. - Some entities (Tools / Workflows) may have multiple items (imports, function definitions, process / workflow body etc). - """ - def __init__(self): - self.items: dict[str, list[IGetStringMethod]] = defaultdict(list) - - def add(self, scope: Scope, nf_item: IGetStringMethod) -> None: - label = scope.to_string() - self.items[label].append(nf_item) - - def get(self, scope: Scope) -> list[IGetStringMethod]: - # items with current scope - label = scope.to_string() - nf_items = deepcopy(self.items[label]) # ??? no idea why i did this but too scared to change - return nf_items - class NextflowTranslator(TranslatorBase): - DIR_TOOLS: str = '' # DO NOT ALTER - DIR_FILES: str = '' # DO NOT ALTER - SUBDIRS_TO_CREATE: list[str] = [ - settings.translate.nextflow.PROCESS_OUTDIR, - settings.translate.nextflow.SUBWORKFLOW_OUTDIR, - settings.translate.nextflow.TEMPLATES_OUTDIR, - ] - - file_register: NFFileRegister = NFFileRegister() - item_register: NFItemRegister = NFItemRegister() + + OUTDIR_STRUCTURE: dict[str, str | None] = { + 'main': None, + 'subworkflows': 'subworkflows', + 'tools': 'modules', + 'inputs': None, + 'helpers': 'templates', + 'resources': None, + } def __init__(self): super().__init__(name="nextflow") - def translate_workflow_internal(self, wf: Workflow) -> Tuple[Any, dict[str, Any]]: - # set class variables to avoid passing junk params + + ### JANIS -> OUTPUT MODEL MAPPING ### + + def translate_workflow_internal(self, wf: Workflow) -> None: + # set class variables to avoid passing junk data assert(isinstance(wf, WorkflowBuilder)) settings.translate.nextflow.BASE_OUTDIR = self.basedir preprocessing.populate_task_inputs(wf, wf) processes = generate_processes(wf) workflows = generate_workflows(wf, processes) - files = generate_files(wf, processes, workflows) - - # get the main wf file and all sub files - main_file = files[wf.id()] - sub_files = [nf_file for tool_id, nf_file in files.items() if tool_id != wf.id()] - - # return format (gen str for each file) - main_file_str = main_file.get_string() - sub_files_str = {sub_file.path: sub_file.get_string() for sub_file in sub_files} - return (main_file_str, sub_files_str) - - @classmethod - def translate_tool_internal(cls, tool: CommandTool) -> str: + + for tool_id, nf_process in processes.items(): + tool = _get_tool(tool_id, wf) + self.add_tool(tool, nf_process) + + for wf_id, nf_workflow in workflows.items(): + is_subworkflow = True if wf_id != wf.id() else False + janis_workflow = _get_workflow(wf_id, wf) + if is_subworkflow: + self.add_subworkflow(janis_workflow, nf_workflow) + else: + self.main = (janis_workflow, nf_workflow) + + def translate_tool_internal(self, tool: CommandToolBuilder) -> None: """ - Generate Nextflow process for Janis CommandTool + Generate Nextflow process for Janis CommandToolBuilder :param tool: :type tool: @@ -162,14 +116,15 @@ def translate_tool_internal(cls, tool: CommandTool) -> str: :rtype: """ assert(isinstance(tool, CommandToolBuilder)) + # check we haven't already translated this + if self.get_tool(tool) is not None: + return settings.translate.nextflow.ENTITY = 'tool' preprocessing.populate_task_inputs(tool) - process = generate_process(tool) - process_file = generate_file_process(process, tool) - return process_file.get_string() + tool_nxf = generate_process(tool) + self.add_tool(tool, tool_nxf) - @classmethod - def translate_code_tool_internal(cls, tool: CodeTool) -> str: + def translate_code_tool_internal(self, tool: CodeTool) -> None: """ Generate Nextflow process for Janis CodeTool @@ -179,14 +134,25 @@ def translate_code_tool_internal(cls, tool: CodeTool) -> str: :rtype: """ assert(isinstance(tool, PythonTool)) + # check we haven't already translated this + if self.get_tool(tool) is not None: + return settings.translate.nextflow.ENTITY = 'tool' preprocessing.populate_task_inputs(tool) - process = generate_process(tool) - process_file = generate_file_process(process, tool) - return process_file.get_string() + tool_nxf = generate_process(tool) + self.add_tool(tool, tool_nxf) + + def build_inputs_file(self, entity: WorkflowBuilder | CommandToolBuilder | CodeTool) -> None: + """delegated to external function due to size / complexity""" + self.inputs_file = generate.config.generate_config() + + def build_resources_file(self, entity: WorkflowBuilder | CommandToolBuilder | CodeTool) -> None: + """ + Always combined for nextflow. + """ + self.resources_file = None - @classmethod - def translate_helper_files(cls, tool: Tool) -> dict[str, str]: + def build_helper_files(self, tool: Tool) -> dict[str, str]: """ Generate a dictionary of helper files to run Nextflow. Key of the dictionary is the filename, the value is the file content @@ -196,19 +162,18 @@ def translate_helper_files(cls, tool: Tool) -> dict[str, str]: :return: :rtype: """ - code_files = cls.gen_python_code_files(tool) - template_files = cls.gen_template_files(tool) + code_files = self.gen_python_code_files(tool) + template_files = self.gen_template_files(tool) helpers = template_files | code_files return helpers - @classmethod - def gen_python_code_files(cls, tool: Tool) -> dict[str, str]: + def gen_python_code_files(self, tool: Tool) -> dict[str, str]: # Python files for Python code tools files: dict[str, str] = {} if isinstance(tool, PythonTool): # helpers["__init__.py"] = "" - #helpers[f"{tool.versioned_id()}.py"] = cls.gen_python_script(tool) + #helpers[f"{tool.versioned_id()}.py"] = self.gen_python_script(tool) subdir = settings.translate.nextflow.TEMPLATES_OUTDIR filename = f'{tool.id()}.py' filepath = os.path.join(subdir, filename) @@ -216,17 +181,16 @@ def gen_python_code_files(cls, tool: Tool) -> dict[str, str]: elif isinstance(tool, WorkflowBase): for step in tool.step_nodes.values(): - step_code_files = cls.gen_python_code_files(step.tool) + step_code_files = self.gen_python_code_files(step.tool) files = files | step_code_files # merge dicts return files - @classmethod - def gen_template_files(cls, tool: Tool) -> dict[str, str]: + def gen_template_files(self, tool: Tool) -> dict[str, str]: # files from tool.files_to_create files: dict[str, str] = {} - if isinstance(tool, CommandTool): + if isinstance(tool, CommandToolBuilder): if tool.files_to_create(): for name, contents in tool.files_to_create().items(): if not isinstance(name, str): @@ -268,7 +232,7 @@ def gen_template_files(cls, tool: Tool) -> dict[str, str]: elif isinstance(tool, WorkflowBase): for step in tool.step_nodes.values(): - step_template_files = cls.gen_template_files(step.tool) + step_template_files = self.gen_template_files(step.tool) files = files | step_template_files # merge dicts return files @@ -277,92 +241,47 @@ def gen_template_files(cls, tool: Tool) -> dict[str, str]: def unwrap_expression(cls, expression: Any) -> Any: pass - @classmethod - def build_inputs_dict( - cls, - tool: Workflow | CommandTool, - recursive: bool=False, - merge_resources: bool=False, - hints: Optional[dict[str, Any]]=None, - additional_inputs: Optional[dict[str, Any]]=None, - max_cores: Optional[int]=None, - max_mem: Optional[int]=None, - max_duration: Optional[int]=None, - ) -> dict[str, Any]: - """ - Generate a dictionary containing input name and its values from users or - its default values if inputs not provided. - Builds using params - all params must be registered before they will appear! - nfgen.params.register(Tool | Workflow) - - :param tool: - :type tool: - :param recursive: - :type recursive: - :param merge_resources: - :type merge_resources: - :param hints: - :type hints: - :param additional_inputs: - :type additional_inputs: - :param max_cores: - :type max_cores: - :param max_mem: - :type max_mem: - :param max_duration: - :type max_duration: - :return: - :rtype: - """ - # TODO? - return {} - raise NotImplementedError - scope: Scope = Scope() - if additional_inputs: - params.register_params_for_additional_inputs(additional_inputs, scope) - if merge_resources: - resources_input = cls.build_resources_input( - tool, - hints, - max_cores=max_cores, - max_mem=max_mem, - max_duration=max_duration, - ) - params.register_params_for_resources(resources_input) - return params.serialize() - @staticmethod - def stringify_translated_workflow(wf): - return wf + ### STRINGIFY ### - @staticmethod - def stringify_translated_tool(tool): - return tool - - @staticmethod - def stringify_translated_inputs(inputs): - """ - convert dictionary inputs to string + def stringify_translated_workflow(self, internal: WorkflowBuilder, translated: NFWorkflow) -> str: + # need to get all translated workflows & processes to generate imports. + # Can't remember why it needs to be dict - oh well - NOTE - this method does not do what it says. - - build_inputs_dict() and stringify_translated_inputs() must be - implemented by any subclass of TranslationBase, but these don't - properly capture what we want to do for - - The fed inputs are ignored because we do not want a dict. - Rather, we want the registered nfgen.params. We can use their - properties to create a nicer config file structure. + # main workflow + nf_workflows = {} + assert self.main is not None + intnl_main, trans_main = self.main + nf_workflows[intnl_main.id()] = trans_main - :param inputs: - :type inputs: - :return: - :rtype: - """ - return generate.config.generate_config() + # subworkflows + for intnl_subwf, nf_subwf in self.subworkflows: + nf_workflows[intnl_subwf.id()] = nf_subwf + + # processes + nf_processes = {} + for intnl_tool, nf_process in self.tools: + nf_processes[intnl_tool.id()] = nf_process + + is_subworkflow = True if internal.id() == self.main[0].id() else False + nffile = generate_file_workflow( + translated, + nf_processes, + nf_workflows, + internal, + is_subworkflow + ) + return nffile.get_string() + + def stringify_translated_tool(self, internal: CommandToolBuilder | CodeTool, translated: NFProcess) -> str: + nffile = generate_file_process(translated, internal) + return nffile.get_string() + + + ### FILENAMES ### @staticmethod - def workflow_filename(workflow: Workflow) -> str: + def workflow_filename(workflow: WorkflowBuilder, is_main: Optional[bool]=False) -> str: """ Generate the main workflow filename @@ -371,9 +290,9 @@ def workflow_filename(workflow: Workflow) -> str: :return: :rtype: """ - #return workflow.versioned_id() + ".nf" - # return workflow.id() + ".nf" - return settings.translate.nextflow.MAIN_WORKFLOW_NAME + if is_main: + return settings.translate.nextflow.MAIN_WORKFLOW_NAME + return workflow.id() + ".nf" @staticmethod def inputs_filename(workflow: Workflow) -> str: @@ -385,31 +304,33 @@ def inputs_filename(workflow: Workflow) -> str: :return: :rtype: """ - #return workflow.versioned_id() + ".input.json" return settings.translate.nextflow.CONFIG_FILENAME @staticmethod def tool_filename(tool: str | Tool) -> str: prefix: str = '' if isinstance(tool, Tool): - #prefix = tool.versioned_id() prefix = tool.id() else: prefix = tool - return prefix + ".nf" @staticmethod def resources_filename(workflow: Workflow) -> str: """ - Generate resoureces filename + Generate resoureces filename + This should never be called. :param workflow: :type workflow: :return: :rtype: """ - return workflow.id() + "-resources.json" + raise RuntimeError + # return workflow.id() + "-resources.json" + + + ### VALIDATION ### @staticmethod def validate_command_for(wfpath, inppath, tools_dir_path, tools_zip_path): diff --git a/janis_core/translations/nextflow/model/files/__init__.py b/janis_core/translations/nextflow/model/files/__init__.py index dd0c35e32..9951f268a 100644 --- a/janis_core/translations/nextflow/model/files/__init__.py +++ b/janis_core/translations/nextflow/model/files/__init__.py @@ -8,6 +8,7 @@ NFImport, NFImportItem, NFImportsBlock, + NFMessageBlock, ) from .channels import NFChannelDefinition diff --git a/janis_core/translations/nextflow/model/files/files.py b/janis_core/translations/nextflow/model/files/files.py index ccc990ae3..06224e802 100644 --- a/janis_core/translations/nextflow/model/files/files.py +++ b/janis_core/translations/nextflow/model/files/files.py @@ -39,6 +39,19 @@ def get_string(self) -> str: return "\n\n".join(components) +class NFMessageBlock: + def __init__(self, heading: str, lines: list[str]): + self.heading = heading + self.lines = lines + + def get_string(self) -> str: + outstr = f'// {self.heading}\n' + for line in self.lines[:-1]: + outstr += f'{line}\n' + outstr += f'{self.lines[-1]}' + return outstr + + class NFImportItem: def __init__(self, name: str, alias: Optional[str] = None): self.name = name diff --git a/janis_core/translations/nextflow/model/process/directives.py b/janis_core/translations/nextflow/model/process/directives.py index c3e9c1ef4..9966ca44c 100644 --- a/janis_core/translations/nextflow/model/process/directives.py +++ b/janis_core/translations/nextflow/model/process/directives.py @@ -55,28 +55,36 @@ def get_string(self) -> str: @dataclass class NFCpusDirective(NFProcessDirective): - param: Param + value: Param | str def get_string(self) -> str: - return f'cpus \"${{params.{self.param.name}}}\"' + if isinstance(self.value, Param): + return f'cpus "${{params.{self.value.name}}}"' + return f'cpus "{self.value}"' @dataclass class NFDiskDirective(NFProcessDirective): - param: Param + value: Param | str def get_string(self) -> str: - return f'disk \"${{params.{self.param.name}}}\"' + if isinstance(self.value, Param): + return f'disk "${{params.{self.value.name}}}"' + return f'disk "{self.value}"' @dataclass class NFMemoryDirective(NFProcessDirective): - param: Param + value: Param | str def get_string(self) -> str: - return f'memory \"${{params.{self.param.name}}}\"' + if isinstance(self.value, Param): + return f'memory "${{params.{self.value.name}}}"' + return f'memory "{self.value}"' @dataclass class NFTimeDirective(NFProcessDirective): - param: Param + value: Param | str def get_string(self) -> str: - return f'time \"${{params.{self.param.name}}}\"' \ No newline at end of file + if isinstance(self.value, Param): + return f'time "${{params.{self.value.name}}}"' + return f'time "{self.value}"' \ No newline at end of file diff --git a/janis_core/translations/nextflow/model/process/inputs.py b/janis_core/translations/nextflow/model/process/inputs.py index 5f9fd7619..bcaf10c04 100644 --- a/janis_core/translations/nextflow/model/process/inputs.py +++ b/janis_core/translations/nextflow/model/process/inputs.py @@ -40,7 +40,8 @@ def stage_as(self) -> str: if self.presents_as: expr = f", stageAs: '{self.presents_as}'" elif dtt == DTypeType.FILE_ARRAY and self.dtype.optional: - expr = f", stageAs: '{self.name}??/*'" + expr = f", stageAs: '{self.name}/*'" + # expr = f", stageAs: '{self.name}??/*'" elif dtt == DTypeType.SECONDARY and self.dtype.optional: expr = f", stageAs: '{self.name}/*'" elif dtt == DTypeType.FILE and self.dtype.optional: diff --git a/janis_core/translations/nextflow/nulls.py b/janis_core/translations/nextflow/nulls.py index c6f3adc8e..7b4f46930 100644 --- a/janis_core/translations/nextflow/nulls.py +++ b/janis_core/translations/nextflow/nulls.py @@ -12,37 +12,37 @@ def get_null_value(dtype: DataType, as_param: bool=False, should_add_file_cast: dtt = utils.get_dtt(dtype) if dtt == DTypeType.SECONDARY_ARRAY: - expr = secondary_array_null() + expr = '[[]]' elif dtt == DTypeType.SECONDARY: - expr = secondary_null() + expr = '[]' elif dtt == DTypeType.FILE_PAIR_ARRAY: - expr = file_pair_array_null() + expr = '[[]]' elif dtt == DTypeType.FILE_PAIR: - expr = file_pair_null() + expr = '[]' elif dtt == DTypeType.FILE_ARRAY: - expr = file_array_null() + expr = '[]' elif dtt == DTypeType.FILE: - expr = file_null() + expr = NULL_VAL elif dtt == DTypeType.FILENAME: - expr = generic_null() + expr = NULL_VAL elif dtt == DTypeType.GENERIC_ARRAY: - expr = generic_array_null() + expr = NULL_VAL elif dtt == DTypeType.GENERIC: - expr = generic_null() + expr = NULL_VAL elif dtt == DTypeType.FLAG_ARRAY: - expr = generic_null() + expr = NULL_VAL elif dtt == DTypeType.FLAG: - expr = generic_null() + expr = 'false' else: raise RuntimeError(f"Unknown datatype: {dtt}") @@ -79,66 +79,3 @@ def add_file_cast(dtype: DataType, expr: str) -> str: return expr - -# NON-OPTIONAL -def secondary_array_null() -> str: - return '[[]]' - -def secondary_null() -> str: - return '[]' - -def file_pair_array_null() -> str: - return '[[]]' - -def file_pair_null() -> str: - return '[]' - -def file_array_null() -> str: - return '[]' - -def file_null() -> str: - return NULL_VAL - -def generic_array_null() -> str: - return NULL_VAL - -def generic_null() -> str: - return NULL_VAL - - -# # OPTIONAL -# def secondary_array_optional_null(dtype: DataType) -> str: -# basetype = utils.get_base_type(dtype) -# assert(isinstance(basetype, File)) -# exts = utils.get_extensions(basetype, remove_prefix_symbols=True) -# val = [f"{NULL}"] * len(exts) -# val = ', '.join(val) -# val = f"[[{val}]]" -# return val - -# def secondary_optional_null(dtype: DataType) -> str: -# assert(isinstance(dtype, File)) -# exts = utils.get_extensions(dtype, remove_prefix_symbols=True) -# val = [f"{NULL}"] * len(exts) -# val = ', '.join(val) -# val = f"[{val}]" -# return val - -# def file_pair_array_optional_null() -> str: -# return f"[[{NULL}, {NULL}]]" - -# def file_pair_optional_null() -> str: -# return f"[{NULL}, {NULL}]" - -# def file_array_optional_null() -> str: -# return f"[{NULL}]" - -# def file_optional_null() -> str: -# return NULL - -# def generic_array_optional_null() -> str: -# return NULL - -# def generic_optional_null() -> str: -# return NULL - diff --git a/janis_core/translations/todisk.py b/janis_core/translations/todisk.py new file mode 100644 index 000000000..0afc3cda5 --- /dev/null +++ b/janis_core/translations/todisk.py @@ -0,0 +1,198 @@ + +import os +import shutil +from typing import Tuple, Any,Optional + +from janis_core import Logger +from janis_core import settings +from janis_core.translation_deps.exportpath import ExportPathKeywords + + +def write_workflow_to_console( + tup_workflow: Tuple[str, str], + tup_tools: list[Tuple[str, str]], + tup_inp: Tuple[str, str], + tup_resources: Optional[Tuple[str, str]] + ) -> None: + """Each tuple is (filename, string). Tells us where to write each file, followed by the file contents.""" + + print(tup_workflow[1]) + if settings.translate.TOOL_TO_CONSOLE: + print("\n=== TOOLS ===") + [print(f":: {t[0]} ::\n" + t[1]) for t in tup_tools] + print("\n=== INPUTS ===") + print(tup_inp) + if tup_resources is not None: + if not settings.translate.MERGE_RESOURCES and settings.translate.WITH_RESOURCE_OVERRIDES: + print("\n=== RESOURCES ===") + print(tup_resources[1]) + + +def write_workflow_to_disk( + tup_main: Tuple[str, str], + tup_subworkflows: list[Tuple[str, str]], + tup_tools: list[Tuple[str, str]], + tup_inputs: Tuple[str, str], + tup_helpers: list[Tuple[str, str]], + tup_resources: Optional[Tuple[str, str]], + outdir_structure: dict[str, Any] + ) -> None: + """Each tuple is (filename, string). Tells us where to write each file, followed by the file contents.""" + + # prepare base output directory + basedir = ExportPathKeywords.resolve( + settings.translate.EXPORT_PATH, + workflow_spec=settings.translate.DEST, + workflow_name=None + ) + if os.path.isdir(basedir): + shutil.rmtree(basedir) + os.makedirs(basedir, exist_ok=True) + + # writing main workflow + _write_file(tup_main, basedir, 'main', outdir_structure['main']) + + # writing tools + for tup_tool in tup_tools: + _write_file(tup_tool, basedir, 'tools', outdir_structure['tools']) + + # writing subworkflows + for tup_subworkflow in tup_subworkflows: + _write_file(tup_subworkflow, basedir, 'subworkflows', outdir_structure['subworkflows']) + + # writing inputs file + if settings.translate.WRITE_INPUTS_FILE: + _write_file(tup_inputs, basedir, 'inputs', outdir_structure['inputs']) + else: + Logger.log("Skipping writing inputs config file") + + # writing resources file + if tup_resources is not None: + if settings.translate.WITH_RESOURCE_OVERRIDES and not settings.translate.MERGE_RESOURCES: + _write_file(tup_resources, basedir, 'resources', outdir_structure['resources']) + else: + Logger.log("Skipping writing resources config file") + + # writing helper files + for tup_helper in tup_helpers: + _write_file(tup_helper, basedir, 'helpers', outdir_structure['helpers']) + + # copying source files - this one is a bit weird & specific to galaxy. + if settings.general.SOURCE_FILES is not None: + # create source folder in basedir + source_dir = os.path.join(basedir, 'source') + if not os.path.isdir(source_dir): + os.mkdir(source_dir) + # copy files + for src, dest in settings.general.SOURCE_FILES: + dest = os.path.join(source_dir, dest) + if not os.path.isdir(os.path.dirname(dest)): + os.mkdir(os.path.dirname(dest)) + shutil.copy2(src, dest) + + +def _write_file(tup_file: Tuple[str, str], basedir: str, ftype: str, fsubdir: str | None) -> None: + filename, contents = tup_file + + # format outdir using basedir and subdir if provided + outdir = os.path.join(basedir, fsubdir) if fsubdir is not None else basedir + + # write to disk + Logger.info(f"Writing {ftype} to '{outdir}'") + with open(os.path.join(outdir, filename), "w+") as f: + Logger.log(f"Writing {filename} to disk") + f.write(contents) + Logger.log(f"Written {filename} to disk") + + +def write_tool_to_console(str_tool: str) -> None: + print(str_tool) + + +def write_tool_to_disk(str_tool: str, filename: str, helpers: dict[str, str]) -> None: + # set output folder + basedir = ExportPathKeywords.resolve( + settings.translate.EXPORT_PATH, + workflow_spec=settings.translate.DEST, + workflow_name=None + ) + # create output folder + if not os.path.exists(basedir): + os.makedirs(basedir) + + # write tool file + with open(os.path.join(basedir, filename), "w+") as wf: + Logger.log(f"Writing {filename} to disk") + wf.write(str_tool) + Logger.log(f"Wrote {filename} to disk") + + # write helper files (files_to_create scripts) + helpers = {fn.split('/')[-1]: fc for fn, fc in helpers.items()} + for (filename, filecontents) in helpers.items(): + with open(os.path.join(basedir, filename), "w+") as helperfp: + Logger.log(f"Writing {filename} to disk") + helperfp.write(filecontents) + Logger.log(f"Written {filename} to disk") + + # writing source files to output folder (specifically galaxy tool wrappers) + # copying source files + if settings.general.SOURCE_FILES is not None: + # create source folder in basedir + source_dir = os.path.join(basedir, 'source') + if not os.path.isdir(source_dir): + os.mkdir(source_dir) + + # copy files + for src, dest in settings.general.SOURCE_FILES: + dest = os.path.join(source_dir, dest) + if not os.path.isdir(os.path.dirname(dest)): + os.mkdir(os.path.dirname(dest)) + shutil.copy2(src, dest) + + + +# DEPRECATED from write_workflow_to_disk() + + # subfolders: list[str] = [] + # subfolders.append(self.DIR_TOOLS) + # subfolders += self.SUBDIRS_TO_CREATE + # for subfolder in subfolders: + # path = os.path.join(basedir, subfolder) + # if not os.path.isdir(path): + # os.makedirs(path, exist_ok=True) + + + # if settings.translate.SHOULD_VALIDATE: + # with Path(basedir): + + # Logger.info(f"Validating outputted {self.name}") + + # enved_vcs = [ + # (os.getenv(x[1:]) if x.startswith("$") else x) + # for x in self.validate_command_for( + # fn_workflow, fn_inputs, "tools/", "tools.zip" + # ) + # ] + + # cwltool_result = subprocess.run(enved_vcs) + # if cwltool_result.returncode == 0: + # Logger.info( + # "Exported tool was validated by: " + " ".join(enved_vcs) + # ) + # else: + # Logger.critical(str(cwltool_result.stderr)) + + # # zipping tools file + # import subprocess + + # if settings.translate.SHOULD_ZIP: + # Logger.debug("Zipping tools") + # with Path(basedir): + # FNULL = open(os.devnull, "w") + # zip_result = subprocess.run( + # ["zip", "-r", "tools.zip", "tools/"], stdout=FNULL + # ) + # if zip_result.returncode == 0: + # Logger.debug("Zipped tools") + # else: + # Logger.critical(str(zip_result.stderr.decode())) \ No newline at end of file diff --git a/janis_core/translations/translationbase.py b/janis_core/translations/translationbase.py index a0dca322f..43c2e1193 100644 --- a/janis_core/translations/translationbase.py +++ b/janis_core/translations/translationbase.py @@ -4,8 +4,9 @@ import functools import shutil + from path import Path -from janis_core import CommandTool, CodeTool, WorkflowBase, Tool +from janis_core import CommandToolBuilder, CodeTool, WorkflowBuilder, Tool from janis_core.code.codetool import CodeTool from janis_core.tool.commandtool import ToolInput from janis_core.tool.tool import ToolType @@ -14,6 +15,10 @@ from janis_core.utils.logger import Logger from janis_core.operators.selectors import Selector from janis_core import settings +from .todisk import write_tool_to_console +from .todisk import write_tool_to_disk +from .todisk import write_workflow_to_console +from .todisk import write_workflow_to_disk class TranslationError(Exception): def __init__(self, message: str, inner: Exception): @@ -67,14 +72,12 @@ def __str__(cls): class TranslatorBase(ABC): """ - So you're thinking about adding a new translation :) - - This class will hopefully give you a pretty good indication - on what's required to add a new translation, however what I - can't fully talk about are all the concepts. + Base class for translators. + Anything that inherits from this class will be picked up by the translation system. + Anything which is abstract will need to be implemented by the inheriting class. - To add a new translation, you should understand at least these - tool and janis concepts: + To add a new translation, you will need to understand the internal Janis model + and the target language. tool and janis concepts: - inputs - outputs - steps + tools @@ -87,296 +90,295 @@ class TranslatorBase(ABC): - cpu and memory selectors - propagated resource overrides - I'd ask that you keep your function sizes small and direct, - and then write unit tests to cover each component of the translation - and then an integration test of the whole translation on the related workflows. + In addition there are some modules which provide utilities. + For example, the messaging module allows you to fetch any messages that were logged + during ingestion, so you can include these at the top of output files. - You can find these in /janis_core/tests/test_translation_*.py) + you can find tests for other translate units in /janis_core/tests/test_translation_*.py """ __metaclass__ = TranslatorMeta basedir: str = '' - DIR_TOOLS: str = "tools" - DIR_FILES: str = "files" - SUBDIRS_TO_CREATE: list[str] = [] # this is if you want to write tools / workflows to subfolders + # this must be implemented in the inheriting class if you want to change the + # output directory structure. defaults seen below. + OUTDIR_STRUCTURE: dict[str, str | None] = { + 'main': None, + 'subworkflows': 'subworkflows', + 'tools': 'tools', + 'inputs': None, + 'helpers': 'files', + 'resources': None, + } def __init__(self, name: str): - self.name: str = name - - def translate_workflow(self, wf: WorkflowBase): - self.basedir = ExportPathKeywords.resolve( - settings.translate.EXPORT_PATH, workflow_spec=self.name, workflow_name=wf.versioned_id() - ) - str_tool, tr_tools, tr_helpers = None, [], {} - - # GENERATE MAIN FILE - tr_workflow, tr_tools = self.translate_workflow_internal(wf) - str_tool = self.stringify_translated_workflow(tr_workflow) - - # GENERATE SUBFILES - COMMANDTOOLS, PYTHONTOOLS & SUBWORKFLOWS - # [filepath, filecontents] for subfiles (tools, subworkflows etc) - str_tools = [ - ( - os.path.join(self.DIR_TOOLS, self.tool_filename(t)), - self.stringify_translated_workflow(tr_tools[t]), - ) - for t in tr_tools - ] - - # GENERATE AUXILIARY FILES - # {filepath: filecontents} for auxiliary files (PythonTool code.py files etc) - tr_helpers = self.translate_helper_files(wf) - str_helpers = [ - (os.path.join(self.DIR_FILES, filename), tr_helpers[filename]) - for filename in tr_helpers.keys() - ] - - # GENERATE INPUT CONFIG - # {name: value} for inputs config file (nextflow.config, inputs.yaml etc) - tr_inp = self.build_inputs_dict(wf) + self.name: str = name # translation destination + self.main: Optional[Tuple[Any, Any]] = None # (internal, translated) - # inputs config file contents - str_inp = self.stringify_translated_inputs(tr_inp) - - # {name: value} for resource inputs config - tr_res = self.build_resources_input(wf) - # resource config file contents - str_resources = self.stringify_translated_inputs(tr_res) + # use the add_tool() and add_subworkflow() methods to add to these: + self.subworkflows: list[Tuple] = [] # list of (internal, translated) + self.tools: list[Tuple] = [] # list of (internal, translated) + + self.inputs_file: Optional[str] = None # contents of input config file + self.resources_file: Optional[str] = None # contents of resources config file + self.helper_files: list[Tuple[str, str]] = [] # list of (filename: contents) - # WRITING TO CONSOLE - if settings.translate.TO_CONSOLE: - print(str_tool) - if settings.translate.TOOL_TO_CONSOLE: - print("\n=== TOOLS ===") - [print(f":: {t[0]} ::\n" + t[1]) for t in str_tools] - print("\n=== INPUTS ===") - print(str_inp) - if not settings.translate.MERGE_RESOURCES and settings.translate.WITH_RESOURCE_OVERRIDES: - print("\n=== RESOURCES ===") - print(str_resources) - - # WRITING TO DISK - if settings.translate.TO_DISK: - # setting filepaths - basedir = self.basedir - if os.path.isdir(basedir): - shutil.rmtree(basedir) - fn_workflow = self.workflow_filename(wf) - fn_inputs = self.inputs_filename(wf) + + ### IMPLEMENTED HELPER METHODS ### + + def add_tool(self, internal: CommandToolBuilder | CodeTool, translated: Any) -> None: + """ensures unique tools - tool can be translated more than once""" + for item in self.tools: + if item[0].id() == internal.id(): + return None + self.tools.append((internal, translated)) + + def get_tool(self, query: CommandToolBuilder | CodeTool) -> Optional[CommandToolBuilder | CodeTool]: + """used to check if tool already translated to save runtime""" + for item in self.tools: + if item[0].id() == query.id(): + return item[1] + return None + + def add_subworkflow(self, internal: WorkflowBuilder, translated: Any) -> None: + """ensures unique subworkflows - subworkflow can be translated more than once""" + for item in self.subworkflows: + if item[0].id() == internal.id(): + return None + self.subworkflows.append((internal, translated)) + + def get_subworkflow(self, query: WorkflowBuilder) -> Optional[WorkflowBuilder]: + """used to check if subworkflow already translated to save runtime""" + for item in self.subworkflows: + if item[0].id() == query.id(): + return item[1] + return None + + + ### IMPLEMENTED PUBLIC METHODS ### + + def translate_workflow(self, wf: WorkflowBuilder) -> Any: + """ + For workflow translation mode. + This method is only called once during execution. + Performs translation of a janis WorkflowBuilder. + Calls abstract methods implemented in child class to do the translation. + Once translation is complete, writes to stdout and/or disk. + Returns stringified translation purely for testing purposes + """ + # do translation to output model + self.translate_workflow_internal(wf) + self.build_inputs_file(wf) + self.build_resources_file(wf) + self.build_helper_files(wf) + assert self.inputs_file is not None + assert self.main is not None + + # stringify main workflow + internal, translated = self.main + fn_main = self.workflow_filename(wf, is_main=True) + str_main = self.stringify_translated_workflow(internal, translated) + tup_main = (fn_main, str_main) + + # stringify tools (commandtools, pythontools) + tup_tools = [] + for internal, translated in self.tools: + filename = self.tool_filename(internal) + str_trans = self.stringify_translated_tool(internal, translated) + tup_tools.append((filename, str_trans)) + + # stringify subworkflows + tup_subworkflows = [] + for internal, translated in self.subworkflows: + filename = self.workflow_filename(internal) + str_trans = self.stringify_translated_workflow(internal, translated) + tup_subworkflows.append((filename, str_trans)) + + # stringify input config file + fn_inputs = self.inputs_filename(wf) + str_inputs = self.inputs_file # already a string + tup_inputs = (fn_inputs, str_inputs) + + # stringify resource config file + if self.resources_file is not None: fn_resources = self.resources_filename(wf) + str_resources = self.resources_file # already a string + tup_resources = (fn_resources, str_resources) + else: + tup_resources = None - # generating subfolders - subfolders: list[str] = [] - subfolders.append(self.DIR_TOOLS) - subfolders += self.SUBDIRS_TO_CREATE - for subfolder in subfolders: - path = os.path.join(basedir, subfolder) - if not os.path.isdir(path): - os.makedirs(path) - - # writing inputs config file - if settings.translate.WRITE_INPUTS_FILE: - if not os.path.isdir(basedir): - os.makedirs(basedir) - - with open(os.path.join(basedir, fn_inputs), "w+") as f: - Logger.log(f"Writing {fn_inputs} to disk") - f.write(str_inp) - Logger.log(f"Written {fn_inputs} to disk") - else: - Logger.log("Skipping writing input (yaml) job file") - - # writing resources config file - if not settings.translate.MERGE_RESOURCES and settings.translate.WITH_RESOURCE_OVERRIDES: - print("\n=== RESOURCES ===") - with open(os.path.join(basedir, fn_resources), "w+") as wf: - Logger.log(f"Writing {fn_resources} to disk") - wf.write(str_inp) - Logger.log(f"Wrote {fn_resources} to disk") - print(str_resources) - - # writing workflow / tool files - Logger.info(f"Exporting tool files to '{basedir}'") - - # writing main workflow - with open(os.path.join(basedir, fn_workflow), "w+") as wf: - Logger.log(f"Writing {fn_workflow} to disk") - wf.write(str_tool) - Logger.log(f"Wrote {fn_workflow} to disk") - - # writing tools, subworkflows - for (fn_tool, disk_str_tool) in str_tools: - path = os.path.join(basedir, fn_tool) - with open(path, "w+") as toolfp: - Logger.log(f"Writing {fn_tool} to disk") - toolfp.write(disk_str_tool) - Logger.log(f"Written {fn_tool} to disk") - - # copying source files - if settings.general.SOURCE_FILES is not None: - # create source folder in basedir - source_dir = os.path.join(basedir, 'source') - if not os.path.isdir(source_dir): - os.mkdir(source_dir) - - # copy files - for src, dest in settings.general.SOURCE_FILES: - dest = os.path.join(source_dir, dest) - if not os.path.isdir(os.path.dirname(dest)): - os.mkdir(os.path.dirname(dest)) - shutil.copy2(src, dest) - - # writing helper files - for (fn_helper, disk_str_helper) in str_helpers: - with open(os.path.join(basedir, fn_helper), "w+") as helperfp: - Logger.log(f"Writing {fn_helper} to disk") - helperfp.write(disk_str_helper) - Logger.log(f"Written {fn_helper} to disk") - - # zipping tools file - import subprocess - - if settings.translate.SHOULD_ZIP: - Logger.debug("Zipping tools") - with Path(basedir): - FNULL = open(os.devnull, "w") - zip_result = subprocess.run( - ["zip", "-r", "tools.zip", "tools/"], stdout=FNULL - ) - if zip_result.returncode == 0: - Logger.debug("Zipped tools") - else: - Logger.critical(str(zip_result.stderr.decode())) - - if settings.translate.SHOULD_VALIDATE: - with Path(basedir): - - Logger.info(f"Validating outputted {self.name}") - - enved_vcs = [ - (os.getenv(x[1:]) if x.startswith("$") else x) - for x in self.validate_command_for( - fn_workflow, fn_inputs, "tools/", "tools.zip" - ) - ] - - cwltool_result = subprocess.run(enved_vcs) - if cwltool_result.returncode == 0: - Logger.info( - "Exported tool was validated by: " + " ".join(enved_vcs) - ) - else: - Logger.critical(str(cwltool_result.stderr)) - - return str_tool, str_inp, str_tools - - def translate_tool(self, tool: CommandTool): - tr_tool = self.translate_tool_internal(tool) - tool_out = self.stringify_translated_tool(tr_tool) - + # write to stdout / disk if settings.translate.TO_CONSOLE: - print(tool_out) - + write_workflow_to_console(tup_main, tup_tools, tup_inputs, tup_resources) if settings.translate.TO_DISK: - # set output folder - basedir = ExportPathKeywords.resolve( - settings.translate.EXPORT_PATH, workflow_spec=self.name, workflow_name=tool.id() + write_workflow_to_disk( + tup_main, + tup_subworkflows, + tup_tools, + tup_inputs, + self.helper_files, + tup_resources, + self.OUTDIR_STRUCTURE ) - # create output folder - if not os.path.exists(basedir): - os.makedirs(basedir) - - # write tool file - fn_tool = self.tool_filename(tool) - with open(os.path.join(basedir, fn_tool), "w+") as wf: - Logger.log(f"Writing {fn_tool} to disk") - wf.write(tool_out) - Logger.log(f"Wrote {fn_tool} to disk") - # write helper files (files_to_create scripts) - tr_helpers = self.translate_helper_files(tool) - tr_helpers = {fn.split('/')[-1]: fc for fn, fc in tr_helpers.items()} - for (filename, filecontents) in tr_helpers.items(): - with open(os.path.join(basedir, filename), "w+") as helperfp: - Logger.log(f"Writing {filename} to disk") - helperfp.write(filecontents) - Logger.log(f"Written {filename} to disk") - - # writing source files to output folder (specifically galaxy tool wrappers) - # copying source files - if settings.general.SOURCE_FILES is not None: - # create source folder in basedir - source_dir = os.path.join(basedir, 'source') - if not os.path.isdir(source_dir): - os.mkdir(source_dir) - - # copy files - for src, dest in settings.general.SOURCE_FILES: - dest = os.path.join(source_dir, dest) - if not os.path.isdir(os.path.dirname(dest)): - os.mkdir(os.path.dirname(dest)) - shutil.copy2(src, dest) - - return tool_out - - def translate_code_tool(self, codetool: CodeTool): - tr_tool = self.translate_code_tool_internal(codetool) - tool_out = self.stringify_translated_tool(tr_tool) + return tup_main[1], tup_inputs[1], tup_tools + + def translate_tool(self, internal: CommandToolBuilder) -> str: + """ + For tool translation mode. + This method is only called once during execution. + Performs translation of a janis CommandToolBuilder. + Calls abstract methods implemented in child class to do the translation. + Once translation is complete, writes to stdout and/or disk. + Returns string purely for testing purposes + """ + # do translation to output model + self.translate_tool_internal(internal) + assert len(self.tools) == 1 + translated = self.tools[0][1] + + # stringify output model + str_tool = self.stringify_translated_tool(internal, translated) + + # write to stdout / disk + if settings.translate.TO_CONSOLE: + write_tool_to_console(str_tool) + if settings.translate.TO_DISK: + filename = self.tool_filename(internal) + helpers = self.build_helper_files(internal) + write_tool_to_disk(str_tool, filename, helpers) + + return str_tool + + def translate_code_tool(self, internal: CodeTool): + """ + For tool translation mode. + This method is only called once during execution. + Performs translation of a Janis CodeTool. + Calls abstract methods implemented in child class to do the translation. + Once translation is complete, writes to stdout and/or disk. + Returns string purely for testing purposes + """ + translated = self.translate_code_tool_internal(internal) + trans_str = self.stringify_translated_tool(internal, translated) if settings.translate.TO_CONSOLE: - print(tool_out) + print(trans_str) if settings.translate.TO_DISK: d = ExportPathKeywords.resolve( - settings.translate.EXPORT_PATH, workflow_spec=self.name, workflow_name=codetool.id() + settings.translate.EXPORT_PATH, workflow_spec=self.name, workflow_name=internal.id() ) if not os.path.exists(d): os.makedirs(d) - fn_tool = self.tool_filename(codetool) + fn_tool = self.tool_filename(internal) with open(os.path.join(d, fn_tool), "w+") as wf: Logger.log(f"Writing {fn_tool} to disk") - wf.write(tool_out) + wf.write(trans_str) Logger.log(f"Wrote {fn_tool} to disk") - return tool_out + return trans_str - @classmethod - def build_inputs_dict(cls, tool: CommandTool | CodeTool | WorkflowBase) -> dict[str, Any]: - ad = settings.translate.ADDITIONAL_INPUTS or {} - values_provided_from_tool = {} - if tool.type() == ToolType.Workflow: - values_provided_from_tool = { - i.id(): i.value or i.default - for i in tool.input_nodes.values() - if i.value is not None - or (i.default is not None and not isinstance(i.default, Selector)) - } + # Resource overrides?? what for??? + @staticmethod + def get_resource_override_inputs() -> List[ToolInput]: + """not really sure what this does / why is needed""" + return [ + ToolInput("runtime_cpu", Int(optional=True)), # number of CPUs + ToolInput("runtime_memory", Int(optional=True)), # GB of memory + ToolInput("runtime_seconds", Int(optional=True)), # seconds of running time + ToolInput("runtime_disk", Int(optional=True)), # GB of storage required + ] + + @staticmethod + def get_container_override_for_tool(tool: CommandToolBuilder | CodeTool): + """this is an implementation detail - have been delegated to child classes. """ + container_override = settings.translate.CONTAINER_OVERRIDE + if not container_override: + return None + if tool.id().lower() in container_override: + return container_override.get(tool.id().lower()) + elif tool.versioned_id().lower() in container_override: + return container_override.get(tool.versioned_id().lower()) + elif "*" in container_override: + return container_override["*"] - inp = { - i.id(): ad.get(i.id(), values_provided_from_tool.get(i.id())) - for i in tool.tool_inputs() - if (i.default is not None and not isinstance(i.default, Selector)) - or not i.intype.optional - or i.id() in ad - or i.id() in values_provided_from_tool - } - if settings.translate.MERGE_RESOURCES: - res_input = cls.build_resources_input(tool) - for k, v in res_input.items(): - inp[k] = ad.get(k, v) + ### JANIS -> OUTPUT MODEL MAPPING ### + # everything below this point is abstract. + # child classes must implement these. - return inp + @abstractmethod + def translate_workflow_internal(self, wf: WorkflowBuilder) -> Any: + """ + Translate a janis model WorkflowBuilder to the target output model. + This mapping is specific to the target language so must be implemented in child class. + Can be called 2+ times during execution in the case of subworkflows. + """ + pass + + @abstractmethod + def translate_tool_internal(self, tool: CommandToolBuilder) -> Any: + """ + Translate a janis model CommandToolBuilder to the target output model. + This mapping is specific to the target language so must be implemented in child class. + Can be called 1+ times during execution. + """ + pass + + @abstractmethod + def translate_code_tool_internal(self, tool: CodeTool) -> Any: + """ + Translate a janis model CodeTool to the target output model. + This mapping is specific to the target language so must be implemented in child class. + Can be called 1+ times during execution. + """ + pass + + @abstractmethod + def build_inputs_file(self, entity: WorkflowBuilder | CommandToolBuilder | CodeTool) -> None: + """ + Generates the inputs configuration file (as str) for the main translated workflow. + (or tool in the case of single tool translation). + For example: + - CWL: {id}-inp.yml + - Nextflow: nextflow.config + - WDL: {id}-inp.json + + Assigns to self.inputs. + """ + ... + + @abstractmethod + def build_resources_file(self, entity: WorkflowBuilder | CommandToolBuilder | CodeTool) -> None: + """ + Generates a separate resources configuration file (as str) for the main translated workflow. + (or tool in the case of single tool translation). + + This is in addition to the inputs configuration file. + Some languages separate the inputs & resource files (eg CWL/WDL) whereas others do not (eg Nextflow). + If you would like to merge these into 1 file, check that the settings.translate.MERGE_RESOURCES flag + is true somewhere in your implementation. + + For example: + - CWL: {id}-resources.yml + - WDL: {id}-resources.json + + Assigns to self.resources. + """ + ... @classmethod - def build_resources_input( + def _build_resources_dict( cls, tool: Tool, inputs: Optional[dict[str, Any]]=None, prefix: str="" ) -> dict[str, Any]: - + """ + A (mostly) shared implementation to get resources as structured dict for CWL and WDL. + Used in build_resources_file() and build_inputs_file(). + """ inputs = inputs or {} hints = settings.translate.HINTS max_cores = settings.translate.MAX_CORES @@ -428,7 +430,7 @@ def build_resources_input( new_inputs = {} for s in tool.step_nodes.values(): - step_inputs = cls.build_resources_input( + step_inputs = cls._build_resources_dict( s.tool, prefix=prefix + s.id() + "_", inputs=inputs, @@ -437,27 +439,141 @@ def build_resources_input( return new_inputs - # Resource overrides + def build_helper_files(self, tool: CommandToolBuilder | CodeTool | WorkflowBuilder) -> Dict[str, str]: + """TODO this should be abstract""" + return {} + + @classmethod + @abstractmethod + def unwrap_expression(cls, expression: Any) -> Any: + """ + This is poor design. This is an implementation detail, should not be part of the interface. + Why is it a classmethod too??? These class methods suck. + + Anyway, this is supposed to be a recursive function to map Janis Operators to the target language. + Eg [Janis -> CWL]: InputSelector('infile') -> ${inputs.infile} + Eg [Janis -> NXF]: IndexOperator(InputSelector('infile'), 0) -> ${infile[0]} + """ + ... + + + ### STRINGIFY ### + + @abstractmethod + def stringify_translated_workflow(self, internal: WorkflowBuilder, translated: Any) -> str: + """ + Output Model -> String. + Generates file contents for the main workflow (or subworkflow) so can be written to disk. + Messages to user should be injected here. + """ + ... + + @abstractmethod + def stringify_translated_tool(self, internal: CommandToolBuilder | CodeTool, translated: Any) -> str: + """ + Output Model -> String. + Generates file contents for tool so can be written to disk. + Messages to user should be injected here. + """ + ... + + + ### FILENAMES ### + @staticmethod - def get_resource_override_inputs() -> List[ToolInput]: - return [ - ToolInput("runtime_cpu", Int(optional=True)), # number of CPUs - ToolInput("runtime_memory", Int(optional=True)), # GB of memory - ToolInput("runtime_seconds", Int(optional=True)), # seconds of running time - ToolInput("runtime_disk", Int(optional=True)), # GB of storage required - ] + @abstractmethod + def workflow_filename(workflow: WorkflowBuilder, is_main: Optional[bool]=False) -> str: + """returns the filename for a workflow so file can be written to disk""" + ... @staticmethod - def get_container_override_for_tool(tool: CommandTool | CodeTool): - container_override = settings.translate.CONTAINER_OVERRIDE - if not container_override: - return None - if tool.id().lower() in container_override: - return container_override.get(tool.id().lower()) - elif tool.versioned_id().lower() in container_override: - return container_override.get(tool.versioned_id().lower()) - elif "*" in container_override: - return container_override["*"] + @abstractmethod + def tool_filename(tool: CommandToolBuilder | CodeTool) -> str: + """returns the filename for a tool so file can be written to disk""" + ... + + @staticmethod + @abstractmethod + def inputs_filename(workflow: WorkflowBuilder) -> str: + """returns the filename for the inputs configuration so file can be written to disk""" + ... + + @staticmethod + @abstractmethod + def resources_filename(workflow: WorkflowBuilder) -> str: + """returns the filename for the resources configuration so file can be written to disk""" + ... + + + ### VALIDATION ### + # could be quite useful for user messages - eg "this tool doesn't seem valid" + + @staticmethod + @abstractmethod + def validate_command_for(wfpath, inppath, tools_dir_path, tools_zip_path): + pass + + + + + +# DEPRECATED + +# # do translation to output model + # tr_workflow, tr_tools = self.translate_workflow_internal(wf) + # tr_helpers = self.translate_helper_files(wf) + # tr_inp = self.build_inputs_dict(wf) + # tr_res = self.build_resources_input(wf) + + # # stringify main workflow file + # fn_main = self.workflow_filename(wf) + # str_main = self.stringify_translated_workflow(wf, tr_workflow) + # tup_main = (fn_main, str_main) + + # # stringify subfiles (commandtools, pythontools & subworkflows) + # # TODO separate tools and subworkflows + # tup_tools = [] + # for t in tr_tools.keys(): + # filename = self.tool_filename(t) + # str_tool = self.stringify_translated_workflow(tr_tools[t]) + # tup_tools.append((filename, str_tool)) + + # # stringify auxiliary files + # tup_helpers = [] + # for filename in tr_helpers.keys(): + # str_helper = tr_helpers[filename] + # tup_helpers.append((filename, str_helper)) + + # # stringify input config file + # fn_inputs = self.inputs_filename(wf) + # str_inputs = self.stringify_translated_inputs(tr_inp) + # tup_inputs = (fn_inputs, str_inputs) + + # # stringify resource config file + # fn_resources = self.resources_filename(wf) + # str_resources = self.stringify_translated_inputs(tr_res) + # tup_resources = (fn_resources, str_resources) + + # # write to stdout / disk + # if settings.translate.TO_CONSOLE: + # write_workflow_to_console(tup_main, tup_tools, tup_inputs, tup_resources) + # if settings.translate.TO_DISK: + # tup_subworkflows = [] # TODO separate tools and subworkflows + # write_workflow_to_disk( + # tup_main, + # tup_subworkflows, + # tup_tools, + # tup_inputs, + # tup_helpers, + # tup_resources, + # self.OUTDIR_STRUCTURE + # ) + + # return tup_main[1], tup_inputs[1], tup_tools + + + + # @classmethod # def validate_inputs(cls, inputs, allow_null_if_optional): @@ -491,49 +607,6 @@ def get_container_override_for_tool(tool: CommandTool | CodeTool): # return type(t).__name__ - # CHILD CLASS SPECIFIC - - @classmethod - @abstractmethod - def translate_workflow_internal(cls, wf: WorkflowBase) -> Tuple[Any, dict[str, Any]]: - pass - - @classmethod - @abstractmethod - def translate_tool_internal(cls, tool: CommandTool) -> Any: - pass - - @classmethod - @abstractmethod - def translate_code_tool_internal(cls, tool: CodeTool) -> Any: - pass - - # overridden in NextflowTranslator - @classmethod - def translate_helper_files(cls, tool: CommandTool | CodeTool | WorkflowBase) -> Dict[str, str]: - return {} - - @classmethod - @abstractmethod - def unwrap_expression(cls, expression: Any) -> Any: - pass - - # STRINGIFY - - @staticmethod - @abstractmethod - def stringify_translated_workflow(wf: WorkflowBase) -> str: - pass - - @staticmethod - @abstractmethod - def stringify_translated_tool(tool: CommandTool | CodeTool) -> str: - pass - - @staticmethod - @abstractmethod - def stringify_translated_inputs(inputs: dict[str, Any]) -> str: - pass # OUTPUTS @@ -543,35 +616,47 @@ def stringify_translated_inputs(inputs: dict[str, Any]) -> str: # return cls.workflow_filename(tool) # return cls.tool_filename(tool) - @staticmethod - @abstractmethod - def workflow_filename(workflow: WorkflowBase) -> str: - pass - - @staticmethod - @abstractmethod - def inputs_filename(workflow: WorkflowBase) -> str: - pass - - @staticmethod - @abstractmethod - def tool_filename(tool: CommandTool | CodeTool) -> str: - pass # @staticmethod - # def dependencies_filename(workflow: WorkflowBase) -> str: + # def dependencies_filename(workflow: WorkflowBuilder) -> str: # return "tools.zip" - @staticmethod - @abstractmethod - def resources_filename(workflow: WorkflowBase) -> str: - pass - # VALIDATION - - @staticmethod - @abstractmethod - def validate_command_for(wfpath, inppath, tools_dir_path, tools_zip_path): - pass + # @abstractmethod + # def build_inputs_file(self, entity: WorkflowBuilder | CommandToolBuilder | CodeTool) -> None: + # """ + # Generates the input config file (as str) for this workflow or tool.* + # Assigns to self.inputs. + # *in the case of single tool translation + # """ + # ... + # ad = settings.translate.ADDITIONAL_INPUTS or {} + # values_provided_from_tool = {} + + # # workflow translation + # if entity.type() == ToolType.Workflow: + # values_provided_from_tool = { + # i.id(): i.value or i.default + # for i in entity.input_nodes.values() + # if i.value is not None + # or (i.default is not None and not isinstance(i.default, Selector)) + # } + + # # tool translation + # inp = { + # i.id(): ad.get(i.id(), values_provided_from_tool.get(i.id())) + # for i in entity.tool_inputs() + # if (i.default is not None and not isinstance(i.default, Selector)) + # or not i.intype.optional + # or i.id() in ad + # or i.id() in values_provided_from_tool + # } + + # if settings.translate.MERGE_RESOURCES: + # res_input = self.build_resources_file(entity) + # for k, v in res_input.items(): + # inp[k] = ad.get(k, v) + + # return inp \ No newline at end of file diff --git a/janis_core/translations/wdl/main.py b/janis_core/translations/wdl/main.py index c1aa654df..cf5337b51 100644 --- a/janis_core/translations/wdl/main.py +++ b/janis_core/translations/wdl/main.py @@ -43,7 +43,8 @@ AliasSelector, ForEachSelector, ) -from janis_core.tool.commandtool import CommandTool, ToolInput, ToolArgument, ToolOutput, TInput +from janis_core.tool.commandtool import CommandToolBuilder, ToolInput, ToolArgument, ToolOutput, TInput +from janis_core import WorkflowBuilder from janis_core.tool.tool import Tool, ToolType from janis_core.translation_deps.supportedtranslations import SupportedTranslation from janis_core.translations.translationbase import ( @@ -108,25 +109,11 @@ class WdlTranslator(TranslatorBase, metaclass=TranslatorMeta): def __init__(self): super().__init__(name="wdl") - @staticmethod - def stringify_translated_workflow(wf): - return wf.get_string() - - @staticmethod - def stringify_translated_tool(tool): - return tool.get_string() - - @staticmethod - def stringify_translated_inputs(inputs): - return json.dumps(inputs, sort_keys=True, indent=4, separators=(",", ": ")) - - @staticmethod - def validate_command_for(wfpath, inppath, tools_dir_path, tools_zip_path): - return ["java", "-jar", "$womtooljar", "validate", wfpath] + + ### JANIS -> OUTPUT MODEL MAPPING ### - @classmethod #@try_catch_translate(type="workflow") - def translate_workflow_internal(cls, wfi: Any, is_nested_tool: bool=False) -> Tuple[wdl.Workflow, dict[str, Any]]: + def translate_workflow_internal(self, wf: Any, is_nested_tool: bool=False) -> None: """ Translate the workflow into wdlgen classes! :param with_resource_overrides: @@ -134,13 +121,16 @@ def translate_workflow_internal(cls, wfi: Any, is_nested_tool: bool=False) -> Tu :param is_nested_tool: :return: """ + # check we haven't already translated this + if self.get_subworkflow(wf) is not None: + return # Import needs to be here, otherwise we end up circularly importing everything # I need the workflow for type comparison - # ^you could have used TYPE_CHECKING, or fixed the larger architecture issue. - GH + # ^you could have used TYPE_CHECKING, or fixed the larger architecture issues. - GH from janis_core.workflow.workflow import Workflow - wf: Workflow = wfi + wf: WorkflowBuilder = wf # Notes: # All wdlgen classes have a .get_string(**kwargs) function @@ -270,14 +260,11 @@ def translate_workflow_internal(cls, wfi: Any, is_nested_tool: bool=False) -> Tu if t.versioned_id() not in wtools: if t.type() == ToolType.Workflow: - wf_wdl, wf_tools = cls.translate_workflow_internal(t, is_nested_tool=True) - wtools[t.versioned_id()] = wf_wdl - wtools.update(wf_tools) - - elif isinstance(t, CommandTool): - wtools[t.versioned_id()] = cls.translate_tool_internal(t) + self.translate_workflow_internal(t, is_nested_tool=True) + elif isinstance(t, CommandToolBuilder): + self.translate_tool_internal(t) elif isinstance(t, CodeTool): - wtools[t.versioned_id()] = cls.translate_code_tool_internal(t) + self.translate_code_tool_internal(t) resource_overrides = {} @@ -296,11 +283,18 @@ def translate_workflow_internal(cls, wfi: Any, is_nested_tool: bool=False) -> Tu w.calls.append(call) - return w, wtools + # add the translated workflow + if is_nested_tool: + self.add_subworkflow(wf, w) + else: + assert self.main is None + self.main = (wf, w) - @classmethod - @try_catch_translate(type="command tool") - def translate_tool_internal(cls, tool: CommandTool) -> Any: + # @try_catch_translate(type="command tool") + def translate_tool_internal(self, tool: CommandToolBuilder) -> None: + # check we haven't already translated this + if self.get_tool(tool) is not None: + return # if not Validators.validate_identifier(tool.id()): # raise Exception( @@ -309,7 +303,7 @@ def translate_tool_internal(cls, tool: CommandTool) -> Any: # f"numbers or an underscore)" # ) - inputs: List[ToolInput] = [*cls.get_resource_override_inputs(), *tool.inputs()] + inputs: List[ToolInput] = [*self.get_resource_override_inputs(), *tool.inputs()] toolouts = tool.outputs() inmap = {i.id(): i for i in inputs} @@ -325,15 +319,15 @@ def translate_tool_internal(cls, tool: CommandTool) -> Any: f"There are {len(outdups)} duplicate values in {tool.id()}'s outputs: {outdups}" ) - ins: List[wdl.Input] = cls.translate_tool_inputs(inputs) - outs: List[wdl.Output] = cls.translate_tool_outputs(toolouts, inmap, tool=tool) - command_args = cls.translate_tool_args(tool.arguments(), inmap, tool=tool, toolId=tool.id()) - command_ins = cls.build_command_from_inputs(tool.inputs()) + ins: List[wdl.Input] = self.translate_tool_inputs(inputs) + outs: List[wdl.Output] = self.translate_tool_outputs(toolouts, inmap, tool=tool) + command_args = self.translate_tool_args(tool.arguments(), inmap, tool=tool, toolId=tool.id()) + command_ins = self.build_command_from_inputs(tool.inputs()) commands = [wdl.Task.Command("set -e")] # generate directories / file to create commands - commands.extend(cls.build_commands_for_file_to_create(tool)) + commands.extend(self.build_commands_for_file_to_create(tool)) env = tool.env_vars() if env: @@ -377,17 +371,21 @@ def translate_tool_internal(cls, tool: CommandTool) -> Any: ) # These runtime kwargs cannot be optional, but we've enforced non-optionality when we create them - cls.add_runtimefield_overrides_for_wdl( + self.add_runtimefield_overrides_for_wdl( runtime_block=r, tool=tool, inmap=inmap, ) - return wdl.Task(tool.id(), ins, outs, commands, r, version="development") + tool_wdl = wdl.Task(tool.id(), ins, outs, commands, r, version="development") + self.add_tool(tool, tool_wdl) - @classmethod @try_catch_translate(type="code tool") - def translate_code_tool_internal(cls, tool: CodeTool) -> Any: + def translate_code_tool_internal(self, tool: CodeTool) -> Any: + # check we haven't already translated this + if self.get_tool(tool) is not None: + return + # if not Validators.validate_identifier(tool.id()): # raise Exception( # f"The identifier '{tool.id()}' for class '{tool.__class__.__name__}' was not validated by " @@ -395,7 +393,7 @@ def translate_code_tool_internal(cls, tool: CodeTool) -> Any: # f"numbers or an underscore)" # ) - ins = cls.get_resource_override_inputs() + [ + ins = self.get_resource_override_inputs() + [ ToolInput( t.id(), input_type=t.intype, @@ -406,7 +404,7 @@ def translate_code_tool_internal(cls, tool: CodeTool) -> Any: for t in tool.tool_inputs() ] - tr_ins = cls.translate_tool_inputs(ins) + tr_ins = self.translate_tool_inputs(ins) outs = [] for t in tool.tool_outputs(): @@ -422,7 +420,7 @@ def translate_code_tool_internal(cls, tool: CodeTool) -> Any: ) ) - tr_outs = cls.translate_tool_outputs(outs, {}, tool=tool) + tr_outs = self.translate_tool_outputs(outs, {}, tool=tool) commands = [] @@ -437,7 +435,7 @@ def translate_code_tool_internal(cls, tool: CodeTool) -> Any: ) ) - command_ins = cls.build_command_from_inputs(ins) + command_ins = self.build_command_from_inputs(ins) bc = tool.base_command() bcs = " ".join(bc) if isinstance(bc, list) else bc commands.append(wdl.Task.Command(bcs, command_ins, [])) @@ -459,9 +457,10 @@ def translate_code_tool_internal(cls, tool: CodeTool) -> Any: ) inmap = {t.id(): t for t in ins} - cls.add_runtimefield_overrides_for_wdl(r, tool=tool, inmap=inmap) + self.add_runtimefield_overrides_for_wdl(r, tool=tool, inmap=inmap) - return wdl.Task(tool.id(), tr_ins, tr_outs, commands, r, version="development") + tool_wdl = wdl.Task(tool.id(), tr_ins, tr_outs, commands, r, version="development") + self.add_tool(tool, tool_wdl) @staticmethod def wrap_if_string_environment(value, string_environment: bool): @@ -872,6 +871,9 @@ def prepare_secondary_tool_outputs( ) exp.append(inner_exp) + elif s.startswith('^'): + exp = [f'glob("*{s[1:]}")[0]'] + else: raise Exception( f"Unsure how to handle secondary file '{s}' for the tool output '{out.id()}' (ToolId={toolid})" @@ -926,7 +928,7 @@ def build_command_from_inputs(cls, toolinputs: List[ToolInput]): @classmethod def build_commands_for_file_to_create( - cls, tool: CommandTool + cls, tool: CommandToolBuilder ) -> List[wdl.Task.Command]: commands = [] inputsdict = {t.id(): t for t in tool.inputs()} @@ -992,8 +994,7 @@ def add_runtimefield_overrides_for_wdl(cls, runtime_block, tool, inmap): runtime_block.kwargs["preemptible"] = 2 - @classmethod - def build_inputs_dict(cls, tool: Tool, recursive: bool=False) -> dict[str, Any]: + def build_inputs_file(self, entity: WorkflowBuilder | CommandToolBuilder | CodeTool) -> None: """ Recursive is currently unused, but eventually input overrides could be generated the whole way down a call chain, including subworkflows: https://github.com/openwdl/wdl/issues/217 @@ -1006,23 +1007,22 @@ def build_inputs_dict(cls, tool: Tool, recursive: bool=False) -> dict[str, Any]: inp = {} values_provided_from_tool = {} - is_workflow = tool.type() == ToolType.Workflow - if is_workflow: + if isinstance(entity, WorkflowBuilder): values_provided_from_tool = { i.id(): i.value or i.default - for i in tool.input_nodes.values() + for i in entity.input_nodes.values() if i.value is not None or (i.default is not None and not isinstance(i.default, Selector)) } ad = {**values_provided_from_tool, **(additional_inputs or {})} - for i in tool.tool_inputs(): + for i in entity.tool_inputs(): - inp_key = f"{tool.id()}.{i.id()}" if is_workflow else i.id() + inp_key = f"{entity.id()}.{i.id()}" if isinstance(entity, WorkflowBuilder) else i.id() value = ad.get(i.id()) - if cls.inp_can_be_skipped(i, value): + if self.inp_can_be_skipped(i, value): continue inp_val = value @@ -1046,9 +1046,10 @@ def build_inputs_dict(cls, tool: Tool, recursive: bool=False) -> dict[str, Any]: ) if settings.translate.MERGE_RESOURCES: - inp.update(cls.build_resources_input(tool, inputs=ad, is_root=True)) - - return inp + inp.update(self._build_resources_dict(entity, inputs=ad, is_root=True)) + + inputs_str = json.dumps(inp, sort_keys=True, indent=4, separators=(",", ": ")) + self.inputs_file = inputs_str @staticmethod def inp_can_be_skipped(inp, override_value=None): @@ -1059,8 +1060,13 @@ def inp_can_be_skipped(inp, override_value=None): and (inp.intype.optional and inp.default is None) ) + def build_resources_file(self, entity: WorkflowBuilder | CommandToolBuilder | CodeTool) -> None: + resources_dict = self._build_resources_dict(entity) + resources_str = json.dumps(resources_dict, sort_keys=True, indent=4, separators=(",", ": ")) + self.resources_file = resources_str + @classmethod - def build_resources_input( + def _build_resources_dict( cls, tool: Tool, inputs: Optional[dict[str, Any]]=None, @@ -1069,7 +1075,7 @@ def build_resources_input( ) -> dict[str, Any]: is_workflow = tool.type() == ToolType.Workflow - d = super().build_resources_input( + d = super()._build_resources_dict( tool=tool, prefix=prefix or "", inputs=inputs, @@ -1078,8 +1084,20 @@ def build_resources_input( return {f"{tool.id()}.{k}": v for k, v in d.items()} return d + + ### STRINGIFY ### + + def stringify_translated_workflow(self, internal: WorkflowBuilder, translated: wdl.Workflow) -> str: + return translated.get_string() + + def stringify_translated_tool(self, internal: CommandToolBuilder | CodeTool, translated: wdl.Task) -> str: + return translated.get_string() + + + ### FILENAMES ### + @staticmethod - def workflow_filename(workflow): + def workflow_filename(workflow: WorkflowBuilder, is_main: Optional[bool]=False) -> str: return workflow.versioned_id() + ".wdl" @staticmethod @@ -1095,6 +1113,14 @@ def resources_filename(workflow): return workflow.id() + "-resources.json" + ### VALIDATION ### + + @staticmethod + def validate_command_for(wfpath, inppath, tools_dir_path, tools_zip_path): + return ["java", "-jar", "$womtooljar", "validate", wfpath] + + + def prepare_escaped_string(value: str): return json.dumps(value)[1:-1] @@ -1448,7 +1474,7 @@ def translate_step_node( inputs_details: dict[str, dict[str, Any]] = {} if isinstance(step.tool, Workflow): input_positions = get_workflow_input_positions(list(step.tool.input_nodes.values())) - elif isinstance(step.tool, CommandTool): + elif isinstance(step.tool, CommandToolBuilder): input_positions = get_tool_input_positions_cmdtool(step.tool.inputs()) elif isinstance(step.tool, CodeTool): input_positions = get_tool_input_positions_codetool(step.tool.inputs()) @@ -1579,7 +1605,7 @@ def translate_step_node( # prefix prefix = None - if isinstance(step.tool, CommandTool): + if isinstance(step.tool, CommandToolBuilder): prefix = tool_input.prefix if isinstance(prefix, str): prefix = prefix.rstrip('=') @@ -2149,7 +2175,7 @@ def build_resource_override_maps_for_tool(tool, prefix=None) -> List[wdl.Input]: else: prefix += "_" - if isinstance(tool, (CommandTool, CodeTool)): + if isinstance(tool, (CommandToolBuilder, CodeTool)): inputs.extend( [ wdl.Input(wdl.WdlType.parse_type("Int?"), prefix + "runtime_memory"), diff --git a/janis_core/types/common_data_types.py b/janis_core/types/common_data_types.py index 3f7daf958..051c0e716 100644 --- a/janis_core/types/common_data_types.py +++ b/janis_core/types/common_data_types.py @@ -183,6 +183,48 @@ def invalid_value_hint(self, meta): return f"Value was of type {type(meta)}, expected string" +class Enum(DataType): + def __init__(self, items: list[str | float | int], optional=False): + self.items = items + self.optional = optional if optional is not None else False + self.is_prim = False + + @staticmethod + def name(): + return "Enum" + + @staticmethod + def primitive(): + return NativeTypes.kStr + + @staticmethod + def doc(): + return "An enum" + + def input_field_from_input(self, meta): + return next(iter(meta.values())) + + def can_receive_from(self, other, source_has_default=False): + if isinstance(other, String): + return True + return super().can_receive_from(other, source_has_default=source_has_default) + + def validate_value(self, meta: Any, allow_null_if_not_optional: bool): + if meta is None: + return self.optional or allow_null_if_not_optional + return isinstance(meta, (str, float, int)) and meta in self.items + + def coerce_value_if_possible(self, value): + return [value] + + def invalid_value_hint(self, meta): + if meta is None: + return "value was null" + if self.validate_value(meta, True): + return None + return f"Value was of type {type(meta)}, expected string" + + class Filename(String): def __init__( self, prefix="generated", suffix=None, extension: str = None, optional=None diff --git a/janis_core/workflow/workflow.py b/janis_core/workflow/workflow.py index 94ccc2eb4..dc2724175 100644 --- a/janis_core/workflow/workflow.py +++ b/janis_core/workflow/workflow.py @@ -647,7 +647,7 @@ def all_input_keys(self): from janis_core.translations.translationbase import TranslatorBase return super().all_input_keys() + list( - TranslatorBase.build_resources_input(tool=self, hints={}).keys() + TranslatorBase._build_resources_dict(tool=self, hints={}).keys() ) def verify_output_source_type( @@ -983,7 +983,7 @@ def generate_inputs_override( if with_resource_overrides: from janis_core.translations import CwlTranslator - d.update(CwlTranslator().build_resources_input(self, hints)) + d.update(CwlTranslator()._build_resources_dict(self, hints)) return d diff --git a/notes.txt b/notes.txt index 1cf6592bc..4c8259ffe 100644 --- a/notes.txt +++ b/notes.txt @@ -1,36 +1,232 @@ +-------------------- +--- ARCHITECTURE --- +-------------------- + + +1. Read file into memory (input files) + - Reads the textfile into some representation + - cwl-utils, miniwdl, galaxy + +2. Preprocess in-memory data? + - cwl-utils objects get types cast from yml to python types + +3. Map in-memory data to Janis objects + - Galaxy Tool -> Janis CommandTool + - CWL CommandInputParameter -> Janis ToolInput + - involves mapping the data into Janis format + - eg Janis ToolInput: + tag: str + input_type: ParseableType + position: Optional[int] = None + prefix: Optional[str] = None + separate_value_from_prefix: Optional[bool] = None + prefix_applies_to_all_elements: Optional[bool] = None + presents_as: Optional[str] = None + secondaries_present_as: Optional[dict[str, str]] = None + separator: Optional[str] = None + shell_quote: Optional[bool] = None + localise_file: Optional[bool] = None + default: Any = None + doc: Optional[Union[str, InputDocumentation]] = None + value: Optional[str]=None + - Expression casting + - Datatype casting + +4. Perform simplification if necessary + - mainly for galaxy input + - mode == 'skeleton' | 'regular' + - prune workflow / prune tool + - modifies the Janis model to remove unnecessary: + - tool inputs + - step inputs + - other information like CLI bindings + +5. Map Janis objects to model representing output + - CWL: cwl-utils + - Nextflow: internal model + - WDL: illusional.wdlgen + - Expression casting + - Datatype casting + +6. Render the model to text (output files) + - uses model methods to generate string representation + +------------------------- +--- TRANSLATION TABLE --- +------------------------- + +TODO TEST +- nextflow translate: change all singularity nextflow.config text to just "docker.enabled = true" +- nextflow translate: Boolean types should have default=false in nextflow.config +- nextflow translate: remove brackets for script expressions (GroupOperator was causing the issues) +- nextflow translate: NameextOperator needs a "." before the arg. +- nextflow translate: expressions for runtime variables can't be in params. +- nextflow translate: Array(File(optional=True)) not properly handled in input & prescript. may be due to new expression parsing. + +TODO IMPLEMENT +- nextflow translate: Directory() types need new handling. +- nextflow translate: some inputs not handled correctly as bools + +- cwl ingest: some expressions not being parsed. +- cwl ingest: CWL tool inputs have implicit position. this includes optional - they're just not rendered. + +- janis: add SelfOperator + - BWA-Mem.cwl + (CWL): valueFrom: $(self.dirname)/$(self.nameroot) + -> + (NXF): def index = index[0] + - + (CWL): valueFrom: $(self.path.replace(/\.fa/i,"")) + -> + (NXF): def reference_index = reference_index.replaceAll("/\.fa/i", "") + +CWL -> NXF +easy +- [0] BWA_Index.cwl +- [0] BWA_Mem.cwl +- [0] cutadapt-paired.cwl +- [0] fastqc_2.cwl +- [0] samtools_index.cwl + +med +- [0] kraken2.cwl +- [0] minimap2.cwl +- [0] nanoplot.cwl +- [0] picard_MarkDuplicates.cwl +- [0] picard_SortSam.cwl + +hard +- [0] bamtools_stats.cwl +- [0] bowtie2.cwl +- [0] picard_AddOrReplaceReadGroups.cwl +- [0] unicycler.cwl + + +CWL -> NXF easy +- [1] BWA_Index.cwl: + - If operator moved to prescript NO! just remove the brackets!!! +- [1] BWA_Mem.cwl: + - def index = index[0] -> def index = index[0].simpleName + due to self. in CWL valueFrom +- [2] cutadapt-paired.cwl: + - added cli binding for read inputs. + due to CWL tool not specifying input position. I guess we need to parse these. + - added "." before each NameextOperator. I guess this is what CWL does. +- [0] fastqc_2.cwl +- [0] samtools_index.cwl + + +CWL -> NXF med +- [2] kraken2.cwl: + - dir type issues. + main.nf: + database = file( params.database ) + -> + ch_database = Channel.fromPath( params.database, type: 'dir' ) + kraken2.nf: + --db ${database} \ + -> + --db data \ + - nextflow.config: bool values should be automatically false unless default=true + +- [2] minimap2.cwl: + - expressions for runtime variables can't be in params! + (nextflow.config) minimap2_paf.disk = ceil(((file_size(inputs.target) / (((1024 * 1024) * 1024))) + 20)) + (nextflow.config) minimap2_paf.memory = (15 * 1024) + -> + (minimap2.nf) disk "${Math.ceil((target.size() / (1024 * 1024 * 1024)) + 20)} MB" + (minimap2.nf) memory "${(15 * 1024)} MB" + - __TOKEN1__ and __TOKEN2__ -> "${target.simpleName}.paf" + +- [1] nanoplot.cwl + - Array(File(optional=True)) not properly handled in input & prescript. may be due to new expression parsing. + (input) path fasta_files, stageAs: 'fasta_files??/*' + (prescript) def fasta_files_joined = fasta_files[0] != null ? "--fasta " + fasta_files.join(' ') : "" + -> + (input) path fasta_files, stageAs: 'fasta_files/*' + (prescript) def fasta_files_joined = fasta_files[0] != null ? "--fasta " + fasta_files : "" + +- [6] picard_MarkDuplicates.cwl + - some things not being actually translated. probably issue with cwl parse_expression() + - some inputs not handled correctly as bools + - added: def remove_duplicates = remove_duplicates != false ? "REMOVE_DUPLICATES=TRUE" : "" + - added: def alignments_are_sorted = alignments_are_sorted != false ? "ASSUME_SORTED=TRUE" : "" + +- [1] picard_SortSam.cwl + - again, need to remove brackets from If() operator + OUTPUT=${(sort_order == "coordinate") ? (alignments.simpleName) + ".bam" : (alignments.simpleName) + ".sam"} + -> + OUTPUT=${sort_order == "coordinate" ? alignments.simpleName + ".bam" : alignments.simpleName + ".sam"} + +CWL -> NXF hard +- [0] bamtools_stats.cwl +- [4] bowtie2.cwl + - again, remove brackets + ${(is_paired_end) ? "-1" : "-U"} \ + -> + ${is_paired_end ? "-1" : "-U"} \ + - weird shit with bools in prescript + def is_paired_end = is_paired_end == false ? "" : "" + -> + removed. could also move the logic here. + - again, reference index basename shit + def reference_index = reference_index[0] + -> + def reference_index = reference_index[0].simpleName + - again, some expressions not parsed. weirdly it's parsed correctly in the script section, but not output collection. + path "{inputs.fastq1.nameroot}.bowtie2_stderr", emit: bowtie2_log + -> + path "${fastq1.simpleName}.bowtie2_stderr", emit: bowtie2_log +- [1] picard_AddOrReplaceReadGroups.cwl + - again, untranslated string in script. + this is weird since NXF has no tmpdir. should just be './'. + check the translation comes out right after making sure this expr is parsed. + TMP_DIR=$(runtime.tmpdir) + -> + TMP_DIR=./ +- [inf] unicycler.cwl + - required shell script "unicycler_launch.sh" is dynamic based on inputs. + + + + --------------- --- GENERAL --- --------------- +DONE (to test) +- messages NXF output +- messages CWl ingest +- WDL runtime duration removed +- NXF tool translate wrap in workflow to create config etc +- CWL ingest edam formats DOING -- messages -> output file - -CHANGES [TEST THESE]: -- WDL runtime duration removed +- CWL translate_workflow_to_all_in_one()?? +- make nextflow translate reflect new TranslatorBase interface [partially done] + + +- messages CWl output (tool, workflow) +- messages WDL output (tool, workflow) +- messages NXF output (workflow) +- messages WDL ingest +- messages Galaxy ingest +- modify CWL output for new CWL expression parsing +- modify NXF output for new CWL expression parsing +- modify WDL output for new CWL expression parsing +- NXF If operator -> move to prescript +- WDL rename variables to avoid keywords +- WDL rename variables with 2+ uses (eg "bam" input & "bam" output not allowed) +- bugfixes +- wdl parser +- wdl remove implied resources +- CWL parse self exprs -TODO -- messages -> output file -- adapt translation units for new cwl parsed expressions -- address bugs -- exceptions - - samtools index (cwl -> wdl) - - bwa index (cwl -> wdl) - - cutadapt (cwl -> wdl) ------------------ --- CWL INGEST --- ------------------ -misc -- can everything be both an object and a dict???? or is this just hints? just hints I think? - -test suite -- edam formats - -expressions -- "self" can be parsed. - --------------------- --- NXF TRANSLATE --- @@ -47,8 +243,6 @@ CWL -> NXF boofed unwrap - - - misc - Janis BasenameOperator -> Nextflow updated to no mods. This isn't doing normal janis unwrapping so didnt work. - curly brace unwrapping boofed From dc144f6982940087015d7968426bddd62aa98953 Mon Sep 17 00:00:00 2001 From: Grace Hall <graceavahall@gmail.com> Date: Thu, 30 Nov 2023 22:12:45 +1100 Subject: [PATCH 19/32] messaging injection --- .gitignore | 4 +- janis_core/graph/steptaginput.py | 12 +- janis_core/ingestion/cwl/expressions/main.py | 8 +- janis_core/ingestion/cwl/loading.py | 4 +- janis_core/ingestion/cwl/main.py | 4 +- janis_core/ingestion/cwl/parsing/tool.py | 16 +- janis_core/ingestion/cwl/parsing/workflow.py | 21 +- janis_core/ingestion/cwl/types.py | 12 +- janis_core/ingestion/wdl/main.py | 5 +- janis_core/ingestion/wdl/parsing/types.py | 4 +- janis_core/messages/__init__.py | 12 +- janis_core/messages/enums.py | 37 +- janis_core/messages/inject.py | 288 ++++++ janis_core/messages/logfile.py | 20 +- janis_core/messages/main.py | 47 +- janis_core/settings/__init__.py | 1 + janis_core/settings/messages.py | 3 + .../workflow/translated/config | 14 - .../workflow/translated/main.nf | 885 +----------------- .../workflow/translated/modules/FGS.nf | 58 -- .../workflow/translated/modules/QC_FLAG.nf | 57 -- .../modules/add_crossmapped_to_resmapped.nf | 33 - .../modules/add_domain_positions.nf | 24 - .../modules/align_avg_structs_pairwise.nf | 28 - .../translated/modules/antismash_gff.nf | 27 - .../translated/modules/antismash_summary.nf | 22 - .../modules/avg_averaged_structures.nf | 24 - .../modules/avg_averaged_unp_domains.nf | 24 - .../avg_chopped_structs_unp_domains.nf | 24 - .../avg_chopped_structures_unp_domains.nf | 24 - .../workflow/translated/modules/bam_index.nf | 23 - .../modules/calc_chunking_number.nf | 24 - .../workflow/translated/modules/carveme.nf | 27 - .../modules/carveme_files_to_folder.nf | 23 - .../workflow/translated/modules/cat.nf | 22 - .../workflow/translated/modules/cat_models.nf | 66 -- .../modules/check_alignment_scores.nf | 35 - .../modules/check_threshold_step.nf | 35 - .../translated/modules/check_value.nf | 23 - .../modules/chinking_SC_fasta_nucleotide.nf | 50 - .../modules/chinking_fasta_nucleotide.nf | 50 - .../modules/chinking_fasta_proteins.nf | 50 - .../translated/modules/chop_structs.nf | 26 - .../translated/modules/chunking_fasta.nf | 24 - .../translated/modules/chunking_tsv.nf | 23 - .../modules/classifications_to_otu_counts.nf | 93 -- .../modules/clean_classification.nf | 20 - .../translated/modules/clean_fasta_headers.nf | 21 - .../translated/modules/clean_headers.nf | 21 - .../workflow/translated/modules/cmsearch.nf | 108 --- .../modules/collect_lost_instances.nf | 23 - .../workflow/translated/modules/combine.nf | 48 - .../translated/modules/combine_ips.nf | 48 - .../translated/modules/combine_trimmed.nf | 23 - .../modules/compare_instances_CATH_Pfam.nf | 31 - .../workflow/translated/modules/compress.nf | 20 - .../translated/modules/compress_carveme.nf | 22 - .../translated/modules/compress_mapseq.nf | 72 -- .../translated/modules/compress_prodigal.nf | 22 - .../translated/modules/compression.nf | 48 - .../modules/compression_func_ann.nf | 24 - .../workflow/translated/modules/conversion.nf | 25 - .../modules/convert_trimmed_reads_to_fasta.nf | 21 - .../translated/modules/copy_avg_dom.nf | 19 - .../translated/modules/count_ITS_seqs.nf | 23 - .../workflow/translated/modules/count_cds.nf | 46 - .../translated/modules/count_lines_mapseq.nf | 66 -- .../translated/modules/count_lsu_fasta.nf | 69 -- .../translated/modules/count_masked_fasta.nf | 23 - .../modules/count_overlapped_reads.nf | 21 - .../modules/count_processed_reads.nf | 69 -- .../translated/modules/count_reads.nf | 23 - .../modules/count_reads_after_filtering.nf | 23 - .../translated/modules/count_ssu_fasta.nf | 69 -- .../modules/count_submitted_reads.nf | 42 - .../modules/count_submitted_reads_single.nf | 42 - .../translated/modules/counts_to_hdf5.nf | 78 -- .../translated/modules/counts_to_json.nf | 78 -- .../translated/modules/create_csv_gp.nf | 22 - .../translated/modules/create_csv_kp.nf | 22 - .../modules/create_new_parameters.nf | 30 - .../modules/crossmapping_CATH2Pfam.nf | 27 - .../modules/crossmapping_Pfam2CATH.nf | 27 - .../translated/modules/diamond_run.nf | 35 - .../translated/modules/eggnog_annotation.nf | 33 - .../modules/eggnog_homology_searches.nf | 43 - .../modules/expressiontool_bam_index.nf | 24 - .../translated/modules/extract_coords.nf | 46 - .../translated/modules/extract_sequences.nf | 69 -- .../translated/modules/extract_subunits.nf | 105 --- .../modules/extract_subunits_coords.nf | 84 -- .../translated/modules/fasta_index.nf | 24 - .../workflow/translated/modules/fastqc.nf | 50 - .../modules/fastqc_files_to_folder.nf | 46 - .../modules/filter_cath_structures.nf | 30 - .../modules/filter_contigs_antismash.nf | 28 - .../translated/modules/filter_paired.nf | 84 -- .../modules/filter_pfam_structures.nf | 30 - .../translated/modules/fix_embl_and_gbk.nf | 27 - .../modules/fix_geneclusters_txt.nf | 22 - .../translated/modules/folder_compression.nf | 19 - .../translated/modules/format_core_list.nf | 19 - .../translated/modules/functional_stats.nf | 36 - .../translated/modules/gather_domain_like.nf | 27 - .../modules/gather_failed_domains.nf | 33 - .../workflow/translated/modules/gemstats.nf | 22 - .../translated/modules/genome_properties.nf | 36 - .../workflow/translated/modules/get_coords.nf | 46 - .../translated/modules/get_family_ids.nf | 26 - .../workflow/translated/modules/get_ncrnas.nf | 46 - .../workflow/translated/modules/gff.nf | 29 - .../workflow/translated/modules/go_summary.nf | 29 - .../workflow/translated/modules/gzip.nf | 20 - .../workflow/translated/modules/gzip_LSU.nf | 24 - .../workflow/translated/modules/gzip_SSU.nf | 24 - .../workflow/translated/modules/gzip_files.nf | 48 - .../translated/modules/gzip_masked_ITS.nf | 24 - .../translated/modules/gzipped_embl.nf | 24 - .../translated/modules/gzipped_gbk.nf | 24 - .../workflow/translated/modules/hashsum.nf | 21 - .../translated/modules/hashsum_paired.nf | 42 - .../translated/modules/hashsum_single.nf | 42 - .../translated/modules/header_addition.nf | 23 - .../workflow/translated/modules/hmmsearch.nf | 66 -- .../translated/modules/index_reads.nf | 40 - .../translated/modules/interproscan.nf | 25 - .../workflow/translated/modules/join.nf | 24 - .../translated/modules/kegg_pathways.nf | 31 - .../workflow/translated/modules/kofamscan.nf | 25 - .../translated/modules/length_filter.nf | 56 -- .../translated/modules/make_tab_sep.nf | 42 - .../workflow/translated/modules/mapseq.nf | 102 -- .../translated/modules/mask_for_ITS.nf | 23 - .../modules/memote_files_to_folder.nf | 23 - .../modules/memote_report_snapshot.nf | 33 - .../workflow/translated/modules/memote_run.nf | 33 - .../modules/motus_classification.nf | 25 - ...mash_summary_to_pathways_systems_folder.nf | 22 - .../move_to_functional_annotation_folder.nf | 23 - .../move_to_pathways_systems_folder.nf | 23 - .../modules/move_to_seq_cat_folder.nf | 46 - .../workflow/translated/modules/ngtax.nf | 141 --- .../modules/ngtax_files_to_folder.nf | 69 -- .../translated/modules/ngtax_to_tsv_fasta.nf | 99 -- .../translated/modules/no_tax_file_flag.nf | 51 - .../translated/modules/overlap_reads.nf | 64 -- .../modules/pairwise_align_avg_structs.nf | 25 - .../translated/modules/parsing_hmmscan.nf | 24 - .../translated/modules/per_dom_instance.nf | 21 - .../modules/per_unp_dom_instance.nf | 21 - .../workflow/translated/modules/pfam.nf | 24 - .../modules/phyloseq_files_to_folder.nf | 69 -- .../workflow/translated/modules/picrust2.nf | 45 - .../modules/picrust_files_to_folder.nf | 24 - .../workflow/translated/modules/pilon.nf | 34 - .../translated/modules/post_processing.nf | 75 -- .../workflow/translated/modules/prodigal.nf | 48 - .../modules/prodigal_files_to_folder.nf | 23 - .../workflow/translated/modules/qc_stats.nf | 81 -- .../translated/modules/readmapping_pilon.nf | 38 - .../translated/modules/reads_to_folder.nf | 46 - .../translated/modules/reformat_coords.nf | 21 - .../translated/modules/remove_overlaps.nf | 69 -- .../translated/modules/rename_contigs.nf | 25 - .../translated/modules/rename_geneclusters.nf | 22 - .../translated/modules/rename_ncrnas.nf | 42 - .../modules/resmapping_for_CATH_PDB2UP.nf | 25 - .../modules/resmapping_for_Pfam_UP2PDB.nf | 25 - .../modules/return_antismash_in_folder.nf | 24 - .../translated/modules/return_its_dir.nf | 23 - .../translated/modules/return_output_dir.nf | 72 -- .../translated/modules/return_seq_dir.nf | 23 - .../translated/modules/return_tax_dir.nf | 46 - .../translated/modules/run_antismash.nf | 28 - .../run_concatenate_deoverlapped_matches.nf | 69 -- .../modules/run_concatenate_matches.nf | 69 -- .../modules/run_quality_control_filtering.nf | 28 - .../translated/modules/sam_to_sorted_bam.nf | 23 - .../workflow/translated/modules/smetana.nf | 26 - .../workflow/translated/modules/sorting.nf | 21 - .../translated/modules/split_fasta.nf | 69 -- .../workflow/translated/modules/split_seqs.nf | 24 - .../translated/modules/suppress_tax.nf | 40 - .../translated/modules/tab_modification.nf | 21 - .../workflow/translated/modules/tohdt.nf | 21 - .../translated/modules/touch_empty_fasta.nf | 17 - .../translated/modules/touch_file_flag.nf | 51 - .../modules/touch_no_antismash_flag.nf | 17 - .../translated/modules/touch_no_cds_flag.nf | 34 - .../modules/trim_quality_control.nf | 36 - .../workflow/translated/modules/unite_embl.nf | 23 - .../workflow/translated/modules/unite_gbk.nf | 23 - .../modules/unite_geneclusters_txt.nf | 22 - .../modules/unite_seed_orthologs.nf | 23 - .../workflow/translated/modules/unzip.nf | 21 - .../translated/modules/unzip_merged_reads.nf | 42 - .../translated/modules/unzip_single_reads.nf | 42 - .../translated/modules/vcf_compress.nf | 22 - .../modules/visualize_otu_counts.nf | 63 -- .../translated/modules/write_summaries.nf | 39 - .../workflow/translated/subworkflows/ITS.nf | 79 -- .../translated/subworkflows/after_qc.nf | 530 ----------- .../translated/subworkflows/antismash.nf | 36 - .../subworkflows/avg_unp_domains.nf | 26 - .../translated/subworkflows/before_qc.nf | 257 ----- .../subworkflows/cath_domain_instances.nf | 43 - .../workflow/translated/subworkflows/cgc.nf | 97 -- .../subworkflows/change_formats_and_names.nf | 28 - .../chop_and_avg_for_CATH2Pfam.nf | 20 - .../chop_and_avg_for_Pfam2CATH.nf | 20 - .../subworkflows/chop_and_avg_for_core.nf | 36 - .../subworkflows/chop_and_avg_from_list.nf | 36 - .../translated/subworkflows/chunking.nf | 100 -- .../translated/subworkflows/chunking_final.nf | 76 -- .../translated/subworkflows/classify_LSUs.nf | 294 ------ .../translated/subworkflows/classify_SSUs.nf | 294 ------ .../subworkflows/cmsearch_assembly.nf | 142 --- .../subworkflows/cmsearch_raw_data.nf | 220 ----- .../subworkflows/combined_gene_caller.nf | 78 -- .../translated/subworkflows/diamond.nf | 38 - .../translated/subworkflows/eggnog.nf | 43 - .../translated/subworkflows/filtering.nf | 32 - .../subworkflows/find_ribosomal_ncRNAs.nf | 123 --- .../folder_functional_annotation.nf | 75 -- .../subworkflows/functional_annotation.nf | 128 --- ...nctional_annotation_and_post_processing.nf | 234 ----- .../translated/subworkflows/motus_taxonomy.nf | 23 - .../subworkflows/no_antismash_subwf.nf | 23 - .../translated/subworkflows/other_ncrnas.nf | 118 --- .../translated/subworkflows/overlap_reads.nf | 125 --- .../translated/subworkflows/pathways.nf | 41 - .../subworkflows/pfam_domain_instances.nf | 43 - .../subworkflows/post_processing_uniref90.nf | 27 - .../subworkflows/resmapping_cath_structs.nf | 21 - .../subworkflows/resmapping_pfam_structs.nf | 21 - .../translated/subworkflows/rna_prediction.nf | 516 ---------- .../translated/subworkflows/run_IPS.nf | 92 -- .../translated/subworkflows/run_antismash.nf | 38 - .../translated/subworkflows/run_hmmer.nf | 107 --- .../translated/subworkflows/run_itsonedb.nf | 66 -- .../translated/subworkflows/run_unite.nf | 66 -- .../translated/subworkflows/trimming.nf | 26 - .../subworkflows/unmapped_from_cath.nf | 54 -- .../subworkflows/unmapped_from_pfam.nf | 54 -- .../subworkflows/write_summaries.nf | 44 - janis_core/tests/test_ingestion_cwl.py | 2 +- janis_core/tests/test_janis_translate.py | 114 +++ janis_core/tests/test_translation_cwl.py | 6 +- janis_core/tests/test_translation_nextflow.py | 269 +++--- janis_core/tests/test_translation_wdl.py | 275 +++--- .../files_directories_to_create.py | 2 +- .../translation_deps/supportedtranslations.py | 7 + .../translations/{ => common}/todisk.py | 65 +- janis_core/translations/cwl/main.py | 2 +- janis_core/translations/main.py | 2 +- .../nextflow/generate/files/process.py | 62 -- .../nextflow/generate/process/main.py | 20 +- .../generate/process/script/prescript.py | 7 +- janis_core/translations/nextflow/main.py | 99 +- .../preprocessing/task_inputs/populator.py | 4 +- janis_core/translations/translationbase.py | 156 ++- janis_core/translations/wdl/main.py | 7 +- janis_core/workflow/workflow.py | 6 +- notes.txt | 73 +- 264 files changed, 1036 insertions(+), 12963 deletions(-) create mode 100644 janis_core/messages/inject.py create mode 100644 janis_core/settings/messages.py delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/config delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/FGS.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/QC_FLAG.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/add_crossmapped_to_resmapped.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/add_domain_positions.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/align_avg_structs_pairwise.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/antismash_gff.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/antismash_summary.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/avg_averaged_structures.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/avg_averaged_unp_domains.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/avg_chopped_structs_unp_domains.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/avg_chopped_structures_unp_domains.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/bam_index.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/calc_chunking_number.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/carveme.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/carveme_files_to_folder.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/cat.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/cat_models.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/check_alignment_scores.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/check_threshold_step.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/check_value.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/chinking_SC_fasta_nucleotide.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/chinking_fasta_nucleotide.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/chinking_fasta_proteins.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/chop_structs.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/chunking_fasta.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/chunking_tsv.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/classifications_to_otu_counts.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/clean_classification.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/clean_fasta_headers.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/clean_headers.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/cmsearch.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/collect_lost_instances.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/combine.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/combine_ips.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/combine_trimmed.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/compare_instances_CATH_Pfam.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/compress.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/compress_carveme.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/compress_mapseq.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/compress_prodigal.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/compression.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/compression_func_ann.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/conversion.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/convert_trimmed_reads_to_fasta.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/copy_avg_dom.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_ITS_seqs.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_cds.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_lines_mapseq.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_lsu_fasta.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_masked_fasta.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_overlapped_reads.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_processed_reads.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_reads.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_reads_after_filtering.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_ssu_fasta.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_submitted_reads.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_submitted_reads_single.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/counts_to_hdf5.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/counts_to_json.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/create_csv_gp.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/create_csv_kp.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/create_new_parameters.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/crossmapping_CATH2Pfam.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/crossmapping_Pfam2CATH.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/diamond_run.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/eggnog_annotation.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/eggnog_homology_searches.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/expressiontool_bam_index.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/extract_coords.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/extract_sequences.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/extract_subunits.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/extract_subunits_coords.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/fasta_index.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/fastqc.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/fastqc_files_to_folder.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/filter_cath_structures.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/filter_contigs_antismash.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/filter_paired.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/filter_pfam_structures.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/fix_embl_and_gbk.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/fix_geneclusters_txt.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/folder_compression.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/format_core_list.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/functional_stats.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gather_domain_like.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gather_failed_domains.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gemstats.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/genome_properties.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/get_coords.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/get_family_ids.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/get_ncrnas.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gff.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/go_summary.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gzip.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gzip_LSU.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gzip_SSU.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gzip_files.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gzip_masked_ITS.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gzipped_embl.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gzipped_gbk.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/hashsum.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/hashsum_paired.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/hashsum_single.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/header_addition.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/hmmsearch.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/index_reads.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/interproscan.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/join.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/kegg_pathways.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/kofamscan.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/length_filter.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/make_tab_sep.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/mapseq.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/mask_for_ITS.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/memote_files_to_folder.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/memote_report_snapshot.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/memote_run.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/motus_classification.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/move_antismash_summary_to_pathways_systems_folder.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/move_to_functional_annotation_folder.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/move_to_pathways_systems_folder.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/move_to_seq_cat_folder.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/ngtax.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/ngtax_files_to_folder.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/ngtax_to_tsv_fasta.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/no_tax_file_flag.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/overlap_reads.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/pairwise_align_avg_structs.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/parsing_hmmscan.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/per_dom_instance.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/per_unp_dom_instance.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/pfam.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/phyloseq_files_to_folder.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/picrust2.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/picrust_files_to_folder.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/pilon.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/post_processing.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/prodigal.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/prodigal_files_to_folder.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/qc_stats.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/readmapping_pilon.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/reads_to_folder.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/reformat_coords.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/remove_overlaps.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/rename_contigs.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/rename_geneclusters.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/rename_ncrnas.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/resmapping_for_CATH_PDB2UP.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/resmapping_for_Pfam_UP2PDB.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/return_antismash_in_folder.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/return_its_dir.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/return_output_dir.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/return_seq_dir.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/return_tax_dir.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/run_antismash.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/run_concatenate_deoverlapped_matches.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/run_concatenate_matches.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/run_quality_control_filtering.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/sam_to_sorted_bam.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/smetana.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/sorting.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/split_fasta.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/split_seqs.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/suppress_tax.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/tab_modification.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/tohdt.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/touch_empty_fasta.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/touch_file_flag.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/touch_no_antismash_flag.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/touch_no_cds_flag.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/trim_quality_control.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/unite_embl.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/unite_gbk.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/unite_geneclusters_txt.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/unite_seed_orthologs.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/unzip.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/unzip_merged_reads.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/unzip_single_reads.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/vcf_compress.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/visualize_otu_counts.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/write_summaries.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/ITS.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/after_qc.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/antismash.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/avg_unp_domains.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/before_qc.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/cath_domain_instances.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/cgc.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/change_formats_and_names.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/chop_and_avg_for_CATH2Pfam.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/chop_and_avg_for_Pfam2CATH.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/chop_and_avg_for_core.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/chop_and_avg_from_list.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/chunking.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/chunking_final.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/classify_LSUs.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/classify_SSUs.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/cmsearch_assembly.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/cmsearch_raw_data.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/combined_gene_caller.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/diamond.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/eggnog.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/filtering.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/find_ribosomal_ncRNAs.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/folder_functional_annotation.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/functional_annotation.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/functional_annotation_and_post_processing.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/motus_taxonomy.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/no_antismash_subwf.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/other_ncrnas.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/overlap_reads.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/pathways.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/pfam_domain_instances.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/post_processing_uniref90.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/resmapping_cath_structs.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/resmapping_pfam_structs.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/rna_prediction.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/run_IPS.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/run_antismash.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/run_hmmer.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/run_itsonedb.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/run_unite.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/trimming.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/unmapped_from_cath.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/unmapped_from_pfam.nf delete mode 100644 janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/write_summaries.nf rename janis_core/translations/{ => common}/todisk.py (82%) diff --git a/.gitignore b/.gitignore index 0119c208f..eba827176 100644 --- a/.gitignore +++ b/.gitignore @@ -83,6 +83,8 @@ docs/ test.py myscript.sh translated/ +translated/* +translated/*/* involucro TODO.txt @@ -96,4 +98,4 @@ temp.txt translated/ myscript.sh notes.txt -presenter_notes.txt +presenter_notes.txt \ No newline at end of file diff --git a/janis_core/graph/steptaginput.py b/janis_core/graph/steptaginput.py index 58078cb86..edd117856 100644 --- a/janis_core/graph/steptaginput.py +++ b/janis_core/graph/steptaginput.py @@ -8,7 +8,7 @@ from janis_core.utils import first_value from janis_core.utils.logger import Logger from janis_core import settings -from janis_core.messages import log_warning +from janis_core.messages import log_message from janis_core.messages import ErrorCategory from uuid import uuid4 @@ -47,7 +47,7 @@ def validate_tags(self): if self.ftag not in self.finish.inputs(): if settings.graph.ALLOW_UNKNOWN_SOURCE: msg = "Could not connect this input to its data source" - log_warning(self.uuid, msg, ErrorCategory.PLUMBING) + log_message(self.uuid, msg, ErrorCategory.PLUMBING) else: raise Exception( f"Could not find the tag '{self.ftag}' in the outputs of '{self.finish.id()}': {list(self.finish.inputs().keys())}" @@ -71,7 +71,7 @@ def check_types(self): if not stype.is_array(): if settings.graph.ALLOW_NON_ARRAY_SCATTER_INPUT: msg = f"This task is supposed to run in parallel across this input ({ftoolin.id()}), but the data source is not an array." - log_warning(self.uuid, msg, ErrorCategory.PLUMBING) + log_message(self.uuid, msg, ErrorCategory.PLUMBING) else: raise Exception( f"Scatter was required for '{operator} → '{self.finish.id()}.{self.ftag}' but " @@ -91,7 +91,7 @@ def check_types(self): if not self.compatible_types: if settings.graph.ALLOW_INCOMPATIBLE_TYPES: msg = f"The data source for this input is a {stype.id()}, but the input is a {ftoolin.intype.id()}" - log_warning(self.uuid, msg, ErrorCategory.DATATYPE) + log_message(self.uuid, msg, ErrorCategory.DATATYPES) else: s = str(self.source) f = full_dot(self.finish, self.ftag) @@ -148,7 +148,7 @@ def add_source(self, operator: Selector, should_scatter: Optional[bool]=None) -> if not stype.is_array(): if settings.graph.ALLOW_NON_ARRAY_SCATTER_INPUT: msg = f"This task is supposed to run in parallel across this input ({tinput.id()}), but the data source is not an array." - log_warning(self.uuid, msg, ErrorCategory.PLUMBING) + log_message(self.uuid, msg, ErrorCategory.PLUMBING) else: raise Exception( f"Scatter was required for '{operator} → '{self.finish.id()}.{self.ftag}' but " @@ -162,7 +162,7 @@ def add_source(self, operator: Selector, should_scatter: Optional[bool]=None) -> if not ftype.is_array(): if settings.graph.ALLOW_INCORRECT_NUMBER_OF_SOURCES: msg = "This input has multiple data sources, but should only have one (it is not an array)." - log_warning(self.uuid, msg, ErrorCategory.PLUMBING) + log_message(self.uuid, msg, ErrorCategory.PLUMBING) else: raise Exception( f"Adding multiple inputs to '{self.finish.id()}' " diff --git a/janis_core/ingestion/cwl/expressions/main.py b/janis_core/ingestion/cwl/expressions/main.py index 3af82505f..303f780e2 100644 --- a/janis_core/ingestion/cwl/expressions/main.py +++ b/janis_core/ingestion/cwl/expressions/main.py @@ -9,7 +9,7 @@ from copy import deepcopy import janis_core as j -from janis_core.messages import log_error +from janis_core.messages import log_message from janis_core.messages import load_loglines from janis_core.messages import LogLine from janis_core.messages import ErrorCategory @@ -64,11 +64,11 @@ def parse_explicit_expr( # expr already has token if error_token_override: msg = f'{error_token_override}: {expr}' - log_error(tool_uuid, msg, ErrorCategory.SCRIPT) + log_message(tool_uuid, msg, ErrorCategory.SCRIPTING) # this is shit return None, False - loglines = load_loglines(category=ErrorCategory.SCRIPT, tool_uuid=tool_uuid) + loglines = load_loglines(category=ErrorCategory.SCRIPTING, tool_uuid=tool_uuid) token = get_token_for_expr(expr, loglines) if token: return token, False @@ -76,7 +76,7 @@ def parse_explicit_expr( # expr needs new token token = f'__TOKEN{len(loglines) + 1}__' msg = f'{token} = "{expr}"' - log_error(tool_uuid, msg, ErrorCategory.SCRIPT) + log_message(tool_uuid, msg, ErrorCategory.SCRIPTING) return token, False def parse_implicit_expr( diff --git a/janis_core/ingestion/cwl/loading.py b/janis_core/ingestion/cwl/loading.py index 9f5cf744b..873b153eb 100644 --- a/janis_core/ingestion/cwl/loading.py +++ b/janis_core/ingestion/cwl/loading.py @@ -2,7 +2,7 @@ import ruamel.yaml from typing import Any, Optional from janis_core import settings -from janis_core.messages import log_warning +from janis_core.messages import log_message from janis_core.messages import ErrorCategory from .preprocessing import convert_cwl_types_to_python from .preprocessing import handle_inline_cltool_identifiers @@ -27,7 +27,7 @@ def load_cwl_version(doc: str) -> str: raise Exception(f"Couldn't find cwlVersion in tool {doc}") else: msg = f'no cwl version was specified in {doc}. fell back to cwl v1.2 for ingestion.' - log_warning(tool_uuid='loading error', msg=msg, category=ErrorCategory.VERSION, subsection=None) + log_message(entity_uuid='loading error', msg=msg, category=ErrorCategory.METADATA, subsection=None) return DEFAULT_PARSER_VERSION # return version diff --git a/janis_core/ingestion/cwl/main.py b/janis_core/ingestion/cwl/main.py index 797ea137a..3a5b0c67c 100755 --- a/janis_core/ingestion/cwl/main.py +++ b/janis_core/ingestion/cwl/main.py @@ -14,7 +14,7 @@ from janis_core.workflow.workflow import StepNode, OutputNode from janis_core.utils.errors import UnsupportedError -from janis_core.messages import log_warning +from janis_core.messages import log_message from janis_core.messages import ErrorCategory from .identifiers import get_id_filename @@ -201,7 +201,7 @@ def ingest_expression_tool(self, etool: Any) -> j.CommandTool: clt = self.parse_etool_to_cltool(etool) tool = self.ingest_command_line_tool(clt, is_expression_tool=True) msg = 'Translation of CWL ExpressionTools is currently an experimental feature of janis translate' - log_warning(tool.uuid, msg, ErrorCategory.EXPERIMENTAL) + log_message(tool.uuid, msg, ErrorCategory.EXPERIMENTAL) return tool def parse_etool_to_cltool(self, etool: Any) -> Any: diff --git a/janis_core/ingestion/cwl/parsing/tool.py b/janis_core/ingestion/cwl/parsing/tool.py index 83669bded..4faf88e45 100644 --- a/janis_core/ingestion/cwl/parsing/tool.py +++ b/janis_core/ingestion/cwl/parsing/tool.py @@ -9,7 +9,7 @@ from janis_core import ToolInput, ToolArgument, ToolOutput, WildcardSelector, CommandToolBuilder, CommandTool, Selector from janis_core.types import File, Stdout, Stderr, Directory, DataType from janis_core import settings -from janis_core.messages import log_error +from janis_core.messages import log_message from janis_core.messages import ErrorCategory from ..types import ingest_cwl_type @@ -63,7 +63,7 @@ def fallback(self) -> CommandTool: # log message msg = 'error parsing tool. returned minimal tool definition as fallback' - log_error(self.tool_uuid, msg, ErrorCategory.FALLBACK) + log_message(self.tool_uuid, msg, ErrorCategory.FALLBACKS) inputs = [self.ingest_command_tool_input(inp) for inp in self.entity.inputs] outputs = [self.ingest_command_tool_output(out) for out in self.entity.outputs] @@ -178,7 +178,7 @@ def ingest_io_streams(self, entity: Any, jtool: CommandTool) -> list[ToolArgumen filename, success = parse_expression(entity.stderr, self.tool_uuid) # if not success: # msg = 'error parsing tool. returned minimal tool definition as fallback' - # log_error(self.tool_uuid, msg, ErrorCategory.FALLBACK) + # log_message(self.tool_uuid, msg, ErrorCategory.FALLBACK) # filename = 'stderr.txt' # self.error_msgs.append('untranslated javascript expression in stderr filename. used stderr.txt as fallback') arg = ToolArgument(prefix='2>', value=filename, position=n + 1) @@ -281,7 +281,7 @@ class CLTRequirementsParser(CLTEntityParser): def fallback(self) -> dict[str, Any]: # log message msg = 'error parsing tool requirements. ignored requirements as fallback' - log_error(self.tool_uuid, msg, ErrorCategory.FALLBACK) + log_message(self.tool_uuid, msg, ErrorCategory.FALLBACKS) # fallback return { @@ -504,7 +504,7 @@ def parse(self) -> None: def fallback(self) -> None: msg = 'error parsing InitialWorkDirRequirement. ignored as fallback' - log_error(self.tool_uuid, msg, ErrorCategory.FALLBACK) + log_message(self.tool_uuid, msg, ErrorCategory.FALLBACKS) self.files_to_create = [] self.directories_to_create = [] @@ -664,7 +664,7 @@ class CLTArgumentParser(CLTEntityParser): def fallback(self) -> None: msg = 'error parsing CommandLineTool Argument. ignored as fallback' - log_error(self.tool_uuid, msg, ErrorCategory.FALLBACK) + log_message(self.tool_uuid, msg, ErrorCategory.FALLBACKS) return None def do_parse(self) -> Optional[ToolArgument]: @@ -699,7 +699,7 @@ class CLTInputParser(CLTEntityParser): def fallback(self) -> ToolInput: identifier = get_id_entity(self.entity.id) # hope the error isnt here lol msg = 'error parsing CommandLineTool Input. returned generic optional File input as fallback' - log_error(self.tool_uuid, msg, ErrorCategory.FALLBACK) + log_message(self.tool_uuid, msg, ErrorCategory.FALLBACKS) return ToolInput( tag=identifier, @@ -782,7 +782,7 @@ def fallback(self) -> ToolOutput: # log message identifier = get_id_entity(self.entity.id) # hope the error isnt here lol msg = 'error parsing CommandLineTool output. returned generic File output as fallback' - log_error(self.tool_uuid, msg, ErrorCategory.FALLBACK) + log_message(self.tool_uuid, msg, ErrorCategory.FALLBACKS) # fallback return ToolOutput( diff --git a/janis_core/ingestion/cwl/parsing/workflow.py b/janis_core/ingestion/cwl/parsing/workflow.py index 563d3204a..d0fc4dae5 100644 --- a/janis_core/ingestion/cwl/parsing/workflow.py +++ b/janis_core/ingestion/cwl/parsing/workflow.py @@ -17,7 +17,7 @@ from janis_core import settings from janis_core.types import File -from janis_core.messages import log_error +from janis_core.messages import log_message from janis_core.messages import ErrorCategory parsing_error_count = 0 @@ -64,7 +64,7 @@ class WorkflowInputParser(WorkflowEntityParser): def fallback(self) -> InputNodeSelector: # log message msg = f'error parsing {get_id_entity(self.entity.id)}. returned generic optional File input as fallback' - log_error(self.tool_uuid, msg, ErrorCategory.FALLBACK, subsection='inputs') + log_message(self.tool_uuid, msg, ErrorCategory.FALLBACKS, subsection='inputs') # fallback global parsing_error_count @@ -98,7 +98,7 @@ class WorkflowOutputParser(WorkflowEntityParser): def fallback(self) -> OutputNode: # log message msg = f'error parsing {get_id_entity(self.entity.id)}. returned generic File output (and corresponding input) as fallback' - log_error(self.tool_uuid, msg, ErrorCategory.FALLBACK, subsection='outputs') + log_message(self.tool_uuid, msg, ErrorCategory.FALLBACKS, subsection='outputs') # fallback global parsing_error_count @@ -166,16 +166,15 @@ class WorkflowStepInputsParser(WorkflowEntityParser): def fallback(self) -> dict[str, Any]: # log message step_identifier = get_id_entity(self.entity.id) - jstep = self.wf.step_nodes[step_identifier] msg = f"error parsing step inputs" - log_error(self.tool_uuid, msg, ErrorCategory.PLUMBING, subsection=f'step:{jstep.id()}') + log_message(self.tool_uuid, msg, ErrorCategory.PLUMBING, subsection=step_identifier) # fallback return {} def do_parse(self) -> dict[str, Any]: step_identifier = get_id_entity(self.entity.id) - jstep = self.wf.step_nodes[step_identifier] + log_message(self.tool_uuid, 'this is a test', ErrorCategory.FALLBACKS, subsection=step_identifier) # valid_step_inputs = self.get_valid_step_inputs(self.entity, jstep) @@ -183,7 +182,7 @@ def do_parse(self) -> dict[str, Any]: for inp in self.entity.in_: inp_identifier = get_id_entity(inp.id) parser = WorkflowStepInputParser(cwl_utils=self.cwl_utils, entity=inp, wf=self.wf, tool_uuid=self.wf.uuid) - parser.step_name = jstep.id() + parser.step_name = step_identifier source = parser.parse() inputs_dict[inp_identifier] = source @@ -213,7 +212,7 @@ def fallback(self) -> Optional[InputNode | StepOutputSelector]: # log message identifier = get_id_entity(self.entity.id) msg = f"error parsing data source for '{identifier}'. Returned None as fallback." - log_error(self.tool_uuid, msg, ErrorCategory.PLUMBING, subsection=f'step:{self.step_name}') + log_message(self.tool_uuid, msg, ErrorCategory.PLUMBING, subsection=f'step:{self.step_name}') # fallback return None @@ -293,7 +292,7 @@ def fallback(self) -> None: step_identifier = get_id_entity(self.entity.id) jstep = self.wf.step_nodes[step_identifier] msg = 'error parsing step modifiers (scatter | conditional execution). ignored as fallback' - log_error(self.tool_uuid, msg, ErrorCategory.PLUMBING, subsection=f'step:{jstep.id()}') + log_message(self.tool_uuid, msg, ErrorCategory.PLUMBING, subsection=f'step:{jstep.id()}') # fallback return None @@ -339,7 +338,7 @@ def ingest_scatter_method(self, scatter_method: Optional[str]) -> Optional[Scatt elif scatter_method == "nested_crossproduct": msg = 'task parallelisation method was nested crossproduct, but Janis only supports flat crossproduct. Used flat crossproduct as fallback.' - log_error(self.tool_uuid, msg, ErrorCategory.PLUMBING, subsection=f'step:{jstep.id()}') + log_message(self.tool_uuid, msg, ErrorCategory.PLUMBING, subsection=f'step:{jstep.id()}') return ScatterMethod.cross elif scatter_method == "flat_crossproduct": @@ -347,4 +346,4 @@ def ingest_scatter_method(self, scatter_method: Optional[str]) -> Optional[Scatt else: msg = f"Unsupported scatter method '{scatter_method}'. Used flat crossproduct as fallback." - log_error(self.tool_uuid, msg, ErrorCategory.PLUMBING, subsection=f'step:{jstep.id()}') \ No newline at end of file + log_message(self.tool_uuid, msg, ErrorCategory.PLUMBING, subsection=f'step:{jstep.id()}') \ No newline at end of file diff --git a/janis_core/ingestion/cwl/types.py b/janis_core/ingestion/cwl/types.py index b00d099bb..61fda5a81 100644 --- a/janis_core/ingestion/cwl/types.py +++ b/janis_core/ingestion/cwl/types.py @@ -5,7 +5,7 @@ from janis_core.ingestion.cwl.identifiers import get_id_entity from janis_core.messages import ErrorCategory -from janis_core.messages import log_warning +from janis_core.messages import log_message from janis_core.utils.errors import UnsupportedError from janis_core import settings @@ -229,7 +229,7 @@ def file_subtype(self) -> DataType: filetypes.sort(key=lambda x: file_priorities.get(x.__name__, 999)) ftype = filetypes[0] msg = f'{self.entity_name}: supports multiple edam formats. selected {ftype.__name__} as fallback.' - log_warning(self.tool_uuid, msg, ErrorCategory.DATATYPE) + log_message(self.tool_uuid, msg, ErrorCategory.DATATYPES) return ftype() elif len(filetypes) == 1: @@ -280,7 +280,7 @@ def from_cwl_inner_type(self, cwl_type: Any) -> DataType: else: if settings.datatypes.ALLOW_UNPARSEABLE_DATATYPES: msg = f"{self.entity_name}: unsupported datatype {cwl_type}. treated as generic File." - log_warning(self.tool_uuid, msg, ErrorCategory.DATATYPE) + log_message(self.tool_uuid, msg, ErrorCategory.DATATYPES) inner = File() else: raise UnsupportedError(f"can't detect type {cwl_type}") @@ -333,7 +333,7 @@ def from_cwl_inner_type(self, cwl_type: Any) -> DataType: # print user message msg = f'{self.entity_name}: supports multiple datatypes {dtype_names}. selected {selected.__class__.__name__} as fallback.' - log_warning(self.tool_uuid, msg, ErrorCategory.DATATYPE) + log_message(self.tool_uuid, msg, ErrorCategory.DATATYPES) return selected else: @@ -354,7 +354,7 @@ def from_cwl_inner_type(self, cwl_type: Any) -> DataType: else: if settings.datatypes.ALLOW_UNPARSEABLE_DATATYPES: msg = f"{self.entity_name}: unsupported datatype {type(cwl_type).__name__}. Treated as a file." - log_warning(self.tool_uuid, msg, ErrorCategory.DATATYPE) + log_message(self.tool_uuid, msg, ErrorCategory.DATATYPES) return File(optional=False) else: raise UnsupportedError(f"Can't parse type {type(cwl_type).__name__}") @@ -388,7 +388,7 @@ def get_data_type_from_secondaries(self) -> DataType: # raise NotImplementedError # else: msg = f'{self.entity_name}: Could not parse datatype from javascript expression. Treated as generic File with secondaries.' - log_warning(self.tool_uuid, msg, ErrorCategory.DATATYPE) + log_message(self.tool_uuid, msg, ErrorCategory.DATATYPES) return GenericFileWithSecondaries(secondaries=[]) else: diff --git a/janis_core/ingestion/wdl/main.py b/janis_core/ingestion/wdl/main.py index c7439fe8d..3fadc7f99 100755 --- a/janis_core/ingestion/wdl/main.py +++ b/janis_core/ingestion/wdl/main.py @@ -1,5 +1,6 @@ #!/usr/bin/env python3 -from janis_core.messages import log_warning +from janis_core.messages import log_message +from janis_core.messages import ErrorCategory import functools import os @@ -429,7 +430,7 @@ def parse_wdl_type(self, t: WDL.Type.Base, uuid: Optional[str]=None): return j.Array(self.parse_wdl_type(t.item_type, uuid), optional=optional) elif isinstance(t, WDL.Type.StructInstance): if uuid: - log_warning(uuid, 'WDL Struct type unsupported. Has been cast to File type.') + log_message(uuid, 'WDL Struct type unsupported. Has been cast to File type.', ErrorCategory.DATATYPES) return j.File(optional=optional) raise Exception(f"Didn't handle WDL type conversion for '{t}' ({type(t)})") diff --git a/janis_core/ingestion/wdl/parsing/types.py b/janis_core/ingestion/wdl/parsing/types.py index b7b06b31b..f5649c9fd 100644 --- a/janis_core/ingestion/wdl/parsing/types.py +++ b/janis_core/ingestion/wdl/parsing/types.py @@ -4,7 +4,7 @@ import WDL import janis_core as j -from janis_core.messages import log_error +from janis_core.messages import log_message from janis_core.messages import ErrorCategory def parse_type(t: WDL.Type.Base, uuid: Optional[str]=None): @@ -27,7 +27,7 @@ def parse_type(t: WDL.Type.Base, uuid: Optional[str]=None): if not uuid: raise Exception('add uuid here') msg = 'WDL Struct type unsupported. Has been cast to File type.' - log_error(uuid, msg, ErrorCategory.DATATYPE) + log_message(uuid, msg, ErrorCategory.DATATYPES) return j.File(optional=optional) raise Exception(f"Didn't handle WDL type conversion for '{t}' ({type(t)})") \ No newline at end of file diff --git a/janis_core/messages/__init__.py b/janis_core/messages/__init__.py index a59ed36d2..ebbad445f 100644 --- a/janis_core/messages/__init__.py +++ b/janis_core/messages/__init__.py @@ -5,11 +5,13 @@ from .logfile import LogFile from .logfile import LogLine -# functions +# logging functions from .main import configure_logging from .main import info_ingesting_tool from .main import info_ingesting_workflow -from .main import log_info -from .main import log_warning -from .main import log_error -from .main import load_loglines \ No newline at end of file +from .main import log_message + +# injection functions +from .main import load_loglines +from .inject import inject_messages_tool +from .inject import inject_messages_workflow \ No newline at end of file diff --git a/janis_core/messages/enums.py b/janis_core/messages/enums.py index 41c247782..2c6f89f66 100644 --- a/janis_core/messages/enums.py +++ b/janis_core/messages/enums.py @@ -1,16 +1,31 @@ from enum import Enum -class ErrorLevel(Enum): - INFO = 'INFO' - WARNING = 'WARNING' - ERROR = 'ERROR' class ErrorCategory(Enum): - SCRIPT = 'SCRIPT' - DATATYPE = 'DATATYPE' - PLUMBING = 'PLUMBING' - VERSION = 'VERSION' - FALLBACK = 'FALLBACK' - EXPERIMENTAL = 'EXPERIMENTAL' - FATAL = 'FATAL' \ No newline at end of file + DATATYPES = ('WARNING','DATATYPES') + PLUMBING = ('WARNING','PLUMBING') + METADATA = ('WARNING','METADATA') + EXPERIMENTAL = ('WARNING','EXPERIMENTAL') + FALLBACKS = ('ERROR','FALLBACKS') + SCRIPTING = ('ERROR','SCRIPTING') + FATAL = ('ERROR','FATAL') + + @staticmethod + def from_str(category: str): + if category == "DATATYPES": + return ErrorCategory.DATATYPES + if category == "PLUMBING": + return ErrorCategory.PLUMBING + if category == "METADATA": + return ErrorCategory.METADATA + if category == "EXPERIMENTAL": + return ErrorCategory.EXPERIMENTAL + if category == "FALLBACKS": + return ErrorCategory.FALLBACKS + if category == "SCRIPTING": + return ErrorCategory.SCRIPTING + if category == "FATAL": + return ErrorCategory.FATAL + raise ValueError(f"Unknown ErrorCategory: {category}") + \ No newline at end of file diff --git a/janis_core/messages/inject.py b/janis_core/messages/inject.py new file mode 100644 index 000000000..3757d8ce5 --- /dev/null +++ b/janis_core/messages/inject.py @@ -0,0 +1,288 @@ + +from __future__ import annotations +from typing import TYPE_CHECKING +if TYPE_CHECKING: + from janis_core import CommandToolBuilder, CodeTool, WorkflowBuilder + +from Levenshtein import distance as levenshtein_distance +import regex as re +from typing import Optional, Any, Tuple + +from janis_core import settings +from .logfile import ErrorCategory +from .main import load_loglines + +### COMMENTERS ### + +commenter_map = { + 'nextflow': '//', + 'cwl': '#', + 'wdl': '#', +} + +### PUBLIC ### + +def inject_messages_tool(internal: CommandToolBuilder | CodeTool, translated: str) -> str: + """ + Injects messages into the translated workflow file. + Messages need to be logged during ingest to use this feature. + + When logging messages during ingest you need to provide the unique tool_uuid. + This enables the right messages to be written to the right output files. + Examples: + log_message(tool.uuid, msg=="couldn't parse datatype...", category=ErrorCategory.DATATYPE) + + """ + messages = _gen_block(internal, translated) + if messages: + translated = messages + '\n\n' + translated + return translated + +def inject_messages_workflow(internal: WorkflowBuilder, translated: str) -> str: + """ + Injects messages into the translated workflow file. + Default behaviour is to dump workflow messages at the top of the file, and step specific + messages above the relevant step call. + + If split_categories=True, the messages at the top of the file are split into sections based on their category. + There are three main sections - general, inputs, outputs. + If you want to use this feature, make sure the ingest unit is providing the subsection=[section] argument + when logging messages. Eg: + log_message(tool_uuid, msg, category, subsection='general') + log_message(tool_uuid, msg, category, subsection='inputs') + log_message(tool_uuid, msg, category, subsection='outputs') + + Relies on workflow step names being almost equivalent to the step call in the translated file. + """ + if settings.messages.USE_SUBSECTIONS: + translated = _inject_workflow_header_messages_subsections(internal, translated) + else: + translated = _inject_workflow_header_messages_default(internal, translated) + translated = _inject_workflow_step_messages(internal, translated) + return translated + + +### PRIVATE ### + +def _inject_workflow_header_messages_default(internal: WorkflowBuilder, translated: str) -> str: + messages = _gen_block(internal, translated, subsections=[None, 'general', 'inputs', 'outputs']) + if messages: + translated = messages + '\n\n' + translated + return translated + +def _inject_workflow_header_messages_subsections(internal: WorkflowBuilder, translated: str) -> str: + general = _gen_block(internal, translated, heading='general', subsections=['general']) + inputs = _gen_block(internal, translated, heading='inputs', subsections=['inputs']) + outputs = _gen_block(internal, translated, heading='outputs', subsections=['outputs']) + messages = '\n\n'.join([x for x in [general, inputs, outputs] if x is not None]) + if messages: + translated = messages + '\n\n' + translated + return translated + +def _inject_workflow_step_messages(internal: WorkflowBuilder, translated: str) -> str: + """ + This is horrendous. + For each step: + - get messages + - if messages, find step call + - if found, get indent + - inject message block above step call with correct indent + """ + + for sname in internal.step_nodes.keys(): + # get message block for this step if step has messages + messages = _gen_block(internal, translated, subsections=[sname]) + if not messages: + continue + + # get step location in translated text + loc = _get_step_loc(sname, translated) + if loc is None: + raise NotImplementedError + + # get indent for the step call - awful in general + indent = translated[:loc].split('\n')[-1] + lines = messages.split('\n') + first = lines[0] + other = [indent + ln for ln in lines[1:]] + lines = [first] + other + messages = '\n'.join(lines) + + # inject message block above step call with correct indent + translated = translated[:loc] + messages + '\n' + indent + translated[loc:] + + return translated + +def _get_step_loc(step_name: str, translated: str) -> Optional[int]: + + # get loc, step call name for all step calls in translated text + if settings.translate.DEST == 'cwl': + matches = _get_step_call_starts_cwl(translated) + elif settings.translate.DEST == 'nextflow': + matches = _get_step_call_starts_nextflow(translated) + elif settings.translate.DEST == 'wdl': + matches = _get_step_call_starts_wdl(translated) + else: + raise NotImplementedError(f'No step location pattern for {settings.translate.DEST}') + + # select the correct step call from the list of step calls + # need to standardise the step name and call name to properly compare. + step_symbol = _standardise_symbol(step_name) + best_score, best_loc = 999, None + for loc, call_symbol in matches: + call_symbol = _standardise_symbol(call_symbol) + score = levenshtein_distance(step_symbol, call_symbol) + if score < best_score: + best_score = score + best_loc = loc + return best_loc + +def _standardise_symbol(symbol: str) -> str: + return symbol.replace('_', '').replace('-', '').upper() + +def _get_step_call_starts_cwl(translated: str) -> list[Tuple[int, str]]: + # gather things which look like entity names + # [ \t]+ included to get the location for the start of the line. + PATTERN_FMT1 = r'(?<!(in:|out:|run:|requirements:|hints:|label:|doc:|scatter:|scatterMethod:)[\s]+)[ \t]*- ?id: ?([\w]+)[ \t]*\n' + PATTERN_FMT2 = r'[ \t]+-? ?(?!in:|out:|run:|requirements:|hints:|label:|doc:|scatter:|scatterMethod:)([\w]+:[ \t]*\n)' + PATTERN = f'{PATTERN_FMT1}|{PATTERN_FMT2}' + step_call_matches = re.finditer(PATTERN, translated) + + # find where the steps section is + PATTERN = r'steps:[\s\S]*?(?=outputs:|inputs:|$)' + step_sec_match = list(re.finditer(PATTERN, translated))[0] + steps_start, steps_end = step_sec_match.start(), step_sec_match.end() + + # filter to entity name matches in the steps section + out = [] + for m in step_call_matches: + if m.start() > steps_start and m.end() < steps_end: + if m.group(2) is not None: + name = m.group(2) + elif m.group(3) is not None: + name = m.group(3) + else: + raise RuntimeError('No group found') + # line start and correct group for each match + out.append((m.start(), name)) + return out + +def _get_step_call_starts_nextflow(translated: str) -> list[Tuple[int, str]]: + # this is weak compared to CWL + # [ \t]+ included to get the location for the start of the line. + PATTERN = r'[ \t]+([A-Z_]+)\(' + matches = re.finditer(PATTERN, translated) + + # return the line start and correct group for each match + return [(m.start(), m.group(1)) for m in matches] + +def _get_step_call_starts_wdl(translated: str) -> list[Tuple[int, str]]: + # [ \t]+ included to get the location for the start of the line. + PATTERN = r'[ \t]+call ([\w.]+)( as ([\w.]+))? ?{' + matches = re.finditer(PATTERN, translated) + + # get the line start and correct group for each match + out = [] + for m in matches: + if len(m.groups()) == 3: + # if there is an 'as' clause, use what follows the 'as' clause + name = m.group(3) + out.append((m.start(), name)) + else: + name = m.group(1) + if '.' in name: + # handling "call reports.align_and_count_summary {" case + name = name.split('.')[-1] + out.append((m.start(), name)) + return out + +def _gen_block( + internal: WorkflowBuilder| CommandToolBuilder | CodeTool, + translated: str, + heading: Optional[str]=None, + subsections: Optional[list[Any]]=None + ) -> Optional[str]: + + # TODO HERE USE THESE FORMATS INSTEAD ---- + # Tool / Workflow default: + + ### MESSAGES ### + + # [WARNING][DATATYPES] test message1 + # [WARNING][METADATA] test message2 + # [WARNING][EXPERIMENTAL] test message4 + # [ERROR][FALLBACKS] test message3 + + # UNTRANSLATED EXPRESSIONS + # __TOKEN1__ = 'hello' + + # Workflow split: + + ### MESSAGES ### + + # GENERAL + # [WARNING][DATATYPES] test message1 + + # INPUTS + # [WARNING][METADATA] test message2 + + # OUTPUTS + # [ERROR][FALLBACKS] test message3 + + # UNTRANSLATED EXPRESSIONS + # __TOKEN1__ = 'hello' + + # text for this block + components = _gen_block_components(internal, translated, subsections) + if components: + # add extra component (the heading) for this block when using subsections + commenter = commenter_map[settings.translate.DEST] + if heading is not None: + if commenter == '#': + heading = f'### {heading.upper()} ###' + else: + heading = f'{commenter} ### {heading.upper()} ###' + components = [heading] + components + return '\n\n'.join(components) + return None + +def _gen_block_components( + internal: WorkflowBuilder| CommandToolBuilder | CodeTool, + translated: str, + subsections: Optional[list[Any]]=None + ) -> list[str]: + + components: list[str] = [] + commenter = commenter_map[settings.translate.DEST] + + for cat in ErrorCategory: + # we do this later - its weird. + if cat == ErrorCategory.SCRIPTING: + continue + loglines = load_loglines(category=cat, tool_uuid=internal.uuid, subsections=subsections) + if loglines: + lines = [f'{commenter} [{cat.value[0]}][{cat.value[1]}] {x.message}\n' for x in loglines] + components.append('\n'.join(lines)) + + cat = ErrorCategory.SCRIPTING + loglines = load_loglines(category=cat, tool_uuid=internal.uuid, subsections=subsections) + if loglines: + messages = [x.message for x in loglines] + + # filter to messages where __TOKEN__ still is in the process text + filtered = [] + for msg in messages: + token = msg.split(' = ', 1)[0] + if token in translated: + filtered.append(msg) + if filtered: + header = f'{commenter} UNTRANSLATED EXPRESSIONS' + # have to add comment for cwl otherwise invalid syntax. + if settings.translate.DEST == 'cwl': + filtered = [f'{commenter} {msg}' for msg in filtered] + component = '\n'.join([header] + filtered) + components.append(component) + + return components + + diff --git a/janis_core/messages/logfile.py b/janis_core/messages/logfile.py index 94b8781bc..f1b33be08 100644 --- a/janis_core/messages/logfile.py +++ b/janis_core/messages/logfile.py @@ -2,22 +2,22 @@ from typing import Optional from pathlib import Path from dataclasses import dataclass -from .enums import ErrorLevel from .enums import ErrorCategory @dataclass class LogLine: - level: ErrorLevel message: str category: Optional[ErrorCategory] tool_uuid: Optional[str] subsection: Optional[str] def __str__(self) -> str: - level = self.level.value - category = self.category.value if self.category is not None else None - return f'{level}\t{category}\t{self.tool_uuid}\t{self.subsection}\t{self.message}' + if self.category is not None: + level, cat = self.category.value + else: + level, cat = None, None + return f'{level}\t{cat}\t{self.tool_uuid}\t{self.subsection}\t{self.message}' class LogFile: @@ -28,7 +28,6 @@ def __init__(self, filepath: str): def add( self, - level: ErrorLevel, category: Optional[ErrorCategory], tool_uuid: Optional[str], msg: str, @@ -41,7 +40,6 @@ def add( # create logline logline = LogLine( - level=level, message=message, category=category, tool_uuid=tool_uuid, @@ -70,10 +68,12 @@ def load(self) -> None: def string_to_logline(self, line: str) -> LogLine: str_level, str_cat, str_tool_uuid, str_subsection, str_message = line.strip('\n').split('\t') - level = ErrorLevel(str_level) - category = None if str_cat == 'None' else ErrorCategory(str_cat) + if str_cat == 'None': + category = None + else: + category = ErrorCategory.from_str(str_cat) tool_uuid = None if str_tool_uuid == 'None' else str_tool_uuid subsection = None if str_subsection == 'None' else str_subsection - return LogLine(level, str_message, category, tool_uuid, subsection) + return LogLine(str_message, category, tool_uuid, subsection) \ No newline at end of file diff --git a/janis_core/messages/main.py b/janis_core/messages/main.py index 30d501c32..f4e90faaa 100644 --- a/janis_core/messages/main.py +++ b/janis_core/messages/main.py @@ -3,10 +3,9 @@ from logging import getLogger, config from .logfile import LogFile from .logfile import LogLine -from .enums import ErrorLevel from .enums import ErrorCategory -from typing import Optional +from typing import Optional, Any import os import warnings import yaml @@ -89,7 +88,7 @@ def info_ingesting_tool(spec: str, name: str) -> None: # to file # ------- -def _log_message(level: ErrorLevel, category: Optional[ErrorCategory], msg: str, tool_uuid: Optional[str], subsection: Optional[str]) -> None: +def log_message(entity_uuid: Optional[str], msg: str, category: ErrorCategory, subsection: Any=None) -> None: logfile = LogFile(MESSAGE_LOG_PATH) # if no uuid provided, consider this a general message provided during ingestion / translation. # these messages can be shown to the user at the top of the main parsed file (ie the main workflow / tool), @@ -97,45 +96,33 @@ def _log_message(level: ErrorLevel, category: Optional[ErrorCategory], msg: str, # check the same message isn't already present for ll in logfile.lines: - if ll.category == category and ll.message == msg and ll.tool_uuid == tool_uuid and ll.subsection == subsection: + if ll.category == category and ll.message == msg and ll.tool_uuid == entity_uuid and ll.subsection == subsection: return # log the new message - if tool_uuid is None: - tool_uuid = 'general' - logfile.add(level=level, tool_uuid=tool_uuid, category=category, msg=msg, subsection=subsection) - -def log_info(msg: str) -> None: - """logs a message which is considered INFO to the logfile""" - _log_message(ErrorLevel.INFO, tool_uuid=None, category=None, msg=msg, subsection=None) - -def log_warning(tool_uuid: str, msg: str, category: ErrorCategory, subsection: Optional[str]=None) -> None: - """logs a message which is considered a WARNING to the logfile""" - _log_message(ErrorLevel.WARNING, tool_uuid=tool_uuid, category=category, msg=msg, subsection=subsection) - -def log_error(tool_uuid: str, msg: str, category: ErrorCategory, subsection: Optional[str]=None) -> None: - """logs a message which is considered an ERROR to the logfile""" - _log_message(ErrorLevel.ERROR, tool_uuid=tool_uuid, category=category, msg=msg, subsection=subsection) + if entity_uuid is None: + entity_uuid = 'general' + logfile.add(tool_uuid=entity_uuid, category=category, msg=msg, subsection=subsection) def load_loglines( - level: Optional[ErrorLevel]=None, - category: Optional[ErrorCategory]=None, - tool_uuid: Optional[str]=None, - subsection: Optional[str]=None + category: Optional[ErrorCategory]|bool=False, + tool_uuid: Optional[str]|bool=False, + subsections: Optional[list[Any]]=None, ) -> list[LogLine]: + # Type hinting ugly as hell + # Trying to express that None can be provided alongside an actual value. + # If None, specifically filters for loglines where the attribute is None. logfile = LogFile(MESSAGE_LOG_PATH) loglines = logfile.lines # filters - if level is not None: - loglines = [x for x in loglines if x.level.value == level.value] - if category is not None: - loglines = [x for x in loglines if x.category is not None and x.category.value == category.value] - if tool_uuid is not None: + if category != False: + loglines = [x for x in loglines if x.category.value == category.value] + if tool_uuid != False: loglines = [x for x in loglines if x.tool_uuid == tool_uuid] - if subsection is not None: - loglines = [x for x in loglines if x.subsection == subsection] + if isinstance(subsections, list): + loglines = [x for x in loglines if x.subsection in subsections] return loglines diff --git a/janis_core/settings/__init__.py b/janis_core/settings/__init__.py index fef40f2c6..86e7891a7 100644 --- a/janis_core/settings/__init__.py +++ b/janis_core/settings/__init__.py @@ -2,6 +2,7 @@ # TODO following line is bad from .translate import general +from . import messages from . import ingest from . import translate from . import testing diff --git a/janis_core/settings/messages.py b/janis_core/settings/messages.py new file mode 100644 index 000000000..05f2454d4 --- /dev/null +++ b/janis_core/settings/messages.py @@ -0,0 +1,3 @@ + + +USE_SUBSECTIONS: bool = True # whether to output messages in subsections (general, inputs, outputs) at top of translated workflow file \ No newline at end of file diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/config b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/config deleted file mode 100644 index 0c2b5e1f1..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/config +++ /dev/null @@ -1,14 +0,0 @@ -docker.enabled = true - -params { - - // OUTPUT DIRECTORY - outdir = './outputs' - - // INPUTS - input = null - destination = null - output = null - - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/main.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/main.nf index e40b3746c..65362c3ef 100644 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/main.nf +++ b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/main.nf @@ -1,883 +1,24 @@ nextflow.enable.dsl=2 -include { ADD_CROSSMAPPED_TO_RESMAPPED } from './modules/add_crossmapped_to_resmapped' -include { ALIGN_AVG_STRUCTS_PAIRWISE } from './modules/align_avg_structs_pairwise' -include { CATH_DOMAIN_INSTANCES } from './subworkflows/cath_domain_instances' -include { CHECK_ALIGNMENT_SCORES } from './modules/check_alignment_scores' -include { CHOP_AND_AVG_FOR_CATH2PFAM } from './subworkflows/chop_and_avg_for_CATH2Pfam' -include { CHOP_AND_AVG_FOR_PFAM2_CATH } from './subworkflows/chop_and_avg_for_Pfam2CATH' -include { CHOP_AND_AVG_FOR_CORE } from './subworkflows/chop_and_avg_for_core' -include { COMPARE_INSTANCES_CATH_PFAM } from './modules/compare_instances_CATH_Pfam' -include { CREATE_NEW_PARAMETERS } from './modules/create_new_parameters' -include { CROSSMAPPING_CATH2PFAM } from './modules/crossmapping_CATH2Pfam' -include { CROSSMAPPING_PFAM2_CATH } from './modules/crossmapping_Pfam2CATH' -include { FORMAT_CORE_LIST } from './modules/format_core_list' -include { GATHER_DOMAIN_LIKE } from './modules/gather_domain_like' -include { GATHER_FAILED_DOMAINS } from './modules/gather_failed_domains' -include { GET_FAMILY_IDS } from './modules/get_family_ids' -include { PFAM_DOMAIN_INSTANCES } from './subworkflows/pfam_domain_instances' -include { UNMAPPED_FROM_CATH } from './subworkflows/unmapped_from_cath' -include { UNMAPPED_FROM_PFAM } from './subworkflows/unmapped_from_pfam' -include { AFTER_QC } from './subworkflows/after_qc' -include { BEFORE_QC } from './subworkflows/before_qc' -include { TOUCH_FILE_FLAG } from './modules/touch_file_flag' -include { TOUCH_NO_CDS_FLAG } from './modules/touch_no_cds_flag' -include { NGTAX } from './modules/ngtax' -include { CARVEME } from './modules/carveme' -include { CARVEME_FILES_TO_FOLDER } from './modules/carveme_files_to_folder' -include { COMPRESS_CARVEME } from './modules/compress_carveme' -include { COMPRESS_PRODIGAL } from './modules/compress_prodigal' -include { GEMSTATS } from './modules/gemstats' -include { MEMOTE_FILES_TO_FOLDER } from './modules/memote_files_to_folder' -include { MEMOTE_REPORT_SNAPSHOT } from './modules/memote_report_snapshot' -include { MEMOTE_RUN } from './modules/memote_run' -include { PRODIGAL } from './modules/prodigal' -include { PRODIGAL_FILES_TO_FOLDER } from './modules/prodigal_files_to_folder' -include { SMETANA } from './modules/smetana' -include { NGTAX_FILES_TO_FOLDER } from './modules/ngtax_files_to_folder' -include { NGTAX_TO_TSV_FASTA } from './modules/ngtax_to_tsv_fasta' -include { PHYLOSEQ_FILES_TO_FOLDER } from './modules/phyloseq_files_to_folder' -include { FASTQC } from './modules/fastqc' -include { FASTQC_FILES_TO_FOLDER } from './modules/fastqc_files_to_folder' -include { READS_TO_FOLDER } from './modules/reads_to_folder' -include { FOLDER_COMPRESSION } from './modules/folder_compression' -include { PICRUST2 } from './modules/picrust2' -include { PICRUST_FILES_TO_FOLDER } from './modules/picrust_files_to_folder' -include { BAM_INDEX } from './modules/bam_index' -include { EXPRESSIONTOOL_BAM_INDEX } from './modules/expressiontool_bam_index' -include { PILON } from './modules/pilon' -include { READMAPPING_PILON } from './modules/readmapping_pilon' -include { SAM_TO_SORTED_BAM } from './modules/sam_to_sorted_bam' -include { VCF_COMPRESS } from './modules/vcf_compress' -include { CONVERSION } from './modules/conversion' -include { GZIP } from './modules/gzip' -include { INTERPROSCAN } from './modules/interproscan' -include { KOFAMSCAN } from './modules/kofamscan' -include { COMPRESS } from './modules/compress' -include { TOHDT } from './modules/tohdt' +include { NGTAX_DEMULTIPLEXING as NGTAX } from './modules/ngtax_demultiplexing' -ch_core_domain_struct = Channel.fromPath( params.core_domain_struct ) -ch_domain_like = Channel.fromPath( params.domain_like ) -ch_failed_domain = Channel.fromPath( params.failed_domain ) -ch_filename = Channel.fromPath( params.filename ) -ch_paramfile = Channel.fromPath( params.paramfile ) -ch_prev_cross_mapped_cath = Channel.fromPath( params.prev_cross_mapped_cath ) -ch_prev_cross_mapped_pfam = Channel.fromPath( params.prev_cross_mapped_pfam ) -ch_true_domain_file = Channel.fromPath( params.true_domain_file ) +// data which will be passed as variables +forward_reads = file( params.forward_reads ) +mapping_file = file( params.mapping_file ) +reverse_reads = file( params.reverse_reads ) -workflow { - ADD_CROSSMAPPED_TO_RESMAPPED( - ch_prev_cross_mapped_cath, - CATH_DOMAIN_INSTANCES.out.cath_domain_posi_file, - ch_prev_cross_mapped_pfam, - PFAM_DOMAIN_INSTANCES.out.pfam_domain_posi_file - ) - - ALIGN_AVG_STRUCTS_PAIRWISE( - CHOP_AND_AVG_FOR_CORE.out.averaged_structs.toList(), - CHOP_AND_AVG_FOR_CATH2PFAM.out.averaged_structs, - CHOP_AND_AVG_FOR_PFAM2_CATH.out.averaged_structs - ) - - CATH_DOMAIN_INSTANCES( - GET_FAMILY_IDS.out.family_ids, - params.cath_lost, - params.min_domain_length, - params.cath_resmap, - params.sifts_dir - ) - - CHECK_ALIGNMENT_SCORES( - ALIGN_AVG_STRUCTS_PAIRWISE.out.alignment_out, - GET_FAMILY_IDS.out.family_ids, - CROSSMAPPING_CATH2PFAM.out.allcrossmap_cath, - CROSSMAPPING_PFAM2_CATH.out.allcrossmap_pfam - ) - - CHOP_AND_AVG_FOR_CATH2PFAM( - CROSSMAPPING_CATH2PFAM.out.cath_crossmapped, - params.pdb_dir - ) - - CHOP_AND_AVG_FOR_PFAM2_CATH( - CROSSMAPPING_PFAM2_CATH.out.pfam_crossmapped, - params.pdb_dir - ) - - CHOP_AND_AVG_FOR_CORE( - FORMAT_CORE_LIST.out.coredomains_list, - params.pdb_dir - ) - - COMPARE_INSTANCES_CATH_PFAM( - CATH_DOMAIN_INSTANCES.out.cath_domain_posi_file, - PFAM_DOMAIN_INSTANCES.out.pfam_domain_posi_file, - ch_true_domain_file - ) - - CREATE_NEW_PARAMETERS( - CHOP_AND_AVG_FOR_CORE.out.averaged_structs, - CHECK_ALIGNMENT_SCORES.out.cath_crossmap_passed, - CHECK_ALIGNMENT_SCORES.out.pfam_crossmap_passed, - GATHER_DOMAIN_LIKE.out.unmapped_list, - GATHER_FAILED_DOMAINS.out.unmapped_list, - GET_FAMILY_IDS.out.family_ids, - ch_paramfile, - COMPARE_INSTANCES_CATH_PFAM.out.common_domains - ) - - CROSSMAPPING_CATH2PFAM( - COMPARE_INSTANCES_CATH_PFAM.out.cath_unique - ) - - CROSSMAPPING_PFAM2_CATH( - COMPARE_INSTANCES_CATH_PFAM.out.pfam_unique - ) - - FORMAT_CORE_LIST( - COMPARE_INSTANCES_CATH_PFAM.out.common_domains - ) - - GATHER_DOMAIN_LIKE( - UNMAPPED_FROM_CATH.out.domain_like_list, - UNMAPPED_FROM_PFAM.out.domain_like_list, - ch_domain_like - ) - - GATHER_FAILED_DOMAINS( - CHECK_ALIGNMENT_SCORES.out.cath_crossmap_failed, - UNMAPPED_FROM_CATH.out.failed_domains_list, - CHECK_ALIGNMENT_SCORES.out.pfam_crossmap_failed, - UNMAPPED_FROM_PFAM.out.failed_domains_list, - ch_failed_domain - ) - - GET_FAMILY_IDS( - ch_filename - ) - - PFAM_DOMAIN_INSTANCES( - GET_FAMILY_IDS.out.family_ids, - params.pfam_lost, - params.min_domain_length, - params.pfam_resmap, - params.sifts_dir - ) - - UNMAPPED_FROM_CATH( - params.alignment_score, - CHOP_AND_AVG_FOR_CORE.out.averaged_structs, - params.unmap_cath_fail, - params.iteration, - params.unmap_cath_pass, - params.pdb_dir, - params.score_threshold, - CROSSMAPPING_CATH2PFAM.out.cath_unmapped - ) - - UNMAPPED_FROM_PFAM( - params.alignment_score, - CHOP_AND_AVG_FOR_CORE.out.averaged_structs, - params.unmap_pfam_fail, - params.iteration, - params.unmap_pfam_pass, - params.pdb_dir, - params.score_threshold, - CROSSMAPPING_PFAM2_CATH.out.pfam_unmapped - ) - - -} - - -ch_forward_reads = Channel.fromPath( params.forward_reads ).ifEmpty( null ) -ch_reverse_reads = Channel.fromPath( params.reverse_reads ).ifEmpty( null ) -ch_single_reads = Channel.fromPath( params.single_reads ).ifEmpty( null ) -ch_itsonedb = Channel.fromPath( params.itsonedb ).toList() -ch_lsu_db = Channel.fromPath( params.lsu_db ).toList() -ch_ssu_db = Channel.fromPath( params.ssu_db ).toList() -ch_unite_db = Channel.fromPath( params.unite_db ).toList() - - -workflow { - - AFTER_QC( - params.5.8s_pattern, - params.5s_pattern, - BEFORE_QC.out.filtered_fasta, - ch_itsonedb, - params.itsonedb_label, - params.itsonedb_otu_file, - params.itsonedb_tax, - ch_lsu_db, - params.lsu_label, - params.lsu_otus, - params.lsu_tax, - params.rfam_model_clans, - params.rfam_models, - ch_ssu_db, - params.ssu_label, - params.ssu_otus, - params.ssu_tax, - ch_unite_db, - params.unite_label, - params.unite_otu_file, - params.unite_tax - ) - - BEFORE_QC( - params.qc_min_length, - params.stats_file_name, - ch_forward_reads, - ch_reverse_reads, - ch_single_reads - ) - - TOUCH_FILE_FLAG() - - -} - - -ch_contigs = Channel.fromPath( params.contigs ) -ch_lsu_db = Channel.fromPath( params.lsu_db ).toList() -ch_ssu_db = Channel.fromPath( params.ssu_db ).toList() - - -workflow { - - AFTER_QC( - params.5.8s_pattern, - params.5s_pattern, - params.cgc_config, - params.cgc_postfixes, - params.egg_nog_data_dir, - params.egg_nog_db, - params.egg_nog_diamond_db, - params.hmm_gathering_bit_score, - params.hmm_name_database, - params.hmm_omit_alignment, - params.inter_pro_scan_applications, - params.inter_pro_scan_databases, - params.inter_pro_scan_output_format, - params.uniref90_db_txt, - params.cgc_chunk_size, - params.clusters_glossary, - params.diamond_database_file, - params.diamond_header, - params.diamond_max_target_seqs, - BEFORE_QC.out.filtered_fasta, - params.func_ann_names_hmmer, - params.func_ann_names_ips, - params.go_config, - params.gp_flatfiles_path, - params.graphs, - params.hmmsearch_header, - params.ips_header, - params.ko_file, - ch_lsu_db, - params.lsu_label, - params.lsu_otus, - params.lsu_tax, - params.other_ncrna_models, - params.pathways_classes, - params.pathways_names, - params.protein_chunk_size_ips, - params.protein_chunk_size_eggnog, - params.protein_chunk_size_hmm, - params.rfam_model_clans, - params.rfam_models, - ch_ssu_db, - params.ssu_label, - params.ssu_otus, - params.ssu_tax - ) - - AFTER_QC( - params.5.8s_pattern, - params.5s_pattern, - params.cgc_config, - params.cgc_postfixes, - params.egg_nog_data_dir, - params.egg_nog_db, - params.egg_nog_diamond_db, - params.hmm_gathering_bit_score, - params.hmm_name_database, - params.hmm_omit_alignment, - params.inter_pro_scan_applications, - params.inter_pro_scan_databases, - params.inter_pro_scan_output_format, - params.uniref90_db_txt, - params.cgc_chunk_size, - params.clusters_glossary, - params.diamond_database_file, - params.diamond_header, - params.diamond_max_target_seqs, - BEFORE_QC.out.filtered_fasta, - params.func_ann_names_hmmer, - params.func_ann_names_ips, - params.go_config, - params.gp_flatfiles_path, - params.graphs, - params.hmmsearch_header, - params.ips_header, - params.ko_file, - ch_lsu_db, - params.lsu_label, - params.lsu_otus, - params.lsu_tax, - params.other_ncrna_models, - params.pathways_classes, - params.pathways_names, - params.protein_chunk_size_ips, - params.protein_chunk_size_eggnog, - params.protein_chunk_size_hmm, - params.rfam_model_clans, - params.rfam_models, - ch_ssu_db, - params.ssu_label, - params.ssu_otus, - params.ssu_tax - ) - - BEFORE_QC( - params.contig_min_length, - ch_contigs - ) - - BEFORE_QC( - params.contig_min_length, - ch_contigs - ) - - TOUCH_FILE_FLAG() - - TOUCH_FILE_FLAG() - - TOUCH_NO_CDS_FLAG() - - -} - - -ch_forward_reads = Channel.fromPath( params.forward_reads ).ifEmpty( null ) -ch_reverse_reads = Channel.fromPath( params.reverse_reads ).ifEmpty( null ) -ch_single_reads = Channel.fromPath( params.single_reads ).ifEmpty( null ) -ch_egg_nog_data_dir = Channel.of( params.egg_nog_data_dir ).ifEmpty( null ) -ch_egg_nog_db = Channel.of( params.egg_nog_db ).ifEmpty( null ) -ch_egg_nog_diamond_db = Channel.of( params.egg_nog_diamond_db ).ifEmpty( null ) -ch_lsu_db = Channel.fromPath( params.lsu_db ).toList() -ch_ssu_db = Channel.fromPath( params.ssu_db ).toList() - - -workflow { - - AFTER_QC( - params.5.8s_pattern, - params.5s_pattern, - params.cgc_config, - params.cgc_postfixes, - params.hmm_gathering_bit_score, - params.hmm_name_database, - params.hmm_omit_alignment, - params.inter_pro_scan_applications, - params.inter_pro_scan_databases, - params.inter_pro_scan_output_format, - params.cgc_chunk_size, - BEFORE_QC.out.filtered_fasta, - params.func_ann_names_hmmer, - params.func_ann_names_ips, - params.go_config, - params.hmmsearch_header, - params.ips_header, - params.ko_file, - ch_lsu_db, - params.lsu_label, - params.lsu_otus, - params.lsu_tax, - BEFORE_QC.out.motus_input, - params.other_ncrna_models, - params.protein_chunk_size_ips, - params.protein_chunk_size_hmm, - params.rfam_model_clans, - params.rfam_models, - ch_ssu_db, - params.ssu_label, - params.ssu_otus, - params.ssu_tax, - ch_egg_nog_data_dir, - ch_egg_nog_db, - ch_egg_nog_diamond_db - ) - - AFTER_QC( - params.5.8s_pattern, - params.5s_pattern, - params.cgc_config, - params.cgc_postfixes, - params.hmm_gathering_bit_score, - params.hmm_name_database, - params.hmm_omit_alignment, - params.inter_pro_scan_applications, - params.inter_pro_scan_databases, - params.inter_pro_scan_output_format, - params.cgc_chunk_size, - BEFORE_QC.out.filtered_fasta, - params.func_ann_names_hmmer, - params.func_ann_names_ips, - params.go_config, - params.hmmsearch_header, - params.ips_header, - params.ko_file, - ch_lsu_db, - params.lsu_label, - params.lsu_otus, - params.lsu_tax, - BEFORE_QC.out.motus_input, - params.other_ncrna_models, - params.protein_chunk_size_ips, - params.protein_chunk_size_hmm, - params.rfam_model_clans, - params.rfam_models, - ch_ssu_db, - params.ssu_label, - params.ssu_otus, - params.ssu_tax, - ch_egg_nog_data_dir, - ch_egg_nog_db, - ch_egg_nog_diamond_db - ) - - AFTER_QC( - params.5.8s_pattern, - params.5s_pattern, - params.cgc_config, - params.cgc_postfixes, - params.hmm_gathering_bit_score, - params.hmm_name_database, - params.hmm_omit_alignment, - params.inter_pro_scan_applications, - params.inter_pro_scan_databases, - params.inter_pro_scan_output_format, - params.cgc_chunk_size, - BEFORE_QC.out.filtered_fasta, - params.func_ann_names_hmmer, - params.func_ann_names_ips, - params.go_config, - params.hmmsearch_header, - params.ips_header, - params.ko_file, - ch_lsu_db, - params.lsu_label, - params.lsu_otus, - params.lsu_tax, - BEFORE_QC.out.motus_input, - params.other_ncrna_models, - params.protein_chunk_size_ips, - params.protein_chunk_size_hmm, - params.rfam_model_clans, - params.rfam_models, - ch_ssu_db, - params.ssu_label, - params.ssu_otus, - params.ssu_tax, - ch_egg_nog_data_dir, - ch_egg_nog_db, - ch_egg_nog_diamond_db - ) - - BEFORE_QC( - params.qc_min_length, - ch_forward_reads, - ch_reverse_reads, - ch_single_reads - ) - - BEFORE_QC( - params.qc_min_length, - ch_forward_reads, - ch_reverse_reads, - ch_single_reads - ) - - BEFORE_QC( - params.qc_min_length, - ch_forward_reads, - ch_reverse_reads, - ch_single_reads - ) - - TOUCH_FILE_FLAG() - - TOUCH_FILE_FLAG() - - TOUCH_FILE_FLAG() - - TOUCH_NO_CDS_FLAG() - - TOUCH_NO_CDS_FLAG() - - -} - - -ch_forward_reads = Channel.fromPath( params.forward_reads ) -ch_mapping_file = Channel.fromPath( params.mapping_file ) -ch_reverse_reads = Channel.fromPath( params.reverse_reads ) - - -workflow { - - NGTAX( - ch_forward_reads, - ch_mapping_file, - ch_reverse_reads - ) - - -} - - -ch_mediadb = Channel.fromPath( params.mediadb ).ifEmpty( null ) -ch_bins = Channel.fromPath( params.bins ).toList() - - -workflow { - - CARVEME( - PRODIGAL.out.predicted_proteins_faa, - ch_mediadb - ) - - CARVEME_FILES_TO_FOLDER( - COMPRESS_CARVEME.out.outfile.toList() - ) - - COMPRESS_CARVEME( - CARVEME.out.carveme_gem - ) - - COMPRESS_PRODIGAL( - PRODIGAL.out.predicted_proteins_faa - ) - - GEMSTATS( - CARVEME.out.carveme_gem.toList() - ) - - MEMOTE_FILES_TO_FOLDER( - MEMOTE_REPORT_SNAPSHOT.out.report_html.toList() - ) - - MEMOTE_REPORT_SNAPSHOT( - CARVEME.out.carveme_gem - ) - - MEMOTE_RUN( - CARVEME.out.carveme_gem - ) - - PRODIGAL( - ch_bins.flatten().first() - ) - - PRODIGAL_FILES_TO_FOLDER( - COMPRESS_PRODIGAL.out.outfile.toList() - ) - - SMETANA( - CARVEME.out.carveme_gem.toList() - ) - - -} - - -ch_metadata = Channel.fromPath( params.metadata ).ifEmpty( null ) - - -workflow { - - NGTAX() - - NGTAX() - - NGTAX_FILES_TO_FOLDER( - NGTAX.out.biom.toList() - ) - - NGTAX_TO_TSV_FASTA( - NGTAX.out.turtle, - ch_metadata - ) - - PHYLOSEQ_FILES_TO_FOLDER( - NGTAX_TO_TSV_FASTA.out.physeq_asv.toList() - ) - - -} - - -ch_metadata = Channel.fromPath( params.metadata ).ifEmpty( null ) -ch_reference_db = Channel.fromPath( params.reference_db ).ifEmpty( null ) -ch_reverse_reads = Channel.fromPath( params.reverse_reads ).ifEmpty( null ) -ch_forward_reads = Channel.fromPath( params.forward_reads ) - - -workflow { - - FASTQC( - ch_forward_reads.toList() - ) - - FASTQC_FILES_TO_FOLDER( - FASTQC.out.html_files - ) - - NGTAX( - ch_reference_db, - READS_TO_FOLDER.out.results - ) - - NGTAX( - ch_reference_db, - READS_TO_FOLDER.out.results - ) - - NGTAX( - ch_reference_db, - READS_TO_FOLDER.out.results - ) - - NGTAX_FILES_TO_FOLDER( - NGTAX.out.biom.toList() - ) - - NGTAX_FILES_TO_FOLDER( - NGTAX.out.biom.toList() - ) - - NGTAX_TO_TSV_FASTA( - NGTAX.out.turtle, - ch_metadata - ) - - NGTAX_TO_TSV_FASTA( - NGTAX.out.turtle, - ch_metadata - ) - - PHYLOSEQ_FILES_TO_FOLDER( - NGTAX_TO_TSV_FASTA.out.physeq_asv.toList() - ) - - PHYLOSEQ_FILES_TO_FOLDER( - NGTAX_TO_TSV_FASTA.out.physeq_asv.toList() - ) - - READS_TO_FOLDER( - ch_forward_reads.toList() - ) - - -} - - -ch_metadata = Channel.fromPath( params.metadata ).ifEmpty( null ) -ch_reference_db = Channel.fromPath( params.reference_db ).ifEmpty( null ) -ch_reverse_reads = Channel.fromPath( params.reverse_reads ).ifEmpty( null ) -ch_forward_reads = Channel.fromPath( params.forward_reads ) - - -workflow { - - FASTQC( - ch_forward_reads.toList() - ) - - FASTQC( - ch_forward_reads.toList() - ) - - FASTQC_FILES_TO_FOLDER( - FASTQC.out.html_files - ) - - FASTQC_FILES_TO_FOLDER( - FASTQC.out.html_files - ) - - FOLDER_COMPRESSION( - PICRUST2.out.intermediate - ) - - NGTAX( - ch_reference_db, - READS_TO_FOLDER.out.results - ) +workflow { + // ERROR: PARSING FALLBACKS + // this is a test NGTAX( - ch_reference_db, - READS_TO_FOLDER.out.results - ) - - NGTAX( - ch_reference_db, - READS_TO_FOLDER.out.results - ) - - NGTAX( - ch_reference_db, - READS_TO_FOLDER.out.results - ) - - NGTAX_FILES_TO_FOLDER( - NGTAX.out.biom.toList() - ) - - NGTAX_FILES_TO_FOLDER( - NGTAX.out.biom.toList() - ) - - NGTAX_FILES_TO_FOLDER( - NGTAX.out.biom.toList() - ) - - NGTAX_TO_TSV_FASTA( - NGTAX.out.turtle, - ch_metadata - ) - - NGTAX_TO_TSV_FASTA( - NGTAX.out.turtle, - ch_metadata - ) - - NGTAX_TO_TSV_FASTA( - NGTAX.out.turtle, - ch_metadata - ) - - PHYLOSEQ_FILES_TO_FOLDER( - NGTAX_TO_TSV_FASTA.out.physeq_asv.toList() - ) - - PHYLOSEQ_FILES_TO_FOLDER( - NGTAX_TO_TSV_FASTA.out.physeq_asv.toList() - ) - - PHYLOSEQ_FILES_TO_FOLDER( - NGTAX_TO_TSV_FASTA.out.physeq_asv.toList() - ) - - PICRUST2( - NGTAX_TO_TSV_FASTA.out.picrust_fasta, - NGTAX_TO_TSV_FASTA.out.picrust_tsv - ) - - PICRUST_FILES_TO_FOLDER( - PICRUST2.out.EC_predicted.tsv.gz.toList(), - PICRUST2.out.EC_metagenome_out.toList() - ) - - READS_TO_FOLDER( - ch_forward_reads.toList() - ) - - READS_TO_FOLDER( - ch_forward_reads.toList() - ) - - -} - - -ch_assembly = Channel.fromPath( params.assembly ) -ch_illumina_forward_reads = Channel.fromPath( params.illumina_forward_reads ) -ch_illumina_reverse_reads = Channel.fromPath( params.illumina_reverse_reads ) - - -workflow { - - BAM_INDEX( - SAM_TO_SORTED_BAM.out.sortedbam - ) - - EXPRESSIONTOOL_BAM_INDEX( - SAM_TO_SORTED_BAM.out.sortedbam, - BAM_INDEX.out.bam_index - ) - - PILON( - ch_assembly, - EXPRESSIONTOOL_BAM_INDEX.out.hybrid_bamindex - ) - - READMAPPING_PILON( - ch_illumina_forward_reads, - ch_assembly, - ch_illumina_reverse_reads - ) - - SAM_TO_SORTED_BAM( - READMAPPING_PILON.out.sam - ) - - VCF_COMPRESS( - PILON.out.pilon_vcf - ) - - -} - - -ch_embl = Channel.fromPath( params.embl ) - - -workflow { - - CONVERSION( - ch_embl - ) - - GZIP( - INTERPROSCAN.out.output - ) - - INTERPROSCAN( - KOFAMSCAN.out.output - ) - - KOFAMSCAN( - PRODIGAL.out.output - ) - - PRODIGAL( - CONVERSION.out.output - ) - - PRODIGAL( - CONVERSION.out.output - ) - - -} - - -ch_input = Channel.fromPath( params.input ) - - -workflow { - - COMPRESS( - TOHDT.out.output - ) - - TOHDT( - ch_input + forward_reads, // forward_reads + mapping_file, // mapping_file + reverse_reads, // reverse_reads + params.forward_primer, // forward_primer + params.reverse_primer // reverse_primer ) diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/FGS.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/FGS.nf deleted file mode 100644 index 4f722505e..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/FGS.nf +++ /dev/null @@ -1,58 +0,0 @@ -nextflow.enable.dsl=2 - -process FGS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/cgc/combined_gene_caller/fgs" - - input: - path input_fasta, stageAs: 'input_fasta' - val output - - output: - path "{inputs.output}.faa", emit: predicted_proteins_faa - path "{inputs.output}.ffn", emit: predicted_proteins_ffn - path "{inputs.output}.out", emit: predicted_proteins_out - path "stderr.txt", emit: stderr - stdout, emit: stdout - - script: - """ - run_FGS.sh \ - -i ${input_fasta} \ - -o ${output} \ - -s ${params.after_qc.cgc.combined_gene_caller.fgs_seq_type} \ - 2> stderr.txt \ - > stdout.txt \ - """ - -} - - -process FGS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/cgc/combined_gene_caller/fgs" - - input: - path input_fasta, stageAs: 'input_fasta' - val output - - output: - path "{inputs.output}.faa", emit: predicted_proteins_faa - path "{inputs.output}.ffn", emit: predicted_proteins_ffn - path "{inputs.output}.out", emit: predicted_proteins_out - path "stderr.txt", emit: stderr - stdout, emit: stdout - - script: - """ - run_FGS.sh \ - -i ${input_fasta} \ - -o ${output} \ - -s ${params.after_qc.cgc.combined_gene_caller.fgs_seq_type} \ - 2> stderr.txt \ - > stdout.txt \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/QC_FLAG.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/QC_FLAG.nf deleted file mode 100644 index 6563960cd..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/QC_FLAG.nf +++ /dev/null @@ -1,57 +0,0 @@ -nextflow.enable.dsl=2 - -process QC_FLAG { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/qc_flag" - - input: - val qc_count - - output: - path "QC-*", emit: qc_flag - - script: - """ - touch \ - """ - -} - - -process QC_FLAG { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/qc_flag" - - input: - val qc_count - - output: - path "QC-*", emit: qc_flag - - script: - """ - touch \ - """ - -} - - -process QC_FLAG { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/qc_flag" - - input: - val qc_count - - output: - path "QC-*", emit: qc_flag - - script: - """ - touch \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/add_crossmapped_to_resmapped.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/add_crossmapped_to_resmapped.nf deleted file mode 100644 index 6b63c7b22..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/add_crossmapped_to_resmapped.nf +++ /dev/null @@ -1,33 +0,0 @@ -nextflow.enable.dsl=2 - -process ADD_CROSSMAPPED_TO_RESMAPPED { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/add_crossmapped_to_resmapped" - - input: - path cath_crossmapped, stageAs: 'cath_crossmapped' - path cath_resmapped, stageAs: 'cath_resmapped' - path pfam_crossmapped, stageAs: 'pfam_crossmapped' - path pfam_resmapped, stageAs: 'pfam_resmapped' - - output: - path "<js>${ if (typeof inputs.cath_result === 'string') {return inputs.cath_result} else {return inputs.cath_result.basename}}</js>", emit: cath_structs - path "<js>${ if (typeof inputs.pfam_result === 'string') {return inputs.pfam_result} else {return inputs.pfam_result.basename}}</js>", emit: pfam_structs - - script: - def cath_crossmapped = cath_crossmapped ? "-cx ${cath_crossmapped}" : "" - def cath_resmapped = cath_resmapped ? "-c ${cath_resmapped}" : "" - def pfam_crossmapped = pfam_crossmapped ? "-px ${pfam_crossmapped}" : "" - def pfam_resmapped = pfam_resmapped ? "-p ${pfam_resmapped}" : "" - """ - python3 add_crossmapped2resmapped.py \ - ${pfam_resmapped} \ - ${cath_resmapped} \ - ${pfam_crossmapped} \ - ${cath_crossmapped} \ - -pr pfam_res_crossMapped.csv \ - -cr cath_res_crossMapped.csv \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/add_domain_positions.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/add_domain_positions.nf deleted file mode 100644 index 0327db0b3..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/add_domain_positions.nf +++ /dev/null @@ -1,24 +0,0 @@ -nextflow.enable.dsl=2 - -process ADD_DOMAIN_POSITIONS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/pfam_domain_instances/add_domain_positions" - - input: - path resmapped_files - path dom_posi_file, stageAs: 'dom_posi_file' - - output: - path "<js>${ if (typeof inputs.dom_posi_file === 'string') {return inputs.dom_posi_file} else {return [ inputs.dom_posi_file.basename ]}}</js>", emit: resmapped_domains - - script: - def dom_posi_file = dom_posi_file ? dom_posi_file : resmapped_domains_posi.csv - def resmapped_files = resmapped_files.join(' ') - """ - python3 add_domain_num.py \ - -i ${resmapped_files} \ - -o ${dom_posi_file} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/align_avg_structs_pairwise.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/align_avg_structs_pairwise.nf deleted file mode 100644 index 3d973be59..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/align_avg_structs_pairwise.nf +++ /dev/null @@ -1,28 +0,0 @@ -nextflow.enable.dsl=2 - -process ALIGN_AVG_STRUCTS_PAIRWISE { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/align_avg_structs_pairwise" - - input: - path core_avg - path cath_fam_avg - path pfam_fam_avg - - output: - path "<js>${ if (typeof inputs.result_file === 'string') {return inputs.result_file} else {return [ inputs.result_file.basename]}}</js>", emit: alignment_out - - script: - def cath_fam_avg = cath_fam_avg ? "-c " + cath_fam_avg.join(' ') : "" - def core_avg = core_avg.join(' ') - def pfam_fam_avg = pfam_fam_avg ? "-p " + pfam_fam_avg.join(' ') : "" - """ - python3 pairwise_aligner.py \ - ${cath_fam_avg} \ - ${pfam_fam_avg} \ - -t ${core_avg} \ - -r align_Struct_analysis.csv \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/antismash_gff.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/antismash_gff.nf deleted file mode 100644 index 4a36ca00e..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/antismash_gff.nf +++ /dev/null @@ -1,27 +0,0 @@ -nextflow.enable.dsl=2 - -process ANTISMASH_GFF { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/antismash/chunking/antismash_gff" - - input: - path antismash_embl, stageAs: 'antismash_embl' - path antismash_geneclus, stageAs: 'antismash_geneclus' - val output_name - - output: - path "{inputs.output_name}.bgz", emit: output_gff_bgz - path "{inputs.output_name}.bgz.tbi", emit: output_gff_index - stdout, emit: stdout - - script: - """ - antismash_to_gff.py \ - -e ${antismash_embl} \ - -g ${antismash_geneclus} \ - -o ${output_name} \ - > stdout.txt \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/antismash_summary.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/antismash_summary.nf deleted file mode 100644 index fbe2b13d7..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/antismash_summary.nf +++ /dev/null @@ -1,22 +0,0 @@ -nextflow.enable.dsl=2 - -process ANTISMASH_SUMMARY { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/antismash/chunking/antismash_summary" - - input: - path geneclusters, stageAs: 'geneclusters' - val glossary - - output: - path "geneclusters-summary.txt", emit: reformatted_clusters - - script: - """ - reformat_antismash.py \ - -g ${glossary} \ - -a ${geneclusters} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/avg_averaged_structures.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/avg_averaged_structures.nf deleted file mode 100644 index 212069f45..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/avg_averaged_structures.nf +++ /dev/null @@ -1,24 +0,0 @@ -nextflow.enable.dsl=2 - -process AVG_AVERAGED_STRUCTURES { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/chop_and_avg_for_core/avg_averaged_structures" - - input: - path fam_name, stageAs: 'fam_name' - path split_dir, stageAs: 'split_dir' - - output: - path "*.pdb", emit: avg_structs - - script: - def split_dir = split_dir ? split_dir : split_PDB - """ - python3 align_compute_avg.py \ - -f ${fam_name} \ - -s ${split_dir} \ - -k KPAX_RESULTS \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/avg_averaged_unp_domains.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/avg_averaged_unp_domains.nf deleted file mode 100644 index ea7fb5c30..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/avg_averaged_unp_domains.nf +++ /dev/null @@ -1,24 +0,0 @@ -nextflow.enable.dsl=2 - -process AVG_AVERAGED_UNP_DOMAINS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/chop_and_avg_for_pfam2_cath/chop_and_avg_from_list/avg_averaged_unp_domains" - - input: - path fam_name, stageAs: 'fam_name' - path split_dir, stageAs: 'split_dir' - - output: - path "*.pdb", emit: avg_structs - - script: - def split_dir = split_dir ? split_dir : split_PDB - """ - python3 align_compute_avg.py \ - -f ${fam_name} \ - -s ${split_dir} \ - -k KPAX_RESULTS \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/avg_chopped_structs_unp_domains.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/avg_chopped_structs_unp_domains.nf deleted file mode 100644 index cb9ef867f..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/avg_chopped_structs_unp_domains.nf +++ /dev/null @@ -1,24 +0,0 @@ -nextflow.enable.dsl=2 - -process AVG_CHOPPED_STRUCTS_UNP_DOMAINS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/unmapped_from_pfam/avg_unp_domains/avg_chopped_structs_unp_domains" - - input: - path fam_name, stageAs: 'fam_name' - path split_dir, stageAs: 'split_dir' - - output: - path "*.pdb", emit: avg_structs - - script: - def split_dir = split_dir ? split_dir : split_PDB - """ - python3 align_compute_avg.py \ - -f ${fam_name} \ - -s ${split_dir} \ - -k KPAX_RESULTS \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/avg_chopped_structures_unp_domains.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/avg_chopped_structures_unp_domains.nf deleted file mode 100644 index 27a8dc04d..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/avg_chopped_structures_unp_domains.nf +++ /dev/null @@ -1,24 +0,0 @@ -nextflow.enable.dsl=2 - -process AVG_CHOPPED_STRUCTURES_UNP_DOMAINS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/chop_and_avg_for_pfam2_cath/chop_and_avg_from_list/avg_unp_domains/avg_chopped_structures_unp_domains" - - input: - path fam_name, stageAs: 'fam_name' - path split_dir, stageAs: 'split_dir' - - output: - path "*.pdb", emit: avg_structs - - script: - def split_dir = split_dir ? split_dir : split_PDB - """ - python3 align_compute_avg.py \ - -f ${fam_name} \ - -s ${split_dir} \ - -k KPAX_RESULTS \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/bam_index.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/bam_index.nf deleted file mode 100644 index 081ef3017..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/bam_index.nf +++ /dev/null @@ -1,23 +0,0 @@ -nextflow.enable.dsl=2 - -process BAM_INDEX { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/bam_index" - - input: - path bam_file, stageAs: 'bam_file' - - output: - path "{inputs.bam_file.basename}.bai", emit: bam_index - - script: - def threads = params.threads ? params.threads : 2 - """ - samtools index \ - -@ ${threads} \ - ${bam_file} \ - "${bam_file.name}.bai" \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/calc_chunking_number.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/calc_chunking_number.nf deleted file mode 100644 index 232399148..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/calc_chunking_number.nf +++ /dev/null @@ -1,24 +0,0 @@ -nextflow.enable.dsl=2 - -process CALC_CHUNKING_NUMBER { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/antismash/chunking/calc_chunking_number" - - input: - path sequences, stageAs: 'sequences' - val number - - output: - val "grepcount", emit: count - - script: - """ - grep -c ^> \ - ${sequences} \ - | \ - cat \ - > grepcount \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/carveme.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/carveme.nf deleted file mode 100644 index 3e0faef39..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/carveme.nf +++ /dev/null @@ -1,27 +0,0 @@ -nextflow.enable.dsl=2 - -process CARVEME { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/carveme" - - input: - path protein_file, stageAs: 'protein_file' - path mediadb, stageAs: 'mediadb' - - output: - path "{inputs.protein_file.nameroot}.GEM.xml", optional: true, emit: carveme_gem - - script: - def gapfill = params.gapfill ? "--gapfill ${params.gapfill}" : "" - def mediadb = mediadb ? "--mediadb ${mediadb}" : "" - """ - carve \ - ${mediadb} \ - ${gapfill} \ - --output "${${protein_file}.baseName}.GEM.xml" \ - ${protein_file} \ - --fbc2 \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/carveme_files_to_folder.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/carveme_files_to_folder.nf deleted file mode 100644 index af5b71eb2..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/carveme_files_to_folder.nf +++ /dev/null @@ -1,23 +0,0 @@ -nextflow.enable.dsl=2 - -import groovy.json.JsonSlurper -def jsonSlurper = new JsonSlurper() - -process CARVEME_FILES_TO_FOLDER { - debug true - container "node:latest" - publishDir "${params.outdir}/carveme_files_to_folder" - - input: - path files - - output: - path "${jsonSlurper.parseText(file("${task.workDir}/cwl.output.json").text)['results']}", emit: results - - script: - """ - nodejs files_to_folder.js \ - > cwl.output.json \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/cat.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/cat.nf deleted file mode 100644 index dc1cbe2d3..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/cat.nf +++ /dev/null @@ -1,22 +0,0 @@ -nextflow.enable.dsl=2 - -process CAT { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/its/cat" - - input: - path files - - output: - stdout, emit: result - - script: - def files = files.join(' ') - """ - cat \ - ${files} \ - > stdout.txt \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/cat_models.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/cat_models.nf deleted file mode 100644 index 313a8b2e3..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/cat_models.nf +++ /dev/null @@ -1,66 +0,0 @@ -nextflow.enable.dsl=2 - -process CAT_MODELS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/find_ribosomal_ncrnas/cmsearch_raw_data/cat_models" - - input: - path files - - output: - stdout, emit: result - - script: - def files = files.join(' ') - """ - cat \ - ${files} \ - > stdout.txt \ - """ - -} - - -process CAT_MODELS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/find_ribosomal_ncrnas/cmsearch_raw_data/cat_models" - - input: - path files - - output: - stdout, emit: result - - script: - def files = files.join(' ') - """ - cat \ - ${files} \ - > stdout.txt \ - """ - -} - - -process CAT_MODELS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/find_ribosomal_ncrnas/cmsearch_raw_data/cat_models" - - input: - path files - - output: - stdout, emit: result - - script: - def files = files.join(' ') - """ - cat \ - ${files} \ - > stdout.txt \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/check_alignment_scores.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/check_alignment_scores.nf deleted file mode 100644 index f647c680c..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/check_alignment_scores.nf +++ /dev/null @@ -1,35 +0,0 @@ -nextflow.enable.dsl=2 - -process CHECK_ALIGNMENT_SCORES { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/check_alignment_scores" - - input: - path aln_res_file, stageAs: 'aln_res_file' - path fam_tracker, stageAs: 'fam_tracker' - path cath_crossmap, stageAs: 'cath_crossmap' - path pfam_crossmap, stageAs: 'pfam_crossmap' - - output: - path "crossmapped_cath_failed.json", optional: true, emit: cath_crossmap_failed - path "crossmapped_cath_passed.json", optional: true, emit: cath_crossmap_passed - path "crossmapped_pfam_failed.json", optional: true, emit: pfam_crossmap_failed - path "crossmapped_pfam_passed.json", optional: true, emit: pfam_crossmap_passed - - script: - def aln_score = params.alignment_score ? params.alignment_score : Mscore - def cath_crossmap = cath_crossmap ? "-cx ${cath_crossmap}" : "" - def pfam_crossmap = pfam_crossmap ? "-px ${pfam_crossmap}" : "" - def threshold_val = params.score_threshold ? params.score_threshold : 0.6 - """ - python3 check_threshold.py \ - -a ${aln_res_file} \ - -f ${fam_tracker} \ - -s ${aln_score} \ - -t ${threshold_val} \ - ${pfam_crossmap} \ - ${cath_crossmap} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/check_threshold_step.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/check_threshold_step.nf deleted file mode 100644 index b9bf3b21b..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/check_threshold_step.nf +++ /dev/null @@ -1,35 +0,0 @@ -nextflow.enable.dsl=2 - -process CHECK_THRESHOLD_STEP { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/unmapped_from_pfam/check_threshold_step" - - input: - path all_struct_list, stageAs: 'all_struct_list' - path aln_result, stageAs: 'aln_result' - path failed_structs, stageAs: 'failed_structs' - path passed_structs, stageAs: 'passed_structs' - val aln_score - val threshold_val - - output: - path "<js>${ if (typeof inputs.failed_structs === 'string') {return inputs.failed_structs} else {return [ inputs.failed_structs.basename]}}</js>", emit: failed_structs_list - path "<js>${ if (typeof inputs.passed_structs === 'string') {return inputs.passed_structs} else {return [ inputs.passed_structs.basename]}}</js>", emit: passed_structs_list - - script: - def aln_score = aln_score ? aln_score : Mscore - def failed_structs = failed_structs ? failed_structs : failed_structures_list.csv - def passed_structs = passed_structs ? passed_structs : passed_structures_list.csv - def threshold_val = threshold_val ? threshold_val : 0.6 - """ - python3 filter_align_scores.py \ - -f ${failed_structs} \ - -p ${passed_structs} \ - -s ${aln_score} \ - -t ${threshold_val} \ - -i ${aln_result} \ - -x ${all_struct_list} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/check_value.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/check_value.nf deleted file mode 100644 index 927b2ff55..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/check_value.nf +++ /dev/null @@ -1,23 +0,0 @@ -nextflow.enable.dsl=2 - -import groovy.json.JsonSlurper -def jsonSlurper = new JsonSlurper() - -process CHECK_VALUE { - debug true - container "node:latest" - publishDir "${params.outdir}/after_qc/antismash/chunking/check_value" - - input: - val number - - output: - val "${jsonSlurper.parseText(file("${task.workDir}/cwl.output.json").text)['out']}", emit: out - - script: - """ - nodejs check_value.js \ - > cwl.output.json \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/chinking_SC_fasta_nucleotide.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/chinking_SC_fasta_nucleotide.nf deleted file mode 100644 index cf3761aea..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/chinking_SC_fasta_nucleotide.nf +++ /dev/null @@ -1,50 +0,0 @@ -nextflow.enable.dsl=2 - -process CHINKING_SC_FASTA_NUCLEOTIDE { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/chunking_final/chinking_sc_fasta_nucleotide" - - input: - path infile - - output: - path "{inputs.outdirname}/*", emit: chunks - - script: - def infile = infile.join(' ') - def type_fasta = params.after_qc.chunking_final.chinking_sc_fasta_nucleotide_type_fasta ? "-t ${params.after_qc.chunking_final.chinking_sc_fasta_nucleotide_type_fasta}" : "" - """ - run_result_file_chunker.py \ - -i ${infile} \ - -f ${params.after_qc.chunking_final.chinking_sc_fasta_nucleotide_format_file} \ - -o ${params.after_qc.chunking_final.chinking_sc_fasta_nucleotide_outdirname} \ - ${type_fasta} \ - """ - -} - - -process CHINKING_SC_FASTA_NUCLEOTIDE { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/chunking_final/chinking_sc_fasta_nucleotide" - - input: - path infile - - output: - path "{inputs.outdirname}/*", emit: chunks - - script: - def infile = infile.join(' ') - def type_fasta = params.after_qc.chunking_final.chinking_sc_fasta_nucleotide_type_fasta ? "-t ${params.after_qc.chunking_final.chinking_sc_fasta_nucleotide_type_fasta}" : "" - """ - run_result_file_chunker.py \ - -i ${infile} \ - -f ${params.after_qc.chunking_final.chinking_sc_fasta_nucleotide_format_file} \ - -o ${params.after_qc.chunking_final.chinking_sc_fasta_nucleotide_outdirname} \ - ${type_fasta} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/chinking_fasta_nucleotide.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/chinking_fasta_nucleotide.nf deleted file mode 100644 index af6b971b4..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/chinking_fasta_nucleotide.nf +++ /dev/null @@ -1,50 +0,0 @@ -nextflow.enable.dsl=2 - -process CHINKING_FASTA_NUCLEOTIDE { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/chunking_final/chinking_fasta_nucleotide" - - input: - path infile - - output: - path "{inputs.outdirname}/*", emit: chunks - - script: - def infile = infile.join(' ') - def type_fasta = params.after_qc.chunking_final.chinking_fasta_nucleotide_type_fasta ? "-t ${params.after_qc.chunking_final.chinking_fasta_nucleotide_type_fasta}" : "" - """ - run_result_file_chunker.py \ - -i ${infile} \ - -f ${params.after_qc.chunking_final.chinking_fasta_nucleotide_format_file} \ - -o ${params.after_qc.chunking_final.chinking_fasta_nucleotide_outdirname} \ - ${type_fasta} \ - """ - -} - - -process CHINKING_FASTA_NUCLEOTIDE { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/chunking_final/chinking_fasta_nucleotide" - - input: - path infile - - output: - path "{inputs.outdirname}/*", emit: chunks - - script: - def infile = infile.join(' ') - def type_fasta = params.after_qc.chunking_final.chinking_fasta_nucleotide_type_fasta ? "-t ${params.after_qc.chunking_final.chinking_fasta_nucleotide_type_fasta}" : "" - """ - run_result_file_chunker.py \ - -i ${infile} \ - -f ${params.after_qc.chunking_final.chinking_fasta_nucleotide_format_file} \ - -o ${params.after_qc.chunking_final.chinking_fasta_nucleotide_outdirname} \ - ${type_fasta} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/chinking_fasta_proteins.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/chinking_fasta_proteins.nf deleted file mode 100644 index 8d94ce9d7..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/chinking_fasta_proteins.nf +++ /dev/null @@ -1,50 +0,0 @@ -nextflow.enable.dsl=2 - -process CHINKING_FASTA_PROTEINS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/chunking_final/chinking_fasta_proteins" - - input: - path infile - - output: - path "{inputs.outdirname}/*", emit: chunks - - script: - def infile = infile.join(' ') - def type_fasta = params.after_qc.chunking_final.chinking_fasta_proteins_type_fasta ? "-t ${params.after_qc.chunking_final.chinking_fasta_proteins_type_fasta}" : "" - """ - run_result_file_chunker.py \ - -i ${infile} \ - -f ${params.after_qc.chunking_final.chinking_fasta_proteins_format_file} \ - -o ${params.after_qc.chunking_final.chinking_fasta_proteins_outdirname} \ - ${type_fasta} \ - """ - -} - - -process CHINKING_FASTA_PROTEINS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/chunking_final/chinking_fasta_proteins" - - input: - path infile - - output: - path "{inputs.outdirname}/*", emit: chunks - - script: - def infile = infile.join(' ') - def type_fasta = params.after_qc.chunking_final.chinking_fasta_proteins_type_fasta ? "-t ${params.after_qc.chunking_final.chinking_fasta_proteins_type_fasta}" : "" - """ - run_result_file_chunker.py \ - -i ${infile} \ - -f ${params.after_qc.chunking_final.chinking_fasta_proteins_format_file} \ - -o ${params.after_qc.chunking_final.chinking_fasta_proteins_outdirname} \ - ${type_fasta} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/chop_structs.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/chop_structs.nf deleted file mode 100644 index 12956b3d9..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/chop_structs.nf +++ /dev/null @@ -1,26 +0,0 @@ -nextflow.enable.dsl=2 - -process CHOP_STRUCTS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/unmapped_from_pfam/avg_unp_domains/chop_structs" - - input: - path struct_insta, stageAs: 'struct_insta' - path pdb_dir, stageAs: 'pdb_dir' - - output: - stdout, emit: family_name - path "inputs.split_dir", emit: split_structs_dir - - script: - def pdb_dir = pdb_dir ? pdb_dir : ../PDB_files/ - """ - python3 chop_struct2domains.py \ - -f ${struct_insta} \ - -p ${pdb_dir} \ - -s split_PDB \ - -k KPAX_RESULTS \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/chunking_fasta.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/chunking_fasta.nf deleted file mode 100644 index c8eaf8ee3..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/chunking_fasta.nf +++ /dev/null @@ -1,24 +0,0 @@ -nextflow.enable.dsl=2 - -process CHUNKING_FASTA { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/antismash/chunking/chunking_fasta" - - input: - path seqs, stageAs: 'seqs' - val chunk_size - - output: - path "{inputs.seqs.basename}.*", emit: chunks - - script: - """ - esl-ssplit.sh \ - ${params.after_qc.antismash.chunking.chunking_fasta_number_of_output_files} \ - ${params.after_qc.antismash.chunking.chunking_fasta_same_number_of_residues} \ - ${seqs} \ - ${chunk_size} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/chunking_tsv.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/chunking_tsv.nf deleted file mode 100644 index 40e6eeb03..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/chunking_tsv.nf +++ /dev/null @@ -1,23 +0,0 @@ -nextflow.enable.dsl=2 - -process CHUNKING_TSV { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/functional_annotation_and_post_processing/chunking_tsv" - - input: - path infile - - output: - path "{inputs.outdirname}/*", emit: chunks - - script: - def infile = infile.join(' ') - """ - run_result_file_chunker.py \ - -i ${infile} \ - -f ${params.after_qc.functional_annotation_and_post_processing.chunking_tsv_format_file} \ - -o ${params.after_qc.functional_annotation_and_post_processing.chunking_tsv_outdirname} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/classifications_to_otu_counts.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/classifications_to_otu_counts.nf deleted file mode 100644 index 5274a00cc..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/classifications_to_otu_counts.nf +++ /dev/null @@ -1,93 +0,0 @@ -nextflow.enable.dsl=2 - -process CLASSIFICATIONS_TO_OTU_COUNTS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/classify_ssus/classifications_to_otu_counts" - - input: - path query, stageAs: 'query' - val label - val otu_table - - output: - path "{inputs.query.basename}.tsv", emit: otu_tsv - path "{inputs.query.basename}.notaxid.tsv", optional: true, emit: otu_tsv_notaxid - path "{inputs.query.basename}.txt", emit: otu_txt - - script: - def taxid_flag = params.after_qc.rna_prediction.classify_ssus.classifications_to_otu_counts_taxid_flag == false ? "" : "--taxid" - """ - mapseq2biom.pl \ - --query ${query} \ - --label ${label} \ - --otuTable ${otu_table} \ - ${taxid_flag} \ - --krona "${query.name}.txt" \ - --notaxidfile "${query.name}.notaxid.tsv" \ - --outfile "${query.name}.tsv" \ - """ - -} - - -process CLASSIFICATIONS_TO_OTU_COUNTS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/classify_ssus/classifications_to_otu_counts" - - input: - path query, stageAs: 'query' - val label - val otu_table - - output: - path "{inputs.query.basename}.tsv", emit: otu_tsv - path "{inputs.query.basename}.notaxid.tsv", optional: true, emit: otu_tsv_notaxid - path "{inputs.query.basename}.txt", emit: otu_txt - - script: - def taxid_flag = params.after_qc.rna_prediction.classify_ssus.classifications_to_otu_counts_taxid_flag == false ? "" : "--taxid" - """ - mapseq2biom.pl \ - --query ${query} \ - --label ${label} \ - --otuTable ${otu_table} \ - ${taxid_flag} \ - --krona "${query.name}.txt" \ - --notaxidfile "${query.name}.notaxid.tsv" \ - --outfile "${query.name}.tsv" \ - """ - -} - - -process CLASSIFICATIONS_TO_OTU_COUNTS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/classify_ssus/classifications_to_otu_counts" - - input: - path query, stageAs: 'query' - val label - val otu_table - - output: - path "{inputs.query.basename}.tsv", emit: otu_tsv - path "{inputs.query.basename}.notaxid.tsv", optional: true, emit: otu_tsv_notaxid - path "{inputs.query.basename}.txt", emit: otu_txt - - script: - def taxid_flag = params.after_qc.rna_prediction.classify_ssus.classifications_to_otu_counts_taxid_flag == false ? "" : "--taxid" - """ - mapseq2biom.pl \ - --query ${query} \ - --label ${label} \ - --otuTable ${otu_table} \ - ${taxid_flag} \ - --krona "${query.name}.txt" \ - --notaxidfile "${query.name}.notaxid.tsv" \ - --outfile "${query.name}.tsv" \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/clean_classification.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/clean_classification.nf deleted file mode 100644 index ec5fb42cb..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/clean_classification.nf +++ /dev/null @@ -1,20 +0,0 @@ -nextflow.enable.dsl=2 - -process CLEAN_CLASSIFICATION { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/motus_taxonomy/clean_classification" - - input: - path taxonomy, stageAs: 'taxonomy' - - output: - path "*.tsv", emit: clean_annotations - - script: - """ - clean_motus_output.sh \ - ${taxonomy} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/clean_fasta_headers.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/clean_fasta_headers.nf deleted file mode 100644 index ed453cf34..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/clean_fasta_headers.nf +++ /dev/null @@ -1,21 +0,0 @@ -nextflow.enable.dsl=2 - -process CLEAN_FASTA_HEADERS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/clean_fasta_headers" - - input: - path sequences, stageAs: 'sequences' - - output: - stdout, emit: sequences_with_cleaned_headers - - script: - """ - tr " /|<_;#" ------- \ - > "${${sequences}.baseName}.unfiltered_fasta" \ - < ${sequences} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/clean_headers.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/clean_headers.nf deleted file mode 100644 index 6c7920f7f..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/clean_headers.nf +++ /dev/null @@ -1,21 +0,0 @@ -nextflow.enable.dsl=2 - -process CLEAN_HEADERS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/clean_headers" - - input: - path sequences, stageAs: 'sequences' - - output: - stdout, emit: sequences_with_cleaned_headers - - script: - """ - tr " /|<_;#" ------- \ - > "${${sequences}.baseName}.unfiltered_fasta" \ - < ${sequences} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/cmsearch.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/cmsearch.nf deleted file mode 100644 index 7e5d69a25..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/cmsearch.nf +++ /dev/null @@ -1,108 +0,0 @@ -nextflow.enable.dsl=2 - -process CMSEARCH { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/find_ribosomal_ncrnas/cmsearch_raw_data/cmsearch" - - input: - path query_sequences, stageAs: 'query_sequences' - val covariance_model_database - - output: - path "<js>${ var name = ""; if (typeof inputs.covariance_model_database == "string") { name = inputs.query_sequences.basename + "." + inputs.covariance_model_database.split("/").slice(-1)[0] + ".cmsearch_matches.tbl"; } else { name = inputs.query_sequences.basename + "." + inputs.covariance_model_database.nameroot + ".cmsearch_matches.tbl"; } return name;}</js>", emit: matches - path "<js>${ var name = ""; if (typeof inputs.covariance_model_database == "string") { name = inputs.query_sequences.basename + "." + inputs.covariance_model_database.split("/").slice(-1)[0] + ".cmsearch.out"; } else { name = inputs.query_sequences.basename + "." + inputs.covariance_model_database.nameroot + ".cmsearch.out"; } return name;}</js>", emit: programOutput - - script: - def cpu = params.after_qc.rna_prediction.find_ribosomal_nc_rnas.cmsearch_raw_data.cmsearch_cpu ? "--cpu ${params.after_qc.rna_prediction.find_ribosomal_nc_rnas.cmsearch_raw_data.cmsearch_cpu}" : "" - def cut_ga = params.after_qc.rna_prediction.find_ribosomal_nc_rnas.cmsearch_raw_data.cmsearch_cut_ga ? "--cut_ga" : "" - def omit_alignment_section = params.after_qc.rna_prediction.find_ribosomal_nc_rnas.cmsearch_raw_data.cmsearch_omit_alignment_section == false ? "" : "--noali" - def only_hmm = params.after_qc.rna_prediction.find_ribosomal_nc_rnas.cmsearch_raw_data.cmsearch_only_hmm ? "--hmmonly" : "" - """ - cmsearch \ - ${cpu} \ - -Z ${params.after_qc.rna_prediction.find_ribosomal_nc_rnas.cmsearch_raw_data.cmsearch_search_space_size} \ - ${cut_ga} \ - ${only_hmm} \ - ${omit_alignment_section} \ - --tblout <js>${ var name = ""; if (typeof inputs.covariance_model_database == "string") { name = inputs.query_sequences.basename + "." + inputs.covariance_model_database.split("/").slice(-1)[0] + ".cmsearch_matches.tbl"; } else { name = inputs.query_sequences.basename + "." + inputs.covariance_model_database.nameroot + ".cmsearch_matches.tbl"; } return name;}</js> \ - -o <js>${ var name = ""; if (typeof inputs.covariance_model_database == "string") { name = inputs.query_sequences.basename + "." + inputs.covariance_model_database.split("/").slice(-1)[0] + ".cmsearch.out"; } else { name = inputs.query_sequences.basename + "." + inputs.covariance_model_database.nameroot + ".cmsearch.out"; } return name;}</js> \ - ${covariance_model_database} \ - ${query_sequences} \ - > /dev/null \ - 2> /dev/null \ - """ - -} - - -process CMSEARCH { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/find_ribosomal_ncrnas/cmsearch_raw_data/cmsearch" - - input: - path query_sequences, stageAs: 'query_sequences' - val covariance_model_database - - output: - path "<js>${ var name = ""; if (typeof inputs.covariance_model_database == "string") { name = inputs.query_sequences.basename + "." + inputs.covariance_model_database.split("/").slice(-1)[0] + ".cmsearch_matches.tbl"; } else { name = inputs.query_sequences.basename + "." + inputs.covariance_model_database.nameroot + ".cmsearch_matches.tbl"; } return name;}</js>", emit: matches - path "<js>${ var name = ""; if (typeof inputs.covariance_model_database == "string") { name = inputs.query_sequences.basename + "." + inputs.covariance_model_database.split("/").slice(-1)[0] + ".cmsearch.out"; } else { name = inputs.query_sequences.basename + "." + inputs.covariance_model_database.nameroot + ".cmsearch.out"; } return name;}</js>", emit: programOutput - - script: - def cpu = params.after_qc.rna_prediction.find_ribosomal_nc_rnas.cmsearch_raw_data.cmsearch_cpu ? "--cpu ${params.after_qc.rna_prediction.find_ribosomal_nc_rnas.cmsearch_raw_data.cmsearch_cpu}" : "" - def cut_ga = params.after_qc.rna_prediction.find_ribosomal_nc_rnas.cmsearch_raw_data.cmsearch_cut_ga ? "--cut_ga" : "" - def omit_alignment_section = params.after_qc.rna_prediction.find_ribosomal_nc_rnas.cmsearch_raw_data.cmsearch_omit_alignment_section == false ? "" : "--noali" - def only_hmm = params.after_qc.rna_prediction.find_ribosomal_nc_rnas.cmsearch_raw_data.cmsearch_only_hmm ? "--hmmonly" : "" - """ - cmsearch \ - ${cpu} \ - -Z ${params.after_qc.rna_prediction.find_ribosomal_nc_rnas.cmsearch_raw_data.cmsearch_search_space_size} \ - ${cut_ga} \ - ${only_hmm} \ - ${omit_alignment_section} \ - --tblout <js>${ var name = ""; if (typeof inputs.covariance_model_database == "string") { name = inputs.query_sequences.basename + "." + inputs.covariance_model_database.split("/").slice(-1)[0] + ".cmsearch_matches.tbl"; } else { name = inputs.query_sequences.basename + "." + inputs.covariance_model_database.nameroot + ".cmsearch_matches.tbl"; } return name;}</js> \ - -o <js>${ var name = ""; if (typeof inputs.covariance_model_database == "string") { name = inputs.query_sequences.basename + "." + inputs.covariance_model_database.split("/").slice(-1)[0] + ".cmsearch.out"; } else { name = inputs.query_sequences.basename + "." + inputs.covariance_model_database.nameroot + ".cmsearch.out"; } return name;}</js> \ - ${covariance_model_database} \ - ${query_sequences} \ - > /dev/null \ - 2> /dev/null \ - """ - -} - - -process CMSEARCH { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/find_ribosomal_ncrnas/cmsearch_raw_data/cmsearch" - - input: - path query_sequences, stageAs: 'query_sequences' - val covariance_model_database - - output: - path "<js>${ var name = ""; if (typeof inputs.covariance_model_database == "string") { name = inputs.query_sequences.basename + "." + inputs.covariance_model_database.split("/").slice(-1)[0] + ".cmsearch_matches.tbl"; } else { name = inputs.query_sequences.basename + "." + inputs.covariance_model_database.nameroot + ".cmsearch_matches.tbl"; } return name;}</js>", emit: matches - path "<js>${ var name = ""; if (typeof inputs.covariance_model_database == "string") { name = inputs.query_sequences.basename + "." + inputs.covariance_model_database.split("/").slice(-1)[0] + ".cmsearch.out"; } else { name = inputs.query_sequences.basename + "." + inputs.covariance_model_database.nameroot + ".cmsearch.out"; } return name;}</js>", emit: programOutput - - script: - def cpu = params.after_qc.rna_prediction.find_ribosomal_nc_rnas.cmsearch_raw_data.cmsearch_cpu ? "--cpu ${params.after_qc.rna_prediction.find_ribosomal_nc_rnas.cmsearch_raw_data.cmsearch_cpu}" : "" - def cut_ga = params.after_qc.rna_prediction.find_ribosomal_nc_rnas.cmsearch_raw_data.cmsearch_cut_ga ? "--cut_ga" : "" - def omit_alignment_section = params.after_qc.rna_prediction.find_ribosomal_nc_rnas.cmsearch_raw_data.cmsearch_omit_alignment_section == false ? "" : "--noali" - def only_hmm = params.after_qc.rna_prediction.find_ribosomal_nc_rnas.cmsearch_raw_data.cmsearch_only_hmm ? "--hmmonly" : "" - """ - cmsearch \ - ${cpu} \ - -Z ${params.after_qc.rna_prediction.find_ribosomal_nc_rnas.cmsearch_raw_data.cmsearch_search_space_size} \ - ${cut_ga} \ - ${only_hmm} \ - ${omit_alignment_section} \ - --tblout <js>${ var name = ""; if (typeof inputs.covariance_model_database == "string") { name = inputs.query_sequences.basename + "." + inputs.covariance_model_database.split("/").slice(-1)[0] + ".cmsearch_matches.tbl"; } else { name = inputs.query_sequences.basename + "." + inputs.covariance_model_database.nameroot + ".cmsearch_matches.tbl"; } return name;}</js> \ - -o <js>${ var name = ""; if (typeof inputs.covariance_model_database == "string") { name = inputs.query_sequences.basename + "." + inputs.covariance_model_database.split("/").slice(-1)[0] + ".cmsearch.out"; } else { name = inputs.query_sequences.basename + "." + inputs.covariance_model_database.nameroot + ".cmsearch.out"; } return name;}</js> \ - ${covariance_model_database} \ - ${query_sequences} \ - > /dev/null \ - 2> /dev/null \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/collect_lost_instances.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/collect_lost_instances.nf deleted file mode 100644 index 31120c97a..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/collect_lost_instances.nf +++ /dev/null @@ -1,23 +0,0 @@ -nextflow.enable.dsl=2 - -process COLLECT_LOST_INSTANCES { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/pfam_domain_instances/collect_lost_instances" - - input: - path lost_instance - path obs_insta, stageAs: 'obs_insta' - path outfile, stageAs: 'outfile' - - output: - path "<js>${ if (typeof inputs.outfile === 'string') {return inputs.outfile} else {return inputs.outfile.basename}}</js>", emit: lost_domain_list - - script: - def outfile = outfile ? outfile : lost_resmap.json - """ - python3 collect_lost_instances.py \ - ${outfile} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/combine.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/combine.nf deleted file mode 100644 index 9c00b1bee..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/combine.nf +++ /dev/null @@ -1,48 +0,0 @@ -nextflow.enable.dsl=2 - -process COMBINE { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/functional_annotation_and_post_processing/functional_annotation/run_hmmer/combine" - - input: - path files - val output_file_name - val postfix - - output: - stdout, emit: result - - script: - def files = files.join(' ') - """ - cat \ - ${files} \ - > stdout.txt \ - """ - -} - - -process COMBINE { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/functional_annotation_and_post_processing/functional_annotation/run_hmmer/combine" - - input: - path files - val output_file_name - val postfix - - output: - stdout, emit: result - - script: - def files = files.join(' ') - """ - cat \ - ${files} \ - > stdout.txt \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/combine_ips.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/combine_ips.nf deleted file mode 100644 index 54e232543..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/combine_ips.nf +++ /dev/null @@ -1,48 +0,0 @@ -nextflow.enable.dsl=2 - -process COMBINE_IPS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/functional_annotation_and_post_processing/functional_annotation/run_ips/combine_ips" - - input: - path files - val output_file_name - val postfix - - output: - stdout, emit: result - - script: - def files = files.join(' ') - """ - cat \ - ${files} \ - > stdout.txt \ - """ - -} - - -process COMBINE_IPS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/functional_annotation_and_post_processing/functional_annotation/run_ips/combine_ips" - - input: - path files - val output_file_name - val postfix - - output: - stdout, emit: result - - script: - def files = files.join(' ') - """ - cat \ - ${files} \ - > stdout.txt \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/combine_trimmed.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/combine_trimmed.nf deleted file mode 100644 index 17f0a774f..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/combine_trimmed.nf +++ /dev/null @@ -1,23 +0,0 @@ -nextflow.enable.dsl=2 - -process COMBINE_TRIMMED { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/trimming/trimming/combine_trimmed" - - input: - path files - val output_file_name - - output: - stdout, emit: result - - script: - def files = files.join(' ') - """ - cat \ - ${files} \ - > stdout.txt \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/compare_instances_CATH_Pfam.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/compare_instances_CATH_Pfam.nf deleted file mode 100644 index 6a1629eb2..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/compare_instances_CATH_Pfam.nf +++ /dev/null @@ -1,31 +0,0 @@ -nextflow.enable.dsl=2 - -process COMPARE_INSTANCES_CATH_PFAM { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/compare_instances_cath_pfam" - - input: - path resmapped_cath, stageAs: 'resmapped_cath' - path resmapped_pfam, stageAs: 'resmapped_pfam' - path truedomains_file, stageAs: 'truedomains_file' - - output: - path "inputs.unique_cath_struct", emit: cath_unique - path "<js>${ if (typeof inputs.truedomains_file === 'string') {return inputs.truedomains_file} else {return [ inputs.truedomains_file.basename]}}</js>", emit: common_domains - path "inputs.unique_pfam_struct", emit: pfam_unique - - script: - def min_dom_len = params.min_domain_length ? params.min_domain_length : 31 - def truedomains_file = truedomains_file ? "-f ${truedomains_file}" : "" - """ - python3 compare_cath_pfam.py \ - -l ${min_dom_len} \ - -c ${resmapped_cath} \ - -p ${resmapped_pfam} \ - ${truedomains_file} \ - -uq_pf unique_pfam.csv \ - -uq_ca unique_cath.csv \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/compress.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/compress.nf deleted file mode 100644 index 316dc0952..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/compress.nf +++ /dev/null @@ -1,20 +0,0 @@ -nextflow.enable.dsl=2 - -process COMPRESS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/compress" - - input: - path infile, stageAs: 'infile' - - output: - path "{inputs.infile.basename}.gz", emit: output - - script: - """ - gzip -c \ - > "${infile.name}.gz" \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/compress_carveme.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/compress_carveme.nf deleted file mode 100644 index 1841c6441..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/compress_carveme.nf +++ /dev/null @@ -1,22 +0,0 @@ -nextflow.enable.dsl=2 - -process COMPRESS_CARVEME { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/compress_carveme" - - input: - path inputfile, stageAs: 'inputfile' - - output: - path "{inputs.inputfile.basename}.gz", emit: outfile - - script: - def threads = params.threads ? params.threads : 1 - """ - pigz -c \ - -p ${threads} \ - > "${inputfile.name}.gz" \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/compress_mapseq.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/compress_mapseq.nf deleted file mode 100644 index 35235ec90..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/compress_mapseq.nf +++ /dev/null @@ -1,72 +0,0 @@ -nextflow.enable.dsl=2 - -process COMPRESS_MAPSEQ { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/classify_ssus/compress_mapseq" - - input: - path uncompressed_file, stageAs: 'uncompressed_file' - - output: - stdout, emit: compressed_file - - script: - """ - pigz \ - -p \ - 16 \ - -c \ - ${uncompressed_file} \ - > "${uncompressed_file.name}.gz" \ - """ - -} - - -process COMPRESS_MAPSEQ { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/classify_ssus/compress_mapseq" - - input: - path uncompressed_file, stageAs: 'uncompressed_file' - - output: - stdout, emit: compressed_file - - script: - """ - pigz \ - -p \ - 16 \ - -c \ - ${uncompressed_file} \ - > "${uncompressed_file.name}.gz" \ - """ - -} - - -process COMPRESS_MAPSEQ { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/classify_ssus/compress_mapseq" - - input: - path uncompressed_file, stageAs: 'uncompressed_file' - - output: - stdout, emit: compressed_file - - script: - """ - pigz \ - -p \ - 16 \ - -c \ - ${uncompressed_file} \ - > "${uncompressed_file.name}.gz" \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/compress_prodigal.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/compress_prodigal.nf deleted file mode 100644 index 2d91dfc32..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/compress_prodigal.nf +++ /dev/null @@ -1,22 +0,0 @@ -nextflow.enable.dsl=2 - -process COMPRESS_PRODIGAL { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/compress_prodigal" - - input: - path inputfile, stageAs: 'inputfile' - - output: - path "{inputs.inputfile.basename}.gz", emit: outfile - - script: - def threads = params.threads ? params.threads : 1 - """ - pigz -c \ - -p ${threads} \ - > "${inputfile.name}.gz" \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/compression.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/compression.nf deleted file mode 100644 index 3786ccd47..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/compression.nf +++ /dev/null @@ -1,48 +0,0 @@ -nextflow.enable.dsl=2 - -process COMPRESSION { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/compression" - - input: - path uncompressed_file, stageAs: 'uncompressed_file' - - output: - stdout, emit: compressed_file - - script: - """ - pigz \ - -p \ - 16 \ - -c \ - ${uncompressed_file} \ - > "${uncompressed_file.name}.gz" \ - """ - -} - - -process COMPRESSION { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/compression" - - input: - path uncompressed_file, stageAs: 'uncompressed_file' - - output: - stdout, emit: compressed_file - - script: - """ - pigz \ - -p \ - 16 \ - -c \ - ${uncompressed_file} \ - > "${uncompressed_file.name}.gz" \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/compression_func_ann.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/compression_func_ann.nf deleted file mode 100644 index 230d5f6ba..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/compression_func_ann.nf +++ /dev/null @@ -1,24 +0,0 @@ -nextflow.enable.dsl=2 - -process COMPRESSION_FUNC_ANN { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/functional_annotation_and_post_processing/folder_functional_annotation/compression_func_ann" - - input: - path uncompressed_file, stageAs: 'uncompressed_file' - - output: - stdout, emit: compressed_file - - script: - """ - pigz \ - -p \ - 16 \ - -c \ - ${uncompressed_file} \ - > "${uncompressed_file.name}.gz" \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/conversion.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/conversion.nf deleted file mode 100644 index 1c931bfe0..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/conversion.nf +++ /dev/null @@ -1,25 +0,0 @@ -nextflow.enable.dsl=2 - -process CONVERSION { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/conversion" - - input: - path embl, stageAs: 'embl' - - output: - path "{inputs.identifier}.ttl", emit: output - - script: - def codon = params.codon ? "-codon ${params.codon}" : "" - def embl = embl ? "-input ${embl}" : "" - """ - java -Xmx5g -jar /SAPP-2.0.jar \ - ${embl} \ - ${codon} \ - -id ${params.identifier} \ - -output "${params.identifier}.ttl" \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/convert_trimmed_reads_to_fasta.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/convert_trimmed_reads_to_fasta.nf deleted file mode 100644 index 3b2ee001c..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/convert_trimmed_reads_to_fasta.nf +++ /dev/null @@ -1,21 +0,0 @@ -nextflow.enable.dsl=2 - -process CONVERT_TRIMMED_READS_TO_FASTA { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/convert_trimmed_reads_to_fasta" - - input: - path fastq, stageAs: 'fastq' - - output: - path "*.unclean", emit: fasta - - script: - """ - fastq_to_fasta.py \ - -i ${fastq} \ - -o "${${fastq}.baseName}.unclean" \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/copy_avg_dom.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/copy_avg_dom.nf deleted file mode 100644 index 8c763f254..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/copy_avg_dom.nf +++ /dev/null @@ -1,19 +0,0 @@ -nextflow.enable.dsl=2 - -process COPY_AVG_DOM { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/unmapped_from_pfam/copy_avg_dom" - - input: - path avg_unp_dom - - output: - path "inputs.dir_cp", emit: dir_unp_dom - - script: - """ - python script.py \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_ITS_seqs.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_ITS_seqs.nf deleted file mode 100644 index c4c0c0ca5..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_ITS_seqs.nf +++ /dev/null @@ -1,23 +0,0 @@ -nextflow.enable.dsl=2 - -process COUNT_ITS_SEQS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/its/count_its_seqs" - - input: - path sequences, stageAs: 'sequences' - - output: - val "grepcount", emit: count - - script: - """ - grep -c ^> \ - ${sequences} \ - | \ - cat \ - > grepcount \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_cds.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_cds.nf deleted file mode 100644 index e8106c12e..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_cds.nf +++ /dev/null @@ -1,46 +0,0 @@ -nextflow.enable.dsl=2 - -process COUNT_CDS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/cgc/count_cds" - - input: - path sequences, stageAs: 'sequences' - - output: - val "grepcount", emit: count - - script: - """ - grep -c ^> \ - ${sequences} \ - | \ - cat \ - > grepcount \ - """ - -} - - -process COUNT_CDS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/cgc/count_cds" - - input: - path sequences, stageAs: 'sequences' - - output: - val "grepcount", emit: count - - script: - """ - grep -c ^> \ - ${sequences} \ - | \ - cat \ - > grepcount \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_lines_mapseq.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_lines_mapseq.nf deleted file mode 100644 index d50722e9f..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_lines_mapseq.nf +++ /dev/null @@ -1,66 +0,0 @@ -nextflow.enable.dsl=2 - -process COUNT_LINES_MAPSEQ { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/classify_ssus/count_lines_mapseq" - - input: - path input_file, stageAs: 'input_file' - - output: - val "count", emit: number - - script: - """ - bash \ - -c "expr \\<js>cat $(inputs.input_file.path) | wc -l</js> - " \ - > count \ - """ - -} - - -process COUNT_LINES_MAPSEQ { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/classify_ssus/count_lines_mapseq" - - input: - path input_file, stageAs: 'input_file' - - output: - val "count", emit: number - - script: - """ - bash \ - -c "expr \\<js>cat $(inputs.input_file.path) | wc -l</js> - " \ - > count \ - """ - -} - - -process COUNT_LINES_MAPSEQ { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/classify_ssus/count_lines_mapseq" - - input: - path input_file, stageAs: 'input_file' - - output: - val "count", emit: number - - script: - """ - bash \ - -c "expr \\<js>cat $(inputs.input_file.path) | wc -l</js> - " \ - > count \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_lsu_fasta.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_lsu_fasta.nf deleted file mode 100644 index 07cf164b4..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_lsu_fasta.nf +++ /dev/null @@ -1,69 +0,0 @@ -nextflow.enable.dsl=2 - -process COUNT_LSU_FASTA { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/count_lsu_fasta" - - input: - path sequences, stageAs: 'sequences' - - output: - val "grepcount", emit: count - - script: - """ - grep -c ^> \ - ${sequences} \ - | \ - cat \ - > grepcount \ - """ - -} - - -process COUNT_LSU_FASTA { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/count_lsu_fasta" - - input: - path sequences, stageAs: 'sequences' - - output: - val "grepcount", emit: count - - script: - """ - grep -c ^> \ - ${sequences} \ - | \ - cat \ - > grepcount \ - """ - -} - - -process COUNT_LSU_FASTA { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/count_lsu_fasta" - - input: - path sequences, stageAs: 'sequences' - - output: - val "grepcount", emit: count - - script: - """ - grep -c ^> \ - ${sequences} \ - | \ - cat \ - > grepcount \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_masked_fasta.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_masked_fasta.nf deleted file mode 100644 index 5f83c1302..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_masked_fasta.nf +++ /dev/null @@ -1,23 +0,0 @@ -nextflow.enable.dsl=2 - -process COUNT_MASKED_FASTA { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/its/count_masked_fasta" - - input: - path sequences, stageAs: 'sequences' - - output: - val "grepcount", emit: count - - script: - """ - grep -c ^> \ - ${sequences} \ - | \ - cat \ - > grepcount \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_overlapped_reads.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_overlapped_reads.nf deleted file mode 100644 index f85f670d6..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_overlapped_reads.nf +++ /dev/null @@ -1,21 +0,0 @@ -nextflow.enable.dsl=2 - -process COUNT_OVERLAPPED_READS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/trimming/count_overlapped_reads" - - input: - path sequences, stageAs: 'sequences' - - output: - val "data.txt", emit: count - - script: - """ - count_lines.py \ - -f ${sequences} \ - -n ${params.before_qc.trimming.count_overlapped_reads_number} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_processed_reads.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_processed_reads.nf deleted file mode 100644 index 4a9ed1dd7..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_processed_reads.nf +++ /dev/null @@ -1,69 +0,0 @@ -nextflow.enable.dsl=2 - -process COUNT_PROCESSED_READS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/count_processed_reads" - - input: - path sequences, stageAs: 'sequences' - - output: - val "grepcount", emit: count - - script: - """ - grep -c ^> \ - ${sequences} \ - | \ - cat \ - > grepcount \ - """ - -} - - -process COUNT_PROCESSED_READS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/count_processed_reads" - - input: - path sequences, stageAs: 'sequences' - - output: - val "grepcount", emit: count - - script: - """ - grep -c ^> \ - ${sequences} \ - | \ - cat \ - > grepcount \ - """ - -} - - -process COUNT_PROCESSED_READS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/count_processed_reads" - - input: - path sequences, stageAs: 'sequences' - - output: - val "grepcount", emit: count - - script: - """ - grep -c ^> \ - ${sequences} \ - | \ - cat \ - > grepcount \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_reads.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_reads.nf deleted file mode 100644 index 194976606..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_reads.nf +++ /dev/null @@ -1,23 +0,0 @@ -nextflow.enable.dsl=2 - -process COUNT_READS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/count_reads" - - input: - path sequences, stageAs: 'sequences' - - output: - val "grepcount", emit: count - - script: - """ - grep -c ^> \ - ${sequences} \ - | \ - cat \ - > grepcount \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_reads_after_filtering.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_reads_after_filtering.nf deleted file mode 100644 index c212f3d79..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_reads_after_filtering.nf +++ /dev/null @@ -1,23 +0,0 @@ -nextflow.enable.dsl=2 - -process COUNT_READS_AFTER_FILTERING { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/antismash/filtering/count_reads_after_filtering" - - input: - path sequences, stageAs: 'sequences' - - output: - val "grepcount", emit: count - - script: - """ - grep -c ^> \ - ${sequences} \ - | \ - cat \ - > grepcount \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_ssu_fasta.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_ssu_fasta.nf deleted file mode 100644 index 2ce2749fe..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_ssu_fasta.nf +++ /dev/null @@ -1,69 +0,0 @@ -nextflow.enable.dsl=2 - -process COUNT_SSU_FASTA { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/count_ssu_fasta" - - input: - path sequences, stageAs: 'sequences' - - output: - val "grepcount", emit: count - - script: - """ - grep -c ^> \ - ${sequences} \ - | \ - cat \ - > grepcount \ - """ - -} - - -process COUNT_SSU_FASTA { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/count_ssu_fasta" - - input: - path sequences, stageAs: 'sequences' - - output: - val "grepcount", emit: count - - script: - """ - grep -c ^> \ - ${sequences} \ - | \ - cat \ - > grepcount \ - """ - -} - - -process COUNT_SSU_FASTA { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/count_ssu_fasta" - - input: - path sequences, stageAs: 'sequences' - - output: - val "grepcount", emit: count - - script: - """ - grep -c ^> \ - ${sequences} \ - | \ - cat \ - > grepcount \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_submitted_reads.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_submitted_reads.nf deleted file mode 100644 index 817b7c49b..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_submitted_reads.nf +++ /dev/null @@ -1,42 +0,0 @@ -nextflow.enable.dsl=2 - -process COUNT_SUBMITTED_READS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/overlap_reads/count_submitted_reads" - - input: - path sequences, stageAs: 'sequences' - - output: - val "data.txt", emit: count - - script: - """ - count_lines.py \ - -f ${sequences} \ - -n ${params.before_qc.overlap_reads.count_submitted_reads_number} \ - """ - -} - - -process COUNT_SUBMITTED_READS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/overlap_reads/count_submitted_reads" - - input: - path sequences, stageAs: 'sequences' - - output: - val "data.txt", emit: count - - script: - """ - count_lines.py \ - -f ${sequences} \ - -n ${params.before_qc.overlap_reads.count_submitted_reads_number} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_submitted_reads_single.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_submitted_reads_single.nf deleted file mode 100644 index 6f2bd5fdc..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/count_submitted_reads_single.nf +++ /dev/null @@ -1,42 +0,0 @@ -nextflow.enable.dsl=2 - -process COUNT_SUBMITTED_READS_SINGLE { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/overlap_reads/count_submitted_reads_single" - - input: - path sequences, stageAs: 'sequences' - - output: - val "data.txt", emit: count - - script: - """ - count_lines.py \ - -f ${sequences} \ - -n ${params.before_qc.overlap_reads.count_submitted_reads_single_number} \ - """ - -} - - -process COUNT_SUBMITTED_READS_SINGLE { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/overlap_reads/count_submitted_reads_single" - - input: - path sequences, stageAs: 'sequences' - - output: - val "data.txt", emit: count - - script: - """ - count_lines.py \ - -f ${sequences} \ - -n ${params.before_qc.overlap_reads.count_submitted_reads_single_number} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/counts_to_hdf5.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/counts_to_hdf5.nf deleted file mode 100644 index 79d5fc43f..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/counts_to_hdf5.nf +++ /dev/null @@ -1,78 +0,0 @@ -nextflow.enable.dsl=2 - -process COUNTS_TO_HDF5 { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/classify_ssus/counts_to_hdf5" - - input: - path biom, stageAs: 'biom' - - output: - path "<js>${ var ext = "";if (inputs.json) { ext = "_json.biom"; }if (inputs.hdf5) { ext = "_hdf5.biom"; }if (inputs.tsv) { ext = "_tsv.biom"; }var pre = inputs.biom.nameroot.split('.');pre.pop()return pre.join('.') + ext; }</js>", emit: result - - script: - def biom = biom ? "--input-fp ${biom}" : "" - def hdf5 = params.after_qc.rna_prediction.classify_ssus.counts_to_hdf5_hdf5 == false ? "" : "--to-hdf5" - def table_type = params.after_qc.rna_prediction.classify_ssus.counts_to_hdf5_table_type ? "--table-type ${params.after_qc.rna_prediction.classify_ssus.counts_to_hdf5_table_type}" : "" - """ - biom-convert.sh \ - ${biom} \ - ${table_type} \ - ${hdf5} \ - --output-fp <js>${ var ext = ""; if (inputs.json) { ext = "_json.biom"; } if (inputs.hdf5) { ext = "_hdf5.biom"; } if (inputs.tsv) { ext = "_tsv.biom"; } var pre = inputs.biom.nameroot.split('.'); pre.pop() return pre.join('.') + ext; }</js> \ - """ - -} - - -process COUNTS_TO_HDF5 { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/classify_ssus/counts_to_hdf5" - - input: - path biom, stageAs: 'biom' - - output: - path "<js>${ var ext = "";if (inputs.json) { ext = "_json.biom"; }if (inputs.hdf5) { ext = "_hdf5.biom"; }if (inputs.tsv) { ext = "_tsv.biom"; }var pre = inputs.biom.nameroot.split('.');pre.pop()return pre.join('.') + ext; }</js>", emit: result - - script: - def biom = biom ? "--input-fp ${biom}" : "" - def hdf5 = params.after_qc.rna_prediction.classify_ssus.counts_to_hdf5_hdf5 == false ? "" : "--to-hdf5" - def table_type = params.after_qc.rna_prediction.classify_ssus.counts_to_hdf5_table_type ? "--table-type ${params.after_qc.rna_prediction.classify_ssus.counts_to_hdf5_table_type}" : "" - """ - biom-convert.sh \ - ${biom} \ - ${table_type} \ - ${hdf5} \ - --output-fp <js>${ var ext = ""; if (inputs.json) { ext = "_json.biom"; } if (inputs.hdf5) { ext = "_hdf5.biom"; } if (inputs.tsv) { ext = "_tsv.biom"; } var pre = inputs.biom.nameroot.split('.'); pre.pop() return pre.join('.') + ext; }</js> \ - """ - -} - - -process COUNTS_TO_HDF5 { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/classify_ssus/counts_to_hdf5" - - input: - path biom, stageAs: 'biom' - - output: - path "<js>${ var ext = "";if (inputs.json) { ext = "_json.biom"; }if (inputs.hdf5) { ext = "_hdf5.biom"; }if (inputs.tsv) { ext = "_tsv.biom"; }var pre = inputs.biom.nameroot.split('.');pre.pop()return pre.join('.') + ext; }</js>", emit: result - - script: - def biom = biom ? "--input-fp ${biom}" : "" - def hdf5 = params.after_qc.rna_prediction.classify_ssus.counts_to_hdf5_hdf5 == false ? "" : "--to-hdf5" - def table_type = params.after_qc.rna_prediction.classify_ssus.counts_to_hdf5_table_type ? "--table-type ${params.after_qc.rna_prediction.classify_ssus.counts_to_hdf5_table_type}" : "" - """ - biom-convert.sh \ - ${biom} \ - ${table_type} \ - ${hdf5} \ - --output-fp <js>${ var ext = ""; if (inputs.json) { ext = "_json.biom"; } if (inputs.hdf5) { ext = "_hdf5.biom"; } if (inputs.tsv) { ext = "_tsv.biom"; } var pre = inputs.biom.nameroot.split('.'); pre.pop() return pre.join('.') + ext; }</js> \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/counts_to_json.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/counts_to_json.nf deleted file mode 100644 index 81ce4ada1..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/counts_to_json.nf +++ /dev/null @@ -1,78 +0,0 @@ -nextflow.enable.dsl=2 - -process COUNTS_TO_JSON { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/classify_ssus/counts_to_json" - - input: - path biom, stageAs: 'biom' - - output: - path "<js>${ var ext = "";if (inputs.json) { ext = "_json.biom"; }if (inputs.hdf5) { ext = "_hdf5.biom"; }if (inputs.tsv) { ext = "_tsv.biom"; }var pre = inputs.biom.nameroot.split('.');pre.pop()return pre.join('.') + ext; }</js>", emit: result - - script: - def biom = biom ? "--input-fp ${biom}" : "" - def json = params.after_qc.rna_prediction.classify_ssus.counts_to_json_json == false ? "" : "--to-json" - def table_type = params.after_qc.rna_prediction.classify_ssus.counts_to_json_table_type ? "--table-type ${params.after_qc.rna_prediction.classify_ssus.counts_to_json_table_type}" : "" - """ - biom-convert.sh \ - ${biom} \ - ${table_type} \ - ${json} \ - --output-fp <js>${ var ext = ""; if (inputs.json) { ext = "_json.biom"; } if (inputs.hdf5) { ext = "_hdf5.biom"; } if (inputs.tsv) { ext = "_tsv.biom"; } var pre = inputs.biom.nameroot.split('.'); pre.pop() return pre.join('.') + ext; }</js> \ - """ - -} - - -process COUNTS_TO_JSON { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/classify_ssus/counts_to_json" - - input: - path biom, stageAs: 'biom' - - output: - path "<js>${ var ext = "";if (inputs.json) { ext = "_json.biom"; }if (inputs.hdf5) { ext = "_hdf5.biom"; }if (inputs.tsv) { ext = "_tsv.biom"; }var pre = inputs.biom.nameroot.split('.');pre.pop()return pre.join('.') + ext; }</js>", emit: result - - script: - def biom = biom ? "--input-fp ${biom}" : "" - def json = params.after_qc.rna_prediction.classify_ssus.counts_to_json_json == false ? "" : "--to-json" - def table_type = params.after_qc.rna_prediction.classify_ssus.counts_to_json_table_type ? "--table-type ${params.after_qc.rna_prediction.classify_ssus.counts_to_json_table_type}" : "" - """ - biom-convert.sh \ - ${biom} \ - ${table_type} \ - ${json} \ - --output-fp <js>${ var ext = ""; if (inputs.json) { ext = "_json.biom"; } if (inputs.hdf5) { ext = "_hdf5.biom"; } if (inputs.tsv) { ext = "_tsv.biom"; } var pre = inputs.biom.nameroot.split('.'); pre.pop() return pre.join('.') + ext; }</js> \ - """ - -} - - -process COUNTS_TO_JSON { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/classify_ssus/counts_to_json" - - input: - path biom, stageAs: 'biom' - - output: - path "<js>${ var ext = "";if (inputs.json) { ext = "_json.biom"; }if (inputs.hdf5) { ext = "_hdf5.biom"; }if (inputs.tsv) { ext = "_tsv.biom"; }var pre = inputs.biom.nameroot.split('.');pre.pop()return pre.join('.') + ext; }</js>", emit: result - - script: - def biom = biom ? "--input-fp ${biom}" : "" - def json = params.after_qc.rna_prediction.classify_ssus.counts_to_json_json == false ? "" : "--to-json" - def table_type = params.after_qc.rna_prediction.classify_ssus.counts_to_json_table_type ? "--table-type ${params.after_qc.rna_prediction.classify_ssus.counts_to_json_table_type}" : "" - """ - biom-convert.sh \ - ${biom} \ - ${table_type} \ - ${json} \ - --output-fp <js>${ var ext = ""; if (inputs.json) { ext = "_json.biom"; } if (inputs.hdf5) { ext = "_hdf5.biom"; } if (inputs.tsv) { ext = "_tsv.biom"; } var pre = inputs.biom.nameroot.split('.'); pre.pop() return pre.join('.') + ext; }</js> \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/create_csv_gp.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/create_csv_gp.nf deleted file mode 100644 index dfa48b289..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/create_csv_gp.nf +++ /dev/null @@ -1,22 +0,0 @@ -nextflow.enable.dsl=2 - -process CREATE_CSV_GP { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/functional_annotation_and_post_processing/change_formats_and_names/create_csv_gp" - - input: - path tab_sep_table, stageAs: 'tab_sep_table' - val output_name - - output: - path "inputs.output_name", emit: csv_result - - script: - """ - make_csv.py \ - -i ${tab_sep_table} \ - -o ${output_name} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/create_csv_kp.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/create_csv_kp.nf deleted file mode 100644 index 1b5c4cfee..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/create_csv_kp.nf +++ /dev/null @@ -1,22 +0,0 @@ -nextflow.enable.dsl=2 - -process CREATE_CSV_KP { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/functional_annotation_and_post_processing/change_formats_and_names/create_csv_kp" - - input: - path tab_sep_table, stageAs: 'tab_sep_table' - val output_name - - output: - path "inputs.output_name", emit: csv_result - - script: - """ - make_csv.py \ - -i ${tab_sep_table} \ - -o ${output_name} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/create_new_parameters.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/create_new_parameters.nf deleted file mode 100644 index 58945542e..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/create_new_parameters.nf +++ /dev/null @@ -1,30 +0,0 @@ -nextflow.enable.dsl=2 - -process CREATE_NEW_PARAMETERS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/create_new_parameters" - - input: - path core_domain_struct, stageAs: 'core_domain_struct' - path crossmap_cath, stageAs: 'crossmap_cath' - path crossmap_pfam, stageAs: 'crossmap_pfam' - path domain_like, stageAs: 'domain_like' - path failed_domains, stageAs: 'failed_domains' - path fam_tracker, stageAs: 'fam_tracker' - path in_paramfile, stageAs: 'in_paramfile' - path true_domains, stageAs: 'true_domains' - - output: - path "<js>${ if (typeof inputs.next_paramfile === 'string') {return inputs.next_paramfile} else {return inputs.next_paramfile.basename}}</js>", emit: next_parmfile - - script: - """ - python3 create_param.py \ - -i ${in_paramfile} \ - -o new_param.yml \ - -px ${crossmap_pfam} \ - -cx ${crossmap_cath} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/crossmapping_CATH2Pfam.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/crossmapping_CATH2Pfam.nf deleted file mode 100644 index 44140ae4e..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/crossmapping_CATH2Pfam.nf +++ /dev/null @@ -1,27 +0,0 @@ -nextflow.enable.dsl=2 - -process CROSSMAPPING_CATH2PFAM { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/crossmapping_cath2pfam" - - input: - path cath_unq, stageAs: 'cath_unq' - - output: - path "<js>${ if (typeof inputs.crossmap_cath === 'string') {return inputs.crossmap_cath} else {return [ inputs.crossmap_cath.basename]}}</js>", emit: allcrossmap_cath - path "*.json", emit: cath_crossmapped - path "<js>${ if (typeof inputs.no_crossmap === 'string') {return inputs.no_crossmap} else {return [ inputs.no_crossmap.basename]}}</js>", emit: cath_unmapped - - script: - def min_dom_len = params.min_domain_length ? params.min_domain_length : 31 - """ - python3 map_unique_struct_cath2pfam.py \ - -l ${min_dom_len} \ - -p ../Data/pdbmap \ - -u cath_unq_unmapped.jsonx \ - -x cath_crossMapped_pfam.jsonx \ - -c ${cath_unq} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/crossmapping_Pfam2CATH.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/crossmapping_Pfam2CATH.nf deleted file mode 100644 index 98f14b752..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/crossmapping_Pfam2CATH.nf +++ /dev/null @@ -1,27 +0,0 @@ -nextflow.enable.dsl=2 - -process CROSSMAPPING_PFAM2_CATH { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/crossmapping_pfam2_cath" - - input: - path pfam_unq, stageAs: 'pfam_unq' - - output: - path "<js>${ if (typeof inputs.crossmap_pfam === 'string') {return inputs.crossmap_pfam} else {return [ inputs.crossmap_pfam.basename]}}</js>", emit: allcrossmap_pfam - path "*.json", emit: pfam_crossmapped - path "<js>${ if (typeof inputs.no_crossmap === 'string') {return inputs.no_crossmap} else {return [ inputs.no_crossmap.basename]}}</js>", emit: pfam_unmapped - - script: - def min_dom_len = params.min_domain_length ? params.min_domain_length : 31 - """ - python3 map_unique_struct_pfam2cath.py \ - -l ${min_dom_len} \ - -c ../Data/cath-domain-description-file.txt \ - -u pfam_unq_unmapped.jsonx \ - -x pfam_crossMapped_cath.jsonx \ - -p ${pfam_unq} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/diamond_run.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/diamond_run.nf deleted file mode 100644 index 7dfaaf484..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/diamond_run.nf +++ /dev/null @@ -1,35 +0,0 @@ -nextflow.enable.dsl=2 - -process DIAMOND_RUN { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/functional_annotation_and_post_processing/diamond/diamond_run" - - input: - path query_input_file, stageAs: 'query_input_file' - val database_file - val max_target_seqs - val output_format - val strand - val threads - - output: - path "{inputs.queryInputFile.basename}.diamond_matches", emit: matches - - script: - def max_target_seqs = max_target_seqs ? "--max-target-seqs ${max_target_seqs}" : "" - def output_format = output_format ? "--outfmt ${output_format}" : "" - def strand = strand ? "--strand ${strand}" : "" - def threads = threads ? "--threads ${threads}" : "" - """ - diamond blastp \ - ${strand} \ - --query ${query_input_file} \ - --db ${database_file} \ - ${max_target_seqs} \ - ${output_format} \ - ${threads} \ - --out "${query_input_file.name}.diamond_matches" \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/eggnog_annotation.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/eggnog_annotation.nf deleted file mode 100644 index 1abf5818e..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/eggnog_annotation.nf +++ /dev/null @@ -1,33 +0,0 @@ -nextflow.enable.dsl=2 - -process EGGNOG_ANNOTATION { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/functional_annotation_and_post_processing/functional_annotation/eggnog/eggnog_annotation" - - input: - path annotate_hits_table, stageAs: 'annotate_hits_table' - val cpu - val data_dir - val output - - output: - path "{inputs.output}*annotations*", optional: true, emit: output_annotations - path "{inputs.output}*orthologs*", optional: true, emit: output_orthologs - - script: - def annotate_hits_table = annotate_hits_table ? "--annotate_hits_table ${annotate_hits_table}" : "" - def cpu = cpu ? "--cpu ${cpu}" : "" - def data_dir = data_dir ? "--data_dir ${data_dir}" : "" - def no_file_comments = params.after_qc.functional_annotation_and_post_processing.functional_annotation.eggnog.eggnog_annotation_no_file_comments == false ? "" : "--no_file_comments" - def output = output ? "-o ${output}" : "" - """ - emapper.py \ - ${annotate_hits_table} \ - ${cpu} \ - ${data_dir} \ - ${output} \ - ${no_file_comments} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/eggnog_homology_searches.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/eggnog_homology_searches.nf deleted file mode 100644 index fc8c50cf8..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/eggnog_homology_searches.nf +++ /dev/null @@ -1,43 +0,0 @@ -nextflow.enable.dsl=2 - -process EGGNOG_HOMOLOGY_SEARCHES { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/functional_annotation_and_post_processing/functional_annotation/eggnog/eggnog_homology_searches" - - input: - path fasta_file, stageAs: 'fasta_file' - val cpu - val data_dir - val db - val db_diamond - val output - - output: - path "{inputs.output}*annotations*", optional: true, emit: output_annotations - path "{inputs.output}*orthologs*", optional: true, emit: output_orthologs - - script: - def cpu = cpu ? "--cpu ${cpu}" : "" - def data_dir = data_dir ? "--data_dir ${data_dir}" : "" - def db = db ? "--database ${db}" : "" - def db_diamond = db_diamond ? "--dmnd_db ${db_diamond}" : "" - def fasta_file = fasta_file ? "-i ${fasta_file}" : "" - def mode = params.after_qc.functional_annotation_and_post_processing.functional_annotation.eggnog.eggnog_homology_searches_mode ? "-m ${params.after_qc.functional_annotation_and_post_processing.functional_annotation.eggnog.eggnog_homology_searches_mode}" : "" - def no_annot = params.after_qc.functional_annotation_and_post_processing.functional_annotation.eggnog.eggnog_homology_searches_no_annot == false ? "" : "--no_annot" - def no_file_comments = params.after_qc.functional_annotation_and_post_processing.functional_annotation.eggnog.eggnog_homology_searches_no_file_comments == false ? "" : "--no_file_comments" - def output = output ? "-o ${output}" : "" - """ - emapper.py \ - ${fasta_file} \ - ${cpu} \ - ${data_dir} \ - ${db} \ - ${db_diamond} \ - ${mode} \ - ${output} \ - ${no_annot} \ - ${no_file_comments} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/expressiontool_bam_index.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/expressiontool_bam_index.nf deleted file mode 100644 index d90ea6e89..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/expressiontool_bam_index.nf +++ /dev/null @@ -1,24 +0,0 @@ -nextflow.enable.dsl=2 - -import groovy.json.JsonSlurper -def jsonSlurper = new JsonSlurper() - -process EXPRESSIONTOOL_BAM_INDEX { - debug true - container "node:latest" - publishDir "${params.outdir}/expressiontool_bam_index" - - input: - path bam_file, stageAs: 'bam_file' - path bam_index, stageAs: 'bam_index' - - output: - path "${jsonSlurper.parseText(file("${task.workDir}/cwl.output.json").text)['hybrid_bamindex']}", emit: hybrid_bamindex - - script: - """ - nodejs expression_bam_index.js \ - > cwl.output.json \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/extract_coords.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/extract_coords.nf deleted file mode 100644 index 664efebe3..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/extract_coords.nf +++ /dev/null @@ -1,46 +0,0 @@ -nextflow.enable.dsl=2 - -process EXTRACT_COORDS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/other_ncrnas/extract_coords" - - input: - path infernal_matches, stageAs: 'infernal_matches' - val name - - output: - path "*matched_seqs_with_coords*", emit: matched_seqs_with_coords - - script: - def name = name ? name : - """ - awk_tool \ - -i ${infernal_matches} \ - -n ${name} \ - """ - -} - - -process EXTRACT_COORDS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/other_ncrnas/extract_coords" - - input: - path infernal_matches, stageAs: 'infernal_matches' - val name - - output: - path "*matched_seqs_with_coords*", emit: matched_seqs_with_coords - - script: - def name = name ? name : - """ - awk_tool \ - -i ${infernal_matches} \ - -n ${name} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/extract_sequences.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/extract_sequences.nf deleted file mode 100644 index 5148a432a..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/extract_sequences.nf +++ /dev/null @@ -1,69 +0,0 @@ -nextflow.enable.dsl=2 - -process EXTRACT_SEQUENCES { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/extract_sequences" - - input: - tuple path(primary), path(ssi) - path names_contain_subseq_coords, stageAs: 'names_contain_subseq_coords' - - output: - stdout, emit: sequences - - script: - """ - esl-sfetch \ - -Cf ${primary} \ - ${names_contain_subseq_coords} \ - > "${primary.name}_${names_contain_subseq_coords.name}.fasta" \ - """ - -} - - -process EXTRACT_SEQUENCES { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/extract_sequences" - - input: - tuple path(primary), path(ssi) - path names_contain_subseq_coords, stageAs: 'names_contain_subseq_coords' - - output: - stdout, emit: sequences - - script: - """ - esl-sfetch \ - -Cf ${primary} \ - ${names_contain_subseq_coords} \ - > "${primary.name}_${names_contain_subseq_coords.name}.fasta" \ - """ - -} - - -process EXTRACT_SEQUENCES { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/extract_sequences" - - input: - tuple path(primary), path(ssi) - path names_contain_subseq_coords, stageAs: 'names_contain_subseq_coords' - - output: - stdout, emit: sequences - - script: - """ - esl-sfetch \ - -Cf ${primary} \ - ${names_contain_subseq_coords} \ - > "${primary.name}_${names_contain_subseq_coords.name}.fasta" \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/extract_subunits.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/extract_subunits.nf deleted file mode 100644 index 51cd86c0d..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/extract_subunits.nf +++ /dev/null @@ -1,105 +0,0 @@ -nextflow.enable.dsl=2 - -process EXTRACT_SUBUNITS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/extract_subunits" - - input: - path input, stageAs: 'input' - val pattern_lsu - val pattern_ssu - val pattern_5.8s - val pattern_5_s - - output: - path "sequence-categorisation/*LSU.fasta*", emit: LSU_seqs - path "sequence-categorisation/*SSU.fasta*", emit: SSU_seqs - path "sequence-categorisation/*.fa", emit: fastas - path "sequence-categorisation", optional: true, emit: sequence_categorisation - stdout, emit: stdout - - script: - def pattern_5.8s = pattern_5.8s ? "-e ${pattern_5.8s}" : "" - def pattern_5_s = pattern_5_s ? "-f ${pattern_5_s}" : "" - """ - get_subunits.py \ - -i ${input} \ - ${pattern_5.8s} \ - ${pattern_5_s} \ - -l ${pattern_lsu} \ - -s ${pattern_ssu} \ - > stdout.txt \ - """ - -} - - -process EXTRACT_SUBUNITS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/extract_subunits" - - input: - path input, stageAs: 'input' - val pattern_lsu - val pattern_ssu - val pattern_5.8s - val pattern_5_s - - output: - path "sequence-categorisation/*LSU.fasta*", emit: LSU_seqs - path "sequence-categorisation/*SSU.fasta*", emit: SSU_seqs - path "sequence-categorisation/*.fa", emit: fastas - path "sequence-categorisation", optional: true, emit: sequence_categorisation - stdout, emit: stdout - - script: - def pattern_5.8s = pattern_5.8s ? "-e ${pattern_5.8s}" : "" - def pattern_5_s = pattern_5_s ? "-f ${pattern_5_s}" : "" - """ - get_subunits.py \ - -i ${input} \ - ${pattern_5.8s} \ - ${pattern_5_s} \ - -l ${pattern_lsu} \ - -s ${pattern_ssu} \ - > stdout.txt \ - """ - -} - - -process EXTRACT_SUBUNITS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/extract_subunits" - - input: - path input, stageAs: 'input' - val pattern_lsu - val pattern_ssu - val pattern_5.8s - val pattern_5_s - - output: - path "sequence-categorisation/*LSU.fasta*", emit: LSU_seqs - path "sequence-categorisation/*SSU.fasta*", emit: SSU_seqs - path "sequence-categorisation/*.fa", emit: fastas - path "sequence-categorisation", optional: true, emit: sequence_categorisation - stdout, emit: stdout - - script: - def pattern_5.8s = pattern_5.8s ? "-e ${pattern_5.8s}" : "" - def pattern_5_s = pattern_5_s ? "-f ${pattern_5_s}" : "" - """ - get_subunits.py \ - -i ${input} \ - ${pattern_5.8s} \ - ${pattern_5_s} \ - -l ${pattern_lsu} \ - -s ${pattern_ssu} \ - > stdout.txt \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/extract_subunits_coords.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/extract_subunits_coords.nf deleted file mode 100644 index cf8f17621..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/extract_subunits_coords.nf +++ /dev/null @@ -1,84 +0,0 @@ -nextflow.enable.dsl=2 - -process EXTRACT_SUBUNITS_COORDS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/extract_subunits_coords" - - input: - path input, stageAs: 'input' - val pattern_lsu - val pattern_ssu - - output: - path "*LSU*", emit: LSU_seqs - path "*SSU*", emit: SSU_seqs - path "RNA-counts", emit: counts - stdout, emit: stdout - - script: - """ - get_subunits_coords.py \ - -i ${input} \ - -l ${pattern_lsu} \ - -s ${pattern_ssu} \ - > stdout.txt \ - """ - -} - - -process EXTRACT_SUBUNITS_COORDS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/extract_subunits_coords" - - input: - path input, stageAs: 'input' - val pattern_lsu - val pattern_ssu - - output: - path "*LSU*", emit: LSU_seqs - path "*SSU*", emit: SSU_seqs - path "RNA-counts", emit: counts - stdout, emit: stdout - - script: - """ - get_subunits_coords.py \ - -i ${input} \ - -l ${pattern_lsu} \ - -s ${pattern_ssu} \ - > stdout.txt \ - """ - -} - - -process EXTRACT_SUBUNITS_COORDS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/extract_subunits_coords" - - input: - path input, stageAs: 'input' - val pattern_lsu - val pattern_ssu - - output: - path "*LSU*", emit: LSU_seqs - path "*SSU*", emit: SSU_seqs - path "RNA-counts", emit: counts - stdout, emit: stdout - - script: - """ - get_subunits_coords.py \ - -i ${input} \ - -l ${pattern_lsu} \ - -s ${pattern_ssu} \ - > stdout.txt \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/fasta_index.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/fasta_index.nf deleted file mode 100644 index 4eb080f3b..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/fasta_index.nf +++ /dev/null @@ -1,24 +0,0 @@ -nextflow.enable.dsl=2 - -process FASTA_INDEX { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/fasta_index" - - input: - path fasta, stageAs: 'fasta' - - output: - path "{inputs.fasta.basename}.bgz.gzi", emit: bgz_index - path "{inputs.fasta.basename}.bgz", emit: fasta_bgz - path "{inputs.fasta.basename}.bgz.fai", emit: fasta_index - - script: - """ - run_samtools.sh \ - -f ${fasta} \ - -n \ - ${fasta.name} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/fastqc.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/fastqc.nf deleted file mode 100644 index ff791023f..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/fastqc.nf +++ /dev/null @@ -1,50 +0,0 @@ -nextflow.enable.dsl=2 - -process FASTQC { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/fastqc" - - input: - path fastq - - output: - path "FASTQC/*.html", emit: html_files - path "FASTQC/*.zip", emit: zip_files - - script: - def fastq = fastq ? fastq.join(' ') : "" - """ - fastqc \ - --threads 1 \ - --outdir \ - FASTQC \ - ${fastq} \ - """ - -} - - -process FASTQC { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/fastqc" - - input: - path fastq - - output: - path "FASTQC/*.html", emit: html_files - path "FASTQC/*.zip", emit: zip_files - - script: - def fastq = fastq ? fastq.join(' ') : "" - """ - fastqc \ - --threads 1 \ - --outdir \ - FASTQC \ - ${fastq} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/fastqc_files_to_folder.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/fastqc_files_to_folder.nf deleted file mode 100644 index 5e7e3ed89..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/fastqc_files_to_folder.nf +++ /dev/null @@ -1,46 +0,0 @@ -nextflow.enable.dsl=2 - -import groovy.json.JsonSlurper -def jsonSlurper = new JsonSlurper() - -process FASTQC_FILES_TO_FOLDER { - debug true - container "node:latest" - publishDir "${params.outdir}/fastqc_files_to_folder" - - input: - path files - - output: - path "${jsonSlurper.parseText(file("${task.workDir}/cwl.output.json").text)['results']}", emit: results - - script: - """ - nodejs files_to_folder.js \ - > cwl.output.json \ - """ - -} - - -import groovy.json.JsonSlurper -def jsonSlurper = new JsonSlurper() - -process FASTQC_FILES_TO_FOLDER { - debug true - container "node:latest" - publishDir "${params.outdir}/fastqc_files_to_folder" - - input: - path files - - output: - path "${jsonSlurper.parseText(file("${task.workDir}/cwl.output.json").text)['results']}", emit: results - - script: - """ - nodejs files_to_folder.js \ - > cwl.output.json \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/filter_cath_structures.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/filter_cath_structures.nf deleted file mode 100644 index cd734fd2a..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/filter_cath_structures.nf +++ /dev/null @@ -1,30 +0,0 @@ -nextflow.enable.dsl=2 - -process FILTER_CATH_STRUCTURES { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/cath_domain_instances/filter_cath_structures" - - input: - path track_fams, stageAs: 'track_fams' - val min_dom_len - - output: - path "<js>${ if (typeof inputs.obsolete_cath === 'string') {return inputs.obsolete_cath} else {return [ inputs.obsolete_cath.basename]}}</js>", emit: cath_obs - path "<js>${ if (typeof inputs.separate_cath === 'string') {return inputs.separate_cath} else {return [ inputs.separate_cath.basename]}}</js>", emit: cath_structs - path "*{inputs.split_suffix}", emit: splitted_cath_sep - - script: - def min_dom_len = min_dom_len ? min_dom_len : 31 - """ - python3 separate_cath.py \ - -l ${min_dom_len} \ - -c ../Data/cath-domain-description-file.txt \ - -d ../Data/obsolete_PDB_entry_ids.txt \ - -n Filtered_CATH.csv \ - -o obsolete_cath.txt \ - -s part.csv \ - -f ${track_fams} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/filter_contigs_antismash.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/filter_contigs_antismash.nf deleted file mode 100644 index 8c70b9a68..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/filter_contigs_antismash.nf +++ /dev/null @@ -1,28 +0,0 @@ -nextflow.enable.dsl=2 - -process FILTER_CONTIGS_ANTISMASH { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/antismash/filtering/filter_contigs_antismash" - - input: - path seq_file, stageAs: 'seq_file' - val min_length - val submitted_seq_count - - output: - path "{inputs.seq_file.nameroot}.fasta", emit: filtered_file - path "inputs.stats_file_name", emit: stats_summary_file - - script: - """ - run_quality_filtering.py \ - ${seq_file} \ - "${${seq_file}.baseName}.fasta" \ - ${params.after_qc.antismash.filtering.filter_contigs_antismash_stats_file_name} \ - ${submitted_seq_count} \ - --min_length ${min_length} \ - --extension ${params.after_qc.antismash.filtering.filter_contigs_antismash_input_file_format} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/filter_paired.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/filter_paired.nf deleted file mode 100644 index 662b36568..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/filter_paired.nf +++ /dev/null @@ -1,84 +0,0 @@ -nextflow.enable.dsl=2 - -process FILTER_PAIRED { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/overlap_reads/filter_paired" - - input: - path fastq1, stageAs: 'fastq1' - path fastq2, stageAs: 'fastq2' - val min_length_required - - output: - path "fastp.html", emit: html_report - path "fastp.json", emit: json_report - path "{inputs.fastq1.nameroot}.fastp.fastq", emit: out_fastq1 - path "{inputs.fastq2.nameroot}.fastp.fastq", optional: true, emit: out_fastq2 - - script: - def base_correction = params.before_qc.overlap_reads.filter_paired_base_correction == false ? "" : "--correction" - def disable_trim_poly_g = params.before_qc.overlap_reads.filter_paired_disable_trim_poly_g == false ? "" : "--disable_trim_poly_g" - def fastq2 = fastq2 ? "-I ${fastq2}" : "" - def force_polyg_tail_trimming = params.before_qc.overlap_reads.filter_paired_force_polyg_tail_trimming == false ? "" : "--trim_poly_g" - def min_length_required = min_length_required ? min_length_required : 50 - def threads = params.before_qc.overlap_reads.filter_paired_threads ? params.before_qc.overlap_reads.filter_paired_threads : 1 - """ - fastp \ - ${fastq2} \ - -i ${fastq1} \ - --length_required ${min_length_required} \ - --thread ${threads} \ - ${base_correction} \ - ${disable_trim_poly_g} \ - ${force_polyg_tail_trimming} \ - --qualified_quality_phred 20 \ - --unqualified_percent_limit 20 \ - -o "${${fastq1}.baseName}.fastp.fastq" \ - <js>${ if (inputs.fastq2){ return '-O'; } else { return ''; }}</js> \ - <js>${ if (inputs.fastq2){ return inputs.fastq2.nameroot + ".fastp.fastq"; } else { return ''; }}</js> \ - """ - -} - - -process FILTER_PAIRED { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/overlap_reads/filter_paired" - - input: - path fastq1, stageAs: 'fastq1' - path fastq2, stageAs: 'fastq2' - val min_length_required - - output: - path "fastp.html", emit: html_report - path "fastp.json", emit: json_report - path "{inputs.fastq1.nameroot}.fastp.fastq", emit: out_fastq1 - path "{inputs.fastq2.nameroot}.fastp.fastq", optional: true, emit: out_fastq2 - - script: - def base_correction = params.before_qc.overlap_reads.filter_paired_base_correction == false ? "" : "--correction" - def disable_trim_poly_g = params.before_qc.overlap_reads.filter_paired_disable_trim_poly_g == false ? "" : "--disable_trim_poly_g" - def fastq2 = fastq2 ? "-I ${fastq2}" : "" - def force_polyg_tail_trimming = params.before_qc.overlap_reads.filter_paired_force_polyg_tail_trimming == false ? "" : "--trim_poly_g" - def min_length_required = min_length_required ? min_length_required : 50 - def threads = params.before_qc.overlap_reads.filter_paired_threads ? params.before_qc.overlap_reads.filter_paired_threads : 1 - """ - fastp \ - ${fastq2} \ - -i ${fastq1} \ - --length_required ${min_length_required} \ - --thread ${threads} \ - ${base_correction} \ - ${disable_trim_poly_g} \ - ${force_polyg_tail_trimming} \ - --qualified_quality_phred 20 \ - --unqualified_percent_limit 20 \ - -o "${${fastq1}.baseName}.fastp.fastq" \ - <js>${ if (inputs.fastq2){ return '-O'; } else { return ''; }}</js> \ - <js>${ if (inputs.fastq2){ return inputs.fastq2.nameroot + ".fastp.fastq"; } else { return ''; }}</js> \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/filter_pfam_structures.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/filter_pfam_structures.nf deleted file mode 100644 index 6a9e27c69..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/filter_pfam_structures.nf +++ /dev/null @@ -1,30 +0,0 @@ -nextflow.enable.dsl=2 - -process FILTER_PFAM_STRUCTURES { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/pfam_domain_instances/filter_pfam_structures" - - input: - path track_fams, stageAs: 'track_fams' - val min_dom_len - - output: - path "<js>${ if (typeof inputs.obsolete_pfam === 'string') {return inputs.obsolete_pfam} else {return [ inputs.obsolete_pfam.basename]}}</js>", emit: pfam_obs - path "<js>${ if (typeof inputs.separate_pfam === 'string') {return inputs.separate_pfam} else {return [ inputs.separate_pfam.basename]}}</js>", emit: pfam_structs - path "*{inputs.split_suffix}", emit: splitted_pfam_sep - - script: - def min_dom_len = min_dom_len ? min_dom_len : 31 - """ - python3 separate_pfam.py \ - -l ${min_dom_len} \ - -d ../Data/obsolete_PDB_entry_ids.txt \ - -p ../Data/pdbmap \ - -n Filtered_Pfam.csv \ - -o obsolete_pfam.txt \ - -s part.csv \ - -f ${track_fams} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/fix_embl_and_gbk.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/fix_embl_and_gbk.nf deleted file mode 100644 index 1cb19c9fe..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/fix_embl_and_gbk.nf +++ /dev/null @@ -1,27 +0,0 @@ -nextflow.enable.dsl=2 - -process FIX_EMBL_AND_GBK { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/antismash/chunking/run_antismash/fix_embl_and_gbk" - - input: - path embl_file, stageAs: 'embl_file' - path names_table, stageAs: 'names_table' - val embl_filename - val gbk_filename - - output: - path "inputs.embl_filename", emit: fixed_embl - path "inputs.gbk_filename", emit: fixed_gbk - - script: - """ - change_antismash_output.py \ - -i ${embl_file} \ - -t ${names_table} \ - -e ${embl_filename} \ - -g ${gbk_filename} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/fix_geneclusters_txt.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/fix_geneclusters_txt.nf deleted file mode 100644 index 56bad529b..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/fix_geneclusters_txt.nf +++ /dev/null @@ -1,22 +0,0 @@ -nextflow.enable.dsl=2 - -process FIX_GENECLUSTERS_TXT { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/antismash/chunking/run_antismash/fix_geneclusters_txt" - - input: - path input_geneclusters_txt, stageAs: 'input_geneclusters_txt' - val output_filename - - output: - path "inputs.output_filename", emit: fixed_txt - - script: - """ - change_geneclusters_ctg.py \ - -i ${input_geneclusters_txt} \ - -o ${output_filename} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/folder_compression.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/folder_compression.nf deleted file mode 100644 index bb0ae01ed..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/folder_compression.nf +++ /dev/null @@ -1,19 +0,0 @@ -nextflow.enable.dsl=2 - -process FOLDER_COMPRESSION { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/folder_compression" - - input: - path indir, stageAs: 'indir' - - output: - path "{inputs.indir.basename}.tar.gz", emit: outfile - - script: - """ - tar czfh \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/format_core_list.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/format_core_list.nf deleted file mode 100644 index 16a56a5ff..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/format_core_list.nf +++ /dev/null @@ -1,19 +0,0 @@ -nextflow.enable.dsl=2 - -process FORMAT_CORE_LIST { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/format_core_list" - - input: - path infile, stageAs: 'infile' - - output: - path "<js>${ if (typeof inputs.outfile === 'string') {return inputs.outfile} else {return inputs.outfile.basename}}</js>", emit: coredomains_list - - script: - """ - python3 list_true_domains.py \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/functional_stats.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/functional_stats.nf deleted file mode 100644 index a56e7e307..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/functional_stats.nf +++ /dev/null @@ -1,36 +0,0 @@ -nextflow.enable.dsl=2 - -process FUNCTIONAL_STATS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/functional_annotation_and_post_processing/write_summaries/functional_stats" - - input: - path cds_file, stageAs: 'cds_file' - path cmsearch_file, stageAs: 'cmsearch_file' - path hmmscan, stageAs: 'hmmscan' - path interproscan, stageAs: 'interproscan' - path pfam, stageAs: 'pfam' - val ko_file - - output: - path "antismash*.yaml", optional: true, emit: antismash_yaml - path "InterProScan*.yaml", emit: ips_yaml - path "KO*.yaml", emit: ko_yaml - path "pfam*.yaml", emit: pfam_yaml - path "functional-annotation", emit: stats - - script: - def antismash_file = params.after_qc.functional_annotation_and_post_processing.write_summaries.antismash_gene_clusters ? "-a ${params.after_qc.functional_annotation_and_post_processing.write_summaries.antismash_gene_clusters}" : "" - """ - functional_stats.py \ - ${antismash_file} \ - -c ${cds_file} \ - -i ${interproscan} \ - -k ${hmmscan} \ - -p ${pfam} \ - -r ${cmsearch_file} \ - -ko ${ko_file} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gather_domain_like.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gather_domain_like.nf deleted file mode 100644 index 7a5a6e55a..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gather_domain_like.nf +++ /dev/null @@ -1,27 +0,0 @@ -nextflow.enable.dsl=2 - -process GATHER_DOMAIN_LIKE { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/gather_domain_like" - - input: - path cath_unmapped, stageAs: 'cath_unmapped' - path pfam_unmapped, stageAs: 'pfam_unmapped' - path unmapped_out, stageAs: 'unmapped_out' - - output: - path "<js>${ if (typeof inputs.unmapped_out === 'string') {return inputs.unmapped_out} else {return [ inputs.unmapped_out.basename]}}</js>", emit: unmapped_list - - script: - def cath_unmapped = cath_unmapped ? "-c ${cath_unmapped}" : "" - def pfam_unmapped = pfam_unmapped ? "-p ${pfam_unmapped}" : "" - def unmapped_out = unmapped_out ? unmapped_out : domain_StIs_f.json - """ - python3 merge_unmapped.py \ - ${pfam_unmapped} \ - ${cath_unmapped} \ - -o ${unmapped_out} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gather_failed_domains.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gather_failed_domains.nf deleted file mode 100644 index e6fadf3ce..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gather_failed_domains.nf +++ /dev/null @@ -1,33 +0,0 @@ -nextflow.enable.dsl=2 - -process GATHER_FAILED_DOMAINS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/gather_failed_domains" - - input: - path cath_crossmapped, stageAs: 'cath_crossmapped' - path cath_unmapped, stageAs: 'cath_unmapped' - path pfam_crossmapped, stageAs: 'pfam_crossmapped' - path pfam_unmapped, stageAs: 'pfam_unmapped' - path unmapped_out, stageAs: 'unmapped_out' - - output: - path "<js>${ if (typeof inputs.unmapped_out === 'string') {return inputs.unmapped_out} else {return [ inputs.unmapped_out.basename]}}</js>", emit: unmapped_list - - script: - def cath_crossmapped = cath_crossmapped ? "-cx ${cath_crossmapped}" : "" - def cath_unmapped = cath_unmapped ? "-c ${cath_unmapped}" : "" - def pfam_crossmapped = pfam_crossmapped ? "-px ${pfam_crossmapped}" : "" - def pfam_unmapped = pfam_unmapped ? "-p ${pfam_unmapped}" : "" - def unmapped_out = unmapped_out ? unmapped_out : domain_StIs_f.json - """ - python3 merge_unmapped.py \ - ${pfam_unmapped} \ - ${cath_unmapped} \ - -o ${unmapped_out} \ - ${pfam_crossmapped} \ - ${cath_crossmapped} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gemstats.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gemstats.nf deleted file mode 100644 index c9c91a6c2..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gemstats.nf +++ /dev/null @@ -1,22 +0,0 @@ -nextflow.enable.dsl=2 - -process GEMSTATS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/gemstats" - - input: - path carveme_gems - - output: - path "{inputs.identifier}_CarveMe_GEMstats.tsv", emit: carveme_GEMstats - - script: - def carveme_gems = carveme_gems.join(' ') - """ - bash -x script.sh \ - ${params.identifier} \ - ${carveme_gems} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/genome_properties.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/genome_properties.nf deleted file mode 100644 index 3d9848a69..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/genome_properties.nf +++ /dev/null @@ -1,36 +0,0 @@ -nextflow.enable.dsl=2 - -process GENOME_PROPERTIES { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/functional_annotation_and_post_processing/genome_properties" - - input: - path input_tsv_file, stageAs: 'input_tsv_file' - val flatfiles_path - val name - - output: - path "JSON*{inputs.name}", optional: true, emit: json - path "stderr.txt", emit: stderr - stdout, emit: stdout - path "SUMMARY*{inputs.name}", emit: summary - path "TABLE*{inputs.name}", optional: true, emit: table - - script: - def name = name ? "-name ${name}" : "" - """ - assign_genome_properties.pl \ - -matches ${input_tsv_file} \ - -gpdir ${flatfiles_path} \ - -gpff ${params.after_qc.functional_annotation_and_post_processing.genome_properties_gp_txt} \ - ${name} \ - -all \ - -outfiles table \ - -outfiles web_json \ - -outfiles summary \ - 2> stderr.txt \ - > stdout.txt \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/get_coords.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/get_coords.nf deleted file mode 100644 index fa69ea832..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/get_coords.nf +++ /dev/null @@ -1,46 +0,0 @@ -nextflow.enable.dsl=2 - -process GET_COORDS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/other_ncrnas/get_coords" - - input: - path hits, stageAs: 'hits' - val model - - output: - path "*.RF*", emit: matches - - script: - def model = model.join(' ') - """ - pull_ncrnas.sh \ - ${hits} \ - ${model} \ - """ - -} - - -process GET_COORDS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/other_ncrnas/get_coords" - - input: - path hits, stageAs: 'hits' - val model - - output: - path "*.RF*", emit: matches - - script: - def model = model.join(' ') - """ - pull_ncrnas.sh \ - ${hits} \ - ${model} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/get_family_ids.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/get_family_ids.nf deleted file mode 100644 index 4bc45a27b..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/get_family_ids.nf +++ /dev/null @@ -1,26 +0,0 @@ -nextflow.enable.dsl=2 - -process GET_FAMILY_IDS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/get_family_ids" - - input: - path fam_tracker, stageAs: 'fam_tracker' - - output: - path "<js>${ if (typeof inputs.fam_tracker === 'string') {return inputs.fam_tracker} else {return [ inputs.fam_tracker.basename]}}</js>", emit: family_ids - - script: - def cath_ids = params.cath ? "-c " + params.cath.join(' ') : "" - def fam_tracker = fam_tracker ? fam_tracker : family_ids.json - def pfam_ids = params.pfam ? "-p " + params.pfam.join(' ') : "" - """ - python3 get_family_ids.py \ - ${pfam_ids} \ - ${cath_ids} \ - -n ${params.iteration} \ - -f ${fam_tracker} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/get_ncrnas.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/get_ncrnas.nf deleted file mode 100644 index 99369f900..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/get_ncrnas.nf +++ /dev/null @@ -1,46 +0,0 @@ -nextflow.enable.dsl=2 - -process GET_NCRNAS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/other_ncrnas/get_ncrnas" - - input: - tuple path(primary), path(ssi) - path names_contain_subseq_coords, stageAs: 'names_contain_subseq_coords' - - output: - stdout, emit: sequences - - script: - """ - esl-sfetch \ - -Cf ${primary} \ - ${names_contain_subseq_coords} \ - > "${primary.name}_${names_contain_subseq_coords.name}.fasta" \ - """ - -} - - -process GET_NCRNAS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/other_ncrnas/get_ncrnas" - - input: - tuple path(primary), path(ssi) - path names_contain_subseq_coords, stageAs: 'names_contain_subseq_coords' - - output: - stdout, emit: sequences - - script: - """ - esl-sfetch \ - -Cf ${primary} \ - ${names_contain_subseq_coords} \ - > "${primary.name}_${names_contain_subseq_coords.name}.fasta" \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gff.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gff.nf deleted file mode 100644 index 39c59925b..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gff.nf +++ /dev/null @@ -1,29 +0,0 @@ -nextflow.enable.dsl=2 - -process GFF { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/functional_annotation_and_post_processing/gff" - - input: - path eggnog_results, stageAs: 'eggnog_results' - path input_faa, stageAs: 'input_faa' - path ips_results, stageAs: 'ips_results' - val output_name - - output: - path "{inputs.output_name}.bgz", emit: output_gff_gz - path "{inputs.output_name}.bgz.tbi", emit: output_gff_index - stdout, emit: stdout - - script: - """ - build_assembly_gff.py \ - -e ${eggnog_results} \ - -f ${input_faa} \ - -i ${ips_results} \ - -o ${output_name} \ - > stdout.txt \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/go_summary.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/go_summary.nf deleted file mode 100644 index b1479b642..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/go_summary.nf +++ /dev/null @@ -1,29 +0,0 @@ -nextflow.enable.dsl=2 - -process GO_SUMMARY { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/functional_annotation_and_post_processing/go_summary" - - input: - path inter_pro_scan_results, stageAs: 'inter_pro_scan_results' - val config - val output_name - - output: - path "*.go", emit: go_summary - path "*.go_slim", emit: go_summary_slim - path "stderr.txt", emit: stderr - stdout, emit: stdout - - script: - """ - go_summary_pipeline-1.0.py \ - --input-file ${inter_pro_scan_results} \ - --config ${config} \ - --output-file ${output_name} \ - 2> stderr.txt \ - > stdout.txt \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gzip.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gzip.nf deleted file mode 100644 index 03f2c7a9b..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gzip.nf +++ /dev/null @@ -1,20 +0,0 @@ -nextflow.enable.dsl=2 - -process GZIP { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/gzip" - - input: - path infile, stageAs: 'infile' - - output: - path "{inputs.infile.basename}.gz", emit: output - - script: - """ - gzip -c \ - > "${infile.name}.gz" \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gzip_LSU.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gzip_LSU.nf deleted file mode 100644 index 532773054..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gzip_LSU.nf +++ /dev/null @@ -1,24 +0,0 @@ -nextflow.enable.dsl=2 - -process GZIP_LSU { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/gzip_lsu" - - input: - path uncompressed_file, stageAs: 'uncompressed_file' - - output: - stdout, emit: compressed_file - - script: - """ - pigz \ - -p \ - 16 \ - -c \ - ${uncompressed_file} \ - > "${uncompressed_file.name}.gz" \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gzip_SSU.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gzip_SSU.nf deleted file mode 100644 index 6925ec8c2..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gzip_SSU.nf +++ /dev/null @@ -1,24 +0,0 @@ -nextflow.enable.dsl=2 - -process GZIP_SSU { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/gzip_ssu" - - input: - path uncompressed_file, stageAs: 'uncompressed_file' - - output: - stdout, emit: compressed_file - - script: - """ - pigz \ - -p \ - 16 \ - -c \ - ${uncompressed_file} \ - > "${uncompressed_file.name}.gz" \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gzip_files.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gzip_files.nf deleted file mode 100644 index b9dd04563..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gzip_files.nf +++ /dev/null @@ -1,48 +0,0 @@ -nextflow.enable.dsl=2 - -process GZIP_FILES { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/other_ncrnas/gzip_files" - - input: - path uncompressed_file, stageAs: 'uncompressed_file' - - output: - stdout, emit: compressed_file - - script: - """ - pigz \ - -p \ - 16 \ - -c \ - ${uncompressed_file} \ - > "${uncompressed_file.name}.gz" \ - """ - -} - - -process GZIP_FILES { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/other_ncrnas/gzip_files" - - input: - path uncompressed_file, stageAs: 'uncompressed_file' - - output: - stdout, emit: compressed_file - - script: - """ - pigz \ - -p \ - 16 \ - -c \ - ${uncompressed_file} \ - > "${uncompressed_file.name}.gz" \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gzip_masked_ITS.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gzip_masked_ITS.nf deleted file mode 100644 index a6318ddbf..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gzip_masked_ITS.nf +++ /dev/null @@ -1,24 +0,0 @@ -nextflow.enable.dsl=2 - -process GZIP_MASKED_ITS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/its/gzip_masked_its" - - input: - path uncompressed_file, stageAs: 'uncompressed_file' - - output: - stdout, emit: compressed_file - - script: - """ - pigz \ - -p \ - 16 \ - -c \ - ${uncompressed_file} \ - > "${uncompressed_file.name}.gz" \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gzipped_embl.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gzipped_embl.nf deleted file mode 100644 index cb942d0de..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gzipped_embl.nf +++ /dev/null @@ -1,24 +0,0 @@ -nextflow.enable.dsl=2 - -process GZIPPED_EMBL { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/antismash/chunking/gzipped_embl" - - input: - path uncompressed_file, stageAs: 'uncompressed_file' - - output: - stdout, emit: compressed_file - - script: - """ - pigz \ - -p \ - 16 \ - -c \ - ${uncompressed_file} \ - > "${uncompressed_file.name}.gz" \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gzipped_gbk.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gzipped_gbk.nf deleted file mode 100644 index acf26b677..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/gzipped_gbk.nf +++ /dev/null @@ -1,24 +0,0 @@ -nextflow.enable.dsl=2 - -process GZIPPED_GBK { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/antismash/chunking/gzipped_gbk" - - input: - path uncompressed_file, stageAs: 'uncompressed_file' - - output: - stdout, emit: compressed_file - - script: - """ - pigz \ - -p \ - 16 \ - -c \ - ${uncompressed_file} \ - > "${uncompressed_file.name}.gz" \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/hashsum.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/hashsum.nf deleted file mode 100644 index d3bfdc74f..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/hashsum.nf +++ /dev/null @@ -1,21 +0,0 @@ -nextflow.enable.dsl=2 - -process HASHSUM { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/hashsum" - - input: - path input_file, stageAs: 'input_file' - - output: - path "*sha1", emit: hashsum - - script: - def input_file = input_file ? "-i ${input_file}" : "" - """ - generate_checksum.py \ - ${input_file} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/hashsum_paired.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/hashsum_paired.nf deleted file mode 100644 index dce81fae6..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/hashsum_paired.nf +++ /dev/null @@ -1,42 +0,0 @@ -nextflow.enable.dsl=2 - -process HASHSUM_PAIRED { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/hashsum_paired" - - input: - path input_file, stageAs: 'input_file' - - output: - path "*sha1", emit: hashsum - - script: - def input_file = input_file ? "-i ${input_file}" : "" - """ - generate_checksum.py \ - ${input_file} \ - """ - -} - - -process HASHSUM_PAIRED { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/hashsum_paired" - - input: - path input_file, stageAs: 'input_file' - - output: - path "*sha1", emit: hashsum - - script: - def input_file = input_file ? "-i ${input_file}" : "" - """ - generate_checksum.py \ - ${input_file} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/hashsum_single.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/hashsum_single.nf deleted file mode 100644 index 689d20ff8..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/hashsum_single.nf +++ /dev/null @@ -1,42 +0,0 @@ -nextflow.enable.dsl=2 - -process HASHSUM_SINGLE { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/hashsum_single" - - input: - path input_file, stageAs: 'input_file' - - output: - path "*sha1", emit: hashsum - - script: - def input_file = input_file ? "-i ${input_file}" : "" - """ - generate_checksum.py \ - ${input_file} \ - """ - -} - - -process HASHSUM_SINGLE { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/hashsum_single" - - input: - path input_file, stageAs: 'input_file' - - output: - path "*sha1", emit: hashsum - - script: - def input_file = input_file ? "-i ${input_file}" : "" - """ - generate_checksum.py \ - ${input_file} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/header_addition.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/header_addition.nf deleted file mode 100644 index d8729f4ca..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/header_addition.nf +++ /dev/null @@ -1,23 +0,0 @@ -nextflow.enable.dsl=2 - -process HEADER_ADDITION { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/functional_annotation_and_post_processing/header_addition" - - input: - path input_table, stageAs: 'input_table' - val header - - output: - stdout, emit: output_table - - script: - """ - add_header \ - -i ${input_table} \ - -h ${header} \ - > ${${input_table}.baseName} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/hmmsearch.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/hmmsearch.nf deleted file mode 100644 index f41adfec0..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/hmmsearch.nf +++ /dev/null @@ -1,66 +0,0 @@ -nextflow.enable.dsl=2 - -process HMMSEARCH { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/functional_annotation_and_post_processing/functional_annotation/run_hmmer/hmmsearch" - - input: - path seqfile, stageAs: 'seqfile' - val path_database - val gathering_bit_score - val omit_alignment - - output: - path "*_hmmsearch.tbl", emit: output_table - - script: - def gathering_bit_score = gathering_bit_score == false ? "" : "--cut_ga" - def omit_alignment = omit_alignment == false ? "" : "--noali" - """ - hmmsearch \ - --cpu 4 \ - -o /dev/null \ - ${omit_alignment} \ - --domtblout "${${seqfile}.baseName}_hmmsearch.tbl" \ - ${gathering_bit_score} \ - ${path_database} \ - ${seqfile} \ - > /dev/null \ - 2> /dev/null \ - """ - -} - - -process HMMSEARCH { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/functional_annotation_and_post_processing/functional_annotation/run_hmmer/hmmsearch" - - input: - path seqfile, stageAs: 'seqfile' - val path_database - val gathering_bit_score - val omit_alignment - - output: - path "*_hmmsearch.tbl", emit: output_table - - script: - def gathering_bit_score = gathering_bit_score == false ? "" : "--cut_ga" - def omit_alignment = omit_alignment == false ? "" : "--noali" - """ - hmmsearch \ - --cpu 4 \ - -o /dev/null \ - ${omit_alignment} \ - --domtblout "${${seqfile}.baseName}_hmmsearch.tbl" \ - ${gathering_bit_score} \ - ${path_database} \ - ${seqfile} \ - > /dev/null \ - 2> /dev/null \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/index_reads.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/index_reads.nf deleted file mode 100644 index ed2941246..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/index_reads.nf +++ /dev/null @@ -1,40 +0,0 @@ -nextflow.enable.dsl=2 - -process INDEX_READS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/other_ncrnas/index_reads" - - input: - path sequences, stageAs: 'sequences' - - output: - tuple path("folder/{inputs.sequences.basename}"), path("*.ssi"), emit: sequences_with_index - - script: - """ - esl-index.sh \ - -f ${sequences} \ - """ - -} - - -process INDEX_READS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/other_ncrnas/index_reads" - - input: - path sequences, stageAs: 'sequences' - - output: - tuple path("folder/{inputs.sequences.basename}"), path("*.ssi"), emit: sequences_with_index - - script: - """ - esl-index.sh \ - -f ${sequences} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/interproscan.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/interproscan.nf deleted file mode 100644 index 197b0dd1e..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/interproscan.nf +++ /dev/null @@ -1,25 +0,0 @@ -nextflow.enable.dsl=2 - -process INTERPROSCAN { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/interproscan" - - input: - path input, stageAs: 'input' - - output: - path "{inputs.identifier}.hdt", emit: output - - script: - def cpu = params.threads ? params.threads : 2 - """ - java -Xmx5g -jar /SAPP-2.0.jar -interpro \ - -input ${input} \ - -cpu ${cpu} \ - -path ${params.interpro} \ - -a Pfam \ - -output "${params.identifier}.hdt" \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/join.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/join.nf deleted file mode 100644 index a995d9ccf..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/join.nf +++ /dev/null @@ -1,24 +0,0 @@ -nextflow.enable.dsl=2 - -process JOIN { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/functional_annotation_and_post_processing/diamond/post_processing_uniref90/join" - - input: - path input_diamond, stageAs: 'input_diamond' - val filename - val input_db - - output: - stdout, emit: output_join - - script: - """ - diamond_post_run_join.sh \ - -i ${input_diamond} \ - -d ${input_db} \ - > "${filename}_summary.diamond.without_header" \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/kegg_pathways.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/kegg_pathways.nf deleted file mode 100644 index c72185f9f..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/kegg_pathways.nf +++ /dev/null @@ -1,31 +0,0 @@ -nextflow.enable.dsl=2 - -process KEGG_PATHWAYS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/functional_annotation_and_post_processing/pathways/kegg_pathways" - - input: - path input_table, stageAs: 'input_table' - val graphs - val outputname - val pathways_classes - val pathways_names - - output: - stdout, emit: stdout - path "*summary.kegg_contigs*", emit: summary_contigs - path "*summary.kegg_pathways*", emit: summary_pathways - - script: - """ - give_pathways.py \ - -i ${input_table} \ - -c ${pathways_classes} \ - -g ${graphs} \ - -n ${pathways_names} \ - -o ${outputname} \ - > stdout.txt \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/kofamscan.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/kofamscan.nf deleted file mode 100644 index 1c6e8c776..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/kofamscan.nf +++ /dev/null @@ -1,25 +0,0 @@ -nextflow.enable.dsl=2 - -process KOFAMSCAN { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/kofamscan" - - input: - path input, stageAs: 'input' - - output: - path "{inputs.identifier}.kofamscan.ttl", emit: output - - script: - def threads = params.threads ? params.threads : 3 - """ - java -Xmx5g -jar /SAPP-2.0.jar -kofamscan \ - -input ${input} \ - -threads ${threads} \ - -kolist /ko_list \ - -output "${params.identifier}.kofamscan.ttl" \ - -profile /profiles/prokaryote.hal \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/length_filter.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/length_filter.nf deleted file mode 100644 index 8ae2ff38e..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/length_filter.nf +++ /dev/null @@ -1,56 +0,0 @@ -nextflow.enable.dsl=2 - -process LENGTH_FILTER { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/length_filter" - - input: - path seq_file, stageAs: 'seq_file' - val min_length - val submitted_seq_count - - output: - path "{inputs.seq_file.nameroot}.fasta", emit: filtered_file - path "inputs.stats_file_name", emit: stats_summary_file - - script: - """ - run_quality_filtering.py \ - ${seq_file} \ - "${${seq_file}.baseName}.fasta" \ - ${params.before_qc.length_filter_stats_file_name} \ - ${submitted_seq_count} \ - --min_length ${min_length} \ - --extension ${params.before_qc.length_filter_input_file_format} \ - """ - -} - - -process LENGTH_FILTER { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/length_filter" - - input: - path seq_file, stageAs: 'seq_file' - val min_length - val submitted_seq_count - - output: - path "{inputs.seq_file.nameroot}.fasta", emit: filtered_file - path "inputs.stats_file_name", emit: stats_summary_file - - script: - """ - run_quality_filtering.py \ - ${seq_file} \ - "${${seq_file}.baseName}.fasta" \ - ${params.before_qc.length_filter_stats_file_name} \ - ${submitted_seq_count} \ - --min_length ${min_length} \ - --extension ${params.before_qc.length_filter_input_file_format} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/make_tab_sep.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/make_tab_sep.nf deleted file mode 100644 index e8e699dc3..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/make_tab_sep.nf +++ /dev/null @@ -1,42 +0,0 @@ -nextflow.enable.dsl=2 - -process MAKE_TAB_SEP { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/functional_annotation_and_post_processing/functional_annotation/run_hmmer/make_tab_sep" - - input: - path input_table, stageAs: 'input_table' - - output: - path "*.tsv", emit: output_with_tabs - - script: - """ - hmmscan_tab.py \ - -i ${input_table} \ - -o "${${input_table}.baseName}.tsv" \ - """ - -} - - -process MAKE_TAB_SEP { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/functional_annotation_and_post_processing/functional_annotation/run_hmmer/make_tab_sep" - - input: - path input_table, stageAs: 'input_table' - - output: - path "*.tsv", emit: output_with_tabs - - script: - """ - hmmscan_tab.py \ - -i ${input_table} \ - -o "${${input_table}.baseName}.tsv" \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/mapseq.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/mapseq.nf deleted file mode 100644 index abd919ac0..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/mapseq.nf +++ /dev/null @@ -1,102 +0,0 @@ -nextflow.enable.dsl=2 - -process MAPSEQ { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/classify_ssus/mapseq" - - input: - tuple path(primary), path(mscluster) - path prefix, stageAs: 'prefix' - path sequences, stageAs: 'sequences' - val taxonomy - - output: - stdout, emit: classifications - - script: - """ - mapseq \ - -nthreads \ - 8 \ - -tophits \ - 80 \ - -topotus \ - 40 \ - -outfmt \ - simple \ - ${sequences} \ - ${primary} \ - ${taxonomy} \ - > "${${prefix}.baseName}_${primary.name}.mseq" \ - """ - -} - - -process MAPSEQ { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/classify_ssus/mapseq" - - input: - tuple path(primary), path(mscluster) - path prefix, stageAs: 'prefix' - path sequences, stageAs: 'sequences' - val taxonomy - - output: - stdout, emit: classifications - - script: - """ - mapseq \ - -nthreads \ - 8 \ - -tophits \ - 80 \ - -topotus \ - 40 \ - -outfmt \ - simple \ - ${sequences} \ - ${primary} \ - ${taxonomy} \ - > "${${prefix}.baseName}_${primary.name}.mseq" \ - """ - -} - - -process MAPSEQ { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/classify_ssus/mapseq" - - input: - tuple path(primary), path(mscluster) - path prefix, stageAs: 'prefix' - path sequences, stageAs: 'sequences' - val taxonomy - - output: - stdout, emit: classifications - - script: - """ - mapseq \ - -nthreads \ - 8 \ - -tophits \ - 80 \ - -topotus \ - 40 \ - -outfmt \ - simple \ - ${sequences} \ - ${primary} \ - ${taxonomy} \ - > "${${prefix}.baseName}_${primary.name}.mseq" \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/mask_for_ITS.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/mask_for_ITS.nf deleted file mode 100644 index 4999d3153..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/mask_for_ITS.nf +++ /dev/null @@ -1,23 +0,0 @@ -nextflow.enable.dsl=2 - -process MASK_FOR_ITS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/its/mask_for_its" - - input: - path maskfile, stageAs: 'maskfile' - path sequences, stageAs: 'sequences' - - output: - path "ITS_masked.fasta", emit: masked_sequences - - script: - """ - bedtools maskfasta \ - -fo ITS_masked.fasta \ - -fi ${sequences} \ - -bed ${maskfile} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/memote_files_to_folder.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/memote_files_to_folder.nf deleted file mode 100644 index d310bf66d..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/memote_files_to_folder.nf +++ /dev/null @@ -1,23 +0,0 @@ -nextflow.enable.dsl=2 - -import groovy.json.JsonSlurper -def jsonSlurper = new JsonSlurper() - -process MEMOTE_FILES_TO_FOLDER { - debug true - container "node:latest" - publishDir "${params.outdir}/memote_files_to_folder" - - input: - path files - - output: - path "${jsonSlurper.parseText(file("${task.workDir}/cwl.output.json").text)['results']}", emit: results - - script: - """ - nodejs files_to_folder.js \ - > cwl.output.json \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/memote_report_snapshot.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/memote_report_snapshot.nf deleted file mode 100644 index 3bdb5c215..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/memote_report_snapshot.nf +++ /dev/null @@ -1,33 +0,0 @@ -nextflow.enable.dsl=2 - -process MEMOTE_REPORT_SNAPSHOT { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/memote_report_snapshot" - - input: - path gem, stageAs: 'gem' - - output: - path "{inputs.GEM.basename}_MEMOTE.html", optional: true, emit: report_html - path "{inputs.GEM.basename}_MEMOTE.json.gz", optional: true, emit: run_json - - script: - def report_snapshot = params.memote_report_snapshot_report_snapshot == false ? "" : "None" - def skip_test_find_metabolites_consumed_with_closed_bounds = params.memote_report_snapshot_skip_test_find_metabolites_consumed_with_closed_bounds == false ? "" : "--skip test_find_metabolites_consumed_with_closed_bounds" - def skip_test_find_metabolites_not_consumed_with_open_bounds = params.memote_report_snapshot_skip_test_find_metabolites_not_consumed_with_open_bounds == false ? "" : "--skip test_find_metabolites_not_consumed_with_open_bounds" - def skip_test_find_metabolites_not_produced_with_open_bounds = params.memote_report_snapshot_skip_test_find_metabolites_not_produced_with_open_bounds == false ? "" : "--skip test_find_metabolites_not_produced_with_open_bounds" - def skip_test_find_metabolites_produced_with_closed_bounds = params.memote_report_snapshot_skip_test_find_metabolites_produced_with_closed_bounds == false ? "" : "--skip test_find_metabolites_produced_with_closed_bounds" - """ - bash script.sh \ - ${report_snapshot} \ - <js>${ if (inputs.run){ return "run --filename " + inputs.GEM.basename + "_MEMOTE.json.gz"; } else { return ''; }}</js> \ - <js>${ if (inputs.report_snapshot){ return "report snapshot --filename " + inputs.GEM.basename + "_MEMOTE.html"; } else { return ''; }}</js> \ - ${skip_test_find_metabolites_produced_with_closed_bounds} \ - ${skip_test_find_metabolites_consumed_with_closed_bounds} \ - ${skip_test_find_metabolites_not_produced_with_open_bounds} \ - ${skip_test_find_metabolites_not_consumed_with_open_bounds} \ - ${gem} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/memote_run.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/memote_run.nf deleted file mode 100644 index df5e2912e..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/memote_run.nf +++ /dev/null @@ -1,33 +0,0 @@ -nextflow.enable.dsl=2 - -process MEMOTE_RUN { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/memote_run" - - input: - path gem, stageAs: 'gem' - - output: - path "{inputs.GEM.basename}_MEMOTE.html", optional: true, emit: report_html - path "{inputs.GEM.basename}_MEMOTE.json.gz", optional: true, emit: run_json - - script: - def run = params.memote_run_run == false ? "" : "None" - def skip_test_find_metabolites_consumed_with_closed_bounds = params.memote_run_skip_test_find_metabolites_consumed_with_closed_bounds == false ? "" : "--skip test_find_metabolites_consumed_with_closed_bounds" - def skip_test_find_metabolites_not_consumed_with_open_bounds = params.memote_run_skip_test_find_metabolites_not_consumed_with_open_bounds == false ? "" : "--skip test_find_metabolites_not_consumed_with_open_bounds" - def skip_test_find_metabolites_not_produced_with_open_bounds = params.memote_run_skip_test_find_metabolites_not_produced_with_open_bounds == false ? "" : "--skip test_find_metabolites_not_produced_with_open_bounds" - def skip_test_find_metabolites_produced_with_closed_bounds = params.memote_run_skip_test_find_metabolites_produced_with_closed_bounds == false ? "" : "--skip test_find_metabolites_produced_with_closed_bounds" - """ - bash script.sh \ - ${run} \ - <js>${ if (inputs.run){ return "run --filename " + inputs.GEM.basename + "_MEMOTE.json.gz"; } else { return ''; }}</js> \ - <js>${ if (inputs.report_snapshot){ return "report snapshot --filename " + inputs.GEM.basename + "_MEMOTE.html"; } else { return ''; }}</js> \ - ${skip_test_find_metabolites_produced_with_closed_bounds} \ - ${skip_test_find_metabolites_consumed_with_closed_bounds} \ - ${skip_test_find_metabolites_not_produced_with_open_bounds} \ - ${skip_test_find_metabolites_not_consumed_with_open_bounds} \ - ${gem} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/motus_classification.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/motus_classification.nf deleted file mode 100644 index b0deb1cc0..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/motus_classification.nf +++ /dev/null @@ -1,25 +0,0 @@ -nextflow.enable.dsl=2 - -process MOTUS_CLASSIFICATION { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/motus_taxonomy/motus_classification" - - input: - path reads, stageAs: 'reads' - - output: - stdout, emit: motu_taxonomy - - script: - """ - motus \ - -t 4 \ - profile \ - -c \ - -q \ - -s ${reads} \ - > "${${reads}.baseName}.motus" \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/move_antismash_summary_to_pathways_systems_folder.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/move_antismash_summary_to_pathways_systems_folder.nf deleted file mode 100644 index 67794530c..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/move_antismash_summary_to_pathways_systems_folder.nf +++ /dev/null @@ -1,22 +0,0 @@ -nextflow.enable.dsl=2 - -process MOVE_ANTISMASH_SUMMARY_TO_PATHWAYS_SYSTEMS_FOLDER { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/functional_annotation_and_post_processing/move_antismash_summary_to_pathways_systems_folder" - - input: - path antismash_summary, stageAs: 'antismash_summary' - - output: - path "inputs.folder_name", emit: summary_in_folder - - script: - def antismash_summary = antismash_summary ? "-a ${antismash_summary}" : "" - """ - move_antismash_summary.py \ - ${antismash_summary} \ - -f ${params.after_qc.functional_annotation_and_post_processing.move_antismash_summary_to_pathways_systems_folder_folder_name} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/move_to_functional_annotation_folder.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/move_to_functional_annotation_folder.nf deleted file mode 100644 index 4bb59ed61..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/move_to_functional_annotation_folder.nf +++ /dev/null @@ -1,23 +0,0 @@ -nextflow.enable.dsl=2 - -import groovy.json.JsonSlurper -def jsonSlurper = new JsonSlurper() - -process MOVE_TO_FUNCTIONAL_ANNOTATION_FOLDER { - debug true - container "node:latest" - publishDir "${params.outdir}/after_qc/functional_annotation_and_post_processing/move_to_functional_annotation_folder" - - input: - path file_list - - output: - path "${jsonSlurper.parseText(file("${task.workDir}/cwl.output.json").text)['out']}", emit: out - - script: - """ - nodejs return_directory.js \ - > cwl.output.json \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/move_to_pathways_systems_folder.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/move_to_pathways_systems_folder.nf deleted file mode 100644 index 44434a910..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/move_to_pathways_systems_folder.nf +++ /dev/null @@ -1,23 +0,0 @@ -nextflow.enable.dsl=2 - -import groovy.json.JsonSlurper -def jsonSlurper = new JsonSlurper() - -process MOVE_TO_PATHWAYS_SYSTEMS_FOLDER { - debug true - container "node:latest" - publishDir "${params.outdir}/after_qc/functional_annotation_and_post_processing/move_to_pathways_systems_folder" - - input: - path file_list - - output: - path "${jsonSlurper.parseText(file("${task.workDir}/cwl.output.json").text)['out']}", emit: out - - script: - """ - nodejs return_directory.js \ - > cwl.output.json \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/move_to_seq_cat_folder.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/move_to_seq_cat_folder.nf deleted file mode 100644 index e678ce56b..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/move_to_seq_cat_folder.nf +++ /dev/null @@ -1,46 +0,0 @@ -nextflow.enable.dsl=2 - -import groovy.json.JsonSlurper -def jsonSlurper = new JsonSlurper() - -process MOVE_TO_SEQ_CAT_FOLDER { - debug true - container "node:latest" - publishDir "${params.outdir}/after_qc/move_to_seq_cat_folder" - - input: - path file_list - - output: - path "${jsonSlurper.parseText(file("${task.workDir}/cwl.output.json").text)['out']}", emit: out - - script: - """ - nodejs return_directory.js \ - > cwl.output.json \ - """ - -} - - -import groovy.json.JsonSlurper -def jsonSlurper = new JsonSlurper() - -process MOVE_TO_SEQ_CAT_FOLDER { - debug true - container "node:latest" - publishDir "${params.outdir}/after_qc/move_to_seq_cat_folder" - - input: - path file_list - - output: - path "${jsonSlurper.parseText(file("${task.workDir}/cwl.output.json").text)['out']}", emit: out - - script: - """ - nodejs return_directory.js \ - > cwl.output.json \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/ngtax.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/ngtax.nf deleted file mode 100644 index 6ca2137fc..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/ngtax.nf +++ /dev/null @@ -1,141 +0,0 @@ -nextflow.enable.dsl=2 - -process NGTAX { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/ngtax" - - input: - path forward_reads, stageAs: 'forward_reads' - path mapping_file, stageAs: 'mapping_file' - path reverse_reads, stageAs: 'reverse_reads' - - output: - path "demultiplexed/*", emit: output - - script: - """ - -demultiplex -output demultiplexed \ - -mapFile ${mapping_file} \ - -for_p ${params.forward_primer} \ - -rev_p ${params.reverse_primer} \ - -fastQ <js>inputs.forward_reads.path),$(inputs.reverse_reads</js> \ - """ - -} - - -process NGTAX { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/ngtax" - - output: - path "{inputs.sample}_NG-Tax_{inputs.for_read_len}.biom", emit: biom - path "ngtax2.stdout.log", emit: stdout_out - path "{inputs.sample}_NG-Tax_{inputs.for_read_len}.ttl", emit: turtle - - script: - def reference_db = params.reference_db ? "-refdb ${params.reference_db}" : "" - def rev_read_len = params.rev_read_len ? "-rev_read_len ${params.rev_read_len}" : "" - def reverse_primer = params.reverse_primer ? "-rev_p ${params.reverse_primer}" : "" - """ - java -jar /NGTax-2.2.9.jar -ngtax -mapFile cwl_mapping_file.txt \ - ${reference_db} \ - -for_p ${params.forward_primer} \ - -for_read_len ${params.for_read_len} \ - ${reverse_primer} \ - ${rev_read_len} \ - -b "${params.sample}_NG-Tax_${params.for_read_len}.biom" \ - -fragment ${params.fragment} \ - -mock3 ${params.mock3} \ - -mock4 ${params.mock4} \ - -t "${params.sample}_NG-Tax_${params.for_read_len}.ttl" \ - > ngtax2.stdout.log \ - """ - -} - - -process NGTAX { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/ngtax" - - input: - path reference_db, stageAs: 'reference_db' - path folder, stageAs: 'folder' - - output: - path "{inputs.sample}_NG-Tax_{inputs.for_read_len}.biom", emit: biom - path "ngtax2.stdout.log", emit: stdout_out - path "{inputs.sample}_NG-Tax_{inputs.for_read_len}.ttl", emit: turtle - - script: - def folder = folder ? "-folder ${folder}" : "" - def mock3 = null - def mock4 = null - def primers_removed = params.primers_removed == false ? "" : "-primersRemoved" - def reference_db = reference_db ? "-refdb ${reference_db}" : "" - def rev_read_len = params.rev_read_len ? "-rev_read_len ${params.rev_read_len}" : "" - def reverse_primer = params.reverse_primer ? "-rev_p ${params.reverse_primer}" : "" - """ - java -jar /NGTax-2.2.9.jar -ngtax -mapFile cwl_mapping_file.txt \ - ${reference_db} \ - ${folder} \ - -for_p ${params.forward_primer} \ - -for_read_len ${params.for_read_len} \ - ${reverse_primer} \ - ${rev_read_len} \ - ${primers_removed} \ - -b "${params.sample}_NG-Tax_${params.for_read_len}.biom" \ - -fragment ${params.fragment} \ - -mock3 ${mock3} \ - -mock4 ${mock4} \ - -t "${params.sample}_NG-Tax_${params.for_read_len}.ttl" \ - > ngtax2.stdout.log \ - """ - -} - - -process NGTAX { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/ngtax" - - input: - path reference_db, stageAs: 'reference_db' - path folder, stageAs: 'folder' - - output: - path "{inputs.sample}_NG-Tax_{inputs.for_read_len}.biom", emit: biom - path "ngtax2.stdout.log", emit: stdout_out - path "{inputs.sample}_NG-Tax_{inputs.for_read_len}.ttl", emit: turtle - - script: - def folder = folder ? "-folder ${folder}" : "" - def mock3 = null - def mock4 = null - def primers_removed = params.primers_removed == false ? "" : "-primersRemoved" - def reference_db = reference_db ? "-refdb ${reference_db}" : "" - def rev_read_len = params.rev_read_len ? "-rev_read_len ${params.rev_read_len}" : "" - def reverse_primer = params.reverse_primer ? "-rev_p ${params.reverse_primer}" : "" - """ - java -jar /NGTax-2.2.9.jar -ngtax -mapFile cwl_mapping_file.txt \ - ${reference_db} \ - ${folder} \ - -for_p ${params.forward_primer} \ - -for_read_len ${params.for_read_len} \ - ${reverse_primer} \ - ${rev_read_len} \ - ${primers_removed} \ - -b "${params.sample}_NG-Tax_${params.for_read_len}.biom" \ - -fragment ${params.fragment} \ - -mock3 ${mock3} \ - -mock4 ${mock4} \ - -t "${params.sample}_NG-Tax_${params.for_read_len}.ttl" \ - > ngtax2.stdout.log \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/ngtax_files_to_folder.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/ngtax_files_to_folder.nf deleted file mode 100644 index a5d322443..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/ngtax_files_to_folder.nf +++ /dev/null @@ -1,69 +0,0 @@ -nextflow.enable.dsl=2 - -import groovy.json.JsonSlurper -def jsonSlurper = new JsonSlurper() - -process NGTAX_FILES_TO_FOLDER { - debug true - container "node:latest" - publishDir "${params.outdir}/ngtax_files_to_folder" - - input: - path files - - output: - path "${jsonSlurper.parseText(file("${task.workDir}/cwl.output.json").text)['results']}", emit: results - - script: - """ - nodejs files_to_folder.js \ - > cwl.output.json \ - """ - -} - - -import groovy.json.JsonSlurper -def jsonSlurper = new JsonSlurper() - -process NGTAX_FILES_TO_FOLDER { - debug true - container "node:latest" - publishDir "${params.outdir}/ngtax_files_to_folder" - - input: - path files - - output: - path "${jsonSlurper.parseText(file("${task.workDir}/cwl.output.json").text)['results']}", emit: results - - script: - """ - nodejs files_to_folder.js \ - > cwl.output.json \ - """ - -} - - -import groovy.json.JsonSlurper -def jsonSlurper = new JsonSlurper() - -process NGTAX_FILES_TO_FOLDER { - debug true - container "node:latest" - publishDir "${params.outdir}/ngtax_files_to_folder" - - input: - path files - - output: - path "${jsonSlurper.parseText(file("${task.workDir}/cwl.output.json").text)['results']}", emit: results - - script: - """ - nodejs files_to_folder.js \ - > cwl.output.json \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/ngtax_to_tsv_fasta.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/ngtax_to_tsv_fasta.nf deleted file mode 100644 index 0ff89fa23..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/ngtax_to_tsv_fasta.nf +++ /dev/null @@ -1,99 +0,0 @@ -nextflow.enable.dsl=2 - -process NGTAX_TO_TSV_FASTA { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/ngtax_to_tsv_fasta" - - input: - path input, stageAs: 'input' - path metadata, stageAs: 'metadata' - - output: - path "*_asv.tsv", emit: physeq_asv - path "*_met.tsv", emit: physeq_met - path "*_seq.tsv", emit: physeq_seq - path "*_tax.tsv", emit: physeq_tax - path "*.picrust.fasta", emit: picrust_fasta - path "*.picrust.tsv", emit: picrust_tsv - - script: - """ - python3 /scripts/ngtax_to_tsv-fasta.py \ - -t \ - ${input} \ - -i \ - ${params.sample} \ - -f \ - ${params.fragment} \ - -m \ - ${metadata} \ - """ - -} - - -process NGTAX_TO_TSV_FASTA { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/ngtax_to_tsv_fasta" - - input: - path input, stageAs: 'input' - path metadata, stageAs: 'metadata' - - output: - path "*_asv.tsv", emit: physeq_asv - path "*_met.tsv", emit: physeq_met - path "*_seq.tsv", emit: physeq_seq - path "*_tax.tsv", emit: physeq_tax - path "*.picrust.fasta", emit: picrust_fasta - path "*.picrust.tsv", emit: picrust_tsv - - script: - """ - python3 /scripts/ngtax_to_tsv-fasta.py \ - -t \ - ${input} \ - -i \ - ${params.sample} \ - -f \ - ${params.fragment} \ - -m \ - ${metadata} \ - """ - -} - - -process NGTAX_TO_TSV_FASTA { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/ngtax_to_tsv_fasta" - - input: - path input, stageAs: 'input' - path metadata, stageAs: 'metadata' - - output: - path "*_asv.tsv", emit: physeq_asv - path "*_met.tsv", emit: physeq_met - path "*_seq.tsv", emit: physeq_seq - path "*_tax.tsv", emit: physeq_tax - path "*.picrust.fasta", emit: picrust_fasta - path "*.picrust.tsv", emit: picrust_tsv - - script: - """ - python3 /scripts/ngtax_to_tsv-fasta.py \ - -t \ - ${input} \ - -i \ - ${params.sample} \ - -f \ - ${params.fragment} \ - -m \ - ${metadata} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/no_tax_file_flag.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/no_tax_file_flag.nf deleted file mode 100644 index 4ca4ea80e..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/no_tax_file_flag.nf +++ /dev/null @@ -1,51 +0,0 @@ -nextflow.enable.dsl=2 - -process NO_TAX_FILE_FLAG { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/no_tax_file_flag" - - output: - path "inputs.filename", emit: created_file - - script: - """ - touch \ - ${params.after_qc.no_tax_file_flag_filename} \ - """ - -} - - -process NO_TAX_FILE_FLAG { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/no_tax_file_flag" - - output: - path "inputs.filename", emit: created_file - - script: - """ - touch \ - ${params.after_qc.no_tax_file_flag_filename} \ - """ - -} - - -process NO_TAX_FILE_FLAG { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/no_tax_file_flag" - - output: - path "inputs.filename", emit: created_file - - script: - """ - touch \ - ${params.after_qc.no_tax_file_flag_filename} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/overlap_reads.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/overlap_reads.nf deleted file mode 100644 index 0392934a0..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/overlap_reads.nf +++ /dev/null @@ -1,64 +0,0 @@ -nextflow.enable.dsl=2 - -process OVERLAP_READS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/overlap_reads/overlap_reads" - - input: - path forward_reads, stageAs: 'forward_reads' - path namefile, stageAs: 'namefile' - path reverse_reads, stageAs: 'reverse_reads' - - output: - path "forward_unmerged.fastq.gz", emit: forward_unmerged_reads - path "*_MERGED*", emit: merged_reads - path "reverse_unmerged.fastq.gz", emit: reverse_unmerged_reads - - script: - def forward_reads = forward_reads ? "-f ${forward_reads}" : "" - def reverse_reads = reverse_reads ? "-r ${reverse_reads}" : "" - """ - SeqPrep \ - ${forward_reads} \ - ${reverse_reads} \ - -s <js>${ return inputs.namefile.nameroot.split('_')[0] + '_MERGED.fastq.gz' }</js> \ - -1 \ - forward_unmerged.fastq.gz \ - -2 \ - reverse_unmerged.fastq.gz \ - """ - -} - - -process OVERLAP_READS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/overlap_reads/overlap_reads" - - input: - path forward_reads, stageAs: 'forward_reads' - path namefile, stageAs: 'namefile' - path reverse_reads, stageAs: 'reverse_reads' - - output: - path "forward_unmerged.fastq.gz", emit: forward_unmerged_reads - path "*_MERGED*", emit: merged_reads - path "reverse_unmerged.fastq.gz", emit: reverse_unmerged_reads - - script: - def forward_reads = forward_reads ? "-f ${forward_reads}" : "" - def reverse_reads = reverse_reads ? "-r ${reverse_reads}" : "" - """ - SeqPrep \ - ${forward_reads} \ - ${reverse_reads} \ - -s <js>${ return inputs.namefile.nameroot.split('_')[0] + '_MERGED.fastq.gz' }</js> \ - -1 \ - forward_unmerged.fastq.gz \ - -2 \ - reverse_unmerged.fastq.gz \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/pairwise_align_avg_structs.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/pairwise_align_avg_structs.nf deleted file mode 100644 index d5668c41a..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/pairwise_align_avg_structs.nf +++ /dev/null @@ -1,25 +0,0 @@ -nextflow.enable.dsl=2 - -process PAIRWISE_ALIGN_AVG_STRUCTS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/unmapped_from_pfam/pairwise_align_avg_structs" - - input: - path core_avg - path query_dir, stageAs: 'query_dir' - - output: - path "<js>${ if (typeof inputs.result_file === 'string') {return inputs.result_file} else {return [ inputs.result_file.basename]}}</js>", emit: alignment_out - - script: - def core_avg = core_avg.join(' ') - def query_dir = query_dir ? "-d ${query_dir}" : "" - """ - python3 pairwise_aligner.py \ - ${query_dir} \ - -t ${core_avg} \ - -r align_Struct_analysis.csv \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/parsing_hmmscan.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/parsing_hmmscan.nf deleted file mode 100644 index b40a2b343..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/parsing_hmmscan.nf +++ /dev/null @@ -1,24 +0,0 @@ -nextflow.enable.dsl=2 - -process PARSING_HMMSCAN { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/functional_annotation_and_post_processing/pathways/parsing_hmmscan" - - input: - path fasta, stageAs: 'fasta' - path table, stageAs: 'table' - - output: - path "*_parsed*", emit: output_table - - script: - """ - parsing_hmmscan.py \ - -f ${fasta} \ - -i ${table} \ - 2> stderr.txt \ - > stdout.txt \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/per_dom_instance.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/per_dom_instance.nf deleted file mode 100644 index 1a97e1db6..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/per_dom_instance.nf +++ /dev/null @@ -1,21 +0,0 @@ -nextflow.enable.dsl=2 - -process PER_DOM_INSTANCE { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/chop_and_avg_for_pfam2_cath/chop_and_avg_from_list/per_dom_instance" - - input: - path fam_structs, stageAs: 'fam_structs' - - output: - path "*.json", emit: dom_per_fam - stdout, emit: family_name - - script: - """ - python3 crossmapped_per_unp_dom.py \ - -f ${fam_structs} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/per_unp_dom_instance.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/per_unp_dom_instance.nf deleted file mode 100644 index 2d0f4ef60..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/per_unp_dom_instance.nf +++ /dev/null @@ -1,21 +0,0 @@ -nextflow.enable.dsl=2 - -process PER_UNP_DOM_INSTANCE { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/unmapped_from_pfam/per_unp_dom_instance" - - input: - path fam_structs, stageAs: 'fam_structs' - - output: - path "*.json", emit: dom_per_fam - stdout, emit: family_name - - script: - """ - python3 crossmapped_per_unp_dom.py \ - -f ${fam_structs} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/pfam.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/pfam.nf deleted file mode 100644 index 6ff9b85ec..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/pfam.nf +++ /dev/null @@ -1,24 +0,0 @@ -nextflow.enable.dsl=2 - -process PFAM { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/functional_annotation_and_post_processing/pfam" - - input: - path interpro, stageAs: 'interpro' - val outputname - - output: - stdout, emit: annotations - - script: - """ - \ - awk \ - /Pfam/ \ - ${interpro} \ - > ${outputname} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/phyloseq_files_to_folder.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/phyloseq_files_to_folder.nf deleted file mode 100644 index a72dded1d..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/phyloseq_files_to_folder.nf +++ /dev/null @@ -1,69 +0,0 @@ -nextflow.enable.dsl=2 - -import groovy.json.JsonSlurper -def jsonSlurper = new JsonSlurper() - -process PHYLOSEQ_FILES_TO_FOLDER { - debug true - container "node:latest" - publishDir "${params.outdir}/phyloseq_files_to_folder" - - input: - path files - - output: - path "${jsonSlurper.parseText(file("${task.workDir}/cwl.output.json").text)['results']}", emit: results - - script: - """ - nodejs files_to_folder.js \ - > cwl.output.json \ - """ - -} - - -import groovy.json.JsonSlurper -def jsonSlurper = new JsonSlurper() - -process PHYLOSEQ_FILES_TO_FOLDER { - debug true - container "node:latest" - publishDir "${params.outdir}/phyloseq_files_to_folder" - - input: - path files - - output: - path "${jsonSlurper.parseText(file("${task.workDir}/cwl.output.json").text)['results']}", emit: results - - script: - """ - nodejs files_to_folder.js \ - > cwl.output.json \ - """ - -} - - -import groovy.json.JsonSlurper -def jsonSlurper = new JsonSlurper() - -process PHYLOSEQ_FILES_TO_FOLDER { - debug true - container "node:latest" - publishDir "${params.outdir}/phyloseq_files_to_folder" - - input: - path files - - output: - path "${jsonSlurper.parseText(file("${task.workDir}/cwl.output.json").text)['results']}", emit: results - - script: - """ - nodejs files_to_folder.js \ - > cwl.output.json \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/picrust2.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/picrust2.nf deleted file mode 100644 index 24f7e31ac..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/picrust2.nf +++ /dev/null @@ -1,45 +0,0 @@ -nextflow.enable.dsl=2 - -process PICRUST2 { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/picrust2" - - input: - path fasta, stageAs: 'fasta' - path input_table, stageAs: 'input_table' - - output: - path "{inputs.identifier}_PICRUSt2/COG_metagenome_out", emit: COG_metagenome_out - path "{inputs.identifier}_PICRUSt2/EC_metagenome_out", emit: EC_metagenome_out - path "{inputs.identifier}_PICRUSt2/EC_predicted.tsv.gz", emit: EC_predicted.tsv.gz - path "{inputs.identifier}_PICRUSt2/KO_metagenome_out", emit: KO_metagenome_out - path "{inputs.identifier}_PICRUSt2/KO_predicted.tsv.gz", emit: KO_predicted.tsv.gz - path "{inputs.identifier}_PICRUSt2/PFAM_metagenome_out", emit: PFAM_metagenome_out - path "{inputs.identifier}_PICRUSt2/PFAM_predicted.tsv.gz", emit: PFAM_predicted.tsv.gz - path "{inputs.identifier}_PICRUSt2/TIGRFAM_metagenome_out", emit: TIGRFAM_metagenome_out - path "{inputs.identifier}_PICRUSt2/TIGRFAM_predicted.tsv.gz", emit: TIGRFAM_predicted.tsv.gz - path "{inputs.identifier}_PICRUSt2/intermediate", emit: intermediate - path "{inputs.identifier}_PICRUSt2/marker_predicted_and_nsti.tsv.gz", emit: marker_predicted_and_nsti.tsv.gz - path "{inputs.identifier}_PICRUSt2/out.tre", emit: out.tre - path "{inputs.identifier}_PICRUSt2/pathways_out", emit: pathways_out - path "{inputs.identifier}_picrust2.stderr.log", emit: stderr_out - path "{inputs.identifier}_picrust2.stdout.log", emit: stdout_out - - script: - def stratified = params.picrust2_stratified == false ? "" : "--stratified" - def threads = params.threads ? params.threads : 2 - """ - picrust2_pipeline.py \ - -i ${input_table} \ - -s ${fasta} \ - -p ${threads} \ - ${stratified} \ - --in_traits COG,EC,KO,PFAM,TIGRFAM \ - --in_traits ${"COG,EC,KO,PFAM,TIGRFAM"} \ - -o "${params.sample}_PICRUSt2" \ - 2> "${params.sample}_picrust2.stderr.log" \ - > "${params.sample}_picrust2.stdout.log" \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/picrust_files_to_folder.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/picrust_files_to_folder.nf deleted file mode 100644 index 93762cb4c..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/picrust_files_to_folder.nf +++ /dev/null @@ -1,24 +0,0 @@ -nextflow.enable.dsl=2 - -import groovy.json.JsonSlurper -def jsonSlurper = new JsonSlurper() - -process PICRUST_FILES_TO_FOLDER { - debug true - container "node:latest" - publishDir "${params.outdir}/picrust_files_to_folder" - - input: - path files - path folders - - output: - path "${jsonSlurper.parseText(file("${task.workDir}/cwl.output.json").text)['results']}", emit: results - - script: - """ - nodejs files_to_folder.js \ - > cwl.output.json \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/pilon.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/pilon.nf deleted file mode 100644 index e71172b79..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/pilon.nf +++ /dev/null @@ -1,34 +0,0 @@ -nextflow.enable.dsl=2 - -process PILON { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/pilon" - - input: - path assembly, stageAs: 'assembly' - path bam_file, stageAs: 'bam_file' - - output: - path "{inputs.identifier}_pilon.log", emit: pilon_log - path "{inputs.identifier}_pilon_polished.fasta", emit: pilon_polished_assembly - path "{inputs.identifier}_pilon_polished.vcf", emit: pilon_vcf - - script: - def fixlist = params.fixlist ? "--fix ${params.fixlist}" : "" - def threads = params.threads ? params.threads : 2 - """ - java \ - --frags ${bam_file} \ - --genome ${assembly} \ - ${fixlist} \ - --threads ${threads} \ - --vcf \ - --output "${params.identifier}_pilon_polished" \ - -jar \ - "-Xmx${params.memory}M" \ - /venv/share/pilon-1.24-0/pilon.jar \ - > "${params.identifier}_pilon.log" \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/post_processing.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/post_processing.nf deleted file mode 100644 index 46081de1e..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/post_processing.nf +++ /dev/null @@ -1,75 +0,0 @@ -nextflow.enable.dsl=2 - -process POST_PROCESSING { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/cgc/combined_gene_caller/post_processing" - - input: - path masking_file, stageAs: 'masking_file' - path predicted_proteins_fgs_faa, stageAs: 'predicted_proteins_fgs_faa' - path predicted_proteins_fgs_ffn, stageAs: 'predicted_proteins_fgs_ffn' - path predicted_proteins_fgs_out, stageAs: 'predicted_proteins_fgs_out' - path predicted_proteins_prodigal_faa, stageAs: 'predicted_proteins_prodigal_faa' - path predicted_proteins_prodigal_ffn, stageAs: 'predicted_proteins_prodigal_ffn' - path predicted_proteins_prodigal_out, stageAs: 'predicted_proteins_prodigal_out' - val basename - - output: - path "{inputs.basename}.faa", emit: predicted_proteins - path "{inputs.basename}.ffn", emit: predicted_seq - path "stderr.txt", emit: stderr - stdout, emit: stdout - - script: - def predicted_proteins_prodigal_faa = predicted_proteins_prodigal_faa ? "--prodigal-faa ${predicted_proteins_prodigal_faa}" : "" - def predicted_proteins_prodigal_ffn = predicted_proteins_prodigal_ffn ? "--prodigal-ffn ${predicted_proteins_prodigal_ffn}" : "" - def predicted_proteins_prodigal_out = predicted_proteins_prodigal_out ? "--prodigal-out ${predicted_proteins_prodigal_out}" : "" - """ - unite_protein_predictions.py \ - --fgs-faa ${predicted_proteins_fgs_faa} \ - --fgs-ffn ${predicted_proteins_fgs_ffn} \ - --fgs-out ${predicted_proteins_fgs_out} \ - --mask ${masking_file} \ - ${predicted_proteins_prodigal_faa} \ - ${predicted_proteins_prodigal_ffn} \ - ${predicted_proteins_prodigal_out} \ - --name ${basename} \ - 2> stderr.txt \ - > stdout.txt \ - """ - -} - - -process POST_PROCESSING { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/cgc/combined_gene_caller/post_processing" - - input: - path masking_file, stageAs: 'masking_file' - path predicted_proteins_fgs_faa, stageAs: 'predicted_proteins_fgs_faa' - path predicted_proteins_fgs_ffn, stageAs: 'predicted_proteins_fgs_ffn' - path predicted_proteins_fgs_out, stageAs: 'predicted_proteins_fgs_out' - val basename - - output: - path "{inputs.basename}.faa", emit: predicted_proteins - path "{inputs.basename}.ffn", emit: predicted_seq - path "stderr.txt", emit: stderr - stdout, emit: stdout - - script: - """ - unite_protein_predictions.py \ - --fgs-faa ${predicted_proteins_fgs_faa} \ - --fgs-ffn ${predicted_proteins_fgs_ffn} \ - --fgs-out ${predicted_proteins_fgs_out} \ - --mask ${masking_file} \ - --name ${basename} \ - 2> stderr.txt \ - > stdout.txt \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/prodigal.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/prodigal.nf deleted file mode 100644 index 8780160d6..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/prodigal.nf +++ /dev/null @@ -1,48 +0,0 @@ -nextflow.enable.dsl=2 - -process PRODIGAL { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/prodigal" - - input: - path input_fasta, stageAs: 'input_fasta' - - output: - path "{inputs.input_fasta.nameroot}.prodigal.faa", emit: predicted_proteins_faa - path "{inputs.input_fasta.nameroot}.prodigal.ffn", emit: predicted_proteins_ffn - path "{inputs.input_fasta.nameroot}.prodigal", emit: predicted_proteins_out - - script: - def single_mode = params.prodigal_single_mode == false ? "" : "-p" - """ - prodigal \ - -i ${input_fasta} \ - ${single_mode} \ - -a "${${input_fasta}.baseName}.prodigal.faa" \ - -d "${${input_fasta}.baseName}.prodigal.ffn" \ - -o "${${input_fasta}.baseName}.prodigal" \ - """ - -} - - -process PRODIGAL { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/prodigal" - - input: - path input, stageAs: 'input' - - output: - path "{inputs.identifier}.prodigal.ttl", emit: output - - script: - """ - java -Xmx5g -jar /SAPP-2.0.jar -prodigal \ - -input ${input} \ - -output "${params.identifier}.prodigal.ttl" \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/prodigal_files_to_folder.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/prodigal_files_to_folder.nf deleted file mode 100644 index 1ee31af21..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/prodigal_files_to_folder.nf +++ /dev/null @@ -1,23 +0,0 @@ -nextflow.enable.dsl=2 - -import groovy.json.JsonSlurper -def jsonSlurper = new JsonSlurper() - -process PRODIGAL_FILES_TO_FOLDER { - debug true - container "node:latest" - publishDir "${params.outdir}/prodigal_files_to_folder" - - input: - path files - - output: - path "${jsonSlurper.parseText(file("${task.workDir}/cwl.output.json").text)['results']}", emit: results - - script: - """ - nodejs files_to_folder.js \ - > cwl.output.json \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/qc_stats.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/qc_stats.nf deleted file mode 100644 index 2957d6af5..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/qc_stats.nf +++ /dev/null @@ -1,81 +0,0 @@ -nextflow.enable.dsl=2 - -process QC_STATS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/qc_stats" - - input: - path qced_reads, stageAs: 'qced_reads' - val sequence_count - - output: - path "inputs.out_dir_name", emit: output_dir - path "<js>inputs.out_dir_name)/$(inputs.summary</js>", emit: summary_out - - script: - """ - MGRAST_base.py \ - -i ${qced_reads} \ - -o <js>inputs.out_dir_name)/$(inputs.summary</js> \ - -d <js>${ var suffix = '.full'; if (inputs.sequence_count > inputs.max_seq) { suffix = '.sub-set'; } return "".concat(inputs.out_dir_name, '/', inputs.nucleotide_distribution, suffix);}</js> \ - -g <js>${ var suffix = '.full'; if (inputs.sequence_count > inputs.max_seq) { suffix = '.sub-set'; } return "".concat(inputs.out_dir_name, '/', inputs.gc_sum, suffix);}</js> \ - -l <js>${ var suffix = '.full'; if (inputs.sequence_count > inputs.max_seq) { suffix = '.sub-set'; } return "".concat(inputs.out_dir_name, '/', inputs.length_sum, suffix);}</js> \ - <js>${ if (inputs.sequence_count > inputs.max_seq) { return '-m '.concat(inputs.max_seq)} else { return ''} }</js> \ - """ - -} - - -process QC_STATS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/qc_stats" - - input: - path qced_reads, stageAs: 'qced_reads' - val sequence_count - - output: - path "inputs.out_dir_name", emit: output_dir - path "<js>inputs.out_dir_name)/$(inputs.summary</js>", emit: summary_out - - script: - """ - MGRAST_base.py \ - -i ${qced_reads} \ - -o <js>inputs.out_dir_name)/$(inputs.summary</js> \ - -d <js>${ var suffix = '.full'; if (inputs.sequence_count > inputs.max_seq) { suffix = '.sub-set'; } return "".concat(inputs.out_dir_name, '/', inputs.nucleotide_distribution, suffix);}</js> \ - -g <js>${ var suffix = '.full'; if (inputs.sequence_count > inputs.max_seq) { suffix = '.sub-set'; } return "".concat(inputs.out_dir_name, '/', inputs.gc_sum, suffix);}</js> \ - -l <js>${ var suffix = '.full'; if (inputs.sequence_count > inputs.max_seq) { suffix = '.sub-set'; } return "".concat(inputs.out_dir_name, '/', inputs.length_sum, suffix);}</js> \ - <js>${ if (inputs.sequence_count > inputs.max_seq) { return '-m '.concat(inputs.max_seq)} else { return ''} }</js> \ - """ - -} - - -process QC_STATS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/qc_stats" - - input: - path qced_reads, stageAs: 'qced_reads' - val sequence_count - - output: - path "inputs.out_dir_name", emit: output_dir - path "<js>inputs.out_dir_name)/$(inputs.summary</js>", emit: summary_out - - script: - """ - MGRAST_base.py \ - -i ${qced_reads} \ - -o <js>inputs.out_dir_name)/$(inputs.summary</js> \ - -d <js>${ var suffix = '.full'; if (inputs.sequence_count > inputs.max_seq) { suffix = '.sub-set'; } return "".concat(inputs.out_dir_name, '/', inputs.nucleotide_distribution, suffix);}</js> \ - -g <js>${ var suffix = '.full'; if (inputs.sequence_count > inputs.max_seq) { suffix = '.sub-set'; } return "".concat(inputs.out_dir_name, '/', inputs.gc_sum, suffix);}</js> \ - -l <js>${ var suffix = '.full'; if (inputs.sequence_count > inputs.max_seq) { suffix = '.sub-set'; } return "".concat(inputs.out_dir_name, '/', inputs.length_sum, suffix);}</js> \ - <js>${ if (inputs.sequence_count > inputs.max_seq) { return '-m '.concat(inputs.max_seq)} else { return ''} }</js> \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/readmapping_pilon.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/readmapping_pilon.nf deleted file mode 100644 index 0c7871c56..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/readmapping_pilon.nf +++ /dev/null @@ -1,38 +0,0 @@ -nextflow.enable.dsl=2 - -process READMAPPING_PILON { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/readmapping_pilon" - - input: - path forward_reads, stageAs: 'forward_reads' - path reference, stageAs: 'reference' - path reverse_reads, stageAs: 'reverse_reads' - - output: - path "{inputs.identifier}_BBMap_covstats.txt", emit: covstats - path "{inputs.identifier}_BBMap_log.txt", emit: log - path "{inputs.identifier}_BBMap.sam", emit: sam - path "{inputs.identifier}_BBMap_stats.txt", emit: stats - - script: - def reverse_reads = reverse_reads ? "in2=${reverse_reads}" : "" - def threads = params.threads ? params.threads : 2 - """ - bbmap.sh \ - threads=${threads} \ - fast=t \ - "-Xmx${params.memory}M" \ - printunmappedcount \ - overwrite=true \ - "statsfile=${params.identifier}_BBMap_stats.txt" \ - "covstats=${params.identifier}_BBMap_covstats.txt" \ - "out=${params.identifier}_BBMap.sam" \ - in=${forward_reads} \ - ${reverse_reads} \ - ref=${reference} \ - 2> "${params.identifier}_BBMap_log.txt" \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/reads_to_folder.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/reads_to_folder.nf deleted file mode 100644 index d000ea963..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/reads_to_folder.nf +++ /dev/null @@ -1,46 +0,0 @@ -nextflow.enable.dsl=2 - -import groovy.json.JsonSlurper -def jsonSlurper = new JsonSlurper() - -process READS_TO_FOLDER { - debug true - container "node:latest" - publishDir "${params.outdir}/reads_to_folder" - - input: - path files - - output: - path "${jsonSlurper.parseText(file("${task.workDir}/cwl.output.json").text)['results']}", emit: results - - script: - """ - nodejs files_to_folder.js \ - > cwl.output.json \ - """ - -} - - -import groovy.json.JsonSlurper -def jsonSlurper = new JsonSlurper() - -process READS_TO_FOLDER { - debug true - container "node:latest" - publishDir "${params.outdir}/reads_to_folder" - - input: - path files - - output: - path "${jsonSlurper.parseText(file("${task.workDir}/cwl.output.json").text)['results']}", emit: results - - script: - """ - nodejs files_to_folder.js \ - > cwl.output.json \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/reformat_coords.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/reformat_coords.nf deleted file mode 100644 index 922f7049d..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/reformat_coords.nf +++ /dev/null @@ -1,21 +0,0 @@ -nextflow.enable.dsl=2 - -process REFORMAT_COORDS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/its/reformat_coords" - - input: - path all_coordinates, stageAs: 'all_coordinates' - - output: - stdout, emit: maskfile - - script: - """ - format_bedfile \ - -i ${all_coordinates} \ - > ITS-maskfile \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/remove_overlaps.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/remove_overlaps.nf deleted file mode 100644 index dd4f76712..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/remove_overlaps.nf +++ /dev/null @@ -1,69 +0,0 @@ -nextflow.enable.dsl=2 - -process REMOVE_OVERLAPS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/find_ribosomal_ncrnas/cmsearch_raw_data/remove_overlaps" - - input: - path cmsearch_matches, stageAs: 'cmsearch_matches' - val clan_information - - output: - path "*.deoverlapped", emit: deoverlapped_matches - - script: - def clan_information = clan_information ? "--clanin ${clan_information}" : "" - """ - cmsearch-deoverlap.pl \ - ${clan_information} \ - ${cmsearch_matches} \ - """ - -} - - -process REMOVE_OVERLAPS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/find_ribosomal_ncrnas/cmsearch_raw_data/remove_overlaps" - - input: - path cmsearch_matches, stageAs: 'cmsearch_matches' - val clan_information - - output: - path "*.deoverlapped", emit: deoverlapped_matches - - script: - def clan_information = clan_information ? "--clanin ${clan_information}" : "" - """ - cmsearch-deoverlap.pl \ - ${clan_information} \ - ${cmsearch_matches} \ - """ - -} - - -process REMOVE_OVERLAPS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/find_ribosomal_ncrnas/cmsearch_raw_data/remove_overlaps" - - input: - path cmsearch_matches, stageAs: 'cmsearch_matches' - val clan_information - - output: - path "*.deoverlapped", emit: deoverlapped_matches - - script: - def clan_information = clan_information ? "--clanin ${clan_information}" : "" - """ - cmsearch-deoverlap.pl \ - ${clan_information} \ - ${cmsearch_matches} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/rename_contigs.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/rename_contigs.nf deleted file mode 100644 index 434a54eab..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/rename_contigs.nf +++ /dev/null @@ -1,25 +0,0 @@ -nextflow.enable.dsl=2 - -process RENAME_CONTIGS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/antismash/chunking/rename_contigs" - - input: - path chunks, stageAs: 'chunks' - path full_fasta, stageAs: 'full_fasta' - val accession - - output: - path "{inputs.chunks.basename}.tbl", emit: names_table - path "antismash.*", emit: renamed_contigs_in_chunks - - script: - """ - antismash_rename_contigs.py \ - -c ${chunks} \ - -i ${full_fasta} \ - -a ${accession} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/rename_geneclusters.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/rename_geneclusters.nf deleted file mode 100644 index e8e2b6c9e..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/rename_geneclusters.nf +++ /dev/null @@ -1,22 +0,0 @@ -nextflow.enable.dsl=2 - -process RENAME_GENECLUSTERS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/antismash/chunking/rename_geneclusters" - - input: - path initial_file, stageAs: 'initial_file' - val out_file_name - - output: - path "inputs.out_file_name", emit: renamed_file - - script: - """ - mv \ - ${initial_file} \ - ${out_file_name} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/rename_ncrnas.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/rename_ncrnas.nf deleted file mode 100644 index f5f9fb373..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/rename_ncrnas.nf +++ /dev/null @@ -1,42 +0,0 @@ -nextflow.enable.dsl=2 - -process RENAME_NCRNAS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/other_ncrnas/rename_ncrnas" - - input: - path initial_file, stageAs: 'initial_file' - - output: - path "inputs.out_file_name", emit: renamed_file - - script: - """ - mv \ - ${initial_file} \ - ${params.after_qc.other_ncrnas.rename_ncrnas_out_file_name} \ - """ - -} - - -process RENAME_NCRNAS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/other_ncrnas/rename_ncrnas" - - input: - path initial_file, stageAs: 'initial_file' - - output: - path "inputs.out_file_name", emit: renamed_file - - script: - """ - mv \ - ${initial_file} \ - ${params.after_qc.other_ncrnas.rename_ncrnas_out_file_name} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/resmapping_for_CATH_PDB2UP.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/resmapping_for_CATH_PDB2UP.nf deleted file mode 100644 index 31a4b9990..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/resmapping_for_CATH_PDB2UP.nf +++ /dev/null @@ -1,25 +0,0 @@ -nextflow.enable.dsl=2 - -process RESMAPPING_FOR_CATH_PDB2_UP { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/cath_domain_instances/resmapping_cath_structs/resmapping_for_cath_pdb2_up" - - input: - path cath_sep, stageAs: 'cath_sep' - path sifts_dir, stageAs: 'sifts_dir' - - output: - path "<js>${ if (typeof inputs.reslost === 'string') {return inputs.reslost} else {return [ inputs.reslost.basename]}}</js>", emit: cath_lost - path "<js>${ if (typeof inputs.resmapping_file === 'string') {return inputs.resmapping_file} else {return [ inputs.resmapping_file.basename]}}</js>", emit: cath_resmapped - - script: - """ - python3 resmapping_cath2up.py \ - -f ${cath_sep} \ - -s ${sifts_dir} \ - -m cath_resMapped.csv \ - -l lost_cath.txt \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/resmapping_for_Pfam_UP2PDB.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/resmapping_for_Pfam_UP2PDB.nf deleted file mode 100644 index b6e575661..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/resmapping_for_Pfam_UP2PDB.nf +++ /dev/null @@ -1,25 +0,0 @@ -nextflow.enable.dsl=2 - -process RESMAPPING_FOR_PFAM_UP2_PDB { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/pfam_domain_instances/resmapping_pfam_structs/resmapping_for_pfam_up2_pdb" - - input: - path pfam_sep, stageAs: 'pfam_sep' - path sifts_dir, stageAs: 'sifts_dir' - - output: - path "<js>${ if (typeof inputs.reslost === 'string') {return inputs.reslost} else {return [ inputs.reslost.basename]}}</js>", emit: pfam_lost - path "<js>${ if (typeof inputs.resmapping_file === 'string') {return inputs.resmapping_file} else {return [ inputs.resmapping_file.basename]}}</js>", emit: pfam_resmapped - - script: - """ - python3 resmapping_pfam2pdb.py \ - -f ${pfam_sep} \ - -s ${sifts_dir} \ - -m pfam_resMapped.csv \ - -l lost_pfam.txt \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/return_antismash_in_folder.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/return_antismash_in_folder.nf deleted file mode 100644 index 0f4ba2e3c..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/return_antismash_in_folder.nf +++ /dev/null @@ -1,24 +0,0 @@ -nextflow.enable.dsl=2 - -import groovy.json.JsonSlurper -def jsonSlurper = new JsonSlurper() - -process RETURN_ANTISMASH_IN_FOLDER { - debug true - container "node:latest" - publishDir "${params.outdir}/after_qc/antismash/no_antismash_subwf/return_antismash_in_folder" - - input: - path file_list - val dir_name - - output: - path "${jsonSlurper.parseText(file("${task.workDir}/cwl.output.json").text)['out']}", emit: out - - script: - """ - nodejs return_directory.js \ - > cwl.output.json \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/return_its_dir.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/return_its_dir.nf deleted file mode 100644 index 45d45b949..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/return_its_dir.nf +++ /dev/null @@ -1,23 +0,0 @@ -nextflow.enable.dsl=2 - -import groovy.json.JsonSlurper -def jsonSlurper = new JsonSlurper() - -process RETURN_ITS_DIR { - debug true - container "node:latest" - publishDir "${params.outdir}/after_qc/return_its_dir" - - input: - path dir_list - - output: - path "${jsonSlurper.parseText(file("${task.workDir}/cwl.output.json").text)['out']}", emit: out - - script: - """ - nodejs return_directory.js \ - > cwl.output.json \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/return_output_dir.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/return_output_dir.nf deleted file mode 100644 index f9dd8c690..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/return_output_dir.nf +++ /dev/null @@ -1,72 +0,0 @@ -nextflow.enable.dsl=2 - -import groovy.json.JsonSlurper -def jsonSlurper = new JsonSlurper() - -process RETURN_OUTPUT_DIR { - debug true - container "node:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/classify_ssus/return_output_dir" - - input: - path file_list - val dir_name - - output: - path "${jsonSlurper.parseText(file("${task.workDir}/cwl.output.json").text)['out']}", emit: out - - script: - """ - nodejs return_directory.js \ - > cwl.output.json \ - """ - -} - - -import groovy.json.JsonSlurper -def jsonSlurper = new JsonSlurper() - -process RETURN_OUTPUT_DIR { - debug true - container "node:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/classify_ssus/return_output_dir" - - input: - path file_list - val dir_name - - output: - path "${jsonSlurper.parseText(file("${task.workDir}/cwl.output.json").text)['out']}", emit: out - - script: - """ - nodejs return_directory.js \ - > cwl.output.json \ - """ - -} - - -import groovy.json.JsonSlurper -def jsonSlurper = new JsonSlurper() - -process RETURN_OUTPUT_DIR { - debug true - container "node:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/classify_ssus/return_output_dir" - - input: - path file_list - val dir_name - - output: - path "${jsonSlurper.parseText(file("${task.workDir}/cwl.output.json").text)['out']}", emit: out - - script: - """ - nodejs return_directory.js \ - > cwl.output.json \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/return_seq_dir.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/return_seq_dir.nf deleted file mode 100644 index 37bc69e89..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/return_seq_dir.nf +++ /dev/null @@ -1,23 +0,0 @@ -nextflow.enable.dsl=2 - -import groovy.json.JsonSlurper -def jsonSlurper = new JsonSlurper() - -process RETURN_SEQ_DIR { - debug true - container "node:latest" - publishDir "${params.outdir}/after_qc/return_seq_dir" - - input: - path file_list - - output: - path "${jsonSlurper.parseText(file("${task.workDir}/cwl.output.json").text)['out']}", emit: out - - script: - """ - nodejs return_directory.js \ - > cwl.output.json \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/return_tax_dir.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/return_tax_dir.nf deleted file mode 100644 index 5226a6dfe..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/return_tax_dir.nf +++ /dev/null @@ -1,46 +0,0 @@ -nextflow.enable.dsl=2 - -import groovy.json.JsonSlurper -def jsonSlurper = new JsonSlurper() - -process RETURN_TAX_DIR { - debug true - container "node:latest" - publishDir "${params.outdir}/after_qc/return_tax_dir" - - input: - path dir_list - - output: - path "${jsonSlurper.parseText(file("${task.workDir}/cwl.output.json").text)['out']}", emit: out - - script: - """ - nodejs return_directory.js \ - > cwl.output.json \ - """ - -} - - -import groovy.json.JsonSlurper -def jsonSlurper = new JsonSlurper() - -process RETURN_TAX_DIR { - debug true - container "node:latest" - publishDir "${params.outdir}/after_qc/return_tax_dir" - - input: - path dir_list - - output: - path "${jsonSlurper.parseText(file("${task.workDir}/cwl.output.json").text)['out']}", emit: out - - script: - """ - nodejs return_directory.js \ - > cwl.output.json \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/run_antismash.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/run_antismash.nf deleted file mode 100644 index 5385aecd1..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/run_antismash.nf +++ /dev/null @@ -1,28 +0,0 @@ -nextflow.enable.dsl=2 - -process RUN_ANTISMASH { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/antismash/chunking/run_antismash/run_antismash" - - input: - path input_fasta, stageAs: 'input_fasta' - val accession - val chunk_num - - output: - path "{inputs.outdirname}/*final.embl", emit: embl_file - path "{inputs.outdirname}/*final.gbk", emit: gbk_file - path "{inputs.outdirname}/geneclusters.js", emit: geneclusters_js - path "{inputs.outdirname}/geneclusters.txt", emit: geneclusters_txt - - script: - """ - run_antismash_short.sh \ - -i ${input_fasta} \ - -o ${params.after_qc.antismash.chunking.run_antismash.run_antismash_outdirname} \ - 2> stderr.txt \ - > stdout.txt \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/run_concatenate_deoverlapped_matches.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/run_concatenate_deoverlapped_matches.nf deleted file mode 100644 index 508016d92..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/run_concatenate_deoverlapped_matches.nf +++ /dev/null @@ -1,69 +0,0 @@ -nextflow.enable.dsl=2 - -process RUN_CONCATENATE_DEOVERLAPPED_MATCHES { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/find_ribosomal_ncrnas/cmsearch_raw_data/run_concatenate_deoverlapped_matches" - - input: - path files - val output_file_name - - output: - stdout, emit: result - - script: - def files = files.join(' ') - """ - cat \ - ${files} \ - > stdout.txt \ - """ - -} - - -process RUN_CONCATENATE_DEOVERLAPPED_MATCHES { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/find_ribosomal_ncrnas/cmsearch_raw_data/run_concatenate_deoverlapped_matches" - - input: - path files - val output_file_name - - output: - stdout, emit: result - - script: - def files = files.join(' ') - """ - cat \ - ${files} \ - > stdout.txt \ - """ - -} - - -process RUN_CONCATENATE_DEOVERLAPPED_MATCHES { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/find_ribosomal_ncrnas/cmsearch_raw_data/run_concatenate_deoverlapped_matches" - - input: - path files - val output_file_name - - output: - stdout, emit: result - - script: - def files = files.join(' ') - """ - cat \ - ${files} \ - > stdout.txt \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/run_concatenate_matches.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/run_concatenate_matches.nf deleted file mode 100644 index d26132957..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/run_concatenate_matches.nf +++ /dev/null @@ -1,69 +0,0 @@ -nextflow.enable.dsl=2 - -process RUN_CONCATENATE_MATCHES { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/find_ribosomal_ncrnas/cmsearch_raw_data/run_concatenate_matches" - - input: - path files - val output_file_name - - output: - stdout, emit: result - - script: - def files = files.join(' ') - """ - cat \ - ${files} \ - > stdout.txt \ - """ - -} - - -process RUN_CONCATENATE_MATCHES { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/find_ribosomal_ncrnas/cmsearch_raw_data/run_concatenate_matches" - - input: - path files - val output_file_name - - output: - stdout, emit: result - - script: - def files = files.join(' ') - """ - cat \ - ${files} \ - > stdout.txt \ - """ - -} - - -process RUN_CONCATENATE_MATCHES { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/find_ribosomal_ncrnas/cmsearch_raw_data/run_concatenate_matches" - - input: - path files - val output_file_name - - output: - stdout, emit: result - - script: - def files = files.join(' ') - """ - cat \ - ${files} \ - > stdout.txt \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/run_quality_control_filtering.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/run_quality_control_filtering.nf deleted file mode 100644 index abf21eef1..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/run_quality_control_filtering.nf +++ /dev/null @@ -1,28 +0,0 @@ -nextflow.enable.dsl=2 - -process RUN_QUALITY_CONTROL_FILTERING { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/run_quality_control_filtering" - - input: - path seq_file, stageAs: 'seq_file' - val min_length - val submitted_seq_count - - output: - path "{inputs.seq_file.nameroot}.fasta", emit: filtered_file - path "inputs.stats_file_name", emit: stats_summary_file - - script: - """ - run_quality_filtering.py \ - ${seq_file} \ - "${${seq_file}.baseName}.fasta" \ - ${params.before_qc.run_quality_control_filtering_stats_file_name} \ - ${submitted_seq_count} \ - --min_length ${min_length} \ - --extension ${params.before_qc.run_quality_control_filtering_input_file_format} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/sam_to_sorted_bam.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/sam_to_sorted_bam.nf deleted file mode 100644 index 7b6a5975b..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/sam_to_sorted_bam.nf +++ /dev/null @@ -1,23 +0,0 @@ -nextflow.enable.dsl=2 - -process SAM_TO_SORTED_BAM { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/sam_to_sorted_bam" - - input: - path sam, stageAs: 'sam' - - output: - path "{inputs.identifier}.sorted.bam", emit: sortedbam - - script: - def threads = params.threads ? params.threads : 1 - """ - bash -x script.sh \ - ${params.identifier} \ - ${threads} \ - ${sam} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/smetana.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/smetana.nf deleted file mode 100644 index cca596804..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/smetana.nf +++ /dev/null @@ -1,26 +0,0 @@ -nextflow.enable.dsl=2 - -process SMETANA { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/smetana" - - input: - path gem - - output: - path "{inputs.identifier}_SMETANA*", emit: detailed_output_tsv - - script: - def gem = gem.join(' ') - def solver = params.solver ? "--solver ${params.solver}" : "" - """ - bash script.sh \ - --output "${params.identifier}_SMETANA" \ - --verbose \ - --flavor fbc2 \ - ${solver} \ - ${gem} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/sorting.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/sorting.nf deleted file mode 100644 index 8d0e5302b..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/sorting.nf +++ /dev/null @@ -1,21 +0,0 @@ -nextflow.enable.dsl=2 - -process SORTING { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/functional_annotation_and_post_processing/diamond/post_processing_uniref90/sorting" - - input: - path input_table, stageAs: 'input_table' - - output: - stdout, emit: output_sorted - - script: - """ - sort -k2,2 \ - ${input_table} \ - > "${${input_table}.baseName}.sorted" \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/split_fasta.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/split_fasta.nf deleted file mode 100644 index 93f308d16..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/split_fasta.nf +++ /dev/null @@ -1,69 +0,0 @@ -nextflow.enable.dsl=2 - -process SPLIT_FASTA { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/find_ribosomal_ncrnas/cmsearch_raw_data/split_fasta" - - input: - path seqs, stageAs: 'seqs' - - output: - path "{inputs.seqs.basename}.*", emit: chunks - - script: - """ - esl-ssplit.sh \ - ${params.after_qc.rna_prediction.find_ribosomal_nc_rnas.cmsearch_raw_data.split_fasta_number_of_output_files} \ - ${params.after_qc.rna_prediction.find_ribosomal_nc_rnas.cmsearch_raw_data.split_fasta_same_number_of_residues} \ - ${seqs} \ - ${params.after_qc.rna_prediction.find_ribosomal_nc_rnas.cmsearch_raw_data.split_fasta_chunk_size} \ - """ - -} - - -process SPLIT_FASTA { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/find_ribosomal_ncrnas/cmsearch_raw_data/split_fasta" - - input: - path seqs, stageAs: 'seqs' - - output: - path "{inputs.seqs.basename}.*", emit: chunks - - script: - """ - esl-ssplit.sh \ - ${params.after_qc.rna_prediction.find_ribosomal_nc_rnas.cmsearch_raw_data.split_fasta_number_of_output_files} \ - ${params.after_qc.rna_prediction.find_ribosomal_nc_rnas.cmsearch_raw_data.split_fasta_same_number_of_residues} \ - ${seqs} \ - ${params.after_qc.rna_prediction.find_ribosomal_nc_rnas.cmsearch_raw_data.split_fasta_chunk_size} \ - """ - -} - - -process SPLIT_FASTA { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/find_ribosomal_ncrnas/cmsearch_raw_data/split_fasta" - - input: - path seqs, stageAs: 'seqs' - - output: - path "{inputs.seqs.basename}.*", emit: chunks - - script: - """ - esl-ssplit.sh \ - ${params.after_qc.rna_prediction.find_ribosomal_nc_rnas.cmsearch_raw_data.split_fasta_number_of_output_files} \ - ${params.after_qc.rna_prediction.find_ribosomal_nc_rnas.cmsearch_raw_data.split_fasta_same_number_of_residues} \ - ${seqs} \ - ${params.after_qc.rna_prediction.find_ribosomal_nc_rnas.cmsearch_raw_data.split_fasta_chunk_size} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/split_seqs.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/split_seqs.nf deleted file mode 100644 index 98ec5d8d5..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/split_seqs.nf +++ /dev/null @@ -1,24 +0,0 @@ -nextflow.enable.dsl=2 - -process SPLIT_SEQS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/functional_annotation_and_post_processing/functional_annotation/split_seqs" - - input: - path seqs, stageAs: 'seqs' - val chunk_size - - output: - path "*_*", emit: chunks - - script: - """ - split_to_chunks.py \ - -i ${seqs} \ - -s ${chunk_size} \ - > /dev/null \ - 2> /dev/null \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/suppress_tax.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/suppress_tax.nf deleted file mode 100644 index eca7a667c..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/suppress_tax.nf +++ /dev/null @@ -1,40 +0,0 @@ -nextflow.enable.dsl=2 - -process SUPPRESS_TAX { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/suppress_tax" - - input: - path its_file, stageAs: 'its_file' - path lsu_file, stageAs: 'lsu_file' - path ssu_file, stageAs: 'ssu_file' - path its_dir, stageAs: 'its_dir' - path lsu_dir, stageAs: 'lsu_dir' - path ssu_dir, stageAs: 'ssu_dir' - - output: - stdout, emit: its_length - path "*.fasta.gz", optional: true, emit: out_fastas_tax - path "suppressed", optional: true, emit: out_suppress - path "taxonomy-summary", optional: true, emit: out_tax - - script: - def its_dir = its_dir ? "--its-dir ${its_dir}" : "" - def its_file = its_file ? "--its-file ${its_file}" : "" - def lsu_dir = lsu_dir ? "--lsu-dir ${lsu_dir}" : "" - def lsu_file = lsu_file ? "--lsu-file ${lsu_file}" : "" - def ssu_dir = ssu_dir ? "--ssu-dir ${ssu_dir}" : "" - def ssu_file = ssu_file ? "--ssu-file ${ssu_file}" : "" - """ - its-length-new.py \ - ${its_file} \ - ${lsu_file} \ - ${ssu_file} \ - ${its_dir} \ - ${lsu_dir} \ - ${ssu_dir} \ - > ITS_LENGTH \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/tab_modification.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/tab_modification.nf deleted file mode 100644 index 119258181..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/tab_modification.nf +++ /dev/null @@ -1,21 +0,0 @@ -nextflow.enable.dsl=2 - -process TAB_MODIFICATION { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/functional_annotation_and_post_processing/pathways/tab_modification" - - input: - path input_table, stageAs: 'input_table' - - output: - stdout, emit: output_with_tabs - - script: - """ - sed /^#/d; s/ \+/\t/g \ - ${input_table} \ - > "${${input_table}.baseName}_tab.tbl" \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/tohdt.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/tohdt.nf deleted file mode 100644 index 6731366a8..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/tohdt.nf +++ /dev/null @@ -1,21 +0,0 @@ -nextflow.enable.dsl=2 - -process TOHDT { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/tohdt" - - input: - path input, stageAs: 'input' - - output: - path "inputs.output", emit: output - - script: - """ - java -Xmx5g -jar /SAPP-2.0.jar -convert \ - -i ${input} \ - -o ${params.output} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/touch_empty_fasta.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/touch_empty_fasta.nf deleted file mode 100644 index 336939adf..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/touch_empty_fasta.nf +++ /dev/null @@ -1,17 +0,0 @@ -nextflow.enable.dsl=2 - -process TOUCH_EMPTY_FASTA { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/trimming/touch_empty_fasta" - - output: - path "inputs.filename", emit: created_file - - script: - """ - touch \ - ${params.before_qc.trimming.touch_empty_fasta_filename} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/touch_file_flag.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/touch_file_flag.nf deleted file mode 100644 index 9f8245465..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/touch_file_flag.nf +++ /dev/null @@ -1,51 +0,0 @@ -nextflow.enable.dsl=2 - -process TOUCH_FILE_FLAG { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/touch_file_flag" - - output: - path "inputs.filename", emit: created_file - - script: - """ - touch \ - ${params.touch_file_flag_filename} \ - """ - -} - - -process TOUCH_FILE_FLAG { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/touch_file_flag" - - output: - path "inputs.filename", emit: created_file - - script: - """ - touch \ - ${params.touch_file_flag_filename} \ - """ - -} - - -process TOUCH_FILE_FLAG { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/touch_file_flag" - - output: - path "inputs.filename", emit: created_file - - script: - """ - touch \ - ${params.touch_file_flag_filename} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/touch_no_antismash_flag.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/touch_no_antismash_flag.nf deleted file mode 100644 index ef4b948e4..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/touch_no_antismash_flag.nf +++ /dev/null @@ -1,17 +0,0 @@ -nextflow.enable.dsl=2 - -process TOUCH_NO_ANTISMASH_FLAG { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/antismash/no_antismash_subwf/touch_no_antismash_flag" - - output: - path "inputs.filename", emit: created_file - - script: - """ - touch \ - ${params.after_qc.antismash.no_antismash_subwf.touch_no_antismash_flag_filename} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/touch_no_cds_flag.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/touch_no_cds_flag.nf deleted file mode 100644 index 3b3fe7ff0..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/touch_no_cds_flag.nf +++ /dev/null @@ -1,34 +0,0 @@ -nextflow.enable.dsl=2 - -process TOUCH_NO_CDS_FLAG { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/touch_no_cds_flag" - - output: - path "inputs.filename", emit: created_file - - script: - """ - touch \ - ${params.touch_no_cds_flag_filename} \ - """ - -} - - -process TOUCH_NO_CDS_FLAG { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/touch_no_cds_flag" - - output: - path "inputs.filename", emit: created_file - - script: - """ - touch \ - ${params.touch_no_cds_flag_filename} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/trim_quality_control.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/trim_quality_control.nf deleted file mode 100644 index e07a9116d..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/trim_quality_control.nf +++ /dev/null @@ -1,36 +0,0 @@ -nextflow.enable.dsl=2 - -process TRIM_QUALITY_CONTROL { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/trim_quality_control" - - input: - path reads1, stageAs: 'reads1' - - output: - path "trim.log", emit: log_file - path "{inputs.reads1.nameroot}.trimmed", emit: reads1_trimmed - path "{inputs.reads1.basename}.trimmed.unpaired.fastq", optional: true, emit: reads1_trimmed_unpaired - - script: - def leading = params.before_qc.trim_quality_control_leading ? "LEADING:${params.before_qc.trim_quality_control_leading}" : "" - def minlen = params.before_qc.trim_quality_control_minlen ? "MINLEN:${params.before_qc.trim_quality_control_minlen}" : "" - def phred = params.before_qc.trim_quality_control_phred ? "-phred${params.before_qc.trim_quality_control_phred}" : "" - def slidingwindow = params.before_qc.trim_quality_control_slidingwindow ? "SLIDINGWINDOW:${params.before_qc.trim_quality_control_slidingwindow}" : "" - def trailing = params.before_qc.trim_quality_control_trailing ? "TRAILING:${params.before_qc.trim_quality_control_trailing}" : "" - """ - trimmomatic.sh \ - ${params.before_qc.trim_quality_control_end_mode} \ - ${phred} \ - -threads <js>runtime.cores</js> \ - -trimlog trim.log \ - ${reads1} \ - "${${reads1}.baseName}.trimmed" \ - ${leading} \ - ${trailing} \ - ${slidingwindow} \ - ${minlen} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/unite_embl.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/unite_embl.nf deleted file mode 100644 index aac9f8baf..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/unite_embl.nf +++ /dev/null @@ -1,23 +0,0 @@ -nextflow.enable.dsl=2 - -process UNITE_EMBL { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/antismash/chunking/unite_embl" - - input: - path files - val output_file_name - - output: - stdout, emit: result - - script: - def files = files.join(' ') - """ - cat \ - ${files} \ - > stdout.txt \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/unite_gbk.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/unite_gbk.nf deleted file mode 100644 index f1d0e55e9..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/unite_gbk.nf +++ /dev/null @@ -1,23 +0,0 @@ -nextflow.enable.dsl=2 - -process UNITE_GBK { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/antismash/chunking/unite_gbk" - - input: - path files - val output_file_name - - output: - stdout, emit: result - - script: - def files = files.join(' ') - """ - cat \ - ${files} \ - > stdout.txt \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/unite_geneclusters_txt.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/unite_geneclusters_txt.nf deleted file mode 100644 index d043ec3f5..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/unite_geneclusters_txt.nf +++ /dev/null @@ -1,22 +0,0 @@ -nextflow.enable.dsl=2 - -process UNITE_GENECLUSTERS_TXT { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/antismash/chunking/unite_geneclusters_txt" - - input: - path files - - output: - stdout, emit: result - - script: - def files = files.join(' ') - """ - cat \ - ${files} \ - > stdout.txt \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/unite_seed_orthologs.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/unite_seed_orthologs.nf deleted file mode 100644 index 03a36ee0c..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/unite_seed_orthologs.nf +++ /dev/null @@ -1,23 +0,0 @@ -nextflow.enable.dsl=2 - -process UNITE_SEED_ORTHOLOGS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/functional_annotation_and_post_processing/functional_annotation/eggnog/unite_seed_orthologs" - - input: - path files - val output_file_name - - output: - stdout, emit: result - - script: - def files = files.join(' ') - """ - cat \ - ${files} \ - > stdout.txt \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/unzip.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/unzip.nf deleted file mode 100644 index b013c8ddd..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/unzip.nf +++ /dev/null @@ -1,21 +0,0 @@ -nextflow.enable.dsl=2 - -process UNZIP { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/unzip" - - input: - path target_reads, stageAs: 'target_reads' - - output: - stdout, emit: unzipped_file - - script: - """ - gunzip -c \ - ${target_reads} \ - > stdout.txt \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/unzip_merged_reads.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/unzip_merged_reads.nf deleted file mode 100644 index 62ac95f3d..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/unzip_merged_reads.nf +++ /dev/null @@ -1,42 +0,0 @@ -nextflow.enable.dsl=2 - -process UNZIP_MERGED_READS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/overlap_reads/unzip_merged_reads" - - input: - path target_reads, stageAs: 'target_reads' - - output: - stdout, emit: unzipped_file - - script: - """ - gunzip -c \ - ${target_reads} \ - > stdout.txt \ - """ - -} - - -process UNZIP_MERGED_READS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/overlap_reads/unzip_merged_reads" - - input: - path target_reads, stageAs: 'target_reads' - - output: - stdout, emit: unzipped_file - - script: - """ - gunzip -c \ - ${target_reads} \ - > stdout.txt \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/unzip_single_reads.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/unzip_single_reads.nf deleted file mode 100644 index 46de5bb51..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/unzip_single_reads.nf +++ /dev/null @@ -1,42 +0,0 @@ -nextflow.enable.dsl=2 - -process UNZIP_SINGLE_READS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/overlap_reads/unzip_single_reads" - - input: - path target_reads, stageAs: 'target_reads' - - output: - stdout, emit: unzipped_file - - script: - """ - gunzip -c \ - ${target_reads} \ - > stdout.txt \ - """ - -} - - -process UNZIP_SINGLE_READS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/before_qc/overlap_reads/unzip_single_reads" - - input: - path target_reads, stageAs: 'target_reads' - - output: - stdout, emit: unzipped_file - - script: - """ - gunzip -c \ - ${target_reads} \ - > stdout.txt \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/vcf_compress.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/vcf_compress.nf deleted file mode 100644 index 724d42f9b..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/vcf_compress.nf +++ /dev/null @@ -1,22 +0,0 @@ -nextflow.enable.dsl=2 - -process VCF_COMPRESS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/vcf_compress" - - input: - path inputfile, stageAs: 'inputfile' - - output: - path "{inputs.inputfile.basename}.gz", emit: outfile - - script: - def threads = params.threads ? params.threads : 1 - """ - pigz -c \ - -p ${threads} \ - > "${inputfile.name}.gz" \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/visualize_otu_counts.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/visualize_otu_counts.nf deleted file mode 100644 index e855ccc8f..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/visualize_otu_counts.nf +++ /dev/null @@ -1,63 +0,0 @@ -nextflow.enable.dsl=2 - -process VISUALIZE_OTU_COUNTS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/classify_ssus/visualize_otu_counts" - - input: - path otu_counts, stageAs: 'otu_counts' - - output: - path "*.html", emit: otu_visualization - - script: - """ - ktImportText \ - -o krona.html \ - ${otu_counts} \ - """ - -} - - -process VISUALIZE_OTU_COUNTS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/classify_ssus/visualize_otu_counts" - - input: - path otu_counts, stageAs: 'otu_counts' - - output: - path "*.html", emit: otu_visualization - - script: - """ - ktImportText \ - -o krona.html \ - ${otu_counts} \ - """ - -} - - -process VISUALIZE_OTU_COUNTS { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/rna_prediction/classify_ssus/visualize_otu_counts" - - input: - path otu_counts, stageAs: 'otu_counts' - - output: - path "*.html", emit: otu_visualization - - script: - """ - ktImportText \ - -o krona.html \ - ${otu_counts} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/write_summaries.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/write_summaries.nf deleted file mode 100644 index 0b3048150..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/modules/write_summaries.nf +++ /dev/null @@ -1,39 +0,0 @@ -nextflow.enable.dsl=2 - -process WRITE_SUMMARIES { - debug true - container "ubuntu:latest" - publishDir "${params.outdir}/after_qc/functional_annotation_and_post_processing/write_summaries/write_summaries" - - input: - path ips_entry_maps, stageAs: 'ips_entry_maps' - path ko_entry_maps, stageAs: 'ko_entry_maps' - path pfam_entry_maps, stageAs: 'pfam_entry_maps' - path antismash_entry_maps, stageAs: 'antismash_entry_maps' - val ips_outname - val ko_outname - val pfam_outname - val antismash_outname - - output: - path "*summary.antismash", optional: true, emit: summary_antismash - path "*summary.ips", emit: summary_ips - path "*summary.ko", emit: summary_ko - path "*summary.pfam", emit: summary_pfam - - script: - def antismash_entry_maps = antismash_entry_maps ? "-a ${antismash_entry_maps}" : "" - def antismash_outname = antismash_outname ? "--antismash-name ${antismash_outname}" : "" - """ - write_summaries.py \ - ${antismash_entry_maps} \ - -i ${ips_entry_maps} \ - -k ${ko_entry_maps} \ - -p ${pfam_entry_maps} \ - ${antismash_outname} \ - --ips-name ${ips_outname} \ - --ko-name ${ko_outname} \ - --pfam-name ${pfam_outname} \ - """ - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/ITS.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/ITS.nf deleted file mode 100644 index b8ef0c71f..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/ITS.nf +++ /dev/null @@ -1,79 +0,0 @@ -nextflow.enable.dsl=2 - -include { CAT } from '../modules/cat' -include { COUNT_ITS_SEQS } from '../modules/count_ITS_seqs' -include { COUNT_MASKED_FASTA } from '../modules/count_masked_fasta' -include { GZIP_MASKED_ITS } from '../modules/gzip_masked_ITS' -include { MASK_FOR_ITS } from '../modules/mask_for_ITS' -include { REFORMAT_COORDS } from '../modules/reformat_coords' -include { RUN_ITSONEDB } from './run_itsonedb' -include { RUN_UNITE } from './run_unite' - -workflow ITS { - - take: - ch_lsu_coordinates - ch_ssu_coordinates - ch_itsone_database - ch_itsone_otus - ch_itsone_taxonomy - ch_otu_itsone_label - ch_otu_unite_label - ch_query_sequences - ch_unite_database - ch_unite_otus - ch_unite_taxonomy - - main: - CAT( - ch_ssu_coordinates.toList() - ) - - COUNT_ITS_SEQS( - MASK_FOR_ITS.out.masked_sequences - ) - - COUNT_MASKED_FASTA( - MASK_FOR_ITS.out.masked_sequences - ) - - GZIP_MASKED_ITS( - MASK_FOR_ITS.out.masked_sequences - ) - - MASK_FOR_ITS( - REFORMAT_COORDS.out.maskfile, - ch_query_sequences - ) - - REFORMAT_COORDS( - CAT.out.result - ) - - RUN_ITSONEDB( - MASK_FOR_ITS.out.masked_sequences, - ch_query_sequences, - ch_itsone_database, - ch_itsone_taxonomy, - ch_otu_itsone_label, - ch_itsone_otus, - params.after_qc.its.run_itsonedb_return_dirname - ) - - RUN_UNITE( - MASK_FOR_ITS.out.masked_sequences, - ch_query_sequences, - ch_unite_database, - ch_unite_taxonomy, - ch_otu_unite_label, - ch_unite_otus, - params.after_qc.its.run_unite_return_dirname - ) - - emit: - itsonedb_folder = RUN_ITSONEDB.out.out_dir - masking_file = GZIP_MASKED_ITS.out.compressed_file - number_ITS_seqs = COUNT_ITS_SEQS.out.count - unite_folder = RUN_UNITE.out.out_dir - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/after_qc.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/after_qc.nf deleted file mode 100644 index bb36f29b6..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/after_qc.nf +++ /dev/null @@ -1,530 +0,0 @@ -nextflow.enable.dsl=2 - -include { ITS } from './ITS' -include { GZIP_LSU } from '../modules/gzip_LSU' -include { GZIP_SSU } from '../modules/gzip_SSU' -include { GZIP_FILES } from '../modules/gzip_files' -include { NO_TAX_FILE_FLAG } from '../modules/no_tax_file_flag' -include { RETURN_ITS_DIR } from '../modules/return_its_dir' -include { RETURN_SEQ_DIR } from '../modules/return_seq_dir' -include { RNA_PREDICTION } from './rna_prediction' -include { SUPPRESS_TAX } from '../modules/suppress_tax' -include { ANTISMASH } from './antismash' -include { CGC } from './cgc' -include { CHUNKING_FINAL } from './chunking_final' -include { COMPRESSION } from '../modules/compression' -include { FASTA_INDEX } from '../modules/fasta_index' -include { FUNCTIONAL_ANNOTATION_AND_POST_PROCESSING } from './functional_annotation_and_post_processing' -include { MOVE_TO_SEQ_CAT_FOLDER } from '../modules/move_to_seq_cat_folder' -include { OTHER_NCRNAS } from './other_ncrnas' -include { RETURN_TAX_DIR } from '../modules/return_tax_dir' -include { MOTUS_TAXONOMY } from './motus_taxonomy' - -workflow AFTER_QC { - - take: - ch_5.8s_pattern - ch_5s_pattern - ch_filtered_fasta - ch_itsonedb - ch_itsonedb_label - ch_itsonedb_otu_file - ch_itsonedb_tax - ch_lsu_db - ch_lsu_label - ch_lsu_otus - ch_lsu_tax - ch_rfam_model_clans - ch_rfam_models - ch_ssu_db - ch_ssu_label - ch_ssu_otus - ch_ssu_tax - ch_unite_db - ch_unite_label - ch_unite_otu_file - ch_unite_tax - - main: - ITS( - RNA_PREDICTION.out.LSU_coords, - RNA_PREDICTION.out.SSU_coords, - ch_itsonedb, - ch_itsonedb_otu_file, - ch_itsonedb_tax, - ch_itsonedb_label, - ch_unite_label, - ch_filtered_fasta, - ch_unite_db, - ch_unite_otu_file, - ch_unite_tax - ) - - GZIP_LSU( - RNA_PREDICTION.out.LSU_fasta - ) - - GZIP_SSU( - RNA_PREDICTION.out.SSU_fasta - ) - - GZIP_FILES( - ch_filtered_fasta - ) - - NO_TAX_FILE_FLAG() - - RETURN_ITS_DIR( - ITS.out.unite_folder.toList() - ) - - RETURN_SEQ_DIR( - RNA_PREDICTION.out.compressed_rnas - ) - - RNA_PREDICTION( - ch_filtered_fasta, - ch_rfam_model_clans, - ch_rfam_models, - ch_5.8s_pattern, - ch_5s_pattern, - ch_lsu_label, - ch_ssu_label, - ch_lsu_db, - ch_lsu_otus, - ch_lsu_tax, - ch_ssu_db, - ch_ssu_otus, - ch_ssu_tax, - params.after_qc.rna_prediction_type - ) - - SUPPRESS_TAX( - ITS.out.masking_file, - GZIP_LSU.out.compressed_file, - GZIP_SSU.out.compressed_file, - RETURN_ITS_DIR.out.out, - RNA_PREDICTION.out.LSU_folder, - RNA_PREDICTION.out.SSU_folder - ) - - emit: - ITS_length = SUPPRESS_TAX.out.its_length - gz_files = GZIP_FILES.out.compressed_file - optional_tax_file_flag = NO_TAX_FILE_FLAG.out.created_file - rna_count = RNA_PREDICTION.out.LSU_SSU_count - sequence_categorisation_folder = RETURN_SEQ_DIR.out.out - suppressed_upload = SUPPRESS_TAX.out.out_suppress - taxonomy_summary_folder = SUPPRESS_TAX.out.out_tax - -} - - -workflow AFTER_QC { - - take: - ch_5.8s_pattern - ch_5s_pattern - ch_cgc_config - ch_cgc_postfixes - ch_egg_nog_data_dir - ch_egg_nog_db - ch_egg_nog_diamond_db - ch_hmm_gathering_bit_score - ch_hmm_name_database - ch_hmm_omit_alignment - ch_inter_pro_scan_applications - ch_inter_pro_scan_databases - ch_inter_pro_scan_output_format - ch_uniref90_db_txt - ch_cgc_chunk_size - ch_clusters_glossary - ch_diamond_database_file - ch_diamond_header - ch_diamond_max_target_seqs - ch_filtered_fasta - ch_func_ann_names_hmmer - ch_func_ann_names_ips - ch_go_config - ch_gp_flatfiles_path - ch_graphs - ch_hmmsearch_header - ch_ips_header - ch_ko_file - ch_lsu_db - ch_lsu_label - ch_lsu_otus - ch_lsu_tax - ch_other_ncrna_models - ch_pathways_classes - ch_pathways_names - ch_protein_chunk_size_ips - ch_protein_chunk_size_eggnog - ch_protein_chunk_size_hmm - ch_rfam_model_clans - ch_rfam_models - ch_ssu_db - ch_ssu_label - ch_ssu_otus - ch_ssu_tax - - main: - ANTISMASH( - ch_clusters_glossary, - params.after_qc.antismash_final_folder_name, - ch_filtered_fasta - ) - - CGC( - ch_cgc_chunk_size, - ch_filtered_fasta, - RNA_PREDICTION.out.ncRNA, - ch_cgc_postfixes - ) - - CHUNKING_FINAL( - CGC.out.results.flatten().first(), - ch_filtered_fasta, - CGC.out.results.flatten().first(), - RNA_PREDICTION.out.LSU_fasta, - RNA_PREDICTION.out.SSU_fasta - ) - - COMPRESSION( - RNA_PREDICTION.out.ncRNA - ) - - FASTA_INDEX( - ch_filtered_fasta - ) - - FUNCTIONAL_ANNOTATION_AND_POST_PROCESSING( - ch_egg_nog_data_dir, - ch_egg_nog_db, - ch_egg_nog_diamond_db, - ch_hmm_gathering_bit_score, - ch_hmm_name_database, - ch_hmm_omit_alignment, - ch_inter_pro_scan_applications, - ch_inter_pro_scan_databases, - ch_inter_pro_scan_output_format, - ch_uniref90_db_txt, - ANTISMASH.out.antismash_clusters, - CGC.out.results.flatten().first(), - ch_diamond_database_file, - ch_diamond_header, - ch_diamond_max_target_seqs, - ch_filtered_fasta, - ch_func_ann_names_hmmer, - ch_func_ann_names_ips, - ch_go_config, - ch_gp_flatfiles_path, - ch_graphs, - ch_hmmsearch_header, - ch_ips_header, - ch_ko_file, - ch_pathways_classes, - ch_pathways_names, - ch_protein_chunk_size_ips, - ch_protein_chunk_size_eggnog, - ch_protein_chunk_size_hmm, - RNA_PREDICTION.out.ncRNA - ) - - MOVE_TO_SEQ_CAT_FOLDER( - CHUNKING_FINAL.out.SC_fasta_chunks - ) - - NO_TAX_FILE_FLAG() - - NO_TAX_FILE_FLAG() - - OTHER_NCRNAS( - RNA_PREDICTION.out.ncRNA, - ch_filtered_fasta, - params.after_qc.other_ncrnas_name_string, - ch_other_ncrna_models - ) - - RETURN_TAX_DIR( - RNA_PREDICTION.out.SSU_folder.toList() - ) - - RNA_PREDICTION( - ch_filtered_fasta, - ch_rfam_model_clans, - ch_rfam_models, - ch_5.8s_pattern, - ch_5s_pattern, - ch_lsu_label, - ch_ssu_label, - ch_lsu_db, - ch_lsu_otus, - ch_lsu_tax, - ch_ssu_db, - ch_ssu_otus, - ch_ssu_tax, - params.after_qc.rna_prediction_type - ) - - RNA_PREDICTION( - ch_filtered_fasta, - ch_rfam_model_clans, - ch_rfam_models, - ch_5.8s_pattern, - ch_5s_pattern, - ch_lsu_label, - ch_ssu_label, - ch_lsu_db, - ch_lsu_otus, - ch_lsu_tax, - ch_ssu_db, - ch_ssu_otus, - ch_ssu_tax, - params.after_qc.rna_prediction_type - ) - - emit: - bgzip_fasta_file = FASTA_INDEX.out.fasta_bgz - bgzip_index = FASTA_INDEX.out.bgz_index - chunking_nucleotides = CHUNKING_FINAL.out.nucleotide_fasta_chunks - chunking_proteins = CHUNKING_FINAL.out.protein_fasta_chunks - compressed_files = COMPRESSION.out.compressed_file - count_CDS = CGC.out.count_faa - functional_annotation_folder = FUNCTIONAL_ANNOTATION_AND_POST_PROCESSING.out.functional_annotation_folder - index_fasta_file = FASTA_INDEX.out.fasta_index - optional_tax_file_flag = NO_TAX_FILE_FLAG.out.created_file - pathways_systems_folder = FUNCTIONAL_ANNOTATION_AND_POST_PROCESSING.out.pathways_systems_folder - pathways_systems_folder_antismash = ANTISMASH.out.antismash_folder - pathways_systems_folder_antismash_summary = FUNCTIONAL_ANNOTATION_AND_POST_PROCESSING.out.pathways_systems_folder_antismash_summary - rna_count = RNA_PREDICTION.out.LSU_SSU_count - sequence_categorisation_folder = MOVE_TO_SEQ_CAT_FOLDER.out.out - stats = FUNCTIONAL_ANNOTATION_AND_POST_PROCESSING.out.stats - taxonomy_summary_folder = RETURN_TAX_DIR.out.out - -} - - -workflow AFTER_QC { - - take: - ch_5.8s_pattern - ch_5s_pattern - ch_cgc_config - ch_cgc_postfixes - ch_hmm_gathering_bit_score - ch_hmm_name_database - ch_hmm_omit_alignment - ch_inter_pro_scan_applications - ch_inter_pro_scan_databases - ch_inter_pro_scan_output_format - ch_cgc_chunk_size - ch_filtered_fasta - ch_func_ann_names_hmmer - ch_func_ann_names_ips - ch_go_config - ch_hmmsearch_header - ch_ips_header - ch_ko_file - ch_lsu_db - ch_lsu_label - ch_lsu_otus - ch_lsu_tax - ch_motus_input - ch_other_ncrna_models - ch_protein_chunk_size_ips - ch_protein_chunk_size_hmm - ch_rfam_model_clans - ch_rfam_models - ch_ssu_db - ch_ssu_label - ch_ssu_otus - ch_ssu_tax - ch_egg_nog_data_dir - ch_egg_nog_db - ch_egg_nog_diamond_db - - main: - CGC( - ch_cgc_chunk_size, - ch_filtered_fasta, - RNA_PREDICTION.out.ncRNA, - ch_cgc_postfixes - ) - - CGC( - ch_cgc_chunk_size, - ch_filtered_fasta, - RNA_PREDICTION.out.ncRNA, - ch_cgc_postfixes - ) - - CHUNKING_FINAL( - CGC.out.results.flatten().first(), - ch_filtered_fasta, - CGC.out.results.flatten().first(), - RNA_PREDICTION.out.LSU_fasta, - RNA_PREDICTION.out.SSU_fasta - ) - - CHUNKING_FINAL( - CGC.out.results.flatten().first(), - ch_filtered_fasta, - CGC.out.results.flatten().first(), - RNA_PREDICTION.out.LSU_fasta, - RNA_PREDICTION.out.SSU_fasta - ) - - COMPRESSION( - RNA_PREDICTION.out.ncRNA - ) - - COMPRESSION( - RNA_PREDICTION.out.ncRNA - ) - - FUNCTIONAL_ANNOTATION_AND_POST_PROCESSING( - ch_hmm_name_database, - ch_hmm_gathering_bit_score, - ch_hmm_omit_alignment, - ch_inter_pro_scan_applications, - ch_inter_pro_scan_databases, - ch_inter_pro_scan_output_format, - CGC.out.results.flatten().first(), - ch_filtered_fasta, - ch_func_ann_names_hmmer, - ch_func_ann_names_ips, - ch_go_config, - ch_hmmsearch_header, - ch_ips_header, - ch_ko_file, - ch_protein_chunk_size_ips, - ch_protein_chunk_size_hmm, - RNA_PREDICTION.out.ncRNA - ) - - FUNCTIONAL_ANNOTATION_AND_POST_PROCESSING( - ch_hmm_name_database, - ch_hmm_gathering_bit_score, - ch_hmm_omit_alignment, - ch_inter_pro_scan_applications, - ch_inter_pro_scan_databases, - ch_inter_pro_scan_output_format, - CGC.out.results.flatten().first(), - ch_filtered_fasta, - ch_func_ann_names_hmmer, - ch_func_ann_names_ips, - ch_go_config, - ch_hmmsearch_header, - ch_ips_header, - ch_ko_file, - ch_protein_chunk_size_ips, - ch_protein_chunk_size_hmm, - RNA_PREDICTION.out.ncRNA - ) - - MOTUS_TAXONOMY( - ch_motus_input - ) - - MOVE_TO_SEQ_CAT_FOLDER( - CHUNKING_FINAL.out.SC_fasta_chunks - ) - - MOVE_TO_SEQ_CAT_FOLDER( - CHUNKING_FINAL.out.SC_fasta_chunks - ) - - NO_TAX_FILE_FLAG() - - NO_TAX_FILE_FLAG() - - NO_TAX_FILE_FLAG() - - OTHER_NCRNAS( - RNA_PREDICTION.out.ncRNA, - ch_filtered_fasta, - params.after_qc.other_ncrnas_name_string, - ch_other_ncrna_models - ) - - OTHER_NCRNAS( - RNA_PREDICTION.out.ncRNA, - ch_filtered_fasta, - params.after_qc.other_ncrnas_name_string, - ch_other_ncrna_models - ) - - RETURN_TAX_DIR( - RNA_PREDICTION.out.SSU_folder.toList() - ) - - RETURN_TAX_DIR( - RNA_PREDICTION.out.SSU_folder.toList() - ) - - RNA_PREDICTION( - ch_filtered_fasta, - ch_rfam_model_clans, - ch_rfam_models, - ch_5.8s_pattern, - ch_5s_pattern, - ch_lsu_label, - ch_ssu_label, - ch_lsu_db, - ch_lsu_otus, - ch_lsu_tax, - ch_ssu_db, - ch_ssu_otus, - ch_ssu_tax, - params.after_qc.rna_prediction_type - ) - - RNA_PREDICTION( - ch_filtered_fasta, - ch_rfam_model_clans, - ch_rfam_models, - ch_5.8s_pattern, - ch_5s_pattern, - ch_lsu_label, - ch_ssu_label, - ch_lsu_db, - ch_lsu_otus, - ch_lsu_tax, - ch_ssu_db, - ch_ssu_otus, - ch_ssu_tax, - params.after_qc.rna_prediction_type - ) - - RNA_PREDICTION( - ch_filtered_fasta, - ch_rfam_model_clans, - ch_rfam_models, - ch_5.8s_pattern, - ch_5s_pattern, - ch_lsu_label, - ch_ssu_label, - ch_lsu_db, - ch_lsu_otus, - ch_lsu_tax, - ch_ssu_db, - ch_ssu_otus, - ch_ssu_tax, - params.after_qc.rna_prediction_type - ) - - emit: - chunking_nucleotides = CHUNKING_FINAL.out.nucleotide_fasta_chunks - chunking_proteins = CHUNKING_FINAL.out.protein_fasta_chunks - compressed_files = COMPRESSION.out.compressed_file - count_CDS = CGC.out.count_faa - functional_annotation_folder = FUNCTIONAL_ANNOTATION_AND_POST_PROCESSING.out.functional_annotation_folder - motus_output = MOTUS_TAXONOMY.out.motus - optional_tax_file_flag = NO_TAX_FILE_FLAG.out.created_file - rna_count = RNA_PREDICTION.out.LSU_SSU_count - sequence_categorisation_folder = MOVE_TO_SEQ_CAT_FOLDER.out.out - stats = FUNCTIONAL_ANNOTATION_AND_POST_PROCESSING.out.stats - taxonomy_summary_folder = RETURN_TAX_DIR.out.out - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/antismash.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/antismash.nf deleted file mode 100644 index 42e3da1f7..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/antismash.nf +++ /dev/null @@ -1,36 +0,0 @@ -nextflow.enable.dsl=2 - -include { CHUNKING } from './chunking' -include { FILTERING } from './filtering' -include { NO_ANTISMASH_SUBWF } from './no_antismash_subwf' - -workflow ANTISMASH { - - take: - ch_clusters_glossary - ch_final_folder_name - ch_input_filtered_fasta - - main: - CHUNKING( - ch_clusters_glossary, - FILTERING.out.filtered_fasta_for_antismash, - ch_final_folder_name, - params.after_qc.antismash.chunking_split_size - ) - - FILTERING( - params.after_qc.antismash.contig_min_limit, - ch_input_filtered_fasta - ) - - NO_ANTISMASH_SUBWF( - FILTERING.out.filtered_fasta_for_antismash, - ch_final_folder_name - ) - - emit: - antismash_clusters = CHUNKING.out.antismash_clusters - antismash_folder = [NO_ANTISMASH_SUBWF.out.antismash_result_folder, CHUNKING.out.antismash_folder_chunking] - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/avg_unp_domains.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/avg_unp_domains.nf deleted file mode 100644 index c5d02277f..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/avg_unp_domains.nf +++ /dev/null @@ -1,26 +0,0 @@ -nextflow.enable.dsl=2 - -include { AVG_CHOPPED_STRUCTS_UNP_DOMAINS } from '../modules/avg_chopped_structs_unp_domains' -include { CHOP_STRUCTS } from '../modules/chop_structs' - -workflow AVG_UNP_DOMAINS { - - take: - ch_domfiles - ch_pdb_d - - main: - AVG_CHOPPED_STRUCTS_UNP_DOMAINS( - CHOP_STRUCTS.out.family_name, - CHOP_STRUCTS.out.split_structs_dir - ) - - CHOP_STRUCTS( - ch_domfiles, - ch_pdb_d - ) - - emit: - avg_unp_dom_structs = AVG_CHOPPED_STRUCTS_UNP_DOMAINS.out.avg_structs - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/before_qc.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/before_qc.nf deleted file mode 100644 index e92738dbb..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/before_qc.nf +++ /dev/null @@ -1,257 +0,0 @@ -nextflow.enable.dsl=2 - -include { QC_FLAG } from '../modules/QC_FLAG' -include { COUNT_PROCESSED_READS } from '../modules/count_processed_reads' -include { HASHSUM_PAIRED } from '../modules/hashsum_paired' -include { HASHSUM_SINGLE } from '../modules/hashsum_single' -include { OVERLAP_READS } from './overlap_reads' -include { QC_STATS } from '../modules/qc_stats' -include { RUN_QUALITY_CONTROL_FILTERING } from '../modules/run_quality_control_filtering' -include { TRIMMING } from './trimming' -include { CLEAN_HEADERS } from '../modules/clean_headers' -include { COUNT_READS } from '../modules/count_reads' -include { HASHSUM } from '../modules/hashsum' -include { LENGTH_FILTER } from '../modules/length_filter' -include { UNZIP } from '../modules/unzip' -include { CLEAN_FASTA_HEADERS } from '../modules/clean_fasta_headers' -include { CONVERT_TRIMMED_READS_TO_FASTA } from '../modules/convert_trimmed_reads_to_fasta' -include { TRIM_QUALITY_CONTROL } from '../modules/trim_quality_control' - -workflow BEFORE_QC { - - take: - ch_qc_min_length - ch_stats_file_name - ch_forward_reads - ch_reverse_reads - ch_single_reads - - main: - QC_FLAG( - COUNT_PROCESSED_READS.out.count - ) - - COUNT_PROCESSED_READS( - RUN_QUALITY_CONTROL_FILTERING.out.filtered_file - ) - - HASHSUM_PAIRED( - ch_forward_reads - ) - - HASHSUM_SINGLE( - ch_single_reads - ) - - OVERLAP_READS( - params.before_qc.overlap_reads_paired_reads_length_filter, - ch_forward_reads, - ch_reverse_reads, - ch_single_reads - ) - - QC_STATS( - RUN_QUALITY_CONTROL_FILTERING.out.filtered_file, - COUNT_PROCESSED_READS.out.count - ) - - RUN_QUALITY_CONTROL_FILTERING( - TRIMMING.out.trimmed_and_reformatted_reads, - ch_qc_min_length, - OVERLAP_READS.out.count_forward_submitted_reads - ) - - TRIMMING( - OVERLAP_READS.out.unzipped_single_reads - ) - - emit: - fastp_filtering_json = OVERLAP_READS.out.fastp_report - filtered_fasta = RUN_QUALITY_CONTROL_FILTERING.out.filtered_file - input_files_hashsum_paired = HASHSUM_PAIRED.out.hashsum - input_files_hashsum_single = HASHSUM_SINGLE.out.hashsum - qc_statistics = QC_STATS.out.output_dir - qc_status = QC_FLAG.out.qc_flag - qc_summary = RUN_QUALITY_CONTROL_FILTERING.out.stats_summary_file - -} - - -workflow BEFORE_QC { - - take: - ch_contig_min_length - ch_contigs - - main: - QC_FLAG( - COUNT_PROCESSED_READS.out.count - ) - - QC_FLAG( - COUNT_PROCESSED_READS.out.count - ) - - CLEAN_HEADERS( - UNZIP.out.unzipped_file - ) - - COUNT_PROCESSED_READS( - LENGTH_FILTER.out.filtered_file - ) - - COUNT_PROCESSED_READS( - LENGTH_FILTER.out.filtered_file - ) - - COUNT_READS( - UNZIP.out.unzipped_file - ) - - HASHSUM( - ch_contigs - ) - - LENGTH_FILTER( - CLEAN_HEADERS.out.sequences_with_cleaned_headers, - ch_contig_min_length, - COUNT_READS.out.count - ) - - QC_STATS( - LENGTH_FILTER.out.filtered_file, - COUNT_PROCESSED_READS.out.count - ) - - QC_STATS( - LENGTH_FILTER.out.filtered_file, - COUNT_PROCESSED_READS.out.count - ) - - UNZIP( - ch_contigs - ) - - emit: - filtered_fasta = LENGTH_FILTER.out.filtered_file - hashsum_input = HASHSUM.out.hashsum - qc_statistics_folder = QC_STATS.out.output_dir - qc_status = QC_FLAG.out.qc_flag - qc_summary = LENGTH_FILTER.out.stats_summary_file - -} - - -workflow BEFORE_QC { - - take: - ch_qc_min_length - ch_forward_reads - ch_reverse_reads - ch_single_reads - - main: - QC_FLAG( - COUNT_PROCESSED_READS.out.count - ) - - QC_FLAG( - COUNT_PROCESSED_READS.out.count - ) - - QC_FLAG( - COUNT_PROCESSED_READS.out.count - ) - - CLEAN_FASTA_HEADERS( - TRIM_QUALITY_CONTROL.out.reads1_trimmed - ) - - CONVERT_TRIMMED_READS_TO_FASTA( - CLEAN_FASTA_HEADERS.out.sequences_with_cleaned_headers - ) - - COUNT_PROCESSED_READS( - LENGTH_FILTER.out.filtered_file - ) - - COUNT_PROCESSED_READS( - LENGTH_FILTER.out.filtered_file - ) - - COUNT_PROCESSED_READS( - LENGTH_FILTER.out.filtered_file - ) - - HASHSUM_PAIRED( - ch_forward_reads - ) - - HASHSUM_PAIRED( - ch_forward_reads - ) - - HASHSUM_SINGLE( - ch_single_reads - ) - - HASHSUM_SINGLE( - ch_single_reads - ) - - LENGTH_FILTER( - CONVERT_TRIMMED_READS_TO_FASTA.out.fasta, - ch_qc_min_length, - OVERLAP_READS.out.count_forward_submitted_reads - ) - - LENGTH_FILTER( - CONVERT_TRIMMED_READS_TO_FASTA.out.fasta, - ch_qc_min_length, - OVERLAP_READS.out.count_forward_submitted_reads - ) - - OVERLAP_READS( - params.before_qc.overlap_reads_paired_reads_length_filter, - ch_forward_reads, - ch_reverse_reads, - ch_single_reads - ) - - OVERLAP_READS( - params.before_qc.overlap_reads_paired_reads_length_filter, - ch_forward_reads, - ch_reverse_reads, - ch_single_reads - ) - - QC_STATS( - LENGTH_FILTER.out.filtered_file, - COUNT_PROCESSED_READS.out.count - ) - - QC_STATS( - LENGTH_FILTER.out.filtered_file, - COUNT_PROCESSED_READS.out.count - ) - - QC_STATS( - LENGTH_FILTER.out.filtered_file, - COUNT_PROCESSED_READS.out.count - ) - - TRIM_QUALITY_CONTROL( - OVERLAP_READS.out.unzipped_single_reads - ) - - emit: - fastp_filtering_json = OVERLAP_READS.out.fastp_report - filtered_fasta = LENGTH_FILTER.out.filtered_file - input_files_hashsum_paired = HASHSUM_PAIRED.out.hashsum - input_files_hashsum_single = HASHSUM_SINGLE.out.hashsum - motus_input = CLEAN_FASTA_HEADERS.out.sequences_with_cleaned_headers - qc_statistics = QC_STATS.out.output_dir - qc_status = QC_FLAG.out.qc_flag - qc_summary = LENGTH_FILTER.out.stats_summary_file - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/cath_domain_instances.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/cath_domain_instances.nf deleted file mode 100644 index b4de0e69b..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/cath_domain_instances.nf +++ /dev/null @@ -1,43 +0,0 @@ -nextflow.enable.dsl=2 - -include { ADD_DOMAIN_POSITIONS } from '../modules/add_domain_positions' -include { COLLECT_LOST_INSTANCES } from '../modules/collect_lost_instances' -include { FILTER_CATH_STRUCTURES } from '../modules/filter_cath_structures' -include { RESMAPPING_CATH_STRUCTS } from './resmapping_cath_structs' - -workflow CATH_DOMAIN_INSTANCES { - - take: - ch_family_idsfile - ch_lost_merged - ch_min_dom_size - ch_resmapped_file - ch_siftsdir - - main: - ADD_DOMAIN_POSITIONS( - RESMAPPING_CATH_STRUCTS.out.resmapped_cath.toList(), - ch_resmapped_file - ) - - COLLECT_LOST_INSTANCES( - RESMAPPING_CATH_STRUCTS.out.lost_insta_cath.toList(), - FILTER_CATH_STRUCTURES.out.cath_obs, - ch_lost_merged - ) - - FILTER_CATH_STRUCTURES( - ch_family_idsfile, - ch_min_dom_size - ) - - RESMAPPING_CATH_STRUCTS( - FILTER_CATH_STRUCTURES.out.splitted_cath_sep.flatten().first(), - ch_siftsdir - ) - - emit: - cath_domain_posi_file = ADD_DOMAIN_POSITIONS.out.resmapped_domains - cath_total_lost_structures = COLLECT_LOST_INSTANCES.out.lost_domain_list - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/cgc.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/cgc.nf deleted file mode 100644 index 435bbd283..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/cgc.nf +++ /dev/null @@ -1,97 +0,0 @@ -nextflow.enable.dsl=2 - -include { COMBINE } from '../modules/combine' -include { COMBINED_GENE_CALLER } from './combined_gene_caller' -include { COUNT_CDS } from '../modules/count_cds' -include { SPLIT_SEQS } from '../modules/split_seqs' - -workflow CGC { - - take: - ch_chunk_size - ch_input_fasta - ch_maskfile - ch_postfixes - - main: - COMBINE( - COMBINED_GENE_CALLER.out.predicted_proteins.toList(), - ch_input_fasta, - ch_postfixes.flatten().first() - ) - - COMBINED_GENE_CALLER( - SPLIT_SEQS.out.chunks.flatten().first(), - ch_maskfile - ) - - COUNT_CDS( - COMBINE.out.result - ) - - SPLIT_SEQS( - ch_input_fasta, - ch_chunk_size - ) - - emit: - count_faa = COUNT_CDS.out.count - results = COMBINE.out.result - -} - - -workflow CGC { - - take: - ch_chunk_size - ch_input_fasta - ch_maskfile - ch_postfixes - - main: - COMBINE( - COMBINED_GENE_CALLER.out.predicted_proteins.toList(), - ch_input_fasta, - ch_postfixes.flatten().first() - ) - - COMBINE( - COMBINED_GENE_CALLER.out.predicted_proteins.toList(), - ch_input_fasta, - ch_postfixes.flatten().first() - ) - - COMBINED_GENE_CALLER( - SPLIT_SEQS.out.chunks.flatten().first(), - ch_maskfile - ) - - COMBINED_GENE_CALLER( - SPLIT_SEQS.out.chunks.flatten().first(), - ch_maskfile - ) - - COUNT_CDS( - COMBINE.out.result - ) - - COUNT_CDS( - COMBINE.out.result - ) - - SPLIT_SEQS( - ch_input_fasta, - ch_chunk_size - ) - - SPLIT_SEQS( - ch_input_fasta, - ch_chunk_size - ) - - emit: - count_faa = COUNT_CDS.out.count - results = COMBINE.out.result - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/change_formats_and_names.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/change_formats_and_names.nf deleted file mode 100644 index 3f315e92b..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/change_formats_and_names.nf +++ /dev/null @@ -1,28 +0,0 @@ -nextflow.enable.dsl=2 - -include { CREATE_CSV_GP } from '../modules/create_csv_gp' -include { CREATE_CSV_KP } from '../modules/create_csv_kp' - -workflow CHANGE_FORMATS_AND_NAMES { - - take: - ch_fasta - ch_genome_properties_summary - ch_kegg_summary - - main: - CREATE_CSV_GP( - ch_genome_properties_summary, - ch_genome_properties_summary - ) - - CREATE_CSV_KP( - ch_kegg_summary, - ch_kegg_summary - ) - - emit: - gp_summary_csv = CREATE_CSV_GP.out.csv_result - kegg_summary_csv = CREATE_CSV_KP.out.csv_result - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/chop_and_avg_for_CATH2Pfam.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/chop_and_avg_for_CATH2Pfam.nf deleted file mode 100644 index 1a0305494..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/chop_and_avg_for_CATH2Pfam.nf +++ /dev/null @@ -1,20 +0,0 @@ -nextflow.enable.dsl=2 - -include { CHOP_AND_AVG_FROM_LIST } from './chop_and_avg_from_list' - -workflow CHOP_AND_AVG_FOR_CATH2PFAM { - - take: - ch_crossmap_file - ch_pdb_dir - - main: - CHOP_AND_AVG_FROM_LIST( - ch_crossmap_file.flatten().first(), - ch_pdb_dir - ) - - emit: - averaged_structs = CHOP_AND_AVG_FROM_LIST.out.avg_struct_per_fam - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/chop_and_avg_for_Pfam2CATH.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/chop_and_avg_for_Pfam2CATH.nf deleted file mode 100644 index 76785d351..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/chop_and_avg_for_Pfam2CATH.nf +++ /dev/null @@ -1,20 +0,0 @@ -nextflow.enable.dsl=2 - -include { CHOP_AND_AVG_FROM_LIST } from './chop_and_avg_from_list' - -workflow CHOP_AND_AVG_FOR_PFAM2_CATH { - - take: - ch_crossmap_file - ch_pdb_dir - - main: - CHOP_AND_AVG_FROM_LIST( - ch_crossmap_file.flatten().first(), - ch_pdb_dir - ) - - emit: - averaged_structs = CHOP_AND_AVG_FROM_LIST.out.avg_struct_per_fam - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/chop_and_avg_for_core.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/chop_and_avg_for_core.nf deleted file mode 100644 index 998117b31..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/chop_and_avg_for_core.nf +++ /dev/null @@ -1,36 +0,0 @@ -nextflow.enable.dsl=2 - -include { AVG_AVERAGED_STRUCTURES } from '../modules/avg_averaged_structures' -include { AVG_UNP_DOMAINS } from './avg_unp_domains' -include { COPY_AVG_DOM } from '../modules/copy_avg_dom' -include { PER_UNP_DOM_INSTANCE } from '../modules/per_unp_dom_instance' - -workflow CHOP_AND_AVG_FOR_CORE { - - take: - ch_core_list - ch_pdb_dir - - main: - AVG_AVERAGED_STRUCTURES( - PER_UNP_DOM_INSTANCE.out.family_name, - COPY_AVG_DOM.out.dir_unp_dom - ) - - AVG_UNP_DOMAINS( - PER_UNP_DOM_INSTANCE.out.dom_per_fam.flatten().first(), - ch_pdb_dir - ) - - COPY_AVG_DOM( - AVG_UNP_DOMAINS.out.avg_unp_dom_structs.toList() - ) - - PER_UNP_DOM_INSTANCE( - ch_core_list - ) - - emit: - averaged_structs = AVG_AVERAGED_STRUCTURES.out.avg_structs - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/chop_and_avg_from_list.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/chop_and_avg_from_list.nf deleted file mode 100644 index dcc2d6733..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/chop_and_avg_from_list.nf +++ /dev/null @@ -1,36 +0,0 @@ -nextflow.enable.dsl=2 - -include { AVG_AVERAGED_UNP_DOMAINS } from '../modules/avg_averaged_unp_domains' -include { AVG_UNP_DOMAINS } from './avg_unp_domains' -include { COPY_AVG_DOM } from '../modules/copy_avg_dom' -include { PER_DOM_INSTANCE } from '../modules/per_dom_instance' - -workflow CHOP_AND_AVG_FROM_LIST { - - take: - ch_in_file - ch_pdb_storage - - main: - AVG_AVERAGED_UNP_DOMAINS( - PER_DOM_INSTANCE.out.family_name, - COPY_AVG_DOM.out.dir_unp_dom - ) - - AVG_UNP_DOMAINS( - PER_DOM_INSTANCE.out.dom_per_fam.flatten().first(), - ch_pdb_storage - ) - - COPY_AVG_DOM( - AVG_UNP_DOMAINS.out.avg_structures.toList() - ) - - PER_DOM_INSTANCE( - ch_in_file - ) - - emit: - avg_struct_per_fam = AVG_AVERAGED_UNP_DOMAINS.out.avg_structs - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/chunking.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/chunking.nf deleted file mode 100644 index d40a51416..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/chunking.nf +++ /dev/null @@ -1,100 +0,0 @@ -nextflow.enable.dsl=2 - -include { ANTISMASH_GFF } from '../modules/antismash_gff' -include { ANTISMASH_SUMMARY } from '../modules/antismash_summary' -include { CALC_CHUNKING_NUMBER } from '../modules/calc_chunking_number' -include { CHECK_VALUE } from '../modules/check_value' -include { CHUNKING_FASTA } from '../modules/chunking_fasta' -include { GZIPPED_EMBL } from '../modules/gzipped_embl' -include { GZIPPED_GBK } from '../modules/gzipped_gbk' -include { RENAME_CONTIGS } from '../modules/rename_contigs' -include { RENAME_GENECLUSTERS } from '../modules/rename_geneclusters' -include { RETURN_ANTISMASH_IN_FOLDER } from '../modules/return_antismash_in_folder' -include { RUN_ANTISMASH } from './run_antismash' -include { UNITE_EMBL } from '../modules/unite_embl' -include { UNITE_GBK } from '../modules/unite_gbk' -include { UNITE_GENECLUSTERS_TXT } from '../modules/unite_geneclusters_txt' - -workflow CHUNKING { - - take: - ch_clusters_glossary - ch_filtered_fasta - ch_final_folder_name - ch_split_size - - main: - ANTISMASH_GFF( - UNITE_EMBL.out.result, - ANTISMASH_SUMMARY.out.reformatted_clusters, - ch_filtered_fasta - ) - - ANTISMASH_SUMMARY( - UNITE_GENECLUSTERS_TXT.out.result, - ch_clusters_glossary - ) - - CALC_CHUNKING_NUMBER( - ch_filtered_fasta, - ch_split_size - ) - - CHECK_VALUE( - CALC_CHUNKING_NUMBER.out.count - ) - - CHUNKING_FASTA( - ch_filtered_fasta, - CHECK_VALUE.out.out - ) - - GZIPPED_EMBL( - UNITE_EMBL.out.result - ) - - GZIPPED_GBK( - UNITE_GBK.out.result - ) - - RENAME_CONTIGS( - CHUNKING_FASTA.out.chunks.flatten().first(), - ch_filtered_fasta, - ch_filtered_fasta - ) - - RENAME_GENECLUSTERS( - ANTISMASH_SUMMARY.out.reformatted_clusters, - ch_filtered_fasta - ) - - RETURN_ANTISMASH_IN_FOLDER( - ANTISMASH_GFF.out.output_gff_bgz.toList(), - ch_final_folder_name - ) - - RUN_ANTISMASH( - ch_filtered_fasta, - RENAME_CONTIGS.out.renamed_contigs_in_chunks, - RENAME_CONTIGS.out.names_table - ) - - UNITE_EMBL( - RUN_ANTISMASH.out.antismash_embl.toList(), - ch_filtered_fasta - ) - - UNITE_GBK( - RUN_ANTISMASH.out.antismash_gbk.toList(), - ch_filtered_fasta - ) - - UNITE_GENECLUSTERS_TXT( - RUN_ANTISMASH.out.antismash_txt.toList() - ) - - emit: - antismash_clusters = RENAME_GENECLUSTERS.out.renamed_file - antismash_folder_chunking = RETURN_ANTISMASH_IN_FOLDER.out.out - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/chunking_final.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/chunking_final.nf deleted file mode 100644 index 421a2537d..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/chunking_final.nf +++ /dev/null @@ -1,76 +0,0 @@ -nextflow.enable.dsl=2 - -include { CHINKING_SC_FASTA_NUCLEOTIDE } from '../modules/chinking_SC_fasta_nucleotide' -include { CHINKING_FASTA_NUCLEOTIDE } from '../modules/chinking_fasta_nucleotide' -include { CHINKING_FASTA_PROTEINS } from '../modules/chinking_fasta_proteins' - -workflow CHUNKING_FINAL { - - take: - ch_faa - ch_fasta - ch_ffn - ch_lsu - ch_ssu - - main: - CHINKING_SC_FASTA_NUCLEOTIDE( - ch_lsu.toList() - ) - - CHINKING_FASTA_NUCLEOTIDE( - ch_fasta.toList() - ) - - CHINKING_FASTA_PROTEINS( - ch_faa.toList() - ) - - emit: - SC_fasta_chunks = CHINKING_SC_FASTA_NUCLEOTIDE.out.chunks - nucleotide_fasta_chunks = CHINKING_FASTA_NUCLEOTIDE.out.chunks - protein_fasta_chunks = CHINKING_FASTA_PROTEINS.out.chunks - -} - - -workflow CHUNKING_FINAL { - - take: - ch_faa - ch_fasta - ch_ffn - ch_lsu - ch_ssu - - main: - CHINKING_SC_FASTA_NUCLEOTIDE( - ch_lsu.toList() - ) - - CHINKING_SC_FASTA_NUCLEOTIDE( - ch_lsu.toList() - ) - - CHINKING_FASTA_NUCLEOTIDE( - ch_fasta.toList() - ) - - CHINKING_FASTA_NUCLEOTIDE( - ch_fasta.toList() - ) - - CHINKING_FASTA_PROTEINS( - ch_faa.toList() - ) - - CHINKING_FASTA_PROTEINS( - ch_faa.toList() - ) - - emit: - SC_fasta_chunks = CHINKING_SC_FASTA_NUCLEOTIDE.out.chunks - nucleotide_fasta_chunks = CHINKING_FASTA_NUCLEOTIDE.out.chunks - protein_fasta_chunks = CHINKING_FASTA_PROTEINS.out.chunks - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/classify_LSUs.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/classify_LSUs.nf deleted file mode 100644 index 78f39a0a0..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/classify_LSUs.nf +++ /dev/null @@ -1,294 +0,0 @@ -nextflow.enable.dsl=2 - -include { CLASSIFICATIONS_TO_OTU_COUNTS } from '../modules/classifications_to_otu_counts' -include { COMPRESS_MAPSEQ } from '../modules/compress_mapseq' -include { COUNT_LINES_MAPSEQ } from '../modules/count_lines_mapseq' -include { COUNTS_TO_HDF5 } from '../modules/counts_to_hdf5' -include { COUNTS_TO_JSON } from '../modules/counts_to_json' -include { MAPSEQ } from '../modules/mapseq' -include { RETURN_OUTPUT_DIR } from '../modules/return_output_dir' -include { VISUALIZE_OTU_COUNTS } from '../modules/visualize_otu_counts' - -workflow CLASSIFY_LSUS { - - take: - ch_fasta - ch_file_for_prefix - ch_mapseq_ref - ch_mapseq_taxonomy - ch_otu_label - ch_otu_ref - ch_return_dirname - - main: - CLASSIFICATIONS_TO_OTU_COUNTS( - MAPSEQ.out.classifications, - ch_otu_label, - ch_otu_ref - ) - - COMPRESS_MAPSEQ( - MAPSEQ.out.classifications - ) - - COUNT_LINES_MAPSEQ( - MAPSEQ.out.classifications - ) - - COUNTS_TO_HDF5( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_tsv_notaxid - ) - - COUNTS_TO_JSON( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_tsv_notaxid - ) - - MAPSEQ( - ch_mapseq_ref, - ch_file_for_prefix, - ch_fasta, - ch_mapseq_taxonomy - ) - - RETURN_OUTPUT_DIR( - COMPRESS_MAPSEQ.out.compressed_file.toList(), - ch_return_dirname - ) - - VISUALIZE_OTU_COUNTS( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_txt - ) - - emit: - number_lines_mapseq = COUNT_LINES_MAPSEQ.out.number - out_dir = RETURN_OUTPUT_DIR.out.out - -} - - -workflow CLASSIFY_LSUS { - - take: - ch_fasta - ch_file_for_prefix - ch_mapseq_ref - ch_mapseq_taxonomy - ch_otu_label - ch_otu_ref - ch_return_dirname - - main: - CLASSIFICATIONS_TO_OTU_COUNTS( - MAPSEQ.out.classifications, - ch_otu_label, - ch_otu_ref - ) - - CLASSIFICATIONS_TO_OTU_COUNTS( - MAPSEQ.out.classifications, - ch_otu_label, - ch_otu_ref - ) - - COMPRESS_MAPSEQ( - MAPSEQ.out.classifications - ) - - COMPRESS_MAPSEQ( - MAPSEQ.out.classifications - ) - - COUNT_LINES_MAPSEQ( - MAPSEQ.out.classifications - ) - - COUNT_LINES_MAPSEQ( - MAPSEQ.out.classifications - ) - - COUNTS_TO_HDF5( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_tsv_notaxid - ) - - COUNTS_TO_HDF5( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_tsv_notaxid - ) - - COUNTS_TO_JSON( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_tsv_notaxid - ) - - COUNTS_TO_JSON( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_tsv_notaxid - ) - - MAPSEQ( - ch_mapseq_ref, - ch_file_for_prefix, - ch_fasta, - ch_mapseq_taxonomy - ) - - MAPSEQ( - ch_mapseq_ref, - ch_file_for_prefix, - ch_fasta, - ch_mapseq_taxonomy - ) - - RETURN_OUTPUT_DIR( - COMPRESS_MAPSEQ.out.compressed_file.toList(), - ch_return_dirname - ) - - RETURN_OUTPUT_DIR( - COMPRESS_MAPSEQ.out.compressed_file.toList(), - ch_return_dirname - ) - - VISUALIZE_OTU_COUNTS( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_txt - ) - - VISUALIZE_OTU_COUNTS( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_txt - ) - - emit: - number_lines_mapseq = COUNT_LINES_MAPSEQ.out.number - out_dir = RETURN_OUTPUT_DIR.out.out - -} - - -workflow CLASSIFY_LSUS { - - take: - ch_fasta - ch_file_for_prefix - ch_mapseq_ref - ch_mapseq_taxonomy - ch_otu_label - ch_otu_ref - ch_return_dirname - - main: - CLASSIFICATIONS_TO_OTU_COUNTS( - MAPSEQ.out.classifications, - ch_otu_label, - ch_otu_ref - ) - - CLASSIFICATIONS_TO_OTU_COUNTS( - MAPSEQ.out.classifications, - ch_otu_label, - ch_otu_ref - ) - - CLASSIFICATIONS_TO_OTU_COUNTS( - MAPSEQ.out.classifications, - ch_otu_label, - ch_otu_ref - ) - - COMPRESS_MAPSEQ( - MAPSEQ.out.classifications - ) - - COMPRESS_MAPSEQ( - MAPSEQ.out.classifications - ) - - COMPRESS_MAPSEQ( - MAPSEQ.out.classifications - ) - - COUNT_LINES_MAPSEQ( - MAPSEQ.out.classifications - ) - - COUNT_LINES_MAPSEQ( - MAPSEQ.out.classifications - ) - - COUNT_LINES_MAPSEQ( - MAPSEQ.out.classifications - ) - - COUNTS_TO_HDF5( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_tsv_notaxid - ) - - COUNTS_TO_HDF5( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_tsv_notaxid - ) - - COUNTS_TO_HDF5( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_tsv_notaxid - ) - - COUNTS_TO_JSON( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_tsv_notaxid - ) - - COUNTS_TO_JSON( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_tsv_notaxid - ) - - COUNTS_TO_JSON( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_tsv_notaxid - ) - - MAPSEQ( - ch_mapseq_ref, - ch_file_for_prefix, - ch_fasta, - ch_mapseq_taxonomy - ) - - MAPSEQ( - ch_mapseq_ref, - ch_file_for_prefix, - ch_fasta, - ch_mapseq_taxonomy - ) - - MAPSEQ( - ch_mapseq_ref, - ch_file_for_prefix, - ch_fasta, - ch_mapseq_taxonomy - ) - - RETURN_OUTPUT_DIR( - COMPRESS_MAPSEQ.out.compressed_file.toList(), - ch_return_dirname - ) - - RETURN_OUTPUT_DIR( - COMPRESS_MAPSEQ.out.compressed_file.toList(), - ch_return_dirname - ) - - RETURN_OUTPUT_DIR( - COMPRESS_MAPSEQ.out.compressed_file.toList(), - ch_return_dirname - ) - - VISUALIZE_OTU_COUNTS( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_txt - ) - - VISUALIZE_OTU_COUNTS( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_txt - ) - - VISUALIZE_OTU_COUNTS( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_txt - ) - - emit: - number_lines_mapseq = COUNT_LINES_MAPSEQ.out.number - out_dir = RETURN_OUTPUT_DIR.out.out - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/classify_SSUs.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/classify_SSUs.nf deleted file mode 100644 index 0c63cd636..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/classify_SSUs.nf +++ /dev/null @@ -1,294 +0,0 @@ -nextflow.enable.dsl=2 - -include { CLASSIFICATIONS_TO_OTU_COUNTS } from '../modules/classifications_to_otu_counts' -include { COMPRESS_MAPSEQ } from '../modules/compress_mapseq' -include { COUNT_LINES_MAPSEQ } from '../modules/count_lines_mapseq' -include { COUNTS_TO_HDF5 } from '../modules/counts_to_hdf5' -include { COUNTS_TO_JSON } from '../modules/counts_to_json' -include { MAPSEQ } from '../modules/mapseq' -include { RETURN_OUTPUT_DIR } from '../modules/return_output_dir' -include { VISUALIZE_OTU_COUNTS } from '../modules/visualize_otu_counts' - -workflow CLASSIFY_SSUS { - - take: - ch_fasta - ch_file_for_prefix - ch_mapseq_ref - ch_mapseq_taxonomy - ch_otu_label - ch_otu_ref - ch_return_dirname - - main: - CLASSIFICATIONS_TO_OTU_COUNTS( - MAPSEQ.out.classifications, - ch_otu_label, - ch_otu_ref - ) - - COMPRESS_MAPSEQ( - MAPSEQ.out.classifications - ) - - COUNT_LINES_MAPSEQ( - MAPSEQ.out.classifications - ) - - COUNTS_TO_HDF5( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_tsv_notaxid - ) - - COUNTS_TO_JSON( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_tsv_notaxid - ) - - MAPSEQ( - ch_mapseq_ref, - ch_file_for_prefix, - ch_fasta, - ch_mapseq_taxonomy - ) - - RETURN_OUTPUT_DIR( - COMPRESS_MAPSEQ.out.compressed_file.toList(), - ch_return_dirname - ) - - VISUALIZE_OTU_COUNTS( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_txt - ) - - emit: - number_lines_mapseq = COUNT_LINES_MAPSEQ.out.number - out_dir = RETURN_OUTPUT_DIR.out.out - -} - - -workflow CLASSIFY_SSUS { - - take: - ch_fasta - ch_file_for_prefix - ch_mapseq_ref - ch_mapseq_taxonomy - ch_otu_label - ch_otu_ref - ch_return_dirname - - main: - CLASSIFICATIONS_TO_OTU_COUNTS( - MAPSEQ.out.classifications, - ch_otu_label, - ch_otu_ref - ) - - CLASSIFICATIONS_TO_OTU_COUNTS( - MAPSEQ.out.classifications, - ch_otu_label, - ch_otu_ref - ) - - COMPRESS_MAPSEQ( - MAPSEQ.out.classifications - ) - - COMPRESS_MAPSEQ( - MAPSEQ.out.classifications - ) - - COUNT_LINES_MAPSEQ( - MAPSEQ.out.classifications - ) - - COUNT_LINES_MAPSEQ( - MAPSEQ.out.classifications - ) - - COUNTS_TO_HDF5( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_tsv_notaxid - ) - - COUNTS_TO_HDF5( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_tsv_notaxid - ) - - COUNTS_TO_JSON( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_tsv_notaxid - ) - - COUNTS_TO_JSON( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_tsv_notaxid - ) - - MAPSEQ( - ch_mapseq_ref, - ch_file_for_prefix, - ch_fasta, - ch_mapseq_taxonomy - ) - - MAPSEQ( - ch_mapseq_ref, - ch_file_for_prefix, - ch_fasta, - ch_mapseq_taxonomy - ) - - RETURN_OUTPUT_DIR( - COMPRESS_MAPSEQ.out.compressed_file.toList(), - ch_return_dirname - ) - - RETURN_OUTPUT_DIR( - COMPRESS_MAPSEQ.out.compressed_file.toList(), - ch_return_dirname - ) - - VISUALIZE_OTU_COUNTS( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_txt - ) - - VISUALIZE_OTU_COUNTS( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_txt - ) - - emit: - number_lines_mapseq = COUNT_LINES_MAPSEQ.out.number - out_dir = RETURN_OUTPUT_DIR.out.out - -} - - -workflow CLASSIFY_SSUS { - - take: - ch_fasta - ch_file_for_prefix - ch_mapseq_ref - ch_mapseq_taxonomy - ch_otu_label - ch_otu_ref - ch_return_dirname - - main: - CLASSIFICATIONS_TO_OTU_COUNTS( - MAPSEQ.out.classifications, - ch_otu_label, - ch_otu_ref - ) - - CLASSIFICATIONS_TO_OTU_COUNTS( - MAPSEQ.out.classifications, - ch_otu_label, - ch_otu_ref - ) - - CLASSIFICATIONS_TO_OTU_COUNTS( - MAPSEQ.out.classifications, - ch_otu_label, - ch_otu_ref - ) - - COMPRESS_MAPSEQ( - MAPSEQ.out.classifications - ) - - COMPRESS_MAPSEQ( - MAPSEQ.out.classifications - ) - - COMPRESS_MAPSEQ( - MAPSEQ.out.classifications - ) - - COUNT_LINES_MAPSEQ( - MAPSEQ.out.classifications - ) - - COUNT_LINES_MAPSEQ( - MAPSEQ.out.classifications - ) - - COUNT_LINES_MAPSEQ( - MAPSEQ.out.classifications - ) - - COUNTS_TO_HDF5( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_tsv_notaxid - ) - - COUNTS_TO_HDF5( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_tsv_notaxid - ) - - COUNTS_TO_HDF5( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_tsv_notaxid - ) - - COUNTS_TO_JSON( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_tsv_notaxid - ) - - COUNTS_TO_JSON( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_tsv_notaxid - ) - - COUNTS_TO_JSON( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_tsv_notaxid - ) - - MAPSEQ( - ch_mapseq_ref, - ch_file_for_prefix, - ch_fasta, - ch_mapseq_taxonomy - ) - - MAPSEQ( - ch_mapseq_ref, - ch_file_for_prefix, - ch_fasta, - ch_mapseq_taxonomy - ) - - MAPSEQ( - ch_mapseq_ref, - ch_file_for_prefix, - ch_fasta, - ch_mapseq_taxonomy - ) - - RETURN_OUTPUT_DIR( - COMPRESS_MAPSEQ.out.compressed_file.toList(), - ch_return_dirname - ) - - RETURN_OUTPUT_DIR( - COMPRESS_MAPSEQ.out.compressed_file.toList(), - ch_return_dirname - ) - - RETURN_OUTPUT_DIR( - COMPRESS_MAPSEQ.out.compressed_file.toList(), - ch_return_dirname - ) - - VISUALIZE_OTU_COUNTS( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_txt - ) - - VISUALIZE_OTU_COUNTS( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_txt - ) - - VISUALIZE_OTU_COUNTS( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_txt - ) - - emit: - number_lines_mapseq = COUNT_LINES_MAPSEQ.out.number - out_dir = RETURN_OUTPUT_DIR.out.out - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/cmsearch_assembly.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/cmsearch_assembly.nf deleted file mode 100644 index 179603d7a..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/cmsearch_assembly.nf +++ /dev/null @@ -1,142 +0,0 @@ -nextflow.enable.dsl=2 - -include { CMSEARCH } from '../modules/cmsearch' -include { REMOVE_OVERLAPS } from '../modules/remove_overlaps' -include { RUN_CONCATENATE_MATCHES } from '../modules/run_concatenate_matches' - -workflow CMSEARCH_ASSEMBLY { - - take: - ch_clan_info - ch_covariance_models - ch_query_sequences - - main: - CMSEARCH( - ch_query_sequences, - ch_covariance_models.flatten().first() - ) - - REMOVE_OVERLAPS( - RUN_CONCATENATE_MATCHES.out.result, - ch_clan_info - ) - - RUN_CONCATENATE_MATCHES( - CMSEARCH.out.matches.toList(), - ch_query_sequences - ) - - emit: - concatenate_matches = RUN_CONCATENATE_MATCHES.out.result - deoverlapped_matches = REMOVE_OVERLAPS.out.deoverlapped_matches - matches = CMSEARCH.out.matches - -} - - -workflow CMSEARCH_ASSEMBLY { - - take: - ch_clan_info - ch_covariance_models - ch_query_sequences - - main: - CMSEARCH( - ch_query_sequences, - ch_covariance_models.flatten().first() - ) - - CMSEARCH( - ch_query_sequences, - ch_covariance_models.flatten().first() - ) - - REMOVE_OVERLAPS( - RUN_CONCATENATE_MATCHES.out.result, - ch_clan_info - ) - - REMOVE_OVERLAPS( - RUN_CONCATENATE_MATCHES.out.result, - ch_clan_info - ) - - RUN_CONCATENATE_MATCHES( - CMSEARCH.out.matches.toList(), - ch_query_sequences - ) - - RUN_CONCATENATE_MATCHES( - CMSEARCH.out.matches.toList(), - ch_query_sequences - ) - - emit: - concatenate_matches = RUN_CONCATENATE_MATCHES.out.result - deoverlapped_matches = REMOVE_OVERLAPS.out.deoverlapped_matches - matches = CMSEARCH.out.matches - -} - - -workflow CMSEARCH_ASSEMBLY { - - take: - ch_clan_info - ch_covariance_models - ch_query_sequences - - main: - CMSEARCH( - ch_query_sequences, - ch_covariance_models.flatten().first() - ) - - CMSEARCH( - ch_query_sequences, - ch_covariance_models.flatten().first() - ) - - CMSEARCH( - ch_query_sequences, - ch_covariance_models.flatten().first() - ) - - REMOVE_OVERLAPS( - RUN_CONCATENATE_MATCHES.out.result, - ch_clan_info - ) - - REMOVE_OVERLAPS( - RUN_CONCATENATE_MATCHES.out.result, - ch_clan_info - ) - - REMOVE_OVERLAPS( - RUN_CONCATENATE_MATCHES.out.result, - ch_clan_info - ) - - RUN_CONCATENATE_MATCHES( - CMSEARCH.out.matches.toList(), - ch_query_sequences - ) - - RUN_CONCATENATE_MATCHES( - CMSEARCH.out.matches.toList(), - ch_query_sequences - ) - - RUN_CONCATENATE_MATCHES( - CMSEARCH.out.matches.toList(), - ch_query_sequences - ) - - emit: - concatenate_matches = RUN_CONCATENATE_MATCHES.out.result - deoverlapped_matches = REMOVE_OVERLAPS.out.deoverlapped_matches - matches = CMSEARCH.out.matches - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/cmsearch_raw_data.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/cmsearch_raw_data.nf deleted file mode 100644 index d69d42b49..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/cmsearch_raw_data.nf +++ /dev/null @@ -1,220 +0,0 @@ -nextflow.enable.dsl=2 - -include { CAT_MODELS } from '../modules/cat_models' -include { CMSEARCH } from '../modules/cmsearch' -include { REMOVE_OVERLAPS } from '../modules/remove_overlaps' -include { RUN_CONCATENATE_DEOVERLAPPED_MATCHES } from '../modules/run_concatenate_deoverlapped_matches' -include { RUN_CONCATENATE_MATCHES } from '../modules/run_concatenate_matches' -include { SPLIT_FASTA } from '../modules/split_fasta' - -workflow CMSEARCH_RAW_DATA { - - take: - ch_clan_info - ch_covariance_models - ch_query_sequences - - main: - CAT_MODELS( - ch_covariance_models - ) - - CMSEARCH( - SPLIT_FASTA.out.chunks.flatten().first(), - CAT_MODELS.out.result - ) - - REMOVE_OVERLAPS( - CMSEARCH.out.matches, - ch_clan_info - ) - - RUN_CONCATENATE_DEOVERLAPPED_MATCHES( - REMOVE_OVERLAPS.out.deoverlapped_matches.toList(), - ch_query_sequences - ) - - RUN_CONCATENATE_MATCHES( - CMSEARCH.out.matches.toList(), - ch_query_sequences - ) - - SPLIT_FASTA( - ch_query_sequences - ) - - emit: - concatenate_matches = RUN_CONCATENATE_MATCHES.out.result - deoverlapped_matches = RUN_CONCATENATE_DEOVERLAPPED_MATCHES.out.result - -} - - -workflow CMSEARCH_RAW_DATA { - - take: - ch_clan_info - ch_covariance_models - ch_query_sequences - - main: - CAT_MODELS( - ch_covariance_models - ) - - CAT_MODELS( - ch_covariance_models - ) - - CMSEARCH( - SPLIT_FASTA.out.chunks.flatten().first(), - CAT_MODELS.out.result - ) - - CMSEARCH( - SPLIT_FASTA.out.chunks.flatten().first(), - CAT_MODELS.out.result - ) - - REMOVE_OVERLAPS( - CMSEARCH.out.matches, - ch_clan_info - ) - - REMOVE_OVERLAPS( - CMSEARCH.out.matches, - ch_clan_info - ) - - RUN_CONCATENATE_DEOVERLAPPED_MATCHES( - REMOVE_OVERLAPS.out.deoverlapped_matches.toList(), - ch_query_sequences - ) - - RUN_CONCATENATE_DEOVERLAPPED_MATCHES( - REMOVE_OVERLAPS.out.deoverlapped_matches.toList(), - ch_query_sequences - ) - - RUN_CONCATENATE_MATCHES( - CMSEARCH.out.matches.toList(), - ch_query_sequences - ) - - RUN_CONCATENATE_MATCHES( - CMSEARCH.out.matches.toList(), - ch_query_sequences - ) - - SPLIT_FASTA( - ch_query_sequences - ) - - SPLIT_FASTA( - ch_query_sequences - ) - - emit: - concatenate_matches = RUN_CONCATENATE_MATCHES.out.result - deoverlapped_matches = RUN_CONCATENATE_DEOVERLAPPED_MATCHES.out.result - -} - - -workflow CMSEARCH_RAW_DATA { - - take: - ch_clan_info - ch_covariance_models - ch_query_sequences - - main: - CAT_MODELS( - ch_covariance_models - ) - - CAT_MODELS( - ch_covariance_models - ) - - CAT_MODELS( - ch_covariance_models - ) - - CMSEARCH( - SPLIT_FASTA.out.chunks.flatten().first(), - CAT_MODELS.out.result - ) - - CMSEARCH( - SPLIT_FASTA.out.chunks.flatten().first(), - CAT_MODELS.out.result - ) - - CMSEARCH( - SPLIT_FASTA.out.chunks.flatten().first(), - CAT_MODELS.out.result - ) - - REMOVE_OVERLAPS( - CMSEARCH.out.matches, - ch_clan_info - ) - - REMOVE_OVERLAPS( - CMSEARCH.out.matches, - ch_clan_info - ) - - REMOVE_OVERLAPS( - CMSEARCH.out.matches, - ch_clan_info - ) - - RUN_CONCATENATE_DEOVERLAPPED_MATCHES( - REMOVE_OVERLAPS.out.deoverlapped_matches.toList(), - ch_query_sequences - ) - - RUN_CONCATENATE_DEOVERLAPPED_MATCHES( - REMOVE_OVERLAPS.out.deoverlapped_matches.toList(), - ch_query_sequences - ) - - RUN_CONCATENATE_DEOVERLAPPED_MATCHES( - REMOVE_OVERLAPS.out.deoverlapped_matches.toList(), - ch_query_sequences - ) - - RUN_CONCATENATE_MATCHES( - CMSEARCH.out.matches.toList(), - ch_query_sequences - ) - - RUN_CONCATENATE_MATCHES( - CMSEARCH.out.matches.toList(), - ch_query_sequences - ) - - RUN_CONCATENATE_MATCHES( - CMSEARCH.out.matches.toList(), - ch_query_sequences - ) - - SPLIT_FASTA( - ch_query_sequences - ) - - SPLIT_FASTA( - ch_query_sequences - ) - - SPLIT_FASTA( - ch_query_sequences - ) - - emit: - concatenate_matches = RUN_CONCATENATE_MATCHES.out.result - deoverlapped_matches = RUN_CONCATENATE_DEOVERLAPPED_MATCHES.out.result - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/combined_gene_caller.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/combined_gene_caller.nf deleted file mode 100644 index 8ec43489a..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/combined_gene_caller.nf +++ /dev/null @@ -1,78 +0,0 @@ -nextflow.enable.dsl=2 - -include { FGS } from '../modules/FGS' -include { POST_PROCESSING } from '../modules/post_processing' -include { PRODIGAL } from '../modules/prodigal' - -workflow COMBINED_GENE_CALLER { - - take: - ch_input_fasta - ch_maskfile - - main: - FGS( - ch_input_fasta, - ch_input_fasta - ) - - POST_PROCESSING( - ch_maskfile, - FGS.out.predicted_proteins_faa, - FGS.out.predicted_proteins_ffn, - FGS.out.predicted_proteins_out, - PRODIGAL.out.predicted_proteins_faa, - PRODIGAL.out.predicted_proteins_ffn, - PRODIGAL.out.predicted_proteins_out, - ch_input_fasta - ) - - PRODIGAL( - ch_input_fasta - ) - - emit: - predicted_proteins = POST_PROCESSING.out.predicted_proteins - predicted_seq = POST_PROCESSING.out.predicted_seq - -} - - -workflow COMBINED_GENE_CALLER { - - take: - ch_input_fasta - ch_maskfile - - main: - FGS( - ch_input_fasta, - ch_input_fasta - ) - - FGS( - ch_input_fasta, - ch_input_fasta - ) - - POST_PROCESSING( - ch_maskfile, - FGS.out.predicted_proteins_faa, - FGS.out.predicted_proteins_ffn, - FGS.out.predicted_proteins_out, - ch_input_fasta - ) - - POST_PROCESSING( - ch_maskfile, - FGS.out.predicted_proteins_faa, - FGS.out.predicted_proteins_ffn, - FGS.out.predicted_proteins_out, - ch_input_fasta - ) - - emit: - predicted_proteins = POST_PROCESSING.out.predicted_proteins - predicted_seq = POST_PROCESSING.out.predicted_seq - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/diamond.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/diamond.nf deleted file mode 100644 index b5ce7c8d6..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/diamond.nf +++ /dev/null @@ -1,38 +0,0 @@ -nextflow.enable.dsl=2 - -include { DIAMOND_RUN } from '../modules/diamond_run' -include { POST_PROCESSING_UNIREF90 } from './post_processing_uniref90' - -workflow DIAMOND { - - take: - ch_uniref90_db_txt - ch_database_file - ch_filename - ch_max_target_seqs - ch_output_format - ch_query_input_file - ch_strand - ch_threads - - main: - DIAMOND_RUN( - ch_query_input_file, - ch_database_file, - ch_max_target_seqs, - ch_output_format, - ch_strand, - ch_threads - ) - - POST_PROCESSING_UNIREF90( - ch_filename, - ch_uniref90_db_txt, - DIAMOND_RUN.out.matches - ) - - emit: - diamond_output = DIAMOND_RUN.out.matches - post_processing_output = POST_PROCESSING_UNIREF90.out.join_out - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/eggnog.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/eggnog.nf deleted file mode 100644 index 6b4e3f3f7..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/eggnog.nf +++ /dev/null @@ -1,43 +0,0 @@ -nextflow.enable.dsl=2 - -include { EGGNOG_ANNOTATION } from '../modules/eggnog_annotation' -include { EGGNOG_HOMOLOGY_SEARCHES } from '../modules/eggnog_homology_searches' -include { UNITE_SEED_ORTHOLOGS } from '../modules/unite_seed_orthologs' - -workflow EGGNOG { - - take: - ch_cpu - ch_data_dir - ch_db - ch_db_diamond - ch_fasta_file - ch_file_acc - - main: - EGGNOG_ANNOTATION( - UNITE_SEED_ORTHOLOGS.out.result, - ch_cpu, - ch_data_dir, - ch_file_acc - ) - - EGGNOG_HOMOLOGY_SEARCHES( - ch_fasta_file.flatten().first(), - ch_cpu, - ch_data_dir, - ch_db, - ch_db_diamond, - ch_file_acc - ) - - UNITE_SEED_ORTHOLOGS( - EGGNOG_HOMOLOGY_SEARCHES.out.output_orthologs.toList(), - ch_file_acc - ) - - emit: - annotations = EGGNOG_ANNOTATION.out.output_annotations - orthologs = UNITE_SEED_ORTHOLOGS.out.result - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/filtering.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/filtering.nf deleted file mode 100644 index 0032c8e0c..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/filtering.nf +++ /dev/null @@ -1,32 +0,0 @@ -nextflow.enable.dsl=2 - -include { COUNT_READS } from '../modules/count_reads' -include { COUNT_READS_AFTER_FILTERING } from '../modules/count_reads_after_filtering' -include { FILTER_CONTIGS_ANTISMASH } from '../modules/filter_contigs_antismash' - -workflow FILTERING { - - take: - ch_contig_min_limit - ch_fasta - - main: - COUNT_READS( - ch_fasta - ) - - COUNT_READS_AFTER_FILTERING( - FILTER_CONTIGS_ANTISMASH.out.filtered_file - ) - - FILTER_CONTIGS_ANTISMASH( - ch_fasta, - ch_contig_min_limit, - COUNT_READS.out.count - ) - - emit: - count_after_filtering = COUNT_READS_AFTER_FILTERING.out.count - filtered_fasta_for_antismash = FILTER_CONTIGS_ANTISMASH.out.filtered_file - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/find_ribosomal_ncRNAs.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/find_ribosomal_ncRNAs.nf deleted file mode 100644 index 3aca1f2bf..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/find_ribosomal_ncRNAs.nf +++ /dev/null @@ -1,123 +0,0 @@ -nextflow.enable.dsl=2 - -include { CMSEARCH_ASSEMBLY } from './cmsearch_assembly' -include { CMSEARCH_RAW_DATA } from './cmsearch_raw_data' - -workflow FIND_RIBOSOMAL_NC_RNAS { - - take: - ch_clan_info - ch_covariance_models - ch_query_sequences - ch_type - - main: - CMSEARCH_ASSEMBLY( - ch_clan_info, - ch_covariance_models, - ch_query_sequences - ) - - CMSEARCH_RAW_DATA( - ch_clan_info, - ch_covariance_models, - ch_query_sequences - ) - - emit: - concatenate_matches = [CMSEARCH_ASSEMBLY.out.concatenate_matches, CMSEARCH_RAW_DATA.out.concatenate_matches] - deoverlapped_matches = [CMSEARCH_ASSEMBLY.out.deoverlapped_matches, CMSEARCH_RAW_DATA.out.deoverlapped_matches] - -} - - -workflow FIND_RIBOSOMAL_NC_RNAS { - - take: - ch_clan_info - ch_covariance_models - ch_query_sequences - ch_type - - main: - CMSEARCH_ASSEMBLY( - ch_clan_info, - ch_covariance_models, - ch_query_sequences - ) - - CMSEARCH_ASSEMBLY( - ch_clan_info, - ch_covariance_models, - ch_query_sequences - ) - - CMSEARCH_RAW_DATA( - ch_clan_info, - ch_covariance_models, - ch_query_sequences - ) - - CMSEARCH_RAW_DATA( - ch_clan_info, - ch_covariance_models, - ch_query_sequences - ) - - emit: - concatenate_matches = [CMSEARCH_ASSEMBLY.out.concatenate_matches, CMSEARCH_RAW_DATA.out.concatenate_matches] - deoverlapped_matches = [CMSEARCH_ASSEMBLY.out.deoverlapped_matches, CMSEARCH_RAW_DATA.out.deoverlapped_matches] - -} - - -workflow FIND_RIBOSOMAL_NC_RNAS { - - take: - ch_clan_info - ch_covariance_models - ch_query_sequences - ch_type - - main: - CMSEARCH_ASSEMBLY( - ch_clan_info, - ch_covariance_models, - ch_query_sequences - ) - - CMSEARCH_ASSEMBLY( - ch_clan_info, - ch_covariance_models, - ch_query_sequences - ) - - CMSEARCH_ASSEMBLY( - ch_clan_info, - ch_covariance_models, - ch_query_sequences - ) - - CMSEARCH_RAW_DATA( - ch_clan_info, - ch_covariance_models, - ch_query_sequences - ) - - CMSEARCH_RAW_DATA( - ch_clan_info, - ch_covariance_models, - ch_query_sequences - ) - - CMSEARCH_RAW_DATA( - ch_clan_info, - ch_covariance_models, - ch_query_sequences - ) - - emit: - concatenate_matches = [CMSEARCH_ASSEMBLY.out.concatenate_matches, CMSEARCH_RAW_DATA.out.concatenate_matches] - deoverlapped_matches = [CMSEARCH_ASSEMBLY.out.deoverlapped_matches, CMSEARCH_RAW_DATA.out.deoverlapped_matches] - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/folder_functional_annotation.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/folder_functional_annotation.nf deleted file mode 100644 index caaa00c64..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/folder_functional_annotation.nf +++ /dev/null @@ -1,75 +0,0 @@ -nextflow.enable.dsl=2 - -include { CHUNKING_TSV } from '../modules/chunking_tsv' -include { COMPRESSION_FUNC_ANN } from '../modules/compression_func_ann' -include { GO_SUMMARY } from '../modules/go_summary' -include { HEADER_ADDITION } from '../modules/header_addition' -include { MOVE_TO_FUNCTIONAL_ANNOTATION_FOLDER } from '../modules/move_to_functional_annotation_folder' -include { PFAM } from '../modules/pfam' -include { WRITE_SUMMARIES } from './write_summaries' - -workflow FOLDER_FUNCTIONAL_ANNOTATION { - - take: - ch_ips_table - ch_cds - ch_diamond_header - ch_diamond_table - ch_eggnog_annotations - ch_eggnog_orthologs - ch_fasta - ch_go_config - ch_hmmscan_table - ch_hmmsearch_header - ch_ips_header - ch_ko_file - ch_output_gff_gz - ch_output_gff_index - ch_rna - ch_antismash_geneclusters_txt - - main: - CHUNKING_TSV( - HEADER_ADDITION.out.output_table.toList() - ) - - COMPRESSION_FUNC_ANN( - ch_eggnog_annotations - ) - - GO_SUMMARY( - ch_ips_table, - ch_go_config, - ch_fasta - ) - - HEADER_ADDITION( - ch_diamond_table, - ch_diamond_header - ) - - MOVE_TO_FUNCTIONAL_ANNOTATION_FOLDER( - ch_output_gff_gz.toList() - ) - - PFAM( - ch_ips_table, - ch_fasta - ) - - WRITE_SUMMARIES( - ch_cds, - ch_hmmscan_table, - ch_ips_table, - ch_ko_file, - PFAM.out.annotations, - ch_rna, - ch_antismash_geneclusters_txt - ) - - emit: - functional_annotation_folder = MOVE_TO_FUNCTIONAL_ANNOTATION_FOLDER.out.out - stats = WRITE_SUMMARIES.out.stats - summary_antismash = WRITE_SUMMARIES.out.summary_antismash - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/functional_annotation.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/functional_annotation.nf deleted file mode 100644 index cec5f35a4..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/functional_annotation.nf +++ /dev/null @@ -1,128 +0,0 @@ -nextflow.enable.dsl=2 - -include { EGGNOG } from './eggnog' -include { RUN_IPS } from './run_IPS' -include { RUN_HMMER } from './run_hmmer' -include { SPLIT_SEQS } from '../modules/split_seqs' - -workflow FUNCTIONAL_ANNOTATION { - - take: - ch_cgc_predicted_proteins - ch_egg_nog_data_dir - ch_egg_nog_db - ch_egg_nog_diamond_db - ch_hmm_database - ch_hmm_gathering_bit_score - ch_hmm_omit_alignment - ch_inter_pro_scan_applications - ch_inter_pro_scan_databases - ch_inter_pro_scan_output_format - ch_chunk_size_ips - ch_chunk_size_eggnog - ch_chunk_size_hmm - ch_name_hmmer - ch_name_ips - - main: - EGGNOG( - params.after_qc.functional_annotation_and_post_processing.functional_annotation.eggnog_cpu, - ch_egg_nog_data_dir, - ch_egg_nog_db, - ch_egg_nog_diamond_db, - SPLIT_SEQS.out.chunks, - ch_cgc_predicted_proteins - ) - - RUN_IPS( - ch_cgc_predicted_proteins, - ch_inter_pro_scan_applications, - ch_inter_pro_scan_databases, - ch_inter_pro_scan_output_format, - ch_chunk_size_ips, - ch_name_ips - ) - - RUN_HMMER( - ch_cgc_predicted_proteins, - ch_hmm_database, - ch_hmm_gathering_bit_score, - ch_hmm_omit_alignment, - ch_chunk_size_hmm, - ch_name_hmmer, - RUN_IPS.out.ips_result - ) - - SPLIT_SEQS( - ch_cgc_predicted_proteins, - ch_chunk_size_eggnog - ) - - emit: - eggnog_annotations = EGGNOG.out.annotations - eggnog_orthologs = EGGNOG.out.orthologs - hmm_result = RUN_HMMER.out.hmm_result - ips_result = RUN_IPS.out.ips_result - -} - - -workflow FUNCTIONAL_ANNOTATION { - - take: - ch_cgc_predicted_proteins - ch_hmm_database - ch_hmm_gathering_bit_score - ch_hmm_omit_alignment - ch_inter_pro_scan_applications - ch_inter_pro_scan_databases - ch_inter_pro_scan_output_format - ch_chunk_size_ips - ch_chunk_size_hmm - ch_name_hmmer - ch_name_ips - - main: - RUN_IPS( - ch_cgc_predicted_proteins, - ch_inter_pro_scan_applications, - ch_inter_pro_scan_databases, - ch_inter_pro_scan_output_format, - ch_chunk_size_ips, - ch_name_ips - ) - - RUN_IPS( - ch_cgc_predicted_proteins, - ch_inter_pro_scan_applications, - ch_inter_pro_scan_databases, - ch_inter_pro_scan_output_format, - ch_chunk_size_ips, - ch_name_ips - ) - - RUN_HMMER( - ch_cgc_predicted_proteins, - ch_hmm_database, - ch_hmm_gathering_bit_score, - ch_hmm_omit_alignment, - ch_chunk_size_hmm, - ch_name_hmmer, - RUN_IPS.out.ips_result - ) - - RUN_HMMER( - ch_cgc_predicted_proteins, - ch_hmm_database, - ch_hmm_gathering_bit_score, - ch_hmm_omit_alignment, - ch_chunk_size_hmm, - ch_name_hmmer, - RUN_IPS.out.ips_result - ) - - emit: - hmm_result = RUN_HMMER.out.hmm_result - ips_result = RUN_IPS.out.ips_result - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/functional_annotation_and_post_processing.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/functional_annotation_and_post_processing.nf deleted file mode 100644 index 321532dc8..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/functional_annotation_and_post_processing.nf +++ /dev/null @@ -1,234 +0,0 @@ -nextflow.enable.dsl=2 - -include { CHANGE_FORMATS_AND_NAMES } from './change_formats_and_names' -include { DIAMOND } from './diamond' -include { FOLDER_FUNCTIONAL_ANNOTATION } from './folder_functional_annotation' -include { FUNCTIONAL_ANNOTATION } from './functional_annotation' -include { GENOME_PROPERTIES } from '../modules/genome_properties' -include { GFF } from '../modules/gff' -include { MOVE_ANTISMASH_SUMMARY_TO_PATHWAYS_SYSTEMS_FOLDER } from '../modules/move_antismash_summary_to_pathways_systems_folder' -include { MOVE_TO_PATHWAYS_SYSTEMS_FOLDER } from '../modules/move_to_pathways_systems_folder' -include { PATHWAYS } from './pathways' -include { CHUNKING_TSV } from '../modules/chunking_tsv' -include { GO_SUMMARY } from '../modules/go_summary' -include { HEADER_ADDITION } from '../modules/header_addition' -include { MOVE_TO_FUNCTIONAL_ANNOTATION_FOLDER } from '../modules/move_to_functional_annotation_folder' -include { PFAM } from '../modules/pfam' -include { WRITE_SUMMARIES } from './write_summaries' - -workflow FUNCTIONAL_ANNOTATION_AND_POST_PROCESSING { - - take: - ch_egg_nog_data_dir - ch_egg_nog_db - ch_egg_nog_diamond_db - ch_hmm_gathering_bit_score - ch_hmm_name_database - ch_hmm_omit_alignment - ch_inter_pro_scan_applications - ch_inter_pro_scan_databases - ch_inter_pro_scan_output_format - ch_uniref90_db_txt - ch_antismash_geneclusters_txt - ch_cgc_results_faa - ch_diamond_database_file - ch_diamond_header - ch_diamond_max_target_seqs - ch_filtered_fasta - ch_func_ann_names_hmmer - ch_func_ann_names_ips - ch_go_config - ch_gp_flatfiles_path - ch_graphs - ch_hmmsearch_header - ch_ips_header - ch_ko_file - ch_pathways_classes - ch_pathways_names - ch_protein_chunk_size_ips - ch_protein_chunk_size_eggnog - ch_protein_chunk_size_hmm - ch_rna_prediction_ncrna - - main: - CHANGE_FORMATS_AND_NAMES( - ch_filtered_fasta, - GENOME_PROPERTIES.out.summary, - PATHWAYS.out.kegg_pathways_summary - ) - - DIAMOND( - ch_uniref90_db_txt, - ch_diamond_database_file, - ch_filtered_fasta, - ch_diamond_max_target_seqs, - params.after_qc.functional_annotation_and_post_processing.diamond_output_format, - ch_cgc_results_faa, - params.after_qc.functional_annotation_and_post_processing.diamond_strand, - params.after_qc.functional_annotation_and_post_processing.diamond_threads - ) - - FOLDER_FUNCTIONAL_ANNOTATION( - FUNCTIONAL_ANNOTATION.out.ips_result, - ch_cgc_results_faa, - ch_diamond_header, - DIAMOND.out.post_processing_output, - FUNCTIONAL_ANNOTATION.out.eggnog_annotations, - FUNCTIONAL_ANNOTATION.out.eggnog_orthologs, - ch_filtered_fasta, - ch_go_config, - FUNCTIONAL_ANNOTATION.out.hmm_result, - ch_hmmsearch_header, - ch_ips_header, - ch_ko_file, - GFF.out.output_gff_gz, - GFF.out.output_gff_index, - ch_rna_prediction_ncrna, - ch_antismash_geneclusters_txt - ) - - FUNCTIONAL_ANNOTATION( - ch_cgc_results_faa, - ch_egg_nog_data_dir, - ch_egg_nog_db, - ch_egg_nog_diamond_db, - ch_hmm_name_database, - ch_hmm_gathering_bit_score, - ch_hmm_omit_alignment, - ch_inter_pro_scan_applications, - ch_inter_pro_scan_databases, - ch_inter_pro_scan_output_format, - ch_protein_chunk_size_ips, - ch_protein_chunk_size_eggnog, - ch_protein_chunk_size_hmm, - ch_func_ann_names_hmmer, - ch_func_ann_names_ips - ) - - GENOME_PROPERTIES( - FUNCTIONAL_ANNOTATION.out.ips_result, - ch_gp_flatfiles_path, - ch_filtered_fasta - ) - - GFF( - FUNCTIONAL_ANNOTATION.out.eggnog_annotations, - ch_cgc_results_faa, - FUNCTIONAL_ANNOTATION.out.ips_result, - ch_filtered_fasta - ) - - MOVE_ANTISMASH_SUMMARY_TO_PATHWAYS_SYSTEMS_FOLDER( - FOLDER_FUNCTIONAL_ANNOTATION.out.summary_antismash - ) - - MOVE_TO_PATHWAYS_SYSTEMS_FOLDER( - PATHWAYS.out.kegg_contigs_summary.toList() - ) - - PATHWAYS( - ch_filtered_fasta, - ch_graphs, - FUNCTIONAL_ANNOTATION.out.hmm_result, - ch_filtered_fasta, - ch_pathways_classes, - ch_pathways_names - ) - - emit: - functional_annotation_folder = FOLDER_FUNCTIONAL_ANNOTATION.out.functional_annotation_folder - pathways_systems_folder = MOVE_TO_PATHWAYS_SYSTEMS_FOLDER.out.out - pathways_systems_folder_antismash_summary = MOVE_ANTISMASH_SUMMARY_TO_PATHWAYS_SYSTEMS_FOLDER.out.summary_in_folder - stats = FOLDER_FUNCTIONAL_ANNOTATION.out.stats - -} - - -workflow FUNCTIONAL_ANNOTATION_AND_POST_PROCESSING { - - take: - ch_hmm_database - ch_hmm_gathering_bit_score - ch_hmm_omit_alignment - ch_inter_pro_scan_applications - ch_inter_pro_scan_databases - ch_inter_pro_scan_output_format - ch_cgc_results_faa - ch_filtered_fasta - ch_func_ann_names_hmmer - ch_func_ann_names_ips - ch_go_config - ch_hmmsearch_header - ch_ips_header - ch_ko_file - ch_protein_chunk_size_ips - ch_protein_chunk_size_hmm - ch_rna_prediction_ncrna - - main: - CHUNKING_TSV( - HEADER_ADDITION.out.output_table.toList() - ) - - FUNCTIONAL_ANNOTATION( - ch_cgc_results_faa, - ch_hmm_database, - ch_hmm_gathering_bit_score, - ch_hmm_omit_alignment, - ch_inter_pro_scan_applications, - ch_inter_pro_scan_databases, - ch_inter_pro_scan_output_format, - ch_protein_chunk_size_ips, - ch_protein_chunk_size_hmm, - ch_func_ann_names_hmmer, - ch_func_ann_names_ips - ) - - FUNCTIONAL_ANNOTATION( - ch_cgc_results_faa, - ch_hmm_database, - ch_hmm_gathering_bit_score, - ch_hmm_omit_alignment, - ch_inter_pro_scan_applications, - ch_inter_pro_scan_databases, - ch_inter_pro_scan_output_format, - ch_protein_chunk_size_ips, - ch_protein_chunk_size_hmm, - ch_func_ann_names_hmmer, - ch_func_ann_names_ips - ) - - GO_SUMMARY( - FUNCTIONAL_ANNOTATION.out.ips_result, - ch_go_config, - ch_filtered_fasta - ) - - HEADER_ADDITION( - FUNCTIONAL_ANNOTATION.out.hmm_result, - ch_hmmsearch_header - ) - - MOVE_TO_FUNCTIONAL_ANNOTATION_FOLDER( - WRITE_SUMMARIES.out.summary_ips.toList() - ) - - PFAM( - FUNCTIONAL_ANNOTATION.out.ips_result, - ch_filtered_fasta - ) - - WRITE_SUMMARIES( - ch_cgc_results_faa, - FUNCTIONAL_ANNOTATION.out.hmm_result, - FUNCTIONAL_ANNOTATION.out.ips_result, - ch_ko_file, - PFAM.out.annotations, - ch_rna_prediction_ncrna - ) - - emit: - functional_annotation_folder = MOVE_TO_FUNCTIONAL_ANNOTATION_FOLDER.out.out - stats = WRITE_SUMMARIES.out.stats - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/motus_taxonomy.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/motus_taxonomy.nf deleted file mode 100644 index 5ea5a3386..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/motus_taxonomy.nf +++ /dev/null @@ -1,23 +0,0 @@ -nextflow.enable.dsl=2 - -include { CLEAN_CLASSIFICATION } from '../modules/clean_classification' -include { MOTUS_CLASSIFICATION } from '../modules/motus_classification' - -workflow MOTUS_TAXONOMY { - - take: - ch_reads - - main: - CLEAN_CLASSIFICATION( - MOTUS_CLASSIFICATION.out.motu_taxonomy - ) - - MOTUS_CLASSIFICATION( - ch_reads - ) - - emit: - motus = CLEAN_CLASSIFICATION.out.clean_annotations - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/no_antismash_subwf.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/no_antismash_subwf.nf deleted file mode 100644 index cadc6c9ae..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/no_antismash_subwf.nf +++ /dev/null @@ -1,23 +0,0 @@ -nextflow.enable.dsl=2 - -include { RETURN_ANTISMASH_IN_FOLDER } from '../modules/return_antismash_in_folder' -include { TOUCH_NO_ANTISMASH_FLAG } from '../modules/touch_no_antismash_flag' - -workflow NO_ANTISMASH_SUBWF { - - take: - ch_filtered_fasta - ch_final_folder_name - - main: - RETURN_ANTISMASH_IN_FOLDER( - TOUCH_NO_ANTISMASH_FLAG.out.created_file.toList(), - ch_final_folder_name - ) - - TOUCH_NO_ANTISMASH_FLAG() - - emit: - antismash_result_folder = RETURN_ANTISMASH_IN_FOLDER.out.out - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/other_ncrnas.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/other_ncrnas.nf deleted file mode 100644 index 00457451b..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/other_ncrnas.nf +++ /dev/null @@ -1,118 +0,0 @@ -nextflow.enable.dsl=2 - -include { EXTRACT_COORDS } from '../modules/extract_coords' -include { GET_COORDS } from '../modules/get_coords' -include { GET_NCRNAS } from '../modules/get_ncrnas' -include { GZIP_FILES } from '../modules/gzip_files' -include { INDEX_READS } from '../modules/index_reads' -include { RENAME_NCRNAS } from '../modules/rename_ncrnas' - -workflow OTHER_NCRNAS { - - take: - ch_cmsearch_file - ch_input_sequences - ch_name_string - ch_other_ncrna_ribosomal_models - - main: - EXTRACT_COORDS( - ch_cmsearch_file, - ch_name_string - ) - - GET_COORDS( - EXTRACT_COORDS.out.matched_seqs_with_coords, - ch_other_ncrna_ribosomal_models - ) - - GET_NCRNAS( - INDEX_READS.out.sequences_with_index, - GET_COORDS.out.matches.flatten().first() - ) - - GZIP_FILES( - RENAME_NCRNAS.out.renamed_file - ) - - INDEX_READS( - ch_input_sequences - ) - - RENAME_NCRNAS( - GET_NCRNAS.out.sequences - ) - - emit: - ncrnas = GZIP_FILES.out.compressed_file - -} - - -workflow OTHER_NCRNAS { - - take: - ch_cmsearch_file - ch_input_sequences - ch_name_string - ch_other_ncrna_ribosomal_models - - main: - EXTRACT_COORDS( - ch_cmsearch_file, - ch_name_string - ) - - EXTRACT_COORDS( - ch_cmsearch_file, - ch_name_string - ) - - GET_COORDS( - EXTRACT_COORDS.out.matched_seqs_with_coords, - ch_other_ncrna_ribosomal_models - ) - - GET_COORDS( - EXTRACT_COORDS.out.matched_seqs_with_coords, - ch_other_ncrna_ribosomal_models - ) - - GET_NCRNAS( - INDEX_READS.out.sequences_with_index, - GET_COORDS.out.matches.flatten().first() - ) - - GET_NCRNAS( - INDEX_READS.out.sequences_with_index, - GET_COORDS.out.matches.flatten().first() - ) - - GZIP_FILES( - RENAME_NCRNAS.out.renamed_file - ) - - GZIP_FILES( - RENAME_NCRNAS.out.renamed_file - ) - - INDEX_READS( - ch_input_sequences - ) - - INDEX_READS( - ch_input_sequences - ) - - RENAME_NCRNAS( - GET_NCRNAS.out.sequences - ) - - RENAME_NCRNAS( - GET_NCRNAS.out.sequences - ) - - emit: - ncrnas = GZIP_FILES.out.compressed_file - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/overlap_reads.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/overlap_reads.nf deleted file mode 100644 index 12dc73746..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/overlap_reads.nf +++ /dev/null @@ -1,125 +0,0 @@ -nextflow.enable.dsl=2 - -include { COUNT_SUBMITTED_READS } from '../modules/count_submitted_reads' -include { COUNT_SUBMITTED_READS_SINGLE } from '../modules/count_submitted_reads_single' -include { FILTER_PAIRED } from '../modules/filter_paired' -include { OVERLAP_READS } from '../modules/overlap_reads' -include { UNZIP_MERGED_READS } from '../modules/unzip_merged_reads' -include { UNZIP_SINGLE_READS } from '../modules/unzip_single_reads' - -workflow OVERLAP_READS { - - take: - ch_paired_reads_length_filter - ch_forward_reads - ch_reverse_reads - ch_single_reads - - main: - COUNT_SUBMITTED_READS( - ch_forward_reads - ) - - COUNT_SUBMITTED_READS_SINGLE( - UNZIP_SINGLE_READS.out.unzipped_file - ) - - FILTER_PAIRED( - ch_forward_reads, - ch_reverse_reads, - ch_paired_reads_length_filter - ) - - OVERLAP_READS( - FILTER_PAIRED.out.out_fastq1, - ch_forward_reads, - FILTER_PAIRED.out.out_fastq2 - ) - - UNZIP_MERGED_READS( - OVERLAP_READS.out.merged_reads - ) - - UNZIP_SINGLE_READS( - ch_single_reads - ) - - emit: - count_forward_submitted_reads = [COUNT_SUBMITTED_READS.out.count, COUNT_SUBMITTED_READS_SINGLE.out.count] - fastp_report = FILTER_PAIRED.out.json_report - unzipped_single_reads = [UNZIP_MERGED_READS.out.unzipped_file, UNZIP_SINGLE_READS.out.unzipped_file] - -} - - -workflow OVERLAP_READS { - - take: - ch_paired_reads_length_filter - ch_forward_reads - ch_reverse_reads - ch_single_reads - - main: - COUNT_SUBMITTED_READS( - ch_forward_reads - ) - - COUNT_SUBMITTED_READS( - ch_forward_reads - ) - - COUNT_SUBMITTED_READS_SINGLE( - UNZIP_SINGLE_READS.out.unzipped_file - ) - - COUNT_SUBMITTED_READS_SINGLE( - UNZIP_SINGLE_READS.out.unzipped_file - ) - - FILTER_PAIRED( - ch_forward_reads, - ch_reverse_reads, - ch_paired_reads_length_filter - ) - - FILTER_PAIRED( - ch_forward_reads, - ch_reverse_reads, - ch_paired_reads_length_filter - ) - - OVERLAP_READS( - FILTER_PAIRED.out.out_fastq1, - ch_forward_reads, - FILTER_PAIRED.out.out_fastq2 - ) - - OVERLAP_READS( - FILTER_PAIRED.out.out_fastq1, - ch_forward_reads, - FILTER_PAIRED.out.out_fastq2 - ) - - UNZIP_MERGED_READS( - OVERLAP_READS.out.merged_reads - ) - - UNZIP_MERGED_READS( - OVERLAP_READS.out.merged_reads - ) - - UNZIP_SINGLE_READS( - ch_single_reads - ) - - UNZIP_SINGLE_READS( - ch_single_reads - ) - - emit: - count_forward_submitted_reads = [COUNT_SUBMITTED_READS.out.count, COUNT_SUBMITTED_READS_SINGLE.out.count] - fastp_report = FILTER_PAIRED.out.json_report - unzipped_single_reads = [UNZIP_MERGED_READS.out.unzipped_file, UNZIP_SINGLE_READS.out.unzipped_file] - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/pathways.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/pathways.nf deleted file mode 100644 index d8eb70842..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/pathways.nf +++ /dev/null @@ -1,41 +0,0 @@ -nextflow.enable.dsl=2 - -include { KEGG_PATHWAYS } from '../modules/kegg_pathways' -include { PARSING_HMMSCAN } from '../modules/parsing_hmmscan' -include { TAB_MODIFICATION } from '../modules/tab_modification' - -workflow PATHWAYS { - - take: - ch_filtered_fasta - ch_graphs - ch_input_table_hmmscan - ch_outputname - ch_pathways_classes - ch_pathways_names - - main: - KEGG_PATHWAYS( - PARSING_HMMSCAN.out.output_table, - ch_graphs, - ch_outputname, - ch_pathways_classes, - ch_pathways_names - ) - - PARSING_HMMSCAN( - ch_filtered_fasta, - TAB_MODIFICATION.out.output_with_tabs - ) - - TAB_MODIFICATION( - ch_input_table_hmmscan - ) - - emit: - kegg_contigs_summary = KEGG_PATHWAYS.out.summary_contigs - kegg_pathways_summary = KEGG_PATHWAYS.out.summary_pathways - modification_out = TAB_MODIFICATION.out.output_with_tabs - parsing_hmmscan_out = PARSING_HMMSCAN.out.output_table - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/pfam_domain_instances.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/pfam_domain_instances.nf deleted file mode 100644 index 07510880f..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/pfam_domain_instances.nf +++ /dev/null @@ -1,43 +0,0 @@ -nextflow.enable.dsl=2 - -include { ADD_DOMAIN_POSITIONS } from '../modules/add_domain_positions' -include { COLLECT_LOST_INSTANCES } from '../modules/collect_lost_instances' -include { FILTER_PFAM_STRUCTURES } from '../modules/filter_pfam_structures' -include { RESMAPPING_PFAM_STRUCTS } from './resmapping_pfam_structs' - -workflow PFAM_DOMAIN_INSTANCES { - - take: - ch_family_idsfile - ch_lost_merged - ch_min_dom_size - ch_resmapped_file - ch_siftsdir - - main: - ADD_DOMAIN_POSITIONS( - RESMAPPING_PFAM_STRUCTS.out.resmapped_pfam.toList(), - ch_resmapped_file - ) - - COLLECT_LOST_INSTANCES( - RESMAPPING_PFAM_STRUCTS.out.lost_insta_pfam.toList(), - FILTER_PFAM_STRUCTURES.out.pfam_obs, - ch_lost_merged - ) - - FILTER_PFAM_STRUCTURES( - ch_family_idsfile, - ch_min_dom_size - ) - - RESMAPPING_PFAM_STRUCTS( - FILTER_PFAM_STRUCTURES.out.splitted_pfam_sep.flatten().first(), - ch_siftsdir - ) - - emit: - pfam_domain_posi_file = ADD_DOMAIN_POSITIONS.out.resmapped_domains - pfam_total_lost_structures = COLLECT_LOST_INSTANCES.out.lost_domain_list - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/post_processing_uniref90.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/post_processing_uniref90.nf deleted file mode 100644 index 92dae1ba2..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/post_processing_uniref90.nf +++ /dev/null @@ -1,27 +0,0 @@ -nextflow.enable.dsl=2 - -include { JOIN } from '../modules/join' -include { SORTING } from '../modules/sorting' - -workflow POST_PROCESSING_UNIREF90 { - - take: - ch_filename - ch_input_db - ch_input_diamond - - main: - JOIN( - SORTING.out.output_sorted, - ch_filename, - ch_input_db - ) - - SORTING( - ch_input_diamond - ) - - emit: - join_out = JOIN.out.output_join - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/resmapping_cath_structs.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/resmapping_cath_structs.nf deleted file mode 100644 index 76644fcb6..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/resmapping_cath_structs.nf +++ /dev/null @@ -1,21 +0,0 @@ -nextflow.enable.dsl=2 - -include { RESMAPPING_FOR_CATH_PDB2_UP } from '../modules/resmapping_for_CATH_PDB2UP' - -workflow RESMAPPING_CATH_STRUCTS { - - take: - ch_flt_files - ch_sifts - - main: - RESMAPPING_FOR_CATH_PDB2_UP( - ch_flt_files, - ch_sifts - ) - - emit: - lost_insta_cath = RESMAPPING_FOR_CATH_PDB2_UP.out.cath_lost - resmapped_cath = RESMAPPING_FOR_CATH_PDB2_UP.out.cath_resmapped - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/resmapping_pfam_structs.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/resmapping_pfam_structs.nf deleted file mode 100644 index 5d34c5e9b..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/resmapping_pfam_structs.nf +++ /dev/null @@ -1,21 +0,0 @@ -nextflow.enable.dsl=2 - -include { RESMAPPING_FOR_PFAM_UP2_PDB } from '../modules/resmapping_for_Pfam_UP2PDB' - -workflow RESMAPPING_PFAM_STRUCTS { - - take: - ch_flt_files - ch_sifts - - main: - RESMAPPING_FOR_PFAM_UP2_PDB( - ch_flt_files, - ch_sifts - ) - - emit: - lost_insta_pfam = RESMAPPING_FOR_PFAM_UP2_PDB.out.pfam_lost - resmapped_pfam = RESMAPPING_FOR_PFAM_UP2_PDB.out.pfam_resmapped - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/rna_prediction.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/rna_prediction.nf deleted file mode 100644 index 5f00ec8bb..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/rna_prediction.nf +++ /dev/null @@ -1,516 +0,0 @@ -nextflow.enable.dsl=2 - -include { CLASSIFY_LSUS } from './classify_LSUs' -include { CLASSIFY_SSUS } from './classify_SSUs' -include { COUNT_LSU_FASTA } from '../modules/count_lsu_fasta' -include { COUNT_SSU_FASTA } from '../modules/count_ssu_fasta' -include { EXTRACT_COORDS } from '../modules/extract_coords' -include { EXTRACT_SEQUENCES } from '../modules/extract_sequences' -include { EXTRACT_SUBUNITS } from '../modules/extract_subunits' -include { EXTRACT_SUBUNITS_COORDS } from '../modules/extract_subunits_coords' -include { FIND_RIBOSOMAL_NC_RNAS } from './find_ribosomal_ncRNAs' -include { GZIP_FILES } from '../modules/gzip_files' -include { INDEX_READS } from '../modules/index_reads' - -workflow RNA_PREDICTION { - - take: - ch_input_sequences - ch_ncrna_ribosomal_model_clans - ch_ncrna_ribosomal_models - ch_pattern_5.8s - ch_pattern_5_s - ch_pattern_lsu - ch_pattern_ssu - ch_silva_lsu_database - ch_silva_lsu_otus - ch_silva_lsu_taxonomy - ch_silva_ssu_database - ch_silva_ssu_otus - ch_silva_ssu_taxonomy - ch_type - - main: - CLASSIFY_LSUS( - EXTRACT_SUBUNITS.out.LSU_seqs, - ch_input_sequences, - ch_silva_lsu_database, - ch_silva_lsu_taxonomy, - ch_pattern_lsu, - ch_silva_lsu_otus, - params.after_qc.rna_prediction.classify_lsus_return_dirname - ) - - CLASSIFY_SSUS( - EXTRACT_SUBUNITS.out.SSU_seqs, - ch_input_sequences, - ch_silva_ssu_database, - ch_silva_ssu_taxonomy, - ch_pattern_ssu, - ch_silva_ssu_otus, - params.after_qc.rna_prediction.classify_ssus_return_dirname - ) - - COUNT_LSU_FASTA( - EXTRACT_SUBUNITS.out.LSU_seqs - ) - - COUNT_SSU_FASTA( - EXTRACT_SUBUNITS.out.SSU_seqs - ) - - EXTRACT_COORDS( - FIND_RIBOSOMAL_NC_RNAS.out.deoverlapped_matches - ) - - EXTRACT_SEQUENCES( - INDEX_READS.out.sequences_with_index, - EXTRACT_COORDS.out.matched_seqs_with_coords - ) - - EXTRACT_SUBUNITS( - EXTRACT_SEQUENCES.out.sequences, - ch_pattern_lsu, - ch_pattern_ssu, - ch_pattern_5.8s, - ch_pattern_5_s - ) - - EXTRACT_SUBUNITS_COORDS( - EXTRACT_COORDS.out.matched_seqs_with_coords, - ch_pattern_lsu, - ch_pattern_ssu - ) - - FIND_RIBOSOMAL_NC_RNAS( - ch_ncrna_ribosomal_model_clans, - ch_ncrna_ribosomal_models, - ch_input_sequences, - ch_type - ) - - GZIP_FILES( - EXTRACT_SUBUNITS.out.fastas.flatten().first() - ) - - INDEX_READS( - ch_input_sequences - ) - - emit: - LSU_SSU_count = EXTRACT_SUBUNITS_COORDS.out.counts - LSU_coords = EXTRACT_SUBUNITS_COORDS.out.LSU_seqs - LSU_fasta = EXTRACT_SUBUNITS.out.LSU_seqs - LSU_folder = CLASSIFY_LSUS.out.out_dir - SSU_coords = EXTRACT_SUBUNITS_COORDS.out.SSU_seqs - SSU_fasta = EXTRACT_SUBUNITS.out.SSU_seqs - SSU_folder = CLASSIFY_SSUS.out.out_dir - cmsearch_result = FIND_RIBOSOMAL_NC_RNAS.out.concatenate_matches - compressed_rnas = GZIP_FILES.out.compressed_file - ncRNA = FIND_RIBOSOMAL_NC_RNAS.out.deoverlapped_matches - number_LSU_mapseq = CLASSIFY_LSUS.out.number_lines_mapseq - number_SSU_mapseq = CLASSIFY_SSUS.out.number_lines_mapseq - -} - - -workflow RNA_PREDICTION { - - take: - ch_input_sequences - ch_ncrna_ribosomal_model_clans - ch_ncrna_ribosomal_models - ch_pattern_5.8s - ch_pattern_5_s - ch_pattern_lsu - ch_pattern_ssu - ch_silva_lsu_database - ch_silva_lsu_otus - ch_silva_lsu_taxonomy - ch_silva_ssu_database - ch_silva_ssu_otus - ch_silva_ssu_taxonomy - ch_type - - main: - CLASSIFY_LSUS( - EXTRACT_SUBUNITS.out.LSU_seqs, - ch_input_sequences, - ch_silva_lsu_database, - ch_silva_lsu_taxonomy, - ch_pattern_lsu, - ch_silva_lsu_otus, - params.after_qc.rna_prediction.classify_lsus_return_dirname - ) - - CLASSIFY_LSUS( - EXTRACT_SUBUNITS.out.LSU_seqs, - ch_input_sequences, - ch_silva_lsu_database, - ch_silva_lsu_taxonomy, - ch_pattern_lsu, - ch_silva_lsu_otus, - params.after_qc.rna_prediction.classify_lsus_return_dirname - ) - - CLASSIFY_SSUS( - EXTRACT_SUBUNITS.out.SSU_seqs, - ch_input_sequences, - ch_silva_ssu_database, - ch_silva_ssu_taxonomy, - ch_pattern_ssu, - ch_silva_ssu_otus, - params.after_qc.rna_prediction.classify_ssus_return_dirname - ) - - CLASSIFY_SSUS( - EXTRACT_SUBUNITS.out.SSU_seqs, - ch_input_sequences, - ch_silva_ssu_database, - ch_silva_ssu_taxonomy, - ch_pattern_ssu, - ch_silva_ssu_otus, - params.after_qc.rna_prediction.classify_ssus_return_dirname - ) - - COUNT_LSU_FASTA( - EXTRACT_SUBUNITS.out.LSU_seqs - ) - - COUNT_LSU_FASTA( - EXTRACT_SUBUNITS.out.LSU_seqs - ) - - COUNT_SSU_FASTA( - EXTRACT_SUBUNITS.out.SSU_seqs - ) - - COUNT_SSU_FASTA( - EXTRACT_SUBUNITS.out.SSU_seqs - ) - - EXTRACT_COORDS( - FIND_RIBOSOMAL_NC_RNAS.out.deoverlapped_matches - ) - - EXTRACT_COORDS( - FIND_RIBOSOMAL_NC_RNAS.out.deoverlapped_matches - ) - - EXTRACT_SEQUENCES( - INDEX_READS.out.sequences_with_index, - EXTRACT_COORDS.out.matched_seqs_with_coords - ) - - EXTRACT_SEQUENCES( - INDEX_READS.out.sequences_with_index, - EXTRACT_COORDS.out.matched_seqs_with_coords - ) - - EXTRACT_SUBUNITS( - EXTRACT_SEQUENCES.out.sequences, - ch_pattern_lsu, - ch_pattern_ssu, - ch_pattern_5.8s, - ch_pattern_5_s - ) - - EXTRACT_SUBUNITS( - EXTRACT_SEQUENCES.out.sequences, - ch_pattern_lsu, - ch_pattern_ssu, - ch_pattern_5.8s, - ch_pattern_5_s - ) - - EXTRACT_SUBUNITS_COORDS( - EXTRACT_COORDS.out.matched_seqs_with_coords, - ch_pattern_lsu, - ch_pattern_ssu - ) - - EXTRACT_SUBUNITS_COORDS( - EXTRACT_COORDS.out.matched_seqs_with_coords, - ch_pattern_lsu, - ch_pattern_ssu - ) - - FIND_RIBOSOMAL_NC_RNAS( - ch_ncrna_ribosomal_model_clans, - ch_ncrna_ribosomal_models, - ch_input_sequences, - ch_type - ) - - FIND_RIBOSOMAL_NC_RNAS( - ch_ncrna_ribosomal_model_clans, - ch_ncrna_ribosomal_models, - ch_input_sequences, - ch_type - ) - - GZIP_FILES( - EXTRACT_SUBUNITS.out.fastas.flatten().first() - ) - - GZIP_FILES( - EXTRACT_SUBUNITS.out.fastas.flatten().first() - ) - - INDEX_READS( - ch_input_sequences - ) - - INDEX_READS( - ch_input_sequences - ) - - emit: - LSU_SSU_count = EXTRACT_SUBUNITS_COORDS.out.counts - LSU_coords = EXTRACT_SUBUNITS_COORDS.out.LSU_seqs - LSU_fasta = EXTRACT_SUBUNITS.out.LSU_seqs - LSU_folder = CLASSIFY_LSUS.out.out_dir - SSU_coords = EXTRACT_SUBUNITS_COORDS.out.SSU_seqs - SSU_fasta = EXTRACT_SUBUNITS.out.SSU_seqs - SSU_folder = CLASSIFY_SSUS.out.out_dir - cmsearch_result = FIND_RIBOSOMAL_NC_RNAS.out.concatenate_matches - compressed_rnas = GZIP_FILES.out.compressed_file - ncRNA = FIND_RIBOSOMAL_NC_RNAS.out.deoverlapped_matches - number_LSU_mapseq = CLASSIFY_LSUS.out.number_lines_mapseq - number_SSU_mapseq = CLASSIFY_SSUS.out.number_lines_mapseq - -} - - -workflow RNA_PREDICTION { - - take: - ch_input_sequences - ch_ncrna_ribosomal_model_clans - ch_ncrna_ribosomal_models - ch_pattern_5.8s - ch_pattern_5_s - ch_pattern_lsu - ch_pattern_ssu - ch_silva_lsu_database - ch_silva_lsu_otus - ch_silva_lsu_taxonomy - ch_silva_ssu_database - ch_silva_ssu_otus - ch_silva_ssu_taxonomy - ch_type - - main: - CLASSIFY_LSUS( - EXTRACT_SUBUNITS.out.LSU_seqs, - ch_input_sequences, - ch_silva_lsu_database, - ch_silva_lsu_taxonomy, - ch_pattern_lsu, - ch_silva_lsu_otus, - params.after_qc.rna_prediction.classify_lsus_return_dirname - ) - - CLASSIFY_LSUS( - EXTRACT_SUBUNITS.out.LSU_seqs, - ch_input_sequences, - ch_silva_lsu_database, - ch_silva_lsu_taxonomy, - ch_pattern_lsu, - ch_silva_lsu_otus, - params.after_qc.rna_prediction.classify_lsus_return_dirname - ) - - CLASSIFY_LSUS( - EXTRACT_SUBUNITS.out.LSU_seqs, - ch_input_sequences, - ch_silva_lsu_database, - ch_silva_lsu_taxonomy, - ch_pattern_lsu, - ch_silva_lsu_otus, - params.after_qc.rna_prediction.classify_lsus_return_dirname - ) - - CLASSIFY_SSUS( - EXTRACT_SUBUNITS.out.SSU_seqs, - ch_input_sequences, - ch_silva_ssu_database, - ch_silva_ssu_taxonomy, - ch_pattern_ssu, - ch_silva_ssu_otus, - params.after_qc.rna_prediction.classify_ssus_return_dirname - ) - - CLASSIFY_SSUS( - EXTRACT_SUBUNITS.out.SSU_seqs, - ch_input_sequences, - ch_silva_ssu_database, - ch_silva_ssu_taxonomy, - ch_pattern_ssu, - ch_silva_ssu_otus, - params.after_qc.rna_prediction.classify_ssus_return_dirname - ) - - CLASSIFY_SSUS( - EXTRACT_SUBUNITS.out.SSU_seqs, - ch_input_sequences, - ch_silva_ssu_database, - ch_silva_ssu_taxonomy, - ch_pattern_ssu, - ch_silva_ssu_otus, - params.after_qc.rna_prediction.classify_ssus_return_dirname - ) - - COUNT_LSU_FASTA( - EXTRACT_SUBUNITS.out.LSU_seqs - ) - - COUNT_LSU_FASTA( - EXTRACT_SUBUNITS.out.LSU_seqs - ) - - COUNT_LSU_FASTA( - EXTRACT_SUBUNITS.out.LSU_seqs - ) - - COUNT_SSU_FASTA( - EXTRACT_SUBUNITS.out.SSU_seqs - ) - - COUNT_SSU_FASTA( - EXTRACT_SUBUNITS.out.SSU_seqs - ) - - COUNT_SSU_FASTA( - EXTRACT_SUBUNITS.out.SSU_seqs - ) - - EXTRACT_COORDS( - FIND_RIBOSOMAL_NC_RNAS.out.deoverlapped_matches - ) - - EXTRACT_COORDS( - FIND_RIBOSOMAL_NC_RNAS.out.deoverlapped_matches - ) - - EXTRACT_COORDS( - FIND_RIBOSOMAL_NC_RNAS.out.deoverlapped_matches - ) - - EXTRACT_SEQUENCES( - INDEX_READS.out.sequences_with_index, - EXTRACT_COORDS.out.matched_seqs_with_coords - ) - - EXTRACT_SEQUENCES( - INDEX_READS.out.sequences_with_index, - EXTRACT_COORDS.out.matched_seqs_with_coords - ) - - EXTRACT_SEQUENCES( - INDEX_READS.out.sequences_with_index, - EXTRACT_COORDS.out.matched_seqs_with_coords - ) - - EXTRACT_SUBUNITS( - EXTRACT_SEQUENCES.out.sequences, - ch_pattern_lsu, - ch_pattern_ssu, - ch_pattern_5.8s, - ch_pattern_5_s - ) - - EXTRACT_SUBUNITS( - EXTRACT_SEQUENCES.out.sequences, - ch_pattern_lsu, - ch_pattern_ssu, - ch_pattern_5.8s, - ch_pattern_5_s - ) - - EXTRACT_SUBUNITS( - EXTRACT_SEQUENCES.out.sequences, - ch_pattern_lsu, - ch_pattern_ssu, - ch_pattern_5.8s, - ch_pattern_5_s - ) - - EXTRACT_SUBUNITS_COORDS( - EXTRACT_COORDS.out.matched_seqs_with_coords, - ch_pattern_lsu, - ch_pattern_ssu - ) - - EXTRACT_SUBUNITS_COORDS( - EXTRACT_COORDS.out.matched_seqs_with_coords, - ch_pattern_lsu, - ch_pattern_ssu - ) - - EXTRACT_SUBUNITS_COORDS( - EXTRACT_COORDS.out.matched_seqs_with_coords, - ch_pattern_lsu, - ch_pattern_ssu - ) - - FIND_RIBOSOMAL_NC_RNAS( - ch_ncrna_ribosomal_model_clans, - ch_ncrna_ribosomal_models, - ch_input_sequences, - ch_type - ) - - FIND_RIBOSOMAL_NC_RNAS( - ch_ncrna_ribosomal_model_clans, - ch_ncrna_ribosomal_models, - ch_input_sequences, - ch_type - ) - - FIND_RIBOSOMAL_NC_RNAS( - ch_ncrna_ribosomal_model_clans, - ch_ncrna_ribosomal_models, - ch_input_sequences, - ch_type - ) - - GZIP_FILES( - EXTRACT_SUBUNITS.out.fastas.flatten().first() - ) - - GZIP_FILES( - EXTRACT_SUBUNITS.out.fastas.flatten().first() - ) - - GZIP_FILES( - EXTRACT_SUBUNITS.out.fastas.flatten().first() - ) - - INDEX_READS( - ch_input_sequences - ) - - INDEX_READS( - ch_input_sequences - ) - - INDEX_READS( - ch_input_sequences - ) - - emit: - LSU_SSU_count = EXTRACT_SUBUNITS_COORDS.out.counts - LSU_coords = EXTRACT_SUBUNITS_COORDS.out.LSU_seqs - LSU_fasta = EXTRACT_SUBUNITS.out.LSU_seqs - LSU_folder = CLASSIFY_LSUS.out.out_dir - SSU_coords = EXTRACT_SUBUNITS_COORDS.out.SSU_seqs - SSU_fasta = EXTRACT_SUBUNITS.out.SSU_seqs - SSU_folder = CLASSIFY_SSUS.out.out_dir - cmsearch_result = FIND_RIBOSOMAL_NC_RNAS.out.concatenate_matches - compressed_rnas = GZIP_FILES.out.compressed_file - ncRNA = FIND_RIBOSOMAL_NC_RNAS.out.deoverlapped_matches - number_LSU_mapseq = CLASSIFY_LSUS.out.number_lines_mapseq - number_SSU_mapseq = CLASSIFY_SSUS.out.number_lines_mapseq - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/run_IPS.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/run_IPS.nf deleted file mode 100644 index 3fd65a23a..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/run_IPS.nf +++ /dev/null @@ -1,92 +0,0 @@ -nextflow.enable.dsl=2 - -include { COMBINE_IPS } from '../modules/combine_ips' -include { INTERPROSCAN } from '../modules/interproscan' -include { SPLIT_SEQS } from '../modules/split_seqs' - -workflow RUN_IPS { - - take: - ch_cgc_predicted_proteins - ch_inter_pro_scan_applications - ch_inter_pro_scan_databases - ch_inter_pro_scan_output_format - ch_chunk_size - ch_name_ips - - main: - COMBINE_IPS( - INTERPROSCAN.out.i5Annotations.toList(), - ch_cgc_predicted_proteins, - ch_name_ips - ) - - INTERPROSCAN( - SPLIT_SEQS.out.chunks.flatten().first(), - ch_inter_pro_scan_output_format, - ch_inter_pro_scan_applications, - ch_inter_pro_scan_databases - ) - - SPLIT_SEQS( - ch_cgc_predicted_proteins, - ch_chunk_size - ) - - emit: - ips_result = COMBINE_IPS.out.result - -} - - -workflow RUN_IPS { - - take: - ch_cgc_predicted_proteins - ch_inter_pro_scan_applications - ch_inter_pro_scan_databases - ch_inter_pro_scan_output_format - ch_chunk_size - ch_name_ips - - main: - COMBINE_IPS( - INTERPROSCAN.out.i5Annotations.toList(), - ch_cgc_predicted_proteins, - ch_name_ips - ) - - COMBINE_IPS( - INTERPROSCAN.out.i5Annotations.toList(), - ch_cgc_predicted_proteins, - ch_name_ips - ) - - INTERPROSCAN( - SPLIT_SEQS.out.chunks.flatten().first(), - ch_inter_pro_scan_output_format, - ch_inter_pro_scan_applications, - ch_inter_pro_scan_databases - ) - - INTERPROSCAN( - SPLIT_SEQS.out.chunks.flatten().first(), - ch_inter_pro_scan_output_format, - ch_inter_pro_scan_applications, - ch_inter_pro_scan_databases - ) - - SPLIT_SEQS( - ch_cgc_predicted_proteins, - ch_chunk_size - ) - - SPLIT_SEQS( - ch_cgc_predicted_proteins, - ch_chunk_size - ) - - emit: - ips_result = COMBINE_IPS.out.result - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/run_antismash.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/run_antismash.nf deleted file mode 100644 index 164ac372c..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/run_antismash.nf +++ /dev/null @@ -1,38 +0,0 @@ -nextflow.enable.dsl=2 - -include { FIX_EMBL_AND_GBK } from '../modules/fix_embl_and_gbk' -include { FIX_GENECLUSTERS_TXT } from '../modules/fix_geneclusters_txt' -include { RUN_ANTISMASH } from '../modules/run_antismash' - -workflow RUN_ANTISMASH { - - take: - ch_accession - ch_fasta_file - ch_input_names_table - - main: - FIX_EMBL_AND_GBK( - RUN_ANTISMASH.out.embl_file, - ch_input_names_table, - ch_fasta_file, - ch_fasta_file - ) - - FIX_GENECLUSTERS_TXT( - RUN_ANTISMASH.out.geneclusters_txt, - ch_fasta_file - ) - - RUN_ANTISMASH( - ch_fasta_file, - ch_accession, - ch_fasta_file - ) - - emit: - antismash_embl = FIX_EMBL_AND_GBK.out.fixed_embl - antismash_gbk = FIX_EMBL_AND_GBK.out.fixed_gbk - antismash_txt = FIX_GENECLUSTERS_TXT.out.fixed_txt - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/run_hmmer.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/run_hmmer.nf deleted file mode 100644 index ef626addc..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/run_hmmer.nf +++ /dev/null @@ -1,107 +0,0 @@ -nextflow.enable.dsl=2 - -include { COMBINE } from '../modules/combine' -include { HMMSEARCH } from '../modules/hmmsearch' -include { MAKE_TAB_SEP } from '../modules/make_tab_sep' -include { SPLIT_SEQS } from '../modules/split_seqs' - -workflow RUN_HMMER { - - take: - ch_cgc_predicted_proteins - ch_hmm_database - ch_hmm_gathering_bit_score - ch_hmm_omit_alignment - ch_chunk_size - ch_name_hmmer - ch_previous_step_result - - main: - COMBINE( - HMMSEARCH.out.output_table.toList(), - ch_cgc_predicted_proteins, - ch_name_hmmer - ) - - HMMSEARCH( - SPLIT_SEQS.out.chunks.flatten().first(), - ch_hmm_database, - ch_hmm_gathering_bit_score, - ch_hmm_omit_alignment - ) - - MAKE_TAB_SEP( - COMBINE.out.result - ) - - SPLIT_SEQS( - ch_cgc_predicted_proteins, - ch_chunk_size - ) - - emit: - hmm_result = MAKE_TAB_SEP.out.output_with_tabs - -} - - -workflow RUN_HMMER { - - take: - ch_cgc_predicted_proteins - ch_hmm_database - ch_hmm_gathering_bit_score - ch_hmm_omit_alignment - ch_chunk_size - ch_name_hmmer - ch_previous_step_result - - main: - COMBINE( - HMMSEARCH.out.output_table.toList(), - ch_cgc_predicted_proteins, - ch_name_hmmer - ) - - COMBINE( - HMMSEARCH.out.output_table.toList(), - ch_cgc_predicted_proteins, - ch_name_hmmer - ) - - HMMSEARCH( - SPLIT_SEQS.out.chunks.flatten().first(), - ch_hmm_database, - ch_hmm_gathering_bit_score, - ch_hmm_omit_alignment - ) - - HMMSEARCH( - SPLIT_SEQS.out.chunks.flatten().first(), - ch_hmm_database, - ch_hmm_gathering_bit_score, - ch_hmm_omit_alignment - ) - - MAKE_TAB_SEP( - COMBINE.out.result - ) - - MAKE_TAB_SEP( - COMBINE.out.result - ) - - SPLIT_SEQS( - ch_cgc_predicted_proteins, - ch_chunk_size - ) - - SPLIT_SEQS( - ch_cgc_predicted_proteins, - ch_chunk_size - ) - - emit: - hmm_result = MAKE_TAB_SEP.out.output_with_tabs - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/run_itsonedb.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/run_itsonedb.nf deleted file mode 100644 index 59c564e0c..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/run_itsonedb.nf +++ /dev/null @@ -1,66 +0,0 @@ -nextflow.enable.dsl=2 - -include { CLASSIFICATIONS_TO_OTU_COUNTS } from '../modules/classifications_to_otu_counts' -include { COMPRESS_MAPSEQ } from '../modules/compress_mapseq' -include { COUNT_LINES_MAPSEQ } from '../modules/count_lines_mapseq' -include { COUNTS_TO_HDF5 } from '../modules/counts_to_hdf5' -include { COUNTS_TO_JSON } from '../modules/counts_to_json' -include { MAPSEQ } from '../modules/mapseq' -include { RETURN_OUTPUT_DIR } from '../modules/return_output_dir' -include { VISUALIZE_OTU_COUNTS } from '../modules/visualize_otu_counts' - -workflow RUN_ITSONEDB { - - take: - ch_fasta - ch_file_for_prefix - ch_mapseq_ref - ch_mapseq_taxonomy - ch_otu_label - ch_otu_ref - ch_return_dirname - - main: - CLASSIFICATIONS_TO_OTU_COUNTS( - MAPSEQ.out.classifications, - ch_otu_label, - ch_otu_ref - ) - - COMPRESS_MAPSEQ( - MAPSEQ.out.classifications - ) - - COUNT_LINES_MAPSEQ( - MAPSEQ.out.classifications - ) - - COUNTS_TO_HDF5( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_tsv_notaxid - ) - - COUNTS_TO_JSON( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_tsv_notaxid - ) - - MAPSEQ( - ch_mapseq_ref, - ch_file_for_prefix, - ch_fasta, - ch_mapseq_taxonomy - ) - - RETURN_OUTPUT_DIR( - COMPRESS_MAPSEQ.out.compressed_file.toList(), - ch_return_dirname - ) - - VISUALIZE_OTU_COUNTS( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_txt - ) - - emit: - number_lines_mapseq = COUNT_LINES_MAPSEQ.out.number - out_dir = RETURN_OUTPUT_DIR.out.out - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/run_unite.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/run_unite.nf deleted file mode 100644 index 8a18fbacc..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/run_unite.nf +++ /dev/null @@ -1,66 +0,0 @@ -nextflow.enable.dsl=2 - -include { CLASSIFICATIONS_TO_OTU_COUNTS } from '../modules/classifications_to_otu_counts' -include { COMPRESS_MAPSEQ } from '../modules/compress_mapseq' -include { COUNT_LINES_MAPSEQ } from '../modules/count_lines_mapseq' -include { COUNTS_TO_HDF5 } from '../modules/counts_to_hdf5' -include { COUNTS_TO_JSON } from '../modules/counts_to_json' -include { MAPSEQ } from '../modules/mapseq' -include { RETURN_OUTPUT_DIR } from '../modules/return_output_dir' -include { VISUALIZE_OTU_COUNTS } from '../modules/visualize_otu_counts' - -workflow RUN_UNITE { - - take: - ch_fasta - ch_file_for_prefix - ch_mapseq_ref - ch_mapseq_taxonomy - ch_otu_label - ch_otu_ref - ch_return_dirname - - main: - CLASSIFICATIONS_TO_OTU_COUNTS( - MAPSEQ.out.classifications, - ch_otu_label, - ch_otu_ref - ) - - COMPRESS_MAPSEQ( - MAPSEQ.out.classifications - ) - - COUNT_LINES_MAPSEQ( - MAPSEQ.out.classifications - ) - - COUNTS_TO_HDF5( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_tsv_notaxid - ) - - COUNTS_TO_JSON( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_tsv_notaxid - ) - - MAPSEQ( - ch_mapseq_ref, - ch_file_for_prefix, - ch_fasta, - ch_mapseq_taxonomy - ) - - RETURN_OUTPUT_DIR( - COMPRESS_MAPSEQ.out.compressed_file.toList(), - ch_return_dirname - ) - - VISUALIZE_OTU_COUNTS( - CLASSIFICATIONS_TO_OTU_COUNTS.out.otu_txt - ) - - emit: - number_lines_mapseq = COUNT_LINES_MAPSEQ.out.number - out_dir = RETURN_OUTPUT_DIR.out.out - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/trimming.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/trimming.nf deleted file mode 100644 index 876fb0217..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/trimming.nf +++ /dev/null @@ -1,26 +0,0 @@ -nextflow.enable.dsl=2 - -include { COUNT_OVERLAPPED_READS } from '../modules/count_overlapped_reads' -include { TOUCH_EMPTY_FASTA } from '../modules/touch_empty_fasta' -include { TRIMMING } from './trimming' - -workflow TRIMMING { - - take: - ch_reads - - main: - COUNT_OVERLAPPED_READS( - ch_reads - ) - - TOUCH_EMPTY_FASTA() - - TRIMMING( - ch_reads - ) - - emit: - trimmed_and_reformatted_reads = [TRIMMING.out.trimmed_and_reformatted_reads, TOUCH_EMPTY_FASTA.out.created_file] - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/unmapped_from_cath.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/unmapped_from_cath.nf deleted file mode 100644 index 7faadd8c7..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/unmapped_from_cath.nf +++ /dev/null @@ -1,54 +0,0 @@ -nextflow.enable.dsl=2 - -include { AVG_UNP_DOMAINS } from './avg_unp_domains' -include { CHECK_THRESHOLD_STEP } from '../modules/check_threshold_step' -include { COPY_AVG_DOM } from '../modules/copy_avg_dom' -include { PAIRWISE_ALIGN_AVG_STRUCTS } from '../modules/pairwise_align_avg_structs' -include { PER_UNP_DOM_INSTANCE } from '../modules/per_unp_dom_instance' - -workflow UNMAPPED_FROM_CATH { - - take: - ch_alignment_score - ch_core_struct - ch_failed_name - ch_iteration - ch_passed_name - ch_pdb_dir - ch_score_threshold - ch_unmapped_list - - main: - AVG_UNP_DOMAINS( - PER_UNP_DOM_INSTANCE.out.dom_per_fam.flatten().first(), - ch_pdb_dir - ) - - CHECK_THRESHOLD_STEP( - ch_unmapped_list, - PAIRWISE_ALIGN_AVG_STRUCTS.out.alignment_out, - ch_failed_name, - ch_passed_name, - ch_alignment_score, - ch_score_threshold - ) - - COPY_AVG_DOM( - AVG_UNP_DOMAINS.out.avg_unp_dom_structs.toList() - ) - - PAIRWISE_ALIGN_AVG_STRUCTS( - ch_core_struct.toList(), - COPY_AVG_DOM.out.dir_unp_dom - ) - - PER_UNP_DOM_INSTANCE( - ch_unmapped_list - ) - - emit: - domain_like_list = CHECK_THRESHOLD_STEP.out.passed_structs_list - failed_domains_list = CHECK_THRESHOLD_STEP.out.failed_structs_list - unmapped_aligned_results = PAIRWISE_ALIGN_AVG_STRUCTS.out.alignment_out - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/unmapped_from_pfam.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/unmapped_from_pfam.nf deleted file mode 100644 index 97bd91659..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/unmapped_from_pfam.nf +++ /dev/null @@ -1,54 +0,0 @@ -nextflow.enable.dsl=2 - -include { AVG_UNP_DOMAINS } from './avg_unp_domains' -include { CHECK_THRESHOLD_STEP } from '../modules/check_threshold_step' -include { COPY_AVG_DOM } from '../modules/copy_avg_dom' -include { PAIRWISE_ALIGN_AVG_STRUCTS } from '../modules/pairwise_align_avg_structs' -include { PER_UNP_DOM_INSTANCE } from '../modules/per_unp_dom_instance' - -workflow UNMAPPED_FROM_PFAM { - - take: - ch_alignment_score - ch_core_struct - ch_failed_name - ch_iteration - ch_passed_name - ch_pdb_dir - ch_score_threshold - ch_unmapped_list - - main: - AVG_UNP_DOMAINS( - PER_UNP_DOM_INSTANCE.out.dom_per_fam.flatten().first(), - ch_pdb_dir - ) - - CHECK_THRESHOLD_STEP( - ch_unmapped_list, - PAIRWISE_ALIGN_AVG_STRUCTS.out.alignment_out, - ch_failed_name, - ch_passed_name, - ch_alignment_score, - ch_score_threshold - ) - - COPY_AVG_DOM( - AVG_UNP_DOMAINS.out.avg_unp_dom_structs.toList() - ) - - PAIRWISE_ALIGN_AVG_STRUCTS( - ch_core_struct.toList(), - COPY_AVG_DOM.out.dir_unp_dom - ) - - PER_UNP_DOM_INSTANCE( - ch_unmapped_list - ) - - emit: - domain_like_list = CHECK_THRESHOLD_STEP.out.passed_structs_list - failed_domains_list = CHECK_THRESHOLD_STEP.out.failed_structs_list - unmapped_aligned_results = PAIRWISE_ALIGN_AVG_STRUCTS.out.alignment_out - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/write_summaries.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/write_summaries.nf deleted file mode 100644 index 535953e92..000000000 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/subworkflows/write_summaries.nf +++ /dev/null @@ -1,44 +0,0 @@ -nextflow.enable.dsl=2 - -include { FUNCTIONAL_STATS } from '../modules/functional_stats' -include { WRITE_SUMMARIES } from '../modules/write_summaries' - -workflow WRITE_SUMMARIES { - - take: - ch_cds - ch_hmmscan_annotation - ch_interproscan_annotation - ch_ko_file - ch_pfam_annotation - ch_rna - - main: - FUNCTIONAL_STATS( - ch_cds, - ch_rna, - ch_hmmscan_annotation, - ch_interproscan_annotation, - ch_pfam_annotation, - ch_ko_file - ) - - WRITE_SUMMARIES( - FUNCTIONAL_STATS.out.ips_yaml, - FUNCTIONAL_STATS.out.ko_yaml, - FUNCTIONAL_STATS.out.pfam_yaml, - FUNCTIONAL_STATS.out.antismash_yaml, - ch_cds, - ch_cds, - ch_cds, - ch_cds - ) - - emit: - stats = FUNCTIONAL_STATS.out.stats - summary_antismash = WRITE_SUMMARIES.out.summary_antismash - summary_ips = WRITE_SUMMARIES.out.summary_ips - summary_ko = WRITE_SUMMARIES.out.summary_ko - summary_pfam = WRITE_SUMMARIES.out.summary_pfam - -} diff --git a/janis_core/tests/test_ingestion_cwl.py b/janis_core/tests/test_ingestion_cwl.py index 7dc7aa06e..841fb046b 100644 --- a/janis_core/tests/test_ingestion_cwl.py +++ b/janis_core/tests/test_ingestion_cwl.py @@ -571,7 +571,7 @@ def test_resource_requirements(self): parser = CLTRequirementsParser(cwl_utils, clt=clt, entity=clt, tool_uuid='test') requirements = parser.parse() - lines = load_loglines(tool_uuid='test', category=ErrorCategory.SCRIPT) + lines = load_loglines(tool_uuid='test', category=ErrorCategory.SCRIPTING) msgs = [x.message for x in lines] self.assertEqual(requirements["memory"], '__TOKEN1__') diff --git a/janis_core/tests/test_janis_translate.py b/janis_core/tests/test_janis_translate.py index fe005e2b8..fe3c75cbb 100644 --- a/janis_core/tests/test_janis_translate.py +++ b/janis_core/tests/test_janis_translate.py @@ -5,11 +5,16 @@ from typing import Any from janis_core import settings +from janis_core.messages import configure_logging +from janis_core.messages import log_message +from janis_core.messages import ErrorCategory from janis_core.ingestion import ingest from janis_core.translations import translate +from janis_core.tests.testtools import EchoTestTool from janis_core.tests.testtools import FileOutputPythonTestTool from janis_core.tests.testtools import GridssTestTool from janis_core.tests.testtools import FastqcTestTool +from janis_core.tests.testworkflows import BasicIOTestWF from janis_core.tests.testworkflows import PruneFlatTW from janis_core.tests.testworkflows import PruneNestedTW from janis_core.tests.testworkflows import AssemblyTestWF @@ -127,6 +132,7 @@ def _get_nf_process_script_lines(process_text: str) -> list[str]: return out def _reset_global_settings() -> None: + configure_logging() # reset the messages logfile nextflow.task_inputs.clear() nextflow.params.clear() settings.ingest.SAFE_MODE = False @@ -243,6 +249,113 @@ class TestMessages(unittest.TestCase): def setUp(self) -> None: _reset_global_settings() + ### TOOLS ### + + def test_injection_cwl_tool(self) -> None: + tool = EchoTestTool() + tool = to_builders(tool) + log_message(entity_uuid=tool.uuid, msg='test message1', category=ErrorCategory.DATATYPES) + log_message(entity_uuid=tool.uuid, msg='test message2', category=ErrorCategory.METADATA) + log_message(entity_uuid=tool.uuid, msg='test message3', category=ErrorCategory.FALLBACKS) + log_message(entity_uuid=tool.uuid, msg='test message4', category=ErrorCategory.EXPERIMENTAL) + log_message(entity_uuid=tool.uuid, msg='test message5', category=ErrorCategory.SCRIPTING) + mainstr = translate(tool, 'cwl', export_path='./translated') + print(mainstr) + + msgs_header = mainstr.split('#!/usr/bin/env cwl-runner')[0] + level, cat = ErrorCategory.DATATYPES.value + self.assertIn(f'# [{level}][{cat}] test message1', msgs_header) + level, cat = ErrorCategory.METADATA.value + self.assertIn(f'# [{level}][{cat}] test message2', msgs_header) + level, cat = ErrorCategory.FALLBACKS.value + self.assertIn(f'# [{level}][{cat}] test message3', msgs_header) + level, cat = ErrorCategory.EXPERIMENTAL.value + self.assertIn(f'# [{level}][{cat}] test message4', msgs_header) + self.assertNotIn('# UNTRANSLATED EXPRESSIONS', msgs_header) + self.assertNotIn('# test message5', msgs_header) + + def test_injection_nextflow_tool(self) -> None: + tool = EchoTestTool() + tool = to_builders(tool) + log_message(entity_uuid=tool.uuid, msg='test message1', category=ErrorCategory.DATATYPES) + log_message(entity_uuid=tool.uuid, msg='test message2', category=ErrorCategory.METADATA) + log_message(entity_uuid=tool.uuid, msg='test message3', category=ErrorCategory.FALLBACKS) + log_message(entity_uuid=tool.uuid, msg='test message4', category=ErrorCategory.EXPERIMENTAL) + log_message(entity_uuid=tool.uuid, msg='test message5', category=ErrorCategory.SCRIPTING) + mainstr = translate(tool, 'nextflow', export_path='./translated') + print(mainstr) + + msgs_header = mainstr.split('nextflow.enable.dsl=2')[0] + self.assertIn(f'// {ErrorCategory.DATATYPES.value}\n// test message1', msgs_header) + self.assertIn(f'// {ErrorCategory.METADATA.value}\n// test message2', msgs_header) + self.assertIn(f'// {ErrorCategory.FALLBACKS.value}\n// test message3', msgs_header) + self.assertIn(f'// {ErrorCategory.EXPERIMENTAL.value}\n// test message4', msgs_header) + self.assertNotIn('// {ErrorCategory.SCRIPTING.value}\n// test message5', msgs_header) + + def test_injection_wdl_tool(self) -> None: + tool = EchoTestTool() + tool = to_builders(tool) + log_message(entity_uuid=tool.uuid, msg='test message1', category=ErrorCategory.DATATYPES) + log_message(entity_uuid=tool.uuid, msg='test message2', category=ErrorCategory.METADATA) + log_message(entity_uuid=tool.uuid, msg='test message3', category=ErrorCategory.FALLBACKS) + log_message(entity_uuid=tool.uuid, msg='test message4', category=ErrorCategory.EXPERIMENTAL) + log_message(entity_uuid=tool.uuid, msg='test message5', category=ErrorCategory.SCRIPTING) + mainstr = translate(tool, 'wdl', export_path='./translated') + print(mainstr) + + msgs_header = mainstr.split('version development')[0] + + self.assertIn(f'# {ErrorCategory.DATATYPES.value}\n# test message1', msgs_header) + self.assertIn(f'# {ErrorCategory.METADATA.value}\n# test message2', msgs_header) + self.assertIn(f'# {ErrorCategory.FALLBACKS.value}\n# test message3', msgs_header) + self.assertIn(f'# {ErrorCategory.EXPERIMENTAL.value}\n# test message4', msgs_header) + self.assertNotIn('# {ErrorCategory.SCRIPTING.value}\n# test message5', msgs_header) + + ### WORKFLOWS ### + + def test_injection_cwl_workflow(self) -> None: + settings.messages.USE_SUBSECTIONS = False + wf = BasicIOTestWF() + wf = to_builders(wf) + log_message(entity_uuid=wf.uuid, msg='test message1', category=ErrorCategory.DATATYPES, subsection='general') + log_message(entity_uuid=wf.uuid, msg='test message2', category=ErrorCategory.METADATA, subsection='inputs') + log_message(entity_uuid=wf.uuid, msg='test message3', category=ErrorCategory.FALLBACKS, subsection='outputs') + log_message(entity_uuid=wf.uuid, msg='test message4', category=ErrorCategory.EXPERIMENTAL, subsection='stp1') + log_message(entity_uuid=wf.uuid, msg='test message5', category=ErrorCategory.SCRIPTING, subsection='stp1') + mainstr, _, _, _ = translate(wf, 'cwl', export_path='./translated') + + msgs_header = mainstr.split('#!/usr/bin/env cwl-runner')[0] + self.assertIn(f'# {ErrorCategory.DATATYPES.value}\n# test message1', msgs_header) + self.assertIn(f'# {ErrorCategory.METADATA.value}\n# test message2', msgs_header) + self.assertIn(f'# {ErrorCategory.FALLBACKS.value}\n# test message3', msgs_header) + + # check step experimental message in correct location + matches = list(re.finditer(f'steps:\s+# {ErrorCategory.EXPERIMENTAL.value}\n# test message4', mainstr)) + self.assertEqual(len(matches), 1) + # check unnecessary script message is not in file + self.assertNotIn('# {ErrorCategory.SCRIPTING.value}\n# test message5', mainstr) + + def test_injection_cwl_workflow_subsections(self) -> None: + settings.messages.USE_SUBSECTIONS = True + wf = BasicIOTestWF() + wf = to_builders(wf) + log_message(entity_uuid=wf.uuid, msg='test message1', category=ErrorCategory.DATATYPES, subsection='general') + log_message(entity_uuid=wf.uuid, msg='test message2', category=ErrorCategory.METADATA, subsection='inputs') + log_message(entity_uuid=wf.uuid, msg='test message3', category=ErrorCategory.FALLBACKS, subsection='outputs') + mainstr, _, _, _ = translate(wf, 'cwl', export_path='./translated') + print(mainstr) + + msgs_header = mainstr.split('#!/usr/bin/env cwl-runner')[0] + self.assertIn(f'### GENERAL ###\n\n# {ErrorCategory.DATATYPES.value}\n# test message1', msgs_header) + self.assertIn(f'### INPUTS ###\n\n# {ErrorCategory.METADATA.value}\n# test message2', msgs_header) + self.assertIn(f'### OUTPUTS ###\n\n# {ErrorCategory.FALLBACKS.value}\n# test message3', msgs_header) + + def test_injection_cwl_subworkflow(self) -> None: + raise NotImplementedError + + def test_injection_cwl_workflow_splitsections(self) -> None: + raise NotImplementedError + def test_scripting1(self) -> None: filepath = f'{CWL_TESTDATA_PATH}/tools/expressions/inputs_arguments.cwl' mainstr = _run(filepath, 'cwl', 'nextflow') @@ -1111,6 +1224,7 @@ def test_tool_fastqc(self): # Workflows def test_wf_align_sort_markdup(self): + settings.ingest.SAFE_MODE = True filepath = f'{CWL_TESTDATA_PATH}/workflows/align_sort_markdup/align_sort_markdup.cwl' mainstr = _run(filepath, self.src, self.dest) print(mainstr) diff --git a/janis_core/tests/test_translation_cwl.py b/janis_core/tests/test_translation_cwl.py index 8ae9c6bdb..e9ebec774 100644 --- a/janis_core/tests/test_translation_cwl.py +++ b/janis_core/tests/test_translation_cwl.py @@ -719,7 +719,7 @@ def test_add_single_to_array_edge(self): w = WorkflowBuilder("test_add_single_to_array_edge") w.input("inp1", str) w.step("stp1", ArrayStepTool(inp=w.inp1)) - c, _, _ = translate(w, 'cwl') + c, _, _, _ = translate(w, 'cwl') self.assertEqual(cwl_multiinput, c) @@ -794,7 +794,7 @@ def setUp(self) -> None: def test_step_input(self): self.maxDiff = None - ret, _, _ = StepInputExpressionTestWF().translate( + ret, _, _, _ = StepInputExpressionTestWF().translate( "cwl", to_console=False ) self.assertEqual(cwl_stepinput, ret) @@ -816,7 +816,7 @@ def test_array_step_input(self): wf.output("out", source=wf.print) - ret, _, _ = wf.translate("cwl") + ret, _, _, _ = wf.translate("cwl") self.maxDiff = None self.assertEqual(cwl_arraystepinput, ret) diff --git a/janis_core/tests/test_translation_nextflow.py b/janis_core/tests/test_translation_nextflow.py index f28beb9c6..f70c4a8c6 100644 --- a/janis_core/tests/test_translation_nextflow.py +++ b/janis_core/tests/test_translation_nextflow.py @@ -4,6 +4,7 @@ import regex as re from typing import Any, Optional +from janis_core.translations.common import to_builders from janis_core.translations.common import trace from janis_core.tests.testtools import ( InputQualityTestTool, @@ -1084,24 +1085,29 @@ def setUp(self) -> None: def test_files_created(self) -> None: wf = SubworkflowTestWF() - mainstr, _, subtask_dict = translate(wf, dest_fmt='nextflow') + mainstr, _, subworkflows, processes = translate(wf, dest_fmt='nextflow') - # check correct number of subtasks created - self.assertEqual(len(subtask_dict), 6) + # check correct processes created expected_filepaths = set([ - 'modules/file_test_tool.nf', - 'modules/string_test_tool.nf', - 'modules/int_test_tool.nf', - 'modules/string_opt_test_tool.nf', - 'subworkflows/oranges_workflow.nf', - 'subworkflows/apples_workflow.nf', + 'file_test_tool.nf', + 'string_test_tool.nf', + 'int_test_tool.nf', + 'string_opt_test_tool.nf', ]) - actual_filepaths = set([x[0] for x in subtask_dict]) + actual_filepaths = set([x[0] for x in processes]) + self.assertSetEqual(actual_filepaths, expected_filepaths) + + # check correct subworkflows created + expected_filepaths = set([ + 'oranges_workflow.nf', + 'apples_workflow.nf', + ]) + actual_filepaths = set([x[0] for x in subworkflows]) self.assertSetEqual(actual_filepaths, expected_filepaths) def test_main_workflow_format(self) -> None: wf = AssemblyTestWF() - mainstr, _, _ = translate(wf, dest_fmt='nextflow', to_console=False) + mainstr, _, _, _ = translate(wf, dest_fmt='nextflow', to_console=False) print(mainstr) expected = [ "nextflow.enable.dsl=2", @@ -1130,8 +1136,8 @@ def test_main_workflow_format(self) -> None: @unittest.skip("Nextflow translation rewrites expected output, need a new test") def test_process_format(self) -> None: wf = AssemblyTestWF() - mainstr, _, subtasks = translate(wf, dest_fmt='nextflow', to_console=False) - process = [x[1] for x in subtasks if x[0] == 'modules/fastqc.nf'][0] + mainstr, _, _, processes = translate(wf, dest_fmt='nextflow', to_console=False) + process = [x[1] for x in processes if x[0] == 'fastqc.nf'][0] print(process) actual_lines = simplify_file(process) expected_lines = [ @@ -1187,8 +1193,8 @@ def test_process_format(self) -> None: def test_subworkflow_format(self) -> None: wf = SubworkflowTestWF() - mainstr, _, subtasks = translate(wf, dest_fmt='nextflow', to_console=False) - process = [x[1] for x in subtasks if x[0] == 'subworkflows/apples_workflow.nf'][0] + mainstr, _, subworkflows, processes = translate(wf, dest_fmt='nextflow', to_console=False) + process = [x[1] for x in subworkflows if x[0] == 'apples_workflow.nf'][0] print(process) actual_lines = simplify_file(process) expected_lines = [ @@ -1224,13 +1230,11 @@ def test_subworkflow_format(self) -> None: def test_config_format(self) -> None: # TODO expand this to subworkflow with subworkflow, process specific params wf = SubworkflowTestWF() - _, config, _ = translate(wf, dest_fmt='nextflow', to_console=False) + _, config, _, _ = translate(wf, dest_fmt='nextflow', to_console=False) actual_lines = split_to_lines(config) expected_lines = [ 'nextflow.enable.dsl = 2', - 'singularity.enabled = true', - 'singularity.autoMounts = true', - 'singularity.cacheDir = "$HOME/.singularity/cache"', + 'docker.enabled = true', 'params {', '// Placeholder for null values.', '// Do not alter unless you know what you are doing.', @@ -1253,16 +1257,14 @@ def test_config_params(self) -> None: # test_nonfile # string, int, bool wf = AllInputTypesTestWF() - maintask, config, _ = translate(wf, dest_fmt='nextflow', to_console=False) + maintask, config, _, _ = translate(wf, dest_fmt='nextflow', to_console=False) print(maintask) actual_lines = split_to_lines(config) for ln in actual_lines: print(ln) expected_lines = [ 'nextflow.enable.dsl = 2', - 'singularity.enabled = true', - 'singularity.autoMounts = true', - 'singularity.cacheDir = "$HOME/.singularity/cache"', + 'docker.enabled = true', 'params {', '// Placeholder for null values.', '// Do not alter unless you know what you are doing.', @@ -1300,15 +1302,13 @@ def test_config_params_pythontool(self) -> None: # string, int, bool wf = InputsPythonToolTestWF() - _, config, _ = translate(wf, dest_fmt='nextflow', to_console=False, export_path='translated') + _, config, _, _ = translate(wf, dest_fmt='nextflow', to_console=False, export_path='translated') actual_lines = split_to_lines(config) for ln in actual_lines: print(ln) expected_lines = [ 'nextflow.enable.dsl = 2', - 'singularity.enabled = true', - 'singularity.autoMounts = true', - 'singularity.cacheDir = "$HOME/.singularity/cache"', + 'docker.enabled = true', 'params {', '// Placeholder for null values.', '// Do not alter unless you know what you are doing.', @@ -1322,11 +1322,11 @@ def test_config_params_pythontool(self) -> None: 'in_str = NULL_VALUE // (MANDATORY string)', 'in_str_arr = NULL_VALUE // (MANDATORY array) eg. [string1, ...]', '// PROCESS: JOIN_ARRAY_PYTHON_TEST_TOOL', - f'join_array_python_test_tool.code_file = "{TRANSLATED_DIR}/templates/JoinArrayPythonTestTool.py"', + f'join_array_python_test_tool.code_file = "templates/JoinArrayPythonTestTool.py"', '// PROCESS: MULTI_TYPES_INPUT_PYTHON_TOOL', - f'multi_types_input_python_tool.code_file = "{TRANSLATED_DIR}/templates/MultiTypesInputPythonTool.py"', + f'multi_types_input_python_tool.code_file = "templates/MultiTypesInputPythonTool.py"', '// PROCESS: SECONDARY_INPUT_PYTHON_TEST_TOOL', - f'secondary_input_python_test_tool.code_file = "{TRANSLATED_DIR}/templates/SecondaryInputPythonTestTool.py"', + f'secondary_input_python_test_tool.code_file = "templates/SecondaryInputPythonTestTool.py"', '}', ] self.assertEqual(len(actual_lines), len(expected_lines)) @@ -1339,7 +1339,7 @@ def test_channel_declarations(self) -> None: '.ifEmpty(null)' should appear in the channel string definition. """ wf = AllInputTypesTestWF() - mainstr, _, _ = translate(wf, dest_fmt='nextflow', to_console=False) + mainstr, _, _, _ = translate(wf, dest_fmt='nextflow', to_console=False) actual_lines = simplify_file(mainstr) actual_lines = [ln for ln in actual_lines if 'Channel.' in ln] expected_lines = [ @@ -1353,7 +1353,7 @@ def test_channel_declarations(self) -> None: def test_variable_declarations(self) -> None: wf = AllInputTypesTestWF() - mainstr, _, _ = translate(wf, dest_fmt='nextflow', to_console=False) + mainstr, _, _, _ = translate(wf, dest_fmt='nextflow', to_console=False) actual_lines = simplify_file(mainstr) actual_lines = [ln for ln in actual_lines if 'file(' in ln] expected_lines = [ @@ -1373,7 +1373,7 @@ def test_variable_declarations(self) -> None: def test_duplicate_tool_usage(self) -> None: wf = DuplicateTasksTestWF() - mainstr, _, _ = translate(wf, dest_fmt='nextflow', to_console=False) + mainstr, _, _, _ = translate(wf, dest_fmt='nextflow', to_console=False) # main workflow fmt actual_lines = simplify_file(mainstr) @@ -1413,12 +1413,12 @@ def setUp(self) -> None: def test_directives_basic(self) -> None: wf = DirectivesTestWF() - _, _, subtasks = translate(wf, dest_fmt=self.destfmt, export_path='./translated') - subtasks.sort(key=lambda x: x[0]) - actual_lines = _get_process_directive_lines(subtasks[0][1]) + _, _, _, processes = translate(wf, dest_fmt=self.destfmt, export_path='./translated') + processes.sort(key=lambda x: x[0]) + actual_lines = _get_process_directive_lines(processes[0][1]) # math import statement - self.assertIn('import java.lang.Math', subtasks[0][1]) + self.assertIn('import java.lang.Math', processes[0][1]) # directives expected_directives = { @@ -1455,8 +1455,8 @@ def setUp(self) -> None: def test_secondaries(self) -> None: wf = SecondariesTestWF() - _, _, subtasks = translate(wf, dest_fmt=self.dest, export_path='./translated') - process = [x[1] for x in subtasks if x[0] == 'modules/secondaries_test_tool.nf'][0] + _, _, _, processes = translate(wf, dest_fmt=self.dest, export_path='./translated') + process = [x[1] for x in processes if x[0] == 'secondaries_test_tool.nf'][0] actual_lines = _get_process_input_lines(process) expected_lines = [ 'path bam1', @@ -1469,8 +1469,8 @@ def test_secondaries(self) -> None: def test_secondaries_optional(self) -> None: wf = SecondariesTestWF() - _, _, subtasks = translate(wf, dest_fmt=self.dest, export_path='./translated') - process = [x[1] for x in subtasks if x[0] == 'modules/secondaries_optional_test_tool.nf'][0] + _, _, _, processes = translate(wf, dest_fmt=self.dest, export_path='./translated') + process = [x[1] for x in processes if x[0] == 'secondaries_optional_test_tool.nf'][0] actual_lines = _get_process_input_lines(process) expected_lines = [ "path bam1, stageAs: 'bam1/*'" @@ -1481,8 +1481,8 @@ def test_secondaries_optional(self) -> None: def test_secondaries_array(self) -> None: wf = SecondariesTestWF() - _, _, subtasks = translate(wf, dest_fmt=self.dest, export_path='./translated') - process = [x[1] for x in subtasks if x[0] == 'modules/secondaries_array_test_tool.nf'][0] + _, _, _, processes = translate(wf, dest_fmt=self.dest, export_path='./translated') + process = [x[1] for x in processes if x[0] == 'secondaries_array_test_tool.nf'][0] actual_lines = _get_process_input_lines(process) expected_lines = [ 'path bams1_flat', @@ -1495,8 +1495,8 @@ def test_secondaries_array(self) -> None: def test_secondaries_array_optional(self) -> None: wf = SecondariesTestWF() - _, _, subtasks = translate(wf, dest_fmt=self.dest, export_path='./translated') - process = [x[1] for x in subtasks if x[0] == 'modules/secondaries_array_optional_test_tool.nf'][0] + _, _, _, processes = translate(wf, dest_fmt=self.dest, export_path='./translated') + process = [x[1] for x in processes if x[0] == 'secondaries_array_optional_test_tool.nf'][0] actual_lines = _get_process_input_lines(process) expected_lines = [ "path bams1_flat", @@ -1507,8 +1507,8 @@ def test_secondaries_array_optional(self) -> None: def test_file_pair(self) -> None: wf = FilePairsTestWF0() - _, _, subtasks = translate(wf, dest_fmt=self.dest, export_path='./translated') - process = [x[1] for x in subtasks if x[0] == 'modules/file_pair_test_tool0.nf'][0] + _, _, _, processes = translate(wf, dest_fmt=self.dest, export_path='./translated') + process = [x[1] for x in processes if x[0] == 'file_pair_test_tool0.nf'][0] actual_lines = _get_process_input_lines(process) expected_lines = [ 'tuple path(reads1), path(reads2)', @@ -1519,8 +1519,8 @@ def test_file_pair(self) -> None: def test_file_pair_optional(self) -> None: wf = FilePairsOptionalTestWF0() - _, _, subtasks = translate(wf, dest_fmt=self.dest, export_path='./translated') - process = [x[1] for x in subtasks if x[0] == 'modules/file_pair_optional_test_tool0.nf'][0] + _, _, _, processes = translate(wf, dest_fmt=self.dest, export_path='./translated') + process = [x[1] for x in processes if x[0] == 'file_pair_optional_test_tool0.nf'][0] actual_lines = _get_process_input_lines(process) expected_lines = [ 'tuple path(reads1), path(reads2)', @@ -1531,8 +1531,8 @@ def test_file_pair_optional(self) -> None: def test_file_pair_array(self) -> None: wf = FilePairsArrayTestWF() - _, _, subtasks = translate(wf, dest_fmt=self.dest, export_path='./translated') - process = [x[1] for x in subtasks if x[0] == 'modules/file_pair_array_test_tool1.nf'][0] + _, _, _, processes = translate(wf, dest_fmt=self.dest, export_path='./translated') + process = [x[1] for x in processes if x[0] == 'file_pair_array_test_tool1.nf'][0] actual_lines = _get_process_input_lines(process) expected_lines = [ 'path read_pairs_flat', @@ -1543,8 +1543,8 @@ def test_file_pair_array(self) -> None: def test_file_pair_array_optional(self) -> None: wf = FilePairsArrayOptionalTestWF() - _, _, subtasks = translate(wf, dest_fmt=self.dest, export_path='./translated') - process = [x[1] for x in subtasks if x[0] == 'modules/file_pair_array_optional_test_tool1.nf'][0] + _, _, _, processes = translate(wf, dest_fmt=self.dest, export_path='./translated') + process = [x[1] for x in processes if x[0] == 'file_pair_array_optional_test_tool1.nf'][0] actual_lines = _get_process_input_lines(process) expected_lines = [ 'path read_pairs_flat', @@ -1556,8 +1556,8 @@ def test_file_pair_array_optional(self) -> None: # a rather weak test def test_generics(self) -> None: wf = ComponentsMandatoryTestWF() - _, _, subtasks = translate(wf, dest_fmt=self.dest, export_path='./translated') - process = [x[1] for x in subtasks if x[0] == 'modules/components_mandatory_test_tool.nf'][0] + _, _, _, processes = translate(wf, dest_fmt=self.dest, export_path='./translated') + process = [x[1] for x in processes if x[0] == 'components_mandatory_test_tool.nf'][0] actual_lines = _get_process_input_lines(process) expected_lines = [ 'path pos_basic', @@ -1574,10 +1574,10 @@ def test_generics(self) -> None: # @unittest.skip('filenames are scuffed') def test_filenames(self) -> None: wf = FilenameTestWF1() - _, _, subtasks = translate(wf, dest_fmt=self.dest, export_path='./translated') + _, _, _, processes = translate(wf, dest_fmt=self.dest, export_path='./translated') # basic - process = [x[1] for x in subtasks if x[0] == 'modules/filename_test_tool.nf'][0] + process = [x[1] for x in processes if x[0] == 'filename_test_tool.nf'][0] actual_lines = _get_process_input_lines(process) expected_lines = [ "path inp1", @@ -1589,7 +1589,7 @@ def test_filenames(self) -> None: self.assertIn(inp, actual_lines) # filename using input selector - process = [x[1] for x in subtasks if x[0] == 'modules/filename_input_selector_test_tool.nf'][0] + process = [x[1] for x in processes if x[0] == 'filename_input_selector_test_tool.nf'][0] print(process) actual_lines = _get_process_input_lines(process) expected_lines = [ @@ -1622,8 +1622,8 @@ def setUp(self) -> None: def test_stdout(self): wf = BasicIOTestWF() - _, _, subtasks = translate(wf, dest_fmt=self.dest, export_path='./translated') - process = [x[1] for x in subtasks if x[0] == 'modules/file_test_tool.nf'][0] + _, _, _, processes = translate(wf, dest_fmt=self.dest, export_path='./translated') + process = [x[1] for x in processes if x[0] == 'file_test_tool.nf'][0] actual_lines = _get_process_output_lines(process) expected_lines = [ 'path "out", emit: out', @@ -1634,8 +1634,8 @@ def test_stdout(self): def test_wildcard(self) -> None: wf = OutputCollectionTestWF() - _, _, subtasks = translate(wf, dest_fmt=self.dest, export_path='./translated') - process = [x[1] for x in subtasks if x[0] == 'modules/wildcard_selector_test_tool.nf'][0] + _, _, _, processes = translate(wf, dest_fmt=self.dest, export_path='./translated') + process = [x[1] for x in processes if x[0] == 'wildcard_selector_test_tool.nf'][0] actual_lines = _get_process_output_lines(process) expected_lines = [ 'path "myfile.txt", emit: out' @@ -1646,8 +1646,8 @@ def test_wildcard(self) -> None: def test_expression(self) -> None: wf = OutputCollectionTestWF() - _, _, subtasks = translate(wf, dest_fmt=self.dest, export_path='./translated') - process = [x[1] for x in subtasks if x[0] == 'modules/expression_test_tool.nf'][0] + _, _, _, processes = translate(wf, dest_fmt=self.dest, export_path='./translated') + process = [x[1] for x in processes if x[0] == 'expression_test_tool.nf'][0] actual_lines = _get_process_output_lines(process) expected_lines = [ 'path "${inp.simpleName}_markduplicates.metrics", emit: out' @@ -1658,8 +1658,8 @@ def test_expression(self) -> None: def test_wildcard_array(self) -> None: wf = WildcardSelectorOutputTestWF() - _, _, subtasks = translate(wf, dest_fmt=self.dest, export_path='./translated') - process = [x[1] for x in subtasks if x[0] == 'modules/array_wildcard_selector_test_tool.nf'][0] + _, _, _, processes = translate(wf, dest_fmt=self.dest, export_path='./translated') + process = [x[1] for x in processes if x[0] == 'array_wildcard_selector_test_tool.nf'][0] actual_lines = _get_process_output_lines(process) expected_lines = [ 'path "*.txt", emit: out' @@ -1670,8 +1670,8 @@ def test_wildcard_array(self) -> None: def test_input_selector(self) -> None: wf = InputSelectorTestWF() - _, _, subtasks = translate(wf, dest_fmt=self.dest, export_path='./translated') - process = [x[1] for x in subtasks if x[0] == 'modules/file_input_selector_test_tool.nf'][0] + _, _, _, processes = translate(wf, dest_fmt=self.dest, export_path='./translated') + process = [x[1] for x in processes if x[0] == 'file_input_selector_test_tool.nf'][0] actual_lines = _get_process_output_lines(process) expected_lines = [ 'path inp, emit: out' @@ -1682,8 +1682,8 @@ def test_input_selector(self) -> None: def test_input_selector_param(self) -> None: wf = OutputCollectionTestWF() - _, _, subtasks = translate(wf, dest_fmt=self.dest, export_path='./translated') - process = [x[1] for x in subtasks if x[0] == 'modules/input_selector_test_tool.nf'][0] + _, _, _, processes = translate(wf, dest_fmt=self.dest, export_path='./translated') + process = [x[1] for x in processes if x[0] == 'input_selector_test_tool.nf'][0] actual_lines = _get_process_output_lines(process) expected_lines = [ 'path output_filename, emit: out' @@ -1694,8 +1694,8 @@ def test_input_selector_param(self) -> None: def test_input_selector_array(self) -> None: wf = InputSelectorTestWF() - _, _, subtasks = translate(wf, dest_fmt=self.dest, export_path='./translated') - process = [x[1] for x in subtasks if x[0] == 'modules/array_input_selector_test_tool.nf'][0] + _, _, _, processes = translate(wf, dest_fmt=self.dest, export_path='./translated') + process = [x[1] for x in processes if x[0] == 'array_input_selector_test_tool.nf'][0] actual_lines = _get_process_output_lines(process) expected_lines = [ 'path inp, emit: out' @@ -1707,8 +1707,8 @@ def test_input_selector_array(self) -> None: @unittest.skip('filenames are boofed') def test_filenames_generated(self) -> None: wf = FilenameTestWF2() - _, _, subtasks = translate(wf, dest_fmt=self.dest, export_path='./translated') - process = [x[1] for x in subtasks if x[0] == 'modules/filename_collection_test_tool.nf'][0] + _, _, _, processes = translate(wf, dest_fmt=self.dest, export_path='./translated') + process = [x[1] for x in processes if x[0] == 'filename_collection_test_tool.nf'][0] actual_lines = _get_process_output_lines(process) expected_lines = [ 'path "${inp1.baseName + ".csv"}", emit: out3', @@ -1973,12 +1973,9 @@ def test_components_array_mandatory(self) -> None: # pre-script actual_prescript = simplify_prescript(process.pre_script) expected_prescript = [ - 'def pos_basic_arr_joined = pos_basic_arr.join(\' \')', - 'def opt_basic_arr_joined = opt_basic_arr.join(\' \')', - 'def opt_basic_arr_prefixeach_joined = opt_basic_arr_prefixeach.collect{ "--opt-basic-prefixeach ${it}" }.join(\' \')', - 'def opt_default_arr_joined = opt_default_arr != params.NULL_VALUE ? opt_default_arr.join(\' \') : "100 200 300"', - 'def opt_default_arr_prefixeach_joined = opt_default_arr_prefixeach != params.NULL_VALUE ? opt_default_arr_prefixeach.collect{ "--opt-default-prefixeach ${it}" }.join(\' \') : "--opt-default-prefixeach "hi" --opt-default-prefixeach "there""', - 'def pos_default_arr_joined = pos_default_arr != params.NULL_VALUE ? pos_default_arr.join(\' \') : "1 2"', + 'def opt_default_arr = opt_default_arr == params.NULL_VALUE ? [100, 200, 300] : opt_default_arr', + 'def opt_default_arr_prefixeach_joined = opt_default_arr_prefixeach == params.NULL_VALUE ? opt_default_arr_prefixeach : ["hi", "there"]', + 'def pos_default_arr = pos_default_arr == params.NULL_VALUE ? [1, 2] : pos_default_arr', ] self.assertEqual(len(actual_prescript), len(expected_prescript)) for ln in actual_prescript: @@ -1988,12 +1985,12 @@ def test_components_array_mandatory(self) -> None: actual_script = simplify_script(process.script) expected_script = [ 'echo', - '${pos_basic_arr_joined}', - '${pos_default_arr_joined}', - '--opt-basic ${opt_basic_arr_joined}', - '--opt-default ${opt_default_arr_joined}', - '${opt_basic_arr_prefixeach_joined}', - '${opt_default_arr_prefixeach_joined}', + '${pos_basic_arr}', + '${pos_default_arr.join(\' \')}', + '--opt-basic ${opt_basic_arr.join(\' \')}', + '--opt-default ${opt_default_arr.join(\' \')}', + '${opt_basic_arr_prefixeach.collect{ "--opt-basic-prefixeach ${it}" }.join(\' \')}', + '${opt_default_arr_prefixeach.collect{ "--opt-default-prefixeach ${it}" }.join(\' \')}', '> out' ] self.assertEqual(len(actual_script), len(expected_script)) @@ -2523,7 +2520,9 @@ def setUp(self) -> None: def test_assembly(self) -> None: wf = AssemblyTestWF() wf = do_preprocessing_workflow(wf, ignore_task_inputs=True) - maintask, _ = translator.translate_workflow_internal(wf) + translator = NextflowTranslator() + translator.translate_workflow_internal(wf) + @@ -2583,14 +2582,15 @@ def setUp(self) -> None: def test_python_tool_helpers(self) -> None: # first test wf wf = InputsPythonToolTestWF() - helper_files = translator.build_helper_files(wf) - actual_paths = list(helper_files.keys()) + translator = NextflowTranslator() + translator.build_helper_files(wf) + actual_paths = [x[0] for x in translator.helper_files] expected_paths = [ - 'templates/MultiTypesInputPythonTool.py', - 'templates/JoinArrayPythonTestTool.py', - 'templates/SecondaryInputPythonTestTool.py' + 'MultiTypesInputPythonTool.py', + 'JoinArrayPythonTestTool.py', + 'SecondaryInputPythonTestTool.py' ] - for filepath, filecontents in helper_files.items(): + for filepath, filecontents in translator.helper_files: print(f'\n--- {filepath} ---') print(filecontents) self.assertEqual(len(actual_paths), len(expected_paths)) @@ -2599,12 +2599,14 @@ def test_python_tool_helpers(self) -> None: # second test wf wf = OutputsPythonToolTestWF() - helper_files = translator.build_helper_files(wf) - actual_paths = list(helper_files.keys()) + wf = to_builders(wf) + translator = NextflowTranslator() + translator.build_helper_files(wf) + actual_paths = [x[0] for x in translator.helper_files] expected_paths = [ - 'templates/FileOutputPythonTestTool.py', - 'templates/FileInputPythonTestTool.py', - 'templates/SplitTextPythonTestTool.py' + 'FileOutputPythonTestTool.py', + 'FileInputPythonTestTool.py', + 'SplitTextPythonTestTool.py' ] self.assertEqual(len(actual_paths), len(expected_paths)) for path in actual_paths: @@ -2612,12 +2614,14 @@ def test_python_tool_helpers(self) -> None: def test_template_helpers(self) -> None: wf = FilesDirectoriesToCreateTestWF() - helper_files = translator.build_helper_files(wf) - actual_paths = list(helper_files.keys()) + wf = to_builders(wf) + translator = NextflowTranslator() + translator.build_helper_files(wf) + actual_paths = [x[0] for x in translator.helper_files] expected_paths = [ - 'templates/myscript.sh', - 'templates/check_value.js', - 'templates/MultiTypesInputPythonTool.py' + 'myscript.sh', + 'check_value.js', + 'MultiTypesInputPythonTool.py' ] self.assertEqual(len(actual_paths), len(expected_paths)) for path in actual_paths: @@ -2642,11 +2646,11 @@ class TestPythontoolProcessInputs(unittest.TestCase): def setUp(self) -> None: reset_globals() wf = InputsPythonToolTestWF() - self.mainstr, _, self.subtasks = translate(wf, dest_fmt='nextflow') + self.mainstr, _, _, self.processes = translate(wf, dest_fmt='nextflow') def test_file_inputs(self) -> None: # File, String, Int input types - process = [x[1] for x in self.subtasks if x[0] == 'modules/multi_types_input_python_tool.nf'][0] + process = [x[1] for x in self.processes if x[0] == 'multi_types_input_python_tool.nf'][0] actual_lines = _get_process_input_lines(process) expected_lines = { "path code_file", @@ -2660,7 +2664,7 @@ def test_file_inputs(self) -> None: def test_generic_array_inputs(self) -> None: # Array(String) input type - process = [x[1] for x in self.subtasks if x[0] == 'modules/join_array_python_test_tool.nf'][0] + process = [x[1] for x in self.processes if x[0] == 'join_array_python_test_tool.nf'][0] actual_lines = _get_process_input_lines(process) expected_lines = { "path code_file", @@ -2672,7 +2676,7 @@ def test_generic_array_inputs(self) -> None: def test_secondaries_inputs(self) -> None: # File (secondaries) input type - process = [x[1] for x in self.subtasks if x[0] == 'modules/secondary_input_python_test_tool.nf'][0] + process = [x[1] for x in self.processes if x[0] == 'secondary_input_python_test_tool.nf'][0] actual_lines = _get_process_input_lines(process) expected_lines = { "path code_file", @@ -2728,10 +2732,10 @@ class TestPythontoolProcess(unittest.TestCase): def setUp(self) -> None: reset_globals() wf = InputsPythonToolTestWF() - self.mainstr, _, self.subtasks = translate(wf, dest_fmt='nextflow', to_console=False) + self.mainstr, _, _, self.processes = translate(wf, dest_fmt='nextflow', to_console=False) def test_format(self) -> None: - process = [x[1] for x in self.subtasks if x[0] == 'modules/multi_types_input_python_tool.nf'][0] + process = [x[1] for x in self.processes if x[0] == 'multi_types_input_python_tool.nf'][0] actual_lines = simplify_file(process) expected_lines = [ 'nextflow.enable.dsl=2', @@ -3128,7 +3132,7 @@ class TestPlumbingTypeMismatch(unittest.TestCase): def setUp(self) -> None: reset_globals() wf = PlumbingTypeMismatchTestWF() - self.mainstr, _, _ = translate(wf, dest_fmt='nextflow') + self.mainstr, _, _, _ = translate(wf, dest_fmt='nextflow') print(self.mainstr) def test_secondary_single_mismatch(self): @@ -3201,7 +3205,7 @@ class TestPlumbingScatter(unittest.TestCase): def setUp(self) -> None: reset_globals() wf = ComprehensiveScatterTestWF() - self.mainstr, _, _ = translate(wf, dest_fmt='nextflow') + self.mainstr, _, _, _ = translate(wf, dest_fmt='nextflow') print(self.mainstr) def test_scatter_to_scatter(self): @@ -3289,7 +3293,7 @@ def setUp(self) -> None: # workflow input step inputs def test_python_tool_inputs(self): wf = InputsPythonToolTestWF() - mainstr, _, _ = translate(wf, dest_fmt='nextflow', to_console=False) + mainstr, _, _, _ = translate(wf, dest_fmt='nextflow', to_console=False) print(mainstr) actual = _get_task_call_lines(mainstr, 'STP0') expected = [ @@ -3302,7 +3306,7 @@ def test_python_tool_inputs(self): def test_workflow_inputs(self): wf = CallWFInputTestWF() - mainstr, _, _ = translate(wf, dest_fmt='nextflow', to_console=False) + mainstr, _, _, _ = translate(wf, dest_fmt='nextflow', to_console=False) print(mainstr) actual = _get_task_call_lines(mainstr, 'STP1') @@ -3435,7 +3439,7 @@ def test_workflow_inputs_duplicates(self): @unittest.skip('this needs to be updated for prune / task inputs') def test_static_inputs(self): wf = CallStaticTestWF() - mainstr, _, _ = translate(wf, dest_fmt='nextflow', to_console=False) + mainstr, _, _, _ = translate(wf, dest_fmt='nextflow', to_console=False) print(mainstr) actual = _get_task_call_lines(mainstr, 'STP1') @@ -3493,7 +3497,7 @@ def test_connections_files(self) -> None: def test_filename_types(self) -> None: wf = FilenameTestWF1() - mainstr, _, _ = translate(wf, dest_fmt='nextflow', to_console=False) + mainstr, _, _, _ = translate(wf, dest_fmt='nextflow', to_console=False) print(mainstr) actual = _get_task_call_lines(mainstr, 'STP1') @@ -3506,9 +3510,9 @@ def test_filename_types(self) -> None: def test_subworkflow(self) -> None: wf = DataSourceTestWF() - mainstr, _, _ = translate(wf, dest_fmt='nextflow', to_console=False) + mainstr, _, _, _ = translate(wf, dest_fmt='nextflow', to_console=False) print(mainstr) - + actual = _get_task_call_lines(mainstr, 'STP1') expected = [ "in_file1,", @@ -3595,7 +3599,7 @@ def setUp(self) -> None: def test_pythontool_array_string_output(self) -> None: wf = PlumbingEdgeCaseTestWF() - mainstr, _, _ = translate(wf, dest_fmt='nextflow', to_console=False) + mainstr, _, _, _ = translate(wf, dest_fmt='nextflow', to_console=False) print(mainstr) actual = _get_task_call_lines(mainstr, 'STP2') expected = [ @@ -3650,7 +3654,7 @@ def setUp(self) -> None: def test_first_selector(self): wf = ConditionStepTestWF() - mainstr, _, _ = translate(wf, dest_fmt='nextflow', to_console=False) + mainstr, _, _, _ = translate(wf, dest_fmt='nextflow', to_console=False) print(mainstr) actual = _get_task_call_lines(mainstr, 'PRINT') expected = [ @@ -3662,7 +3666,7 @@ def test_first_selector(self): def test_with_expression(self): wf = StepInputExpressionTestWF() - mainstr, _, _ = translate(wf, dest_fmt='nextflow', to_console=False) + mainstr, _, _, _ = translate(wf, dest_fmt='nextflow', to_console=False) print(mainstr) actual = _get_task_call_lines(mainstr, 'PRINT') expected = [ @@ -3702,7 +3706,7 @@ def test_process_basics(self) -> None: ] expected_outputs = [ 'tuple path("${bam_sorted}"), path("*.bai"), emit: bam_sorted_indexed', - 'path "${reads_1}.trimmed${reads_1.extension}", emit: trimmed_reads_1' + 'path "${reads_1}.trimmed${"." + reads_1.extension}", emit: trimmed_reads_1' ] expected_prescript = [ 'def in_filename = in_filename != params.NULL_VALUE ? in_filename : "generated"', @@ -3773,7 +3777,7 @@ def test_string_formatter3(self) -> None: val=expr, context='process_script', variable_manager=vmanager, tool=tool ) - expected = '${in_file}.trimmed${in_file.extension}' + expected = '${in_file}.trimmed${"." + in_file.extension}' self.assertEqual(actual, expected) def test_selectors(self) -> None: @@ -3802,7 +3806,6 @@ def test_standard(self) -> None: # prescript self.assertIn('def in_bam_bai_arr = get_primary_files(in_bam_bai_arr_flat, 2)', prescript) self.assertIn("def in_bam_bai_arr_joined = in_bam_bai_arr.join(' ')", prescript) - self.assertIn('def in_bam_bai = in_bam_bai[0]', prescript) self.assertIn('def in_file_arr_joined = in_file_arr.join(\' \')', prescript) self.assertIn('def in_int_opt = in_int_opt != params.NULL_VALUE ? in_int_opt : ""', prescript) self.assertIn('def in_str_opt = in_str_opt != params.NULL_VALUE ? in_str_opt : ""', prescript) @@ -4141,7 +4144,7 @@ class TestOrdering(unittest.TestCase): def setUp(self) -> None: reset_globals() wf = OrderingTestWF() - self.mainstr, _, self.subtasks = translate(wf, dest_fmt='nextflow', to_console=False) + self.mainstr, _, self.subworkflows, self.processes = translate(wf, dest_fmt='nextflow', to_console=False) def test_process_call(self) -> None: # from workflow inputs @@ -4181,7 +4184,7 @@ def test_process_call(self) -> None: self.assertEqual(expected, actual) def test_process_inputs(self) -> None: - process = [x[1] for x in self.subtasks if x[0] == 'modules/multi_type_test_tool.nf'][0] + process = [x[1] for x in self.processes if x[0] == 'multi_type_test_tool.nf'][0] print(process) actual_lines = _get_process_input_lines(process) expected_lines = [ @@ -4196,17 +4199,17 @@ def test_process_inputs(self) -> None: def test_process_directives(self) -> None: wf = DirectivesTestWF() - _, _, subtasks = translate(wf, dest_fmt='nextflow', to_console=False) - process = [x[1] for x in subtasks if x[0] == 'modules/resources_test_tool.nf'][0] + _, _, _, processes = translate(wf, dest_fmt='nextflow', to_console=False) + process = [x[1] for x in processes if x[0] == 'resources_test_tool_cb.nf'][0] print(process) actual_order = _get_process_directive_lines(process) expected_order = [ 'container "quay.io/biocontainers/bedtools:2.29.2--hc088bd4_0"', - 'publishDir "${params.outdir}/resources_test_tool"', - 'cpus "${params.resources_test_tool.cpus}"', - 'disk "${params.resources_test_tool.disk}"', - 'memory "${params.resources_test_tool.memory}"', - 'time "${params.resources_test_tool.time}"', + 'publishDir "${params.outdir}/resources_test_tool_cb"', + 'cpus "${params.resources_test_tool_cb.cpus}"', + 'disk "${Math.ceil(inp.size / 1048576 / 1024 * 1024 * 1024 + 20)} MB"', + 'memory "${15 * 1024} MB"', + 'time "${params.resources_test_tool_cb.time}"', ] for actual, expected in zip(actual_order, expected_order): self.assertEqual(actual, expected) @@ -4248,7 +4251,7 @@ def test_subworkflow_call(self) -> None: self.assertEqual(expected, actual) def test_subworkflow_inputs(self) -> None: - subwf = [x[1] for x in self.subtasks if x[0] == 'subworkflows/multi_type_test_wf.nf'][0] + subwf = [x[1] for x in self.subworkflows if x[0] == 'multi_type_test_wf.nf'][0] actual_inputs = _lines_within_section(subwf, 'take:', 'main:') expected_inputs = [ 'ch_in_fastq', diff --git a/janis_core/tests/test_translation_wdl.py b/janis_core/tests/test_translation_wdl.py index 2d1c4f8ef..19dd7d5e0 100644 --- a/janis_core/tests/test_translation_wdl.py +++ b/janis_core/tests/test_translation_wdl.py @@ -5,6 +5,7 @@ import wdlgen from janis_core.types import UnionType +from janis_core.translations.common import to_builders from janis_core.translations import translate from janis_core import settings import janis_core.translations.wdl as wdl @@ -177,10 +178,12 @@ def setUp(self): w = WorkflowBuilder("sbmf") w.input("inp1", str) w.input("inp2", str) - self.step = w.step( + w.step( "testTool", SingleTestTool(input1=w.inp1, input2=w.inp2), ) + w = to_builders(w) + self.step = w.step_nodes["testTool"] def test_wdl_comments(self): settings.translate.RENDER_COMMENTS = True @@ -221,7 +224,8 @@ def setUp(self): def test_stringify_workflow(self): wdlobj = wdlgen.Workflow("wid", version="development") - wdlstr = self.translator.stringify_translated_workflow(wdlobj) + + wdlstr = self.translator.stringify_translated_workflow(None, wdlobj) wdlstr = non_blank_lines_str(wdlstr) self.assertEqual( "version development\nworkflow wid {\n}", @@ -232,13 +236,7 @@ def test_stringify_tool(self): wdlobj = wdlgen.Task("tid", version="development") self.assertEqual( "version development\n\ntask tid {\n\n}", - self.translator.stringify_translated_tool(wdlobj), - ) - - def test_stringify_inputs(self): - d = {"wid.inp1": 1} - self.assertEqual( - '{\n "wid.inp1": 1\n}', self.translator.stringify_translated_inputs(d) + self.translator.stringify_translated_tool(None, wdlobj), ) def test_workflow_filename(self): @@ -268,17 +266,27 @@ def test_inputs_generator_secondary_files(self): w.input("wsec", SecondaryTestType, default="test.ext") # w._add_input(Input("wsec", TestTypeWithSecondary(), value="test.ext")) settings.translate.MERGE_RESOURCES = False - inpsdict = WdlTranslator().build_inputs_file(w) - self.assertEqual("test.ext", inpsdict.get("tst.wsec")) - self.assertEqual("test.txt", inpsdict.get("tst.wsec_txt")) + translator = WdlTranslator() + translator.build_inputs_file(w) + self.assertIn('"tst.wsec": "test.ext",', translator.inputs_file) + self.assertIn('"tst.wsec_txt": "test.txt"', translator.inputs_file) def test_inputs_generator_array_of_secondary_files(self): w = WorkflowBuilder("tst") w.input("wsec", Array(SecondaryTestType()), default=["test.ext"]) settings.translate.MERGE_RESOURCES = False - inpsdict = WdlTranslator().build_inputs_file(w) - self.assertListEqual(["test.ext"], inpsdict.get("tst.wsec")) - self.assertListEqual(["test.txt"], inpsdict.get("tst.wsec_txt")) + translator = WdlTranslator() + translator.build_inputs_file(w) + print(translator.inputs_file) + expected = """{ + "tst.wsec": [ + "test.ext" + ], + "tst.wsec_txt": [ + "test.txt" + ] +}""" + self.assertEqual(expected, translator.inputs_file) def test_translate_single_to_array_edge(self): w = WorkflowBuilder("wf") @@ -287,7 +295,7 @@ def test_translate_single_to_array_edge(self): stp2 = w.step( "stp2", BasicTestTool(arrayInp=stp1.std, testtool=w.inp), ignore_missing=True ) - + w = to_builders(w) settings.translate.RENDER_COMMENTS = False outp = wdl.translate_step_node(stp2, stp2.id(), {}, set(), None) outp_str = outp.get_string() @@ -497,9 +505,13 @@ def test_string_formatter_two_param(self): self.assertEqual("~{tumorInputName}:~{normalInputName}", res) def test_escaped_characters(self): - trans = wdl.WdlTranslator - translated = trans.translate_tool_internal(BasicTestTool()) - arg = translated.command[-1].arguments[0] + tool = BasicTestTool() + tool = to_builders(tool) + translator = WdlTranslator() + translator.translate_tool_internal(tool) + assert len(translator.tools) == 1 + tool_wdl = translator.tools[0][1] + arg = tool_wdl.command[-1].arguments[0] self.assertEqual("'test:\\t:escaped:\\n:characters\"'", arg.value) # test removed as optional placeholders don't throw errors anymore @@ -559,102 +571,91 @@ def test_input_in_input_value_nooptional_nodefault(self): wf = WorkflowBuilder("test_input_in_inputfile") wf.input("inpId", String(), default="1") - self.assertDictEqual( - {"test_input_in_inputfile.inpId": "1"}, - self.translator.build_inputs_file(wf), - ) + translator = WdlTranslator() + translator.build_inputs_file(wf) + self.assertIn('"test_input_in_inputfile.inpId": "1"', translator.inputs_file) def test_input_in_input_value_nooptional_default(self): wf = WorkflowBuilder("test_input_in_inputfile") wf.input("inpId", String(), default="1") - self.assertDictEqual( - {"test_input_in_inputfile.inpId": "1"}, - self.translator.build_inputs_file(wf), - ) + translator = WdlTranslator() + translator.build_inputs_file(wf) + self.assertIn('"test_input_in_inputfile.inpId": "1"', translator.inputs_file) def test_input_in_input_value_optional_nodefault(self): wf = WorkflowBuilder("test_input_in_inputfile") wf.input("inpId", String(optional=True), default="1") - self.assertDictEqual( - {"test_input_in_inputfile.inpId": "1"}, - self.translator.build_inputs_file(wf), - ) + translator = WdlTranslator() + translator.build_inputs_file(wf) + self.assertIn('"test_input_in_inputfile.inpId": "1"', translator.inputs_file) def test_input_in_input_value_optional_default(self): wf = WorkflowBuilder("test_input_in_inputfile") wf.input("inpId", String(optional=True), default="1") - self.assertDictEqual( - {"test_input_in_inputfile.inpId": "1"}, - self.translator.build_inputs_file(wf), - ) + translator = WdlTranslator() + translator.build_inputs_file(wf) + self.assertIn('"test_input_in_inputfile.inpId": "1"', translator.inputs_file) def test_input_in_input_novalue_nooptional_nodefault(self): wf = WorkflowBuilder("test_input_in_inputfile") wf.input("inpId", String()) # included because no value, no default, and not optional - self.assertDictEqual( - {"test_input_in_inputfile.inpId": None}, - self.translator.build_inputs_file(wf), - ) + translator = WdlTranslator() + translator.build_inputs_file(wf) + self.assertIn('"test_input_in_inputfile.inpId": null', translator.inputs_file) def test_input_in_input_novalue_nooptional_default(self): wf = WorkflowBuilder("test_input_in_inputfile") wf.input("inpId", String(), default="2") # new interpretation: defaults appear in inputs - self.assertDictEqual( - {"test_input_in_inputfile.inpId": "2"}, - self.translator.build_inputs_file(wf), - ) - # self.assertDictEqual({}, self.translator.build_inputs_file(wf)) + translator = WdlTranslator() + translator.build_inputs_file(wf) + self.assertIn('"test_input_in_inputfile.inpId": "2"', translator.inputs_file) def test_overrided_input_optional_nodefault(self): wf = WorkflowBuilder("test_input_in_inputfile") wf.input("inpId", String(optional=True)) settings.translate.ADDITIONAL_INPUTS = {"inpId": "2"} - actual_inputs = self.translator.build_inputs_file(wf) + translator = WdlTranslator() + translator.build_inputs_file(wf) settings.translate.ADDITIONAL_INPUTS = None - expected_inputs = {"test_input_in_inputfile.inpId": "2"} - - # new interpretation: defaults appear in inputs - self.assertDictEqual(actual_inputs, expected_inputs) + self.assertIn('"test_input_in_inputfile.inpId": "2"', translator.inputs_file) def test_overrided_input_optional_default(self): wf = WorkflowBuilder("test_input_in_inputfile") wf.input("inpId", String(optional=True), default="2") settings.translate.ADDITIONAL_INPUTS = {"inpId": "4"} - actual_inputs = self.translator.build_inputs_file(wf) + translator = WdlTranslator() + translator.build_inputs_file(wf) settings.translate.ADDITIONAL_INPUTS = None - expected_inputs = {"test_input_in_inputfile.inpId": "4"} - - # new interpretation: defaults appear in inputs - self.assertDictEqual(actual_inputs, expected_inputs) + self.assertIn('"test_input_in_inputfile.inpId": "4"', translator.inputs_file) def test_input_in_input_novalue_optional_nodefault(self): wf = WorkflowBuilder("test_input_in_inputfile") wf.input("inpId", String(optional=True)) - self.assertDictEqual({}, self.translator.build_inputs_file(wf)) + translator = WdlTranslator() + translator.build_inputs_file(wf) + print(translator.inputs_file) + self.assertEqual('{}', translator.inputs_file) def test_input_in_input_novalue_optional_default(self): wf = WorkflowBuilder("test_input_in_inputfile") wf.input("inpId", String(optional=True), default="2") # new interpretation: defaults appear in inputs - self.assertDictEqual( - {"test_input_in_inputfile.inpId": "2"}, - self.translator.build_inputs_file(wf), - ) - # self.assertDictEqual({}, self.translator.build_inputs_file(wf)) + translator = WdlTranslator() + translator.build_inputs_file(wf) + self.assertIn('"test_input_in_inputfile.inpId": "2"', translator.inputs_file) def test_tool_output_with_input_selector(self): - tool = TestToolWithSecondaryOutput() toolout = tool.outputs()[0] inmap = {t.id(): t for t in tool.inputs()} @@ -844,9 +845,9 @@ def setUp(self) -> None: reset_global_settings() def test_environment1(self): - t = WdlTranslator().translate_tool_internal(tool=BasicTestTool()) - s = t.get_string() - print(s) + tool = BasicTestTool() + out = translate(tool, 'wdl') + self.assertIn("export test1='~{testtool}'", out) class TestWdlMaxResources(unittest.TestCase): @@ -897,17 +898,17 @@ def setUp(self) -> None: reset_global_settings() def test_scatter_single(self): + settings.translate.RENDER_COMMENTS = False w = WorkflowBuilder("sbmf") w.input("inp", Array(str)) w.input("inp2", str) - - step = w.step( + w.step( "dotTool", SingleTestTool(input1=w.inp, input2=w.inp2), scatter=ScatterDescription(fields=["input1"], method=ScatterMethod.dot), ) - - settings.translate.RENDER_COMMENTS = False + w = to_builders(w) + step = w.step_nodes["dotTool"] outp = wdl.translate_step_node( step, "A.SingleTestTool", {}, {"inp", "inp2"}, None ) @@ -927,10 +928,11 @@ def test_scatter_single_no_description(self): w = WorkflowBuilder("sbmf") w.input("inp", Array(str)) w.input("inp2", str) - - step = w.step( + w.step( "dotTool", SingleTestTool(input1=w.inp, input2=w.inp2), scatter="input1" ) + w = to_builders(w) + step = w.step_nodes["dotTool"] settings.translate.RENDER_COMMENTS = False outp = wdl.translate_step_node( @@ -952,14 +954,15 @@ def test_dot_2(self): w = WorkflowBuilder("sbmf") w.input("inp", Array(str)) w.input("inp2", Array(str)) - - step = w.step( + w.step( "dotTool", SingleTestTool(input1=w.inp, input2=w.inp2), scatter=ScatterDescription( fields=["input1", "input2"], method=ScatterMethod.dot ), ) + w = to_builders(w) + step = w.step_nodes["dotTool"] settings.translate.RENDER_COMMENTS = False outp = wdl.translate_step_node( @@ -982,14 +985,15 @@ def test_dot_3(self): w.input("inp", Array(str)) w.input("inp2", Array(str)) w.input("inp3", Array(str)) - - step = w.step( + w.step( "dotTool", SingleTestTool(input1=w.inp, input2=w.inp2, input3=w.inp3), scatter=ScatterDescription( fields=["input1", "input2", "input3"], method=ScatterMethod.dot ), ) + w = to_builders(w) + step = w.step_nodes["dotTool"] settings.translate.RENDER_COMMENTS = False outp = wdl.translate_step_node( @@ -1014,8 +1018,7 @@ def test_dot_4(self): w.input("inp2", Array(str)) w.input("inp3", Array(str)) w.input("inp4", Array(str)) - - step = w.step( + w.step( "dotTool", SingleTestTool(input1=w.inp, input2=w.inp2, input3=w.inp3, input4=w.inp4), scatter=ScatterDescription( @@ -1023,6 +1026,8 @@ def test_dot_4(self): method=ScatterMethod.dot, ), ) + w = to_builders(w) + step = w.step_nodes["dotTool"] settings.translate.RENDER_COMMENTS = False outp = wdl.translate_step_node( @@ -1046,14 +1051,15 @@ def test_dot_2_secondary(self): w = WorkflowBuilder("sbmf") w.input("inp", Array(TxtSecondary)) w.input("inp2", Array(str)) - - step = w.step( + w.step( "dotTool", MultipleEcho(input1=w.inp, input2=w.inp2), scatter=ScatterDescription( fields=["input1", "input2"], method=ScatterMethod.dot ), ) + w = to_builders(w) + step = w.step_nodes["dotTool"] settings.translate.RENDER_COMMENTS = False outp = wdl.translate_step_node( step, "A.SingleTestTool", {}, {"inp", "inp2"}, None @@ -1082,7 +1088,7 @@ def test_basic(self): w.step("echo", SingleTestTool(input1=w.inp)) w.step("echo_2", SingleTestTool(input1=w.inp)) - wf, _, _ = w.translate( + wf, _, _, _ = w.translate( "wdl", to_console=False, with_resource_overrides=True, @@ -1097,29 +1103,27 @@ def test_basic(self): Int? echo_runtime_memory Int? echo_runtime_cpu Int? echo_runtime_disk - Int? echo_runtime_seconds Int? echo_2_runtime_memory Int? echo_2_runtime_cpu Int? echo_2_runtime_disk - Int? echo_2_runtime_seconds } call S.SingleTestTool as echo { input: input1=inp, runtime_memory=echo_runtime_memory, runtime_cpu=echo_runtime_cpu, - runtime_disk=echo_runtime_disk, - runtime_seconds=echo_runtime_seconds + runtime_disk=echo_runtime_disk } call S.SingleTestTool as echo_2 { input: input1=inp, runtime_memory=echo_2_runtime_memory, runtime_cpu=echo_2_runtime_cpu, - runtime_disk=echo_2_runtime_disk, - runtime_seconds=echo_2_runtime_seconds + runtime_disk=echo_2_runtime_disk } }""" + for ln in workflow_lines: + print(ln) self.assertEqual(_tooldef, '\n'.join(workflow_lines[2:])) @@ -1181,7 +1185,7 @@ def test_string_formatter(self): ) wf.step("print", EchoTestTool(inp=wf.readGroupHeaderLine)) wf.output("out", source=wf.print) - workflow_str, _, _ = wf.translate("wdl", to_console=False, render_comments=False) + workflow_str, _, _, _ = wf.translate("wdl", to_console=False, render_comments=False) workflow_str = non_blank_lines_str(workflow_str) expected = """\ version development @@ -1214,23 +1218,22 @@ def test_tool_dict_override(self): tool = SingleTestTool() translated = translate(tool, 'wdl', container_override={tool.id(): expected_container}) - line = non_blank_lines_list(translated)[-9].strip() - self.assertEqual(f'docker: "{expected_container}"', line) + lines = non_blank_lines_list(translated) + lines = [ln.strip() for ln in lines] + self.assertIn(f'docker: "{expected_container}"', lines) def test_tool_string_override(self): expected_container = "container/override" - + tool = SingleTestTool() - translated = tool.translate( - "wdl", to_console=False, container_override=expected_container - ) + translated = tool.translate("wdl", to_console=False, container_override=expected_container) - line = non_blank_lines_list(translated)[-9].strip() - self.assertEqual(f'docker: "{expected_container}"', line) + lines = non_blank_lines_list(translated) + lines = [ln.strip() for ln in lines] + self.assertIn(f'docker: "{expected_container}"', lines) def test_tool_override_casecheck(self): expected_container = "container/override" - tool = SingleTestTool() # Assert that our tool id is not UPPER, so when we override with the @@ -1241,8 +1244,10 @@ def test_tool_override_casecheck(self): to_console=False, container_override={toolid_upper: expected_container}, ) - line = non_blank_lines_list(translated)[-9].strip() - self.assertEqual(f'docker: "{expected_container}"', line) + + lines = non_blank_lines_list(translated) + lines = [ln.strip() for ln in lines] + self.assertIn(f'docker: "{expected_container}"', lines) class TestWDLRunRefs(unittest.TestCase): @@ -1258,9 +1263,8 @@ def test_two_similar_tools(self): w.step("stp2", VersionTestTool(testtool=w.inp)) settings.translate.RENDER_COMMENTS = False - w, _ = WdlTranslator.translate_workflow_internal(w) - workflow_str = w.get_string() - workflow_str = non_blank_lines_str(workflow_str) + mainstr, _, _, _ = translate(w, "wdl", to_console=False, render_comments=False) + mainstr = non_blank_lines_str(mainstr) expected = """\ version development @@ -1280,7 +1284,7 @@ def test_two_similar_tools(self): } }""" - self.assertEqual(expected, workflow_str) + self.assertEqual(expected, mainstr) class TestWdlSecondaryTranslation(unittest.TestCase): @@ -1291,7 +1295,7 @@ def test_secondary_connection(self): wf = WorkflowBuilder("wf") wf.input("ref", SecondaryTestType) wf.step("stp", SecondaryInputTestTool(inp=wf.ref)) - workflow_str, _, _ = wf.translate("wdl", to_console=False, render_comments=False) + workflow_str, _, _, _ = wf.translate("wdl", to_console=False, render_comments=False) workflow_str = non_blank_lines_str(workflow_str) expected = """\ version development @@ -1313,7 +1317,7 @@ def test_array_secondary_connection(self): wf = WorkflowBuilder("wf") wf.input("ref", Array(SecondaryTestType)) wf.step("stp", SecondaryInputTestTool(inp=wf.ref), scatter="inp") - workflow_str, _, _ = wf.translate("wdl", to_console=False, render_comments=False) + workflow_str, _, _, _ = wf.translate("wdl", to_console=False, render_comments=False) workflow_str = non_blank_lines_str(workflow_str) expected = """\ version development @@ -1335,8 +1339,12 @@ def test_array_secondary_connection(self): def test_workflow_secondary_outputs(self): wf = ArraysOfSecondaryFilesOutputsTestWF() - wfwdl, _ = WdlTranslator.translate_workflow_internal(wf) - outs = [o.get_string() for o in wfwdl.outputs] + wf = to_builders(wf) + translator = WdlTranslator() + translator.translate_workflow_internal(wf) + assert translator.main is not None + wf_wdl = translator.main[1] + outs = [o.get_string() for o in wf_wdl.outputs] self.assertEqual("Array[File] out = stp.out", outs[0]) self.assertEqual("Array[File] out_txt = stp.out_txt", outs[1]) @@ -1452,7 +1460,7 @@ def test_list_operators(self): self.assertEqual('[1, 2, "three"]', exp) def test_step_input(self): - workflow_str, _, _ = StepInputExpressionTestWF().translate( + workflow_str, _, _, _ = StepInputExpressionTestWF().translate( "wdl", to_console=False, render_comments=False ) workflow_str = non_blank_lines_str(workflow_str) @@ -1505,7 +1513,7 @@ def test_array_step_input(self): ), wf.output("out", source=wf.print) - workflow_str, _, _ = wf.translate("wdl", to_console=False, allow_empty_container=True, render_comments=False) + workflow_str, _, _, _ = wf.translate("wdl", to_console=False, allow_empty_container=True, render_comments=False) workflow_str = non_blank_lines_str(workflow_str) expected = """\ version development @@ -1551,7 +1559,7 @@ def test_simple(self): w = WorkflowBuilder("wf") w.input("inp", str) w.output("out", source=w.inp) - workflow_str, _, _ = w.translate("wdl", to_console=False, render_comments=False) + workflow_str, _, _, _ = w.translate("wdl", to_console=False, render_comments=False) workflow_str = non_blank_lines_str(workflow_str) expected = """\ version development @@ -1569,7 +1577,7 @@ def test_with_int_default(self): w = WorkflowBuilder("wf") w.input("inp", int, default=0) w.output("out", source=w.inp) - workflow_str, _, _ = w.translate("wdl", to_console=False, render_comments=False) + workflow_str, _, _, _ = w.translate("wdl", to_console=False, render_comments=False) workflow_str = non_blank_lines_str(workflow_str) expected = """\ version development @@ -1582,12 +1590,12 @@ def test_with_int_default(self): } }""" self.assertEqual(expected, workflow_str) - + def test_with_str_default(self): w = WorkflowBuilder("wf") w.input("inp", str, default="hello") w.output("out", source=w.inp) - workflow_str, _, _ = w.translate("wdl", to_console=False, render_comments=False) + workflow_str, _, _, _ = w.translate("wdl", to_console=False, render_comments=False) workflow_str = non_blank_lines_str(workflow_str) expected = """\ version development @@ -1608,40 +1616,23 @@ def setUp(self) -> None: def test_1(self): settings.translate.WITH_RESOURCE_OVERRIDES = True - tool_wdl = WdlTranslator.translate_tool_internal( - OperatorResourcesTestTool() - ).get_string() - lines = non_blank_lines_list(tool_wdl) - cpus = lines[-12].strip() - time = lines[-9].strip() - memory = lines[-8].strip() - - self.assertEqual("cpu: select_first([runtime_cpu, (2 * outputFiles), 1])", cpus) - self.assertEqual( + tool = OperatorResourcesTestTool() + tool_wdl = translate(tool, 'wdl', to_console=False) + + self.assertIn("cpu: select_first([runtime_cpu, (2 * outputFiles), 1])", tool_wdl) + self.assertIn( 'memory: "~{select_first([runtime_memory, if ((size(inputFile, "MB") > 1024)) then 4 else 2, 4])}G"', - memory, + tool_wdl, ) - self.assertEqual("duration: select_first([runtime_seconds, 60, 86400])", time) def test_base(self): settings.translate.WITH_RESOURCE_OVERRIDES = True - tool_wdl = WdlTranslator.translate_tool_internal(EchoTestTool()).get_string() - lines = non_blank_lines_list(tool_wdl) - # print(tool_wdl) - cpus = lines[-12].strip() - disks = lines[-11].strip() - time = lines[-9].strip() - memory = lines[-8].strip() + tool = EchoTestTool() + tool_wdl = translate(tool, 'wdl', to_console=False) - self.assertEqual("cpu: select_first([runtime_cpu, 1])", cpus) - - self.assertEqual('memory: "~{select_first([runtime_memory, 4])}G"', memory) - - self.assertEqual("duration: select_first([runtime_seconds, 86400])", time) - - self.assertEqual( - 'disks: "local-disk ~{select_first([runtime_disk, 20])} SSD"', disks - ) + self.assertIn("cpu: select_first([runtime_cpu, 1])", tool_wdl) + self.assertIn('memory: "~{select_first([runtime_memory, 4])}G"', tool_wdl) + self.assertIn('disks: "local-disk ~{select_first([runtime_disk, 20])} SSD"', tool_wdl) class TestReadContentsOperator(unittest.TestCase): @@ -1772,7 +1763,11 @@ def test_minimal(self): #w, _ = WdlTranslator.translate_workflow(TestForEach()) settings.translate.RENDER_COMMENTS = False wf = ForEachTestWF() - wf_trans, _ = WdlTranslator.translate_workflow_internal(wf) + wf = to_builders(wf) + translator = WdlTranslator() + translator.translate_workflow_internal(wf) + assert translator.main is not None + wf_trans = translator.main[1] settings.translate.RENDER_COMMENTS = False workflow_str = wf_trans.get_string() workflow_str = non_blank_lines_str(workflow_str) diff --git a/janis_core/tests/testworkflows/files_directories_to_create.py b/janis_core/tests/testworkflows/files_directories_to_create.py index a874c122b..d5583a33e 100644 --- a/janis_core/tests/testworkflows/files_directories_to_create.py +++ b/janis_core/tests/testworkflows/files_directories_to_create.py @@ -144,7 +144,7 @@ def arguments(self) -> Optional[list[ToolArgument]]: return [ ToolArgument( StringFormatter( - format="'{{\"inp1\": {inp1}, \"inp2\": {inp2}, \"inp3\": {inp3}}}'", + format="'\"inp1\": {inp1}, \"inp2\": {inp2}, \"inp3\": {inp3}'", inp1=InputSelector('inp1'), inp2=InputSelector('inp2'), inp3=InputSelector('inp3'), diff --git a/janis_core/translation_deps/supportedtranslations.py b/janis_core/translation_deps/supportedtranslations.py index eabfc6dc1..6faf09079 100644 --- a/janis_core/translation_deps/supportedtranslations.py +++ b/janis_core/translation_deps/supportedtranslations.py @@ -13,6 +13,13 @@ def __str__(self): def __eq__(self, other): return str(self) == str(other) + + @staticmethod + def from_str(label): + for st in SupportedTranslation: + if st.value == label: + return st + raise RuntimeError(f"Could not find SupportedTranslation for {label}") def get_translator(self) -> Any: if self == SupportedTranslation.CWL: diff --git a/janis_core/translations/todisk.py b/janis_core/translations/common/todisk.py similarity index 82% rename from janis_core/translations/todisk.py rename to janis_core/translations/common/todisk.py index 0afc3cda5..dd2b3d122 100644 --- a/janis_core/translations/todisk.py +++ b/janis_core/translations/common/todisk.py @@ -8,6 +8,7 @@ from janis_core.translation_deps.exportpath import ExportPathKeywords + def write_workflow_to_console( tup_workflow: Tuple[str, str], tup_tools: list[Tuple[str, str]], @@ -77,18 +78,9 @@ def write_workflow_to_disk( for tup_helper in tup_helpers: _write_file(tup_helper, basedir, 'helpers', outdir_structure['helpers']) - # copying source files - this one is a bit weird & specific to galaxy. - if settings.general.SOURCE_FILES is not None: - # create source folder in basedir - source_dir = os.path.join(basedir, 'source') - if not os.path.isdir(source_dir): - os.mkdir(source_dir) - # copy files - for src, dest in settings.general.SOURCE_FILES: - dest = os.path.join(source_dir, dest) - if not os.path.isdir(os.path.dirname(dest)): - os.mkdir(os.path.dirname(dest)) - shutil.copy2(src, dest) + # writing galaxy source files (specific to galaxy) + if settings.ingest.SOURCE == 'galaxy': + _write_galaxy_source_files_to_disk(basedir) def _write_file(tup_file: Tuple[str, str], basedir: str, ftype: str, fsubdir: str | None) -> None: @@ -96,6 +88,7 @@ def _write_file(tup_file: Tuple[str, str], basedir: str, ftype: str, fsubdir: st # format outdir using basedir and subdir if provided outdir = os.path.join(basedir, fsubdir) if fsubdir is not None else basedir + os.makedirs(outdir, exist_ok=True) # write to disk Logger.info(f"Writing {ftype} to '{outdir}'") @@ -105,11 +98,26 @@ def _write_file(tup_file: Tuple[str, str], basedir: str, ftype: str, fsubdir: st Logger.log(f"Written {filename} to disk") +def _write_galaxy_source_files_to_disk(basedir: str) -> None: + # copying source files - this one is a bit weird & specific to galaxy. + if settings.general.SOURCE_FILES is not None: + # create source folder in basedir + source_dir = os.path.join(basedir, 'source') + if not os.path.isdir(source_dir): + os.mkdir(source_dir) + # copy files + for src, dest in settings.general.SOURCE_FILES: + dest = os.path.join(source_dir, dest) + if not os.path.isdir(os.path.dirname(dest)): + os.mkdir(os.path.dirname(dest)) + shutil.copy2(src, dest) + + def write_tool_to_console(str_tool: str) -> None: print(str_tool) -def write_tool_to_disk(str_tool: str, filename: str, helpers: dict[str, str]) -> None: +def write_tool_to_disk(str_tool: str, filename: str, tup_helpers: list[Tuple[str, str]]) -> None: # set output folder basedir = ExportPathKeywords.resolve( settings.translate.EXPORT_PATH, @@ -121,33 +129,14 @@ def write_tool_to_disk(str_tool: str, filename: str, helpers: dict[str, str]) -> os.makedirs(basedir) # write tool file - with open(os.path.join(basedir, filename), "w+") as wf: - Logger.log(f"Writing {filename} to disk") - wf.write(str_tool) - Logger.log(f"Wrote {filename} to disk") + _write_file((filename, str_tool), basedir, 'tool', None) # write helper files (files_to_create scripts) - helpers = {fn.split('/')[-1]: fc for fn, fc in helpers.items()} - for (filename, filecontents) in helpers.items(): - with open(os.path.join(basedir, filename), "w+") as helperfp: - Logger.log(f"Writing {filename} to disk") - helperfp.write(filecontents) - Logger.log(f"Written {filename} to disk") - - # writing source files to output folder (specifically galaxy tool wrappers) - # copying source files - if settings.general.SOURCE_FILES is not None: - # create source folder in basedir - source_dir = os.path.join(basedir, 'source') - if not os.path.isdir(source_dir): - os.mkdir(source_dir) - - # copy files - for src, dest in settings.general.SOURCE_FILES: - dest = os.path.join(source_dir, dest) - if not os.path.isdir(os.path.dirname(dest)): - os.mkdir(os.path.dirname(dest)) - shutil.copy2(src, dest) + for tup_helper in tup_helpers: + _write_file(tup_helper, basedir, 'helper', None) + + + diff --git a/janis_core/translations/cwl/main.py b/janis_core/translations/cwl/main.py index e4626a7ec..baeecfa52 100644 --- a/janis_core/translations/cwl/main.py +++ b/janis_core/translations/cwl/main.py @@ -882,7 +882,7 @@ def stringify_translated_tool( formatted = cwl_format(formatted) # adding messages - loglines = load_loglines(category=ErrorCategory.SCRIPT, tool_uuid=internal.uuid) + loglines = load_loglines(category=ErrorCategory.SCRIPTING, tool_uuid=internal.uuid) return formatted diff --git a/janis_core/translations/main.py b/janis_core/translations/main.py index 52da6c1fc..12095dc41 100644 --- a/janis_core/translations/main.py +++ b/janis_core/translations/main.py @@ -4,7 +4,7 @@ from inspect import isclass from janis_core import settings -from janis_core import CodeTool, CommandTool, CommandToolBuilder, WorkflowBase, WorkflowBuilder +from janis_core import CodeTool, CommandToolBuilder, WorkflowBase, WorkflowBuilder from janis_core import Tool from janis_core.utils import lowercase_dictkeys from janis_core.translation_deps.supportedtranslations import SupportedTranslation diff --git a/janis_core/translations/nextflow/generate/files/process.py b/janis_core/translations/nextflow/generate/files/process.py index e10ea753a..e1cab0122 100644 --- a/janis_core/translations/nextflow/generate/files/process.py +++ b/janis_core/translations/nextflow/generate/files/process.py @@ -30,11 +30,6 @@ def generate_file_process(process: NFProcess, tool: CommandToolBuilder | CodeToo """generates nextflow file for nextflow process derived from CommandToolBuilder""" nf_file = NFFile(subtype='process', name=process.name) - # item: messages - message_items = gen_message_items_for_process_file(tool, process) - if message_items: - nf_file.items += message_items - # groovy library imports & groovy functions used in process # item: imports imports_item = gen_imports_for_process_file(tool) @@ -51,63 +46,6 @@ def generate_file_process(process: NFProcess, tool: CommandToolBuilder | CodeToo return nf_file -def gen_message_items_for_process_file(tool: CommandToolBuilder | CodeTool, process: NFProcess) -> list[NFMessageBlock]: - message_items = [] - - # fallbacks - loglines = load_loglines(category=ErrorCategory.FALLBACK, tool_uuid=tool.uuid) - if loglines: - message_items.append(NFMessageBlock( - heading='ERROR: PARSING FALLBACKS', - lines=[f'// {x.message}' for x in loglines] - )) - - # datatypes - loglines = load_loglines(category=ErrorCategory.DATATYPE, tool_uuid=tool.uuid) - if loglines: - # TODO handle updated variable names here? - message_items.append(NFMessageBlock( - heading='WARNING: DATATYPES', - lines=[f'// {x.message}' for x in loglines] - )) - - # version - loglines = load_loglines(category=ErrorCategory.VERSION, tool_uuid=tool.uuid) - if loglines: - message_items.append(NFMessageBlock( - heading='WARNING: VERSION', - lines=[f'// {x.message}' for x in loglines] - )) - - # experimental - loglines = load_loglines(category=ErrorCategory.EXPERIMENTAL, tool_uuid=tool.uuid) - if loglines: - message_items.append(NFMessageBlock( - heading='WARNING: EXPERIMENTAL FEATURES', - lines=[f'// {x.message}' for x in loglines] - )) - - # untranslated expressions - loglines = load_loglines(category=ErrorCategory.SCRIPT, tool_uuid=tool.uuid) - if loglines: - messages = [x.message for x in loglines] - filtered = [] - - # filter to messages where __TOKEN__ still is in the process text - for msg in messages: - token = msg.split(' = ', 1)[0] - if token in process.get_string(): - filtered.append(msg) - - # create block & append - if filtered: - message_items.append(NFMessageBlock( - heading='ERROR: UNTRANSLATED EXPRESSIONS', - lines=filtered - )) - - return message_items - def gen_imports_for_process_file(tool: CommandToolBuilder | CodeTool) -> Optional[NFImportsBlock]: imports: list[str] = [] declarations: list[str] = [] diff --git a/janis_core/translations/nextflow/generate/process/main.py b/janis_core/translations/nextflow/generate/process/main.py index a4f1f1e79..6de1341d5 100644 --- a/janis_core/translations/nextflow/generate/process/main.py +++ b/janis_core/translations/nextflow/generate/process/main.py @@ -2,7 +2,7 @@ from typing import Any from janis_core import settings -from janis_core import CommandTool, PythonTool, Workflow +from janis_core import CommandToolBuilder, PythonTool, WorkflowBuilder from janis_core.types import DataType, Array, Int, Float, Double, Boolean NoneType = type(None) @@ -18,23 +18,23 @@ from ...variables import VariableType -def generate_processes(wf: Workflow) -> dict[str, NFProcess]: - """for each CommandTool | PythonTool in workflow, generate a nextflow process""" +def generate_processes(wf: WorkflowBuilder) -> dict[str, NFProcess]: + """for each CommandToolBuilder | PythonTool in workflow, generate a nextflow process""" process_dict = {} return do_generate_processes(wf, process_dict) -def do_generate_processes(wf: Workflow, process_dict: dict[str, NFProcess]) -> dict[str, NFProcess]: +def do_generate_processes(wf: WorkflowBuilder, process_dict: dict[str, NFProcess]) -> dict[str, NFProcess]: for step in wf.step_nodes.values(): # create process for each cmdtool / pytool if not already done - if isinstance(step.tool, CommandTool) or isinstance(step.tool, PythonTool): + if isinstance(step.tool, CommandToolBuilder) or isinstance(step.tool, PythonTool): tool_id = step.tool.id() if tool_id not in process_dict: process = generate_process(step.tool) process_dict[tool_id] = process # recursively do for subworkflows - elif isinstance(step.tool, Workflow): + elif isinstance(step.tool, WorkflowBuilder): process_dict = do_generate_processes(step.tool, process_dict) else: @@ -42,15 +42,15 @@ def do_generate_processes(wf: Workflow, process_dict: dict[str, NFProcess]) -> d return process_dict -def generate_process(tool: CommandTool | PythonTool) -> NFProcess: - if isinstance(tool, CommandTool): +def generate_process(tool: CommandToolBuilder | PythonTool) -> NFProcess: + if isinstance(tool, CommandToolBuilder): return generate_process_cmdtool(tool) elif isinstance(tool, PythonTool): # type: ignore return generate_process_pythontool(tool) else: raise RuntimeError -def generate_process_cmdtool(tool: CommandTool) -> NFProcess: +def generate_process_cmdtool(tool: CommandToolBuilder) -> NFProcess: generator = CmdToolProcessGenerator(tool) return generator.generate() @@ -62,7 +62,7 @@ def generate_process_pythontool(tool: PythonTool) -> NFProcess: # helper class class CmdToolProcessGenerator: - def __init__(self, tool: CommandTool) -> None: + def __init__(self, tool: CommandToolBuilder) -> None: self.tool = tool self.vmanager = init_variable_manager_for_task(self.tool) diff --git a/janis_core/translations/nextflow/generate/process/script/prescript.py b/janis_core/translations/nextflow/generate/process/script/prescript.py index 6e2aa4b01..9967901ef 100644 --- a/janis_core/translations/nextflow/generate/process/script/prescript.py +++ b/janis_core/translations/nextflow/generate/process/script/prescript.py @@ -26,6 +26,11 @@ NULL_PATH = 'null' +""" +prescript should only handle ternary logic (default or optional) + +""" + def gen_prescript_lines(tool: CommandToolBuilder, vmanager: VariableManager) -> list[str]: lines: list[str] = [] @@ -179,7 +184,7 @@ def format(self) -> None: self.prescript.append(line) def join_declaration(self) -> str: - new_varname = f'{naming.process.generic(self.tinput)}_joined' + new_varname = f'{naming.process.generic(self.tinput)}' self.update_variable(new_varname) if self.attributes.optional or self.attributes.default: return self.join_declaration_optional() diff --git a/janis_core/translations/nextflow/main.py b/janis_core/translations/nextflow/main.py index ce57aff3c..bff5c0136 100644 --- a/janis_core/translations/nextflow/main.py +++ b/janis_core/translations/nextflow/main.py @@ -21,7 +21,7 @@ # from .generate.files import generate_files from .generate.files import generate_file_process from .generate.files import generate_file_workflow - +from .casefmt import to_case from . import generate from . import preprocessing @@ -152,91 +152,6 @@ def build_resources_file(self, entity: WorkflowBuilder | CommandToolBuilder | Co """ self.resources_file = None - def build_helper_files(self, tool: Tool) -> dict[str, str]: - """ - Generate a dictionary of helper files to run Nextflow. - Key of the dictionary is the filename, the value is the file content - - :param tool: - :type tool: - :return: - :rtype: - """ - code_files = self.gen_python_code_files(tool) - template_files = self.gen_template_files(tool) - helpers = template_files | code_files - return helpers - - def gen_python_code_files(self, tool: Tool) -> dict[str, str]: - # Python files for Python code tools - files: dict[str, str] = {} - - if isinstance(tool, PythonTool): - # helpers["__init__.py"] = "" - #helpers[f"{tool.versioned_id()}.py"] = self.gen_python_script(tool) - subdir = settings.translate.nextflow.TEMPLATES_OUTDIR - filename = f'{tool.id()}.py' - filepath = os.path.join(subdir, filename) - files[filepath] = tool.prepared_script(SupportedTranslation.NEXTFLOW) - - elif isinstance(tool, WorkflowBase): - for step in tool.step_nodes.values(): - step_code_files = self.gen_python_code_files(step.tool) - files = files | step_code_files # merge dicts - - return files - - def gen_template_files(self, tool: Tool) -> dict[str, str]: - # files from tool.files_to_create - files: dict[str, str] = {} - - if isinstance(tool, CommandToolBuilder): - if tool.files_to_create(): - for name, contents in tool.files_to_create().items(): - if not isinstance(name, str): - # If name is a File or Directory, the entryname field overrides the value of basename of the File or Directory object - raise NotImplementedError() - print() - - if isinstance(contents, str): - assert(not name.startswith('unnamed_')) - if '<js>' in contents: - # ignore, print error message for user - raise NotImplementedError() - pass - else: - # create file - path = f'{settings.translate.nextflow.TEMPLATES_OUTDIR}/{name}' - files[path] = contents - - elif isinstance(contents, InputSelector): - tinput_name = contents.input_to_select - tinput = tool.inputs_map()[tinput_name] - if isinstance(tinput.intype, File | Directory): - raise NotImplementedError() - print('ignored staging File into process') - else: - raise NotImplementedError() - print('ignored staging String into process') - # # js evaluates to a file: add referenced file to output directory - # if name.startswith('unnamed_'): - # # dont override filename - # pass - # else: - # # override filename - # pass - # print() - - else: - raise NotImplementedError - - elif isinstance(tool, WorkflowBase): - for step in tool.step_nodes.values(): - step_template_files = self.gen_template_files(step.tool) - files = files | step_template_files # merge dicts - - return files - @classmethod def unwrap_expression(cls, expression: Any) -> Any: pass @@ -292,7 +207,8 @@ def workflow_filename(workflow: WorkflowBuilder, is_main: Optional[bool]=False) """ if is_main: return settings.translate.nextflow.MAIN_WORKFLOW_NAME - return workflow.id() + ".nf" + basename = to_case(workflow.id(), settings.translate.nextflow.NF_FILE_CASE) + return basename + ".nf" @staticmethod def inputs_filename(workflow: Workflow) -> str: @@ -308,12 +224,9 @@ def inputs_filename(workflow: Workflow) -> str: @staticmethod def tool_filename(tool: str | Tool) -> str: - prefix: str = '' - if isinstance(tool, Tool): - prefix = tool.id() - else: - prefix = tool - return prefix + ".nf" + toolname = tool if isinstance(tool, str) else tool.id() + basename = to_case(toolname, settings.translate.nextflow.NF_FILE_CASE) + return basename + ".nf" @staticmethod def resources_filename(workflow: Workflow) -> str: diff --git a/janis_core/translations/nextflow/preprocessing/task_inputs/populator.py b/janis_core/translations/nextflow/preprocessing/task_inputs/populator.py index c53e773f1..a23651ec2 100644 --- a/janis_core/translations/nextflow/preprocessing/task_inputs/populator.py +++ b/janis_core/translations/nextflow/preprocessing/task_inputs/populator.py @@ -24,7 +24,7 @@ def populate_code_file(tool: PythonTool) -> None: if not isinstance(tool, PythonTool): return - path = f'{settings.translate.nextflow.BASE_OUTDIR}{os.sep}{settings.translate.nextflow.TEMPLATES_OUTDIR}{os.sep}{tool.id()}.py' + path = f'{settings.translate.nextflow.TEMPLATES_OUTDIR}{os.sep}{tool.id()}.py' params.add( task_id=tool.id(), tinput_id=settings.translate.nextflow.PYTHON_CODE_FILE, @@ -50,7 +50,7 @@ def populate_scripts(tool: CommandToolBuilder) -> None: for filename in tool._files_to_create.keys(): # type: ignore # get the file path to where the script will appear in the translation assert(isinstance(filename, str)) - path = os.path.join(settings.translate.nextflow.BASE_OUTDIR, settings.translate.nextflow.TEMPLATES_OUTDIR, filename) + path = os.path.join(settings.translate.nextflow.TEMPLATES_OUTDIR, filename) # generate a name for this input if len(tool._files_to_create) == 1: # type: ignore diff --git a/janis_core/translations/translationbase.py b/janis_core/translations/translationbase.py index 43c2e1193..34f5ab601 100644 --- a/janis_core/translations/translationbase.py +++ b/janis_core/translations/translationbase.py @@ -1,29 +1,38 @@ + import os from abc import ABC, abstractmethod -from typing import Tuple, List, Dict, Any, Optional +from typing import Tuple, Any, Optional import functools -import shutil +from janis_core import ( + CommandToolBuilder, + CodeTool, + WorkflowBuilder, + Tool, + InputSelector, + Selector, + SupportedTranslation, + ToolInput, + ToolType, + File, + Directory, + Int, +) -from path import Path -from janis_core import CommandToolBuilder, CodeTool, WorkflowBuilder, Tool -from janis_core.code.codetool import CodeTool -from janis_core.tool.commandtool import ToolInput -from janis_core.tool.tool import ToolType from janis_core.translation_deps.exportpath import ExportPathKeywords -from janis_core.types.common_data_types import Int from janis_core.utils.logger import Logger -from janis_core.operators.selectors import Selector from janis_core import settings -from .todisk import write_tool_to_console -from .todisk import write_tool_to_disk -from .todisk import write_workflow_to_console -from .todisk import write_workflow_to_disk + +from janis_core.messages import inject_messages_tool +from janis_core.messages import inject_messages_workflow +from .common.todisk import write_tool_to_console +from .common.todisk import write_tool_to_disk +from .common.todisk import write_workflow_to_console +from .common.todisk import write_workflow_to_disk class TranslationError(Exception): def __init__(self, message: str, inner: Exception): super().__init__(message, inner) - # self.inner = inner kwargstoignore = {"container_override"} @@ -178,21 +187,24 @@ def translate_workflow(self, wf: WorkflowBuilder) -> Any: internal, translated = self.main fn_main = self.workflow_filename(wf, is_main=True) str_main = self.stringify_translated_workflow(internal, translated) + str_main = inject_messages_workflow(internal, str_main) tup_main = (fn_main, str_main) # stringify tools (commandtools, pythontools) tup_tools = [] for internal, translated in self.tools: filename = self.tool_filename(internal) - str_trans = self.stringify_translated_tool(internal, translated) - tup_tools.append((filename, str_trans)) + str_tool = self.stringify_translated_tool(internal, translated) + str_tool = inject_messages_tool(internal, str_tool) + tup_tools.append((filename, str_tool)) # stringify subworkflows tup_subworkflows = [] for internal, translated in self.subworkflows: filename = self.workflow_filename(internal) - str_trans = self.stringify_translated_workflow(internal, translated) - tup_subworkflows.append((filename, str_trans)) + str_subwf = self.stringify_translated_workflow(internal, translated) + str_subwf = inject_messages_workflow(internal, str_subwf) + tup_subworkflows.append((filename, str_subwf)) # stringify input config file fn_inputs = self.inputs_filename(wf) @@ -221,7 +233,7 @@ def translate_workflow(self, wf: WorkflowBuilder) -> Any: self.OUTDIR_STRUCTURE ) - return tup_main[1], tup_inputs[1], tup_tools + return tup_main[1], tup_inputs[1], tup_subworkflows, tup_tools def translate_tool(self, internal: CommandToolBuilder) -> str: """ @@ -239,14 +251,15 @@ def translate_tool(self, internal: CommandToolBuilder) -> str: # stringify output model str_tool = self.stringify_translated_tool(internal, translated) + str_tool = inject_messages_tool(internal, str_tool) # write to stdout / disk if settings.translate.TO_CONSOLE: write_tool_to_console(str_tool) if settings.translate.TO_DISK: filename = self.tool_filename(internal) - helpers = self.build_helper_files(internal) - write_tool_to_disk(str_tool, filename, helpers) + self.build_helper_files(internal) + write_tool_to_disk(str_tool, filename, self.helper_files) return str_tool @@ -260,10 +273,11 @@ def translate_code_tool(self, internal: CodeTool): Returns string purely for testing purposes """ translated = self.translate_code_tool_internal(internal) - trans_str = self.stringify_translated_tool(internal, translated) + str_tool = self.stringify_translated_tool(internal, translated) + str_tool = inject_messages_tool(internal, str_tool) if settings.translate.TO_CONSOLE: - print(trans_str) + print(str_tool) if settings.translate.TO_DISK: d = ExportPathKeywords.resolve( @@ -274,14 +288,14 @@ def translate_code_tool(self, internal: CodeTool): fn_tool = self.tool_filename(internal) with open(os.path.join(d, fn_tool), "w+") as wf: Logger.log(f"Writing {fn_tool} to disk") - wf.write(trans_str) + wf.write(str_tool) Logger.log(f"Wrote {fn_tool} to disk") - return trans_str + return str_tool # Resource overrides?? what for??? @staticmethod - def get_resource_override_inputs() -> List[ToolInput]: + def get_resource_override_inputs() -> list[ToolInput]: """not really sure what this does / why is needed""" return [ ToolInput("runtime_cpu", Int(optional=True)), # number of CPUs @@ -303,6 +317,92 @@ def get_container_override_for_tool(tool: CommandToolBuilder | CodeTool): elif "*" in container_override: return container_override["*"] + def build_helper_files(self, tool: CommandToolBuilder | CodeTool | WorkflowBuilder) -> None: + """ + Generate a dictionary of helper files to run Nextflow. + Key of the dictionary is the filename, the value is the file content + + :param tool: + :type tool: + :return: + :rtype: + """ + code_files = self._gen_python_code_files(tool) + template_files = self._gen_template_files(tool) + helpers = template_files | code_files + helpers = [(k, v) for k, v in helpers.items()] + self.helper_files = helpers + + def _gen_python_code_files(self, tool: CommandToolBuilder | CodeTool | WorkflowBuilder) -> dict[str, str]: + # Python files for Python code tools + files: dict[str, str] = {} + + if isinstance(tool, CodeTool): + # helpers["__init__.py"] = "" + #helpers[f"{tool.versioned_id()}.py"] = self.gen_python_script(tool) + filename = f'{tool.id()}.py' + + st = SupportedTranslation.from_str(self.name) + contents = tool.prepared_script(st) + assert contents is not None + files[filename] = contents + + elif isinstance(tool, WorkflowBuilder): + for step in tool.step_nodes.values(): + step_code_files = self._gen_python_code_files(step.tool) + files = files | step_code_files # merge dicts + + return files + + def _gen_template_files(self, tool: CommandToolBuilder | CodeTool | WorkflowBuilder) -> dict[str, str]: + # files from tool.files_to_create + files: dict[str, str] = {} + + if isinstance(tool, CommandToolBuilder): + if tool.files_to_create(): + for name, contents in tool.files_to_create().items(): + if not isinstance(name, str): + # If name is a File or Directory, the entryname field overrides the value of basename of the File or Directory object + raise NotImplementedError() + + if isinstance(contents, str): + assert(not name.startswith('unnamed_')) + if '<js>' in contents: + # ignore, print error message for user + raise NotImplementedError() + pass + else: + # create file + files[name] = contents + + elif isinstance(contents, InputSelector): + tinput_name = contents.input_to_select + tinput = tool.inputs_map()[tinput_name] + if isinstance(tinput.intype, File | Directory): + raise NotImplementedError() + print('ignored staging File into process') + else: + raise NotImplementedError() + print('ignored staging String into process') + # # js evaluates to a file: add referenced file to output directory + # if name.startswith('unnamed_'): + # # dont override filename + # pass + # else: + # # override filename + # pass + # print() + + else: + raise NotImplementedError + + elif isinstance(tool, WorkflowBuilder): + for step in tool.step_nodes.values(): + step_template_files = self._gen_template_files(step.tool) + files = files | step_template_files # merge dicts + + return files + ### JANIS -> OUTPUT MODEL MAPPING ### # everything below this point is abstract. @@ -439,10 +539,6 @@ def _build_resources_dict( return new_inputs - def build_helper_files(self, tool: CommandToolBuilder | CodeTool | WorkflowBuilder) -> Dict[str, str]: - """TODO this should be abstract""" - return {} - @classmethod @abstractmethod def unwrap_expression(cls, expression: Any) -> Any: diff --git a/janis_core/translations/wdl/main.py b/janis_core/translations/wdl/main.py index cf5337b51..98d52b6f4 100644 --- a/janis_core/translations/wdl/main.py +++ b/janis_core/translations/wdl/main.py @@ -1472,7 +1472,7 @@ def translate_step_node( # fieldName: sourceCall.Output inputs_details: dict[str, dict[str, Any]] = {} - if isinstance(step.tool, Workflow): + if isinstance(step.tool, WorkflowBuilder): input_positions = get_workflow_input_positions(list(step.tool.input_nodes.values())) elif isinstance(step.tool, CommandToolBuilder): input_positions = get_tool_input_positions_cmdtool(step.tool.inputs()) @@ -1592,7 +1592,7 @@ def translate_step_node( # get tool input to derive additional information. # used to render comments. - if isinstance(step.tool, Workflow): + if isinstance(step.tool, WorkflowBuilder): tool_input = [x for x in step.tool.input_nodes.values() if x.id() == k][0] else: tool_input = [x for x in step.tool.inputs() if x.id() == k][0] @@ -1632,7 +1632,8 @@ def translate_step_node( for key, val in resource_overrides.items(): inputs_details[key] = {'value': val} - messages = load_loglines(step.id()) # uuid is currently using janis-core identifiers + # messages = load_loglines(step.id()) # uuid is currently using janis-core identifiers + messages = [] render_comments = settings.translate.RENDER_COMMENTS call = wdl.WorkflowCall(step_identifier, step.id(), inputs_details, messages, render_comments) diff --git a/janis_core/workflow/workflow.py b/janis_core/workflow/workflow.py index dc2724175..ea211c8d3 100644 --- a/janis_core/workflow/workflow.py +++ b/janis_core/workflow/workflow.py @@ -5,7 +5,7 @@ from typing import List, Union, Optional, Dict, Tuple, Any, Set, Iterable, Type from uuid import uuid4 -from janis_core.messages import log_error +from janis_core.messages import log_message from janis_core.messages import ErrorCategory from janis_core import settings @@ -756,13 +756,13 @@ def step( if any(f not in ins for f in fields): if settings.graph.ALLOW_UNKNOWN_SCATTER_FIELDS: msg = f"This task is supposed to run in parallel across {fields}, but some of these are not task inputs." - log_error(self.uuid, msg, ErrorCategory.PLUMBING) + log_message(self.uuid, msg, ErrorCategory.PLUMBING) else: # if there is a field not in the input map, we have a problem extra_keys = ", ".join(f"'{f}'" for f in (fields - ins)) msg = f"Couldn't scatter the field(s) {extra_keys} for step '{identifier}' " +\ f"as they are not inputs to the tool '{tool.id()}'" - log_error(self.uuid, msg, ErrorCategory.FATAL) + log_message(self.uuid, msg, ErrorCategory.FATAL) raise RuntimeError(msg) tool.workflow = self diff --git a/notes.txt b/notes.txt index 4c8259ffe..771b145ff 100644 --- a/notes.txt +++ b/notes.txt @@ -1,4 +1,45 @@ + +-------------- +--- GENERAL --- +--------------- +DONE (to test) +- messages NXF output +- messages CWl ingest +- WDL runtime duration removed +- NXF tool translate wrap in workflow to create config etc +- CWL ingest edam formats +- NEXT translate reflects new TranslatorBase interface + +DOING +- messages CWl output (tool, workflow) +- messages WDL output (tool, workflow) +- messages NXF output (workflow) +- messages WDL ingest +- messages Galaxy ingest +- make nextflow translate prescript & script better + - prescript should handle getting the right values: + - input default def input == params.NULL ? "default value" : input + - input optionality def input == params.NULL ? "" : input + - secondaries def in_bam_bai = in_bam_bai[0] + - secondary arrays def bam_bai_arr = get_primary_files(bam_bai_arr_flat, 2) + - filepair arrays def filepair_arr = get_primary_files(filepair_arr_flat, 2) + - script should handle everything else: + - prefix + - prefixeach + - arr joins for non-file (generic) input types + - stringformatters + - Operators in general +- WDL rename variables to avoid keywords +- WDL rename variables with 2+ uses (eg "bam" input & "bam" output not allowed) +- wdl parser +- wdl remove implied resources +- CWL parse self exprs +- CWL translate_workflow_to_all_in_one()?? +- bugs + - cwl inputs config file boofed for one test + + -------------------- --- ARCHITECTURE --- -------------------- @@ -191,37 +232,7 @@ CWL -> NXF hard ---------------- ---- GENERAL --- ---------------- -DONE (to test) -- messages NXF output -- messages CWl ingest -- WDL runtime duration removed -- NXF tool translate wrap in workflow to create config etc -- CWL ingest edam formats - -DOING -- CWL translate_workflow_to_all_in_one()?? -- make nextflow translate reflect new TranslatorBase interface [partially done] - - -- messages CWl output (tool, workflow) -- messages WDL output (tool, workflow) -- messages NXF output (workflow) -- messages WDL ingest -- messages Galaxy ingest -- modify CWL output for new CWL expression parsing -- modify NXF output for new CWL expression parsing -- modify WDL output for new CWL expression parsing -- NXF If operator -> move to prescript -- WDL rename variables to avoid keywords -- WDL rename variables with 2+ uses (eg "bam" input & "bam" output not allowed) -- bugfixes -- wdl parser -- wdl remove implied resources -- CWL parse self exprs - +- ------------------ --- CWL INGEST --- From 022a26b532e91ecb415f6b3df06fe5dcd02d6478 Mon Sep 17 00:00:00 2001 From: Grace Hall <graceavahall@gmail.com> Date: Fri, 1 Dec 2023 22:48:46 +1100 Subject: [PATCH 20/32] messaging module completed. TODO: - WDL ingest messages - Galaxy ingest messages --- janis_core/ingestion/cwl/expressions/main.py | 2 +- janis_core/ingestion/cwl/loading.py | 2 +- janis_core/ingestion/cwl/main.py | 32 +- janis_core/ingestion/cwl/parsing/workflow.py | 41 +- janis_core/ingestion/wdl/main.py | 68 +-- janis_core/messages/__init__.py | 6 +- janis_core/messages/enums.py | 30 +- janis_core/messages/gather.py | 125 ++++++ janis_core/messages/inject.py | 396 ++++++++++-------- janis_core/messages/logfile.py | 18 +- janis_core/messages/main.py | 16 +- janis_core/messages/owner.py | 73 ++++ janis_core/settings/messages.py | 4 +- janis_core/tests/data/wdl/TrimAdapters.wdl | 63 +++ janis_core/tests/test_ingestion_cwl.py | 32 +- janis_core/tests/test_janis_translate.py | 392 +++++++++++++---- janis_core/tests/testtools/__init__.py | 1 + .../tests/testtools/misc_commandtools.py | 22 + .../common/preprocessing/builders/main.py | 6 +- janis_core/translations/common/trace.py | 15 +- janis_core/translations/cwl/main.py | 2 +- janis_core/translations/translationbase.py | 13 +- notes.txt | 42 +- temp.py | 47 +++ 24 files changed, 1052 insertions(+), 396 deletions(-) create mode 100644 janis_core/messages/gather.py create mode 100644 janis_core/messages/owner.py create mode 100644 janis_core/tests/data/wdl/TrimAdapters.wdl create mode 100644 temp.py diff --git a/janis_core/ingestion/cwl/expressions/main.py b/janis_core/ingestion/cwl/expressions/main.py index 303f780e2..cab14378e 100644 --- a/janis_core/ingestion/cwl/expressions/main.py +++ b/janis_core/ingestion/cwl/expressions/main.py @@ -68,7 +68,7 @@ def parse_explicit_expr( # this is shit return None, False - loglines = load_loglines(category=ErrorCategory.SCRIPTING, tool_uuid=tool_uuid) + loglines = load_loglines(category=ErrorCategory.SCRIPTING) token = get_token_for_expr(expr, loglines) if token: return token, False diff --git a/janis_core/ingestion/cwl/loading.py b/janis_core/ingestion/cwl/loading.py index 873b153eb..50f1f19c3 100644 --- a/janis_core/ingestion/cwl/loading.py +++ b/janis_core/ingestion/cwl/loading.py @@ -27,7 +27,7 @@ def load_cwl_version(doc: str) -> str: raise Exception(f"Couldn't find cwlVersion in tool {doc}") else: msg = f'no cwl version was specified in {doc}. fell back to cwl v1.2 for ingestion.' - log_message(entity_uuid='loading error', msg=msg, category=ErrorCategory.METADATA, subsection=None) + log_message(entity_uuid=None, msg=msg, category=ErrorCategory.METADATA) return DEFAULT_PARSER_VERSION # return version diff --git a/janis_core/ingestion/cwl/main.py b/janis_core/ingestion/cwl/main.py index 3a5b0c67c..673fd90a0 100755 --- a/janis_core/ingestion/cwl/main.py +++ b/janis_core/ingestion/cwl/main.py @@ -5,7 +5,6 @@ from typing import Any, Optional import janis_core as j - DEFAULT_PARSER_VERSION = "v1.2" from cwl_utils.parser.cwl_v1_0 import CommandLineTool as CommandLineTool_1_0 from cwl_utils.parser.cwl_v1_1 import CommandLineTool as CommandLineTool_1_1 @@ -97,16 +96,16 @@ def ingest_workflow(self, workflow: Any): self.ingest_workflow_input(wf, inp) # first step ingest pass - for step in workflow.steps: - self.ingest_workflow_step(wf, step) + for cwl_step in workflow.steps: + j_step = self.ingest_workflow_step(wf, cwl_step) # second step ingest pass - for step in workflow.steps: - self.ingest_workflow_step_attributes(wf, step) + for cwl_step in workflow.steps: + self.ingest_workflow_step_attributes(wf, j_step, cwl_step) # third step ingest pass - for step in workflow.steps: - self.ingest_workflow_step_inputs(wf, step) + for cwl_step in workflow.steps: + self.ingest_workflow_step_inputs(wf, j_step, cwl_step) for out in workflow.outputs: self.ingest_workflow_output(wf, out) @@ -114,15 +113,14 @@ def ingest_workflow(self, workflow: Any): return wf def ingest_workflow_input(self, wf: j.Workflow, inp: Any) -> j.InputNodeSelector: - parser = WorkflowInputParser(cwl_utils=self.cwl_utils, entity=inp, wf=wf, tool_uuid=wf.uuid) + parser = WorkflowInputParser(cwl_utils=self.cwl_utils, entity=inp, wf=wf, entity_uuid=wf.uuid) return parser.parse() def ingest_workflow_output(self, wf: j.Workflow, out: Any) -> OutputNode: - parser = WorkflowOutputParser(cwl_utils=self.cwl_utils, entity=out, wf=wf, tool_uuid=wf.uuid) + parser = WorkflowOutputParser(cwl_utils=self.cwl_utils, entity=out, wf=wf, entity_uuid=wf.uuid) return parser.parse() def ingest_workflow_step(self, wf: j.Workflow, cwlstp: Any) -> StepNode: - tool_uuid = wf.uuid # TODO error handling step_identifier = get_id_entity(cwlstp.id) if isinstance(cwlstp.run, (self.cwl_utils.CommandLineTool, self.cwl_utils.Workflow)): @@ -140,11 +138,8 @@ def ingest_workflow_step(self, wf: j.Workflow, cwlstp: Any) -> StepNode: ignore_missing=True ) - def ingest_workflow_step_attributes(self, wf: j.Workflow, cwlstp: Any) -> None: - step_identifier = get_id_entity(cwlstp.id) - jstep = wf.step_nodes[step_identifier] - - parser = WorkflowStepAttributesParser(cwl_utils=self.cwl_utils, entity=cwlstp, wf=wf, tool_uuid=wf.uuid) + def ingest_workflow_step_attributes(self, wf: j.Workflow, j_step: Any, cwlstp: Any) -> None: + parser = WorkflowStepAttributesParser(cwl_utils=self.cwl_utils, entity=cwlstp, wf=wf, entity_uuid=j_step.uuid) parser.parse() if parser.scatter is not None: @@ -154,12 +149,9 @@ def ingest_workflow_step_attributes(self, wf: j.Workflow, cwlstp: Any) -> None: if parser.when is not None: jstep.when = parser.when - def ingest_workflow_step_inputs(self, wf: j.Workflow, cwlstp: Any) -> None: - parser = WorkflowStepInputsParser(cwl_utils=self.cwl_utils, entity=cwlstp, wf=wf, tool_uuid=wf.uuid) + def ingest_workflow_step_inputs(self, wf: j.Workflow, j_step: Any, cwlstp: Any) -> None: + parser = WorkflowStepInputsParser(cwl_utils=self.cwl_utils, entity=cwlstp, wf=wf, entity_uuid=j_step.uuid) inputs_dict = parser.parse() - - step_identifier = get_id_entity(cwlstp.id) - jstep = wf.step_nodes[step_identifier] jstep.tool.connections = inputs_dict add_step_edges_to_graph(jstep, wf) self.ingest_workflow_step_inputs_pickvalue(jstep, cwlstp) diff --git a/janis_core/ingestion/cwl/parsing/workflow.py b/janis_core/ingestion/cwl/parsing/workflow.py index d0fc4dae5..b381d4941 100644 --- a/janis_core/ingestion/cwl/parsing/workflow.py +++ b/janis_core/ingestion/cwl/parsing/workflow.py @@ -28,7 +28,7 @@ class WorkflowEntityParser(ABC): cwl_utils: Any entity: Any wf: Workflow - tool_uuid: str + entity_uuid: str success: bool = False def parse(self) -> Any: @@ -62,10 +62,6 @@ class WorkflowInputParser(WorkflowEntityParser): """parses a cwl WorkflowInputParameter to add an input to the janis Workflow""" def fallback(self) -> InputNodeSelector: - # log message - msg = f'error parsing {get_id_entity(self.entity.id)}. returned generic optional File input as fallback' - log_message(self.tool_uuid, msg, ErrorCategory.FALLBACKS, subsection='inputs') - # fallback global parsing_error_count parsing_error_count += 1 @@ -75,11 +71,16 @@ def fallback(self) -> InputNodeSelector: identifier=identifier, datatype=File(optional=True), ) + + # log message + msg = f'error parsing {get_id_entity(self.entity.id)}. returned generic optional File input as fallback' + log_message(inp.input_node.uuid, msg, ErrorCategory.FALLBACKS) + return inp def do_parse(self) -> InputNodeSelector: identifier = get_id_entity(self.entity.id) - dtype = ingest_cwl_type(self.entity.type, self.cwl_utils, self.entity, self.tool_uuid, secondaries=self.entity.secondaryFiles) + dtype = ingest_cwl_type(self.entity.type, self.cwl_utils, self.entity, self.entity_uuid, secondaries=self.entity.secondaryFiles) inp = self.wf.input( identifier=identifier, @@ -96,10 +97,6 @@ class WorkflowOutputParser(WorkflowEntityParser): """parses a cwl WorkflowInputParameter to add an input to the janis Workflow""" def fallback(self) -> OutputNode: - # log message - msg = f'error parsing {get_id_entity(self.entity.id)}. returned generic File output (and corresponding input) as fallback' - log_message(self.tool_uuid, msg, ErrorCategory.FALLBACKS, subsection='outputs') - # fallback global parsing_error_count parsing_error_count += 1 @@ -113,6 +110,11 @@ def fallback(self) -> OutputNode: datatype=File, source=inp ) + + # log message + msg = f'error parsing {get_id_entity(self.entity.id)}. returned generic File output (and corresponding input) as fallback' + log_message(out.uuid, msg, ErrorCategory.FALLBACKS) + return out def do_parse(self) -> OutputNode: @@ -129,7 +131,7 @@ def do_parse(self) -> OutputNode: else: source = janis_sources - dtype = ingest_cwl_type(self.entity.type, self.cwl_utils, self.entity, self.tool_uuid, secondaries=self.entity.secondaryFiles) + dtype = ingest_cwl_type(self.entity.type, self.cwl_utils, self.entity, self.entity_uuid, secondaries=self.entity.secondaryFiles) out = self.wf.output( identifier=out_identifier, @@ -165,23 +167,22 @@ class WorkflowStepInputsParser(WorkflowEntityParser): def fallback(self) -> dict[str, Any]: # log message - step_identifier = get_id_entity(self.entity.id) msg = f"error parsing step inputs" - log_message(self.tool_uuid, msg, ErrorCategory.PLUMBING, subsection=step_identifier) + log_message(self.entity_uuid, msg, ErrorCategory.PLUMBING) # fallback return {} def do_parse(self) -> dict[str, Any]: step_identifier = get_id_entity(self.entity.id) - log_message(self.tool_uuid, 'this is a test', ErrorCategory.FALLBACKS, subsection=step_identifier) + log_message(self.entity_uuid, 'this is a test', ErrorCategory.FALLBACKS) # valid_step_inputs = self.get_valid_step_inputs(self.entity, jstep) inputs_dict = {} for inp in self.entity.in_: inp_identifier = get_id_entity(inp.id) - parser = WorkflowStepInputParser(cwl_utils=self.cwl_utils, entity=inp, wf=self.wf, tool_uuid=self.wf.uuid) + parser = WorkflowStepInputParser(cwl_utils=self.cwl_utils, entity=inp, wf=self.wf, entity_uuid=self.wf.uuid) parser.step_name = step_identifier source = parser.parse() inputs_dict[inp_identifier] = source @@ -212,7 +213,7 @@ def fallback(self) -> Optional[InputNode | StepOutputSelector]: # log message identifier = get_id_entity(self.entity.id) msg = f"error parsing data source for '{identifier}'. Returned None as fallback." - log_message(self.tool_uuid, msg, ErrorCategory.PLUMBING, subsection=f'step:{self.step_name}') + log_message(self.entity_uuid, msg, ErrorCategory.PLUMBING) # fallback return None @@ -292,7 +293,7 @@ def fallback(self) -> None: step_identifier = get_id_entity(self.entity.id) jstep = self.wf.step_nodes[step_identifier] msg = 'error parsing step modifiers (scatter | conditional execution). ignored as fallback' - log_message(self.tool_uuid, msg, ErrorCategory.PLUMBING, subsection=f'step:{jstep.id()}') + log_message(self.entity_uuid, msg, ErrorCategory.PLUMBING) # fallback return None @@ -303,7 +304,7 @@ def do_parse(self) -> None: def parse_when(self) -> Any: if hasattr(self.entity, 'when') and self.entity.when is not None: - res, success = parse_expression(self.entity.when, self.tool_uuid) + res, success = parse_expression(self.entity.when, self.entity_uuid) return res return None @@ -338,7 +339,7 @@ def ingest_scatter_method(self, scatter_method: Optional[str]) -> Optional[Scatt elif scatter_method == "nested_crossproduct": msg = 'task parallelisation method was nested crossproduct, but Janis only supports flat crossproduct. Used flat crossproduct as fallback.' - log_message(self.tool_uuid, msg, ErrorCategory.PLUMBING, subsection=f'step:{jstep.id()}') + log_message(self.entity_uuid, msg, ErrorCategory.PLUMBING) return ScatterMethod.cross elif scatter_method == "flat_crossproduct": @@ -346,4 +347,4 @@ def ingest_scatter_method(self, scatter_method: Optional[str]) -> Optional[Scatt else: msg = f"Unsupported scatter method '{scatter_method}'. Used flat crossproduct as fallback." - log_message(self.tool_uuid, msg, ErrorCategory.PLUMBING, subsection=f'step:{jstep.id()}') \ No newline at end of file + log_message(self.entity_uuid, msg, ErrorCategory.PLUMBING) \ No newline at end of file diff --git a/janis_core/ingestion/wdl/main.py b/janis_core/ingestion/wdl/main.py index 3fadc7f99..c678ae56b 100755 --- a/janis_core/ingestion/wdl/main.py +++ b/janis_core/ingestion/wdl/main.py @@ -52,6 +52,7 @@ def from_doc(doc: str, base_uri=None): return tasks[0] def from_loaded_object(self, obj: WDL.SourceNode): + """Main ingest entry point""" if isinstance(obj, WDL.Task): return self.from_loaded_task(obj) elif isinstance(obj, WDL.Workflow): @@ -60,6 +61,7 @@ def from_loaded_object(self, obj: WDL.SourceNode): raise RuntimeError(f"Unhandled WDL object type: {type(obj)}") def from_loaded_workflow(self, obj: WDL.Workflow): + """Workflow ingest entry point""" wf = j.WorkflowBuilder(identifier=obj.name) for inp in obj.inputs: @@ -240,34 +242,52 @@ def parse_disk_requirement(self, value): raise Exception(f"Couldn't recognise memory requirement '{value}'") def from_loaded_task(self, obj: WDL.Task): - rt = obj.runtime - translated_script = self.translate_expr(obj.command) - inputs = obj.inputs - - cpus = self.translate_expr(rt.get("cpu")) - # if cpus is not None and not isinstance(cpus, j.Selector) and not isinstance(cpus, (int, float)): - if isinstance(cpus, str): - cpus = int(cpus) - - c = j.CommandToolBuilder( + """Tool ingest entry point""" + # TODO everything here needs error handling & logging. + # TODO structure like cwl parsing, except for command (should parse all base_command, inputs, outputs) + cmdtool = j.CommandToolBuilder( tool=obj.name, - base_command=["sh", "script.sh"], - container=self.container_from_runtime(rt, inputs=inputs), - version="DEV", - inputs=[ - self.parse_command_tool_input(i) - for i in obj.inputs - if not i.name.startswith("runtime_") - ], - outputs=[self.parse_command_tool_output(o) for o in obj.outputs], - files_to_create={"script.sh": translated_script}, - memory=self.parse_memory_requirement(rt.get("memory")), - cpus=cpus, - disk=self.parse_disk_requirement(rt.get("disks")), + version='DEV', + container='ubuntu:latest', + base_command=None, + inputs=[], + outputs=[] ) + # TODO something like this: + # parser = CommandParser() + # cmdtool._inputs, cmdtool.base_command, cmdtool._outputs = parser.parse() + + cmdtool._base_command = self.parse_command_tool_base_command(obj) # type: ignore + cmdtool._container = self.container_from_runtime(obj.runtime, inputs=obj.inputs) # type: ignore + + # inputs + for wdl_inp in obj.inputs: + if wdl_inp.name.startswith("runtime_"): + continue + j_inp = self.parse_command_tool_input(wdl_inp) + if j_inp is not None: + cmdtool._inputs.append(j_inp) + + # outputs + for wdl_out in obj.outputs: + j_out = self.parse_command_tool_output(wdl_out) + if j_out is not None: + cmdtool._outputs.append(j_out) + + # files to create + cmdtool._files_to_create = {"script.sh": self.translate_expr(obj.command)} + cmdtool._memory = self.parse_memory_requirement(obj.runtime.get("memory")) + cpus = self.translate_expr(obj.runtime.get("cpu")) + if isinstance(cpus, str): + cpus = int(cpus) + cmdtool._cpus = cpus + cmdtool._disk = self.parse_disk_requirement(obj.runtime.get("disks")) - return c + return cmdtool + def parse_command_tool_base_command(self, obj: WDL.Task) -> list[str]: + return ["sh", "script.sh"] + def translate_expr( self, expr: WDL.Expr.Base, input_selector_getter: Callable[[str], any] = None ) -> Optional[Union[j.Selector, List[j.Selector], int, str, float, bool]]: diff --git a/janis_core/messages/__init__.py b/janis_core/messages/__init__.py index ebbad445f..d116191de 100644 --- a/janis_core/messages/__init__.py +++ b/janis_core/messages/__init__.py @@ -1,11 +1,13 @@ # objects +from .enums import FormatCategory from .enums import ErrorCategory from .logfile import LogFile from .logfile import LogLine # logging functions +# from .owner import get_owner_uuid from .main import configure_logging from .main import info_ingesting_tool from .main import info_ingesting_workflow @@ -13,5 +15,5 @@ # injection functions from .main import load_loglines -from .inject import inject_messages_tool -from .inject import inject_messages_workflow \ No newline at end of file +from .gather import gather_uuids +from .inject import inject_messages \ No newline at end of file diff --git a/janis_core/messages/enums.py b/janis_core/messages/enums.py index 2c6f89f66..d8aa08cac 100644 --- a/janis_core/messages/enums.py +++ b/janis_core/messages/enums.py @@ -1,18 +1,42 @@ -from enum import Enum +from enum import Enum, auto + + +class FormatCategory(Enum): + MAIN = auto() + INPUT = auto() + ARGUMENT = auto() + STEP = auto() + OUTPUT = auto() + + def __str__(self) -> str: + return self.name + + @staticmethod + def from_str(category: str): + if category == "MAIN": + return FormatCategory.MAIN + if category == "INPUT": + return FormatCategory.INPUT + if category == "STEP": + return FormatCategory.STEP + if category == "OUTPUT": + return FormatCategory.OUTPUT + raise ValueError(f"Unknown FormatCategory: {category}") class ErrorCategory(Enum): + FATAL = ('ERROR','FATAL') + FALLBACKS = ('ERROR','FALLBACKS') DATATYPES = ('WARNING','DATATYPES') PLUMBING = ('WARNING','PLUMBING') METADATA = ('WARNING','METADATA') EXPERIMENTAL = ('WARNING','EXPERIMENTAL') - FALLBACKS = ('ERROR','FALLBACKS') SCRIPTING = ('ERROR','SCRIPTING') - FATAL = ('ERROR','FATAL') @staticmethod def from_str(category: str): + # this is awful if category == "DATATYPES": return ErrorCategory.DATATYPES if category == "PLUMBING": diff --git a/janis_core/messages/gather.py b/janis_core/messages/gather.py new file mode 100644 index 000000000..04c4e7898 --- /dev/null +++ b/janis_core/messages/gather.py @@ -0,0 +1,125 @@ + +from __future__ import annotations +from typing import TYPE_CHECKING +if TYPE_CHECKING: + from janis_core import WorkflowBuilder, CommandToolBuilder, CodeTool + from janis_core.workflow.workflow import StepNode + from typing import Any + +from janis_core.tool.tool import ToolType +from .enums import FormatCategory + + +def gather_uuids(entity: WorkflowBuilder | CommandToolBuilder | CodeTool | StepNode) -> dict[str, FormatCategory]: + """ + For this workflow / tool to be rendered, collect the relevant entity uuids + and assign to categories. + + This function enables us to use the messages.log_message(entity.uuid) function + from anywhere** in the codebase. + + When we are ready to render the workflow / tool, we: + - Gather all relevant uuids for this file + - Assign to categories (Tool, ToolInput, Workflow, WorkflowStep etc) + - Pull messages from the logfile for these uuids + [ messages.load_loglines() ] + - Format and inject the messages in the right spot in the file + [ inject_messages_tool() or inject_messages_workflow() ] + + **except anything with CodeTool. If you want to use messages.log_message() for a + CodeTool, + for the following entities: + - CommandTool + - CommandToolBuilder + - ToolArgument + - ToolInput + - ToolOutput + - Workflow + - WorkflowBuilder + - InputNode + - StepNode + - OutputNode + - Edge + - StepTagInput + + **NOTE: If you want to use messages.log_message() for a CodeTool / PythonTool, you must specify + entity_uuid as the CodeTool.uuid rather than a subentity. eg: + + tool = MyPythonTool(PythonTool) + my_input = tool.inputs()[0] + + messages.log_message(tool.uuid, msg='{my_input.id()} is weird') + ^^^^^^^^^ THIS + + messages.log_message(my_input.uuid, msg='{my_input.id()} is weird') + ^^^^^^^^^^^^^ NOT THIS + """ + tracer = EntityUuidTracer() + tracer.trace(entity) + return tracer.uuids_categories + + +class EntityUuidTracer: + """ + Gathers entity uuids for a tool or workflow + """ + def __init__(self) -> None: + self.uuids_categories: dict[str, FormatCategory] = {} + + def trace(self, entity: Any) -> None: + if entity.__class__.__name__ == 'StepNode': + self.trace_step(entity) + elif entity.type() == ToolType.Workflow: + self.trace_workflow(entity) + elif entity.type() == ToolType.CommandTool: + self.trace_tool(entity) + elif entity.type() == ToolType.CodeTool: + self.trace_codetool(entity) + else: + raise NotImplementedError + + def trace_tool(self, entity: CommandToolBuilder) -> None: + self.uuids_categories[entity.uuid] = FormatCategory.MAIN + + inputs = entity.inputs() or [] + args = entity.arguments() or [] + outputs = entity.outputs() or [] + + for inp in inputs: + self.uuids_categories[inp.uuid] = FormatCategory.INPUT + for arg in args: + self.uuids_categories[arg.uuid] = FormatCategory.ARGUMENT + for out in outputs: + self.uuids_categories[out.uuid] = FormatCategory.OUTPUT + + def trace_codetool(self, entity: CodeTool) -> None: + self.uuids_categories[entity.uuid] = FormatCategory.MAIN + + def trace_workflow(self, entity: WorkflowBuilder) -> None: + self.uuids_categories[entity.uuid] = FormatCategory.MAIN + + inputs = entity.input_nodes.values() or [] + steps = entity.step_nodes.values() or [] + outputs = entity.output_nodes.values() or [] + + # inputs + for inp in inputs: + self.uuids_categories[inp.uuid] = FormatCategory.INPUT + + # steps + for step in steps: + self.trace_step(step) + + # outputs + for out in outputs: + self.uuids_categories[out.uuid] = FormatCategory.OUTPUT + + def trace_step(self, entity: StepNode) -> None: + self.uuids_categories[entity.uuid] = FormatCategory.STEP + for sti in entity.sources.values(): + self.uuids_categories[sti.uuid] = FormatCategory.STEP + for edge in sti.source_map: + self.uuids_categories[edge.uuid] = FormatCategory.STEP + + + diff --git a/janis_core/messages/inject.py b/janis_core/messages/inject.py index 3757d8ce5..72818ba8b 100644 --- a/janis_core/messages/inject.py +++ b/janis_core/messages/inject.py @@ -6,15 +6,19 @@ from Levenshtein import distance as levenshtein_distance import regex as re -from typing import Optional, Any, Tuple +from typing import Optional, Tuple +from abc import ABC, abstractmethod from janis_core import settings +from janis_core.tool.tool import ToolType from .logfile import ErrorCategory from .main import load_loglines +from .gather import gather_uuids +from .enums import FormatCategory -### COMMENTERS ### +### MISC CONSTANTS ### -commenter_map = { +COMMENTER_MAP = { 'nextflow': '//', 'cwl': '#', 'wdl': '#', @@ -22,98 +26,243 @@ ### PUBLIC ### -def inject_messages_tool(internal: CommandToolBuilder | CodeTool, translated: str) -> str: +def inject_messages(internal: WorkflowBuilder | CommandToolBuilder | CodeTool, translated: str) -> str: """ - Injects messages into the translated workflow file. - Messages need to be logged during ingest to use this feature. + Injects messages into the translated file text. - When logging messages during ingest you need to provide the unique tool_uuid. - This enables the right messages to be written to the right output files. - Examples: + Note: + - Messages need to be logged during ingest to use this feature. + - When logging messages during ingest you need to provide the unique entity_uuid. + - This enables the right messages to be written to the right output files. + - Example: log_message(tool.uuid, msg=="couldn't parse datatype...", category=ErrorCategory.DATATYPE) - """ - messages = _gen_block(internal, translated) - if messages: - translated = messages + '\n\n' + translated - return translated + if internal.type() in [ToolType.CommandTool, ToolType.CodeTool]: + return ToolInjector(internal, translated).inject() # type: ignore + elif internal.type() == ToolType.Workflow and settings.messages.USE_SUBSECTIONS: + return WorkflowInjectorSplit(internal, translated).inject() # type: ignore + elif internal.type() == ToolType.Workflow: + return WorkflowInjector(internal, translated).inject() # type: ignore + else: + raise RuntimeError(f"Can't inject messages into {internal.type()}") -def inject_messages_workflow(internal: WorkflowBuilder, translated: str) -> str: - """ - Injects messages into the translated workflow file. - Default behaviour is to dump workflow messages at the top of the file, and step specific - messages above the relevant step call. - - If split_categories=True, the messages at the top of the file are split into sections based on their category. - There are three main sections - general, inputs, outputs. - If you want to use this feature, make sure the ingest unit is providing the subsection=[section] argument - when logging messages. Eg: - log_message(tool_uuid, msg, category, subsection='general') - log_message(tool_uuid, msg, category, subsection='inputs') - log_message(tool_uuid, msg, category, subsection='outputs') + +### PRIVATE ### + +class MessageInjector(ABC): + + @abstractmethod + def inject(self) -> str: + ... + + def _gen_block(self, heading: Optional[str]=None, uuids: Optional[set[str]]=None, is_scripting: bool=False) -> Optional[str]: + # text for this block + msgs = self._gen_block_lines(uuids, is_scripting) + if msgs: + # add extra component (the heading) for this block when using subsections + if heading is not None: + msgs = [heading.upper()] + msgs + + # comment each line & return as string + commenter = COMMENTER_MAP[settings.translate.DEST] + msgs = [f'{commenter} {ln}' for ln in msgs] + return '\n'.join(msgs) + + return None + + def _gen_block_lines(self, uuids: Optional[set[str]]=None, is_scripting: bool=False) -> list[str]: + msgs: list[str] = [] + + # scripting block + if is_scripting: + cat = ErrorCategory.SCRIPTING + loglines = load_loglines(category=cat, entity_uuids=uuids) + if loglines: + messages = [x.message for x in loglines] + + # filter to messages where __TOKEN__ still is in the process text + filtered = [] + for msg in messages: + token = msg.split(' = ', 1)[0] + if token in self.translated: # type: ignore + filtered.append(msg) + if filtered: + # have to add comment for cwl otherwise invalid syntax. + if settings.translate.DEST == 'cwl': + filtered = [f'{msg}' for msg in filtered] + msgs += filtered + return msgs + + # normal block + for cat in ErrorCategory: + # we do this later - its weird. + if cat == ErrorCategory.SCRIPTING: + continue + loglines = load_loglines(category=cat, entity_uuids=uuids) + if loglines: + msgs += [f'[{cat.value[0]}][{cat.value[1]}] {x.message}' for x in loglines] + return msgs + + + +class ToolInjector(MessageInjector): - Relies on workflow step names being almost equivalent to the step call in the translated file. + def __init__(self, internal: CommandToolBuilder | CodeTool, translated: str) -> None: + self.internal = internal + self.translated = translated + self.entity_uuids_map = gather_uuids(internal) + + def inject(self) -> str: + uuids = set(self.entity_uuids_map.keys()) + + # scripting messages + messages = self._gen_block(uuids=uuids, is_scripting=True) + if messages: + commenter = COMMENTER_MAP[settings.translate.DEST] + self.translated = f'{commenter} {settings.messages.SCRIPTING_BANNER}\n{messages}\n\n{self.translated}' + + # normal messages + messages = self._gen_block(uuids=uuids) + if messages: + commenter = COMMENTER_MAP[settings.translate.DEST] + self.translated = f'{commenter} {settings.messages.MESSAGES_BANNER}\n{messages}\n\n{self.translated}' + return self.translated + + +class WorkflowInjector(MessageInjector): """ - if settings.messages.USE_SUBSECTIONS: - translated = _inject_workflow_header_messages_subsections(internal, translated) - else: - translated = _inject_workflow_header_messages_default(internal, translated) - translated = _inject_workflow_step_messages(internal, translated) - return translated + Dumps messages to top of file, except for step specific messages which are dumped + above the relevant step call. + """ + + def __init__(self, internal: WorkflowBuilder, translated: str) -> None: + self.internal = internal + self.translated = translated + self.entity_uuids_map = gather_uuids(internal) + + def inject(self) -> str: + self.inject_header_messages() + self.inject_step_messages() + return self.translated + def inject_header_messages(self) -> None: + uuids = set([uuid for uuid, fcat in self.entity_uuids_map.items() if fcat != FormatCategory.STEP]) + + # scripting messages + messages = self._gen_block(uuids=uuids, is_scripting=True) + if messages: + commenter = COMMENTER_MAP[settings.translate.DEST] + self.translated = f'{commenter} {settings.messages.SCRIPTING_BANNER}\n{messages}\n\n{self.translated}' + + # normal messages + messages = self._gen_block(uuids=uuids) + if messages: + commenter = COMMENTER_MAP[settings.translate.DEST] + self.translated = f'{commenter} {settings.messages.MESSAGES_BANNER}\n{messages}\n\n{self.translated}' + + def inject_step_messages(self) -> None: + """ + Note: No headings or subheadings for step-related messages, except scripting. + For each step: + - get messages + - if messages, find step call + - if found, get indent + - inject message block above step call with correct indent + """ + for sname, step in self.internal.step_nodes.items(): + step_uuids_map = gather_uuids(step) + + # sanity check + assert all([fcat == FormatCategory.STEP for fcat in step_uuids_map.values()]) + + # get message block for this step if step has messages + uuids = set(step_uuids_map.keys()) + normal_messages = self._gen_block(uuids=uuids) + scripting_messages = self._gen_block(uuids=uuids, is_scripting=True) + if not normal_messages and not scripting_messages: + continue + + # get step location in translated text + loc = _get_step_loc(sname, self.translated) + if loc is None: + print(self.translated) + raise NotImplementedError + + # get indent for the step call - awful in general but works + # split file into top and bottom pivoting on the match location + top = self.translated[:loc] + bottom = self.translated[loc:] + + # get the indent level of the step call + if not bottom.startswith(' ') and not bottom.startswith('\t'): + indent = '' + else: + indent = re.findall(r'[ \t]+', bottom)[0] + + # apply indent to each line of the message block + if normal_messages: + msg_lines = normal_messages.split('\n') + msg_lines = [indent + ln for ln in msg_lines] + normal_messages = '\n'.join(msg_lines) + + if scripting_messages: + # add special header + msg_lines = ['UNTRANSLATED EXPRESSIONS'] + msg_lines += scripting_messages.split('\n') + msg_lines = [indent + ln for ln in msg_lines] + scripting_messages = '\n'.join(msg_lines) + + messages = '' + if normal_messages: + messages += normal_messages + if scripting_messages: + messages += f'\n\n{scripting_messages}' + + # inject indented message block above step call + self.translated = top + messages + '\n' + bottom + -### PRIVATE ### -def _inject_workflow_header_messages_default(internal: WorkflowBuilder, translated: str) -> str: - messages = _gen_block(internal, translated, subsections=[None, 'general', 'inputs', 'outputs']) - if messages: - translated = messages + '\n\n' + translated - return translated - -def _inject_workflow_header_messages_subsections(internal: WorkflowBuilder, translated: str) -> str: - general = _gen_block(internal, translated, heading='general', subsections=['general']) - inputs = _gen_block(internal, translated, heading='inputs', subsections=['inputs']) - outputs = _gen_block(internal, translated, heading='outputs', subsections=['outputs']) - messages = '\n\n'.join([x for x in [general, inputs, outputs] if x is not None]) - if messages: - translated = messages + '\n\n' + translated - return translated - -def _inject_workflow_step_messages(internal: WorkflowBuilder, translated: str) -> str: +class WorkflowInjectorSplit(WorkflowInjector): """ - This is horrendous. - For each step: - - get messages - - if messages, find step call - - if found, get indent - - inject message block above step call with correct indent + Instead of dumping all header messages together at top of file, organises header into + GENERAL, INPUTS, OUTPUTS sections, followed by UNTRANSLATED EXPRESSIONS """ - for sname in internal.step_nodes.keys(): - # get message block for this step if step has messages - messages = _gen_block(internal, translated, subsections=[sname]) - if not messages: - continue + # single override method for this class + def inject_header_messages(self) -> None: + main_uuids = set([uuid for uuid, fcat in self.entity_uuids_map.items() if fcat == FormatCategory.MAIN]) + input_uuids = set([uuid for uuid, fcat in self.entity_uuids_map.items() if fcat == FormatCategory.INPUT]) + output_uuids = set([uuid for uuid, fcat in self.entity_uuids_map.items() if fcat == FormatCategory.OUTPUT]) - # get step location in translated text - loc = _get_step_loc(sname, translated) - if loc is None: - raise NotImplementedError + # get the messages for header subheadings as blocks + main = self._gen_block(heading='general', uuids=main_uuids) + inputs = self._gen_block(heading='inputs', uuids=input_uuids) + outputs = self._gen_block(heading='outputs', uuids=output_uuids) - # get indent for the step call - awful in general - indent = translated[:loc].split('\n')[-1] - lines = messages.split('\n') - first = lines[0] - other = [indent + ln for ln in lines[1:]] - lines = [first] + other - messages = '\n'.join(lines) - - # inject message block above step call with correct indent - translated = translated[:loc] + messages + '\n' + indent + translated[loc:] - - return translated + # get the messages for header scripting as block + all_uuids = main_uuids | input_uuids | output_uuids + scripting = self._gen_block(heading='outputs', uuids=all_uuids, is_scripting=True) + + # write scripting + if scripting: + commenter = COMMENTER_MAP[settings.translate.DEST] + self.translated = f'{commenter} {settings.messages.SCRIPTING_BANNER}\n{scripting}\n\n{self.translated}' + + # write normal messages + messages = '\n\n'.join([x for x in [main, inputs, outputs] if x is not None]) + if messages: + commenter = COMMENTER_MAP[settings.translate.DEST] + self.translated = f'{commenter} {settings.messages.MESSAGES_BANNER}\n{messages}\n\n{self.translated}' + def _get_step_loc(step_name: str, translated: str) -> Optional[int]: + """ + returned loc should be the first character of the target line, not the start of the step symbol + eg nextflow process call: + " MINIMAP2(" + ^ loc is here, ^ not here + """ # get loc, step call name for all step calls in translated text if settings.translate.DEST == 'cwl': @@ -141,6 +290,7 @@ def _standardise_symbol(symbol: str) -> str: return symbol.replace('_', '').replace('-', '').upper() def _get_step_call_starts_cwl(translated: str) -> list[Tuple[int, str]]: + # AN: this is ew # gather things which look like entity names # [ \t]+ included to get the location for the start of the line. PATTERN_FMT1 = r'(?<!(in:|out:|run:|requirements:|hints:|label:|doc:|scatter:|scatterMethod:)[\s]+)[ \t]*- ?id: ?([\w]+)[ \t]*\n' @@ -162,6 +312,7 @@ def _get_step_call_starts_cwl(translated: str) -> list[Tuple[int, str]]: elif m.group(3) is not None: name = m.group(3) else: + # TODO downgrade this to a warning? or just ignore? raise RuntimeError('No group found') # line start and correct group for each match out.append((m.start(), name)) @@ -170,7 +321,7 @@ def _get_step_call_starts_cwl(translated: str) -> list[Tuple[int, str]]: def _get_step_call_starts_nextflow(translated: str) -> list[Tuple[int, str]]: # this is weak compared to CWL # [ \t]+ included to get the location for the start of the line. - PATTERN = r'[ \t]+([A-Z_]+)\(' + PATTERN = r'[ \t]+([A-Z0-9_]+)\(' matches = re.finditer(PATTERN, translated) # return the line start and correct group for each match @@ -196,93 +347,6 @@ def _get_step_call_starts_wdl(translated: str) -> list[Tuple[int, str]]: out.append((m.start(), name)) return out -def _gen_block( - internal: WorkflowBuilder| CommandToolBuilder | CodeTool, - translated: str, - heading: Optional[str]=None, - subsections: Optional[list[Any]]=None - ) -> Optional[str]: - - # TODO HERE USE THESE FORMATS INSTEAD ---- - # Tool / Workflow default: - - ### MESSAGES ### - - # [WARNING][DATATYPES] test message1 - # [WARNING][METADATA] test message2 - # [WARNING][EXPERIMENTAL] test message4 - # [ERROR][FALLBACKS] test message3 - - # UNTRANSLATED EXPRESSIONS - # __TOKEN1__ = 'hello' - - # Workflow split: - - ### MESSAGES ### - - # GENERAL - # [WARNING][DATATYPES] test message1 - - # INPUTS - # [WARNING][METADATA] test message2 - - # OUTPUTS - # [ERROR][FALLBACKS] test message3 - # UNTRANSLATED EXPRESSIONS - # __TOKEN1__ = 'hello' - - # text for this block - components = _gen_block_components(internal, translated, subsections) - if components: - # add extra component (the heading) for this block when using subsections - commenter = commenter_map[settings.translate.DEST] - if heading is not None: - if commenter == '#': - heading = f'### {heading.upper()} ###' - else: - heading = f'{commenter} ### {heading.upper()} ###' - components = [heading] + components - return '\n\n'.join(components) - return None - -def _gen_block_components( - internal: WorkflowBuilder| CommandToolBuilder | CodeTool, - translated: str, - subsections: Optional[list[Any]]=None - ) -> list[str]: - - components: list[str] = [] - commenter = commenter_map[settings.translate.DEST] - - for cat in ErrorCategory: - # we do this later - its weird. - if cat == ErrorCategory.SCRIPTING: - continue - loglines = load_loglines(category=cat, tool_uuid=internal.uuid, subsections=subsections) - if loglines: - lines = [f'{commenter} [{cat.value[0]}][{cat.value[1]}] {x.message}\n' for x in loglines] - components.append('\n'.join(lines)) - - cat = ErrorCategory.SCRIPTING - loglines = load_loglines(category=cat, tool_uuid=internal.uuid, subsections=subsections) - if loglines: - messages = [x.message for x in loglines] - - # filter to messages where __TOKEN__ still is in the process text - filtered = [] - for msg in messages: - token = msg.split(' = ', 1)[0] - if token in translated: - filtered.append(msg) - if filtered: - header = f'{commenter} UNTRANSLATED EXPRESSIONS' - # have to add comment for cwl otherwise invalid syntax. - if settings.translate.DEST == 'cwl': - filtered = [f'{commenter} {msg}' for msg in filtered] - component = '\n'.join([header] + filtered) - components.append(component) - - return components diff --git a/janis_core/messages/logfile.py b/janis_core/messages/logfile.py index f1b33be08..e4edd5769 100644 --- a/janis_core/messages/logfile.py +++ b/janis_core/messages/logfile.py @@ -9,15 +9,14 @@ class LogLine: message: str category: Optional[ErrorCategory] - tool_uuid: Optional[str] - subsection: Optional[str] + entity_uuid: Optional[str] def __str__(self) -> str: if self.category is not None: level, cat = self.category.value else: level, cat = None, None - return f'{level}\t{cat}\t{self.tool_uuid}\t{self.subsection}\t{self.message}' + return f'{level}\t{cat}\t{self.entity_uuid}\t{self.message}' class LogFile: @@ -29,9 +28,8 @@ def __init__(self, filepath: str): def add( self, category: Optional[ErrorCategory], - tool_uuid: Optional[str], + entity_uuid: Optional[str], msg: str, - subsection: Optional[str] ) -> None: # format message @@ -42,8 +40,7 @@ def add( logline = LogLine( message=message, category=category, - tool_uuid=tool_uuid, - subsection=subsection + entity_uuid=entity_uuid, ) # write to file @@ -67,13 +64,12 @@ def load(self) -> None: self.lines.append(logline) def string_to_logline(self, line: str) -> LogLine: - str_level, str_cat, str_tool_uuid, str_subsection, str_message = line.strip('\n').split('\t') + str_level, str_cat, str_uuid, str_message = line.strip('\n').split('\t') if str_cat == 'None': category = None else: category = ErrorCategory.from_str(str_cat) - tool_uuid = None if str_tool_uuid == 'None' else str_tool_uuid - subsection = None if str_subsection == 'None' else str_subsection - return LogLine(str_message, category, tool_uuid, subsection) + entity_uuid = None if str_uuid == 'None' else str_uuid + return LogLine(str_message, category, entity_uuid) \ No newline at end of file diff --git a/janis_core/messages/main.py b/janis_core/messages/main.py index f4e90faaa..c4ccc3f5f 100644 --- a/janis_core/messages/main.py +++ b/janis_core/messages/main.py @@ -88,7 +88,7 @@ def info_ingesting_tool(spec: str, name: str) -> None: # to file # ------- -def log_message(entity_uuid: Optional[str], msg: str, category: ErrorCategory, subsection: Any=None) -> None: +def log_message(entity_uuid: Optional[str], msg: str, category: ErrorCategory) -> None: logfile = LogFile(MESSAGE_LOG_PATH) # if no uuid provided, consider this a general message provided during ingestion / translation. # these messages can be shown to the user at the top of the main parsed file (ie the main workflow / tool), @@ -96,18 +96,17 @@ def log_message(entity_uuid: Optional[str], msg: str, category: ErrorCategory, s # check the same message isn't already present for ll in logfile.lines: - if ll.category == category and ll.message == msg and ll.tool_uuid == entity_uuid and ll.subsection == subsection: + if ll.category == category and ll.message == msg and ll.entity_uuid == entity_uuid: return # log the new message if entity_uuid is None: entity_uuid = 'general' - logfile.add(tool_uuid=entity_uuid, category=category, msg=msg, subsection=subsection) + logfile.add(entity_uuid=entity_uuid, category=category, msg=msg) def load_loglines( category: Optional[ErrorCategory]|bool=False, - tool_uuid: Optional[str]|bool=False, - subsections: Optional[list[Any]]=None, + entity_uuids: Optional[set[str]]=None, ) -> list[LogLine]: # Type hinting ugly as hell # Trying to express that None can be provided alongside an actual value. @@ -119,10 +118,7 @@ def load_loglines( # filters if category != False: loglines = [x for x in loglines if x.category.value == category.value] - if tool_uuid != False: - loglines = [x for x in loglines if x.tool_uuid == tool_uuid] - if isinstance(subsections, list): - loglines = [x for x in loglines if x.subsection in subsections] - + if entity_uuids is not None: + loglines = [x for x in loglines if x.entity_uuid in entity_uuids] return loglines diff --git a/janis_core/messages/owner.py b/janis_core/messages/owner.py new file mode 100644 index 000000000..86043b985 --- /dev/null +++ b/janis_core/messages/owner.py @@ -0,0 +1,73 @@ + + +# from typing import Any, Optional + +# # tool entities +# from janis_core.code.codetool import CodeTool +# from janis_core.tool.commandtool import ( +# CommandTool, +# CommandToolBuilder, +# ToolArgument, +# ToolInput, +# ToolOutput, +# ) +# # # workflow entities +# # from janis_core.graph.steptaginput import Edge, StepTagInput +# # from janis_core.workflow.workflow import ( +# # Workflow, +# # WorkflowBuilder, +# # InputNode, +# # StepNode, +# # OutputNode, +# # ) + +# ### PUBLIC ### + +# def get_owner_uuid(entity: Any) -> Optional[str]: +# if isinstance(entity, CommandTool | CommandToolBuilder | CodeTool): +# return _get_uuid_tool(entity) +# elif isinstance(entity, ToolInput): +# return _get_uuid_tool_inp(entity) +# elif isinstance(entity, ToolArgument): +# return _get_uuid_tool_arg(entity) +# elif isinstance(entity, ToolOutput): +# return _get_uuid_tool_out(entity) +# else: +# raise NotImplementedError(f"get_owner_uuid not implemented for this entity") + +# ### PRIVATE ### + +# # TOOL ENTITIES + +# def _get_uuid_tool(entity: CommandTool | CommandToolBuilder | CodeTool) -> Optional[str]: +# return entity.uuid + +# def _get_uuid_tool_arg(entity: ToolArgument) -> Optional[str]: +# raise NotImplementedError + +# def _get_uuid_tool_inp(entity: ToolInput) -> Optional[str]: +# raise NotImplementedError + +# def _get_uuid_tool_out(entity: ToolOutput) -> Optional[str]: +# raise NotImplementedError + + +# # WORKFLOW ENTITIES + +# # def _get_uuid_workflow(entity: Workflow | WorkflowBuilder) -> Optional[str]: +# # raise NotImplementedError + +# # def _get_uuid_workflow_inp(entity: InputNode) -> Optional[str]: +# # raise NotImplementedError + +# # def _get_uuid_workflow_step(entity: StepNode) -> Optional[str]: +# # raise NotImplementedError + +# # def _get_uuid_workflow_out(entity: OutputNode) -> Optional[str]: +# # raise NotImplementedError + +# # def _get_uuid_workflow_edge(entity: Edge) -> Optional[str]: +# # raise NotImplementedError + +# # def _get_uuid_workflow_sti(entity: StepTagInput) -> Optional[str]: +# # raise NotImplementedError \ No newline at end of file diff --git a/janis_core/settings/messages.py b/janis_core/settings/messages.py index 05f2454d4..d7a672af3 100644 --- a/janis_core/settings/messages.py +++ b/janis_core/settings/messages.py @@ -1,3 +1,5 @@ -USE_SUBSECTIONS: bool = True # whether to output messages in subsections (general, inputs, outputs) at top of translated workflow file \ No newline at end of file +MESSAGES_BANNER: str = '::: MESSAGES :::' # messages heading +SCRIPTING_BANNER: str = '::: UNTRANSLATED EXPRESSIONS :::' # messages heading +USE_SUBSECTIONS: bool = True # whether to output messages in subsections (general, inputs, outputs) at top of translated workflow file \ No newline at end of file diff --git a/janis_core/tests/data/wdl/TrimAdapters.wdl b/janis_core/tests/data/wdl/TrimAdapters.wdl new file mode 100644 index 000000000..4e87a50d9 --- /dev/null +++ b/janis_core/tests/data/wdl/TrimAdapters.wdl @@ -0,0 +1,63 @@ + +# trim read 1 and read 2 adapter sequeunce with cutadapt +task TrimAdapters { + input { + File fastq_input_read1 + File fastq_input_read2 + Int min_length + Int quality_cutoff + String adapter_seq_read1 + String adapter_seq_read2 + String output_base_name + String docker_image = "quay.io/broadinstitute/cutadapt:1.18" + } + + parameter_meta { + fastq_input_read1: "read 1 fastq file as input for the pipeline" + fastq_input_read2: "read 2 fastq file as input for the pipeline" + min_length: "the minimum legnth for trimming. Reads that are too short even before adapter removal are also discarded" + quality_cutoff: "cutadapt option to trim low-quality ends from reads before adapter removal" + adapter_seq_read1: "cutadapt option for the sequence adapter for read 1 fastq" + adapter_seq_read2: "cutadapt option for the sequence adapter for read 2 fastq" + output_base_name: "base name to be used for the output of the task" + docker_image: "the docker image using cutadapt to be used (default: quay.io/broadinstitute/cutadapt:1.18)" + } + + # runtime requirements based upon input file size + Float input_size = size(fastq_input_read1, "GiB") + size(fastq_input_read2, "GiB") + Int disk_size = ceil(2 * (if input_size < 1 then 1 else input_size)) + + # output names for trimmed reads + String fastq_trimmed_adapter_output_name_read1 = output_base_name + ".R1.trimmed_adapters.fastq.gz" + String fastq_trimmed_adapter_output_name_read2 = output_base_name + ".R2.trimmed_adapters.fastq.gz" + + # using cutadapt to trim off sequence adapters + command { + set -euo pipefail + + # fastq's, "-f", -A for paired adapters read 2" + cutadapt \ + -f fastq \ + --minimum-length ~{min_length} \ + --quality-cutoff ~{quality_cutoff} \ + --adapter ~{adapter_seq_read1} \ + -A ~{adapter_seq_read2} \ + --output ~{fastq_trimmed_adapter_output_name_read1} \ + --paired-output ~{fastq_trimmed_adapter_output_name_read2} \ + ~{fastq_input_read1} ~{fastq_input_read2} + } + + # use docker image for given tool cutadapat + runtime { + docker: docker_image + disks: "local-disk " + disk_size + " HDD" + cpu: 1 + memory: "3.75 GiB" + } + + output { + File fastq_trimmed_adapter_output_read1 = fastq_trimmed_adapter_output_name_read1 + File fastq_trimmed_adapter_output_read2 = fastq_trimmed_adapter_output_name_read2 + File? monitoring_log = "monitoring.log" + } +} diff --git a/janis_core/tests/test_ingestion_cwl.py b/janis_core/tests/test_ingestion_cwl.py index 841fb046b..a09bd8041 100644 --- a/janis_core/tests/test_ingestion_cwl.py +++ b/janis_core/tests/test_ingestion_cwl.py @@ -106,7 +106,7 @@ def test_tool_bwa_index(self): clt, cwl_utils = _load_cwl_doc(filepath) parser = CLTParser(cwl_utils=cwl_utils, clt=clt, entity=clt) tool = parser.parse() - msgs = load_loglines(tool_uuid=tool.uuid) + msgs = load_loglines(entity_uuids=set(tool.uuid)) self.assertEqual(len(msgs), 0) self.assertEqual(tool.id(), 'BWA_Index') @@ -218,7 +218,7 @@ def test_expression_lib(self): clt, cwl_utils = _load_cwl_doc(filepath) parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, tool_uuid='test_expression_lib') reqs = parser.parse() - lines = load_loglines(tool_uuid='test_expression_lib') + lines = load_loglines(entity_uuids=set('test_expression_lib')) msgs = [x.message for x in lines] self.assertIn('__TOKEN1__ = "$(var get_label = function(i) { var rootname = inputs.molecule_info_h5[i].basename.split(\'.\').slice(0,-1).join(\'.\'); rootname = (rootname=="")?inputs.molecule_info_h5[i].basename:rootname; return inputs.gem_well_labels?inputs.gem_well_labels[i].replace(/,/g, "_"):rootname; };)"', msgs) @@ -231,7 +231,7 @@ def test_files_to_create_textfile(self): self.assertEqual(len(reqs['files_to_create']), 1) self.assertIn('setup_vars.sh', reqs['files_to_create']) self.assertIn('export AA_DATA_REPO', reqs['files_to_create']['setup_vars.sh']) - msgs = load_loglines(tool_uuid='test') + msgs = load_loglines(entity_uuids=set('test')) self.assertEqual(len(msgs), 1) @unittest.skip('how does this work for janis?') @@ -418,7 +418,7 @@ def test_requirements_parser(self) -> None: clt, cwl_utils = _load_cwl_doc(filepath) parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, tool_uuid='test_files_to_create4') reqs = parser.parse() - lines = load_loglines(tool_uuid='test_files_to_create4') + lines = load_loglines(entity_uuids=set('test_files_to_create4')) msgs = [x.message for x in lines] print() @@ -520,7 +520,7 @@ def test_multiple_datatypes(self): cwl_type = ['null', 'File', 'string'] dtype = ingest_cwl_type(cwl_type, cwl_utils, None, tool_uuid='test', secondaries=None) self.assertIsInstance(dtype, File) - lines = load_loglines(tool_uuid='test') + lines = load_loglines(entity_uuids=set('test')) msgs = [x.message for x in lines] self.assertIn("entity supports multiple datatypes: ['File', 'String']. selected File as fallback.", msgs) @@ -530,7 +530,7 @@ def test_unparseable_generic(self): cwl_type = 'kitten' dtype = ingest_cwl_type(cwl_type, cwl_utils, None, tool_uuid='test', secondaries=None) self.assertIsInstance(dtype, File) - lines = load_loglines(tool_uuid='test') + lines = load_loglines(entity_uuids=set('test')) msgs = [x.message for x in lines] self.assertIn('unsupported datatype: kitten. treated as generic File.', msgs) @@ -540,7 +540,7 @@ def test_enum_type(self): cwl_type = f'file://{CWL_TESTDATA_DIR}/tools/gatk_haplotype_tool.cwl#annotation_type' dtype = ingest_cwl_type(cwl_type, cwl_utils, None, tool_uuid='test', secondaries=None) self.assertIsInstance(dtype, File) - lines = load_loglines(tool_uuid='test') + lines = load_loglines(entity_uuids=set('test')) msgs = [x.message for x in lines] self.assertIn('unsupported datatype: file:///home/grace/work/pp/translation/janis-core/janis_core/tests/data/cwl/tools/gatk_haplotype_tool.cwl#annotation_type. treated as generic File.', msgs) @@ -551,13 +551,13 @@ def test_unparseable_secondary_type(self): cinp = clt.inputs[1] dtype = ingest_cwl_type(cinp.type, cwl_utils, None, tool_uuid='test', secondaries=cinp.secondaryFiles) self.assertIsInstance(dtype, GenericFileWithSecondaries) - lines = load_loglines(tool_uuid='test') + lines = load_loglines(entity_uuids=set('test')) msgs = [x.message for x in lines] self.assertIn("could not parse secondaries format from javascript expression. treated as generic File with secondaries.", msgs) - + class TestErrorHandlingExpressions(unittest.TestCase): def setUp(self) -> None: @@ -571,7 +571,7 @@ def test_resource_requirements(self): parser = CLTRequirementsParser(cwl_utils, clt=clt, entity=clt, tool_uuid='test') requirements = parser.parse() - lines = load_loglines(tool_uuid='test', category=ErrorCategory.SCRIPTING) + lines = load_loglines(entity_uuids=set('test'), category=ErrorCategory.SCRIPTING) msgs = [x.message for x in lines] self.assertEqual(requirements["memory"], '__TOKEN1__') @@ -590,7 +590,7 @@ def test_initial_workdir_requirement(self): jtool = parser.parse() self.assertIsNone(jtool.files_to_create()) - lines = load_loglines(tool_uuid=jtool.uuid) + lines = load_loglines(entity_uuids=set(jtool.uuid)) msgs = [x.message for x in lines] self.assertEqual(len(msgs), 3) self.assertIn('error parsing InitialWorkDirRequirement. ignored as fallback', msgs) @@ -602,7 +602,7 @@ def test_secondaryfiles(self): parser = CLTInputParser(cwl_utils, clt=clt, entity=clt.inputs[1], tool_uuid='test') tinput = parser.parse() self.assertIsInstance(tinput.input_type, GenericFileWithSecondaries) - lines = load_loglines(tool_uuid='test') + lines = load_loglines(entity_uuids=set('test')) msgs = [x.message for x in lines] expected_msg = 'could not parse secondaries format from javascript expression. treated as generic File with secondaries.' self.assertIn(expected_msg, msgs) @@ -614,7 +614,7 @@ def test_clt_input(self): parser = CLTInputParser(cwl_utils, clt=clt, entity=clt.inputs[5], tool_uuid='test') tinput = parser.parse() - lines = load_loglines(tool_uuid='test') + lines = load_loglines(entity_uuids=set('test')) msgs = [x.message for x in lines] expected_msg = '__TOKEN1__ = "$([inputs.runtime_cpu, 16, 1].filter(function (inner) { return inner != null })[0])"' self.assertEqual(tinput.value, '__TOKEN1__') @@ -626,7 +626,7 @@ def test_clt_argument(self): parser = CLTArgumentParser(cwl_utils, clt=clt, entity=clt.arguments[5], tool_uuid='test') arg = parser.parse() - lines = load_loglines(tool_uuid='test') + lines = load_loglines(entity_uuids=set('test')) msgs = [x.message for x in lines] self.assertEqual(arg.value, '__TOKEN1__') self.assertIn('__TOKEN1__ = "${ var r = []; for (var i = 10; i >= 1; i--) { r.push(i); } return r;}"', msgs) @@ -637,7 +637,7 @@ def test_clt_output(self): clt, cwl_utils = _load_cwl_doc(filepath) parser = CLTOutputParser(cwl_utils, clt=clt, entity=clt.outputs[3], tool_uuid='test') tout = parser.parse() - lines = load_loglines(tool_uuid='test') + lines = load_loglines(entity_uuids=set('test')) msgs = [x.message for x in lines] self.assertEqual(tout.selector, '__TOKEN1__') self.assertIn('__TOKEN1__ = "$(self[0].contents)"', msgs) @@ -645,7 +645,7 @@ def test_clt_output(self): def test_step_input(self): filepath = f'{CWL_TESTDATA_DIR}/workflows/expressions.cwl' wf = parse_cwl(filepath) - lines = load_loglines(tool_uuid=wf.uuid) + lines = load_loglines(entity_uuids=set(wf.uuid)) msgs = [x.message for x in lines] self.assertIn('could not parse secondaries format from javascript expression. treated as generic File with secondaries.', msgs) diff --git a/janis_core/tests/test_janis_translate.py b/janis_core/tests/test_janis_translate.py index fe3c75cbb..1a504ce39 100644 --- a/janis_core/tests/test_janis_translate.py +++ b/janis_core/tests/test_janis_translate.py @@ -5,8 +5,10 @@ from typing import Any from janis_core import settings +from janis_core.messages import gather_uuids from janis_core.messages import configure_logging from janis_core.messages import log_message +from janis_core.messages import FormatCategory from janis_core.messages import ErrorCategory from janis_core.ingestion import ingest from janis_core.translations import translate @@ -14,10 +16,13 @@ from janis_core.tests.testtools import FileOutputPythonTestTool from janis_core.tests.testtools import GridssTestTool from janis_core.tests.testtools import FastqcTestTool +from janis_core.tests.testtools import MessagingTestTool +from janis_core.tests.testtools import FileInputPythonTestTool from janis_core.tests.testworkflows import BasicIOTestWF from janis_core.tests.testworkflows import PruneFlatTW from janis_core.tests.testworkflows import PruneNestedTW from janis_core.tests.testworkflows import AssemblyTestWF +from janis_core.tests.testworkflows import SubworkflowTestWF from janis_core.redefinitions.tools import Cat from janis_core.redefinitions.tools import GenerateVardictHeaderLines from janis_core.redefinitions.workflows import BwaAligner @@ -244,37 +249,65 @@ def test_str_big_workflow(self): ### ----- MESSAGES ----- ### -class TestMessages(unittest.TestCase): - +class TestMessageModule(unittest.TestCase): + def setUp(self) -> None: _reset_global_settings() - ### TOOLS ### + def test_gather_uuids_tool(self) -> None: + ### codetool ### + codetool = FileInputPythonTestTool() + uuid_map = gather_uuids(codetool) + self.assertEqual(uuid_map[codetool.uuid], FormatCategory.MAIN) + + ### cmdtoolbuilder ### + cmdtool = MessagingTestTool() # type: ignore + cmdtool: CommandToolBuilder = to_builders(cmdtool) # type: ignore + uuid_map = gather_uuids(cmdtool) + tinp = cmdtool.inputs()[0] + targ = cmdtool.arguments()[0] + tout = cmdtool.outputs()[0] + self.assertEqual(uuid_map[cmdtool.uuid], FormatCategory.MAIN) + self.assertEqual(uuid_map[tinp.uuid], FormatCategory.INPUT) + self.assertEqual(uuid_map[targ.uuid], FormatCategory.ARGUMENT) + self.assertEqual(uuid_map[tout.uuid], FormatCategory.OUTPUT) + + def test_gather_uuids_workflow(self) -> None: + ### workflowbuilder ### + workflow = AssemblyTestWF() + workflow = to_builders(workflow) + uuid_map = gather_uuids(workflow) + winp = workflow.input_nodes['inForwardReads'] + wstep = workflow.step_nodes['fastqc1'] + wout = workflow.output_nodes['fastqc1_outHtmlFile'] + self.assertEqual(uuid_map[workflow.uuid], FormatCategory.MAIN) + self.assertEqual(uuid_map[winp.uuid], FormatCategory.INPUT) + self.assertEqual(uuid_map[wstep.uuid], FormatCategory.STEP) + self.assertEqual(uuid_map[wstep.sources['adapters'].uuid], FormatCategory.STEP) + self.assertEqual(uuid_map[wstep.sources['contaminants'].uuid], FormatCategory.STEP) + self.assertEqual(uuid_map[wstep.sources['contaminants'].source_map[0].uuid], FormatCategory.STEP) + self.assertEqual(uuid_map[wout.uuid], FormatCategory.OUTPUT) + - def test_injection_cwl_tool(self) -> None: - tool = EchoTestTool() - tool = to_builders(tool) - log_message(entity_uuid=tool.uuid, msg='test message1', category=ErrorCategory.DATATYPES) - log_message(entity_uuid=tool.uuid, msg='test message2', category=ErrorCategory.METADATA) - log_message(entity_uuid=tool.uuid, msg='test message3', category=ErrorCategory.FALLBACKS) - log_message(entity_uuid=tool.uuid, msg='test message4', category=ErrorCategory.EXPERIMENTAL) - log_message(entity_uuid=tool.uuid, msg='test message5', category=ErrorCategory.SCRIPTING) - mainstr = translate(tool, 'cwl', export_path='./translated') - print(mainstr) +class TestMessageInjection(unittest.TestCase): - msgs_header = mainstr.split('#!/usr/bin/env cwl-runner')[0] - level, cat = ErrorCategory.DATATYPES.value - self.assertIn(f'# [{level}][{cat}] test message1', msgs_header) - level, cat = ErrorCategory.METADATA.value - self.assertIn(f'# [{level}][{cat}] test message2', msgs_header) - level, cat = ErrorCategory.FALLBACKS.value - self.assertIn(f'# [{level}][{cat}] test message3', msgs_header) - level, cat = ErrorCategory.EXPERIMENTAL.value - self.assertIn(f'# [{level}][{cat}] test message4', msgs_header) - self.assertNotIn('# UNTRANSLATED EXPRESSIONS', msgs_header) - self.assertNotIn('# test message5', msgs_header) + """ + - CWL tool + - NXF tool + - WDL tool + - CWL workflow + - CWL subworkflow + - NXF workflow + - NXF subworkflow + - WDL workflow + - NXF subworkflow + - split_sections + - expressions + - + """ - def test_injection_nextflow_tool(self) -> None: + def setUp(self) -> None: + _reset_global_settings() tool = EchoTestTool() tool = to_builders(tool) log_message(entity_uuid=tool.uuid, msg='test message1', category=ErrorCategory.DATATYPES) @@ -282,81 +315,259 @@ def test_injection_nextflow_tool(self) -> None: log_message(entity_uuid=tool.uuid, msg='test message3', category=ErrorCategory.FALLBACKS) log_message(entity_uuid=tool.uuid, msg='test message4', category=ErrorCategory.EXPERIMENTAL) log_message(entity_uuid=tool.uuid, msg='test message5', category=ErrorCategory.SCRIPTING) - mainstr = translate(tool, 'nextflow', export_path='./translated') + self.tool = tool + + wf = BasicIOTestWF() + wf = to_builders(wf) + winp = list(wf.input_nodes.values())[0] + wstep = list(wf.step_nodes.values())[0] + wout = list(wf.output_nodes.values())[0] + log_message(entity_uuid=winp.uuid, msg='test message1', category=ErrorCategory.DATATYPES) + log_message(entity_uuid=wf.uuid, msg='test message2', category=ErrorCategory.METADATA) + log_message(entity_uuid=wout.uuid, msg='test message3', category=ErrorCategory.FALLBACKS) + log_message(entity_uuid=wstep.uuid, msg='test message4', category=ErrorCategory.EXPERIMENTAL) + log_message(entity_uuid=wf.uuid, msg='test message5', category=ErrorCategory.SCRIPTING) + self.wf = wf + + ### TOOLS ### + + def test_tool_injection_cwl(self) -> None: + mainstr = translate(self.tool, 'cwl', export_path='./translated') + msgs_header = mainstr.split('#!/usr/bin/env cwl-runner')[0] print(mainstr) + # banner + self.assertIn(f'# {settings.messages.MESSAGES_BANNER}', msgs_header) + # correct formatting [LEVEL][CATEGORY] {message} + level, cat = ErrorCategory.DATATYPES.value + self.assertIn(f'# [{level}][{cat}] test message1', msgs_header) + # right messages are present + for msg in ['test message2', 'test message3', 'test message4']: + self.assertIn(msg, msgs_header) + self.assertNotIn('UNTRANSLATED EXPRESSIONS', msgs_header) + self.assertNotIn('test message5', msgs_header) + + def test_tool_injection_nextflow(self) -> None: + mainstr = translate(self.tool, 'nextflow', export_path='./translated') msgs_header = mainstr.split('nextflow.enable.dsl=2')[0] - self.assertIn(f'// {ErrorCategory.DATATYPES.value}\n// test message1', msgs_header) - self.assertIn(f'// {ErrorCategory.METADATA.value}\n// test message2', msgs_header) - self.assertIn(f'// {ErrorCategory.FALLBACKS.value}\n// test message3', msgs_header) - self.assertIn(f'// {ErrorCategory.EXPERIMENTAL.value}\n// test message4', msgs_header) - self.assertNotIn('// {ErrorCategory.SCRIPTING.value}\n// test message5', msgs_header) - - def test_injection_wdl_tool(self) -> None: - tool = EchoTestTool() - tool = to_builders(tool) - log_message(entity_uuid=tool.uuid, msg='test message1', category=ErrorCategory.DATATYPES) - log_message(entity_uuid=tool.uuid, msg='test message2', category=ErrorCategory.METADATA) - log_message(entity_uuid=tool.uuid, msg='test message3', category=ErrorCategory.FALLBACKS) - log_message(entity_uuid=tool.uuid, msg='test message4', category=ErrorCategory.EXPERIMENTAL) - log_message(entity_uuid=tool.uuid, msg='test message5', category=ErrorCategory.SCRIPTING) - mainstr = translate(tool, 'wdl', export_path='./translated') print(mainstr) + # banner + self.assertIn(f'// {settings.messages.MESSAGES_BANNER}', msgs_header) + # correct formatting [LEVEL][CATEGORY] {message} + level, cat = ErrorCategory.DATATYPES.value + self.assertIn(f'// [{level}][{cat}] test message1', msgs_header) + # right messages are present + for msg in ['test message2', 'test message3', 'test message4']: + self.assertIn(msg, msgs_header) + self.assertNotIn('UNTRANSLATED EXPRESSIONS', msgs_header) + self.assertNotIn('test message5', msgs_header) + + def test_tool_injection_wdl(self) -> None: + mainstr = translate(self.tool, 'wdl', export_path='./translated') msgs_header = mainstr.split('version development')[0] + print(mainstr) + + # banner + self.assertIn(f'# {settings.messages.MESSAGES_BANNER}', msgs_header) + # correct formatting [LEVEL][CATEGORY] {message} + level, cat = ErrorCategory.DATATYPES.value + self.assertIn(f'# [{level}][{cat}] test message1', msgs_header) + # right messages are present + for msg in ['test message2', 'test message3', 'test message4']: + self.assertIn(msg, msgs_header) + self.assertNotIn('UNTRANSLATED EXPRESSIONS', msgs_header) + self.assertNotIn('test message5', msgs_header) - self.assertIn(f'# {ErrorCategory.DATATYPES.value}\n# test message1', msgs_header) - self.assertIn(f'# {ErrorCategory.METADATA.value}\n# test message2', msgs_header) - self.assertIn(f'# {ErrorCategory.FALLBACKS.value}\n# test message3', msgs_header) - self.assertIn(f'# {ErrorCategory.EXPERIMENTAL.value}\n# test message4', msgs_header) - self.assertNotIn('# {ErrorCategory.SCRIPTING.value}\n# test message5', msgs_header) ### WORKFLOWS ### - def test_injection_cwl_workflow(self) -> None: + def test_workflow_injection_cwl(self) -> None: settings.messages.USE_SUBSECTIONS = False - wf = BasicIOTestWF() - wf = to_builders(wf) - log_message(entity_uuid=wf.uuid, msg='test message1', category=ErrorCategory.DATATYPES, subsection='general') - log_message(entity_uuid=wf.uuid, msg='test message2', category=ErrorCategory.METADATA, subsection='inputs') - log_message(entity_uuid=wf.uuid, msg='test message3', category=ErrorCategory.FALLBACKS, subsection='outputs') - log_message(entity_uuid=wf.uuid, msg='test message4', category=ErrorCategory.EXPERIMENTAL, subsection='stp1') - log_message(entity_uuid=wf.uuid, msg='test message5', category=ErrorCategory.SCRIPTING, subsection='stp1') - mainstr, _, _, _ = translate(wf, 'cwl', export_path='./translated') - + mainstr, _, _, _ = translate(self.wf, 'cwl', export_path='./translated') msgs_header = mainstr.split('#!/usr/bin/env cwl-runner')[0] - self.assertIn(f'# {ErrorCategory.DATATYPES.value}\n# test message1', msgs_header) - self.assertIn(f'# {ErrorCategory.METADATA.value}\n# test message2', msgs_header) - self.assertIn(f'# {ErrorCategory.FALLBACKS.value}\n# test message3', msgs_header) + print(mainstr) + + # banner (heading) + self.assertIn(f'# {settings.messages.MESSAGES_BANNER}', msgs_header) + + # correct formatting (heading) [LEVEL][CATEGORY] {message} + level, cat = ErrorCategory.DATATYPES.value + self.assertIn(f'# [{level}][{cat}] test message1', msgs_header) + + # right messages are present (heading) + self.assertIn(f'test message2', msgs_header) + self.assertIn(f'test message3', msgs_header) + + # step messages present / not present (steps) + self.assertIn(f'test message4', mainstr) + self.assertNotIn(f'test message5', mainstr) + + # step messages in correct location & formatted correctly (steps) + level, cat = ErrorCategory.EXPERIMENTAL.value + pattern = fr'steps:\s*# \[{level}\]\[{cat}\] test message4' + matches = list(re.finditer(pattern, mainstr)) + self.assertEqual(len(matches), 1) + + def test_workflow_injection_nextflow(self) -> None: + settings.messages.USE_SUBSECTIONS = False + mainstr, _, _, _ = translate(self.wf, 'nextflow', export_path='./translated') + msgs_header = mainstr.split('nextflow.enable.dsl=2')[0] + print(mainstr) + + # banner (heading) + self.assertIn(f'// {settings.messages.MESSAGES_BANNER}', msgs_header) + + # correct formatting (heading) [LEVEL][CATEGORY] {message} + level, cat = ErrorCategory.DATATYPES.value + self.assertIn(f'// [{level}][{cat}] test message1', msgs_header) + + # right messages are present (heading) + self.assertIn(f'test message2', msgs_header) + self.assertIn(f'test message3', msgs_header) + self.assertNotIn(f'test message4', msgs_header) + + # step messages present / not present (steps) + self.assertIn(f'test message4', mainstr) + self.assertNotIn(f'test message5', mainstr) + + # step messages in correct location & formatted correctly (steps) + level, cat = ErrorCategory.EXPERIMENTAL.value + pattern = fr' // \[{level}\]\[{cat}\] test message4\n STP1()' + matches = list(re.finditer(pattern, mainstr)) + self.assertEqual(len(matches), 1) + + def test_workflow_injection_wdl(self) -> None: + settings.messages.USE_SUBSECTIONS = False + mainstr, _, _, _ = translate(self.wf, 'wdl', export_path='./translated') + msgs_header = mainstr.split('version development')[0] + print(mainstr) + + # banner (heading) + self.assertIn(f'# {settings.messages.MESSAGES_BANNER}', msgs_header) + + # correct formatting (heading) [LEVEL][CATEGORY] {message} + level, cat = ErrorCategory.DATATYPES.value + self.assertIn(f'# [{level}][{cat}] test message1', msgs_header) + + # right messages are present (heading) + self.assertIn(f'test message2', msgs_header) + self.assertIn(f'test message3', msgs_header) + self.assertNotIn(f'test message4', msgs_header) - # check step experimental message in correct location - matches = list(re.finditer(f'steps:\s+# {ErrorCategory.EXPERIMENTAL.value}\n# test message4', mainstr)) + # step messages present / not present (steps) + self.assertIn(f'test message4', mainstr) + self.assertNotIn(f'test message5', mainstr) + + # step messages in correct location & formatted correctly (steps) + level, cat = ErrorCategory.EXPERIMENTAL.value + pattern = fr' # \[{level}\]\[{cat}\] test message4\n call F.FileTestTool as stp1 {{' + matches = list(re.finditer(pattern, mainstr)) self.assertEqual(len(matches), 1) - # check unnecessary script message is not in file - self.assertNotIn('# {ErrorCategory.SCRIPTING.value}\n# test message5', mainstr) - def test_injection_cwl_workflow_subsections(self) -> None: + ### MISC ### + + def test_misc_injection_subsections(self) -> None: + # using cwl, assuming all other specs work settings.messages.USE_SUBSECTIONS = True - wf = BasicIOTestWF() + mainstr, _, _, _ = translate(self.wf, 'cwl', export_path='./translated') + msgs_header = mainstr.split('#!/usr/bin/env cwl-runner')[0] + print(mainstr) + + level, cat = ErrorCategory.METADATA.value + self.assertIn(f'# GENERAL\n# [{level}][{cat}] test message2', msgs_header) + level, cat = ErrorCategory.DATATYPES.value + self.assertIn(f'# INPUTS\n# [{level}][{cat}] test message1', msgs_header) + level, cat = ErrorCategory.FALLBACKS.value + self.assertIn(f'# OUTPUTS\n# [{level}][{cat}] test message3', msgs_header) + + def test_misc_injection_subworkflow(self) -> None: + # using cwl, assuming all other specs work + settings.messages.USE_SUBSECTIONS = False + wf = SubworkflowTestWF() wf = to_builders(wf) - log_message(entity_uuid=wf.uuid, msg='test message1', category=ErrorCategory.DATATYPES, subsection='general') - log_message(entity_uuid=wf.uuid, msg='test message2', category=ErrorCategory.METADATA, subsection='inputs') - log_message(entity_uuid=wf.uuid, msg='test message3', category=ErrorCategory.FALLBACKS, subsection='outputs') - mainstr, _, _, _ = translate(wf, 'cwl', export_path='./translated') + + subwf = wf.step_nodes['apples_subworkflow'].tool + subinp = list(subwf.input_nodes.values())[0] + substep = list(subwf.step_nodes.values())[0] + subout = list(subwf.output_nodes.values())[0] + log_message(entity_uuid=subinp.uuid, msg='test message1', category=ErrorCategory.DATATYPES) + log_message(entity_uuid=subout.uuid, msg='test message2', category=ErrorCategory.METADATA) + log_message(entity_uuid=substep.uuid, msg='test message3', category=ErrorCategory.FALLBACKS) + mainstr, _, subworkflows, _ = translate(wf, 'cwl', export_path='./translated') + subwfstr = subworkflows[1][1] + msgs_header = subwfstr.split('#!/usr/bin/env cwl-runner')[0] + print(subwfstr) + + # banner (heading) + self.assertIn(f'# {settings.messages.MESSAGES_BANNER}', msgs_header) + + # correct formatting (heading) [LEVEL][CATEGORY] {message} + level, cat = ErrorCategory.DATATYPES.value + self.assertIn(f'# [{level}][{cat}] test message1', msgs_header) + level, cat = ErrorCategory.METADATA.value + self.assertIn(f'# [{level}][{cat}] test message2', msgs_header) + + # step messages present but not in header (steps) + level, cat = ErrorCategory.FALLBACKS.value + self.assertNotIn(f'# [{level}][{cat}] test message3', msgs_header) + self.assertIn(f'# [{level}][{cat}] test message3', subwfstr) + + # step messages in correct location & formatted correctly (steps) + pattern = fr'steps:\s*# \[{level}\]\[{cat}\] test message3' + matches = list(re.finditer(pattern, subwfstr)) + self.assertEqual(len(matches), 1) + + def test_misc_injection_scripting(self) -> None: + filepath = f'{CWL_TESTDATA_PATH}/tools/expressions/inputs_arguments.cwl' + mainstr = _run(filepath, 'cwl', 'nextflow') print(mainstr) + + # ensure heading + self.assertIn(f'// {settings.messages.SCRIPTING_BANNER}', mainstr) + # ignore tokens which no longer appear in file + self.assertNotIn('__TOKEN1__ = "$([inputs.runtime_cpu, 16, 1].filter(function (inner) { return inner != null })[0])"', mainstr) + # ensure tokens which are in file + self.assertIn('__TOKEN2__ = "${ var r = []; for (var i = 10; i >= 1; i--) { r.push(i); } return r;}"', mainstr) + self.assertIn('-C __TOKEN2__', mainstr) + - msgs_header = mainstr.split('#!/usr/bin/env cwl-runner')[0] - self.assertIn(f'### GENERAL ###\n\n# {ErrorCategory.DATATYPES.value}\n# test message1', msgs_header) - self.assertIn(f'### INPUTS ###\n\n# {ErrorCategory.METADATA.value}\n# test message2', msgs_header) - self.assertIn(f'### OUTPUTS ###\n\n# {ErrorCategory.FALLBACKS.value}\n# test message3', msgs_header) + + +class TestMessageLoggingCWL(unittest.TestCase): + + def setUp(self) -> None: + _reset_global_settings() + + def test_fallbacks(self) -> None: + raise NotImplementedError + + def test_datatypes(self) -> None: + filepath = f'{CWL_TESTDATA_PATH}/tools/expressions/outputs.cwl' + mainstr = _run(filepath, 'cwl', 'nextflow') + print(mainstr) + + # ensure heading + self.assertIn('// WARNING: DATATYPES', mainstr) + # ensure messages + self.assertIn('// out2: Could not parse datatype from javascript expression. Treated as generic File with secondaries.', mainstr) - def test_injection_cwl_subworkflow(self) -> None: + def test_plumbing(self) -> None: raise NotImplementedError - def test_injection_cwl_workflow_splitsections(self) -> None: + def test_metadata(self) -> None: + # includes container errors raise NotImplementedError + + def test_experimental(self) -> None: + raise NotImplementedError + + def test_scripting(self) -> None: + # nextflow used. can assume consistent for other specs. + ## TODO update + # UNTRANSLATED EXPRESSIONS + # __TOKEN1__ = 'hello' - def test_scripting1(self) -> None: filepath = f'{CWL_TESTDATA_PATH}/tools/expressions/inputs_arguments.cwl' mainstr = _run(filepath, 'cwl', 'nextflow') print(mainstr) @@ -379,30 +590,25 @@ def test_scripting1(self) -> None: self.assertIn('__TOKEN1__ = "$(self[0].contents)"', mainstr) self.assertIn('path "__TOKEN1__", emit: out4', mainstr) - def test_datatypes1(self) -> None: - filepath = f'{CWL_TESTDATA_PATH}/tools/expressions/outputs.cwl' - mainstr = _run(filepath, 'cwl', 'nextflow') - print(mainstr) - - # ensure heading - self.assertIn('// WARNING: DATATYPES', mainstr) - # ensure messages - self.assertIn('// out2: Could not parse datatype from javascript expression. Treated as generic File with secondaries.', mainstr) + + +class TestMessageLoggingGalaxy(unittest.TestCase): - def test_fallbacks(self) -> None: - raise NotImplementedError + def setUp(self) -> None: + _reset_global_settings() + + + +class TestMessageLoggingWDL(unittest.TestCase): - def test_experimental(self) -> None: - raise NotImplementedError + def setUp(self) -> None: + _reset_global_settings() + - def test_version(self) -> None: - raise NotImplementedError - - ### ----- FROM JANIS ----- ### class TestJanisToCWL(unittest.TestCase): diff --git a/janis_core/tests/testtools/__init__.py b/janis_core/tests/testtools/__init__.py index 7e1fd2a7d..93ceed470 100644 --- a/janis_core/tests/testtools/__init__.py +++ b/janis_core/tests/testtools/__init__.py @@ -53,6 +53,7 @@ ReplacedSecondaryOutputTestTool, SecondaryInputTestTool, InputQualityTestTool, + MessagingTestTool, ) from .components import ( diff --git a/janis_core/tests/testtools/misc_commandtools.py b/janis_core/tests/testtools/misc_commandtools.py index f2e94359c..e340f63f4 100644 --- a/janis_core/tests/testtools/misc_commandtools.py +++ b/janis_core/tests/testtools/misc_commandtools.py @@ -269,3 +269,25 @@ def container(self) -> str: def version(self) -> str: return "TEST" + +class MessagingTestTool(CommandTool): + def tool(self) -> str: + return "MessagingTestTool" + + def base_command(self) -> Optional[Union[str, List[str]]]: + return "echo" + + def arguments(self) -> List[ToolArgument]: + return [ToolArgument("arg", position=0)] + + def inputs(self) -> List[ToolInput]: + return [ToolInput("inp", str, position=0)] + + def outputs(self): + return [ToolOutput("out", Stdout)] + + def container(self) -> str: + return "ubuntu:latest" + + def version(self) -> str: + return "TEST" \ No newline at end of file diff --git a/janis_core/translations/common/preprocessing/builders/main.py b/janis_core/translations/common/preprocessing/builders/main.py index b88d1b60a..62004580a 100644 --- a/janis_core/translations/common/preprocessing/builders/main.py +++ b/janis_core/translations/common/preprocessing/builders/main.py @@ -1,10 +1,10 @@ from janis_core import Workflow, WorkflowBuilder -from janis_core import CommandTool, CommandToolBuilder +from janis_core import CommandTool, CommandToolBuilder, CodeTool from janis_core import Tool -def to_builders(entity: Tool) -> Tool: +def to_builders(entity: Tool) -> CommandToolBuilder | CodeTool | WorkflowBuilder: if isinstance(entity, Workflow): for step in entity.step_nodes.values(): step.tool = to_builders(step.tool) @@ -12,7 +12,7 @@ def to_builders(entity: Tool) -> Tool: entity = to_workflow_builder(entity) elif isinstance(entity, CommandTool) and not isinstance(entity, CommandToolBuilder): entity = to_commandtool_builder(entity) - return entity + return entity # type: ignore def to_workflow_builder(workflow: Workflow) -> WorkflowBuilder: # init WorkflowBuilder diff --git a/janis_core/translations/common/trace.py b/janis_core/translations/common/trace.py index 9d5f96206..39870b4c6 100644 --- a/janis_core/translations/common/trace.py +++ b/janis_core/translations/common/trace.py @@ -58,17 +58,17 @@ ) from janis_core.operators.stringformatter import StringFormatter from janis_core.workflow.workflow import InputNode -from janis_core import ToolInput, TInput, ToolArgument, ToolOutput, Tool, CommandTool, CodeTool +from janis_core import ToolInput, TInput, ToolArgument, ToolOutput, Tool, CommandTool, CommandToolBuilder, CodeTool from janis_core import translation_utils as utils def trace_entities(entity: Any, tool: Optional[Tool]=None) -> list[Any]: - tracer = EntityTracer(tool) + tracer = CompleteEntityTracer(tool) tracer.trace(entity) return tracer.entities def trace_entity_counts(entity: Any, tool: Optional[Tool]=None) -> dict[str, int]: - tracer = EntityTracer(tool) + tracer = CompleteEntityTracer(tool) tracer.trace(entity) counter: dict[str, int] = defaultdict(int) for e in tracer.entities: @@ -119,7 +119,6 @@ def trace_referenced_variables(entity: Any, tool: Optional[Tool]=None) -> set[st return tracer.variables - class Tracer(ABC): def __init__(self, tool: Optional[Tool]=None): @@ -310,7 +309,7 @@ def filename(self, entity: Filename) -> None: -class EntityTracer(Tracer): +class CompleteEntityTracer(Tracer): def __init__(self, tool: Optional[Tool]=None): super().__init__(tool) @@ -318,13 +317,7 @@ def __init__(self, tool: Optional[Tool]=None): self.is_first_call = True def trace(self, entity: Any) -> None: - ### CLASS SPECIFIC ### - # if self.is_first_call: - # self.is_first_call = False - # else: self.entities.append(entity) - - ### CONTINUE TRACING ### self.do_trace(entity) diff --git a/janis_core/translations/cwl/main.py b/janis_core/translations/cwl/main.py index baeecfa52..08aeea4b8 100644 --- a/janis_core/translations/cwl/main.py +++ b/janis_core/translations/cwl/main.py @@ -882,7 +882,7 @@ def stringify_translated_tool( formatted = cwl_format(formatted) # adding messages - loglines = load_loglines(category=ErrorCategory.SCRIPTING, tool_uuid=internal.uuid) + loglines = load_loglines(category=ErrorCategory.SCRIPTING, entity_uuids=set(internal.uuid)) return formatted diff --git a/janis_core/translations/translationbase.py b/janis_core/translations/translationbase.py index 34f5ab601..83b6d61d3 100644 --- a/janis_core/translations/translationbase.py +++ b/janis_core/translations/translationbase.py @@ -23,8 +23,7 @@ from janis_core.utils.logger import Logger from janis_core import settings -from janis_core.messages import inject_messages_tool -from janis_core.messages import inject_messages_workflow +from janis_core.messages import inject_messages from .common.todisk import write_tool_to_console from .common.todisk import write_tool_to_disk from .common.todisk import write_workflow_to_console @@ -187,7 +186,7 @@ def translate_workflow(self, wf: WorkflowBuilder) -> Any: internal, translated = self.main fn_main = self.workflow_filename(wf, is_main=True) str_main = self.stringify_translated_workflow(internal, translated) - str_main = inject_messages_workflow(internal, str_main) + str_main = inject_messages(internal, str_main) tup_main = (fn_main, str_main) # stringify tools (commandtools, pythontools) @@ -195,7 +194,7 @@ def translate_workflow(self, wf: WorkflowBuilder) -> Any: for internal, translated in self.tools: filename = self.tool_filename(internal) str_tool = self.stringify_translated_tool(internal, translated) - str_tool = inject_messages_tool(internal, str_tool) + str_tool = inject_messages(internal, str_tool) tup_tools.append((filename, str_tool)) # stringify subworkflows @@ -203,7 +202,7 @@ def translate_workflow(self, wf: WorkflowBuilder) -> Any: for internal, translated in self.subworkflows: filename = self.workflow_filename(internal) str_subwf = self.stringify_translated_workflow(internal, translated) - str_subwf = inject_messages_workflow(internal, str_subwf) + str_subwf = inject_messages(internal, str_subwf) tup_subworkflows.append((filename, str_subwf)) # stringify input config file @@ -251,7 +250,7 @@ def translate_tool(self, internal: CommandToolBuilder) -> str: # stringify output model str_tool = self.stringify_translated_tool(internal, translated) - str_tool = inject_messages_tool(internal, str_tool) + str_tool = inject_messages(internal, str_tool) # write to stdout / disk if settings.translate.TO_CONSOLE: @@ -274,7 +273,7 @@ def translate_code_tool(self, internal: CodeTool): """ translated = self.translate_code_tool_internal(internal) str_tool = self.stringify_translated_tool(internal, translated) - str_tool = inject_messages_tool(internal, str_tool) + str_tool = inject_messages(internal, str_tool) if settings.translate.TO_CONSOLE: print(str_tool) diff --git a/notes.txt b/notes.txt index 771b145ff..5a36f2270 100644 --- a/notes.txt +++ b/notes.txt @@ -3,6 +3,14 @@ -------------- --- GENERAL --- --------------- + +Translate units documentation: +- tell new user that for messaging to work, must generate CommandToolBuilder or CodeTool or WorkflowBuilder only! +- cannot use CommandTool or Workflow or WorkflowBase. + + +GO BACK TO: "if self.finish.node_type == NodeType.STEP:" + DONE (to test) - messages NXF output - messages CWl ingest @@ -11,12 +19,34 @@ DONE (to test) - CWL ingest edam formats - NEXT translate reflects new TranslatorBase interface -DOING -- messages CWl output (tool, workflow) -- messages WDL output (tool, workflow) -- messages NXF output (workflow) -- messages WDL ingest -- messages Galaxy ingest +doing +- WDL ingest + - do basic task parsing: inputs and outputs only. no command / base_command etc. + - keep workflow parsing as-is + - make the above work, add error handling (fallbacks) and message logging. + - once this is done, move to Task parsing (below). +- WDL Task parsing + - this seems very doable. + - uses a Lexer + - potentially after stringifying the WDL.Task.Command if this simplifies intermediate vars etc + - should have a parent func parse_task() which contains fallback + - TaskParserDefault: + - can_parse(): checks whether there are no temp variables and 1 command + - do_parse(): parses into typical janis structure with base_command etc. + - TaskParserArguments: + - can_parse(): always True + - do_parse(): inputs=super basic, no base_command, everything is arguments + - maybe this style is applicable for Galaxy? + - Note: result can also contain scripting similar to nextflow. can refernece any input or temp var in task scope. +- WDL Workflow parsing +- Adapt CWL translation: ShellCommandRequirement for relevant Janis tools (ingested via WDL TaskParserArguments) +- + +- messages WDL tool ingest +- messages WDL workflow ingest +- messages Galaxy tool ingest +- messages Galaxy workflow ingest + - make nextflow translate prescript & script better - prescript should handle getting the right values: - input default def input == params.NULL ? "default value" : input diff --git a/temp.py b/temp.py new file mode 100644 index 000000000..3563f38b6 --- /dev/null +++ b/temp.py @@ -0,0 +1,47 @@ + +from typing import Dict, List, Any, Optional, Union + +from janis_core.operators.logical import If +from janis_core.types import Filename + +from janis_core import ( + ToolOutput, + ToolInput, + CommandTool, + InputSelector, + WildcardSelector, + StringFormatter, + ToolArgument, + InputDocumentation, + InputQualityType, +) + +from janis_core.types import ( + Stdout +) + +class MessagingTestTool(CommandTool): + def tool(self) -> str: + return "MessagingTestTool" + + def base_command(self) -> Optional[Union[str, List[str]]]: + return "echo" + + def arguments(self) -> List[ToolArgument]: + return [ToolArgument("arg", position=0)] + + def inputs(self) -> List[ToolInput]: + return [ToolInput("inp", str, position=0)] + + def outputs(self): + return [ToolOutput("out", Stdout)] + + def container(self) -> str: + return "ubuntu:latest" + + def version(self) -> str: + return "TEST" + +mytool = MessagingTestTool() + +print() \ No newline at end of file From d9403524ed1f0be74a0f8e10ee2079244d6dc263 Mon Sep 17 00:00:00 2001 From: Grace Hall <graceavahall@gmail.com> Date: Mon, 4 Dec 2023 02:34:43 +1100 Subject: [PATCH 21/32] ugh --- janis_core/graph/steptaginput.py | 2 + janis_core/ingestion/common/__init__.py | 0 janis_core/ingestion/{cwl => common}/graph.py | 104 +- .../ingestion/{cwl => common}/identifiers.py | 53 +- janis_core/ingestion/cwl/main.py | 36 +- janis_core/ingestion/cwl/parsing/tool.py | 10 +- janis_core/ingestion/cwl/parsing/workflow.py | 10 +- janis_core/ingestion/cwl/types.py | 4 +- janis_core/ingestion/wdl/main.py | 856 ++++++++--------- .../ingestion/wdl/parsing/EntityParser.py | 52 + janis_core/ingestion/wdl/parsing/__init__.py | 22 +- .../ingestion/wdl/parsing/command/__init__.py | 4 +- .../parsing/command/{main.py => helpers.py} | 18 - .../ingestion/wdl/parsing/command/parsers.py | 97 +- .../ingestion/wdl/parsing/expressions.py | 306 +++--- .../ingestion/wdl/parsing/requirements.py | 102 -- janis_core/ingestion/wdl/parsing/task.py | 65 -- .../ingestion/wdl/parsing/task/__init__.py | 1 + janis_core/ingestion/wdl/parsing/task/io.py | 51 + janis_core/ingestion/wdl/parsing/task/main.py | 129 +++ .../wdl/parsing/task/requirements.py | 189 ++++ janis_core/ingestion/wdl/parsing/types.py | 58 +- .../wdl/parsing/workflow/__init__.py | 0 .../ingestion/wdl/parsing/workflow/explore.py | 65 ++ .../ingestion/wdl/parsing/workflow/main.py | 145 +++ janis_core/operators/operator.py | 8 + janis_core/settings/ingest/__init__.py | 1 + janis_core/settings/ingest/wdl.py | 4 + .../cwl/workflows/CroMaSt/translated/main.nf | 74 -- .../workflow/translated/main.nf | 3 +- janis_core/tests/data/wdl/ATAC.wdl | 745 +++++++++++++++ janis_core/tests/data/wdl/TrimAdapters.wdl | 1 + janis_core/tests/data/wdl/mutect2.wdl | 886 ++++++++++++++++++ .../tests/data/wdl/outputs/bcftools_merge.wdl | 33 + janis_core/tests/data/wdl/outputs/bwa.wdl | 113 +++ .../tests/data/wdl/outputs/select_all.wdl | 11 + .../tests/data/wdl/outputs/tasks_reports.wdl | 534 +++++++++++ .../data/wdl/requirements/TrimAdapters.wdl | 65 ++ .../wdl/requirements/alignment_metrics.wdl | 80 ++ .../data/wdl/requirements/annotsv_filter.wdl | 54 ++ .../tests/data/wdl/requirements/bwa.wdl | 113 +++ janis_core/tests/test_conditionals.py | 10 +- janis_core/tests/test_ingestion_cwl.py | 48 +- janis_core/tests/test_ingestion_galaxy.py | 2 +- janis_core/tests/test_ingestion_wdl.py | 436 ++++++++- janis_core/tests/test_janis_translate.py | 15 +- janis_core/tests/test_translation_wdl.py | 1 + janis_core/tests/test_validators.py | 7 +- janis_core/tests/test_workflow.py | 13 +- notes.txt | 17 +- 50 files changed, 4620 insertions(+), 1033 deletions(-) create mode 100644 janis_core/ingestion/common/__init__.py rename janis_core/ingestion/{cwl => common}/graph.py (82%) rename janis_core/ingestion/{cwl => common}/identifiers.py (59%) create mode 100644 janis_core/ingestion/wdl/parsing/EntityParser.py rename janis_core/ingestion/wdl/parsing/command/{main.py => helpers.py} (77%) delete mode 100644 janis_core/ingestion/wdl/parsing/requirements.py delete mode 100644 janis_core/ingestion/wdl/parsing/task.py create mode 100644 janis_core/ingestion/wdl/parsing/task/__init__.py create mode 100644 janis_core/ingestion/wdl/parsing/task/io.py create mode 100644 janis_core/ingestion/wdl/parsing/task/main.py create mode 100644 janis_core/ingestion/wdl/parsing/task/requirements.py create mode 100644 janis_core/ingestion/wdl/parsing/workflow/__init__.py create mode 100644 janis_core/ingestion/wdl/parsing/workflow/explore.py create mode 100644 janis_core/ingestion/wdl/parsing/workflow/main.py create mode 100644 janis_core/settings/ingest/wdl.py delete mode 100644 janis_core/tests/data/cwl/workflows/CroMaSt/translated/main.nf create mode 100644 janis_core/tests/data/wdl/ATAC.wdl create mode 100644 janis_core/tests/data/wdl/mutect2.wdl create mode 100644 janis_core/tests/data/wdl/outputs/bcftools_merge.wdl create mode 100644 janis_core/tests/data/wdl/outputs/bwa.wdl create mode 100644 janis_core/tests/data/wdl/outputs/select_all.wdl create mode 100644 janis_core/tests/data/wdl/outputs/tasks_reports.wdl create mode 100644 janis_core/tests/data/wdl/requirements/TrimAdapters.wdl create mode 100644 janis_core/tests/data/wdl/requirements/alignment_metrics.wdl create mode 100644 janis_core/tests/data/wdl/requirements/annotsv_filter.wdl create mode 100644 janis_core/tests/data/wdl/requirements/bwa.wdl diff --git a/janis_core/graph/steptaginput.py b/janis_core/graph/steptaginput.py index edd117856..24b7e4c75 100644 --- a/janis_core/graph/steptaginput.py +++ b/janis_core/graph/steptaginput.py @@ -129,6 +129,8 @@ def add_source(self, operator: Selector, should_scatter: Optional[bool]=None) -> stype = get_instantiated_type(operator.returntype()) if self.ftag: + if self.ftag not in self.finish.inputs(): + raise RuntimeError(f'no step exists with tag: {self.ftag}') tinput = self.finish.inputs()[self.ftag] else: tinput = first_value(self.finish.inputs()) diff --git a/janis_core/ingestion/common/__init__.py b/janis_core/ingestion/common/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/janis_core/ingestion/cwl/graph.py b/janis_core/ingestion/common/graph.py similarity index 82% rename from janis_core/ingestion/cwl/graph.py rename to janis_core/ingestion/common/graph.py index 0e12462c5..08a64df45 100644 --- a/janis_core/ingestion/cwl/graph.py +++ b/janis_core/ingestion/common/graph.py @@ -1,6 +1,7 @@ import copy +from typing import Any from janis_core.utils.errors import UnsupportedError @@ -14,58 +15,18 @@ InputQualityType, ) +from janis_core import settings from .identifiers import get_id_entity from .identifiers import get_id_path -def get_janis_wf_sources(wf: Workflow, sources: str | list[str]) -> list[InputNode | StepOutputSelector]: - """ - each source is a workflow input, step output, or complex expression. - input nodes will all be parsed into janis wf at this stage. - we can check if the source is an input on the janis wf, then if not, must be a step output. - """ - out: list[InputNode | StepOutputSelector] = [] - - if isinstance(sources, str): - sources = [sources] - - for src in sources: - # get the wfinp / step output identifier - identifier = get_id_entity(src) - - # is complex expression? - if identifier.startswith("$("): - raise UnsupportedError( - f"This script can't parse expressions in the step input {step_input}" - ) - - # is step output? - # if referencing step output, that step will have already been parsed into the janis wf - if get_id_path(src) and get_id_path(src) in wf.step_nodes: - stp_id = get_id_path(src) - out_id = get_id_entity(src) - stp = wf.step_nodes[stp_id] - selector = stp.get_item(out_id) - out.append(selector) - - # is wf input? - elif identifier in wf.input_nodes: - resolved_src = wf[identifier] - out.append(resolved_src) - - else: - raise NotImplementedError - - return out - - -def add_step_edges_to_graph(jstep: StepNode, wf: Workflow) -> None: - connections = jstep.tool.connections +def add_step_edges_to_graph(jstep: StepNode, inputs_dict: dict[str, Any], wf: Workflow) -> None: + jstep.tool.connections = inputs_dict tinputs = jstep.tool.inputs_map() jstep.sources = {} added_edges = [] - for (k, v) in connections.items(): + for (k, v) in inputs_dict.items(): # static values provided when creating step. # janis wants to create a workflow input for these. @@ -102,4 +63,57 @@ def add_step_edges_to_graph(jstep: StepNode, wf: Workflow) -> None: for e in added_edges: si = e.finish.sources[e.ftag] if e.ftag else first_value(e.finish.sources) wf.has_multiple_inputs = wf.has_multiple_inputs or si.multiple_inputs - \ No newline at end of file + +def get_janis_wf_sources(wf: Workflow, sources: str | list[str]) -> list[InputNode | StepOutputSelector]: + """ + each source is a workflow input, step output, or complex expression. + input nodes will all be parsed into janis wf at this stage. + we can check if the source is an input on the janis wf, then if not, must be a step output. + """ + if settings.ingest.SOURCE == 'cwl': + return _get_janis_wf_sources_cwl(wf, sources) + elif settings.ingest.SOURCE == 'wdl': + return _get_janis_wf_sources_wdl(wf, sources) + else: + raise NotImplementedError + + + +def _get_janis_wf_sources_wdl(wf: Workflow, sources: str | list[str]) -> list[InputNode | StepOutputSelector]: + raise NotImplementedError + +def _get_janis_wf_sources_cwl(wf: Workflow, sources: str | list[str]) -> list[InputNode | StepOutputSelector]: + out: list[InputNode | StepOutputSelector] = [] + + if isinstance(sources, str): + sources = [sources] + + for src in sources: + # get the wfinp / step output identifier + identifier = get_id_entity(src) + + # is complex expression? + if identifier.startswith("$("): + raise UnsupportedError( + f"This script can't parse expressions in the step input {step_input}" + ) + + # is step output? + # if referencing step output, that step will have already been parsed into the janis wf + if get_id_path(src) and get_id_path(src) in wf.step_nodes: + stp_id = get_id_path(src) + out_id = get_id_entity(src) + stp = wf.step_nodes[stp_id] + selector = stp.get_item(out_id) + out.append(selector) + + # is wf input? + elif identifier in wf.input_nodes: + resolved_src = wf[identifier] + out.append(resolved_src) + + else: + raise NotImplementedError + + return out + diff --git a/janis_core/ingestion/cwl/identifiers.py b/janis_core/ingestion/common/identifiers.py similarity index 59% rename from janis_core/ingestion/cwl/identifiers.py rename to janis_core/ingestion/common/identifiers.py index 6f993b8ba..628f18b3a 100644 --- a/janis_core/ingestion/cwl/identifiers.py +++ b/janis_core/ingestion/common/identifiers.py @@ -3,30 +3,51 @@ from typing import Optional from dataclasses import dataclass +from janis_core import settings -def get_id_filename(identifier: str) -> str: - cwl_ref = get_cwl_reference(identifier) - if not cwl_ref.filename: - print() - assert(cwl_ref.filename) - return cwl_ref.filename - -def get_id_path(identifier: str) -> Optional[str]: - cwl_ref = get_cwl_reference(identifier) - return cwl_ref.internal_path - def get_id_entity(identifier: str) -> str: + if settings.ingest.SOURCE == 'cwl': + return _get_id_entity_cwl(identifier) + elif settings.ingest.SOURCE == 'wdl': + return _get_id_entity_wdl(identifier) + else: + raise NotImplementedError + +def _get_id_entity_wdl(identifier: str) -> str: + return identifier + +def _get_id_entity_cwl(identifier: str) -> str: cwl_ref = get_cwl_reference(identifier) assert(cwl_ref.entity) return cwl_ref.entity +def get_id_filename(identifier: str) -> str: + if settings.ingest.SOURCE == 'cwl': + cwl_ref = get_cwl_reference(identifier) + if not cwl_ref.filename: + print() + assert(cwl_ref.filename) + return cwl_ref.filename + else: + raise NotImplementedError + +def get_id_path(identifier: str) -> Optional[str]: + if settings.ingest.SOURCE == 'cwl': + cwl_ref = get_cwl_reference(identifier) + return cwl_ref.internal_path + else: + raise NotImplementedError + def remove_output_name_from_output_source(identifier: str) -> str: - if '#' not in identifier: - raise RuntimeError - block1, block2 = identifier.split('#') - block2 = block2.split('/', 1)[1] - return f'{block1}#{block2}' + if settings.ingest.SOURCE == 'cwl': + if '#' not in identifier: + raise RuntimeError + block1, block2 = identifier.split('#') + block2 = block2.split('/', 1)[1] + return f'{block1}#{block2}' + else: + raise NotImplementedError diff --git a/janis_core/ingestion/cwl/main.py b/janis_core/ingestion/cwl/main.py index 673fd90a0..1345ab3cd 100755 --- a/janis_core/ingestion/cwl/main.py +++ b/janis_core/ingestion/cwl/main.py @@ -16,20 +16,20 @@ from janis_core.messages import log_message from janis_core.messages import ErrorCategory -from .identifiers import get_id_filename -from .identifiers import get_id_entity +from ..common.identifiers import get_id_filename +from ..common.identifiers import get_id_entity from .loading import load_cwl_version from .loading import load_cwl_utils_from_version from .loading import load_cwl_document from .loading import convert_etool_to_cltool -from .graph import add_step_edges_to_graph +from ..common.graph import add_step_edges_to_graph from .parsing.tool import CLTParser from .parsing.workflow import WorkflowInputParser from .parsing.workflow import WorkflowOutputParser from .parsing.workflow import WorkflowStepInputsParser -from .parsing.workflow import WorkflowStepAttributesParser +from .parsing.workflow import WorkflowStepModifierParser @@ -97,15 +97,18 @@ def ingest_workflow(self, workflow: Any): # first step ingest pass for cwl_step in workflow.steps: - j_step = self.ingest_workflow_step(wf, cwl_step) + self.ingest_workflow_step(wf, cwl_step) # second step ingest pass for cwl_step in workflow.steps: - self.ingest_workflow_step_attributes(wf, j_step, cwl_step) + j_step = wf.step_nodes[get_id_entity(cwl_step.id)] + self.ingest_workflow_step_inputs(wf, j_step, cwl_step) # third step ingest pass for cwl_step in workflow.steps: - self.ingest_workflow_step_inputs(wf, j_step, cwl_step) + j_step = wf.step_nodes[get_id_entity(cwl_step.id)] + self.ingest_workflow_step_modifiers(wf, j_step, cwl_step) + for out in workflow.outputs: self.ingest_workflow_output(wf, out) @@ -138,25 +141,24 @@ def ingest_workflow_step(self, wf: j.Workflow, cwlstp: Any) -> StepNode: ignore_missing=True ) - def ingest_workflow_step_attributes(self, wf: j.Workflow, j_step: Any, cwlstp: Any) -> None: - parser = WorkflowStepAttributesParser(cwl_utils=self.cwl_utils, entity=cwlstp, wf=wf, entity_uuid=j_step.uuid) + def ingest_workflow_step_modifiers(self, wf: j.Workflow, j_step: Any, cwlstp: Any) -> None: + parser = WorkflowStepModifierParser(cwl_utils=self.cwl_utils, entity=cwlstp, wf=wf, entity_uuid=j_step.uuid) parser.parse() if parser.scatter is not None: - jstep.scatter = parser.scatter + j_step.scatter = parser.scatter wf.has_scatter = True if parser.when is not None: - jstep.when = parser.when + j_step.when = parser.when def ingest_workflow_step_inputs(self, wf: j.Workflow, j_step: Any, cwlstp: Any) -> None: parser = WorkflowStepInputsParser(cwl_utils=self.cwl_utils, entity=cwlstp, wf=wf, entity_uuid=j_step.uuid) inputs_dict = parser.parse() - jstep.tool.connections = inputs_dict - add_step_edges_to_graph(jstep, wf) - self.ingest_workflow_step_inputs_pickvalue(jstep, cwlstp) + add_step_edges_to_graph(j_step, inputs_dict, wf) + self.ingest_workflow_step_inputs_pickvalue(j_step, cwlstp) - def ingest_workflow_step_inputs_pickvalue(self, jstep: StepNode, cwlstp: Any) -> None: + def ingest_workflow_step_inputs_pickvalue(self, j_step: StepNode, cwlstp: Any) -> None: operator_map = { 'first_non_null': j.FirstOperator, 'the_only_non_null': j.FirstOperator, @@ -166,11 +168,11 @@ def ingest_workflow_step_inputs_pickvalue(self, jstep: StepNode, cwlstp: Any) -> # new: multiple input sources with selection method for inp in cwlstp.in_: inp_identifier = get_id_entity(inp.id) - if inp_identifier not in jstep.sources: + if inp_identifier not in j_step.sources: continue # must have more than one source - sti = jstep.sources[inp_identifier] + sti = j_step.sources[inp_identifier] if len(sti.source_map) <= 1: continue diff --git a/janis_core/ingestion/cwl/parsing/tool.py b/janis_core/ingestion/cwl/parsing/tool.py index 4faf88e45..7b7b84799 100644 --- a/janis_core/ingestion/cwl/parsing/tool.py +++ b/janis_core/ingestion/cwl/parsing/tool.py @@ -13,8 +13,8 @@ from janis_core.messages import ErrorCategory from ..types import ingest_cwl_type -from ..identifiers import get_id_entity -from ..identifiers import get_id_filename +from janis_core.ingestion.common.identifiers import get_id_entity +from janis_core.ingestion.common.identifiers import get_id_filename from ..expressions import parse_expression @@ -486,7 +486,6 @@ def __init__(self, cwl_utils: Any, clt: Any, req: Any, tool_uuid: str, is_expres self.r_name, self.r_name_ok = None, True # want to calculate these fields - self.error_msgs: list[str] = [] self.files_to_create: list[Tuple[str, str | Selector]] = [] self.directories_to_create: list[str | Selector] = [] @@ -810,7 +809,10 @@ def do_parse_streams(self, identifier: str, dtype: DataType) -> ToolOutput: elif self.clt.stderr is not None: expr, success = parse_expression(self.clt.stderr, self.tool_uuid) else: - raise RuntimeError + if dtype == Stdout: + expr = 'stdout.txt' + else: + expr = 'stderr.txt' dtype = File() selector = expr diff --git a/janis_core/ingestion/cwl/parsing/workflow.py b/janis_core/ingestion/cwl/parsing/workflow.py index b381d4941..249b8b7ae 100644 --- a/janis_core/ingestion/cwl/parsing/workflow.py +++ b/janis_core/ingestion/cwl/parsing/workflow.py @@ -10,9 +10,9 @@ from janis_core import ScatterDescription, ScatterMethod from ..types import ingest_cwl_type -from ..identifiers import get_id_entity -from ..identifiers import remove_output_name_from_output_source -from ..graph import get_janis_wf_sources +from janis_core.ingestion.common.identifiers import get_id_entity +from janis_core.ingestion.common.identifiers import remove_output_name_from_output_source +from janis_core.ingestion.common.graph import get_janis_wf_sources from ..expressions import parse_expression from janis_core import settings @@ -275,14 +275,14 @@ def resolve_value_from(self, source: Any) -> Any: inp_identifier = get_id_entity(inp.id) msg = f"'{inp_identifier}' input value contains untranslated javascript expression: {value}" - self.error_msgs.append(msg) + log_message(self.entity_uuid, msg, ErrorCategory.SCRIPTING) return value @dataclass -class WorkflowStepAttributesParser(WorkflowEntityParser): +class WorkflowStepModifierParser(WorkflowEntityParser): """parses janis step to return a ScatterDescription.""" scatter: Optional[ScatterDescription] = None diff --git a/janis_core/ingestion/cwl/types.py b/janis_core/ingestion/cwl/types.py index 61fda5a81..d5fae1b21 100644 --- a/janis_core/ingestion/cwl/types.py +++ b/janis_core/ingestion/cwl/types.py @@ -3,7 +3,7 @@ import sys import inspect -from janis_core.ingestion.cwl.identifiers import get_id_entity +from janis_core.ingestion.common.identifiers import get_id_entity from janis_core.messages import ErrorCategory from janis_core.messages import log_message from janis_core.utils.errors import UnsupportedError @@ -165,6 +165,8 @@ def __init__( @property def entity_name(self) -> str: + if self.cwl_entity is None: + return 'entity' return get_id_entity(self.cwl_entity.id) def preprocess_secondary_file_patterns(self, secondaries: Optional[str | list[str]]) -> list[str]: diff --git a/janis_core/ingestion/wdl/main.py b/janis_core/ingestion/wdl/main.py index c678ae56b..c7edd666f 100755 --- a/janis_core/ingestion/wdl/main.py +++ b/janis_core/ingestion/wdl/main.py @@ -1,17 +1,19 @@ #!/usr/bin/env python3 -from janis_core.messages import log_message -from janis_core.messages import ErrorCategory import functools import os -import re -from types import LambdaType - -from typing import List, Union, Optional, Callable import WDL +from typing import Any -import janis_core as j +from .parsing.workflow.explore import get_entities +from janis_core import WorkflowBuilder, CommandToolBuilder +from janis_core.workflow.workflow import InputNode, StepNode, OutputNode +from janis_core.ingestion.common.graph import add_step_edges_to_graph +from .parsing import WorkflowInputParser +from .parsing import WorkflowStepModifierParser +from .parsing import WorkflowStepInputParser +from .parsing import WorkflowOutputParser def error_boundary(return_value=None): def try_catch_translate_inner(func): @@ -41,435 +43,176 @@ def from_doc(doc: str, base_uri=None): d = WDL.load(abs_path) parser = WdlParser() - if d.workflow: - return parser.from_loaded_object(d.workflow) - + return parser.ingest(d.workflow) tasks = [] for t in d.tasks: - tasks.append(parser.from_loaded_object(t)) + tasks.append(parser.ingest(t)) return tasks[0] - def from_loaded_object(self, obj: WDL.SourceNode): + def ingest(self, obj: WDL.SourceNode): """Main ingest entry point""" - if isinstance(obj, WDL.Task): - return self.from_loaded_task(obj) - elif isinstance(obj, WDL.Workflow): - return self.from_loaded_workflow(obj) + if isinstance(obj, WDL.Tree.Task): + return self.ingest_task(obj) + elif isinstance(obj, WDL.Tree.Workflow): + return self.ingest_workflow(obj) else: raise RuntimeError(f"Unhandled WDL object type: {type(obj)}") - - def from_loaded_workflow(self, obj: WDL.Workflow): - """Workflow ingest entry point""" - wf = j.WorkflowBuilder(identifier=obj.name) - - for inp in obj.inputs: - self.add_decl_to_wf_input(wf, inp) - - for call in obj.body: - self.add_call_to_wf(wf, call) - - return wf - - def workflow_selector_getter(self, wf, exp: str): - if "." in exp: - node, *tag = exp.split(".") - if len(tag) > 1: - raise Exception(f"Couldn't parse source ID: {exp} - too many '.'") - return wf[node][tag[0]] - - return wf[exp] - - @error_boundary() - def add_call_to_wf( - self, - wf: j.WorkflowBase, - call: WDL.WorkflowNode, - condition=None, - foreach=None, - expr_alias: str = None, - ): - def selector_getter(exp): - if exp == expr_alias: - return j.ForEachSelector() - - return self.workflow_selector_getter(wf, exp) - - if isinstance(call, WDL.Call): - task = self.from_loaded_object(call.callee) - inp_map = {} - for k, v in call.inputs.items(): - new_expr = self.translate_expr(v, input_selector_getter=selector_getter) - - inp_map[k] = new_expr - - return wf.step(call.name, task(**inp_map), when=condition, _foreach=foreach) - - elif isinstance(call, WDL.Conditional): - # if len(call.body) > 1: - # raise NotImplementedError( - # f"Janis can't currently support more than one call inside the conditional: {', '.join(str(c) for c in call.body)}") - for inner_call in call.body: - # inner_call = call.body[0] - self.add_call_to_wf( - wf, - inner_call, - condition=self.translate_expr( - call.expr, input_selector_getter=selector_getter - ), - expr_alias=expr_alias, - foreach=foreach, - ) - elif isinstance(call, WDL.Scatter): - # for scatter, we want to take the call.expr, and pass it to a step.foreach - - foreach = self.translate_expr(call.expr) - - scar_var_type = self.parse_wdl_type(call.expr.type) - if isinstance(scar_var_type, WDL.Type.Array): - scar_var_type = scar_var_type.item_type - - # when we unwrap each step-input to the workflow, we want to replace 'call.variable' with - # lambda el: <operation with call.variable substituted for {el}> - # if call.variable not in wf.input_nodes: - # wf.input(call.variable, scar_var_type) - for inner_call in call.body: - self.add_call_to_wf( - wf, inner_call, foreach=foreach, expr_alias=call.variable - ) - - elif isinstance(call, WDL.Decl): - self.add_decl_to_wf_input(wf, call) - else: - raise NotImplementedError(f"body type: {type(call)}") - - def add_decl_to_wf_input(self, wf: j.WorkflowBase, inp: WDL.Decl): - default = None - if inp.expr: - - def selector_getter(exp): - return self.workflow_selector_getter(wf, exp) - - default = self.translate_expr( - inp.expr, input_selector_getter=selector_getter - ) - - return wf.input(inp.name, self.parse_wdl_type(inp.type, uuid=inp.name), default=default) - - @classmethod - def container_from_runtime(cls, runtime, inputs: List[WDL.Decl]): - container = runtime.get("container", runtime.get("docker")) - if isinstance(container, WDL.Expr.Get): - # relevant input - inp = [i.expr for i in inputs if i.name == str(container.expr)] - if len(inp) > 0: - container = inp[0] - else: - j.Logger.warn( - f"Expression for determining containers was '{container}' " - f"but couldn't find input called {str(container.expr)}" - ) - if isinstance(container, WDL.Expr.String): - container = container.literal - if isinstance(container, WDL.Value.String): - container = container.value - if container is None: - container = "ubuntu:latest" - if not isinstance(container, str): - j.Logger.warn( - f"Expression for determining containers ({container}) are not supported in Janis, using ubuntu:latest" - ) - container = "ubuntu:latest" - return container - - def parse_memory_requirement(self, value): - s = self.translate_expr(value) - if s is None: - return 1.074 - elif isinstance(s, str): - if s.lower().endswith("g"): - return float(s[:-1].strip()) - if s.lower().endswith("gb"): - return float(s[:-2].strip()) - elif s.lower().endswith("gib"): - return float(s[:-3].strip()) * 1.074 - elif s.lower().endswith("mb"): - return float(s[:-2].strip()) / 1000 - elif s.lower().endswith("mib"): - return float(s[:-3].strip()) / 1024 - raise Exception(f"Memory type {s}") - elif isinstance(s, (float, int)): - # in bytes? - return s / (1024 ** 3) - elif isinstance(s, j.Selector): - return s - raise Exception(f"Couldn't recognise memory requirement '{value}'") - - def parse_disk_requirement(self, value): - s = self.translate_expr(value) - if s is None: - return None - if isinstance(s, str): - try: - return int(s) - except ValueError: - pass - pattern_matcher = re.match(r"local-disk (\d+) .*", s) - if not pattern_matcher: - raise Exception(f"Couldn't recognise disk type '{value}'") - s = pattern_matcher.groups()[0] - try: - return int(s) - except ValueError: - pass - if s.lower().endswith("gb"): - return float(s[:-2].strip()) - elif s.lower().endswith("gib"): - return float(s[:-3].strip()) * 1.074 - elif s.lower().endswith("mb"): - return float(s[:-2].strip()) / 1000 - elif s.lower().endswith("mib"): - return float(s[:-3].strip()) / 1024 - raise Exception(f"Disk type type {s}") - elif isinstance(s, (float, int)): - # in GiB - return s * 1.07374 - elif isinstance(s, j.Selector): - return s - elif s is None: - return 2.14748 # 2 GiB - raise Exception(f"Couldn't recognise memory requirement '{value}'") - - def from_loaded_task(self, obj: WDL.Task): + + def ingest_task(self, obj) -> CommandToolBuilder: """Tool ingest entry point""" - # TODO everything here needs error handling & logging. - # TODO structure like cwl parsing, except for command (should parse all base_command, inputs, outputs) - cmdtool = j.CommandToolBuilder( - tool=obj.name, - version='DEV', - container='ubuntu:latest', - base_command=None, - inputs=[], - outputs=[] + from .parsing import parse_task + return parse_task(obj) + + def ingest_workflow(self, wdl_wf) -> WorkflowBuilder: + """Workflow ingest entry point""" + entities = get_entities(wdl_wf) + janis_wf = WorkflowBuilder(identifier=wdl_wf.name) + self.ingest_workflow_inputs(wdl_wf, janis_wf, entities) + self.ingest_workflow_steps(wdl_wf, janis_wf, entities) + self.ingest_workflow_outputs(wdl_wf, janis_wf, entities) + return janis_wf + + def ingest_workflow_inputs(self, wdl_wf, janis_wf, entities) -> None: + for inp in entities["input"]: + self.ingest_workflow_input(wdl_wf, janis_wf, inp) + + def ingest_workflow_input(self, wdl_wf, janis_wf, wdl_inp) -> InputNode: + parser = WorkflowInputParser(wdl_wf, janis_wf, wdl_inp) # type: ignore + return parser.parse() + + def ingest_workflow_steps(self, wdl_wf, janis_wf, entities) -> None: + for inv_call in entities['call']: + self.ingest_workflow_step(wdl_wf, janis_wf, inv_call) + for inv_call in entities['call']: + self.ingest_workflow_step_inputs(wdl_wf, janis_wf, inv_call) + for inv_call in entities['call']: + self.ingest_workflow_step_modifiers(wdl_wf, janis_wf, inv_call) + + def ingest_workflow_step(self, wdl_wf, janis_wf, inv_call) -> StepNode: + call = inv_call.call + task = self.ingest(call.callee) + return janis_wf.step( + identifier=call.name, + tool=task, + ignore_missing=True ) - # TODO something like this: - # parser = CommandParser() - # cmdtool._inputs, cmdtool.base_command, cmdtool._outputs = parser.parse() - - cmdtool._base_command = self.parse_command_tool_base_command(obj) # type: ignore - cmdtool._container = self.container_from_runtime(obj.runtime, inputs=obj.inputs) # type: ignore - - # inputs - for wdl_inp in obj.inputs: - if wdl_inp.name.startswith("runtime_"): - continue - j_inp = self.parse_command_tool_input(wdl_inp) - if j_inp is not None: - cmdtool._inputs.append(j_inp) + + def ingest_workflow_step_inputs(self, wdl_wf, janis_wf, inv_call) -> StepNode: + call = inv_call.call + inp_map = {} + for k, v in call.inputs.items(): + parser = WorkflowStepInputParser(wdl_wf, janis_wf, v) + inp_map[k] = parser.parse() + if call.name == 'samples': + print() + inputs_dict = inp_map + jstep = janis_wf[call.name] + add_step_edges_to_graph(jstep, inputs_dict, janis_wf) + return jstep + + def ingest_workflow_step_modifiers(self, wdl_wf, janis_wf, inv_call) -> StepNode: + parser = WorkflowStepModifierParser(wdl_wf, janis_wf, inv_call) + parser.parse() - # outputs - for wdl_out in obj.outputs: - j_out = self.parse_command_tool_output(wdl_out) - if j_out is not None: - cmdtool._outputs.append(j_out) + jstep = janis_wf[inv_call.call.name] + if parser.scatter is not None: + jstep.scatter = parser.scatter + janis_wf.has_scatter = True + if parser.when is not None: + jstep.when = parser.when - # files to create - cmdtool._files_to_create = {"script.sh": self.translate_expr(obj.command)} - cmdtool._memory = self.parse_memory_requirement(obj.runtime.get("memory")) - cpus = self.translate_expr(obj.runtime.get("cpu")) - if isinstance(cpus, str): - cpus = int(cpus) - cmdtool._cpus = cpus - cmdtool._disk = self.parse_disk_requirement(obj.runtime.get("disks")) - - return cmdtool - - def parse_command_tool_base_command(self, obj: WDL.Task) -> list[str]: - return ["sh", "script.sh"] - - def translate_expr( - self, expr: WDL.Expr.Base, input_selector_getter: Callable[[str], any] = None - ) -> Optional[Union[j.Selector, List[j.Selector], int, str, float, bool]]: - if expr is None: - return None - - tp = lambda exp: self.translate_expr( - exp, input_selector_getter=input_selector_getter - ) + return jstep + + def ingest_workflow_outputs(self, wdl_wf, janis_wf, entities) -> None: + for out in entities["output"]: + self.ingest_workflow_output(wdl_wf, janis_wf, out) + + def ingest_workflow_output(self, wdl_wf, janis_wf, wd_out) -> OutputNode: + parser = WorkflowOutputParser(wdl_wf, janis_wf, wd_out) + return parser.parse() + + + + # @error_boundary() + # def add_call_to_wf( + # self, + # wf: j.WorkflowBase, + # call: WDL.WorkflowNode, + # condition=None, + # foreach=None, + # expr_alias: str = None, + # ): + + # def selector_getter(exp): + # if exp == expr_alias: + # return j.ForEachSelector() + + # return self.workflow_selector_getter(wf, exp) + + # if isinstance(call, WDL.Call): + # task = self.ingest(call.callee) + # inp_map = {} + # for k, v in call.inputs.items(): + # new_expr = self.translate_expr(v, input_selector_getter=selector_getter) + # inp_map[k] = new_expr + # return wf.step(call.name, task(**inp_map), when=condition, _foreach=foreach) + + # elif isinstance(call, WDL.Conditional): + # # if len(call.body) > 1: + # # raise NotImplementedError( + # # f"Janis can't currently support more than one call inside the conditional: {', '.join(str(c) for c in call.body)}") + # for inner_call in call.body: + # # inner_call = call.body[0] + # self.add_call_to_wf( + # wf, + # inner_call, + # condition=self.translate_expr( + # call.expr, input_selector_getter=selector_getter + # ), + # expr_alias=expr_alias, + # foreach=foreach, + # ) + # elif isinstance(call, WDL.Scatter): + # # for scatter, we want to take the call.expr, and pass it to a step.foreach + + # foreach = self.translate_expr(call.expr) + + # scar_var_type = self.parse_wdl_type(call.expr.type) + # if isinstance(scar_var_type, WDL.Type.Array): + # scar_var_type = scar_var_type.item_type + + # # when we unwrap each step-input to the workflow, we want to replace 'call.variable' with + # # lambda el: <operation with call.variable substituted for {el}> + # # if call.variable not in wf.input_nodes: + # # wf.input(call.variable, scar_var_type) + # for inner_call in call.body: + # self.add_call_to_wf( + # wf, inner_call, foreach=foreach, expr_alias=call.variable + # ) + + # elif isinstance(call, WDL.Decl): + # self.add_decl_to_wf_input(wf, call) + # else: + # raise NotImplementedError(f"body type: {type(call)}") + + # def add_decl_to_wf_input(self, wf: j.WorkflowBase, inp: WDL.Decl): + # default = None + # if inp.expr: + + # def selector_getter(exp): + # return self.workflow_selector_getter(wf, exp) + + # default = self.translate_expr( + # inp.expr, input_selector_getter=selector_getter + # ) + + # return wf.input(inp.name, self.parse_wdl_type(inp.type, uuid=inp.name), default=default) + + + - if isinstance(expr, WDL.Expr.Array): - # a literal array - return [self.translate_expr(e) for e in expr.items] - if isinstance(expr, WDL.Expr.String): - return self.translate_wdl_string(expr) - elif isinstance(expr, (WDL.Expr.Int, WDL.Expr.Boolean, WDL.Expr.Float)): - return expr.literal.value - if isinstance(expr, WDL.Expr.Placeholder): - return self.translate_expr(expr.expr) - if isinstance(expr, WDL.Expr.IfThenElse): - return j.If(tp(expr.condition), tp(expr.consequent), tp(expr.alternative)) - elif isinstance(expr, WDL.Expr.Get): - n = str(expr.expr) - if input_selector_getter: - return input_selector_getter(n) - return j.InputSelector(n) - elif isinstance(expr, WDL.Expr.Apply): - return self.translate_apply( - expr, input_selector_getter=input_selector_getter - ) - - raise Exception(f"Unsupported WDL expression type: {expr} ({type(expr)})") - - def translate_wdl_string(self, s: WDL.Expr.String): - if s.literal is not None: - return str(s.literal).lstrip('"').rstrip('"') - - elements = {} - counter = 1 - _format = str(s).lstrip('"').rstrip('"') - - for placeholder in s.children: - if isinstance(placeholder, (str, bool, int, float)): - continue - - token = f"JANIS_WDL_TOKEN_{counter}" - if str(placeholder) not in _format: - # if the placeholder came up again - continue - - _format = _format.replace(str(placeholder), f"{{{token}}}") - elements[token] = self.translate_expr(placeholder) - counter += 1 - - if len(elements) == 0: - return str(s) - - _format.replace("\\n", "\n") - - return j.StringFormatter(_format, **elements) - - def file_size_operator(self, src, *args): - multiplier = None - if len(args) > 1: - f = args[1].lower() - multiplier_heirarchy = [ - ("ki" in f, 1024), - ("k" in f, 1000), - ("mi" in f, 1.024), - ("gi" in f, 0.001024), - ("g" in f, 0.001), - ] - if not any(m[0] for m in multiplier_heirarchy): - j.Logger.warn( - f"Couldn't determine prefix {f} for FileSizeOperator, defaulting to MB" - ) - else: - multiplier = [m[1] for m in multiplier_heirarchy if m[0] is True][0] - - if isinstance(src, list): - return multiplier * sum(j.FileSizeOperator(s) for s in src) - - base = j.FileSizeOperator(src, *args) - if multiplier is not None and multiplier != 1: - return multiplier * base - return base - - def basename_operator(self, src, *args): - retval = j.BasenameOperator(src) - if len(args) > 0: - retval = retval.replace(args[0], "") - - return retval - - def translate_apply( - self, expr: WDL.Expr.Apply, **expr_kwargs - ) -> Union[j.Selector, List[j.Selector]]: - - # special case for select_first of array with one element - if expr.function_name == "select_first" and len(expr.arguments) > 0: - inner = expr.arguments[0] - if isinstance(inner, WDL.Expr.Array) and len(inner.items) == 1: - return self.translate_expr(inner.items[0]).assert_not_null() - - args = [self.translate_expr(e, **expr_kwargs) for e in expr.arguments] - - fn_map = { - "_land": j.AndOperator, - "defined": j.IsDefined, - "select_first": j.FilterNullOperator, - "basename": self.basename_operator, - "length": j.LengthOperator, - "_gt": j.GtOperator, - "_gte": j.GteOperator, - "_lt": j.LtOperator, - "_lte": j.LteOperator, - "sep": j.JoinOperator, - "_add": j.AddOperator, - "_interpolation_add": j.AddOperator, - "stdout": j.Stdout, - "_mul": j.MultiplyOperator, - "_div": j.DivideOperator, - "glob": j.WildcardSelector, - "range": j.RangeOperator, - "_at": j.IndexOperator, - "_negate": j.NotOperator, - "_sub": j.SubtractOperator, - "size": self.file_size_operator, - "ceil": j.CeilOperator, - "select_all": j.FilterNullOperator, - "sub": j.ReplaceOperator, - "round": j.RoundOperator, - "write_lines": lambda exp: f"JANIS: write_lines({exp})", - "read_tsv": lambda exp: f"JANIS: j.read_tsv({exp})", - "read_boolean": lambda exp: f"JANIS: j.read_boolean({exp})", - "read_lines": lambda exp: f"JANIS: j.read_lines({exp})", - } - fn = fn_map.get(expr.function_name) - if fn is None: - raise Exception(f"Unhandled WDL apply function_name: {expr.function_name}") - if isinstance(fn, LambdaType): - return fn(args) - return fn(*args) - - def parse_wdl_type(self, t: WDL.Type.Base, uuid: Optional[str]=None): - optional = t.optional - if isinstance(t, WDL.Type.Int): - return j.Int(optional=optional) - elif isinstance(t, WDL.Type.String): - return j.String(optional=optional) - elif isinstance(t, WDL.Type.Float): - return j.Float(optional=optional) - elif isinstance(t, WDL.Type.Boolean): - return j.Boolean(optional=optional) - elif isinstance(t, WDL.Type.File): - return j.File(optional=optional) - elif isinstance(t, WDL.Type.Directory): - return j.Directory(optional=optional) - elif isinstance(t, WDL.Type.Array): - return j.Array(self.parse_wdl_type(t.item_type, uuid), optional=optional) - elif isinstance(t, WDL.Type.StructInstance): - if uuid: - log_message(uuid, 'WDL Struct type unsupported. Has been cast to File type.', ErrorCategory.DATATYPES) - return j.File(optional=optional) - - raise Exception(f"Didn't handle WDL type conversion for '{t}' ({type(t)})") - - def parse_command_tool_input(self, inp: WDL.Decl): - default = None - if inp.expr: - default = self.translate_expr(inp.expr) - - # explicitly skip "runtime_*" inputs because they're from janis - if inp.name.startswith("runtime_"): - return None - - return j.ToolInput(inp.name, self.parse_wdl_type(inp.type, uuid=inp.name), default=default) - - def parse_command_tool_output(self, outp: WDL.Decl): - sel = self.translate_expr(outp.expr) - - return j.ToolOutput(outp.name, self.parse_wdl_type(outp.type, uuid=outp.name), selector=sel) if __name__ == "__main__": @@ -493,3 +236,272 @@ def parse_command_tool_output(self, outp: WDL.Decl): print(exc, file=sys.stderr) print(exc.pos, file=sys.stderr) print(exc.node, file=sys.stderr) + + + + + + + + +### DEPRECATED #### + + # ### OUTPUT ### + # def parse_wf_output(self, wf: j.WorkflowBase, obj: WDL.Tree.Workflow, out: WDL.Tree.Decl): + # if out.expr is None: + # raise Exception(f"Output {out.name} has no expression") + # # TODO UPDATE EXPRESSION PARSING FOR WORKFLOW SCOPE + # dtype = parse_type(out.type, obj, uuid=wf.uuid) + + # def selector_getter(exp): + # return self.workflow_selector_getter(wf, exp) + + # sel = self.translate_expr(out.expr, input_selector_getter=selector_getter) + # wf.output(out.name, dtype, sel) + + + # def translate_expr( + # self, expr: WDL.Expr.Base, input_selector_getter: Callable[[str], any] = None + # ) -> Optional[Union[j.Selector, List[j.Selector], int, str, float, bool]]: + # if expr is None: + # return None + + # tp = lambda exp: self.translate_expr( + # exp, input_selector_getter=input_selector_getter + # ) + + # if isinstance(expr, WDL.Expr.Array): + # # a literal array + # return [self.translate_expr(e) for e in expr.items] + # if isinstance(expr, WDL.Expr.String): + # return self.translate_wdl_string(expr) + # elif isinstance(expr, (WDL.Expr.Int, WDL.Expr.Boolean, WDL.Expr.Float)): + # return expr.literal.value + # if isinstance(expr, WDL.Expr.Placeholder): + # return self.translate_expr(expr.expr) + # if isinstance(expr, WDL.Expr.IfThenElse): + # return j.If(tp(expr.condition), tp(expr.consequent), tp(expr.alternative)) + # elif isinstance(expr, WDL.Expr.Get): + # n = str(expr.expr) + # if input_selector_getter: + # return input_selector_getter(n) + # return j.InputSelector(n) + # elif isinstance(expr, WDL.Expr.Apply): + # return self.translate_apply( + # expr, input_selector_getter=input_selector_getter + # ) + + # raise Exception(f"Unsupported WDL expression type: {expr} ({type(expr)})") + + # ### EXPRESSIONS ### + # def workflow_selector_getter(self, wf, exp: str): + # if "." in exp: + # node, *tag = exp.split(".") + # if len(tag) > 1: + # raise Exception(f"Couldn't parse source ID: {exp} - too many '.'") + # return wf[node][tag[0]] + # return wf[exp] + + # def translate_wdl_string(self, s: WDL.Expr.String): + # if s.literal is not None: + # return str(s.literal).lstrip('"').rstrip('"') + + # elements = {} + # counter = 1 + # _format = str(s).lstrip('"').rstrip('"') + + # for placeholder in s.children: + # if isinstance(placeholder, (str, bool, int, float)): + # continue + + # token = f"JANIS_WDL_TOKEN_{counter}" + # if str(placeholder) not in _format: + # # if the placeholder came up again + # continue + + # _format = _format.replace(str(placeholder), f"{{{token}}}") + # elements[token] = self.translate_expr(placeholder) + # counter += 1 + + # if len(elements) == 0: + # return str(s) + + # _format.replace("\\n", "\n") + + # return j.StringFormatter(_format, **elements) + + # def file_size_operator(self, src, *args): + # multiplier = None + # if len(args) > 1: + # f = args[1].lower() + # multiplier_heirarchy = [ + # ("ki" in f, 1024), + # ("k" in f, 1000), + # ("mi" in f, 1.024), + # ("gi" in f, 0.001024), + # ("g" in f, 0.001), + # ] + # if not any(m[0] for m in multiplier_heirarchy): + # j.Logger.warn( + # f"Couldn't determine prefix {f} for FileSizeOperator, defaulting to MB" + # ) + # else: + # multiplier = [m[1] for m in multiplier_heirarchy if m[0] is True][0] + + # if isinstance(src, list): + # return multiplier * sum(j.FileSizeOperator(s) for s in src) + + # base = j.FileSizeOperator(src, *args) + # if multiplier is not None and multiplier != 1: + # return multiplier * base + # return base + + # def basename_operator(self, src, *args): + # retval = j.BasenameOperator(src) + # if len(args) > 0: + # retval = retval.replace(args[0], "") + + # return retval + + # def translate_apply( + # self, expr: WDL.Expr.Apply, **expr_kwargs + # ) -> Union[j.Selector, List[j.Selector]]: + + # # special case for select_first of array with one element + # if expr.function_name == "select_first" and len(expr.arguments) > 0: + # inner = expr.arguments[0] + # if isinstance(inner, WDL.Expr.Array) and len(inner.items) == 1: + # return self.translate_expr(inner.items[0]).assert_not_null() + + # args = [self.translate_expr(e, **expr_kwargs) for e in expr.arguments] + + # fn_map = { + # "_land": j.AndOperator, + # "defined": j.IsDefined, + # "select_first": j.FilterNullOperator, + # "basename": self.basename_operator, + # "length": j.LengthOperator, + # "_gt": j.GtOperator, + # "_gte": j.GteOperator, + # "_lt": j.LtOperator, + # "_lte": j.LteOperator, + # "sep": j.JoinOperator, + # "_add": j.AddOperator, + # "_interpolation_add": j.AddOperator, + # "stdout": j.Stdout, + # "_mul": j.MultiplyOperator, + # "_div": j.DivideOperator, + # "glob": j.WildcardSelector, + # "range": j.RangeOperator, + # "_at": j.IndexOperator, + # "_negate": j.NotOperator, + # "_sub": j.SubtractOperator, + # "size": self.file_size_operator, + # "ceil": j.CeilOperator, + # "select_all": j.FilterNullOperator, + # "sub": j.ReplaceOperator, + # "round": j.RoundOperator, + # "write_lines": lambda exp: f"JANIS: write_lines({exp})", + # "read_tsv": lambda exp: f"JANIS: j.read_tsv({exp})", + # "read_boolean": lambda exp: f"JANIS: j.read_boolean({exp})", + # "read_lines": lambda exp: f"JANIS: j.read_lines({exp})", + # } + # fn = fn_map.get(expr.function_name) + # if fn is None: + # raise Exception(f"Unhandled WDL apply function_name: {expr.function_name}") + # if isinstance(fn, LambdaType): + # return fn(args) + # return fn(*args) + + # ### DATATYPES ### + # def parse_wdl_type(self, t: WDL.Type.Base, uuid: Optional[str]=None): + # optional = t.optional + # if isinstance(t, WDL.Type.Int): + # return j.Int(optional=optional) + # elif isinstance(t, WDL.Type.String): + # return j.String(optional=optional) + # elif isinstance(t, WDL.Type.Float): + # return j.Float(optional=optional) + # elif isinstance(t, WDL.Type.Boolean): + # return j.Boolean(optional=optional) + # elif isinstance(t, WDL.Type.File): + # return j.File(optional=optional) + # elif isinstance(t, WDL.Type.Directory): + # return j.Directory(optional=optional) + # elif isinstance(t, WDL.Type.Array): + # return j.Array(self.parse_wdl_type(t.item_type, uuid), optional=optional) + # elif isinstance(t, WDL.Type.StructInstance): + # if uuid: + # log_message(uuid, 'WDL Struct type unsupported. Has been cast to File type.', ErrorCategory.DATATYPES) + # return j.File(optional=optional) + + # raise Exception(f"Didn't handle WDL type conversion for '{t}' ({type(t)})") + + + + + +### DEPRECATED ### + + # cmdtool = j.CommandToolBuilder( + # tool=obj.name, + # version='DEV', + # container='ubuntu:latest', + # base_command=None, + # inputs=[], + # outputs=[] + # ) + # # TODO something like this: + # # parser = CommandParser() + # # cmdtool._inputs, cmdtool.base_command, cmdtool._outputs = parser.parse() + + # cmdtool._base_command = self.parse_command_tool_base_command(obj) # type: ignore + # cmdtool._container = self.container_from_runtime(obj.runtime, inputs=obj.inputs) # type: ignore + + # # inputs + # for wdl_inp in obj.inputs: + # if wdl_inp.name.startswith("runtime_"): + # continue + # j_inp = self.parse_command_tool_input(wdl_inp) + # if j_inp is not None: + # cmdtool._inputs.append(j_inp) + + # # outputs + # for wdl_out in obj.outputs: + # j_out = self.parse_command_tool_output(wdl_out) + # if j_out is not None: + # cmdtool._outputs.append(j_out) + + # # files to create + # cmdtool._files_to_create = {"script.sh": self.translate_expr(obj.command)} + # cmdtool._memory = self.parse_memory_requirement(obj.runtime.get("memory")) + # cpus = self.translate_expr(obj.runtime.get("cpu")) + # if isinstance(cpus, str): + # cpus = int(cpus) + # cmdtool._cpus = cpus + # cmdtool._disk = self.parse_disk_requirement(obj.runtime.get("disks")) + + # return cmdtool + + + + # def parse_command_tool_base_command(self, obj: WDL.Task) -> list[str]: + # return ["sh", "script.sh"] + + + + # def parse_command_tool_input(self, inp: WDL.Decl): + # default = None + # if inp.expr: + # default = self.translate_expr(inp.expr) + + # # explicitly skip "runtime_*" inputs because they're from janis + # if inp.name.startswith("runtime_"): + # return None + + # return j.ToolInput(inp.name, self.parse_wdl_type(inp.type, uuid=inp.name), default=default) + + # def parse_command_tool_output(self, outp: WDL.Decl): + # sel = self.translate_expr(outp.expr) + + # return j.ToolOutput(outp.name, self.parse_wdl_type(outp.type, uuid=outp.name), selector=sel) \ No newline at end of file diff --git a/janis_core/ingestion/wdl/parsing/EntityParser.py b/janis_core/ingestion/wdl/parsing/EntityParser.py new file mode 100644 index 000000000..8e6e3cdfd --- /dev/null +++ b/janis_core/ingestion/wdl/parsing/EntityParser.py @@ -0,0 +1,52 @@ + + +from abc import abstractmethod +from typing import Any +import WDL + +from janis_core import settings +from janis_core import CommandToolBuilder, WorkflowBuilder + + +class EntityParser: + + def parse(self) -> Any: + # normal mode + if settings.ingest.SAFE_MODE: + try: + j_entity = self.do_parse() + self.success = True + except Exception: + j_entity = self.fallback() + + # dev mode + else: + j_entity = self.do_parse() + self.success = True + + return j_entity + + @abstractmethod + def do_parse(self) -> Any: + ... + + @abstractmethod + def fallback(self) -> Any: + ... + + + +class TaskParser(EntityParser): + + def __init__(self, task: WDL.Tree.Task, cmdtool: CommandToolBuilder) -> None: + self.task = task + self.cmdtool = cmdtool + self.success = False + + +class WorkflowParser(EntityParser): + + def __init__(self, wdl_wf: WDL.Tree.Workflow, janis_wf: WorkflowBuilder) -> None: + self.wdl_wf = wdl_wf + self.janis_wf = janis_wf + self.success = False \ No newline at end of file diff --git a/janis_core/ingestion/wdl/parsing/__init__.py b/janis_core/ingestion/wdl/parsing/__init__.py index 8f3640a53..c62cff0d2 100644 --- a/janis_core/ingestion/wdl/parsing/__init__.py +++ b/janis_core/ingestion/wdl/parsing/__init__.py @@ -1,2 +1,22 @@ -from .task import parse_task \ No newline at end of file + +from .workflow.main import WorkflowInputParser +from .workflow.main import WorkflowStepModifierParser +from .workflow.main import WorkflowStepInputParser +from .workflow.main import WorkflowOutputParser + +from .task.main import parse_task +from .task.main import parse_container_requirement +from .task.main import parse_cpus_requirement +from .task.main import parse_memory_requirement +from .task.main import parse_disk_requirement +# from .task.main import parse_env_vars +# from .task.main import parse_files_to_create +# from .task.main import parse_dirs_to_create +from .task.main import parse_input +from .task.main import parse_output +from .task.main import parse_command + +from .types import parse_type +from .expressions import parse_expr + diff --git a/janis_core/ingestion/wdl/parsing/command/__init__.py b/janis_core/ingestion/wdl/parsing/command/__init__.py index 4cde826d0..d070c3e9e 100644 --- a/janis_core/ingestion/wdl/parsing/command/__init__.py +++ b/janis_core/ingestion/wdl/parsing/command/__init__.py @@ -1,3 +1,5 @@ -from .main import parse_command \ No newline at end of file +from .parsers import NativeSimpleParser +from .parsers import NativeArgumentParser +from .parsers import ShellCommandParser \ No newline at end of file diff --git a/janis_core/ingestion/wdl/parsing/command/main.py b/janis_core/ingestion/wdl/parsing/command/helpers.py similarity index 77% rename from janis_core/ingestion/wdl/parsing/command/main.py rename to janis_core/ingestion/wdl/parsing/command/helpers.py index 0abaf3766..608327f3d 100644 --- a/janis_core/ingestion/wdl/parsing/command/main.py +++ b/janis_core/ingestion/wdl/parsing/command/helpers.py @@ -1,27 +1,9 @@ import WDL -from janis_core import CommandToolBuilder - -from .parsers import NativeCommandParser, ShellCommandParser, ShellScriptParser from .cmdline import CmdLine import regex as re -def parse_command(internal: CommandToolBuilder, task: WDL.Tree.Task) -> CommandToolBuilder: - lines = split_newlines(task) - cmds = split_cmdlines(lines) - cmds = remove_comments(cmds) - - for parser_c in [NativeCommandParser, ShellCommandParser, ShellScriptParser]: - try: - parser = parser_c(internal, task, cmds) - parser.parse() - return parser.internal - except Exception as e: - pass - - return internal - def split_newlines(task: WDL.Tree.Task) -> list[str | WDL.Expr.Placeholder]: """does what""" text = [] diff --git a/janis_core/ingestion/wdl/parsing/command/parsers.py b/janis_core/ingestion/wdl/parsing/command/parsers.py index 074ce82bc..baba0ff7a 100644 --- a/janis_core/ingestion/wdl/parsing/command/parsers.py +++ b/janis_core/ingestion/wdl/parsing/command/parsers.py @@ -1,16 +1,84 @@ -from janis_core import CommandToolBuilder -from janis_core import ToolArgument from abc import ABC, abstractmethod, abstractproperty - -import WDL - from typing import Any import regex as re +import WDL + +from janis_core import CommandToolBuilder, Selector +from janis_core import ToolArgument +from janis_core.messages import log_message +from janis_core.messages import ErrorCategory from ..expressions import parse_expr from ..patterns import FLAG, OPTION from .cmdline import CmdLine +from ..EntityParser import TaskParser + + +class CommandParser(TaskParser): + + def __init__(self, task: WDL.Tree.Task, cmdtool: CommandToolBuilder) -> None: + super().__init__(task, cmdtool) + self.base_command = None + self.env_vars: dict[str, Any] = {} + self.files_to_create: dict[str, Any] = {} + self.directories_to_create: list[str | Selector] = [] + + +class NativeSimpleParser(CommandParser): + + def do_parse(self) -> None: + raise NotImplementedError + + def fallback(self) -> None: + msg = f'Error parsing tool command natively. Fellback to using shell command.' + log_message(self.cmdtool.uuid, msg, category=ErrorCategory.FALLBACKS) + return None + + +class NativeArgumentParser(CommandParser): + + def do_parse(self) -> None: + raise NotImplementedError + + def fallback(self) -> None: + msg = f'Error parsing tool command natively. Fellback to using shell command.' + log_message(self.cmdtool.uuid, msg, category=ErrorCategory.FALLBACKS) + return None + + +class ShellCommandParser(CommandParser): + + def do_parse(self) -> None: + self.base_command = self.parse_base_command() + self.env_vars = self.parse_env_vars() + self.files_to_create = self.parse_files_to_create() + self.directories_to_create = self.parse_dirs_to_create() + self.success = True + + def parse_base_command(self) -> list[str]: + return ["sh", "script.sh"] + + def parse_env_vars(self) -> dict[str, Any]: + return {} + + def parse_files_to_create(self) -> dict[str, Any]: + translated_script = parse_expr(self.task.command, self.task, self.cmdtool) + return {"script.sh": translated_script} + + def parse_dirs_to_create(self) -> list[str | Selector]: + return [] + + def fallback(self) -> None: + msg = f'Error parsing tool command. Output is not correct.' + log_message(self.cmdtool.uuid, msg, category=ErrorCategory.FALLBACKS) + return None + + + + + + input_types = ( @@ -247,7 +315,7 @@ def get_tokens(self) -> list[str | WDL.Expr.Placeholder]: -class ShellCommandParser: +class ShellCommandParserDep: """ parses WDL command into a CommandToolBuilder object. uses ShellCommandRequirement. @@ -283,20 +351,3 @@ def update_arguments(self) -> None: def update_base_command(self) -> None: raise NotImplementedError - -class ShellScriptParser: - """ - parses WDL command into a CommandToolBuilder object. - creates shell script. - """ - def __init__(self, internal: CommandToolBuilder, task: WDL.Tree.Task, cmds: list[CmdLine]): - self.internal = internal - self.task = task - self.cmds = cmds - - @property - def can_parse(self) -> bool: - return True - - def parse(self) -> None: - raise NotImplementedError diff --git a/janis_core/ingestion/wdl/parsing/expressions.py b/janis_core/ingestion/wdl/parsing/expressions.py index 81bf4106f..30d0c8928 100644 --- a/janis_core/ingestion/wdl/parsing/expressions.py +++ b/janis_core/ingestion/wdl/parsing/expressions.py @@ -1,149 +1,169 @@ import WDL -from typing import Optional, Any, Callable +from typing import Any from types import LambdaType import janis_core as j -def parse_expr( - expr: WDL.Expr.Base, - input_selector_getter: Optional[Callable[[str], Any]]=None - ) -> Any: - - if expr is None: - return None - - tp = lambda exp: parse_expr( - exp, input_selector_getter=input_selector_getter - ) - - if isinstance(expr, WDL.Expr.Array): - # a literal array - return [parse_expr(e) for e in expr.items] - if isinstance(expr, WDL.Expr.String): - return parse_string(expr) - elif isinstance(expr, (WDL.Expr.Int, WDL.Expr.Boolean, WDL.Expr.Float)): - return expr.literal.value - if isinstance(expr, WDL.Expr.Placeholder): - return parse_expr(expr.expr) - if isinstance(expr, WDL.Expr.IfThenElse): - return j.If(tp(expr.condition), tp(expr.consequent), tp(expr.alternative)) - elif isinstance(expr, WDL.Expr.Get): - n = str(expr.expr) - if input_selector_getter: - return input_selector_getter(n) - return j.InputSelector(n) - elif isinstance(expr, WDL.Expr.Apply): - return parse_apply( - expr, input_selector_getter=input_selector_getter - ) - - raise Exception(f"Unsupported WDL expression type: {expr} ({type(expr)})") - -def parse_string(s: WDL.Expr.String): - if s.literal is not None: - return str(s.literal).lstrip('"').rstrip('"') - - elements = {} - counter = 1 - _format = str(s).lstrip('"').rstrip('"') - - for placeholder in s.children: - if isinstance(placeholder, (str, bool, int, float)): - continue - - token = f"JANIS_WDL_TOKEN_{counter}" - if str(placeholder) not in _format: - # if the placeholder came up again - continue - - _format = _format.replace(str(placeholder), f"{{{token}}}") - elements[token] = parse_expr(placeholder) - counter += 1 - - if len(elements) == 0: - return str(s) - - _format.replace("\\n", "\n") - - return j.StringFormatter(_format, **elements) - - -def file_size_operator(src, *args): - multiplier = None - if len(args) > 1: - f = args[1].lower() - multiplier_heirarchy = [ - ("ki" in f, 1024), - ("k" in f, 1000), - ("mi" in f, 1.024), - ("gi" in f, 0.001024), - ("g" in f, 0.001), - ] - if not any(m[0] for m in multiplier_heirarchy): - j.Logger.warn( - f"Couldn't determine prefix {f} for FileSizeOperator, defaulting to MB" - ) + +def parse_expr(expr: WDL.Expr.Base, wdl_entity: WDL.Tree.Task | WDL.Tree.Workflow, j_entity: j.CommandToolBuilder | j.WorkflowBuilder) -> Any: + parser = WDlExprParser(wdl_entity, j_entity) + return parser.parse(expr) + +class WDlExprParser: + def __init__(self, wdl_entity: WDL.Tree.Task | WDL.Tree.Workflow, j_entity: j.CommandToolBuilder | j.WorkflowBuilder): + self.wdl_entity = wdl_entity # wdl task or workflow + self.j_entity = j_entity # respective janis cmdtoolbuilder or workflowbuilder + + def parse(self, expr: WDL.Expr.Base) -> Any: + if expr is None: + return None + if isinstance(expr, WDL.Expr.Array): + # a literal array + return [self.parse(e) for e in expr.items] + if isinstance(expr, WDL.Expr.String): + return self.parse_string(expr) + elif isinstance(expr, (WDL.Expr.Int, WDL.Expr.Boolean, WDL.Expr.Float)): + return expr.literal.value + if isinstance(expr, WDL.Expr.Placeholder): + return self.parse(expr.expr) + if isinstance(expr, WDL.Expr.IfThenElse): + return j.If(self.parse(expr.condition), self.parse(expr.consequent), self.parse(expr.alternative)) + elif isinstance(expr, WDL.Expr.Get): + return self.parse_get(expr) + elif isinstance(expr, WDL.Expr.Apply): + return self.parse_apply(expr) + raise Exception(f"Unsupported WDL expression type: {expr} ({type(expr)})") + + def parse_get(self, expr: WDL.Expr.Get): + if isinstance(expr.expr, WDL.Expr.Get): + expr = expr.expr + assert isinstance(expr.expr, WDL.Expr.Ident) + + # tool - input | temp var? + if isinstance(self.wdl_entity, WDL.Tree.Task): + assert isinstance(self.j_entity, j.CommandToolBuilder) + return j.InputSelector(str(expr.expr.name)) + + # workflow - input | step | step output | temp var? + elif isinstance(self.wdl_entity, WDL.Tree.Workflow): + assert isinstance(self.j_entity, j.WorkflowBuilder) + expr_str = str(expr.expr.name) + if "." in expr_str: + node, *tag = expr_str.split(".") + if len(tag) > 1: + raise Exception(f"Couldn't parse source ID: {expr_str} - too many '.'") + return self.j_entity[node][tag[0]] + return self.j_entity[expr_str] + else: - multiplier = [m[1] for m in multiplier_heirarchy if m[0] is True][0] - - if isinstance(src, list): - return multiplier * sum(j.FileSizeOperator(s) for s in src) - - base = j.FileSizeOperator(src, *args) - if multiplier is not None and multiplier != 1: - return multiplier * base - return base - -def basename_operator(src, *args): - retval = j.BasenameOperator(src) - if len(args) > 0: - retval = retval.replace(args[0], "") - return retval - -def parse_apply(expr: WDL.Expr.Apply, **expr_kwargs) -> j.Selector | list[j.Selector]: - - # special case for select_first of array with one element - if expr.function_name == "select_first" and len(expr.arguments) > 0: - inner = expr.arguments[0] - if isinstance(inner, WDL.Expr.Array) and len(inner.items) == 1: - return parse_expr(inner.items[0]).assert_not_null() - - args = [parse_expr(e, **expr_kwargs) for e in expr.arguments] - - fn_map = { - "_land": j.AndOperator, - "defined": j.IsDefined, - "select_first": j.FilterNullOperator, - "basename": basename_operator, - "length": j.LengthOperator, - "_gt": j.GtOperator, - "_gte": j.GteOperator, - "_lt": j.LtOperator, - "_lte": j.LteOperator, - "sep": j.JoinOperator, - "_add": j.AddOperator, - "_interpolation_add": j.AddOperator, - "stdout": j.Stdout, - "_mul": j.MultiplyOperator, - "_div": j.DivideOperator, - "glob": j.WildcardSelector, - "range": j.RangeOperator, - "_at": j.IndexOperator, - "_negate": j.NotOperator, - "_sub": j.SubtractOperator, - "size": file_size_operator, - "ceil": j.CeilOperator, - "select_all": j.FilterNullOperator, - "sub": j.ReplaceOperator, - "round": j.RoundOperator, - "write_lines": lambda exp: f"JANIS: write_lines({exp})", - "read_tsv": lambda exp: f"JANIS: j.read_tsv({exp})", - "read_boolean": lambda exp: f"JANIS: j.read_boolean({exp})", - "read_lines": lambda exp: f"JANIS: j.read_lines({exp})", - } - fn = fn_map.get(expr.function_name) - if fn is None: - raise Exception(f"Unhandled WDL apply function_name: {expr.function_name}") - if isinstance(fn, LambdaType): - return fn(args) - return fn(*args) \ No newline at end of file + raise RuntimeError + + def parse_string(self, s: WDL.Expr.String): + if s.literal is not None: + return str(s.literal).lstrip('"').rstrip('"') + + elements = {} + counter = 1 + _format = str(s).lstrip('"').rstrip('"') + + for placeholder in s.children: + if isinstance(placeholder, (str, bool, int, float)): + continue + + token = f"JANIS_WDL_TOKEN_{counter}" + if str(placeholder) not in _format: + # if the placeholder came up again + continue + + _format = _format.replace(str(placeholder), f"{{{token}}}") + elements[token] = self.parse(placeholder) + counter += 1 + + if len(elements) == 0: + return str(s) + + _format.replace("\\n", "\n") + + return j.StringFormatter(_format, **elements) + + def parse_file_size(self, src, *args): + multiplier = None + if len(args) > 1: + f = args[1].lower() + multiplier_heirarchy = [ + ("ki" in f, 1024), + ("k" in f, 1000), + ("mi" in f, 1.024), + ("gi" in f, 0.001024), + ("g" in f, 0.001), + ] + if not any(m[0] for m in multiplier_heirarchy): + j.Logger.warn( + f"Couldn't determine prefix {f} for FileSizeOperator, defaulting to MB" + ) + else: + multiplier = [m[1] for m in multiplier_heirarchy if m[0] is True][0] + + if isinstance(src, list): + return multiplier * sum(j.FileSizeOperator(s) for s in src) + + base = j.FileSizeOperator(src, *args) + if multiplier is not None and multiplier != 1: + return multiplier * base + return base + + def parse_basename(self, src, *args): + retval = j.BasenameOperator(src) + if len(args) > 0: + retval = retval.replace(args[0], "") + return retval + + def parse_apply(self, expr: WDL.Expr.Apply) -> j.Selector | list[j.Selector]: + + # special case for select_first of array with one element + if expr.function_name == "select_first" and len(expr.arguments) > 0: + inner = expr.arguments[0] + if isinstance(inner, WDL.Expr.Array) and len(inner.items) == 1: + return self.parse(inner.items[0]).assert_not_null() + + args = [self.parse(e) for e in expr.arguments] + + fn_map = { + "_land": j.AndOperator, + "defined": j.IsDefined, + "select_first": j.FilterNullOperator, + "basename": self.parse_basename, + "length": j.LengthOperator, + "_gt": j.GtOperator, + "_gte": j.GteOperator, + "_lt": j.LtOperator, + "_lte": j.LteOperator, + "sep": j.JoinOperator, + "_add": j.AddOperator, + "_interpolation_add": j.AddOperator, + "stdout": j.Stdout, + "_add": j.AddOperator, + "_mul": j.MultiplyOperator, + "_div": j.DivideOperator, + "glob": j.WildcardSelector, + "range": j.RangeOperator, + "_at": j.IndexOperator, + "_negate": j.NotOperator, + "_sub": j.SubtractOperator, + "size": self.parse_file_size, + "ceil": j.CeilOperator, + "select_all": j.FilterNullOperator, + "sub": j.ReplaceOperator, + "round": j.RoundOperator, + "write_lines": lambda exp: f"JANIS: write_lines({exp})", + "read_tsv": lambda exp: f"JANIS: j.read_tsv({exp})", + "read_boolean": lambda exp: f"JANIS: j.read_boolean({exp})", + "read_lines": lambda exp: f"JANIS: j.read_lines({exp})", + } + fn = fn_map.get(expr.function_name) + if fn is None: + raise Exception(f"Unhandled WDL apply function_name: {expr.function_name}") + if isinstance(fn, LambdaType): + return fn(args) + return fn(*args) + diff --git a/janis_core/ingestion/wdl/parsing/requirements.py b/janis_core/ingestion/wdl/parsing/requirements.py deleted file mode 100644 index f82a1bc6e..000000000 --- a/janis_core/ingestion/wdl/parsing/requirements.py +++ /dev/null @@ -1,102 +0,0 @@ - -import WDL -import janis_core as j -from typing import Optional, Any -import regex as re - -from .expressions import parse_expr - -DEFAULT_CONTAINER = "ubuntu:latest" - - -def parse_container_requirement(task: WDL.Tree.Task) -> str: - container = task.runtime.get("container", task.runtime.get("docker")) - if isinstance(container, WDL.Expr.Get): - # relevant input - inp = [i.expr for i in task.inputs if i.name == str(container.expr)] - if len(inp) > 0: - container = inp[0] - else: - j.Logger.warn( - f"Expression for determining containers was '{container}' " - f"but couldn't find input called {str(container.expr)}" - ) - if isinstance(container, WDL.Expr.String): - container = container.literal - if isinstance(container, WDL.Value.String): - container = container.value - if container is None: - container = DEFAULT_CONTAINER - if not isinstance(container, str): - j.Logger.warn( - f"Expression for determining containers ({container}) are not supported in Janis, using ubuntu:latest" - ) - container = DEFAULT_CONTAINER - return container - -def parse_cpus_requirement(task: WDL.Tree.Task) -> int: - value = task.runtime.get("cpu") - cpus = parse_expr(value) - # if cpus is not None and not isinstance(cpus, j.Selector) and not isinstance(cpus, (int, float)): - if isinstance(cpus, str): - cpus = int(cpus) - -def parse_memory_requirement(task: WDL.Tree.Task) -> int: - value = task.runtime.get("memory") - s = parse_expr(value) - if s is None: - return 1.074 - elif isinstance(s, str): - if s.lower().endswith("g"): - return float(s[:-1].strip()) - if s.lower().endswith("gb"): - return float(s[:-2].strip()) - elif s.lower().endswith("gib"): - return float(s[:-3].strip()) * 1.074 - elif s.lower().endswith("mb"): - return float(s[:-2].strip()) / 1000 - elif s.lower().endswith("mib"): - return float(s[:-3].strip()) / 1024 - raise Exception(f"Memory type {s}") - elif isinstance(s, (float, int)): - # in bytes? - return s / (1024 ** 3) - elif isinstance(s, j.Selector): - return s - raise Exception(f"Couldn't recognise memory requirement '{value}'") - -def parse_disk_requirement(task: WDL.Tree.Task) -> int: - value = task.runtime.get("disks") - s = parse_expr(value) - if s is None: - return None - if isinstance(s, str): - try: - return int(s) - except ValueError: - pass - pattern_matcher = re.match(r"local-disk (\d+) .*", s) - if not pattern_matcher: - raise Exception(f"Couldn't recognise disk type '{value}'") - s = pattern_matcher.groups()[0] - try: - return int(s) - except ValueError: - pass - if s.lower().endswith("gb"): - return float(s[:-2].strip()) - elif s.lower().endswith("gib"): - return float(s[:-3].strip()) * 1.074 - elif s.lower().endswith("mb"): - return float(s[:-2].strip()) / 1000 - elif s.lower().endswith("mib"): - return float(s[:-3].strip()) / 1024 - raise Exception(f"Disk type type {s}") - elif isinstance(s, (float, int)): - # in GiB - return s * 1.07374 - elif isinstance(s, j.Selector): - return s - elif s is None: - return 2.14748 # 2 GiB - raise Exception(f"Couldn't recognise memory requirement '{value}'") \ No newline at end of file diff --git a/janis_core/ingestion/wdl/parsing/task.py b/janis_core/ingestion/wdl/parsing/task.py deleted file mode 100644 index e11a45085..000000000 --- a/janis_core/ingestion/wdl/parsing/task.py +++ /dev/null @@ -1,65 +0,0 @@ - -import WDL - -from janis_core import CommandToolBuilder -from janis_core import ToolInput -from janis_core import ToolOutput - -from .requirements import ( - parse_container_requirement, - parse_memory_requirement, - parse_disk_requirement, - parse_cpus_requirement -) - -from .expressions import parse_expr -from .types import parse_type -from .command import parse_command - - -def parse_task(task: WDL.Tree.Task) -> CommandToolBuilder: - # metadata - name = task.name - version = "DEV" - - # requirements - container = parse_container_requirement(task) - memory = parse_memory_requirement(task) - disk = parse_disk_requirement(task) - cpus = parse_cpus_requirement(task) - - # io - inputs = [parse_command_tool_input(x) for x in task.inputs if not x.name.startswith("runtime_")] - outputs = [parse_command_tool_output(o) for o in task.outputs] - - # generate first-pass CommandToolBuilder - internal = CommandToolBuilder( - tool=name, - version=version, - base_command=None, - container=container, - memory=memory, - disk=disk, - cpus=cpus, - inputs=inputs, - outputs=outputs, - files_to_create=None - ) - - # augment inputs / outputs using command block - internal = parse_command(internal, task) - return internal - -def parse_command_tool_input(inp: WDL.Tree.Decl) -> ToolInput: - default = None - if inp.expr: - default = parse_expr(inp.expr) - tinput = ToolInput(inp.name, parse_type(inp.type, uuid=inp.name), default=default) - return tinput - -def parse_command_tool_output(out: WDL.Tree.Decl) -> ToolOutput: - if out.expr is None: - raise Exception(f"Output {out.name} has no expression") - sel = parse_expr(out.expr) - tout = ToolOutput(out.name, parse_type(out.type, uuid=out.name), selector=sel) - return tout \ No newline at end of file diff --git a/janis_core/ingestion/wdl/parsing/task/__init__.py b/janis_core/ingestion/wdl/parsing/task/__init__.py new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/janis_core/ingestion/wdl/parsing/task/__init__.py @@ -0,0 +1 @@ + diff --git a/janis_core/ingestion/wdl/parsing/task/io.py b/janis_core/ingestion/wdl/parsing/task/io.py new file mode 100644 index 000000000..be74ce985 --- /dev/null +++ b/janis_core/ingestion/wdl/parsing/task/io.py @@ -0,0 +1,51 @@ + + +import WDL + +from janis_core import ToolInput, ToolOutput, CommandToolBuilder +from janis_core.messages import log_message +from janis_core.messages import ErrorCategory + +from ..types import parse_type +from ..expressions import parse_expr +from ..EntityParser import TaskParser + + + +class TaskInputParser(TaskParser): + + def __init__(self, task: WDL.Tree.Task, cmdtool: CommandToolBuilder, wdl_inp: WDL.Tree.Decl) -> None: + super().__init__(task, cmdtool) + self.wdl_inp = wdl_inp + + def do_parse(self) -> ToolInput: + default = None + if self.wdl_inp.expr: + default = parse_expr(self.wdl_inp.expr, self.task, self.cmdtool) + tinput = ToolInput(self.wdl_inp.name, parse_type(self.wdl_inp.type, self.task, uuid=self.wdl_inp.name), default=default) + return tinput + + def fallback(self) -> ToolInput: + msg = f'Error parsing tool input: {self.wdl_inp.name}' + log_message(self.cmdtool.uuid, msg, category=ErrorCategory.FALLBACKS) + return ToolInput(self.wdl_inp.name, parse_type(self.wdl_inp.type, self.task, uuid=self.wdl_inp.name)) + + +class TaskOutputParser(TaskParser): + + def __init__(self, task: WDL.Tree.Task, cmdtool: CommandToolBuilder, wdl_out: WDL.Tree.Decl) -> None: + super().__init__(task, cmdtool) + self.wdl_out = wdl_out + + def do_parse(self) -> ToolOutput: + if self.wdl_out.expr is None: + raise Exception(f"Output {self.wdl_out.name} has no expression") + sel = parse_expr(self.wdl_out.expr, self.task, self.cmdtool) + tout = ToolOutput(self.wdl_out.name, parse_type(self.wdl_out.type, self.task, uuid=self.wdl_out.name), selector=sel) + return tout + + def fallback(self) -> ToolOutput: + msg = 'Error parsing tool output' + log_message(self.cmdtool.uuid, msg, category=ErrorCategory.FALLBACKS) + return ToolOutput(self.wdl_out.name, parse_type(self.wdl_out.type, self.task, uuid=self.wdl_out.name)) + diff --git a/janis_core/ingestion/wdl/parsing/task/main.py b/janis_core/ingestion/wdl/parsing/task/main.py new file mode 100644 index 000000000..218b96627 --- /dev/null +++ b/janis_core/ingestion/wdl/parsing/task/main.py @@ -0,0 +1,129 @@ + +import WDL +from typing import Optional, Any + +from janis_core import settings +from janis_core import CommandToolBuilder, ToolInput, ToolOutput, Selector + +from .requirements import ( + TaskContainerParser, + TaskCpusParser, + TaskMemoryParser, + TaskDiskParser, + TaskEnvVarsParser, + TaskFilesToCreateParser, + TaskDirsToCreateParser, +) +from .io import TaskInputParser, TaskOutputParser +from ..command import NativeSimpleParser, NativeArgumentParser, ShellCommandParser + +def parse_task(task: WDL.Tree.Task) -> CommandToolBuilder: + cmdtool = CommandToolBuilder( + tool=task.name, + version='DEV', + container='ubuntu:latest', + base_command=None, + inputs=[], + outputs=[] + ) + + # requirements + cmdtool._container = parse_container_requirement(task, cmdtool) + cmdtool._cpus = parse_cpus_requirement(task, cmdtool) + cmdtool._memory = parse_memory_requirement(task, cmdtool) + cmdtool._disk = parse_disk_requirement(task, cmdtool) + # cmdtool._env_vars = parse_env_vars(task, cmdtool) + # cmdtool._files_to_create = parse_files_to_create(task, cmdtool) + # cmdtool._directories_to_create = parse_dirs_to_create(task, cmdtool) + + # inputs / outputs / command + cmdtool._inputs = parse_inputs(task, cmdtool) + cmdtool._outputs = parse_outputs(task, cmdtool) + cmdtool = parse_command(task, cmdtool) + return cmdtool + +def parse_container_requirement(task: WDL.Tree.Task, cmdtool: CommandToolBuilder) -> str: + parser = TaskContainerParser(task, cmdtool) + return parser.parse() + +def parse_cpus_requirement(task: WDL.Tree.Task, cmdtool: CommandToolBuilder) -> Optional[int]: + parser = TaskCpusParser(task, cmdtool) + return parser.parse() + +def parse_memory_requirement(task: WDL.Tree.Task, cmdtool: CommandToolBuilder) -> Optional[float]: + parser = TaskMemoryParser(task, cmdtool) + return parser.parse() + +def parse_disk_requirement(task: WDL.Tree.Task, cmdtool: CommandToolBuilder) -> Optional[float]: + parser = TaskDiskParser(task, cmdtool) + return parser.parse() + +# def parse_env_vars(task: WDL.Tree.Task, cmdtool: CommandToolBuilder) -> dict[str, Any]: +# parser = TaskEnvVarsParser(task, cmdtool) +# return parser.parse() + +# def parse_files_to_create(task: WDL.Tree.Task, cmdtool: CommandToolBuilder) -> dict[str, Any]: +# parser = TaskFilesToCreateParser(task, cmdtool) +# return parser.parse() + +# def parse_dirs_to_create(task: WDL.Tree.Task, cmdtool: CommandToolBuilder) -> list[str | Selector]: +# parser = TaskDirsToCreateParser(task, cmdtool) +# return parser.parse() + +def parse_inputs(task: WDL.Tree.Task, cmdtool: CommandToolBuilder) -> list[ToolInput]: + # no inputs + if task.inputs is None: + return [] + + # parse each input + inputs = [] + for wdl_inp in task.inputs: + if wdl_inp.name.startswith("runtime_"): + continue + inputs.append(parse_input(task, cmdtool, wdl_inp)) + + # update cmdtool + return inputs + +def parse_input(task: WDL.Tree.Task, cmdtool: CommandToolBuilder, wdl_inp: WDL.Tree.Decl) -> ToolInput: + parser = TaskInputParser(task, cmdtool, wdl_inp) + return parser.parse() + +def parse_outputs(task: WDL.Tree.Task, cmdtool: CommandToolBuilder) -> list[ToolOutput]: + # no outputs + if task.outputs is None: + return [] + return [parse_output(task, cmdtool, wdl_out) for wdl_out in task.outputs] + +def parse_output(task: WDL.Tree.Task, cmdtool: CommandToolBuilder, wdl_out: WDL.Tree.Decl) -> ToolOutput: + parser = TaskOutputParser(task, cmdtool, wdl_out) + return parser.parse() + +def parse_command(task: WDL.Tree.Task, cmdtool: CommandToolBuilder) -> CommandToolBuilder: + if task.command is None: + return cmdtool + + if settings.ingest.wdl.COMMAND_PARSER == 'native_simple': + p_classes = [NativeSimpleParser] + elif settings.ingest.wdl.COMMAND_PARSER == 'native_arguments': + p_classes = [NativeArgumentParser] + elif settings.ingest.wdl.COMMAND_PARSER == 'shell': + p_classes = [ShellCommandParser] + else: + p_classes = [NativeSimpleParser, NativeArgumentParser, ShellCommandParser] + + #try native approach + for p_class in p_classes: + parser = p_class(task, cmdtool) + parser.parse() + if parser.success: + cmdtool._base_command = parser.base_command + cmdtool._env_vars = parser.env_vars + cmdtool._files_to_create = parser.files_to_create + cmdtool._directories_to_create = parser.directories_to_create + return cmdtool + + # TODO error handling here + raise RuntimeError + + \ No newline at end of file diff --git a/janis_core/ingestion/wdl/parsing/task/requirements.py b/janis_core/ingestion/wdl/parsing/task/requirements.py new file mode 100644 index 000000000..b1febaa05 --- /dev/null +++ b/janis_core/ingestion/wdl/parsing/task/requirements.py @@ -0,0 +1,189 @@ + +import WDL +import janis_core as j +import regex as re +from typing import Any , Optional + +from janis_core import Selector +from janis_core.messages import log_message +from janis_core.messages import ErrorCategory + +from ..expressions import parse_expr +from ..EntityParser import TaskParser + + +DEFAULT_CONTAINER = "ubuntu:latest" + +class TaskContainerParser(TaskParser): + + def do_parse(self) -> str: + container = self.task.runtime.get("container", self.task.runtime.get("docker")) + if isinstance(container, WDL.Expr.Get): + # relevant input + print(str(container.expr)) + inp = [i.expr for i in self.task.inputs if i.name == str(container.expr)] + if len(inp) > 0: + container = inp[0] + else: + msg = f"Expression for determining containers was '{container}' but couldn't find input called {str(container.expr)}" + log_message(self.cmdtool.uuid, msg, category=ErrorCategory.SCRIPTING) + raise RuntimeError + if isinstance(container, WDL.Expr.String): + container = container.literal + if isinstance(container, WDL.Value.String): + container = container.value + if container is None: + container = DEFAULT_CONTAINER + if not isinstance(container, str): + # TODO improve this using parse expr + msg = f"Expression for determining containers ({container}) are not supported in Janis, using default container" + log_message(self.cmdtool.uuid, msg, category=ErrorCategory.SCRIPTING) + raise RuntimeError + return container + + def fallback(self) -> str: + msg = 'Error parsing container requirement' + log_message(self.cmdtool.uuid, msg, category=ErrorCategory.FALLBACKS) + return DEFAULT_CONTAINER + + +class TaskCpusParser(TaskParser): + + def do_parse(self) -> Optional[int]: + value = self.task.runtime.get("cpu") + if value is None: + return None + cpus = parse_expr(value, self.task, self.cmdtool) + # if cpus is not None and not isinstance(cpus, j.Selector) and not isinstance(cpus, (int, float)): + if isinstance(cpus, str): + cpus = int(cpus) + return cpus + + def fallback(self) -> Optional[int]: + msg = 'Error parsing cpus requirement' + log_message(self.cmdtool.uuid, msg, category=ErrorCategory.FALLBACKS) + return None + + +class TaskMemoryParser(TaskParser): + + def do_parse(self) -> Optional[float]: + value = self.task.runtime.get("memory") + if value is None: + return None + s = parse_expr(value, self.task, self.cmdtool) + if s is None: + return None + elif isinstance(s, str): + if s.lower().endswith("g"): + return float(s[:-1].strip()) + if s.lower().endswith("gb"): + return float(s[:-2].strip()) + elif s.lower().endswith("gib"): + return float(s[:-3].strip()) * 1.074 + elif s.lower().endswith("mb"): + return float(s[:-2].strip()) / 1000 + elif s.lower().endswith("mib"): + return float(s[:-3].strip()) / 1024 + msg = f'Error parsing memory requirement from string: {s}' + log_message(self.cmdtool.uuid, msg, category=ErrorCategory.SCRIPTING) + raise RuntimeError + elif isinstance(s, (float, int)): + # in bytes? + return s / (1024 ** 3) + elif isinstance(s, j.Selector): + return s + msg = f"Couldn't recognise memory requirement '{value}'" + log_message(self.cmdtool.uuid, msg, category=ErrorCategory.SCRIPTING) + raise RuntimeError + + def fallback(self) -> Optional[float]: + msg = 'Error parsing memory requirement' + log_message(self.cmdtool.uuid, msg, category=ErrorCategory.FALLBACKS) + return None + + +class TaskDiskParser(TaskParser): + + def do_parse(self) -> Optional[float]: + value = self.task.runtime.get("disks") + if value is None: + return None + s = parse_expr(value, self.task, self.cmdtool) + if s is None: + return None + if isinstance(s, str): + try: + return int(s) + except ValueError: + pass + pattern_matcher = re.match(r"local-disk (\d+) .*", s) + if not pattern_matcher: + msg = f"Couldn't recognise disk type '{value}'" + log_message(self.cmdtool.uuid, msg, category=ErrorCategory.SCRIPTING) + raise RuntimeError + s = pattern_matcher.groups()[0] + try: + return int(s) + except ValueError: + pass + if s.lower().endswith("gb"): + return float(s[:-2].strip()) + elif s.lower().endswith("gib"): + return float(s[:-3].strip()) * 1.074 + elif s.lower().endswith("mb"): + return float(s[:-2].strip()) / 1000 + elif s.lower().endswith("mib"): + return float(s[:-3].strip()) / 1024 + raise Exception(f"Disk type type {s}") + elif isinstance(s, (float, int)): + # in GiB + return s * 1.07374 + elif isinstance(s, j.Selector): + return s + elif s is None: + return 2.14748 # 2 GiB + msg = f"Couldn't recognise memory requirement '{value}'" + log_message(self.cmdtool.uuid, msg, category=ErrorCategory.SCRIPTING) + raise RuntimeError + + def fallback(self) -> Optional[float]: + msg = 'Error parsing disk requirement' + log_message(self.cmdtool.uuid, msg, category=ErrorCategory.FALLBACKS) + return None + + +class TaskEnvVarsParser(TaskParser): + + def do_parse(self) -> dict[str, Any]: + # TODO??? + return {} + + def fallback(self) -> dict[str, Any]: + msg = 'Error parsing environment variables' + log_message(self.cmdtool.uuid, msg, category=ErrorCategory.FALLBACKS) + return {} + + +class TaskFilesToCreateParser(TaskParser): + + def do_parse(self) -> dict[str, Any]: + # TODO??? + return {} + + def fallback(self) -> dict[str, Any]: + msg = 'Error parsing files to create' + log_message(self.cmdtool.uuid, msg, category=ErrorCategory.FALLBACKS) + return {} + + +class TaskDirsToCreateParser(TaskParser): + + def do_parse(self) -> list[str | Selector]: + # TODO??? + return [] + + def fallback(self) -> list[str | Selector]: + msg = 'Error parsing directories to create' + log_message(self.cmdtool.uuid, msg, category=ErrorCategory.FALLBACKS) + return [] diff --git a/janis_core/ingestion/wdl/parsing/types.py b/janis_core/ingestion/wdl/parsing/types.py index f5649c9fd..59e5efa8f 100644 --- a/janis_core/ingestion/wdl/parsing/types.py +++ b/janis_core/ingestion/wdl/parsing/types.py @@ -1,33 +1,43 @@ -from typing import Optional import WDL import janis_core as j from janis_core.messages import log_message from janis_core.messages import ErrorCategory -def parse_type(t: WDL.Type.Base, uuid: Optional[str]=None): - optional = t.optional - if isinstance(t, WDL.Type.Int): - return j.Int(optional=optional) - elif isinstance(t, WDL.Type.String): - return j.String(optional=optional) - elif isinstance(t, WDL.Type.Float): - return j.Float(optional=optional) - elif isinstance(t, WDL.Type.Boolean): - return j.Boolean(optional=optional) - elif isinstance(t, WDL.Type.File): - return j.File(optional=optional) - elif isinstance(t, WDL.Type.Directory): - return j.Directory(optional=optional) - elif isinstance(t, WDL.Type.Array): - return j.Array(parse_type(t.item_type, uuid), optional=optional) - elif isinstance(t, WDL.Type.StructInstance): - if not uuid: - raise Exception('add uuid here') - msg = 'WDL Struct type unsupported. Has been cast to File type.' - log_message(uuid, msg, ErrorCategory.DATATYPES) - return j.File(optional=optional) - raise Exception(f"Didn't handle WDL type conversion for '{t}' ({type(t)})") \ No newline at end of file +def parse_type(wdl_type: WDL.Type.Base, wdl_tool: WDL.Tree.Workflow | WDL.Tree.Task, uuid: str): + parser = WDLTypeParser(wdl_tool, uuid) + return parser.parse(wdl_type) + + +class WDLTypeParser: + + def __init__(self, wdl_tool: WDL.Tree.Workflow | WDL.Tree.Task, uuid: str): + self.wdl_tool = wdl_tool # wdl tool or workflow the type appears in + self.uuid = uuid # uuid of respective janis entity (logging) + + def parse(self, t: WDL.Type.Base) -> j.Type: + optional = t.optional + if isinstance(t, WDL.Type.Int): + return j.Int(optional=optional) + elif isinstance(t, WDL.Type.String): + return j.String(optional=optional) + elif isinstance(t, WDL.Type.Float): + return j.Float(optional=optional) + elif isinstance(t, WDL.Type.Boolean): + return j.Boolean(optional=optional) + elif isinstance(t, WDL.Type.File): + return j.File(optional=optional) + elif isinstance(t, WDL.Type.Directory): + return j.Directory(optional=optional) + elif isinstance(t, WDL.Type.Array): + return j.Array(self.parse(t.item_type), optional=optional) + elif isinstance(t, WDL.Type.StructInstance): + if not self.uuid: + raise Exception('add self.uuid here') + msg = 'WDL Struct type unsupported. Has been cast to File type.' + log_message(self.uuid, msg, ErrorCategory.DATATYPES) + return j.File(optional=optional) + raise Exception(f"Didn't handle WDL type conversion for '{t}' ({type(t)})") \ No newline at end of file diff --git a/janis_core/ingestion/wdl/parsing/workflow/__init__.py b/janis_core/ingestion/wdl/parsing/workflow/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/janis_core/ingestion/wdl/parsing/workflow/explore.py b/janis_core/ingestion/wdl/parsing/workflow/explore.py new file mode 100644 index 000000000..b2c005b43 --- /dev/null +++ b/janis_core/ingestion/wdl/parsing/workflow/explore.py @@ -0,0 +1,65 @@ + + +from typing import Any, Optional +import WDL +from collections import defaultdict +from dataclasses import dataclass +from copy import deepcopy + +def get_entities(workflow: WDL.Tree.Workflow) -> dict[str, list]: + explorer = GraphExplorer(workflow) + explorer.explore() + return explorer.entities + +@dataclass +class InvertedCall: + call: WDL.Tree.Call + dependencies: list[WDL.Tree.Conditional] + scatter: Optional[WDL.Tree.Scatter] + +class GraphExplorer: + def __init__(self, workflow: WDL.Tree.Workflow): + self.workflow = workflow + self.entities = defaultdict(list) + + def explore(self) -> None: + if self.workflow.inputs is not None: + for inp in self.workflow.inputs: + self.entities['input'].append(inp) + if self.workflow.body is not None: + for node in self.workflow.body: + self.explore_node(node, deps=[]) + if self.workflow.outputs is not None: + for out in self.workflow.outputs: + self.entities['output'].append(out) + + def explore_node(self, node: Any, deps: list[WDL.Tree.Conditional], scatter: Optional[WDL.Tree.Scatter]=None) -> None: + if isinstance(node, list): + # pass deps and scatter down + this_deps = deepcopy(deps) + for item in node: + self.explore_node(item, this_deps, scatter=scatter) + + # ignoring dependencies for inputs + elif isinstance(node, WDL.Tree.Decl): + self.entities['input'].append(node) + + elif isinstance(node, WDL.Tree.Call): + call = InvertedCall(call=node, dependencies=deps, scatter=scatter) + self.entities['call'].append(call) + + elif isinstance(node, WDL.Tree.Scatter): + # pass deps down with new scatter + this_deps = deepcopy(deps) + self.explore_node(node.body, this_deps, scatter=node) + + elif isinstance(node, WDL.Tree.Conditional): + # pass scatter down with additional deps + this_deps = deepcopy(deps) + this_deps += [node] + self.explore_node(node.body, this_deps, scatter=scatter) + + # don't explore children + else: + return None + \ No newline at end of file diff --git a/janis_core/ingestion/wdl/parsing/workflow/main.py b/janis_core/ingestion/wdl/parsing/workflow/main.py new file mode 100644 index 000000000..98ae04be0 --- /dev/null +++ b/janis_core/ingestion/wdl/parsing/workflow/main.py @@ -0,0 +1,145 @@ + +import WDL +from typing import Any, Optional + +from janis_core import WorkflowBuilder, ScatterDescription +from janis_core.workflow.workflow import InputNode, OutputNode, StepNode +from janis_core.messages import log_message +from janis_core.messages import ErrorCategory + +from ..types import parse_type +from ..expressions import parse_expr +from ..EntityParser import WorkflowParser +from .explore import InvertedCall + + +class WorkflowInputParser(WorkflowParser): + + def __init__(self, wdl_wf: WDL.Tree.Workflow, janis_wf: WorkflowBuilder, wdl_inp: WDL.Tree.Decl) -> None: + super().__init__(wdl_wf, janis_wf) + self.wdl_inp = wdl_inp + + def do_parse(self) -> InputNode: + default = None + if self.wdl_inp.expr: + default = parse_expr(self.wdl_inp.expr, self.wdl_wf, self.janis_wf) + dtype = parse_type(self.wdl_inp.type, self.wdl_wf, uuid=self.janis_wf.uuid) + + selector = self.janis_wf.input( + self.wdl_inp.name, + dtype, + default=default + ) + return selector.input_node + + def fallback(self) -> InputNode: + # assumes issue is from parsing input default expression + msg = f'Error parsing workflow input: {self.wdl_inp.name}' + log_message(self.janis_wf.uuid, msg, category=ErrorCategory.FALLBACKS) + dtype = parse_type(self.wdl_inp.type, self.wdl_wf, uuid=self.janis_wf.uuid) + selector = self.janis_wf.input( + self.wdl_inp.name, + dtype, + default=None + ) + return selector.input_node + + + + +class WorkflowStepInputParser(WorkflowParser): + + def __init__(self, wdl_wf: WDL.Tree.Workflow, janis_wf: WorkflowBuilder, wdl_src: Any) -> None: + super().__init__(wdl_wf, janis_wf) + self.wdl_src = wdl_src + + def do_parse(self) -> Any: + return parse_expr(self.wdl_src, self.wdl_wf, self.janis_wf) + + def fallback(self) -> Any: + raise NotImplementedError + + + + +class WorkflowStepModifierParser(WorkflowParser): + + def __init__(self, wdl_wf: WDL.Tree.Workflow, janis_wf: WorkflowBuilder, inv_call: InvertedCall) -> None: + super().__init__(wdl_wf, janis_wf) + self.inv_call = inv_call + self.call = inv_call.call + self.dependencies = inv_call.dependencies + self.scatter = inv_call.scatter + self.jstep = self.janis_wf[self.call.name] + + def do_parse(self) -> None: + # what about scatter & when? + self.scatter = self.parse_scatter() + self.when = self.parse_dependencies() + + def parse_scatter(self) -> Optional[ScatterDescription]: + if not self.scatter: + return None + + raise NotImplementedError + + foreach = parse_expr(self.call.expr, self.wdl_wf, self.janis_wf) + + # TODO this uuid should be the janis step uuid. + scar_var_type = parse_type(self.call.expr.type, self.wdl_wf, uuid=self.janis_wf.uuid) + if isinstance(scar_var_type, WDL.Type.Array): + scar_var_type = scar_var_type.item_type + + # when we unwrap each step-input to the workflow, we want to replace 'self.call.variable' with + # lambda el: <operation with self.call.variable substituted for {el}> + # if self.call.variable not in wf.input_nodes: + # wf.input(self.call.variable, scar_var_type) + for inner_call in self.call.body: + self.add_call_to_wf( + wf, inner_call, foreach=foreach, expr_alias=self.call.variable + ) + + def parse_dependencies(self) -> Any: + if not self.dependencies: + return None + + raise NotImplementedError + + # TODO add j.ForEachSelector() to parse_expr in this case if list? + for inner_call in self.call.body: + + # inner_call = call.body[0] + self.add_call_to_wf( + wf, + inner_call, + condition=self.translate_expr( + call.expr, input_selector_getter=selector_getter + ), + expr_alias=expr_alias, + foreach=foreach, + ) + + def fallback(self) -> None: + raise NotImplementedError + + + +class WorkflowOutputParser(WorkflowParser): + + def __init__(self, wdl_wf: WDL.Tree.Workflow, janis_wf: WorkflowBuilder, wdl_out: WDL.Tree.Decl) -> None: + super().__init__(wdl_wf, janis_wf) + self.wdl_out = wdl_out + + def do_parse(self) -> OutputNode: + if self.wdl_out.expr is None: + raise Exception(f"Output {self.wdl_out.name} has no expression") + # TODO UPDATE EXPRESSION PARSING FOR WORKFLOW SCOPE + dtype = parse_type(self.wdl_out.type, self.wdl_wf, uuid=self.janis_wf.uuid) + sel = parse_expr(self.wdl_out.expr, self.wdl_wf, self.janis_wf) + return self.janis_wf.output(self.wdl_out.name, dtype, sel) + + def fallback(self) -> OutputNode: + raise NotImplementedError + + + diff --git a/janis_core/operators/operator.py b/janis_core/operators/operator.py index bda2a9b0f..c886e8743 100644 --- a/janis_core/operators/operator.py +++ b/janis_core/operators/operator.py @@ -331,6 +331,10 @@ def friendly_signature(): @staticmethod def wdl_symbol(): return "" + + @staticmethod + def nextflow_symbol(): + return "" @staticmethod def cwl_symbol(): @@ -387,6 +391,10 @@ def friendly_signature(): @staticmethod def wdl_symbol(): return "" + + @staticmethod + def nextflow_symbol(): + return "" @staticmethod def cwl_symbol(): diff --git a/janis_core/settings/ingest/__init__.py b/janis_core/settings/ingest/__init__.py index 834d709d9..c279bb006 100644 --- a/janis_core/settings/ingest/__init__.py +++ b/janis_core/settings/ingest/__init__.py @@ -1,6 +1,7 @@ from . import cwl +from . import wdl from . import galaxy from .general import * \ No newline at end of file diff --git a/janis_core/settings/ingest/wdl.py b/janis_core/settings/ingest/wdl.py new file mode 100644 index 000000000..3ad684947 --- /dev/null +++ b/janis_core/settings/ingest/wdl.py @@ -0,0 +1,4 @@ + +from typing import Optional + +COMMAND_PARSER: Optional[str] = None # use a specific command parser [testing purposes] \ No newline at end of file diff --git a/janis_core/tests/data/cwl/workflows/CroMaSt/translated/main.nf b/janis_core/tests/data/cwl/workflows/CroMaSt/translated/main.nf deleted file mode 100644 index 1477b37bd..000000000 --- a/janis_core/tests/data/cwl/workflows/CroMaSt/translated/main.nf +++ /dev/null @@ -1,74 +0,0 @@ -nextflow.enable.dsl=2 - -include { ADD_ISLAND_NAMES_TOOL as ADD_ISLAND_NAMES } from './modules/add_island_names_tool' -include { ASSIGN_GENES_TOOL as ASSIGN_GENES } from './modules/assign_genes_tool' -include { BED_TO_BIGBED_TOOL as BED_TO_BIGBED } from './modules/bed_to_bigbed_tool' -include { BED_TO_MACS_TOOL as BED_TO_MACS } from './modules/bed_to_macs_tool' -include { MAKE_GFF_TOOL as MAKE_GFF } from './modules/make_gff_tool' -include { REDUCE_BED_TOOL as REDUCE_BED } from './modules/reduce_bed_tool' -include { RENAME_PNG_TOOL as RENAME_PNG } from './modules/rename_png_tool' -include { RUN_ROSE_TOOL as RUN_ROSE } from './modules/run_rose_tool' -include { SORT_BED_TOOL as SORT_BED } from './modules/sort_bed_tool' - - -// data which will be passed as variables -annotation_file = file( params.annotation_file ) -bambai_pair = params.bambai_pair.collect{ file(it) } -chrom_length_file = file( params.chrom_length_file ) -islands_control_file = file( params.islands_control_file ) -islands_file = file( params.islands_file ) - - -workflow { - - ADD_ISLAND_NAMES( - ASSIGN_GENES.out.result_file.toList(), // input_file - bambai_pair.map{ tuple -> tuple[0] } // param - ) - - ASSIGN_GENES( - annotation_file, // annotation_filename - BED_TO_MACS.out.output_file, // input_filename - params.promoter_bp // promoter_bp - ) - - BED_TO_BIGBED( - chrom_length_file, // chrom_length_file - REDUCE_BED.out.output_file, // input_bed - "bed4", // bed_type - bambai_pair.map{ tuple -> tuple[0] } // output_filename - ) - - BED_TO_MACS( - SORT_BED.out.sorted_file // input_file - ) - - MAKE_GFF( - islands_file, // islands_file - islands_control_file // islands_control_file - ) - - REDUCE_BED( - SORT_BED.out.sorted_file // input_file - ) - - RENAME_PNG( - RUN_ROSE.out.plot_points_pic, // source_file - bambai_pair.map{ tuple -> tuple[0] } // target_filename - ) - - RUN_ROSE( - bambai_pair, // bam_file - annotation_file, // annotation_file - MAKE_GFF.out.gff_file, // binding_sites_file - params.stitch_distance, // stitch_distance - params.tss_distance // tss_distance - ) - - SORT_BED( - RUN_ROSE.out.gateway_super_enhancers_bed, // unsorted_file - ['1,1', '2,2n', '3,3n'] // key - ) - - -} diff --git a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/main.nf b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/main.nf index 65362c3ef..911a02d40 100644 --- a/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/main.nf +++ b/janis_core/tests/data/cwl/workflows/kf-somatic-workflow/workflow/translated/main.nf @@ -11,8 +11,7 @@ reverse_reads = file( params.reverse_reads ) workflow { - // ERROR: PARSING FALLBACKS - // this is a test + // [ERROR][FALLBACKS] this is a test NGTAX( forward_reads, // forward_reads mapping_file, // mapping_file diff --git a/janis_core/tests/data/wdl/ATAC.wdl b/janis_core/tests/data/wdl/ATAC.wdl new file mode 100644 index 000000000..722d93525 --- /dev/null +++ b/janis_core/tests/data/wdl/ATAC.wdl @@ -0,0 +1,745 @@ +version 1.0 + +# source https://github.com/broadinstitute/warp/blob/e6330f1fda1b738ea99e9728b6fa1b5d9b6ba530/beta-pipelines/skylab/ATAC/ATAC.wdl +# changes (almost all needed for miniwdl as well): +# 1. made all monitoring_logs optional (error in the original?) +# 2. BWAPairedEndAlignment: let the removal of the tar_bwa_reference fail without failing the step +# 3. FilterMitochondrialReads: localized bam_input to that it can be indexed +# 4. SnapCellByBin: cp, don't move the input file + +workflow ATAC { + meta { + description: "Processing for single-cell ATAC-seq data from the level of raw fastq reads to the generation of a snap file with snaptools. ATAC-seq (Assay for Transposase-Accessible Chromatin using sequencing) is a technique used in molecular biology to assess genome-wide chromatin accessibility. This pipeline accepts fastq files where the cell barcode has been added to the fastq read names as the first field." + } + + input { + # Fastq inputs + File fastq_gzipped_input_read1 + File fastq_gzipped_input_read2 + + # Trimming options + Int min_length + Int quality_cutoff + String adapter_seq_read1 + String adapter_seq_read2 + + # BWA parameters + File tar_bwa_reference + String read_group_id = "RG1" + String read_group_sample_name = "RGSN1" + Int bwa_cpu = 16 + + # Genome name and genome size file + String genome_name + File genome_size_file + + # Filtering options + Int min_map_quality + Int max_fragment_length + + # Output prefix/base name for all intermediate files and pipeline outputs + String output_base_name + + String bin_size_list = "10000" + } + + parameter_meta { + fastq_gzipped_input_read1: "read 1 fastq file as input for the pipeline, the cellular barcodes must be the first part of the read name seperated by colon" + fastq_gzipped_input_read2: "read 2 fastq file as input for the pipeline, the cellular barcodes must be the first part of the read name separated by colon" + min_length: "minimum length for trimming. Reads that are too short even before adapter removal are also discarded" + quality_cutoff: "cutadapt option to trim low-quality ends from reads before adapter removal" + adapter_seq_read1: "cutadapt option for the sequence adapter for read 1 fastq" + adapter_seq_read2: "cutadapt option for the sequence adapter for read 2 fastq" + tar_bwa_reference: "the pre built tar file containing the reference fasta and corresponding reference files for the BWA aligner" + read_group_id: "the read group id to be added upon alignment" + read_group_sample_name: "the read group sample to be added upon alignment" + bwa_cpu: "the number of cpu cores to use during alignment" + genome_name: "the name of the genome being analyzed, input to snap tools, curently mm10 and hg19 supported" + genome_size_file: "name of the file with chromosome sizes for the genome in the input tar file" + min_map_quality: "the minimum mapping quality to be filtered by samtools view and snap-pre (snaptools task)" + max_fragment_length: "the maximum fragment length for filtering out reads by gatk and snap-pre (snaptools task)" + output_base_name: "base name to be used for the pipelines output and intermediate files" + bin_size_list: "space separated list of bins to generate" + } + + call TrimAdapters { + input: + fastq_input_read1 = fastq_gzipped_input_read1, + fastq_input_read2 = fastq_gzipped_input_read2, + min_length = min_length, + quality_cutoff = quality_cutoff, + adapter_seq_read1 = adapter_seq_read1, + adapter_seq_read2 = adapter_seq_read2, + output_base_name = output_base_name + } + + call BWAPairedEndAlignment { + input: + fastq_input_read1 = TrimAdapters.fastq_trimmed_adapter_output_read1, + fastq_input_read2 = TrimAdapters.fastq_trimmed_adapter_output_read2, + tar_bwa_reference = tar_bwa_reference, + read_group_id = read_group_id, + read_group_sample_name = read_group_sample_name, + cpu = bwa_cpu, + output_base_name = output_base_name + } + + call SamToBam { + input: + sam_input = BWAPairedEndAlignment.sam_aligned_output, + output_base_name = output_base_name + } + + call SortSam as SortCoordinateOrder { + input: + bam_input = SamToBam.bam_output, + output_base_name = output_base_name + } + + call FilterMinMapQuality{ + input: + bam_input = SortCoordinateOrder.bam_sort_output, + min_map_quality = min_map_quality, + output_base_name = output_base_name + } + + call FilterMaxFragmentLength { + input: + bam_input = FilterMinMapQuality.bam_filter_mapq_output, + max_fragment_length = max_fragment_length, + output_base_name = output_base_name + } + + call FilterMitochondrialReads { + input: + bam_input = FilterMaxFragmentLength.bam_filter_fragment_length_output, + output_base_name = output_base_name + } + + call MakeCompliantBAM as MakeCompliantChrMBAM { + input: + bam_input = FilterMitochondrialReads.bam_chrM_reads_output, + output_base_name = output_base_name + ".chrM_reads" + } + + call SortSam as SortQueryName { + input: + bam_input = FilterMitochondrialReads.bam_no_chrM_reads_output, + sort_order = "queryname", + output_base_name = output_base_name + } + + call MakeCompliantBAM as MakeCompliantFilteredAndSortedBAM { + input: + bam_input = SortQueryName.bam_sort_output, + output_base_name = output_base_name + ".filtered_and_sorted" + } + + call SnapPre { + input: + bam_input= SortQueryName.bam_sort_output, + output_base_name = output_base_name, + genome_name = genome_name, + max_fragment_length = max_fragment_length, + genome_size_file = genome_size_file + } + + call SnapCellByBin { + input: + snap_input = SnapPre.snap_file_output, + bin_size_list = bin_size_list + } + + call BreakoutSnap { + input: + snap_input = SnapCellByBin.snap_output, + bin_size_list = bin_size_list + } + + output { + File bam_chrM_reads_compliant_output = MakeCompliantChrMBAM.compliant_bam_output + File bam_filtered_and_sorted_compliant_output = MakeCompliantFilteredAndSortedBAM.compliant_bam_output + File snap_qc_output = SnapPre.snap_qc_output + File snap_output = SnapCellByBin.snap_output + } +} + +# trim read 1 and read 2 adapter sequeunce with cutadapt +task TrimAdapters { + input { + File fastq_input_read1 + File fastq_input_read2 + Int min_length + Int quality_cutoff + String adapter_seq_read1 + String adapter_seq_read2 + String output_base_name + String docker_image = "quay.io/broadinstitute/cutadapt:1.18" + } + + parameter_meta { + fastq_input_read1: "read 1 fastq file as input for the pipeline" + fastq_input_read2: "read 2 fastq file as input for the pipeline" + min_length: "the minimum legnth for trimming. Reads that are too short even before adapter removal are also discarded" + quality_cutoff: "cutadapt option to trim low-quality ends from reads before adapter removal" + adapter_seq_read1: "cutadapt option for the sequence adapter for read 1 fastq" + adapter_seq_read2: "cutadapt option for the sequence adapter for read 2 fastq" + output_base_name: "base name to be used for the output of the task" + docker_image: "the docker image using cutadapt to be used (default: quay.io/broadinstitute/cutadapt:1.18)" + } + + # runtime requirements based upon input file size + Float input_size = size(fastq_input_read1, "GiB") + size(fastq_input_read2, "GiB") + Int disk_size = ceil(2 * (if input_size < 1 then 1 else input_size)) + + # output names for trimmed reads + String fastq_trimmed_adapter_output_name_read1 = output_base_name + ".R1.trimmed_adapters.fastq.gz" + String fastq_trimmed_adapter_output_name_read2 = output_base_name + ".R2.trimmed_adapters.fastq.gz" + + # using cutadapt to trim off sequence adapters + command { + set -euo pipefail + + # fastq's, "-f", -A for paired adapters read 2" + cutadapt \ + -f fastq \ + --minimum-length ~{min_length} \ + --quality-cutoff ~{quality_cutoff} \ + --adapter ~{adapter_seq_read1} \ + -A ~{adapter_seq_read2} \ + --output ~{fastq_trimmed_adapter_output_name_read1} \ + --paired-output ~{fastq_trimmed_adapter_output_name_read2} \ + ~{fastq_input_read1} ~{fastq_input_read2} + } + + # use docker image for given tool cutadapat + runtime { + docker: docker_image + disks: "local-disk " + disk_size + " HDD" + cpu: 1 + memory: "3.75 GiB" + } + + output { + File fastq_trimmed_adapter_output_read1 = fastq_trimmed_adapter_output_name_read1 + File fastq_trimmed_adapter_output_read2 = fastq_trimmed_adapter_output_name_read2 + File? monitoring_log = "monitoring.log" + } +} + +# align the two trimmed fastq as piared end data using BWA +task BWAPairedEndAlignment { + input { + File fastq_input_read1 + File fastq_input_read2 + File tar_bwa_reference + String read_group_id + String read_group_sample_name + Int cpu + String output_base_name + String docker_image = "quay.io/humancellatlas/snaptools:0.0.1" + } + + parameter_meta { + fastq_input_read1: "the trimmed read 1 fastq file as input for the aligner" + fastq_input_read2: "the trimmed read 1 fastq file as input for the aligner" + tar_bwa_reference: "the pre built tar file containing the reference fasta and cooresponding reference files for the BWA aligner" + read_group_id: "the read group id to be added upon alignment" + read_group_sample_name: "the read group sample to be added upon alignment" + cpu: "the number of cpu cores to use during alignment" + output_base_name: "basename to be used for the output of the task" + docker_image: "the docker image using BWA to be used (default: quay.io/humancellatlas/snaptools:0.0.1)" + } + + # runtime requirements based upon input file size + Float input_size = size(fastq_input_read1, "GiB") + size(fastq_input_read2, "GiB") + size(tar_bwa_reference, "GiB") + Int disk_size = ceil(3.25 * (if input_size < 1 then 1 else input_size)) + + String sam_aligned_output_name = output_base_name + ".aligned.sam" + + # sort with samtools + command { + set -euo pipefail + + # prepare reference + declare -r REF_DIR=$(mktemp -d genome_referenceXXXXXX) + tar -xf "~{tar_bwa_reference}" -C $REF_DIR --strip-components 1 + rm "~{tar_bwa_reference}" || /bin/true + + # align w/ BWA: -t for number of cores + bwa \ + mem \ + -R "@RG\tID:~{read_group_id}\tSM:~{read_group_sample_name}" \ + -t ~{cpu} \ + $REF_DIR/genome.fa \ + <(zcat ~{fastq_input_read1}) <(zcat ~{fastq_input_read2}) \ + > ~{sam_aligned_output_name} + } + + runtime { + docker: docker_image + disks: "local-disk " + disk_size + " HDD" + cpu: cpu + memory: "3.75 GiB" + } + + output { + File sam_aligned_output = sam_aligned_output_name + File? monitoring_log = "monitoring.log" + } +} + +# convert the sam to bam using samtools +task SamToBam { + input { + File sam_input + String output_base_name + String docker_image = "quay.io/broadinstitute/samtools:1.9" + } + + parameter_meta { + sam_input: "the aligned sam produced by the aligner" + output_base_name: "base name to be used for the output of the task" + docker_image: "the docker image using samtools to be used (default: quay.io/broadinstitute/samtools:1.9)" + } + + # output name for filtered read + String bam_output_name = output_base_name + ".bam" + + # runtime requirements based upon input file size + Int disk_size = ceil(2 * (if size(sam_input, "GiB") < 1 then 1 else size(sam_input, "GiB"))) + + command { + set -euo pipefail + + # converst sam to bam + samtools view \ + -bhS \ + ~{sam_input} \ + -o ~{bam_output_name} + } + + runtime { + docker: docker_image + disks: "local-disk " + disk_size + " HDD" + cpu: 1 + memory: "3.75 GiB" + } + + output { + File bam_output = bam_output_name + File? monitoring_log = "monitoring.log" + } +} + +# sort the bam file in user input order using picard +task SortSam { + input { + File bam_input + String sort_order = "coordinate" + String output_base_name + String docker_image = "quay.io/broadinstitute/picard:2.18.23" + } + + parameter_meta { + bam_input: "the bam to be sorted by picard tools" + sort_order: "the desired way for the bam to be sorted (default: coordinate)" + output_base_name: "base name to be used for the output of the task" + docker_image: "the docker image using picard to be used (default: quay.io/broadinstitute/picard:2.18.23)" + } + + # output name for sorted bam + String bam_sort_output_name = output_base_name + ".sorted." + sort_order + ".bam" + + # runtime requirements based upon input file size + Int disk_size = ceil(3.25 * (if size(bam_input, "GiB") < 1 then 1 else size(bam_input, "GiB"))) + + # sort with samtools + command { + set -euo pipefail + + java -Xmx3250m -jar /picard-tools/picard.jar SortSam \ + INPUT=~{bam_input} \ + SORT_ORDER=~{sort_order} \ + MAX_RECORDS_IN_RAM=300000 \ + OUTPUT=~{bam_sort_output_name} + } + + runtime { + docker: docker_image + disks: "local-disk " + disk_size + " HDD" + cpu: 1 + memory: "3750 MiB" + } + + output { + File bam_sort_output = bam_sort_output_name + File? monitoring_log = "monitoring.log" + } +} + +# filter bam by removing duplicates +task FilterMarkDuplicates { + input { + File bam_input + String output_base_name + String docker_image = "quay.io/broadinstitute/picard:2.18.23" + } + + parameter_meta { + bam_input: "the bam to passed into picard tools" + output_base_name: "base name to be used for the output of the task" + docker_image: "the docker image using picard to be used (default: quay.io/broadinstitute/picard:2.18.23)" + } + + # output namefor mark duplicates + String bam_remove_dup_output_name = output_base_name + ".filtered.duplicates.bam" + String metric_remove_dup_output_name = output_base_name + ".filtered.duplicate_metrics" + + # runtime requirements based upon input file size + Int disk_size = ceil(2 * (if size(bam_input, "GiB") < 1 then 1 else size(bam_input, "GiB"))) + + command { + set -euo pipefail + + java -Xmx3250m -jar /picard-tools/picard.jar MarkDuplicates \ + INPUT=~{bam_input} \ + OUTPUT=~{bam_remove_dup_output_name} \ + METRICS_FILE=~{metric_remove_dup_output_name} + } + + runtime { + docker: docker_image + disks: "local-disk " + disk_size + " HDD" + cpu: 1 + memory: "3750 MiB" + } + + output { + File bam_remove_dup_output = bam_remove_dup_output_name + File metric_remove_dup_output = metric_remove_dup_output_name + File? monitoring_log = "monitoring.log" + } +} + +# filter bam with a minimum mapping quality using samtools +task FilterMinMapQuality { + input { + File bam_input + Int min_map_quality + String output_base_name + String docker_image = "quay.io/broadinstitute/samtools:1.9" + } + + parameter_meta { + bam_input: "the bam to passed into samtools tools" + min_map_quality: "the minimum mapping quality to be filtered by samtools view and snap-pre (snaptools task)" + output_base_name: "base name to be used for the output of the task" + docker_image: "the docker image using samtools to be used (default: quay.io/broadinstitute/samtools:1.9)" + } + + # output name for filtered read + String bam_filter_mapq_output_name = output_base_name + ".filtered.min_map_quality.bam" + + # runtime requirements based upon input file size + Int disk_size = ceil(2 * (if size(bam_input, "GiB") < 1 then 1 else size(bam_input, "GiB"))) + + command { + set -euo pipefail + + # filter for a map quality + # -b output is bam, -h include header, -q reads with mapping quality >= + samtools view \ + -bh \ + -q~{min_map_quality} \ + ~{bam_input} \ + > ~{bam_filter_mapq_output_name} + } + + runtime { + docker: docker_image + disks: "local-disk " + disk_size + " HDD" + cpu: 1 + memory: "3.75 GiB" + } + + output { + File bam_filter_mapq_output = bam_filter_mapq_output_name + File? monitoring_log = "monitoring.log" + } +} + +# filter bam with a max fragment length +task FilterMaxFragmentLength { + input { + File bam_input + Int max_fragment_length + String output_base_name + String docker_image = "broadinstitute/gatk:4.1.2.0" + } + + parameter_meta { + bam_input: "the bam to passed into gatk tools" + max_fragment_length: "the maximum fragment length for filtering out reads by gatk (snaptools task)" + output_base_name: "base name to be used for the output of the task" + docker_image: "the docker image using gatk to be used (default: broadinstitute/gatk:4.1.2.0)" + } + + # output name for filtered read + String bam_filter_fragment_length_output_name = output_base_name + ".filtered.max_fragment_length.bam" + + # runtime requirements based upon input file size + Int disk_size = ceil(2 * (if size(bam_input, "GiB") < 1 then 1 else size(bam_input, "GiB"))) + + command { + set -euo pipefail + + gatk --java-options "-Xms2750m -Xmx3250m" \ + PrintReads \ + --input=~{bam_input} \ + --read-filter FragmentLengthReadFilter --max-fragment-length ~{max_fragment_length} \ + --output=~{bam_filter_fragment_length_output_name} + } + + runtime { + docker: docker_image + disks: "local-disk " + disk_size + " HDD" + cpu: 1 + memory: "3750 MiB" + } + + output { + File bam_filter_fragment_length_output = bam_filter_fragment_length_output_name + File? monitoring_log = "monitoring.log" + } +} + +# split the bam into read containing only and not containing any mitochondrial reads +task FilterMitochondrialReads { + input { + File bam_input + String output_base_name + String docker_image = "quay.io/broadinstitute/samtools:1.9" + } + + parameter_meta { + bam_input: "the bam to passed into samtools tools" + output_base_name: "base name to be used for the output of the task" + docker_image: "the docker image using samtools to be used (default: quay.io/broadinstitute/samtools:1.9)" + } + + # output name for sorted bam + String bam_chrM_reads_output_name = output_base_name + ".filtered.mitochondrial_reads.bam" + String bam_no_chrM_reads_output_name = output_base_name +".filtered.no_mitochondrial_reads.bam" + + # runtime requirements based upon input file size + Int disk_size = ceil(2 * (if size(bam_input, "GiB") < 1 then 1 else size(bam_input, "GiB"))) + + # ChrM: mitochondrial chromosome + command { + set -euo pipefail + + # create bam index to filter by chromosome + mkdir bam_input + ln -s ~{bam_input} bam_input/~{basename(bam_input)} + samtools index -b bam_input/~{basename(bam_input)} + + #get list of chromosomes from bam header (ignoring chrM chromosome) + declare -r LIST_CHRS=`samtools view -H bam_input/~{basename(bam_input)} \ + | grep chr \ + | cut -f2 \ + | sed 's/SN://g' \ + | grep -v 'chrM\|_'` + + # get bam w/o chrM using the list + samtools view \ + -bh \ + -f 0x2 \ + bam_input/~{basename(bam_input)} \ + `echo $LIST_CHRS` \ + -o ~{bam_no_chrM_reads_output_name} + + #get bam with only chrM + samtools view \ + -bh \ + bam_input/~{basename(bam_input)} \ + chrM \ + -o ~{bam_chrM_reads_output_name} + } + + runtime { + docker: docker_image + disks: "local-disk " + disk_size + " HDD" + cpu: 1 + memory: "3.75 GiB" + } + + output { + File bam_no_chrM_reads_output = bam_no_chrM_reads_output_name + File bam_chrM_reads_output = bam_chrM_reads_output_name + File? monitoring_log = "monitoring.log" + } +} + +# generate the snap file from the filterer, aligned and sorted bam +task SnapPre { + input { + File bam_input + String output_base_name + String genome_name + Int max_fragment_length + File genome_size_file + String docker_image = "quay.io/humancellatlas/snaptools:0.0.1" + } + + parameter_meta { + bam_input: "the bam to passed into snaptools tools" + output_base_name: "base name to be used for the output of the task" + genome_name: "the name of the genome being analyzed" + max_fragment_length: "the maximum fragment length for filtering out reads by snap-pre (snaptools task)" + genome_size_file: "size for the chromoomes for the genome; ex: mm10.chrom.size" + docker_image: "the docker image using snaptools to be used (default: quay.io/humancellatlas/snaptools:0.0.1)" + } + + String snap_file_output_name = output_base_name + ".snap" + String snap_qc_output_name = snap_file_output_name + ".qc" + + command { + set -euo pipefail + + # Does the main counting + snaptools snap-pre \ + --input-file=~{bam_input} \ + --output-snap=~{snap_file_output_name} \ + --genome-name=~{genome_name} \ + --genome-size=~{genome_size_file} \ + --min-mapq=0 \ + --min-flen=0 \ + --max-flen=~{max_fragment_length} \ + --keep-chrm=TRUE \ + --keep-single=TRUE \ + --keep-secondary=False \ + --overwrite=True \ + --max-num=1000000 \ + --min-cov=100 \ + --verbose=True + } + + runtime { + docker: docker_image + cpu: 1 + memory: "16 GiB" + disks: "local-disk 150 HDD" + } + + output { + File snap_file_output = snap_file_output_name + File snap_qc_output = snap_qc_output_name + } +} + +# create a cell by bin matrix from the generated snap file +task SnapCellByBin { + input { + File snap_input + String bin_size_list + String snap_output_name = "output.snap" + String docker_image = "quay.io/humancellatlas/snaptools:0.0.1" + } + + parameter_meta { + snap_input: "the bam to passed into snaptools tools" + bin_size_list: "space separated list of bins to generate" + snap_output_name: "output.snap" + docker_image: "the docker image to be used (default: quay.io/humancellatlas/snaptools:0.0.1)" + } + + Int num_threads = 1 + + command { + set -euo pipefail + + cp ~{snap_input} ~{snap_output_name} + + # This is mutating the file in-place + snaptools snap-add-bmat \ + --snap-file=~{snap_output_name} \ + --bin-size-list ~{bin_size_list} \ + --verbose=True + } + output { + File snap_output = snap_output_name + } + runtime { + docker: docker_image + cpu: num_threads + memory: "16 GiB" + disks: "local-disk 150 HDD" + } +} + +task MakeCompliantBAM { + input { + File bam_input + String output_base_name + String docker_image = "quay.io/humancellatlas/snaptools:0.0.1" + } + + parameter_meta { + bam_input: "the bam with barcodes in the read ids that need to be converted to barcodes in bam tags" + output_base_name: "base name to be used for the output of the task" + docker_image: "the docker image using the python script to convert the bam barcodes/read ids (default: quay.io/humancellatlas/snaptools:0.0.1)" + } + + Int disk_size = ceil(2.5 * (if size(bam_input, "GiB") < 1 then 1 else size(bam_input, "GiB"))) + + String compliant_bam_output_name = output_base_name + ".compliant.bam" + + command { + makeCompliantBAM.py \ + --input-bam ~{bam_input} \ + --output-bam ~{compliant_bam_output_name} + } + + runtime { + docker: docker_image + cpu: 1 + memory: "4 GiB" + disks: "local-disk " + disk_size + " HDD" + } + + output { + File compliant_bam_output = compliant_bam_output_name + } +} + +task BreakoutSnap { + input { + File snap_input + String docker_image = "quay.io/humancellatlas/snap-breakout:0.0.1" + String bin_size_list + } + Int num_threads = 1 + Float input_size = size(snap_input, "GiB") + command { + set -euo pipefail + mkdir output + breakoutSnap.py --input ~{snap_input} \ + --output-prefix output/ + } + output { + File barcodes = 'output/barcodes.csv' + File fragments = 'output/fragments.csv' + File binCoordinates = 'output/binCoordinates_~{bin_size_list}.csv' + File binCounts = 'output/binCounts_~{bin_size_list}.csv' + File barcodesSection = 'output/barcodesSection.csv' + } + runtime { + docker: docker_image + cpu: num_threads + memory: "16 GB" + disks: "local-disk " + ceil(10 * (if input_size < 1 then 1 else input_size )) + " HDD" + } +} + + diff --git a/janis_core/tests/data/wdl/TrimAdapters.wdl b/janis_core/tests/data/wdl/TrimAdapters.wdl index 4e87a50d9..2c16468e8 100644 --- a/janis_core/tests/data/wdl/TrimAdapters.wdl +++ b/janis_core/tests/data/wdl/TrimAdapters.wdl @@ -1,3 +1,4 @@ +version 1.0 # trim read 1 and read 2 adapter sequeunce with cutadapt task TrimAdapters { diff --git a/janis_core/tests/data/wdl/mutect2.wdl b/janis_core/tests/data/wdl/mutect2.wdl new file mode 100644 index 000000000..36590b883 --- /dev/null +++ b/janis_core/tests/data/wdl/mutect2.wdl @@ -0,0 +1,886 @@ +## Copyright Broad Institute, 2017 +## +## This WDL workflow runs GATK4 Mutect 2 on a single tumor-normal pair or on a single tumor sample, +## and performs additional filtering. +## +## Main requirements/expectations : +## - One analysis-ready BAM file (and its index) for each sample +## +## Description of inputs: +## +## ** Runtime ** +## gatk_docker: docker image to use for GATK 4 Mutect2 +## preemptible: how many preemptions to tolerate before switching to a non-preemptible machine (on Google) +## max_retries: how many times to retry failed tasks -- very important on the cloud when there are transient errors +## gatk_override: (optional) local file or Google bucket path to a GATK 4 java jar file to be used instead of the GATK 4 jar +## in the docker image. This must be supplied when running in an environment that does not support docker +## (e.g. SGE cluster on a Broad on-prem VM) +## +## ** Workflow options ** +## intervals: genomic intervals (will be used for scatter) +## scatter_count: number of parallel jobs to generate when scattering over intervals +## m2_extra_args, m2_extra_filtering_args: additional arguments for Mutect2 calling and filtering (optional) +## split_intervals_extra_args: additional arguments for splitting intervals before scattering (optional) +## run_orientation_bias_mixture_model_filter: (optional) if true, filter orientation bias sites with the read orientation artifact mixture model. +## +## ** Primary inputs ** +## ref_fasta, ref_fai, ref_dict: reference genome, index, and dictionary +## tumor_reas, tumor_reads_index: BAM and index for the tumor sample +## normal_reads, normal_reads_index: BAM and index for the normal sample +## +## ** Primary resources ** (optional but strongly recommended) +## pon, pon_idx: optional panel of normals (and its index) in VCF format containing probable technical artifacts (false positves) +## gnomad, gnomad_idx: optional database of known germline variants (and its index) (see http://gnomad.broadinstitute.org/downloads) +## variants_for_contamination, variants_for_contamination_idx: VCF of common variants (and its index)with allele frequencies for calculating contamination +## +## ** Secondary resources ** (for optional tasks) +## realignment_index_bundle: resource for FilterAlignmentArtifacts, which runs if and only if it is specified. Generated by BwaMemIndexImageCreator. +## +## Outputs : +## - One VCF file and its index with primary filtering applied; secondary filtering if requested; a bamout.bam +## file of reassembled reads if requested +## +## Cromwell version support +## - Successfully tested on v34 +## +## LICENSING : +## This script is released under the GATK source code license (Apache 2.0) (see LICENSE in +## https://github.com/broadinstitute/gatk). Note however that the programs it calls may +## be subject to different licenses. Users are responsible for checking that they are +## authorized to run all programs before running this script. Please see the docker +## pages at https://hub.docker.com/r/broadinstitute/* for detailed licensing information +## pertaining to the included programs. + +version 1.1 + +struct Runtime { + String gatk_docker + File? gatk_override + Int max_retries + Int preemptible + Int cpu + Int machine_mem + Int command_mem + Int disk + Int boot_disk_size +} + +workflow Mutect2 { + input { + # basic inputs + File? intervals + File ref_fasta + File ref_fai + File ref_dict + File tumor_reads + File tumor_reads_index + File? normal_reads + File? normal_reads_index + + # optional but usually recommended resources + File? pon + File? pon_idx + File? gnomad + File? gnomad_idx + File? variants_for_contamination + File? variants_for_contamination_idx + + # extra arguments + String? m2_extra_args + String? m2_extra_filtering_args + String? getpileupsummaries_extra_args + String? split_intervals_extra_args + + # additional modes and outputs + File? realignment_index_bundle + String? realignment_extra_args + Boolean run_orientation_bias_mixture_model_filter = false + Boolean make_bamout = false + Boolean compress_vcfs = false + File? gga_vcf + File? gga_vcf_idx + Boolean make_m3_training_dataset = false + Boolean make_m3_test_dataset = false + File? m3_training_dataset_truth_vcf + File? m3_training_dataset_truth_vcf_idx + + + # runtime + String gatk_docker + File? gatk_override + String basic_bash_docker = "ubuntu:16.04" + Int scatter_count + Int preemptible = 2 + Int max_retries = 1 + Int small_task_cpu = 2 + Int small_task_mem = 4 + Int small_task_disk = 100 + Int boot_disk_size = 12 + Int learn_read_orientation_mem = 8000 + Int filter_alignment_artifacts_mem = 9000 + String? gcs_project_for_requester_pays + + # Use as a last resort to increase the disk given to every task in case of ill behaving data + Int emergency_extra_disk = 0 + } + + # Disk sizes used for dynamic sizing + Int ref_size = ceil(size(ref_fasta, "GB") + size(ref_dict, "GB") + size(ref_fai, "GB")) + Int tumor_reads_size = ceil(size(tumor_reads, "GB") + size(tumor_reads_index, "GB")) + Int gnomad_vcf_size = if defined(gnomad) then ceil(size(gnomad, "GB")) else 0 + Int normal_reads_size = if defined(normal_reads) then ceil(size(normal_reads, "GB") + size(normal_reads_index, "GB")) else 0 + + # This is added to every task as padding, should increase if systematically you need more disk for every call + Int disk_pad = 10 + emergency_extra_disk + + Runtime standard_runtime = { + "gatk_docker": gatk_docker, + "gatk_override": gatk_override, + "max_retries": max_retries, + "preemptible": preemptible, + "cpu": small_task_cpu, + "machine_mem": small_task_mem * 1000, + "command_mem": small_task_mem * 1000 - 500, + "disk": small_task_disk + disk_pad, + "boot_disk_size": boot_disk_size + } + + Int m2_output_size = tumor_reads_size / scatter_count + #TODO: do we need to change this disk size now that NIO is always going to happen (for the google backend only) + Int m2_per_scatter_size = (tumor_reads_size + normal_reads_size) + ref_size + gnomad_vcf_size + m2_output_size + disk_pad + + call SplitIntervals { + input: + intervals = intervals, + ref_fasta = ref_fasta, + ref_fai = ref_fai, + ref_dict = ref_dict, + scatter_count = scatter_count, + split_intervals_extra_args = split_intervals_extra_args, + runtime_params = standard_runtime + } + + scatter (subintervals in SplitIntervals.interval_files ) { + call M2 { + input: + intervals = subintervals, + ref_fasta = ref_fasta, + ref_fai = ref_fai, + ref_dict = ref_dict, + tumor_reads = tumor_reads, + tumor_reads_index = tumor_reads_index, + normal_reads = normal_reads, + normal_reads_index = normal_reads_index, + pon = pon, + pon_idx = pon_idx, + gnomad = gnomad, + gnomad_idx = gnomad_idx, + preemptible = preemptible, + max_retries = max_retries, + m2_extra_args = m2_extra_args, + getpileupsummaries_extra_args = getpileupsummaries_extra_args, + variants_for_contamination = variants_for_contamination, + variants_for_contamination_idx = variants_for_contamination_idx, + make_bamout = make_bamout, + run_ob_filter = run_orientation_bias_mixture_model_filter, + compress_vcfs = compress_vcfs, + gga_vcf = gga_vcf, + gga_vcf_idx = gga_vcf_idx, + make_m3_training_dataset = make_m3_training_dataset, + make_m3_test_dataset = make_m3_test_dataset, + m3_training_dataset_truth_vcf = m3_training_dataset_truth_vcf, + m3_training_dataset_truth_vcf_idx = m3_training_dataset_truth_vcf_idx, + gatk_override = gatk_override, + gatk_docker = gatk_docker, + disk_space = m2_per_scatter_size, + gcs_project_for_requester_pays = gcs_project_for_requester_pays + } + } + + Int merged_vcf_size = ceil(size(M2.unfiltered_vcf, "GB")) + Int merged_bamout_size = ceil(size(M2.output_bamOut, "GB")) + + if (run_orientation_bias_mixture_model_filter) { + call LearnReadOrientationModel { + input: + f1r2_tar_gz = M2.f1r2_counts, + runtime_params = standard_runtime, + mem = learn_read_orientation_mem + } + } + + call MergeVCFs { + input: + input_vcfs = M2.unfiltered_vcf, + input_vcf_indices = M2.unfiltered_vcf_idx, + compress_vcfs = compress_vcfs, + runtime_params = standard_runtime + } + + if (make_bamout) { + call MergeBamOuts { + input: + ref_fasta = ref_fasta, + ref_fai = ref_fai, + ref_dict = ref_dict, + bam_outs = M2.output_bamOut, + runtime_params = standard_runtime, + disk_space = ceil(merged_bamout_size * 4) + disk_pad, + } + } + + call MergeStats { input: stats = M2.stats, runtime_params = standard_runtime } + + if (defined(variants_for_contamination)) { + call MergePileupSummaries as MergeTumorPileups { + input: + input_tables = flatten(M2.tumor_pileups), + output_name = "tumor-pileups", + ref_dict = ref_dict, + runtime_params = standard_runtime + } + + if (defined(normal_reads)){ + call MergePileupSummaries as MergeNormalPileups { + input: + input_tables = flatten(M2.normal_pileups), + output_name = "normal-pileups", + ref_dict = ref_dict, + runtime_params = standard_runtime + } + } + + call CalculateContamination { + input: + tumor_pileups = MergeTumorPileups.merged_table, + normal_pileups = MergeNormalPileups.merged_table, + runtime_params = standard_runtime + } + } + + if (make_m3_training_dataset || make_m3_test_dataset) { + call Concatenate { + input: + input_files = M2.m3_dataset, + gatk_docker = gatk_docker + } + } + + call Filter { + input: + ref_fasta = ref_fasta, + ref_fai = ref_fai, + ref_dict = ref_dict, + intervals = intervals, + unfiltered_vcf = MergeVCFs.merged_vcf, + unfiltered_vcf_idx = MergeVCFs.merged_vcf_idx, + compress_vcfs = compress_vcfs, + mutect_stats = MergeStats.merged_stats, + contamination_table = CalculateContamination.contamination_table, + maf_segments = CalculateContamination.maf_segments, + artifact_priors_tar_gz = LearnReadOrientationModel.artifact_prior_table, + m2_extra_filtering_args = m2_extra_filtering_args, + runtime_params = standard_runtime, + disk_space = ceil(size(MergeVCFs.merged_vcf, "GB") * 4) + disk_pad + } + + if (defined(realignment_index_bundle)) { + call FilterAlignmentArtifacts { + input: + ref_fasta = ref_fasta, + ref_fai = ref_fai, + ref_dict = ref_dict, + reads = tumor_reads, + reads_index = tumor_reads_index, + realignment_index_bundle = select_first([realignment_index_bundle]), + realignment_extra_args = realignment_extra_args, + compress_vcfs = compress_vcfs, + input_vcf = Filter.filtered_vcf, + input_vcf_idx = Filter.filtered_vcf_idx, + runtime_params = standard_runtime, + mem = filter_alignment_artifacts_mem, + gcs_project_for_requester_pays = gcs_project_for_requester_pays + } + } + + output { + File filtered_vcf = select_first([FilterAlignmentArtifacts.filtered_vcf, Filter.filtered_vcf]) + File filtered_vcf_idx = select_first([FilterAlignmentArtifacts.filtered_vcf_idx, Filter.filtered_vcf_idx]) + File filtering_stats = Filter.filtering_stats + File mutect_stats = MergeStats.merged_stats + File? contamination_table = CalculateContamination.contamination_table + + File? bamout = MergeBamOuts.merged_bam_out + File? bamout_index = MergeBamOuts.merged_bam_out_index + File? maf_segments = CalculateContamination.maf_segments + File? read_orientation_model_params = LearnReadOrientationModel.artifact_prior_table + File? m3_dataset = Concatenate.concatenated + } +} + +task SplitIntervals { + input { + File? intervals + File ref_fasta + File ref_fai + File ref_dict + Int scatter_count + String? split_intervals_extra_args + + # runtime + Runtime runtime_params + } + + command { + set -e + export GATK_LOCAL_JAR=~{default="/root/gatk.jar" runtime_params.gatk_override} + + mkdir interval-files + gatk --java-options "-Xmx~{runtime_params.command_mem}m" SplitIntervals \ + -R ~{ref_fasta} \ + ~{"-L " + intervals} \ + -scatter ~{scatter_count} \ + -O interval-files \ + ~{split_intervals_extra_args} + cp interval-files/*.interval_list . + } + + runtime { + docker: runtime_params.gatk_docker + bootDiskSizeGb: runtime_params.boot_disk_size + memory: runtime_params.machine_mem + " MB" + disks: "local-disk " + runtime_params.disk + " HDD" + preemptible: runtime_params.preemptible + maxRetries: runtime_params.max_retries + cpu: runtime_params.cpu + } + + output { + Array[File] interval_files = glob("*.interval_list") + } +} + +task M2 { + input { + File? intervals + File ref_fasta + File ref_fai + File ref_dict + File tumor_reads + File tumor_reads_index + File? normal_reads + File? normal_reads_index + File? pon + File? pon_idx + File? gnomad + File? gnomad_idx + String? m2_extra_args + String? getpileupsummaries_extra_args + Boolean? make_bamout + Boolean? run_ob_filter + Boolean compress_vcfs + File? gga_vcf + File? gga_vcf_idx + File? variants_for_contamination + File? variants_for_contamination_idx + + File? gatk_override + + String? gcs_project_for_requester_pays + + Boolean make_m3_training_dataset = false + Boolean make_m3_test_dataset = false + File? m3_training_dataset_truth_vcf + File? m3_training_dataset_truth_vcf_idx + + # runtime + String gatk_docker + Int? mem + Int? preemptible + Int? max_retries + Int? disk_space + Int? cpu + Boolean use_ssd = false + } + + String output_vcf = "output" + if compress_vcfs then ".vcf.gz" else ".vcf" + String output_vcf_idx = output_vcf + if compress_vcfs then ".tbi" else ".idx" + + String output_stats = output_vcf + ".stats" + + # Mem is in units of GB but our command and memory runtime values are in MB + Int machine_mem = 3500 + Int command_mem = machine_mem - 500 + + parameter_meta{ + intervals: {localization_optional: true} + ref_fasta: {localization_optional: true} + ref_fai: {localization_optional: true} + ref_dict: {localization_optional: true} + tumor_reads: {localization_optional: true} + tumor_reads_index: {localization_optional: true} + normal_reads: {localization_optional: true} + normal_reads_index: {localization_optional: true} + pon: {localization_optional: true} + pon_idx: {localization_optional: true} + gnomad: {localization_optional: true} + gnomad_idx: {localization_optional: true} + gga_vcf: {localization_optional: true} + gga_vcf_idx: {localization_optional: true} + variants_for_contamination: {localization_optional: true} + variants_for_contamination_idx: {localization_optional: true} + m3_training_dataset_truth_vcf: {localization_optional: true} + m3_training_dataset_truth_vcf_idx: {localization_optional: true} + } + + command <<< + set -e + + export GATK_LOCAL_JAR=~{default="/root/gatk.jar" gatk_override} + + # We need to create these files regardless, even if they stay empty + touch bamout.bam + touch f1r2.tar.gz + touch dataset.txt + echo "" > normal_name.txt + + gatk --java-options "-Xmx~{command_mem}m" GetSampleName -R ~{ref_fasta} -I ~{tumor_reads} -O tumor_name.txt -encode \ + ~{"--gcs-project-for-requester-pays " + gcs_project_for_requester_pays} + tumor_command_line="-I ~{tumor_reads} -tumor `cat tumor_name.txt`" + + if [[ ! -z "~{normal_reads}" ]]; then + gatk --java-options "-Xmx~{command_mem}m" GetSampleName -R ~{ref_fasta} -I ~{normal_reads} -O normal_name.txt -encode \ + ~{"--gcs-project-for-requester-pays " + gcs_project_for_requester_pays} + normal_command_line="-I ~{normal_reads} -normal `cat normal_name.txt`" + fi + + gatk --java-options "-Xmx~{command_mem}m" Mutect2 \ + -R ~{ref_fasta} \ + $tumor_command_line \ + $normal_command_line \ + ~{"--germline-resource " + gnomad} \ + ~{"-pon " + pon} \ + ~{"-L " + intervals} \ + ~{"--alleles " + gga_vcf} \ + -O "~{output_vcf}" \ + ~{true='--bam-output bamout.bam' false='' make_bamout} \ + ~{true='--f1r2-tar-gz f1r2.tar.gz' false='' run_ob_filter} \ + ~{true='--mutect3-dataset dataset.txt' false='' make_m3_test_dataset} \ + ~{true='--mutect3-dataset dataset.txt --mutect3-training-mode' false='' make_m3_training_dataset} \ + ~{"--mutect3-training-truth " + m3_training_dataset_truth_vcf} \ + ~{m2_extra_args} \ + ~{"--gcs-project-for-requester-pays " + gcs_project_for_requester_pays} + + m2_exit_code=$? + + ### GetPileupSummaries + + # If the variants for contamination and the intervals for this scatter don't intersect, GetPileupSummaries + # throws an error. However, there is nothing wrong with an empty intersection for our purposes; it simply doesn't + # contribute to the merged pileup summaries that we create downstream. We implement this by with array outputs. + # If the tool errors, no table is created and the glob yields an empty array. + set +e + + if [[ ! -z "~{variants_for_contamination}" ]]; then + gatk --java-options "-Xmx~{command_mem}m" GetPileupSummaries -R ~{ref_fasta} -I ~{tumor_reads} ~{"--interval-set-rule INTERSECTION -L " + intervals} \ + -V ~{variants_for_contamination} -L ~{variants_for_contamination} -O tumor-pileups.table ~{getpileupsummaries_extra_args} \ + ~{"--gcs-project-for-requester-pays " + gcs_project_for_requester_pays} + + + if [[ ! -z "~{normal_reads}" ]]; then + gatk --java-options "-Xmx~{command_mem}m" GetPileupSummaries -R ~{ref_fasta} -I ~{normal_reads} ~{"--interval-set-rule INTERSECTION -L " + intervals} \ + -V ~{variants_for_contamination} -L ~{variants_for_contamination} -O normal-pileups.table ~{getpileupsummaries_extra_args} \ + ~{"--gcs-project-for-requester-pays " + gcs_project_for_requester_pays} + fi + fi + + # the script only fails if Mutect2 itself fails + exit $m2_exit_code + >>> + + runtime { + docker: gatk_docker + bootDiskSizeGb: 12 + memory: machine_mem + " MB" + disks: "local-disk " + select_first([disk_space, 100]) + if use_ssd then " SSD" else " HDD" + preemptible: select_first([preemptible, 10]) + maxRetries: select_first([max_retries, 0]) + cpu: select_first([cpu, 1]) + } + + output { + File unfiltered_vcf = "~{output_vcf}" + File unfiltered_vcf_idx = "~{output_vcf_idx}" + File output_bamOut = "bamout.bam" + String tumor_sample = read_string("tumor_name.txt") + String normal_sample = read_string("normal_name.txt") + File stats = "~{output_stats}" + File f1r2_counts = "f1r2.tar.gz" + Array[File] tumor_pileups = glob("*tumor-pileups.table") + Array[File] normal_pileups = glob("*normal-pileups.table") + File m3_dataset = "dataset.txt" + } +} + +task MergeVCFs { + input { + Array[File] input_vcfs + Array[File] input_vcf_indices + Boolean compress_vcfs + Runtime runtime_params + } + + String output_vcf = if compress_vcfs then "merged.vcf.gz" else "merged.vcf" + String output_vcf_idx = output_vcf + if compress_vcfs then ".tbi" else ".idx" + + # using MergeVcfs instead of GatherVcfs so we can create indices + # WARNING 2015-10-28 15:01:48 GatherVcfs Index creation not currently supported when gathering block compressed VCFs. + command { + set -e + export GATK_LOCAL_JAR=~{default="/root/gatk.jar" runtime_params.gatk_override} + gatk --java-options "-Xmx~{runtime_params.command_mem}m" MergeVcfs -I ~{sep=' -I ' input_vcfs} -O ~{output_vcf} + } + + runtime { + docker: runtime_params.gatk_docker + bootDiskSizeGb: runtime_params.boot_disk_size + memory: runtime_params.machine_mem + " MB" + disks: "local-disk " + runtime_params.disk + " HDD" + preemptible: runtime_params.preemptible + maxRetries: runtime_params.max_retries + cpu: runtime_params.cpu + } + + output { + File merged_vcf = "~{output_vcf}" + File merged_vcf_idx = "~{output_vcf_idx}" + } +} + +task MergeBamOuts { + input { + File ref_fasta + File ref_fai + File ref_dict + Array[File]+ bam_outs + Runtime runtime_params + Int? disk_space #override to request more disk than default small task params + } + + command <<< + # This command block assumes that there is at least one file in bam_outs. + # Do not call this task if len(bam_outs) == 0 + set -e + export GATK_LOCAL_JAR=~{default="/root/gatk.jar" runtime_params.gatk_override} + gatk --java-options "-Xmx~{runtime_params.command_mem}m" GatherBamFiles \ + -I ~{sep=" -I " bam_outs} -O unsorted.out.bam -R ~{ref_fasta} + + # We must sort because adjacent scatters may have overlapping (padded) assembly regions, hence + # overlapping bamouts + + gatk --java-options "-Xmx~{runtime_params.command_mem}m" SortSam -I unsorted.out.bam \ + -O bamout.bam --SORT_ORDER coordinate -VALIDATION_STRINGENCY LENIENT + gatk --java-options "-Xmx~{runtime_params.command_mem}m" BuildBamIndex -I bamout.bam -VALIDATION_STRINGENCY LENIENT + >>> + + runtime { + docker: runtime_params.gatk_docker + bootDiskSizeGb: runtime_params.boot_disk_size + memory: runtime_params.machine_mem + " MB" + disks: "local-disk " + select_first([disk_space, runtime_params.disk]) + " HDD" + preemptible: runtime_params.preemptible + maxRetries: runtime_params.max_retries + cpu: runtime_params.cpu + } + + output { + File merged_bam_out = "bamout.bam" + File merged_bam_out_index = "bamout.bai" + } +} + + +task MergeStats { + input { + Array[File]+ stats + Runtime runtime_params + } + + command { + set -e + export GATK_LOCAL_JAR=~{default="/root/gatk.jar" runtime_params.gatk_override} + + + gatk --java-options "-Xmx~{runtime_params.command_mem}m" MergeMutectStats \ + -stats ~{sep=" -stats " stats} -O merged.stats + } + + runtime { + docker: runtime_params.gatk_docker + bootDiskSizeGb: runtime_params.boot_disk_size + memory: runtime_params.machine_mem + " MB" + disks: "local-disk " + runtime_params.disk + " HDD" + preemptible: runtime_params.preemptible + maxRetries: runtime_params.max_retries + cpu: runtime_params.cpu + } + + output { + File merged_stats = "merged.stats" + } +} + +task MergePileupSummaries { + input { + Array[File] input_tables + String output_name + File ref_dict + Runtime runtime_params + } + + command { + set -e + export GATK_LOCAL_JAR=~{default="/root/gatk.jar" runtime_params.gatk_override} + + gatk --java-options "-Xmx~{runtime_params.command_mem}m" GatherPileupSummaries \ + --sequence-dictionary ~{ref_dict} \ + -I ~{sep=' -I ' input_tables} \ + -O ~{output_name}.tsv + } + + runtime { + docker: runtime_params.gatk_docker + bootDiskSizeGb: runtime_params.boot_disk_size + memory: runtime_params.machine_mem + " MB" + disks: "local-disk " + runtime_params.disk + " HDD" + preemptible: runtime_params.preemptible + maxRetries: runtime_params.max_retries + cpu: runtime_params.cpu + } + + output { + File merged_table = "~{output_name}.tsv" + } +} + +# Learning step of the orientation bias mixture model, which is the recommended orientation bias filter as of September 2018 +task LearnReadOrientationModel { + input { + Array[File] f1r2_tar_gz + Runtime runtime_params + Int? mem #override memory + } + + Int machine_mem = select_first([mem, runtime_params.machine_mem]) + Int command_mem = machine_mem - 1000 + + command { + set -e + export GATK_LOCAL_JAR=~{default="/root/gatk.jar" runtime_params.gatk_override} + + gatk --java-options "-Xmx~{command_mem}m" LearnReadOrientationModel \ + -I ~{sep=" -I " f1r2_tar_gz} \ + -O "artifact-priors.tar.gz" + } + + runtime { + docker: runtime_params.gatk_docker + bootDiskSizeGb: runtime_params.boot_disk_size + memory: machine_mem + " MB" + disks: "local-disk " + runtime_params.disk + " HDD" + preemptible: runtime_params.preemptible + maxRetries: runtime_params.max_retries + cpu: runtime_params.cpu + } + + output { + File artifact_prior_table = "artifact-priors.tar.gz" + } + +} + +task CalculateContamination { + input { + String? intervals + File tumor_pileups + File? normal_pileups + Runtime runtime_params + } + + command { + set -e + + export GATK_LOCAL_JAR=~{default="/root/gatk.jar" runtime_params.gatk_override} + + gatk --java-options "-Xmx~{runtime_params.command_mem}m" CalculateContamination -I ~{tumor_pileups} \ + -O contamination.table --tumor-segmentation segments.table ~{"-matched " + normal_pileups} + } + + runtime { + docker: runtime_params.gatk_docker + bootDiskSizeGb: runtime_params.boot_disk_size + memory: runtime_params.machine_mem + " MB" + disks: "local-disk " + runtime_params.disk + " HDD" + preemptible: runtime_params.preemptible + maxRetries: runtime_params.max_retries + cpu: runtime_params.cpu + } + + output { + File contamination_table = "contamination.table" + File maf_segments = "segments.table" + } +} + +task Filter { + input { + File? intervals + File ref_fasta + File ref_fai + File ref_dict + File unfiltered_vcf + File unfiltered_vcf_idx + Boolean compress_vcfs + File? mutect_stats + File? artifact_priors_tar_gz + File? contamination_table + File? maf_segments + String? m2_extra_filtering_args + + Runtime runtime_params + Int? disk_space + } + + String output_vcf = if compress_vcfs then "filtered.vcf.gz" else "filtered.vcf" + String output_vcf_idx = output_vcf + if compress_vcfs then ".tbi" else ".idx" + + parameter_meta{ + ref_fasta: {localization_optional: true} + ref_fai: {localization_optional: true} + ref_dict: {localization_optional: true} + } + + command { + set -e + + export GATK_LOCAL_JAR=~{default="/root/gatk.jar" runtime_params.gatk_override} + + gatk --java-options "-Xmx~{runtime_params.command_mem}m" FilterMutectCalls -V ~{unfiltered_vcf} \ + -R ~{ref_fasta} \ + -O ~{output_vcf} \ + ~{"--contamination-table " + contamination_table} \ + ~{"--tumor-segmentation " + maf_segments} \ + ~{"--ob-priors " + artifact_priors_tar_gz} \ + ~{"-stats " + mutect_stats} \ + --filtering-stats filtering.stats \ + ~{m2_extra_filtering_args} + } + + runtime { + docker: runtime_params.gatk_docker + bootDiskSizeGb: runtime_params.boot_disk_size + memory: runtime_params.machine_mem + " MB" + disks: "local-disk " + select_first([disk_space, runtime_params.disk]) + " HDD" + preemptible: runtime_params.preemptible + maxRetries: runtime_params.max_retries + cpu: runtime_params.cpu + } + + output { + File filtered_vcf = "~{output_vcf}" + File filtered_vcf_idx = "~{output_vcf_idx}" + File filtering_stats = "filtering.stats" + } +} + +task FilterAlignmentArtifacts { + input { + File ref_fasta + File ref_fai + File ref_dict + File input_vcf + File input_vcf_idx + File reads + File reads_index + Boolean compress_vcfs + File realignment_index_bundle + String? realignment_extra_args + String? gcs_project_for_requester_pays + Runtime runtime_params + Int mem + } + + String output_vcf = if compress_vcfs then "filtered.vcf.gz" else "filtered.vcf" + String output_vcf_idx = output_vcf + if compress_vcfs then ".tbi" else ".idx" + + Int machine_mem = mem + Int command_mem = machine_mem - 500 + + parameter_meta{ + ref_fasta: {localization_optional: true} + ref_fai: {localization_optional: true} + ref_dict: {localization_optional: true} + input_vcf: {localization_optional: true} + input_vcf_idx: {localization_optional: true} + reads: {localization_optional: true} + reads_index: {localization_optional: true} + } + + command { + set -e + + export GATK_LOCAL_JAR=~{default="/root/gatk.jar" runtime_params.gatk_override} + + gatk --java-options "-Xmx~{command_mem}m" FilterAlignmentArtifacts \ + -R ~{ref_fasta} \ + -V ~{input_vcf} \ + -I ~{reads} \ + --bwa-mem-index-image ~{realignment_index_bundle} \ + ~{realignment_extra_args} \ + -O ~{output_vcf} \ + ~{"--gcs-project-for-requester-pays " + gcs_project_for_requester_pays} + } + + runtime { + docker: runtime_params.gatk_docker + bootDiskSizeGb: runtime_params.boot_disk_size + memory: machine_mem + " MB" + disks: "local-disk " + runtime_params.disk + " HDD" + preemptible: runtime_params.preemptible + maxRetries: runtime_params.max_retries + cpu: runtime_params.cpu + } + + output { + File filtered_vcf = "~{output_vcf}" + File filtered_vcf_idx = "~{output_vcf_idx}" + } +} + +task Concatenate { + input { + Array[File] input_files + Int? mem + String gatk_docker + } + + Int machine_mem = 7000 + + command { + cat ~{sep=' ' input_files} > output.txt + } + + runtime { + docker: gatk_docker + bootDiskSizeGb: 12 + memory: machine_mem + " MB" + disks: "local-disk 100 HDD" + preemptible: 1 + maxRetries: 1 + cpu: 2 + } + + output { + File concatenated = "output.txt" + } +} \ No newline at end of file diff --git a/janis_core/tests/data/wdl/outputs/bcftools_merge.wdl b/janis_core/tests/data/wdl/outputs/bcftools_merge.wdl new file mode 100644 index 000000000..ee297cfac --- /dev/null +++ b/janis_core/tests/data/wdl/outputs/bcftools_merge.wdl @@ -0,0 +1,33 @@ +version 1.0 + +task bcftoolsMerge { + input { + Boolean force_merge = true + String merge_method = "none" # enum ["none", "snps", "indels", "both", "all", "id"] + Boolean missing_ref = false + String output_type = "z" # enum ["b", "u", "z", "v"] + String output_vcf_name = "bcftools_merged.vcf.gz" + Array[File] vcfs + } + + Int space_needed_gb = 10 + round(2 * size(vcfs, "GB")) + runtime { + memory: "4GB" + docker: "mgibio/bcftools-cwl:1.12" + disks: "local-disk ~{space_needed_gb} SSD" + } + + command <<< + /opt/bcftools/bin/bcftools merge \ + --force-samples ~{force_merge} \ + --merge ~{merge_method} \ + --missing-to-ref ~{missing_ref} \ + --output-type ~{output_type} \ + --output ~{output_vcf_name} \ + ~{sep=" " vcfs} + >>> + + output { + File merged_sv_vcf = output_vcf_name + } +} diff --git a/janis_core/tests/data/wdl/outputs/bwa.wdl b/janis_core/tests/data/wdl/outputs/bwa.wdl new file mode 100644 index 000000000..93cbcb0e7 --- /dev/null +++ b/janis_core/tests/data/wdl/outputs/bwa.wdl @@ -0,0 +1,113 @@ +version 1.0 + +# Copyright (c) 2017 Leiden University Medical Center +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +task Mem { + input { + File read1 + File? read2 + BwaIndex bwaIndex + String outputPrefix + Boolean sixtyFour = false + Boolean usePostalt = false + Int sortMemoryPerThreadGb = 2 + Int compressionLevel = 1 + + String? readgroup + Int? sortThreads + + Int threads = 4 + Int? memoryGb + Int timeMinutes = 1 + ceil(size([read1, read2], "G") * 220 / threads) + # Contains bwa 0.7.17 bwakit 0.7.17.dev1 and samtools 1.10. + String dockerImage = "quay.io/biocontainers/mulled-v2-ad317f19f5881324e963f6a6d464d696a2825ab6:c59b7a73c87a9fe81737d5d628e10a3b5807f453-0" + } + + # Samtools sort may block the pipe while it is writing data to disk. + # This can lead to cpu underutilization. + # 1 thread if threads is 1. For 2-4 threads 2 sort threads. 3 sort threads for 5-8 threads. + Int estimatedSortThreads = if threads == 1 then 1 else 1 + ceil(threads / 4.0) + Int totalSortThreads = select_first([sortThreads, estimatedSortThreads]) + # BWA needs slightly more memory than the size of the index files (~10%). Add a margin for safety here. + Int estimatedMemoryGb = 1 + ceil(size(bwaIndex.indexFiles, "G") * 1.2) + sortMemoryPerThreadGb * totalSortThreads + + # The bwa postalt script is out commented as soon as usePostalt = false. + # This hack was tested with bash, dash and ash. It seems that comments in between pipes work for all of them. + command { + set -e + mkdir -p "$(dirname ~{outputPrefix})" + bwa mem \ + -t ~{threads} \ + ~{"-R '" + readgroup}~{true="'" false="" defined(readgroup)} \ + ~{bwaIndex.fastaFile} \ + ~{read1} \ + ~{read2} \ + 2> ~{outputPrefix}.log.bwamem | \ + ~{true="" false="#" usePostalt} bwa-postalt.js -p ~{outputPrefix}.hla ~{bwaIndex.fastaFile}~{true=".64.alt" false=".alt" sixtyFour} | \ + samtools sort \ + ~{"-@ " + totalSortThreads} \ + -m ~{sortMemoryPerThreadGb}G \ + -l ~{compressionLevel} \ + - \ + -o ~{outputPrefix}.aln.bam + } + + output { + File outputBam = outputPrefix + ".aln.bam" + File? outputHla = outputPrefix + ".hla" + } + + runtime { + # One extra thread for bwa-postalt + samtools is not needed. + # These only use 5-10% of compute power and not always simultaneously. + cpu: threads + memory: "~{select_first([memoryGb, estimatedMemoryGb])}G" + time_minutes: timeMinutes + docker: dockerImage + } + + parameter_meta { + # inputs + read1: {description: "The first-end fastq file.", category: "required"} + read2: {description: "The second-end fastq file.", category: "common"} + bwaIndex: {description: "The BWA index, including (optionally) a .alt file.", category: "required"} + outputPrefix: {description: "The prefix of the output files, including any parent directories.", category: "required"} + sixtyFour: {description: "Whether or not the index uses the '.64' suffixes.", category: "common"} + usePostalt: {description: "Whether to use the postalt script from bwa kit."} + sortMemoryPerThreadGb: {description: "The amount of memory for each sorting thread in gigabytes.", category: "advanced"} + compressionLevel: {description: "The compression level of the output BAM.", category: "advanced"} + readgroup: {description: "A readgroup identifier.", category: "common"} + sortThreads: {description: "The number of threads to use for sorting.", category: "advanced"} + threads: {description: "The number of threads to use for alignment.", category: "advanced"} + memoryGb: {description: "The amount of memory this job will use in gigabytes.", category: "advanced"} + timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"} + dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"} + + # outputs + outputBam: {description: "The produced BAM file."} + outputHla: {description: "The produced HLA file."} + } +} + +struct BwaIndex { + File fastaFile + Array[File] indexFiles +} \ No newline at end of file diff --git a/janis_core/tests/data/wdl/outputs/select_all.wdl b/janis_core/tests/data/wdl/outputs/select_all.wdl new file mode 100644 index 000000000..189da0ce4 --- /dev/null +++ b/janis_core/tests/data/wdl/outputs/select_all.wdl @@ -0,0 +1,11 @@ +version 1.0 +task test_select_all { + input { + Int one + Int? two + } + command {} + output { + Array[Int] first1 = select_all([one, two, 1, select_first([two, one])]) + } +} \ No newline at end of file diff --git a/janis_core/tests/data/wdl/outputs/tasks_reports.wdl b/janis_core/tests/data/wdl/outputs/tasks_reports.wdl new file mode 100644 index 000000000..6e02e8c1c --- /dev/null +++ b/janis_core/tests/data/wdl/outputs/tasks_reports.wdl @@ -0,0 +1,534 @@ +version 1.0 + +# Source: https://github.com/broadinstitute/viral-pipelines/blob/88243d6b9eefbe1d7b43176a60959afe51fdd23f/pipes/WDL/tasks/tasks_reports.wdl + +task alignment_metrics { + input { + File aligned_bam + File ref_fasta + File? primers_bed + + Int? machine_mem_gb + String docker = "quay.io/broadinstitute/viral-core:2.1.33" + } + + String out_basename = basename(aligned_bam, ".bam") + + command <<< + set -e + MEM_MB=$(free -m | head -2 | tail -1 | awk '{print $4}') + XMX=$(echo "-Xmx"$MEM_MB"m") + echo "Requesting $MEM_MB MB of RAM for Java" + + # requisite Picard fasta indexing + cp "~{ref_fasta}" reference.fasta + picard $XMX CreateSequenceDictionary -R reference.fasta + + # get Picard metrics and clean up the junky outputs + picard $XMX CollectRawWgsMetrics \ + -R reference.fasta \ + -I "~{aligned_bam}" \ + -O picard_raw.raw_wgs_metrics.txt + grep -v \# picard_raw.raw_wgs_metrics.txt | grep . | head -2 > picard_clean.raw_wgs_metrics.txt + + picard $XMX CollectAlignmentSummaryMetrics \ + -R reference.fasta \ + -I "~{aligned_bam}" \ + -O picard_raw.alignment_metrics.txt + grep -v \# picard_raw.alignment_metrics.txt | grep . | head -4 > picard_clean.alignment_metrics.txt + + picard $XMX CollectInsertSizeMetrics \ + -I "~{aligned_bam}" \ + -O picard_raw.insert_size_metrics.txt \ + -H picard_raw.insert_size_metrics.pdf \ + --INCLUDE_DUPLICATES true + grep -v \# picard_raw.insert_size_metrics.txt | grep . | head -2 > picard_clean.insert_size_metrics.txt + + # prepend the sample name in order to facilitate tsv joining later + SAMPLE=$(samtools view -H "~{aligned_bam}" | grep ^@RG | perl -lape 's/^@RG.*SM:(\S+).*$/$1/' | sort | uniq) + echo -e "sample_sanitized\tbam" > prepend.txt + echo -e "$SAMPLE\t~{out_basename}" >> prepend.txt + paste prepend.txt picard_clean.raw_wgs_metrics.txt > "~{out_basename}".raw_wgs_metrics.txt + echo -e "$SAMPLE\t~{out_basename}" >> prepend.txt + echo -e "$SAMPLE\t~{out_basename}" >> prepend.txt + paste prepend.txt picard_clean.alignment_metrics.txt > "~{out_basename}".alignment_metrics.txt + echo -e "sample_sanitized\tbam" > prepend.txt + echo -e "$SAMPLE\t~{out_basename}" >> prepend.txt + paste prepend.txt picard_clean.insert_size_metrics.txt > "~{out_basename}".insert_size_metrics.txt + + # actually don't know how to do CollectTargetedPcrMetrics yet + if [ -n "~{primers_bed}" ]; then + picard $XMX BedToIntervalList \ + -I "~{primers_bed}" \ + -O primers.interval.list \ + -SD reference.dict + fi + >>> + + output { + File wgs_metrics = "~{out_basename}.raw_wgs_metrics.txt" + File alignment_metrics = "~{out_basename}.alignment_metrics.txt" + File insert_size_metrics = "~{out_basename}.insert_size_metrics.txt" + } + + runtime { + docker: "~{docker}" + memory: select_first([machine_mem_gb, 13]) + " GB" + cpu: 2 + disks: "local-disk 150 HDD" + dx_instance_type: "mem1_ssd1_v2_x2" + maxRetries: 2 + } +} + +task plot_coverage { + input { + File aligned_reads_bam + String sample_name + + Boolean skip_mark_dupes = false + Boolean plot_only_non_duplicates = false + Boolean bin_large_plots = false + String? binning_summary_statistic = "max" # max or min + + Int? plot_width_pixels = 1100 + Int? plot_height_pixels = 850 + Int? plot_pixels_per_inch = 100 + + Int? max_coverage_depth + Int? base_q_threshold + Int? mapping_q_threshold + Int? read_length_threshold + String? plotXLimits # of the form "min max" (ints, space between) + String? plotYLimits # of the form "min max" (ints, space between) + + String docker = "quay.io/broadinstitute/viral-core:2.1.33" + } + + command { + set -ex -o pipefail + + read_utils.py --version | tee VERSION + + samtools view -c ${aligned_reads_bam} | tee reads_aligned + if [ "$(cat reads_aligned)" != "0" ]; then + samtools index -@ "$(nproc)" "${aligned_reads_bam}" + + PLOT_DUPE_OPTION="" + if [[ "${skip_mark_dupes}" != "true" ]]; then + PLOT_DUPE_OPTION="${true='--plotOnlyNonDuplicates' false="" plot_only_non_duplicates}" + fi + + BINNING_OPTION="${true='--binLargePlots' false="" bin_large_plots}" + + # plot coverage + reports.py plot_coverage \ + "${aligned_reads_bam}" \ + "${sample_name}.coverage_plot.pdf" \ + --outSummary "${sample_name}.coverage_plot.txt" \ + --plotFormat pdf \ + --plotWidth 1100 \ + --plotHeight 850 \ + --plotDPI 100 \ + ${"-m " + max_coverage_depth} \ + ${"-q " + base_q_threshold} \ + ${"-Q " + mapping_q_threshold} \ + ${"-l " + read_length_threshold} \ + ${"--plotXLimits " + plotXLimits} \ + ${"--plotYLimits " + plotYLimits} \ + $PLOT_DUPE_OPTION \ + $BINNING_OPTION \ + --binningSummaryStatistic ${binning_summary_statistic} \ + --plotTitle "${sample_name} coverage plot" \ + --loglevel=DEBUG + + else + touch ${sample_name}.coverage_plot.pdf ${sample_name}.coverage_plot.txt + fi + + # collect figures of merit + set +o pipefail # grep will exit 1 if it fails to find the pattern + samtools view -H ${aligned_reads_bam} | perl -n -e'/^@SQ.*LN:(\d+)/ && print "$1\n"' | python -c "import sys; print(sum(int(x) for x in sys.stdin))" | tee assembly_length + # report only primary alignments 260=exclude unaligned reads and secondary mappings + samtools view -h -F 260 ${aligned_reads_bam} | samtools flagstat - | tee ${sample_name}.flagstat.txt + grep properly ${sample_name}.flagstat.txt | cut -f 1 -d ' ' | tee read_pairs_aligned + samtools view ${aligned_reads_bam} | cut -f10 | tr -d '\n' | wc -c | tee bases_aligned + python -c "print (float("$(cat bases_aligned)")/"$(cat assembly_length)") if "$(cat assembly_length)">0 else print(0)" > mean_coverage + } + + output { + File coverage_plot = "${sample_name}.coverage_plot.pdf" + File coverage_tsv = "${sample_name}.coverage_plot.txt" + Int assembly_length = read_int("assembly_length") + Int reads_aligned = read_int("reads_aligned") + Int read_pairs_aligned = read_int("read_pairs_aligned") + Float bases_aligned = read_float("bases_aligned") + Float mean_coverage = read_float("mean_coverage") + String viralngs_version = read_string("VERSION") + } + + runtime { + docker: "${docker}" + memory: "7 GB" + cpu: 2 + disks: "local-disk 375 LOCAL" + dx_instance_type: "mem1_ssd1_v2_x4" + preemptible: 1 + maxRetries: 2 + } +} + +task coverage_report { + input { + Array[File]+ mapped_bams + Array[File] mapped_bam_idx # optional.. speeds it up if you provide it, otherwise we auto-index + String out_report_name = "coverage_report.txt" + + String docker = "quay.io/broadinstitute/viral-core:2.1.33" + } + + command { + reports.py --version | tee VERSION + reports.py coverage_only \ + ${sep=' ' mapped_bams} \ + ${out_report_name} \ + --loglevel DEBUG + } + + output { + File coverage_report = "${out_report_name}" + String viralngs_version = read_string("VERSION") + } + + runtime { + docker: "${docker}" + memory: "2 GB" + cpu: 2 + disks: "local-disk 375 LOCAL" + dx_instance_type: "mem1_ssd2_v2_x4" + maxRetries: 2 + } +} + +task assembly_bases { + meta { + description: "Count bases in a fasta file." + } + + input { + File fasta + String docker ="ubuntu" + } + + command { + set -e + grep -v '^>' "~{fasta}" | tr -d '\n' | wc -c | tee assembly_length + grep -v '^>' "~{fasta}" | tr -d '\nNn' | wc -c | tee assembly_length_unambiguous + } + + output { + Int assembly_length = read_int("assembly_length") + Int assembly_length_unambiguous = read_int("assembly_length_unambiguous") + } + + runtime { + docker: "${docker}" + memory: "1 GB" + cpu: 1 + disks: "local-disk 50 HDD" + dx_instance_type: "mem1_ssd1_v2_x2" + maxRetries: 2 + } +} + +task fastqc { + input { + File reads_bam + + String docker = "quay.io/broadinstitute/viral-core:2.1.33" + } + + String reads_basename=basename(reads_bam, ".bam") + + command { + set -ex -o pipefail + reports.py --version | tee VERSION + reports.py fastqc ${reads_bam} ${reads_basename}_fastqc.html --out_zip ${reads_basename}_fastqc.zip + } + + output { + File fastqc_html = "${reads_basename}_fastqc.html" + File fastqc_zip = "${reads_basename}_fastqc.zip" + String viralngs_version = read_string("VERSION") + } + + runtime { + memory: "2 GB" + cpu: 1 + docker: "${docker}" + disks: "local-disk 375 LOCAL" + dx_instance_type: "mem1_ssd1_v2_x2" + maxRetries: 2 + } +} + +task align_and_count { + input { + File reads_bam + File ref_db + Int topNHits = 3 + + Int? machine_mem_gb + String docker = "quay.io/broadinstitute/viral-core:2.1.33" + } + + String reads_basename=basename(reads_bam, ".bam") + String ref_basename=basename(ref_db, ".fasta") + + command { + set -ex -o pipefail + + read_utils.py --version | tee VERSION + + ln -s "${reads_bam}" "${reads_basename}.bam" + read_utils.py minimap2_idxstats \ + "${reads_basename}.bam" \ + "${ref_db}" \ + --outStats "${reads_basename}.count.${ref_basename}.txt.unsorted" \ + --loglevel=DEBUG + + sort -b -r -n -k3 "${reads_basename}.count.${ref_basename}.txt.unsorted" > "${reads_basename}.count.${ref_basename}.txt" + head -n ${topNHits} "${reads_basename}.count.${ref_basename}.txt" > "${reads_basename}.count.${ref_basename}.top_${topNHits}_hits.txt" + head -1 "${reads_basename}.count.${ref_basename}.txt" | cut -f 1 > "${reads_basename}.count.${ref_basename}.top.txt" + } + + output { + File report = "${reads_basename}.count.${ref_basename}.txt" + File report_top_hits = "${reads_basename}.count.${ref_basename}.top_${topNHits}_hits.txt" + String top_hit_id = read_string("${reads_basename}.count.${ref_basename}.top.txt") + String viralngs_version = read_string("VERSION") + } + + runtime { + memory: select_first([machine_mem_gb, 15]) + " GB" + cpu: 4 + docker: "${docker}" + disks: "local-disk 375 LOCAL" + dx_instance_type: "mem1_ssd1_v2_x4" + maxRetries: 2 + } +} + +task align_and_count_summary { + input { + Array[File]+ counts_txt + + String output_prefix = "count_summary" + + String docker = "quay.io/broadinstitute/viral-core:2.1.33" + } + + command { + set -ex -o pipefail + + reports.py --version | tee VERSION + reports.py aggregate_alignment_counts ${sep=' ' counts_txt} "${output_prefix}".tsv --loglevel=DEBUG + } + + output { + File count_summary = "${output_prefix}.tsv" + String viralngs_version = read_string("VERSION") + } + + runtime { + memory: "7 GB" + cpu: 8 + docker: "${docker}" + disks: "local-disk 100 HDD" + dx_instance_type: "mem1_ssd1_v2_x2" + maxRetries: 2 + } +} + +task aggregate_metagenomics_reports { + input { + Array[File]+ kraken_summary_reports + String aggregate_taxon_heading_space_separated = "Viruses" + String aggregate_taxlevel_focus = "species" + Int aggregate_top_N_hits = 5 + + String docker = "quay.io/broadinstitute/viral-classify:2.1.16.0" + } + + parameter_meta { + aggregate_taxon_heading_space_separated: { description: "The taxonomic heading to analyze. More than one can be specified." } + aggregate_taxlevel_focus: { description: "species,genus,family,order,class,phylum,kingdom,superkingdom" } + aggregate_top_N_hits: { description: "only include the top N hits from a given sample in the aggregate report" } + } + + String aggregate_taxon_heading = sub(aggregate_taxon_heading_space_separated, " ", "_") # replace spaces with underscores for use in filename + + command { + set -ex -o pipefail + + metagenomics.py --version | tee VERSION + metagenomics.py taxlevel_summary \ + ${sep=' ' kraken_summary_reports} \ + --csvOut aggregate_taxa_summary_${aggregate_taxon_heading}_by_${aggregate_taxlevel_focus}_top_${aggregate_top_N_hits}_by_sample.csv \ + --noHist \ + --taxHeading ${aggregate_taxon_heading_space_separated} \ + --taxlevelFocus ${aggregate_taxlevel_focus} \ + --zeroFill --includeRoot --topN ${aggregate_top_N_hits} \ + --loglevel=DEBUG + } + + output { + File krakenuniq_aggregate_taxlevel_summary = "aggregate_taxa_summary_${aggregate_taxon_heading}_by_${aggregate_taxlevel_focus}_top_${aggregate_top_N_hits}_by_sample.csv" + String viralngs_version = read_string("VERSION") + } + + runtime { + docker: "${docker}" + memory: "3 GB" + cpu: 1 + disks: "local-disk 50 HDD" + dx_instance_type: "mem1_ssd2_v2_x2" + preemptible: 0 + maxRetries: 2 + } +} + +task MultiQC { + input { + Array[File] input_files = [] + + Boolean force = false + Boolean full_names = false + String? title + String? comment + String? file_name + String out_dir = "./multiqc-output" + String? template + String? tag + String? ignore_analysis_files + String? ignore_sample_names + File? sample_names + Array[String]? exclude_modules + Array[String]? module_to_use + Boolean data_dir = false + Boolean no_data_dir = false + String? output_data_format + Boolean zip_data_dir = false + Boolean export = false + Boolean flat = false + Boolean interactive = true + Boolean lint = false + Boolean pdf = false + Boolean megaQC_upload = false # Upload generated report to MegaQC if MegaQC options are found + File? config # directory + String? config_yaml + + String docker = "quay.io/biocontainers/multiqc:1.8--py_2" + } + + parameter_meta { + output_data_format: { description: "[tsv|yaml|json] default:tsv" } + } + + # get the basename in all wdl use the filename specified (sans ".html" extension, if specified) + String report_filename = if (defined(file_name)) then basename(select_first([file_name]), ".html") else "multiqc" + + command { + set -ex -o pipefail + + echo "${sep='\n' input_files}" > input-filenames.txt + echo "" >> input-filenames.txt + + multiqc \ + --file-list input-filenames.txt \ + --dirs \ + --outdir "${out_dir}" \ + ${true="--force" false="" force} \ + ${true="--fullnames" false="" full_names} \ + ${"--title " + title} \ + ${"--comment " + comment} \ + ${"--filename " + file_name} \ + ${"--template " + template} \ + ${"--tag " + tag} \ + ${"--ignore " + ignore_analysis_files} \ + ${"--ignore-samples" + ignore_sample_names} \ + ${"--sample-names " + sample_names} \ + ${true="--exclude " false="" defined(exclude_modules)}${sep=' --exclude ' select_first([exclude_modules,[]])} \ + ${true="--module " false="" defined(module_to_use)}${sep=' --module ' select_first([module_to_use,[]])} \ + ${true="--data-dir" false="" data_dir} \ + ${true="--no-data-dir" false="" no_data_dir} \ + ${"--data-format " + output_data_format} \ + ${true="--zip-data-dir" false="" zip_data_dir} \ + ${true="--export" false="" export} \ + ${true="--flat" false="" flat} \ + ${true="--interactive" false="" interactive} \ + ${true="--lint" false="" lint} \ + ${true="--pdf" false="" pdf} \ + ${false="--no-megaqc-upload" true="" megaQC_upload} \ + ${"--config " + config} \ + ${"--cl-config " + config_yaml } + + if [ -z "${file_name}" ]; then + mv "${out_dir}/${report_filename}_report.html" "${out_dir}/${report_filename}.html" + fi + + tar -c "${out_dir}/${report_filename}_data" | gzip -c > "${report_filename}_data.tar.gz" + } + + output { + File multiqc_report = "${out_dir}/${report_filename}.html" + File multiqc_data_dir_tarball = "${report_filename}_data.tar.gz" + } + + runtime { + memory: "8 GB" + cpu: 16 + docker: "${docker}" + disks: "local-disk 375 LOCAL" + dx_instance_type: "mem2_ssd1_v2_x2" + maxRetries: 2 + } +} + +task compare_two_genomes { + input { + File genome_one + File genome_two + String out_basename + + String docker = "quay.io/broadinstitute/viral-assemble:2.1.16.1" + } + + command { + set -ex -o pipefail + assembly.py --version | tee VERSION + assembly.py alignment_summary "${genome_one}" "${genome_two}" --outfileName "${out_basename}.txt" --printCounts --loglevel=DEBUG + cat /proc/uptime | cut -f 1 -d ' ' > UPTIME_SEC + cat /proc/loadavg > CPU_LOAD + cat /sys/fs/cgroup/memory/memory.max_usage_in_bytes > MEM_BYTES + } + + output { + File comparison_table = "${out_basename}.txt" + Int max_ram_gb = ceil(read_float("MEM_BYTES")/1000000000) + Int runtime_sec = ceil(read_float("UPTIME_SEC")) + String cpu_load = read_string("CPU_LOAD") + String viralngs_version = read_string("VERSION") + } + + runtime { + memory: "3 GB" + cpu: 2 + docker: "${docker}" + disks: "local-disk 50 HDD" + dx_instance_type: "mem1_ssd1_v2_x2" + preemptible: 1 + maxRetries: 2 + } +} + diff --git a/janis_core/tests/data/wdl/requirements/TrimAdapters.wdl b/janis_core/tests/data/wdl/requirements/TrimAdapters.wdl new file mode 100644 index 000000000..9ac46abd2 --- /dev/null +++ b/janis_core/tests/data/wdl/requirements/TrimAdapters.wdl @@ -0,0 +1,65 @@ +version 1.0 + + +# trim read 1 and read 2 adapter sequeunce with cutadapt +task TrimAdapters { + input { + File fastq_input_read1 + File fastq_input_read2 + Int min_length + Int quality_cutoff + String adapter_seq_read1 + String adapter_seq_read2 + String output_base_name + String docker_image = "quay.io/broadinstitute/cutadapt:1.18" + } + + parameter_meta { + fastq_input_read1: "read 1 fastq file as input for the pipeline" + fastq_input_read2: "read 2 fastq file as input for the pipeline" + min_length: "the minimum legnth for trimming. Reads that are too short even before adapter removal are also discarded" + quality_cutoff: "cutadapt option to trim low-quality ends from reads before adapter removal" + adapter_seq_read1: "cutadapt option for the sequence adapter for read 1 fastq" + adapter_seq_read2: "cutadapt option for the sequence adapter for read 2 fastq" + output_base_name: "base name to be used for the output of the task" + docker_image: "the docker image using cutadapt to be used (default: quay.io/broadinstitute/cutadapt:1.18)" + } + + # runtime requirements based upon input file size + Float input_size = size(fastq_input_read1, "GiB") + size(fastq_input_read2, "GiB") + Int disk_size = ceil(2 * (if input_size < 1 then 1 else input_size)) + + # output names for trimmed reads + String fastq_trimmed_adapter_output_name_read1 = output_base_name + ".R1.trimmed_adapters.fastq.gz" + String fastq_trimmed_adapter_output_name_read2 = output_base_name + ".R2.trimmed_adapters.fastq.gz" + + # using cutadapt to trim off sequence adapters + command { + set -euo pipefail + + # fastq's, "-f", -A for paired adapters read 2" + cutadapt \ + -f fastq \ + --minimum-length ~{min_length} \ + --quality-cutoff ~{quality_cutoff} \ + --adapter ~{adapter_seq_read1} \ + -A ~{adapter_seq_read2} \ + --output ~{fastq_trimmed_adapter_output_name_read1} \ + --paired-output ~{fastq_trimmed_adapter_output_name_read2} \ + ~{fastq_input_read1} ~{fastq_input_read2} + } + + # use docker image for given tool cutadapat + runtime { + docker: docker_image + disks: "local-disk " + disk_size + " HDD" + cpu: 1 + memory: "3.75 GiB" + } + + output { + File fastq_trimmed_adapter_output_read1 = fastq_trimmed_adapter_output_name_read1 + File fastq_trimmed_adapter_output_read2 = fastq_trimmed_adapter_output_name_read2 + File? monitoring_log = "monitoring.log" + } +} diff --git a/janis_core/tests/data/wdl/requirements/alignment_metrics.wdl b/janis_core/tests/data/wdl/requirements/alignment_metrics.wdl new file mode 100644 index 000000000..2309f8888 --- /dev/null +++ b/janis_core/tests/data/wdl/requirements/alignment_metrics.wdl @@ -0,0 +1,80 @@ +version 1.0 + +task alignment_metrics { + input { + File aligned_bam + File ref_fasta + File? primers_bed + + Int? machine_mem_gb + String docker = "quay.io/broadinstitute/viral-core:2.1.33" + } + + String out_basename = basename(aligned_bam, ".bam") + + command <<< + set -e + MEM_MB=$(free -m | head -2 | tail -1 | awk '{print $4}') + XMX=$(echo "-Xmx"$MEM_MB"m") + echo "Requesting $MEM_MB MB of RAM for Java" + + # requisite Picard fasta indexing + cp "~{ref_fasta}" reference.fasta + picard $XMX CreateSequenceDictionary -R reference.fasta + + # get Picard metrics and clean up the junky outputs + picard $XMX CollectRawWgsMetrics \ + -R reference.fasta \ + -I "~{aligned_bam}" \ + -O picard_raw.raw_wgs_metrics.txt + grep -v \# picard_raw.raw_wgs_metrics.txt | grep . | head -2 > picard_clean.raw_wgs_metrics.txt + + picard $XMX CollectAlignmentSummaryMetrics \ + -R reference.fasta \ + -I "~{aligned_bam}" \ + -O picard_raw.alignment_metrics.txt + grep -v \# picard_raw.alignment_metrics.txt | grep . | head -4 > picard_clean.alignment_metrics.txt + + picard $XMX CollectInsertSizeMetrics \ + -I "~{aligned_bam}" \ + -O picard_raw.insert_size_metrics.txt \ + -H picard_raw.insert_size_metrics.pdf \ + --INCLUDE_DUPLICATES true + grep -v \# picard_raw.insert_size_metrics.txt | grep . | head -2 > picard_clean.insert_size_metrics.txt + + # prepend the sample name in order to facilitate tsv joining later + SAMPLE=$(samtools view -H "~{aligned_bam}" | grep ^@RG | perl -lape 's/^@RG.*SM:(\S+).*$/$1/' | sort | uniq) + echo -e "sample_sanitized\tbam" > prepend.txt + echo -e "$SAMPLE\t~{out_basename}" >> prepend.txt + paste prepend.txt picard_clean.raw_wgs_metrics.txt > "~{out_basename}".raw_wgs_metrics.txt + echo -e "$SAMPLE\t~{out_basename}" >> prepend.txt + echo -e "$SAMPLE\t~{out_basename}" >> prepend.txt + paste prepend.txt picard_clean.alignment_metrics.txt > "~{out_basename}".alignment_metrics.txt + echo -e "sample_sanitized\tbam" > prepend.txt + echo -e "$SAMPLE\t~{out_basename}" >> prepend.txt + paste prepend.txt picard_clean.insert_size_metrics.txt > "~{out_basename}".insert_size_metrics.txt + + # actually don't know how to do CollectTargetedPcrMetrics yet + if [ -n "~{primers_bed}" ]; then + picard $XMX BedToIntervalList \ + -I "~{primers_bed}" \ + -O primers.interval.list \ + -SD reference.dict + fi + >>> + + output { + File wgs_metrics = "~{out_basename}.raw_wgs_metrics.txt" + File aln_metrics = "~{out_basename}.alignment_metrics.txt" + File insert_size_metrics = "~{out_basename}.insert_size_metrics.txt" + } + + runtime { + docker: "~{docker}" + memory: select_first([machine_mem_gb, 13]) + " GB" + cpu: 2 + disks: "local-disk 150 HDD" + dx_instance_type: "mem1_ssd1_v2_x2" + maxRetries: 2 + } +} \ No newline at end of file diff --git a/janis_core/tests/data/wdl/requirements/annotsv_filter.wdl b/janis_core/tests/data/wdl/requirements/annotsv_filter.wdl new file mode 100644 index 000000000..e637a2840 --- /dev/null +++ b/janis_core/tests/data/wdl/requirements/annotsv_filter.wdl @@ -0,0 +1,54 @@ +version 1.0 + +task annotsvFilter { + input { + Boolean all_CDS = false + File annotsv_tsv + Float filtering_frequency = 0.05 + Boolean ignore_pass_filter = false + String output_tsv_name = "filtered-bcftools-merged-AnnotSV.tsv" + } + + Int space_needed_gb = 10 + round(2*size(annotsv_tsv, "GB")) + runtime { + memory: "4GB" + docker: "python:3" + disks: "local-disk ~{space_needed_gb} SSD" + } + + command <<< + python -c ' + import csv + import sys + input_file_name = "~{annotsv_tsv}" + output_file_name = "~{output_tsv_name}" + filtering_frequency = ~{filtering_frequency} + all_cds = ~{true="True" false="False" all_CDS} + ignore_pass_filter = ~{true="True" false="False" ignore_pass_filter} + with open(input_file_name, "r") as file_in, open(output_file_name, "w") as file_out: + file_in = csv.DictReader(file_in, delimiter="\t") + file_out = csv.DictWriter(file_out, fieldnames=file_in.fieldnames, delimiter="\t") + file_out.writeheader() + total_sv_count = 0 + pass_sv_count = 0 + for row in file_in: + total_sv_count += 1 + if(row["AnnotSV type"] == "split" \ + and (row["FILTER"] == "PASS" or ignore_pass_filter) \ + and (int(row["CDS length"]) > 0 or all_cds) \ + and float(row["IMH_AF"]) < filtering_frequency + and float(row["1000g_max_AF"]) < filtering_frequency + and not(float(row["DGV_LOSS_Frequency"]) > filtering_frequency and "DEL" in row["SV type"]) + and not(float(row["DGV_GAIN_Frequency"]) < filtering_frequency and ("DUP" in row["SV type"] or "INS" in row["SV type"])) + and not(("Manta" in row["ID"] and "IMPRECISE" in row["INFO"]) or (row["QUAL"] != "." and "IMPRECISE" in row["INFO"])) ): + file_out.writerow(row) + pass_sv_count += 1 + print("total sv count:",total_sv_count) + print("total sv passed count:",pass_sv_count) + ' + >>> + + output { + File filtered_tsv = output_tsv_name + } +} diff --git a/janis_core/tests/data/wdl/requirements/bwa.wdl b/janis_core/tests/data/wdl/requirements/bwa.wdl new file mode 100644 index 000000000..93cbcb0e7 --- /dev/null +++ b/janis_core/tests/data/wdl/requirements/bwa.wdl @@ -0,0 +1,113 @@ +version 1.0 + +# Copyright (c) 2017 Leiden University Medical Center +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +task Mem { + input { + File read1 + File? read2 + BwaIndex bwaIndex + String outputPrefix + Boolean sixtyFour = false + Boolean usePostalt = false + Int sortMemoryPerThreadGb = 2 + Int compressionLevel = 1 + + String? readgroup + Int? sortThreads + + Int threads = 4 + Int? memoryGb + Int timeMinutes = 1 + ceil(size([read1, read2], "G") * 220 / threads) + # Contains bwa 0.7.17 bwakit 0.7.17.dev1 and samtools 1.10. + String dockerImage = "quay.io/biocontainers/mulled-v2-ad317f19f5881324e963f6a6d464d696a2825ab6:c59b7a73c87a9fe81737d5d628e10a3b5807f453-0" + } + + # Samtools sort may block the pipe while it is writing data to disk. + # This can lead to cpu underutilization. + # 1 thread if threads is 1. For 2-4 threads 2 sort threads. 3 sort threads for 5-8 threads. + Int estimatedSortThreads = if threads == 1 then 1 else 1 + ceil(threads / 4.0) + Int totalSortThreads = select_first([sortThreads, estimatedSortThreads]) + # BWA needs slightly more memory than the size of the index files (~10%). Add a margin for safety here. + Int estimatedMemoryGb = 1 + ceil(size(bwaIndex.indexFiles, "G") * 1.2) + sortMemoryPerThreadGb * totalSortThreads + + # The bwa postalt script is out commented as soon as usePostalt = false. + # This hack was tested with bash, dash and ash. It seems that comments in between pipes work for all of them. + command { + set -e + mkdir -p "$(dirname ~{outputPrefix})" + bwa mem \ + -t ~{threads} \ + ~{"-R '" + readgroup}~{true="'" false="" defined(readgroup)} \ + ~{bwaIndex.fastaFile} \ + ~{read1} \ + ~{read2} \ + 2> ~{outputPrefix}.log.bwamem | \ + ~{true="" false="#" usePostalt} bwa-postalt.js -p ~{outputPrefix}.hla ~{bwaIndex.fastaFile}~{true=".64.alt" false=".alt" sixtyFour} | \ + samtools sort \ + ~{"-@ " + totalSortThreads} \ + -m ~{sortMemoryPerThreadGb}G \ + -l ~{compressionLevel} \ + - \ + -o ~{outputPrefix}.aln.bam + } + + output { + File outputBam = outputPrefix + ".aln.bam" + File? outputHla = outputPrefix + ".hla" + } + + runtime { + # One extra thread for bwa-postalt + samtools is not needed. + # These only use 5-10% of compute power and not always simultaneously. + cpu: threads + memory: "~{select_first([memoryGb, estimatedMemoryGb])}G" + time_minutes: timeMinutes + docker: dockerImage + } + + parameter_meta { + # inputs + read1: {description: "The first-end fastq file.", category: "required"} + read2: {description: "The second-end fastq file.", category: "common"} + bwaIndex: {description: "The BWA index, including (optionally) a .alt file.", category: "required"} + outputPrefix: {description: "The prefix of the output files, including any parent directories.", category: "required"} + sixtyFour: {description: "Whether or not the index uses the '.64' suffixes.", category: "common"} + usePostalt: {description: "Whether to use the postalt script from bwa kit."} + sortMemoryPerThreadGb: {description: "The amount of memory for each sorting thread in gigabytes.", category: "advanced"} + compressionLevel: {description: "The compression level of the output BAM.", category: "advanced"} + readgroup: {description: "A readgroup identifier.", category: "common"} + sortThreads: {description: "The number of threads to use for sorting.", category: "advanced"} + threads: {description: "The number of threads to use for alignment.", category: "advanced"} + memoryGb: {description: "The amount of memory this job will use in gigabytes.", category: "advanced"} + timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"} + dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"} + + # outputs + outputBam: {description: "The produced BAM file."} + outputHla: {description: "The produced HLA file."} + } +} + +struct BwaIndex { + File fastaFile + Array[File] indexFiles +} \ No newline at end of file diff --git a/janis_core/tests/test_conditionals.py b/janis_core/tests/test_conditionals.py index 4534f09e8..fd04237ed 100644 --- a/janis_core/tests/test_conditionals.py +++ b/janis_core/tests/test_conditionals.py @@ -4,7 +4,7 @@ from janis_core.workflow.workflow import WorkflowBuilder from janis_core.redefinitions.tools import Echo, Cat - +from janis_core.translations.common import to_builders class TestConditionals(unittest.TestCase): @@ -40,8 +40,12 @@ def test_switch(self): ) w.output("out", source=w.echoswitch) + w = to_builders(w) - _, wdl_tools = WdlTranslator.translate_workflow_internal(w) + translator = WdlTranslator() + translator.translate_workflow_internal(w) + assert translator.main is not None + wdltool = translator.main[1] expected = """\ version development @@ -83,7 +87,7 @@ def test_switch(self): }""" - echoswitch = wdl_tools["echoswitch"].get_string() + echoswitch = wdltool.get_string() print(echoswitch) self.assertEqual(expected, echoswitch) diff --git a/janis_core/tests/test_ingestion_cwl.py b/janis_core/tests/test_ingestion_cwl.py index a09bd8041..86e46b894 100644 --- a/janis_core/tests/test_ingestion_cwl.py +++ b/janis_core/tests/test_ingestion_cwl.py @@ -63,7 +63,7 @@ from janis_core.ingestion.cwl.loading import load_cwl_version from janis_core.ingestion.cwl.loading import load_cwl_utils_from_version -from janis_core.ingestion.cwl.identifiers import get_cwl_reference +from janis_core.ingestion.common.identifiers import get_cwl_reference from janis_core.ingestion.cwl.expressions import parse_expression from janis_core.ingestion.cwl.parsing.tool import CLTArgumentParser @@ -84,6 +84,7 @@ def _do_setup() -> None: configure_logging() + settings.ingest.SOURCE = 'cwl' settings.ingest.SAFE_MODE = False @@ -106,7 +107,7 @@ def test_tool_bwa_index(self): clt, cwl_utils = _load_cwl_doc(filepath) parser = CLTParser(cwl_utils=cwl_utils, clt=clt, entity=clt) tool = parser.parse() - msgs = load_loglines(entity_uuids=set(tool.uuid)) + msgs = load_loglines(entity_uuids=set([tool.uuid])) self.assertEqual(len(msgs), 0) self.assertEqual(tool.id(), 'BWA_Index') @@ -218,7 +219,7 @@ def test_expression_lib(self): clt, cwl_utils = _load_cwl_doc(filepath) parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, tool_uuid='test_expression_lib') reqs = parser.parse() - lines = load_loglines(entity_uuids=set('test_expression_lib')) + lines = load_loglines(entity_uuids=set(['test_expression_lib'])) msgs = [x.message for x in lines] self.assertIn('__TOKEN1__ = "$(var get_label = function(i) { var rootname = inputs.molecule_info_h5[i].basename.split(\'.\').slice(0,-1).join(\'.\'); rootname = (rootname=="")?inputs.molecule_info_h5[i].basename:rootname; return inputs.gem_well_labels?inputs.gem_well_labels[i].replace(/,/g, "_"):rootname; };)"', msgs) @@ -231,7 +232,7 @@ def test_files_to_create_textfile(self): self.assertEqual(len(reqs['files_to_create']), 1) self.assertIn('setup_vars.sh', reqs['files_to_create']) self.assertIn('export AA_DATA_REPO', reqs['files_to_create']['setup_vars.sh']) - msgs = load_loglines(entity_uuids=set('test')) + msgs = load_loglines(entity_uuids=set(['test'])) self.assertEqual(len(msgs), 1) @unittest.skip('how does this work for janis?') @@ -418,7 +419,7 @@ def test_requirements_parser(self) -> None: clt, cwl_utils = _load_cwl_doc(filepath) parser = CLTRequirementsParser(cwl_utils=cwl_utils, clt=clt, entity=clt, tool_uuid='test_files_to_create4') reqs = parser.parse() - lines = load_loglines(entity_uuids=set('test_files_to_create4')) + lines = load_loglines(entity_uuids=set(['test_files_to_create4'])) msgs = [x.message for x in lines] print() @@ -520,9 +521,9 @@ def test_multiple_datatypes(self): cwl_type = ['null', 'File', 'string'] dtype = ingest_cwl_type(cwl_type, cwl_utils, None, tool_uuid='test', secondaries=None) self.assertIsInstance(dtype, File) - lines = load_loglines(entity_uuids=set('test')) + lines = load_loglines(entity_uuids=set(['test'])) msgs = [x.message for x in lines] - self.assertIn("entity supports multiple datatypes: ['File', 'String']. selected File as fallback.", msgs) + self.assertIn("entity: supports multiple datatypes ['File', 'String']. selected File as fallback.", msgs) def test_unparseable_generic(self): settings.datatypes.ALLOW_UNPARSEABLE_DATATYPES = True @@ -530,9 +531,9 @@ def test_unparseable_generic(self): cwl_type = 'kitten' dtype = ingest_cwl_type(cwl_type, cwl_utils, None, tool_uuid='test', secondaries=None) self.assertIsInstance(dtype, File) - lines = load_loglines(entity_uuids=set('test')) + lines = load_loglines(entity_uuids=set(['test'])) msgs = [x.message for x in lines] - self.assertIn('unsupported datatype: kitten. treated as generic File.', msgs) + self.assertIn('entity: unsupported datatype kitten. treated as generic File.', msgs) def test_enum_type(self): settings.datatypes.ALLOW_UNPARSEABLE_DATATYPES = True @@ -540,9 +541,9 @@ def test_enum_type(self): cwl_type = f'file://{CWL_TESTDATA_DIR}/tools/gatk_haplotype_tool.cwl#annotation_type' dtype = ingest_cwl_type(cwl_type, cwl_utils, None, tool_uuid='test', secondaries=None) self.assertIsInstance(dtype, File) - lines = load_loglines(entity_uuids=set('test')) + lines = load_loglines(entity_uuids=set(['test'])) msgs = [x.message for x in lines] - self.assertIn('unsupported datatype: file:///home/grace/work/pp/translation/janis-core/janis_core/tests/data/cwl/tools/gatk_haplotype_tool.cwl#annotation_type. treated as generic File.', msgs) + self.assertIn('entity: unsupported datatype file:///home/grace/work/pp/translation/janis-core/janis_core/tests/data/cwl/tools/gatk_haplotype_tool.cwl#annotation_type. treated as generic File.', msgs) def test_unparseable_secondary_type(self): settings.datatypes.ALLOW_UNPARSEABLE_DATATYPES = True @@ -551,9 +552,9 @@ def test_unparseable_secondary_type(self): cinp = clt.inputs[1] dtype = ingest_cwl_type(cinp.type, cwl_utils, None, tool_uuid='test', secondaries=cinp.secondaryFiles) self.assertIsInstance(dtype, GenericFileWithSecondaries) - lines = load_loglines(entity_uuids=set('test')) + lines = load_loglines(entity_uuids=set(['test'])) msgs = [x.message for x in lines] - self.assertIn("could not parse secondaries format from javascript expression. treated as generic File with secondaries.", msgs) + self.assertIn('entity: Could not parse datatype from javascript expression. Treated as generic File with secondaries.', msgs) @@ -571,7 +572,7 @@ def test_resource_requirements(self): parser = CLTRequirementsParser(cwl_utils, clt=clt, entity=clt, tool_uuid='test') requirements = parser.parse() - lines = load_loglines(entity_uuids=set('test'), category=ErrorCategory.SCRIPTING) + lines = load_loglines(entity_uuids=set(['test']), category=ErrorCategory.SCRIPTING) msgs = [x.message for x in lines] self.assertEqual(requirements["memory"], '__TOKEN1__') @@ -590,9 +591,9 @@ def test_initial_workdir_requirement(self): jtool = parser.parse() self.assertIsNone(jtool.files_to_create()) - lines = load_loglines(entity_uuids=set(jtool.uuid)) + lines = load_loglines(entity_uuids=set([jtool.uuid])) msgs = [x.message for x in lines] - self.assertEqual(len(msgs), 3) + self.assertEqual(len(msgs), 2) self.assertIn('error parsing InitialWorkDirRequirement. ignored as fallback', msgs) self.assertIn('error parsing InitialWorkDirRequirement: ${ return [{"class": "Directory", "basename": "subdir", "listing": [ inputs.example ] }]}', msgs) @@ -602,9 +603,9 @@ def test_secondaryfiles(self): parser = CLTInputParser(cwl_utils, clt=clt, entity=clt.inputs[1], tool_uuid='test') tinput = parser.parse() self.assertIsInstance(tinput.input_type, GenericFileWithSecondaries) - lines = load_loglines(entity_uuids=set('test')) + lines = load_loglines(entity_uuids=set(['test'])) msgs = [x.message for x in lines] - expected_msg = 'could not parse secondaries format from javascript expression. treated as generic File with secondaries.' + expected_msg = 'inBamBai: Could not parse datatype from javascript expression. Treated as generic File with secondaries.' self.assertIn(expected_msg, msgs) def test_clt_input(self): @@ -614,7 +615,7 @@ def test_clt_input(self): parser = CLTInputParser(cwl_utils, clt=clt, entity=clt.inputs[5], tool_uuid='test') tinput = parser.parse() - lines = load_loglines(entity_uuids=set('test')) + lines = load_loglines(entity_uuids=set(['test'])) msgs = [x.message for x in lines] expected_msg = '__TOKEN1__ = "$([inputs.runtime_cpu, 16, 1].filter(function (inner) { return inner != null })[0])"' self.assertEqual(tinput.value, '__TOKEN1__') @@ -626,7 +627,7 @@ def test_clt_argument(self): parser = CLTArgumentParser(cwl_utils, clt=clt, entity=clt.arguments[5], tool_uuid='test') arg = parser.parse() - lines = load_loglines(entity_uuids=set('test')) + lines = load_loglines(entity_uuids=set(['test'])) msgs = [x.message for x in lines] self.assertEqual(arg.value, '__TOKEN1__') self.assertIn('__TOKEN1__ = "${ var r = []; for (var i = 10; i >= 1; i--) { r.push(i); } return r;}"', msgs) @@ -637,7 +638,7 @@ def test_clt_output(self): clt, cwl_utils = _load_cwl_doc(filepath) parser = CLTOutputParser(cwl_utils, clt=clt, entity=clt.outputs[3], tool_uuid='test') tout = parser.parse() - lines = load_loglines(entity_uuids=set('test')) + lines = load_loglines(entity_uuids=set(['test'])) msgs = [x.message for x in lines] self.assertEqual(tout.selector, '__TOKEN1__') self.assertIn('__TOKEN1__ = "$(self[0].contents)"', msgs) @@ -645,12 +646,13 @@ def test_clt_output(self): def test_step_input(self): filepath = f'{CWL_TESTDATA_DIR}/workflows/expressions.cwl' wf = parse_cwl(filepath) - lines = load_loglines(entity_uuids=set(wf.uuid)) + lines = load_loglines(entity_uuids=set([wf.uuid])) msgs = [x.message for x in lines] - self.assertIn('could not parse secondaries format from javascript expression. treated as generic File with secondaries.', msgs) + self.assertIn('bambai_pair2: Could not parse datatype from javascript expression. Treated as generic File with secondaries.', msgs) self.assertIn("error parsing data source for 'text'. Returned None as fallback.", msgs) self.assertIn("error parsing data source for 'target_filename'. Returned None as fallback.", msgs) + self.assertIn('out3: Could not parse datatype from javascript expression. Treated as generic File with secondaries.', msgs) diff --git a/janis_core/tests/test_ingestion_galaxy.py b/janis_core/tests/test_ingestion_galaxy.py index bdb32beb3..650ac3a38 100644 --- a/janis_core/tests/test_ingestion_galaxy.py +++ b/janis_core/tests/test_ingestion_galaxy.py @@ -309,7 +309,7 @@ def test_coreutils_requirement(self) -> None: runtime.tool.tool_path = filepath xmltool = load_xmltool(filepath) actual = resolve_dependencies_as_container(xmltool) - expected = 'quay.io/biocontainers/coreutils:8.25' + expected = 'quay.io/biocontainers/coreutils:8.25--1' self.assertEqual(actual, expected) def test_single_requirement(self) -> None: diff --git a/janis_core/tests/test_ingestion_wdl.py b/janis_core/tests/test_ingestion_wdl.py index 93f94c319..d96c5b7e9 100644 --- a/janis_core/tests/test_ingestion_wdl.py +++ b/janis_core/tests/test_ingestion_wdl.py @@ -1,9 +1,13 @@ import os import unittest -from janis_core import CommandToolBuilder -from janis_core.ingestion.wdl import WdlParser +from janis_core import CommandToolBuilder, WorkflowBuilder, InputSelector, StringFormatter, FilterNullOperator from janis_core.ingestion.wdl.parsing import parse_task +from janis_core.ingestion.wdl.parsing import parse_container_requirement +from janis_core.ingestion.wdl.parsing import parse_cpus_requirement +from janis_core.ingestion.wdl.parsing import parse_memory_requirement +from janis_core.ingestion.wdl.parsing import parse_disk_requirement +from janis_core.ingestion.wdl import WdlParser from janis_core.ingestion import ingest from janis_core import ( File, @@ -15,63 +19,255 @@ import WDL WDL_TESTDATA_PATH = os.path.join(os.getcwd(), 'janis_core/tests/data/wdl') +from janis_core import settings +from janis_core.messages import configure_logging + +def _do_setup() -> None: + configure_logging() + settings.ingest.SAFE_MODE = False + +def _simple_lines(text: str) -> list[str]: + if not isinstance(text, str): + text = str(text) + lines = text.split('\n') + lines = [ln.strip(' \t') for ln in lines] + out = [] + for ln in lines: + if '#' in ln: + ln = ln.split('#')[0] + out.append(ln) + out = [ln for ln in out if ln != ''] + return out + +############## +### BASICS ### +############## + +class TestBasicFunctionality(unittest.TestCase): + + def setUp(self) -> None: + _do_setup() + settings.ingest.SAFE_MODE = True + + def test_tool_rename(self) -> None: + filepath = f'{WDL_TESTDATA_PATH}/basic/rename_tool.wdl' + cmdtool = ingest(filepath, 'wdl') + self.assertIsInstance(cmdtool, CommandToolBuilder) + self.assertEqual(len(cmdtool._inputs), 2) + self.assertEqual(len(cmdtool._outputs), 1) + + def test_tool_io(self) -> None: + filepath = f'{WDL_TESTDATA_PATH}/basic/io_tool.wdl' + cmdtool = ingest(filepath, 'wdl') + self.assertIsInstance(cmdtool, CommandToolBuilder) + self.assertEqual(len(cmdtool._inputs), 7) + self.assertEqual(len(cmdtool._outputs), 5) + + def test_tool_bwa(self) -> None: + filepath = f'{WDL_TESTDATA_PATH}/bwa.wdl' + cmdtool = ingest(filepath, 'wdl') + self.assertIsInstance(cmdtool, CommandToolBuilder) + self.assertEqual(len(cmdtool._inputs), 14) + self.assertEqual(len(cmdtool._outputs), 2) + + def test_tool_fastqc(self) -> None: + filepath = f'{WDL_TESTDATA_PATH}/fastqc.wdl' + cmdtool = ingest(filepath, 'wdl') + self.assertIsInstance(cmdtool, CommandToolBuilder) + self.assertEqual(len(cmdtool._inputs), 21) + self.assertEqual(len(cmdtool._outputs), 5) + + def test_tool_trim_adapters(self) -> None: + filepath = f'{WDL_TESTDATA_PATH}/TrimAdapters.wdl' + cmdtool = ingest(filepath, 'wdl') + self.assertIsInstance(cmdtool, CommandToolBuilder) + self.assertEqual(len(cmdtool._inputs), 8) + self.assertEqual(len(cmdtool._outputs), 3) + + def test_workflow_io(self) -> None: + filepath = f'{WDL_TESTDATA_PATH}/basic/io_wf.wdl' + wf = ingest(filepath, 'wdl') + self.assertIsInstance(wf, WorkflowBuilder) + self.assertEqual(wf.id(), 'main') + self.assertEqual(len(wf.input_nodes), 7) + self.assertEqual(len(wf.step_nodes), 1) + self.assertEqual(len(wf.output_nodes), 5) + + def test_workflow_atac(self) -> None: + filepath = f'{WDL_TESTDATA_PATH}/ATAC.wdl' + wf = ingest(filepath, 'wdl') + self.assertIsInstance(wf, WorkflowBuilder) + self.assertEqual(wf.id(), 'ATAC') + self.assertEqual(len(wf.input_nodes), 17) + self.assertEqual(len(wf.step_nodes), 13) + self.assertEqual(len(wf.output_nodes), 4) + + +class TestRequirements(unittest.TestCase): + + def setUp(self) -> None: + _do_setup() + self.mocktool = CommandToolBuilder( + tool='testing', + version='DEV', + container='', + base_command=None, + inputs=[], + outputs=[] + ) + + def test_container1(self) -> None: + filepath = f'{WDL_TESTDATA_PATH}/requirements/annotsv_filter.wdl' + task = WDL.load(filepath).tasks[0] + actual = parse_container_requirement(task, self.mocktool) + expected = 'python:3' + self.assertEqual(actual, expected) + + def test_container2(self) -> None: + filepath = f'{WDL_TESTDATA_PATH}/requirements/bwa.wdl' + task = WDL.load(filepath).tasks[0] + actual = parse_container_requirement(task, self.mocktool) + expected = 'quay.io/biocontainers/mulled-v2-ad317f19f5881324e963f6a6d464d696a2825ab6:c59b7a73c87a9fe81737d5d628e10a3b5807f453-0' + self.assertEqual(actual, expected) + + def test_cpus1(self) -> None: + filepath = f'{WDL_TESTDATA_PATH}/requirements/TrimAdapters.wdl' + task = WDL.load(filepath).tasks[0] + actual = parse_cpus_requirement(task, self.mocktool) + expected = 1 + self.assertEqual(actual, expected) + + def test_cpus2(self) -> None: + filepath = f'{WDL_TESTDATA_PATH}/requirements/bwa.wdl' + task = WDL.load(filepath).tasks[0] + actual = parse_cpus_requirement(task, self.mocktool) + self.assertIsInstance(actual, InputSelector) + self.assertEqual(actual.input_to_select, 'threads') + + def test_mem1(self) -> None: + filepath = f'{WDL_TESTDATA_PATH}/requirements/annotsv_filter.wdl' + task = WDL.load(filepath).tasks[0] + actual = parse_memory_requirement(task, self.mocktool) + expected = 4.0 + self.assertEqual(actual, expected) + + def test_mem2(self) -> None: + filepath = f'{WDL_TESTDATA_PATH}/requirements/bwa.wdl' + task = WDL.load(filepath).tasks[0] + actual = parse_memory_requirement(task, self.mocktool) + self.assertIsInstance(actual, StringFormatter) + self.assertEqual(actual._format, '{JANIS_WDL_TOKEN_1}G') + inner = list(actual.kwargs.values())[0] + self.assertIsInstance(inner, FilterNullOperator) + inner1 = inner.args[0][0] + self.assertIsInstance(inner1, InputSelector) + self.assertEqual(inner1.input_to_select, 'memoryGb') + inner2 = inner.args[0][1] + self.assertIsInstance(inner2, InputSelector) + self.assertEqual(inner2.input_to_select, 'estimatedMemoryGb') + + def test_disk1(self) -> None: + filepath = f'{WDL_TESTDATA_PATH}/requirements/alignment_metrics.wdl' + task = WDL.load(filepath).tasks[0] + actual = parse_disk_requirement(task, self.mocktool) + expected = 150 + self.assertEqual(actual, expected) + + def test_disk2(self) -> None: + filepath = f'{WDL_TESTDATA_PATH}/requirements/annotsv_filter.wdl' + task = WDL.load(filepath).tasks[0] + actual = parse_disk_requirement(task, self.mocktool) + self.assertIsInstance(actual, StringFormatter) + expected = 'local-disk {inputs.space_needed_gb} SSD' + self.assertEqual(str(actual), expected) + + + +############################### +### DATATYPES / EXPRESSIONS ### +############################### + +class TestDatatypes(unittest.TestCase): + + def setUp(self) -> None: + _do_setup() + + +class TestExpressions(unittest.TestCase): + + def setUp(self) -> None: + _do_setup() + + +class TestLexer(unittest.TestCase): + + def setUp(self) -> None: + _do_setup() + + +############### +### COMMAND ### +############### -class TestCommandParsing(unittest.TestCase): +class TestNativeSimpleCommandParser(unittest.TestCase): + def setUp(self) -> None: + _do_setup() + settings.ingest.wdl.COMMAND_PARSER = 'native_simple' + def test_rename_tool(self) -> None: filepath = f'{WDL_TESTDATA_PATH}/basic/rename_tool.wdl' d = WDL.load(filepath) task = d.tasks[0] - tool = parse_task(task) - self.assertIsInstance(tool, CommandToolBuilder) - self.assertEqual(tool.base_command, ['cp']) - self.assertEqual(len(tool._inputs), 2) - self.assertEqual(tool._inputs[0].id(), 'sourceFile') - self.assertIsInstance(tool._inputs[0].position, File) - self.assertEqual(tool._inputs[0].position, 1) - self.assertEqual(tool._inputs[0].prefix, None) - self.assertEqual(tool._inputs[1].id(), 'targetFilename') - self.assertIsInstance(tool._inputs[1].position, String) - self.assertEqual(tool._inputs[1].position, 2) - self.assertEqual(tool._inputs[1].prefix, None) + cmdtool = parse_task(task) + + self.assertIsInstance(cmdtool, CommandToolBuilder) + self.assertEqual(cmdtool._base_command, ['cp']) + self.assertEqual(len(cmdtool._inputs), 2) + self.assertEqual(cmdtool._inputs[0].id(), 'sourceFile') + self.assertIsInstance(cmdtool._inputs[0].input_type, File) + self.assertEqual(cmdtool._inputs[0].position, 1) + self.assertEqual(cmdtool._inputs[1].id(), 'targetFilename') + self.assertIsInstance(cmdtool._inputs[1].input_type, String) + self.assertEqual(cmdtool._inputs[1].position, 2) def test_io_tool(self) -> None: filepath = f'{WDL_TESTDATA_PATH}/basic/io_tool.wdl' d = WDL.load(filepath) task = d.tasks[0] - tool = parse_task(task) + cmdtool = parse_task(task) ### basics ### - self.assertIsInstance(tool, CommandToolBuilder) - self.assertEqual(tool.base_command, ['echo']) - self.assertEqual(len(tool._inputs), 7) - self.assertEqual(len(tool._outputs), 5) + self.assertIsInstance(cmdtool, CommandToolBuilder) + self.assertEqual(cmdtool._base_command, ['sh', 'script.sh']) + self.assertEqual(len(cmdtool._inputs), 7) + self.assertEqual(len(cmdtool._outputs), 5) ### inputs ### # inInt - tinp = tool._inputs[0] + tinp = cmdtool._inputs[0] self.assertEqual(tinp.id(), 'inInt') self.assertIsInstance(tinp.input_type, Int) self.assertNotEqual(tinp.input_type.optional, True) self.assertEqual(tinp.position, 1) self.assertIsNone(tinp.prefix) # inStr - tinp = tool._inputs[1] + tinp = cmdtool._inputs[1] self.assertEqual(tinp.id(), 'inStr') self.assertIsInstance(tinp.input_type, String) self.assertNotEqual(tinp.input_type.optional, True) self.assertEqual(tinp.position, 2) self.assertIsNone(tinp.prefix) # inBool - tinp = tool._inputs[2] + tinp = cmdtool._inputs[2] self.assertEqual(tinp.id(), 'inBool') self.assertIsInstance(tinp.input_type, Boolean) self.assertNotEqual(tinp.input_type.optional, True) self.assertEqual(tinp.position, 3) self.assertEqual(tinp.prefix, '--flag1') # inFile - tinp = tool._inputs[3] + tinp = cmdtool._inputs[3] self.assertEqual(tinp.id(), 'inFile') self.assertIsInstance(tinp.input_type, File) self.assertNotEqual(tinp.input_type.optional, True) @@ -79,21 +275,21 @@ def test_io_tool(self) -> None: self.assertEqual(tinp.prefix, '--in-file=') self.assertFalse(tinp.separate_value_from_prefix) # inFileOpt - tinp = tool._inputs[4] + tinp = cmdtool._inputs[4] self.assertEqual(tinp.id(), 'inFileOpt') self.assertIsInstance(tinp.input_type, File) self.assertTrue(tinp.input_type.optional) self.assertEqual(tinp.position, 5) self.assertIsNone(tinp.prefix) # inFileArr - tinp = tool._inputs[5] + tinp = cmdtool._inputs[5] self.assertEqual(tinp.id(), 'inFileArr') self.assertIsInstance(tinp.input_type, File) self.assertNotEqual(tinp.input_type.optional, True) self.assertEqual(tinp.position, 6) self.assertIsNone(tinp.prefix) # inSecondary - tinp = tool._inputs[6] + tinp = cmdtool._inputs[6] self.assertEqual(tinp.id(), 'inSecondary') self.assertIsInstance(tinp.input_type, File) self.assertNotEqual(tinp.input_type.optional, True) @@ -101,9 +297,108 @@ def test_io_tool(self) -> None: self.assertIsNone(tinp.prefix) ### outputs ### - tout = tool._outputs[0] + tout = cmdtool._outputs[0] + + def test_fastqc_tool(self) -> None: + filepath = f'{WDL_TESTDATA_PATH}/fastqc.wdl' + d = WDL.load(filepath) + task = d.tasks[0] + parse_task(task) + + def test_bwa_mem(self) -> None: + filepath = f'{WDL_TESTDATA_PATH}/bwa_mem.wdl' + d = WDL.load(filepath) + task = d.tasks[0] + parse_task(task) + + +class TestNativeArgumentsCommandParser(unittest.TestCase): + + def setUp(self) -> None: + _do_setup() + settings.ingest.wdl.COMMAND_PARSER = 'native_arguments' + + def test_rename_tool(self) -> None: + filepath = f'{WDL_TESTDATA_PATH}/basic/rename_tool.wdl' + d = WDL.load(filepath) + task = d.tasks[0] + cmdtool = parse_task(task) + self.assertIsInstance(cmdtool, CommandToolBuilder) + print(cmdtool._files_to_create['script.sh']) + self.assertEqual(cmdtool._base_command, ['sh', 'script.sh']) + self.assertEqual(len(cmdtool._inputs), 2) + self.assertEqual(cmdtool._inputs[0].id(), 'sourceFile') + self.assertIsInstance(cmdtool._inputs[0].input_type, File) + self.assertEqual(cmdtool._inputs[1].id(), 'targetFilename') + self.assertIsInstance(cmdtool._inputs[1].input_type, String) + + def test_io_tool(self) -> None: + filepath = f'{WDL_TESTDATA_PATH}/basic/io_tool.wdl' + d = WDL.load(filepath) + task = d.tasks[0] + cmdtool = parse_task(task) + + ### basics ### + self.assertIsInstance(cmdtool, CommandToolBuilder) + self.assertEqual(cmdtool._base_command, ['sh', 'script.sh']) + self.assertEqual(len(cmdtool._inputs), 7) + self.assertEqual(len(cmdtool._outputs), 5) + ### inputs ### + # inInt + tinp = cmdtool._inputs[0] + self.assertEqual(tinp.id(), 'inInt') + self.assertIsInstance(tinp.input_type, Int) + self.assertNotEqual(tinp.input_type.optional, True) + self.assertEqual(tinp.position, 1) + self.assertIsNone(tinp.prefix) + # inStr + tinp = cmdtool._inputs[1] + self.assertEqual(tinp.id(), 'inStr') + self.assertIsInstance(tinp.input_type, String) + self.assertNotEqual(tinp.input_type.optional, True) + self.assertEqual(tinp.position, 2) + self.assertIsNone(tinp.prefix) + # inBool + tinp = cmdtool._inputs[2] + self.assertEqual(tinp.id(), 'inBool') + self.assertIsInstance(tinp.input_type, Boolean) + self.assertNotEqual(tinp.input_type.optional, True) + self.assertEqual(tinp.position, 3) + self.assertEqual(tinp.prefix, '--flag1') + # inFile + tinp = cmdtool._inputs[3] + self.assertEqual(tinp.id(), 'inFile') + self.assertIsInstance(tinp.input_type, File) + self.assertNotEqual(tinp.input_type.optional, True) + self.assertEqual(tinp.position, 4) + self.assertEqual(tinp.prefix, '--in-file=') + self.assertFalse(tinp.separate_value_from_prefix) + # inFileOpt + tinp = cmdtool._inputs[4] + self.assertEqual(tinp.id(), 'inFileOpt') + self.assertIsInstance(tinp.input_type, File) + self.assertTrue(tinp.input_type.optional) + self.assertEqual(tinp.position, 5) + self.assertIsNone(tinp.prefix) + # inFileArr + tinp = cmdtool._inputs[5] + self.assertEqual(tinp.id(), 'inFileArr') + self.assertIsInstance(tinp.input_type, File) + self.assertNotEqual(tinp.input_type.optional, True) + self.assertEqual(tinp.position, 6) + self.assertIsNone(tinp.prefix) + # inSecondary + tinp = cmdtool._inputs[6] + self.assertEqual(tinp.id(), 'inSecondary') + self.assertIsInstance(tinp.input_type, File) + self.assertNotEqual(tinp.input_type.optional, True) + self.assertEqual(tinp.position, 7) + self.assertIsNone(tinp.prefix) + + ### outputs ### + tout = cmdtool._outputs[0] def test_fastqc_tool(self) -> None: filepath = f'{WDL_TESTDATA_PATH}/fastqc.wdl' @@ -119,13 +414,86 @@ def test_bwa_mem(self) -> None: -class TestFromWdl(unittest.TestCase): - parser = WdlParser() + +class TestShellCommandParser(unittest.TestCase): - def test_ingest_tool(self) -> None: + def setUp(self) -> None: + _do_setup() + settings.ingest.wdl.COMMAND_PARSER = 'shell' + + def test_rename_tool(self) -> None: filepath = f'{WDL_TESTDATA_PATH}/basic/rename_tool.wdl' - tool = ingest(filepath, 'wdl') - raise NotImplementedError + d = WDL.load(filepath) + task = d.tasks[0] + cmdtool = parse_task(task) - def test_ingest_workflow(self) -> None: + self.assertIsInstance(cmdtool, CommandToolBuilder) + self.assertEqual(cmdtool._base_command, ['sh', 'script.sh']) + self.assertEqual(len(cmdtool._inputs), 2) + self.assertEqual(cmdtool._inputs[0].id(), 'sourceFile') + self.assertIsInstance(cmdtool._inputs[0].input_type, File) + self.assertEqual(cmdtool._inputs[1].id(), 'targetFilename') + self.assertIsInstance(cmdtool._inputs[1].input_type, String) + + actual = _simple_lines(cmdtool._files_to_create['script.sh']) + expected = [ + 'set -e', + 'cp \\', + '{inputs.sourceFile} \\', + '{inputs.targetFilename} \\', + ] + self.assertListEqual(actual, expected) + + def test_io_tool(self) -> None: + filepath = f'{WDL_TESTDATA_PATH}/basic/io_tool.wdl' + d = WDL.load(filepath) + task = d.tasks[0] + cmdtool = parse_task(task) + + self.assertIsInstance(cmdtool, CommandToolBuilder) + self.assertEqual(cmdtool._base_command, ['sh', 'script.sh']) + self.assertEqual(len(cmdtool._inputs), 7) + self.assertEqual(len(cmdtool._outputs), 5) + + actual = _simple_lines(cmdtool._files_to_create['script.sh']) + expected = [ + 'set -e', + 'echo \\', + '{inputs.inInt} \\', + '{inputs.inStr} \\', + '{inputs.inBool} \\', + '--in-file={inputs.inFile} \\', + '{inputs.inFileOpt} \\', + '{inputs.inFileArr} \\', + '{inputs.inSecondary} \\', + '> stdout.txt', + ] + self.assertListEqual(actual, expected) + + def test_fastqc_tool(self) -> None: + filepath = f'{WDL_TESTDATA_PATH}/fastqc.wdl' + d = WDL.load(filepath) + task = d.tasks[0] + parse_task(task) + + def test_bwa_mem(self) -> None: + filepath = f'{WDL_TESTDATA_PATH}/bwa_mem.wdl' + d = WDL.load(filepath) + task = d.tasks[0] + parse_task(task) + + + +class TestPlumbing(unittest.TestCase): + + def setUp(self) -> None: + _do_setup() + + def test_conditional_deps(self) -> None: + raise NotImplementedError + + def test_scatter_deps(self) -> None: + raise NotImplementedError + + def test_nested_deps(self) -> None: raise NotImplementedError \ No newline at end of file diff --git a/janis_core/tests/test_janis_translate.py b/janis_core/tests/test_janis_translate.py index 1a504ce39..eac0a2e75 100644 --- a/janis_core/tests/test_janis_translate.py +++ b/janis_core/tests/test_janis_translate.py @@ -1563,26 +1563,33 @@ def setUp(self) -> None: self.src = 'wdl' self.dest = 'nextflow' _reset_global_settings() + settings.ingest.SAFE_MODE = True - @unittest.skip('need injest fixes') + def test_wf_atac(self): + filepath = f'{WDL_TESTDATA_PATH}/ATAC.wdl' + mainstr = _run(filepath, self.src, self.dest) + print(mainstr) + + def test_wf_mutect2(self): + filepath = f'{WDL_TESTDATA_PATH}/mutect2.wdl' + mainstr = _run(filepath, self.src, self.dest) + print(mainstr) + def test_wf_multisample_jointgt_gatk4(self): filepath = f'{WDL_TESTDATA_PATH}/Multisample_jointgt_GATK4.wdl' mainstr = _run(filepath, self.src, self.dest) print(mainstr) - @unittest.skip('need injest fixes') def test_wf_reads2map_preprocessing(self): filepath = f'{WDL_TESTDATA_PATH}/Reads2Map/pipelines/PreprocessingReads/PreprocessingReads.wdl' mainstr = _run(filepath, self.src, self.dest) print(mainstr) - @unittest.skip('need injest fixes') def test_wf_reads2map_reads2map(self): filepath = f'{WDL_TESTDATA_PATH}/Reads2Map/pipelines/EmpiricalReads2Map/EmpiricalReads2Map.wdl' mainstr = _run(filepath, self.src, self.dest) print(mainstr) - @unittest.skip('need injest fixes') def test_wf_reads2map_snp_calling(self): filepath = f'{WDL_TESTDATA_PATH}/Reads2Map/pipelines/EmpiricalSNPCalling/EmpiricalSNPCalling.wdl' mainstr = _run(filepath, self.src, self.dest) diff --git a/janis_core/tests/test_translation_wdl.py b/janis_core/tests/test_translation_wdl.py index 19dd7d5e0..085d92b29 100644 --- a/janis_core/tests/test_translation_wdl.py +++ b/janis_core/tests/test_translation_wdl.py @@ -86,6 +86,7 @@ def non_blank_lines_list(text: str) -> list[str]: def non_blank_lines_str(text: str) -> str: lines = text.splitlines() lines = [ln for ln in lines if not ln == ''] + lines = [ln for ln in lines if '# [' not in ln] outstr = '\n'.join(lines) return outstr diff --git a/janis_core/tests/test_validators.py b/janis_core/tests/test_validators.py index 687aadf68..11e3e0591 100644 --- a/janis_core/tests/test_validators.py +++ b/janis_core/tests/test_validators.py @@ -1,9 +1,14 @@ import unittest from janis_core.utils.validators import Validators - +from janis_core import settings class TestValidators(unittest.TestCase): + + def setUp(self) -> None: + settings.validation.STRICT_IDENTIFIERS = True + settings.validation.VALIDATE_STRINGFORMATTERS = True + def test_valid_identifiers(self): self.assertTrue(Validators.validate_identifier("test_workflow")) diff --git a/janis_core/tests/test_workflow.py b/janis_core/tests/test_workflow.py index 84c551a2c..3e7a08b42 100644 --- a/janis_core/tests/test_workflow.py +++ b/janis_core/tests/test_workflow.py @@ -14,11 +14,22 @@ ) from janis_core.graph.steptaginput import StepTagInput, first_value, Edge from janis_core.tests.testtools import SingleTestTool, ArrayStepTool - +from janis_core import settings class TestWorkflow(TestCase): def setUp(self): Logger.mute() + settings.validation.STRICT_IDENTIFIERS = True + settings.validation.VALIDATE_STRINGFORMATTERS = True + settings.general.SHOULD_VALIDATE = True + settings.testing.TESTMODE = False + settings.ingest.SAFE_MODE = False + settings.datatypes.ALLOW_UNPARSEABLE_DATATYPES = False + settings.graph.ALLOW_NON_ARRAY_SCATTER_INPUT = False + settings.graph.ALLOW_UNKNOWN_SCATTER_FIELDS = False + settings.graph.ALLOW_INCORRECT_NUMBER_OF_SOURCES = False + settings.graph.ALLOW_INCOMPATIBLE_TYPES = False + settings.graph.ALLOW_UNKNOWN_SOURCE = False def tearDown(self): Logger.unmute() diff --git a/notes.txt b/notes.txt index 5a36f2270..31036905a 100644 --- a/notes.txt +++ b/notes.txt @@ -1,3 +1,12 @@ +miniwdl 1.11.0 + +conditional + scatter + step1 + step2 + step3 + +step1 conditions, scatter -------------- @@ -9,8 +18,6 @@ Translate units documentation: - cannot use CommandTool or Workflow or WorkflowBase. -GO BACK TO: "if self.finish.node_type == NodeType.STEP:" - DONE (to test) - messages NXF output - messages CWl ingest @@ -19,7 +26,11 @@ DONE (to test) - CWL ingest edam formats - NEXT translate reflects new TranslatorBase interface -doing +TODO +- all translation units messages +- all translation units functional +- all translation units passing tests + - WDL ingest - do basic task parsing: inputs and outputs only. no command / base_command etc. - keep workflow parsing as-is From f930c178dc9a12d2d5300ea33a3d25cb4eb8e11b Mon Sep 17 00:00:00 2001 From: Grace Hall <graceavahall@gmail.com> Date: Tue, 5 Dec 2023 02:42:04 +1100 Subject: [PATCH 22/32] ready to merge. still TODO: - GXY ingest messages - WDL address runtime inputs - adapt other translate units for WDL shell and native parsers --- janis_core/ingestion/common/graph.py | 2 + janis_core/ingestion/common/identifiers.py | 2 - janis_core/ingestion/cwl/expressions/main.py | 27 +- .../ingestion/cwl/expressions/mainold.py | 2 - janis_core/ingestion/cwl/parsing/workflow.py | 61 ++-- janis_core/ingestion/cwl/preprocessing.py | 2 - .../galaxy/gxtool/command/annotation.py | 2 +- .../gxtool/command/components/inputs/Flag.py | 2 +- .../ingestion/galaxy/gxtool/parsing/main.py | 5 +- .../galaxy/gxtool/text/cheetah/evaluation.py | 3 +- .../gxtool/text/simplification/aliases.py | 3 +- .../text/simplification/main_statement.py | 1 - .../galaxy/internal_model/tool/generate.py | 34 +-- .../galaxy/internal_model/tool/outputs.py | 2 +- janis_core/ingestion/wdl/main.py | 46 ++- .../ingestion/wdl/parsing/command/parsers.py | 6 +- .../ingestion/wdl/parsing/expressions.py | 281 +++++++++++++++--- janis_core/ingestion/wdl/parsing/task/io.py | 7 +- janis_core/ingestion/wdl/parsing/task/main.py | 3 + .../wdl/parsing/task/requirements.py | 8 +- .../ingestion/wdl/parsing/workflow/explore.py | 108 ++++--- .../ingestion/wdl/parsing/workflow/main.py | 177 +++++++---- janis_core/operators/operator.py | 4 + janis_core/operators/standard.py | 2 +- janis_core/tests/test_conditionals.py | 7 + janis_core/tests/test_ingestion_cwl.py | 2 - janis_core/tests/test_ingestion_galaxy.py | 2 +- janis_core/tests/test_ingestion_wdl.py | 169 +++++++++-- janis_core/tests/test_janis_translate.py | 150 ++++++---- janis_core/tests/test_python_tool.py | 13 +- janis_core/tests/test_translation_cwl.py | 13 +- janis_core/tests/test_translation_nextflow.py | 28 +- janis_core/translations/cwl/main.py | 5 +- .../translations/nextflow/generate/config.py | 4 +- .../nextflow/generate/process/directives.py | 8 +- .../process/outputs/factory_cmdtool.py | 2 + .../generate/process/script/common.py | 4 - .../generate/workflow/datatype_mismatch.py | 2 +- .../nextflow/generate/workflow/main.py | 1 - .../preprocessing/task_inputs/main.py | 2 - janis_core/translations/nextflow/unwrap.py | 11 +- janis_core/translations/translationbase.py | 10 +- notes.txt | 63 ++-- 43 files changed, 875 insertions(+), 411 deletions(-) diff --git a/janis_core/ingestion/common/graph.py b/janis_core/ingestion/common/graph.py index 08a64df45..da590cc22 100644 --- a/janis_core/ingestion/common/graph.py +++ b/janis_core/ingestion/common/graph.py @@ -23,6 +23,8 @@ def add_step_edges_to_graph(jstep: StepNode, inputs_dict: dict[str, Any], wf: Workflow) -> None: jstep.tool.connections = inputs_dict tinputs = jstep.tool.inputs_map() + if jstep.sources: + raise RuntimeError("Step already has sources??") jstep.sources = {} added_edges = [] diff --git a/janis_core/ingestion/common/identifiers.py b/janis_core/ingestion/common/identifiers.py index 628f18b3a..0b50c3f3d 100644 --- a/janis_core/ingestion/common/identifiers.py +++ b/janis_core/ingestion/common/identifiers.py @@ -25,8 +25,6 @@ def _get_id_entity_cwl(identifier: str) -> str: def get_id_filename(identifier: str) -> str: if settings.ingest.SOURCE == 'cwl': cwl_ref = get_cwl_reference(identifier) - if not cwl_ref.filename: - print() assert(cwl_ref.filename) return cwl_ref.filename else: diff --git a/janis_core/ingestion/cwl/expressions/main.py b/janis_core/ingestion/cwl/expressions/main.py index cab14378e..f004e597d 100644 --- a/janis_core/ingestion/cwl/expressions/main.py +++ b/janis_core/ingestion/cwl/expressions/main.py @@ -20,9 +20,9 @@ def parse_expression( expr: Any, tool_uuid: str, implicit_wrapping: bool=False, - error_token_override: Optional[str]=None + error_token_override: Optional[str]=None, + context: str = 'tool' # tool | workflow ) -> Any: - print(type(expr)) # don't parse None if expr is None: @@ -38,12 +38,12 @@ def parse_expression( # has '$' wrapping if expr.startswith('$(') or expr.startswith('${'): - return parse_explicit_expr(expr, tool_uuid, error_token_override) + return parse_explicit_expr(expr, tool_uuid, error_token_override, context) # no '$' wrapping but in this cwl context may still be valid expression # add '$' and attempt parse. elif implicit_wrapping: - return parse_implicit_expr(expr, tool_uuid, error_token_override) + return parse_implicit_expr(expr, tool_uuid, error_token_override, context) # its just a string else: @@ -52,10 +52,11 @@ def parse_expression( def parse_explicit_expr( expr: str, tool_uuid: str, - error_token_override: Optional[str]=None + error_token_override: Optional[str]=None, + context: str = 'tool' # tool | workflow ) -> Any: - result, success = ExpressionParser().parse(expr) + result, success = ExpressionParser(context).parse(expr) # successful parse if success: return result, True @@ -82,13 +83,14 @@ def parse_explicit_expr( def parse_implicit_expr( expr: str, tool_uuid: str, - error_token_override: Optional[str]=None + error_token_override: Optional[str]=None, + context: str = 'tool' # tool | workflow ) -> Any: if '$(' not in expr and '${' not in expr: new_expr = f'$({expr})' else: new_expr = deepcopy(expr) - result, success = ExpressionParser().parse(new_expr) + result, success = ExpressionParser(context).parse(new_expr) # is expression if success: @@ -109,6 +111,10 @@ def get_token_for_expr(expr: str, loglines: list[LogLine]) -> Optional[str]: class ExpressionParser: + + def __init__(self, context: str): + self.context = context + file_attr_map = { 'attr_basename': j.BasenameOperator, 'attr_dirname': j.DirnameOperator, @@ -202,7 +208,10 @@ def parse_node(self, node: Tree | Token) -> Any: # objects elif t_name == 'input': i_name = self.parse_node(node.children[0]) - return j.InputSelector(i_name) + if self.context == 'tool': + return j.InputSelector(i_name) + elif self.context == 'workflow': + return j.InputNodeSelector(i_name) elif t_name == 'rt_outdir': return '.' elif t_name == 'rt_tmpdir': diff --git a/janis_core/ingestion/cwl/expressions/mainold.py b/janis_core/ingestion/cwl/expressions/mainold.py index 3a0aee756..76a3671fb 100644 --- a/janis_core/ingestion/cwl/expressions/mainold.py +++ b/janis_core/ingestion/cwl/expressions/mainold.py @@ -83,8 +83,6 @@ def parse(self, expr: Any) -> Tuple[Any, bool]: single_expression_match = single_expression_matcher.match(expr) inline_expression_matches = list(inline_expression_matcher.findall(expr)) # non-full length expressions "$(expr1).fastq" etc - if '/foo/bar/baz' in expr: - print() # if only single $(expr) if single_token_match: res = self.convert_javascript_token(single_token_match.groups()[0]) diff --git a/janis_core/ingestion/cwl/parsing/workflow.py b/janis_core/ingestion/cwl/parsing/workflow.py index 249b8b7ae..421ff075a 100644 --- a/janis_core/ingestion/cwl/parsing/workflow.py +++ b/janis_core/ingestion/cwl/parsing/workflow.py @@ -175,12 +175,15 @@ def fallback(self) -> dict[str, Any]: def do_parse(self) -> dict[str, Any]: step_identifier = get_id_entity(self.entity.id) - log_message(self.entity_uuid, 'this is a test', ErrorCategory.FALLBACKS) + if settings.testing.TESTMODE: + # TODO get rid of this. + log_message(self.entity_uuid, 'this is a test', ErrorCategory.FALLBACKS) - # valid_step_inputs = self.get_valid_step_inputs(self.entity, jstep) + jstep = self.wf.step_nodes[step_identifier] + valid_step_inputs = self.get_valid_step_inputs(self.entity, jstep) inputs_dict = {} - for inp in self.entity.in_: + for inp in valid_step_inputs: inp_identifier = get_id_entity(inp.id) parser = WorkflowStepInputParser(cwl_utils=self.cwl_utils, entity=inp, wf=self.wf, entity_uuid=self.wf.uuid) parser.step_name = step_identifier @@ -190,18 +193,17 @@ def do_parse(self) -> dict[str, Any]: return inputs_dict # this may have been a mistake to comment out - # def get_valid_step_inputs(self, cwlstp: Any, jstep: StepNode) -> list[Any]: - # return [x for x in cwlstp.in_ if self.is_valid_step_input(x, jstep)] - - # def is_valid_step_input(self, inp: Any, jstep: StepNode) -> bool: - # inp_identifier = get_id_entity(inp.id) - # if inp_identifier in jstep.tool.inputs_map(): - # return True - # else: - # raise RuntimeError - # # msg = f'{jstep.tool.id()} task has no input named "{inp_identifier}". Ignored as fallback.' - # # self.error_msgs.append(msg) - # # return False + def get_valid_step_inputs(self, cwlstp: Any, jstep: StepNode) -> list[Any]: + return [x for x in cwlstp.in_ if self.is_valid_step_input(x, jstep)] + + def is_valid_step_input(self, inp: Any, jstep: StepNode) -> bool: + inp_identifier = get_id_entity(inp.id) + if inp_identifier in jstep.tool.inputs_map(): + return True + else: + msg = f'{jstep.tool.id()} has no input named "{inp_identifier}". Ignored as fallback.' + log_message(self.entity_uuid, msg, ErrorCategory.PLUMBING) + return False @@ -258,24 +260,25 @@ def resolve_value_from(self, source: Any) -> Any: value = None if inp.valueFrom is not None: - if 'self.' in inp.valueFrom: - if isinstance(source, InputNodeSelector): - replacement = f'inputs.{source.input_node.id()}.' - inp.valueFrom = inp.valueFrom.replace('self.', replacement) - elif isinstance(source, StepOutputSelector): - replacement = f'steps.{source.node.id()}.{source.tag}.' - inp.valueFrom = inp.valueFrom.replace('self.', replacement) - else: - raise NotImplementedError + value, success = parse_expression(inp.valueFrom, self.entity_uuid, context='workflow') + # if 'self.' in inp.valueFrom: + # if isinstance(source, InputNodeSelector): + # replacement = f'inputs.{source.input_node.id()}.' + # inp.valueFrom = inp.valueFrom.replace('self.', replacement) + # elif isinstance(source, StepOutputSelector): + # replacement = f'steps.{source.node.id()}.{source.tag}.' + # inp.valueFrom = inp.valueFrom.replace('self.', replacement) + # else: + # raise NotImplementedError # we do not want to unwrap inp.valueFrom. doesnt translate to nextflow correctly. # just mark it as untranslated javascript after the 'self.' has been changed to something # more meaningful - value = f'<js>{inp.valueFrom}</js>' + # value = f'<js>{inp.valueFrom}</js>' - inp_identifier = get_id_entity(inp.id) - msg = f"'{inp_identifier}' input value contains untranslated javascript expression: {value}" - log_message(self.entity_uuid, msg, ErrorCategory.SCRIPTING) + # inp_identifier = get_id_entity(inp.id) + # msg = f"'{inp_identifier}' input value contains untranslated javascript expression: {value}" + # log_message(self.entity_uuid, msg, ErrorCategory.SCRIPTING) return value @@ -304,7 +307,7 @@ def do_parse(self) -> None: def parse_when(self) -> Any: if hasattr(self.entity, 'when') and self.entity.when is not None: - res, success = parse_expression(self.entity.when, self.entity_uuid) + res, success = parse_expression(self.entity.when, self.entity_uuid, context='workflow') return res return None diff --git a/janis_core/ingestion/cwl/preprocessing.py b/janis_core/ingestion/cwl/preprocessing.py index 651257fcf..65847a6c5 100644 --- a/janis_core/ingestion/cwl/preprocessing.py +++ b/janis_core/ingestion/cwl/preprocessing.py @@ -132,8 +132,6 @@ def _convert_types_outputbinding(self, binding: Any) -> None: binding.outputBinding.outputEval = cast_cwl_type_to_python(binding.outputBinding.outputEval) def _convert_types_clt(self, clt: Any) -> Any: - if not hasattr(clt, 'baseCommand'): - print() clt.baseCommand = cast_cwl_type_to_python(clt.baseCommand) clt.stderr = cast_cwl_type_to_python(clt.stderr) clt.stdout = cast_cwl_type_to_python(clt.stdout) diff --git a/janis_core/ingestion/galaxy/gxtool/command/annotation.py b/janis_core/ingestion/galaxy/gxtool/command/annotation.py index a5f34fb4e..26b20b2ff 100644 --- a/janis_core/ingestion/galaxy/gxtool/command/annotation.py +++ b/janis_core/ingestion/galaxy/gxtool/command/annotation.py @@ -342,7 +342,7 @@ def handle_as_simple_option_selector(self, param: XMLSelectParam) -> Option: def looks_like_compound_option_selector(self, param: XMLSelectParam) -> bool: appearence = analysis.get_cmdstr_appearences(self.main_stmt, param, filter_to=CmdstrReferenceType.INLINE_PLAIN_TEXT)[0] if analysis.is_compound_option(appearence.text): - print('--- FOUND COMPOUND OPTION ---') + # print('--- FOUND COMPOUND OPTION ---') return True return False diff --git a/janis_core/ingestion/galaxy/gxtool/command/components/inputs/Flag.py b/janis_core/ingestion/galaxy/gxtool/command/components/inputs/Flag.py index 86960f625..2b552c5a1 100644 --- a/janis_core/ingestion/galaxy/gxtool/command/components/inputs/Flag.py +++ b/janis_core/ingestion/galaxy/gxtool/command/components/inputs/Flag.py @@ -32,7 +32,7 @@ def default_value(self) -> bool: elif not self.gxparam.checked and self.gxparam.falsevalue == "": return False elif isinstance(self.gxparam, XMLSelectParam): - print() + pass return False diff --git a/janis_core/ingestion/galaxy/gxtool/parsing/main.py b/janis_core/ingestion/galaxy/gxtool/parsing/main.py index a33060ad9..3e97ec252 100644 --- a/janis_core/ingestion/galaxy/gxtool/parsing/main.py +++ b/janis_core/ingestion/galaxy/gxtool/parsing/main.py @@ -266,10 +266,9 @@ def parse_scripts(self) -> None: self.inputs.add(param) # modify command to replace script with param - print(self.gxtool.command) + # print(self.gxtool.command) self.replace_script_in_command(match, param) - print(self.gxtool.command) - print() + # print(self.gxtool.command) def parse_script(self, match: re.Match[str]) -> XMLScript: filename = match.group(1) diff --git a/janis_core/ingestion/galaxy/gxtool/text/cheetah/evaluation.py b/janis_core/ingestion/galaxy/gxtool/text/cheetah/evaluation.py index 348539bfe..75e75ce5e 100644 --- a/janis_core/ingestion/galaxy/gxtool/text/cheetah/evaluation.py +++ b/janis_core/ingestion/galaxy/gxtool/text/cheetah/evaluation.py @@ -39,7 +39,6 @@ def report(self) -> None: print(f'success blocks: {success_percent:0.1f}%') for btype_name, count in self.block_types.items(): print(f'{btype_name}: {count}') - print() class PartialCheetahEvaluator: @@ -58,7 +57,7 @@ def evaluate(self) -> list[str]: eval_lines = self.lines # report metrics & return - self.metrics.report() + # self.metrics.report() return eval_lines def evaluation_worker(self) -> list[str]: diff --git a/janis_core/ingestion/galaxy/gxtool/text/simplification/aliases.py b/janis_core/ingestion/galaxy/gxtool/text/simplification/aliases.py index 7e8acfe10..866f06217 100644 --- a/janis_core/ingestion/galaxy/gxtool/text/simplification/aliases.py +++ b/janis_core/ingestion/galaxy/gxtool/text/simplification/aliases.py @@ -96,14 +96,13 @@ def __init__(self): def resolve(self, cmdstr: str) -> str: self.register_aliases(cmdstr) cmdstr = self.resolve_aliases(cmdstr) - self.report() + # self.report() return cmdstr def report(self) -> None: print('--- ALIASES ---') print(f'discovered {len(self.register.aliases.keys())} aliases') print(f'resolved {self.resolution_count} aliases') - print() def register_aliases(self, cmdstr: str) -> None: lines = cmdstr.split('\n') diff --git a/janis_core/ingestion/galaxy/gxtool/text/simplification/main_statement.py b/janis_core/ingestion/galaxy/gxtool/text/simplification/main_statement.py index f9f7d6373..30773ca78 100644 --- a/janis_core/ingestion/galaxy/gxtool/text/simplification/main_statement.py +++ b/janis_core/ingestion/galaxy/gxtool/text/simplification/main_statement.py @@ -44,7 +44,6 @@ def split_text_statements(text: str) -> list[str]: statements.append(current_stmt) current_stmt = '' offset = m.end() - print() current_stmt += f'{line[offset:]}\n' statements.append(current_stmt) diff --git a/janis_core/ingestion/galaxy/internal_model/tool/generate.py b/janis_core/ingestion/galaxy/internal_model/tool/generate.py index 09292c974..eb3a6d9e5 100644 --- a/janis_core/ingestion/galaxy/internal_model/tool/generate.py +++ b/janis_core/ingestion/galaxy/internal_model/tool/generate.py @@ -142,16 +142,16 @@ def add_uncaptured_inputs(self) -> None: component = self.create_uncaptured_input(param, pvalue) uncaptured_inputs.append(component) - if unlinked_params: - print('\n--- UNLINKED PARAMS ---') - for param in unlinked_params: - print(f'{param.name}: {param.__class__.__name__}') + # if unlinked_params: + # print('\n--- UNLINKED PARAMS ---') + # for param in unlinked_params: + # print(f'{param.name}: {param.__class__.__name__}') - if uncaptured_inputs: - print('\n--- UNCAPTURED INPUTS ---') - for component in uncaptured_inputs: - assert(component.gxparam) - print(f'{component.__class__.__name__}: {component.gxparam.name}') + # if uncaptured_inputs: + # print('\n--- UNCAPTURED INPUTS ---') + # for component in uncaptured_inputs: + # assert(component.gxparam) + # print(f'{component.__class__.__name__}: {component.gxparam.name}') if uncaptured_inputs: if self.can_link_uncaptured_positionals(uncaptured_inputs): @@ -247,7 +247,7 @@ def can_link_uncaptured_positionals(self, uncaptured_inputs: list[InputComponent unlinked_positionals = [x for x in self.inputs if isinstance(x, Positional) and not x.gxparam] uncaptured_positionals = [x for x in uncaptured_inputs if isinstance(x, Positional)] if len(uncaptured_positionals) == len(unlinked_positionals): - print('\nLINKING UNCAPTURED POSITIONALS POSSIBLE!') + # print('\nLINKING UNCAPTURED POSITIONALS POSSIBLE!') return True return False @@ -306,7 +306,7 @@ def resolve_duplicate_gxparam_components(self) -> None: duplicates = True if any([len(components) > 1 for components in gxparam_dict.values()]) else False if duplicates: - print('\n---DUPLICATE GXPARAM ---') + # print('\n---DUPLICATE GXPARAM ---') for gxparam, components in gxparam_dict.items(): if len(components) > 1: for component in components: @@ -318,16 +318,16 @@ def resolve_duplicate_gxparam_components(self) -> None: details = f'[positional] {component.cmd_pos}' elif isinstance(component, OutputComponent): details = f'[output] {component.name}' - print(f'{gxparam}: {details}') + # print(f'{gxparam}: {details}') def resolve_duplicate_prefix_components(self) -> None: flags = set([x.prefix for x in self.inputs if isinstance(x, Flag)]) options = set([x.prefix for x in self.inputs if isinstance(x, Option)]) intersection = flags & options - if intersection: - print('\n--- DUPLICATE FLAG / OPTION PREFIXES ---') - for prefix in intersection: - print(prefix) + # if intersection: + # print('\n--- DUPLICATE FLAG / OPTION PREFIXES ---') + # for prefix in intersection: + # print(prefix) # whitelisted_uuids = [x.uuid for x in self.inputs] @@ -428,7 +428,7 @@ def prioritise_outputs(self) -> list[OutputComponent]: for out in self.whitelisted_outputs: if out.name not in data_structure: - print() + pass possible = data_structure[out.name] possible_sorted = sorted(possible, key=lambda x: priorities[x[0]]) prioritised.append(possible_sorted[0][1]) diff --git a/janis_core/ingestion/galaxy/internal_model/tool/outputs.py b/janis_core/ingestion/galaxy/internal_model/tool/outputs.py index 2b59ef7b1..9d8549f44 100644 --- a/janis_core/ingestion/galaxy/internal_model/tool/outputs.py +++ b/janis_core/ingestion/galaxy/internal_model/tool/outputs.py @@ -66,7 +66,7 @@ def prioritise_outputs(self) -> list[CommandComponent]: for out in self.whitelisted_outputs: if out.name not in data_structure: - print() + pass possible = data_structure[out.name] possible_sorted = sorted(possible, key=lambda x: priorities[x[0]]) prioritised.append(possible_sorted[0][1]) diff --git a/janis_core/ingestion/wdl/main.py b/janis_core/ingestion/wdl/main.py index c7edd666f..7130b3ddf 100755 --- a/janis_core/ingestion/wdl/main.py +++ b/janis_core/ingestion/wdl/main.py @@ -5,7 +5,7 @@ import WDL from typing import Any -from .parsing.workflow.explore import get_entities +from .parsing.workflow.explore import get_entities_flat from janis_core import WorkflowBuilder, CommandToolBuilder from janis_core.workflow.workflow import InputNode, StepNode, OutputNode @@ -67,7 +67,7 @@ def ingest_task(self, obj) -> CommandToolBuilder: def ingest_workflow(self, wdl_wf) -> WorkflowBuilder: """Workflow ingest entry point""" - entities = get_entities(wdl_wf) + entities = get_entities_flat(wdl_wf) janis_wf = WorkflowBuilder(identifier=wdl_wf.name) self.ingest_workflow_inputs(wdl_wf, janis_wf, entities) self.ingest_workflow_steps(wdl_wf, janis_wf, entities) @@ -75,7 +75,7 @@ def ingest_workflow(self, wdl_wf) -> WorkflowBuilder: return janis_wf def ingest_workflow_inputs(self, wdl_wf, janis_wf, entities) -> None: - for inp in entities["input"]: + for inp in entities["inputs"]: self.ingest_workflow_input(wdl_wf, janis_wf, inp) def ingest_workflow_input(self, wdl_wf, janis_wf, wdl_inp) -> InputNode: @@ -83,15 +83,15 @@ def ingest_workflow_input(self, wdl_wf, janis_wf, wdl_inp) -> InputNode: return parser.parse() def ingest_workflow_steps(self, wdl_wf, janis_wf, entities) -> None: - for inv_call in entities['call']: - self.ingest_workflow_step(wdl_wf, janis_wf, inv_call) - for inv_call in entities['call']: - self.ingest_workflow_step_inputs(wdl_wf, janis_wf, inv_call) - for inv_call in entities['call']: - self.ingest_workflow_step_modifiers(wdl_wf, janis_wf, inv_call) - - def ingest_workflow_step(self, wdl_wf, janis_wf, inv_call) -> StepNode: - call = inv_call.call + for flatcall in entities['calls']: + self.ingest_workflow_step(wdl_wf, janis_wf, flatcall) + for flatcall in entities['calls']: + self.ingest_workflow_step_inputs(wdl_wf, janis_wf, flatcall) + for flatcall in entities['calls']: + self.ingest_workflow_step_modifiers(wdl_wf, janis_wf, flatcall) + + def ingest_workflow_step(self, wdl_wf, janis_wf, flatcall) -> StepNode: + call = flatcall.entity task = self.ingest(call.callee) return janis_wf.step( identifier=call.name, @@ -99,24 +99,22 @@ def ingest_workflow_step(self, wdl_wf, janis_wf, inv_call) -> StepNode: ignore_missing=True ) - def ingest_workflow_step_inputs(self, wdl_wf, janis_wf, inv_call) -> StepNode: - call = inv_call.call + def ingest_workflow_step_inputs(self, wdl_wf, janis_wf, flatcall) -> StepNode: + call = flatcall.entity inp_map = {} for k, v in call.inputs.items(): - parser = WorkflowStepInputParser(wdl_wf, janis_wf, v) + parser = WorkflowStepInputParser(wdl_wf, janis_wf, v, flatcall) inp_map[k] = parser.parse() - if call.name == 'samples': - print() inputs_dict = inp_map jstep = janis_wf[call.name] add_step_edges_to_graph(jstep, inputs_dict, janis_wf) return jstep - def ingest_workflow_step_modifiers(self, wdl_wf, janis_wf, inv_call) -> StepNode: - parser = WorkflowStepModifierParser(wdl_wf, janis_wf, inv_call) + def ingest_workflow_step_modifiers(self, wdl_wf, janis_wf, flatcall) -> StepNode: + parser = WorkflowStepModifierParser(wdl_wf, janis_wf, flatcall) parser.parse() - jstep = janis_wf[inv_call.call.name] + jstep = janis_wf[flatcall.entity.name] if parser.scatter is not None: jstep.scatter = parser.scatter janis_wf.has_scatter = True @@ -126,11 +124,11 @@ def ingest_workflow_step_modifiers(self, wdl_wf, janis_wf, inv_call) -> StepNode return jstep def ingest_workflow_outputs(self, wdl_wf, janis_wf, entities) -> None: - for out in entities["output"]: - self.ingest_workflow_output(wdl_wf, janis_wf, out) + for flatout in entities["outputs"]: + self.ingest_workflow_output(wdl_wf, janis_wf, flatout) - def ingest_workflow_output(self, wdl_wf, janis_wf, wd_out) -> OutputNode: - parser = WorkflowOutputParser(wdl_wf, janis_wf, wd_out) + def ingest_workflow_output(self, wdl_wf, janis_wf, flatout) -> OutputNode: + parser = WorkflowOutputParser(wdl_wf, janis_wf, flatout) return parser.parse() diff --git a/janis_core/ingestion/wdl/parsing/command/parsers.py b/janis_core/ingestion/wdl/parsing/command/parsers.py index baba0ff7a..314641b75 100644 --- a/janis_core/ingestion/wdl/parsing/command/parsers.py +++ b/janis_core/ingestion/wdl/parsing/command/parsers.py @@ -63,8 +63,10 @@ def parse_env_vars(self) -> dict[str, Any]: return {} def parse_files_to_create(self) -> dict[str, Any]: - translated_script = parse_expr(self.task.command, self.task, self.cmdtool) - return {"script.sh": translated_script} + res, success = parse_expr(self.task.command, self.task, self.cmdtool) + if success: + return {"script.sh": res} + raise RuntimeError def parse_dirs_to_create(self) -> list[str | Selector]: return [] diff --git a/janis_core/ingestion/wdl/parsing/expressions.py b/janis_core/ingestion/wdl/parsing/expressions.py index 30d0c8928..a7377d74f 100644 --- a/janis_core/ingestion/wdl/parsing/expressions.py +++ b/janis_core/ingestion/wdl/parsing/expressions.py @@ -1,18 +1,85 @@ import WDL -from typing import Any +from typing import Any, Optional, Tuple from types import LambdaType +import regex as re + import janis_core as j +from janis_core import settings +from janis_core.messages import load_loglines +from janis_core.messages import LogLine +from janis_core.messages import log_message +from janis_core.messages import ErrorCategory +from .workflow.explore import CallContext +from .workflow.explore import OutputContext +from copy import deepcopy + +### WDL EXPR -> STRING ### + +def expr_as_str(expr: WDL.Expr.Base) -> str: + with open(expr.pos.abspath, 'r') as fp: + doclines = fp.readlines() + doclines = [x.rstrip('\n') for x in doclines] + lines = doclines[expr.pos.line - 1: expr.pos.end_line] + lines[-1] = lines[-1][:expr.pos.end_column - 1] + lines[0] = lines[0][expr.pos.column - 1:] + text = '\n'.join(lines) + return text + + + +### WDL -> JANIS MAPPING ### + +def parse_expr( + expr: WDL.Expr.Base, + wdl_entity: WDL.Tree.Task | WDL.Tree.Workflow, + j_entity: j.CommandToolBuilder | j.WorkflowBuilder, + node_context: Optional[CallContext | OutputContext]=None + ) -> Tuple[Any, bool]: + + if settings.ingest.SAFE_MODE == True: + try: + parser = WDlExprParser(wdl_entity, j_entity, node_context) + return parser.parse(expr), True + + except Exception as e: + expr_str = str(expr) + loglines = load_loglines(category=ErrorCategory.SCRIPTING, entity_uuids=set([j_entity.uuid])) + + # expr already has token? + token = _get_token_for_expr(expr_str, loglines) + if token: + return token, False + + # expr needs new token + token = f'__TOKEN{len(loglines) + 1}__' + msg = f'{token} = "{expr}"' + log_message(j_entity.uuid, msg, ErrorCategory.SCRIPTING) + return token, False + else: + parser = WDlExprParser(wdl_entity, j_entity, node_context) + return parser.parse(expr), True +def _get_token_for_expr(expr: str, loglines: list[LogLine]) -> Optional[str]: + token_p = r'__TOKEN\d+__' + for line in loglines: + if re.match(token_p, line.message): + token, expr = line.message.split(' = ', 1) + if expr.strip('"') == expr: + return token + return None -def parse_expr(expr: WDL.Expr.Base, wdl_entity: WDL.Tree.Task | WDL.Tree.Workflow, j_entity: j.CommandToolBuilder | j.WorkflowBuilder) -> Any: - parser = WDlExprParser(wdl_entity, j_entity) - return parser.parse(expr) class WDlExprParser: - def __init__(self, wdl_entity: WDL.Tree.Task | WDL.Tree.Workflow, j_entity: j.CommandToolBuilder | j.WorkflowBuilder): - self.wdl_entity = wdl_entity # wdl task or workflow - self.j_entity = j_entity # respective janis cmdtoolbuilder or workflowbuilder + def __init__( + self, + wdl_entity: WDL.Tree.Task | WDL.Tree.Workflow, + j_entity: j.CommandToolBuilder | j.WorkflowBuilder, + node_context: Optional[CallContext | OutputContext]=None + ) -> None: + self.wdl_entity = wdl_entity # wdl task or workflow + self.j_entity = j_entity # respective janis cmdtoolbuilder or workflowbuilder + self.node_context = node_context # contextual information about scoped vars / scatter available in this scope def parse(self, expr: WDL.Expr.Base) -> Any: if expr is None: @@ -39,25 +106,84 @@ def parse_get(self, expr: WDL.Expr.Get): expr = expr.expr assert isinstance(expr.expr, WDL.Expr.Ident) - # tool - input | temp var? + # task if isinstance(self.wdl_entity, WDL.Tree.Task): - assert isinstance(self.j_entity, j.CommandToolBuilder) - return j.InputSelector(str(expr.expr.name)) - - # workflow - input | step | step output | temp var? + return self.parse_get_task(expr) + # workflow step elif isinstance(self.wdl_entity, WDL.Tree.Workflow): - assert isinstance(self.j_entity, j.WorkflowBuilder) - expr_str = str(expr.expr.name) - if "." in expr_str: - node, *tag = expr_str.split(".") - if len(tag) > 1: - raise Exception(f"Couldn't parse source ID: {expr_str} - too many '.'") - return self.j_entity[node][tag[0]] - return self.j_entity[expr_str] - + return self.parse_get_workflow(expr) else: raise RuntimeError + + def parse_get_task(self, expr: WDL.Expr.Get): + # tool - input | temp var? + assert isinstance(self.j_entity, j.CommandToolBuilder) + return j.InputSelector(str(expr.expr.name)) + + def parse_get_workflow(self, expr: WDL.Expr.Get): + # workflow - input | step | step output | scatter target | temp var + expr_str = str(expr.expr.name) + + if self.is_scatter_target(expr_str): + return self.parse_get_scatter_target(expr_str) + elif self.is_scoped_var(expr_str): + return self.parse_get_scoped_var(expr_str) + # condition (when)? + elif "." in expr_str: + return self.parse_get_stepout_ref(expr_str) + else: + return self.parse_get_input_ref(expr_str) + + def is_scatter_target(self, expr: str): + assert isinstance(self.j_entity, j.WorkflowBuilder) + if not isinstance(self.node_context, CallContext): + return False + if self.node_context.scatter is None: + return False + if self.node_context.scatter.variable == expr: + return True + return False + + def is_scoped_var(self, expr: str): + assert isinstance(self.j_entity, j.WorkflowBuilder) + if self.node_context is None: + return False + for tempvar in self.node_context.scopedvars: + if tempvar.name == expr: + return True + return False + + def parse_get_scatter_target(self, expr: str): + # TODO maybe call parse_expr() rather than self.parse? want the largest traceback. + assert isinstance(self.node_context, CallContext) + assert self.node_context is not None + assert self.node_context.scatter is not None + return self.parse(self.node_context.scatter.expr) + + def parse_get_scoped_var(self, expr: str): + assert self.node_context is not None + tempvar = [x for x in self.node_context.scopedvars if x.name == expr][0] + return self.parse(tempvar.expr) + def parse_get_stepout_ref(self, expr: str): + assert isinstance(self.j_entity, j.WorkflowBuilder) + assert '.' in expr + stp_id, *tag = expr.split(".") + if len(tag) > 1: + raise Exception(f"Couldn't parse source ID: {expr} - too many '.'") + assert stp_id in self.j_entity.step_nodes + stp = self.j_entity.step_nodes[stp_id] + sout = tag[0] + selector = stp.get_item(sout) + return selector + + def parse_get_input_ref(self, expr: str): + assert isinstance(self.j_entity, j.WorkflowBuilder) + if expr in self.j_entity.input_nodes: + node = self.j_entity.input_nodes[expr] + return j.InputNodeSelector(node) + raise NotImplementedError + def parse_string(self, s: WDL.Expr.String): if s.literal is not None: return str(s.literal).lstrip('"').rstrip('"') @@ -70,7 +196,7 @@ def parse_string(self, s: WDL.Expr.String): if isinstance(placeholder, (str, bool, int, float)): continue - token = f"JANIS_WDL_TOKEN_{counter}" + token = f"TOKEN{counter}" if str(placeholder) not in _format: # if the placeholder came up again continue @@ -117,52 +243,109 @@ def parse_basename(self, src, *args): if len(args) > 0: retval = retval.replace(args[0], "") return retval - + + def parse_prefix(self, src, *args): + raise NotImplementedError + + def parse_read_lines(self, src, *args): + if len(args) > 0: + raise NotImplementedError + return j.SplitOperator(j.ReadContents(src), '\n') + + def parse_read_int(self, src, *args): + if len(args) > 0: + raise NotImplementedError + return j.AsIntOperator(j.ReadContents(src)) + + def parse_read_float(self, src, *args): + if len(args) > 0: + raise NotImplementedError + return j.AsFloatOperator(j.ReadContents(src)) + + def parse_read_boolean(self, src, *args): + if len(args) > 0: + raise NotImplementedError + return j.AsBoolOperator(j.ReadContents(src)) + def parse_apply(self, expr: WDL.Expr.Apply) -> j.Selector | list[j.Selector]: - - # special case for select_first of array with one element - if expr.function_name == "select_first" and len(expr.arguments) > 0: - inner = expr.arguments[0] - if isinstance(inner, WDL.Expr.Array) and len(inner.items) == 1: - return self.parse(inner.items[0]).assert_not_null() - args = [self.parse(e) for e in expr.arguments] fn_map = { - "_land": j.AndOperator, - "defined": j.IsDefined, - "select_first": j.FilterNullOperator, - "basename": self.parse_basename, + 'read_lines': self.parse_read_lines, + 'read_tsv': None, + 'read_json': j.ReadJsonOperator, + 'read_map': None, + 'read_object': None, + 'read_objects': None, + 'read_string': j.ReadContents, + 'read_int': self.parse_read_int, + 'read_float': self.parse_read_float, + 'read_boolean': self.parse_read_boolean, + 'write_lines': None, + 'write_tsv': None, + 'write_json': None, + 'write_map': None, + 'write_object': None, + 'write_objects': None, + "range": j.RangeOperator, + 'transpose': j.TransposeOperator, + 'zip': None, + 'cross': None, "length": j.LengthOperator, + 'flatten': j.FlattenOperator, + 'prefix': self.parse_prefix, + "select_first": j.FirstOperator, + 'select_all': j.FilterNullOperator, + 'defined': j.IsDefined, + "basename": self.parse_basename, + 'floor': j.FloorOperator, + "sep": j.JoinOperator, + "stdout": j.Stdout, + "glob": j.WildcardSelector, + "size": self.parse_file_size, + "ceil": j.CeilOperator, + "sub": j.ReplaceOperator, + "round": j.RoundOperator, + + "_lor": j.OrOperator, + "_eqeq": j.EqualityOperator, + "_land": j.AndOperator, "_gt": j.GtOperator, "_gte": j.GteOperator, "_lt": j.LtOperator, "_lte": j.LteOperator, - "sep": j.JoinOperator, "_add": j.AddOperator, "_interpolation_add": j.AddOperator, - "stdout": j.Stdout, "_add": j.AddOperator, "_mul": j.MultiplyOperator, "_div": j.DivideOperator, - "glob": j.WildcardSelector, - "range": j.RangeOperator, "_at": j.IndexOperator, "_negate": j.NotOperator, "_sub": j.SubtractOperator, - "size": self.parse_file_size, - "ceil": j.CeilOperator, - "select_all": j.FilterNullOperator, - "sub": j.ReplaceOperator, - "round": j.RoundOperator, - "write_lines": lambda exp: f"JANIS: write_lines({exp})", - "read_tsv": lambda exp: f"JANIS: j.read_tsv({exp})", - "read_boolean": lambda exp: f"JANIS: j.read_boolean({exp})", - "read_lines": lambda exp: f"JANIS: j.read_lines({exp})", } - fn = fn_map.get(expr.function_name) - if fn is None: + # TODO + # CWL flatten: https://github.com/common-workflow-library/cwl-patterns/blob/main/javascript_snippets/flatten-nestedarray.cwl + + # special case for select_first of array with one element + if expr.function_name == "select_first" and len(expr.arguments) > 0: + inner = expr.arguments[0] + if isinstance(inner, WDL.Expr.Array) and len(inner.items) == 1: + return self.parse(inner.items[0]).assert_not_null() + + # uncaught error. + # log message and bail + if expr.function_name not in fn_map: raise Exception(f"Unhandled WDL apply function_name: {expr.function_name}") + + fn = fn_map[expr.function_name] + + # caught error. we can't parse this func. ignore, log a message, keep going. + if fn is None: + arg = self.parse(expr.arguments[0]) + msg = f"Function {expr.function_name}({arg}) not supported. Ignored function." + log_message(self.j_entity.uuid, msg, ErrorCategory.SCRIPTING) + return arg + if isinstance(fn, LambdaType): return fn(args) return fn(*args) diff --git a/janis_core/ingestion/wdl/parsing/task/io.py b/janis_core/ingestion/wdl/parsing/task/io.py index be74ce985..994cbf28b 100644 --- a/janis_core/ingestion/wdl/parsing/task/io.py +++ b/janis_core/ingestion/wdl/parsing/task/io.py @@ -21,7 +21,8 @@ def __init__(self, task: WDL.Tree.Task, cmdtool: CommandToolBuilder, wdl_inp: WD def do_parse(self) -> ToolInput: default = None if self.wdl_inp.expr: - default = parse_expr(self.wdl_inp.expr, self.task, self.cmdtool) + res, success = parse_expr(self.wdl_inp.expr, self.task, self.cmdtool) + default = res tinput = ToolInput(self.wdl_inp.name, parse_type(self.wdl_inp.type, self.task, uuid=self.wdl_inp.name), default=default) return tinput @@ -40,8 +41,8 @@ def __init__(self, task: WDL.Tree.Task, cmdtool: CommandToolBuilder, wdl_out: WD def do_parse(self) -> ToolOutput: if self.wdl_out.expr is None: raise Exception(f"Output {self.wdl_out.name} has no expression") - sel = parse_expr(self.wdl_out.expr, self.task, self.cmdtool) - tout = ToolOutput(self.wdl_out.name, parse_type(self.wdl_out.type, self.task, uuid=self.wdl_out.name), selector=sel) + res, success = parse_expr(self.wdl_out.expr, self.task, self.cmdtool) + tout = ToolOutput(self.wdl_out.name, parse_type(self.wdl_out.type, self.task, uuid=self.wdl_out.name), selector=res) return tout def fallback(self) -> ToolOutput: diff --git a/janis_core/ingestion/wdl/parsing/task/main.py b/janis_core/ingestion/wdl/parsing/task/main.py index 218b96627..ff2cd4afa 100644 --- a/janis_core/ingestion/wdl/parsing/task/main.py +++ b/janis_core/ingestion/wdl/parsing/task/main.py @@ -114,6 +114,8 @@ def parse_command(task: WDL.Tree.Task, cmdtool: CommandToolBuilder) -> CommandTo #try native approach for p_class in p_classes: + sfmode = settings.ingest.SAFE_MODE + settings.ingest.SAFE_MODE = True parser = p_class(task, cmdtool) parser.parse() if parser.success: @@ -122,6 +124,7 @@ def parse_command(task: WDL.Tree.Task, cmdtool: CommandToolBuilder) -> CommandTo cmdtool._files_to_create = parser.files_to_create cmdtool._directories_to_create = parser.directories_to_create return cmdtool + settings.ingest.SAFE_MODE = sfmode # TODO error handling here raise RuntimeError diff --git a/janis_core/ingestion/wdl/parsing/task/requirements.py b/janis_core/ingestion/wdl/parsing/task/requirements.py index b1febaa05..05897f4e5 100644 --- a/janis_core/ingestion/wdl/parsing/task/requirements.py +++ b/janis_core/ingestion/wdl/parsing/task/requirements.py @@ -20,7 +20,7 @@ def do_parse(self) -> str: container = self.task.runtime.get("container", self.task.runtime.get("docker")) if isinstance(container, WDL.Expr.Get): # relevant input - print(str(container.expr)) + # print(str(container.expr)) inp = [i.expr for i in self.task.inputs if i.name == str(container.expr)] if len(inp) > 0: container = inp[0] @@ -53,7 +53,7 @@ def do_parse(self) -> Optional[int]: value = self.task.runtime.get("cpu") if value is None: return None - cpus = parse_expr(value, self.task, self.cmdtool) + cpus, success = parse_expr(value, self.task, self.cmdtool) # if cpus is not None and not isinstance(cpus, j.Selector) and not isinstance(cpus, (int, float)): if isinstance(cpus, str): cpus = int(cpus) @@ -71,7 +71,7 @@ def do_parse(self) -> Optional[float]: value = self.task.runtime.get("memory") if value is None: return None - s = parse_expr(value, self.task, self.cmdtool) + s, success = parse_expr(value, self.task, self.cmdtool) if s is None: return None elif isinstance(s, str): @@ -109,7 +109,7 @@ def do_parse(self) -> Optional[float]: value = self.task.runtime.get("disks") if value is None: return None - s = parse_expr(value, self.task, self.cmdtool) + s, success = parse_expr(value, self.task, self.cmdtool) if s is None: return None if isinstance(s, str): diff --git a/janis_core/ingestion/wdl/parsing/workflow/explore.py b/janis_core/ingestion/wdl/parsing/workflow/explore.py index b2c005b43..9e85f4de7 100644 --- a/janis_core/ingestion/wdl/parsing/workflow/explore.py +++ b/janis_core/ingestion/wdl/parsing/workflow/explore.py @@ -6,60 +6,88 @@ from dataclasses import dataclass from copy import deepcopy -def get_entities(workflow: WDL.Tree.Workflow) -> dict[str, list]: + +def get_entities_flat(workflow: WDL.Tree.Workflow) -> dict[str, list]: explorer = GraphExplorer(workflow) explorer.explore() - return explorer.entities + return { + 'inputs': explorer.inputs, + 'calls': explorer.calls, + 'outputs': explorer.outputs + } + @dataclass -class InvertedCall: - call: WDL.Tree.Call - dependencies: list[WDL.Tree.Conditional] +class CallContext: + entity: WDL.Tree.Call + scopedvars: list[Any] + conditions: list[WDL.Tree.Conditional] scatter: Optional[WDL.Tree.Scatter] +@dataclass +class OutputContext: + entity: WDL.Tree.Decl + scopedvars: list[Any] + class GraphExplorer: def __init__(self, workflow: WDL.Tree.Workflow): self.workflow = workflow - self.entities = defaultdict(list) + self.inputs: list[WDL.Tree.Decl] = [] + self.calls: list[CallContext] = [] + self.outputs: list[OutputContext] = [] + self.encountered_step = False def explore(self) -> None: + self.explore_inputs() + self.explore_calls() + self.explore_outputs() + + def explore_inputs(self) -> None: if self.workflow.inputs is not None: for inp in self.workflow.inputs: - self.entities['input'].append(inp) + self.inputs.append(inp) + + def explore_calls(self) -> None: if self.workflow.body is not None: - for node in self.workflow.body: - self.explore_node(node, deps=[]) - if self.workflow.outputs is not None: - for out in self.workflow.outputs: - self.entities['output'].append(out) - - def explore_node(self, node: Any, deps: list[WDL.Tree.Conditional], scatter: Optional[WDL.Tree.Scatter]=None) -> None: - if isinstance(node, list): - # pass deps and scatter down - this_deps = deepcopy(deps) - for item in node: - self.explore_node(item, this_deps, scatter=scatter) + self.explore_level(self.workflow.body, scopedvars=[], conditions=[]) - # ignoring dependencies for inputs - elif isinstance(node, WDL.Tree.Decl): - self.entities['input'].append(node) + def explore_outputs(self) -> None: + scopedvars = [] + if self.workflow.outputs is None: + return None + # tempvars + for node in self.workflow.body: + if isinstance(node, WDL.Tree.Decl): + scopedvars.append(node) + # actual outputs + for out in self.workflow.outputs: + flatout = OutputContext(out, scopedvars=scopedvars) + self.outputs.append(flatout) + + def explore_level( + self, + node: Any, + scopedvars: list[Any], + conditions: list[WDL.Tree.Conditional], + scatter: Optional[WDL.Tree.Scatter]=None + ) -> None: - elif isinstance(node, WDL.Tree.Call): - call = InvertedCall(call=node, dependencies=deps, scatter=scatter) - self.entities['call'].append(call) + if not isinstance(node, list): + node = [node] - elif isinstance(node, WDL.Tree.Scatter): - # pass deps down with new scatter - this_deps = deepcopy(deps) - self.explore_node(node.body, this_deps, scatter=node) - - elif isinstance(node, WDL.Tree.Conditional): - # pass scatter down with additional deps - this_deps = deepcopy(deps) - this_deps += [node] - self.explore_node(node.body, this_deps, scatter=scatter) - - # don't explore children - else: - return None - \ No newline at end of file + for item in node: + if isinstance(item, WDL.Tree.Decl): + scopedvars.append(item) + elif isinstance(item, WDL.Tree.Conditional): + this_vars = deepcopy(scopedvars) + this_conds = deepcopy(conditions) + this_conds.append(item) + self.explore_level(item.body, this_vars, this_conds, scatter) + elif isinstance(item, WDL.Tree.Scatter): + this_vars = deepcopy(scopedvars) + this_conds = deepcopy(conditions) + self.explore_level(item.body, this_vars, this_conds, item) + elif isinstance(item, WDL.Tree.Call): + self.encountered_step = True + call = CallContext(item, scopedvars, conditions, scatter) + self.calls.append(call) \ No newline at end of file diff --git a/janis_core/ingestion/wdl/parsing/workflow/main.py b/janis_core/ingestion/wdl/parsing/workflow/main.py index 98ae04be0..8612439d2 100644 --- a/janis_core/ingestion/wdl/parsing/workflow/main.py +++ b/janis_core/ingestion/wdl/parsing/workflow/main.py @@ -1,16 +1,26 @@ import WDL from typing import Any, Optional +from copy import deepcopy from janis_core import WorkflowBuilder, ScatterDescription from janis_core.workflow.workflow import InputNode, OutputNode, StepNode from janis_core.messages import log_message from janis_core.messages import ErrorCategory +from janis_core import ScatterMethod +from janis_core import ScatterDescription +from janis_core import AndOperator from ..types import parse_type from ..expressions import parse_expr +# from ..expressions import downstream_nodes +from ..expressions import expr_as_str from ..EntityParser import WorkflowParser -from .explore import InvertedCall +from .explore import CallContext +from .explore import OutputContext + + + class WorkflowInputParser(WorkflowParser): @@ -22,7 +32,7 @@ def __init__(self, wdl_wf: WDL.Tree.Workflow, janis_wf: WorkflowBuilder, wdl_inp def do_parse(self) -> InputNode: default = None if self.wdl_inp.expr: - default = parse_expr(self.wdl_inp.expr, self.wdl_wf, self.janis_wf) + default, success = parse_expr(self.wdl_inp.expr, self.wdl_wf, self.janis_wf) dtype = parse_type(self.wdl_inp.type, self.wdl_wf, uuid=self.janis_wf.uuid) selector = self.janis_wf.input( @@ -49,12 +59,14 @@ def fallback(self) -> InputNode: class WorkflowStepInputParser(WorkflowParser): - def __init__(self, wdl_wf: WDL.Tree.Workflow, janis_wf: WorkflowBuilder, wdl_src: Any) -> None: + def __init__(self, wdl_wf: WDL.Tree.Workflow, janis_wf: WorkflowBuilder, wdl_src: Any, flatcall: CallContext) -> None: super().__init__(wdl_wf, janis_wf) self.wdl_src = wdl_src + self.flatcall = flatcall def do_parse(self) -> Any: - return parse_expr(self.wdl_src, self.wdl_wf, self.janis_wf) + src, success = parse_expr(self.wdl_src, self.wdl_wf, self.janis_wf, self.flatcall) + return src def fallback(self) -> Any: raise NotImplementedError @@ -62,81 +74,138 @@ def fallback(self) -> Any: + +def get_dependent_inputs(node: Any, call: WDL.Tree.Call) -> set[str]: + tracer = StepScatterTracer(call) + tracer.trace(node, []) + return tracer.entities + +class StepScatterTracer: + def __init__(self, call: WDL.Tree.Call) -> None: + self.call = call + self.entities: set[str] = set() + + def trace(self, node: Any, idents: list[str]) -> None: + if isinstance(node, WDL.Tree.Scatter): + this_idents = deepcopy(idents) + this_idents += [node.variable] + for child in node.body: + if isinstance(child, WDL.Tree.Decl): + for ident in this_idents: + if self.references_ident(child, ident): + this_idents.append(child.name) + else: + self.trace(child, this_idents) + + elif isinstance(node, WDL.Tree.Conditional): + this_idents = deepcopy(idents) + if isinstance(child, WDL.Tree.Decl): + for ident in this_idents: + if self.references_ident(child, ident): + this_idents.append(child.name) + else: + self.trace(child, this_idents) + + # found correct call + elif isinstance(node, WDL.Tree.Call) and node.name == self.call.name: + for inpname, source in node.inputs.items(): + for ident in idents: + if self.references_ident(source, ident): + self.entities.add(inpname) + + else: + raise NotImplementedError + + def references_ident(self, query: Any, target: str) -> bool: + if isinstance(query, WDL.Expr.Ident) and str(query.name) == target: + return True + for child in query.children: + if self.references_ident(child, target): + return True + return False + + + class WorkflowStepModifierParser(WorkflowParser): - def __init__(self, wdl_wf: WDL.Tree.Workflow, janis_wf: WorkflowBuilder, inv_call: InvertedCall) -> None: + def __init__(self, wdl_wf: WDL.Tree.Workflow, janis_wf: WorkflowBuilder, flatcall: CallContext) -> None: super().__init__(wdl_wf, janis_wf) - self.inv_call = inv_call - self.call = inv_call.call - self.dependencies = inv_call.dependencies - self.scatter = inv_call.scatter + self.call = flatcall.entity + self.conditions = flatcall.conditions + self.scatter = flatcall.scatter self.jstep = self.janis_wf[self.call.name] def do_parse(self) -> None: - # what about scatter & when? self.scatter = self.parse_scatter() - self.when = self.parse_dependencies() - + self.when = self.parse_conditional() + def parse_scatter(self) -> Optional[ScatterDescription]: if not self.scatter: return None + method = self.parse_scatter_method() + fields = self.parse_scatter_fields() + return ScatterDescription(fields, method=method) - raise NotImplementedError - - foreach = parse_expr(self.call.expr, self.wdl_wf, self.janis_wf) - - # TODO this uuid should be the janis step uuid. - scar_var_type = parse_type(self.call.expr.type, self.wdl_wf, uuid=self.janis_wf.uuid) - if isinstance(scar_var_type, WDL.Type.Array): - scar_var_type = scar_var_type.item_type - - # when we unwrap each step-input to the workflow, we want to replace 'self.call.variable' with - # lambda el: <operation with self.call.variable substituted for {el}> - # if self.call.variable not in wf.input_nodes: - # wf.input(self.call.variable, scar_var_type) - for inner_call in self.call.body: - self.add_call_to_wf( - wf, inner_call, foreach=foreach, expr_alias=self.call.variable - ) - - def parse_dependencies(self) -> Any: - if not self.dependencies: + def parse_scatter_method(self) -> ScatterMethod: + assert self.scatter is not None + expr_str = expr_as_str(self.scatter.expr) + if 'cross(' in expr_str: + msg = f"Cross scatter detected: {{{expr_str}}}" + log_message(self.jstep.uuid, msg, category=ErrorCategory.PLUMBING) + return ScatterMethod.cross + return ScatterMethod.dot + + def parse_scatter_fields(self) -> list[str]: + assert self.scatter is not None + fields = get_dependent_inputs(self.scatter, self.call) + return list(fields) + + def parse_conditional(self) -> Any: + if len(self.conditions) == 0: return None - raise NotImplementedError - - # TODO add j.ForEachSelector() to parse_expr in this case if list? - for inner_call in self.call.body: - - # inner_call = call.body[0] - self.add_call_to_wf( - wf, - inner_call, - condition=self.translate_expr( - call.expr, input_selector_getter=selector_getter - ), - expr_alias=expr_alias, - foreach=foreach, - ) + if len(self.conditions) == 1: + res, success = parse_expr(self.conditions[0].expr, self.wdl_wf, self.janis_wf) + return res + else: + cond_res, success = parse_expr(self.conditions[0].expr, self.wdl_wf, self.janis_wf) + for cond in self.conditions[1:]: + res, success = parse_expr(cond.expr, self.wdl_wf, self.janis_wf) + cond_res = AndOperator(cond_res, res) + return cond_res def fallback(self) -> None: raise NotImplementedError + class WorkflowOutputParser(WorkflowParser): - def __init__(self, wdl_wf: WDL.Tree.Workflow, janis_wf: WorkflowBuilder, wdl_out: WDL.Tree.Decl) -> None: + def __init__(self, wdl_wf: WDL.Tree.Workflow, janis_wf: WorkflowBuilder, flatout: OutputContext) -> None: super().__init__(wdl_wf, janis_wf) - self.wdl_out = wdl_out + self.flatout = flatout def do_parse(self) -> OutputNode: - if self.wdl_out.expr is None: - raise Exception(f"Output {self.wdl_out.name} has no expression") + wdl_out = self.flatout.entity + if wdl_out.expr is None: + raise Exception(f"Output {wdl_out.name} has no expression") # TODO UPDATE EXPRESSION PARSING FOR WORKFLOW SCOPE - dtype = parse_type(self.wdl_out.type, self.wdl_wf, uuid=self.janis_wf.uuid) - sel = parse_expr(self.wdl_out.expr, self.wdl_wf, self.janis_wf) - return self.janis_wf.output(self.wdl_out.name, dtype, sel) + dtype = parse_type(wdl_out.type, self.wdl_wf, uuid=self.janis_wf.uuid) + sel, success = parse_expr(wdl_out.expr, self.wdl_wf, self.janis_wf, self.flatout) + + # lmao janis doens't allow this but whatever + identifier = wdl_out.name + otp = OutputNode( + self, + identifier=identifier, + datatype=dtype, + source=sel, + skip_typecheck=True + ) + self.janis_wf.nodes[identifier] = otp + self.janis_wf.output_nodes[identifier] = otp + return otp def fallback(self) -> OutputNode: raise NotImplementedError diff --git a/janis_core/operators/operator.py b/janis_core/operators/operator.py index c886e8743..d8651922d 100644 --- a/janis_core/operators/operator.py +++ b/janis_core/operators/operator.py @@ -363,6 +363,10 @@ def friendly_signature(): @staticmethod def wdl_symbol(): return "" + + @staticmethod + def nextflow_symbol(): + return "" @staticmethod def cwl_symbol(): diff --git a/janis_core/operators/standard.py b/janis_core/operators/standard.py index 9bbd16630..5d100573d 100644 --- a/janis_core/operators/standard.py +++ b/janis_core/operators/standard.py @@ -532,7 +532,7 @@ def argtypes(self): return [Array(Array(AnyType))] def returntype(self): - return Array(self.args[0].returntype().subtype().subtype()) + return Array(self.args[0].returntype()) def __str__(self): return f"flatten({self.args[0]})" diff --git a/janis_core/tests/test_conditionals.py b/janis_core/tests/test_conditionals.py index fd04237ed..8d1fab143 100644 --- a/janis_core/tests/test_conditionals.py +++ b/janis_core/tests/test_conditionals.py @@ -6,6 +6,10 @@ from janis_core.redefinitions.tools import Echo, Cat from janis_core.translations.common import to_builders +def _strip_comments(text: str) -> str: + lines = text.split("\n") + return "\n".join([l for l in lines if not l.strip().startswith("#")]) + class TestConditionals(unittest.TestCase): def test_1(self): @@ -23,6 +27,7 @@ def test_1(self): "wdl" # to_disk=True, export_path="~/Desktop/tmp/{name}", validate=True ) + @unittest.skip('TODO: standarise WDL conditional step syntax via preprocessing') def test_switch(self): w = WorkflowBuilder("switchTest") @@ -30,6 +35,7 @@ def test_switch(self): w.input("inp1", str, value="Hello") w.input("inp2", str, value="Hi there") + # TODO: preprocessing standarise conditionals w.conditional( "echoswitch", [ @@ -88,6 +94,7 @@ def test_switch(self): }""" echoswitch = wdltool.get_string() + echoswitch = _strip_comments(echoswitch) print(echoswitch) self.assertEqual(expected, echoswitch) diff --git a/janis_core/tests/test_ingestion_cwl.py b/janis_core/tests/test_ingestion_cwl.py index 86e46b894..1cef9dc17 100644 --- a/janis_core/tests/test_ingestion_cwl.py +++ b/janis_core/tests/test_ingestion_cwl.py @@ -650,8 +650,6 @@ def test_step_input(self): msgs = [x.message for x in lines] self.assertIn('bambai_pair2: Could not parse datatype from javascript expression. Treated as generic File with secondaries.', msgs) - self.assertIn("error parsing data source for 'text'. Returned None as fallback.", msgs) - self.assertIn("error parsing data source for 'target_filename'. Returned None as fallback.", msgs) self.assertIn('out3: Could not parse datatype from javascript expression. Treated as generic File with secondaries.', msgs) diff --git a/janis_core/tests/test_ingestion_galaxy.py b/janis_core/tests/test_ingestion_galaxy.py index 650ac3a38..7b6f81a31 100644 --- a/janis_core/tests/test_ingestion_galaxy.py +++ b/janis_core/tests/test_ingestion_galaxy.py @@ -984,7 +984,7 @@ def test_to_janis_tool_input(self) -> None: # check attributes are correct self.assertEquals(jinp1.tag, 'file_input') self.assertEquals(jinp1.prefix, None) - self.assertEquals(jinp1.separate_value_from_prefix, True) + self.assertEquals(jinp1.separate_value_from_prefix, None) self.assertIsInstance(jinp1.input_type, File) self.assertEquals(jinp2.tag, 'noheader') diff --git a/janis_core/tests/test_ingestion_wdl.py b/janis_core/tests/test_ingestion_wdl.py index d96c5b7e9..ccc120ea5 100644 --- a/janis_core/tests/test_ingestion_wdl.py +++ b/janis_core/tests/test_ingestion_wdl.py @@ -1,7 +1,10 @@ + import os import unittest from janis_core import CommandToolBuilder, WorkflowBuilder, InputSelector, StringFormatter, FilterNullOperator +from janis_core import ScatterDescription, ScatterMethod +from janis_core import IsDefined, NotOperator, Operator, FirstOperator from janis_core.ingestion.wdl.parsing import parse_task from janis_core.ingestion.wdl.parsing import parse_container_requirement from janis_core.ingestion.wdl.parsing import parse_cpus_requirement @@ -22,9 +25,32 @@ from janis_core import settings from janis_core.messages import configure_logging -def _do_setup() -> None: +def _do_setup_unsafe() -> None: configure_logging() settings.ingest.SAFE_MODE = False + settings.datatypes.ALLOW_UNPARSEABLE_DATATYPES = False + settings.graph.ALLOW_INCOMPATIBLE_TYPES = False + settings.graph.ALLOW_INCORRECT_NUMBER_OF_SOURCES = False + settings.graph.ALLOW_NON_ARRAY_SCATTER_INPUT = False + settings.graph.ALLOW_UNKNOWN_SCATTER_FIELDS = False + settings.graph.ALLOW_UNKNOWN_SOURCE = False + settings.validation.STRICT_IDENTIFIERS = True + settings.validation.VALIDATE_STRINGFORMATTERS = True + settings.general.ALLOW_EMPTY_CONTAINER = False + +def _do_setup_safe() -> None: + configure_logging() + settings.ingest.SAFE_MODE = True + settings.datatypes.ALLOW_UNPARSEABLE_DATATYPES = True + settings.graph.ALLOW_INCOMPATIBLE_TYPES = True + settings.graph.ALLOW_INCORRECT_NUMBER_OF_SOURCES = True + settings.graph.ALLOW_NON_ARRAY_SCATTER_INPUT = True + settings.graph.ALLOW_UNKNOWN_SCATTER_FIELDS = True + settings.graph.ALLOW_UNKNOWN_SOURCE = True + settings.validation.STRICT_IDENTIFIERS = False + settings.validation.VALIDATE_STRINGFORMATTERS = False + settings.general.ALLOW_EMPTY_CONTAINER = True + def _simple_lines(text: str) -> list[str]: if not isinstance(text, str): @@ -46,8 +72,7 @@ def _simple_lines(text: str) -> list[str]: class TestBasicFunctionality(unittest.TestCase): def setUp(self) -> None: - _do_setup() - settings.ingest.SAFE_MODE = True + _do_setup_unsafe() def test_tool_rename(self) -> None: filepath = f'{WDL_TESTDATA_PATH}/basic/rename_tool.wdl' @@ -101,12 +126,14 @@ def test_workflow_atac(self) -> None: self.assertEqual(len(wf.input_nodes), 17) self.assertEqual(len(wf.step_nodes), 13) self.assertEqual(len(wf.output_nodes), 4) + + class TestRequirements(unittest.TestCase): def setUp(self) -> None: - _do_setup() + _do_setup_unsafe() self.mocktool = CommandToolBuilder( tool='testing', version='DEV', @@ -156,9 +183,9 @@ def test_mem2(self) -> None: task = WDL.load(filepath).tasks[0] actual = parse_memory_requirement(task, self.mocktool) self.assertIsInstance(actual, StringFormatter) - self.assertEqual(actual._format, '{JANIS_WDL_TOKEN_1}G') + self.assertEqual(actual._format, '{TOKEN1}G') inner = list(actual.kwargs.values())[0] - self.assertIsInstance(inner, FilterNullOperator) + self.assertIsInstance(inner, FirstOperator) inner1 = inner.args[0][0] self.assertIsInstance(inner1, InputSelector) self.assertEqual(inner1.input_to_select, 'memoryGb') @@ -190,19 +217,19 @@ def test_disk2(self) -> None: class TestDatatypes(unittest.TestCase): def setUp(self) -> None: - _do_setup() + _do_setup_unsafe() class TestExpressions(unittest.TestCase): def setUp(self) -> None: - _do_setup() + _do_setup_unsafe() class TestLexer(unittest.TestCase): def setUp(self) -> None: - _do_setup() + _do_setup_unsafe() @@ -213,9 +240,10 @@ def setUp(self) -> None: class TestNativeSimpleCommandParser(unittest.TestCase): def setUp(self) -> None: - _do_setup() + _do_setup_unsafe() settings.ingest.wdl.COMMAND_PARSER = 'native_simple' + @unittest.skip('TODO implement') def test_rename_tool(self) -> None: filepath = f'{WDL_TESTDATA_PATH}/basic/rename_tool.wdl' d = WDL.load(filepath) @@ -232,6 +260,7 @@ def test_rename_tool(self) -> None: self.assertIsInstance(cmdtool._inputs[1].input_type, String) self.assertEqual(cmdtool._inputs[1].position, 2) + @unittest.skip('TODO implement') def test_io_tool(self) -> None: filepath = f'{WDL_TESTDATA_PATH}/basic/io_tool.wdl' d = WDL.load(filepath) @@ -299,12 +328,14 @@ def test_io_tool(self) -> None: ### outputs ### tout = cmdtool._outputs[0] + @unittest.skip('TODO implement') def test_fastqc_tool(self) -> None: filepath = f'{WDL_TESTDATA_PATH}/fastqc.wdl' d = WDL.load(filepath) task = d.tasks[0] parse_task(task) + @unittest.skip('TODO implement') def test_bwa_mem(self) -> None: filepath = f'{WDL_TESTDATA_PATH}/bwa_mem.wdl' d = WDL.load(filepath) @@ -315,9 +346,10 @@ def test_bwa_mem(self) -> None: class TestNativeArgumentsCommandParser(unittest.TestCase): def setUp(self) -> None: - _do_setup() + _do_setup_unsafe() settings.ingest.wdl.COMMAND_PARSER = 'native_arguments' + @unittest.skip('TODO implement') def test_rename_tool(self) -> None: filepath = f'{WDL_TESTDATA_PATH}/basic/rename_tool.wdl' d = WDL.load(filepath) @@ -333,6 +365,7 @@ def test_rename_tool(self) -> None: self.assertEqual(cmdtool._inputs[1].id(), 'targetFilename') self.assertIsInstance(cmdtool._inputs[1].input_type, String) + @unittest.skip('TODO implement') def test_io_tool(self) -> None: filepath = f'{WDL_TESTDATA_PATH}/basic/io_tool.wdl' d = WDL.load(filepath) @@ -400,12 +433,14 @@ def test_io_tool(self) -> None: ### outputs ### tout = cmdtool._outputs[0] + @unittest.skip('TODO implement') def test_fastqc_tool(self) -> None: filepath = f'{WDL_TESTDATA_PATH}/fastqc.wdl' d = WDL.load(filepath) task = d.tasks[0] parse_task(task) + @unittest.skip('TODO implement') def test_bwa_mem(self) -> None: filepath = f'{WDL_TESTDATA_PATH}/bwa_mem.wdl' d = WDL.load(filepath) @@ -418,7 +453,7 @@ def test_bwa_mem(self) -> None: class TestShellCommandParser(unittest.TestCase): def setUp(self) -> None: - _do_setup() + _do_setup_unsafe() settings.ingest.wdl.COMMAND_PARSER = 'shell' def test_rename_tool(self) -> None: @@ -483,17 +518,117 @@ def test_bwa_mem(self) -> None: parse_task(task) - class TestPlumbing(unittest.TestCase): def setUp(self) -> None: - _do_setup() + _do_setup_unsafe() + + def test_step_inputs1(self) -> None: + settings.ingest.wdl.COMMAND_PARSER = 'shell' + filepath = f'{WDL_TESTDATA_PATH}/Reads2Map/subworkflows/create_alignment_from_families_files.wdl' + wf = ingest(filepath, 'wdl') + self.assertIsInstance(wf, WorkflowBuilder) + actual_steps = list(wf.step_nodes.keys()) + expected_steps = [ + 'SepareChunksFastqString', + 'RunBwaAlignment', + 'MergeBams', + ] + self.assertEqual(actual_steps, expected_steps) + + # FIRST STEP + step = wf.step_nodes['SepareChunksFastqString'] + self.assertIsNone(step.scatter) + expected_sources = { + 'families_info': 'inputs.families_info', + 'chunk_size': 'inputs.chunk_size', + } + for tinput_id, src in step.sources.items(): + actual_src = str(src.source_map[0].source) + expected_src = expected_sources[tinput_id] + self.assertEqual(actual_src, expected_src) + + # SECOND STEP + step = wf.step_nodes['RunBwaAlignment'] + expected_sources = { + 'sampleName': 'SepareChunksFastqString.chunks[1]', + 'reads': 'SepareChunksFastqString.chunks[0]', + 'libraries': 'SepareChunksFastqString.chunks[2]', + 'references': 'inputs.references', + 'max_cores': 'inputs.max_cores', + 'rm_dupli': 'inputs.rm_dupli', + } + for tinput_id, src in step.sources.items(): + actual_src = str(src.source_map[0].source) + expected_src = expected_sources[tinput_id] + self.assertEqual(actual_src, expected_src) + + # THIRD STEP + step = wf.step_nodes['MergeBams'] + self.assertIsNone(step.scatter) + expected_sources = { + 'bam_files': 'flatten(RunBwaAlignment.bam)', + } + for tinput_id, src in step.sources.items(): + actual_src = str(src.source_map[0].source) + expected_src = expected_sources[tinput_id] + self.assertEqual(actual_src, expected_src) def test_conditional_deps(self) -> None: - raise NotImplementedError + settings.ingest.wdl.COMMAND_PARSER = 'shell' + filepath = f'{WDL_TESTDATA_PATH}/Reads2Map/subworkflows/create_alignment_from_read_simulations.wdl' + wf = ingest(filepath, 'wdl') + self.assertIsInstance(wf, WorkflowBuilder) + + cond1 = '!(isdefined(inputs.sequencing))' + cond2 = 'isdefined(inputs.sequencing)' + cond3 = '((inputs.sequencing == WGS) or (inputs.sequencing == exome))' + cond4 = '((inputs.sequencing == sdRAD) or (inputs.sequencing == ddRAD))' + + expected_conditions = { + 'GenerateAlternativeGenome': cond1, + 'CreatePedigreeSimulatorInputs': cond1, + 'Vcf2PedigreeSimulator': cond2, + 'RunPedigreeSimulator': None, + 'ConvertPedigreeSimulationToVcf': None, + 'GenerateSampleNames': None, + 'SimuscopProfile': cond3, + 'SimuscopSimulation': cond3, + 'RADinitioSimulation': cond4, + 'SepareChunksFastq': None, + 'RunBwaAlignmentSimu': None, + 'MergeBams': None, + } + + for stepid, step in wf.step_nodes.items(): + expected = expected_conditions[stepid] + if expected is not None: + self.assertIsInstance(step.when, Operator) + self.assertEqual(str(step.when), expected) + else: + self.assertIsNone(step.when) def test_scatter_deps(self) -> None: - raise NotImplementedError + settings.ingest.wdl.COMMAND_PARSER = 'shell' + filepath = f'{WDL_TESTDATA_PATH}/Reads2Map/subworkflows/create_alignment_from_families_files.wdl' + wf = ingest(filepath, 'wdl') + self.assertIsInstance(wf, WorkflowBuilder) + + step = wf.step_nodes['RunBwaAlignment'] + self.assertIsInstance(step.scatter, ScatterDescription) + self.assertEqual(step.scatter.method, ScatterMethod.dot) + self.assertSetEqual(set(step.scatter.fields), set(['sampleName', 'reads', 'libraries'])) def test_nested_deps(self) -> None: - raise NotImplementedError \ No newline at end of file + settings.ingest.wdl.COMMAND_PARSER = 'shell' + filepath = f'{WDL_TESTDATA_PATH}/Reads2Map/subworkflows/create_alignment_from_read_simulations.wdl' + wf = ingest(filepath, 'wdl') + self.assertIsInstance(wf, WorkflowBuilder) + + step = wf.step_nodes['SimuscopSimulation'] + self.assertIsInstance(step.scatter, ScatterDescription) + self.assertEqual(step.scatter.method, ScatterMethod.dot) + self.assertSetEqual(set(step.scatter.fields), set(['sampleName'])) + expected = '((inputs.sequencing == WGS) or (inputs.sequencing == exome))' + self.assertIsInstance(step.when, Operator) + self.assertEqual(str(step.when), expected) \ No newline at end of file diff --git a/janis_core/tests/test_janis_translate.py b/janis_core/tests/test_janis_translate.py index eac0a2e75..da8f79fdc 100644 --- a/janis_core/tests/test_janis_translate.py +++ b/janis_core/tests/test_janis_translate.py @@ -100,6 +100,14 @@ def _get_wdl_task_command_lines(task_text: str) -> list[str]: return out +def _get_nf_subworkflow_input_lines(text: str) -> list[str]: + pattern = r'take:([\s\S]*)main:' + match = list(re.finditer(pattern, text))[0] + lines = match.group(1).split('\n') + lines = [ln.strip() for ln in lines] + lines = [ln for ln in lines if ln != ''] + return lines + def _get_nf_process_input_lines(process_text: str) -> list[str]: """Returns the lines of the process script""" out: list[str] = [] @@ -140,7 +148,7 @@ def _reset_global_settings() -> None: configure_logging() # reset the messages logfile nextflow.task_inputs.clear() nextflow.params.clear() - settings.ingest.SAFE_MODE = False + settings.ingest.SAFE_MODE = True settings.ingest.galaxy.GEN_IMAGES = False settings.ingest.galaxy.DISABLE_CONTAINER_CACHE = False settings.ingest.cwl.INGEST_JAVASCRIPT_EXPRESSIONS = True @@ -233,15 +241,19 @@ def test_codetool_translate_nextflow(self) -> None: def test_workflow_translate_nextflow(self) -> None: AssemblyTestWF().translate('nextflow', export_path='./translated') + @unittest.skip('TODO: update JanisTranslator to new interface') def test_str_tool(self): BwaAligner().translate("janis") + @unittest.skip('TODO: update JanisTranslator to new interface') def test_str_python_tool(self): GenerateVardictHeaderLines().translate("janis") + @unittest.skip('TODO: update JanisTranslator to new interface') def test_command_tool(self): Cat().translate("janis") + @unittest.skip('TODO: update JanisTranslator to new interface') def test_str_big_workflow(self): WGSGermlineMultiCallers().translate("janis") @@ -539,43 +551,43 @@ class TestMessageLoggingCWL(unittest.TestCase): def setUp(self) -> None: _reset_global_settings() + @unittest.skip('TODO implement') def test_fallbacks(self) -> None: raise NotImplementedError def test_datatypes(self) -> None: filepath = f'{CWL_TESTDATA_PATH}/tools/expressions/outputs.cwl' mainstr = _run(filepath, 'cwl', 'nextflow') + msgs_header = mainstr.split('nextflow.enable.dsl=2')[0] print(mainstr) - # ensure heading - self.assertIn('// WARNING: DATATYPES', mainstr) - # ensure messages - self.assertIn('// out2: Could not parse datatype from javascript expression. Treated as generic File with secondaries.', mainstr) + level, cat = ErrorCategory.DATATYPES.value + msg = 'out2: Could not parse datatype from javascript expression. Treated as generic File with secondaries.' + self.assertIn(f'// [{level}][{cat}] {msg}', msgs_header) + @unittest.skip('TODO implement') def test_plumbing(self) -> None: raise NotImplementedError + @unittest.skip('TODO implement') def test_metadata(self) -> None: # includes container errors raise NotImplementedError + @unittest.skip('TODO implement') def test_experimental(self) -> None: raise NotImplementedError def test_scripting(self) -> None: - # nextflow used. can assume consistent for other specs. - ## TODO update - # UNTRANSLATED EXPRESSIONS - # __TOKEN1__ = 'hello' - filepath = f'{CWL_TESTDATA_PATH}/tools/expressions/inputs_arguments.cwl' mainstr = _run(filepath, 'cwl', 'nextflow') + msgs_header = mainstr.split('nextflow.enable.dsl=2')[0] print(mainstr) - + # ensure heading - self.assertIn('// ERROR: UNTRANSLATED EXPRESSIONS', mainstr) + self.assertIn(f'// {settings.messages.SCRIPTING_BANNER}', msgs_header) # ignore tokens which no longer appear in file - self.assertNotIn('__TOKEN1__ = "$([inputs.runtime_cpu, 16, 1].filter(function (inner) { return inner != null })[0])"', mainstr) + self.assertNotIn('__TOKEN1__', mainstr) # ensure tokens which are in file self.assertIn('__TOKEN2__ = "${ var r = []; for (var i = 10; i >= 1; i--) { r.push(i); } return r;}"', mainstr) self.assertIn('-C __TOKEN2__', mainstr) @@ -584,8 +596,6 @@ def test_scripting(self) -> None: mainstr = _run(filepath, 'cwl', 'nextflow') print(mainstr) - # ensure heading - self.assertIn('// ERROR: UNTRANSLATED EXPRESSIONS', mainstr) # ensure tokens which are in file self.assertIn('__TOKEN1__ = "$(self[0].contents)"', mainstr) self.assertIn('path "__TOKEN1__", emit: out4', mainstr) @@ -982,43 +992,54 @@ def setUp(self) -> None: def test_skeleton_nextflow(self) -> None: settings.translate.MODE = 'skeleton' filepath = f'{CWL_TESTDATA_PATH}/workflows/subworkflow_test/main.cwl' - _, _, sub_tasks = _run(filepath, srcfmt='cwl', destfmt='nextflow') - expected_inputs_count = { - 'modules/basic.nf': 3, - 'modules/mandatory_input_types.nf': 6, - 'modules/optional_input_types.nf': 5, - 'subworkflows/subworkflow.nf': 6, + _, _, subwfs, processes = _run(filepath, srcfmt='cwl', destfmt='nextflow') + expected_task_input_count = { + 'basic.nf': 3, + 'mandatory_input_types.nf': 6, + 'optional_input_types.nf': 5, + } + expected_subwf_input_count = { + 'subworkflow.nf': 6, } expected_script_lengths = { - 'modules/basic.nf': 6, - 'modules/mandatory_input_types.nf': 8, - 'modules/optional_input_types.nf': 7, + 'basic.nf': 5, + 'mandatory_input_types.nf': 7, + 'optional_input_types.nf': 6, } - for filepath, filecontents in sub_tasks: - if _is_nf_process(filecontents): - print(filecontents) - actual_input_lines = _get_nf_process_input_lines(filecontents) - actual_script_lines = _get_nf_process_script_lines(filecontents) - self.assertEqual(len(actual_input_lines), expected_inputs_count[filepath]) - self.assertEqual(len(actual_script_lines), expected_script_lengths[filepath]) + for filepath, filecontents in subwfs: + actual_lines = _get_nf_subworkflow_input_lines(filecontents) + expected = expected_subwf_input_count[filepath] + self.assertEqual(len(actual_lines), expected) + for filepath, filecontents in processes: + print(filecontents) + actual_input_lines = _get_nf_process_input_lines(filecontents) + actual_script_lines = _get_nf_process_script_lines(filecontents) + self.assertEqual(len(actual_input_lines), expected_task_input_count[filepath]) + self.assertEqual(len(actual_script_lines), expected_script_lengths[filepath]) def test_regular_nextflow(self) -> None: settings.translate.MODE = 'regular' filepath = f'{CWL_TESTDATA_PATH}/workflows/subworkflow_test/main.cwl' - maintask, _, sub_tasks = _run(filepath, srcfmt='cwl', destfmt='nextflow') + maintask, _, subwfs, processes = _run(filepath, srcfmt='cwl', destfmt='nextflow') print(maintask) expected_inputs_count = { - 'modules/basic.nf': 3, - 'modules/mandatory_input_types.nf': 6, - 'modules/optional_input_types.nf': 5, - 'subworkflows/subworkflow.nf': 6, + 'basic.nf': 3, + 'mandatory_input_types.nf': 6, + 'optional_input_types.nf': 5, + } + expected_subwf_input_count = { + 'subworkflow.nf': 6, } expected_script_lengths = { - 'modules/basic.nf': 7, - 'modules/mandatory_input_types.nf': 8, - 'modules/optional_input_types.nf': 7, + 'basic.nf': 6, + 'mandatory_input_types.nf': 7, + 'optional_input_types.nf': 6 } - for filepath, filecontents in sub_tasks: + for filepath, filecontents in subwfs: + actual_lines = _get_nf_subworkflow_input_lines(filecontents) + expected = expected_subwf_input_count[filepath] + self.assertEqual(len(actual_lines), expected) + for filepath, filecontents in processes: if _is_nf_process(filecontents): print(filecontents) actual_input_lines = _get_nf_process_input_lines(filecontents) @@ -1029,17 +1050,24 @@ def test_regular_nextflow(self) -> None: def test_extended_nextflow(self) -> None: settings.translate.MODE = 'extended' filepath = f'{CWL_TESTDATA_PATH}/workflows/subworkflow_test/main.cwl' - _, _, sub_tasks = _run(filepath, srcfmt='cwl', destfmt='nextflow') + _, _, subwfs, sub_tasks = _run(filepath, srcfmt='cwl', destfmt='nextflow') expected_inputs_count = { - 'modules/basic.nf': 7, - 'modules/mandatory_input_types.nf': 6, - 'modules/optional_input_types.nf': 6, + 'basic.nf': 7, + 'mandatory_input_types.nf': 6, + 'optional_input_types.nf': 6, + } + expected_subwf_input_count = { + 'subworkflow.nf': 6, } expected_script_lengths = { - 'modules/basic.nf': 10, - 'modules/mandatory_input_types.nf': 8, - 'modules/optional_input_types.nf': 8, + 'basic.nf': 9, + 'mandatory_input_types.nf': 7, + 'optional_input_types.nf': 7, } + for filepath, filecontents in subwfs: + actual_lines = _get_nf_subworkflow_input_lines(filecontents) + expected = expected_subwf_input_count[filepath] + self.assertEqual(len(actual_lines), expected) for filepath, filecontents in sub_tasks: if _is_nf_process(filecontents): print(filecontents) @@ -1082,7 +1110,7 @@ def test_skeleton_wdl(self) -> None: # TODO settings.translate.MODE = 'skeleton' filepath = f'{CWL_TESTDATA_PATH}/workflows/subworkflow_test/main.cwl' - _, _, sub_tasks = _run(filepath, srcfmt='cwl', destfmt='wdl') + _, _, subwfs, sub_tasks = _run(filepath, srcfmt='cwl', destfmt='wdl') for filepath, filecontents in sub_tasks: if _is_wdl_task(filecontents): command_lines = _get_wdl_task_command_lines(filecontents) @@ -1121,7 +1149,7 @@ def test_regular_cwl1(self) -> None: def test_regular_cwl2(self) -> None: settings.translate.MODE = 'regular' filepath = f'{CWL_TESTDATA_PATH}/workflows/m-unlock/workflows/ngtax.cwl' - _, _, sub_tasks = _run(filepath, srcfmt='cwl', destfmt='cwl') + _, _, subwfs, sub_tasks = _run(filepath, srcfmt='cwl', destfmt='cwl') expected_num_clt_inputs = { 'tools/fastqc_v0_1_0.cwl': 2, 'tools/files_to_folder_v0_1_0.cwl': 2, @@ -1161,7 +1189,7 @@ def test_regular_cwl2(self) -> None: def test_regular_wdl(self) -> None: settings.translate.MODE = 'regular' filepath = f'{CWL_TESTDATA_PATH}/workflows/subworkflow_test/main.cwl' - _, _, sub_tasks = _run(filepath, srcfmt='cwl', destfmt='wdl') + _, _, subwfs, sub_tasks = _run(filepath, srcfmt='cwl', destfmt='wdl') expected_num_clt_inputs = { 'align_and_tag_v0_1_0': 3, 'index_bam_v0_1_0': 1, @@ -1185,7 +1213,7 @@ def test_regular_wdl(self) -> None: def test_extended_cwl(self) -> None: settings.translate.MODE = 'extended' filepath = f'{CWL_TESTDATA_PATH}/workflows/subworkflow_test/main.cwl' - _, _, sub_tasks = _run(filepath, srcfmt='cwl', destfmt='cwl') + _, _, subwfs, sub_tasks = _run(filepath, srcfmt='cwl', destfmt='cwl') expected_num_clt_inputs = { 'tools/basic_v0_1_0.cwl': 7, 'tools/mandatory_input_types_v0_1_0.cwl': 6, @@ -1206,7 +1234,7 @@ def test_extended_cwl(self) -> None: def test_extended_wdl(self) -> None: settings.translate.MODE = 'extended' filepath = f'{CWL_TESTDATA_PATH}/workflows/subworkflow_test/main.cwl' - _, _, sub_tasks = _run(filepath, srcfmt='cwl', destfmt='wdl') + _, _, subwfs, sub_tasks = _run(filepath, srcfmt='cwl', destfmt='wdl') expected_num_clt_inputs = { 'align_and_tag_v0_1_0': 3, 'index_bam_v0_1_0': 1, @@ -1518,37 +1546,37 @@ def setUp(self) -> None: self.dest = 'cwl' _reset_global_settings() - @unittest.skip('need injest fixes') + @unittest.skip('TODO: update for wdl ingest changes') def test_tool_bwa(self): filepath = f'{WDL_TESTDATA_PATH}/bwa.wdl' mainstr = _run(filepath, self.src, self.dest) print(mainstr) - @unittest.skip('need injest fixes') + @unittest.skip('TODO: update for wdl ingest changes') def test_wf_somatic(self): filepath = f'{WDL_TESTDATA_PATH}/somatic_wf.wdl' mainstr = _run(filepath, self.src, self.dest) print(mainstr) - @unittest.skip('need injest fixes') + @unittest.skip('TODO: update for wdl ingest changes') def test_wf_multisample_jointgt_gatk4_wf(self): filepath = f'{WDL_TESTDATA_PATH}/Multisample_jointgt_GATK4.wdl' mainstr = _run(filepath, self.src, self.dest) print(mainstr) - @unittest.skip('need injest fixes') + @unittest.skip('TODO: update for wdl ingest changes') def test_wf_reads2map_preprocessing(self): filepath = f'{WDL_TESTDATA_PATH}/Reads2Map/pipelines/PreprocessingReads/PreprocessingReads.wdl' mainstr = _run(filepath, self.src, self.dest) print(mainstr) - @unittest.skip('need injest fixes') + @unittest.skip('TODO: update for wdl ingest changes') def test_wf_reads2map_reads2map(self): filepath = f'{WDL_TESTDATA_PATH}/Reads2Map/pipelines/EmpiricalReads2Map/EmpiricalReads2Map.wdl' mainstr = _run(filepath, self.src, self.dest) print(mainstr) - @unittest.skip('need injest fixes') + @unittest.skip('TODO: update for wdl ingest changes') def test_wf_reads2map_snp_calling(self): filepath = f'{WDL_TESTDATA_PATH}/Reads2Map/pipelines/EmpiricalSNPCalling/EmpiricalSNPCalling.wdl' mainstr = _run(filepath, self.src, self.dest) @@ -1565,31 +1593,37 @@ def setUp(self) -> None: _reset_global_settings() settings.ingest.SAFE_MODE = True + @unittest.skip('TODO: update for wdl ingest changes') def test_wf_atac(self): filepath = f'{WDL_TESTDATA_PATH}/ATAC.wdl' mainstr = _run(filepath, self.src, self.dest) print(mainstr) + @unittest.skip('TODO: update for wdl ingest changes') def test_wf_mutect2(self): filepath = f'{WDL_TESTDATA_PATH}/mutect2.wdl' mainstr = _run(filepath, self.src, self.dest) print(mainstr) + @unittest.skip('TODO: update for wdl ingest changes') def test_wf_multisample_jointgt_gatk4(self): filepath = f'{WDL_TESTDATA_PATH}/Multisample_jointgt_GATK4.wdl' mainstr = _run(filepath, self.src, self.dest) print(mainstr) + @unittest.skip('TODO: update for wdl ingest changes') def test_wf_reads2map_preprocessing(self): filepath = f'{WDL_TESTDATA_PATH}/Reads2Map/pipelines/PreprocessingReads/PreprocessingReads.wdl' mainstr = _run(filepath, self.src, self.dest) print(mainstr) + @unittest.skip('TODO: update for wdl ingest changes') def test_wf_reads2map_reads2map(self): filepath = f'{WDL_TESTDATA_PATH}/Reads2Map/pipelines/EmpiricalReads2Map/EmpiricalReads2Map.wdl' mainstr = _run(filepath, self.src, self.dest) print(mainstr) + @unittest.skip('TODO: update for wdl ingest changes') def test_wf_reads2map_snp_calling(self): filepath = f'{WDL_TESTDATA_PATH}/Reads2Map/pipelines/EmpiricalSNPCalling/EmpiricalSNPCalling.wdl' mainstr = _run(filepath, self.src, self.dest) diff --git a/janis_core/tests/test_python_tool.py b/janis_core/tests/test_python_tool.py index fe6c84eec..8db20ea97 100644 --- a/janis_core/tests/test_python_tool.py +++ b/janis_core/tests/test_python_tool.py @@ -3,11 +3,9 @@ from janis_core.translations import CwlTranslator from janis_core.types import String, Boolean, Float, Int, File, Array, Filename - from janis_core.code.pythontool import PythonTool - from janis_core.tool.tool import TOutput, TInput - +from janis_core.translations.common import to_builders class PythonEchoTool(PythonTool): @staticmethod @@ -72,8 +70,13 @@ def test_whole(self): # self.assertEqual(wdl, out) def test_whole2(self): - test = CwlTranslator.translate_code_tool_internal(PythonEchoTool()) - print(test) + codetool = PythonEchoTool() + codetool = to_builders(codetool) + translator = CwlTranslator() + translator.translate_code_tool_internal(codetool) + self.assertEqual(len(translator.tools), 1) + cwltool = translator.tools[0][1] + print(cwltool) # def test_build_code_block(self): # script = PythonEchoTool().prepared_script() diff --git a/janis_core/tests/test_translation_cwl.py b/janis_core/tests/test_translation_cwl.py index e9ebec774..4b64642af 100644 --- a/janis_core/tests/test_translation_cwl.py +++ b/janis_core/tests/test_translation_cwl.py @@ -47,6 +47,11 @@ from . import mock +def _strip_comments(text: str) -> str: + lines = text.split("\n") + return "\n".join([l for l in lines if not l.strip().startswith("#")]) + + def reset_global_settings() -> None: settings.validation.STRICT_IDENTIFIERS = True settings.translate.MODE = 'regular' @@ -637,7 +642,7 @@ def test_input_in_input_novalue_optional_nodefault(self): wf.input("inpId", String(optional=True)) self.translator.build_inputs_file(wf) inputs_file = self.translator.inputs_file - self.assertEqual(inputs_file, "inpId: null\n") + self.assertEqual(inputs_file, "") def test_input_in_input_novalue_optional_default(self): wf = WorkflowBuilder("test_cwl_input_in_input_novalue_optional_default") @@ -797,6 +802,8 @@ def test_step_input(self): ret, _, _, _ = StepInputExpressionTestWF().translate( "cwl", to_console=False ) + ret = _strip_comments(ret) + print(ret) self.assertEqual(cwl_stepinput, ret) def test_array_step_input(self): @@ -817,6 +824,8 @@ def test_array_step_input(self): wf.output("out", source=wf.print) ret, _, _, _ = wf.translate("cwl") + ret = _strip_comments(ret) + print(ret) self.maxDiff = None self.assertEqual(cwl_arraystepinput, ret) @@ -1296,7 +1305,6 @@ def test_minimal(self): """ cwl_stepinput = """\ -#!/usr/bin/env cwl-runner class: Workflow cwlVersion: v1.2 label: 'TEST: WorkflowWithStepInputExpression' @@ -1337,7 +1345,6 @@ def test_minimal(self): """ cwl_arraystepinput = """\ -#!/usr/bin/env cwl-runner class: Workflow cwlVersion: v1.2 diff --git a/janis_core/tests/test_translation_nextflow.py b/janis_core/tests/test_translation_nextflow.py index f70c4a8c6..6d0c1e4f7 100644 --- a/janis_core/tests/test_translation_nextflow.py +++ b/janis_core/tests/test_translation_nextflow.py @@ -1888,10 +1888,10 @@ def test_variables_defined1(self) -> None: actual_prescript = simplify_prescript(process.pre_script) assert(actual_prescript) expected_lines = { - 'def java_options_joined = java_options != params.NULL_VALUE ? java_options.join(\' \') : ""', - 'def compression_level = compression_level != params.NULL_VALUE ? compression_level : ""' + 'def java_options_ref = java_options_ref != params.NULL_VALUE ? java_options_ref : "${java_options}.fastq.gz"', + 'def java_options = java_options != params.NULL_VALUE ? java_options.join(\' \') : ""', + 'def compression_level = compression_level != params.NULL_VALUE ? compression_level : ""', } - for ln in expected_lines: self.assertIn(ln, actual_prescript) @@ -1963,6 +1963,7 @@ def test_components_optional(self) -> None: for ln in expected_script: self.assertIn(ln, actual_script) + @unittest.skip('TODO update prescript formatting') def test_components_array_mandatory(self) -> None: wf = ComponentsMandatoryArrayTestWF() wf = do_preprocessing_workflow(wf) @@ -1997,6 +1998,7 @@ def test_components_array_mandatory(self) -> None: for ln in expected_script: self.assertIn(ln, actual_script) + @unittest.skip('TODO update prescript formatting') def test_components_array_optional(self) -> None: wf = ComponentsOptionalArrayTestWF() wf = do_preprocessing_workflow(wf) @@ -2579,9 +2581,10 @@ class TestTranslateHelperFiles(unittest.TestCase): def setUp(self) -> None: reset_globals() - def test_python_tool_helpers(self) -> None: + def test_python_tool_helpers1(self) -> None: # first test wf wf = InputsPythonToolTestWF() + wf = to_builders(wf) translator = NextflowTranslator() translator.build_helper_files(wf) actual_paths = [x[0] for x in translator.helper_files] @@ -2597,6 +2600,7 @@ def test_python_tool_helpers(self) -> None: for path in actual_paths: self.assertIn(path, expected_paths) + def test_python_tool_helpers2(self) -> None: # second test wf wf = OutputsPythonToolTestWF() wf = to_builders(wf) @@ -3806,7 +3810,7 @@ def test_standard(self) -> None: # prescript self.assertIn('def in_bam_bai_arr = get_primary_files(in_bam_bai_arr_flat, 2)', prescript) self.assertIn("def in_bam_bai_arr_joined = in_bam_bai_arr.join(' ')", prescript) - self.assertIn('def in_file_arr_joined = in_file_arr.join(\' \')', prescript) + self.assertIn('def in_file_arr = in_file_arr', prescript) self.assertIn('def in_int_opt = in_int_opt != params.NULL_VALUE ? in_int_opt : ""', prescript) self.assertIn('def in_str_opt = in_str_opt != params.NULL_VALUE ? in_str_opt : ""', prescript) @@ -3814,8 +3818,8 @@ def test_standard(self) -> None: self.assertIn('--BasenameOperator ${in_file}', script) self.assertIn('--DirnameOperator ${in_file.parent}', script) self.assertIn('--NamerootOperator ${in_file.simpleName}', script) - self.assertIn('--NameextOperator ${in_file.extension}', script) - self.assertIn('--FileSizeOperator ${(in_file.size / 1048576)}', script) + self.assertIn('--NameextOperator ${"." + in_file.extension}', script) + self.assertIn('--FileSizeOperator ${in_file.size / 1048576}', script) self.assertIn('--ReadContents ${in_file.text}', script) self.assertIn('--ReadJsonOperator ${jsonSlurper.parseText(file("${task.workDir}/${in_file}").text)}', script) self.assertIn('--RangeOperator ${0..in_int}', script) @@ -3845,7 +3849,7 @@ def test_logical(self) -> None: self.assertIn("def in_bam_bai_arr = get_primary_files(in_bam_bai_arr_flat, 2)", prescript) self.assertIn("def in_bam_bai_arr_joined = in_bam_bai_arr.join(' ')", prescript) self.assertIn("def in_bam_bai = in_bam_bai[0]", prescript) - self.assertIn("def in_file_arr_joined = in_file_arr.join(' ')", prescript) + self.assertIn("def in_file_arr = in_file_arr", prescript) self.assertIn("def in_file_opt = in_file_opt.simpleName != params.NULL_VALUE ? in_file_opt : \"\"", prescript) self.assertIn("def in_float_opt = in_float_opt != params.NULL_VALUE ? in_float_opt : \"\"", prescript) self.assertIn("def in_int_opt = in_int_opt != params.NULL_VALUE ? in_int_opt : \"\"", prescript) @@ -3858,7 +3862,7 @@ def test_logical(self) -> None: self.assertIn("--FloorOperator ${Math.floor(in_float)}", script) self.assertIn("--CeilOperator ${Math.ceil(in_float)}", script) self.assertIn("--RoundOperator ${Math.round(in_float)}", script) - self.assertIn("--GroupOperator ${(5 + 10)}", script) + self.assertIn("--GroupOperator ${5 + 10}", script) self.assertIn("--AndOperator ${in_file_opt && in_str_opt}", script) self.assertIn("--OrOperator ${in_file_opt || in_str_opt}", script) self.assertIn("--EqualityOperator ${in_str_opt == \"hello!\"}", script) @@ -3885,17 +3889,17 @@ def test_complex(self) -> None: self.assertIn("def in_bam_bai_arr = get_primary_files(in_bam_bai_arr_flat, 2)", prescript) self.assertIn("def in_bam_bai_arr_joined = in_bam_bai_arr.join(' ')", prescript) self.assertIn("def in_bam_bai = in_bam_bai[0]", prescript) - self.assertIn("def in_file_arr_joined = in_file_arr.join(' ')", prescript) + self.assertIn("def in_file_arr = in_file_arr", prescript) self.assertIn("def in_file_opt = in_file_opt.simpleName != params.NULL_VALUE ? in_file_opt : \"\"", prescript) self.assertIn("def in_float_opt = in_float_opt != params.NULL_VALUE ? in_float_opt : \"\"", prescript) self.assertIn("def in_int_opt = in_int_opt != params.NULL_VALUE ? in_int_opt : \"\"", prescript) self.assertIn("def in_str_opt = in_str_opt != params.NULL_VALUE ? in_str_opt : \"\"", prescript) # script - self.assertIn('--StringFormatter ${in_file}.trimmed${in_file.extension}', script) + self.assertIn('--StringFormatter ${in_file}.trimmed${"." + in_file.extension}', script) self.assertIn('--ArrayMethodChain ${in_file_arr[0].split(".")[0..-1].join(".")}', script) self.assertIn('--Concat ${"> " + in_str + ".log"}', script) - self.assertIn('--Math ${Math.ceil((in_file.size / 1048576) / (1024 * 1024 * 1024) + 20)}', script) + self.assertIn('--Math ${Math.ceil(in_file.size / 1048576 / 1024 * 1024 * 1024 + 20)}', script) diff --git a/janis_core/translations/cwl/main.py b/janis_core/translations/cwl/main.py index 08aeea4b8..02fb73f06 100644 --- a/janis_core/translations/cwl/main.py +++ b/janis_core/translations/cwl/main.py @@ -826,7 +826,10 @@ def build_inputs_file(self, entity: WorkflowBuilder | CommandToolBuilder | CodeT inp[k] = ad.get(k, v) # convert to string & assign to self.inputs - inputs_str = ruamel.yaml.dump(inp, default_flow_style=False) + if inp: + inputs_str = ruamel.yaml.dump(inp, default_flow_style=False) + else: + inputs_str = '' self.inputs_file = inputs_str def build_resources_file(self, entity: WorkflowBuilder | CommandToolBuilder | CodeTool) -> None: diff --git a/janis_core/translations/nextflow/generate/config.py b/janis_core/translations/nextflow/generate/config.py index da6784140..54fbfc221 100644 --- a/janis_core/translations/nextflow/generate/config.py +++ b/janis_core/translations/nextflow/generate/config.py @@ -259,8 +259,8 @@ def get_group_heading(self, param: Param) -> str: name = f'SUBWORKFLOW: {to_case(param.task_id, settings.translate.nextflow.NF_PROCESS_CASE)}' elif param.subtype == 'sub_tool': name = f'PROCESS: {to_case(param.task_id, settings.translate.nextflow.NF_PROCESS_CASE)}' - else: - print() + # else: + # print() return name \ No newline at end of file diff --git a/janis_core/translations/nextflow/generate/process/directives.py b/janis_core/translations/nextflow/generate/process/directives.py index e39fb36c3..c9c15f3af 100644 --- a/janis_core/translations/nextflow/generate/process/directives.py +++ b/janis_core/translations/nextflow/generate/process/directives.py @@ -71,7 +71,7 @@ def gen_nf_process_directives(tool: CommandToolBuilder | PythonTool, vmanager: V if settings.translate.nextflow.ENTITY == 'workflow': if 'cpus' not in nf_directives and tool.cpus({}) is not None: cpus = tool.cpus({}) - if isinstance(cpus, Selector): + if isinstance(cpus, Selector) and not settings.ingest.SOURCE == 'wdl': res = unwrap_expression(val=cpus, context='process_script', variable_manager=vmanager, tool=tool, apply_braces=False) if isinstance(cpus, StringFormatter): res = f'{res}' @@ -84,7 +84,7 @@ def gen_nf_process_directives(tool: CommandToolBuilder | PythonTool, vmanager: V if 'memory' not in nf_directives and tool.memory({}) is not None: memory = tool.memory({}) - if isinstance(memory, Selector): + if isinstance(memory, Selector) and not settings.ingest.SOURCE == 'wdl': res = unwrap_expression(val=memory, context='process_script', variable_manager=vmanager, tool=tool, apply_braces=False) if isinstance(memory, StringFormatter): res = f'{res} MB' @@ -97,7 +97,7 @@ def gen_nf_process_directives(tool: CommandToolBuilder | PythonTool, vmanager: V if 'disk' not in nf_directives and tool.disk({}) is not None: disk = tool.disk({}) - if isinstance(disk, Selector): + if isinstance(disk, Selector) and not settings.ingest.SOURCE == 'wdl': # bandaid fix for wdl res = unwrap_expression(val=disk, context='process_script', variable_manager=vmanager, tool=tool, apply_braces=False) if isinstance(disk, StringFormatter): res = f'{res} MB' @@ -110,7 +110,7 @@ def gen_nf_process_directives(tool: CommandToolBuilder | PythonTool, vmanager: V if 'time' not in nf_directives and tool.time({}) is not None: time = tool.time({}) - if isinstance(time, Selector): + if isinstance(time, Selector) and not settings.ingest.SOURCE == 'wdl': res = unwrap_expression(val=time, context='process_script', variable_manager=vmanager, tool=tool, apply_braces=False) if isinstance(time, StringFormatter): res = f'{res}' diff --git a/janis_core/translations/nextflow/generate/process/outputs/factory_cmdtool.py b/janis_core/translations/nextflow/generate/process/outputs/factory_cmdtool.py index 0b9780e89..7422e7bda 100644 --- a/janis_core/translations/nextflow/generate/process/outputs/factory_cmdtool.py +++ b/janis_core/translations/nextflow/generate/process/outputs/factory_cmdtool.py @@ -115,6 +115,8 @@ def get_fmttype(self, selector: Any) -> FmtType: # output uses InputSelector elif isinstance(selector, InputSelector): + # if selector.input_to_select not in self.tool.inputs_map(): + # print() tinput = self.tool.inputs_map()[selector.input_to_select] # ToolInput is Filename type diff --git a/janis_core/translations/nextflow/generate/process/script/common.py b/janis_core/translations/nextflow/generate/process/script/common.py index cc2e8e01b..75fb8c652 100644 --- a/janis_core/translations/nextflow/generate/process/script/common.py +++ b/janis_core/translations/nextflow/generate/process/script/common.py @@ -62,10 +62,6 @@ def eval_cmdline_targ( else: cmdline = f'{value}' - if tool.id() == 'BwaMemSamtoolsView' and arg.prefix == '-R': - print(cmdline) - print() - return cmdline diff --git a/janis_core/translations/nextflow/generate/workflow/datatype_mismatch.py b/janis_core/translations/nextflow/generate/workflow/datatype_mismatch.py index a691b8145..9d5dc6402 100644 --- a/janis_core/translations/nextflow/generate/workflow/datatype_mismatch.py +++ b/janis_core/translations/nextflow/generate/workflow/datatype_mismatch.py @@ -126,7 +126,7 @@ def generate_secondary_secondary_mismatch_pumbing(srctype: DataType, desttype: D elif ext in srctype_exts: index = srctype_exts.index(ext) else: - print(f"Secondary tuple mapping failed for {ext}. Made a best guess.") + # print(f"Secondary tuple mapping failed for {ext}. Made a best guess.") index = i indices.append(index) diff --git a/janis_core/translations/nextflow/generate/workflow/main.py b/janis_core/translations/nextflow/generate/workflow/main.py index 49d852166..240c3c872 100644 --- a/janis_core/translations/nextflow/generate/workflow/main.py +++ b/janis_core/translations/nextflow/generate/workflow/main.py @@ -88,7 +88,6 @@ class WFGenerator(ABC): def __post_init__(self) -> None: self.vmanager = init_variable_manager_for_task(self.wf) - print() @property def name(self) -> str: diff --git a/janis_core/translations/nextflow/preprocessing/task_inputs/main.py b/janis_core/translations/nextflow/preprocessing/task_inputs/main.py index 6f31a893c..d5a2bf862 100644 --- a/janis_core/translations/nextflow/preprocessing/task_inputs/main.py +++ b/janis_core/translations/nextflow/preprocessing/task_inputs/main.py @@ -23,8 +23,6 @@ def populate_task_inputs(tool: Tool, main_wf: Optional[WorkflowBuilder]=None) -> elif settings.translate.nextflow.ENTITY == 'workflow' and isinstance(main_wf, WorkflowBuilder): _populate_task_inputs_workflowmode(main_wf, main_wf) else: - print(type(tool)) - print(tool.id()) raise RuntimeError(f"{tool.id()}: {type(tool)}") def _populate_task_inputs_workflowmode(subwf: WorkflowBuilder, main_wf: WorkflowBuilder) -> None: diff --git a/janis_core/translations/nextflow/unwrap.py b/janis_core/translations/nextflow/unwrap.py index 02b52e3f6..5bf89c332 100644 --- a/janis_core/translations/nextflow/unwrap.py +++ b/janis_core/translations/nextflow/unwrap.py @@ -32,6 +32,8 @@ DataType ) +from janis_core.messages import log_message +from janis_core.messages import ErrorCategory from janis_core.operators.operator import ( IndexOperator, AsStringOperator, @@ -221,6 +223,9 @@ def should_quote(self, val: Any, expr: Any) -> bool: def get_input_by_id(self, input_id: str) -> ToolInput: assert(self.tool is not None) inputs = [x for x in self.tool.inputs() if x.id() == input_id] + # if not inputs: + # msg = f"Could not find input with id '{input_id}' in tool '{self.tool.id()}'" + # log_message(self.tool.uuid, msg, ErrorCategory.PLUMBING) return inputs[0] def get_channel_expression(self, channel_name: str, upstream_dtype: DataType) -> str: @@ -573,17 +578,17 @@ def unwrap_input_selector_get_expr(self, sel: InputSelector, inp: ToolInput, var # tinputs which have static value elif var.vtype == VariableType.STATIC: expr = self.unwrap(var.value) - print() + # print() # tinputs which are ignored in process but have default value elif var.vtype == VariableType.IGNORED and inp.default is not None: expr = self.unwrap(inp.default) - print() + # print() # tinputs which are ignored in process and have no default value else: expr = None - print() + # print() ### applying modifiers ### # special case: remove file extension diff --git a/janis_core/translations/translationbase.py b/janis_core/translations/translationbase.py index 83b6d61d3..96123de77 100644 --- a/janis_core/translations/translationbase.py +++ b/janis_core/translations/translationbase.py @@ -6,7 +6,8 @@ from janis_core import ( CommandToolBuilder, - CodeTool, + CodeTool, + PythonTool, WorkflowBuilder, Tool, InputSelector, @@ -271,7 +272,10 @@ def translate_code_tool(self, internal: CodeTool): Once translation is complete, writes to stdout and/or disk. Returns string purely for testing purposes """ - translated = self.translate_code_tool_internal(internal) + self.translate_code_tool_internal(internal) + assert len(self.tools) == 1 + translated = self.tools[0][1] + str_tool = self.stringify_translated_tool(internal, translated) str_tool = inject_messages(internal, str_tool) @@ -336,7 +340,7 @@ def _gen_python_code_files(self, tool: CommandToolBuilder | CodeTool | WorkflowB # Python files for Python code tools files: dict[str, str] = {} - if isinstance(tool, CodeTool): + if isinstance(tool, PythonTool): # helpers["__init__.py"] = "" #helpers[f"{tool.versioned_id()}.py"] = self.gen_python_script(tool) filename = f'{tool.id()}.py' diff --git a/notes.txt b/notes.txt index 31036905a..4713953fd 100644 --- a/notes.txt +++ b/notes.txt @@ -1,46 +1,33 @@ -miniwdl 1.11.0 - -conditional - scatter - step1 - step2 - step3 - -step1 conditions, scatter -------------- --- GENERAL --- --------------- -Translate units documentation: +DOCUMENTATION - tell new user that for messaging to work, must generate CommandToolBuilder or CodeTool or WorkflowBuilder only! - cannot use CommandTool or Workflow or WorkflowBase. - DONE (to test) -- messages NXF output -- messages CWl ingest +- CWL ingest edam formats - WDL runtime duration removed - NXF tool translate wrap in workflow to create config etc -- CWL ingest edam formats -- NEXT translate reflects new TranslatorBase interface +- NXF translate reflects new TranslatorBase interface +- WDL ingest operational +- messages CWL output +- messages NXF output +- messages WDL output +- messages CWl ingest +- messages WDL ingest TODO -- all translation units messages -- all translation units functional -- all translation units passing tests - -- WDL ingest - - do basic task parsing: inputs and outputs only. no command / base_command etc. - - keep workflow parsing as-is - - make the above work, add error handling (fallbacks) and message logging. - - once this is done, move to Task parsing (below). +- messages GXY ingest +- WDL rename variables to avoid keywords +- WDL rename variables with 2+ uses (eg "bam" input & "bam" output not allowed) +- WDL remove implied resources +- WDL docs / annotations from param_metadata - WDL Task parsing - this seems very doable. - - uses a Lexer - - potentially after stringifying the WDL.Task.Command if this simplifies intermediate vars etc - - should have a parent func parse_task() which contains fallback - TaskParserDefault: - can_parse(): checks whether there are no temp variables and 1 command - do_parse(): parses into typical janis structure with base_command etc. @@ -49,16 +36,13 @@ TODO - do_parse(): inputs=super basic, no base_command, everything is arguments - maybe this style is applicable for Galaxy? - Note: result can also contain scripting similar to nextflow. can refernece any input or temp var in task scope. -- WDL Workflow parsing -- Adapt CWL translation: ShellCommandRequirement for relevant Janis tools (ingested via WDL TaskParserArguments) -- -- messages WDL tool ingest -- messages WDL workflow ingest -- messages Galaxy tool ingest -- messages Galaxy workflow ingest +- CWL parse self exprs +- CWL translate_workflow_to_all_in_one()?? +- CWL adapt translation + - ShellCommandRequirement for relevant Janis tools (ingested via WDL TaskParserArguments) -- make nextflow translate prescript & script better +- NXF make prescript & script better - prescript should handle getting the right values: - input default def input == params.NULL ? "default value" : input - input optionality def input == params.NULL ? "" : input @@ -71,14 +55,7 @@ TODO - arr joins for non-file (generic) input types - stringformatters - Operators in general -- WDL rename variables to avoid keywords -- WDL rename variables with 2+ uses (eg "bam" input & "bam" output not allowed) -- wdl parser -- wdl remove implied resources -- CWL parse self exprs -- CWL translate_workflow_to_all_in_one()?? -- bugs - - cwl inputs config file boofed for one test + -------------------- From b84a0181cee0c806fd07797376f50ee28e96ed3b Mon Sep 17 00:00:00 2001 From: Grace Hall <graceavahall@gmail.com> Date: Tue, 5 Dec 2023 03:04:14 +1100 Subject: [PATCH 23/32] bugfix --- janis_core/ingestion/cwl/expressions/main.py | 26 +++++++++++++------- janis_core/ingestion/cwl/parsing/workflow.py | 4 +-- janis_core/tests/test_ingestion_cwl.py | 1 + 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/janis_core/ingestion/cwl/expressions/main.py b/janis_core/ingestion/cwl/expressions/main.py index f004e597d..b8c23c6d5 100644 --- a/janis_core/ingestion/cwl/expressions/main.py +++ b/janis_core/ingestion/cwl/expressions/main.py @@ -21,7 +21,8 @@ def parse_expression( tool_uuid: str, implicit_wrapping: bool=False, error_token_override: Optional[str]=None, - context: str = 'tool' # tool | workflow + context: str = 'tool', # tool | workflow + workflow: Optional[j.WorkflowBuilder]=None # for InputNodeSelector ) -> Any: # don't parse None @@ -38,12 +39,12 @@ def parse_expression( # has '$' wrapping if expr.startswith('$(') or expr.startswith('${'): - return parse_explicit_expr(expr, tool_uuid, error_token_override, context) + return parse_explicit_expr(expr, tool_uuid, error_token_override, context, workflow) # no '$' wrapping but in this cwl context may still be valid expression # add '$' and attempt parse. elif implicit_wrapping: - return parse_implicit_expr(expr, tool_uuid, error_token_override, context) + return parse_implicit_expr(expr, tool_uuid, error_token_override, context, workflow) # its just a string else: @@ -53,10 +54,11 @@ def parse_explicit_expr( expr: str, tool_uuid: str, error_token_override: Optional[str]=None, - context: str = 'tool' # tool | workflow + context: str = 'tool', # tool | workflow + workflow: Optional[j.WorkflowBuilder]=None # for InputNodeSelector ) -> Any: - result, success = ExpressionParser(context).parse(expr) + result, success = ExpressionParser(context, workflow).parse(expr) # successful parse if success: return result, True @@ -84,13 +86,14 @@ def parse_implicit_expr( expr: str, tool_uuid: str, error_token_override: Optional[str]=None, - context: str = 'tool' # tool | workflow + context: str = 'tool', # tool | workflow + workflow: Optional[j.WorkflowBuilder]=None # for InputNodeSelector ) -> Any: if '$(' not in expr and '${' not in expr: new_expr = f'$({expr})' else: new_expr = deepcopy(expr) - result, success = ExpressionParser(context).parse(new_expr) + result, success = ExpressionParser(context, workflow).parse(new_expr) # is expression if success: @@ -112,8 +115,9 @@ def get_token_for_expr(expr: str, loglines: list[LogLine]) -> Optional[str]: class ExpressionParser: - def __init__(self, context: str): + def __init__(self, context: str, workflow: Optional[j.WorkflowBuilder]=None): self.context = context + self.workflow = workflow file_attr_map = { 'attr_basename': j.BasenameOperator, @@ -211,7 +215,11 @@ def parse_node(self, node: Tree | Token) -> Any: if self.context == 'tool': return j.InputSelector(i_name) elif self.context == 'workflow': - return j.InputNodeSelector(i_name) + assert isinstance(self.workflow, j.WorkflowBuilder) + inp = self.workflow.input_nodes[i_name] + return j.InputNodeSelector(inp) + elif self.context == 'when': + raise NotImplementedError elif t_name == 'rt_outdir': return '.' elif t_name == 'rt_tmpdir': diff --git a/janis_core/ingestion/cwl/parsing/workflow.py b/janis_core/ingestion/cwl/parsing/workflow.py index 421ff075a..2345413a6 100644 --- a/janis_core/ingestion/cwl/parsing/workflow.py +++ b/janis_core/ingestion/cwl/parsing/workflow.py @@ -260,7 +260,7 @@ def resolve_value_from(self, source: Any) -> Any: value = None if inp.valueFrom is not None: - value, success = parse_expression(inp.valueFrom, self.entity_uuid, context='workflow') + value, success = parse_expression(inp.valueFrom, self.entity_uuid, context='workflow', workflow=self.wf) # if 'self.' in inp.valueFrom: # if isinstance(source, InputNodeSelector): # replacement = f'inputs.{source.input_node.id()}.' @@ -307,7 +307,7 @@ def do_parse(self) -> None: def parse_when(self) -> Any: if hasattr(self.entity, 'when') and self.entity.when is not None: - res, success = parse_expression(self.entity.when, self.entity_uuid, context='workflow') + res, success = parse_expression(self.entity.when, self.entity_uuid, context='workflow', workflow=self.wf) return res return None diff --git a/janis_core/tests/test_ingestion_cwl.py b/janis_core/tests/test_ingestion_cwl.py index 1cef9dc17..1ca0ac0cb 100644 --- a/janis_core/tests/test_ingestion_cwl.py +++ b/janis_core/tests/test_ingestion_cwl.py @@ -144,6 +144,7 @@ def test_scatter(self): self.assertListEqual(step.scatter.fields, ['text']) self.assertIsNone(step.scatter.method) + @unittest.skip('TODO implement') def test_conditional_execution(self): filepath = f'{CWL_TESTDATA_DIR}/workflows/conditional_execution/conditional_execution.cwl' workflow = parse_cwl(filepath) From 815e579bfb050f68573e64df4147a41ab556af79 Mon Sep 17 00:00:00 2001 From: Grace Hall <graceavahall@gmail.com> Date: Tue, 5 Dec 2023 22:32:54 +1100 Subject: [PATCH 24/32] Passing tests (allegedly) STILL TODO - WDL -> NXF handle runtime exprs - WDL -> NXF unwrapping of shell script sometimes has unnecessary nested brackets - WDL -> CWL unwrapping can be cleaner than stringformatter - WDL -> CWL unwrapping can needs proper indenting - WDL implement scatter on multiple inputs using zip() --- janis_core/tests/test_ingestion_galaxy.py | 84 +++++++++---------- janis_core/tests/test_translation_nextflow.py | 32 +++---- pyproject.toml | 3 +- 3 files changed, 60 insertions(+), 59 deletions(-) diff --git a/janis_core/tests/test_ingestion_galaxy.py b/janis_core/tests/test_ingestion_galaxy.py index 7b6f81a31..b5907e62c 100644 --- a/janis_core/tests/test_ingestion_galaxy.py +++ b/janis_core/tests/test_ingestion_galaxy.py @@ -928,7 +928,7 @@ def test_to_janis_datatype(self) -> None: self.assertIsInstance(jtype3, Array) self.assertIsInstance(jtype4, Stdout) # check attributes are correct - self.assertEquals(jtype2.optional, True) + self.assertEqual(jtype2.optional, True) self.assertIsInstance(jtype3.subtype(), Float) self.assertIsInstance(jtype4.subtype, File) @@ -945,8 +945,8 @@ def test_to_janis_selector(self) -> None: self.assertIsInstance(jsel3, InputSelector) self.assertIsNone(jsel1) # check attributes are correct - self.assertEquals(jsel2.wildcard, 'report.txt') - self.assertEquals(jsel3.input_to_select, 'file_input') + self.assertEqual(jsel2.wildcard, 'report.txt') + self.assertEqual(jsel3.input_to_select, 'file_input') class TestJanisToolMapping(unittest.TestCase): @@ -982,25 +982,25 @@ def test_to_janis_tool_input(self) -> None: self.assertIsInstance(jinp3, ToolInput) self.assertIsInstance(jinp4, ToolInput) # check attributes are correct - self.assertEquals(jinp1.tag, 'file_input') - self.assertEquals(jinp1.prefix, None) - self.assertEquals(jinp1.separate_value_from_prefix, None) + self.assertEqual(jinp1.tag, 'file_input') + self.assertEqual(jinp1.prefix, None) + self.assertEqual(jinp1.separate_value_from_prefix, None) self.assertIsInstance(jinp1.input_type, File) - self.assertEquals(jinp2.tag, 'noheader') - self.assertEquals(jinp2.prefix, '--noheader') + self.assertEqual(jinp2.tag, 'noheader') + self.assertEqual(jinp2.prefix, '--noheader') self.assertIsInstance(jinp2.input_type, Boolean) - self.assertEquals(jinp2.input_type.optional, True) + self.assertEqual(jinp2.input_type.optional, True) - self.assertEquals(jinp3.tag, 'adv_min_dna_id') - self.assertEquals(jinp3.prefix, '--minid=') - self.assertEquals(jinp3.separate_value_from_prefix, False) + self.assertEqual(jinp3.tag, 'adv_min_dna_id') + self.assertEqual(jinp3.prefix, '--minid=') + self.assertEqual(jinp3.separate_value_from_prefix, False) self.assertIsInstance(jinp3.input_type, Array) - self.assertEquals(jinp4.tag, 'adv_db') - self.assertEquals(jinp4.prefix, '--db=') - self.assertEquals(jinp4.separate_value_from_prefix, False) - self.assertEquals(jinp4.default, 'resfinder') + self.assertEqual(jinp4.tag, 'adv_db') + self.assertEqual(jinp4.prefix, '--db=') + self.assertEqual(jinp4.separate_value_from_prefix, False) + self.assertEqual(jinp4.default, 'resfinder') self.assertIsInstance(jinp4.input_type, String) def test_to_janis_tool_output(self) -> None: @@ -1017,18 +1017,18 @@ def test_to_janis_tool_output(self) -> None: self.assertIsInstance(jout3, ToolOutput) # check attributes are correct self.assertIsInstance(jout1.output_type, Stdout) - self.assertEquals(jout1.tag, 'out_report1') + self.assertEqual(jout1.tag, 'out_report1') self.assertIsNone(jout1.selector) self.assertIsInstance(jout2.output_type, File) - self.assertEquals(jout2.tag, 'out_report2') + self.assertEqual(jout2.tag, 'out_report2') self.assertIsInstance(jout2.selector, WildcardSelector) - self.assertEquals(jout2.selector.wildcard, 'report.txt') + self.assertEqual(jout2.selector.wildcard, 'report.txt') self.assertIsInstance(jout3.output_type, File) - self.assertEquals(jout3.tag, 'out_file_input') + self.assertEqual(jout3.tag, 'out_file_input') self.assertIsInstance(jout3.selector, InputSelector) - self.assertEquals(jout3.selector.input_to_select, 'file_input') + self.assertEqual(jout3.selector.input_to_select, 'file_input') def test_to_janis_metadata(self) -> None: """ @@ -1063,11 +1063,11 @@ def test_to_janis_workflow(self) -> None: def test_to_janis_inputs_dict(self) -> None: # single input, no value - self.assertEquals(self.jinputs['in_fasta'], None) + self.assertEqual(self.jinputs['in_fasta'], None) # single input, provided value self.internal.inputs[0].value = 'path/to/file.fasta' jinputs = to_janis_inputs_dict(self.internal) - self.assertEquals(jinputs['in_fasta'], 'path/to/file.fasta') + self.assertEqual(jinputs['in_fasta'], 'path/to/file.fasta') def test_janis_metadata(self) -> None: self.assertIsInstance(self.jworkflow.metadata, WorkflowMetadata) @@ -1080,7 +1080,7 @@ def test_janis_inputs(self) -> None: 'abricate_noheader', } actual_inputs = set(self.jworkflow.input_nodes.keys()) - self.assertEquals(target_inputs, actual_inputs) + self.assertEqual(target_inputs, actual_inputs) jinp = self.jworkflow.input_nodes['in_fasta'] self.assertIsInstance(jinp, InputNode) @@ -1089,18 +1089,18 @@ def test_janis_inputs(self) -> None: def test_janis_outputs(self) -> None: target_outputs = {'abricate_out_report1'} actual_outputs = set(self.jworkflow.output_nodes.keys()) - self.assertEquals(target_outputs, actual_outputs) + self.assertEqual(target_outputs, actual_outputs) jout = self.jworkflow.output_nodes['abricate_out_report1'] self.assertIsInstance(jout, OutputNode) self.assertIsInstance(jout.datatype, Stdout) self.assertIsInstance(jout.datatype.subtype, File) - self.assertEquals(jout.doc.doc, 'report file') + self.assertEqual(jout.doc.doc, 'report file') def test_janis_steps(self) -> None: target_steps = {'abricate'} actual_steps = set(self.jworkflow.step_nodes.keys()) - self.assertEquals(target_steps, actual_steps) + self.assertEqual(target_steps, actual_steps) # basic object checks jstep = self.jworkflow.step_nodes['abricate'] @@ -1114,8 +1114,8 @@ def test_janis_steps(self) -> None: self.assertIn('adv_db', jstep.sources) # scatter - self.assertEquals(jstep.scatter.fields, ['adv_min_dna_id']) - self.assertEquals(jstep.scatter.method, ScatterMethod.dot) + self.assertEqual(jstep.scatter.fields, ['adv_min_dna_id']) + self.assertEqual(jstep.scatter.method, ScatterMethod.dot) class TestDatatypeInference(unittest.TestCase): @@ -1127,20 +1127,20 @@ def setUp(self) -> None: def test_positional(self) -> None: dtype = datatypes.get(MOCK_POSITIONAL1) - self.assertEquals(dtype.classname, 'Fastq') + self.assertEqual(dtype.classname, 'Fastq') def test_flag(self) -> None: - self.assertEquals(datatypes.get(MOCK_FLAG1), bool_t) + self.assertEqual(datatypes.get(MOCK_FLAG1), bool_t) def test_option(self) -> None: - self.assertEquals(datatypes.get(MOCK_OPTION2), string_t) + self.assertEqual(datatypes.get(MOCK_OPTION2), string_t) def test_outputs(self) -> None: dtype = datatypes.get(MOCK_REDIRECT_OUTPUT) - self.assertEquals(dtype.classname, 'TextFile') + self.assertEqual(dtype.classname, 'TextFile') def test_workflow_input(self) -> None: - self.assertEquals(datatypes.get(MOCK_WORKFLOW_INPUT1), file_t) + self.assertEqual(datatypes.get(MOCK_WORKFLOW_INPUT1), file_t) class TestFromGalaxy(unittest.TestCase): @@ -1153,21 +1153,21 @@ def test_ingest_abricate_tool(self) -> None: jtool = ingest_galaxy(filepath) assert(isinstance(jtool, CommandTool)) - self.assertEquals(len(jtool.inputs()), 5) - self.assertEquals(len(jtool.outputs()), 1) - self.assertEquals(jtool.base_command(), ['abricate']) + self.assertEqual(len(jtool.inputs()), 5) + self.assertEqual(len(jtool.outputs()), 1) + self.assertEqual(jtool.base_command(), ['abricate']) def test_ingest_cutadapt_wf(self) -> None: filepath = os.path.abspath(f'{GALAXY_TESTWF_PATH}/cutadapt_wf.ga') jworkflow = ingest_galaxy(filepath) assert(isinstance(jworkflow, WorkflowBuilder)) - self.assertEquals(len(jworkflow.input_nodes), 42) + self.assertEqual(len(jworkflow.input_nodes), 42) self.assertIn('in_forward', jworkflow.input_nodes) self.assertIn('in_reverse', jworkflow.input_nodes) - self.assertEquals(len(jworkflow.step_nodes), 1) + self.assertEqual(len(jworkflow.step_nodes), 1) self.assertIn('cutadapt', jworkflow.step_nodes) - self.assertEquals(len(jworkflow.output_nodes), 3) + self.assertEqual(len(jworkflow.output_nodes), 3) self.assertIn('cutadapt_out12', jworkflow.output_nodes) self.assertIn('cutadapt_out22', jworkflow.output_nodes) self.assertIn('cutadapt_out_report', jworkflow.output_nodes) @@ -1178,8 +1178,8 @@ def test_ingest_unicycler_assembly(self) -> None: jworkflow = ingest_galaxy(filepath) assert(isinstance(jworkflow, WorkflowBuilder)) - self.assertEquals(len(jworkflow.step_nodes), 6) - self.assertEquals(len(jworkflow.output_nodes), 7) + self.assertEqual(len(jworkflow.step_nodes), 6) + self.assertEqual(len(jworkflow.output_nodes), 7) self.assertIn('in_short_R1', jworkflow.input_nodes) self.assertIn('in_short_R2', jworkflow.input_nodes) self.assertIn('in_long', jworkflow.input_nodes) diff --git a/janis_core/tests/test_translation_nextflow.py b/janis_core/tests/test_translation_nextflow.py index 6d0c1e4f7..476f01916 100644 --- a/janis_core/tests/test_translation_nextflow.py +++ b/janis_core/tests/test_translation_nextflow.py @@ -991,73 +991,73 @@ def test_string(self) -> None: inp = 'Hello' expected = '"Hello"' actual = to_groovy(inp, String()) - self.assertEquals(expected, actual) + self.assertEqual(expected, actual) def test_numeric(self) -> None: # int inp = 5 expected = '5' actual = to_groovy(inp, Int()) - self.assertEquals(expected, actual) + self.assertEqual(expected, actual) # float inp = 5.2 expected = '5.2' actual = to_groovy(inp, Float()) - self.assertEquals(expected, actual) + self.assertEqual(expected, actual) def test_bool(self) -> None: # true inp = True expected = 'true' actual = to_groovy(inp, Boolean()) - self.assertEquals(expected, actual) + self.assertEqual(expected, actual) # false inp = False expected = 'false' actual = to_groovy(inp, Boolean()) - self.assertEquals(expected, actual) + self.assertEqual(expected, actual) def test_none(self) -> None: inp = None expected = 'null' actual = to_groovy(inp, String()) - self.assertEquals(expected, actual) + self.assertEqual(expected, actual) def test_empty_array(self) -> None: inp = [] expected = "[]" actual = to_groovy(inp, String()) - self.assertEquals(expected, actual) + self.assertEqual(expected, actual) def test_string_array(self) -> None: inp = ['Hello'] expected = "['Hello']" actual = to_groovy(inp, String()) - self.assertEquals(expected, actual) + self.assertEqual(expected, actual) def test_numeric_array(self) -> None: # int inp = [1, 2, 3] expected = '[1, 2, 3]' actual = to_groovy(inp, Int()) - self.assertEquals(expected, actual) + self.assertEqual(expected, actual) # float inp = [1.1, 2.2, 3.3] expected = '[1.1, 2.2, 3.3]' actual = to_groovy(inp, Float()) - self.assertEquals(expected, actual) + self.assertEqual(expected, actual) def test_bool_array(self) -> None: inp = [True, False] expected = '[true, false]' actual = to_groovy(inp) - self.assertEquals(expected, actual) + self.assertEqual(expected, actual) def test_none_array(self) -> None: inp = [None, None] expected = '[null, null]' actual = to_groovy(inp) - self.assertEquals(expected, actual) + self.assertEqual(expected, actual) @@ -1067,12 +1067,12 @@ def setUp(self) -> None: reset_globals() def test_get_settings(self): - # self.assertEquals(settings.translate.nextflow.LIB_FILENAME, 'lib.nf') - self.assertEquals(settings.translate.nextflow.CONFIG_FILENAME, 'nextflow.config') + # self.assertEqual(settings.translate.nextflow.LIB_FILENAME, 'lib.nf') + self.assertEqual(settings.translate.nextflow.CONFIG_FILENAME, 'nextflow.config') def test_set_settings(self): settings.translate.nextflow.MINIMAL_PROCESS = False - self.assertEquals(settings.translate.nextflow.MINIMAL_PROCESS, False) + self.assertEqual(settings.translate.nextflow.MINIMAL_PROCESS, False) @@ -3566,7 +3566,7 @@ def test_secondaries_workflow_inputs_array(self) -> None: # 'in_alignments_bams': '[]', # 'in_alignments_bais': '[]', # } - # self.assertEquals(actual_params, expected_params) + # self.assertEqual(actual_params, expected_params) raise NotImplementedError @unittest.skip('not implemented') diff --git a/pyproject.toml b/pyproject.toml index 00d92b2f1..44ae3ec88 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -69,7 +69,8 @@ dependencies = [ "cwl-utils==0.15", "graphviz", "nose", - "pydantic<2" + "pydantic<2", + "Levenshtein", ] requires-python = ">=3.10.5" From b9dc6676fe79d9dad3443687f4b8abf016310fff Mon Sep 17 00:00:00 2001 From: Grace Hall <graceavahall@gmail.com> Date: Tue, 5 Dec 2023 22:33:46 +1100 Subject: [PATCH 25/32] passing tests locally STILL TODO - WDL -> NXF handle runtime exprs - WDL -> NXF unwrapping of shell script sometimes has unnecessary nested brackets - WDL -> CWL unwrapping can be cleaner than stringformatter - WDL -> CWL unwrapping can needs proper indenting - WDL implement scatter on multiple inputs using zip() --- janis_core/ingestion/wdl/main.py | 3 + .../ingestion/wdl/parsing/command/parsers.py | 22 +- .../ingestion/wdl/parsing/task/graph.py | 80 +++++++ janis_core/ingestion/wdl/parsing/task/main.py | 58 +++++- .../wdl/parsing/task/requirements.py | 59 ++++-- janis_core/operators/standard.py | 2 +- janis_core/tests/data/cwl/tools/bowtie2.cwl | 100 +++++++++ janis_core/tests/test_ingestion_wdl.py | 117 +++++++++-- janis_core/tests/test_janis_translate.py | 8 +- janis_core/tests/test_translation_modules.py | 5 +- janis_core/tool/commandtool.py | 8 +- janis_core/translations/cwl/main.py | 2 +- .../nextflow/generate/process/inputs.py | 9 +- .../process/outputs/factory_cmdtool.py | 4 +- .../nextflow/generate/process/script/main.py | 195 +++++++++++------- .../preprocessing/task_inputs/populator.py | 5 + janis_core/translations/translationbase.py | 24 +-- notes.txt | 12 ++ 18 files changed, 555 insertions(+), 158 deletions(-) create mode 100644 janis_core/ingestion/wdl/parsing/task/graph.py create mode 100755 janis_core/tests/data/cwl/tools/bowtie2.cwl diff --git a/janis_core/ingestion/wdl/main.py b/janis_core/ingestion/wdl/main.py index 7130b3ddf..9b96aa71c 100755 --- a/janis_core/ingestion/wdl/main.py +++ b/janis_core/ingestion/wdl/main.py @@ -101,8 +101,11 @@ def ingest_workflow_step(self, wdl_wf, janis_wf, flatcall) -> StepNode: def ingest_workflow_step_inputs(self, wdl_wf, janis_wf, flatcall) -> StepNode: call = flatcall.entity + task = call.callee inp_map = {} for k, v in call.inputs.items(): + if k in task.ignored_inputs: + continue parser = WorkflowStepInputParser(wdl_wf, janis_wf, v, flatcall) inp_map[k] = parser.parse() inputs_dict = inp_map diff --git a/janis_core/ingestion/wdl/parsing/command/parsers.py b/janis_core/ingestion/wdl/parsing/command/parsers.py index 314641b75..5e3aa52a5 100644 --- a/janis_core/ingestion/wdl/parsing/command/parsers.py +++ b/janis_core/ingestion/wdl/parsing/command/parsers.py @@ -5,7 +5,7 @@ import regex as re import WDL -from janis_core import CommandToolBuilder, Selector +from janis_core import CommandToolBuilder, Selector, StringFormatter from janis_core import ToolArgument from janis_core.messages import log_message from janis_core.messages import ErrorCategory @@ -31,8 +31,8 @@ def do_parse(self) -> None: raise NotImplementedError def fallback(self) -> None: - msg = f'Error parsing tool command natively. Fellback to using shell command.' - log_message(self.cmdtool.uuid, msg, category=ErrorCategory.FALLBACKS) + # msg = f'Error parsing tool command natively. Fellback to using shell command.' + # log_message(self.cmdtool.uuid, msg, category=ErrorCategory.FALLBACKS) return None @@ -42,8 +42,8 @@ def do_parse(self) -> None: raise NotImplementedError def fallback(self) -> None: - msg = f'Error parsing tool command natively. Fellback to using shell command.' - log_message(self.cmdtool.uuid, msg, category=ErrorCategory.FALLBACKS) + # msg = f'Error parsing tool command natively. Fellback to using shell command.' + # log_message(self.cmdtool.uuid, msg, category=ErrorCategory.FALLBACKS) return None @@ -54,7 +54,8 @@ def do_parse(self) -> None: self.env_vars = self.parse_env_vars() self.files_to_create = self.parse_files_to_create() self.directories_to_create = self.parse_dirs_to_create() - self.success = True + # mark as shell script cmdtool if successful parse + self.cmdtool.is_shell_script = True def parse_base_command(self) -> list[str]: return ["sh", "script.sh"] @@ -64,9 +65,10 @@ def parse_env_vars(self) -> dict[str, Any]: def parse_files_to_create(self) -> dict[str, Any]: res, success = parse_expr(self.task.command, self.task, self.cmdtool) - if success: - return {"script.sh": res} - raise RuntimeError + if not success: + print(str(res)) + raise RuntimeError + return {"script.sh": res} def parse_dirs_to_create(self) -> list[str | Selector]: return [] @@ -74,7 +76,7 @@ def parse_dirs_to_create(self) -> list[str | Selector]: def fallback(self) -> None: msg = f'Error parsing tool command. Output is not correct.' log_message(self.cmdtool.uuid, msg, category=ErrorCategory.FALLBACKS) - return None + return None diff --git a/janis_core/ingestion/wdl/parsing/task/graph.py b/janis_core/ingestion/wdl/parsing/task/graph.py new file mode 100644 index 000000000..5f0ede65f --- /dev/null +++ b/janis_core/ingestion/wdl/parsing/task/graph.py @@ -0,0 +1,80 @@ + +import WDL +from collections import defaultdict +from typing import Any + + +def get_decl_refs(task: WDL.Tree.Task, decls: set[str]) -> dict[str, dict]: + tracer = DeclReferenceTracer(task, decls) + return tracer.trace() + +class DeclReferenceTracer: + """ + NOTE: this is incomplete. Does not check for indirect refs via scopedvar. + """ + def __init__(self, task: WDL.Tree.Task, decls: set[str]) -> None: + self.task = task + self.decls = decls + self.references = defaultdict(dict) + + def trace(self) -> dict[str, dict]: + self.init_references() + self.trace_inputs() + self.trace_scopedvars() + self.trace_command() + self.trace_outputs() + self.trace_runtime() + return self.references + + def init_references(self) -> None: + for decl in self.decls: + self.references[decl]['inputs'] = 0 + self.references[decl]['scopedvars'] = 0 + self.references[decl]['command'] = 0 + self.references[decl]['outputs'] = 0 + self.references[decl]['runtime'] = 0 + + def trace_inputs(self) -> None: + self.context = 'inputs' + if self.task.inputs is None: + return + for inp in self.task.inputs: + if inp.expr is not None: + self.explore(inp.expr) + + def trace_scopedvars(self) -> None: + self.context = 'scopedvars' + if self.task.postinputs is None: + return + for node in self.task.postinputs: + if isinstance(node, WDL.Tree.Decl): + if node.expr is not None: + self.explore(node.expr) + + def trace_command(self) -> None: + self.context = 'command' + for child in self.task.command.children: + if isinstance(child, WDL.Expr.Base): + self.explore(child) + + def trace_outputs(self) -> None: + self.context = 'outputs' + if self.task.outputs is None: + return + for out in self.task.outputs: + if out.expr is not None: + self.explore(out.expr) + + def trace_runtime(self) -> None: + self.context = 'runtime' + for value in self.task.runtime.values(): + if isinstance(value, WDL.Expr.Base): + self.explore(value) + + def explore(self, expr: WDL.Expr.Base) -> None: + if isinstance(expr, WDL.Expr.Ident) and str(expr.name) in self.decls: + self.references[str(expr.name)][self.context] += 1 + + for child in expr.children: + if isinstance(child, WDL.Expr.Base): + self.explore(child) \ No newline at end of file diff --git a/janis_core/ingestion/wdl/parsing/task/main.py b/janis_core/ingestion/wdl/parsing/task/main.py index ff2cd4afa..a63697205 100644 --- a/janis_core/ingestion/wdl/parsing/task/main.py +++ b/janis_core/ingestion/wdl/parsing/task/main.py @@ -15,9 +15,11 @@ TaskDirsToCreateParser, ) from .io import TaskInputParser, TaskOutputParser +from .graph import get_decl_refs from ..command import NativeSimpleParser, NativeArgumentParser, ShellCommandParser def parse_task(task: WDL.Tree.Task) -> CommandToolBuilder: + mark_ignored_inputs(task) cmdtool = CommandToolBuilder( tool=task.name, version='DEV', @@ -42,6 +44,27 @@ def parse_task(task: WDL.Tree.Task) -> CommandToolBuilder: cmdtool = parse_command(task, cmdtool) return cmdtool +def mark_ignored_inputs(task: WDL.Tree.Task) -> None: + if task.inputs is None: + return + decls = set([inp.name for inp in task.inputs]) + decl_refs = get_decl_refs(task, decls) + ignore_inputs = set() + for inp in task.inputs: + if inp.name not in decl_refs: + raise RuntimeError + if decl_refs[inp.name]['inputs'] > 0: + continue + elif decl_refs[inp.name]['scopedvars'] > 0: + continue + elif decl_refs[inp.name]['command'] > 0: + continue + elif decl_refs[inp.name]['outputs'] > 0: + continue + else: + ignore_inputs.add(inp.name) + task.ignored_inputs = ignore_inputs + def parse_container_requirement(task: WDL.Tree.Task, cmdtool: CommandToolBuilder) -> str: parser = TaskContainerParser(task, cmdtool) return parser.parse() @@ -71,19 +94,34 @@ def parse_disk_requirement(task: WDL.Tree.Task, cmdtool: CommandToolBuilder) -> # return parser.parse() def parse_inputs(task: WDL.Tree.Task, cmdtool: CommandToolBuilder) -> list[ToolInput]: + valid_inputs = get_valid_inputs(task) + return [parse_input(task, cmdtool, wdl_inp) for wdl_inp in valid_inputs] + +def get_valid_inputs(task: WDL.Tree.Task) -> Any: # no inputs if task.inputs is None: return [] - - # parse each input - inputs = [] - for wdl_inp in task.inputs: - if wdl_inp.name.startswith("runtime_"): - continue - inputs.append(parse_input(task, cmdtool, wdl_inp)) - - # update cmdtool - return inputs + assert task.ignored_inputs is not None + normal_inputs = [decl for decl in task.inputs if decl.name not in task.ignored_inputs] + post_inputs = [decl for decl in task.postinputs if isinstance(decl, WDL.Tree.Decl)] + return normal_inputs + post_inputs + # decls = set([inp.name for inp in task.inputs]) + # decl_refs = get_decl_refs(task, decls) + # valid_inps = [] + # for inp in task.inputs: + # if inp.name not in decl_refs: + # raise RuntimeError + # if decl_refs[inp.name]['inputs'] > 0: + # valid_inps.append(inp) + # elif decl_refs[inp.name]['scopedvars'] > 0: + # valid_inps.append(inp) + # elif decl_refs[inp.name]['command'] > 0: + # valid_inps.append(inp) + # elif decl_refs[inp.name]['outputs'] > 0: + # valid_inps.append(inp) + # else: + # continue + # return valid_inps def parse_input(task: WDL.Tree.Task, cmdtool: CommandToolBuilder, wdl_inp: WDL.Tree.Decl) -> ToolInput: parser = TaskInputParser(task, cmdtool, wdl_inp) diff --git a/janis_core/ingestion/wdl/parsing/task/requirements.py b/janis_core/ingestion/wdl/parsing/task/requirements.py index 05897f4e5..839785f02 100644 --- a/janis_core/ingestion/wdl/parsing/task/requirements.py +++ b/janis_core/ingestion/wdl/parsing/task/requirements.py @@ -4,7 +4,7 @@ import regex as re from typing import Any , Optional -from janis_core import Selector +from janis_core import Selector, StringFormatter, InputSelector from janis_core.messages import log_message from janis_core.messages import ErrorCategory @@ -16,31 +16,48 @@ class TaskContainerParser(TaskParser): - def do_parse(self) -> str: + def do_parse(self) -> Any: container = self.task.runtime.get("container", self.task.runtime.get("docker")) - if isinstance(container, WDL.Expr.Get): - # relevant input - # print(str(container.expr)) - inp = [i.expr for i in self.task.inputs if i.name == str(container.expr)] - if len(inp) > 0: - container = inp[0] - else: - msg = f"Expression for determining containers was '{container}' but couldn't find input called {str(container.expr)}" - log_message(self.cmdtool.uuid, msg, category=ErrorCategory.SCRIPTING) + # from expr (NOTE: Janis doesn't really allow this. unsure if works for CWL / Nextflow) + if isinstance(container, WDL.Expr.Base): + res, success = parse_expr(container, self.task, self.cmdtool) + if not success: raise RuntimeError - if isinstance(container, WDL.Expr.String): - container = container.literal - if isinstance(container, WDL.Value.String): - container = container.value - if container is None: + if isinstance(res, StringFormatter): + has_single_kwarg = True if len(res.kwargs) == 1 else False + has_single_format = True if res._format.startswith('{') and res._format.endswith('}') else False + if has_single_kwarg and has_single_format: + arg = list(res.kwargs.values())[0] + str_literal = self.get_string_literal_expr(arg) + if str_literal is not None: + container = str_literal + else: + container = str(arg) + else: + str_literal = self.get_string_literal_expr(res) + if str_literal is not None: + container = str_literal + else: + container = str(res) + # from string literal + elif isinstance(container, str): + container = container + # no container + elif container is None: container = DEFAULT_CONTAINER - if not isinstance(container, str): - # TODO improve this using parse expr - msg = f"Expression for determining containers ({container}) are not supported in Janis, using default container" - log_message(self.cmdtool.uuid, msg, category=ErrorCategory.SCRIPTING) - raise RuntimeError + else: + raise NotImplementedError return container + def get_string_literal_expr(self, sel: Selector) -> Optional[str]: + if isinstance(sel, InputSelector): + assert self.task.inputs is not None + for inp in self.task.inputs: + if isinstance(inp.expr, WDL.Expr.String): + if isinstance(inp.expr.literal, WDL.Value.String): + return inp.expr.literal.value + return None + def fallback(self) -> str: msg = 'Error parsing container requirement' log_message(self.cmdtool.uuid, msg, category=ErrorCategory.FALLBACKS) diff --git a/janis_core/operators/standard.py b/janis_core/operators/standard.py index 5d100573d..1dc2dbc70 100644 --- a/janis_core/operators/standard.py +++ b/janis_core/operators/standard.py @@ -254,7 +254,7 @@ def to_wdl(self, unwrap_operator, *args): def to_cwl(self, unwrap_operator, *args): file_obj = unwrap_operator( - file_obj[0], add_path_suffix_to_input_selector_if_required=False + args[0], add_path_suffix_to_input_selector_if_required=False ) return file_obj + ".basename" diff --git a/janis_core/tests/data/cwl/tools/bowtie2.cwl b/janis_core/tests/data/cwl/tools/bowtie2.cwl new file mode 100755 index 000000000..ea2d841d3 --- /dev/null +++ b/janis_core/tests/data/cwl/tools/bowtie2.cwl @@ -0,0 +1,100 @@ +#!/usr/bin/env cwl-runner +cwlVersion: v1.0 +class: CommandLineTool + +doc: | + Aligns reads from ATAC-seq or ChIP-seq to an indexed reference genome + +requirements: + InlineJavascriptRequirement: {} + StepInputExpressionRequirement: {} +hints: + ResourceRequirement: + coresMin: 4 + ramMin: 30000 + DockerRequirement: + dockerPull: quay.io/biocontainers/bowtie2:2.3.0--py36_1 + SoftwareRequirement: + packages: + bowtie2: + specs: [ https://identifiers.org/biotools/bowtie2 ] + version: [ "2.3.0" ] + + +baseCommand: ["bowtie2"] +arguments: + - valueFrom: --very-sensitive + position: 1 + - valueFrom: $(runtime.cores) # set the number of threads + prefix: "-p" + position: 1 + - position: 10 # prefix for fastq1, differs for paired/single end + valueFrom: | + ${ + if ( inputs.is_paired_end ){ + return "-1"; + } + else { + return "-U"; + } + } + - valueFrom: $(inputs.fastq1.nameroot).sam + prefix: "-S" + position: 6 +stderr: $(inputs.fastq1.nameroot).bowtie2_stderr # log file + + +inputs: + reference_index: + doc: path to the FM-index files for the chosen reference genome + type: File + secondaryFiles: + - .fai + - ^.1.bt2 + - ^.2.bt2 + - ^.3.bt2 + - ^.4.bt2 + - ^.rev.1.bt2 + - ^.rev.2.bt2 + inputBinding: + position: 2 + prefix: "-x" + valueFrom: $(self.path.replace(/\.fa/i,"")) + fastq1: + type: File + inputBinding: + position: 11 + is_paired_end: + type: boolean + default: True + fastq2: + type: File? + inputBinding: + valueFrom: | + ${ + if ( inputs.is_paired_end ){ + return self; + } + else { + return null; + } + } + position: 12 + prefix: "-2" + max_mapping_insert_length: + doc: useful for very long fragments, as expected for ATAC + type: long? + default: 2000 + inputBinding: + prefix: --maxins + position: 1 + + +outputs: + sam: + type: File + outputBinding: + glob: "*.sam" + bowtie2_log: + type: stderr + diff --git a/janis_core/tests/test_ingestion_wdl.py b/janis_core/tests/test_ingestion_wdl.py index ccc120ea5..983069123 100644 --- a/janis_core/tests/test_ingestion_wdl.py +++ b/janis_core/tests/test_ingestion_wdl.py @@ -99,14 +99,14 @@ def test_tool_fastqc(self) -> None: filepath = f'{WDL_TESTDATA_PATH}/fastqc.wdl' cmdtool = ingest(filepath, 'wdl') self.assertIsInstance(cmdtool, CommandToolBuilder) - self.assertEqual(len(cmdtool._inputs), 21) + self.assertEqual(len(cmdtool._inputs), 20) self.assertEqual(len(cmdtool._outputs), 5) def test_tool_trim_adapters(self) -> None: filepath = f'{WDL_TESTDATA_PATH}/TrimAdapters.wdl' cmdtool = ingest(filepath, 'wdl') self.assertIsInstance(cmdtool, CommandToolBuilder) - self.assertEqual(len(cmdtool._inputs), 8) + self.assertEqual(len(cmdtool._inputs), 11) self.assertEqual(len(cmdtool._outputs), 3) def test_workflow_io(self) -> None: @@ -126,8 +126,8 @@ def test_workflow_atac(self) -> None: self.assertEqual(len(wf.input_nodes), 17) self.assertEqual(len(wf.step_nodes), 13) self.assertEqual(len(wf.output_nodes), 4) - + class TestRequirements(unittest.TestCase): @@ -143,6 +143,42 @@ def setUp(self) -> None: outputs=[] ) + def test_ignore_inputs1(self) -> None: + filepath = f'{WDL_TESTDATA_PATH}/requirements/bwa.wdl' + task = WDL.load(filepath).tasks[0] + cmdtool = parse_task(task) + expected_tinputids = set([ + 'read1', + 'read2', + 'bwaIndex', + 'outputPrefix', + 'sixtyFour', + 'usePostalt', + 'sortMemoryPerThreadGb', + 'compressionLevel', + 'readgroup', + 'sortThreads', + 'threads', + 'estimatedSortThreads', + 'totalSortThreads', + 'estimatedMemoryGb', + ]) + actual_tinputids = set([tinp.id() for tinp in cmdtool._inputs]) + self.assertSetEqual(actual_tinputids, expected_tinputids) + + def test_ignore_inputs2(self) -> None: + filepath = f'{WDL_TESTDATA_PATH}/requirements/alignment_metrics.wdl' + task = WDL.load(filepath).tasks[0] + cmdtool = parse_task(task) + expected_tinputids = set([ + 'aligned_bam', + 'ref_fasta', + 'primers_bed', + 'out_basename', + ]) + actual_tinputids = set([tinp.id() for tinp in cmdtool._inputs]) + self.assertSetEqual(actual_tinputids, expected_tinputids) + def test_container1(self) -> None: filepath = f'{WDL_TESTDATA_PATH}/requirements/annotsv_filter.wdl' task = WDL.load(filepath).tasks[0] @@ -157,6 +193,13 @@ def test_container2(self) -> None: expected = 'quay.io/biocontainers/mulled-v2-ad317f19f5881324e963f6a6d464d696a2825ab6:c59b7a73c87a9fe81737d5d628e10a3b5807f453-0' self.assertEqual(actual, expected) + def test_container3(self) -> None: + filepath = f'{WDL_TESTDATA_PATH}/requirements/alignment_metrics.wdl' + task = WDL.load(filepath).tasks[0] + actual = parse_container_requirement(task, self.mocktool) + expected = 'quay.io/broadinstitute/viral-core:2.1.33' + self.assertEqual(actual, expected) + def test_cpus1(self) -> None: filepath = f'{WDL_TESTDATA_PATH}/requirements/TrimAdapters.wdl' task = WDL.load(filepath).tasks[0] @@ -210,6 +253,8 @@ def test_disk2(self) -> None: + + ############################### ### DATATYPES / EXPRESSIONS ### ############################### @@ -226,13 +271,6 @@ def setUp(self) -> None: _do_setup_unsafe() -class TestLexer(unittest.TestCase): - - def setUp(self) -> None: - _do_setup_unsafe() - - - ############### ### COMMAND ### ############### @@ -463,6 +501,7 @@ def test_rename_tool(self) -> None: cmdtool = parse_task(task) self.assertIsInstance(cmdtool, CommandToolBuilder) + self.assertTrue(cmdtool.is_shell_script) self.assertEqual(cmdtool._base_command, ['sh', 'script.sh']) self.assertEqual(len(cmdtool._inputs), 2) self.assertEqual(cmdtool._inputs[0].id(), 'sourceFile') @@ -486,6 +525,7 @@ def test_io_tool(self) -> None: cmdtool = parse_task(task) self.assertIsInstance(cmdtool, CommandToolBuilder) + self.assertTrue(cmdtool.is_shell_script) self.assertEqual(cmdtool._base_command, ['sh', 'script.sh']) self.assertEqual(len(cmdtool._inputs), 7) self.assertEqual(len(cmdtool._outputs), 5) @@ -509,13 +549,66 @@ def test_fastqc_tool(self) -> None: filepath = f'{WDL_TESTDATA_PATH}/fastqc.wdl' d = WDL.load(filepath) task = d.tasks[0] - parse_task(task) + cmdtool = parse_task(task) + self.assertTrue(cmdtool.is_shell_script) def test_bwa_mem(self) -> None: filepath = f'{WDL_TESTDATA_PATH}/bwa_mem.wdl' d = WDL.load(filepath) task = d.tasks[0] - parse_task(task) + cmdtool = parse_task(task) + self.assertTrue(cmdtool.is_shell_script) + + def test_script(self) -> None: + settings.ingest.wdl.COMMAND_PARSER = 'shell' + filepath = f'{WDL_TESTDATA_PATH}/TrimAdapters.wdl' + d = WDL.load(filepath) + task = d.tasks[0] + cmdtool = parse_task(task) + self.assertIsInstance(cmdtool, CommandToolBuilder) + self.assertTrue(cmdtool.is_shell_script) + actual_script = cmdtool._files_to_create['script.sh'] + self.assertIsInstance(actual_script, StringFormatter) + actual_lines = _simple_lines(str(actual_script)) + expected_lines = [ + "set -euo pipefail", + "cutadapt \\", + "-f fastq \\", + "--minimum-length {inputs.min_length} \\", + "--quality-cutoff {inputs.quality_cutoff} \\", + "--adapter {inputs.adapter_seq_read1} \\", + "-A {inputs.adapter_seq_read2} \\", + "--output {inputs.fastq_trimmed_adapter_output_name_read1} \\", + "--paired-output {inputs.fastq_trimmed_adapter_output_name_read2} \\", + "{inputs.fastq_input_read1} {inputs.fastq_input_read2}", + ] + self.assertEqual(actual_lines, expected_lines) + + +class TestTasks(unittest.TestCase): + def test_inputs(self) -> None: + filepath = f'{WDL_TESTDATA_PATH}/TrimAdapters.wdl' + d = WDL.load(filepath) + task = d.tasks[0] + cmdtool = parse_task(task) + + self.assertIsInstance(cmdtool, CommandToolBuilder) + actual_tinpids = set(list(cmdtool.inputs_map().keys())) + expected_tinpids = set([ + 'fastq_input_read1', + 'fastq_input_read2', + 'min_length', + 'quality_cutoff', + 'adapter_seq_read1', + 'adapter_seq_read2', + 'output_base_name', + 'input_size', + 'disk_size', + 'fastq_trimmed_adapter_output_name_read1', + 'fastq_trimmed_adapter_output_name_read2', + ]) + self.assertSetEqual(actual_tinpids, expected_tinpids) + class TestPlumbing(unittest.TestCase): diff --git a/janis_core/tests/test_janis_translate.py b/janis_core/tests/test_janis_translate.py index da8f79fdc..ced292118 100644 --- a/janis_core/tests/test_janis_translate.py +++ b/janis_core/tests/test_janis_translate.py @@ -1551,6 +1551,12 @@ def test_tool_bwa(self): filepath = f'{WDL_TESTDATA_PATH}/bwa.wdl' mainstr = _run(filepath, self.src, self.dest) print(mainstr) + + def test_wf_atac(self): + filepath = f'{WDL_TESTDATA_PATH}/ATAC.wdl' + mainstr = _run(filepath, self.src, self.dest) + print(mainstr) + print() @unittest.skip('TODO: update for wdl ingest changes') def test_wf_somatic(self): @@ -1593,11 +1599,11 @@ def setUp(self) -> None: _reset_global_settings() settings.ingest.SAFE_MODE = True - @unittest.skip('TODO: update for wdl ingest changes') def test_wf_atac(self): filepath = f'{WDL_TESTDATA_PATH}/ATAC.wdl' mainstr = _run(filepath, self.src, self.dest) print(mainstr) + print() @unittest.skip('TODO: update for wdl ingest changes') def test_wf_mutect2(self): diff --git a/janis_core/tests/test_translation_modules.py b/janis_core/tests/test_translation_modules.py index 7223dae3c..2a489f539 100644 --- a/janis_core/tests/test_translation_modules.py +++ b/janis_core/tests/test_translation_modules.py @@ -3,7 +3,10 @@ import os.path from janis_core.translation_deps.exportpath import ExportPathKeywords - +from janis_core.ingestion import ingest +from janis_core.translations import CwlTranslator +from janis_core.translations import NextflowTranslator +from janis_core.translations import WdlTranslator class TestExportPath(unittest.TestCase): diff --git a/janis_core/tool/commandtool.py b/janis_core/tool/commandtool.py index 7abb183d2..8fb1eb9a2 100644 --- a/janis_core/tool/commandtool.py +++ b/janis_core/tool/commandtool.py @@ -692,7 +692,12 @@ def arguments(self): def outputs(self) -> List[ToolOutput]: return self._outputs - def container(self) -> str: + def container(self) -> str | Any: + """ + Allowing Any to support WDL container expressions. + Can translate to nextflow but not CWL. + log error for CWL. + """ return self._container def version(self) -> str: @@ -865,3 +870,4 @@ def __init__( self._directories_to_create = directories_to_create self._files_to_create = files_to_create self._doc = doc + self.is_shell_script = False diff --git a/janis_core/translations/cwl/main.py b/janis_core/translations/cwl/main.py index 02fb73f06..4d7d8d915 100644 --- a/janis_core/translations/cwl/main.py +++ b/janis_core/translations/cwl/main.py @@ -1931,7 +1931,7 @@ def translate_to_cwl_glob(glob, inputsdict, tool, **debugkwargs): return intype.generated_filename(), None expr = glob - if tinp.default: + if tinp.default is not None: expr = If(IsDefined(glob), expr, tinp.default) return ( diff --git a/janis_core/translations/nextflow/generate/process/inputs.py b/janis_core/translations/nextflow/generate/process/inputs.py index 7001b0014..9028adb85 100644 --- a/janis_core/translations/nextflow/generate/process/inputs.py +++ b/janis_core/translations/nextflow/generate/process/inputs.py @@ -4,6 +4,7 @@ ToolInput, TInput, CommandTool, + CommandToolBuilder, PythonTool, File, DataType @@ -70,9 +71,15 @@ def generate_code_file_input(self) -> None: self.process_inputs.append(new_input) def generate_files_to_create_inputs(self) -> None: - if isinstance(self.tool, CommandTool) and not settings.ingest.SOURCE == 'galaxy': + if isinstance(self.tool, CommandToolBuilder) and not settings.ingest.SOURCE == 'galaxy': if self.tool._files_to_create: + assert isinstance(self.tool._files_to_create, dict) for filename, filecontents in self.tool._files_to_create.items(): + + # ignoring shell script parsed from WDL + if self.tool.is_shell_script and filename == 'script.sh': + continue + # generate a name for this input if len(self.tool._files_to_create) == 1: name = 'script' diff --git a/janis_core/translations/nextflow/generate/process/outputs/factory_cmdtool.py b/janis_core/translations/nextflow/generate/process/outputs/factory_cmdtool.py index 7422e7bda..a6d7e22fc 100644 --- a/janis_core/translations/nextflow/generate/process/outputs/factory_cmdtool.py +++ b/janis_core/translations/nextflow/generate/process/outputs/factory_cmdtool.py @@ -115,8 +115,8 @@ def get_fmttype(self, selector: Any) -> FmtType: # output uses InputSelector elif isinstance(selector, InputSelector): - # if selector.input_to_select not in self.tool.inputs_map(): - # print() + if selector.input_to_select not in self.tool.inputs_map(): + print() tinput = self.tool.inputs_map()[selector.input_to_select] # ToolInput is Filename type diff --git a/janis_core/translations/nextflow/generate/process/script/main.py b/janis_core/translations/nextflow/generate/process/script/main.py index 5201cd632..3ea5f87c0 100644 --- a/janis_core/translations/nextflow/generate/process/script/main.py +++ b/janis_core/translations/nextflow/generate/process/script/main.py @@ -1,15 +1,9 @@ - from typing import Tuple, Optional +import regex as re -from janis_core import CommandToolBuilder, ToolArgument, Stdout -from janis_core import settings -from janis_core.translations.common import trace - -from .... import naming +from janis_core import CommandToolBuilder, Stdout, StringFormatter from ....unwrap import unwrap_expression from ....variables import VariableManager -from ....variables import VariableType - from .prescript import gen_prescript_lines from .script import gen_script_lines @@ -18,10 +12,8 @@ def gen_nf_process_script( tool: CommandToolBuilder, vmanager: VariableManager, ) -> Tuple[Optional[str], str]: - return ProcessScriptGenerator( - tool=tool, - vmanager=vmanager, - ).generate() + generator = ProcessScriptGenerator(tool, vmanager) + return generator.generate() class ProcessScriptGenerator: @@ -32,67 +24,63 @@ def __init__( ): self.tool = tool self.vmanager = vmanager - self.prescript: list[str] = [] - self.script: list[str] = [] + self.prescript_lines: list[str] = [] + self.script_lines: list[str] = [] def generate(self) -> Tuple[Optional[str], str]: """Generate the script content of a Nextflow process for Janis command line tool""" - # self.handle_undefined_variable_references() + prescript = self.generate_prescript() + + if self.tool.is_shell_script: + script = self.generate_script_shell() + else: + script = self.generate_script_default() + + return prescript, script + + def generate_prescript(self) -> Optional[str]: + self.prescript_lines += gen_prescript_lines(self.tool, self.vmanager) + if self.prescript_lines: + return '\n'.join(self.prescript_lines) + return None + + def generate_script_shell(self) -> str: + assert 'script.sh' in self.tool._files_to_create + contents = self.tool._files_to_create['script.sh'] + if not isinstance(contents, StringFormatter): + raise NotImplementedError + script = unwrap_expression( + val=contents, + context='process_script', + variable_manager=self.vmanager, + tool=self.tool, + ) + assert isinstance(script, str) + script = self.deindent(script) + return script + + def deindent(self, text: str) -> str: + #wrapped in try except cuz seems dodgy + try: + # remove common indent + PATTERN = r'(\n[ \t]+)' + match = list(re.finditer(PATTERN, text))[0] + indent = match.group(1) + text = '\n' + text + text = text.replace(indent, '\n') + + # remove beinning newlines + text = re.sub(r'^\n*\n', '\n', text) + except Exception as e: + pass + return text + + def generate_script_default(self) -> str: self.handle_cmdtool_directories() self.handle_cmdtool_base_command() - # if settings.translate.MODE != 'skeleton': self.handle_cmdtool_inputs_arguments() self.handle_stdout_redirect() - prescript = self.finalise_prescript() - script = self.finalise_script() - return prescript, script - - def handle_undefined_variable_references(self) -> None: - """ - create definitions for referenced tool inputs in pre-script section - ensures all referenced variables in script are defined - """ - undef_variables = self.get_undefined_variable_references() - for varname in undef_variables: - line = f'def {varname} = null' - self.prescript.append(line) - - def get_undefined_variable_references(self) -> set[str]: - """ - ensure all referenced variables are defined - references to process / param tool inputs are ok as always have variable defined. - references to internal inputs are not defined. - - for tool inputs / arguments / outputs referencing internal input variables: - - can autofill their value if a default is present, or - - must define as null ('def [var] = null') if no default. - """ - undef_variables: set[str] = set() - - all_entities = self.tool.inputs() + self.tool.outputs() - if self.tool.arguments(): - arguments: list[ToolArgument] = self.tool.arguments() - all_entities += arguments - - for entity in all_entities: - # get all referenced tool inputs - referenced_ids = trace.trace_referenced_variables(entity, self.tool) - - # check if any are internal inputs with no default value - for ref in referenced_ids: - var = self.vmanager.get(ref).original - if var.vtype == VariableType.IGNORED: - tinput = [x for x in self.tool.inputs() if x.id() == ref][0] - if tinput.default is None: - varname = naming.process.generic(tinput) - undef_variables.add(varname) - self.vmanager.update( - tinput_id=tinput.id(), - vtype_str='local', - value=varname - ) - - return undef_variables + return self.finalise_script() def handle_cmdtool_directories(self) -> None: """generate cmdline 'mkdir' statement for each directory to create""" @@ -104,19 +92,18 @@ def handle_cmdtool_directories(self) -> None: tool=self.tool, ) line = f"mkdir -p '{unwrapped_dir}';" - self.script.append(line) + self.script_lines.append(line) def handle_cmdtool_base_command(self) -> None: bc = self.tool.base_command() if bc is not None: if isinstance(bc, list): - self.script += [' '.join([str(cmd) for cmd in bc])] + self.script_lines += [' '.join([str(cmd) for cmd in bc])] else: - self.script += [str(bc)] + self.script_lines += [str(bc)] def handle_cmdtool_inputs_arguments(self) -> None: - self.prescript += gen_prescript_lines(self.tool, self.vmanager) - self.script += gen_script_lines(self.tool, self.vmanager) + self.script_lines += gen_script_lines(self.tool, self.vmanager) def handle_stdout_redirect(self) -> None: assert(len([out for out in self.tool.outputs() if isinstance(out.output_type, Stdout)]) <= 1) @@ -126,15 +113,10 @@ def handle_stdout_redirect(self) -> None: suffix = out.output_type.subtype.extension else: suffix = '' - self.script.append(f'> {out.id()}{suffix}') - - def finalise_prescript(self) -> Optional[str]: - if self.prescript: - return '\n'.join(self.prescript) - return None + self.script_lines.append(f'> {out.id()}{suffix}') def finalise_script(self) -> str: - script = self.script + script = self.script_lines if len(script) == 0: return '' elif len(script) == 1: @@ -143,3 +125,60 @@ def finalise_script(self) -> str: script = [f"{ln} \\" for ln in script[:-1]] + [script[-1]] # type: ignore return '\n'.join(script) # type: ignore + + + + # def get_undefined_variable_references(self) -> set[str]: + # """ + # ensure all referenced variables are defined + # references to process / param tool inputs are ok as always have variable defined. + # references to internal inputs are not defined. + + # for tool inputs / arguments / outputs referencing internal input variables: + # - can autofill their value if a default is present, or + # - must define as null ('def [var] = null') if no default. + # """ + # undef_variables: set[str] = set() + + # all_entities = self.tool.inputs() + self.tool.outputs() + # if self.tool.arguments(): + # arguments: list[ToolArgument] = self.tool.arguments() + # all_entities += arguments + + # for entity in all_entities: + # # get all referenced tool inputs + # referenced_ids = trace.trace_referenced_variables(entity, self.tool) + + # # check if any are internal inputs with no default value + # for ref in referenced_ids: + # var = self.vmanager.get(ref).original + # if var.vtype == VariableType.IGNORED: + # tinput = [x for x in self.tool.inputs() if x.id() == ref][0] + # if tinput.default is None: + # varname = naming.process.generic(tinput) + # undef_variables.add(varname) + # self.vmanager.update( + # tinput_id=tinput.id(), + # vtype_str='local', + # value=varname + # ) + + # return undef_variables + + + # def handle_undefined_variable_references(self) -> None: + # """ + # create definitions for referenced tool inputs in pre-script section + # ensures all referenced variables in script are defined + # """ + # undef_variables = self.get_undefined_variable_references() + # for varname in undef_variables: + # line = f'def {varname} = null' + # self.prescript_lines.append(line) + + +# handle_cmdtool_directories +# handle_cmdtool_base_command +# handle_cmdtool_inputs_arguments +# handle_stdout_redirect +# finalise_script \ No newline at end of file diff --git a/janis_core/translations/nextflow/preprocessing/task_inputs/populator.py b/janis_core/translations/nextflow/preprocessing/task_inputs/populator.py index a23651ec2..4946c9c14 100644 --- a/janis_core/translations/nextflow/preprocessing/task_inputs/populator.py +++ b/janis_core/translations/nextflow/preprocessing/task_inputs/populator.py @@ -50,6 +50,11 @@ def populate_scripts(tool: CommandToolBuilder) -> None: for filename in tool._files_to_create.keys(): # type: ignore # get the file path to where the script will appear in the translation assert(isinstance(filename, str)) + + # ignoring shell script parsed from WDL + if tool.is_shell_script and filename == 'script.sh': + continue + path = os.path.join(settings.translate.nextflow.TEMPLATES_OUTDIR, filename) # generate a name for this input diff --git a/janis_core/translations/translationbase.py b/janis_core/translations/translationbase.py index 96123de77..b9374fb1d 100644 --- a/janis_core/translations/translationbase.py +++ b/janis_core/translations/translationbase.py @@ -368,34 +368,20 @@ def _gen_template_files(self, tool: CommandToolBuilder | CodeTool | WorkflowBuil # If name is a File or Directory, the entryname field overrides the value of basename of the File or Directory object raise NotImplementedError() + if name == 'script.sh' and tool.is_shell_script: + # don't create externally passed script for shell tools + continue + if isinstance(contents, str): - assert(not name.startswith('unnamed_')) - if '<js>' in contents: - # ignore, print error message for user - raise NotImplementedError() - pass - else: - # create file - files[name] = contents + files[name] = contents elif isinstance(contents, InputSelector): tinput_name = contents.input_to_select tinput = tool.inputs_map()[tinput_name] if isinstance(tinput.intype, File | Directory): raise NotImplementedError() - print('ignored staging File into process') else: raise NotImplementedError() - print('ignored staging String into process') - # # js evaluates to a file: add referenced file to output directory - # if name.startswith('unnamed_'): - # # dont override filename - # pass - # else: - # # override filename - # pass - # print() - else: raise NotImplementedError diff --git a/notes.txt b/notes.txt index 4713953fd..a8b71f46e 100644 --- a/notes.txt +++ b/notes.txt @@ -1,5 +1,17 @@ +WDL +- container exprs +- runtime exprs nextflow +- unwrap script.sh + - Nextflow ok. Create param + - CWL log message + if not isinstance(container, str | None): + # TODO nextflow make param. + msg = 'Container requirement uses expression. Please address' + log_message(self.cmdtool.uuid, msg, category=ErrorCategory.FALLBACKS) + container = str(container) + -------------- --- GENERAL --- --------------- From 81710eb820bab1a44307ce1a95efba0986afed78 Mon Sep 17 00:00:00 2001 From: Grace Hall <graceavahall@gmail.com> Date: Tue, 5 Dec 2023 22:38:04 +1100 Subject: [PATCH 26/32] updated requirements --- requirements/base.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements/base.txt b/requirements/base.txt index d2d29b7fe..f5c8ab4ae 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -28,3 +28,4 @@ cwl-utils==0.15 graphviz nose pydantic<2 +Levenshtein From 681ab7ccb982446d21e14d7448921ef9eef84dad Mon Sep 17 00:00:00 2001 From: Grace Hall <graceavahall@gmail.com> Date: Tue, 5 Dec 2023 23:03:22 +1100 Subject: [PATCH 27/32] fixed testsuite issues --- janis_core/tests/test_ingestion_cwl.py | 5 +- janis_core/tests/test_ingestion_galaxy.py | 1 + janis_core/tests/test_janis_translate.py | 66 +++++++++++++++-------- notes.txt | 2 + 4 files changed, 51 insertions(+), 23 deletions(-) diff --git a/janis_core/tests/test_ingestion_cwl.py b/janis_core/tests/test_ingestion_cwl.py index 1ca0ac0cb..958d98587 100644 --- a/janis_core/tests/test_ingestion_cwl.py +++ b/janis_core/tests/test_ingestion_cwl.py @@ -2,6 +2,7 @@ import unittest import os from typing import Any, Tuple +import regex as re from janis_core import ( InputSelector, @@ -544,7 +545,9 @@ def test_enum_type(self): self.assertIsInstance(dtype, File) lines = load_loglines(entity_uuids=set(['test'])) msgs = [x.message for x in lines] - self.assertIn('entity: unsupported datatype file:///home/grace/work/pp/translation/janis-core/janis_core/tests/data/cwl/tools/gatk_haplotype_tool.cwl#annotation_type. treated as generic File.', msgs) + msg = [x for x in msgs if 'entity: unsupported datatype' in x][0] + matches = re.findall(r'entity: unsupported datatype (.*). treated as generic File.', msg) + self.assertEqual(len(matches), 1) def test_unparseable_secondary_type(self): settings.datatypes.ALLOW_UNPARSEABLE_DATATYPES = True diff --git a/janis_core/tests/test_ingestion_galaxy.py b/janis_core/tests/test_ingestion_galaxy.py index b5907e62c..736ae7207 100644 --- a/janis_core/tests/test_ingestion_galaxy.py +++ b/janis_core/tests/test_ingestion_galaxy.py @@ -439,6 +439,7 @@ def setUpClass(cls) -> None: cls.cutadapt_xmltool = _load_xmltool_for_step(cls.CUTADAPT_WF_FILEPATH, 2) _reset_global_settings() cls.limmavoom_xmltool = _load_xmltool_for_step(cls.LIMMAVOOM_WF_FILEPATH, 3) + _reset_global_settings() def setUp(self) -> None: _reset_global_settings() diff --git a/janis_core/tests/test_janis_translate.py b/janis_core/tests/test_janis_translate.py index ced292118..ac557458c 100644 --- a/janis_core/tests/test_janis_translate.py +++ b/janis_core/tests/test_janis_translate.py @@ -649,7 +649,8 @@ def test_wf_bwa_aligner(self) -> None: # settings.translate.MODE = 'skeleton' from janis_bioinformatics.tools.common import BwaAligner wf = BwaAligner() - maintask, config, subtasks = translate(wf, self.dest, export_path='./translated') + wf = to_builders(wf) + maintask, config, subworkflows, processes = translate(wf, self.dest, export_path='./translated') @unittest.skipUnless(janis_pipelines_installed(), "janis_pipelines not installed") def test_wf_bwa_alignment(self) -> None: @@ -658,61 +659,71 @@ def test_wf_bwa_alignment(self) -> None: # settings.translate.MODE = 'skeleton' from janis_pipelines.alignment.alignment import BwaAlignment wf = BwaAlignment() - maintask, config, subtasks = translate(wf, self.dest, export_path='./translated') + wf = to_builders(wf) + maintask, config, subworkflows, processes = translate(wf, self.dest, export_path='./translated') @unittest.skipUnless(janis_pipelines_installed(), "janis_pipelines not installed") def test_wf_bwa_alignment_and_qc(self) -> None: from janis_pipelines import BwaAlignmentAndQC wf = BwaAlignmentAndQC() - maintask, config, subtasks = translate(wf, self.dest, export_path='./translated') + wf = to_builders(wf) + maintask, config, subworkflows, processes = translate(wf, self.dest, export_path='./translated') @unittest.skipUnless(janis_pipelines_installed(), "janis_pipelines not installed") def test_wf_wgs_germline_gatk(self) -> None: from janis_pipelines import WGSGermlineGATK wf = WGSGermlineGATK() - maintask, config, subtasks = translate(wf, self.dest, export_path='./translated') + wf = to_builders(wf) + maintask, config, subworkflows, processes = translate(wf, self.dest, export_path='./translated') @unittest.skipUnless(janis_pipelines_installed(), "janis_pipelines not installed") def test_wf_wgs_germline_gatk_variants_only(self) -> None: from janis_pipelines import WGSGermlineGATKVariantsOnly wf = WGSGermlineGATKVariantsOnly() - maintask, config, subtasks = translate(wf, self.dest, export_path='./translated') + wf = to_builders(wf) + maintask, config, subworkflows, processes = translate(wf, self.dest, export_path='./translated') @unittest.skipUnless(janis_pipelines_installed(), "janis_pipelines not installed") def test_wf_wgs_germline_multi_callers(self) -> None: from janis_pipelines import WGSGermlineMultiCallers wf = WGSGermlineMultiCallers() - maintask, config, subtasks = translate(wf, self.dest, export_path='./translated') + wf = to_builders(wf) + maintask, config, subworkflows, processes = translate(wf, self.dest, export_path='./translated') @unittest.skipUnless(janis_pipelines_installed(), "janis_pipelines not installed") def test_wf_wgs_germline_multi_callers_variants_only(self) -> None: from janis_pipelines import WGSGermlineMultiCallersVariantsOnly wf = WGSGermlineMultiCallersVariantsOnly() - maintask, config, subtasks = translate(wf, self.dest, export_path='./translated') + wf = to_builders(wf) + maintask, config, subworkflows, processes = translate(wf, self.dest, export_path='./translated') @unittest.skipUnless(janis_pipelines_installed(), "janis_pipelines not installed") def test_wf_wgs_somatic_gatk(self) -> None: from janis_pipelines import WGSSomaticGATK wf = WGSSomaticGATK() - maintask, config, subtasks = translate(wf, self.dest, export_path='./translated') + wf = to_builders(wf) + maintask, config, subworkflows, processes = translate(wf, self.dest, export_path='./translated') @unittest.skipUnless(janis_pipelines_installed(), "janis_pipelines not installed") def test_wf_wgs_somatic_gatk_variants_only(self) -> None: from janis_pipelines import WGSSomaticGATKVariantsOnly wf = WGSSomaticGATKVariantsOnly() - maintask, config, subtasks = translate(wf, self.dest, export_path='./translated') + wf = to_builders(wf) + maintask, config, subworkflows, processes = translate(wf, self.dest, export_path='./translated') @unittest.skipUnless(janis_pipelines_installed(), "janis_pipelines not installed") def test_wf_wgs_somatic_multi_callers(self) -> None: from janis_pipelines import WGSSomaticMultiCallers wf = WGSSomaticMultiCallers() - maintask, config, subtasks = translate(wf, self.dest, export_path='./translated') + wf = to_builders(wf) + maintask, config, subworkflows, processes = translate(wf, self.dest, export_path='./translated') @unittest.skipUnless(janis_pipelines_installed(), "janis_pipelines not installed") def test_wf_wgs_somatic_multi_callers_variants_only(self) -> None: from janis_pipelines import WGSSomaticMultiCallersVariantsOnly wf = WGSSomaticMultiCallersVariantsOnly() - maintask, config, subtasks = translate(wf, self.dest, export_path='./translated') + wf = to_builders(wf) + maintask, config, subworkflows, processes = translate(wf, self.dest, export_path='./translated') class TestJanisToWDL(unittest.TestCase): @@ -726,67 +737,78 @@ def setUp(self) -> None: def test_wf_bwa_aligner(self) -> None: from janis_bioinformatics.tools.common import BwaAligner wf = BwaAligner() - maintask, config, subtasks = translate(wf, self.dest, export_path='./translated') + wf = to_builders(wf) + maintask, config, subworkflows, processes = translate(wf, self.dest, export_path='./translated') @unittest.skipUnless(janis_pipelines_installed(), "janis_pipelines not installed") def test_wf_bwa_alignment(self) -> None: from janis_pipelines.alignment.alignment import BwaAlignment wf = BwaAlignment() - maintask, config, subtasks = translate(wf, self.dest, export_path='./translated') + wf = to_builders(wf) + maintask, config, subworkflows, processes = translate(wf, self.dest, export_path='./translated') @unittest.skipUnless(janis_pipelines_installed(), "janis_pipelines not installed") def test_wf_bwa_alignment_and_qc(self) -> None: from janis_pipelines import BwaAlignmentAndQC wf = BwaAlignmentAndQC() - maintask, config, subtasks = translate(wf, self.dest, export_path='./translated') + wf = to_builders(wf) + maintask, config, subworkflows, processes = translate(wf, self.dest, export_path='./translated') @unittest.skipUnless(janis_pipelines_installed(), "janis_pipelines not installed") def test_wf_wgs_germline_gatk(self) -> None: from janis_pipelines import WGSGermlineGATK wf = WGSGermlineGATK() - maintask, config, subtasks = translate(wf, self.dest, export_path='./translated') + wf = to_builders(wf) + maintask, config, subworkflows, processes = translate(wf, self.dest, export_path='./translated') @unittest.skipUnless(janis_pipelines_installed(), "janis_pipelines not installed") def test_wf_wgs_germline_gatk_variants_only(self) -> None: from janis_pipelines import WGSGermlineGATKVariantsOnly wf = WGSGermlineGATKVariantsOnly() - maintask, config, subtasks = translate(wf, self.dest, export_path='./translated') + wf = to_builders(wf) + maintask, config, subworkflows, processes = translate(wf, self.dest, export_path='./translated') @unittest.skipUnless(janis_pipelines_installed(), "janis_pipelines not installed") def test_wf_wgs_germline_multi_callers(self) -> None: from janis_pipelines import WGSGermlineMultiCallers wf = WGSGermlineMultiCallers() - maintask, config, subtasks = translate(wf, self.dest, export_path='./translated') + wf = to_builders(wf) + maintask, config, subworkflows, processes = translate(wf, self.dest, export_path='./translated') @unittest.skipUnless(janis_pipelines_installed(), "janis_pipelines not installed") def test_wf_wgs_germline_multi_callers_variants_only(self) -> None: from janis_pipelines import WGSGermlineMultiCallersVariantsOnly wf = WGSGermlineMultiCallersVariantsOnly() - maintask, config, subtasks = translate(wf, self.dest, export_path='./translated') + wf = to_builders(wf) + maintask, config, subworkflows, processes = translate(wf, self.dest, export_path='./translated') @unittest.skipUnless(janis_pipelines_installed(), "janis_pipelines not installed") def test_wf_wgs_somatic_gatk(self) -> None: from janis_pipelines import WGSSomaticGATK wf = WGSSomaticGATK() - maintask, config, subtasks = translate(wf, self.dest, export_path='./translated') + wf = to_builders(wf) + maintask, config, subworkflows, processes = translate(wf, self.dest, export_path='./translated') @unittest.skipUnless(janis_pipelines_installed(), "janis_pipelines not installed") def test_wf_wgs_somatic_gatk_variants_only(self) -> None: from janis_pipelines import WGSSomaticGATKVariantsOnly wf = WGSSomaticGATKVariantsOnly() - maintask, config, subtasks = translate(wf, self.dest, export_path='./translated') + wf = to_builders(wf) + maintask, config, subworkflows, processes = translate(wf, self.dest, export_path='./translated') @unittest.skipUnless(janis_pipelines_installed(), "janis_pipelines not installed") def test_wf_wgs_somatic_multi_callers(self) -> None: from janis_pipelines import WGSSomaticMultiCallers wf = WGSSomaticMultiCallers() - maintask, config, subtasks = translate(wf, self.dest, export_path='./translated') + wf = to_builders(wf) + maintask, config, subworkflows, processes = translate(wf, self.dest, export_path='./translated') @unittest.skipUnless(janis_pipelines_installed(), "janis_pipelines not installed") def test_wf_wgs_somatic_multi_callers_variants_only(self) -> None: from janis_pipelines import WGSSomaticMultiCallersVariantsOnly wf = WGSSomaticMultiCallersVariantsOnly() - maintask, config, subtasks = translate(wf, self.dest, export_path='./translated') + wf = to_builders(wf) + maintask, config, subworkflows, processes = translate(wf, self.dest, export_path='./translated') # ---- PREPROCESSING: PRUNE ------------------------------ diff --git a/notes.txt b/notes.txt index a8b71f46e..0d3d855de 100644 --- a/notes.txt +++ b/notes.txt @@ -1,4 +1,6 @@ +errs + WDL - container exprs From 65202d5597843886056a5e4f37065006a5f35542 Mon Sep 17 00:00:00 2001 From: Grace Hall <graceavahall@gmail.com> Date: Tue, 5 Dec 2023 23:27:37 +1100 Subject: [PATCH 28/32] hopefully fixed test errors (paths) --- janis_core/tests/test_ingestion_galaxy.py | 1 + 1 file changed, 1 insertion(+) diff --git a/janis_core/tests/test_ingestion_galaxy.py b/janis_core/tests/test_ingestion_galaxy.py index 736ae7207..4a4abdbbe 100644 --- a/janis_core/tests/test_ingestion_galaxy.py +++ b/janis_core/tests/test_ingestion_galaxy.py @@ -798,6 +798,7 @@ def test_all_hisat2(self) -> None: self.assertSetEqual(actual_options, expected_options) self.assertIsNone(command.redirect) + @unittest.skip('TODO - need to fix this test. cant find wrapper for picard_MarkDuplicates:f9242e01365a') def test_all_picard_markduplicates(self) -> None: filepath = os.path.abspath(f'{GALAXY_TESTWF_PATH}/wf_mark_duplicates.ga') gx_workflow = _load_gxworkflow(filepath) From 982fc98fffbb8c0bd8c84a3a8fdcb0e57d6559db Mon Sep 17 00:00:00 2001 From: Grace Hall <graceavahall@gmail.com> Date: Tue, 5 Dec 2023 23:30:38 +1100 Subject: [PATCH 29/32] fixed test suite path issues --- janis_core/tests/data/wdl/Reads2Map | 1 - .../EmpiricalMaps/EmpiricalMaps.changelog.md | 36 + .../pipelines/EmpiricalMaps/EmpiricalMaps.wdl | 235 ++++ .../EmpiricalReads2Map.changelog.md | 32 + .../EmpiricalReads2Map/EmpiricalReads2Map.wdl | 63 + .../EmpiricalSNPCalling.changelog.md | 32 + .../EmpiricalSNPCalling.wdl | 85 ++ .../PreprocessingReads.changelog.md | 9 + .../PreprocessingReads/PreprocessingReads.wdl | 43 + .../SimulatedReads2Map.changelog.md | 23 + .../SimulatedReads2Map/SimulatedReads2Map.wdl | 78 ++ .../wdl/reads2map/structs/dna_seq_structs.wdl | 13 + .../structs/empirical_maps_structs.wdl | 10 + .../reads2map/structs/population_structs.wdl | 7 + .../structs/preprocessing_reads_structs.wdl | 9 + .../structs/read_simulation_structs.wdl | 31 + .../data/wdl/reads2map/subworkflows/MCHap.wdl | 83 ++ .../subworkflows/SimulatedSingleFamily.wdl | 269 +++++ .../create_alignment_from_families_files.wdl | 51 + ...create_alignment_from_read_simulations.wdl | 175 +++ .../subworkflows/freebayes_genotyping.wdl | 86 ++ .../subworkflows/gatk_genotyping.wdl | 176 +++ .../subworkflows/genotyping_empirical.wdl | 105 ++ .../subworkflows/genotyping_simulated.wdl | 116 ++ .../subworkflows/gusmap_maps_empirical.wdl | 38 + .../subworkflows/gusmap_maps_simulated.wdl | 50 + .../subworkflows/hard_filtering_empirical.wdl | 41 + .../subworkflows/hard_filtering_simulated.wdl | 49 + .../subworkflows/mappoly_maps_empirical.wdl | 47 + .../reads2map/subworkflows/norm_filt_vcf.wdl | 45 + .../subworkflows/snpcaller_maps_empirical.wdl | 95 ++ .../subworkflows/snpcaller_maps_simulated.wdl | 104 ++ .../tests/data/wdl/reads2map/tasks/BWA.wdl | 249 ++++ .../data/wdl/reads2map/tasks/JointReports.wdl | 451 +++++++ .../data/wdl/reads2map/tasks/bcftools.wdl | 53 + .../data/wdl/reads2map/tasks/chunk_lists.wdl | 266 ++++ .../data/wdl/reads2map/tasks/cutadapt.wdl | 32 + .../data/wdl/reads2map/tasks/freebayes.wdl | 48 + .../tests/data/wdl/reads2map/tasks/gatk.wdl | 459 +++++++ .../tests/data/wdl/reads2map/tasks/gusmap.wdl | 266 ++++ .../data/wdl/reads2map/tasks/mappoly.wdl | 148 +++ .../tests/data/wdl/reads2map/tasks/mchap.wdl | 126 ++ .../reads2map/tasks/pedigree_simulator.wdl | 46 + .../tasks/pedigree_simulator_utils.wdl | 411 +++++++ .../tests/data/wdl/reads2map/tasks/pirs.wdl | 40 + .../data/wdl/reads2map/tasks/radinitio.wdl | 123 ++ .../data/wdl/reads2map/tasks/simuscop.wdl | 136 +++ .../tests/data/wdl/reads2map/tasks/stacks.wdl | 40 + .../tests/data/wdl/reads2map/tasks/utils.wdl | 623 ++++++++++ .../tests/data/wdl/reads2map/tasks/utilsR.wdl | 1075 +++++++++++++++++ .../data/wdl/reads2map/tasks/vcf2diploid.wdl | 44 + janis_core/tests/test_ingestion_wdl.py | 8 +- janis_core/tests/test_janis_translate.py | 14 +- 53 files changed, 6883 insertions(+), 12 deletions(-) delete mode 160000 janis_core/tests/data/wdl/Reads2Map create mode 100644 janis_core/tests/data/wdl/reads2map/pipelines/EmpiricalMaps/EmpiricalMaps.changelog.md create mode 100644 janis_core/tests/data/wdl/reads2map/pipelines/EmpiricalMaps/EmpiricalMaps.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/pipelines/EmpiricalReads2Map/EmpiricalReads2Map.changelog.md create mode 100644 janis_core/tests/data/wdl/reads2map/pipelines/EmpiricalReads2Map/EmpiricalReads2Map.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/pipelines/EmpiricalSNPCalling/EmpiricalSNPCalling.changelog.md create mode 100644 janis_core/tests/data/wdl/reads2map/pipelines/EmpiricalSNPCalling/EmpiricalSNPCalling.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/pipelines/PreprocessingReads/PreprocessingReads.changelog.md create mode 100644 janis_core/tests/data/wdl/reads2map/pipelines/PreprocessingReads/PreprocessingReads.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/pipelines/SimulatedReads2Map/SimulatedReads2Map.changelog.md create mode 100644 janis_core/tests/data/wdl/reads2map/pipelines/SimulatedReads2Map/SimulatedReads2Map.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/structs/dna_seq_structs.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/structs/empirical_maps_structs.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/structs/population_structs.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/structs/preprocessing_reads_structs.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/structs/read_simulation_structs.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/subworkflows/MCHap.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/subworkflows/SimulatedSingleFamily.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/subworkflows/create_alignment_from_families_files.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/subworkflows/create_alignment_from_read_simulations.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/subworkflows/freebayes_genotyping.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/subworkflows/gatk_genotyping.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/subworkflows/genotyping_empirical.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/subworkflows/genotyping_simulated.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/subworkflows/gusmap_maps_empirical.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/subworkflows/gusmap_maps_simulated.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/subworkflows/hard_filtering_empirical.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/subworkflows/hard_filtering_simulated.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/subworkflows/mappoly_maps_empirical.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/subworkflows/norm_filt_vcf.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/subworkflows/snpcaller_maps_empirical.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/subworkflows/snpcaller_maps_simulated.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/tasks/BWA.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/tasks/JointReports.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/tasks/bcftools.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/tasks/chunk_lists.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/tasks/cutadapt.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/tasks/freebayes.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/tasks/gatk.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/tasks/gusmap.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/tasks/mappoly.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/tasks/mchap.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/tasks/pedigree_simulator.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/tasks/pedigree_simulator_utils.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/tasks/pirs.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/tasks/radinitio.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/tasks/simuscop.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/tasks/stacks.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/tasks/utils.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/tasks/utilsR.wdl create mode 100644 janis_core/tests/data/wdl/reads2map/tasks/vcf2diploid.wdl diff --git a/janis_core/tests/data/wdl/Reads2Map b/janis_core/tests/data/wdl/Reads2Map deleted file mode 160000 index 87b96b0c2..000000000 --- a/janis_core/tests/data/wdl/Reads2Map +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 87b96b0c20e286b83ae068c818a23fa06b1cb597 diff --git a/janis_core/tests/data/wdl/reads2map/pipelines/EmpiricalMaps/EmpiricalMaps.changelog.md b/janis_core/tests/data/wdl/reads2map/pipelines/EmpiricalMaps/EmpiricalMaps.changelog.md new file mode 100644 index 000000000..35376ea16 --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/pipelines/EmpiricalMaps/EmpiricalMaps.changelog.md @@ -0,0 +1,36 @@ +# 1.2.0 + +* Add MAPpoly to build linkage maps for polyploid species +* Adjust runtimes +* Add polyploid dataset for tests + +# 1.1.0 + +2022-12-05 + +* Include optional values to skip some of the sub-workflows +* Accepts any number of VCF files as input +* Dosage calling with updog, polyRAD and SuperMASSA adapted to polyploids +* More tests and example data sets included + +# 1.0.0 + +Initial release + +This workflow receives as input VCF files from EmpiricalSNPCalling workflow and result in 34 linkage maps for a single chromosome running the combinations: + +* SNP calling: GATK and Freebayes +* Dosage/genotype calling: updog, polyRAD and SuperMASSA +* Linkage map build software: OneMap 3.0 and GUSMap +* Using genotype probabilities from GATK, Freebayes, updog, polyRAD and SuperMASSA, and a global error rate of 5% and 0.001% in the OneMap HMM. + +It also has the options to: + +* Include or not multiallelic (MNP) markers +* Apply filters using VCFtools + +This workflow uses: + +* Diploid bi-parental F1 population +* Genomic positions for markers order +* A single chromosome from a reference genome \ No newline at end of file diff --git a/janis_core/tests/data/wdl/reads2map/pipelines/EmpiricalMaps/EmpiricalMaps.wdl b/janis_core/tests/data/wdl/reads2map/pipelines/EmpiricalMaps/EmpiricalMaps.wdl new file mode 100644 index 000000000..da6d89e35 --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/pipelines/EmpiricalMaps/EmpiricalMaps.wdl @@ -0,0 +1,235 @@ +version 1.0 + +import "../../structs/empirical_maps_structs.wdl" +import "../../structs/population_structs.wdl" + +import "../../tasks/utils.wdl" as utils +import "../../tasks/utilsR.wdl" as utilsR +import "../../tasks/JointReports.wdl" as reports +import "../../tasks/mappoly.wdl" as mappoly_task + +import "../../subworkflows/genotyping_empirical.wdl" as genotyping +import "../../subworkflows/snpcaller_maps_empirical.wdl" as snpcaller +import "../../subworkflows/gusmap_maps_empirical.wdl" as gusmap +import "../../subworkflows/mappoly_maps_empirical.wdl" as mappoly_sub + +workflow Maps { + + input { + Dataset dataset + Array[File] vcfs + Array[String] vcfs_software + Array[String] vcfs_counts_source + Boolean filter_noninfo + String replaceADbyMissing + File? gatk_vcf_multi + String gatk_mchap + String? filters + Int max_cores + Int ploidy + } + + if (defined(filters)) { + call utils.ApplyRandomFiltersArray { + input: + vcfs = vcfs, + vcfs_software = vcfs_software, + vcfs_counts_source = vcfs_counts_source, + filters = filters, + chromosome = dataset.chromosome + } + } + + Array[File] filtered_vcfs = select_first([ApplyRandomFiltersArray.vcfs_filt, vcfs]) + + # Re-Genotyping with updog, supermassa and polyrad; and building maps with onemap + scatter (idx in range(length(filtered_vcfs))) { + + call utils.SplitMarkers as splitgeno { + input: + vcf_file = filtered_vcfs[idx] + } + + # Suggestion to improve performance of SuperMASSA, polyRAD and updog + if(filter_noninfo){ + call utilsR.RemoveNonInformative { + input: + vcf_file = splitgeno.biallelics, + parent1 = dataset.parent1, + parent2 = dataset.parent2, + replaceADbyMissing = replaceADbyMissing + } + } + + File vcf_up = select_first([RemoveNonInformative.vcf_filtered, splitgeno.biallelics]) + + if(ploidy == 2) { + call genotyping.onemapMapsEmp as updogMaps { + input: + vcf_file = vcf_up, + SNPCall_program = vcfs_software[idx], + GenotypeCall_program = "updog", + CountsFrom = vcfs_counts_source[idx], + cross = dataset.cross, + parent1 = dataset.parent1, + parent2 = dataset.parent2, + chromosome = dataset.chromosome, + multiallelics = dataset.multiallelics, + multiallelics_file = splitgeno.multiallelics, + max_cores = max_cores, + ploidy = ploidy + } + + call genotyping.onemapMapsEmp as supermassaMaps { + input: + vcf_file = vcf_up, + SNPCall_program = vcfs_software[idx], + GenotypeCall_program = "supermassa", + CountsFrom = vcfs_counts_source[idx], + cross = dataset.cross, + parent1 = dataset.parent1, + parent2 = dataset.parent2, + chromosome = dataset.chromosome, + multiallelics = dataset.multiallelics, + multiallelics_file = splitgeno.multiallelics, + max_cores = max_cores, + ploidy = ploidy + } + + call genotyping.onemapMapsEmp as polyradMaps { + input: + vcf_file = vcf_up, + SNPCall_program = vcfs_software[idx], + GenotypeCall_program = "polyrad", + CountsFrom = vcfs_counts_source[idx], + cross = dataset.cross, + parent1 = dataset.parent1, + parent2 = dataset.parent2, + chromosome = dataset.chromosome, + multiallelics = dataset.multiallelics, + multiallelics_file = splitgeno.multiallelics, + max_cores = max_cores, + ploidy = ploidy + } + + # Build maps with GUSMap + call gusmap.gusmapMapsEmp { + input: + vcf_file = vcf_up, + SNPCall_program = vcfs_software[idx], + CountsFrom = vcfs_counts_source[idx], + GenotypeCall_program = "gusmap", + parent1 = dataset.parent1, + parent2 = dataset.parent2, + max_cores = max_cores + } + + if(vcfs_counts_source[idx] != "bam"){ + call snpcaller.SNPCallerMapsEmp { + input: + vcf_file = splitgeno.biallelics, + cross = dataset.cross, + SNPCall_program = vcfs_software[idx], + GenotypeCall_program = "SNPCaller", + CountsFrom = vcfs_counts_source[idx], + parent1 = dataset.parent1, + parent2 = dataset.parent2, + chromosome = dataset.chromosome, + multiallelics = dataset.multiallelics, + max_cores = max_cores, + multiallelics_file = splitgeno.multiallelics, + multiallelics_mchap = gatk_vcf_multi, + mchap = gatk_mchap + } + } + } + + if(ploidy > 2){ + call mappoly_sub.MappolyMapsEmp as updogPolyMaps { + input: + vcf_file = vcf_up, + SNPCall_program = vcfs_software[idx], + GenotypeCall_program = "updog", + CountsFrom = vcfs_counts_source[idx], + cross = "F1", + parent1 = dataset.parent1, + parent2 = dataset.parent2, + max_cores = max_cores, + ploidy = ploidy + } + + call mappoly_sub.MappolyMapsEmp as polyradPolyMaps { + input: + vcf_file = vcf_up, + SNPCall_program = vcfs_software[idx], + GenotypeCall_program = "polyrad", + CountsFrom = vcfs_counts_source[idx], + cross = "F1", + parent1 = dataset.parent1, + parent2 = dataset.parent2, + max_cores = max_cores, + ploidy = ploidy + } + + call mappoly_sub.MappolyMapsEmp as supermassaPolyMaps { + input: + vcf_file = vcf_up, + SNPCall_program = vcfs_software[idx], + GenotypeCall_program = "supermassa", + CountsFrom = vcfs_counts_source[idx], + cross = "F1", + parent1 = dataset.parent1, + parent2 = dataset.parent2, + max_cores = max_cores, + ploidy = ploidy + } + + if(vcfs_counts_source[idx] != "bam"){ + call mappoly_task.MappolyReport { + input: + vcf_file = vcf_up, + SNPCall_program = vcfs_software[idx], + GenotypeCall_program = "SNPCaller", + CountsFrom = vcfs_counts_source[idx], + parent1 = dataset.parent1, + parent2 = dataset.parent2, + max_cores = max_cores, + ploidy = ploidy + } + } + } + } + + if(ploidy == 2){ + Array[File] snpcaller_results = select_all(SNPCallerMapsEmp.tar_gz_report) + + # Compress files + call reports.JointReports { + input: + SNPCaller = snpcaller_results, + updog = updogMaps.tar_gz_report, + polyrad = polyradMaps.tar_gz_report, + supermassa = supermassaMaps.tar_gz_report, + gusmap = gusmapMapsEmp.tar_gz_report, + max_cores = max_cores + } + } + + if(ploidy > 2){ + Array[File] snpcaller_results_poly = select_all(MappolyReport.results) + + call reports.JointReportsPoly { + input: + SNPCaller = snpcaller_results_poly, + updog = updogPolyMaps.tar_gz_report, + polyrad = polyradPolyMaps.tar_gz_report, + supermassa = supermassaPolyMaps.tar_gz_report + } + } + + File Empirical_results_sele = select_first([JointReports.EmpiricalReads_results, JointReportsPoly.EmpiricalReads_results]) + + output { + File EmpiricalReads_results = Empirical_results_sele + } +} diff --git a/janis_core/tests/data/wdl/reads2map/pipelines/EmpiricalReads2Map/EmpiricalReads2Map.changelog.md b/janis_core/tests/data/wdl/reads2map/pipelines/EmpiricalReads2Map/EmpiricalReads2Map.changelog.md new file mode 100644 index 000000000..06756f9a2 --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/pipelines/EmpiricalReads2Map/EmpiricalReads2Map.changelog.md @@ -0,0 +1,32 @@ +# 1.0.0 + +Initial release + +This workflow build linkage maps from genotyping-by-sequencing (GBS) data. The GBS samples are splitted into chunks to be run in different nodes and optimize the analyses. Set the number of samples by chunk in the 'chunk_size' input. Use 'max_cores' to define number of cores to be used in each node. The workflow runs the combinations: + +* SNP calling: GATK and Freebayes +* Dosage/genotype calling: updog, polyRAD and SuperMASSA +* Linkage map build software: OneMap 3.0 and GUSMap +* Using genotype probabilities from GATK, Freebayes, updog, polyRAD and SuperMASSA, and a global error rate of 5% and 0.001% in the OneMap HMM. + +Resulting in 34 linkage maps. + +The workflow include de options to: + +* Remove or not the read duplicates +* Perform the Hard Filtering in GATK results +* Replace the VCF AD format field by counts from BAM files +* Run MCHap software to build haplotypes based on GATK called markers +* Include or not multiallelic (MNP) markers +* Apply filters using VCFtools + +This workflow requires: + +* Diploid bi-parental F1 population +* Single-end reads +* A reference genome +* Genomic positions for markers order +* Selection of a single chromosome from a reference genome to build the linkage maps + + + diff --git a/janis_core/tests/data/wdl/reads2map/pipelines/EmpiricalReads2Map/EmpiricalReads2Map.wdl b/janis_core/tests/data/wdl/reads2map/pipelines/EmpiricalReads2Map/EmpiricalReads2Map.wdl new file mode 100644 index 000000000..1fefaeb5b --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/pipelines/EmpiricalReads2Map/EmpiricalReads2Map.wdl @@ -0,0 +1,63 @@ +version 1.0 + +import "../../structs/empirical_maps_structs.wdl" +import "../../structs/dna_seq_structs.wdl" + +import "../../pipelines/EmpiricalSNPCalling/EmpiricalSNPCalling.wdl" as snpcalling +import "../../pipelines/EmpiricalMaps/EmpiricalMaps.wdl" as maps + +workflow EmpiricalReads { + + input { + File samples_info + ReferenceFasta references + Dataset dataset + Int max_cores + Int chunk_size + Boolean rm_dupli = false + Boolean gatk_mchap = false + Boolean hardfilters = true + Boolean replaceAD = true + String replaceADbyMissing = "TRUE" # Boolean inside R + Boolean run_gatk = true + Boolean run_freebayes = true + Int ploidy = 2 + Int n_chrom + String? filters + } + + call snpcalling.SNPCalling { + input: + samples_info = samples_info, + references = references, + max_cores = max_cores, + rm_dupli = rm_dupli, + P1 = dataset.parent1, + P2 = dataset.parent2, + gatk_mchap = gatk_mchap, + hardfilters = hardfilters, + replaceAD = replaceAD, + run_gatk = run_gatk, + run_freebayes = run_freebayes, + ploidy = ploidy, + n_chrom = n_chrom + } + + call maps.Maps { + input: + dataset = dataset, + vcfs = SNPCalling.vcfs, + vcfs_software = SNPCalling.vcfs_software, + vcfs_counts_source = SNPCalling.vcfs_counts_source, + gatk_vcf_multi = SNPCalling.gatk_multi_vcf, + gatk_mchap = gatk_mchap, + filters = filters, + max_cores = max_cores, + replaceADbyMissing = replaceADbyMissing, + ploidy = ploidy + } + + output { + File EmpiricalReads_results = Maps.EmpiricalReads_results + } +} \ No newline at end of file diff --git a/janis_core/tests/data/wdl/reads2map/pipelines/EmpiricalSNPCalling/EmpiricalSNPCalling.changelog.md b/janis_core/tests/data/wdl/reads2map/pipelines/EmpiricalSNPCalling/EmpiricalSNPCalling.changelog.md new file mode 100644 index 000000000..ead65e4cd --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/pipelines/EmpiricalSNPCalling/EmpiricalSNPCalling.changelog.md @@ -0,0 +1,32 @@ +# 1.2.0 + +* Run freebayes parallelizing in nodes according to chromosomes and cores splitting in genomic regions +* Adjust runtimes +* Add polyploid dataset for tests + +# 1.1.0 + +2022-12-05 + +* Define default values +* Include optional values to skip some of the sub-workflows +* More tests and example data sets included + +# 1.0.0 + +Initial release + +This workflow performs the alignment of FASTQ to a reference genome, SNP calling with GATK tools (HaplotypeCaller, GenomicsDBImport, and GenotypeGVCFs) and Freebayes. The samples are splitted into chunks to be run in different nodes and optimize the analyses. Set the number of samples by chunk in the 'chunk_size' input. Use 'max_cores' to define number of cores to be used in each node. + +The workflow also include de options to: + +* Remove of not the read duplicates +* Perform the Hard Filtering in GATK results +* Replace the VCF AD format field by counts from BAM files +* Run MCHap software to build haplotypes based on GATK called markers + +This workflow requires: + +* Diploid or polyploid specie +* Single-end reads +* A reference genome \ No newline at end of file diff --git a/janis_core/tests/data/wdl/reads2map/pipelines/EmpiricalSNPCalling/EmpiricalSNPCalling.wdl b/janis_core/tests/data/wdl/reads2map/pipelines/EmpiricalSNPCalling/EmpiricalSNPCalling.wdl new file mode 100644 index 000000000..30a723a4f --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/pipelines/EmpiricalSNPCalling/EmpiricalSNPCalling.wdl @@ -0,0 +1,85 @@ +version 1.0 + +import "../../structs/dna_seq_structs.wdl" + +import "../../subworkflows/create_alignment_from_families_files.wdl" as fam +import "../../subworkflows/gatk_genotyping.wdl" as gatk +import "../../subworkflows/freebayes_genotyping.wdl" as freebayes + + +workflow SNPCalling { + + input { + File samples_info + ReferenceFasta references + Int max_cores + Int chunk_size + Boolean rm_dupli = false + String? P1 + String? P2 + Boolean gatk_mchap = false + Boolean hardfilters = true + Boolean replaceAD = false + Boolean run_gatk = true + Boolean run_freebayes = true + Int ploidy + Int n_chrom + } + + call fam.CreateAlignmentFromFamilies { + input: + families_info=samples_info, + references=references, + max_cores = max_cores, + rm_dupli = rm_dupli, + chunk_size = chunk_size, + gatk_mchap = gatk_mchap + } + + if(run_gatk){ + call gatk.GatkGenotyping { + input: + bams=CreateAlignmentFromFamilies.bam, + bais=CreateAlignmentFromFamilies.bai, + references=references, + chunk_size = chunk_size, + ploidy = ploidy, + program="gatk", + max_cores = max_cores, + merged_bams = CreateAlignmentFromFamilies.merged_bam, + P1 = P1, + P2 = P2, + mchap = gatk_mchap, + hardfilters = hardfilters, + replaceAD = replaceAD + } + } + + if(run_freebayes){ + call freebayes.FreebayesGenotyping { + input: + merged_bam=CreateAlignmentFromFamilies.merged_bam, + references=references, + program="freebayes", + max_cores = max_cores, + ploidy = ploidy, + replaceAD = replaceAD, + n_chrom = n_chrom + } + } + + Array[Array[File]] vcfs_sele = select_all([GatkGenotyping.vcfs, FreebayesGenotyping.vcfs]) + Array[Array[String]] software_sele = select_all([GatkGenotyping.vcfs_software, FreebayesGenotyping.vcfs_software]) + Array[Array[String]] source_sele = select_all([GatkGenotyping.vcfs_counts_source, FreebayesGenotyping.vcfs_counts_source]) + + output { + Array[File] vcfs = flatten(vcfs_sele) + Array[String] vcfs_software = flatten(software_sele) + Array[String] vcfs_counts_source = flatten(source_sele) + File? gatk_multi_vcf = GatkGenotyping.vcf_multi + File? gatk_vcfEval = GatkGenotyping.vcfEval + File? Plots = GatkGenotyping.Plots + File? freebayes_vcfEval = FreebayesGenotyping.vcfEval + File? merged_bam = CreateAlignmentFromFamilies.merged_bam + } +} diff --git a/janis_core/tests/data/wdl/reads2map/pipelines/PreprocessingReads/PreprocessingReads.changelog.md b/janis_core/tests/data/wdl/reads2map/pipelines/PreprocessingReads/PreprocessingReads.changelog.md new file mode 100644 index 000000000..cb3593558 --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/pipelines/PreprocessingReads/PreprocessingReads.changelog.md @@ -0,0 +1,9 @@ +# 1.0.0 + +Initial release + +This workflow use STACKS process_radtags plugin to demultiplex GBS FASTQ files, filter by presence of the enzyme cut site and sequence quality. The cutadapt software is also implemented to remove adaptors sequences. + +This workflow requires: + +* Genotyping-by-sequencing data \ No newline at end of file diff --git a/janis_core/tests/data/wdl/reads2map/pipelines/PreprocessingReads/PreprocessingReads.wdl b/janis_core/tests/data/wdl/reads2map/pipelines/PreprocessingReads/PreprocessingReads.wdl new file mode 100644 index 000000000..f7f05459d --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/pipelines/PreprocessingReads/PreprocessingReads.wdl @@ -0,0 +1,43 @@ +version 1.0 + + +import "../../structs/preprocessing_reads_structs.wdl" + +import "../../tasks/stacks.wdl" +import "../../tasks/cutadapt.wdl" +import "../../tasks/utils.wdl" + + +workflow PreprocessingReads{ + input { + Specifications spec + } + + Array[File] fq_files = read_lines(spec.raw_dict) + + call stacks.ProcessRadTags { + input: + enzyme = spec.enzyme, + enzyme2 = spec.enzyme2, + fq_files = fq_files, + barcodes = spec.barcodes + } + + scatter (sequence in ProcessRadTags.seq_results) { + call cutadapt.RemoveAdapt { + input: + sequence = sequence, + adapter = spec.adapter, + sequence_name = basename(sequence) + } + } + + call utils.TarFiles { + input: + sequences = RemoveAdapt.trim_seq + } + + output { + File results = TarFiles.results + } +} diff --git a/janis_core/tests/data/wdl/reads2map/pipelines/SimulatedReads2Map/SimulatedReads2Map.changelog.md b/janis_core/tests/data/wdl/reads2map/pipelines/SimulatedReads2Map/SimulatedReads2Map.changelog.md new file mode 100644 index 000000000..4f9ef674a --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/pipelines/SimulatedReads2Map/SimulatedReads2Map.changelog.md @@ -0,0 +1,23 @@ +# 1.0.0 + +Initial release + +This workflow perform simulations of one or more (defined by `number_of_families`) bi-parental outcrossing population haplotypes using PedigreeSim software based on a provided linkage map and SNP markers. It uses RADinitio software, the simulated haplotypes and a reference genome to also simulate genotyping-by-sequencing read sequences. After, it performs the SNP and genotype calling and builds 68 linkage maps from the combinations: + +* SNP calling: GATK and Freebayes +* Dosage/genotype calling: updog, polyRAD and SuperMASSA +* Linkage map build software: OneMap 3.0 and GUSMap +* Using genotype probabilities from GATK, Freebayes, updog, polyRAD and SuperMASSA, and a global error rate of 5% and 0.001% in the OneMap HMM. + +It also has the options to: + +* Include or not multiallelic (MNP) markers +* Apply filters using VCFtools + +This workflow uses: + +* A reference linkage map +* A reference VCF file +* A single chromosome from a reference genome +* Diploid bi-parental F1 population +* Genomic positions for markers order diff --git a/janis_core/tests/data/wdl/reads2map/pipelines/SimulatedReads2Map/SimulatedReads2Map.wdl b/janis_core/tests/data/wdl/reads2map/pipelines/SimulatedReads2Map/SimulatedReads2Map.wdl new file mode 100644 index 000000000..26d489c24 --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/pipelines/SimulatedReads2Map/SimulatedReads2Map.wdl @@ -0,0 +1,78 @@ +version 1.0 + + +import "../../structs/dna_seq_structs.wdl" +import "../../structs/read_simulation_structs.wdl" + +import "../../tasks/pedigree_simulator_utils.wdl" +import "../../tasks/JointReports.wdl" as reports + +import "../../subworkflows/SimulatedSingleFamily.wdl" as sub + +workflow SimulatedReads { + + input { + ReferenceFasta references + Family family + Sequencing sequencing + Int number_of_families + Int global_seed + Int max_cores + Int n_chrom + String? filters + + Int chunk_size = 5 + Boolean gatk_mchap = false + Boolean hardfilters = true + } + + # ProduceFamiliesSeeds just generates random seeds. It returns an + # array of integers + call pedigree_simulator_utils.ProduceFamiliesSeeds { + input: + global_seed= global_seed, + number_of_families=number_of_families + } + + # Here we generate Family objects on the fly, based on the values + # from the family and the random seed of the previous task. + scatter (seed in ProduceFamiliesSeeds.seeds) { + # Calling reads_simu for each seed + call sub.SimulatedSingleFamily { + input: + references=references, + family=family, + sequencing = sequencing, + max_cores = max_cores, + filters = filters, + ploidy = family.ploidy, + chunk_size = chunk_size, + gatk_mchap=gatk_mchap, + hardfilters = hardfilters, + n_chrom = n_chrom + } + } + + call reports.JointTablesSimu { + input: + data1_depths_geno_prob = SimulatedSingleFamily.data1_depths_geno_prob, + data2_maps = SimulatedSingleFamily.data2_maps, + data3_filters = SimulatedSingleFamily.data3_filters, + data5_SNPCall_efficiency = SimulatedSingleFamily.data5_SNPCall_efficiency, + data4_times = SimulatedSingleFamily.data4_times, + data6_RDatas = SimulatedSingleFamily.data6_RDatas, + data7_gusmap = SimulatedSingleFamily.data7_gusmap, + data8_names = SimulatedSingleFamily.data8_names, + data9_simu_haplo = SimulatedSingleFamily.simu_haplo, + data10_counts = SimulatedSingleFamily.data10_counts, + depth = sequencing.depth, + plots = SimulatedSingleFamily.Plots, + positions = SimulatedSingleFamily.positions + } + + # Here you can reference outputs from the sub workflow. Remember that + # it will be an array of the same type of the original. + output { + File results = JointTablesSimu.results + } +} diff --git a/janis_core/tests/data/wdl/reads2map/structs/dna_seq_structs.wdl b/janis_core/tests/data/wdl/reads2map/structs/dna_seq_structs.wdl new file mode 100644 index 000000000..64428cfeb --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/structs/dna_seq_structs.wdl @@ -0,0 +1,13 @@ +version 1.0 + + +struct ReferenceFasta { + File ref_dict + File ref_fasta + File ref_fasta_index + File ref_sa + File ref_amb + File ref_bwt + File ref_ann + File ref_pac +} diff --git a/janis_core/tests/data/wdl/reads2map/structs/empirical_maps_structs.wdl b/janis_core/tests/data/wdl/reads2map/structs/empirical_maps_structs.wdl new file mode 100644 index 000000000..62cbbfd7d --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/structs/empirical_maps_structs.wdl @@ -0,0 +1,10 @@ +version 1.0 + +struct Dataset { + String name + String parent1 + String parent2 + String cross + String chromosome + Boolean multiallelics +} diff --git a/janis_core/tests/data/wdl/reads2map/structs/population_structs.wdl b/janis_core/tests/data/wdl/reads2map/structs/population_structs.wdl new file mode 100644 index 000000000..0b60ef4f4 --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/structs/population_structs.wdl @@ -0,0 +1,7 @@ +version 1.0 + +struct PopulationAnalysis { + String method + File vcf + File bam +} diff --git a/janis_core/tests/data/wdl/reads2map/structs/preprocessing_reads_structs.wdl b/janis_core/tests/data/wdl/reads2map/structs/preprocessing_reads_structs.wdl new file mode 100644 index 000000000..67fa7178f --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/structs/preprocessing_reads_structs.wdl @@ -0,0 +1,9 @@ +version 1.0 + +struct Specifications { + String enzyme + String? enzyme2 + File raw_dict + File? barcodes + String adapter +} diff --git a/janis_core/tests/data/wdl/reads2map/structs/read_simulation_structs.wdl b/janis_core/tests/data/wdl/reads2map/structs/read_simulation_structs.wdl new file mode 100644 index 000000000..5d1d26d64 --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/structs/read_simulation_structs.wdl @@ -0,0 +1,31 @@ +version 1.0 + +struct Family { + Float? cmBymb + Int seed + Int popsize + File? doses + Int ploidy + String cross +} + +struct Sequencing { + String library_type + Int depth + Int depth_parents + Int? insert_size + Int? insert_size_dev + Int? pcr_cycles + Int? read_length + String enzyme1 + String? enzyme2 + File emp_vcf + File? emp_bam + File? ref_map + String chromosome + String multiallelics + String vcf_parent1 + String vcf_parent2 + String rm_dupli + Int mapsize +} diff --git a/janis_core/tests/data/wdl/reads2map/subworkflows/MCHap.wdl b/janis_core/tests/data/wdl/reads2map/subworkflows/MCHap.wdl new file mode 100644 index 000000000..f0d6f82b8 --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/subworkflows/MCHap.wdl @@ -0,0 +1,83 @@ +version 1.0 + +import "../tasks/chunk_lists.wdl" +import "../tasks/utilsR.wdl" +import "../tasks/utils.wdl" +import "../tasks/mchap.wdl" + +workflow MCHap { + input { + File reference + File reference_idx + File vcf_file + Int n_nodes + Int max_cores + Array[File] bams # if file change to bam_list + Array[File] bais # if file change to bais_list + File? merged_bams + Int ploidy + String? P1 + String? P2 + } + + call utils.BamToBed { + input: + merged_bams = merged_bams + } + + call chunk_lists.SepareChunksBed { + input: + bed_file = BamToBed.merged_bed, + n_nodes = n_nodes + } + + # If running outside of Reads2Map workflow + #Array[File] bams = read_lines(bam_list) + #Array[File] bais = read_lines(bais_list) + + Map[String, Array[File]] map_bams = {"bam": bams, "bai": bais} + + scatter (bed_chunk in SepareChunksBed.chunks){ + call mchap.OneMCHap { + input: + bams = map_bams["bam"], + bais = map_bams["bai"], + bed = bed_chunk, + vcf_file = vcf_file, + reference = reference, + reference_idx = reference_idx, + ploidy = ploidy, + max_cores = max_cores + } + + call mchap.OneMCHap_recall { + input: + bams = map_bams["bam"], + bais = map_bams["bai"], + vcf_file = OneMCHap.assemble_vcf, + ploidy = ploidy, + max_cores = max_cores + } + } + + call utils.mergeVCFs { + input: + haplo_vcf = OneMCHap_recall.haplo_vcf + } + + if(defined(P1)){ + call utilsR.FilterMulti { + input: + multi_vcf = mergeVCFs.merged_vcf, + ploidy = ploidy, + P1 = P1, + P2 = P2 + } + } + + File final_vcf = select_first([FilterMulti.multi_vcf_filt, mergeVCFs.merged_vcf]) + + output { + File haplo_vcf_merged = final_vcf + } +} diff --git a/janis_core/tests/data/wdl/reads2map/subworkflows/SimulatedSingleFamily.wdl b/janis_core/tests/data/wdl/reads2map/subworkflows/SimulatedSingleFamily.wdl new file mode 100644 index 000000000..54d716ad7 --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/subworkflows/SimulatedSingleFamily.wdl @@ -0,0 +1,269 @@ +version 1.0 + +import "../structs/population_structs.wdl" + +import "../tasks/utils.wdl" as utils +import "../tasks/utilsR.wdl" as utilsR +import "../tasks/JointReports.wdl" as reports + +import "../subworkflows/create_alignment_from_read_simulations.wdl" as simulation +import "../subworkflows/genotyping_simulated.wdl" as genotyping +import "../subworkflows/gusmap_maps_simulated.wdl" as gusmap +import "../subworkflows/snpcaller_maps_simulated.wdl" as snpcaller +import "../subworkflows/freebayes_genotyping.wdl" as freebayes +import "../subworkflows/gatk_genotyping.wdl" as gatk + + +workflow SimulatedSingleFamily { + + input { + ReferenceFasta references + Family family + Sequencing sequencing + String? filters + Int max_cores + Int chunk_size + Int ploidy + Boolean gatk_mchap + Boolean hardfilters + Int n_chrom + } + + call simulation.CreateAlignmentFromSimulation { + input: + sequencing = sequencing, + references=references, + family=family, + max_cores = max_cores, + chunk_size = chunk_size + } + + call gatk.GatkGenotyping { + input: + bams = CreateAlignmentFromSimulation.bam, + bais = CreateAlignmentFromSimulation.bai, + references = references, + program = "gatk", + vcf_simu = CreateAlignmentFromSimulation.true_vcf, + seed = family.seed, + depth = sequencing.depth, + chunk_size = chunk_size, + ploidy = ploidy, + mchap = gatk_mchap, + max_cores = max_cores, + merged_bams = CreateAlignmentFromSimulation.merged_bam, + P1 = "P1", + P2 = "P2", + hardfilters = hardfilters, + replaceAD = true + } + + call freebayes.FreebayesGenotyping { + input: + merged_bam = CreateAlignmentFromSimulation.merged_bam, + references = references, + program = "freebayes", + max_cores = max_cores, + vcf_simu = CreateAlignmentFromSimulation.true_vcf, + ploidy = family.ploidy, + replaceAD = true, + n_chrom = n_chrom + } + + call utilsR.vcf2onemap as truth_vcf { + input: + vcf_file = CreateAlignmentFromSimulation.true_vcf, + cross = family.cross, + parent1 = "P1", + parent2 = "P2" + } + + Array[Array[File]] vcfs_sele = select_all([GatkGenotyping.vcfs, FreebayesGenotyping.vcfs]) + Array[Array[File]] software_sele = select_all([GatkGenotyping.vcfs_software, FreebayesGenotyping.vcfs_software]) + Array[Array[File]] source_sele = select_all([GatkGenotyping.vcfs_counts_source, FreebayesGenotyping.vcfs_counts_source]) + + if (defined(filters)) { + call utils.ApplyRandomFiltersArray { + input: + vcfs = flatten(vcfs_sele), + vcfs_software = flatten(software_sele), + vcfs_counts_source = flatten(source_sele), + filters = filters, + chromosome = sequencing.chromosome + } + } + + Array[File] filtered_vcfs = select_first([ApplyRandomFiltersArray.vcfs_filt, vcfs_sele]) + + # Requires adaptation starting from here, to run in arrays + call utils.GetMarkersPos { + input: + true_vcf = CreateAlignmentFromSimulation.true_vcf, + filtered_gatk_vcf = filtered_vcfs[0], + filtered_gatk_vcf_bamcounts = filtered_vcfs[1], + filtered_freebayes_vcf = filtered_vcfs[2], + filtered_freebayes_vcf_bamcounts = filtered_vcfs[3], + depth = sequencing.depth, + seed = family.seed + } + + PopulationAnalysis gatk_processing = {"method": "gatk", "vcf": filtered_vcfs[0], "bam": filtered_vcfs[1]} + PopulationAnalysis freebayes_processing = {"method": "freebayes", "vcf": filtered_vcfs[2], "bam": filtered_vcfs[3]} + + scatter (analysis in [gatk_processing, freebayes_processing]){ + + Map[String, File] vcfs = {"vcf": analysis.vcf, "bam": analysis.bam} + + scatter (origin in ["vcf", "bam"]){ + + call utils.SplitMarkers as splitgeno { + input: + vcf_file = vcfs[origin] + } + + # Suggestion for better SuperMASSA, updog and polyRAD performance + call utilsR.RemoveNonInformative { + input: + vcf_file = splitgeno.biallelics, + parent1 = "P1", + parent2 = "P2", + replaceADbyMissing = "TRUE" + } + + call genotyping.onemapMaps as updogMaps { + input: + simu_onemap_obj = truth_vcf.onemap_obj, + vcf_file = RemoveNonInformative.vcf_filtered, + #vcf_file = splitgeno.biallelics, + genotyping_program = "updog", + ref_alt_alleles = CreateAlignmentFromSimulation.ref_alt_alleles, + simulated_phases = CreateAlignmentFromSimulation.simulated_phases, + SNPCall_program = analysis.method, + CountsFrom = origin, + cross = family.cross, + max_cores = max_cores, + simu_vcfR = truth_vcf.vcfR_obj, + seed = family.seed, + depth = sequencing.depth, + multiallelics = sequencing.multiallelics, + multiallelics_file = splitgeno.multiallelics, + ploidy = ploidy + } + + call genotyping.onemapMaps as supermassaMaps { + input: + simu_onemap_obj = truth_vcf.onemap_obj, + vcf_file = RemoveNonInformative.vcf_filtered, + #vcf_file = splitgeno.biallelics, + genotyping_program = "supermassa", + ref_alt_alleles = CreateAlignmentFromSimulation.ref_alt_alleles, + simulated_phases = CreateAlignmentFromSimulation.simulated_phases, + SNPCall_program = analysis.method, + CountsFrom = origin, + cross = family.cross, + max_cores = max_cores, + simu_vcfR = truth_vcf.vcfR_obj, + seed = family.seed, + depth = sequencing.depth, + multiallelics = sequencing.multiallelics, + multiallelics_file = splitgeno.multiallelics, + ploidy = ploidy + } + + call genotyping.onemapMaps as polyradMaps { + input: + simu_onemap_obj = truth_vcf.onemap_obj, + vcf_file = RemoveNonInformative.vcf_filtered, + #vcf_file = splitgeno.biallelics, + genotyping_program = "polyrad", + ref_alt_alleles = CreateAlignmentFromSimulation.ref_alt_alleles, + simulated_phases = CreateAlignmentFromSimulation.simulated_phases, + SNPCall_program = analysis.method, + CountsFrom = origin, + cross = family.cross, + max_cores = max_cores, + simu_vcfR = truth_vcf.vcfR_obj, + seed = family.seed, + depth = sequencing.depth, + multiallelics = sequencing.multiallelics, + multiallelics_file = splitgeno.multiallelics, + ploidy = ploidy + } + } + + call utils.SplitMarkers as splitvcf { + input: + vcf_file = analysis.vcf + } + + call utils.SplitMarkers as splitbam { + input: + vcf_file = analysis.bam + } + + call gusmap.gusmapMaps { + input: + simu_onemap_obj = truth_vcf.onemap_obj, + vcf_file = splitvcf.biallelics, + new_vcf_file = splitbam.biallelics, + SNPCall_program = analysis.method, + GenotypeCall_program = "gusmap", + ref_alt_alleles = CreateAlignmentFromSimulation.ref_alt_alleles, + simulated_phases = CreateAlignmentFromSimulation.simulated_phases, + seed = family.seed, + depth = sequencing.depth, + max_cores = max_cores + } + + call snpcaller.SNPCallerMaps { + input: + simu_onemap_obj = truth_vcf.onemap_obj, + vcf_file = splitvcf.biallelics, + ref_alt_alleles = CreateAlignmentFromSimulation.ref_alt_alleles, + simulated_phases = CreateAlignmentFromSimulation.simulated_phases, + cross = family.cross, + SNPCall_program = analysis.method, + GenotypeCall_program = "SNPCaller", + CountsFrom = "vcf", + simu_vcfR = truth_vcf.vcfR_obj, + seed = family.seed, + depth = sequencing.depth, + max_cores = max_cores, + multiallelics = sequencing.multiallelics, + multiallelics_file = splitvcf.multiallelics, + multiallelics_mchap = GatkGenotyping.vcf_multi, + mchap = gatk_mchap + } + } + + # Compress files + call reports.JointReportsSimu { + input: + SNPCaller = SNPCallerMaps.tar_gz_report, + updog = flatten(updogMaps.tar_gz_report), + polyrad = flatten(polyradMaps.tar_gz_report), + supermassa = flatten(supermassaMaps.tar_gz_report), + gusmap_files = gusmapMaps.tar_gz_report, + GATK_eval = GatkGenotyping.vcfEval, + Freebayes_eval = FreebayesGenotyping.vcfEval, + multiallelics_file = splitvcf.multiallelics, + max_cores = max_cores, + seed = family.seed, + depth = sequencing.depth + } + + output { + File data1_depths_geno_prob = JointReportsSimu.data1_depths_geno_prob + File data2_maps = JointReportsSimu.data2_maps + File data3_filters = JointReportsSimu.data3_filters + File data4_times = JointReportsSimu.data4_times + File data5_SNPCall_efficiency = JointReportsSimu.data5_SNPCall_efficiency + File data6_RDatas = JointReportsSimu.data6_RDatas + File data7_gusmap = JointReportsSimu.data7_gusmap + File data8_names = JointReportsSimu.data8_names + File data10_counts = JointReportsSimu.data10_counts + File simu_haplo = CreateAlignmentFromSimulation.simu_haplo + File? Plots = GatkGenotyping.Plots + File positions = GetMarkersPos.positions + } +} diff --git a/janis_core/tests/data/wdl/reads2map/subworkflows/create_alignment_from_families_files.wdl b/janis_core/tests/data/wdl/reads2map/subworkflows/create_alignment_from_families_files.wdl new file mode 100644 index 000000000..a4dc5fdcb --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/subworkflows/create_alignment_from_families_files.wdl @@ -0,0 +1,51 @@ +version 1.0 + +import "../tasks/BWA.wdl" as alg +import "../tasks/chunk_lists.wdl" +import "../tasks/utils.wdl" as utils + +workflow CreateAlignmentFromFamilies { + input { + File families_info + ReferenceFasta references + Int max_cores + Boolean rm_dupli + Boolean gatk_mchap + Int chunk_size + } + + call chunk_lists.SepareChunksFastqString { + input: + families_info=families_info, + chunk_size = chunk_size + } + + scatter (chunk in SepareChunksFastqString.chunks) { + + Array[Array[String]] sample_file = read_tsv(chunk) + + call alg.RunBwaAlignment { + input: + sampleName = sample_file[1], + reads = sample_file[0], + libraries = sample_file[2], + references = references, + max_cores = max_cores, + rm_dupli = rm_dupli + } + } + + # Store for MCHap + call utils.MergeBams { + input: + bam_files = flatten(RunBwaAlignment.bam) + } + + + output { + Array[File] bam = flatten(RunBwaAlignment.bam) + Array[File] bai = flatten(RunBwaAlignment.bai) + Array[Array[File]] dup_metrics = RunBwaAlignment.dup_metrics + File merged_bam = MergeBams.merged_bam + } +} diff --git a/janis_core/tests/data/wdl/reads2map/subworkflows/create_alignment_from_read_simulations.wdl b/janis_core/tests/data/wdl/reads2map/subworkflows/create_alignment_from_read_simulations.wdl new file mode 100644 index 000000000..559853a52 --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/subworkflows/create_alignment_from_read_simulations.wdl @@ -0,0 +1,175 @@ +version 1.0 + +import "../structs/read_simulation_structs.wdl" +import "../tasks/BWA.wdl" as alg +import "../tasks/chunk_lists.wdl" +import "../tasks/simuscop.wdl" +import "../tasks/pedigree_simulator_utils.wdl" +import "../tasks/pirs.wdl" +import "../tasks/pedigree_simulator.wdl" +import "../tasks/utils.wdl" as utils +import "../tasks/radinitio.wdl" + +workflow CreateAlignmentFromSimulation { + input { + ReferenceFasta references + Family family + Sequencing sequencing + Int max_cores + Int chunk_size + } + + # User can provide specific variants in VCF file + # If not, use pirs to simulate + if (!defined(sequencing.emp_vcf)){ + call pirs.GenerateAlternativeGenome { + input: + seed = family.seed, + ref_genome = references.ref_fasta + } + + call pedigree_simulator_utils.CreatePedigreeSimulatorInputs { + input: + seed = family.seed, + snps = GenerateAlternativeGenome.snps, + indels = GenerateAlternativeGenome.indels, + cmBymb = family.cmBymb, + ref = references.ref_fasta, + ref_fai = references.ref_fasta_index, + cross = family.cross, + popsize = family.popsize, + ploidy = family.ploidy, + doses = family.doses + } + } + + if (defined(sequencing.emp_vcf)){ + call pedigree_simulator_utils.Vcf2PedigreeSimulator { + input: + vcf_file = sequencing.emp_vcf, + ref_map = sequencing.ref_map, + seed = family.seed, + popsize = family.popsize, + vcf_parent1 = sequencing.vcf_parent1, + vcf_parent2 = sequencing.vcf_parent2 + } + } + + File mapfile_sele = select_first([Vcf2PedigreeSimulator.mapfile_map, CreatePedigreeSimulatorInputs.mapfile_nomap]) + File founderfile_sele = select_first([Vcf2PedigreeSimulator.founderfile_map, CreatePedigreeSimulatorInputs.founderfile_nomap]) + File chromfile_sele = select_first([Vcf2PedigreeSimulator.chromfile_map, CreatePedigreeSimulatorInputs.chromfile_nomap]) + File parfile_sele = select_first([Vcf2PedigreeSimulator.parfile_map, CreatePedigreeSimulatorInputs.parfile_nomap]) + File ref_alt_alleles_sele = select_first([Vcf2PedigreeSimulator.ref_alt_alleles_map, CreatePedigreeSimulatorInputs.ref_alt_alleles_nomap]) + File simulated_phases_sele = select_first([Vcf2PedigreeSimulator.simulated_phases_map, CreatePedigreeSimulatorInputs.simulated_phases_nomap]) + + call pedigree_simulator.RunPedigreeSimulator { + input: + mapfile = mapfile_sele, + founderfile = founderfile_sele, + chromfile = chromfile_sele, + parfile = parfile_sele + } + + call pedigree_simulator_utils.ConvertPedigreeSimulationToVcf { + input: + seed = family.seed, + depth = sequencing.depth, + genotypes_dat = RunPedigreeSimulator.genotypes_dat, + map_file = mapfile_sele, + chrom_file = chromfile_sele, + ref_alt_alleles = ref_alt_alleles_sele, + popsize = family.popsize, + mapsize = sequencing.mapsize + } + + call utils.GenerateSampleNames { + input: + simulated_vcf = ConvertPedigreeSimulationToVcf.simu_vcf + } + + if(sequencing.library_type == "WGS" || sequencing.library_type == "exome"){ + + call simuscop.SimuscopProfile { + input: + library_type = sequencing.library_type, + emp_bam = sequencing.emp_bam, + vcf = ConvertPedigreeSimulationToVcf.simu_vcf, + references = references + } + + scatter (sampleName in GenerateSampleNames.names) { + + call simuscop.SimuscopSimulation { + input: + library_type = sequencing.library_type, + sampleName = sampleName, + depth = sequencing.depth, + emp_bam = sequencing.emp_bam, + vcf = ConvertPedigreeSimulationToVcf.simu_vcf, + references = references, + chrom = sequencing.chromosome, + profile = SimuscopProfile.profile + } + } + } + + # Two option of RADseq + # The samples need to be simulated together, otherwise they will be all heterozygous + if(sequencing.library_type == "sdRAD" || sequencing.library_type == "ddRAD"){ + call radinitio.RADinitioSimulation { + input: + depth = sequencing.depth, + depth_parents = sequencing.depth_parents, + enzyme1 = sequencing.enzyme1, + enzyme2 = sequencing.enzyme2, + simu_vcf = ConvertPedigreeSimulationToVcf.simu_vcf, + radinitio_vcf = ConvertPedigreeSimulationToVcf.radinitio_vcf, + references = references, + pcr_cycles = sequencing.pcr_cycles, + insert_size = sequencing.insert_size, + insert_size_dev = sequencing.insert_size_dev, + read_length = sequencing.read_length, + library_type = sequencing.library_type, + chrom = sequencing.chromosome, + names = GenerateSampleNames.names + } + } + + + Array[File] fastq = select_first([RADinitioSimulation.fastq_rad, SimuscopSimulation.fastq_seq]) + + call chunk_lists.SepareChunksFastq { + input: + fastqs = fastq, + chunk_size = chunk_size + } + + scatter (chunk in SepareChunksFastq.chunks){ + + call alg.RunBwaAlignmentSimu { + input: + reads = chunk, + fastqs = fastq, + references = references, + max_cores = max_cores, + rm_dupli = sequencing.rm_dupli + } + } + + # Store for MCHap + call utils.MergeBams { + input: + bam_files = flatten(RunBwaAlignmentSimu.bam) + } + + output { + Array[File] bam = flatten(RunBwaAlignmentSimu.bam) + Array[File] bai = flatten(RunBwaAlignmentSimu.bai) + File ref_alt_alleles = ref_alt_alleles_sele + Array[String] names = GenerateSampleNames.names + File true_vcf = ConvertPedigreeSimulationToVcf.simu_vcf + File simu_haplo = ConvertPedigreeSimulationToVcf.simu_haplo + File simulated_phases = simulated_phases_sele + File merged_bam = MergeBams.merged_bam + } +} diff --git a/janis_core/tests/data/wdl/reads2map/subworkflows/freebayes_genotyping.wdl b/janis_core/tests/data/wdl/reads2map/subworkflows/freebayes_genotyping.wdl new file mode 100644 index 000000000..d74f2195c --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/subworkflows/freebayes_genotyping.wdl @@ -0,0 +1,86 @@ +version 1.0 + +import "../structs/dna_seq_structs.wdl" +import "../tasks/utils.wdl" as utils +import "../tasks/freebayes.wdl" +import "../tasks/chunk_lists.wdl" + +import "../subworkflows/norm_filt_vcf.wdl" as norm_filt + + +workflow FreebayesGenotyping { + input { + File merged_bam + ReferenceFasta references + String program + Int max_cores + Int ploidy + File? vcf_simu + Boolean replaceAD + Int n_chrom + } + + call chunk_lists.CreateChunksBamByChr { + input: + merged_bam = merged_bam, + reference = references.ref_fasta, + n_chrom = n_chrom + } + + scatter (chunk in zip(CreateChunksBamByChr.bams_chunks, CreateChunksBamByChr.bais_chunks)) { + + call freebayes.RunFreebayes { + input: + reference = references.ref_fasta, + reference_idx=references.ref_fasta_index, + bam = chunk.left, + bai = chunk.right, + max_cores = max_cores, + ploidy = ploidy + } + } + + call utils.mergeVCFs { + input: + haplo_vcf = RunFreebayes.vcf + } + + call norm_filt.Normalization { + input: + vcf_in = mergeVCFs.merged_vcf, + vcf_simu = vcf_simu, + reference = references.ref_fasta, + reference_idx = references.ref_fasta_index, + reference_dict = references.ref_dict, + program = program, + counts_source = "vcf", + ploidy = ploidy + } + + Map[String, Array[File]] map_bams = {"bam": CreateChunksBamByChr.bams_chunks, "bai": CreateChunksBamByChr.bais_chunks} + + if(replaceAD){ + call utils.ReplaceAD { + input: + ref_fasta = references.ref_fasta, + ref_index = references.ref_fasta_index, + bams = map_bams["bam"], + bais = map_bams["bai"], + vcf = Normalization.vcf_norm, + tbi = Normalization.vcf_norm_tbi, + program = program, + counts_source = "bam" + } + } + + Array[File] freebayes_vcfs = select_all([Normalization.vcf_norm, ReplaceAD.bam_vcf]) + Array[String] freebayes_software = select_all([Normalization.software, ReplaceAD.software]) + Array[String] freebayes_counts_source = select_all([Normalization.source, ReplaceAD.source]) + + output { + Array[File] vcfs = freebayes_vcfs + Array[String] vcfs_software = freebayes_software + Array[String] vcfs_counts_source = freebayes_counts_source + File vcfEval = Normalization.vcfEval + } +} diff --git a/janis_core/tests/data/wdl/reads2map/subworkflows/gatk_genotyping.wdl b/janis_core/tests/data/wdl/reads2map/subworkflows/gatk_genotyping.wdl new file mode 100644 index 000000000..1a4375d0d --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/subworkflows/gatk_genotyping.wdl @@ -0,0 +1,176 @@ +version 1.0 + +import "../structs/dna_seq_structs.wdl" +import "../tasks/chunk_lists.wdl" +import "../tasks/gatk.wdl" +import "../tasks/utils.wdl" as utils + +import "../subworkflows/norm_filt_vcf.wdl" as norm_filt +import "../subworkflows/hard_filtering_simulated.wdl" as hard_filt +import "../subworkflows/hard_filtering_empirical.wdl" as hard_filt_emp +import "../subworkflows/MCHap.wdl" as MCHapWf + + +workflow GatkGenotyping { + input { + Array[File] bams + Array[File] bais + ReferenceFasta references + String program + File? vcf_simu + Int? seed + Int? depth + Int chunk_size + Int ploidy + Boolean mchap + Boolean replaceAD + Boolean hardfilters + Int max_cores + File? merged_bams + String? P1 + String? P2 + } + + call chunk_lists.CreateChunksBam { + input: + bams=bams, + bams_index=bais, + chunk_size=chunk_size, + reference_fasta = references.ref_fasta + } + + scatter (chunk in zip(CreateChunksBam.bams_chunks, CreateChunksBam.bais_chunks)) { + + call gatk.HaplotypeCaller { + input: + bams = read_lines(chunk.left), + bams_index = read_lines(chunk.right), + reference_fasta = references.ref_fasta, + reference_fai = references.ref_fasta_index, + reference_dict = references.ref_dict, + ploidy = ploidy, + chunk_size = chunk_size + } + } + + Array[String] calling_intervals = read_lines(CreateChunksBam.interval_list) + + scatter (interval in calling_intervals) { + call gatk.ImportGVCFs { + input: + vcfs=flatten(HaplotypeCaller.vcfs), + vcfs_index=flatten(HaplotypeCaller.vcfs_index), + reference_fasta=references.ref_fasta, + reference_fai=references.ref_fasta_index, + reference_dict=references.ref_dict, + interval = interval + } + + call gatk.GenotypeGVCFs { + input: + workspace_tar = ImportGVCFs.output_workspace, + interval = interval, + reference_fasta = references.ref_fasta, + reference_fai = references.ref_fasta_index, + reference_dict = references.ref_dict + } + } + + call gatk.MergeVCFs { + input: + input_vcfs = GenotypeGVCFs.vcf, + input_vcf_indices = GenotypeGVCFs.vcf_tbi + } + + if(hardfilters){ + # Simulations + if(defined(seed)){ + call hard_filt.HardFiltering { + input: + references = references, + vcf_file = MergeVCFs.output_vcf, + vcf_tbi = MergeVCFs.output_vcf_index, + simu_vcf = vcf_simu, + seed = seed, + depth = depth + } + } + + # Empirical + if(!defined(seed)){ + call hard_filt_emp.HardFilteringEmp { + input: + references = references, + vcf_file = MergeVCFs.output_vcf, + vcf_tbi = MergeVCFs.output_vcf_index, + } + } + + File sele_vcf = select_first([HardFiltering.filt_vcf, HardFilteringEmp.filt_vcf]) + File QualPlots = select_first([HardFiltering.Plots, HardFilteringEmp.Plots]) + + } + + File filt_vcf = select_first([sele_vcf, MergeVCFs.output_vcf]) + + call norm_filt.Normalization { + input: + vcf_in= filt_vcf, + vcf_simu = vcf_simu, + reference = references.ref_fasta, + reference_idx = references.ref_fasta_index, + reference_dict = references.ref_dict, + program = program, + counts_source = "vcf", + ploidy = ploidy + } + + Map[String, Array[File]] map_bams = {"bam": bams, "bai": bais} + + if(replaceAD) { + call utils.ReplaceAD { + input: + ref_fasta = references.ref_fasta, + ref_index = references.ref_fasta_index, + bams = map_bams["bam"], + bais = map_bams["bai"], + vcf = Normalization.vcf_norm, + tbi = Normalization.vcf_norm_tbi, + program = program, + counts_source = "bam" + } + } + + # MCHap: micro-haplotyping + if(mchap) { + call MCHapWf.MCHap { + input: + reference = references.ref_fasta, + reference_idx = references.ref_fasta_index, + vcf_file = Normalization.vcf_norm, + n_nodes = 10, + max_cores = max_cores, + bams = map_bams["bam"], + bais = map_bams["bai"], + ploidy = ploidy, + merged_bams = merged_bams, + P1 = P1, + P2 = P2 + } + + File vcf_norm_mchap = MCHap.haplo_vcf_merged + } + + Array[File] gatk_vcfs = select_all([Normalization.vcf_norm, ReplaceAD.bam_vcf]) + Array[String] gatk_software = select_all([Normalization.software, ReplaceAD.software]) + Array[String] gatk_counts_source = select_all([Normalization.source, ReplaceAD.source]) + + output { + Array[File] vcfs = gatk_vcfs + Array[String] vcfs_software = gatk_software + Array[String] vcfs_counts_source = gatk_counts_source + File? vcf_multi = vcf_norm_mchap + File vcfEval = Normalization.vcfEval + File? Plots = QualPlots + } +} diff --git a/janis_core/tests/data/wdl/reads2map/subworkflows/genotyping_empirical.wdl b/janis_core/tests/data/wdl/reads2map/subworkflows/genotyping_empirical.wdl new file mode 100644 index 000000000..646b56ac2 --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/subworkflows/genotyping_empirical.wdl @@ -0,0 +1,105 @@ +version 1.0 + +import "../tasks/utilsR.wdl" as utilsR +import "../tasks/utils.wdl" as utils + +workflow onemapMapsEmp { + + input { + File vcf_file + String SNPCall_program + String GenotypeCall_program + String CountsFrom + String cross + String parent1 + String parent2 + String chromosome + Int max_cores + Boolean multiallelics + File? multiallelics_file + Int ploidy + } + + call utilsR.ReGenotyping { + input: + vcf_file = vcf_file, + GenotypeCall_program = GenotypeCall_program, + cross = cross, + parent1 = parent1, + parent2 = parent2, + max_cores = max_cores, + ploidy = ploidy + } + + if (multiallelics) { + call utils.JointMarkers { + input: + biallelic_vcf = ReGenotyping.regeno_vcf, + multiallelic_vcf = multiallelics_file + } + } + + File updated_vcf = select_first([JointMarkers.merged_vcf, ReGenotyping.regeno_vcf]) + + call utilsR.SetProbs { + input: + vcf_file = updated_vcf, + cross = cross, + parent1 = parent1, + parent2 = parent2, + multiallelics = multiallelics, + SNPCall_program = SNPCall_program + } + + Array[String] methods = [GenotypeCall_program, GenotypeCall_program + "0.05"] + Array[File] objects = [SetProbs.probs_onemap_obj, SetProbs.globalerror_onemap_obj] + Array[Pair[String, File]] methods_and_objects = zip(methods, objects) + + scatter (item in methods_and_objects) { + call utilsR.CheckDepths { + input: + onemap_obj = item.right, + vcfR_obj = SetProbs.vcfR_obj, + parent1 = parent1, + parent2 = parent2, + SNPCall_program = SNPCall_program, + GenotypeCall_program = item.left, + CountsFrom = CountsFrom, + max_cores = max_cores + } + + call utilsR.FiltersReportEmp { + input: + onemap_obj = item.right, + SNPCall_program = SNPCall_program, + GenotypeCall_program = item.left, + CountsFrom = CountsFrom, + chromosome = chromosome + } + + call utilsR.MapsReportEmp { + input: + sequence_obj = FiltersReportEmp.onemap_obj_filtered, + SNPCall_program = SNPCall_program, + GenotypeCall_program = item.left, + CountsFrom = CountsFrom, + max_cores = max_cores + } + } + + call utils.Compress { + input: + RDatas = MapsReportEmp.maps_RData, + maps_report = MapsReportEmp.maps_report, + times = MapsReportEmp.times, + filters_report = FiltersReportEmp.filters_report, + errors_report = CheckDepths.errors_report, + name = "regeno_maps" + } + + output { + File tar_gz_report = Compress.tar_gz_report + Array[File] maps_report = MapsReportEmp.maps_report + File regeno_vcf = ReGenotyping.regeno_vcf + } +} diff --git a/janis_core/tests/data/wdl/reads2map/subworkflows/genotyping_simulated.wdl b/janis_core/tests/data/wdl/reads2map/subworkflows/genotyping_simulated.wdl new file mode 100644 index 000000000..b3f1f3bf0 --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/subworkflows/genotyping_simulated.wdl @@ -0,0 +1,116 @@ +version 1.0 + +import "../tasks/utilsR.wdl" as utilsR +import "../tasks/utils.wdl" as utils + +workflow onemapMaps { + + input { + File simu_onemap_obj + File simu_vcfR + File vcf_file + File ref_alt_alleles + File simulated_phases + String SNPCall_program + String genotyping_program + String CountsFrom + String cross + Int max_cores + Int seed + Int depth + String multiallelics + File? multiallelics_file + Int ploidy + } + + + call utilsR.ReGenotyping { + input: + vcf_file = vcf_file, + GenotypeCall_program = genotyping_program, + cross = cross, + parent1 = "P1", + parent2 = "P2", + max_cores = max_cores, + ploidy = ploidy + } + + if (multiallelics == "TRUE") { + call utils.JointMarkers { + input: + biallelic_vcf = ReGenotyping.regeno_vcf, + multiallelic_vcf = multiallelics_file + } + } + + File updated_vcf = select_first([JointMarkers.merged_vcf, ReGenotyping.regeno_vcf]) + + call utilsR.SetProbs { + input: + vcf_file = updated_vcf, + cross = cross, + parent1 = "P1", + parent2 = "P2", + multiallelics = multiallelics, + SNPCall_program = SNPCall_program + } + + Array[String] methods = [genotyping_program, genotyping_program + "0.05"] + Array[File] objects = [SetProbs.probs_onemap_obj, SetProbs.globalerror_onemap_obj] + Array[Pair[String, File]] methods_and_objects = zip(methods, objects) + + scatter (item in methods_and_objects) { + + call utilsR.FiltersReport { + input: + onemap_obj = item.right, + SNPCall_program = SNPCall_program, + GenotypeCall_program = item.left, + CountsFrom = CountsFrom, + seed = seed, + depth = depth + } + + call utilsR.MapsReport { + input: + onemap_obj = FiltersReport.onemap_obj_filtered, + ref_alt_alleles = ref_alt_alleles, + simu_onemap_obj = simu_onemap_obj, + SNPCall_program = SNPCall_program, + GenotypeCall_program = item.left, + CountsFrom = CountsFrom, + simulated_phases = simulated_phases, + seed = seed, + depth = depth, + max_cores = max_cores + } + + call utilsR.ErrorsReport { + input: + onemap_obj = item.right, + SNPCall_program = SNPCall_program, + GenotypeCall_program = item.left, + CountsFrom = CountsFrom, + simu_vcfR = simu_vcfR, + vcfR_obj = SetProbs.vcfR_obj, + seed = seed, + depth = depth, + max_cores = max_cores + } + + } + + call utils.Compress { + input: + RDatas = MapsReport.maps_RData, + maps_report = MapsReport.maps_report, + times = MapsReport.times, + filters_report = FiltersReport.filters_report, + errors_report = ErrorsReport.errors_report, + name = "regeno_maps" + } + + output { + File tar_gz_report = Compress.tar_gz_report + } +} diff --git a/janis_core/tests/data/wdl/reads2map/subworkflows/gusmap_maps_empirical.wdl b/janis_core/tests/data/wdl/reads2map/subworkflows/gusmap_maps_empirical.wdl new file mode 100644 index 000000000..fc4b44c41 --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/subworkflows/gusmap_maps_empirical.wdl @@ -0,0 +1,38 @@ +version 1.0 + +import "../tasks/gusmap.wdl" + +workflow gusmapMapsEmp { + input { + File vcf_file + String SNPCall_program + String GenotypeCall_program + String CountsFrom + String parent1 + String parent2 + Int max_cores + } + + call gusmap.GusmapReport { + input: + vcf_file = vcf_file, + SNPCall_program = SNPCall_program, + GenotypeCall_program = GenotypeCall_program, + CountsFrom = CountsFrom, + parent1 = parent1, + parent2 = parent2, + max_cores = max_cores + } + + call gusmap.CompressGusmap { + input: + name = "gusmap_map", + RDatas = GusmapReport.maps_RData, + maps_report = GusmapReport.maps_report, + times = GusmapReport.times + } + + output { + File tar_gz_report = CompressGusmap.tar_gz_report + } +} diff --git a/janis_core/tests/data/wdl/reads2map/subworkflows/gusmap_maps_simulated.wdl b/janis_core/tests/data/wdl/reads2map/subworkflows/gusmap_maps_simulated.wdl new file mode 100644 index 000000000..036b1530d --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/subworkflows/gusmap_maps_simulated.wdl @@ -0,0 +1,50 @@ +version 1.0 + +import "../tasks/gusmap.wdl" + +workflow gusmapMaps { + input { + File simu_onemap_obj + File vcf_file + File new_vcf_file + String SNPCall_program + String GenotypeCall_program + File ref_alt_alleles + File simulated_phases + Int seed + Int depth + Int max_cores + } + + Array[String] counts = ["vcf", "bam"] + Array[File] vcfs = [vcf_file, new_vcf_file] + Array[Pair[String, File]] counts_and_vcfs = zip(counts, vcfs) + + scatter (vcf in counts_and_vcfs) { + call gusmap.GusmapReportForSimulated as GusmapReport { + input: + vcf_file = vcf.right, + simu_onemap_obj = simu_onemap_obj, + SNPCall_program = SNPCall_program, + GenotypeCall_program = GenotypeCall_program, + CountsFrom = vcf.left, + ref_alt_alleles = ref_alt_alleles, + simulated_phases = simulated_phases, + seed = seed, + depth = depth, + max_cores = max_cores + } + } + + call gusmap.CompressGusmapSimu { + input: + name = "gusmap_map", + RDatas = GusmapReport.maps_RData, + maps_report = GusmapReport.maps_report, + times = GusmapReport.times + } + + output { + File tar_gz_report = CompressGusmapSimu.tar_gz_report + } +} diff --git a/janis_core/tests/data/wdl/reads2map/subworkflows/hard_filtering_empirical.wdl b/janis_core/tests/data/wdl/reads2map/subworkflows/hard_filtering_empirical.wdl new file mode 100644 index 000000000..4e01b4628 --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/subworkflows/hard_filtering_empirical.wdl @@ -0,0 +1,41 @@ +version 1.0 + +import "../structs/dna_seq_structs.wdl" +import "../tasks/gatk.wdl" +import "../tasks/utilsR.wdl" + +workflow HardFilteringEmp { + input { + ReferenceFasta references + File vcf_file + File vcf_tbi + } + + call gatk.VariantsToTable { + input: + vcf_file = vcf_file, + vcf_tbi = vcf_tbi, + reference = references.ref_fasta, + reference_dict = references.ref_dict, + reference_idx = references.ref_fasta_index + } + + call utilsR.QualPlots { + input: + Total=VariantsToTable.Total + } + + call gatk.VariantFiltration { + input: + vcf_file = vcf_file, + vcf_tbi = vcf_tbi, + reference = references.ref_fasta, + reference_idx = references.ref_fasta_index, + reference_dict = references.ref_dict + } + + output { + File Plots = QualPlots.Plots + File filt_vcf = VariantFiltration.filtered_vcf + } +} diff --git a/janis_core/tests/data/wdl/reads2map/subworkflows/hard_filtering_simulated.wdl b/janis_core/tests/data/wdl/reads2map/subworkflows/hard_filtering_simulated.wdl new file mode 100644 index 000000000..8fd7f470b --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/subworkflows/hard_filtering_simulated.wdl @@ -0,0 +1,49 @@ +version 1.0 + +import "../structs/dna_seq_structs.wdl" +import "../tasks/gatk.wdl" +import "../tasks/utilsR.wdl" + +workflow HardFiltering { + input { + ReferenceFasta references + File vcf_file + File vcf_tbi + File? simu_vcf + Int? seed + Int? depth + } + + call gatk.VariantsToTableForHardFilteringSimulated as VariantsToTable { + input: + vcf_file = vcf_file, + vcf_tbi = vcf_tbi, + simu_vcf = simu_vcf, + reference = references.ref_fasta, + reference_dict = references.ref_dict, + reference_idx = references.ref_fasta_index + } + + call utilsR.QualPlotsForHardFilteringSimulated as QualPlots { + input: + FalsePositives = VariantsToTable.FalsePositives, + TruePositives = VariantsToTable.TruePositives, + Total = VariantsToTable.Total, + seed = seed, + depth = depth + } + + call gatk.VariantFiltration { + input: + vcf_file = vcf_file, + vcf_tbi = vcf_tbi, + reference = references.ref_fasta, + reference_idx = references.ref_fasta_index, + reference_dict = references.ref_dict + } + + output { + File Plots = QualPlots.Plots + File filt_vcf = VariantFiltration.filtered_vcf + } +} diff --git a/janis_core/tests/data/wdl/reads2map/subworkflows/mappoly_maps_empirical.wdl b/janis_core/tests/data/wdl/reads2map/subworkflows/mappoly_maps_empirical.wdl new file mode 100644 index 000000000..360c5f878 --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/subworkflows/mappoly_maps_empirical.wdl @@ -0,0 +1,47 @@ +version 1.0 + +import "../tasks/utilsR.wdl" as utilsR +import "../tasks/mappoly.wdl" as mappolyTasks + +workflow MappolyMapsEmp { + + input { + File vcf_file + String SNPCall_program + String GenotypeCall_program + String CountsFrom + String cross + String parent1 + String parent2 + Int max_cores + Int ploidy + } + + call utilsR.ReGenotyping { + input: + vcf_file = vcf_file, + GenotypeCall_program = GenotypeCall_program, + cross = cross, + parent1 = parent1, + parent2 = parent2, + max_cores = max_cores, + ploidy = ploidy + } + + call mappolyTasks.MappolyReport { + input: + vcf_file = ReGenotyping.regeno_vcf, + parent1 = parent1, + parent2 = parent2, + GenotypeCall_program = GenotypeCall_program, + SNPCall_program = SNPCall_program, + CountsFrom = CountsFrom, + max_cores = max_cores, + ploidy = ploidy + } + + output { + File tar_gz_report = MappolyReport.results + File regeno_vcf = ReGenotyping.regeno_vcf + } +} diff --git a/janis_core/tests/data/wdl/reads2map/subworkflows/norm_filt_vcf.wdl b/janis_core/tests/data/wdl/reads2map/subworkflows/norm_filt_vcf.wdl new file mode 100644 index 000000000..17347fe43 --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/subworkflows/norm_filt_vcf.wdl @@ -0,0 +1,45 @@ +version 1.0 + +import "../tasks/bcftools.wdl" +import "../tasks/gatk.wdl" + +workflow Normalization { + input { + File vcf_in + File? vcf_simu + File reference + File reference_idx + File reference_dict + String program + String counts_source + Int ploidy + } + + call bcftools.BiallelicNormalization { + input: + vcf_file = vcf_in, + reference = reference, + reference_idx = reference_idx, + ploidy = ploidy, + software = program + } + + call gatk.VariantEval { + input: + vcf_norm = BiallelicNormalization.vcf_norm, + vcf_norm_tbi = BiallelicNormalization.vcf_norm_tbi, + vcf_simu = vcf_simu, + reference = reference, + reference_idx = reference_idx, + reference_dict = reference_dict, + ploidy = ploidy + } + + output { + File vcf_norm = BiallelicNormalization.vcf_norm + File vcf_norm_tbi = BiallelicNormalization.vcf_norm_tbi + File vcfEval = VariantEval.vcfEval + String software = "~{program}" + String source = "~{counts_source}" + } +} diff --git a/janis_core/tests/data/wdl/reads2map/subworkflows/snpcaller_maps_empirical.wdl b/janis_core/tests/data/wdl/reads2map/subworkflows/snpcaller_maps_empirical.wdl new file mode 100644 index 000000000..0e24aa25f --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/subworkflows/snpcaller_maps_empirical.wdl @@ -0,0 +1,95 @@ +version 1.0 + +import "../tasks/utilsR.wdl" as utilsR +import "../tasks/utils.wdl" as utils + +workflow SNPCallerMapsEmp { + input { + File vcf_file + String cross + String SNPCall_program + String GenotypeCall_program + String CountsFrom + String parent1 + String parent2 + String chromosome + String multiallelics + File? multiallelics_file + File? multiallelics_mchap + String mchap + Int max_cores + + } + + if (multiallelics == "TRUE") { + call utils.JointMarkers { + input: + biallelic_vcf = vcf_file, + multiallelic_vcf = multiallelics_file + } + } + + File updated_vcf = select_first([JointMarkers.merged_vcf, vcf_file]) + + call utilsR.SetProbsDefault { + input: + vcf_file = updated_vcf, + cross = cross, + parent1 = parent1, + parent2 = parent2, + SNPCall_program = SNPCall_program, + multiallelics = multiallelics, + multiallelics_mchap = multiallelics_mchap, + mchap = mchap + } + + Array[String] methods = [GenotypeCall_program, GenotypeCall_program + "0.05", GenotypeCall_program + "default"] + Array[File] objects = [SetProbsDefault.probs_onemap_obj, SetProbsDefault.globalerror_onemap_obj, SetProbsDefault.default_onemap_obj] + Array[Pair[String, File]] methods_and_objects = zip(methods, objects) + + scatter (item in methods_and_objects) { + call utilsR.CheckDepths { + input: + onemap_obj = item.right, + vcfR_obj = SetProbsDefault.vcfR_obj, + parent1 = parent1, + parent2 = parent2, + SNPCall_program = SNPCall_program, + GenotypeCall_program = item.left, + CountsFrom = CountsFrom, + max_cores = max_cores + } + + call utilsR.FiltersReportEmp { + input: + onemap_obj = item.right, + SNPCall_program = SNPCall_program, + GenotypeCall_program = item.left, + CountsFrom = CountsFrom, + chromosome = chromosome + } + + call utilsR.MapsReportEmp { + input: + sequence_obj = FiltersReportEmp.onemap_obj_filtered, + SNPCall_program = SNPCall_program, + GenotypeCall_program = item.left, + CountsFrom = CountsFrom, + max_cores = max_cores + } + } + + call utils.Compress { + input: + RDatas = MapsReportEmp.maps_RData, + maps_report = MapsReportEmp.maps_report, + times = MapsReportEmp.times, + filters_report = FiltersReportEmp.filters_report, + errors_report = CheckDepths.errors_report, + name = "snpcaller_maps" + } + + output { + File tar_gz_report = Compress.tar_gz_report + } +} diff --git a/janis_core/tests/data/wdl/reads2map/subworkflows/snpcaller_maps_simulated.wdl b/janis_core/tests/data/wdl/reads2map/subworkflows/snpcaller_maps_simulated.wdl new file mode 100644 index 000000000..965635051 --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/subworkflows/snpcaller_maps_simulated.wdl @@ -0,0 +1,104 @@ +version 1.0 + +import "../tasks/utilsR.wdl" as utilsR +import "../tasks/utils.wdl" as utils + +workflow SNPCallerMaps { + input { + File simu_onemap_obj + File simu_vcfR + File vcf_file + File ref_alt_alleles + File simulated_phases + String cross + String SNPCall_program + String GenotypeCall_program + String CountsFrom + Int seed + Int depth + Int max_cores + String multiallelics + File? multiallelics_file + File? multiallelics_mchap + String mchap + } + + if (multiallelics == "TRUE") { + call utils.JointMarkers { + input: + biallelic_vcf = vcf_file, + multiallelic_vcf = multiallelics_file + } + } + + File updated_vcf = select_first([JointMarkers.merged_vcf, vcf_file]) + + call utilsR.SetProbsDefault { + input: + vcf_file = updated_vcf, + cross = cross, + parent1 = "P1", + parent2 = "P2", + SNPCall_program = SNPCall_program, + multiallelics = multiallelics, + multiallelics_mchap = multiallelics_mchap, + mchap = mchap + } + + Array[String] methods = [GenotypeCall_program, GenotypeCall_program + "0.05", GenotypeCall_program + "default"] + Array[File] objects = [SetProbsDefault.probs_onemap_obj, SetProbsDefault.globalerror_onemap_obj, SetProbsDefault.default_onemap_obj] + Array[Pair[String, File]] methods_and_objects = zip(methods, objects) + + scatter (item in methods_and_objects) { + call utilsR.FiltersReport { + input: + onemap_obj = item.right, + SNPCall_program = SNPCall_program, + GenotypeCall_program = item.left, + CountsFrom = "vcf", + seed = seed, + depth = depth + } + + call utilsR.MapsReport { + input: + onemap_obj = FiltersReport.onemap_obj_filtered, + ref_alt_alleles = ref_alt_alleles, + simu_onemap_obj = simu_onemap_obj, + SNPCall_program = SNPCall_program, + GenotypeCall_program = item.left, + CountsFrom = CountsFrom, + simulated_phases = simulated_phases, + seed = seed, + depth = depth, + max_cores = max_cores + } + + call utilsR.ErrorsReport { + input: + onemap_obj = item.right, + SNPCall_program = SNPCall_program, + GenotypeCall_program = item.left, + CountsFrom = CountsFrom, + simu_vcfR = simu_vcfR, + vcfR_obj = SetProbsDefault.vcfR_obj, + seed = seed, + depth = depth, + max_cores = max_cores + } + } + + call utils.Compress { + input: + RDatas = MapsReport.maps_RData, + maps_report = MapsReport.maps_report, + times = MapsReport.times, + filters_report = FiltersReport.filters_report, + errors_report = ErrorsReport.errors_report, + name = "snpcaller_maps" + } + + output { + File tar_gz_report = Compress.tar_gz_report + } +} diff --git a/janis_core/tests/data/wdl/reads2map/tasks/BWA.wdl b/janis_core/tests/data/wdl/reads2map/tasks/BWA.wdl new file mode 100644 index 000000000..60749b680 --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/tasks/BWA.wdl @@ -0,0 +1,249 @@ +version 1.0 + +import "../structs/dna_seq_structs.wdl" + +# This task considers that it is possible to receive more than one fastq file per sample +# It keeps the different libraries in the header and merges the bam files +# The array reads1 have only the fastq from same sample # TODO: explain better what is 'reads1' +task RunBwaAlignment { + + input { + Array[String] sampleName + Array[File] reads + Array[String] libraries + ReferenceFasta references + Int max_cores + String rm_dupli + } + + Int disk_size = ceil(size(reads, "GiB") * 2 + size(references.ref_fasta, "GiB") + 20) + Int memory_size = 4000 * max_cores + + command <<< + mkdir tmp + + reads_list=( ~{sep=" " reads} ) + lib_list=( ~{sep=" " libraries} ) + sampleName_list=( ~{sep=" " sampleName}) + BAMS=() + for index in ${!reads_list[*]}; do + echo "${reads_list[$index]} is in ${lib_list[$index]}" + bwa_header="@RG\tID:${sampleName_list[$index]}.${lib_list[$index]}\tLB:lib-${lib_list[$index]}\tPL:illumina\tSM:${sampleName_list[$index]}\tPU:FLOWCELL1.LANE1.${lib_list[$index]}" + /usr/gitc/./bwa mem -t ~{max_cores} -R "${bwa_header}" ~{references.ref_fasta} "${reads_list[$index]}" | \ + java -jar /usr/gitc/picard.jar SortSam \ + I=/dev/stdin \ + O="${sampleName_list[$index]}.${lib_list[$index]}.sorted.bam" \ + TMP_DIR=./tmp \ + SORT_ORDER=coordinate \ + CREATE_INDEX=true; + mv "${sampleName_list[$index]}.${lib_list[$index]}.sorted.bai" "${sampleName_list[$index]}.${lib_list[$index]}.sorted.bam.bai"; + BAMS+=("I=${sampleName_list[$index]}.${lib_list[$index]}.sorted.bam") + done + + sampleName_unique=($(echo "${sampleName_list[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' ')) + + # Check if there are replicated samples + for index in ${!sampleName_unique[*]}; do + NFILES=($(echo ${sampleName_unique[$index]}.*.bam)) + echo ${NFILES[*]} + echo ${#NFILES[@]} + REP=() + if [ "${#NFILES[@]}" -gt 1 ]; then + for file in ${!NFILES[*]}; do + REP+=("I=${NFILES[$file]}") + done + echo ${REP[*]} + + java -jar /usr/gitc/picard.jar MergeSamFiles ${REP[*]} \ + O=${sampleName_unique[$index]}.sorted_temp.bam \ + CREATE_INDEX=true \ + TMP_DIR=./tmp + else + mv ${sampleName_unique[$index]}.*.bam ${sampleName_unique[$index]}.sorted_temp.bam + mv ${sampleName_unique[$index]}.*.bai ${sampleName_unique[$index]}.sorted_temp.bai + fi + + if [ "~{rm_dupli}" = "true" ]; then + java -jar /usr/gitc/picard.jar MarkDuplicates \ + I="${sampleName_unique[$index]}.sorted_temp.bam" \ + O="${sampleName_unique[$index]}.sorted.bam" \ + CLEAR_DT="false" \ + METRICS_FILE= "${sampleName_unique[$index]}_dup_metrics.txt" \ + REMOVE_SEQUENCING_DUPLICATES=true \ + CREATE_INDEX=true + else + java -jar /usr/gitc/picard.jar MarkDuplicates \ + I="${sampleName_unique[$index]}.sorted_temp.bam" \ + O="${sampleName_unique[$index]}.sorted_temp2.bam" \ + CLEAR_DT="false" \ + METRICS_FILE= "${sampleName_unique[$index]}_dup_metrics.txt" + + mv "${sampleName_unique[$index]}.sorted_temp.bam" "${sampleName_unique[$index]}.sorted.merged.bam" + mv "${sampleName_unique[$index]}.sorted_temp.bai" "${sampleName_unique[$index]}.sorted.merged.bai" + fi + + # Filter by MapQ + samtools view -bq 10 "${sampleName_unique[$index]}.sorted.merged.bam" > "${sampleName_unique[$index]}.sorted.merged.filtered.bam" + samtools index "${sampleName_unique[$index]}.sorted.merged.filtered.bam" + mv "${sampleName_unique[$index]}.sorted.merged.filtered.bam.bai" "${sampleName_unique[$index]}.sorted.merged.filtered.bai" + + done + >>> + + runtime { + docker: "us.gcr.io/broad-gotc-prod/genomes-in-the-cloud:2.5.7-2021-06-09_16-47-48Z" + cpu: max_cores + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + preemptible: 3 + # Slurm + job_name: "RunBwaAlignment" + mem:"~{memory_size}M" + time:"05:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Run [BWA](http://bio-bwa.sourceforge.net/) MEM alignment." + } + + output { + Array[File] bam = glob("*.sorted.merged.filtered.bam") + Array[File] bai = glob("*.sorted.merged.filtered.bai") + Array[File] dup_metrics = glob("*_dup_metrics.txt") + } +} + +task RunBwaAlignmentSimu { + + input { + File reads + Array[File] fastqs + ReferenceFasta references + Int max_cores + String rm_dupli + } + + Int disk_size = ceil(size(reads, "GiB") + size(fastqs, "GiB") * 2 + size(references.ref_fasta, "GiB")) + Int memory_size = 14000 + + command <<< + mkdir tmp + + ln -s ~{sep = " " fastqs} . + + for file in $(cat ~{reads}); do + + sample=`basename -s .1.fq $file` + file_name=`basename $file` + + bwa_header="@RG\tID:${sample}.1\tLB:lib-1\tPL:illumina\tSM:${sample}\tPU:FLOWCELL1.LANE1.1" + + /usr/gitc/./bwa mem -t ~{max_cores} -R "${bwa_header}" ~{references.ref_fasta} "$file_name" | \ + java -jar /usr/gitc/picard.jar SortSam \ + I=/dev/stdin \ + O="${sample}.sorted_temp.bam" \ + TMP_DIR=./tmp \ + SORT_ORDER=coordinate \ + CREATE_INDEX=true + + if [ "~{rm_dupli}" = "true" ]; then + java -jar /usr/gitc/picard.jar MarkDuplicates \ + I="${sample}.sorted_temp.bam" \ + O="${sample}.sorted.bam" \ + CLEAR_DT="false" \ + METRICS_FILE= "${sample}_dup_metrics.txt" \ + REMOVE_SEQUENCING_DUPLICATES=true \ + CREATE_INDEX=true + + else + java -jar /usr/gitc/picard.jar MarkDuplicates \ + I="${sample}.sorted_temp.bam" \ + O="${sample}.sorted_temp2.bam" \ + CLEAR_DT="false" \ + METRICS_FILE= "${sample}_dup_metrics.txt" + + mv "${sample}.sorted_temp.bam" "${sample}.sorted.bam" + mv "${sample}.sorted_temp.bai" "${sample}.sorted.bai" + + fi + + # Filter by MapQ + # samtools view -bq 10 "${sample}.sorted.bam" > "${sample}.sorted.filtered.bam" + # samtools index "${sample}.sorted.filtered.bam" + # mv "${sample}.sorted.filtered.bam.bai" "${sample}.sorted.filtered.bai" + + done + + mkdir dup_metrics + mv *_dup_metrics.txt dup_metrics + tar -czvf dup_metrics.tar.gz dup_metrics + + >>> + + runtime { + docker: "us.gcr.io/broad-gotc-prod/genomes-in-the-cloud:2.5.7-2021-06-09_16-47-48Z" + cpu: max_cores + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + preemptible: 3 + # Slurm + job_name: "RunBwaAlignmentSimu" + mem:"~{memory_size}M" + time:"10:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Run [BWA](http://bio-bwa.sourceforge.net/) MEM alignment in simulated reads." + } + + output { + Array[File] bam = glob("*.sorted.bam") + Array[File] bai = glob("*.sorted.bai") + File dup_metrics = "dup_metrics.tar.gz" + } +} + +task CreateChunksFastq { + input { + Array[String] sampleFile + Int chunk_size + } + + Int disk_size = ceil(size(sampleFile, "GiB") * 2) + Int memory_size = 1000 + + command <<< + set -e + for i in ~{sep=" " sampleFile}; do echo $i >> lof_sample.txt; done + + split -l ~{chunk_size} lof_sample.txt sample. + >>> + + runtime { + docker: "ubuntu:20.04" + cpu:1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "CreateChunksFastq" + mem:"~{memory_size}M" + time:"00:05:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Split the empirical fastq files into chunks to be aligned in parallel in the next task." + } + + output { + Array[File] sample_chunks = glob("sample.*") + } +} diff --git a/janis_core/tests/data/wdl/reads2map/tasks/JointReports.wdl b/janis_core/tests/data/wdl/reads2map/tasks/JointReports.wdl new file mode 100644 index 000000000..91d88d8cf --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/tasks/JointReports.wdl @@ -0,0 +1,451 @@ +version 1.0 + +task JointReports{ + input{ + Array[File?] SNPCaller + Array[File?] updog + Array[File?] polyrad + Array[File?] supermassa + Array[File?] gusmap + Int max_cores + } + + Int disk_size = ceil(size(SNPCaller, "GiB") * 1.5 + size(updog, "GiB") * 1.5 + size(polyrad, "GiB") * 1.5 + size(supermassa, "GiB") * 1.5 + size(gusmap, "GiB") * 1.5) + Int memory_size = 4000 + + command <<< + R --vanilla --no-save <<RSCRIPT + + # packages + library(tidyr) + library(stringr) + library(vroom) + library(largeList) + + SNPCaller <- str_split("~{sep=";" SNPCaller}", ";", simplify = T) + updog <- str_split("~{sep=";" updog}", ";", simplify = T) + polyrad <- str_split("~{sep=";" polyrad}", ";", simplify = T) + supermassa <- str_split("~{sep=";" supermassa}", ";", simplify = T) + gusmap <- str_split("~{sep=";" gusmap}", ";", simplify = T) + + files <- list(SNPCaller, updog, polyrad, supermassa, gusmap) + + path_dir <- tempdir() + system(paste0("mkdir ", paste0(path_dir, c("/maps", "/filters", "/errors", "/times", "/RDatas"), collapse = " "))) + for(i in 1:length(files)){ + for(j in 1:length(files[[i]])){ + untar(files[[i]][[j]], exdir = path_dir) + list_files <- untar(files[[i]][[j]], exdir = path_dir, list = T) + system(paste0("mv ",path_dir, "/",list_files[1], "*_map_report.tsv.gz ", path_dir, "/maps")) + system(paste0("mv ",path_dir, "/",list_files[1], "*_times_report.tsv.gz ", path_dir, "/times")) + system(paste0("mv ",path_dir, "/",list_files[1], "*.RData ", path_dir, "/RDatas")) + if(!grepl("gusmap", list_files[1])){ + system(paste0("mv ",path_dir, "/",list_files[1], "*_filters_report.tsv.gz ", path_dir, "/filters")) + system(paste0("mv ",path_dir, "/",list_files[1], "*_errors_report.tsv.gz ", path_dir, "/errors")) + } + } + } + + files <- system(paste0("ls ", path_dir, "/maps/"), intern = T) + files <- paste0(path_dir, "/maps/", files) + maps <- vroom(files, num_threads = ~{max_cores}) + + files <- system(paste0("ls ", path_dir, "/filters/"), intern = T) + files <- paste0(path_dir, "/filters/", files) + filters <- vroom(files, num_threads = ~{max_cores}) + + files <- system(paste0("ls ", path_dir, "/errors/"), intern = T) + files <- paste0(path_dir, "/errors/", files) + errors <- vroom(files, num_threads = ~{max_cores}) + + files <- system(paste0("ls ", path_dir, "/times/"), intern = T) + files <- paste0(path_dir, "/times/", files) + times <- vroom(files, num_threads = ~{max_cores}) + + files <- system(paste0("ls ", path_dir, "/RDatas/"), intern = T) + files <- paste0(path_dir, "/RDatas/", files) + + all_RDatas <- list() + for(i in 1:length(files)){ + map_temp <- load(files[i]) + all_RDatas[[i]] <- get(map_temp) + } + + names(all_RDatas) <- basename(files) + gusmap_RDatas <- all_RDatas[grep("gusmap", names(all_RDatas))] + RDatas <- all_RDatas[-grep("gusmap", names(all_RDatas))] + + # # Converting onemap sequencig objects to list. LargeList do not accept other class + # # Also because of this gusmap is separated, because the developers worked with enviroments, not classes + + for(i in 1:length(RDatas)){ + class(RDatas[[i]]) <- "list" + } + + saveList(RDatas, file = "sequences_emp.llo", append=FALSE, compress=TRUE) + + new_names <- names(all_RDatas) + vroom_write(as.data.frame(new_names), "names.tsv.gz") + save(gusmap_RDatas, file = "gusmap_RDatas.RData") + + # Outputs + vroom_write(errors, "data1_depths_geno_prob.tsv.gz", num_threads = ~{max_cores}) + vroom_write(maps, "data2_maps.tsv.gz", num_threads = ~{max_cores}) + vroom_write(filters, "data3_filters.tsv.gz", num_threads = ~{max_cores}) + vroom_write(times, "data4_times.tsv.gz", num_threads = ~{max_cores}) + + system("mkdir EmpiricalReads_results") + system("mv gusmap_RDatas.RData sequences_emp.llo data1_depths_geno_prob.tsv.gz data2_maps.tsv.gz data3_filters.tsv.gz data4_times.tsv.gz names.tsv.gz EmpiricalReads_results") + system("tar -czvf EmpiricalReads_results.tar.gz EmpiricalReads_results") + + RSCRIPT + + >>> + + runtime{ + docker:"cristaniguti/reads2map:0.0.4" + cpu: max_cores + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "JointReports" + mem:"~{memory_size}M" + time:"01:40:00" + } + + output{ + File EmpiricalReads_results = "EmpiricalReads_results.tar.gz" + } +} + +task JointReportsSimu { + input { + Array[File] SNPCaller + Array[File] updog + Array[File] polyrad + Array[File] supermassa + Array[File] gusmap_files + Array[File] multiallelics_file + File Freebayes_eval + File GATK_eval + Int max_cores + Int seed + Int depth + } + + Int disk_size = ceil(size(SNPCaller, "GiB") * 1.5 + size(updog, "GiB") * 1.5 + size(polyrad, "GiB") * 1.5 + size(supermassa, "GiB") * 1.5 + size(gusmap_files, "GiB") * 1.5 + size(multiallelics_file, "GiB") * 1.5) + Int memory_size = 5000 + + command <<< + R --vanilla --no-save <<RSCRIPT + + # packages + library(tidyr) + library(stringr) + library(vroom) + library(largeList) + library(vcfR) + + SNPCaller <- str_split("~{sep=";" SNPCaller}", ";", simplify = T) + updog <- str_split("~{sep=";" updog}", ";", simplify = T) + polyrad <- str_split("~{sep=";" polyrad}", ";", simplify = T) + supermassa <- str_split("~{sep=";" supermassa}", ";", simplify = T) + gusmap <- str_split("~{sep=";" gusmap_files}", ";", simplify = T) + + files <- list(SNPCaller, updog, polyrad, supermassa, gusmap) + + direc <- c("/maps/", "/filters/", "/errors/", "/times/", "/RDatas/") + + path_dir <- tempdir() + system(paste0("mkdir ", paste0(path_dir, direc, collapse = " "))) + for(i in 1:length(files)){ + for(j in 1:length(files[[i]])){ + untar(files[[i]][[j]], exdir = path_dir) + list_files <- untar(files[[i]][[j]], exdir = path_dir, list = T) + system(paste0("mv ",path_dir, "/",list_files[1], "*_map_report.tsv.gz ", path_dir, "/maps")) + system(paste0("mv ",path_dir, "/",list_files[1], "*_times_report.tsv.gz ", path_dir, "/times")) + system(paste0("mv ",path_dir, "/",list_files[1], "*.RData ", path_dir, "/RDatas")) + if(!grepl("gusmap", list_files[1])){ + system(paste0("mv ",path_dir, "/",list_files[1], "*_filters_report.tsv.gz ", path_dir, "/filters")) + system(paste0("mv ",path_dir, "/",list_files[1], "*_errors_report.tsv.gz ", path_dir, "/errors")) + } + } + } + + direc_tsv <- direc[-5] + tsvs <- list() + for(i in 1:length(direc_tsv)){ + files <- system(paste0("ls ", path_dir, direc_tsv[i]), intern = T) + files <- paste0(path_dir, direc_tsv[i], files) + tsvs[[i]] <- vroom(files, num_threads = ~{max_cores}) + } + + # Add multiallelics tag + vcf_multi <- str_split("~{sep = ";" multiallelics_file}", ";", simplify = T) + + vcfs <- lapply(as.list(vcf_multi), read.vcfR) + multi_names_seed <- lapply(vcfs, function(x) paste0(x@fix[,1], "_", x@fix[,2])) + + snpcall_names <- rep(NA, length(vcfs)) + snpcall_names[which(sapply(vcfs, function(x) any(grep("gatk",x@meta))))] <- "gatk" + snpcall_names[which(sapply(vcfs, function(x) any(grep("freebayes",x@meta))))] <- "freebayes" + + for(i in 1:length(snpcall_names)){ + tsvs[[1]][,"real.mks"][which(tsvs[[1]][,"SNPCall"] == snpcall_names[i] & + tsvs[[1]][,"mk.name"] %in% multi_names_seed[[i]])] <- "multiallelic" + } + + library(gsalib) + df <- gsa.read.gatkreport("~{Freebayes_eval}") + eval1 <- cbind(SNPCall = "Freebayes", seed = ~{seed}, depth = ~{depth}, df[["CompOverlap"]]) + count1 <- cbind(SNPCall = "Freebayes", seed = ~{seed}, depth = ~{depth}, df[["CountVariants"]]) + + df <- gsa.read.gatkreport("~{GATK_eval}") + eval2 <- cbind(SNPCall = "GATK", seed = ~{seed}, depth = ~{depth}, df[["CompOverlap"]]) + count2 <- cbind(SNPCall = "GATK", seed = ~{seed}, depth = ~{depth}, df[["CountVariants"]]) + + df <- rbind(eval1, eval2) + vroom_write(df, "data5_SNPCall_efficiency.tsv.gz", num_threads = ~{max_cores}) + + df <- rbind(count1, count2) + vroom_write(df, "data10_CountVariants.tsv.gz", num_threads = ~{max_cores}) + + rdatas_files <- paste0(path_dir, "/RDatas/",list.files(paste0(path_dir, "/RDatas/"))) + + all_RDatas <- list() + for(i in 1:length(rdatas_files)){ + map_temp <- load(rdatas_files[i]) + all_RDatas[[i]] <- get(map_temp) + } + all_RDatas <- unlist(all_RDatas, recursive = F) + + gusmap_RDatas <- all_RDatas[grep("gusmap", names(all_RDatas))] + RDatas <- all_RDatas[-grep("gusmap", names(all_RDatas))] + + # # Converting onemap sequencig objects to list. LargeList do not accept other class + # # Also because of this gusmap is separated, because the developers worked with enviroments, not classes + + for(i in 1:length(RDatas)){ + class(RDatas[[i]]) <- "list" + } + + saveList(RDatas, file = "data6_RDatas.llo", append=FALSE, compress=TRUE) + + new_names <- names(all_RDatas) + vroom_write(as.data.frame(new_names), "names.tsv.gz") + save(gusmap_RDatas, file = "gusmap_RDatas.RData") + + # Outputs + vroom_write(tsvs[[3]], "data1_depths_geno_prob.tsv.gz", num_threads = ~{max_cores}) + vroom_write(tsvs[[1]], "data2_maps.tsv.gz", num_threads = ~{max_cores}) + vroom_write(tsvs[[2]], "data3_filters.tsv.gz", num_threads = ~{max_cores}) + vroom_write(tsvs[[4]], "data4_times.tsv.gz", num_threads = ~{max_cores}) + + RSCRIPT + >>> + + runtime { + docker:"cristaniguti/reads2map:0.0.4" + cpu: max_cores + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "JointReports" + mem:"~{memory_size}M" + time:"01:40:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Merge reports resulted from evaluations with different pipelines." + } + + output { + File data1_depths_geno_prob = "data1_depths_geno_prob.tsv.gz" + File data2_maps = "data2_maps.tsv.gz" + File data3_filters = "data3_filters.tsv.gz" + File data4_times = "data4_times.tsv.gz" + File data5_SNPCall_efficiency = "data5_SNPCall_efficiency.tsv.gz" + File data6_RDatas = "data6_RDatas.llo" + File data7_gusmap = "gusmap_RDatas.RData" + File data8_names = "names.tsv.gz" + File data10_counts = "data10_CountVariants.tsv.gz" + } +} + +task JointTablesSimu{ + input { + Array[File] data1_depths_geno_prob + Array[File] data2_maps + Array[File] data3_filters + Array[File] data5_SNPCall_efficiency + Array[File] data4_times + Array[File] data6_RDatas + Array[File] data7_gusmap + Array[File] data8_names + Array[File] data9_simu_haplo + Array[File] data10_counts + Array[File?] plots + Array[File] positions + Int depth + } + + Int disk_size = ceil(size(data1_depths_geno_prob, "GiB") * 2 + size(data2_maps, "GiB") + size(data3_filters, "GiB") + size(data5_SNPCall_efficiency, "GiB") + size(data4_times, "GiB") + size(data6_RDatas, "GiB") + size(data7_gusmap, "GiB") + size(data8_names, "GiB") + size(data9_simu_haplo, "GiB") + size(data10_counts, "GiB")) + Int memory_size = 7000 + + command <<< + + R --vanilla --no-save <<RSCRIPT + library(tidyverse) + library(largeList) + library(vroom) + + datas <- list() + + datas[[1]] <- c("~{sep=";" data1_depths_geno_prob }") + datas[[2]] <- c("~{sep=";" data2_maps }") + datas[[3]] <- c("~{sep=";" data3_filters }") + datas[[4]] <- c("~{sep=";" data5_SNPCall_efficiency}") + datas[[5]] <- c("~{sep=";" data4_times }") + datas[[6]] <- c("~{sep=";" data6_RDatas }") + datas[[7]] <- c("~{sep=";" data7_gusmap }") + datas[[8]] <- c("~{sep=";" data8_names }") + datas[[9]] <- c("~{sep=";" data9_simu_haplo }") + datas[[10]] <- c("~{sep=";" data10_counts }") + + datas <- lapply(datas, function(x) unlist(strsplit(x, ";"))) + + Rdata_lst <- data_lst <- datas_up <- list() + for(j in 1:length(datas)){ + if(j == 6){ + for(i in 1:length(datas[[j]])){ + temp <- readList(datas[[j]][i]) + if(i == 1){ + saveList(temp, file="sequences.llo", append = F, compress = T) + } else { + saveList(temp, file="sequences.llo", append = T, compress = T) + } + } + } else if(j == 7){ + for(i in 1:length(datas[[j]])){ + temp <- load(datas[[j]][i]) + Rdata_lst[[i]] <- get(temp) + } + Rdatas <- do.call(c, Rdata_lst) + save(Rdatas, file = "gusmap_RDatas.RData") + } else { + for(i in 1:length(datas[[j]])){ + data_lst[[i]] <- vroom(datas[[j]][i], delim = "\t") + } + if(j == 8){ + dat <- do.call(c, data_lst) + } else dat <- do.call(rbind, data_lst) + datas_up[[j]] <- dat + } + } + + vroom_write(datas_up[[1]], "data1_depths_geno_prob.tsv.gz") + vroom_write(datas_up[[2]], "data2_maps.tsv.gz") + vroom_write(datas_up[[3]], "data3_filters.tsv.gz") + vroom_write(datas_up[[5]], "data4_times.tsv.gz") + vroom_write(datas_up[[4]], "data5_SNPCall_efficiency.tsv.gz") + vroom_write(datas_up[[9]], "simu_haplo.tsv.gz") + vroom_write(datas_up[[10]], "data10_counts.tsv.gz") + + data.names <- as.data.frame(datas_up[[8]]) + print(data.names) + vroom_write(data.names, "names.tsv.gz") + + system("mkdir SimulatedReads_results_depth~{depth}") + system("mv gusmap_RDatas.RData sequences.llo data1_depths_geno_prob.tsv.gz \ + data2_maps.tsv.gz data3_filters.tsv.gz data4_times.tsv.gz data5_SNPCall_efficiency.tsv.gz data10_counts.tsv.gz \ + simu_haplo.tsv.gz names.tsv.gz ~{sep=" " plots} ~{sep=" " positions} SimulatedReads_results_depth~{depth}") + system("tar -czvf SimulatedReads_results_depth~{depth}.tar.gz SimulatedReads_results_depth~{depth}") + + RSCRIPT + >>> + + runtime { + docker:"cristaniguti/reads2map:0.0.4" + cpu: 1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "JointTables" + mem:"~{memory_size}M" + time:"01:40:00" + } + + output { + File results = "SimulatedReads_results_depth~{depth}.tar.gz" + } +} + +task JointReportsPoly{ + input{ + Array[File?] SNPCaller + Array[File?] updog + Array[File?] polyrad + Array[File?] supermassa + } + + Int disk_size = ceil(size(SNPCaller, "GiB") * 1.5 + size(updog, "GiB") * 1.5 + size(polyrad, "GiB") * 1.5 + size(supermassa, "GiB") * 1.5) + Int memory_size = 4000 + + command <<< + + snpcaller=(~{sep=" " SNPCaller}) + updog=(~{sep=" " updog}) + polyrad=(~{sep=" " polyrad}) + supermassa=(~{sep=" " supermassa}) + + mkdir results_all + + for index in ${!snpcaller[*]}; + tar -xvf ${snpcaller[$index]} + mv results/* results_all + rm -r results + done + + for index in ${!updog[*]}; + tar -xvf ${updog[$index]} + mv results/* results_all + rm -r results + done + + for index in ${!polyrad[*]}; + tar -xvf ${polyrad[$index]} + mv results/* results_all + rm -r results + done + + for index in ${!supermassa[*]}; + tar -xvf ${supermassa[$index]} + mv results/* results_all + rm -r results + done + + tar -czvf EmpiricalReads_results_poly.tar.gz results_all + + >>> + + runtime{ + docker:"ubuntu:20.04" + cpu: 1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "JointReports" + mem:"~{memory_size}M" + time:"01:40:00" + } + + output{ + File EmpiricalReads_results = "EmpiricalReads_results_poly.tar.gz" + } +} \ No newline at end of file diff --git a/janis_core/tests/data/wdl/reads2map/tasks/bcftools.wdl b/janis_core/tests/data/wdl/reads2map/tasks/bcftools.wdl new file mode 100644 index 000000000..160fe4604 --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/tasks/bcftools.wdl @@ -0,0 +1,53 @@ +version 1.0 + + +# Split all markers by row in VCF +# Fix indels positions +task BiallelicNormalization { + input { + File vcf_file + File reference + File reference_idx + Int ploidy + String software + } + + Int disk_size = ceil(size(vcf_file, "GiB") + size(reference, "GiB") + 2) + Int memory_size = 7000 + + command <<< + + #if [ ~{ploidy} -gt 2 ] && [ "~{software}" == "freebayes" ] # GATK returns an error when trying to split by row saying that PL has wrong number of fields + #then + # bcftools norm ~{vcf_file} -m - -Ov --check-ref w -f ~{reference} > vcf_norm.vcf + #else + bcftools norm ~{vcf_file} --rm-dup all -Ov --check-ref w -f ~{reference} > vcf_norm.vcf + #fi + + bgzip vcf_norm.vcf + tabix -p vcf vcf_norm.vcf.gz + >>> + + runtime { + docker: "lifebitai/bcftools:1.10.2" + cpu: 1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "BiallelicNormalization" + mem:"~{memory_size}M" + time:"01:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Uses [bcftools](https://samtools.github.io/bcftools/bcftools.html) to left-align and normalize indels in the VCF file." + } + + output { + File vcf_norm = "vcf_norm.vcf.gz" + File vcf_norm_tbi = "vcf_norm.vcf.gz.tbi" + } +} diff --git a/janis_core/tests/data/wdl/reads2map/tasks/chunk_lists.wdl b/janis_core/tests/data/wdl/reads2map/tasks/chunk_lists.wdl new file mode 100644 index 000000000..003a5f62e --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/tasks/chunk_lists.wdl @@ -0,0 +1,266 @@ +version 1.0 + +task SepareChunksFastqString { + input { + File families_info + Int chunk_size + } + + Int disk_size = ceil(size(families_info, "GiB") * 2) + Int memory_size = 1000 + + command <<< + R --vanilla --no-save <<RSCRIPT + df <- read.table("~{families_info}") + split_df <- split.data.frame(df, df[,2]) + + n_chunk <- as.integer(length(split_df)/~{chunk_size}) + chunk_temp <- rep(1:n_chunk, each=~{chunk_size}) + chunk <- c(chunk_temp, rep(n_chunk+1, length(split_df) - length(chunk_temp))) + chunk_sep <- split(split_df, chunk) + + for(i in 1:length(chunk_sep)){ + df <- do.call(rbind, unlist(chunk_sep[i], recursive = F)) + df <- t(df) + write.table(df, file = paste0("chunk_",i, ".txt"), quote = F, col.names = F, row.names = F, sep="\t") + } + + RSCRIPT + + >>> + + runtime { + docker: "cristaniguti/reads2map:0.0.4" + cpu:1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "SepareChunksIndividuals" + mem:"~{memory_size}M" + time:"00:10:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Split the fastq files into chunks to be aligned in parallel in the next task." + } + + output { + Array[File] chunks = glob("chunk*") + } +} + + +task SepareChunksFastq { + input { + Array[File] fastqs + Int chunk_size + } + + Int disk_size = ceil(size(fastqs, "GiB") * 2) + Int memory_size = 1000 + + command <<< + R --vanilla --no-save <<RSCRIPT + + files <- c("~{sep="," fastqs}") + files <- unlist(strsplit(files, split = ",")) + + n_chunk <- floor(length(files)/~{chunk_size}) + + chunk_temp <- rep(1:n_chunk, each = ~{chunk_size}) + chunk <- c(chunk_temp, rep(n_chunk+1, length(files) - length(chunk_temp))) + + chunk_sep <- split(files, chunk) + + for(i in 1:length(chunk_sep)){ + write.table(chunk_sep[[i]], file = paste0("chunk_",i, ".txt"), quote = F, col.names = F, row.names = F, sep="\t") + } + + RSCRIPT + + >>> + + runtime { + docker: "cristaniguti/reads2map:0.0.4" + cpu:1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "SepareChunksIndividuals" + mem:"~{memory_size}M" + time:"00:10:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Split the simulated fastq files into chunks to be aligned in parallel in the next task." + } + + output { + Array[File] chunks = glob("chunk*") + } +} + + +task CreateChunksBam { + input { + Array[String] bams + Array[String] bams_index + File reference_fasta + Int chunk_size + } + + Int disk_size = ceil(size(reference_fasta, "GiB") + 2) + + command <<< + set -e + for i in ~{sep=" " bams}; do echo $i >> lof_bams.txt; done + for i in ~{sep=" " bams_index}; do echo $i >> lof_bais.txt; done + + split -l ~{chunk_size} lof_bams.txt bams. + split -l ~{chunk_size} lof_bais.txt bais. + + cat ~{reference_fasta} | grep '>' | tr '\n' ',' | sed '$ s/.$//' | sed 's/,/ \n/g' | sed 's/>//g' > intervals.txt + >>> + + runtime { + docker: "ubuntu:20.04" + cpu: 1 + # Cloud + memory:"1000 MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "CreateChunks" + mem:"1G" + time:"00:05:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Split the the samples BAM alignment files in chunks." + } + + output { + Array[File] bams_chunks = glob("bams.*") + Array[File] bais_chunks = glob("bais.*") + File interval_list = "intervals.txt" + } +} + +task SepareChunksBed { + input { + File bed_file + Int n_nodes + } + + Int disk_size = ceil(size(bed_file, "GiB") * 1.5) + Int memory_size = 1000 + + command <<< + R --vanilla --no-save <<RSCRIPT + library(vroom) + bed <- vroom("~{bed_file}") + + chunk_size <- floor(dim(bed)[1]/~{n_nodes}) + + chunk_temp <- rep(1:~{n_nodes}, each = chunk_size) + chunk <- c(chunk_temp, rep(~{n_nodes}+1, dim(bed)[1] - length(chunk_temp))) + + chunk_sep <- split.data.frame(bed, chunk) + + for(i in 1:length(chunk_sep)){ + write.table(chunk_sep[[i]], file = paste0("chunk_",i, ".txt"), quote = F, col.names = F, row.names = F, sep="\t") + } + RSCRIPT + >>> + + runtime { + docker: "cristaniguti/reads2map:0.0.4" + cpu: 1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "SepareChunksBed" + mem:"~{memory_size}M" + time:"00:05:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Split BED file rows in batches according to defined number of nodes." + } + + output { + Array[File] chunks = glob("chunk*") + } +} + + +task CreateChunksBamByChr { + input { + File merged_bam + File reference + Int n_chrom + } + + Int disk_size = ceil(size(reference, "GiB") + 2) + Int nline = n_chrom + 1 + + command <<< + set -e + + samtools index ~{merged_bam} + + cat ~{reference} | grep '>' | tr '\n' ',' | sed '$ s/.$//' | sed 's/,/ \n/g' | sed 's/>//g' > intervals.txt + + for index in $(head -n ~{n_chrom} intervals.txt); do + samtools view -b ~{merged_bam} $index > in_$index.bam + samtools index in_$index.bam + done + + tail -n +~{nline} intervals.txt > scaffolds.txt + + for index in $(cat scaffolds.txt); do + samtools view -b ~{merged_bam} $index > sca_$index.bam + done + + count=`ls -1 sca_*.bam 2>/dev/null | wc -l` + if [ $count != 0 ] + then + samtools merge in_scaffolds.bam sca_*.bam + samtools index in_scaffolds.bam + fi + + >>> + + runtime { + docker: "us.gcr.io/broad-gotc-prod/genomes-in-the-cloud:2.5.7-2021-06-09_16-47-48Z" + cpu: 1 + # Cloud + memory:"1000 MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "CreateChunks" + mem:"1G" + time:"01:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Split the merged samples BAM alignment file in chunks by chromossome." + } + + output { + Array[File] bams_chunks = glob("in_*.bam") + Array[File] bais_chunks = glob("in_*.bai") + } +} \ No newline at end of file diff --git a/janis_core/tests/data/wdl/reads2map/tasks/cutadapt.wdl b/janis_core/tests/data/wdl/reads2map/tasks/cutadapt.wdl new file mode 100644 index 000000000..645e167c9 --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/tasks/cutadapt.wdl @@ -0,0 +1,32 @@ +version 1.0 + +task RemoveAdapt { + input{ + File sequence + String adapter + String sequence_name + } + + Int disk_size = ceil(size(sequence, "GiB") * 2) + Int memory_size = 6000 + + command <<< + cutadapt -a ~{adapter} -o ~{sequence_name}_trim.fastq.gz ~{sequence} --minimum-length 64 + >>> + + runtime { + docker:"kfdrc/cutadapt" + cpu:1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "RemoveAdapt" + mem:"~{memory_size}M" + time:"10:00:00" + } + + output { + File trim_seq = "~{sequence_name}_trim.fastq.gz" + } +} diff --git a/janis_core/tests/data/wdl/reads2map/tasks/freebayes.wdl b/janis_core/tests/data/wdl/reads2map/tasks/freebayes.wdl new file mode 100644 index 000000000..9e71dd2c2 --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/tasks/freebayes.wdl @@ -0,0 +1,48 @@ +version 1.0 + +task RunFreebayes { + + input { + File reference + File reference_idx + File bam + File bai + Int max_cores + Int ploidy + } + + Int disk_size = ceil(size(reference, "GiB") + size(bam, "GiB") + 50) + Int memory_size = ceil(size(bam, "MiB") * 25 * max_cores + 10000) + + command <<< + + ln -s ~{bam} . + ln -s ~{bai} . + + freebayes-parallel <(fasta_generate_regions.py ~{reference_idx} 100000) ~{max_cores} \ + --genotype-qualities --ploidy ~{ploidy} -f ~{reference} *bam > "freebayes.vcf" + + >>> + + runtime { + docker: "cristaniguti/freebayes:0.0.1" + cpu: max_cores + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "RunFreebayes" + mem:"~{memory_size}M" + time:"48:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Split genomic regions and runs [freebayes](https://github.com/freebayes/freebayes) parallelized." + } + + output { + File vcf = "freebayes.vcf" + } +} diff --git a/janis_core/tests/data/wdl/reads2map/tasks/gatk.wdl b/janis_core/tests/data/wdl/reads2map/tasks/gatk.wdl new file mode 100644 index 000000000..b62dd5e89 --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/tasks/gatk.wdl @@ -0,0 +1,459 @@ +version 1.0 + +## Process all samples because it RAD experiments +## usually do not have large ammount of reads. +## NotE: if BAMS have same name it will be overrided in this task. +task HaplotypeCaller { + input { + File reference_fasta + File reference_dict + File reference_fai + Array[File] bams + Array[File] bams_index + Int ploidy + Int chunk_size + } + + Int disk_size = ceil((size(bams, "GiB") + 30) + size(reference_fasta, "GiB")) + 20 + Int memory_max = ceil(5000 * chunk_size) + Int memory_min = memory_max / 2 + Int memory_size = memory_max + 5000 + Int max_cores = ceil(chunk_size * 4 + 2) + + command <<< + set -euo pipefail + + for bam in ~{sep=" " bams}; do ln -s $bam .; done + for bai in ~{sep=" " bams_index}; do ln -s $bai .; done + + mkdir vcfs + ## gvcf for each sample + for bam in *.bam; do + out_name=$(basename -s ".bam" "$bam") + /usr/gitc/gatk4/./gatk --java-options "-Xms~{memory_min}m -Xmx~{memory_max}m" HaplotypeCaller \ + -ERC GVCF \ + -R ~{reference_fasta} \ + -ploidy ~{ploidy} \ + -I "$bam" \ + -O "vcfs/${out_name}.g.vcf.gz" \ + --max-alternate-alleles 1 \ + --max-reads-per-alignment-start 0 & + done + + wait # TODO: Why this line? Because of the & + >>> + + runtime { + docker: "us.gcr.io/broad-gotc-prod/genomes-in-the-cloud:2.5.7-2021-06-09_16-47-48Z" + cpu: max_cores + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "HaplotypeCaller" + mem:"~{memory_size}M" + time:"24:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Runs [HaplotypeCaller](https://gatk.broadinstitute.org/hc/en-us/articles/360037225632-HaplotypeCaller)." + } + + output { + Array[File] vcfs = glob("vcfs/*.vcf.gz") + Array[File] vcfs_index = glob("vcfs/*.vcf.gz.tbi") + } +} + +task ImportGVCFs { + input { + Array[File] vcfs + Array[File] vcfs_index + File reference_fasta + File reference_fai + File reference_dict + String interval + } + + Int disk_size = ceil(size(vcfs, "GiB") * 1.5 + size(reference_fasta, "GiB") * 1.5) + Int memory_max = 2300 + Int memory_min = 2000 + Int memory_size = 26000 + + command <<< + set -euo pipefail + grep ">" ~{reference_fasta} | sed 's/^.//' > interval.list + mkdir gvcfs + for i in ~{sep=" " vcfs}; do ln -s $i gvcfs/; done + for i in ~{sep=" " vcfs_index}; do ln -s $i gvcfs/; done + + /usr/gitc/gatk4/./gatk --java-options "-Xms~{memory_min}m -Xmx~{memory_max}m" GenomicsDBImport \ + --batch-size 50 \ + --reader-threads 5 \ + --genomicsdb-workspace-path cohort_db \ + -L ~{interval} \ + -V $(find gvcfs/*.g.vcf.gz -type l | paste -d',' -s | sed 's/,/ -V /g') \ + --consolidate + + tar -cf cohort_db.tar cohort_db + + >>> + + runtime { + docker: "us.gcr.io/broad-gotc-prod/genomes-in-the-cloud:2.5.7-2021-06-09_16-47-48Z" + cpu: 4 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "ImportGVCFs" + mem:"~{memory_size}M" + time:"24:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Runs [GenomicsDBImport](https://gatk.broadinstitute.org/hc/en-us/articles/360036883491-GenomicsDBImport)." + } + + output { + File output_workspace = "cohort_db.tar" + } +} + +task GenotypeGVCFs { + input { + File workspace_tar + File reference_fasta + File reference_fai + File reference_dict + String interval + } + + Int disk_size = ceil(size(reference_fasta, "GiB") * 1.5 + size(workspace_tar, "GiB") * 1.5) + Int memory_max = 2300 + Int memory_min = 2000 + Int memory_size = 26000 + + command <<< + set -euo pipefail + + tar -xf ~{workspace_tar} + + /usr/gitc/gatk4/./gatk --java-options "-Xms~{memory_min}m -Xmx~{memory_max}m" GenotypeGVCFs \ + -R ~{reference_fasta} \ + -V gendb://cohort_db \ + -L ~{interval} \ + -G StandardAnnotation \ + --max-alternate-alleles 1 \ + -O gatk.vcf.gz + + >>> + + runtime { + docker: "us.gcr.io/broad-gotc-prod/genomes-in-the-cloud:2.5.7-2021-06-09_16-47-48Z" + cpu: 2 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "GenotypeGVCFs" + mem:"~{memory_size}M" + time:"24:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Runs [GenotypeGVCFs](https://gatk.broadinstitute.org/hc/en-us/articles/360037057852-GenotypeGVCFs)." + } + + output { + File vcf = "gatk.vcf.gz" + File vcf_tbi = "gatk.vcf.gz.tbi" + } +} + +task MergeVCFs { + + input { + Array[File] input_vcfs + Array[File] input_vcf_indices + } + + Int disk_size = ceil(size(input_vcfs, "GiB") * 2.5) + 10 + Int memory_max = 2800 + Int memory_min = 2600 + Int memory_size = 3000 + + command <<< + + /usr/gitc/gatk4/./gatk --java-options "-Xms~{memory_min}m -Xmx~{memory_max}m" \ + MergeVcfs \ + -I ~{sep=' -I' input_vcfs} \ + -O gatk_joint.vcf.gz + >>> + + runtime { + docker: "us.gcr.io/broad-gotc-prod/genomes-in-the-cloud:2.5.7-2021-06-09_16-47-48Z" + cpu: 1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "MergeVCFs" + mem:"~{memory_size}M" + time:"10:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Runs [MergeVcfs](https://gatk.broadinstitute.org/hc/en-us/articles/360037226612-MergeVcfs-Picard-)." + } + + output { + File output_vcf = "gatk_joint.vcf.gz" + File output_vcf_index = "gatk_joint.vcf.gz.tbi" + } +} + +task VariantsToTable { + input { + File vcf_file + File vcf_tbi + File reference + File reference_dict + File reference_idx + } + + Int disk_size = ceil(size(reference, "GB") + size(vcf_file, "GB") + 2) + Int memory_size = 2500 + + command <<< + + /usr/gitc/gatk4/./gatk VariantsToTable \ + -V ~{vcf_file} \ + -F CHROM -F POS \ + -F QD \ + -F FS \ + -F SOR \ + -F MQ \ + -F MQRankSum \ + -F ReadPosRankSum \ + -O Total.table + + >>> + + runtime { + docker: "us.gcr.io/broad-gotc-prod/genomes-in-the-cloud:2.5.7-2021-06-09_16-47-48Z" + cpu: 1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "VariantsToTable" + mem:"~{memory_size}M" + time:"01:40:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Generated tables with estimated markers quality parameters. See more information in [VariatsToTable](https://gatk.broadinstitute.org/hc/en-us/articles/360036896892-VariantsToTable) tool" + } + + output { + File Total = "Total.table" + } + +} + +task VariantFiltration { + input { + File vcf_file + File vcf_tbi + File reference + File reference_idx + File reference_dict + } + + Int disk_size = ceil(size(vcf_file, "GB") + size(reference, "GB") + 1) + Int memory_size = 3000 + + command <<< + /usr/gitc/gatk4/./gatk VariantFiltration \ + -V ~{vcf_file} \ + -filter "QD < 2.0" --filter-name "QD2" \ + -filter "QUAL < 30.0" --filter-name "QUAL30" \ + -filter "SOR > 3.0" --filter-name "SOR3" \ + -filter "FS > 60.0" --filter-name "FS60" \ + -filter "MQ < 40.0" --filter-name "MQ40" \ + -filter "MQRankSum < -12.5" --filter-name "MQRankSum-12.5" \ + -filter "ReadPosRankSum < -8.0" --filter-name "ReadPosRankSum-8" \ + -O gatk_filters.vcf.gz + + /usr/gitc/gatk4/./gatk SelectVariants \ + -R ~{reference} \ + -V gatk_filters.vcf.gz \ + --exclude-filtered \ + -O gatk_filtered.vcf.gz + + >>> + + runtime { + docker: "us.gcr.io/broad-gotc-prod/genomes-in-the-cloud:2.5.7-2021-06-09_16-47-48Z" + cpu: 1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "VariantFiltration" + mem:"~{memory_size}M" + time:"01:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Filters empirical VCF according to GATK Hard Filtering. See more information in [VariatsToTable](https://gatk.broadinstitute.org/hc/en-us/articles/360035890471-Hard-filtering-germline-short-variants) tool" + } + + output { + File filters_vcf = "gatk_filters.vcf.gz" + File filtered_vcf = "gatk_filtered.vcf.gz" + } +} + +task VariantsToTableForHardFilteringSimulated { + input { + File vcf_file + File vcf_tbi + File? simu_vcf + File reference + File reference_dict + File reference_idx + } + + Int disk_size = ceil(size(reference, "GB") + size(vcf_file, "GB") + size(simu_vcf, "GB") + 2) + Int memory_size = 3000 + + command <<< + /usr/gitc/./bgzip -c ~{simu_vcf} > ~{simu_vcf}.gz + /usr/gitc/./tabix -p vcf ~{simu_vcf}.gz + + /usr/gitc/gatk4/./gatk SelectVariants \ + -R ~{reference} \ + -V ~{vcf_file} \ + --discordance ~{simu_vcf}.gz \ + -O FalsePositives.vcf.gz + + /usr/gitc/gatk4/./gatk SelectVariants \ + -R ~{reference} \ + -V ~{vcf_file} \ + --concordance ~{simu_vcf}.gz \ + -O TruePositives.vcf.gz + + /usr/gitc/gatk4/./gatk VariantsToTable \ + -V ~{vcf_file} \ + -F CHROM -F POS \ + -F QD \ + -F FS \ + -F SOR \ + -F MQ \ + -F MQRankSum \ + -F ReadPosRankSum \ + -O Total.table + + /usr/gitc/gatk4/./gatk VariantsToTable \ + -V FalsePositives.vcf.gz \ + -F CHROM -F POS \ + -F QD \ + -F FS \ + -F SOR \ + -F MQ \ + -F MQRankSum \ + -F ReadPosRankSum \ + -O FalsePositives.table + + /usr/gitc/gatk4/./gatk VariantsToTable \ + -V TruePositives.vcf.gz \ + -F CHROM -F POS \ + -F QD \ + -F FS \ + -F SOR \ + -F MQ \ + -F MQRankSum \ + -F ReadPosRankSum \ + -O TruePositives.table + >>> + + runtime { + docker: "us.gcr.io/broad-gotc-prod/genomes-in-the-cloud:2.5.7-2021-06-09_16-47-48Z" + cpu: 1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "VariantsToTable" + mem:"~{memory_size}M" + time:"01:40:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Generated tables with simulated and estimated markers quality parameters. See more information in [VariatsToTable](https://gatk.broadinstitute.org/hc/en-us/articles/360036896892-VariantsToTable) tool" + } + + output { + File FalsePositives = "FalsePositives.table" + File TruePositives = "TruePositives.table" + File Total = "Total.table" + } +} + +task VariantEval { + input { + File vcf_norm + File vcf_norm_tbi + File? vcf_simu + File reference + File reference_idx + File reference_dict + Int ploidy + } + + Int disk_size = ceil(size(vcf_norm, "GiB") + size(reference, "GiB") + size(vcf_simu, "GiB") + 2) + Int memory_size = 3000 + + command <<< + java -jar /usr/gitc/GATK35.jar -T VariantEval -R ~{reference} -eval ~{vcf_norm} ~{"-D " + vcf_simu} -EV ValidationReport -EV CountVariants -ploidy ~{ploidy} -o vcfEval.txt + >>> + + runtime { + docker: "us.gcr.io/broad-gotc-prod/genomes-in-the-cloud:2.5.7-2021-06-09_16-47-48Z" + cpu: 1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "VariantEval" + mem:"~{memory_size}M" + time:"01:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Uses [VariantEval](https://gatk.broadinstitute.org/hc/en-us/articles/360040507171-VariantEval-BETA-#:~:text=Overview,of%20s%20per%20sample%3B%20etc.) to generate report comparing variants estimated and simulated." + } + + output { + File vcfEval = "vcfEval.txt" + } + +} diff --git a/janis_core/tests/data/wdl/reads2map/tasks/gusmap.wdl b/janis_core/tests/data/wdl/reads2map/tasks/gusmap.wdl new file mode 100644 index 000000000..471e3b4e4 --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/tasks/gusmap.wdl @@ -0,0 +1,266 @@ +version 1.0 + +task GusmapReport { + input { + File vcf_file + String SNPCall_program + String GenotypeCall_program + String CountsFrom + String parent1 + String parent2 + Int max_cores + } + + Int disk_size = ceil(size(vcf_file, "GiB") * 2) + Int memory_size = ceil(size(vcf_file, "MiB") + 2000) + + command <<< + R --vanilla --no-save <<RSCRIPT + library(onemap) + library(GUSMap) + library(Reads2MapTools) + + if(tail(strsplit("~{vcf_file}", "[.]")[[1]],1) =="gz") { + vcf.temp <- paste0("~{SNPCall_program}",".vcf") + system(paste0("zcat ", "~{vcf_file}", " > ", vcf.temp)) + vcf_file <- vcf.temp + } else { + vcf_file <- "~{vcf_file}" + } + + times_temp <- system.time(info <- create_gusmap_report_emp(vcf_file,"~{SNPCall_program}", "~{CountsFrom}", + "~{GenotypeCall_program}", "~{parent1}", "~{parent2}")) + + times <- data.frame(SNPCall = "~{SNPCall_program}", + CountsFrom = "~{CountsFrom}", + GenoCall = "~{GenotypeCall_program}", + time = times_temp[3]) + + vroom::vroom_write(info[[2]], "~{SNPCall_program}_~{CountsFrom}_~{GenotypeCall_program}_map_report.tsv.gz", num_threads = ~{max_cores}) + vroom::vroom_write(times, "~{SNPCall_program}_~{CountsFrom}_~{GenotypeCall_program}_times_report.tsv.gz", num_threads = ~{max_cores}) + map_out <- info[[1]] + save(map_out, file= "map_~{SNPCall_program}_~{CountsFrom}_~{GenotypeCall_program}.RData") + + RSCRIPT + + >>> + + runtime { + docker:"cristaniguti/reads2map:0.0.4" + cpu: max_cores + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "GusmapReport" + mem:"~{memory_size}G" + time:"24:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Estimate genetic distances by GUSMap HMM multi-point approach in a set o markers ordered by genomic position. See [Reads2MapTools](https://github.com/Cristianetaniguti/Reads2MapTools) for more information." + } + + output { + File maps_report = "~{SNPCall_program}_~{CountsFrom}_~{GenotypeCall_program}_map_report.tsv.gz" + File maps_RData = "map_~{SNPCall_program}_~{CountsFrom}_~{GenotypeCall_program}.RData" + File times = "~{SNPCall_program}_~{CountsFrom}_~{GenotypeCall_program}_times_report.tsv.gz" + } +} + +task GusmapReportForSimulated { + input { + File vcf_file + String SNPCall_program + String GenotypeCall_program + String CountsFrom + File simu_onemap_obj + File ref_alt_alleles + File simulated_phases + Int seed + Int depth + Int max_cores + } + + Int disk_size = ceil(size(vcf_file, "GiB") * 2 + size(simu_onemap_obj, "GiB") + size(ref_alt_alleles, "GiB") + size(simulated_phases, "GiB") + 3) + Int memory_size = ceil(size(vcf_file, "MiB") + 2000) + + command <<< + R --vanilla --no-save <<RSCRIPT + library(onemap) + library(GUSMap) + library(Reads2MapTools) + + simu_onemap_obj <- load("~{simu_onemap_obj}") + simu_onemap_obj <- get(simu_onemap_obj) + + if(tail(strsplit("~{vcf_file}", "[.]")[[1]],1) =="gz") { + vcf.temp <- paste0("~{SNPCall_program}",".vcf") + system(paste0("zcat ", "~{vcf_file}", " > ", vcf.temp)) + vcf_file <- vcf.temp + } else { + vcf_file <- "~{vcf_file}" + } + + ref_alt_alleles <- read.table("~{ref_alt_alleles}") + simulated_phases <- read.table("~{simulated_phases}") + + times_fake <- system.time(info_fake <- create_gusmap_report_simu(vcf_file, gab= simu_onemap_obj,"~{SNPCall_program}", + "~{GenotypeCall_program}", fake = "with-false", "~{CountsFrom}", ref_alt_alleles,simulated_phases, + ~{seed}, ~{depth})) + + times <- data.frame(seed = ~{seed}, depth = ~{depth}, SNPCall = "~{SNPCall_program}", + CountsFrom = "~{CountsFrom}", GenoCall = "~{GenotypeCall_program}", fake = "with-false", + time = times_fake[3]) + + # If there is no false positive, map will not run again + if(all(info_fake[[2]][,"real.mks"] == "true marker")){ + cat("skip :) \n") + times_temp <- times_fake + info_correct <- update_fake_info(info_fake, simu_onemap_obj, ref_alt_alleles, simulated_phases) + + } else { + times_temp <- system.time(info_correct <- create_gusmap_report_simu(vcf_file, gab= simu_onemap_obj, "~{SNPCall_program}", + "~{GenotypeCall_program}", fake = "without-false", "vcf", ref_alt_alleles,simulated_phases, + ~{seed}, ~{depth})) + + } + + # Joint maps data.frames + map_joint <- rbind(info_fake[[2]], info_correct[[2]]) + vroom::vroom_write(map_joint, "~{SNPCall_program}_~{CountsFrom}_~{GenotypeCall_program}_~{seed}_~{depth}_map_report.tsv.gz", num_threads = ~{max_cores}) + + # Joint RDatas + RDatas_joint <- list() + RDatas_joint[[1]] <- info_fake[[1]] + RDatas_joint[[2]] <- info_correct[[1]] + names(RDatas_joint) <- c("map_~{SNPCall_program}_~{CountsFrom}_~{GenotypeCall_program}_TRUE", + "map_~{SNPCall_program}_~{CountsFrom}_~{GenotypeCall_program}_FALSE") + save(RDatas_joint, file= "map_~{SNPCall_program}_~{CountsFrom}_~{GenotypeCall_program}_~{seed}_~{depth}.RData") + + # Joint times data.frames + times_temp <- data.frame(seed = ~{seed}, depth = ~{depth}, SNPCall = "~{SNPCall_program}", + CountsFrom = "~{CountsFrom}", GenoCall = "~{GenotypeCall_program}", fake = "without-false", + time = times_temp[3]) + + times <- rbind(times, times_temp) + vroom::vroom_write(times, "~{SNPCall_program}_~{CountsFrom}_~{GenotypeCall_program}_~{seed}_~{depth}_times_report.tsv.gz", num_threads = ~{max_cores}) + + RSCRIPT + + >>> + + runtime { + docker: "cristaniguti/reads2map:0.0.4" + cpu: max_cores + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "GusmapReport" + mem:"~{memory_size}M" + time:"24:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Estimate genetic distances by GUSMap HMM multi-point approach in a set o simulated markers ordered by genomic position with and without false-positives. See [Reads2MapTools](https://github.com/Cristianetaniguti/Reads2MapTools) for more information." + } + + output { + File maps_report = "~{SNPCall_program}_~{CountsFrom}_~{GenotypeCall_program}_~{seed}_~{depth}_map_report.tsv.gz" + File maps_RData = "map_~{SNPCall_program}_~{CountsFrom}_~{GenotypeCall_program}_~{seed}_~{depth}.RData" + File times = "~{SNPCall_program}_~{CountsFrom}_~{GenotypeCall_program}_~{seed}_~{depth}_times_report.tsv.gz" + } +} + +task CompressGusmap { + input{ + String name + File RDatas + File maps_report + File times + } + + Int disk_size = ceil(size(RDatas, "GiB") + size(maps_report, "GiB") + size(times, "GiB")) + Int memory_size = 1000 + + command <<< + + mkdir ~{name} + cp ~{RDatas} ~{maps_report} \ + ~{times} ~{name} + + tar -czvf ~{name}.tar.gz ~{name} + + >>> + + runtime { + docker:"ubuntu:20.04" + cpu:1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "CompressGusmap" + mem:"~{memory_size}M" + time:"01:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Move GUSMap resulted reports to a single directory and compress it." + } + + output { + File tar_gz_report = "~{name}.tar.gz" + } +} + +task CompressGusmapSimu { + input{ + String name + Array[File] RDatas + Array[File] maps_report + Array[File] times + } + + Int disk_size = ceil(size(RDatas, "GiB") + size(maps_report, "GiB") + size(times, "GiB")) + Int memory_size = 1000 + + command <<< + + mkdir ~{name} + cp ~{sep=" " RDatas} ~{sep=" " maps_report} \ + ~{sep=" " times} ~{name} + + tar -czvf ~{name}.tar.gz ~{name} + + >>> + + runtime { + docker:"ubuntu:20.04" + cpu:1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "CompressGusmap" + mem:"~{memory_size}M" + time:"01:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Move GUSMap resulted reports to a single directory and compress it." + } + + output { + File tar_gz_report = "~{name}.tar.gz" + } +} \ No newline at end of file diff --git a/janis_core/tests/data/wdl/reads2map/tasks/mappoly.wdl b/janis_core/tests/data/wdl/reads2map/tasks/mappoly.wdl new file mode 100644 index 000000000..3f528a2fc --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/tasks/mappoly.wdl @@ -0,0 +1,148 @@ +version 1.0 + +task MappolyReport { + input { + File vcf_file + String SNPCall_program + String GenotypeCall_program + String CountsFrom + String parent1 + String parent2 + Int max_cores + Int ploidy + } + + Int disk_size = ceil(size(vcf_file, "GiB") * 2) + Int memory_size = ceil(size(vcf_file, "MiB") + 2000) + + command <<< + R --vanilla --no-save <<RSCRIPT + + library(mappoly) + + dat <- read_vcf(file = "~{vcf_file}", + parent.1 = "~{parent1}", + parent.2 = "~{parent2}", + verbose = FALSE, + read.geno.prob = TRUE, + prob.thres = 0.8, ploidy = ~{ploidy}) + + png(paste0("~{SNPCall_program}", "_","~{GenotypeCall_program}", "_", "~{CountsFrom}" ,"_raw_data.png")) + plot(dat) + dev.off() + + dat <- filter_missing(input.data = dat, type = "marker", + filter.thres = 0.25, inter = FALSE) + + pval.bonf <- 0.05/dat[[3]] + mrks.chi.filt <- filter_segregation(dat, + chisq.pval.thres = pval.bonf, + inter = FALSE) + + seq.init <- make_seq_mappoly(mrks.chi.filt) + + png(paste0("~{SNPCall_program}", "_","~{GenotypeCall_program}", "_", "~{CountsFrom}" ,"_","filters.png")) + plot(seq.init) + dev.off() + + all.rf.pairwise <- est_pairwise_rf(input.seq = seq.init, ncpus = ~{max_cores}) + mat <- rf_list_to_matrix(input.twopt = all.rf.pairwise) + + id<-get_genomic_order(seq.init) + s.o <- make_seq_mappoly(id) + + png(paste0("~{SNPCall_program}", "_","~{GenotypeCall_program}", "_", "~{CountsFrom}" ,"_","rf.png")) + plot(mat, ord = s.o[[3]]) + dev.off() + + tpt <- make_pairs_mappoly(all.rf.pairwise, input.seq = s.o) + temp2 <- rf_snp_filter(input.twopt = tpt, diagnostic.plot = FALSE) + lgtemp <- get_genomic_order(temp2) + s.o <- make_seq_mappoly(lgtemp) + + png(paste0("~{SNPCall_program}", "_","~{GenotypeCall_program}", "_", "~{CountsFrom}" ,"_","rf.filt.png")) + plot(mat, ord = s.o[[3]]) + dev.off() + + est.map <- est_rf_hmm_sequential(input.seq = s.o, + start.set = 5, + thres.twopt = 10, + thres.hmm = 50, + extend.tail = 30, + twopt = all.rf.pairwise, + verbose = F, + phase.number.limit = 20, + sub.map.size.diff.limit = 5) + + map.err <- est_full_hmm_with_global_error(input.map = est.map, error = 0.05) + map.prob <- est_full_hmm_with_prior_prob(input.map = est.map, dat.prob = dat) + + png(paste0("~{SNPCall_program}", "_","~{GenotypeCall_program}", "_", "~{CountsFrom}" ,"_no_error_cMbyMb.png")) + plot_genome_vs_map(est.map, same.ch.lg = TRUE) + dev.off() + + png(paste0("~{SNPCall_program}", "_","~{GenotypeCall_program}", "_", "~{CountsFrom}" ,"global_error_cMbyMb.png")) + plot_genome_vs_map(map.err, same.ch.lg = TRUE) + dev.off() + + png(paste0("~{SNPCall_program}", "_","~{GenotypeCall_program}", "_", "~{CountsFrom}" ,"_probs_cMbyMb.png")) + plot_genome_vs_map(map.prob, same.ch.lg = TRUE) + dev.off() + + summary <- summary_maps(list(est.map, map.err, map.prob)) + summary <- cbind(method = c("no_error", "global_error", "probs", "-"), summary) + + write.csv(summary, file = paste0("~{SNPCall_program}", "_","~{GenotypeCall_program}", "_", "~{CountsFrom}" ,"_map_summary.csv")) + + export_map_list(est.map, file = paste0("~{SNPCall_program}", "_","~{GenotypeCall_program}", "_", "~{CountsFrom}" ,"_no_error_","map_file.csv")) + export_map_list(map.err, file = paste0("~{SNPCall_program}", "_","~{GenotypeCall_program}", "_", "~{CountsFrom}" ,"_global_error_","map_file.csv")) + export_map_list(map.prob, file = paste0("~{SNPCall_program}", "_","~{GenotypeCall_program}", "_", "~{CountsFrom}" ,"_probs_","map_file.csv")) + + png(paste0("~{SNPCall_program}", "_","~{GenotypeCall_program}", "_", "~{CountsFrom}" ,"_map_draw.png")) + plot_map_list(list(default = est.map, + global = map.err, + probs = map.prob), col = "ggstyle") + dev.off() + + genoprob <- calc_genoprob_error(input.map = est.map, error = 0) + genoprob.err <- calc_genoprob_error(input.map = map.err, error = 0.05) + genoprob.prob <- calc_genoprob_dist(input.map = map.prob, dat.prob = dat) + + homoprobs = calc_homologprob(genoprob) + homoprobs.err = calc_homologprob(genoprob.err) + homoprobs.prob = calc_homologprob(genoprob.prob) + + save(homoprobs, file = paste0("~{SNPCall_program}", "_","~{GenotypeCall_program}", "_", "~{CountsFrom}" ,"homoprobs.RData")) + save(homoprobs.err, file = paste0("~{SNPCall_program}", "_","~{GenotypeCall_program}", "_", "~{CountsFrom}" ,"homoprobs.err.RData")) + save(homoprobs.prob, file = paste0("~{SNPCall_program}", "_","~{GenotypeCall_program}", "_", "~{CountsFrom}" ,"homoprobs.prob.RData")) + + system("mkdir results") + system("mv *.png *.RData *csv results") + system(paste0("tar -czvf ", "~{SNPCall_program}", "_", "~{GenotypeCall_program}", "_", "~{CountsFrom}","_results.tar.gz results")) + + RSCRIPT + + >>> + + runtime { + docker:"cristaniguti/reads2map:0.0.5" + cpu: max_cores + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "MappolyReport" + mem:"~{memory_size}G" + time:"24:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Build linkage map using MAPpoly" + } + + output { + File results = "~{SNPCall_program}_~{GenotypeCall_program}_~{CountsFrom}_results.tar.gz" + } +} \ No newline at end of file diff --git a/janis_core/tests/data/wdl/reads2map/tasks/mchap.wdl b/janis_core/tests/data/wdl/reads2map/tasks/mchap.wdl new file mode 100644 index 000000000..e5486d46c --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/tasks/mchap.wdl @@ -0,0 +1,126 @@ +version 1.0 + +task OneMCHap { + input { + Array[File] bams + Array[File] bais + File bed + File vcf_file + File reference + File reference_idx + Int ploidy + Int max_cores + } + + Int disk_size = ceil(size(bams, "GiB") * 1.5 + size(bed, "GiB") * 1.5 + size(vcf_file, "GiB") * 1.5 + size(reference, "GiB")) + Int memory_size = 3000 + + command <<< + + export TMPDIR=/tmp + + ln -s ~{reference} . + ln -s ~{reference_idx} . + ln -s ~{sep=" " bams} . + ln -s ~{sep=" " bais} . + + referenceName=$(basename ~{reference}) + + tabix -p vcf ~{vcf_file} + + mchap assemble \ + --bam *.bam \ + --targets ~{bed} \ + --variants ~{vcf_file} \ + --reference $referenceName \ + --ploidy ~{ploidy} \ + --inbreeding 0.01 \ + --base-error-rate 0.0025 \ + --ignore-base-phred-scores \ + --mcmc-burn 1000 \ + --mcmc-steps 2000 \ + --haplotype-posterior-threshold 0.9 \ + --cores ~{max_cores} | bgzip > assemble.vcf.gz + + >>> + + runtime { + docker: "cristaniguti/mchap:0.0.1" + cpu: max_cores + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "MCHap" + mem:"~{memory_size}M" + time:"24:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Runs [MCHap](https://github.com/PlantandFoodResearch/MCHap) assemble step in a batch of the BED file rows." + } + + output { + File assemble_vcf = "assemble.vcf.gz" + } +} + +task OneMCHap_recall { + input { + Array[File] bams + Array[File] bais + File vcf_file + Int ploidy + Int max_cores + } + + Int disk_size = ceil(size(bams, "GiB") * 1.25 + size(vcf_file, "GiB") * 1.5) + Int memory_size = 3000 + + command <<< + + export TMPDIR=/tmp + + ln -s ~{sep=" " bams} . + ln -s ~{sep=" " bais} . + + tabix -p vcf ~{vcf_file} + + mchap call \ + --haplotypes ~{vcf_file} \ + --bam *.bam \ + --ploidy ~{ploidy} \ + --inbreeding 0.01 \ + --base-error-rate 0.0025 \ + --ignore-base-phred-scores \ + --mcmc-burn 1000 \ + --mcmc-steps 2000 \ + --cores ~{max_cores} \ + | bgzip > haplotypes.vcf.gz + + >>> + + runtime { + docker: "cristaniguti/mchap:0.0.1" + cpu: max_cores + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "OneMCHap_recall" + mem:"~{memory_size}M" + time:"24:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Runs [MCHap](https://github.com/PlantandFoodResearch/MCHap) call step in a batch of the BED file rows." + } + + output { + File haplo_vcf = "haplotypes.vcf.gz" + } +} diff --git a/janis_core/tests/data/wdl/reads2map/tasks/pedigree_simulator.wdl b/janis_core/tests/data/wdl/reads2map/tasks/pedigree_simulator.wdl new file mode 100644 index 000000000..49d8ce3aa --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/tasks/pedigree_simulator.wdl @@ -0,0 +1,46 @@ +version 1.0 + +task RunPedigreeSimulator { + input { + File mapfile + File founderfile + File chromfile + File parfile + } + + Int disk_size = ceil(size(mapfile, "GiB") * 2 + size(founderfile, "GiB") + size(chromfile, "GiB") * 2 + size(parfile, "GiB") * 2) + Int memory_size = 3000 + + command <<< + cp ~{parfile} parfile.txt + set -e + sed -i 's+chromosome.txt+~{chromfile}+g' parfile.txt + sed -i 's+mapfile.txt+~{mapfile}+g' parfile.txt + sed -i 's+founderfile.txt+~{founderfile}+g' parfile.txt + java -jar /usr/jars/PedigreeSim.jar parfile.txt + + >>> + + runtime { + docker: "cristaniguti/java-in-the-cloud:0.0.1" + cpu:1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "RunPedigreeSimulator" + mem:"~{memory_size}M" + time:"05:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Runs [PedigreeSim](https://www.wur.nl/en/show/Software-PedigreeSim.htm)." + } + + output { + File genotypes_dat = "sim_genotypes.dat" + } + +} \ No newline at end of file diff --git a/janis_core/tests/data/wdl/reads2map/tasks/pedigree_simulator_utils.wdl b/janis_core/tests/data/wdl/reads2map/tasks/pedigree_simulator_utils.wdl new file mode 100644 index 000000000..669c7ffb6 --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/tasks/pedigree_simulator_utils.wdl @@ -0,0 +1,411 @@ +version 1.0 + +# If there is no reference VCF +task CreatePedigreeSimulatorInputs { + input { + File snps + File indels + Float? cmBymb + File ref + File ref_fai + Int seed + Int popsize + Int ploidy # Only ploidy 2 available + File? doses + String cross + } + + Int disk_size = ceil(size(snps, "GiB") * 2 + size(indels, "GiB") * 2 + size(ref, "GiB") + size(doses, "GiB") * 2) + Int memory_size = 4000 + + command <<< + + R --vanilla --no-save <<RSCRIPT + library(Reads2MapTools) + # Needs optimization + ploidy <- as.integer("~{ploidy}") + doses <- read.table("~{doses}", sep=",") + snps <- read.table("~{snps}", stringsAsFactors = FALSE) + colnames(snps) <- c("chr", "pos.befor", "pos.after", "ref", "alt") + indels <- read.table("~{indels}", stringsAsFactors = FALSE) + colnames(indels) <- c("chr", "pos.befor", "pos.after", "sinal", "n.bases", "bases") + pos.ref <- indels[,2] + sinal <- indels[,4] + + + # Pirs output do not show the last base before the polimorphism + # When it is a negative indel compared to the reference, the last position before the pointed + # is the last base before the polimorphism + pos.ref[which(sinal=="-")] <- pos.ref[which(sinal=="-")] -1 + + # search last base before the indels (information needed by VCF) + int <- paste0(indels[1,1],":",pos.ref,"-",pos.ref) + sep.idx <- as.integer(length(int)/1000) + sep <- rep(1:sep.idx, each =1000) + sep <- c(sep, rep(sep.idx+1, each=length(int)-length(sep))) + sep <- split(int, sep) + + bases <- list() + for(i in 1:length(sep)) + bases[[i]] <- system(paste(paste("samtools faidx", "~{ref}"), paste(sep[[i]], collapse = " ")), intern = T) + + bases <- do.call(c, bases) + + bases.bf <- matrix(bases, ncol=2, byrow = T)[,2] + alt <- bases.bf + tmp <- paste0(bases.bf[which(sinal=="+")], indels[,6][which(sinal=="+")]) + alt[which(sinal=="+")] <- tmp + ref <- bases.bf + tmp <- paste0(bases.bf[which(sinal=="-")], indels[,6][which(sinal=="-")]) + ref[which(sinal=="-")] <- tmp + + # the position in the vcf and in the map are according with the reference genome + ref_alt_alleles <- data.frame(chr = c(snps[,1], indels[,1]), pos = c(snps[,2], pos.ref), + ref = c(snps[,4], ref), alt = c(snps[,5],alt), stringsAsFactors = F) + + + ref_alt_alleles <- ref_alt_alleles[order(ref_alt_alleles[,2]),] + n.marker <- dim(ref_alt_alleles)[1] + + ## Map file + # Marker names + marker1 <- "M" + marker2 <- 1:n.marker + marker2 <- sprintf("%03d", marker2) + marker <-paste0(marker1,marker2) + + # Chromossome and position + pos.map <- (ref_alt_alleles[,2]/1000000) * ~{cmBymb} + map_file <- data.frame(marker=marker, chromosome=ref_alt_alleles[,1], position= pos.map) + write.table(map_file, file = paste0("mapfile.txt"), quote = FALSE, col.names = TRUE, row.names = FALSE, sep = "\t") + + ref_alt_alleles <- cbind(ref_alt_alleles, pos.map) + write.table(ref_alt_alleles, file="ref_alt_alleles.txt") + + ## Founderfile + ref.alleles <- ref_alt_alleles[,3] + alt.alleles <- ref_alt_alleles[,4] + + if("~{cross}" == "F1"){ + doses <- doses[c(1,length(doses),2:(length(doses)-1))] + ploidys <- c(0:ploidy) + ploidys <- ploidys[c(1,length(doses),2:(length(doses)-1))] + + founder1.df <- matrix(NA, ncol = ploidy, nrow = length(ref.alleles)) + + founder2.df <- matrix(NA, ncol = ploidy, nrow = length(ref.alleles)) + + idx <- 1:length(ref.alleles) + for(i in 1:length(doses)){ + size <- round((doses[i]/100)*length(ref.alleles)) + if(i == 1){ # homozigote for reference + idx.both <- sample(idx, as.numeric(size)*2) # It will not have monomorphic markers + idx.p1 <- idx.both[1:as.numeric(size)] + idx.p2 <- idx.both[(as.numeric(size)+1):(as.numeric(size)*2)] + founder1.df[idx.p1,] <- ref.alleles[idx.p1] + founder2.df[idx.p2,] <- ref.alleles[idx.p2] + idx.p1.tot <- idx[-idx.p1] + idx.p2.tot <- idx[-idx.p2] + } else if(i == 2){ # homozigote for alternative + idx.p1 <- sample(idx.p1.tot, as.numeric(size)) # select remaining lines for P1 + idx.p2 <- vector() # select remaining lines for P2 + for(w in 1:(as.numeric(size))){ + idx.p2[w] <- sample(idx.p2.tot, 1) + while(any(idx.p1 %in% idx.p2[w])){ # the line selected in P2 can not be the same of P1 + idx.p2[w] <- sample(idx.p2.tot, 1) + } + idx.p2.tot <- idx.p2.tot[-which(idx.p2.tot%in%idx.p2)] + } + idx.p1.tot <- idx.p1.tot[-which(idx.p1.tot%in%idx.p1)] + founder1.df[idx.p1,] <- alt.alleles[idx.p1] + founder2.df[idx.p2,] <- alt.alleles[idx.p2] + } else if(i == length(doses)){ + if(length(idx.p1.tot)!= 0 | length(idx.p2.tot)!= 0){ + cat(length(idx.p1.tot), length(idx.p2.tot)) + for(j in 1:length(idx.p1.tot)){ + dose.idx <- sample(1:ploidy,ploidys[i]) + founder1.df[idx[idx.p1.tot][j],dose.idx] <- alt.alleles[idx[idx.p1.tot][j]] + founder1.df[idx[idx.p1.tot][j],which(!1:ploidy == dose.idx)] <- ref.alleles[idx[idx.p1.tot][j]] + dose.idx <- sample(1:ploidy,ploidys[i]) + founder2.df[idx[idx.p2.tot][j],dose.idx] <- alt.alleles[idx[idx.p2.tot][j]] + founder2.df[idx[idx.p2.tot][j],which(!1:ploidy == dose.idx)] <- ref.alleles[idx[idx.p2.tot][j]] + } + } + } else { + idx.p1 <- sample(idx.p1.tot, as.numeric(size)) + idx.p2 <- sample(idx.p2.tot, as.numeric(size)) + for(j in 1:length(idx.p1)){ + dose.idx <- sample(1:ploidy,ploidys[i]) + founder1.df[idx[idx.p1][j],dose.idx] <- alt.alleles[idx[idx.p1][j]] + founder1.df[idx[idx.p1][j],which(!1:ploidy == dose.idx)] <- ref.alleles[idx[idx.p1][j]] + dose.idx <- sample(1:ploidy,ploidys[i]) + founder2.df[idx[idx.p2][j],dose.idx] <- alt.alleles[idx[idx.p2][j]] + founder2.df[idx[idx.p2][j],which(!1:ploidy == dose.idx)] <- ref.alleles[idx[idx.p2][j]] + } + idx.p1.tot <- idx.p1.tot[-which(idx.p1.tot%in%idx.p1)] + idx.p2.tot <- idx.p2.tot[-which(idx.p2.tot%in%idx.p2)] + } + } + + founder_file <- cbind(marker, founder1.df, founder2.df) + colnames(founder_file) <- c("marker", paste0("P1_",1:ploidy), paste0("P2_",1:ploidy)) + + } else if("~{cross}" == "F2"){ + founder_file <- data.frame(marker=marker, + P1_1=ref_alt_alleles[,3] , + P1_2=ref_alt_alleles[,3], + P2_1=ref_alt_alleles[,4], + P2_2=ref_alt_alleles[,4]) # Only for diploids + } + + write.table(founder_file, file = paste0("founders.txt"), quote=FALSE, col.names = TRUE, row.names = FALSE, sep = "\t" ) + + simulated_phases <- compare_phases(founder_file) + + #create_parfile(~{seed}, 50*~{popsize}) + create_parfile(~{seed}, ~{popsize}) + + create_chromfile(map_file) + + RSCRIPT + + >>> + + runtime { + docker:"cristaniguti/reads2map:0.0.4" + cpu:1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "CreatePedigreeSimulatorInputs" + mem:"~{memory_size}M" + time:"05:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Generates the parents haplotypes when reference VCF is not provided." + } + + output { + File mapfile_nomap = "mapfile.txt" + File founderfile_nomap = "founders.txt" + File parfile_nomap = "parameters.txt" + File chromfile_nomap = "chromosome.txt" + File ref_alt_alleles_nomap = "ref_alt_alleles.txt" + File simulated_phases_nomap = "simulated_phases.txt" + } +} + + +# Parse pedsim output (.dat) into VCF +task ConvertPedigreeSimulationToVcf { + + input { + Int seed + Int depth + File genotypes_dat + File map_file + File chrom_file + File ref_alt_alleles + Int popsize + Int mapsize + } + + Int disk_size = ceil(size(genotypes_dat, "GiB") * 2 + size(map_file, "GiB") + size(ref_alt_alleles, "GiB") + size(chrom_file, "GiB")) + Int memory_size = 8000 + + command <<< + R --vanilla --no-save <<RSCRIPT + + library(onemap) + library(Reads2MapTools) + library(vcfR) + + mks <- read.table("~{ref_alt_alleles}", stringsAsFactors = FALSE) + + set.seed(~{seed}) + pedsim2vcf(inputfile = "~{genotypes_dat}", + map.file = "~{map_file}", + chrom.file = "~{chrom_file}", + out.file = "temp.vcf", + miss.perc = 0, + counts = FALSE, + pos = mks[,2], + haplo.ref = "P1_1", + chr = mks[,1], + phase = TRUE, + reference.alleles = mks[,3], + use.as.alleles=TRUE, + # n_selected_loci = 1, + # selection_str_mean = 0.5, + # selection_str_var = 0.0001, + # pop.size = ~{popsize}, + # selected_mks = 30, + map.size = ~{mapsize}) + + vcfR.object <- read.vcfR("temp.vcf") + + vcf_simu <- data.frame(vcfR.object@fix, vcfR.object@gt, stringsAsFactors = FALSE) + + vcf_simu[,6] <- "." + vcf_simu[,8] <- "." + + add_head(vcf_simu, "~{seed}_~{depth}_simu.vcf") + + INDS_temp <- dimnames(vcfR.object@gt)[[2]][-1] + inds_sele <- INDS_temp[-c(which(INDS_temp=="P1"), which(INDS_temp=="P2"))] + + progeny_dat <- vcf2progeny_haplotypes(vcfR.object = vcfR.object, ind.id = inds_sele, + parent1 = "P1", parent2 = "P2", + crosstype = "outcross") + + haplo_simu <- cbind(seed="~{seed}", depth="~{depth}",progeny_dat) + vroom::vroom_write(haplo_simu, "~{seed}_~{depth}_haplo_simu.tsv.gz") + + # For RADinitio + vcf_radinitio <- data.frame("CHROM"=1, "POS"=as.numeric(as.character(vcfR.object@fix[,2])), "ID"= ".","REF"=0, "ALT"=1, + "QUAL"=".", "FILTER"=".","INFO"=".",vcfR.object@gt, stringsAsFactors = FALSE) + + add_head(vcf_radinitio, "radinitio.vcf", type="radinitio") + + RSCRIPT + + >>> + + runtime { + docker: "cristaniguti/reads2map:0.0.4" + cpu:1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "ConvertPedigreeSimulationToVcf" + mem:"~{memory_size}M" + time:"05:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Converts PedigreeSim output to VCF file. It have the option to simulate segregation distortion while this convertion is made." + } + + output { + File simu_vcf = "~{seed}_~{depth}_simu.vcf" + File simu_haplo = "~{seed}_~{depth}_haplo_simu.tsv.gz" + File radinitio_vcf = "radinitio.vcf" + } +} + + +task Vcf2PedigreeSimulator{ + input { + File vcf_file + File? ref_map + Int seed + Int popsize + String vcf_parent1 + String vcf_parent2 + } + + Int disk_size = ceil(size(vcf_file, "GiB") * 2 + size(ref_map, "GiB") + 5) + Int memory_size = 5000 + + command <<< + R --vanilla --no-save <<RSCRIPT + + # Warning: The markers in vcf out of the reference map interval will be excluded + + library(Reads2MapTools) + library(vcfR) + + vcf <- read.vcfR("~{vcf_file}") + ref_map <- read.csv("~{ref_map}") + + ref_map <- remove_outlier(ref_map, thr=0) # Remove inverted markers + + # PedigreeSim inputs + founderfile <- create_haplo(vcfR.obj = vcf, ref.map = ref_map, seed = ~{seed}, + P1 = "~{vcf_parent1}", P2= "~{vcf_parent2}") + + ## This function generates the mapfile and the ref_alt_alleles file + mapfile <- create_mapfile(vcf, ref_map) + #create_parfile(~{seed}, 50*~{popsize}) + create_parfile(~{seed}, ~{popsize}) + create_chromfile(mapfile[[1]]) + + ref_alt_alleles <- mapfile[[2]] + write.table(ref_alt_alleles, file="ref_alt_alleles.txt") + + # Codifying phases for comparision with gusmap + compare_phases(founderfile, ref_alt_alleles) + + RSCRIPT + + >>> + + runtime { + docker:"cristaniguti/reads2map:0.0.4" + cpu:1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "Vcf2PedigreeSimulator" + mem:"~{memory_size}M" + time:"05:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Uses information of a reference VCF to generate [PedigreeSim](https://www.wur.nl/en/show/Software-PedigreeSim.htm) inputs." + } + + output{ + File mapfile_map = "mapfile.txt" + File founderfile_map = "founders.txt" + File parfile_map = "parameters.txt" + File chromfile_map = "chromosome.txt" + File ref_alt_alleles_map = "ref_alt_alleles.txt" + File simulated_phases_map = "simulated_phases.txt" + } +} + +task ProduceFamiliesSeeds { + input { + Int number_of_families + Int global_seed + } + + Int disk_size = 1 + Int memory_size = 1000 + + command <<< + python <<CODE + import random + random.seed(~{global_seed}) + for x in range(~{number_of_families}): + print(random.randint(1,101+x)) + CODE + >>> + + runtime { + docker:"python:3.7" + cpu:1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "ProduceFamiliesSeeds" + mem:"~{memory_size}M" + time:"01:00:00" + } + + output { + Array[Int] seeds = read_lines(stdout()) + } +} diff --git a/janis_core/tests/data/wdl/reads2map/tasks/pirs.wdl b/janis_core/tests/data/wdl/reads2map/tasks/pirs.wdl new file mode 100644 index 000000000..7fde5ef05 --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/tasks/pirs.wdl @@ -0,0 +1,40 @@ +version 1.0 + +# Creates homologous genome with some variation +# specified with -s and -d +task GenerateAlternativeGenome { + input { + Int seed + File ref_genome + } + + Int disk_size = ceil(size(ref_genome, "GiB") * 2) + + command <<< + /pirs/src/pirs/pirs diploid ~{ref_genome} -s 0.0133 -d 0.0022 -v 0 -o alt --random-seed ~{seed} + >>> + + runtime { + docker: "cristaniguti/pirs-ddrad-cutadapt:0.0.1" + cpu:1 + # Cloud + memory:"3000 MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "GenerateAlternativeGenome" + mem:"3000M" + time:"01:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Uses [pirs](https://github.com/galaxy001/pirs) to create homologous genome with variations when reference VCF is not provided." + } + + output { + File alt_fasta = "alt.snp.indel.fa" + File indels = "alt.indel.lst" + File snps = "alt.snp.lst" + } +} diff --git a/janis_core/tests/data/wdl/reads2map/tasks/radinitio.wdl b/janis_core/tests/data/wdl/reads2map/tasks/radinitio.wdl new file mode 100644 index 000000000..af6a1183d --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/tasks/radinitio.wdl @@ -0,0 +1,123 @@ +version 1.0 + +import "../structs/dna_seq_structs.wdl" + +task RADinitioSimulation { + input { + File simu_vcf + File radinitio_vcf + String enzyme1 + String? enzyme2 + ReferenceFasta references + Int depth + Int depth_parents + Int? insert_size + Int? insert_size_dev + Int? pcr_cycles + Int? read_length + String library_type + Array[String] names + String chrom + } + + # Difficult to guess how much disk we'll need here. + Int disk_size = ceil(size(simu_vcf, "GB") + size(radinitio_vcf, "GB") + size(references.ref_fasta, "GB") + 5) + Int memory_size = 10000 + + command <<< + + echo -e ~{sep=" " names} > temp + echo "~{chrom}" > chrom.list + + tr -s ' ' '\n' < temp > temp2 + sed 's/$/\tpop0/' temp2 > popmap.tsv + + mkdir simu_inputs_progeny simu_inputs_parents \ + results_progeny results_parents + + mkdir simu_inputs_progeny/msprime_vcfs simu_inputs_progeny/ref_loci_vars \ + simu_inputs_parents/msprime_vcfs simu_inputs_parents/ref_loci_vars + + # Separate progeny from parents because of the different depths + head -n 2 popmap.tsv > simu_inputs_parents/popmap.tsv + lines=$(wc -l popmap.tsv | cut -f1 -d' ') + tail -n $((lines -2)) popmap.tsv > simu_inputs_progeny/popmap.tsv + + vcftools --vcf ~{simu_vcf} --indv P1 --indv P2 --recode --out parents + vcftools --vcf ~{simu_vcf} --remove-indv P1 --remove-indv P2 --recode --out progeny + + vcftools --vcf ~{radinitio_vcf} --indv P1 --indv P2 --recode --out parents.rad + vcftools --vcf ~{radinitio_vcf} --remove-indv P1 --remove-indv P2 --recode --out progeny.rad + + gzip parents.recode.vcf + gzip parents.rad.recode.vcf + mv parents.rad.recode.vcf.gz simu_inputs_parents/msprime_vcfs/~{chrom}.vcf.gz + mv parents.recode.vcf.gz simu_inputs_parents/ref_loci_vars/ri_master.vcf.gz + + gzip progeny.recode.vcf + gzip progeny.rad.recode.vcf + mv progeny.rad.recode.vcf.gz simu_inputs_progeny/msprime_vcfs/~{chrom}.vcf.gz + mv progeny.recode.vcf.gz simu_inputs_progeny/ref_loci_vars/ri_master.vcf.gz + + + # progeny + radinitio --make-library-seq \ + --genome ~{references.ref_fasta} \ + --chromosomes chrom.list \ + --out-dir results_progeny/ \ + --make-pop-sim-dir simu_inputs_progeny/ \ + --library-type ~{library_type} \ + --enz ~{enzyme1} \ + ~{"--enz2 " + enzyme2} \ + --insert-mean ~{default="350" insert_size} \ + --insert-stdev ~{default="35" insert_size_dev} \ + --pcr-cycles ~{default="9" pcr_cycles} \ + --coverage ~{default="20" depth} \ + --read-length ~{default="150" read_length} + + # parents + radinitio --make-library-seq \ + --genome ~{references.ref_fasta} \ + --chromosomes chrom.list \ + --out-dir results_parents/ \ + --make-pop-sim-dir simu_inputs_parents/ \ + --library-type ~{library_type} \ + --enz ~{enzyme1} \ + ~{"--enz2 " + enzyme2} \ + --insert-mean ~{default="350" insert_size} \ + --insert-stdev ~{default="35" insert_size_dev} \ + --pcr-cycles ~{default="9" pcr_cycles} \ + --coverage ~{default="20" depth_parents} \ + --read-length ~{default="150" read_length} + + # Add fake phred score of 40 (H in Illumina 1.8+ Phred+33) + # Only in forward read + for i in results_progeny/rad_reads/*.1.fa.gz; do /seqtk/./seqtk seq -F 'I' $i > $(basename ${i/.fa.gz}.fq); done + for i in results_parents/rad_reads/*.1.fa.gz; do /seqtk/./seqtk seq -F 'I' $i > $(basename ${i/.fa.gz}.fq); done + + >>> + + runtime { + docker: "cristaniguti/radinitio:0.0.1" + cpu:1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + maxRetries: 5 + preemptible: 3 + # Slurm + job_name: "RADinitioSimulation" + mem:"~{memory_size}M" + time:"05:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Run [RARinitio](https://github.com/qasimyu/simuscop) to simulated RADseq sequencing reads." + } + + output { + Array[File] fastq_rad = glob("*.fq") + } +} diff --git a/janis_core/tests/data/wdl/reads2map/tasks/simuscop.wdl b/janis_core/tests/data/wdl/reads2map/tasks/simuscop.wdl new file mode 100644 index 000000000..1f588f17d --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/tasks/simuscop.wdl @@ -0,0 +1,136 @@ +version 1.0 + +import "../structs/dna_seq_structs.wdl" + +task SimuscopProfile { + input { + String library_type + File? emp_bam + File vcf + ReferenceFasta references + } + + Int disk_size = ceil(size(vcf, "GiB") * 2 + size(emp_bam, "GiB")) + Int memory_size = 5000 + + command <<< + R --vanilla --no-save <<RSCRIPT + + library(vcfR) + library(simuscopR) + + if("~{library_type}" == "exome"){ + + system(paste0("bamtobed -i ~{emp_bam} > bed_file")) + + seqToProfile("~{emp_bam}", "bed_file", "~{vcf}", + "~{references.ref_fasta}", "profile") + + } else { + seqToProfile("~{emp_bam}", vcf.file = "~{vcf}", + reference = "~{references.ref_fasta}", out.profile = "sample.profile") + } + + RSCRIPT + + >>> + + runtime { + docker: "cristaniguti/reads2map:0.0.4" + cpu:1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "SimuscopProfile" + mem:"~{memory_size}M" + time:"05:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Run [seqToProfile](https://github.com/qasimyu/simuscop) to generate data set profile." + } + + output { + File profile = "sample.profile" + } +} + +task SimuscopSimulation { + input { + String library_type + String sampleName + Int depth + File? emp_bam + File vcf + ReferenceFasta references + String chrom + File profile + } + + Int disk_size = ceil(size(emp_bam, "GiB") + size(vcf, "GiB") + size(references.ref_fasta, "GiB") * depth) + Int memory_size = 10000 + + command <<< + R --vanilla --no-save <<RSCRIPT + vcfR.object <- read.vcfR("~{vcf}") + + variants <- vcf2variants(vcfR.object, sample = "~{sampleName}", chrom = "~{chrom}") + + write.table(variants$SNVs, file = "SNVs.txt", sep = "\t", quote = F, col.names = F, row.names = F) + write.table(variants$indels, file = "indels.txt", sep = "\t", quote = F, col.names = F, row.names = F) + write.table(variants$insertions, file = "insertions.txt", sep = "\t", quote = F, col.names = F, row.names = F) + + system("cat SNVs.txt indels.txt insertions.txt > variants.txt") + + if("~{library_type}" == "exome"){ + simuReads(ref = "~{references.ref_fasta}", + profile = "~{profile}", + variation = "variants.txt", + target = "bed_file", + name = "~{sampleName}", + output = ".", + layout = "SE", + threads = 6, + verbose = 1, + coverage = ~{depth}) + } else { + simuReads(ref = "~{references.ref_fasta}", + profile = "profile", + variation = "variants.txt", + name = "~{sampleName}", + output = ".", + layout = "SE", # only single-end by now + threads = 6, + verbose = 1, + coverage = ~{depth}) + } + + RSCRIPT + + >>> + + runtime { + docker: "cristaniguti/reads2map:0.0.4" + cpu:1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "SimuscopSimulation" + mem:"~{memory_size}M" + time:"10:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Run [simuReads](https://github.com/qasimyu/simuscop) to simulated exome or WGS sequencing reads." + } + + output { + File fastq_seq = "~{sampleName}.fq" + } +} \ No newline at end of file diff --git a/janis_core/tests/data/wdl/reads2map/tasks/stacks.wdl b/janis_core/tests/data/wdl/reads2map/tasks/stacks.wdl new file mode 100644 index 000000000..23c8117a8 --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/tasks/stacks.wdl @@ -0,0 +1,40 @@ +version 1.0 + +task ProcessRadTags { + input { + String enzyme + String? enzyme2 + Array[File] fq_files + File? barcodes + } + + Int disk_size = ceil(size(fq_files, "GiB") * 2) + Int memory_size = 6000 + + command <<< + mkdir raw process_radtags_results + mv ~{sep=" " fq_files} raw + + process_radtags -p raw/ -o process_radtags_results/ \ + ~{"-b " + barcodes} \ + --renz_1 ~{enzyme} ~{"--renz_2 " + enzyme2} \ + -r -c -q -w 0.5 + + >>> + + runtime { + docker:"cristaniguti/stacks:0.0.1" + cpu:1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "ProcessRadTags" + mem:"~{memory_size}M" + time:"10:00:00" + } + + output { + Array[File] seq_results = glob("process_radtags_results/*.fq.gz") + } +} diff --git a/janis_core/tests/data/wdl/reads2map/tasks/utils.wdl b/janis_core/tests/data/wdl/reads2map/tasks/utils.wdl new file mode 100644 index 000000000..46168862f --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/tasks/utils.wdl @@ -0,0 +1,623 @@ +version 1.0 + +task mergeVCFs { + input { + Array[File] haplo_vcf + } + + Int disk_size = ceil(size(haplo_vcf, "GiB") * 2) + Int memory_size = 5000 + + command <<< + + vcfs=(~{sep = " " haplo_vcf}) + + index=1 + for file in ${!vcfs[*]}; do + filename=$(basename -- "${vcfs[$file]}") + name="${filename%.*}_$index" + echo $name + tabix -p vcf ${vcfs[$file]} + bcftools sort ${vcfs[$file]} --output-file $name.sorted.vcf + bgzip $name.sorted.vcf + tabix -p vcf $name.sorted.vcf.gz + index=$(expr $index + 1) + done + + bcftools concat *sorted.vcf.gz --output merged.vcf + bcftools sort merged.vcf --output-file merged.sorted.vcf + bgzip merged.sorted.vcf + + >>> + + runtime { + docker:"lifebitai/bcftools:1.10.2" + cpu: 1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "mergeVCFs" + mem:"~{memory_size}M" + time:"01:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Uses [bcftools](https://samtools.github.io/bcftools/bcftools.html) to sort and merge VCF files." + } + + output { + File merged_vcf = "merged.sorted.vcf.gz" + } +} + +# It will always produce P1, P2, F1 and then F2_00X, where +# X will increase from 1 to samples +task GenerateSampleNames { # TODO: probably a name like 'ReadSamplesNamesInVcf' is better + + input { + File simulated_vcf + } + + Int disk_size = ceil(size(simulated_vcf, "GiB") * 2) + Int memory_size = 1000 + + command <<< + export PATH=$PATH:/opt/conda/bin + + python <<CODE + from pysam import VariantFile + + bcf_in = VariantFile("~{simulated_vcf}") + + for i in bcf_in.header.samples: + print(i) + CODE + + >>> + + runtime { + docker: "cristaniguti/miniconda-alpine:0.0.1" + cpu:1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "GenerateSampleNames" + mem:"~{memory_size}M" + time:"05:00:00" + } + + meta { + author: "Lucas Taniguti" + email: "chtaniguti@tamu.edu" + description: "Creates the sample names." + } + + output { + Array[String] names = read_lines(stdout()) + } +} + +task ApplyRandomFilters { + input{ + File? gatk_vcf + File? freebayes_vcf + File? gatk_vcf_bam_counts + File? freebayes_vcf_bam_counts + String? filters + String? chromosome + } + + Int disk_size = ceil(size(gatk_vcf, "GiB") * 2 + size(freebayes_vcf, "GiB") * 2 + size(gatk_vcf_bam_counts, "GiB") * 2 + size(freebayes_vcf_bam_counts, "GiB") * 2) + Int memory_size = 3000 + + command <<< + # Required update to deal with polyploids + zcat ~{gatk_vcf} | sed 's/^##fileformat=VCFv4.3/##fileformat=VCFv4.2/' > out1.vcf + zcat ~{gatk_vcf_bam_counts} | sed 's/^##fileformat=VCFv4.3/##fileformat=VCFv4.2/' > out2.vcf + + vcftools --gzvcf out1.vcf ~{filters} ~{"--chr " + chromosome} --recode --stdout > gatk_vcf_filt.vcf + vcftools --gzvcf out2.vcf ~{filters} ~{"--chr " + chromosome} --recode --stdout > gatk_vcf_bam_counts_filt.vcf + + vcftools --gzvcf ~{freebayes_vcf} ~{filters} ~{"--chr " + chromosome} --recode --stdout > freebayes_vcf_filt.vcf + vcftools --gzvcf ~{freebayes_vcf_bam_counts} ~{filters} ~{"--chr " + chromosome} --recode --stdout > freebayes_vcf_bam_counts_filt.vcf + >>> + + runtime { + docker:"cristaniguti/split_markers:0.0.1" + cpu:1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "ApplyRandomFilters" + mem:"~{memory_size}M" + time:"01:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Uses [vcftools](http://vcftools.sourceforge.net/) to filter VCF file by user-defined criterias." + } + + output { + File gatk_vcf_filt = "gatk_vcf_filt.vcf" + File freebayes_vcf_filt = "freebayes_vcf_filt.vcf" + File gatk_vcf_bam_counts_filt = "gatk_vcf_bam_counts_filt.vcf" + File freebayes_vcf_bam_counts_filt = "freebayes_vcf_bam_counts_filt.vcf" + } +} + +task ApplyRandomFiltersArray { + input{ + Array[File] vcfs + Array[String] vcfs_software + Array[String] vcfs_counts_source + String? filters + String? chromosome + } + + Int disk_size = ceil(size(vcfs, "GiB") * 2) + Int memory_size = 3000 + + command <<< + + vcfs=(~{sep = " " vcfs}) + vcfs_software=(~{sep=" " vcfs_software}) + vcfs_counts_source=(~{sep=" " vcfs_counts_source}) + + for index in ${!vcfs[*]}; do + cp ${vcfs[$index]} temp.vcf + tabix -p vcf temp.vcf + bcftools view temp.vcf ~{filters} -r ~{chromosome} \ + -o vcf_filt_${vcfs_software[$index]}_${vcfs_counts_source[$index]}.vcf.gz + rm temp.vcf temp.vcf.tbi + echo vcf_filt_${vcfs_software[$index]}_${vcfs_counts_source[$index]}.vcf.gz >> outputs.txt + done + + >>> + + runtime { + docker:"lifebitai/bcftools:1.10.2" + cpu:1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "ApplyRandomFilters" + mem:"~{memory_size}M" + time:"01:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Uses [vcftools](http://vcftools.sourceforge.net/) to filter VCF file by user-defined criterias." + } + + output { + Array[File] vcfs_filt = read_lines("outputs.txt") + } +} + + +task SplitMarkers { + input{ + File vcf_file + } + + Int disk_size = ceil(size(vcf_file, "GiB") * 2) + Int memory_size = 3000 + + command <<< + bcftools view --max-alleles 2 --min-alleles 2 --output-type z --output-file biallelics.vcf.gz ~{vcf_file} + bcftools view --min-alleles 3 --types mnps --output-type z --output-file multiallelics.vcf.gz ~{vcf_file} + >>> + + runtime { + docker:"lifebitai/bcftools:1.10.2" + cpu:1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "SplitMarkers" + mem:"~{memory_size}M" + time:"01:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Uses [bcftools](https://samtools.github.io/bcftools/bcftools.html) to split the VCF in biallelic and multiallelic markers." + } + + output { + File biallelics = "biallelics.vcf.gz" + File multiallelics = "multiallelics.vcf.gz" + } +} + +task JointMarkers { + input{ + File biallelic_vcf + File? multiallelic_vcf + } + + Int disk_size = ceil(size(biallelic_vcf, "GiB") * 2 + size(multiallelic_vcf, "GiB") * 2) + Int memory_size = 3000 + + command <<< + + filename=$(basename -- "~{biallelic_vcf}") + extension="${filename##*.}" + + if [ "$extension" = "gz" ] + then + tabix -p vcf ~{biallelic_vcf} + bcftools query -l ~{biallelic_vcf} | sort > samples.txt + bcftools view -S samples.txt ~{biallelic_vcf} > biallelic_sort.vcf + else + bgzip ~{biallelic_vcf} + tabix -p vcf ~{biallelic_vcf}.gz + bcftools query -l ~{biallelic_vcf}.gz | sort > samples.txt + bcftools view -S samples.txt ~{biallelic_vcf}.gz > biallelic_sort.vcf + fi + + tabix -p vcf ~{multiallelic_vcf} + bcftools view -S samples.txt ~{multiallelic_vcf} > multiallelic_sort.vcf + bcftools concat biallelic_sort.vcf multiallelic_sort.vcf --output merged.vcf + bgzip merged.vcf + + >>> + + runtime { + docker:"lifebitai/bcftools:1.10.2" + cpu:1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "JointMarkers" + mem:"~{memory_size}M" + time:"01:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Uses [bcftools](https://samtools.github.io/bcftools/bcftools.html) to joint the VCF files with biallelic and multiallelic markers." + } + + output { + File merged_vcf = "merged.vcf.gz" + } +} + +# Only replace for biallelic markers +task ReplaceAD { + input { + File ref_fasta + File ref_index + Array[File] bams + Array[File] bais + File vcf + File tbi + String program + String counts_source + } + + Int disk_size = ceil(size(ref_fasta, "GiB") + size(bams, "GiB") * 1.5 + size(vcf, "GiB") * 1.5) + Int memory_size = ceil(size(vcf, "MiB") * 3 + 5000) + + command <<< + + bcftools view --min-alleles 3 ~{vcf} -Oz -o multiallelics.vcf.gz + bcftools view -G --max-alleles 2 -v snps ~{vcf} -Oz -o sites.vcf.gz + bcftools index --tbi -f sites.vcf.gz + bcftools query -f'%CHROM\t%POS\t%REF,%ALT\n' sites.vcf.gz | bgzip -c > sites.tsv.gz + bcftools mpileup -f ~{ref_fasta} -d 500000 -I -E -a 'FORMAT/DP,FORMAT/AD' -T sites.vcf.gz ~{sep=" " bams} -Ou > temp + bcftools call temp -Aim -C alleles -T sites.tsv.gz -o bam_vcf.vcf + + bcftools query -l multiallelics.vcf.gz | sort > samples.txt + bcftools view -S samples.txt bam_vcf.vcf > biallelic_sort.vcf + bcftools view -S samples.txt multiallelics.vcf.gz > multiallelic_sort.vcf + + bgzip biallelic_sort.vcf + tabix -p vcf biallelic_sort.vcf.gz + + bgzip multiallelic_sort.vcf + tabix -p vcf multiallelic_sort.vcf.gz + + bcftools concat biallelic_sort.vcf.gz multiallelic_sort.vcf.gz -a -Oz --output ~{program}_bam_vcf.vcf.gz + tabix -p vcf ~{program}_bam_vcf.vcf.gz + + >>> + + runtime { + docker:"lifebitai/bcftools:1.10.2" + cpu:1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "ReplaceAD" + mem:"~{memory_size}M" + time:"24:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Uses [bcftools](https://samtools.github.io/bcftools/bcftools.html) to replace Allele Depth VCF field with read depth information from BAM alignment files." + } + + output { + File bam_vcf = "~{program}_bam_vcf.vcf.gz" + File bam_vcf_tbi = "~{program}_bam_vcf.vcf.gz.tbi" + String software = "~{program}" + String source = "~{counts_source}" + } +} + +task Compress { + input{ + String name + Array[File] RDatas + Array[File] maps_report + Array[File] times + Array[File] filters_report + Array[File] errors_report + } + + Int disk_size = ceil(size(RDatas, "GiB") + size(maps_report, "GiB") + size(times, "GiB") + size(filters_report, "GiB") + size(errors_report, "GiB")) + Int memory_size = 1000 + + command <<< + + mkdir ~{name} + + cp ~{sep=" " RDatas} ~{sep=" " maps_report} \ + ~{sep=" " times} ~{sep=" " filters_report} \ + ~{sep=" " errors_report} ~{name} + + tar -czvf ~{name}.tar.gz ~{name} + + >>> + + runtime { + docker:"ubuntu:20.04" + cpu:1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "Compress" + mem:"~{memory_size}M" + time:"01:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Move resulted reports to a single directory and compress it." + } + + output { + File tar_gz_report = "~{name}.tar.gz" + } + +} + +task GetMarkersPos { + input{ + File true_vcf + File filtered_gatk_vcf + File filtered_gatk_vcf_bamcounts + File filtered_freebayes_vcf + File filtered_freebayes_vcf_bamcounts + Int depth + Int seed + } + + Int disk_size = ceil(size(true_vcf, "GiB") * 1.5 + size(filtered_gatk_vcf, "GiB") * 1.5 + size(filtered_gatk_vcf_bamcounts, "GiB") + size(filtered_freebayes_vcf, "GiB") + size(filtered_freebayes_vcf_bamcounts, "GiB")) + Int memory_size = 5000 + + command <<< + + bcftools query -f '%POS\n' ~{true_vcf} > ~{depth}_~{seed}_true_vcf.tsv + bcftools query -f '%POS\n' ~{filtered_gatk_vcf} > ~{depth}_~{seed}_gatk_vcf_pos.tsv + bcftools query -f '%POS\n' ~{filtered_gatk_vcf_bamcounts} > ~{depth}_~{seed}_gatk_bam_pos.tsv + bcftools query -f '%POS\n' ~{filtered_freebayes_vcf} > ~{depth}_~{seed}_freebayes_vcf_pos.tsv + bcftools query -f '%POS\n' ~{filtered_freebayes_vcf_bamcounts} > ~{depth}_~{seed}_freebaye_bam_pos.tsv + + mkdir ~{depth}_~{seed}_positions + mv *tsv ~{depth}_~{seed}_positions + tar -czvf ~{depth}_~{seed}_positions.tar.gz ~{depth}_~{seed}_positions/ + >>> + + runtime { + docker:"lifebitai/bcftools:1.10.2" + cpu:1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "GetMarkerPos" + mem:"~{memory_size}M" + time:"01:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Uses [bcftools](https://samtools.github.io/bcftools/bcftools.html) to extract markers position information." + } + + output { + File positions = "~{depth}_~{seed}_positions.tar.gz" + } +} + +task MergeBams{ + input { + Array[File] bam_files + } + + Int disk_size = ceil(size(bam_files, "GiB") * 2) + Int memory_size = 5000 + + command <<< + samtools merge merged.bam ~{sep=" " bam_files} + >>> + + runtime { + docker: "us.gcr.io/broad-gotc-prod/genomes-in-the-cloud:2.5.7-2021-06-09_16-47-48Z" + cpu:1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "MergeBams" + mem:"~{memory_size}M" + time:"10:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Uses [samtools](https://samtools.github.io/) to merge BAM alignment files." + } + + output { + File merged_bam = "merged.bam" + } +} + + +task TarFiles { + input { + Array[File] sequences + } + + Int disk_size = ceil(size(sequences, "GiB") * 2) + Int memory_size = 6000 + + command <<< + mkdir results + mv ~{sep=" " sequences} results + tar -czvf results.tar.gz results + >>> + + runtime { + docker:"kfdrc/cutadapt" + cpu:1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "TarFiles" + mem:"~{memory_size}M" + time:"10:00:00" + } + + output { + File results = "results.tar.gz" + } +} + +task VariantFiltration { + input { + File vcf_file + File vcf_tbi + File reference + File reference_idx + File reference_dict + } + + Int disk_size = ceil(size(vcf_file, "GB") + size(reference, "GB") + 1) + Int memory_size = 5000 + + command <<< + /usr/gitc/gatk4/./gatk VariantFiltration \ + -V ~{vcf_file} \ + -filter "QD < 2.0" --filter-name "QD2" \ + -filter "QUAL < 30.0" --filter-name "QUAL30" \ + -filter "SOR > 3.0" --filter-name "SOR3" \ + -filter "FS > 60.0" --filter-name "FS60" \ + -filter "MQ < 40.0" --filter-name "MQ40" \ + -filter "MQRankSum < -12.5" --filter-name "MQRankSum-12.5" \ + -filter "ReadPosRankSum < -8.0" --filter-name "ReadPosRankSum-8" \ + -O gatk_filters.vcf.gz + + /usr/gitc/gatk4/./gatk SelectVariants \ + -R ~{reference} \ + -V gatk_filters.vcf.gz \ + --exclude-filtered \ + -O gatk_filtered.vcf.gz + + >>> + + runtime { + docker: "us.gcr.io/broad-gotc-prod/genomes-in-the-cloud:2.5.7-2021-06-09_16-47-48Z" + cpu: 1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "VariantFiltration" + mem:"~{memory_size}M" + time:"01:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Filters simulated VCF according to GATK Hard Filtering. See more information in [VariatsToTable](https://gatk.broadinstitute.org/hc/en-us/articles/360035890471-Hard-filtering-germline-short-variants) tool" + } + + output { + File filters_vcf = "gatk_filters.vcf.gz" + File filtered_vcf = "gatk_filtered.vcf.gz" + } +} + +task BamToBed { + input { + File? merged_bams + } + + Int disk_size = ceil(size(merged_bams, "GiB") * 1.5) + Int memory_size = 3000 + + command <<< + bamToBed -i ~{merged_bams} > file.bed + bedtools merge -i file.bed > merged.bed + >>> + + runtime { + docker: "biocontainers/bedtools:v2.27.1dfsg-4-deb_cv1" + cpu: 1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "BamToBed" + mem:"~{memory_size}M" + time:"05:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Uses [bamToBed](https://bedtools.readthedocs.io/en/latest/content/tools/bamtobed.html) and [bedtools](https://bedtools.readthedocs.io/en/latest/) to create BED file and merge overlapping intervals." + } + + output { + File merged_bed = "merged.bed" + } +} \ No newline at end of file diff --git a/janis_core/tests/data/wdl/reads2map/tasks/utilsR.wdl b/janis_core/tests/data/wdl/reads2map/tasks/utilsR.wdl new file mode 100644 index 000000000..e30cb8f8c --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/tasks/utilsR.wdl @@ -0,0 +1,1075 @@ +version 1.0 + +task vcf2onemap { + input { + File vcf_file + String cross + String parent1 + String parent2 + } + + Int disk_size = ceil(size(vcf_file, "GiB") * 2) + Int memory_size = ceil(size(vcf_file, "MiB") * 2 + 2000) + + command <<< + + R --vanilla --no-save <<RSCRIPT + library(onemap) + library(vcfR) + + cross <- "~{cross}" + + if(cross == "F1"){ + cross <- "outcross" + f1 = NULL + } else if (cross == "F2"){ + cross <- "f2 intercross" + f1 = "F1" + } + + ## READING VCF FROM PIPELINE + vcfR.obj <- read.vcfR("~{vcf_file}") + save(vcfR.obj, file="vcfR_obj.RData") + + onemap.obj <- onemap_read_vcfR(vcfR.object= vcfR.obj, + cross= cross, + parent1="~{parent1}", + parent2="~{parent2}", + f1 = f1) + + save(onemap.obj, file=paste0("vcf_onemap.obj.RData")) + + RSCRIPT + + >>> + + runtime { + docker:"cristaniguti/reads2map:0.0.4" + cpu:1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "vcf2onemap" + mem:"~{memory_size}M" + time:"10:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Convert VCF file to onemap object. See [OneMap](https://github.com/Cristianetaniguti/onemap) for more information." + } + + output { + File onemap_obj = "vcf_onemap.obj.RData" + File vcfR_obj = "vcfR_obj.RData" + } +} + +task FiltersReport { + input { + File onemap_obj + String SNPCall_program + String GenotypeCall_program + String CountsFrom + Int seed + Int depth + } + + Int disk_size = ceil(size(onemap_obj, "GiB") * 2) + Int memory_size = ceil(size(onemap_obj, "MiB") * 3 + 2000) + + command <<< + R --vanilla --no-save <<RSCRIPT + library(onemap) + library(Reads2MapTools) + + temp <- load("~{onemap_obj}") + temp.obj <- get(temp) + onemap_obj_filtered <- create_filters_report_simu(temp.obj, "~{SNPCall_program}", + "~{CountsFrom}", "~{GenotypeCall_program}", + ~{seed}, ~{depth}, threshold = NULL) # Threshold define the genotype probability filter + + save(onemap_obj_filtered, file="onemap_obj_filtered.RData") + + RSCRIPT + + >>> + + runtime { + docker: "cristaniguti/reads2map:0.0.4" + cpu:1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "Filters" + mem:"~{memory_size}M" + time:"05:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Filter simulated markers in onemap object by missing data, segregation distortion and redundant markers. See [Reads2MapTools](https://github.com/Cristianetaniguti/Reads2MapTools) for more information." + } + + output { + File filters_report = "~{SNPCall_program}_~{GenotypeCall_program}_~{CountsFrom}_~{seed}_~{depth}_filters_report.tsv.gz" + File onemap_obj_filtered = "onemap_obj_filtered.RData" + } +} + +task FiltersReportEmp { + input { + File onemap_obj + String SNPCall_program + String GenotypeCall_program + String CountsFrom + String chromosome + } + + Int disk_size = ceil(size(onemap_obj, "GiB") * 2) + Int memory_size = ceil(size(onemap_obj, "MiB") * 2 + 3000) + + command <<< + R --vanilla --no-save <<RSCRIPT + library(onemap) + library(Reads2MapTools) + + temp <- load("~{onemap_obj}") + temp.obj <- get(temp) + onemap_obj_filtered <- create_filters_report_emp(temp.obj, "~{SNPCall_program}", + "~{CountsFrom}", "~{GenotypeCall_program}", + "~{chromosome}", threshold = NULL) + save(onemap_obj_filtered, file="onemap_obj_filtered.RData") + + RSCRIPT + + >>> + + runtime { + docker: "cristaniguti/reads2map:0.0.4" + cpu:1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "Filters" + mem:"~{memory_size}M" + time:"05:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Filter empirical markers in onemap object by missing data, segregation distortion and redundant markers. See [Reads2MapTools](https://github.com/Cristianetaniguti/Reads2MapTools) for more information." + } + + output { + File filters_report = "~{SNPCall_program}_~{GenotypeCall_program}_~{CountsFrom}_filters_report.tsv.gz" + File onemap_obj_filtered = "onemap_obj_filtered.RData" + } +} + +task MapsReport { + input { + File onemap_obj + File ref_alt_alleles + File simu_onemap_obj + String SNPCall_program + String GenotypeCall_program + String CountsFrom + File simulated_phases + Int seed + Int depth + Int max_cores + } + + Int disk_size = ceil((size(onemap_obj, "GiB") * 2) + size(ref_alt_alleles, "GiB") + (size(simu_onemap_obj, "GiB") * 2) + size(simulated_phases, "GiB")) + Int memory_size = ceil(size(onemap_obj, "MiB") * 3 + 4000) + + command <<< + R --vanilla --no-save <<RSCRIPT + library(onemap) + library(Reads2MapTools) + + if(~{max_cores} > 4) cores = 4 else cores = ~{max_cores} + + filtered_onemap <- load("~{onemap_obj}") + filtered_onemap <- get(filtered_onemap) + + simu_onemap_obj <- load("~{simu_onemap_obj}") + simu_onemap_obj <- get(simu_onemap_obj) + ref_alt_alleles <- read.table("~{ref_alt_alleles}") + simulated_phases <- read.table("~{simulated_phases}") + + ## With false SNPs + times_fake <-system.time(info_fake <- create_maps_report_simu(input.seq = filtered_onemap, + tot_mks = ref_alt_alleles, gab = simu_onemap_obj, + "~{SNPCall_program}" , "~{GenotypeCall_program}", + fake= "with-false", "~{CountsFrom}", simulated_phases, + ~{seed}, ~{depth}, cores)) + + times <- data.frame(seed = ~{seed}, depth = ~{depth}, SNPCall = "~{SNPCall_program}", + CountsFrom = "~{CountsFrom}", GenoCall = "~{GenotypeCall_program}", fake = "with-false", + time = times_fake[3]) + + # It will not run if all markers are true markers + if(all(info_fake[[2]][,"real.mks"] == "true marker")){ + cat("skip :) \n") + times_temp <- times_fake + info_correct <- update_fake_info(info_fake, simu_onemap_obj, ref_alt_alleles, simulated_phases) + + } else { + ## Without false SNPs + times_temp <-system.time(info_correct <- create_maps_report_simu(input.seq = filtered_onemap, + tot_mks = ref_alt_alleles, gab = simu_onemap_obj, + "~{SNPCall_program}" , "~{GenotypeCall_program}", + fake= "without-false", "~{CountsFrom}", simulated_phases, + ~{seed}, ~{depth}, cores)) + } + + # Joint maps data.frames + map_joint <- rbind(info_fake[[2]], info_correct[[2]]) + vroom::vroom_write(map_joint, "~{SNPCall_program}_~{CountsFrom}_~{GenotypeCall_program}_~{seed}_~{depth}_map_report.tsv.gz", num_threads = ~{max_cores}) + + # Joint RDatas + RDatas_joint <- list() + RDatas_joint[[1]] <- info_fake[[1]] + RDatas_joint[[2]] <- info_correct[[1]] + names(RDatas_joint) <- c("map_~{seed}_~{depth}_~{SNPCall_program}_~{CountsFrom}_~{GenotypeCall_program}_TRUE", + "map_~{seed}_~{depth}_~{SNPCall_program}_~{CountsFrom}_~{GenotypeCall_program}_FALSE") + save(RDatas_joint, file= "map_~{SNPCall_program}_~{CountsFrom}_~{GenotypeCall_program}_~{seed}_~{depth}.RData") + + # Joint times data.frames + times_temp <- data.frame(seed = ~{seed}, depth = ~{depth}, SNPCall = "~{SNPCall_program}", + CountsFrom = "~{CountsFrom}", GenoCall = "~{GenotypeCall_program}", fake = "without-false", + time = times_temp[3]) + + times <- rbind(times, times_temp) + vroom::vroom_write(times,"~{SNPCall_program}_~{CountsFrom}_~{GenotypeCall_program}_~{seed}_~{depth}_times_report.tsv.gz", num_threads = ~{max_cores}) + + RSCRIPT + + >>> + + runtime { + docker: "cristaniguti/reads2map:0.0.4" + cpu:4 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "MapsReport" + mem:"~{memory_size}M" + time:"48:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Estimate genetic distances by OneMap HMM multi-point approach in a set o simulated markers ordered by genomic position with and without false-positives. See [Reads2MapTools](https://github.com/Cristianetaniguti/Reads2MapTools) for more information." + } + + output { + File maps_report = "~{SNPCall_program}_~{CountsFrom}_~{GenotypeCall_program}_~{seed}_~{depth}_map_report.tsv.gz" + File maps_RData = "map_~{SNPCall_program}_~{CountsFrom}_~{GenotypeCall_program}_~{seed}_~{depth}.RData" + File times = "~{SNPCall_program}_~{CountsFrom}_~{GenotypeCall_program}_~{seed}_~{depth}_times_report.tsv.gz" + } +} + +task ErrorsReport { + input { + File onemap_obj + File vcfR_obj + File simu_vcfR + String SNPCall_program + String GenotypeCall_program + String CountsFrom + Int max_cores + Int seed + Int depth + } + + Int disk_size = ceil((size(onemap_obj, "GiB") * 2) + size(vcfR_obj, "GiB") + (size(simu_vcfR, "GiB") * 2)) + Int memory_size = ceil(size(onemap_obj, "MiB") * 3 + 3000) + + command <<< + R --vanilla --no-save <<RSCRIPT + + library(onemap) + library(tidyverse) + + temp <- load("~{onemap_obj}") + df <- get(temp) + + temp <- load("~{vcfR_obj}") + vcf <- get(temp) + + p <- create_depths_profile(onemap.obj = df, vcfR.object = vcf, parent1 = "P1", + parent2 = "P2", vcf.par = "AD",recovering = FALSE, + GTfrom = "onemap", alpha=0.1, + rds.file = paste0("vcf_depths.rds")) + + df <- readRDS(paste0("vcf_depths.rds")) + df <- cbind(seed = "~{seed}" , depth = "~{depth}", SNPCall = "~{SNPCall_program}", CountsFrom = "~{CountsFrom}", + GenoCall="~{GenotypeCall_program}", df) + + simu <- load("~{simu_vcfR}") + vcf_simu <- get(simu) + + gt.simu <- vcf_simu@gt[,-1] + gt.simu <- as.data.frame(cbind(mks = vcf_simu@fix[,3], gt.simu)) + + gt.simu <- data.frame(lapply(gt.simu, function(x) { + x %>% gsub("[|]", "/", .) %>% + gsub("[.]","missing", .) %>% + gsub("0/0","homozygous-ref", .) %>% + gsub("1/1","homozygous-alt", .) %>% + gsub("0/1","heterozygous", .) %>% + gsub("1/0","heterozygous", .) + })) + + dptot <- gt.simu %>% + pivot_longer(!mks, names_to = "ind", values_to = "gabGT") %>% inner_join(df) + + idx <- match(c("A", "AB", "BA", "B"), colnames(dptot)) + dptot <- cbind(dptot, errors = apply(dptot[,idx], 1, function(x) 1 - max(x))) + + vroom::vroom_write(dptot, "~{SNPCall_program}_~{CountsFrom}_~{GenotypeCall_program}_~{seed}_~{depth}_errors_report.tsv.gz", num_threads = ~{max_cores}) + + RSCRIPT + + >>> + + runtime { + docker: "cristaniguti/reads2map:0.0.4" + cpu: max_cores + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "ErrorsReport" + mem:"~{memory_size}M" + time:"05:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Creates data.frame with probabilities used in the OneMap HMM. See [OneMap](https://github.com/Cristianetaniguti/onemap) for more information." + } + + output { + File errors_report = "~{SNPCall_program}_~{CountsFrom}_~{GenotypeCall_program}_~{seed}_~{depth}_errors_report.tsv.gz" + } +} + +task CheckDepths { + input { + File onemap_obj + File vcfR_obj + String parent1 + String parent2 + String SNPCall_program + String GenotypeCall_program + String CountsFrom + Int? seed + Int? depth + Int max_cores + } + + Int disk_size = ceil((size(onemap_obj, "GiB") * 2) + size(vcfR_obj, "GiB")) + Int memory_size = ceil(size(onemap_obj, "MiB") * 3 + 3000) + + command <<< + R --vanilla --no-save <<RSCRIPT + library(onemap) + + temp <- load("~{onemap_obj}") + df <- get(temp) + + temp <- load("~{vcfR_obj}") + vcf <- get(temp) + + p <- create_depths_profile(onemap.obj = df, vcfR.object = vcf, parent1 = "~{parent1}", + parent2 = "~{parent2}", vcf.par = "AD",recovering = FALSE, GTfrom = "vcf", alpha=0.1, + rds.file = paste0("vcf_depths.rds")) + + df <- readRDS(paste0("vcf_depths.rds")) + df <- cbind(SNPCall = "~{SNPCall_program}", CountsFrom = "~{CountsFrom}", + GenoCall="~{GenotypeCall_program}", df ~{", seed=" + seed} ~{", depth= " + depth}) + + vroom::vroom_write(df, "~{SNPCall_program}_~{CountsFrom}_~{GenotypeCall_program}_errors_report.tsv.gz", num_threads = ~{max_cores}) + + RSCRIPT + + >>> + + runtime { + docker:"cristaniguti/reads2map:0.0.4" + cpu: max_cores + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "CheckDepths" + mem:"~{memory_size}M" + time:"10:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Creates data.frame with reads depth information. See [OneMap](https://github.com/Cristianetaniguti/onemap) for more information." + } + + output { + File errors_report = "~{SNPCall_program}_~{CountsFrom}_~{GenotypeCall_program}_errors_report.tsv.gz" + } + +} + +task MapsReportEmp { + input { + File sequence_obj + String SNPCall_program + String GenotypeCall_program + String CountsFrom + Int max_cores + } + + Int disk_size = ceil((size(sequence_obj, "GiB") * 2)) + Int memory_size = ceil(size(sequence_obj, "MiB") * 3 + 4000) + + command <<< + R --vanilla --no-save <<RSCRIPT + library(onemap) + library(Reads2MapTools) + + temp <- load("~{sequence_obj}") + sequence <- get(temp) + + if(~{max_cores} > 4) cores = 4 else cores = ~{max_cores} + + times_temp <- system.time(df <- create_map_report_emp(input.seq = sequence, CountsFrom = "~{CountsFrom}", + SNPCall = "~{SNPCall_program}", GenoCall="~{GenotypeCall_program}", max_cores = cores)) + + vroom::vroom_write(df[[2]], "~{SNPCall_program}_~{CountsFrom}_~{GenotypeCall_program}_map_report.tsv.gz", num_threads = ~{max_cores}) + map_out <- df[[1]] + save(map_out, file = "map_~{SNPCall_program}_~{CountsFrom}_~{GenotypeCall_program}.RData") + + times <- data.frame(SNPCall = "~{SNPCall_program}", + CountsFrom = "~{CountsFrom}", + GenoCall = "~{GenotypeCall_program}", + time = times_temp[3]) + + vroom::vroom_write(times, "~{SNPCall_program}_~{CountsFrom}_~{GenotypeCall_program}_times_report.tsv.gz", num_threads = ~{max_cores}) + + RSCRIPT + >>> + + runtime { + docker:"cristaniguti/reads2map:0.0.4" + cpu:max_cores + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "MapsEmp" + mem:"~{memory_size}M" + time:"48:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Estimate genetic distances by OneMap HMM multi-point approach in a set o empirical markers ordered by genomic position. See [Reads2MapTools](https://github.com/Cristianetaniguti/Reads2MapTools) for more information." + } + + output { + File maps_report = "~{SNPCall_program}_~{CountsFrom}_~{GenotypeCall_program}_map_report.tsv.gz" + File maps_RData = "map_~{SNPCall_program}_~{CountsFrom}_~{GenotypeCall_program}.RData" + File times = "~{SNPCall_program}_~{CountsFrom}_~{GenotypeCall_program}_times_report.tsv.gz" + } +} + +# Genotype calling with updog, polyrad and supermassa +# Exclusive for biallelic markers, input VCF file are normalized with -m-any +task ReGenotyping { + input { + String GenotypeCall_program + File vcf_file + String cross + String parent1 + String parent2 + Int max_cores + Int ploidy + } + + Int disk_size = ceil((size(vcf_file, "GiB") * 4)) + Int memory_size = ceil(size(vcf_file, "MiB") * 3 + 4000) + + command <<< + R --vanilla --no-save <<RSCRIPT + library(onemap) + library(Reads2MapTools) + + method <- "~{GenotypeCall_program}" + cross <- "~{cross}" + + if(cross == "F1"){ + cross <- "outcross" + } else { + stop("Invalid crosstype") + } + + out_vcf <- "regeno.vcf.gz" + + if (method == "updog") { + updog_genotype_vcf(vcf="~{vcf_file}", + vcf.par="AD", + out_vcf = out_vcf, + parent1="~{parent1}", + parent2="~{parent2}", + crosstype= cross, + cores=~{max_cores}, + ploidy = ~{ploidy}) + } else if (method == "supermassa") { + supermassa_genotype_vcf(vcf="~{vcf_file}", + vcf.par="AD", + out_vcf = out_vcf, + parent1="~{parent1}", + parent2="~{parent2}", + crosstype= cross, + cores=~{max_cores}, + ploidy = ~{ploidy}) + } else if (method == "polyrad") { + ex <- strsplit(basename("~{vcf_file}"), split="[.]")[[1]] + if(ex[length(ex)] == "gz") { + system("gunzip -f ~{vcf_file}") + vcf_in <- paste0(dirname("~{vcf_file}"), "/", paste0(ex[-length(ex)], collapse = ".")) + } else vcf_in <- "~{vcf_file}" + + polyRAD_genotype_vcf(vcf=vcf_in, + parent1="~{parent1}", + parent2="~{parent2}", + ploidy = ~{ploidy}, + out_vcf = out_vcf) + } + + system("gunzip regeno.vcf.gz") + + + RSCRIPT + >>> + + runtime { + docker:"cristaniguti/reads2map:0.0.5" + cpu: max_cores + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "ReGenotyping" + mem:"~{memory_size}M" + time:"10:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Run updog, polyRAD and SuperMASSA genotyping for F1 population. See [Reads2MapTools](https://github.com/Cristianetaniguti/Reads2MapTools) for more information." + } + + output { + File regeno_vcf = "regeno.vcf" + } +} + +task SetProbs { + input { + File vcf_file + String cross + String parent1 + String parent2 + String multiallelics + String SNPCall_program + } + + Int disk_size = ceil(size(vcf_file, "GiB") * 3) + Int memory_size = ceil(size(vcf_file, "MiB") * 2 + 4000) + + command <<< + R --vanilla --no-save <<RSCRIPT + library(onemap) + library(vcfR) + + cross <- "~{cross}" + + if(cross == "F1"){ + cross <- "outcross" + f1 = NULL + } else if (cross == "F2"){ + f1 = "F1" + } + + vcf <- read.vcfR("~{vcf_file}") + save(vcf, file = "vcfR.RData") + + if("~{multiallelics}") only_biallelic = FALSE else only_biallelic = TRUE + + onemap.obj <- onemap_read_vcfR(vcfR.object = vcf, + cross= cross, + parent1="~{parent1}", + parent2="~{parent2}", + f1 = f1, only_biallelic = only_biallelic) + + # if("~{SNPCall_program}" == "freebayes") par <- "GL" else par <- "PL" + + probs <- extract_depth(vcfR.object=vcf, + onemap.object=onemap.obj, + vcf.par= "GQ", + parent1="~{parent1}", + parent2="~{parent2}", + f1 = f1, + recovering=FALSE) + + probs_onemap_obj <- create_probs(input.obj = onemap.obj, genotypes_errors=probs) + + # If filter by genotype probability + # onemap_prob <- filter_prob(probs_onemap_obj, threshold = threshold) + # onemap_mis <- filter_missing(onemap_prob, threshold = 0.25) + # globalerror_onemap_obj <- create_probs(input.obj = onemap_mis, global_error = 0.05) + + globalerror_onemap_obj <- create_probs(input.obj = onemap.obj, global_error = 0.05) + + save(probs_onemap_obj, file="probs_onemap_obj.RData") + save(globalerror_onemap_obj, file="globalerror_onemap_obj.RData") + + RSCRIPT + + >>> + runtime { + docker:"cristaniguti/reads2map:0.0.4" + cpu:1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "SetProbs" + mem:"~{memory_size}M" + time:"10:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description:"Get GQ or PL values from VCF file and set them as genotype probabilities in OneMap object. Also produce an OneMap object with global error rate of 0.05. See [OneMap](https://github.com/Cristianetaniguti/onemap) for more information." + } + + output { + File probs_onemap_obj = "probs_onemap_obj.RData" + File globalerror_onemap_obj = "globalerror_onemap_obj.RData" + File vcfR_obj = "vcfR.RData" + } +} + + +task SetProbsDefault { + input { + File vcf_file + File? multiallelics_mchap + String mchap + String SNPCall_program + String cross + String parent1 + String parent2 + String multiallelics + } + + Int disk_size = ceil(size(vcf_file, "GiB") * 3) + Int memory_size = ceil(size(vcf_file, "MiB") * 2 + 3000) + + command <<< + R --vanilla --no-save <<RSCRIPT + library(onemap) + library(vcfR) + + cross <- "~{cross}" + + if(cross == "F1"){ + cross <- "outcross" + f1 = NULL + } else if (cross == "F2"){ + f1 = "F1" + } + + if(as.logical("~{mchap}") & "~{SNPCall_program}" == "gatk") vcf <- read.vcfR("~{multiallelics_mchap}") else vcf <- read.vcfR("~{vcf_file}") + save(vcf, file = "vcfR.RData") + + if("~{multiallelics}") only_biallelic = FALSE else only_biallelic = TRUE + + onemap.obj <- onemap_read_vcfR(vcfR.object = vcf, + cross= cross, + parent1="~{parent1}", + parent2="~{parent2}", + f1 = f1, only_biallelic = only_biallelic) + + # if("~{SNPCall_program}" == "freebayes") par <- "GL" else par <- "PL" + + probs <- extract_depth(vcfR.object=vcf, + onemap.object=onemap.obj, + vcf.par= "GQ", + parent1="~{parent1}", + parent2="~{parent2}", + f1 = f1, + recovering=FALSE) + + probs_onemap_obj <- create_probs(input.obj = onemap.obj, genotypes_errors=probs) + + # onemap_prob <- filter_prob(probs_onemap_obj, threshold = threshold) + # onemap_mis <- filter_missing(onemap_prob, threshold = 0.25) + # globalerror_onemap_obj <- create_probs(input.obj = onemap_mis, global_error = 0.05) + globalerror_onemap_obj <- create_probs(input.obj = onemap.obj, global_error = 0.05) + + default_onemap_obj <- create_probs(input.obj = onemap.obj, global_error = 10^(-5)) + save(default_onemap_obj, file="default_onemap_obj.RData") + save(probs_onemap_obj, file="probs_onemap_obj.RData") + save(globalerror_onemap_obj, file="globalerror_onemap_obj.RData") + + RSCRIPT + + >>> + runtime { + docker:"cristaniguti/reads2map:0.0.4" + cpu:1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "SetProbsDefault" + mem:"~{memory_size}M" + time:"10:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Set OneMap object genotype probabilities to value used in OneMap < 3.0 and to 0.05. See [OneMap](https://github.com/Cristianetaniguti/onemap) for more information." + } + + output { + File probs_onemap_obj = "probs_onemap_obj.RData" + File globalerror_onemap_obj = "globalerror_onemap_obj.RData" + File default_onemap_obj = "default_onemap_obj.RData" + File vcfR_obj = "vcfR.RData" + } +} + +task RemoveNonInformative { + input { + File vcf_file + String parent1 + String parent2 + String replaceADbyMissing + } + + Int disk_size = ceil(size(vcf_file, "GiB") * 2) + Int memory_size = 3000 + + command <<< + R --vanilla --no-save <<RSCRIPT + library(Reads2MapTools) + # Replace AD and DP by 0 when GT is missing + # Remove non-informatives + remove_non_informative("~{vcf_file}", + P1 = "~{parent1}", + P2 = "~{parent2}", + replaceAD = "~{replaceADbyMissing}", + out.vcf = "filtered.vcf.gz") + + RSCRIPT + >>> + + runtime { + docker:"cristaniguti/reads2map:0.0.4" + cpu:1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "FilterSegregation" + mem:"~{memory_size}M" + time:"10:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Filter VCF file according to markers segregation information and replace DP/AD VCF information by 0 when GT is missing. See [Reads2MapTools](https://github.com/Cristianetaniguti/Reads2MapTools) for more information." + } + + output { + File vcf_filtered = "filtered.vcf.gz" + } + +} + +task QualPlots { + input { + File Total + } + + Int disk_size = ceil(size(Total, "GB") + 1) + Int memory_size = 3000 + + command <<< + R --vanilla --no-save <<RSCRIPT + library(ggplot2) + library(dplyr) + library(tidyr) + + tot <- read.table("~{Total}", header = T) + tot <- cbind(set = "Total", tot) + + df <- pivot_longer(tot, cols = c(4:9)) + + p <- df %>% filter(name == "QD") %>% + ggplot(aes(x=value, fill=set)) + + geom_density(alpha=0.4) + + geom_vline(aes(xintercept=2), color = "purple", linetype="dashed") + + xlab("QD") + + ggsave(p, filename = "QD.png") + + p <- df %>% filter(name == "FS") %>% + ggplot(aes(x=value, fill=set)) + + geom_density(alpha=0.4) + + xlab("FS") + geom_vline(aes(xintercept=60), color = "purple", linetype="dashed") + + ggsave(p, filename = "FS.png") + + p <- df %>% filter(name == "SOR") %>% + ggplot(aes(x=value, fill=set)) + + geom_density(alpha=0.4) + + xlab("SOR") + + geom_vline(aes(xintercept=3), color = "purple", linetype="dashed") + + ggsave(p, filename = "SOR.png") + + p <- df %>% filter(name == "MQ") %>% + ggplot(aes(x=value, fill=set)) + + geom_density(alpha=0.4) + + xlab("MQ") + + geom_vline(aes(xintercept=40), color = "purple", linetype="dashed") + + ggsave(p, filename = "MQ.png") + + p <- df %>% filter(name == "MQRankSum") %>% + ggplot(aes(x=value, fill=set)) + + geom_density(alpha=0.4) + + xlab("MQRankSum") + + geom_vline(aes(xintercept=-12.5), color = "purple", linetype="dashed") + + ggsave(p, filename = "MQRankSum.png") + + p <- df %>% filter(name == "ReadPosRankSum") %>% + ggplot(aes(x=value, fill=set)) + + geom_density(alpha=0.4) + + xlab("ReadPosRankSum") + + geom_vline(aes(xintercept=-8), color = "purple", linetype="dashed") + + ggsave(p, filename = "ReadPosRankSum.png") + + system("mkdir QualPlots") + system("mv *png QualPlots") + system("tar -czvf QualPlots.tar.gz QualPlots") + + RSCRIPT + + >>> + + runtime { + docker: "cristaniguti/reads2map:0.0.4" + cpu: 1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "QualPlots" + mem:"~{memory_size}M" + time:"01:40:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Generated graphics about empirical markers quality parameters and Hard Filtering. See more information in [VariatsToTable](https://gatk.broadinstitute.org/hc/en-us/articles/360035890471-Hard-filtering-germline-short-variants) tool" + } + + output { + File Plots = "QualPlots.tar.gz" + } +} + + +task QualPlotsForHardFilteringSimulated { + input { + File FalsePositives + File TruePositives + File Total + Int? seed + Int? depth + } + + Int disk_size = ceil(size(FalsePositives, "GB") + size(TruePositives, "GB") + size(Total, "GB") + 1) + Int memory_size = ceil(size(Total, "MiB") * 2) + 4000 + + command <<< + R --vanilla --no-save <<RSCRIPT + system("cp ~{FalsePositives} .") + system("cp ~{TruePositives} .") + system("cp ~{Total} .") + + library(ggplot2) + library(dplyr) + library(tidyr) + + tot <- read.table("Total.table", header = T) + tot <- cbind(set = "Total", tot) + + fp <- read.table("FalsePositives.table", header = T) + fp <- cbind(set = "False positive", fp) + + tp <- read.table("TruePositives.table", header = T) + tp <- cbind(set = "True positive", tp) + + df <- rbind(tot, fp, tp) + df <- pivot_longer(df, cols = c(4:9)) + + p <- df %>% filter(name == "QD") %>% + ggplot(aes(x=value, fill=set)) + + geom_density(alpha=0.4) + + geom_vline(aes(xintercept=2), color = "purple", linetype="dashed") + + xlab("QD") + + ggsave(p, filename = "QD.png") + + p <- df %>% filter(name == "FS") %>% + ggplot(aes(x=value, fill=set)) + + geom_density(alpha=0.4) + + xlab("FS") + geom_vline(aes(xintercept=60), color = "purple", linetype="dashed") + + ggsave(p, filename = "FS.png") + + p <- df %>% filter(name == "SOR") %>% + ggplot(aes(x=value, fill=set)) + + geom_density(alpha=0.4) + + xlab("SOR") + + geom_vline(aes(xintercept=3), color = "purple", linetype="dashed") + + ggsave(p, filename = "SOR.png") + + p <- df %>% filter(name == "MQ") %>% + ggplot(aes(x=value, fill=set)) + + geom_density(alpha=0.4) + + xlab("MQ") + + geom_vline(aes(xintercept=40), color = "purple", linetype="dashed") + + ggsave(p, filename = "MQ.png") + + p <- df %>% filter(name == "MQRankSum") %>% + ggplot(aes(x=value, fill=set)) + + geom_density(alpha=0.4) + + xlab("MQRankSum") + + geom_vline(aes(xintercept=-12.5), color = "purple", linetype="dashed") + + ggsave(p, filename = "MQRankSum.png") + + p <- df %>% filter(name == "ReadPosRankSum") %>% + ggplot(aes(x=value, fill=set)) + + geom_density(alpha=0.4) + + xlab("ReadPosRankSum") + + geom_vline(aes(xintercept=-8), color = "purple", linetype="dashed") + + ggsave(p, filename = "ReadPosRankSum.png") + + system("mkdir ~{seed}_~{depth}_QualPlots") + system("mv *png ~{seed}_~{depth}_QualPlots") + system("tar -czvf ~{seed}_~{depth}_QualPlots.tar.gz ~{seed}_~{depth}_QualPlots") + + RSCRIPT + + >>> + + runtime { + docker: "cristaniguti/reads2map:0.0.4" + cpu: 1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "QualPlots" + mem:"~{memory_size}M" + time:"01:40:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Generated graphics about simulated markers quality parameters and Hard Filtering. See more information in [VariatsToTable](https://gatk.broadinstitute.org/hc/en-us/articles/360035890471-Hard-filtering-germline-short-variants) tool" + } + + output { + File Plots = "~{seed}_~{depth}_QualPlots.tar.gz" + } + +} + +task FilterMulti { + input { + File multi_vcf + String? P1 + String? P2 + Int ploidy + } + + Int disk_size = ceil(size(multi_vcf, "GiB") * 1.5) + Int memory_size = 3000 + + command <<< + R --vanilla --no-save <<RSCRIPT + + library(Reads2MapTools) + filter_multi_vcf("~{multi_vcf}", "~{P1}", "~{P2}", + ploidy = ~{ploidy}, + vcf.out = "multi_vcf_filt.vcf.gz") + + RSCRIPT + >>> + + runtime { + docker:"cristaniguti/reads2map:0.0.4" + cpu: 1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "FilterMulti" + mem:"~{memory_size}M" + time:"01:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Filters VCF file markers according to segregation expected in a outcrossing F1 population. Adapts the alleles codification. See [Reads2MapTools](https://github.com/Cristianetaniguti/Reads2MapTools) for more information." + } + + output { + File multi_vcf_filt = "multi_vcf_filt.vcf.gz" + } +} diff --git a/janis_core/tests/data/wdl/reads2map/tasks/vcf2diploid.wdl b/janis_core/tests/data/wdl/reads2map/tasks/vcf2diploid.wdl new file mode 100644 index 000000000..dcd60db49 --- /dev/null +++ b/janis_core/tests/data/wdl/reads2map/tasks/vcf2diploid.wdl @@ -0,0 +1,44 @@ +version 1.0 + +# Insert into a fasta sequence the variants present in a VCF file +# TODO: Probably this task is not beeing used. Consider removing +task RunVcf2diploid { + input { + String sampleName + File ref_genome + File simu_vcf + String chromosome + } + + Int disk_size = ceil(size(ref_genome, "GiB") * 2 + size(simu_vcf, "GiB")) + Int memory_size = 5000 + + command <<< + java -jar /usr/jars/vcf2diploid.jar -id ~{sampleName} -chr ~{ref_genome} -vcf ~{simu_vcf} + + >>> + + runtime { + docker: "cristaniguti/java-in-the-cloud:0.0.1" + cpu:1 + # Cloud + memory:"~{memory_size} MiB" + disks:"local-disk " + disk_size + " HDD" + # Slurm + job_name: "RunVcf2diploid" + mem:"~{memory_size}M" + time:"05:00:00" + } + + meta { + author: "Cristiane Taniguti" + email: "chtaniguti@tamu.edu" + description: "Uses [vcf2diploid](https://github.com/abyzovlab/vcf2diploid) to include the VCF genotypes into the FASTA file." + } + + output { + File maternal_genomes = "~{chromosome}_${sampleName}_maternal.fa" + File paternal_genomes = "~{chromosome}_${sampleName}_paternal.fa" + } + +} \ No newline at end of file diff --git a/janis_core/tests/test_ingestion_wdl.py b/janis_core/tests/test_ingestion_wdl.py index 983069123..402edbaf3 100644 --- a/janis_core/tests/test_ingestion_wdl.py +++ b/janis_core/tests/test_ingestion_wdl.py @@ -618,7 +618,7 @@ def setUp(self) -> None: def test_step_inputs1(self) -> None: settings.ingest.wdl.COMMAND_PARSER = 'shell' - filepath = f'{WDL_TESTDATA_PATH}/Reads2Map/subworkflows/create_alignment_from_families_files.wdl' + filepath = f'{WDL_TESTDATA_PATH}/reads2map/subworkflows/create_alignment_from_families_files.wdl' wf = ingest(filepath, 'wdl') self.assertIsInstance(wf, WorkflowBuilder) actual_steps = list(wf.step_nodes.keys()) @@ -669,7 +669,7 @@ def test_step_inputs1(self) -> None: def test_conditional_deps(self) -> None: settings.ingest.wdl.COMMAND_PARSER = 'shell' - filepath = f'{WDL_TESTDATA_PATH}/Reads2Map/subworkflows/create_alignment_from_read_simulations.wdl' + filepath = f'{WDL_TESTDATA_PATH}/reads2map/subworkflows/create_alignment_from_read_simulations.wdl' wf = ingest(filepath, 'wdl') self.assertIsInstance(wf, WorkflowBuilder) @@ -703,7 +703,7 @@ def test_conditional_deps(self) -> None: def test_scatter_deps(self) -> None: settings.ingest.wdl.COMMAND_PARSER = 'shell' - filepath = f'{WDL_TESTDATA_PATH}/Reads2Map/subworkflows/create_alignment_from_families_files.wdl' + filepath = f'{WDL_TESTDATA_PATH}/reads2map/subworkflows/create_alignment_from_families_files.wdl' wf = ingest(filepath, 'wdl') self.assertIsInstance(wf, WorkflowBuilder) @@ -714,7 +714,7 @@ def test_scatter_deps(self) -> None: def test_nested_deps(self) -> None: settings.ingest.wdl.COMMAND_PARSER = 'shell' - filepath = f'{WDL_TESTDATA_PATH}/Reads2Map/subworkflows/create_alignment_from_read_simulations.wdl' + filepath = f'{WDL_TESTDATA_PATH}/reads2map/subworkflows/create_alignment_from_read_simulations.wdl' wf = ingest(filepath, 'wdl') self.assertIsInstance(wf, WorkflowBuilder) diff --git a/janis_core/tests/test_janis_translate.py b/janis_core/tests/test_janis_translate.py index ac557458c..fbbe4e724 100644 --- a/janis_core/tests/test_janis_translate.py +++ b/janis_core/tests/test_janis_translate.py @@ -227,7 +227,7 @@ def test_from_wdl_to_nextflow_tool(self) -> None: @unittest.skip('wdl ingest needs work') def test_from_wdl_to_nextflow_workflow(self) -> None: - filepath = f'{WDL_TESTDATA_PATH}/Reads2Map/pipelines/PreprocessingReads/PreprocessingReads.wdl' + filepath = f'{WDL_TESTDATA_PATH}/reads2map/pipelines/PreprocessingReads/PreprocessingReads.wdl' _run(filepath, 'wdl', 'nextflow') # JANIS.TRANSLATE() @@ -1594,19 +1594,19 @@ def test_wf_multisample_jointgt_gatk4_wf(self): @unittest.skip('TODO: update for wdl ingest changes') def test_wf_reads2map_preprocessing(self): - filepath = f'{WDL_TESTDATA_PATH}/Reads2Map/pipelines/PreprocessingReads/PreprocessingReads.wdl' + filepath = f'{WDL_TESTDATA_PATH}/reads2map/pipelines/PreprocessingReads/PreprocessingReads.wdl' mainstr = _run(filepath, self.src, self.dest) print(mainstr) @unittest.skip('TODO: update for wdl ingest changes') def test_wf_reads2map_reads2map(self): - filepath = f'{WDL_TESTDATA_PATH}/Reads2Map/pipelines/EmpiricalReads2Map/EmpiricalReads2Map.wdl' + filepath = f'{WDL_TESTDATA_PATH}/reads2map/pipelines/Empiricalreads2map/Empiricalreads2map.wdl' mainstr = _run(filepath, self.src, self.dest) print(mainstr) @unittest.skip('TODO: update for wdl ingest changes') def test_wf_reads2map_snp_calling(self): - filepath = f'{WDL_TESTDATA_PATH}/Reads2Map/pipelines/EmpiricalSNPCalling/EmpiricalSNPCalling.wdl' + filepath = f'{WDL_TESTDATA_PATH}/reads2map/pipelines/EmpiricalSNPCalling/EmpiricalSNPCalling.wdl' mainstr = _run(filepath, self.src, self.dest) print(mainstr) @@ -1641,19 +1641,19 @@ def test_wf_multisample_jointgt_gatk4(self): @unittest.skip('TODO: update for wdl ingest changes') def test_wf_reads2map_preprocessing(self): - filepath = f'{WDL_TESTDATA_PATH}/Reads2Map/pipelines/PreprocessingReads/PreprocessingReads.wdl' + filepath = f'{WDL_TESTDATA_PATH}/reads2map/pipelines/PreprocessingReads/PreprocessingReads.wdl' mainstr = _run(filepath, self.src, self.dest) print(mainstr) @unittest.skip('TODO: update for wdl ingest changes') def test_wf_reads2map_reads2map(self): - filepath = f'{WDL_TESTDATA_PATH}/Reads2Map/pipelines/EmpiricalReads2Map/EmpiricalReads2Map.wdl' + filepath = f'{WDL_TESTDATA_PATH}/reads2map/pipelines/Empiricalreads2map/Empiricalreads2map.wdl' mainstr = _run(filepath, self.src, self.dest) print(mainstr) @unittest.skip('TODO: update for wdl ingest changes') def test_wf_reads2map_snp_calling(self): - filepath = f'{WDL_TESTDATA_PATH}/Reads2Map/pipelines/EmpiricalSNPCalling/EmpiricalSNPCalling.wdl' + filepath = f'{WDL_TESTDATA_PATH}/reads2map/pipelines/EmpiricalSNPCalling/EmpiricalSNPCalling.wdl' mainstr = _run(filepath, self.src, self.dest) print(mainstr) From ed1f57edfde4c1dd7c438c91d22be758da031a8d Mon Sep 17 00:00:00 2001 From: Grace Hall <graceavahall@gmail.com> Date: Wed, 6 Dec 2023 19:29:59 +1100 Subject: [PATCH 30/32] added data files to pyproject.toml --- .../ingestion/cwl/expressions/grammar_ok.ebnf | 89 ------------------- pyproject.toml | 1 + 2 files changed, 1 insertion(+), 89 deletions(-) delete mode 100644 janis_core/ingestion/cwl/expressions/grammar_ok.ebnf diff --git a/janis_core/ingestion/cwl/expressions/grammar_ok.ebnf b/janis_core/ingestion/cwl/expressions/grammar_ok.ebnf deleted file mode 100644 index 44c73d529..000000000 --- a/janis_core/ingestion/cwl/expressions/grammar_ok.ebnf +++ /dev/null @@ -1,89 +0,0 @@ - - -### top level ### - -?the_text : part+ - -?part : javascript - | text - -javascript : "$(" expr ")" -TEXT : /[^$(]+/ -text : TEXT - - -### higher level constructs ### - -?expr : object expr - | object - | attribute expr - | attribute - | method_call+ - | ternary - | group - | cond_check - | value # may cause issues? - -ternary : expr "?" expr ":" expr -group : "(" expr ")" - -?cond_check : expr "===" expr -> deep_eq - | expr "!==" expr -> deep_ineq - | expr "==" expr -> eq - | expr "!=" expr -> ineq - | expr ">=" expr -> gteq - | expr "<=" expr -> lteq - | expr ">" expr -> gt - | expr "<" expr -> lt - | expr - - -### objects, attributes, methods ### - -?object : "inputs." SYMBOL -> input - | "runtime." SYMBOL -> runtime - | "self" -> self - -?attribute : ".basename" -> attr_basename - | ".nameroot" -> attr_nameroot - | ".nameext" -> attr_nameext - | ".ext" -> attr_ext - | ".format" -> attr_format - | ".contents" -> attr_contents - | ".length" -> attr_length - | ".location" -> attr_location - -?method_call: ".join(" method_args ")" -> meth_join - | ".split(" method_args ")" -> meth_split - | ".slice(" method_args ")" -> meth_slice - | "[" SIGNED_NUMBER "]" -> meth_array_index - -?method_args: value - | value ARGSEP value - | value ARGSEP value ARGSEP value - -ARGSEP : /, *?/ - - -### primitives ### -?value : "true" -> true - | "false" -> false - | "null" -> null - | SIGNED_NUMBER - | QUOTED_STRING - | SYMBOL - -SYMBOL: /[a-zA-Z0-9_]+/ - -_STRING_INNER: /.*?/ -_STRING_QUOT_INNER: _STRING_INNER /(?<!\\)(\\\\)*?/ -QUOTED_STRING : ( "\"" _STRING_QUOT_INNER "\"" ) | ( "'" _STRING_QUOT_INNER "'" ) - -%import common.SIGNED_NUMBER -%import common.WS -%ignore WS - - - - - diff --git a/pyproject.toml b/pyproject.toml index 44ae3ec88..ae7fcc41a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -89,6 +89,7 @@ janis_core = [ "ingestion/data/galaxy/*.json", "ingestion/data/galaxy/*.yaml", "ingestion/data/galaxy/*.xml.sample", + "ingestion/cwl/expressions/grammar.ebnf", ] [tool.setuptools.packages.find] From 0c48659d945faba27f7e11072a8d9510347d0f7e Mon Sep 17 00:00:00 2001 From: Grace Hall <graceavahall@gmail.com> Date: Wed, 6 Dec 2023 21:13:55 +1100 Subject: [PATCH 31/32] updated file io permissions --- janis_core/ingestion/common/__init__.py | 14 ++ .../initialisation.py => common/fileio.py} | 11 +- janis_core/ingestion/cwl/main.py | 6 +- janis_core/ingestion/cwl/parsing/tool.py | 4 +- janis_core/ingestion/cwl/parsing/workflow.py | 6 +- janis_core/ingestion/cwl/types.py | 2 +- .../ingestion/galaxy/fileio/__init__.py | 6 - janis_core/ingestion/galaxy/fileio/write.py | 114 ---------------- .../galaxy/gxwrappers/downloads/cache.py | 2 +- .../gxwrappers/wrappers/WrapperCache.py | 6 +- janis_core/ingestion/wdl/main.py | 2 +- janis_core/translations/common/fileio.py | 2 + janis_core/translations/common/todisk.py | 128 ++++++------------ notes.txt | 1 - 14 files changed, 79 insertions(+), 225 deletions(-) rename janis_core/ingestion/{galaxy/fileio/initialisation.py => common/fileio.py} (61%) delete mode 100644 janis_core/ingestion/galaxy/fileio/write.py create mode 100644 janis_core/translations/common/fileio.py diff --git a/janis_core/ingestion/common/__init__.py b/janis_core/ingestion/common/__init__.py index e69de29bb..c0c79eea7 100644 --- a/janis_core/ingestion/common/__init__.py +++ b/janis_core/ingestion/common/__init__.py @@ -0,0 +1,14 @@ + + +from .fileio import safe_init_file +from .fileio import safe_init_folder + + +from .graph import add_step_edges_to_graph +from .graph import get_janis_wf_sources + +from .identifiers import get_id_entity +from .identifiers import get_id_filename +from .identifiers import get_id_path +from .identifiers import get_cwl_reference +from .identifiers import remove_output_name_from_output_source diff --git a/janis_core/ingestion/galaxy/fileio/initialisation.py b/janis_core/ingestion/common/fileio.py similarity index 61% rename from janis_core/ingestion/galaxy/fileio/initialisation.py rename to janis_core/ingestion/common/fileio.py index b92e007ea..a6f4a4599 100644 --- a/janis_core/ingestion/galaxy/fileio/initialisation.py +++ b/janis_core/ingestion/common/fileio.py @@ -1,6 +1,8 @@ -import os +import os +import shutil +PERMISSIONS=0o777 def safe_init_file(path: str, override: bool=False, contents: str='') -> None: dirname = os.path.dirname(path) @@ -9,6 +11,7 @@ def safe_init_file(path: str, override: bool=False, contents: str='') -> None: fp.write(contents) def safe_init_folder(path: str, override: bool=False) -> None: - if not os.path.isdir(path): - os.makedirs(path) - + if override: + if os.path.isdir(path): + shutil.rmtree(path) + os.makedirs(path, PERMISSIONS, exist_ok=True) \ No newline at end of file diff --git a/janis_core/ingestion/cwl/main.py b/janis_core/ingestion/cwl/main.py index 1345ab3cd..9a97dcfc2 100755 --- a/janis_core/ingestion/cwl/main.py +++ b/janis_core/ingestion/cwl/main.py @@ -16,14 +16,14 @@ from janis_core.messages import log_message from janis_core.messages import ErrorCategory -from ..common.identifiers import get_id_filename -from ..common.identifiers import get_id_entity +from ..common import get_id_filename +from ..common import get_id_entity from .loading import load_cwl_version from .loading import load_cwl_utils_from_version from .loading import load_cwl_document from .loading import convert_etool_to_cltool -from ..common.graph import add_step_edges_to_graph +from ..common import add_step_edges_to_graph from .parsing.tool import CLTParser from .parsing.workflow import WorkflowInputParser diff --git a/janis_core/ingestion/cwl/parsing/tool.py b/janis_core/ingestion/cwl/parsing/tool.py index 7b7b84799..eb752ca1a 100644 --- a/janis_core/ingestion/cwl/parsing/tool.py +++ b/janis_core/ingestion/cwl/parsing/tool.py @@ -13,8 +13,8 @@ from janis_core.messages import ErrorCategory from ..types import ingest_cwl_type -from janis_core.ingestion.common.identifiers import get_id_entity -from janis_core.ingestion.common.identifiers import get_id_filename +from janis_core.ingestion.common import get_id_entity +from janis_core.ingestion.common import get_id_filename from ..expressions import parse_expression diff --git a/janis_core/ingestion/cwl/parsing/workflow.py b/janis_core/ingestion/cwl/parsing/workflow.py index 2345413a6..1daaf981b 100644 --- a/janis_core/ingestion/cwl/parsing/workflow.py +++ b/janis_core/ingestion/cwl/parsing/workflow.py @@ -10,9 +10,9 @@ from janis_core import ScatterDescription, ScatterMethod from ..types import ingest_cwl_type -from janis_core.ingestion.common.identifiers import get_id_entity -from janis_core.ingestion.common.identifiers import remove_output_name_from_output_source -from janis_core.ingestion.common.graph import get_janis_wf_sources +from janis_core.ingestion.common import get_id_entity +from janis_core.ingestion.common import remove_output_name_from_output_source +from janis_core.ingestion.common import get_janis_wf_sources from ..expressions import parse_expression from janis_core import settings diff --git a/janis_core/ingestion/cwl/types.py b/janis_core/ingestion/cwl/types.py index d5fae1b21..ee1d9c989 100644 --- a/janis_core/ingestion/cwl/types.py +++ b/janis_core/ingestion/cwl/types.py @@ -3,7 +3,7 @@ import sys import inspect -from janis_core.ingestion.common.identifiers import get_id_entity +from janis_core.ingestion.common import get_id_entity from janis_core.messages import ErrorCategory from janis_core.messages import log_message from janis_core.utils.errors import UnsupportedError diff --git a/janis_core/ingestion/galaxy/fileio/__init__.py b/janis_core/ingestion/galaxy/fileio/__init__.py index 5f9506c1b..9d7bc273f 100644 --- a/janis_core/ingestion/galaxy/fileio/__init__.py +++ b/janis_core/ingestion/galaxy/fileio/__init__.py @@ -1,11 +1,5 @@ -from .initialisation import safe_init_file -from .initialisation import safe_init_folder - -from .initialisation import safe_init_file -from .initialisation import safe_init_folder - # from .write import write_tool # from .write import write_workflow diff --git a/janis_core/ingestion/galaxy/fileio/write.py b/janis_core/ingestion/galaxy/fileio/write.py deleted file mode 100644 index 2f2289d57..000000000 --- a/janis_core/ingestion/galaxy/fileio/write.py +++ /dev/null @@ -1,114 +0,0 @@ - - -from __future__ import annotations -from typing import TYPE_CHECKING -from janis_core.ingestion.galaxy.fileio import safe_init_folder - -if TYPE_CHECKING: - from janis_core.ingestion.galaxy.internal_model.tool import ITool - from janis_core.ingestion.galaxy.internal_model.workflow import Workflow - from janis_core.ingestion.galaxy.internal_model.workflow import WorkflowStep - -import shutil -from janis_core.ingestion.galaxy.fileio import safe_init_folder -from janis_core.ingestion.galaxy.runtime import paths -from janis_core import settings -from janis_core.ingestion.galaxy.utils import galaxy as galaxy_utils -from janis_core.ingestion.galaxy.gxwrappers import fetch_xml - -from .text.workflow.InputsText import InputsText -from .text.workflow.WorkflowText import WorkflowText -from .text.tool.ConfigfileText import ConfigfileText -from .text.tool.UnstranslatedText import UntranslatedText -from .text.tool.ToolText import ToolText - -def write_tool(tool: ITool, path: str) -> None: - text = ToolText(tool) - page = text.render() - with open(path, 'w') as fp: - fp.write(page) - -def write_workflow(janis: Workflow) -> None: - write_untranslated(janis) - write_scripts(janis) - write_wrappers(janis) - write_main_workflow(janis) - write_inputs(janis) - write_tools(janis) - #write_sub_workflows(janis) - #write_config(janis) - -def write_tools(janis: Workflow) -> None: - for step in janis.steps: - tool_id = step.metadata.wrapper.tool_id - write_tool(step.tool, paths.tool(tool_id)) - -def write_untranslated(janis: Workflow) -> None: - for step in janis.steps: - if step.preprocessing or step.postprocessing: - tool_id = step.metadata.wrapper.tool_id - path = paths.untranslated(tool_id) - text = UntranslatedText(step) - page = text.render() - with open(path, 'w') as fp: - fp.write(page) - -def write_scripts(janis: Workflow) -> None: - for step in janis.steps: - if step.tool.configfiles: - tool_id = step.metadata.wrapper.tool_id - for configfile in step.tool.configfiles: - path = paths.configfile(tool_id, configfile.name) - text = ConfigfileText(configfile) - page = text.render() - with open(path, 'w') as fp: - fp.write(page) - -def write_wrappers(janis: Workflow) -> None: - for step in janis.steps: - src_files = get_wrapper_files_src(step) - dest = get_dest_dir(step) - safe_init_folder(dest) - for src in src_files: - shutil.copy2(src, dest) - -def get_wrapper_files_src(step: WorkflowStep) -> list[str]: - wrapper = step.metadata.wrapper - wrapper_path = fetch_xml( - owner= wrapper.owner, - repo= wrapper.repo, - revision= wrapper.revision, - tool_id= wrapper.tool_id - ) - wrapper_dir = wrapper_path.rsplit('/', 1)[0] - macro_xmls = galaxy_utils.get_macros(wrapper_dir) - return [wrapper_path] + macro_xmls - -def get_dest_dir(step: WorkflowStep) -> str: - tool_id = step.metadata.wrapper.tool_id - revision = step.metadata.wrapper.revision - return paths.wrapper(tool_id, revision) - -def write_main_workflow(janis: Workflow) -> None: - path = paths.workflow() - text = WorkflowText(janis) - page = text.render() - with open(path, 'w') as fp: - fp.write(page) - -def write_inputs(janis: Workflow) -> None: - path = paths.inputs(file_format='yaml') - text = InputsText(janis, file_format='yaml') - page = text.render() - with open(path, 'w') as fp: - fp.write(page) - -def write_sub_workflows(janis: Workflow) -> None: - raise NotImplementedError() - -def write_config(janis: Workflow) -> None: - raise NotImplementedError() - - - - diff --git a/janis_core/ingestion/galaxy/gxwrappers/downloads/cache.py b/janis_core/ingestion/galaxy/gxwrappers/downloads/cache.py index 6b9dc767e..590e24bac 100644 --- a/janis_core/ingestion/galaxy/gxwrappers/downloads/cache.py +++ b/janis_core/ingestion/galaxy/gxwrappers/downloads/cache.py @@ -5,7 +5,7 @@ from typing import Optional from janis_core import settings -from janis_core.ingestion.galaxy.fileio import safe_init_folder +from janis_core.ingestion.common import safe_init_folder class DownloadCache: diff --git a/janis_core/ingestion/galaxy/gxwrappers/wrappers/WrapperCache.py b/janis_core/ingestion/galaxy/gxwrappers/wrappers/WrapperCache.py index 4c6bbc01e..e625e9106 100644 --- a/janis_core/ingestion/galaxy/gxwrappers/wrappers/WrapperCache.py +++ b/janis_core/ingestion/galaxy/gxwrappers/wrappers/WrapperCache.py @@ -4,10 +4,9 @@ import os from typing import Optional from janis_core.ingestion.galaxy.gxwrappers import Wrapper -from janis_core.ingestion.galaxy.fileio import safe_init_file +from janis_core.ingestion.common import safe_init_file from janis_core.settings.ingest.galaxy import WRAPPER_CACHE - """ WrapperCache flat file structure: { @@ -30,6 +29,9 @@ + + + class WrapperCache: def get( diff --git a/janis_core/ingestion/wdl/main.py b/janis_core/ingestion/wdl/main.py index 9b96aa71c..fa54fc009 100755 --- a/janis_core/ingestion/wdl/main.py +++ b/janis_core/ingestion/wdl/main.py @@ -9,7 +9,7 @@ from janis_core import WorkflowBuilder, CommandToolBuilder from janis_core.workflow.workflow import InputNode, StepNode, OutputNode -from janis_core.ingestion.common.graph import add_step_edges_to_graph +from janis_core.ingestion.common import add_step_edges_to_graph from .parsing import WorkflowInputParser from .parsing import WorkflowStepModifierParser from .parsing import WorkflowStepInputParser diff --git a/janis_core/translations/common/fileio.py b/janis_core/translations/common/fileio.py new file mode 100644 index 000000000..139597f9c --- /dev/null +++ b/janis_core/translations/common/fileio.py @@ -0,0 +1,2 @@ + + diff --git a/janis_core/translations/common/todisk.py b/janis_core/translations/common/todisk.py index dd2b3d122..2205ee1a2 100644 --- a/janis_core/translations/common/todisk.py +++ b/janis_core/translations/common/todisk.py @@ -6,7 +6,32 @@ from janis_core import Logger from janis_core import settings from janis_core.translation_deps.exportpath import ExportPathKeywords +from janis_core.ingestion.common import safe_init_folder +PERMISSIONS=0o777 + + +def write_tool_to_console(str_tool: str) -> None: + print(str_tool) + + +def write_tool_to_disk(str_tool: str, filename: str, tup_helpers: list[Tuple[str, str]]) -> None: + # set output folder + basedir = ExportPathKeywords.resolve( + settings.translate.EXPORT_PATH, + workflow_spec=settings.translate.DEST, + workflow_name=None + ) + # create output folder + if not os.path.exists(basedir): + os.makedirs(basedir) + + # write tool file + _write_file((filename, str_tool), basedir, 'tool', None) + + # write helper files (files_to_create scripts) + for tup_helper in tup_helpers: + _write_file(tup_helper, basedir, 'helper', None) def write_workflow_to_console( @@ -46,9 +71,7 @@ def write_workflow_to_disk( workflow_spec=settings.translate.DEST, workflow_name=None ) - if os.path.isdir(basedir): - shutil.rmtree(basedir) - os.makedirs(basedir, exist_ok=True) + safe_init_folder(basedir) # writing main workflow _write_file(tup_main, basedir, 'main', outdir_structure['main']) @@ -83,22 +106,8 @@ def write_workflow_to_disk( _write_galaxy_source_files_to_disk(basedir) -def _write_file(tup_file: Tuple[str, str], basedir: str, ftype: str, fsubdir: str | None) -> None: - filename, contents = tup_file - - # format outdir using basedir and subdir if provided - outdir = os.path.join(basedir, fsubdir) if fsubdir is not None else basedir - os.makedirs(outdir, exist_ok=True) - - # write to disk - Logger.info(f"Writing {ftype} to '{outdir}'") - with open(os.path.join(outdir, filename), "w+") as f: - Logger.log(f"Writing {filename} to disk") - f.write(contents) - Logger.log(f"Written {filename} to disk") - - def _write_galaxy_source_files_to_disk(basedir: str) -> None: + # TODO permissions # copying source files - this one is a bit weird & specific to galaxy. if settings.general.SOURCE_FILES is not None: # create source folder in basedir @@ -113,75 +122,20 @@ def _write_galaxy_source_files_to_disk(basedir: str) -> None: shutil.copy2(src, dest) -def write_tool_to_console(str_tool: str) -> None: - print(str_tool) - - -def write_tool_to_disk(str_tool: str, filename: str, tup_helpers: list[Tuple[str, str]]) -> None: - # set output folder - basedir = ExportPathKeywords.resolve( - settings.translate.EXPORT_PATH, - workflow_spec=settings.translate.DEST, - workflow_name=None - ) - # create output folder - if not os.path.exists(basedir): - os.makedirs(basedir) - - # write tool file - _write_file((filename, str_tool), basedir, 'tool', None) - - # write helper files (files_to_create scripts) - for tup_helper in tup_helpers: - _write_file(tup_helper, basedir, 'helper', None) - - - - +def _write_file(tup_file: Tuple[str, str], basedir: str, ftype: str, fsubdir: str | None) -> None: + filename, contents = tup_file + # format outdir using basedir and subdir if provided + outdir = os.path.join(basedir, fsubdir) if fsubdir is not None else basedir + safe_init_folder(outdir) + + filepath = os.path.join(outdir, filename) -# DEPRECATED from write_workflow_to_disk() - - # subfolders: list[str] = [] - # subfolders.append(self.DIR_TOOLS) - # subfolders += self.SUBDIRS_TO_CREATE - # for subfolder in subfolders: - # path = os.path.join(basedir, subfolder) - # if not os.path.isdir(path): - # os.makedirs(path, exist_ok=True) - - - # if settings.translate.SHOULD_VALIDATE: - # with Path(basedir): - - # Logger.info(f"Validating outputted {self.name}") - - # enved_vcs = [ - # (os.getenv(x[1:]) if x.startswith("$") else x) - # for x in self.validate_command_for( - # fn_workflow, fn_inputs, "tools/", "tools.zip" - # ) - # ] + # write to disk + Logger.info(f"Writing {ftype} to '{outdir}'") + with open(filepath, "w+") as f: + Logger.log(f"Writing {filename} to disk") + f.write(contents) + Logger.log(f"Written {filename} to disk") + os.chmod(filepath, PERMISSIONS) - # cwltool_result = subprocess.run(enved_vcs) - # if cwltool_result.returncode == 0: - # Logger.info( - # "Exported tool was validated by: " + " ".join(enved_vcs) - # ) - # else: - # Logger.critical(str(cwltool_result.stderr)) - - # # zipping tools file - # import subprocess - - # if settings.translate.SHOULD_ZIP: - # Logger.debug("Zipping tools") - # with Path(basedir): - # FNULL = open(os.devnull, "w") - # zip_result = subprocess.run( - # ["zip", "-r", "tools.zip", "tools/"], stdout=FNULL - # ) - # if zip_result.returncode == 0: - # Logger.debug("Zipped tools") - # else: - # Logger.critical(str(zip_result.stderr.decode())) \ No newline at end of file diff --git a/notes.txt b/notes.txt index 0d3d855de..b9be12697 100644 --- a/notes.txt +++ b/notes.txt @@ -1,7 +1,6 @@ errs - WDL - container exprs - runtime exprs nextflow From 002154a674a23c0a0494cf6a0821dc7a5f5c3af9 Mon Sep 17 00:00:00 2001 From: Grace Hall <graceavahall@gmail.com> Date: Wed, 6 Dec 2023 21:50:10 +1100 Subject: [PATCH 32/32] updated version to v0.13.1 --- janis_core/__meta__.py | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/janis_core/__meta__.py b/janis_core/__meta__.py index c8be0381e..ec1f7f55b 100644 --- a/janis_core/__meta__.py +++ b/janis_core/__meta__.py @@ -1,4 +1,4 @@ -__version__ = "v0.13.0" +__version__ = "v0.13.1" GITHUB_URL = "https://github.com/PMCC-BioinformaticsCore/janis" DOCS_URL = "https://janis.readthedocs.io/en/latest/" diff --git a/pyproject.toml b/pyproject.toml index ae7fcc41a..b24bdc0a8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ requires = ["setuptools>=67.8.0", "wheel>=0.40.0"] [project] name = "janis-pipelines.core" -version = "v0.13.0" +version = "v0.13.1" description = "Workflow language + translation utilities to convert workflows from one language to another" readme = "README.md" license = { file = "LICENSE" }